This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PR c/64765, c/64880] Support OpenACC Combined Directives in C, C++
- From: Nathan Sidwell <nathan at acm dot org>
- To: Thomas Schwinge <thomas at codesourcery dot com>, gcc-patches at gcc dot gnu dot org, Joseph Myers <joseph at codesourcery dot com>, Jason Merrill <jason at redhat dot com>, Nathan Sidwell <nathan at codesourcery dot com>
- Cc: Jakub Jelinek <jakub at redhat dot com>, James Norris <jnorris at codesourcery dot com>, Cesar Philippidis <cesar at codesourcery dot com>
- Date: Fri, 9 Oct 2015 08:26:37 -0400
- Subject: Re: [PR c/64765, c/64880] Support OpenACC Combined Directives in C, C++
- Authentication-results: sourceware.org; auth=none
- References: <87h9m1nwle dot fsf at kepler dot schwinge dot homeip dot net>
On 10/08/15 12:39, Thomas Schwinge wrote:
Hi!
Some bits extracted out of gomp-4_0-branch, and some other bits
rewritten; here is a patch to support OpenACC Combined Directives in C,
C++. (The Fortran front end already does support these.)
As far as I know, Jakub is not available at this time, so maybe the C
(Joseph) and C++ (Jason, Nathan) front end maintainers could please
review this, instead of him? (The front end changes as well as the few
other cleanup changes should all be straight forward.) OK for trunk once
bootstrap tested?
--- gcc/cp/parser.c
+++ gcc/cp/parser.c
@@ -33132,69 +33132,64 @@ cp_parser_oacc_enter_exit_data (cp_parser *parser, cp_token *pragma_tok,
-/* OpenACC 2.0:
# pragma acc loop oacc-loop-clause[optseq] new-line
structured-block */
#define OACC_LOOP_CLAUSE_MASK \
( (OMP_CLAUSE_MASK_1 << PRAGMA_OACC_CLAUSE_COLLAPSE) \
- | (OMP_CLAUSE_MASK_1 << PRAGMA_OACC_CLAUSE_REDUCTION))
+ | (OMP_CLAUSE_MASK_1 << PRAGMA_OACC_CLAUSE_REDUCTION) )
static tree
-cp_parser_oacc_loop (cp_parser *parser, cp_token *pragma_tok)
+cp_parser_oacc_loop (cp_parser *parser, cp_token *pragma_tok, char *p_name,
+ omp_clause_mask mask, tree *cclauses)
Needs documentation.
static tree
-cp_parser_oacc_parallel (cp_parser *parser, cp_token *pragma_tok)
+cp_parser_oacc_kernels_parallel (cp_parser *parser, cp_token *pragma_tok,
+ char *p_name)
Likewise,
diff --git gcc/cp/semantics.c gcc/cp/semantics.c
index c1f4330..3b9b714 100644
--- gcc/cp/semantics.c
+++ gcc/cp/semantics.c
@@ -6124,8 +6124,17 @@ finish_omp_structured_block (tree block)
return do_poplevel (block);
}
+/* Similarly, except force the retention of the BLOCK. */
similar to what?
+
+tree
+begin_omp_parallel (void)
nathan