[llvm-dev] Pass dependency error

Ees via llvm-dev llvm-dev at lists.llvm.org
Fri Oct 2 11:06:51 PDT 2020


Is this needed if i'm building out of tree? In any case, i am not doing 
INITIALIZE_PASS_DEPENDENCY for DetectKernelsPass and it does not 
complain about it. It basically only complains for any Function pass i 
try to use.

Ees

On 02-10-2020 19:54, Arthur Eubanks wrote:
> I'm not too familiar with the legacy PM, but perhaps you're missing a 
> INITIALIZE_PASS_DEPENDENCY?
>
> On Fri, Oct 2, 2020 at 2:00 AM Ees via llvm-dev 
> <llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org>> wrote:
>
>     Hi all,
>
>     I am getting the infamous error:
>
>     Assertion `ResultPass && "getAnalysis*() called on an analysis
>     that was not " "'required' by pass!"'
>
>     but i really don't understand why.
>
>     I have:
>
>     voidInstrumentationPass::getAnalysisUsage(llvm::AnalysisUsage&AU)
>     const{
>         AU.setPreservesAll();
>         AU.addRequired<DetectKernelsPass>();
>         AU.addRequired<SimplifyGEPPass>()
>
>     DetectKernelsPass (ModulePass) is a simple analysis pass that
>     gathers kernel functions. SimplifyGEPPass (FunctionPass) performs
>     some transformations.
>
>     InstrumentationPass (ModulePass) is using the others like:
>
>     auto kernels = getAnalysis<DetectKernelsPass>().getKernels();
>     for ( auto* kernel : kernels)
>     getAnalysis<SimplifyGEPPass>().runOnFunction(*kernel);
>
>
>     DetectKernelsPass works fine but i am getting the error for
>     SimplifyGEPPass and i can't figure out why. Are FunctionPasses not
>     supposed to be used inside ModulePasses like that?
>
>     I also tried some llvm pass (MemorySSAWrapperPass) but i'm getting
>     the same error:
>
>     AnalysisType &llvm::Pass::getAnalysisID(llvm::AnalysisID) const
>     [AnalysisType = llvm::MemorySSAWrapperPass]: Assertion `ResultPass
>     && "getAnalysis*() called on an analysis that was not "
>     "'required' by pass!"' f
>
>     I would really appreciate some help with this.
>
>     PS. I'm on LLVM 10, building the passes out of tree.
>
>     Ees
>
>     _______________________________________________
>     LLVM Developers mailing list
>     llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org>
>     https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20201002/2805f91a/attachment.html>


More information about the llvm-dev mailing list