openmp: Implement discovery of implicit declare target to clauses
authorJakub Jelinek <jakub@redhat.com>
Tue, 12 May 2020 07:17:09 +0000 (09:17 +0200)
committerJakub Jelinek <jakub@redhat.com>
Tue, 12 May 2020 07:17:09 +0000 (09:17 +0200)
commitdc703151d4f4560e647649506d5b4ceb0ee11e90
treee0982957d9abe22aec71e6199d1e306e9b0795ab
parentfe8c8f1e5ed61f00c14ff36caf4f510a7a09781d
openmp: Implement discovery of implicit declare target to clauses

This attempts to implement what the OpenMP 5.0 spec in declare target section
says as ammended by the 5.1 changes so far (related to device_type(host)), except
that it doesn't have the device(ancestor: ...) handling yet because we do not
support it yet, and I've left so far out the except lambda note, because I need
that clarified.

2020-05-12  Jakub Jelinek  <jakub@redhat.com>

* omp-offload.h (omp_discover_implicit_declare_target): Declare.
* omp-offload.c: Include context.h.
(omp_declare_target_fn_p, omp_declare_target_var_p,
omp_discover_declare_target_fn_r, omp_discover_declare_target_var_r,
omp_discover_implicit_declare_target): New functions.
* cgraphunit.c (analyze_functions): Call
omp_discover_implicit_declare_target.

* testsuite/libgomp.c/target-39.c: New test.
gcc/ChangeLog
gcc/cgraphunit.c
gcc/omp-offload.c
gcc/omp-offload.h
libgomp/ChangeLog
libgomp/testsuite/libgomp.c/target-39.c [new file with mode: 0644]