llvm-project/llvm/lib/Transforms/Scalar
Florian Hahn 31cdb29de4 [DSE,MemorySSA] Return early when hitting a MemoryPhi.
A MemoryPhi can never be eliminated. If we hit one, return the Phi, so
the caller can continue traversing the incoming accesses.

This saves some unnecessary read clobber checks and improves
compile-time
http://llvm-compile-time-tracker.com/compare.php?from=1ffc58b6d098ce8fa71f3a80fe75b990f633f921&to=d0fa8d1982380b57d7b6067528104bc373dbe07a&stat=instructions
2020-08-29 18:28:26 +01:00
..
ADCE.cpp [ADCE] Fix incorrect reporting of CFG changes 2020-04-14 20:26:13 +07:00
AlignmentFromAssumptions.cpp Temporarily Revert "[AssumeBundles] Use operand bundles to encode alignment assumptions" 2020-07-16 11:54:04 -07: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 [ConstProp] Remove ConstantPropagation 2020-08-26 15:51:30 -07:00
CallSiteSplitting.cpp [CallSite removal][CallSiteSplitting] Use CallBase instead of CallSite. NFC 2020-04-15 15:38:02 -07:00
ConstantHoisting.cpp Revert rG5dd566b7c7b78bd- "PassManager.h - remove unnecessary Function.h/Module.h includes. NFCI." 2020-07-24 13:02:33 +01:00
CorrelatedValuePropagation.cpp [NewPM][LVI] Abandon LVI after CVP 2020-08-01 23:47:46 +02:00
DCE.cpp [AssumeBundles] preserve knowledge in DCE 2020-04-14 12:48:15 +02:00
DeadStoreElimination.cpp [DSE,MemorySSA] Return early when hitting a MemoryPhi. 2020-08-29 18:28:26 +01:00
DivRemPairs.cpp Correctly report modified status for DivRemPairs 2020-06-05 16:06:31 +02:00
EarlyCSE.cpp [EarlyCSE] fold commutable intrinsics 2020-08-29 12:11:01 -04:00
FlattenCFGPass.cpp
Float2Int.cpp [Float2Int] Stop passing around a reference to the class member Roots. NFC 2020-04-16 15:24:13 +02:00
GVN.cpp Revert "[Instruction] Add updateLocationAfterHoist helper" 2020-08-11 14:54:09 -07:00
GVNHoist.cpp NFC: [GVNHoist] Outline functions from the class 2020-08-17 17:40:04 -07:00
GVNSink.cpp Use llvm::is_contained where appropriate (NFC) 2020-07-27 10:20:44 -07:00
GuardWidening.cpp
IVUsersPrinter.cpp
IndVarSimplify.cpp [SCEV][IndVarSimplify] insert point should not be block front. 2020-07-17 22:25:10 -04:00
InductiveRangeCheckElimination.cpp LoopAnalysisManager.h - reduce includes to forward declarations. NFC. 2020-06-06 14:06:46 +01:00
InferAddressSpaces.cpp [InferAddressSpaces] Handle the pair of `ptrtoint`/`inttoptr`. 2020-06-25 20:46:56 -04:00
InstSimplifyPass.cpp [Hexagon] Use InstSimplify instead of ConstantProp 2020-08-04 15:42:39 -07:00
JumpThreading.cpp [JumpThreading] Allow duplicating a basic block into preds when its branch condition is freeze(phi) 2020-08-06 09:51:17 +09:00
LICM.cpp Revert "[Instruction] Add updateLocationAfterHoist helper" 2020-08-11 14:54:09 -07:00
LLVMBuild.txt
LoopAccessAnalysisPrinter.cpp
LoopDataPrefetch.cpp [SCEV] Move ScalarEvolutionExpander.cpp to Transforms/Utils (NFC). 2020-05-20 10:53:40 +01:00
LoopDeletion.cpp [LoopDeletion] Emit a remark when a dead loop is deleted 2020-07-03 15:20:23 -07:00
LoopDistribute.cpp Fix return status of LoopDistribute 2020-06-18 20:13:18 +02:00
LoopFuse.cpp [Loop Peeling] Separate the Loop Peeling Utilities from the Loop Unrolling Utilities 2020-07-31 18:31:58 +00:00
LoopIdiomRecognize.cpp Recommit "[SCEVExpander] Add helper to clean up instrs inserted while expanding." 2020-08-21 15:04:17 +01:00
LoopInstSimplify.cpp [Utils] Use WeakTrackingVH in vector used as scratch storage. 2020-01-23 16:04:57 -08:00
LoopInterchange.cpp [LoopInterchange] Move instructions from preheader to outer loop header. 2020-08-10 12:41:33 +01:00
LoopLoadElimination.cpp [LLE] std::inserter doesn't work with SmallSet, so don't use it. 2020-07-20 15:47:42 +02:00
LoopPassManager.cpp [NewPM][PassInstrumentation] Add PreservedAnalyses parameter to AfterPass* callbacks 2020-08-21 16:10:42 +07:00
LoopPredication.cpp [Transforms] Fix typos. NFC 2020-05-25 22:34:08 +02:00
LoopRerollPass.cpp [Analysis/Transforms/Sanitizers] As part of using inclusive language 2020-06-20 00:42:26 -07:00
LoopRotation.cpp [LoopRotate] Get and update MSSA only if available in legacy pass manager. 2020-02-14 10:47:26 -08:00
LoopSimplifyCFG.cpp [LoopSimplifyCFG] Delete landing pads in dead exit blocks 2020-07-29 18:36:51 +07:00
LoopSink.cpp
LoopStrengthReduce.cpp Reland "[SCEVExpander] Add option to preserve LCSSA directly." 2020-07-29 20:41:53 +01:00
LoopUnrollAndJamPass.cpp [Loop Peeling] Separate the Loop Peeling Utilities from the Loop Unrolling Utilities 2020-07-31 18:31:58 +00:00
LoopUnrollPass.cpp [LoopUnroll] Adjust CostKind query 2020-08-12 12:56:09 +01:00
LoopUnswitch.cpp Reland "[LoopUnswitch] Fix incorrect Modified status" 2020-08-20 11:52:09 +02:00
LoopVersioningLICM.cpp [CallSite removal] Remove unneeded includes of CallSite.h. NFC 2020-04-23 21:01:48 -07:00
LowerAtomic.cpp [Transforms] Simplify with make_early_inc_range 2020-02-02 00:54:32 -08:00
LowerConstantIntrinsics.cpp Preserve GlobalsAA analysis result in LowerConstantIntrinsics 2020-07-02 15:40:41 +01:00
LowerExpectIntrinsic.cpp Make helpers static. NFC. 2020-07-09 13:48:56 +02:00
LowerGuardIntrinsic.cpp
LowerMatrixIntrinsics.cpp [NFC] Remove unused GetUnderlyingObject paramenter 2020-07-31 02:10:03 -07:00
LowerWidenableCondition.cpp
MakeGuardsExplicit.cpp
MemCpyOptimizer.cpp Temporarily revert "[MemCpyOptimizer] Simplify API of processStore and processMem* functions" 2020-06-12 14:01:27 -07:00
MergeICmps.cpp
MergedLoadStoreMotion.cpp [Transforms] Simplify with make_early_inc_range 2020-02-02 00:54:32 -08:00
NaryReassociate.cpp [Analysis/Transforms/Sanitizers] As part of using inclusive language 2020-06-20 00:42:26 -07:00
NewGVN.cpp [InstSimplify/NewGVN] Add option to control the use of undef. 2020-08-09 19:16:56 +01:00
PartiallyInlineLibCalls.cpp
PlaceSafepoints.cpp [Statepoint] Replace uses of isX functions with idiomatic isa<X> 2020-05-27 18:32:28 -07:00
Reassociate.cpp [DebugInfo] Reduce SalvageDebugInfo() functions 2020-06-08 19:28:18 +01:00
Reg2Mem.cpp
RewriteStatepointsForGC.cpp [Analysis] TTI: Add CastContextHint for getCastInstrCost 2020-07-29 13:32:53 +01:00
SCCP.cpp [SCCP] Use bulk-remove API to bulk-remove attributes. NFCI. 2020-08-28 14:44:14 +02:00
SROA.cpp [SROA] Improve handleling of assumes bundles by SROA 2020-08-28 21:55:45 +02:00
Scalar.cpp [ConstProp] Remove ConstantPropagation 2020-08-26 15:51:30 -07:00
Scalarizer.cpp [Scalarizer] Avoid updating the name of globals 2020-08-24 21:55:03 +02:00
SeparateConstOffsetFromGEP.cpp Remove getNumUses() comparisons (NFC) 2020-05-02 11:05:19 +02:00
SimpleLoopUnswitch.cpp [NFCI][SimpleLoopUnswitch] Adjust CostKind query 2020-08-14 07:54:20 +01:00
SimplifyCFGPass.cpp Temporairly revert "[SimplifyCFG][LoopRotate] SimplifyCFG: disable common instruction hoisting by default, enable late in pipeline" 2020-08-22 00:33:22 +03:00
Sink.cpp DomTree: remove explicit use of DomTreeNodeBase::iterator 2020-07-08 18:18:49 +02:00
SpeculateAroundPHIs.cpp [NFC][CostModel] Add TargetCostKind to relevant APIs 2020-05-05 10:35:54 +01:00
SpeculativeExecution.cpp SpeculativeExecution: Fix for logic change introduced in D81730. 2020-07-09 15:45:23 +03:00
StraightLineStrengthReduce.cpp
StructurizeCFG.cpp Revert rG5dd566b7c7b78bd- "PassManager.h - remove unnecessary Function.h/Module.h includes. NFCI." 2020-07-24 13:02:33 +01:00
TailRecursionElimination.cpp Revert "[TRE] allow TRE for non-capturing calls." 2020-07-13 00:39:48 +03:00
WarnMissedTransforms.cpp [TTI] Clean up includes (NFC). 2020-04-19 20:11:59 +01:00