[LLVMdev] pass utilizing MemoryDependenceAnalysis?
ret val
retval386 at gmail.com
Thu Oct 13 16:14:44 PDT 2011
My pass(that I want to use MemoryDependenceAnalysis) is a ModulePass.
When I changed my assignment to:
MD = &getAnalysis<MemoryDependenceAnalysis>(F);
It fixed my initial problem but left me with:
Assertion failed: (ResultPass && "Unable to find requested
analysis info"), function getAnalysisID
On Thu, Oct 13, 2011 at 1:43 PM, ret val <retval386 at gmail.com> wrote:
> 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