diff options
Diffstat (limited to 'gcc')
| -rw-r--r-- | gcc/ChangeLog | 6 | ||||
| -rw-r--r-- | gcc/recog.c | 6 |
2 files changed, 10 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 2b8de76..f659e64 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2005-10-23 Kaz Kojima <kkojima@gcc.gnu.org> + + PR target/23832 + * recog.c (peephole2_optimize): Increment peep2_current_count + only when the slot is empty. + 2005-10-23 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> PR ada/23957 diff --git a/gcc/recog.c b/gcc/recog.c index 1b8394c..111f9cb 100644 --- a/gcc/recog.c +++ b/gcc/recog.c @@ -3091,7 +3091,8 @@ peephole2_optimize (FILE *dump_file ATTRIBUTE_UNUSED) /* Record this insn. */ if (--peep2_current < 0) peep2_current = MAX_INSNS_PER_PEEP2; - if (peep2_current_count < MAX_INSNS_PER_PEEP2) + if (peep2_current_count < MAX_INSNS_PER_PEEP2 + && peep2_insn_data[peep2_current].insn == NULL_RTX) peep2_current_count++; peep2_insn_data[peep2_current].insn = insn; propagate_one_insn (pbi, insn); @@ -3253,7 +3254,8 @@ peephole2_optimize (FILE *dump_file ATTRIBUTE_UNUSED) { if (--i < 0) i = MAX_INSNS_PER_PEEP2; - if (peep2_current_count < MAX_INSNS_PER_PEEP2) + if (peep2_current_count < MAX_INSNS_PER_PEEP2 + && peep2_insn_data[i].insn == NULL_RTX) peep2_current_count++; peep2_insn_data[i].insn = x; propagate_one_insn (pbi, x); |
