[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