diff options
author | Ilya Leoshkevich <iii@linux.ibm.com> | 2021-01-15 00:14:56 +0100 |
---|---|---|
committer | Ilya Leoshkevich <iii@linux.ibm.com> | 2021-01-21 22:48:47 +0100 |
commit | efb6bc55a93a1b8a719e0dab344c0a21344a67a9 (patch) | |
tree | 2dfe597bcf21dafb47d0ea95e64e812f4e74c4e9 /gcc/tree-data-ref.c | |
parent | f645da0e4ab9438dfd0c047c710c7ec6a7d6d8f3 (diff) | |
download | gcc-efb6bc55a93a1b8a719e0dab344c0a21344a67a9.zip gcc-efb6bc55a93a1b8a719e0dab344c0a21344a67a9.tar.gz gcc-efb6bc55a93a1b8a719e0dab344c0a21344a67a9.tar.bz2 |
fwprop: Allow (subreg (mem)) simplifications
Suppose we have:
(set (reg/v:TF 63) (mem/c:TF (reg/v:DI 62)))
(set (reg:FPRX2 66) (subreg:FPRX2 (reg/v:TF 63) 0))
It is clearly profitable to propagate the first insn into the second
one and get:
(set (reg:FPRX2 66) (mem/c:FPRX2 (reg/v:DI 62)))
fwprop actually manages to perform this, but doesn't think the result is
worth it, which results in unnecessary store/load sequences on s390.
Improve the situation by classifying SUBREG -> MEM changes as
profitable.
gcc/ChangeLog:
2021-01-15 Ilya Leoshkevich <iii@linux.ibm.com>
* fwprop.c (fwprop_propagation::classify_result): Allow
(subreg (mem)) simplifications.
Diffstat (limited to 'gcc/tree-data-ref.c')
0 files changed, 0 insertions, 0 deletions