Lines Matching refs:clauses
45 - The entire 'kernels' region is turned into a 'data' region with clauses
46 taken from the 'kernels' region. New 'create' clauses are added for all
51 get an 'auto' clause added; other clauses are preserved on the loop
65 clauses use the original 'kernels' construct's 'async' argument
70 /*TODO Things are conceptually wrong here: 'loop' clauses may be hidden behind
151 tree clauses = gimple_omp_for_clauses (stmt);
152 if (omp_find_clause (clauses, OMP_CLAUSE_INDEPENDENT))
158 else if (omp_find_clause (clauses, OMP_CLAUSE_SEQ))
251 tree clauses = gimple_omp_for_clauses (stmt);
253 for (tree clause = clauses; clause; clause = OMP_CLAUSE_CHAIN (clause))
266 clauses = OMP_CLAUSE_CHAIN (clause);
272 gimple_omp_for_set_clauses (stmt, clauses);
289 for any loops inside it that have gang clauses and remove the clauses. */
300 Annotate with CLAUSES, which must not contain a 'num_gangs' clause, and an
308 tree clauses)
311 clauses = unshare_expr (clauses);
332 OMP_CLAUSE_CHAIN (gang_single_clause) = clauses;
333 clauses = gang_single_clause;
335 /* Remove and issue warnings about gang clauses on any OpenACC
347 'GF_OMP_TARGET_KIND_OACC_KERNELS', this isn't doing any of the clauses
349 /* Re-assemble the clauses stripped off earlier. */
353 OMP_CLAUSE_CHAIN (c) = clauses;
354 clauses = c;
359 OMP_CLAUSE_CHAIN (c) = clauses;
360 clauses = c;
365 OMP_CLAUSE_CHAIN (c) = clauses;
366 clauses = c;
373 gimple *single_region = gimple_build_omp_target (NULL, region_code, clauses);
382 ('num_workers', 'vector_length') clause to the given CLAUSES, either the one
385 clauses) with the given CLAUSE_CODE. Does nothing if neither PARENT_CLAUSE
386 nor LOOP_CLAUSE exist. Returns the new clauses. */
390 omp_clause_code clause_code, tree clauses)
395 OMP_CLAUSE_CHAIN (num_clause) = clauses;
396 clauses = num_clause;
407 OMP_CLAUSE_CHAIN (new_num_clause) = clauses;
408 clauses = new_num_clause;
410 return clauses;
414 (length: N)' clauses in nested loops. Removes the argument, transferring it
509 construct clauses into OpenACC 'parallel'/'loop' construct ones. */
516 tree clauses)
521 We also check for 'gang (num: N)' clauses. These must not appear in
524 'vector' clauses. */
592 their own 'worker (num: W)' or 'vector (length: V)' clauses. Turn these
593 into 'worker'/'vector' clauses on the compute construct. */
615 clauses, add these to this new compute construct. */
616 clauses
618 OMP_CLAUSE_NUM_GANGS, clauses);
619 clauses
621 OMP_CLAUSE_NUM_WORKERS, clauses);
622 clauses
624 OMP_CLAUSE_VECTOR_LENGTH, clauses);
626 return clauses;
633 optional clauses from the original kernels region and must not be contained
634 in the other CLAUSES. The newly created compute construct is annotated with
635 the optional NUM_GANGS_CLAUSE as well as the other CLAUSES. If there is no
638 similarly for 'worker' and 'vector' clauses.
649 tree clauses)
652 clauses = unshare_expr (clauses);
670 clauses = transform_kernels_loop_clauses (omp_for,
674 clauses);
687 /* Re-assemble the clauses stripped off earlier. */
688 clauses
690 OMP_CLAUSE_NUM_GANGS, clauses);
691 clauses
693 OMP_CLAUSE_NUM_WORKERS, clauses);
694 clauses
696 OMP_CLAUSE_VECTOR_LENGTH, clauses);
704 = gimple_build_omp_target (parallel_body_bind, region_code, clauses);
801 location LOC containing BODY and having 'create (var)' clauses for each
817 /* Build data 'create (var)' clauses for these local variables.
1154 /* The kernels clauses will be propagated to the child clauses unmodified,
1155 except that the 'num_gangs', 'num_workers', and 'vector_length' clauses
1158 'num_gangs', 'num_workers', and 'vector_length' clauses here.
1160 the 'kernels' clauses. */
1214 clauses for them and add these clauses to the list of clauses to be
1435 /* Collect the data clauses of the OpenACC 'kernels' directive and create a
1436 new OpenACC 'data' construct with those clauses. */
1441 /* Certain clauses are copied to the enclosing OpenACC 'data'. Other
1442 clauses remain on the OpenACC 'kernels'. */
1534 /* Restore the original order of the clauses. */