llvm-project/llvm/lib/Transforms/Scalar
Johannes Doerfert 92694eba93 [SROA] Reuse existing lifetime markers if possible
Summary:
If the underlying alloca did not change, we do not necessarily need new
lifetime markers. This patch adds a check and reuses the old ones if
possible.

Reviewers: reames, ssarda, t.p.northover, hfinkel

Subscribers: hiraditya, bollu, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D68900

llvm-svn: 374692
2019-10-13 02:21:23 +00:00
..
ADCE.cpp [ADCE] Fix non-deterministic behaviour due to iterating over a pointer set. 2019-07-16 15:23:10 +00:00
AlignmentFromAssumptions.cpp [Alignment][NFC] Remove StoreInst::setAlignment(unsigned) 2019-10-03 13:17:21 +00:00
BDCE.cpp [BDCE] Optimize find+insert with early insert 2019-03-07 06:38:03 +00:00
CMakeLists.txt Revert "Reland "r364412 [ExpandMemCmp][MergeICmps] Move passes out of CodeGen into opt pipeline."" 2019-09-10 10:39:09 +00:00
CallSiteSplitting.cpp Change TargetLibraryInfo analysis passes to always require Function 2019-09-07 03:09:36 +00:00
ConstantHoisting.cpp ConstantHoisting - Silence static analyzer dyn_cast<PointerType> null dereference warning. NFCI. 2019-09-22 17:45:05 +00:00
ConstantProp.cpp Change TargetLibraryInfo analysis passes to always require Function 2019-09-07 03:09:36 +00:00
CorrelatedValuePropagation.cpp [CVP] Remove a masking operation if range information implies it's a noop 2019-10-11 03:48:56 +00:00
DCE.cpp [LegacyPassManager] Deprecate the BasicBlockPass/Manager. 2019-09-30 20:17:23 +00:00
DeadStoreElimination.cpp Change TargetLibraryInfo analysis passes to always require Function 2019-09-07 03:09:36 +00:00
DivRemPairs.cpp [DivRemPairs] Don't assert that we won't ever get expanded-form rem pairs in different BB's (PR43500) 2019-09-29 15:25:24 +00:00
EarlyCSE.cpp [EarlyCSE] Pass preserves AA. 2019-09-30 17:08:40 +00:00
FlattenCFGPass.cpp Don't use invalidated iterators in FlattenCFGPass 2019-09-19 19:39:42 +00:00
Float2Int.cpp [Float2Int] avoid crashing on unreachable code (PR38502) 2019-09-19 16:31:17 +00:00
GVN.cpp Change TargetLibraryInfo analysis passes to always require Function 2019-09-07 03:09:36 +00:00
GVNHoist.cpp [Alignment][NFC] Remove StoreInst::setAlignment(unsigned) 2019-10-03 13:17:21 +00:00
GVNSink.cpp [GVNSink] Add unary FNeg support to GVNSink pass 2019-06-28 19:57:31 +00:00
GuardWidening.cpp [GuardWidening] Wire up a NPM version of the LoopGuardWidening pass 2019-04-18 19:17:14 +00:00
IVUsersPrinter.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
IndVarSimplify.cpp [ConstantRange] [NFC] replace addWithNoSignedWrap with addWithNoWrap. 2019-10-08 03:00:31 +00:00
InductiveRangeCheckElimination.cpp Delete dead stores 2019-07-12 14:58:15 +00:00
InferAddressSpaces.cpp InferAddressSpaces: Move target intrinsic handling to TTI 2019-08-14 18:13:00 +00:00
InstSimplifyPass.cpp Change TargetLibraryInfo analysis passes to always require Function 2019-09-07 03:09:36 +00:00
JumpThreading.cpp Change TargetLibraryInfo analysis passes to always require Function 2019-09-07 03:09:36 +00:00
LICM.cpp [MemorySSA] Don't hoist stores if interfering uses (as calls) exist. 2019-10-03 22:20:04 +00:00
LLVMBuild.txt Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
LoopAccessAnalysisPrinter.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
LoopDataPrefetch.cpp Allow prefetching from non-zero address spaces 2019-07-25 16:11:57 +00:00
LoopDeletion.cpp [SCEV] Rename getMaxBackedgeTakenCount to getConstantMaxBackedgeTakenCount [NFC] 2019-08-14 21:58:13 +00:00
LoopDistribute.cpp LoopDistribute/LAA: Respect convergent 2019-06-12 13:34:19 +00:00
LoopFuse.cpp [LoopFusion] Add ability to fuse guarded loops 2019-09-26 21:42:45 +00:00
LoopIdiomRecognize.cpp [NFC][LoopIdiom] Adjust FIXME to be self-explanatory 2019-10-12 16:48:16 +00:00
LoopInstSimplify.cpp Change TargetLibraryInfo analysis passes to always require Function 2019-09-07 03:09:36 +00:00
LoopInterchange.cpp [LoopInterchange] Drop unused splitInnerLoopHeader declaration. 2019-09-11 10:32:15 +00:00
LoopLoadElimination.cpp LoopLoadElim: Respect convergent 2019-06-12 13:50:47 +00:00
LoopPassManager.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
LoopPredication.cpp [Instruction] Add hasMetadata(Kind) helper [NFC] 2019-09-04 17:28:48 +00:00
LoopRerollPass.cpp Change TargetLibraryInfo analysis passes to always require Function 2019-09-07 03:09:36 +00:00
LoopRotation.cpp [LoopRotate] Unconditionally get DomTree. 2019-10-08 11:54:42 +00:00
LoopSimplifyCFG.cpp [MemorySSA] Loop passes should mark MSSA preserved when available. 2019-08-17 01:02:12 +00:00
LoopSink.cpp [IR] Value: add replaceUsesWithIf() utility 2019-08-01 12:32:08 +00:00
LoopStrengthReduce.cpp recommit: [LoopVectorize][PowerPC] Estimate int and float register pressure separately in loop-vectorize 2019-10-12 02:53:04 +00:00
LoopUnrollAndJamPass.cpp [Unroll] Do NOT unroll a loop with small runtime upperbound 2019-09-26 21:40:27 +00:00
LoopUnrollPass.cpp [Unroll] Do NOT unroll a loop with small runtime upperbound 2019-09-26 21:40:27 +00:00
LoopUnswitch.cpp [MemorySSA] Make the use of moveAllAfterMergeBlocks consistent. 2019-10-09 15:54:24 +00:00
LoopVersioningLICM.cpp [Loop Utils] Move utilty addStringMetadataToLoop to LoopUtils.cpp. NFC. 2019-07-26 06:10:08 +00:00
LowerAtomic.cpp Transforms: lower fadd and fsub atomicrmw instructions 2019-05-23 17:03:43 +00:00
LowerExpectIntrinsic.cpp LowerExpectIntrinsic handlePhiDef - silence static analyzer dyn_cast<PHINode> null dereference warning. NFCI. 2019-10-02 16:03:45 +00:00
LowerGuardIntrinsic.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
LowerWidenableCondition.cpp Update more files added with the old header to the new one. 2019-02-11 08:25:56 +00:00
MakeGuardsExplicit.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
MemCpyOptimizer.cpp [Alignment][NFC] Remove AllocaInst::setAlignment(unsigned) 2019-09-30 13:34:44 +00:00
MergeICmps.cpp Revert "Reland "r364412 [ExpandMemCmp][MergeICmps] Move passes out of CodeGen into opt pipeline."" 2019-09-10 10:39:09 +00:00
MergedLoadStoreMotion.cpp [MergedLoadStoreMotion] Sink stores to BB with more than 2 predecessors 2019-09-05 17:00:32 +00:00
NaryReassociate.cpp Change TargetLibraryInfo analysis passes to always require Function 2019-09-07 03:09:36 +00:00
NewGVN.cpp Second attempt to add iterator_range::empty() 2019-10-07 18:14:24 +00:00
PartiallyInlineLibCalls.cpp Change TargetLibraryInfo analysis passes to always require Function 2019-09-07 03:09:36 +00:00
PlaceSafepoints.cpp Change TargetLibraryInfo analysis passes to always require Function 2019-09-07 03:09:36 +00:00
Reassociate.cpp [Reassoc] Small fix to support unary FNeg in NegateValue(...) 2019-08-23 15:49:38 +00:00
Reg2Mem.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
RewriteStatepointsForGC.cpp [Local] Remove unused LazyValueInfo pointer from removeUnreachableBlock. 2019-10-02 16:58:13 +00:00
SCCP.cpp SCCP - silence static analyzer dyn_cast<StructType> null dereference warning. NFCI. 2019-09-27 15:49:10 +00:00
SROA.cpp [SROA] Reuse existing lifetime markers if possible 2019-10-13 02:21:23 +00:00
Scalar.cpp [LLVM-C][Ocaml] Add MergeFunctions and DCE pass 2019-09-29 16:06:22 +00:00
Scalarizer.cpp [Scalarizer] Propagate IR flags 2019-06-21 14:10:18 +00:00
SeparateConstOffsetFromGEP.cpp Change TargetLibraryInfo analysis passes to always require Function 2019-09-07 03:09:36 +00:00
SimpleLoopUnswitch.cpp [MemorySSA] Loop passes should mark MSSA preserved when available. 2019-08-17 01:02:12 +00:00
SimplifyCFGPass.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
Sink.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
SpeculateAroundPHIs.cpp Ignore indirect branches from callbr. 2019-08-14 16:44:07 +00:00
SpeculativeExecution.cpp Support FNeg in SpeculativeExecution pass 2019-05-14 16:51:18 +00:00
StraightLineStrengthReduce.cpp [opaque pointer types] Pass value type to GetElementPtr creation. 2019-02-01 20:44:47 +00:00
StructurizeCFG.cpp [StructurizeCFG] Enable -structurizecfg-relaxed-uniform-regions by default 2019-08-06 14:30:19 +00:00
TailRecursionElimination.cpp OpaquePtr: add Type parameter to Loads analysis API. 2019-07-09 11:35:35 +00:00
WarnMissedTransforms.cpp [IR] Refactor attribute methods in Function class (NFC) 2019-04-04 22:40:06 +00:00