llvm/test/Transforms
David Majnemer 5a57dbef33 IndVarSimplify: check if loop invariant expansion can trap
IndVarSimplify is willing to move divide instructions outside of their
loop bodies if they are invariant of the loop.  However, it may not be
safe to expand them if we do not know if they can trap.

Instead, check to see if it is not safe to expand the instruction and
skip the expansion.

This fixes PR16041.

Testcase by Rafael Ávila de Espíndola.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183239 91177308-0d34-0410-b5e6-96231b3b80d8
2013-06-04 17:51:58 +00:00
..
ADCE 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
ArgumentPromotion Update some EH tests that were violating the new EH model. 2013-03-21 18:30:10 +00:00
BBVectorize Revert "InstCombine: Fold more shuffles of shuffles." 2013-05-01 00:25:27 +00:00
BlockPlacement 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
BranchFolding Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
CodeExtractor 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
CodeGenPrepare Tests: rewrite 'opt ... %s' to 'opt ... < %s' so that opt does not emit a ModuleID 2012-12-30 01:28:40 +00:00
ConstantMerge Fix const merging when an alias of a const is llvm.used. 2013-05-06 01:48:55 +00:00
ConstProp Remove this testcase until I can figure out how to properly conditionalize it. 2013-02-07 07:01:54 +00:00
CorrelatedValuePropagation CVP: If we have a PHI with an incoming select, try to skip the select. 2013-02-24 15:34:43 +00:00
DeadArgElim Revert "Revert "PR14606: debug info imported_module support"" 2013-04-22 06:12:31 +00:00
DeadStoreElimination TBAA: remove !tbaa from testing cases if not used. 2013-04-30 17:52:57 +00:00
EarlyCSE Initially forgotten-to-svn-add test case for r177279. 2013-03-18 12:07:24 +00:00
FunctionAttrs Move library call prototype attribute inference to functionattrs 2013-03-21 00:55:59 +00:00
GCOVProfiling Revert "Revert "PR14606: debug info imported_module support"" 2013-04-22 06:12:31 +00:00
GlobalDCE Revert 179826. Tests were worthless. 2013-04-19 09:32:30 +00:00
GlobalOpt Respect the 'nobuiltin' attribute when determining if a call is to a memory builtin. 2013-05-16 04:12:04 +00:00
GVN Fix unchecked uses of DominatorTree in MemoryDependenceAnalysis. 2013-05-06 02:07:24 +00:00
IndVarSimplify IndVarSimplify: check if loop invariant expansion can trap 2013-06-04 17:51:58 +00:00
Inline Update test. There may be multiple catches, but those will be cleaned up. 2013-03-22 20:36:39 +00:00
InstCombine When determining the new index for an insertelement, we may not assume that an 2013-06-01 20:51:31 +00:00
InstSimplify ConstantFolding: ComputeMaskedBits wants the scalar size for vectors. 2013-04-19 16:56:24 +00:00
Internalize Change the internalize pass to internalize all symbols when given an empty 2012-10-26 18:47:48 +00:00
IPConstantProp Use references to attribute groups on the call/invoke instructions. 2013-02-22 09:09:42 +00:00
JumpThreading TBAA: remove !tbaa from testing cases if not used. 2013-04-30 17:52:57 +00:00
LCSSA Convert all tests using TCL-style quoting to use shell-style quoting. 2012-07-02 12:47:22 +00:00
LICM Revert the test moves from 176733. Use "REQUIRES: asserts" instead. 2013-03-12 16:27:52 +00:00
LoopDeletion Modify the LLVM assembly output so that it uses references to represent function attributes. 2013-02-20 07:21:42 +00:00
LoopIdiom PR14904: Segmentation fault running pass 'Recognize loop idioms' 2013-01-10 23:32:01 +00:00
LoopRotate Rotate multi-exit loops even if the latch was simplified. 2013-05-06 17:58:18 +00:00
LoopSimplify Convert all tests using TCL-style quoting to use shell-style quoting. 2012-07-02 12:47:22 +00:00
LoopStrengthReduce Modify how the formulae are rated in Loop Strength Reduce. 2013-05-31 17:20:29 +00:00
LoopUnroll Prevent loop-unroll from making assumptions about undefined behavior. 2013-05-31 23:34:46 +00:00
LoopUnswitch TBAA: remove !tbaa from testing cases if not used. 2013-04-30 17:52:57 +00:00
LoopVectorize LoopVectorize: PHIs with only outside users should prevent vectorization 2013-05-31 19:53:50 +00:00
LowerAtomic 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
LowerExpectIntrinsic 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
LowerInvoke 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
LowerSwitch PR1255 related changes (case ranges): 2012-05-24 09:33:20 +00:00
Mem2Reg Revert "Adding DIImportedModules to DIScopes." 2013-03-28 02:44:59 +00:00
MemCpyOpt Use references to attribute groups on the call/invoke instructions. 2013-02-22 09:09:42 +00:00
MergeFunc TBAA: remove !tbaa from testing cases if not used. 2013-04-30 17:52:57 +00:00
MetaRenamer Tests: rewrite 'opt ... %s' to 'opt ... < %s' so that opt does not emit a ModuleID 2013-01-01 13:57:25 +00:00
ObjCARC [objc-arc] KnownSafe does not imply that it is safe to perform code motion across CFG edges since even if it is safe to remove RR pairs, we may still be able to move a retain/release into a loop. 2013-05-24 20:44:05 +00:00
PhaseOrdering Revert 179826. Tests were worthless. 2013-04-19 09:32:30 +00:00
PruneEH The normal edge of an invoke is not allowed to branch to a block with a 2012-08-10 20:55:20 +00:00
Reassociate TBAA: remove !tbaa from testing cases if not used. 2013-04-30 17:52:57 +00:00
Reg2Mem Make sure we don't emit instructions before a landingpad instruction. 2013-01-08 10:51:32 +00:00
ScalarRepl Disable the optimization about promoting vector-element-access with symbolic index. 2013-04-05 21:07:08 +00:00
SCCP Tests: rewrite 'opt ... %s' to 'opt ... < %s' so that opt does not emit a ModuleID 2013-01-01 13:57:25 +00:00
SimplifyCFG Second part of pr16069 2013-06-04 14:11:59 +00:00
Sink Enhance the sinking code to handle diamond patterns. Patch by 2012-05-31 08:09:49 +00:00
SLPVectorizer SLPVectorizer: Change the order in which new instructions are added to the function. 2013-05-22 19:47:32 +00:00
SROA SROA: Generate selects instead of shuffles when blending values because this is the cannonical form. 2013-05-01 19:53:30 +00:00
StripSymbols Tests: rewrite 'opt ... %s' to 'opt ... < %s' so that opt does not emit a ModuleID 2013-01-01 13:57:25 +00:00
TailCallElim Revert the test moves from 176733. Use "REQUIRES: asserts" instead. 2013-03-12 16:27:52 +00:00
TailDup Revert the test moves from 176733. Use "REQUIRES: asserts" instead. 2013-03-12 16:27:52 +00:00