OSDN Git Service

PR middle-end/20557
authorsayle <sayle@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 21 Mar 2005 22:11:11 +0000 (22:11 +0000)
committersayle <sayle@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 21 Mar 2005 22:11:11 +0000 (22:11 +0000)
* bb-reorder.c (duplicate_computed_gotos): Use can_duplicate_block_p
to determine whether a block can be duplicated, rather than test
whether the block contains noncopyable insns ourselves.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@96836 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/bb-reorder.c

index 0e9becd..c0b07e3 100644 (file)
@@ -1,3 +1,10 @@
+2005-03-21  Roger Sayle  <roger@eyesopen.com>
+
+       PR middle-end/20557
+       * bb-reorder.c (duplicate_computed_gotos): Use can_duplicate_block_p
+       to determine whether a block can be duplicated, rather than test
+       whether the block contains noncopyable insns ourselves.
+
 2005-03-21  Kazu Hirata  <kazu@cs.umass.edu>
 
        * config/i860/i860.h (PREDICATE_CODES): Remove nonexistent
index a94c9e4..b7223d7 100644 (file)
@@ -2047,24 +2047,15 @@ duplicate_computed_gotos (void)
          int size = 0;
 
          FOR_BB_INSNS (bb, insn)
-           {
-             if (INSN_P (insn))
-               {
-                 /* If the insn isn't copyable, don't duplicate
-                    the block.  */
-                 if (targetm.cannot_copy_insn_p
-                     && targetm.cannot_copy_insn_p (insn))
-                   {
-                     size = max_size + 1;
-                     break;
-                   }
-                 size += get_attr_length (insn);
-               }
-             if (size > max_size)
-               break;
-           }
+           if (INSN_P (insn))
+             {
+               size += get_attr_length (insn);
+               if (size > max_size)
+                 break;
+             }
 
-         if (size <= max_size)
+         if (size <= max_size
+             && can_duplicate_block_p (bb))
            bitmap_set_bit (candidates, bb->index);
        }
     }