re PR target/64268 (bootstrap failure (ICE in wide_int_to_tree, at tree.c:1438) on...
authorSegher Boessenkool <segher@kernel.crashing.org>
Fri, 19 Dec 2014 19:55:32 +0000 (20:55 +0100)
committerSegher Boessenkool <segher@gcc.gnu.org>
Fri, 19 Dec 2014 19:55:32 +0000 (20:55 +0100)
PR target/64268
* combine.c (try_combine): Immediately return if any of I0,I1,I2
are the same insn.

From-SVN: r218971

gcc/ChangeLog
gcc/combine.c

index e5733ae9c8813c8f16eaac5429177ca926ba77e4..a800fed4a181d4203a3963759571a077ad20ccce 100644 (file)
@@ -1,3 +1,9 @@
+2014-12-19  Segher Boessenkool  <segher@kernel.crashing.org>
+
+       PR target/64268
+       * combine.c (try_combine): Immediately return if any of I0,I1,I2
+       are the same insn.
+
 2014-12-19  Alan Lawrence  <alan.lawrence@arm.com>
 
        * config/aarch64/aarch64.c (<LOGICAL:optab>_one_cmpl<mode>3):
index ee7b3f9ec5fa841243513c71c85121f1ef78497e..212da3320f3fcc05c569e6352215379f758d64a8 100644 (file)
@@ -2588,6 +2588,11 @@ try_combine (rtx_insn *i3, rtx_insn *i2, rtx_insn *i1, rtx_insn *i0,
   rtx new_other_notes;
   int i;
 
+  /* Immediately return if any of I0,I1,I2 are the same insn (I3 can
+     never be).  */
+  if (i1 == i2 || i0 == i2 || (i0 && i0 == i1))
+    return 0;
+
   /* Only try four-insn combinations when there's high likelihood of
      success.  Look for simple insns, such as loads of constants or
      binary operations involving a constant.  */