llvm-project/llvm/test/Transforms/LICM
Xin Tong 5ee40ba400 Improve what can be promoted in LICM.
Summary:
In case of non-alloca pointers, we check for whether it is a pointer
from malloc-like calls and it is not captured. In such case, we can
promote the pointer, as the caller will have no way to access this pointer
even if there is unwinding in middle of the loop.

Reviewers: hfinkel, sanjoy, reames, eli.friedman

Subscribers: llvm-commits

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

llvm-svn: 292510
2017-01-19 19:31:40 +00:00
..
2003-02-26-LoopExitNotDominated.ll
2003-02-27-NestedLoopExitBlocks.ll
2003-02-27-PreheaderExitNodeUpdate.ll
2003-02-27-PreheaderProblem.ll
2003-02-27-StoreSinkPHIs.ll
2003-02-28-PromoteDifferentType.ll
2003-05-02-LoadHoist.ll
2003-12-11-SinkingToPHI.ll
2004-09-14-AliasAnalysisInvalidate.ll
2004-11-17-UndefIndexCrash.ll
2006-09-12-DeadUserOfSunkInstr.ll
2007-05-22-VolatileSink.ll
2007-07-30-AliasSet.ll
2007-09-17-PromoteValue.ll
2007-09-24-PromoteNullValue.ll
2007-10-01-PromoteSafeValue.ll
2008-05-20-AliasSetVAArg.ll
2008-07-22-LoadGlobalConstant.ll
2009-12-10-LICM-Indbr-Crash.ll
2011-04-06-HoistMissedASTUpdate.ll
2011-04-06-PromoteResultOfPromotion.ll [Verifier] Add verification for TBAA metadata 2016-12-11 20:07:15 +00:00
2011-04-09-RAUW-AST.ll
2011-07-06-Alignment.ll
2014-09-10-doFinalizationAssert.ll
AliasSetMemSet.ll
PR19798.ll
PR21582.ll
PR24013.ll
Preserve-LCSSA.ll
alias-set-tracker-loss.ll
argmemonly-call.ll [LICM] Report successful hoist/sink/promotion 2017-01-11 04:39:35 +00:00
assume.ll [LICM] Report successful hoist/sink/promotion 2017-01-11 04:39:35 +00:00
atomics.ll [PM] Teach the LoopPassManager to automatically canonicalize loops by 2017-01-17 19:18:12 +00:00
basictest.ll [LICM] Report successful hoist/sink/promotion 2017-01-11 04:39:35 +00:00
bisect-state.ll [LICM] Work around LICM needs to maintain state across loops. 2016-12-23 13:12:50 +00:00
constexpr.ll [PM] Teach the LoopPassManager to automatically canonicalize loops by 2017-01-17 19:18:12 +00:00
crash.ll [LICM] Report successful hoist/sink/promotion 2017-01-11 04:39:35 +00:00
debug-value.ll [LICM] Report successful hoist/sink/promotion 2017-01-11 04:39:35 +00:00
extra-copies.ll [LICM] Report successful hoist/sink/promotion 2017-01-11 04:39:35 +00:00
funclet.ll [LICM] Report successful hoist/sink/promotion 2017-01-11 04:39:35 +00:00
hoist-bitcast-load.ll [LICM] Report successful hoist/sink/promotion 2017-01-11 04:39:35 +00:00
hoist-deref-load.ll [LICM] Report successful hoist/sink/promotion 2017-01-11 04:39:35 +00:00
hoist-invariant-load.ll
hoist-nounwind.ll [PM] Teach the LoopPassManager to automatically canonicalize loops by 2017-01-17 19:18:12 +00:00
hoist-round.ll [LICM] Report successful hoist/sink/promotion 2017-01-11 04:39:35 +00:00
hoisting.ll [PM] Teach the LoopPassManager to automatically canonicalize loops by 2017-01-17 19:18:12 +00:00
lcssa-ssa-promoter.ll [LICM] Report successful hoist/sink/promotion 2017-01-11 04:39:35 +00:00
loopsink.ll Enable Loop Sink pass for functions that has profile. 2016-11-09 00:58:19 +00:00
no-preheader-test.ll [LICM] Report successful hoist/sink/promotion 2017-01-11 04:39:35 +00:00
opt-remarks-conditional-load.ll [LICM] Report failing to hoist conditionally-executed loads 2017-01-11 04:39:49 +00:00
opt-remarks-intervening-store.ll [LICM] Report failing to hoist a load with an invariant address 2017-01-11 04:39:45 +00:00
opt-remarks.ll [LICM] Report successful hoist/sink/promotion 2017-01-11 04:39:35 +00:00
pr23608.ll
pr26843.ll
pr27262.ll [AliasSetTracker] Correctly handle changing the size of an entry 2016-04-14 22:00:11 +00:00
preheader-safe.ll [LICM] Report successful hoist/sink/promotion 2017-01-11 04:39:35 +00:00
promote-order.ll [LICM] Report successful hoist/sink/promotion 2017-01-11 04:39:35 +00:00
promote-tls.ll [LICM] Report successful hoist/sink/promotion 2017-01-11 04:39:35 +00:00
scalar-promote-memmodel.ll [LICM] Report successful hoist/sink/promotion 2017-01-11 04:39:35 +00:00
scalar-promote-unwind.ll Improve what can be promoted in LICM. 2017-01-19 19:31:40 +00:00
scalar-promote.ll Rename scalar_promote.ll to scalar-promote.ll and scalar_promote-unwind.ll to scalar-promote-unwind.ll. NFCI 2017-01-17 20:28:36 +00:00
sink.ll Enable Loop Sink pass for functions that has profile. 2016-11-09 00:58:19 +00:00
sinking.ll
speculate.ll [LICM] Report successful hoist/sink/promotion 2017-01-11 04:39:35 +00:00
update-scev.ll [LICM] Kill SCEV loop dispositions if needed 2016-05-03 17:50:11 +00:00
volatile-alias.ll [LICM] Report successful hoist/sink/promotion 2017-01-11 04:39:35 +00:00