From e6e68157d3ff41c37a736656e4f093a41d7c3e28 Mon Sep 17 00:00:00 2001 From: Richard Kenner Date: Fri, 23 Feb 1996 08:47:27 -0500 Subject: [PATCH] (sched_analyze): Record NOTE_INSN_SETJMP if no CALL_INSN as prev; preserve CONST_CALL_P bit. (reemit_notes): Restore CONST_CALL_P. From-SVN: r11342 --- gcc/sched.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/gcc/sched.c b/gcc/sched.c index f279512d6eb..d690a825a8f 100644 --- a/gcc/sched.c +++ b/gcc/sched.c @@ -2278,9 +2278,14 @@ sched_analyze (head, tail) } else if (GET_CODE (insn) == NOTE && (NOTE_LINE_NUMBER (insn) == NOTE_INSN_LOOP_BEG - || NOTE_LINE_NUMBER (insn) == NOTE_INSN_LOOP_END)) - loop_notes = gen_rtx (EXPR_LIST, REG_DEAD, - GEN_INT (NOTE_LINE_NUMBER (insn)), loop_notes); + || NOTE_LINE_NUMBER (insn) == NOTE_INSN_LOOP_END + || (NOTE_LINE_NUMBER (insn) == NOTE_INSN_SETJMP + && GET_CODE (PREV_INSN (insn)) != CALL_INSN))) + { + loop_notes = gen_rtx (EXPR_LIST, REG_DEAD, + GEN_INT (NOTE_LINE_NUMBER (insn)), loop_notes); + CONST_CALL_P (loop_notes) = CONST_CALL_P (insn); + } if (insn == tail) return n_insns; @@ -3147,7 +3152,8 @@ reemit_notes (insn, last) && GET_CODE (XEXP (note, 0)) == CONST_INT) { if (INTVAL (XEXP (note, 0)) == NOTE_INSN_SETJMP) - emit_note_after (INTVAL (XEXP (note, 0)), insn); + CONST_CALL_P (emit_note_after (INTVAL (XEXP (note, 0)), insn)) + = CONST_CALL_P (note); else last = emit_note_before (INTVAL (XEXP (note, 0)), last); remove_note (insn, note); -- 2.30.2