Commit e6e68157 by Richard Kenner

(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
parent b453cb0b
...@@ -2278,9 +2278,14 @@ sched_analyze (head, tail) ...@@ -2278,9 +2278,14 @@ sched_analyze (head, tail)
} }
else if (GET_CODE (insn) == NOTE else if (GET_CODE (insn) == NOTE
&& (NOTE_LINE_NUMBER (insn) == NOTE_INSN_LOOP_BEG && (NOTE_LINE_NUMBER (insn) == NOTE_INSN_LOOP_BEG
|| NOTE_LINE_NUMBER (insn) == NOTE_INSN_LOOP_END)) || NOTE_LINE_NUMBER (insn) == NOTE_INSN_LOOP_END
loop_notes = gen_rtx (EXPR_LIST, REG_DEAD, || (NOTE_LINE_NUMBER (insn) == NOTE_INSN_SETJMP
GEN_INT (NOTE_LINE_NUMBER (insn)), loop_notes); && 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) if (insn == tail)
return n_insns; return n_insns;
...@@ -3147,7 +3152,8 @@ reemit_notes (insn, last) ...@@ -3147,7 +3152,8 @@ reemit_notes (insn, last)
&& GET_CODE (XEXP (note, 0)) == CONST_INT) && GET_CODE (XEXP (note, 0)) == CONST_INT)
{ {
if (INTVAL (XEXP (note, 0)) == NOTE_INSN_SETJMP) 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 else
last = emit_note_before (INTVAL (XEXP (note, 0)), last); last = emit_note_before (INTVAL (XEXP (note, 0)), last);
remove_note (insn, note); remove_note (insn, note);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment