llvm-project/llvm/lib/Transforms/Scalar
Max Kazantsev ccf788a565 [IRCE] Drop SCEV of a Phi after adding a new input. PR57335
Since SCEV learned to look through single value phis with
20d798bd47, whenever we add
a new input to a Phi, we should make sure that the old cached
value is dropped. Otherwise, it may lead to various miscompiles,
such as breach of dominance as shown in the bug
https://github.com/llvm/llvm-project/issues/57335
2022-08-25 18:14:29 +07:00
..
ADCE.cpp [Scalar] Qualify auto in range-based for loops (NFC) 2022-08-20 21:18:25 -07:00
AlignmentFromAssumptions.cpp
AnnotationRemarks.cpp
BDCE.cpp
CMakeLists.txt
CallSiteSplitting.cpp [Transforms] Qualify auto in range-based for loops (NFC) 2022-08-14 12:51:58 -07:00
ConstantHoisting.cpp Remove redundant initialization of Optional (NFC) 2022-08-20 21:18:28 -07:00
ConstraintElimination.cpp Recommit "[ConstraintElimination] Transfer info from ULT to signed system." 2022-06-24 09:27:14 +02:00
CorrelatedValuePropagation.cpp [Transforms] Fix comment typos (NFC) 2022-08-07 23:55:24 -07:00
DCE.cpp
DFAJumpThreading.cpp [NFC] Switch a few uses of undef to poison as placeholders for unreachble code 2022-07-03 14:34:03 +01:00
DeadStoreElimination.cpp Use Optional::transform instead of Optional::map (NFC) 2022-08-13 11:48:26 -07:00
DivRemPairs.cpp
EarlyCSE.cpp Fix build error: [FPEnv][EarlyCSE] Support for CSE when exception behavior is "ignore" or "maytrap" and the rounding mode is known. 2022-08-16 08:47:36 -04:00
FlattenCFGPass.cpp
Float2Int.cpp
GVN.cpp [Transforms] Qualify auto in range-based for loops (NFC) 2022-08-14 12:51:58 -07:00
GVNHoist.cpp [Scalar] Qualify auto in range-based for loops (NFC) 2022-08-20 21:18:25 -07:00
GVNSink.cpp [NFC] Switch a few uses of undef to poison as placeholders for unreachable code 2022-07-30 13:55:56 +01:00
GuardWidening.cpp
IVUsersPrinter.cpp
IndVarSimplify.cpp [llvm] LLVM_FALLTHROUGH => [[fallthrough]]. NFC 2022-08-08 11:24:15 -07:00
InductiveRangeCheckElimination.cpp [IRCE] Drop SCEV of a Phi after adding a new input. PR57335 2022-08-25 18:14:29 +07:00
InferAddressSpaces.cpp [NFC][Alignment] Simplify code 2022-06-10 15:25:28 +00:00
InstSimplifyPass.cpp
JumpThreading.cpp [Scalar] Qualify auto in range-based for loops (NFC) 2022-08-20 21:18:25 -07:00
LICM.cpp [Scalar] Qualify auto in range-based for loops (NFC) 2022-08-20 21:18:25 -07:00
LoopAccessAnalysisPrinter.cpp
LoopBoundSplit.cpp
LoopDataPrefetch.cpp Allow data prefetch into non-default address space 2022-07-27 10:01:26 -07:00
LoopDeletion.cpp [Transforms] Qualify auto in range-based for loops (NFC) 2022-08-14 12:51:58 -07:00
LoopDistribute.cpp [Scalar] Qualify auto in range-based for loops (NFC) 2022-08-20 21:18:25 -07:00
LoopFlatten.cpp [CostModel] Replace getUserCost with getInstructionCost 2022-08-18 11:55:23 +01:00
LoopFuse.cpp Remove redundant initialization of Optional (NFC) 2022-08-20 21:18:28 -07:00
LoopIdiomRecognize.cpp [AA] Make ModRefInfo a bitmask enum (NFC) 2022-08-03 10:05:55 +02:00
LoopInstSimplify.cpp Don't use Optional::hasValue (NFC) 2022-06-20 20:17:57 -07:00
LoopInterchange.cpp [LoopInterchange][PR56275] Fix legality with negative dependence vectors 2022-08-03 19:59:01 -04:00
LoopLoadElimination.cpp
LoopPassManager.cpp
LoopPredication.cpp [LoopPredication] Use isSafeToExpandAt() member function (NFC) 2022-07-14 14:49:07 +02:00
LoopRerollPass.cpp
LoopRotation.cpp [llvm] Don't use Optional::hasValue (NFC) 2022-06-26 18:31:51 -07:00
LoopSimplifyCFG.cpp [Transforms] Fix comment typos (NFC) 2022-08-07 23:55:24 -07:00
LoopSink.cpp [Transforms] Fix comment typos (NFC) 2022-08-07 23:55:24 -07:00
LoopStrengthReduce.cpp Use range-based for loops (NFC) 2022-08-20 21:18:32 -07:00
LoopUnrollAndJamPass.cpp [llvm] Use value instead of getValue (NFC) 2022-07-13 23:11:56 -07:00
LoopUnrollPass.cpp [CostModel] Replace getUserCost with getInstructionCost 2022-08-18 11:55:23 +01:00
LoopVersioningLICM.cpp
LowerAtomicPass.cpp
LowerConstantIntrinsics.cpp [llvm] Don't use Optional::hasValue (NFC) 2022-06-26 18:31:51 -07:00
LowerExpectIntrinsic.cpp [llvm] Qualify auto (NFC) 2022-08-07 23:55:27 -07:00
LowerGuardIntrinsic.cpp
LowerMatrixIntrinsics.cpp [Transforms] Qualify auto in range-based for loops (NFC) 2022-08-14 12:51:58 -07:00
LowerWidenableCondition.cpp
MakeGuardsExplicit.cpp
MemCpyOptimizer.cpp [Alignment] Replace commonAlignment with std::min 2022-06-28 07:15:02 +00:00
MergeICmps.cpp
MergedLoadStoreMotion.cpp
NaryReassociate.cpp Revert "Use std::is_same_v instead of std::is_same (NFC)" 2022-08-20 23:00:39 -07:00
NewGVN.cpp [ADT] Deprecate is_splat and replace all uses with all_equal 2022-08-23 11:36:27 -04:00
PartiallyInlineLibCalls.cpp Don't use Optional::hasValue (NFC) 2022-06-20 20:17:57 -07:00
PlaceSafepoints.cpp
Reassociate.cpp [llvm] Qualify auto (NFC) 2022-08-07 23:55:27 -07:00
Reg2Mem.cpp
RewriteStatepointsForGC.cpp [Scalar] Qualify auto in range-based for loops (NFC) 2022-08-20 21:18:25 -07:00
SCCP.cpp [Scalar] Qualify auto in range-based for loops (NFC) 2022-08-20 21:18:25 -07:00
SROA.cpp [SROA] Try harder to find a vector promotion viable type when rewriting 2022-08-08 11:04:01 -07:00
Scalar.cpp [LegacyPM] Remove {,PostInline}EntryExitInstrumenterPass 2022-07-23 15:30:15 -07:00
ScalarizeMaskedMemIntrin.cpp Don't use Optional::hasValue (NFC) 2022-06-20 20:17:57 -07:00
Scalarizer.cpp [NFC] Switch a few uses of undef to poison as placeholders for unreachble code 2022-06-30 21:47:31 +01:00
SeparateConstOffsetFromGEP.cpp
SimpleLoopUnswitch.cpp [CostModel] Replace getUserCost with getInstructionCost 2022-08-18 11:55:23 +01:00
SimplifyCFGPass.cpp
Sink.cpp
SpeculativeExecution.cpp [CostModel] Replace getUserCost with getInstructionCost 2022-08-18 11:55:23 +01:00
StraightLineStrengthReduce.cpp
StructurizeCFG.cpp [Scalar] Qualify auto in range-based for loops (NFC) 2022-08-20 21:18:25 -07:00
TLSVariableHoist.cpp
TailRecursionElimination.cpp KCFI sanitizer 2022-08-24 22:41:38 +00:00
WarnMissedTransforms.cpp [llvm] Use value_or instead of getValueOr (NFC) 2022-06-18 23:07:11 -07:00