llvm-project/llvm/test/Transforms/LoopUnroll
Adam Nemet 12937c361f [LoopUnroll] Include hotness of region in opt remark
LoopUnroll is a loop pass, so the analysis of OptimizationRemarkEmitter
is added to the common function analysis passes that loop passes
depend on.

The BFI and indirectly BPI used in this pass is computed lazily so no
overhead should be observed unless -pass-remarks-with-hotness is used.

This is how the patch affects the O3 pipeline:

         Dominator Tree Construction
         Natural Loop Information
         Canonicalize natural loops
         Loop-Closed SSA Form Pass
         Basic Alias Analysis (stateless AA impl)
         Function Alias Analysis Results
         Scalar Evolution Analysis
+        Lazy Branch Probability Analysis
+        Lazy Block Frequency Analysis
+        Optimization Remark Emitter
         Loop Pass Manager
           Rotate Loops
           Loop Invariant Code Motion
           Unswitch loops
         Simplify the CFG
         Dominator Tree Construction
         Basic Alias Analysis (stateless AA impl)
         Function Alias Analysis Results
         Combine redundant instructions
         Natural Loop Information
         Canonicalize natural loops
         Loop-Closed SSA Form Pass
         Scalar Evolution Analysis
+        Lazy Branch Probability Analysis
+        Lazy Block Frequency Analysis
+        Optimization Remark Emitter
         Loop Pass Manager
           Induction Variable Simplification
           Recognize loop idioms
           Delete dead loops
           Unroll loops
...

llvm-svn: 277203
2016-07-29 19:29:47 +00:00
..
AArch64 The patch fixes PR27392. 2016-04-27 03:04:54 +00:00
AMDGPU AMDGPU: Remove some old intrinsic uses from tests 2016-02-11 06:02:01 +00:00
PowerPC Loop unroller: set thresholds for optsize and minsize functions to zero 2016-05-10 21:45:55 +00:00
X86 Adds the ability to use an epilog remainder loop during loop unrolling and makes 2016-04-05 12:19:35 +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
convergent.ll [LoopUnroll] Respect the convergent attribute. 2016-03-14 23:15:34 +00:00
ephemeral.ll
full-unroll-bad-cost.ll
full-unroll-crashers.ll [LoopUnrollAnalyzer] Fix a bug in UnrolledInstAnalyzer::visitLoad. 2016-06-23 14:31:31 +00:00
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 Adds the ability to use an epilog remainder loop during loop unrolling and makes 2016-04-05 12:19:35 +00:00
ignore-annotation-intrinsic-cost.ll
loop-remarks-with-hotness.ll [LoopUnroll] Include hotness of region in opt remark 2016-07-29 19:29:47 +00:00
loop-remarks.ll
partial-unroll-const-bounds.ll The patch refactors unroll pass. 2016-05-27 23:15:06 +00:00
pr10813.ll
pr11361.ll
pr14167.ll
pr18861.ll
pr27157.ll [LoopUnroll] Fix the way we update DT after complete unrolling. 2016-04-06 21:47:12 +00:00
pr28132.ll [LoopUnroll] Don't crash trying to unroll loop with EH pad exit 2016-06-15 00:19:56 +00:00
rebuild_lcssa.ll [LoopUnrolling] Fix a bug introduced in r259869 (PR26688). 2016-02-22 21:21:45 +00:00
runtime-loop.ll The patch fixes PR27392. 2016-04-27 03:04:54 +00:00
runtime-loop1.ll The patch fixes PR27392. 2016-04-27 03:04:54 +00:00
runtime-loop2.ll Adds the ability to use an epilog remainder loop during loop unrolling and makes 2016-04-05 12:19:35 +00:00
runtime-loop3.ll
runtime-loop4.ll Adds the ability to use an epilog remainder loop during loop unrolling and makes 2016-04-05 12:19:35 +00:00
runtime-loop5.ll Adds the ability to use an epilog remainder loop during loop unrolling and makes 2016-04-05 12:19:35 +00:00
scevunroll.ll
shifted-tripcount.ll
tripcount-overflow.ll The patch fixes PR27392. 2016-04-27 03:04:54 +00:00
unloop.ll [LoopUnroll] Include hotness of region in opt remark 2016-07-29 19:29:47 +00:00
unroll-cleanup.ll Adds the ability to use an epilog remainder loop during loop unrolling and makes 2016-04-05 12:19:35 +00:00
unroll-cleanuppad.ll [LoopUnroll] Unroll loops which have exit blocks to EH pads 2016-05-03 03:57:40 +00:00
unroll-count.ll The patch set unroll disable pragma when unroll 2016-06-08 20:21:24 +00:00
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