diff options
author | Richard Sandiford <richard.sandiford@arm.com> | 2016-11-15 18:16:59 +0000 |
---|---|---|
committer | Richard Sandiford <rsandifo@gcc.gnu.org> | 2016-11-15 18:16:59 +0000 |
commit | 231314e360037e711922ece00817f8c2abc7aec0 (patch) | |
tree | 480ffac9e966d889d8dd72c69996fa9c06069cf4 /gcc/gcov-io.h | |
parent | 3712c7a30197c43bc98d46e344391287da16d7e1 (diff) | |
download | gcc-231314e360037e711922ece00817f8c2abc7aec0.zip gcc-231314e360037e711922ece00817f8c2abc7aec0.tar.gz gcc-231314e360037e711922ece00817f8c2abc7aec0.tar.bz2 |
Use simplify_gen_binary in canon_rtx
After simplifying the operands of a PLUS, canon_rtx checked only
for cases in which one of the simplified operands was a constant,
falling back to gen_rtx_PLUS otherwise. This left the PLUS in a
non-canonical order if one of the simplified operands was
(plus (reg R1) (const_int X)); we'd end up with:
(plus (plus (reg R1) (const_int Y)) (reg R2))
rather than:
(plus (plus (reg R1) (reg R2)) (const_int Y))
Fixing this exposed new DSE opportunities on spu-elf in
gcc.c-torture/execute/builtins/strcat-chk.c but otherwise
it doesn't seem to have much practical effect.
gcc/
2016-11-15 Richard Sandiford <richard.sandiford@arm.com>
Alan Hayward <alan.hayward@arm.com>
David Sherwood <david.sherwood@arm.com>
* alias.c (canon_rtx): Use simplify_gen_binary.
Co-Authored-By: Alan Hayward <alan.hayward@arm.com>
Co-Authored-By: David Sherwood <david.sherwood@arm.com>
From-SVN: r242445
Diffstat (limited to 'gcc/gcov-io.h')
0 files changed, 0 insertions, 0 deletions