summaryrefslogtreecommitdiff
path: root/gcc/ifcvt.c
diff options
context:
space:
mode:
authorpinskia <pinskia@138bc75d-0d04-0410-961f-82ee72b054a4>2004-11-18 14:44:54 +0000
committerpinskia <pinskia@138bc75d-0d04-0410-961f-82ee72b054a4>2004-11-18 14:44:54 +0000
commit6047d32f8e80b410ac5c9d77d76ccb1fdfc2a537 (patch)
tree0b329018e3e258275549531885e8ec4995db2303 /gcc/ifcvt.c
parentd159185a8951df62f6f273b9bf5db618f48a8012 (diff)
downloadgcc-6047d32f8e80b410ac5c9d77d76ccb1fdfc2a537.tar.gz
2004-11-18 Andrew Pinski <pinskia@physics.uc.edu>
* ifcvt.c (find_if_block): Move the check for the number of edges above the loops checking for complex edges. Remove the counting of edges as we use EDGE_COUNT now. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@90865 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ifcvt.c')
-rw-r--r--gcc/ifcvt.c18
1 files changed, 6 insertions, 12 deletions
diff --git a/gcc/ifcvt.c b/gcc/ifcvt.c
index 55413112647..b2275d07610 100644
--- a/gcc/ifcvt.c
+++ b/gcc/ifcvt.c
@@ -2445,8 +2445,6 @@ find_if_block (struct ce_if_block * ce_info)
basic_block then_bb = ce_info->then_bb;
basic_block else_bb = ce_info->else_bb;
basic_block join_bb = NULL_BLOCK;
- int then_predecessors;
- int else_predecessors;
edge cur_edge;
basic_block next;
edge_iterator ei;
@@ -2511,28 +2509,24 @@ find_if_block (struct ce_if_block * ce_info)
}
}
- /* Count the number of edges the THEN and ELSE blocks have. */
- then_predecessors = 0;
+ /* The THEN block of an IF-THEN combo must have exactly one predecessor,
+ other than any || blocks which jump to the THEN block. */
+ if ((EDGE_COUNT (then_bb->preds) - ce_info->num_or_or_blocks) != 1)
+ return FALSE;
+
+ /* The edges of the THEN and ELSE blocks cannot have complex edges. */
FOR_EACH_EDGE (cur_edge, ei, then_bb->preds)
{
- then_predecessors++;
if (cur_edge->flags & EDGE_COMPLEX)
return FALSE;
}
- else_predecessors = 0;
FOR_EACH_EDGE (cur_edge, ei, else_bb->preds)
{
- else_predecessors++;
if (cur_edge->flags & EDGE_COMPLEX)
return FALSE;
}
- /* The THEN block of an IF-THEN combo must have exactly one predecessor,
- other than any || blocks which jump to the THEN block. */
- if ((then_predecessors - ce_info->num_or_or_blocks) != 1)
- return FALSE;
-
/* The THEN block of an IF-THEN combo must have zero or one successors. */
if (EDGE_COUNT (then_bb->succs) > 0
&& (EDGE_COUNT (then_bb->succs) > 1