Hi I have written a pass which creates some scheduling information. Its called MParSchedule. This pass works with opt. But when feeding it my experimental backend it seems to loose instructions and fails to work. I am loading this stuff as .so libraries under linux and i am using the amd64 version with a self compiled llvm-gcc. With this call it works: opt --load=/llvm/Debug/lib/MParSchedule.so -MParSchedule -f -o opt.o a.out.bc With the following it won't: llc --load=/llvm/Debug/lib/MParSchedule.so -load=/llvm/Debug/lib/libMyBackend.so -f -march=MyBackend a.out.bc I am quite puzzled and would be happy if anyone would have a suggestion what goes wrong. Which means the linefor the first instruction of the second block processed is missing (tmp1) for my unoptimized example bytecode attached. Am i not allowed to load a pass dynamically for llc? I doubt that i have memory corruption since i am using the stl for all lists and stuff. Thanks ST ---- relevant code snipped from MParSchedule.cpp namespace llvm { bool MParSchedule::runOnFunction(Function &F) { for (Function::iterator i = F.begin(), e = F.end(); i != e; ++i) { BasicBlock &B=*i; runOnBasicBlock(B); } return false; } bool MParSchedule::runOnBasicBlock(BasicBlock &B) { // fill the Instruction list and the available values list InstructionList.clear(); //ValueList.clear(); //FIXME: check if not clearing the Value List might cause problems? list<Schedule*> *ScheduleList=new list<Schedule*>::list(); for(BasicBlock::iterator j=B.begin(),bbe=B.end();j!=bbe;++j) { InstructionList.push_back(j); cerr<<"Copying: "<<j->getName()<<" "<<InstructionList.size()<<endl; ...... ...... } RegisterPass<MParSchedule> X("MParSchedule","MParSchedule"); ------------------------ Makefile MParschedule LEVEL = ../../../.. LIBRARYNAME= MParSchedule BUILD_ARCHIVE=1 SHARED_LIBRARY = 1 LOADABLE_MODULE= 1 include $(LEVEL)/Makefile.common ------------------------- Makefile MyBackend LEVEL = ../../.. LIBRARYNAME = MyBackend PARALLEL_DIRS = MParSchedule USEDLIBS = MParSchedule.o LLVMLIBS = LLVMCore.a LLVMSupport.a LLVMSystem.a MParSchedule.a #LIBS += -lMParSchedule #LINK_COMPONENTS= MParSchedule SHARED_LIBRARY = 1 include $(LEVEL)/Makefile.common -------------- next part -------------- A non-text attachment was scrubbed... Name: a.out.bc Type: application/octet-stream Size: 670 bytes Desc: not available URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20070323/9ffe5ebb/attachment.obj>