[gomp4] Fix combined directives.
Jakub Jelinek
jakub@redhat.com
Mon Oct 27 18:34:00 GMT 2014
On Mon, Oct 27, 2014 at 01:00:41PM -0500, James Norris wrote:
> 2014-10-27 James Norris<jnorris@codesourcery.com>
Missing two spaces before <.
> * c/c-parser.c (c_parser_oacc_loop, OACC_LOOP_CLAUSE_MASK):
Note, gcc/c/ directory has its own ChangeLog, so the c/ prefix doesn't
belong into ChangeLog entries.
> +#define OACC_LOOP_CLAUSE_MASK \
> + ( (OMP_CLAUSE_MASK_1 << PRAGMA_OMP_CLAUSE_COLLAPSE) \
> + | (OMP_CLAUSE_MASK_1 << PRAGMA_OMP_CLAUSE_REDUCTION) )
> +
> +static tree
> +c_parser_oacc_loop (location_t loc, c_parser *parser, char *p_name)
> +{
> + tree stmt, clauses, block;
> +
> + strcat (p_name, " loop");
> +
> + clauses = c_parser_oacc_all_clauses (parser, OACC_LOOP_CLAUSE_MASK, p_name);
I must say I'm quite surprised that you hardcode the mask here, can loop
never be combined with acc parallel? Look what I'm doing for OpenMP
constructs?
> + if (!strcmp ("loop", IDENTIFIER_POINTER (stmt)))
> {
> + mask |= OACC_LOOP_CLAUSE_MASK;
> + strcat (p_name, " loop");
> c_parser_consume_token (parser);
> - block = c_begin_omp_parallel ();
> - c_parser_oacc_loop (loc, parser, p_name);
> - stmt = c_finish_oacc_kernels (loc, clauses, block);
> - OACC_KERNELS_COMBINED (stmt) = 1;
> - return stmt;
> + is_combined = true;
> }
> }
>
> - clauses = c_parser_oacc_all_clauses (parser, OACC_KERNELS_CLAUSE_MASK,
> - p_name);
> + clauses = c_parser_oacc_all_clauses (parser, mask, p_name);
Doesn't this really mean that you don't parse the the loop as loop?
Also, please avoid the extra space in "= c_...".
Jakub
More information about the Gcc-patches
mailing list