[PATCH][GCC][AArch64] Allow any offset for SVE addressing modes before reload
Tamar Christina
Tamar.Christina@arm.com
Mon Feb 11 15:17:00 GMT 2019
Hi All,
On AArch64 aarch64_classify_address has a case for when it's non-strict
that will allow it to accept any byte offset from a reg when validating
an address in a given addressing mode.
This because reload would later make the address valid. SVE however requires
the address always be valid, but currently allows any address when a MEM +
offset is used. This causes an ICE as nothing later forces the address to be
legitimate.
The patch forces aarch64_emit_sve_pred_move to ensure that the addressing mode
is valid for any loads/stores it creates, which follows the SVE way of handling
address classifications.
Bootstrapped on aarch64-none-linux-gnu and no issues.
Regtested on aarch64-none-elf with SVE on and no issues.
Ok for trunk?
Thanks,
Tamar
gcc/ChangeLog:
2019-02-11 Tamar Christina <tamar.christina@arm.com>
PR target/88847
* config/aarch64/aarch64.c (aarch64_classify_address):
For SVE enforce that the address is always valid when doing a MEM +
offset.
gcc/testsuite/ChangeLog:
2019-02-11 Tamar Christina <tamar.christina@arm.com>
PR target/88847
* gcc.target/aarch64/sve/pr88847.c: New test.
--
-------------- next part --------------
A non-text attachment was scrubbed...
Name: rb10622.patch
Type: text/x-diff
Size: 1769 bytes
Desc: rb10622.patch
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20190211/85c1bde1/attachment.bin>
More information about the Gcc-patches
mailing list