diff options
author | Nathan Froyd <froydnj@codesourcery.com> | 2010-10-21 13:01:35 +0000 |
---|---|---|
committer | Nathan Froyd <froydnj@gcc.gnu.org> | 2010-10-21 13:01:35 +0000 |
commit | 31ff2426f662ec821ef48bee12eb3f08e4e16d9b (patch) | |
tree | 25c12529017cf06539baa62937edd24614e91926 /gcc/tree-cfgcleanup.c | |
parent | 2f7ba24e1f6367bf8c1a094ec85eb4064f7cf6ff (diff) | |
download | gcc-31ff2426f662ec821ef48bee12eb3f08e4e16d9b.zip gcc-31ff2426f662ec821ef48bee12eb3f08e4e16d9b.tar.gz gcc-31ff2426f662ec821ef48bee12eb3f08e4e16d9b.tar.bz2 |
cfgloop.c (flow_loops_find): Call bb_has_abnormal_pred.
* cfgloop.c (flow_loops_find): Call bb_has_abnormal_pred.
* reload1.c (has_nonexceptional_receiver): Likewise.
* tree-into-ssa.c (rewrite_update_enter_block): Likewise.
(create_new_def_for): Likewise.
* tree-cfgcleanup.c (remove_forwarder_block): Likewise.
(merge_phi_nodes): Likewise.
(has_abnormal_incoming_edge_p): Delete.
From-SVN: r165772
Diffstat (limited to 'gcc/tree-cfgcleanup.c')
-rw-r--r-- | gcc/tree-cfgcleanup.c | 21 |
1 files changed, 3 insertions, 18 deletions
diff --git a/gcc/tree-cfgcleanup.c b/gcc/tree-cfgcleanup.c index 3c1ca2d..ae23cfc 100644 --- a/gcc/tree-cfgcleanup.c +++ b/gcc/tree-cfgcleanup.c @@ -338,21 +338,6 @@ tree_forwarder_block_p (basic_block bb, bool phi_wanted) return true; } -/* Return true if BB has at least one abnormal incoming edge. */ - -static inline bool -has_abnormal_incoming_edge_p (basic_block bb) -{ - edge e; - edge_iterator ei; - - FOR_EACH_EDGE (e, ei, bb->preds) - if (e->flags & EDGE_ABNORMAL) - return true; - - return false; -} - /* If all the PHI nodes in DEST have alternatives for E1 and E2 and those alternatives are equal in each of the PHI nodes, then return true, else return false. */ @@ -418,8 +403,8 @@ remove_forwarder_block (basic_block bb) So if there is an abnormal edge to BB, proceed only if there is no abnormal edge to DEST and there are no phi nodes in DEST. */ - if (has_abnormal_incoming_edge_p (bb) - && (has_abnormal_incoming_edge_p (dest) + if (bb_has_abnormal_pred (bb) + && (bb_has_abnormal_pred (dest) || !gimple_seq_empty_p (phi_nodes (dest)))) return false; @@ -990,7 +975,7 @@ merge_phi_nodes (void) if (gimple_seq_empty_p (phi_nodes (dest)) /* We don't want to deal with a basic block with abnormal edges. */ - || has_abnormal_incoming_edge_p (bb)) + || bb_has_abnormal_pred (bb)) continue; if (!dominated_by_p (CDI_DOMINATORS, dest, bb)) |