llvm-6502/test/Transforms
Andrew Trick b5c26ef9da SCEVExpander fixes. Affects LSR and indvars.
LSR has gradually been improved to more aggressively reuse existing code, particularly existing phi cycles. This exposed problems with the SCEVExpander's sloppy treatment of its insertion point. I applied some rigor to the insertion point problem that will hopefully avoid an endless bug cycle in this area. Changes:

- Always used properlyDominates to check safe code hoisting.

- The insertion point provided to SCEV is now considered a lower bound. This is usually a block terminator or the use itself. Under no cirumstance may SCEVExpander insert below this point.

- LSR is reponsible for finding a "canonical" insertion point across expansion of different expressions.

- Robust logic to determine whether IV increments are in "expanded" form and/or can be safely hoisted above some insertion point.

Fixes PR11783: SCEVExpander assert.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148535 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-20 07:41:13 +00:00
..
ADCE Try to eliminate the use of the 'unwind' instruction. 2011-09-02 22:41:11 +00:00
ArgumentPromotion fix PR8932, a case where arg promotion could infinitely promote. 2011-01-16 08:09:24 +00:00
BlockPlacement
BranchFolding
CodeExtractor Update this test to the new EH model. 2011-09-20 22:29:43 +00:00
CodeGenPrepare Roll r127459 back in: 2011-03-11 21:52:04 +00:00
ConstantMerge If the global variable is removed by the linker, then don't constant merge it 2012-01-11 00:13:08 +00:00
ConstProp Manually upgrade the test suite to specify the flag to cttz and ctlz. 2011-12-12 11:59:10 +00:00
CorrelatedValuePropagation Test for lazy value info's ability to prove the absense of NULLs in pointers. 2011-01-16 21:57:20 +00:00
DeadArgElim 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
DeadStoreElimination Fix infinite loop in DSE when deleting a free in a reachable loop that's also 2011-12-08 22:36:35 +00:00
EarlyCSE 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
FunctionAttrs Change CaptureTracking to pass a Use* instead of a Value* when a value is 2011-12-28 23:24:21 +00:00
GlobalDCE remove a test that is using old-style llvm.dbg intrinsics, apparently only 2011-11-27 18:13:47 +00:00
GlobalOpt PR11705, part 2: globalopt shouldn't put inttoptr/ptrtoint operations into global initializers if there's an implied extension or truncation. 2012-01-05 23:03:32 +00:00
GVN Fix crasher in GVN due to my recent capture tracking changes. 2011-11-21 19:42:56 +00:00
IndVarSimplify Extended replaceCongruentPhis to handle mixed phi types. 2012-01-07 01:12:09 +00:00
Inline Allow inlining of functions with returns_twice calls, if they have the 2011-12-18 20:35:43 +00:00
InstCombine Don't try to create a GEP when the pointee type is unsized (such GEPs 2012-01-11 12:20:08 +00:00
InstSimplify Add support for vectors of pointers. 2011-12-05 06:29:09 +00:00
Internalize Add test for r127138. 2011-03-07 21:28:14 +00:00
IPConstantProp 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
JumpThreading 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
LCSSA Try to eliminate the use of the 'unwind' instruction. 2011-09-02 22:41:11 +00:00
LICM Move Instruction::isSafeToSpeculativelyExecute out of VMCore and 2011-12-14 23:49:11 +00:00
LoopDeletion Remove the old tail duplication pass. It is not used and is unable to update 2011-08-30 23:03:45 +00:00
LoopIdiom Stop emitting instructions with the name "tmp" they eat up memory and have to be uniqued, without any benefit. 2011-09-27 20:39:19 +00:00
LoopRotate remove asmparser support for the old getresult instruction, which has been subsumed by extractvalue. 2011-06-17 06:57:15 +00:00
LoopSimplify Make loop preheader insertion in LoopSimplify handle the case where the loop header is a landing pad correctly (by splitting the landingpad out of the loop header). Make some adjustments to the rest of LoopSimplify to make it clear that the rest of LoopSimplify isn't making bad assumptions about the presence of landing pads. PR11575. 2011-12-15 00:50:34 +00:00
LoopStrengthReduce SCEVExpander fixes. Affects LSR and indvars. 2012-01-20 07:41:13 +00:00
LoopUnroll Add -unroll-runtime for unrolling loops with run-time trip counts. 2011-12-09 06:19:40 +00:00
LoopUnswitch Improved compile time: 2012-01-11 08:40:51 +00:00
LowerAtomic Convert more tests over to the new atomic instructions. 2011-09-26 20:27:49 +00:00
LowerExpectIntrinsic Introduce "expect" intrinsic instructions. 2011-07-06 18:22:43 +00:00
LowerInvoke
LowerSwitch
Mem2Reg 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
MemCpyOpt Probably not a good idea to convert a single vector load into a memcpy. We 2011-12-06 00:19:08 +00:00
MergeFunc Convert to the new EH model. 2011-11-08 00:23:01 +00:00
ObjCARC Set the "tail" flag on pattern-matched objc_storeStrong calls. 2012-01-19 19:14:36 +00:00
PhaseOrdering Add file. 2011-08-19 21:21:20 +00:00
PruneEH Update more tests to the new EH scheme. 2011-08-31 21:04:11 +00:00
Reassociate Remove empty test. 2011-08-02 02:47:45 +00:00
ScalarRepl 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
SCCP Manually upgrade the test suite to specify the flag to cttz and ctlz. 2011-12-12 11:59:10 +00:00
SimplifyCFG Fix SpeculativelyExecuteBB to either speculate all or none of the phis 2012-01-05 23:58:56 +00:00
SimplifyLibCalls Turn cos(-x) into cos(x). Patch by Alexander Malyshev! 2011-12-27 18:25:50 +00:00
Sink 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
StripSymbols fix PR10286, a problem with the .ll printer handling block addresses that are out-of-scope. 2011-08-03 06:15:41 +00:00
TailCallElim 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
TailDup Remove the old tail duplication pass. It is not used and is unable to update 2011-08-30 23:03:45 +00:00