r242208 - in /branches/ARM/sve-branch/gcc: doc/...
rsandifo@gcc.gnu.org
rsandifo@gcc.gnu.org
Fri Nov 11 17:19:00 GMT 2016
Author: rsandifo
Date: Fri Nov 11 17:19:01 2016
New Revision: 242208
URL: https://gcc.gnu.org/viewcvs?rev=242208&root=gcc&view=rev
Log:
Let the target choose a vectorisation alignment
The vectoriser previously aligned vectors to TYPE_ALIGN
unconditionally, although there was also a hard-coded
assumption that this was equal to the type size. This was
inconvenient for SVE for two reasons:
- When compiling for a specific power-of-2 SVE vector length,
we generally want to align to a full vector. However, the
TYPE_ALIGN is governed by the ABI alignment, which is 16 bytes
regardless of size.
- For vector-length-agnostic code it doesn't make sense to try
to align, since the runtime vector length might not be a
power of two. Even for power of two sizes, there's no
guarantee that aligning to the previous 16 bytes will be
an improveent.
This patch therefore adds a target hook to control the preferred
vectoriser (as opposed to ABI) alignment.
Modified:
branches/ARM/sve-branch/gcc/doc/tm.texi
branches/ARM/sve-branch/gcc/doc/tm.texi.in
branches/ARM/sve-branch/gcc/target.def
branches/ARM/sve-branch/gcc/targhooks.c
branches/ARM/sve-branch/gcc/targhooks.h
branches/ARM/sve-branch/gcc/testsuite/gcc.dg/vect/vect-outer-3a-big-array.c
branches/ARM/sve-branch/gcc/testsuite/gcc.dg/vect/vect-outer-3a.c
branches/ARM/sve-branch/gcc/tree-vect-data-refs.c
branches/ARM/sve-branch/gcc/tree-vect-loop-manip.c
branches/ARM/sve-branch/gcc/tree-vect-stmts.c
branches/ARM/sve-branch/gcc/tree-vectorizer.h
More information about the Gcc-cvs
mailing list