Hi all
I’m writing a pass for the llc tool. If I try to load my pass(llc -load …/mypass.so), this error message appears :
Error opening ‘/nfs/wsi/ti/graumann/llvm-2.5/Release/lib/LLVMMicha.so’: /nfs/wsi/ti/graumann/llvm-2.5/Release/lib/LLVMMicha.so: undefined symbol: _ZTVN12_GLOBAL__N_119MyRegisterAllocatorE
-load request ignored.
Is this code wrong for the pass registration, or the makefile?
Thank you for help
Michael
Code of my pass:
using namespace llvm;
namespace {
struct MyRegisterAllocator : public MachineFunctionPass {
static char ID; // Pass identification, replacement for typeid
MyRegisterAllocator() : MachineFunctionPass(&ID) {}
virtual bool runOnMachineFunction(MachineFunction &MF);
};
char MyRegisterAllocator::ID = 0;
}
static RegisterPassX(“myregalloc”,
" my register allocator help string");
FunctionPass* createMyRegisterAllocator() {
return new MyRegisterAllocator();
}
static RegisterRegAlloc MyRegAlloc(“myregalloc”,
" my register allocator help string",
createMyRegisterAllocator);
the makefile:
LEVEL = …/…/…
LIBRARYNAME = LLVMMicha
LOADABLE_MODULE = 1
USEDLIBS =
#LLVMLIBS = LLVMCore.a LLVMSupport.a LLVMSystem.a
LINK_COMPONENTS = support system
include $(LEVEL)/Makefile.common