llvm-project/llvm/lib/Transforms/Scalar
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
..
ADCE.cpp [PM] Normalize FIXMEs for missing PreserveCFG to have the same wording. 2016-06-28 00:54:12 +00:00
AlignmentFromAssumptions.cpp [PM] Port AlignmentFromAssumptions to the new PM. 2016-06-15 06:18:01 +00:00
BDCE.cpp [PM] Normalize FIXMEs for missing PreserveCFG to have the same wording. 2016-06-28 00:54:12 +00:00
CMakeLists.txt code hoisting pass based on GVN 2016-07-15 13:45:20 +00:00
ConstantHoisting.cpp This implements a more optimal algorithm for selecting a base constant in 2016-07-14 07:44:20 +00:00
ConstantProp.cpp Don't remove side effecting instructions due to ConstantFoldInstruction 2016-07-22 04:54:44 +00:00
CorrelatedValuePropagation.cpp This converts a signed remainder instruction to unsigned remainder, which 2016-07-14 12:23:48 +00:00
DCE.cpp Move helper classes into anonymous namespaces. NFC. 2016-05-15 15:18:11 +00:00
DeadStoreElimination.cpp [DSE] Fix bug in updating MadeChange flag 2016-07-27 17:25:20 +00:00
EarlyCSE.cpp [EarlyCSE] Correctly handle simplified, but live, instructions 2016-07-29 05:39:21 +00:00
FlattenCFGPass.cpp Scalar: Remove some implicit ilist iterator conversions, NFC 2015-10-13 18:26:00 +00:00
Float2Int.cpp [PM] Normalize FIXMEs for missing PreserveCFG to have the same wording. 2016-06-28 00:54:12 +00:00
GVN.cpp [ConstnatFolding] Teach the folder how to fold ConstantVector 2016-07-29 03:27:26 +00:00
GVNHoist.cpp [GVNHoist] Fix typo in assert. 2016-07-27 06:34:53 +00:00
GuardWidening.cpp fix formatting, typo; NFC 2016-06-19 17:20:27 +00:00
IndVarSimplify.cpp [IndVars] Reflow oddly formatted condition; NFC 2016-07-21 18:58:01 +00:00
InductiveRangeCheckElimination.cpp [IRCE] Add an option to skip profitability checks 2016-07-22 00:40:56 +00:00
JumpThreading.cpp Don't remove side effecting instructions due to ConstantFoldInstruction 2016-07-22 04:54:44 +00:00
LICM.cpp Don't remove side effecting instructions due to ConstantFoldInstruction 2016-07-22 04:54:44 +00:00
LLVMBuild.txt Update libdeps in LLVMipo and LLVMScalarOpts, corresponding to r245940. 2015-08-25 17:11:17 +00:00
LoadCombine.cpp Address Eli's post-commit comments 2016-06-19 21:36:35 +00:00
LoopDataPrefetch.cpp [LoopDataPrefetch] Fix unused variable in release build 2016-07-22 23:08:10 +00:00
LoopDeletion.cpp [PM] Port Dead Loop Deletion Pass to the new PM 2016-07-14 18:28:29 +00:00
LoopDistribute.cpp [OptDiag,LDist] Convert remaining opt remarks to use the new API 2016-07-21 21:21:34 +00:00
LoopIdiomRecognize.cpp [PM] Port LoopIdiomRecognize Pass to new PM 2016-07-12 18:45:51 +00:00
LoopInstSimplify.cpp [PM] Convert LoopInstSimplify Pass to new PM 2016-07-15 16:42:11 +00:00
LoopInterchange.cpp [Loop Vectorizer] Handling loops FP induction variables. 2016-07-24 07:24:54 +00:00
LoopLoadElimination.cpp Rename LoopAccessAnalysis to LoopAccessLegacyAnalysis /NFC 2016-07-08 20:55:26 +00:00
LoopRerollPass.cpp [LoopReroll] Reroll loops with unordered atomic memory accesses 2016-07-19 00:23:54 +00:00
LoopRotation.cpp Give helper classes/functions internal linkage. NFC. 2016-07-10 11:28:51 +00:00
LoopSimplifyCFG.cpp LoopSimplifyCFG: Prefer `const auto &` to `auto &`, for clarity. NFC 2016-06-17 17:59:48 +00:00
LoopStrengthReduce.cpp [PM] Convert Loop Strength Reduce pass to new PM 2016-07-18 21:41:50 +00:00
LoopUnrollPass.cpp [LoopUnroll] Include hotness of region in opt remark 2016-07-29 19:29:47 +00:00
LoopUnswitch.cpp Apply clang-tidy's modernize-loop-convert to most of lib/Transforms. 2016-06-26 12:28:59 +00:00
LoopVersioningLICM.cpp Rename LoopAccessAnalysis to LoopAccessLegacyAnalysis /NFC 2016-07-08 20:55:26 +00:00
LowerAtomic.cpp [PM] Remove support for omitting the AnalysisManager argument to new 2016-06-17 00:11:01 +00:00
LowerExpectIntrinsic.cpp [PM] Remove support for omitting the AnalysisManager argument to new 2016-06-17 00:11:01 +00:00
LowerGuardIntrinsic.cpp [PM] Port LowerGuardIntrinsic to the new PM. 2016-07-28 22:08:41 +00:00
MemCpyOptimizer.cpp Apply clang-tidy's modernize-loop-convert to most of lib/Transforms. 2016-06-26 12:28:59 +00:00
MergedLoadStoreMotion.cpp [MergedLoadStoreMotion] Remove out of date comment 2016-07-21 05:59:51 +00:00
NaryReassociate.cpp [PM] Port NaryReassociate to the new PM 2016-07-21 22:28:52 +00:00
PartiallyInlineLibCalls.cpp [PM] Port PartiallyInlineLibCalls to the new pass manager. 2016-05-25 23:38:53 +00:00
PlaceSafepoints.cpp Apply clang-tidy's modernize-loop-convert to most of lib/Transforms. 2016-06-26 12:28:59 +00:00
Reassociate.cpp [PM] Normalize FIXMEs for missing PreserveCFG to have the same wording. 2016-06-28 00:54:12 +00:00
Reg2Mem.cpp Apply clang-tidy's modernize-loop-convert to most of lib/Transforms. 2016-06-26 12:28:59 +00:00
RewriteStatepointsForGC.cpp Apply clang-tidy's modernize-loop-convert to most of lib/Transforms. 2016-06-26 12:28:59 +00:00
SCCP.cpp [SCCP] Zap multiple return values. 2016-07-20 20:17:13 +00:00
SROA.cpp Fix formatting of r273144. NFC. 2016-06-20 11:19:58 +00:00
Scalar.cpp [PM] Port LowerGuardIntrinsic to the new PM. 2016-07-28 22:08:41 +00:00
Scalarizer.cpp Scalarizer: Support scalarizing intrinsics 2016-07-25 20:02:54 +00:00
SeparateConstOffsetFromGEP.cpp Apply clang-tidy's modernize-loop-convert to most of lib/Transforms. 2016-06-26 12:28:59 +00:00
SimplifyCFGPass.cpp Move instances of std::function. 2016-06-12 16:13:55 +00:00
Sink.cpp [Sink] Don't move calls to readonly functions across stores 2016-07-11 14:11:51 +00:00
SpeculativeExecution.cpp Mark that SpeculativeExecution preserves Globals Alias Analysis. 2016-05-03 08:33:26 +00:00
StraightLineStrengthReduce.cpp [SLSR] Call getPointerSizeInBits with the correct address space. 2016-07-11 18:13:28 +00:00
StructurizeCFG.cpp StructurizeCFG: Fix inverting constantexpr conditions 2016-07-15 22:13:16 +00:00
TailRecursionElimination.cpp [PM] Port TailCallElim 2016-07-06 23:48:41 +00:00