2014-01-30 Vladimir Makarov <vmakarov@redhat.com>
authorvmakarov <vmakarov@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 30 Jan 2014 21:15:51 +0000 (21:15 +0000)
committervmakarov <vmakarov@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 30 Jan 2014 21:15:51 +0000 (21:15 +0000)
PR rtl-optimization/59959
* lra-constrains.c (simplify_operand_subreg): Assign NO_REGS to
any reload of register whose subreg is invalid.

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

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;