[LLVMdev] Passes calling

John Criswell criswell at illinois.edu
Thu Jun 12 09:09:25 PDT 2014


Dear Hanbing Li,

To the best of my knowledge, the pass dependency mechanism cannot be 
used to force one transform pass to be run before another pass.  You 
must simply setup the PassManager to ensure that the transform pass runs 
before your pass.

The reason for this is that adding a transform pass as a dependency can 
create a situation in which the PassManager cannot schedule the passes 
to be run (because the transform pass invalidates some analysis pass, 
creating a chicken-and-egg scheduling problem that PassManager cannot 
rectify).

Regards,

John Criswell

On 6/12/14, 10:45 AM, Hanbing Li wrote:
> Hi,
>
> I know when a pass needs other passes, it will use something like 
> this: "AU.addRequired<LoopInfo>();". But this is usually used for the 
> analysis passes.
> When a pass needs another transform pass, can it call it automatically?
> For example:
> Some loop optimizations may need loop-simplify, I need add 
> -loop-simplify before calling these passes manually, or they can call 
> the pass -loop-simplify automatically?
>
>
> Thank you
> Regards,
>
> Hanbing LI
>
>
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20140612/62295036/attachment.html>


More information about the llvm-dev mailing list