[LLVMdev] Undefined symbol when loading pass

funceval funceval at gmail.com
Mon Apr 5 19:10:50 PDT 2010


Hi,

I have written a pass to compute the reaching definitions for variables
using loads and stores. The class for this pass is named ReachingDef and the
pass itself is registered as reaching-def. The compiled reaching-def.so file
goes to llvm-home/Release/lib/. This pass is used by another function pass
that is registered as iel and the class is named SIL. I have setup
AnalysisUsage
object of SIL by doing the below:

    AU.setPreservesAll();
    AU.addRequired<*ReachingDef*>();
    AU.addRequired<*some other pass*>();

When I load the pass iel, I get the following error:

opt -load ../../../Release/lib/*iel*.so
<premain>: CommandLine Error: Argument 'inline-threshold' defined more than
once!
opt: CommandLine Error: Argument 'inline-threshold' defined more than once!
*Error opening '../../../Release/lib/iel.so': ../../../Release/lib/iel.so:
undefined symbol: _ZTI11ReachingDef
  -load request ignored.
*
It looks like the ReachingDef pass is not being recognized. Please tell me
how to fix this.

Thanks
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20100405/e328e38b/attachment.html>


More information about the llvm-dev mailing list