gcc/libgomp
Jakub Jelinek 554a530ff8 tree.def (OMP_LOOP): New tree code.
* 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
2019-07-20 13:21:42 +02:00
..
config libgomp: Reduce copy and paste for RTEMS 2019-01-09 06:16:05 +00:00
plugin re PR libgomp/90585 (libgomp hsa plugin ftbfs in the x32 multilib variant) 2019-05-24 10:59:37 +02:00
testsuite tree.def (OMP_LOOP): New tree code. 2019-07-20 13:21:42 +02:00
ChangeLog tree.def (OMP_LOOP): New tree code. 2019-07-20 13:21:42 +02:00
ChangeLog.graphite
Makefile.am OpenACC Profiling Interface (incomplete) 2019-05-17 21:13:36 +02:00
Makefile.in Generalize getconf _NPROCESSORS_ONLN 2019-05-30 09:06:48 +00:00
acc_prof.h OpenACC Profiling Interface (incomplete) 2019-05-17 21:13:36 +02:00
acinclude.m4
aclocal.m4 Generalize getconf _NPROCESSORS_ONLN 2019-05-30 09:06:48 +00:00
affinity-fmt.c Update copyright years. 2019-01-01 13:31:55 +01:00
affinity.c Update copyright years. 2019-01-01 13:31:55 +01:00
alloc.c re PR libgomp/90527 (alloc.c:72:7: error: implicit declaration of function ‘posix_memalign’) 2019-05-20 23:29:17 +02:00
atomic.c Update copyright years. 2019-01-01 13:31:55 +01:00
barrier.c Update copyright years. 2019-01-01 13:31:55 +01:00
config.h.in [libgomp] Clarify difference between offload target, offload plugin, and OpenACC device type 2019-02-22 11:51:05 +01:00
configure Generalize getconf _NPROCESSORS_ONLN 2019-05-30 09:06:48 +00:00
configure.ac Generalize getconf _NPROCESSORS_ONLN 2019-05-30 09:06:48 +00:00
configure.tgt builtin-types.def (BT_FN_VOID_BOOL, [...]): New. 2018-11-08 18:13:04 +01:00
critical.c Update copyright years. 2019-01-01 13:31:55 +01:00
env.c OpenACC Profiling Interface (incomplete) 2019-05-17 21:13:36 +02:00
error.c Update copyright years. 2019-01-01 13:31:55 +01:00
fortran.c Update copyright years. 2019-01-01 13:31:55 +01:00
hashtab.h Update copyright years. 2019-01-01 13:31:55 +01:00
icv-device.c Update copyright years. 2019-01-01 13:31:55 +01:00
icv.c Update copyright years. 2019-01-01 13:31:55 +01:00
iter.c Update copyright years. 2019-01-01 13:31:55 +01:00
iter_ull.c Update copyright years. 2019-01-01 13:31:55 +01:00
libgomp-plugin.c Update copyright years. 2019-01-01 13:31:55 +01:00
libgomp-plugin.h 2019-05-13 Chung-Lin Tang <cltang@codesourcery.com> 2019-05-13 13:32:00 +00:00
libgomp.h 2019-05-13 Chung-Lin Tang <cltang@codesourcery.com> 2019-05-13 13:32:00 +00:00
libgomp.map OpenACC Profiling Interface (incomplete) 2019-05-17 21:13:36 +02:00
libgomp.spec.in
libgomp.texi OpenACC Profiling Interface (incomplete) 2019-05-17 21:13:36 +02:00
libgomp_f.h.in Update copyright years. 2019-01-01 13:31:55 +01:00
libgomp_g.h Update copyright years. 2019-01-01 13:31:55 +01:00
lock.c Update copyright years. 2019-01-01 13:31:55 +01:00
loop.c re PR libgomp/90641 (libgomp.c-c++-common/lastprivate-conditional-1.c etc FAIL) 2019-05-27 23:27:00 +02:00
loop_ull.c re PR libgomp/90641 (libgomp.c-c++-common/lastprivate-conditional-1.c etc FAIL) 2019-05-27 23:27:00 +02:00
oacc-async.c OpenACC Profiling Interface (incomplete) 2019-05-17 21:13:36 +02:00
oacc-cuda.c re PR libgomp/90585 (libgomp hsa plugin ftbfs in the x32 multilib variant) 2019-05-24 10:59:37 +02:00
oacc-host.c re PR libgomp/90585 (libgomp hsa plugin ftbfs in the x32 multilib variant) 2019-05-24 10:59:37 +02:00
oacc-init.c OpenACC Profiling Interface (incomplete) 2019-05-17 21:13:36 +02:00
oacc-int.h OpenACC Profiling Interface (incomplete) 2019-05-17 21:13:36 +02:00
oacc-mem.c re PR libgomp/90585 (libgomp hsa plugin ftbfs in the x32 multilib variant) 2019-05-24 10:59:37 +02:00
oacc-parallel.c [PR90743] Fortran 'allocatable' with OpenACC data/OpenMP 'target' 'map' clauses 2019-06-19 00:14:24 +02:00
oacc-plugin.c OpenACC Profiling Interface (incomplete) 2019-05-17 21:13:36 +02:00
oacc-plugin.h OpenACC Profiling Interface (incomplete) 2019-05-17 21:13:36 +02:00
oacc-profiling.c OpenACC Profiling Interface (incomplete) 2019-05-17 21:13:36 +02:00
omp.h.in Update copyright years. 2019-01-01 13:31:55 +01:00
omp_lib.f90.in Update copyright years. 2019-01-01 13:31:55 +01:00
omp_lib.h.in Update copyright years. 2019-01-01 13:31:55 +01:00
openacc.f90 Update copyright years. 2019-01-01 13:31:55 +01:00
openacc.h Update copyright years. 2019-01-01 13:31:55 +01:00
openacc_lib.h Update copyright years. 2019-01-01 13:31:55 +01:00
ordered.c Update copyright years. 2019-01-01 13:31:55 +01:00
parallel.c Update copyright years. 2019-01-01 13:31:55 +01:00
priority_queue.c Update copyright years. 2019-01-01 13:31:55 +01:00
priority_queue.h Update copyright years. 2019-01-01 13:31:55 +01:00
sections.c re PR libgomp/90641 (libgomp.c-c++-common/lastprivate-conditional-1.c etc FAIL) 2019-05-27 23:27:00 +02:00
secure_getenv.h Update copyright years. 2019-01-01 13:31:55 +01:00
single.c Update copyright years. 2019-01-01 13:31:55 +01:00
splay-tree.c Update copyright years. 2019-01-01 13:31:55 +01:00
splay-tree.h Update copyright years. 2019-01-01 13:31:55 +01:00
target.c re PR libgomp/90585 (libgomp hsa plugin ftbfs in the x32 multilib variant) 2019-05-24 10:59:37 +02:00
task.c Update copyright years. 2019-01-01 13:31:55 +01:00
taskloop.c Update copyright years. 2019-01-01 13:31:55 +01:00
team.c team.c (gomp_team_start): Initialize pool->threads[0]. 2019-03-27 18:30:44 +00:00
teams.c Update copyright years. 2019-01-01 13:31:55 +01:00
work.c re PR libgomp/90641 (libgomp.c-c++-common/lastprivate-conditional-1.c etc FAIL) 2019-05-27 23:27:00 +02:00