1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-21 20:12:56 +02:00
llvm-mirror/test/Transforms/LoopUnroll
Michael Zolotukhin 71a368d115 Don't recompute LCSSA after loop-unrolling when possible.
Summary:
Currently we always recompute LCSSA for outer loops after unrolling an
inner loop. That leads to compile time problem when we have big loop
nests, and we can solve it by avoiding unnecessary work. For instance,
if w eonly do partial unrolling, we don't break LCSSA, so we don't need
to rebuild it. Also, if all exits from the inner loop are inside the
enclosing loop, then complete unrolling won't break LCSSA either.

I replaced unconditional LCSSA recomputation with conditional recomputation +
unconditional assert and added several tests, which were failing when I
experimented with it.

Soon I plan to follow up with a similar patch for recalculation of dominators
tree.

Reviewers: hfinkel, dexonsmith, bogner, joker.eph, chandlerc

Subscribers: llvm-commits

Differential Revision: http://reviews.llvm.org/D14526

llvm-svn: 253126
2015-11-14 05:51:41 +00:00
..
AArch64
PowerPC [PPC/LoopUnrollRuntime] Don't avoid high-cost trip count computation on the PPC/A2 2015-05-21 20:30:23 +00:00
X86 Roll forward r243250 2015-07-26 19:10:03 +00:00
2004-05-13-DontUnrollTooMuch.ll
2005-03-06-BadLoopInfoUpdate.ll
2006-08-24-MultiBlockLoop.ll
2007-04-16-PhiUpdate.ll
2007-05-05-UnrollMiscomp.ll
2007-05-09-UnknownTripCount.ll
2007-11-05-Crash.ll
2011-08-08-PhiUpdate.ll
2011-08-09-IVSimplify.ll
2011-08-09-PhiUpdate.ll
2011-10-01-NoopTrunc.ll
2012-04-09-unroll-indirectbr.ll
basic.ll
ephemeral.ll
full-unroll-bad-cost.ll [LoopUnroll] Fix truncation bug in canUnrollCompletely. 2015-06-06 05:24:10 +00:00
full-unroll-crashers.ll [Unroll] Do not crash trying to propagate a value to vector load. 2015-09-22 22:27:12 +00:00
full-unroll-heuristics-2.ll [Unroll] Follow-up for r247769: fix a bug in UnrolledInstAnalyzer::visitLoad. 2015-09-22 21:41:29 +00:00
full-unroll-heuristics-cast.ll Tidy-up test case from r242257. 2015-07-15 01:51:51 +00:00
full-unroll-heuristics-cmp.ll Handle resolvable branches in complete loop unroll heuristic. 2015-07-24 01:53:04 +00:00
full-unroll-heuristics-phi-prop.ll [Unroll] Improve the brute force loop unroll estimate by propagating 2015-08-03 20:32:27 +00:00
full-unroll-heuristics.ll [Unroll] Rework the naming and structure of the new unroll heuristics. 2015-06-05 17:01:43 +00:00
high-cost-trip-count-computation.ll
ignore-annotation-intrinsic-cost.ll
loop-remarks.ll
nsw-tripcount.ll
partial-unroll-optsize.ll
pr10813.ll
pr11361.ll
pr14167.ll
pr18861.ll [Tests] Add one more case to LoopUnroll/pr18861.ll for better coverage. 2015-10-02 19:21:52 +00:00
rebuild_lcssa.ll Don't recompute LCSSA after loop-unrolling when possible. 2015-11-14 05:51:41 +00:00
runtime-loop1.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
runtime-loop2.ll
runtime-loop3.ll
runtime-loop4.ll
runtime-loop5.ll
runtime-loop.ll
scevunroll.ll Revert "[IndVarSimplify] Rewrite loop exit values with their initial values from loop preheader" 2015-11-03 07:14:39 +00:00
shifted-tripcount.ll
tripcount-overflow.ll
unloop.ll
unroll-cleanup.ll
unroll-pragmas-disabled.ll
unroll-pragmas.ll Add new llvm.loop.unroll.enable metadata. 2015-08-10 17:28:08 +00:00
update-loop-info-in-subloops.ll