aboutsummaryrefslogtreecommitdiff
path: root/gcc/omp-general.h
diff options
context:
space:
mode:
authorRichard Sandiford <richard.sandiford@linaro.org>2018-01-03 07:14:31 +0000
committerRichard Sandiford <rsandifo@gcc.gnu.org>2018-01-03 07:14:31 +0000
commit9d2f08ab97bea3c299cce96a0760904501e002dd (patch)
treee47f22b11c033a18b86e50ce91d45d804751f54e /gcc/omp-general.h
parentc5126ce8cae4f14194414e266be91fdc4b756807 (diff)
downloadgcc-9d2f08ab97bea3c299cce96a0760904501e002dd.zip
gcc-9d2f08ab97bea3c299cce96a0760904501e002dd.tar.gz
gcc-9d2f08ab97bea3c299cce96a0760904501e002dd.tar.bz2
poly_int: omp_max_vf
This patch makes omp_max_vf return a polynomial vectorization factor. We then need to be able to stash a polynomial value in OMP_CLAUSE_SAFELEN_EXPR too: /* If max_vf is non-zero, then we can use only a vectorization factor up to the max_vf we chose. So stick it into the safelen clause. */ For now the cfgloop safelen is still constant though. 2018-01-03 Richard Sandiford <richard.sandiford@linaro.org> Alan Hayward <alan.hayward@arm.com> David Sherwood <david.sherwood@arm.com> gcc/ * omp-general.h (omp_max_vf): Return a poly_uint64 instead of an int. * omp-general.c (omp_max_vf): Likewise. * omp-expand.c (omp_adjust_chunk_size): Update call to omp_max_vf. (expand_omp_simd): Handle polynomial safelen. * omp-low.c (omplow_simd_context): Add a default constructor. (omplow_simd_context::max_vf): Change from int to poly_uint64. (lower_rec_simd_input_clauses): Update accordingly. (lower_rec_input_clauses): Likewise. Co-Authored-By: Alan Hayward <alan.hayward@arm.com> Co-Authored-By: David Sherwood <david.sherwood@arm.com> From-SVN: r256129
Diffstat (limited to 'gcc/omp-general.h')
-rw-r--r--gcc/omp-general.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/omp-general.h b/gcc/omp-general.h
index d28eb4b..99a5e1d 100644
--- a/gcc/omp-general.h
+++ b/gcc/omp-general.h
@@ -78,7 +78,7 @@ extern tree omp_get_for_step_from_incr (location_t loc, tree incr);
extern void omp_extract_for_data (gomp_for *for_stmt, struct omp_for_data *fd,
struct omp_for_data_loop *loops);
extern gimple *omp_build_barrier (tree lhs);
-extern int omp_max_vf (void);
+extern poly_uint64 omp_max_vf (void);
extern int omp_max_simt_vf (void);
extern tree oacc_launch_pack (unsigned code, tree device, unsigned op);
extern void oacc_replace_fn_attrib (tree fn, tree dims);