Commit af198097 by J"orn Rennecke Committed by Joern Rennecke

* loop.c (basic_induction_var): Avoid double recording of an increment.

From-SVN: r34153
parent 73bb9454
Thu May 25 02:27:22 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
* loop.c (basic_induction_var): Avoid double recording of an increment.
Thu May 25 02:19:27 2000 J"orn Rennecke <amylaar@cygnus.co.uk> Thu May 25 02:19:27 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
* Back out this patch: * Back out this patch:
...@@ -5995,6 +5995,11 @@ basic_induction_var (loop, x, mode, dest_reg, p, inc_val, mult_val, location) ...@@ -5995,6 +5995,11 @@ basic_induction_var (loop, x, mode, dest_reg, p, inc_val, mult_val, location)
/* If this register is assigned in a previous insn, look at its /* If this register is assigned in a previous insn, look at its
source, but don't go outside the loop or past a label. */ source, but don't go outside the loop or past a label. */
/* If this sets a register to itself, we would repeat any previous
biv increment if we applied this strategy blindly. */
if (rtx_equal_p (dest_reg, x))
return 0;
insn = p; insn = p;
while (1) while (1)
{ {
...@@ -6066,7 +6071,8 @@ basic_induction_var (loop, x, mode, dest_reg, p, inc_val, mult_val, location) ...@@ -6066,7 +6071,8 @@ basic_induction_var (loop, x, mode, dest_reg, p, inc_val, mult_val, location)
if (insn) if (insn)
set = single_set (insn); set = single_set (insn);
if (set && SET_DEST (set) == XEXP (x, 0) if (! rtx_equal_p (dest_reg, XEXP (x, 0))
&& set && SET_DEST (set) == XEXP (x, 0)
&& GET_CODE (XEXP (x, 1)) == CONST_INT && GET_CODE (XEXP (x, 1)) == CONST_INT
&& INTVAL (XEXP (x, 1)) >= 0 && INTVAL (XEXP (x, 1)) >= 0
&& GET_CODE (SET_SRC (set)) == ASHIFT && GET_CODE (SET_SRC (set)) == ASHIFT
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment