[PATCH][GCC][AArch64] Fix pattern guard relaxations that are allowing more constants than they should.
Tamar Christina
tamar.christina@arm.com
Fri Aug 11 13:07:00 GMT 2017
Hi All,
Hi previous float immediate patches changed
aarch64_reg_or_fp_zero into aarch64_reg_or_fp_float
for each of the movdf/sf/hf causing the RTL to contain
stores to memory it would never be able to find a matching
pattern for. Reload would then decide to store them to a
register instead.
This didn't cause any incorrect code or failing tests but did change
scheduling does producing more inefficient code.
The predicate is not reverted.
Regression tested on aarch64-none-linux-gnu and no regressions.
OK for trunk?
Thanks,
Tamar
gcc/
2017-08-11 Tamar Christina <tamar.christina@arm.com>
* config/aarch64/aarch64.md (mov<mode>): Change.
(*movhf_aarch64, *movsf_aarch64, *movdf_aarch64):
aarch64_reg_or_fp_float into aarch64_reg_or_fp_zero.
* config/aarch64/predicates.md (aarch64_reg_or_fp_float): Removed.
--
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 8015-diff.patch
Type: text/x-diff
Size: 2147 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20170811/aa39b9a3/attachment.bin>
More information about the Gcc-patches
mailing list