]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR rtl-optimization/67954 (internal compiler error: in patch_jump_insn, at cfgrtl...
authorVladimir Makarov <vmakarov@redhat.com>
Thu, 26 Nov 2015 22:13:36 +0000 (22:13 +0000)
committerVladimir Makarov <vmakarov@gcc.gnu.org>
Thu, 26 Nov 2015 22:13:36 +0000 (22:13 +0000)
2015-11-25  Vladimir Makarov  <vmakarov@redhat.com>

PR rtl-optimization/67954
* lra-constraints.c (curr_insn_transform): Add check on scratch
pseudo when change class to NO_REGS.  Add an assert.

From-SVN: r230986

gcc/ChangeLog
gcc/lra-constraints.c

index 89bef0528605d60f228d351a8a1605148d707394..ee1d24075cdda1778d93796309310e70509e1a9a 100644 (file)
@@ -1,3 +1,9 @@
+2015-11-25  Vladimir Makarov  <vmakarov@redhat.com>
+
+       PR rtl-optimization/67954
+       * lra-constraints.c (curr_insn_transform): Add check on scratch
+       pseudo when change class to NO_REGS.  Add an assert.
+
 2015-11-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
 
        Backport from mainline
index ae8f3cd949da5f75eb7d9dccc8b3df9ba3c04879..fc4bec879efb192666550bbe1759e6e191703170 100644 (file)
@@ -3635,7 +3635,8 @@ curr_insn_transform (void)
                 assigment pass and the scratch pseudo will be
                 spilled.  Spilled scratch pseudos are transformed
                 back to scratches at the LRA end.  */
-             && lra_former_scratch_operand_p (curr_insn, i))
+             && lra_former_scratch_operand_p (curr_insn, i)
+             && lra_former_scratch_p (REGNO (op)))
            {
              int regno = REGNO (op);
              lra_change_class (regno, NO_REGS, "      Change to", true);
@@ -3644,6 +3645,8 @@ curr_insn_transform (void)
                   spilled pseudo as there is only one such insn, the
                   current one.  */
                reg_renumber[regno] = -1;
+             lra_assert (bitmap_single_bit_set_p
+                         (&lra_reg_info[REGNO (op)].insn_bitmap));
            }
          /* We can do an optional reload.  If the pseudo got a hard
             reg, we might improve the code through inheritance.  If