llvm-project/llvm/lib/Transforms/Scalar
Philip Reames 1a25d0bfbb [LICM] Remove profile driven restriction on hoisting
This reverts change 2c391a5/D87551.  As noted in the llvm-dev thread "LICM as canonical form" sent earlier today, introducing this was a major design change made without sufficient cause.

A profile driven LICM is not an unreasonable design, it simply is not what we have.  Switching to such a model requires a lot more work than just this patch, and broad aggeement that is the right direction for the optimizer as a whole.

Worth noting is that all the tests included in the reverted changed are probably handled if we allow running unconstrained LICM, and later run LoopSink.  As such, we have no public examples which motivate a profit based hoisting approach.
2021-12-03 17:19:25 -08:00
..
ADCE.cpp Improve the effectiveness of ADCE's debug info salvaging 2021-09-28 10:24:50 -07:00
AlignmentFromAssumptions.cpp [AlignFromAssume] Bailout w/non-constant alignments (pr51680) 2021-08-31 09:20:52 -07:00
AnnotationRemarks.cpp [Remarks] Add analysis remarks for memset/memcpy/memmove lengths 2021-05-24 10:10:44 -07:00
BDCE.cpp [APInt] Stop using soft-deprecated constructors and methods in llvm. NFC. 2021-10-04 08:57:44 +01:00
CMakeLists.txt Add jump-threading optimization for deterministic finite automata 2021-07-27 14:34:04 -04:00
CallSiteSplitting.cpp [llvm] Use llvm::reverse (NFC) 2021-11-06 19:31:18 -07:00
ConstantHoisting.cpp [IR] Merge createReplacementInstr into ConstantExpr::getAsInstruction 2021-10-29 15:02:58 +01:00
ConstraintElimination.cpp [ConstraintElimination] Initial support for using info from assumes. 2021-08-26 10:08:00 +01:00
CorrelatedValuePropagation.cpp [CVP] Remove ashr of -1 or 0 2021-11-29 15:32:09 -08:00
DCE.cpp
DFAJumpThreading.cpp Use {DenseSet,SmallPtrSet}::contains (NFC) 2021-10-29 20:26:07 -07:00
DeadStoreElimination.cpp [MemoryLocation] Move DSE intrinsic handling to MemoryLocation. (NFC) 2021-12-03 16:00:39 +00:00
DivRemPairs.cpp [DivRemPairs] make sure we have a valid CFG for hoisting division 2021-07-28 11:09:12 -04:00
EarlyCSE.cpp [CSSPGO] Unblock optimizations with pseudo probe instrumentation part 3. 2021-10-12 09:44:12 -07:00
FlattenCFGPass.cpp
Float2Int.cpp [Transforms] Use {DenseSet,SetVector,SmallPtrSet}::contains (NFC) 2021-10-31 07:57:32 -07:00
GVN.cpp [llvm] Use GetElementPtrInst::indices (NFC) 2021-11-13 21:43:28 -08:00
GVNHoist.cpp [NFC] Rename GVN -> GVNPass and SROA -> SROAPass 2021-11-09 10:35:58 -08:00
GVNSink.cpp [NewPM] Don't mark AA analyses as preserved 2021-05-18 13:49:03 -07:00
GuardWidening.cpp [ConstantRange] Add exact union/intersect (NFC) 2021-11-07 21:46:06 +01:00
IVUsersPrinter.cpp
IndVarSimplify.cpp [indvars] Fix lftr crash when preheader is terminated by switch 2021-11-23 09:58:46 -08:00
InductiveRangeCheckElimination.cpp [NFC][NewPM] Remove some AnalysisManager invalidate methods 2021-04-15 16:51:26 -07:00
InferAddressSpaces.cpp [InferAddressSpaces] Support assumed addrspaces from addrspace predicates. 2021-11-08 16:51:57 -05:00
InstSimplifyPass.cpp
JumpThreading.cpp Re-apply "[JumpThreading] Ignore free instructions" 2021-09-24 18:52:30 +02:00
LICM.cpp [LICM] Remove profile driven restriction on hoisting 2021-12-03 17:19:25 -08:00
LoopAccessAnalysisPrinter.cpp
LoopBoundSplit.cpp [LoopBoundSplit] Handle the case in which exiting block is loop header 2021-10-08 09:13:41 +01:00
LoopDataPrefetch.cpp [LoopDataPrefetch] Add missed LoopSimplify dependence for prefetch pass 2021-08-26 21:01:59 +08:00
LoopDeletion.cpp [NFC][LoopDeletion] Count the number of broken backedges 2021-10-29 21:58:16 +03:00
LoopDistribute.cpp [BPI] Keep BPI available in loop passes through LoopStandardAnalysisResults 2021-09-30 10:27:05 -04:00
LoopFlatten.cpp [SCEV] Extend trip count to avoid overflow by default 2021-10-11 09:55:55 -07:00
LoopFuse.cpp [ADT] Remove StatisticBase and make NoopStatistic empty 2021-04-26 16:47:32 -07:00
LoopIdiomRecognize.cpp [Transforms] Use {DenseSet,SetVector,SmallPtrSet}::contains (NFC) 2021-10-31 07:57:32 -07:00
LoopInstSimplify.cpp [Scalar] Use make_early_inc_range (NFC) 2021-09-12 08:17:18 -07:00
LoopInterchange.cpp Put implementation details into anonymous namespaces. NFCI. 2021-11-07 15:18:30 +01:00
LoopLoadElimination.cpp [BPI] Keep BPI available in loop passes through LoopStandardAnalysisResults 2021-09-30 10:27:05 -04:00
LoopPassManager.cpp [NPM] Fix LoopNestPasses in -print-pipeline-passes 2021-12-01 07:57:17 +01:00
LoopPredication.cpp [LoopPredication] Calculate profitability without BPI 2021-10-19 14:24:04 -04:00
LoopRerollPass.cpp [LoopReroll] Add an extra defensive check to avoid SCEV assertion. 2021-07-13 12:17:09 -07:00
LoopRotation.cpp [MemorySSA] Remove -enable-mssa-loop-dependency option 2021-08-16 20:59:37 +02:00
LoopSimplifyCFG.cpp [llvm][NFC] Inclusive language: Reword replace uses of sanity in llvm/lib/Transform comments and asserts 2021-11-23 13:22:55 -05:00
LoopSink.cpp [Transforms] Use make_early_inc_range (NFC) 2021-11-02 18:13:23 -07:00
LoopStrengthReduce.cpp [DebugInfo][LSR] Add more stringent checks on IV selection and salvage 2021-11-09 13:09:37 +00:00
LoopUnrollAndJamPass.cpp [BasicTTIImpl][LoopUnroll] getUnrollingPreferences(): emit ORE remark when advising against unrolling due to a call in a loop 2021-08-03 00:57:26 +03:00
LoopUnrollPass.cpp [unroll] Fix a functional change in an NFC patch 2021-12-01 17:28:12 -08:00
LoopUnswitch.cpp [Analysis, Target, Transforms] Construct SmallVector with iterator ranges (NFC) 2021-09-07 09:19:33 -07:00
LoopVersioningLICM.cpp
LowerAtomic.cpp [NVPTX] Enable lowering of atomics on local memory 2021-04-26 20:12:12 -04:00
LowerConstantIntrinsics.cpp [LowerConstantIntrinsics] Fix heap-use-after-free bug in worklist 2021-09-21 11:33:07 +02:00
LowerExpectIntrinsic.cpp [Transforms] Use make_early_inc_range (NFC) 2021-11-02 18:13:23 -07:00
LowerGuardIntrinsic.cpp
LowerMatrixIntrinsics.cpp [NPM] Added -print-pipeline-passes print params for a few passes. 2021-09-15 08:34:04 +02:00
LowerWidenableCondition.cpp
MakeGuardsExplicit.cpp
MemCpyOptimizer.cpp [MemCpyOpt] Fix a variety of scalable-type crashes 2021-09-08 11:21:36 +01:00
MergeICmps.cpp [MergeICmps] Remove unused NumMerged variable 2021-09-21 21:43:25 +02:00
MergedLoadStoreMotion.cpp [NPM] Added -print-pipeline-passes print params for a few passes. 2021-09-15 08:34:04 +02:00
NaryReassociate.cpp [NARY-REASSOCIATE][NFC] Simplify min/max handling 2021-10-21 15:45:53 +07:00
NewGVN.cpp [llvm] Use isa instead of dyn_cast (NFC) 2021-11-14 19:40:46 -08:00
PartiallyInlineLibCalls.cpp [NFC] More get/removeAttribute() cleanup 2021-08-17 21:05:41 -07:00
PlaceSafepoints.cpp
Reassociate.cpp [llvm] Use range-based for loops (NFC) 2021-11-28 18:14:49 -08:00
Reg2Mem.cpp
RewriteStatepointsForGC.cpp [LLVM] Inclusive terms: remove/replace references to sanity in RewriteStatepointsForGC.cpp and test 2021-10-25 16:17:41 -04:00
SCCP.cpp [SCCP] Properly report changes when changing a pointer argument 2021-10-11 13:12:08 -07:00
SROA.cpp [NFC] Rename GVN -> GVNPass and SROA -> SROAPass 2021-11-09 10:35:58 -08:00
Scalar.cpp Add jump-threading optimization for deterministic finite automata 2021-07-27 14:34:04 -04:00
ScalarizeMaskedMemIntrin.cpp [llvm] Migrate from arg_operands to args (NFC) 2021-09-30 08:51:21 -07:00
Scalarizer.cpp [Scalarizer] Do not insert instructions between PHI nodes and debug intrinsics. 2021-11-02 09:53:59 -04:00
SeparateConstOffsetFromGEP.cpp [Transforms] Use make_early_inc_range (NFC) 2021-11-02 18:13:23 -07:00
SimpleLoopUnswitch.cpp [SimpleLoopUnswitch] Remove duplicate include. 2021-11-02 15:22:41 +01:00
SimplifyCFGPass.cpp [llvm][NFC] Inclusive language: Reword replace uses of sanity in llvm/lib/Transform comments and asserts 2021-11-23 13:22:55 -05:00
Sink.cpp [CSSPGO] Unblock optimizations with pseudo probe instrumentation part 2. 2021-04-26 16:52:33 -07:00
SpeculativeExecution.cpp [Transforms] Use {DenseSet,SetVector,SmallPtrSet}::contains (NFC) 2021-10-31 07:57:32 -07:00
StraightLineStrengthReduce.cpp [ADT] Add APInt::isNegatedPowerOf2() helper 2021-10-19 14:38:21 +01:00
StructurizeCFG.cpp
TailRecursionElimination.cpp [Transforms] Migrate from getNumArgOperands to arg_size (NFC) 2021-10-01 09:57:40 -07:00
WarnMissedTransforms.cpp