diff options
Diffstat (limited to 'gcc/sched.c')
-rw-r--r-- | gcc/sched.c | 32 |
1 files changed, 1 insertions, 31 deletions
diff --git a/gcc/sched.c b/gcc/sched.c index 78b879ff97b..1d81407c3f4 100644 --- a/gcc/sched.c +++ b/gcc/sched.c @@ -1554,27 +1554,6 @@ sched_analyze_insn (x, insn, loop_notes) REG_NOTES (insn) = loop_notes; } - /* After reload, it is possible for an instruction to have a REG_DEAD note - for a register that actually dies a few instructions earlier. For - example, this can happen with SECONDARY_MEMORY_NEEDED reloads. - In this case, we must consider the insn to use the register mentioned - in the REG_DEAD note. Otherwise, we may accidentally move this insn - after another insn that sets the register, thus getting obviously invalid - rtl. This confuses reorg which believes that REG_DEAD notes are still - meaningful. - - ??? We would get better code if we fixed reload to put the REG_DEAD - notes in the right places, but that may not be worth the effort. */ - - if (reload_completed) - { - rtx note; - - for (note = REG_NOTES (insn); note; note = XEXP (note, 1)) - if (REG_NOTE_KIND (note) == REG_DEAD) - sched_analyze_2 (XEXP (note, 0), insn); - } - EXECUTE_IF_SET_IN_REG_SET (reg_pending_sets, 0, i, { reg_last_sets[i] = insn; @@ -3849,16 +3828,7 @@ update_flow_info (notes, first, last, orig_insn) register that was not needed by this instantiation of the pattern, so we can safely ignore it. */ if (insn == first) - { - /* After reload, REG_DEAD notes come sometimes an - instruction after the register actually dies. */ - if (reload_completed && REG_NOTE_KIND (note) == REG_DEAD) - { - XEXP (note, 1) = REG_NOTES (insn); - REG_NOTES (insn) = note; - break; - } - + { if (REG_NOTE_KIND (note) != REG_UNUSED) abort (); |