[LLVMdev] IR Passes and TargetTransformInfo: Straw Man

Andrew Trick atrick at apple.com
Wed Jul 17 19:59:18 PDT 2013


On Jul 17, 2013, at 7:09 PM, Shuxin Yang <shuxin.llvm at gmail.com> wrote:

> Andy and I briefly discussed this  the other day, we have not yet got chance to list a detailed pass order 
> for the pre- and post- IPO scalar optimizations. 
> 
> This is wish-list in our mind:
> 
> pre-IPO:  based on the ordering he propose, get rid of the inlining (or just inline tiny func), get rid of 
>                all loop xforms...
> 
> post-IPO: get rid of inlining, or maybe we still need it, only perform the inling to to callee which now become tiny.
>                enable the loop xforms.
> 
>                 The SCC pass manager seems to be important inling,  no matter how the inling looks like in the future, 
>                 I think the passmanager is still useful for scalar opt.  It enable us to achieve cheap inter-procedural 
>                 opt hands down in the sense that we can optimize callee, analyze it, and feedback the detailed whatever
>                 info  back to caller (say info like "the callee already return constant 5", the "callee return value in 5-10", 
>                 and such info is difficult to obtain and IPO stage, as it can not afford to take such closer look. 
> 
> I think it is too early to discuss the pre-IPO and post-IPO thing, let us focus on what Andy is proposing. 

Right. We don’t need to debate the specifics of the LTO pipeline yet, particularly in this thread. The important thing is that the function passes will run in the same order for LTO, so we should probably factor PassManagerBuilder to make that easy. The difference with LTO is that some of the canonical IR passes will end up running at least twice, in both pre and post IPO. The lowering IR passes will only run in post IPO.

-Andy
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20130717/11f09d82/attachment.html>


More information about the llvm-dev mailing list