re PR target/43920 (Choosing conditional execution over conditional branches for...
authorTom de Vries <tom@codesourcery.com>
Tue, 5 Apr 2011 10:04:44 +0000 (10:04 +0000)
committerTom de Vries <vries@gcc.gnu.org>
Tue, 5 Apr 2011 10:04:44 +0000 (10:04 +0000)
2011-04-05  Tom de Vries  <tom@codesourcery.com>

PR target/43920
* cfgcleanup.c (flow_find_cross_jump): Don't count USE or CLOBBER as
insn.

From-SVN: r171976

gcc/ChangeLog
gcc/cfgcleanup.c

index d9bc24e3e7fff13d549efd6a85539ec3e62e1708..6cde480d9d884f92f57ba989006e6a1557189fed 100644 (file)
@@ -1,3 +1,9 @@
+2011-04-05  Tom de Vries  <tom@codesourcery.com>
+
+       PR target/43920
+       * cfgcleanup.c (flow_find_cross_jump): Don't count USE or CLOBBER as
+       insn.
+
 2011-04-05  Tom de Vries  <tom@codesourcery.com>
 
        * cfgcleanup.c (try_crossjump_bb): Remove 2 superfluous variables.
index 6178b59a7c47ff517df0066589887d8a21d47457..112cb4907b42ca320ce13329d2a37c8179e4f6e8 100644 (file)
@@ -1070,6 +1070,7 @@ flow_find_cross_jump (basic_block bb1, basic_block bb2, rtx *f1, rtx *f2)
 {
   rtx i1, i2, last1, last2, afterlast1, afterlast2;
   int ninsns = 0;
+  rtx p1;
 
   /* Skip simple jumps at the end of the blocks.  Complex jumps still
      need to be compared for equivalence, which we'll do below.  */
@@ -1118,7 +1119,9 @@ flow_find_cross_jump (basic_block bb1, basic_block bb2, rtx *f1, rtx *f2)
 
          afterlast1 = last1, afterlast2 = last2;
          last1 = i1, last2 = i2;
-         ninsns++;
+         p1 = PATTERN (i1);
+         if (!(GET_CODE (p1) == USE || GET_CODE (p1) == CLOBBER))
+           ninsns++;
        }
 
       i1 = PREV_INSN (i1);