c6x: Fix for RTL checking
authorSegher Boessenkool <segher@kernel.crashing.org>
Fri, 24 Feb 2017 22:32:46 +0000 (23:32 +0100)
committerSegher Boessenkool <segher@gcc.gnu.org>
Fri, 24 Feb 2017 22:32:46 +0000 (23:32 +0100)
* config/c6x/c6x.c (predicate_insn): Do not incorrectly share RTL.

From-SVN: r245721

gcc/ChangeLog
gcc/config/c6x/c6x.c

index d8766e277279e1471ae4446873c7a5547b156639..12d4a720354570130905186c4b60fa455af20dc1 100644 (file)
@@ -1,3 +1,7 @@
+2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
+
+       * config/c6x/c6x.c (predicate_insn): Do not incorrectly share RTL.
+
 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
 
        * config/arc/arc.c (arc_ccfsm_advance): Only take the PATTERN of
index f841266e3690bbe6d18d8de33ebccdceaa7ca7ce..c54d4d18a58e21613d3c8a14499263e1b2d9116d 100644 (file)
@@ -3799,6 +3799,7 @@ predicate_insn (rtx_insn *insn, rtx cond, bool doit)
     {
       if (doit)
        {
+         cond = copy_rtx (cond);
          rtx newpat = gen_rtx_COND_EXEC (VOIDmode, cond, PATTERN (insn));
          PATTERN (insn) = newpat;
          INSN_CODE (insn) = -1;