<div dir="ltr"><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Jun 12, 2014 at 4:45 PM, Hanbing Li <span dir="ltr"><<a href="mailto:hanbing.li@inria.fr" target="_blank">hanbing.li@inria.fr</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div>Hi,</div><div><br></div><div>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.</div>
<div>When a pass needs another transform pass, can it call it automatically?</div><div>For example:</div><div>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?</div>
</blockquote></div><br>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.</div><div class="gmail_extra">
<br></div><div class="gmail_extra">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.</div>
</div>