r278941 - in /trunk/gcc: ChangeLog cfgexpand.c ...
rsandifo@gcc.gnu.org
rsandifo@gcc.gnu.org
Tue Dec 3 18:06:00 GMT 2019
Author: rsandifo
Date: Tue Dec 3 18:06:24 2019
New Revision: 278941
URL: https://gcc.gnu.org/viewcvs?rev=278941&root=gcc&view=rev
Log:
Mark constant-sized objects as addressable if they have poly-int accesses
If SVE code is written for a specific vector length, it might load from
or store to fixed-sized objects. This needs to work even without
-msve-vector-bits=N (which should never be needed for correctness).
There's no way of handling a direct poly-int sized reference to a
fixed-size register; it would have to go via memory. And in that
case it's more efficient to mark the fixed-size object as
addressable from the outset, like we do for array references
with non-constant indices.
2019-12-03 Richard Sandiford <richard.sandiford@arm.com>
gcc/
* cfgexpand.c (discover_nonconstant_array_refs_r): If an access
with POLY_INT_CST size is made to a fixed-size object, force the
object to live in memory.
gcc/testsuite/
* gcc.target/aarch64/sve/acle/general/deref_1.c: New test.
Added:
trunk/gcc/testsuite/gcc.target/aarch64/sve/acle/general/deref_1.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/cfgexpand.c
trunk/gcc/testsuite/ChangeLog
More information about the Gcc-cvs
mailing list