]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
2016-02-08 Richard Biener <rguenther@suse.de>
authorrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 8 Feb 2016 09:09:22 +0000 (09:09 +0000)
committerrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 8 Feb 2016 09:09:22 +0000 (09:09 +0000)
PR rtl-optimization/69274
* ira.c (ira_setup_alts): Do not change recog_data.operand
order.

* gcc.target/i386/addr-sel-1.c: XFAIL.

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

gcc/ChangeLog
gcc/ira.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/i386/addr-sel-1.c

index 2c4a8b6096dfd3f474b323fd4ece1188cd2a6e88..3e8055136f848e763a7bc94c7d76f14ffcfdac1f 100644 (file)
@@ -1,3 +1,9 @@
+2016-02-08   Richard Biener  <rguenther@suse.de>
+
+       PR rtl-optimization/69274
+       * ira.c (ira_setup_alts): Do not change recog_data.operand
+       order.
+
 2016-02-08  Jeff Law  <law@redhat.com>
 
        PR tree-optimization/65917
index 249e2fffae7213570ba529263c3b65d9bffb6ef5..81d1d339947974ebe82e71f61e2c925ecb6eabf3 100644 (file)
--- a/gcc/ira.c
+++ b/gcc/ira.c
@@ -1889,10 +1889,11 @@ ira_setup_alts (rtx_insn *insn, HARD_REG_SET &alts)
        }
       if (commutative < 0)
        break;
-      if (curr_swapped)
-       break;
+      /* Swap forth and back to avoid changing recog_data.  */
       std::swap (recog_data.operand[commutative],
                 recog_data.operand[commutative + 1]);
+      if (curr_swapped)
+       break;
     }
 }
 
index 6aa927d05de80b3a354e93d759644a0fb88b4662..e0e68af43ca4711eadf4d8e90edc6bbecaf20e89 100644 (file)
@@ -1,3 +1,8 @@
+2016-02-08   Richard Biener  <rguenther@suse.de>
+
+       PR rtl-optimization/69274
+       * gcc.target/i386/addr-sel-1.c: XFAIL.
+
 2016-02-08  Jeff Law  <law@redhat.com>
 
        PR tree-optimization/68541
index 27623ffd96cc5237a4b91efec2c602ed34902cd6..8b1b4d42c730fe6e04a855cef4b6d01c24b00aee 100644 (file)
@@ -14,4 +14,4 @@ int f(int i)
 }
 
 /* { dg-final { scan-assembler "a\\+1" } } */
-/* { dg-final { scan-assembler "b\\+1" } } */
+/* { dg-final { scan-assembler "b\\+1" { xfail *-*-* } } } */