diff options
author | Jan Hubicka <jh@suse.cz> | 2004-01-12 17:32:12 +0100 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2004-01-12 16:32:12 +0000 |
commit | 432f982f5c2f65daa1d65a9af2fbfc585c88f114 (patch) | |
tree | 7bcdf745057a80c4e44eb2fff2033e874e50eea6 /gcc/cfgcleanup.c | |
parent | 9a249c79b355459f3623cfbf8c0f2f6925d1a280 (diff) | |
download | gcc-432f982f5c2f65daa1d65a9af2fbfc585c88f114.zip gcc-432f982f5c2f65daa1d65a9af2fbfc585c88f114.tar.gz gcc-432f982f5c2f65daa1d65a9af2fbfc585c88f114.tar.bz2 |
re PR rtl-optimization/12826 (Optimizer removes reference through volatile pointer)
PR opt/12826
* loop.c (insert_loop_mem): Preffer VOLATILE memory references to be
stored.
PR opt/12863
* cfgcleanup.c (label_is_jump_target_p): Move to...
* rtlanal.c (label_is_jump_target_p): ... here.
* cfgrtl.c (cfg_layout_redirect_edge_and_branch): Fix redirecting of fallthru
edges unified with branch edges.
From-SVN: r75733
Diffstat (limited to 'gcc/cfgcleanup.c')
-rw-r--r-- | gcc/cfgcleanup.c | 28 |
1 files changed, 0 insertions, 28 deletions
diff --git a/gcc/cfgcleanup.c b/gcc/cfgcleanup.c index 056a32f..3e68cbe 100644 --- a/gcc/cfgcleanup.c +++ b/gcc/cfgcleanup.c @@ -73,7 +73,6 @@ static bool outgoing_edges_match (int, basic_block, basic_block); static int flow_find_cross_jump (int, basic_block, basic_block, rtx *, rtx *); static bool insns_match_p (int, rtx, rtx); -static bool label_is_jump_target_p (rtx, rtx); static bool tail_recursion_label_p (rtx); static void merge_blocks_move_predecessor_nojumps (basic_block, basic_block); static void merge_blocks_move_successor_nojumps (basic_block, basic_block); @@ -646,33 +645,6 @@ try_forward_edges (int mode, basic_block b) return changed; } -/* Return true if LABEL is a target of JUMP_INSN. This applies only - to non-complex jumps. That is, direct unconditional, conditional, - and tablejumps, but not computed jumps or returns. It also does - not apply to the fallthru case of a conditional jump. */ - -static bool -label_is_jump_target_p (rtx label, rtx jump_insn) -{ - rtx tmp = JUMP_LABEL (jump_insn); - - if (label == tmp) - return true; - - if (tablejump_p (jump_insn, NULL, &tmp)) - { - rtvec vec = XVEC (PATTERN (tmp), - GET_CODE (PATTERN (tmp)) == ADDR_DIFF_VEC); - int i, veclen = GET_NUM_ELEM (vec); - - for (i = 0; i < veclen; ++i) - if (XEXP (RTVEC_ELT (vec, i), 0) == label) - return true; - } - - return false; -} - /* Return true if LABEL is used for tail recursion. */ static bool |