[LLVMdev] llvm pass INITIALIZE

Duncan Sands baldrick at free.fr
Thu Jan 24 12:46:28 PST 2013

Hi Alexandru,

On 24/01/13 13:00, Alexandru Ionut Diaconescu wrote:
> Hello everyone,
> Till now I have succesfully running passes using RegisterPass template. I have
> encountered a segfault in my pass.
>       Assertion `AA && "AA didn't call InitializeAliasAnalysis in its run
> method!"' failed.
> Then, I tried to use INITIALIZE_PASS_XXXX or INITIALIZE_AG_PASS template,
> together with `*llvm::createMyMemDepPrinter()` and
> `initializeMemDepPrinterPass(*PassRegistry::getPassRegistry())` methods.
> Therefore, I got two compilation errors:
>      MyMemDepPrinter.cpp:101:1: error: ‘void
> llvm::initializeMyMemDepPrinterPass(llvm::PassRegistry&)’ should have been
> declared inside ‘llvm’
>      MyMemDepPrinter.cpp:104:43: error: ‘llvm::FunctionPass*
> llvm::createMyMemDepPrinter()’ should have been declared inside ‘llvm’

maybe this is telling you that you should have written your pass like this:

namespace llvm {

    ... your stuff here...


Ciao, Duncan.

> So I added `(void) llvm::createMyMemDepPrinter();`to LinkAllPasses.h.
> `initializeMyMemDepPrinterPass` I don't know yet where to add (maybe in a
> Analysis.cpp file).
> However, I don't know how to compile only those modified files and not the
> entire LLVM. I don't think that is such a good idea to compile "by hand" using
> clang.
> Can you tell me if this is the way I can solve the segfault and how do I do it?
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev

More information about the llvm-dev mailing list