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]

r242265 - in /branches/ARM/sve-branch/gcc: tree...


Author: rsandifo
Date: Fri Nov 11 17:30:42 2016
New Revision: 242265

URL: https://gcc.gnu.org/viewcvs?rev=242265&root=gcc&view=rev
Log:
poly_int: vectoriser vf and uf

This patch changes the type of the vectorisation factor and SLP
unrolling factor to poly_uint64, so that the number of elements in
a vector can be made polynomial later.  This in turn required some
knock-on changes in signedness elsewhere.

One effect of this patch is that we now use MULT_EXPR and TRUNC_DIV_EXPR
rather than shifts by log2(vf).  This doesn't get reduced at the gimple
level back to shifts, which from the lack of patterns in match.pd
appears to be a deliberate decision to keep multiplication and division
as the canonical forms.  The conversion to shifts still happens later,
during expansion.  However, doing it later does cause some small but
seemingly minor changes to a handful of testcases in the testsuite.

The patch also changes MAX_VECTORIZATION_FACTOR to INT_MAX,
to avoid hard-coding a particular architectural limit.

Modified:
    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-loop.c
    branches/ARM/sve-branch/gcc/tree-vect-slp.c
    branches/ARM/sve-branch/gcc/tree-vect-stmts.c
    branches/ARM/sve-branch/gcc/tree-vectorizer.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]