[LLVMdev] pass utilizing MemoryDependenceAnalysis?

ret val retval386 at gmail.com
Thu Oct 13 10:43:00 PDT 2011


I wrote a pass(that is to be loaded by opt) that I would like to use
in conjunction with MemoryDependenceAnalysis. I have tried using by
including its header and adding this to my pass:
       virtual void getAnalysisUsage(AnalysisUsage &AU) const {
        errs() << "addRequired called\n";
        AU.addRequired<MemoryDependenceAnalysis>();
       }

And in my runOnFunction() method I have:
       MD = &getAnalysis<MemoryDependenceAnalysis>();

The results in:
       addRequired called
       Assertion failed: (ResultPass && "getAnalysis*() called on an
analysis that was not " "'required' by pass!"), function getAnalysisID

I do not know why. I noticed the DeadStoreElimination pass also uses
this, but it does not use RegisterPass (like mine and the docs show).
Instead it has lines like:
       INITIALIZE_PASS_DEPENDENCY(MemoryDependenceAnalysis)

This gives me:
       error: C++ requires a type specifier for all declarations

What is the correct way todo this?




More information about the llvm-dev mailing list