re PR rtl-optimization/20117 (duplicated labels in PIC)
authorKaz Kojima <kkojima@gcc.gnu.org>
Fri, 25 Feb 2005 07:13:25 +0000 (07:13 +0000)
committerKaz Kojima <kkojima@gcc.gnu.org>
Fri, 25 Feb 2005 07:13:25 +0000 (07:13 +0000)
PR rtl-optimization/20117
* bb-reorder.c (duplicate_computed_gotos): Don't duplicate
the block including noncopyable insn.

From-SVN: r95533

gcc/ChangeLog
gcc/bb-reorder.c

index 436f078..a41808c 100644 (file)
@@ -1,3 +1,9 @@
+2005-02-25  Kaz Kojima  <kkojima@gcc.gnu.org>
+
+       PR rtl-optimization/20117
+       * bb-reorder.c (duplicate_computed_gotos): Don't duplicate
+       the block including noncopyable insn.
+
 2005-02-24  Kazu Hirata  <kazu@cs.umass.edu>
 
        * cse.c (delete_trivially_dead_insns): Speed up by minimizing
index 23cdf09..44a5011 100644 (file)
@@ -2050,7 +2050,17 @@ duplicate_computed_gotos (void)
          FOR_BB_INSNS (bb, insn)
            {
              if (INSN_P (insn))
-               size += get_attr_length (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;
            }