1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-21 20:12:56 +02:00
llvm-mirror/test/Transforms/LICM
Michael Kuperstein 5863ebbfd3 [LICM] Allow promotion of some stores that are not guaranteed to execute.
Promotion is always legal when a store within the loop is guaranteed to execute.

However, this is not a necessary condition - for promotion to be memory model
semantics-preserving, it is enough to have a store that dominates every exit
block. This is because if the store dominates every exit block, the fact the
exit block was executed implies the original store was executed as well.

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

llvm-svn: 291171
2017-01-05 20:42:06 +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
alias-set-tracker-loss.ll
AliasSetMemSet.ll
argmemonly-call.ll New pass manager for LICM. 2016-07-12 22:37:48 +00:00
assume.ll New pass manager for LICM. 2016-07-12 22:37:48 +00:00
atomics.ll New pass manager for LICM. 2016-07-12 22:37:48 +00:00
basictest.ll New pass manager for LICM. 2016-07-12 22:37:48 +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 New pass manager for LICM. 2016-07-12 22:37:48 +00:00
crash.ll New pass manager for LICM. 2016-07-12 22:37:48 +00:00
debug-value.ll New pass manager for LICM. 2016-07-12 22:37:48 +00:00
extra-copies.ll New pass manager for LICM. 2016-07-12 22:37:48 +00:00
funclet.ll New pass manager for LICM. 2016-07-12 22:37:48 +00:00
hoist-bitcast-load.ll New pass manager for LICM. 2016-07-12 22:37:48 +00:00
hoist-deref-load.ll New pass manager for LICM. 2016-07-12 22:37:48 +00:00
hoist-invariant-load.ll
hoist-nounwind.ll New pass manager for LICM. 2016-07-12 22:37:48 +00:00
hoist-round.ll New pass manager for LICM. 2016-07-12 22:37:48 +00:00
hoisting.ll New pass manager for LICM. 2016-07-12 22:37:48 +00:00
lcssa-ssa-promoter.ll New pass manager for LICM. 2016-07-12 22:37:48 +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 New pass manager for LICM. 2016-07-12 22:37:48 +00:00
pr23608.ll
pr26843.ll
pr27262.ll
PR19798.ll
PR21582.ll
PR24013.ll
preheader-safe.ll New pass manager for LICM. 2016-07-12 22:37:48 +00:00
Preserve-LCSSA.ll
promote-order.ll New pass manager for LICM. 2016-07-12 22:37:48 +00:00
promote-tls.ll [LICM] When promoting scalars, allow inserting stores to thread-local allocas. 2016-12-30 01:03:17 +00:00
scalar_promote-unwind.ll New pass manager for LICM. 2016-07-12 22:37:48 +00:00
scalar_promote.ll [LICM] Allow promotion of some stores that are not guaranteed to execute. 2017-01-05 20:42:06 +00:00
scalar-promote-memmodel.ll New pass manager for LICM. 2016-07-12 22:37:48 +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 New pass manager for LICM. 2016-07-12 22:37:48 +00:00
update-scev.ll
volatile-alias.ll New pass manager for LICM. 2016-07-12 22:37:48 +00:00