llvm-6502/test/Transforms/IndVarSimplify
Dan Gohman 4d8414f420 Teach SCEVExpander's visitAddRecExpr to reuse an existing canonical
induction variable when the addrec to be expanded does not require
a wider type. This eliminates the need for IndVarSimplify to
micro-manage SCEV expansions, because SCEVExpander now
automatically expands them in the form that IndVarSimplify considers
to be canonical. (LSR still micro-manages its SCEV expansions,
because it's optimizing for the target, rather than for
other optimizations.)

Also, this uses the new getAnyExtendExpr, which has more clever
expression simplification logic than the IndVarSimplify code it
replaces, and this cleans up some ugly expansions in code such as
the included masked-iv.ll testcase.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73294 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-13 16:25:49 +00:00
..
2002-09-09-PointerIndVar.ll
2003-04-16-ExprAnalysis.ll
2003-09-12-MultiplePred.ll
2003-09-23-NotAtTop.ll Teach SCEVExpander's visitAddRecExpr to reuse an existing canonical 2009-06-13 16:25:49 +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 Rename IndVarsSimplify to IndVarSimplify, to be consistent with 2009-02-16 00:56:15 +00:00
2006-12-10-BitCast.ll Split the Add, Sub, and Mul instruction opcodes into separate 2009-06-04 22:49:04 +00:00
2007-01-06-TripCount.ll
2007-01-08-X86-64-Pointer.ll
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 Split the Add, Sub, and Mul instruction opcodes into separate 2009-06-04 22:49:04 +00:00
2008-11-17-Floating.ll Split the Add, Sub, and Mul instruction opcodes into separate 2009-06-04 22:49:04 +00:00
2008-11-25-APFloatAssert.ll Split the Add, Sub, and Mul instruction opcodes into separate 2009-06-04 22:49:04 +00:00
2009-04-14-shorten_iv_vars.ll
2009-04-15-shorten-iv-vars-2.ll
2009-04-22-IndvarCrash.ll
2009-04-27-Floating.ll Split the Add, Sub, and Mul instruction opcodes into separate 2009-06-04 22:49:04 +00:00
2009-05-24-useafterfree.ll
ada-loops.ll
addrec-gep.ll
avoid-i0.ll
casted-argument.ll
complex-scev.ll
dg.exp
divide-pointer.ll In cases where a pointer value is an operand of a multiplication or 2009-05-26 17:41:16 +00:00
exit_value_tests.ll
gep-with-mul-base.ll
interesting-invoke-use.ll
iterationCount_zext_or_trunc.ll
iv-zext.ll Split the Add, Sub, and Mul instruction opcodes into separate 2009-06-04 22:49:04 +00:00
lftr_simple.ll
lftr-other-uses.ll When rewriting the loop exit test with the canonical induction variable, 2009-05-24 19:11:38 +00:00
loop_evaluate_1.ll
loop_evaluate_2.ll
loop_evaluate_3.ll
loop_evaluate_4.ll
loop_evaluate_5.ll
loop_evaluate_6.ll
masked-iv.ll Teach SCEVExpander's visitAddRecExpr to reuse an existing canonical 2009-06-13 16:25:49 +00:00
pointer-indvars.ll
preserve-gep-remainder.ll Teach SCEVExpander to avoid creating over-indexed GEP indices when 2009-05-27 02:00:53 +00:00
preserve-gep.ll
preserve-signed-wrap.ll
promote-iv-to-eliminate-casts.ll
signed-trip-count.ll
subtract.ll
tripcount_compute.ll
tripcount_infinite.ll
variable-stride-ivs-0.ll Don't attempt to simplify an non-affine IV expression if it can't 2009-06-03 19:11:31 +00:00
variable-stride-ivs-1.ll Don't attempt to simplify an non-affine IV expression if it can't 2009-06-03 19:11:31 +00:00