llvm-project/llvm/lib/Transforms/Scalar
Florian Hahn 1272f16d14
[LoopUnswitch] Avoid partially unswitching too aggressively.
This patch adds additional checks to avoid partial unswitching
in cases where it won't be profitable, e.g. because the path directly
exits the loop anyways.
2021-01-26 15:18:41 +00:00
..
ADCE.cpp [ADCE] Use succ_empty (NFC) 2020-11-15 19:52:59 -08:00
AlignmentFromAssumptions.cpp Reland [AssumeBundles] Use operand bundles to encode alignment assumptions 2020-09-12 15:36:06 +02:00
AnnotationRemarks.cpp Add !annotation metadata and remarks pass. 2020-11-13 13:24:10 +00:00
BDCE.cpp [BDCE] SExt -> ZExt when no sign bits is used and instruction has multiple uses 2020-07-10 08:34:53 +01:00
CMakeLists.txt [ScalarizeMaskedMemIntrinsic] Move from CodeGen into Transforms 2020-12-08 12:25:58 -05:00
CallSiteSplitting.cpp [Support] Introduce a new InstructionCost class 2020-12-11 08:12:54 +00:00
ConstantHoisting.cpp [Scalar] ConstantHoistingPass - iterate with const references. NFCI. 2020-09-24 18:40:50 +01:00
ConstraintElimination.cpp [CodeGen, Transforms] Use llvm::sort (NFC) 2021-01-14 20:30:31 -08:00
CorrelatedValuePropagation.cpp [CVP] Simplify and generalize switch handling 2020-12-12 21:12:27 +01:00
DCE.cpp [DCE] Always get TargetLibraryInfo 2020-11-17 20:41:05 -08:00
DeadStoreElimination.cpp [Target, Transforms] Use contains (NFC) 2020-12-19 10:43:19 -08:00
DivRemPairs.cpp [ValueTracking] Use assume's noundef operand bundle 2020-10-14 20:16:33 +09:00
EarlyCSE.cpp [noalias.decl] Look through llvm.experimental.noalias.scope.decl 2021-01-19 20:09:42 +01:00
FlattenCFGPass.cpp [NFC] Reduce include files dependency and AA header cleanup (part 2). 2020-12-17 14:04:48 +03:00
Float2Int.cpp [NFC] Reduce include files dependency and AA header cleanup (part 2). 2020-12-17 14:04:48 +03:00
GVN.cpp [GVN] do not repeat PRE on failure to split critical edge 2021-01-25 11:23:44 -08:00
GVNHoist.cpp Require chained analyses in BasicAA and AAResults to be transitive 2021-01-11 11:50:07 +01:00
GVNSink.cpp [Transforms] Use llvm::append_range (NFC) 2021-01-20 21:35:54 -08:00
GuardWidening.cpp [llvm] Use llvm::all_of (NFC) 2021-01-19 20:19:17 -08:00
IVUsersPrinter.cpp
IndVarSimplify.cpp [Transforms] Use llvm::erase_if (NFC) 2020-12-17 19:53:10 -08:00
InductiveRangeCheckElimination.cpp [IRCE] Remove unused IsSigned and its accessor (NFC) 2020-12-04 21:26:12 -08:00
InferAddressSpaces.cpp [NewPM] Port infer-address-spaces 2020-12-28 19:58:12 -08:00
InstSimplifyPass.cpp [Bindings] Move LLVMAddInstructionSimplifyPass to Scalar.cpp 2020-09-02 10:35:39 -07:00
JumpThreading.cpp [llvm] Use *Set::contains (NFC) 2021-01-07 20:29:34 -08:00
LICM.cpp [NFC][LICM] Minor improvements to debug output 2021-01-11 18:02:49 -08:00
LoopAccessAnalysisPrinter.cpp
LoopDataPrefetch.cpp [LoopInfo] empty() -> isInnermost(), add isOutermost() 2020-09-22 23:28:51 +03:00
LoopDeletion.cpp [LoopDeletion] Handle inner loops w/untaken backedges 2021-01-22 16:31:29 -08:00
LoopDistribute.cpp [NFC] Reduce include files dependency and AA header cleanup (part 2). 2020-12-17 14:04:48 +03:00
LoopFlatten.cpp [LoopFlatten] Widen IV, support ZExt. 2020-11-23 08:57:19 +00:00
LoopFuse.cpp [Transforms] Construct SmallVector with iterator ranges (NFC) 2021-01-02 09:24:17 -08:00
LoopIdiomRecognize.cpp [LoopIdiom] 'left-shift until bittest': don't forget to check that PHI node is in loop header 2020-12-30 23:58:41 +03:00
LoopInstSimplify.cpp
LoopInterchange.cpp Scalar: Don't visit constants in findInnerReductionPhi in LoopInterchange 2021-01-21 12:33:06 -08:00
LoopLoadElimination.cpp [NFC] Reduce include files dependency and AA header cleanup (part 2). 2020-12-17 14:04:48 +03:00
LoopPassManager.cpp [LoopNest] Extend `LPMUpdater` and adaptor to handle loop-nest passes 2020-12-22 08:47:38 +08:00
LoopPredication.cpp [BPI] Improve static heuristics for "cold" paths. 2020-12-23 22:47:36 +07:00
LoopRerollPass.cpp [llvm] Use *Set::contains (NFC) 2021-01-07 20:29:34 -08:00
LoopRotation.cpp [LoopRotate] Add PrepareForLTO stage, avoid rotating with inline cands. 2021-01-19 10:15:29 +00:00
LoopSimplifyCFG.cpp [DominatorTree] Add support for mixed pre/post CFG views. 2021-01-06 14:53:09 -08:00
LoopSink.cpp Set option default for enabling memory ssa for new pass manager loop sink pass to true. 2021-01-15 09:56:44 -05:00
LoopStrengthReduce.cpp [llvm] Use pop_back_val (NFC) 2021-01-23 10:56:33 -08:00
LoopUnrollAndJamPass.cpp [LoopUnrollAndJam] Allow unroll and jam loops forced by user. 2020-09-17 19:40:14 +00:00
LoopUnrollPass.cpp [Passes] Run peeling as part of simple/full loop unrolling. 2021-01-26 13:52:30 +00:00
LoopUnswitch.cpp [LoopUnswitch] Avoid partially unswitching too aggressively. 2021-01-26 15:18:41 +00:00
LoopVersioningLICM.cpp [SCEV] Use isa<> pattern for testing for CouldNotCompute [NFC] 2020-11-24 18:47:49 -08:00
LowerAtomic.cpp
LowerConstantIntrinsics.cpp [Transforms] Use pred_empty (NFC) 2020-11-16 22:09:14 -08:00
LowerExpectIntrinsic.cpp Revert "clang-misexpect: Profile Guided Validation of Performance Annotations in LLVM" 2020-11-14 13:12:38 +03:00
LowerGuardIntrinsic.cpp
LowerMatrixIntrinsics.cpp [llvm] Use pop_back_val (NFC) 2021-01-23 10:56:33 -08:00
LowerWidenableCondition.cpp
MakeGuardsExplicit.cpp
MemCpyOptimizer.cpp [Transforms] Use llvm::append_range (NFC) 2021-01-20 21:35:54 -08:00
MergeICmps.cpp [Transforms] Use llvm::find_if (NFC) 2021-01-09 09:24:58 -08:00
MergedLoadStoreMotion.cpp
NaryReassociate.cpp [llvm] Construct SmallVector with iterator ranges (NFC) 2021-01-20 21:35:52 -08:00
NewGVN.cpp [llvm] Use pop_back_val (NFC) 2021-01-23 10:56:33 -08:00
PartiallyInlineLibCalls.cpp
PlaceSafepoints.cpp [Transforms] Use llvm::append_range (NFC) 2020-12-27 09:57:29 -08:00
Reassociate.cpp [llvm] Use pop_back_val (NFC) 2021-01-23 10:56:33 -08:00
Reg2Mem.cpp [Reg2Mem] add support for the new pass manager 2020-11-08 11:14:05 +00:00
RewriteStatepointsForGC.cpp [llvm] Construct SmallVector with iterator ranges (NFC) 2021-01-16 09:40:53 -08:00
SCCP.cpp [llvm] Use pop_back_val (NFC) 2021-01-23 10:56:33 -08:00
SROA.cpp [llvm] Use *::empty (NFC) 2021-01-16 09:40:55 -08:00
Scalar.cpp [ScalarizeMaskedMemIntrin] Add new PM support 2020-12-08 17:15:22 -05:00
ScalarizeMaskedMemIntrin.cpp [ScalarizeMaskedMemIntrin] Add missing dependency 2021-01-19 22:33:47 +03:00
Scalarizer.cpp [Scalarizer] Use poison as insertelement's placeholder 2021-01-04 00:35:28 +09:00
SeparateConstOffsetFromGEP.cpp SeparateConstOffsetFromGEP::lowerToSingleIndexGEPs - don't use dyn_cast_or_null. NFCI. 2020-12-15 17:27:25 +00:00
SimpleLoopUnswitch.cpp [llvm] Use llvm::all_of (NFC) 2021-01-19 20:19:17 -08:00
SimplifyCFGPass.cpp [SimplifyCFG] Change 'LoopHeaders' to be ArrayRef<WeakVH>, not a naked set, thus avoiding dangling pointers 2021-01-23 16:48:35 +03:00
Sink.cpp Sink: Handle instruction sink when a user is dead 2020-10-09 16:20:26 -07:00
SpeculateAroundPHIs.cpp [Transforms] Use llvm::erase_if (NFC) 2020-12-17 19:53:10 -08:00
SpeculativeExecution.cpp [Target, Transforms] Use *Set::contains (NFC) 2021-01-08 18:39:54 -08:00
StraightLineStrengthReduce.cpp [llvm] Construct SmallVector with iterator ranges (NFC) 2021-01-20 21:35:52 -08:00
StructurizeCFG.cpp static const char *const foo => const char foo[] 2020-12-01 10:33:18 -08:00
TailRecursionElimination.cpp [CSSPGO] IR intrinsic for pseudo-probe block instrumentation 2020-11-20 10:39:24 -08:00
WarnMissedTransforms.cpp [SVE] Add support for scalable vectors with vectorize.scalable.enable loop attribute 2020-12-02 13:23:43 +00:00