diff options
author | uros <uros@138bc75d-0d04-0410-961f-82ee72b054a4> | 2008-05-12 16:55:43 +0000 |
---|---|---|
committer | uros <uros@138bc75d-0d04-0410-961f-82ee72b054a4> | 2008-05-12 16:55:43 +0000 |
commit | 5612e2f1f15bdd09bc1e0d1cfcfd63b654949bc6 (patch) | |
tree | 3303ac6a9a00c9e80c196162984587a511547af7 /gcc/recog.c | |
parent | f1984c5732a8b17b8f085ed0befaeb2f443d001e (diff) | |
download | ppe42-gcc-5612e2f1f15bdd09bc1e0d1cfcfd63b654949bc6.tar.gz ppe42-gcc-5612e2f1f15bdd09bc1e0d1cfcfd63b654949bc6.zip |
PR rtl-optimization/36111
* recog.c (validate_replace_rtx_1): Unshare new RTL expression
that was created for swappable operands.
testsuite/ChangeLog:
PR rtl-optimization/36111
* gcc.dg/pr36111.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@135221 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/recog.c')
-rw-r--r-- | gcc/recog.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/gcc/recog.c b/gcc/recog.c index 7303b2a86f3..91e4e999d6c 100644 --- a/gcc/recog.c +++ b/gcc/recog.c @@ -589,11 +589,11 @@ validate_replace_rtx_1 (rtx *loc, rtx from, rtx to, rtx object) if (SWAPPABLE_OPERANDS_P (x) && swap_commutative_operands_p (XEXP (x, 0), XEXP (x, 1))) { - validate_change (object, loc, - gen_rtx_fmt_ee (COMMUTATIVE_ARITH_P (x) ? code - : swap_condition (code), - GET_MODE (x), XEXP (x, 1), - XEXP (x, 0)), 1); + validate_unshare_change (object, loc, + gen_rtx_fmt_ee (COMMUTATIVE_ARITH_P (x) ? code + : swap_condition (code), + GET_MODE (x), XEXP (x, 1), + XEXP (x, 0)), 1); x = *loc; code = GET_CODE (x); } |