1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-23 13:02:52 +02:00
llvm-mirror/test/Transforms/LoopUnroll
Michael Zolotukhin aaf9408cae [LoopUnroll] Enable advanced unrolling analysis by default.
Summary:
This patch turns on LoopUnrollAnalyzer by default. To mitigate compile
time regressions, I chose very conservative thresholds for now. Later we
can make them more aggressive, but it might require being smarter in
which loops we're optimizing. E.g. currently the biggest issue is that
with more agressive thresholds we unroll many cold loops, which
increases compile time for no performance benefit (performance of those
loops is improved, but it doesn't matter since they are cold).

Test results for compile time(using 4 samples to reduce noise):
```
MultiSource/Benchmarks/VersaBench/ecbdes/ecbdes 5.19%
SingleSource/Benchmarks/Polybench/medley/reg_detect/reg_detect  4.19%
MultiSource/Benchmarks/FreeBench/fourinarow/fourinarow  3.39%
MultiSource/Applications/JM/lencod/lencod 1.47%
MultiSource/Benchmarks/Fhourstones-3_1/fhourstones3_1 -6.06%
```

I didn't see any performance changes in the testsuite, but it improves
some internal tests.

Reviewers: hfinkel, chandlerc

Subscribers: llvm-commits, mzolotukhin

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

llvm-svn: 270478
2016-05-23 19:10:19 +00:00
..
AArch64
AMDGPU
PowerPC Loop unroller: set thresholds for optsize and minsize functions to zero 2016-05-10 21:45:55 +00:00
X86
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
convergent.ll
ephemeral.ll
full-unroll-bad-cost.ll
full-unroll-crashers.ll
full-unroll-heuristics-2.ll [LoopUnrollAnalyzer] Take into account cost of instructions controlling branches, along with their operands. 2016-05-18 21:20:12 +00:00
full-unroll-heuristics-cmp.ll [LoopUnrollAnalyzer] Don't treat gep-instructions with simplified offset as simplified. 2016-05-13 01:42:34 +00:00
full-unroll-heuristics-dce.ll Revert "Revert "[Unroll] Implement a conservative and monotonically increasing cost tracking system during the full unroll heuristic analysis that avoids counting any instruction cost until that instruction becomes "live" through a side-effect or use outside the..."" 2016-05-13 21:23:25 +00:00
full-unroll-heuristics-geps.ll Revert "Revert "[Unroll] Implement a conservative and monotonically increasing cost tracking system during the full unroll heuristic analysis that avoids counting any instruction cost until that instruction becomes "live" through a side-effect or use outside the..."" 2016-05-13 21:23:25 +00:00
full-unroll-heuristics-phi-prop.ll
full-unroll-heuristics.ll
high-cost-trip-count-computation.ll
ignore-annotation-intrinsic-cost.ll
loop-remarks.ll
nsw-tripcount.ll
partial-unroll-const-bounds.ll [LoopUnroll] Enable advanced unrolling analysis by default. 2016-05-23 19:10:19 +00:00
pr10813.ll
pr11361.ll
pr14167.ll
pr18861.ll
pr27157.ll
rebuild_lcssa.ll
runtime-loop1.ll
runtime-loop2.ll
runtime-loop3.ll
runtime-loop4.ll
runtime-loop5.ll
runtime-loop.ll
scevunroll.ll
shifted-tripcount.ll
tripcount-overflow.ll
unloop.ll
unroll-cleanup.ll
unroll-cleanuppad.ll
unroll-opt-attribute.ll Loop unroller: set thresholds for optsize and minsize functions to zero 2016-05-10 21:45:55 +00:00
unroll-pragmas-disabled.ll
unroll-pragmas.ll Loop unroller: set thresholds for optsize and minsize functions to zero 2016-05-10 21:45:55 +00:00
update-loop-info-in-subloops.ll