From 6dfdecdb1d8f0ece741e00d187d9cb73d0e9b6ec Mon Sep 17 00:00:00 2001 From: Richard Henderson Date: Mon, 31 Aug 1998 03:55:31 -0600 Subject: [PATCH] print-rtl.c (print_rtx): NOTE_INSN_LIVE has an rtx not a bitmap. MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit � * print-rtl.c (print_rtx): NOTE_INSN_LIVE has an rtx not a bitmap. * haifa-sched.c (sched_analyze): Handle NOTE_INSN_RANGE_START and NOTE_INSN_RANGE_END specially. (reemit_notes): Likewise. From-SVN: r22127 --- gcc/haifa-sched.c | 27 +++++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/gcc/haifa-sched.c b/gcc/haifa-sched.c index 7192837fbb9..10e25a13484 100644 --- a/gcc/haifa-sched.c +++ b/gcc/haifa-sched.c @@ -3930,13 +3930,23 @@ sched_analyze (head, tail) } /* See comments on reemit_notes as to why we do this. */ + /* ??? Actually, the reemit_notes just say what is done, not why. */ + + else if (GET_CODE (insn) == NOTE + && (NOTE_LINE_NUMBER (insn) == NOTE_INSN_RANGE_START + || NOTE_LINE_NUMBER (insn) == NOTE_INSN_RANGE_END)) + { + loop_notes = alloc_EXPR_LIST (REG_DEAD, NOTE_RANGE_INFO (insn), + loop_notes); + loop_notes = alloc_EXPR_LIST (REG_DEAD, + GEN_INT (NOTE_LINE_NUMBER (insn)), + loop_notes); + } else if (GET_CODE (insn) == NOTE && (NOTE_LINE_NUMBER (insn) == NOTE_INSN_LOOP_BEG || NOTE_LINE_NUMBER (insn) == NOTE_INSN_LOOP_END || NOTE_LINE_NUMBER (insn) == NOTE_INSN_EH_REGION_BEG || NOTE_LINE_NUMBER (insn) == NOTE_INSN_EH_REGION_END - || NOTE_LINE_NUMBER (insn) == NOTE_INSN_RANGE_START - || NOTE_LINE_NUMBER (insn) == NOTE_INSN_RANGE_END || (NOTE_LINE_NUMBER (insn) == NOTE_INSN_SETJMP && GET_CODE (PREV_INSN (insn)) != CALL_INSN))) { @@ -6461,13 +6471,22 @@ reemit_notes (insn, last) if (REG_NOTE_KIND (note) == REG_DEAD && GET_CODE (XEXP (note, 0)) == CONST_INT) { - if (INTVAL (XEXP (note, 0)) == NOTE_INSN_SETJMP) + int note_type = INTVAL (XEXP (note, 0)); + if (note_type == NOTE_INSN_SETJMP) { - retval = emit_note_after (INTVAL (XEXP (note, 0)), insn); + retval = emit_note_after (NOTE_INSN_SETJMP, insn); CONST_CALL_P (retval) = CONST_CALL_P (note); remove_note (insn, note); note = XEXP (note, 1); } + else if (note_type == NOTE_INSN_RANGE_START + || note_type == NOTE_INSN_RANGE_END) + { + last = emit_note_before (note_type, last); + remove_note (insn, note); + note = XEXP (note, 1); + NOTE_RANGE_INFO (last) = XEXP (note, 0); + } else { last = emit_note_before (INTVAL (XEXP (note, 0)), last); -- 2.30.2