[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
Cameron Zwarich
zwarich at apple.com
Wed Apr 27 00:36:30 PDT 2011
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