]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR rtl-optimization/61325 (aarch64_be build fails)
authorVladimir Makarov <vmakarov@redhat.com>
Fri, 6 Jun 2014 17:22:34 +0000 (17:22 +0000)
committerVladimir Makarov <vmakarov@gcc.gnu.org>
Fri, 6 Jun 2014 17:22:34 +0000 (17:22 +0000)
2014-06-06  Vladimir Makarov  <vmakarov@redhat.com>

PR rtl-optimization/61325
* lra-constraints.c (process_address_1): Check scale equal to one
to prevent transformation: base + scale * index => base + new_reg.

From-SVN: r211320

gcc/ChangeLog
gcc/lra-constraints.c

index 19aeddc91904aaaa505152b322b06ce641b2bf96..40845337c02c4b09253f394250351832c3d86d1f 100644 (file)
@@ -1,3 +1,9 @@
+2014-06-06  Vladimir Makarov  <vmakarov@redhat.com>
+
+       PR rtl-optimization/61325
+       * lra-constraints.c (process_address_1): Check scale equal to one
+       to prevent transformation: base + scale * index => base + new_reg.
+
 2014-06-06  Richard Biener  <rguenther@suse.de>
 
        PR tree-optimization/59299
index cafbc898c664f8adbf0d17fb004a9cd420696b64..08716fe698a12da0681ff45d2b6f698cbd256b89 100644 (file)
@@ -3033,6 +3033,13 @@ process_address_1 (int nop, rtx *before, rtx *after)
       *ad.inner = simplify_gen_binary (PLUS, GET_MODE (new_reg),
                                       new_reg, *ad.index);
     }
+  else if (get_index_scale (&ad) == 1)
+    {
+      /* The last transformation to one reg will be made in
+        curr_insn_transform function.  */
+      end_sequence ();
+      return false;
+    }
   else
     {
       /* base + scale * index => base + new_reg,