re PR rtl-optimization/59959 (LRA ICEs on a fortran case(Suspected to be similar...
authorVladimir Makarov <vmakarov@redhat.com>
Thu, 30 Jan 2014 21:15:51 +0000 (21:15 +0000)
committerVladimir Makarov <vmakarov@gcc.gnu.org>
Thu, 30 Jan 2014 21:15:51 +0000 (21:15 +0000)
2014-01-30  Vladimir Makarov  <vmakarov@redhat.com>

PR rtl-optimization/59959
* lra-constrains.c (simplify_operand_subreg): Assign NO_REGS to
any reload of register whose subreg is invalid.

From-SVN: r207323

gcc/ChangeLog
gcc/lra-constraints.c

index b91d903..eae5041 100644 (file)
@@ -1,3 +1,9 @@
+2014-01-30  Vladimir Makarov  <vmakarov@redhat.com>
+
+       PR rtl-optimization/59959
+       * lra-constrains.c (simplify_operand_subreg): Assign NO_REGS to
+       any reload of register whose subreg is invalid.
+
 2014-01-30  Jakub Jelinek  <jakub@redhat.com>
 
        * config/i386/f16cintrin.h (_cvtsh_ss): Avoid -Wnarrowing
index 34159f7..cb64ee1 100644 (file)
@@ -1293,11 +1293,8 @@ simplify_operand_subreg (int nop, enum machine_mode reg_mode)
     {
       enum reg_class rclass;
 
-      if (REG_P (reg)
-         && curr_insn_set != NULL_RTX
-         && (REG_P (SET_SRC (curr_insn_set))
-             || GET_CODE (SET_SRC (curr_insn_set)) == SUBREG))
-       /* There is big probability that we will get the same class
+      if (REG_P (reg))
+       /* There is a big probability that we will get the same class
           for the new pseudo and we will get the same insn which
           means infinite looping.  So spill the new pseudo.  */
        rclass = NO_REGS;