[AArch64] Relax modes_tieable_p and cannot_change_mode_class
James Greenhalgh
james.greenhalgh@arm.com
Tue Feb 18 12:40:00 GMT 2014
Hi,
We aim to improve code generation for the vector structure types
such as int64x2x4_t, as used in the vld/st{2,3,4} lane neon
intrinsics.
It should be possible and cheap to get individual vectors in
and out of these structures - these structures are implemented as
opaque integer modes straddling multiple vector registers.
To do this, we want to weaken the conditions for
aarch64_cannot_change_mode_class - to permit cheap subreg
operations - and for TARGET_MODES_TIEABLE_P - to allow all combinations
of vector structure and vector types to coexist.
Regression tested on aarch64-none-elf with no issues.
This is a bit too intrusive for Stage 4, but is it OK to
queue for Stage 1?
Thanks,
James
---
gcc/
2014-02-18 James Greenhalgh <james.greenhalgh@arm.com>
* config/aarch64/aarch64-protos.h (aarch64_modes_tieable_p): New.
* config/aarch64/aarch64.c
(aarch64_cannot_change_mode_class): Weaken conditions.
(aarch64_modes_tieable_p): New.
* config/aarch64/aarch64.h (MODES_TIEABLE_P): Use it.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-AArch64-Relax-modes_tieable_p-and-cannot_change_mode.patch
Type: text/x-patch
Size: 3216 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20140218/a291e37b/attachment.bin>
More information about the Gcc-patches
mailing list