This is the mail archive of the gcc-cvs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

r242208 - in /branches/ARM/sve-branch/gcc: doc/...


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]