[LLVMdev] Passes calling

Chandler Carruth chandlerc at google.com
Thu Jun 12 09:03:27 PDT 2014


On Thu, Jun 12, 2014 at 4:45 PM, Hanbing Li <hanbing.li at inria.fr> 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?
>

Currently, the pass manager allows you (somewhat) to use the addRequired
mechanism even with analyses. However, I strongly encourage you to not
leverage it as it will eventually go away.

Instead, your pass should gracefully degrade in the absence of loops being
in simplified form (it is easy to test for this with LoopInfo). Then, you
should ensure that the PassManagerBuilder (or whatever other system you use
to build up a pipeline) puts the loops into simplified form prior to
running your pass.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20140612/8d397b64/attachment.html>


More information about the llvm-dev mailing list