llvm-6502/test/Transforms/LoopStrengthReduce
Arnold Schwaighofer e672548602 SCEVExpander: Try hard not to create derived induction variables in other loops
During LSR of one loop we can run into a situation where we have to expand the
start of a recurrence of a loop induction variable in this loop. This start
value is a value derived of the induction variable of a preceeding loop. SCEV
has cannonicalized this value to a different recurrence than the recurrence of
the preceeding loop's induction variable (the type and/or step direction) has
changed). When we come to instantiate this SCEV we created a second induction
variable in this preceeding loop.  This patch tries to base such derived
induction variables of the preceeding loop's induction variable.

This helps twolf on arm and seems to help scimark2 on x86.

radar://15970709

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@201465 91177308-0d34-0410-b5e6-96231b3b80d8
2014-02-15 17:11:56 +00:00
..
ARM [tests] Cleanup initialization of test suffixes. 2013-08-16 00:37:11 +00:00
X86 SCEVExpander: Try hard not to create derived induction variables in other loops 2014-02-15 17:11:56 +00:00
2005-08-15-AddRecIV.ll
2005-08-17-OutOfLoopVariant.ll
2005-09-12-UsesOutOutsideOfLoop.ll
2007-04-23-UseIterator.ll
2008-08-13-CmpStride.ll
2008-09-09-Overflow.ll
2009-01-13-nonconstant-stride-outside-loop.ll
2009-04-28-no-reduce-mul.ll
2011-07-19-CritEdgeBreakCrash.ll
2011-10-03-CritEdgeMerge.ll Update Transforms tests to use CHECK-LABEL for easier debugging. No functionality change. 2013-07-14 01:42:54 +00:00
2011-10-06-ReusePhi.ll Update Transforms tests to use CHECK-LABEL for easier debugging. No functionality change. 2013-07-14 01:42:54 +00:00
2011-10-13-SCEVChain.ll Update Transforms tests to use CHECK-LABEL for easier debugging. No functionality change. 2013-07-14 01:42:54 +00:00
2011-10-14-IntPtr.ll Update Transforms tests to use CHECK-LABEL for easier debugging. No functionality change. 2013-07-14 01:42:54 +00:00
2011-12-19-PostincQuadratic.ll Update Transforms tests to use CHECK-LABEL for easier debugging. No functionality change. 2013-07-14 01:42:54 +00:00
2012-01-02-nopreheader.ll Update Transforms tests to use CHECK-LABEL for easier debugging. No functionality change. 2013-07-14 01:42:54 +00:00
2012-01-16-nopreheader.ll Update Transforms tests to use CHECK-LABEL for easier debugging. No functionality change. 2013-07-14 01:42:54 +00:00
2012-03-15-nopreheader.ll Update Transforms tests to use CHECK-LABEL for easier debugging. No functionality change. 2013-07-14 01:42:54 +00:00
2012-03-26-constexpr.ll
2012-07-13-ExpandUDiv.ll Update Transforms tests to use CHECK-LABEL for easier debugging. No functionality change. 2013-07-14 01:42:54 +00:00
2012-07-18-LimitReassociate.ll Remove triple from this test, it makes it fail when X86 TTI is missing. 2013-01-16 13:19:59 +00:00
2013-01-05-IndBr.ll Update Transforms tests to use CHECK-LABEL for easier debugging. No functionality change. 2013-07-14 01:42:54 +00:00
2013-01-14-ReuseCast.ll Update Transforms tests to use CHECK-LABEL for easier debugging. No functionality change. 2013-07-14 01:42:54 +00:00
addrec-gep-address-space.ll Teach loop-idiom about address space pointer sizes 2013-09-11 05:09:42 +00:00
addrec-gep.ll
address-space-loop.ll Teach loop-idiom about address space pointer sizes 2013-09-11 05:09:42 +00:00
count-to-zero.ll
dead-phi.ll
different-type-ivs.ll
dominate-assert.ll SCEVExpander: Fix a regression I introduced by to eagerly adding RAII objects. 2013-10-01 12:17:11 +00:00
dont_insert_redundant_ops.ll
dont_reduce_bytes.ll
dont_reverse.ll
dont-hoist-simple-loop-constants.ll
exit_compare_live_range.ll
hoist-parent-preheader.ll
invariant_value_first_arg.ll
invariant_value_first.ll
ivchain.ll Update Transforms tests to use CHECK-LABEL for easier debugging. No functionality change. 2013-07-14 01:42:54 +00:00
lsr-expand-quadratic.ll Fix broken CHECK lines. 2014-01-11 21:06:00 +00:00
nested-reduce.ll
nonlinear-postinc.ll
ops_after_indvar.ll
phi_node_update_multiple_preds.ll
post-inc-icmpzero.ll Remove target triple from an LSR test. 2013-01-22 00:57:16 +00:00
pr2537.ll
pr2570.ll
pr3086.ll
pr3399.ll
pr3571.ll
pr12018.ll
pr12048.ll
pr12691.ll
preserve-gep-loop-variant.ll
quadradic-exit-value.ll Fix LSR: don't normalize quadratic recurrences. 2013-10-25 21:35:52 +00:00
related_indvars.ll
remove_indvar.ll
scaling_factor_cost_crash.ll Update Transforms tests to use CHECK-LABEL for easier debugging. No functionality change. 2013-07-14 01:42:54 +00:00
share_code_in_preheader.ll
share_ivs.ll
uglygep-address-space.ll Teach loop-idiom about address space pointer sizes 2013-09-11 05:09:42 +00:00
uglygep.ll Catch more CHECK that can be converted to CHECK-LABEL in Transforms for easier debugging. No functionality change. 2013-07-14 01:50:49 +00:00
use_postinc_value_outside_loop.ll
var_stride_used_by_compare.ll
variable_stride.ll