From 9239aee664338dfa16b622edaa5a9c201e9ffd20 Mon Sep 17 00:00:00 2001 From: hubicka Date: Tue, 7 Aug 2001 20:24:08 +0000 Subject: * calls.c (expand_call): Do not emit INSN_SETJMP note. (emit_library_call_value_1): Likewise. (emit_call_1): Emit REG_SETJMP note. * cse.c (cse_end_of_basic_block): Use REG_SETJMP instead of INSN_SETJMP * cselib.c (cselib_process_insn): Likewise. * flow.c (propagate_block): Likewise. * loop.c (find_and_verify_loops): Likewise. * reload.c (find_equiv_regs): Likewise. * reload1.c (reload): Likewise. * resource.c (mark_referenced_resources, mark_set_resources): Likewise. * sched-deps (sched_analyze_insn, sched_analyze): Likewise. * final.c (final_scan_insn): Remove NOTE_INSN_SETJMP. * haifa-sched.c (unlink_other_notes): Likewise. (reemit_notes): Likewise. * sched-ebb.c (sched_ebb): Likewise. * sched-rgc.c (sched_region): Likewise. * rtl.c (note_insn_name): Likewise. (reg_note_name): Add REG_SETJMP * rtl.h (reg_note): Add REG_SETJMP. (insn_note): Remove NOTE_INSN_SETJMP. * profile.c (branch_prob): Add fake edges for setjmp. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@44700 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/cse.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'gcc/cse.c') diff --git a/gcc/cse.c b/gcc/cse.c index ade5b802c77..f5b1afa016e 100644 --- a/gcc/cse.c +++ b/gcc/cse.c @@ -6855,8 +6855,8 @@ cse_end_of_basic_block (insn, data, follow_jumps, after_loop, skip_blocks) /* Don't cse over a call to setjmp; on some machines (eg VAX) the regs restored by the longjmp come from a later time than the setjmp. */ - if (GET_CODE (p) == NOTE - && NOTE_LINE_NUMBER (p) == NOTE_INSN_SETJMP) + if (PREV_INSN (p) && GET_CODE (PREV_INSN (p)) == CALL_INSN + && find_reg_note (PREV_INSN (p), REG_SETJMP, NULL)) break; /* A PARALLEL can have lots of SETs in it, @@ -6906,7 +6906,8 @@ cse_end_of_basic_block (insn, data, follow_jumps, after_loop, skip_blocks) for (q = PREV_INSN (JUMP_LABEL (p)); q; q = PREV_INSN (q)) if ((GET_CODE (q) != NOTE || NOTE_LINE_NUMBER (q) == NOTE_INSN_LOOP_END - || NOTE_LINE_NUMBER (q) == NOTE_INSN_SETJMP) + || (PREV_INSN (q) && GET_CODE (PREV_INSN (q)) == CALL_INSN + && find_reg_note (PREV_INSN (q), REG_SETJMP, NULL))) && (GET_CODE (q) != CODE_LABEL || LABEL_NUSES (q) != 0)) break; -- cgit v1.2.1