llvm/test/Transforms/LICM
Nadav Rotem 7765492a7a LICM may hoist an instruction with undefined behavior above a trap.
Scan the body of the loop and find instructions that may trap.
Use this information when deciding if it is safe to hoist or sink instructions.
Notice that we can optimize the search of instructions that may throw in the case of nested loops.

rdar://11518836



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163132 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-04 10:25:04 +00:00
..
2003-02-26-LoopExitNotDominated.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
2003-02-27-NestedLoopExitBlocks.ll Rename 'loopsimplify' to 'loop-simplify'. 2011-02-10 23:38:10 +00:00
2003-02-27-PreheaderExitNodeUpdate.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
2003-02-27-PreheaderProblem.ll Fix the remaining TCL-style quotes found in the testsuite. This is 2012-07-02 19:09:46 +00:00
2003-02-27-StoreSinkPHIs.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
2003-02-28-PromoteDifferentType.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
2003-05-02-LoadHoist.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
2003-12-11-SinkingToPHI.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
2004-09-14-AliasAnalysisInvalidate.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
2004-11-17-UndefIndexCrash.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
2006-09-12-DeadUserOfSunkInstr.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
2007-05-22-VolatileSink.ll Convert all tests using TCL-style quoting to use shell-style quoting. 2012-07-02 12:47:22 +00:00
2007-07-30-AliasSet.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
2007-09-17-PromoteValue.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
2007-09-24-PromoteNullValue.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
2007-10-01-PromoteSafeValue.ll PR9634: Don't unconditionally tell the AliasSetTracker that the PreheaderLoad 2011-04-07 01:35:06 +00:00
2008-05-20-AliasSetVAArg.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
2008-07-22-LoadGlobalConstant.ll Make BasicAliasAnalysis a normal AliasAnalysis implementation which 2010-10-18 18:04:47 +00:00
2009-12-10-LICM-Indbr-Crash.ll Add radar fixed in comment. 2009-12-14 19:07:25 +00:00
2011-04-06-HoistMissedASTUpdate.ll Upgrade syntax of tests using volatile instructions to use 'load volatile' instead of 'volatile load', which is archaic. 2011-11-27 06:54:59 +00:00
2011-04-06-PromoteResultOfPromotion.ll PR9634: Don't unconditionally tell the AliasSetTracker that the PreheaderLoad 2011-04-07 01:35:06 +00:00
2011-04-09-RAUW-AST.ll PR9604; try to deal with RAUW updates correctly in the AST. I'm not convinced 2011-04-09 06:55:46 +00:00
2011-07-06-Alignment.ll LICM: Do not loose alignment on promotion 2011-07-06 19:19:55 +00:00
atomics.ll Atomic load/store support in LICM. 2011-08-15 20:52:09 +00:00
basictest.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
crash.ll Upgrade syntax of tests using volatile instructions to use 'load volatile' instead of 'volatile load', which is archaic. 2011-11-27 06:54:59 +00:00
debug-value.ll While sinking an instruction, do not lose llvm.dbg.value intrinsic. 2011-03-08 03:06:19 +00:00
hoist-invariant-load.ll Convert the uses of '|&' to use '2>&1 |' instead, which works on old 2012-07-02 18:37:59 +00:00
hoisting.ll LICM may hoist an instruction with undefined behavior above a trap. 2012-09-04 10:25:04 +00:00
lit.local.cfg Replace all instances of dg.exp file with lit.local.cfg, since all tests are run with LIT now and now Dejagnu. dg.exp is no longer needed. 2012-02-16 06:28:33 +00:00
no-preheader-test.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
Preserve-LCSSA.ll Make these tests more interesting by using 2009-10-24 23:23:04 +00:00
promote-order.ll Avoid recomputing the unique exit blocks and their insert points when doing 2012-08-08 00:00:26 +00:00
scalar_promote.ll Upgrade syntax of tests using volatile instructions to use 'load volatile' instead of 'volatile load', which is archaic. 2011-11-27 06:54:59 +00:00
scalar-promote-memmodel.ll Bring LICM into compliance with the new "Memory Model for Concurrent Operations" in LangRef. 2011-07-20 21:37:47 +00:00
sinking.ll LICM does get dead instructions input to it. Instead of sinking them 2010-08-29 18:22:25 +00:00
speculate.ll An instruction in a loop is not guaranteed to be executed just because the loop 2012-05-01 04:03:01 +00:00