From: Segher Boessenkool Date: Fri, 24 Feb 2017 22:32:46 +0000 (+0100) Subject: c6x: Fix for RTL checking X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=015122d8c438b83cb069a6f42fae066cfb4749da;p=gcc.git c6x: Fix for RTL checking * config/c6x/c6x.c (predicate_insn): Do not incorrectly share RTL. From-SVN: r245721 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index d8766e27727..12d4a720354 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2017-02-24 Segher Boessenkool + + * config/c6x/c6x.c (predicate_insn): Do not incorrectly share RTL. + 2017-02-24 Segher Boessenkool * config/arc/arc.c (arc_ccfsm_advance): Only take the PATTERN of diff --git a/gcc/config/c6x/c6x.c b/gcc/config/c6x/c6x.c index f841266e369..c54d4d18a58 100644 --- a/gcc/config/c6x/c6x.c +++ b/gcc/config/c6x/c6x.c @@ -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;