[llvm-commits] [llvm] r130241 - in /llvm/trunk: include/llvm/Support/StandardPasses.h test/Transforms/PhaseOrdering/ test/Transforms/PhaseOrdering/basic.ll test/Transforms/ScalarRepl/dg.exp

Duncan Sands baldrick at free.fr
Wed Apr 27 04:53:52 PDT 2011


Thanks Cameron.  I've removed the LCSSA form preserving logic from instcombine.

Ciao, Duncan.

On 27/04/11 09:36, Cameron Zwarich wrote:
> On 2011-04-27, at 12:27 AM, Chris Lattner wrote:
>
>> On Apr 26, 2011, at 11:57 PM, Duncan Sands wrote:
>>
>>> Hi Chris,
>>>
>>>> 2. Move the "clean up after the unroller" pass to the very end of the
>>>>    function-level pass pipeline.  Loop unroll uses instsimplify now,
>>>>    so it doesn't create a ton of trash.  Moving instcombine later allows
>>>>    it to clean up after opportunities are exposed by GVN, DSE, etc.
>>>
>>> am I right in thinking that there is no longer any point to having instcombine
>>> try to preserve LCSSA form?  If so, I will rip that code out.
>>
>> Yep, I'm pretty sure that we haven't been running instcombine in the loop pass manager for quite a while.  Cameron, is this true?
>
> Yeah, instcombine breaks the pipelining of the loop pass manager in the way that we were running it as a function pass, so there were two loop pass managers. Since loop passes can't be preserved across loop pass managers, LCSSA was always recomputed afterwards:
>
>            Loop Invariant Code Motion
>            Loop-Closed SSA Form Pass
>            Unswitch loops
>          Combine redundant instructions
>          Scalar Evolution Analysis
>          Loop Pass Manager
>            Canonicalize natural loops
>            Loop-Closed SSA Form Pass
>
> Cameron




More information about the llvm-commits mailing list