Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 5 Apr 2003 20:02:12 -0800 (PST)
From:      Marcel Moolenaar <marcel@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 28289 for review
Message-ID:  <200304060402.h3642C2q064255@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=28289

Change 28289 by marcel@marcel_nfs on 2003/04/05 20:01:58

	Replace my homegrown GCC patch with the real thing (as
	committed to the GCC trees).

Affected files ...

.. //depot/projects/ia64/contrib/gcc/ifcvt.c#5 edit

Differences ...

==== //depot/projects/ia64/contrib/gcc/ifcvt.c#5 (text+ko) ====

@@ -1934,10 +1934,9 @@
      is more than one remaining edge, it must come from elsewhere.  There
      may be zero incoming edges if the THEN block didn't actually join 
      back up (as with a call to abort).  */
-  else if ((join_bb->pred == NULL || join_bb->pred->pred_next == NULL)
-	   && join_bb != EXIT_BLOCK_PTR
-	   && (NEXT_INSN(combo_bb->end) == join_bb->head
-	       || GET_CODE(NEXT_INSN(combo_bb->end)) != CODE_LABEL))
+  else if ((join_bb->pred == NULL
+	    || join_bb->pred->pred_next == NULL)
+	   && join_bb != EXIT_BLOCK_PTR)
     {
       /* We can merge the JOIN.  */
       if (life_data_ok)
@@ -2046,7 +2045,8 @@
   /* The THEN block of an IF-THEN combo must have zero or one successors.  */
   if (then_succ != NULL_EDGE
       && (then_succ->succ_next != NULL_EDGE
-          || (then_succ->flags & EDGE_COMPLEX)))
+          || (then_succ->flags & EDGE_COMPLEX)
+	  || (flow2_completed && tablejump_p (then_bb->end))))
     return FALSE;
 
   /* If the THEN block has no successors, conditional execution can still
@@ -2093,7 +2093,8 @@
 	   && then_succ->dest == else_succ->dest
 	   && else_bb->pred->pred_next == NULL_EDGE
 	   && else_succ->succ_next == NULL_EDGE
-	   && ! (else_succ->flags & EDGE_COMPLEX))
+	   && ! (else_succ->flags & EDGE_COMPLEX)
+	   && ! (flow2_completed && tablejump_p (else_bb->end)))
     join_bb = else_succ->dest;
 
   /* Otherwise it is not an IF-THEN or IF-THEN-ELSE combination.  */



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200304060402.h3642C2q064255>