diff options
author | Mark Mitchell <mark@codesourcery.com> | 1999-06-24 14:59:23 +0000 |
---|---|---|
committer | Mark Mitchell <mmitchel@gcc.gnu.org> | 1999-06-24 14:59:23 +0000 |
commit | e04ea7d3eb1ed3bc6e780f775a5c7f25363416d8 (patch) | |
tree | e7eaca5047a884121650e5480c41b0837011dff7 /gcc | |
parent | 50cba6ed13e2c67b9abc35d3485b12942a90cdf0 (diff) | |
download | gcc-e04ea7d3eb1ed3bc6e780f775a5c7f25363416d8.zip gcc-e04ea7d3eb1ed3bc6e780f775a5c7f25363416d8.tar.gz gcc-e04ea7d3eb1ed3bc6e780f775a5c7f25363416d8.tar.bz2 |
Revert these two patches:
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 17:22:07 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
* loop.c (strength_reduce): When doing biv->giv conversion, fix up
reg_biv_class.
(recombine_givs): Set ix field after sorting.
From-SVN: r27727
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 13 | ||||
-rw-r--r-- | gcc/loop.c | 25 |
2 files changed, 18 insertions, 20 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 650648c..d55a44b 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,16 @@ +Thu Jun 24 15:00:47 1999 Mark Mitchell <mark@codesourcery.com> + + Revert these two patches: + + 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 17:22:07 1999 J"orn Rennecke <amylaar@cygnus.co.uk> + * loop.c (strength_reduce): When doing biv->giv conversion, fix up + reg_biv_class. + (recombine_givs): Set ix field after sorting. + Wed Jun 23 21:26:00 1999 J"orn Rennecke <amylaar@cygnus.co.uk> * rtlanal.c (reg_referenced_p): Use reg_overlap_mentioned_p @@ -4065,7 +4065,6 @@ strength_reduce (scan_start, end, loop_top, insn_count, fprintf (loop_dump_stream, "is giv of biv %d\n", bl2->regno); /* Let this giv be discovered by the generic code. */ REG_IV_TYPE (bl->regno) = UNKNOWN_INDUCT; - reg_biv_class[bl->regno] = NULL_PTR; /* We can get better optimization if we can move the giv setting before the first giv use. */ if (dominator @@ -4117,13 +4116,7 @@ strength_reduce (scan_start, end, loop_top, insn_count, } /* Remove this biv from the chain. */ if (bl->next) - { - /* We move the following giv from *bl->next into *bl. - We have to update reg_biv_class for that moved biv - to point to its new address. */ - *bl = *bl->next; - reg_biv_class[bl->regno] = bl; - } + *bl = *bl->next; else { *backbl = 0; @@ -4198,7 +4191,7 @@ strength_reduce (scan_start, end, loop_top, insn_count, for (vp = &bl->biv, next = *vp; v = next, next = v->next_iv;) { HOST_WIDE_INT offset; - rtx set, add_val, old_reg, dest_reg, last_use_insn, note; + rtx set, add_val, old_reg, dest_reg, last_use_insn; int old_regno, new_regno; if (! v->always_executed @@ -4304,13 +4297,7 @@ strength_reduce (scan_start, end, loop_top, insn_count, REG_IV_TYPE (new_regno) = GENERAL_INDUCT; 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, and record it as a giv. */ *vp = next; @@ -7210,18 +7197,16 @@ recombine_givs (bl, loop_start, loop_end, unroll_p) for (p = v->insn; INSN_UID (p) >= max_uid_for_loop; ) p = PREV_INSN (p); stats[i].start_luid = INSN_LUID (p); + v->ix = i; i++; } qsort (stats, giv_count, sizeof(*stats), cmp_recombine_givs_stats); - /* Set up the ix field for each giv in stats to name - the corresponding index into stats, and - do the actual most-recently-used recombination. */ + /* Do the actual most-recently-used recombination. */ for (last_giv = 0, i = giv_count - 1; i >= 0; i--) { v = giv_array[stats[i].giv_number]; - v->ix = i; if (v->same) { struct induction *old_same = v->same; |