]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
backport: re PR target/89752 (ICE in emit_move_insn, at expr.c:3723)
authorJakub Jelinek <jakub@redhat.com>
Fri, 30 Aug 2019 12:28:22 +0000 (14:28 +0200)
committerJakub Jelinek <jakub@gcc.gnu.org>
Fri, 30 Aug 2019 12:28:22 +0000 (14:28 +0200)
Backported from mainline
2019-03-20  Jakub Jelinek  <jakub@redhat.com>

PR target/89752
* lra-constraints.c (process_alt_operands) <reg>: For BLKmode, don't
update this_alternative nor this_alternative_set.

From-SVN: r275138

gcc/ChangeLog
gcc/lra-constraints.c

index 9970d4e367216ef308a01ef8c21fe60a2ecdc443..36c445f3c7b3818fb01cf91c688fdbd2dd40826e 100644 (file)
@@ -1,6 +1,12 @@
 2019-08-30  Jakub Jelinek  <jakub@redhat.com>
 
        Backported from mainline
+       2019-03-20  Jakub Jelinek  <jakub@redhat.com>
+
+       PR target/89752
+       * lra-constraints.c (process_alt_operands) <reg>: For BLKmode, don't
+       update this_alternative nor this_alternative_set.
+
        2019-03-19  Jakub Jelinek  <jakub@redhat.com>
 
        PR rtl-optimization/89768
index 9b011fd70a5fbd4247067d3b3e529a8ff147bb7a..471f878d300e19f8c896ef145f9253e41593f578 100644 (file)
@@ -2294,6 +2294,8 @@ process_alt_operands (int only_alternative)
                  break;
 
                reg:
+                 if (mode == BLKmode)
+                   break;
                  this_alternative = reg_class_subunion[this_alternative][cl];
                  IOR_HARD_REG_SET (this_alternative_set,
                                    reg_class_contents[cl]);
@@ -2304,8 +2306,6 @@ process_alt_operands (int only_alternative)
                      IOR_HARD_REG_SET (this_costly_alternative_set,
                                        reg_class_contents[cl]);
                    }
-                 if (mode == BLKmode)
-                   break;
                  winreg = true;
                  if (REG_P (op))
                    {