diff options
author | rsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4> | 2014-05-19 06:49:58 +0000 |
---|---|---|
committer | rsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4> | 2014-05-19 06:49:58 +0000 |
commit | 8f869004286e3c9ebca939700517ff6b0b222445 (patch) | |
tree | 17c4d542445096d484b3cb4f6aa83da151b3ee6b /gcc/emit-rtl.c | |
parent | 718d002121c011f7b09e0fbcf82291e8082c8ce7 (diff) | |
download | gcc-8f869004286e3c9ebca939700517ff6b0b222445.tar.gz |
gcc/
* reg-notes.def (CROSSING_JUMP): Likewise.
* rtl.h (rtx_def): Update comment for jump flag.
(CROSSING_JUMP_P): Define.
* cfgcleanup.c (try_forward_edges, try_optimize_cfg): Use it instead
of a REG_CROSSING_JUMP note.
* cfghooks.c (tidy_fallthru_edges): Likewise.
* cfgrtl.c (fixup_partition_crossing, rtl_verify_edges): Likewise.
* emit-rtl.c (try_split): Likewise.
* haifa-sched.c (sched_create_recovery_edges): Likewise.
* ifcvt.c (find_if_case_1, find_if_case_2): Likewise.
* jump.c (redirect_jump_2): Likewise.
* reorg.c (follow_jumps, fill_slots_from_thread): Likewise.
(relax_delay_slots): Likewise.
* config/arc/arc.md (jump_i, cbranchsi4_scratch, *bbit): Likewise.
(bbit_di): Likewise.
* config/arc/arc.c (arc_reorg, arc_can_follow_jump): Likewise.
* config/sh/sh.md (jump_compact): Likewise.
* bb-reorder.c (rotate_loop): Likewise.
(pass_duplicate_computed_gotos::execute): Likewise.
(add_reg_crossing_jump_notes): Rename to...
(update_crossing_jump_flags): ...this.
(pass_partition_blocks::execute): Update accordingly.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@210603 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/emit-rtl.c')
-rw-r--r-- | gcc/emit-rtl.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c index 9282a29520b..1d74c3fded7 100644 --- a/gcc/emit-rtl.c +++ b/gcc/emit-rtl.c @@ -3590,11 +3590,13 @@ try_split (rtx pat, rtx trial, int last) may have introduced invalid RTL sharing, so unshare the sequence now. */ unshare_all_rtl_in_chain (seq); - /* Mark labels. */ + /* Mark labels and copy flags. */ for (insn = insn_last; insn ; insn = PREV_INSN (insn)) { if (JUMP_P (insn)) { + if (JUMP_P (trial)) + CROSSING_JUMP_P (insn) = CROSSING_JUMP_P (trial); mark_jump_label (PATTERN (insn), insn, 0); njumps++; if (probability != -1 @@ -3671,7 +3673,6 @@ try_split (rtx pat, rtx trial, int last) break; case REG_NON_LOCAL_GOTO: - case REG_CROSSING_JUMP: for (insn = insn_last; insn != NULL_RTX; insn = PREV_INSN (insn)) { if (JUMP_P (insn)) |