]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR bootstrap/41241 (bootstrap comparison failure)
authorVladimir Makarov <vmakarov@redhat.com>
Thu, 3 Sep 2009 18:33:25 +0000 (18:33 +0000)
committerVladimir Makarov <vmakarov@gcc.gnu.org>
Thu, 3 Sep 2009 18:33:25 +0000 (18:33 +0000)
2009-09-03  Vladimir Makarov  <vmakarov@redhat.com>

PR bootstrap/41241
* ira.c (update_equiv_reg): Remove check on class likely spill.

From-SVN: r151388

gcc/ChangeLog
gcc/ira.c

index 0f5facee807110f8df01793142dfd0b76618acd6..fc0ff822f937dc8a5e4a1f331fed2844c3b8d7a0 100644 (file)
@@ -1,3 +1,8 @@
+2009-09-03  Vladimir Makarov  <vmakarov@redhat.com>
+
+       PR bootstrap/41241
+       * ira.c (update_equiv_reg): Remove check on class likely spill.
+
 2009-09-03  Jakub Jelinek  <jakub@redhat.com>
 
        PR debug/41236
index b960f769534a490188d588eab762488364df6394..b9b10dc9d3c8be46c7bdcd075dc41db61ef271a2 100644 (file)
--- a/gcc/ira.c
+++ b/gcc/ira.c
@@ -2384,21 +2384,9 @@ update_equiv_regs (void)
 
          /* We only handle the case of a pseudo register being set
             once, or always to the same value.  */
-         /* ??? The mn10200 port breaks if we add equivalences for
-            values that need an ADDRESS_REGS register and set them equivalent
-            to a MEM of a pseudo.  The actual problem is in the over-conservative
-            handling of INPADDR_ADDRESS / INPUT_ADDRESS / INPUT triples in
-            calculate_needs, but we traditionally work around this problem
-            here by rejecting equivalences when the destination is in a register
-            that's likely spilled.  This is fragile, of course, since the
-            preferred class of a pseudo depends on all instructions that set
-            or use it.  */
-
          if (!REG_P (dest)
              || (regno = REGNO (dest)) < FIRST_PSEUDO_REGISTER
-             || reg_equiv[regno].init_insns == const0_rtx
-             || (CLASS_LIKELY_SPILLED_P (reg_preferred_class (regno))
-                 && MEM_P (src) && ! reg_equiv[regno].is_arg_equivalence))
+             || reg_equiv[regno].init_insns == const0_rtx)
            {
              /* This might be setting a SUBREG of a pseudo, a pseudo that is
                 also set somewhere else to a constant.  */