diff options
author | Thomas Schwinge <thomas@codesourcery.com> | 2020-11-20 10:41:46 +0100 |
---|---|---|
committer | Thomas Schwinge <thomas@codesourcery.com> | 2020-11-24 10:28:04 +0100 |
commit | 8c3aa359ce33732273bbd61c5f9a2c607779b32e (patch) | |
tree | bc9415c3a4c19cd2bd319adab417d98203c9f571 /gcc/omp-expand.c | |
parent | f72175357d04b0e71d2043be48551d7904a233b6 (diff) | |
download | gcc-8c3aa359ce33732273bbd61c5f9a2c607779b32e.zip gcc-8c3aa359ce33732273bbd61c5f9a2c607779b32e.tar.gz gcc-8c3aa359ce33732273bbd61c5f9a2c607779b32e.tar.bz2 |
More explicit checking of which OMP constructs we're expecting, part II
In particular, more precisely highlight what applies generally vs. the special
handling for the current 'parloops'-based OpenACC 'kernels' implementation.
gcc/
* omp-expand.c (expand_oacc_for): More explicit checking of which
OMP constructs we're expecting.
Diffstat (limited to 'gcc/omp-expand.c')
-rw-r--r-- | gcc/omp-expand.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/gcc/omp-expand.c b/gcc/omp-expand.c index c0e94e5..928644b 100644 --- a/gcc/omp-expand.c +++ b/gcc/omp-expand.c @@ -7413,6 +7413,21 @@ expand_omp_taskloop_for_inner (struct omp_region *region, static void expand_oacc_for (struct omp_region *region, struct omp_for_data *fd) { + bool is_oacc_kernels_parallelized + = (lookup_attribute ("oacc kernels parallelized", + DECL_ATTRIBUTES (current_function_decl)) != NULL); + { + bool is_oacc_kernels + = (lookup_attribute ("oacc kernels", + DECL_ATTRIBUTES (current_function_decl)) != NULL); + if (is_oacc_kernels_parallelized) + gcc_checking_assert (is_oacc_kernels); + } + gcc_assert (gimple_in_ssa_p (cfun) == is_oacc_kernels_parallelized); + /* In the following, some of the 'gimple_in_ssa_p (cfun)' conditionals are + for SSA specifics, and some are for 'parloops' OpenACC + 'kernels'-parallelized specifics. */ + tree v = fd->loop.v; enum tree_code cond_code = fd->loop.cond_code; enum tree_code plus_code = PLUS_EXPR; |