diff options
author | segher <segher@138bc75d-0d04-0410-961f-82ee72b054a4> | 2019-02-14 18:46:18 +0000 |
---|---|---|
committer | segher <segher@138bc75d-0d04-0410-961f-82ee72b054a4> | 2019-02-14 18:46:18 +0000 |
commit | c43292b92e1f5e8de4e5e05684009abd5ef682bf (patch) | |
tree | 3818b76d8866d6a99b24fde794e850e2b0bb6e93 | |
parent | 727dbee375185764b5de4575739bea818942bc70 (diff) |
Backport from trunk
2018-07-26 Segher Boessenkool <segher@kernel.crashing.org>
PR rtl-optimization/85805
* combine.c (reg_nonzero_bits_for_combine): Only use the last set
value for hard registers if that was written in the same mode.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-8-branch@268888 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r-- | gcc/ChangeLog | 9 | ||||
-rw-r--r-- | gcc/combine.c | 3 |
2 files changed, 11 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index d64117356e4a..d4f632d8c456 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,12 @@ +2019-02-14 Segher Boessenkool <segher@kernel.crashing.org> + + Backport from trunk + 2018-07-26 Segher Boessenkool <segher@kernel.crashing.org> + + PR rtl-optimization/85805 + * combine.c (reg_nonzero_bits_for_combine): Only use the last set + value for hard registers if that was written in the same mode. + 2019-02-14 Martin Liska <mliska@suse.cz> Backport from mainline diff --git a/gcc/combine.c b/gcc/combine.c index 1b81df4d372f..b72f0f548623 100644 --- a/gcc/combine.c +++ b/gcc/combine.c @@ -10179,7 +10179,8 @@ reg_nonzero_bits_for_combine (const_rtx x, scalar_int_mode xmode, rsp = ®_stat[REGNO (x)]; if (rsp->last_set_value != 0 && (rsp->last_set_mode == mode - || (GET_MODE_CLASS (rsp->last_set_mode) == MODE_INT + || (REGNO (x) >= FIRST_PSEUDO_REGISTER + && GET_MODE_CLASS (rsp->last_set_mode) == MODE_INT && GET_MODE_CLASS (mode) == MODE_INT)) && ((rsp->last_set_label >= label_tick_ebb_start && rsp->last_set_label < label_tick) |