[LLVMdev] PassManager Mysteries

John Criswell criswell at uiuc.edu
Mon Jan 28 20:11:34 PST 2008

Dear All,

I had a similar error back in December; there are a number of email 
exchanges about it on llvmdev in December 2007; a search through the 
archives might shed some light on my PassManager does this.

If you're updating a pass from pre-LLVM 2.0 to post-LLVM 2.0, you should 
be aware that the pass manager in LLVM 2.x is used only for scheduling 
dependent *analysis* passes.  If you need to ensure that transform 
passes are run in a certain order or before an analysis pass, you need 
to order that explicitly by adding the passes to the PassManager object 
in the correct order.

In my case, SAFECode used the PassManager's dependency checking to 
ensure that the Automatic Pool Allocation transform was run before the 
SAFECode analysis and transform passes.  This worked in LLVM 1.9; it 
doesn't work in LLVM 2.x.

-- John T.

Vikram S. Adve wrote:
> On Jan 28, 2008, at 6:38 PM, Devang Patel wrote:
>>> So what does this assert mean, exactly?
>> In simple word, pass manager is unable to fulfill your request.
> Can you explain this one in complex words then? :^)  I've encountered 
> the same problem.
> --Vikram

More information about the llvm-dev mailing list