[LLVMdev] Problems with one pass using another

Prashanth Radhakrishnan shanth at cs.utah.edu
Sun Mar 25 23:43:32 PDT 2007


Hi,

I have two function passes: AvailOut and HashGVN. AvailOut needs to use 
HashGVN. And they're built in the same shared object file.

But addRequired<HashGVN> fails with this error:

# opt -load ../../../build/Release/lib/LLVMGVN.so -hashgvn -availout --debug-pass=Structure <basic.s.bc >basic.out.bc
opt: /proj/tbres/shanth/llvm/llvm-1.9/lib/VMCore/PassManagerT.h:387: void 
llvm::PassManagerT<Trait>::markPassUsed(const llvm::PassInfo*, 
llvm::Pass*) [withTrait = llvm::MTraits]: Assertion `getAnalysisOrNullUp(P) && 
dynamic_cast<ImmutablePass*>(getAnalysisOrNullUp(P)) && "Pass available 
but not found! " "Perhaps this is a module pass requiring a function 
pass?"' failed.
opt((anonymous namespace)::PrintStackTrace()+0x14)[0x85ebe6c]

Does anyone see what I'm missing?

Thanks,
Prashanth



More information about the llvm-dev mailing list