loop.c (strength_reduce): When doing biv->giv conversion, update reg note of NEXT->insn.
* loop.c (strength_reduce): When doing biv->giv conversion, update reg note of NEXT->insn. From-SVN: r27574
This commit is contained in:
parent
51f0646f8a
commit
a1c0cf1f76
@ -1,3 +1,8 @@
|
|||||||
|
Thu Jun 17 21:34:24 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
|
||||||
|
|
||||||
|
* loop.c (strength_reduce): When doing biv->giv conversion, update
|
||||||
|
reg note of NEXT->insn.
|
||||||
|
|
||||||
Thu Jun 17 14:25:08 1999 Jeffrey A Law (law@cygnus.com)
|
Thu Jun 17 14:25:08 1999 Jeffrey A Law (law@cygnus.com)
|
||||||
|
|
||||||
* loop.c (move_movables): Note issues with replacing REGs with
|
* loop.c (move_movables): Note issues with replacing REGs with
|
||||||
|
10
gcc/loop.c
10
gcc/loop.c
@ -4198,7 +4198,7 @@ strength_reduce (scan_start, end, loop_top, insn_count,
|
|||||||
for (vp = &bl->biv, next = *vp; v = next, next = v->next_iv;)
|
for (vp = &bl->biv, next = *vp; v = next, next = v->next_iv;)
|
||||||
{
|
{
|
||||||
HOST_WIDE_INT offset;
|
HOST_WIDE_INT offset;
|
||||||
rtx set, add_val, old_reg, dest_reg, last_use_insn;
|
rtx set, add_val, old_reg, dest_reg, last_use_insn, note;
|
||||||
int old_regno, new_regno;
|
int old_regno, new_regno;
|
||||||
|
|
||||||
if (! v->always_executed
|
if (! v->always_executed
|
||||||
@ -4304,7 +4304,13 @@ strength_reduce (scan_start, end, loop_top, insn_count,
|
|||||||
|
|
||||||
REG_IV_TYPE (new_regno) = GENERAL_INDUCT;
|
REG_IV_TYPE (new_regno) = GENERAL_INDUCT;
|
||||||
REG_IV_INFO (new_regno) = v;
|
REG_IV_INFO (new_regno) = v;
|
||||||
|
|
||||||
|
/* If next_insn has a REG_EQUAL note that mentiones OLD_REG,
|
||||||
|
it must be replaced. */
|
||||||
|
note = find_reg_note (next->insn, REG_EQUAL, NULL_RTX);
|
||||||
|
if (note && reg_mentioned_p (old_reg, XEXP (note, 0)))
|
||||||
|
XEXP (note, 0) = copy_rtx (SET_SRC (single_set (next->insn)));
|
||||||
|
|
||||||
/* Remove the increment from the list of biv increments,
|
/* Remove the increment from the list of biv increments,
|
||||||
and record it as a giv. */
|
and record it as a giv. */
|
||||||
*vp = next;
|
*vp = next;
|
||||||
|
Loading…
Reference in New Issue
Block a user