[LLVMdev] llvm pass INITIALIZE

Alexandru Ionut Diaconescu alexandruionutdiaconescu at gmail.com
Thu Jan 24 04:00:40 PST 2013


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’

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?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20130124/c18e8793/attachment.html>


More information about the llvm-dev mailing list