[LLVMdev] [Fwd: Error while running my pass with opt]

John Criswell criswell at illinois.edu
Sun May 9 04:47:49 PDT 2010


ambika wrote:
> But this is already present in my pass.
> And I am not able to understand the cause for the error:
>   

Can you send a copy of your getAnalysisUsage() method for your pass?  
There are some funny errors that can occur when you do things that the 
PassManager cannot handle.

For example, if you're requiring a transform pass, that can cause 
strange assertions from the PassManager.  Requiring a BasicBlock pass 
from a FunctionPass might also hit assertions within PassManager (I think).

If you post your getAnalysisUsage() method, I can take a quick look to 
see if you're doing something that I know is unsupported by PassManager.

-- John T.

> opt: /home/ambika/llvm_3/llvm-2.6/include/llvm/PassAnalysisSupport.h:203: 
> AnalysisType& llvm::Pass::getAnalysisID(const llvm::PassInfo*) const 
> [with AnalysisType = llvm::DominatorTree]: Assertion `ResultPass && 
> "getAnalysis*() called on an analysis that was not " "'required' by 
> pass!"' failed.
>
> What can possibly cause this. Any ideas will also help.
>
> Tobias Grosser wrote:
>   
>> Hi,
>>
>> you need something like this in your pass:
>>
>> void YourPass::getAnalysisUsage(AnalysisUsage &AU) const {
>>   AU.addRequired<DominatorTree>();
>> }
>>
>> because you need to specify which analysis you are using.
>>
>> Tobi
>>     
>
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>   




More information about the llvm-dev mailing list