llvm-6502/test/Transforms/IndVarSimplify
Dan Gohman 5be18e8476 Teach SCEVExpander to expand arithmetic involving pointers into GEP
instructions. It attempts to create high-level multi-operand GEPs,
though in cases where this isn't possible it falls back to casting
the pointer to i8* and emitting a GEP with that. Using GEP instructions
instead of ptrtoint+arithmetic+inttoptr helps pointer analyses that
don't use ScalarEvolution, such as BasicAliasAnalysis.

Also, make the AddrModeMatcher more aggressive in handling GEPs.
Previously it assumed that operand 0 of a GEP would require a register
in almost all cases. It now does extra checking and can do more
matching if operand 0 of the GEP is foldable. This fixes a problem
that was exposed by SCEVExpander using GEPs.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72093 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-19 02:15:55 +00:00
..
2002-09-09-PointerIndVar.ll
2003-04-16-ExprAnalysis.ll
2003-09-12-MultiplePred.ll
2003-09-23-NotAtTop.ll Make this testcase slightly less trivial, so that it doesn't fail 2009-04-28 22:03:26 +00:00
2003-12-10-IndVarDeadCode.ll
2003-12-10-RemoveInstrCrash.ll
2003-12-15-Crash.ll
2003-12-21-IndVarSize.ll
2004-03-10-PHIInsertionBug.ll
2004-04-05-InvokeCastCrash.ll
2004-04-07-ScalarEvolutionCrash.ll
2005-02-11-InvokeCrash.ll
2005-02-17-TruncateExprCrash.ll
2005-02-26-ExitValueCompute.ll
2005-06-15-InstMoveCrash.ll
2005-11-18-Crash.ll
2006-03-31-NegativeStride.ll
2006-06-16-Indvar-LCSSA-Crash.ll
2006-09-20-LFTR-Crash.ll
2006-12-10-BitCast.ll
2007-01-06-TripCount.ll
2007-01-08-X86-64-Pointer.ll Add nounwind to a few tests. 2009-05-18 15:16:49 +00:00
2007-06-06-DeleteDanglesPtr.ll
2007-11-23-BitcastCrash.ll
2008-06-15-SCEVExpanderBug.ll
2008-09-02-IVType.ll
2008-10-03-CouldNotCompute.ll
2008-11-03-Floating.ll
2008-11-17-Floating.ll
2008-11-25-APFloatAssert.ll
2009-04-14-shorten_iv_vars.ll Enhance induction variable code to remove the 2009-04-15 01:10:12 +00:00
2009-04-15-shorten-iv-vars-2.ll Factor the code for collecting IV users out of LSR into an IVUsers class, 2009-05-12 02:17:14 +00:00
2009-04-22-IndvarCrash.ll Make sure both operands have binary instructions have the same type. 2009-04-22 23:39:28 +00:00
2009-04-27-Floating.ll Fix PR 4086, a bug in FP IV elimination. 2009-04-27 21:03:15 +00:00
ada-loops.ll Factor the code for collecting IV users out of LSR into an IVUsers class, 2009-05-12 02:17:14 +00:00
avoid-i0.ll Handle ands with ~0 correctly too. This fixes PR4052. 2009-04-27 01:41:10 +00:00
casted-argument.ll Fix an error in this test. 2009-04-23 15:22:28 +00:00
complex-scev.ll
dg.exp
exit_value_tests.ll
iterationCount_zext_or_trunc.ll
iv-zext.ll Factor the code for collecting IV users out of LSR into an IVUsers class, 2009-05-12 02:17:14 +00:00
lftr_simple.ll
loop_evaluate_1.ll
loop_evaluate_2.ll
loop_evaluate_3.ll
loop_evaluate_4.ll
loop_evaluate_5.ll When forgetting SCEVs for loop PHIs, don't forget SCEVUnknown values. 2009-05-12 01:27:58 +00:00
loop_evaluate_6.ll Factor the code for collecting IV users out of LSR into an IVUsers class, 2009-05-12 02:17:14 +00:00
pointer-indvars.ll
preserve-gep.ll Teach SCEVExpander to expand arithmetic involving pointers into GEP 2009-05-19 02:15:55 +00:00
preserve-signed-wrap.ll Back out the change in 64918 that used sign-extensions when promoting 2009-02-23 23:20:35 +00:00
promote-iv-to-eliminate-casts.ll Back out the change in 64918 that used sign-extensions when promoting 2009-02-23 23:20:35 +00:00
signed-trip-count.ll Back out the change in 64918 that used sign-extensions when promoting 2009-02-23 23:20:35 +00:00
subtract.ll
tripcount_compute.ll
tripcount_infinite.ll
variable-stride-ivs.ll