diff options
author | Richard Sandiford <rdsandiford@googlemail.com> | 2014-05-19 06:49:58 +0000 |
---|---|---|
committer | Richard Sandiford <rsandifo@gcc.gnu.org> | 2014-05-19 06:49:58 +0000 |
commit | 339ba33b4f6f90b30f41705cfc71e1ec2b81ac27 (patch) | |
tree | 17c4d542445096d484b3cb4f6aa83da151b3ee6b /gcc/cfgrtl.c | |
parent | a65d5b87d1af187a2811c36a3c632cd168336d42 (diff) | |
download | gcc-339ba33b4f6f90b30f41705cfc71e1ec2b81ac27.zip gcc-339ba33b4f6f90b30f41705cfc71e1ec2b81ac27.tar.gz gcc-339ba33b4f6f90b30f41705cfc71e1ec2b81ac27.tar.bz2 |
reg-notes.def (CROSSING_JUMP): Likewise.
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.
From-SVN: r210603
Diffstat (limited to 'gcc/cfgrtl.c')
-rw-r--r-- | gcc/cfgrtl.c | 18 |
1 files changed, 7 insertions, 11 deletions
diff --git a/gcc/cfgrtl.c b/gcc/cfgrtl.c index 51dbb9e..eb25e89 100644 --- a/gcc/cfgrtl.c +++ b/gcc/cfgrtl.c @@ -1325,8 +1325,6 @@ redirect_branch_edge (edge e, basic_block target) static void fixup_partition_crossing (edge e) { - rtx note; - if (e->src == ENTRY_BLOCK_PTR_FOR_FN (cfun) || e->dest == EXIT_BLOCK_PTR_FOR_FN (cfun)) return; @@ -1337,10 +1335,9 @@ fixup_partition_crossing (edge e) if (BB_PARTITION (e->src) != BB_PARTITION (e->dest)) { e->flags |= EDGE_CROSSING; - note = find_reg_note (BB_END (e->src), REG_CROSSING_JUMP, NULL_RTX); if (JUMP_P (BB_END (e->src)) - && !note) - add_reg_note (BB_END (e->src), REG_CROSSING_JUMP, NULL_RTX); + && !CROSSING_JUMP_P (BB_END (e->src))) + CROSSING_JUMP_P (BB_END (e->src)) = 1; } else if (BB_PARTITION (e->src) == BB_PARTITION (e->dest)) { @@ -1348,8 +1345,7 @@ fixup_partition_crossing (edge e) /* Remove the section crossing note from jump at end of src if it exists, and if no other successors are still crossing. */ - note = find_reg_note (BB_END (e->src), REG_CROSSING_JUMP, NULL_RTX); - if (note) + if (JUMP_P (BB_END (e->src)) && CROSSING_JUMP_P (BB_END (e->src))) { bool has_crossing_succ = false; edge e2; @@ -1361,7 +1357,7 @@ fixup_partition_crossing (edge e) break; } if (!has_crossing_succ) - remove_note (BB_END (e->src), note); + CROSSING_JUMP_P (BB_END (e->src)) = 0; } } } @@ -2460,8 +2456,7 @@ rtl_verify_edges (void) e->src->index); err = 1; } - if (JUMP_P (BB_END (bb)) - && !find_reg_note (BB_END (bb), REG_CROSSING_JUMP, NULL_RTX)) + if (JUMP_P (BB_END (bb)) && !CROSSING_JUMP_P (BB_END (bb))) { error ("No region crossing jump at section boundary in bb %i", bb->index); @@ -2496,7 +2491,8 @@ rtl_verify_edges (void) } if (!has_crossing_edge - && find_reg_note (BB_END (bb), REG_CROSSING_JUMP, NULL_RTX)) + && JUMP_P (BB_END (bb)) + && CROSSING_JUMP_P (BB_END (bb))) { print_rtl_with_bb (stderr, get_insns (), TDF_RTL | TDF_BLOCKS | TDF_DETAILS); error ("Region crossing jump across same section in bb %i", |