diff options
author | Kugan Vivekanandarajah <kuganv@linaro.org> | 2015-08-05 01:08:49 +0000 |
---|---|---|
committer | Kugan Vivekanandarajah <kugan@gcc.gnu.org> | 2015-08-05 01:08:49 +0000 |
commit | 1e928e07b22dd721d06501fb85a31360b55d3b8b (patch) | |
tree | 62d24ce5582e5f92c90952397aea1b1914716d83 /gcc | |
parent | 4856562a7036626de8408deb852779eb3ea7a197 (diff) | |
download | gcc-1e928e07b22dd721d06501fb85a31360b55d3b8b.zip gcc-1e928e07b22dd721d06501fb85a31360b55d3b8b.tar.gz gcc-1e928e07b22dd721d06501fb85a31360b55d3b8b.tar.bz2 |
cse.c (cse_insn): Restoring old behaviour for src_eqv when dest and value in the REG_EQUAL are...
gcc/ChangeLog:
2015-08-05 Kugan Vivekanandarajah <kuganv@linaro.org>
* cse.c (cse_insn): Restoring old behaviour for src_eqv
when dest and value in the REG_EQUAL are same and dest
is STRICT_LOW_PART.
From-SVN: r226606
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/cse.c | 9 |
2 files changed, 11 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index e391b6f..9c8e176 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2015-08-05 Kugan Vivekanandarajah <kuganv@linaro.org> + + * cse.c (cse_insn): Restoring old behaviour for src_eqv + when dest and value in the REG_EQUAL are same and dest + is STRICT_LOW_PART. + 2015-08-04 Anatoly Sokolov <aesok@post.ru> * config/moxie/moxie.h (PRINT_OPERAND, @@ -4528,12 +4528,13 @@ cse_insn (rtx_insn *insn) this case, and if it isn't set, then there will be no equivalence for the destination. */ if (n_sets == 1 && REG_NOTES (insn) != 0 - && (tem = find_reg_note (insn, REG_EQUAL, NULL_RTX)) != 0 - && (! rtx_equal_p (XEXP (tem, 0), SET_SRC (sets[0].rtl)))) + && (tem = find_reg_note (insn, REG_EQUAL, NULL_RTX)) != 0) { - if (GET_CODE (SET_DEST (sets[0].rtl)) == STRICT_LOW_PART) - src_eqv = copy_rtx (XEXP (tem, 0)); + if (GET_CODE (SET_DEST (sets[0].rtl)) != ZERO_EXTRACT + && (! rtx_equal_p (XEXP (tem, 0), SET_SRC (sets[0].rtl)) + || GET_CODE (SET_DEST (sets[0].rtl)) == STRICT_LOW_PART)) + src_eqv = copy_rtx (XEXP (tem, 0)); /* If DEST is of the form ZERO_EXTACT, as in: (set (zero_extract:SI (reg:SI 119) (const_int 16 [0x10]) |