[LLVMdev] Writing a pass for the opt tool: likely documentation bug
Reid Spencer
rspencer at reidspencer.com
Wed Jul 25 14:20:24 PDT 2007
It can also happen if you link *anything* from LLVM into the Hello.so.
Don't do that :)
Reid.
On Wed, 2007-07-25 at 14:02 -0700, Devang Patel wrote:
> Sarah,
>
> We have Hello pass in svn at
>
> lib/Transforms/Hello
>
> This is a working example. I will update documentation to include
> "char Hello::ID = 0".
>
> On Jul 25, 2007, at 1:51 PM, Sarah Thompson wrote:
>
> > Hi,
> >
> > I'm currently attempting to implement a pass that will hopefully run
> > under the opt tool. Currently, I'm having some difficulties -- the
> > sample code for the Hello pass (see
> > http://llvm.org/docs/WritingAnLLVMPass.html) doesn't work. The first
> > error is that the section starting 'As a while, the cpp file looks
> > like:' omits the declaration for char Hello::ID = 0 that is given
> > separately above. If you add this, opt still fails with the message:
> >
> > opt: /usr/local/rse/llvm/src/lib/VMCore/Pass.cpp:158: void
> > <unnamed>::PassRegistrar::RegisterPass(llvm::PassInfo&): Assertion
> > `Inserted && "Pass registered multiple times!"' failed.
> >
> > which appears to be triggered by the RegisterPass<Hello> X... line
> > in the source (the error disappears if you comment that line out,
> > though for obvious reasons the pass won't work if you do that). I've
> > checked, there definitely isn't anything weird going on that would
> > cause more than one instance of RegisterPass<Hello> to be seen by
> > the compiler.
>
> This may happen if either you're sharing ::ID for two passes or you're
> registering Hello twice.
>
> -
> Devang
>
> >
> >
> > I am intending to have a go at writing probably several passes that
> > will attempt a SPIN-like code to code transformation that turns llvm
> > bitcode into another piece of llvm bitcode that, when run, has the
> > effect of model-checking the original program. I won't get much done
> > if I can't make any of my passes work, of course, so any tips would
> > be gratefully appreciated at this point!
> >
> > (I'm using the LLVM 2.0 release version).
> >
> > Thank you in advance,
> > Sarah
> >
> >
> > _______________________________________________
> > LLVM Developers mailing list
> > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
> > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>
> _______________________________________________
> 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