[LLVMdev] Problems with one pass using another

Devang Patel dpatel at apple.com
Mon Mar 26 00:02:14 PDT 2007


Hi Prashanth,

On Mar 25, 2007, at 11:43 PM, Prashanth Radhakrishnan wrote:

> 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?

Based on your limited description, It seems you're running into a  
Pass Manager bug.
However, Pass Manager is now re-written in current mainline cvs  
sources, so may be you
want to try new pass manager  ?

-
Devang



More information about the llvm-dev mailing list