mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-15 20:29:48 +00:00
e672548602
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 |
||
---|---|---|
.. | ||
ARM | ||
X86 | ||
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 | ||
2011-10-06-ReusePhi.ll | ||
2011-10-13-SCEVChain.ll | ||
2011-10-14-IntPtr.ll | ||
2011-12-19-PostincQuadratic.ll | ||
2012-01-02-nopreheader.ll | ||
2012-01-16-nopreheader.ll | ||
2012-03-15-nopreheader.ll | ||
2012-03-26-constexpr.ll | ||
2012-07-13-ExpandUDiv.ll | ||
2012-07-18-LimitReassociate.ll | ||
2013-01-05-IndBr.ll | ||
2013-01-14-ReuseCast.ll | ||
addrec-gep-address-space.ll | ||
addrec-gep.ll | ||
address-space-loop.ll | ||
count-to-zero.ll | ||
dead-phi.ll | ||
different-type-ivs.ll | ||
dominate-assert.ll | ||
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 | ||
lsr-expand-quadratic.ll | ||
nested-reduce.ll | ||
nonlinear-postinc.ll | ||
ops_after_indvar.ll | ||
phi_node_update_multiple_preds.ll | ||
post-inc-icmpzero.ll | ||
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 | ||
related_indvars.ll | ||
remove_indvar.ll | ||
scaling_factor_cost_crash.ll | ||
share_code_in_preheader.ll | ||
share_ivs.ll | ||
uglygep-address-space.ll | ||
uglygep.ll | ||
use_postinc_value_outside_loop.ll | ||
var_stride_used_by_compare.ll | ||
variable_stride.ll |