* tree.def (OMP_LOOP): New tree code.
* tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_BIND.
(enum omp_clause_bind_kind): New enum.
(struct tree_omp_clause): Add subcode.bind_kind.
* tree.h (OMP_LOOP_CHECK): Rename to ...
(OMP_LOOPING_CHECK): ... this.
(OMP_FOR_BODY, OMP_FOR_CLAUSES, OMP_FOR_INIT, OMP_FOR_COND,
OMP_FOR_INCR, OMP_FOR_PRE_BODY, OMP_FOR_ORIG_DECLS): Use
OMP_LOOPING_CHECK instead of OMP_LOOP_CHECK.
(OMP_CLAUSE_BIND_KIND): Define.
* tree.c (omp_clause_num_ops, omp_clause_code_name): Add
bind clause entries.
(walk_tree_1): Handle OMP_CLAUSE_BIND.
* tree-pretty-print.c (dump_omp_clause): Likewise.
(dump_generic_node): Handle OMP_LOOP.
* gimplify.c (enum omp_region_type): Add ORT_IMPLICIT_TARGET.
(in_omp_construct): New variable.
(is_gimple_stmt): Handle OMP_LOOP.
(gimplify_scan_omp_clauses): For lastprivate don't set
check_non_private if code == OMP_LOOP. For reduction clause
on OMP_LOOP combined with parallel or teams propagate as shared
on the combined construct. Handle OMP_CLAUSE_BIND.
(gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_BIND.
(gimplify_omp_for): Pass OMP_LOOP instead of OMP_{FOR,DISTRIBUTE}
for constructs from a loop construct to gimplify_scan_omp_clauses.
Don't predetermine iterator linear on OMP_SIMD from loop construct.
(replace_reduction_placeholders, gimplify_omp_loop): New functions.
(gimplify_omp_workshare): Use ORT_IMPLICIT_TARGET instead of trying
to match the implicit ORT_TARGET construct around whole body.
Temporarily clear in_omp_construct when processing body.
(gimplify_expr): Handle OMP_LOOP. For OMP_MASTER, OMP_TASKGROUP
etc. temporarily set in_omp_construct when processing body.
(gimplify_body): Create ORT_IMPLICIT_TARGET instead of ORT_TARGET.
* omp-low.c (struct omp_context): Add loop_p.
(build_outer_var_ref): Treat ctx->loop_p similarly to simd construct
in that the original var might be private.
(scan_sharing_clauses): Handle OMP_CLAUSE_BIND.
(check_omp_nesting_restrictions): Adjust nesting restrictions for
addition of loop construct.
(scan_omp_1_stmt): Allow setjmp inside of loop construct.
gcc/c-family/
* c-pragma.h (enum pragma_kind): Add PRAGMA_OMP_LOOP.
(enum pragma_omp_clause): Add PRAGMA_OMP_CLAUSE_BIND.
* c-pragma.c (omp_pragmas_simd): Add PRAGMA_OMP_LOOP entry.
* c-common.h (enum c_omp_clause_split): Add C_OMP_CLAUSE_SPLIT_LOOP.
* c-omp.c (c_omp_split_clauses): Add support for 4 new combined
constructs with the loop construct.
gcc/c/
* c-parser.c (c_parser_omp_clause_name): Handle bind clause.
(c_parser_omp_clause_bind): New function.
(c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_BIND.
(OMP_LOOP_CLAUSE_MASK): Define.
(c_parser_omp_loop): New function.
(c_parser_omp_parallel, c_parser_omp_teams): Handle parsing of
loop combined with parallel or teams.
(c_parser_omp_construct): Handle PRAGMA_OMP_LOOP.
* c-typeck.c (c_finish_omp_clauses): Handle OMP_CLAUSE_BIND.
gcc/cp/
* cp-tree.h (OMP_FOR_GIMPLIFYING_P): Use OMP_LOOPING_CHECK
instead of OMP_LOOP_CHECK.
* parser.c (cp_parser_omp_clause_name): Handle bind clause.
(cp_parser_omp_clause_bind): New function.
(cp_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_BIND.
(OMP_LOOP_CLAUSE_MASK): Define.
(cp_parser_omp_loop): New function.
(cp_parser_omp_parallel, cp_parser_omp_teams): Handle parsing of
loop combined with parallel or teams.
(cp_parser_omp_construct): Handle PRAGMA_OMP_LOOP.
(cp_parser_pragma): Likewise.
* pt.c (tsubst_expr): Handle OMP_LOOP.
* semantics.c (finish_omp_clauses): Handle OMP_CLAUSE_BIND.
gcc/testsuite/
* c-c++-common/gomp/cancel-1.c: Adjust expected diagnostic wording.
* c-c++-common/gomp/clauses-1.c (foo, baz, bar): Add order(concurrent)
clause where allowed. Add combined constructs with loop with all
possible clauses.
(qux): New function.
* c-c++-common/gomp/loop-1.c: New test.
* c-c++-common/gomp/loop-2.c: New test.
* c-c++-common/gomp/loop-3.c: New test.
* c-c++-common/gomp/loop-4.c: New test.
* c-c++-common/gomp/loop-5.c: New test.
* c-c++-common/gomp/order-3.c: Adjust expected diagnostic wording.
* c-c++-common/gomp/simd-setjmp-1.c: New test.
* c-c++-common/gomp/teams-2.c: Adjust expected diagnostic wording.
libgomp/
* testsuite/libgomp.c-c++-common/loop-1.c: New test.
From-SVN: r273621
| Name |
Last commit
|
Last update |
|---|---|---|
| .. | ||
| atomic-18.c | Loading commit data... | |
| cancel-parallel-1.c | Loading commit data... | |
| cancel-taskgroup-1.c | Loading commit data... | |
| cancel-taskgroup-2.c | Loading commit data... | |
| cancel-taskgroup-3.c | Loading commit data... | |
| cancel-taskgroup-4.c | Loading commit data... | |
| depend-iterator-1.c | Loading commit data... | |
| depend-iterator-2.c | Loading commit data... | |
| depend-mutexinout-1.c | Loading commit data... | |
| depend-mutexinout-2.c | Loading commit data... | |
| depobj-1.c | Loading commit data... | |
| display-affinity-1.c | Loading commit data... | |
| for-1.c | Loading commit data... | |
| for-1.h | Loading commit data... | |
| for-10.c | Loading commit data... | |
| for-11.c | Loading commit data... | |
| for-12.c | Loading commit data... | |
| for-13.c | Loading commit data... | |
| for-14.c | Loading commit data... | |
| for-15.c | Loading commit data... | |
| for-16.c | Loading commit data... | |
| for-2.c | Loading commit data... | |
| for-2.h | Loading commit data... | |
| for-3.c | Loading commit data... | |
| for-4.c | Loading commit data... | |
| for-5.c | Loading commit data... | |
| for-6.c | Loading commit data... | |
| for-7.c | Loading commit data... | |
| for-8.c | Loading commit data... | |
| for-9.c | Loading commit data... | |
| function-not-offloaded-aux.c | Loading commit data... | |
| function-not-offloaded.c | Loading commit data... | |
| lastprivate-conditional-1.c | Loading commit data... | |
| lastprivate-conditional-10.c | Loading commit data... | |
| lastprivate-conditional-2.c | Loading commit data... | |
| lastprivate-conditional-3.c | Loading commit data... | |
| lastprivate-conditional-4.c | Loading commit data... | |
| lastprivate-conditional-5.c | Loading commit data... | |
| lastprivate-conditional-6.c | Loading commit data... | |
| lastprivate-conditional-7.c | Loading commit data... | |
| lastprivate-conditional-8.c | Loading commit data... | |
| lastprivate-conditional-9.c | Loading commit data... | |
| loop-1.c | Loading commit data... | |
| loop-13.c | Loading commit data... | |
| loop-14.c | Loading commit data... | |
| loop-15.c | Loading commit data... | |
| master-combined-1.c | Loading commit data... | |
| monotonic-1.c | Loading commit data... | |
| monotonic-2.c | Loading commit data... | |
| nonmonotonic-1.c | Loading commit data... | |
| nonmonotonic-2.c | Loading commit data... | |
| ordered-4.c | Loading commit data... | |
| pause-1.c | Loading commit data... | |
| pause-2.c | Loading commit data... | |
| pr45784.c | Loading commit data... | |
| pr64824.c | Loading commit data... | |
| pr64868.c | Loading commit data... | |
| pr66199-1.c | Loading commit data... | |
| pr66199-10.c | Loading commit data... | |
| pr66199-11.c | Loading commit data... | |
| pr66199-12.c | Loading commit data... | |
| pr66199-13.c | Loading commit data... | |
| pr66199-14.c | Loading commit data... | |
| pr66199-2.c | Loading commit data... | |
| pr66199-3.c | Loading commit data... | |
| pr66199-4.c | Loading commit data... | |
| pr66199-5.c | Loading commit data... | |
| pr66199-6.c | Loading commit data... | |
| pr66199-7.c | Loading commit data... | |
| pr66199-8.c | Loading commit data... | |
| pr66199-9.c | Loading commit data... | |
| pr69389.c | Loading commit data... | |
| pr81875.c | Loading commit data... | |
| pr83046.c | Loading commit data... | |
| simd-1.c | Loading commit data... | |
| simd-14.c | Loading commit data... | |
| simd-15.c | Loading commit data... | |
| simd-16.c | Loading commit data... | |
| simd-17.c | Loading commit data... | |
| target-1.c | Loading commit data... | |
| target-10.c | Loading commit data... | |
| target-13.c | Loading commit data... | |
| target-2.c | Loading commit data... | |
| task-reduction-1.c | Loading commit data... | |
| task-reduction-11.c | Loading commit data... | |
| task-reduction-12.c | Loading commit data... | |
| task-reduction-13.c | Loading commit data... | |
| task-reduction-14.c | Loading commit data... | |
| task-reduction-2.c | Loading commit data... | |
| task-reduction-3.c | Loading commit data... | |
| task-reduction-4.c | Loading commit data... | |
| task-reduction-5.c | Loading commit data... | |
| task-reduction-6.c | Loading commit data... | |
| task-reduction-7.c | Loading commit data... | |
| task-reduction-8.c | Loading commit data... | |
| task-reduction-9.c | Loading commit data... | |
| taskgroup-1.c | Loading commit data... | |
| taskloop-1.c | Loading commit data... | |
| taskloop-2.c | Loading commit data... | |
| taskloop-3.c | Loading commit data... | |
| taskloop-4.c | Loading commit data... | |
| taskloop-reduction-1.c | Loading commit data... | |
| taskloop-reduction-2.c | Loading commit data... | |
| taskloop-reduction-3.c | Loading commit data... | |
| taskloop-reduction-4.c | Loading commit data... | |
| taskwait-depend-1.c | Loading commit data... | |
| udr-1.c | Loading commit data... | |
| variable-not-offloaded.c | Loading commit data... |