gcc/libgomp/testsuite/libgomp.oacc-fortran
Alexander Monakov 6103184e81 OpenMP offloading to NVPTX: libgomp changes
* Makefile.am (libgomp_la_SOURCES): Add atomic.c, icv.c, icv-device.c.
	* Makefile.in. Regenerate.
	* configure.ac [nvptx*-*-*] (libgomp_use_pthreads): Set and use it...
	(LIBGOMP_USE_PTHREADS): ...here; new define.
	* configure: Regenerate.
	* config.h.in: Likewise.
	* config/posix/affinity.c: Move to...
	* affinity.c: ...here (new file).  Guard use of Pthreads-specific
	interface by LIBGOMP_USE_PTHREADS. 
	* critical.c: Split out GOMP_atomic_{start,end} into...
	* atomic.c: ...here (new file).
	* env.c: Split out ICV definitions into...
	* icv.c: ...here (new file) and...
	* icv-device.c: ...here. New file.
	* config/linux/lock.c (gomp_init_lock_30): Move to generic lock.c.
	(gomp_destroy_lock_30): Ditto.
	(gomp_set_lock_30): Ditto.
	(gomp_unset_lock_30): Ditto.
	(gomp_test_lock_30): Ditto.
	(gomp_init_nest_lock_30): Ditto.
	(gomp_destroy_nest_lock_30): Ditto.
	(gomp_set_nest_lock_30): Ditto.
	(gomp_unset_nest_lock_30): Ditto.
	(gomp_test_nest_lock_30): Ditto.
	* lock.c: New.
	* config/nvptx/lock.c: New.
	* config/nvptx/bar.c: New.
	* config/nvptx/bar.h: New.
	* config/nvptx/doacross.h: New.
	* config/nvptx/error.c: New.
	* config/nvptx/icv-device.c: New.
	* config/nvptx/mutex.h: New.
	* config/nvptx/pool.h: New.
	* config/nvptx/proc.c: New.
	* config/nvptx/ptrlock.h: New.
	* config/nvptx/sem.h: New.
	* config/nvptx/simple-bar.h: New.
	* config/nvptx/target.c: New.
	* config/nvptx/task.c: New.
	* config/nvptx/team.c: New.
	* config/nvptx/time.c: New.
	* config/posix/simple-bar.h: New.
	* libgomp.h: Guard pthread.h inclusion.  Include simple-bar.h.
	(gomp_num_teams_var): Declare.
	(struct gomp_thread_pool): Change threads_dock member to
	gomp_simple_barrier_t.
	[__nvptx__] (gomp_thread): New implementation.
	(gomp_thread_attr): Guard by LIBGOMP_USE_PTHREADS.
	(gomp_thread_destructor): Ditto.
	(gomp_init_thread_affinity): Ditto.
	* team.c: Guard uses of Pthreads-specific interfaces by
	LIBGOMP_USE_PTHREADS.  Adjust all uses of threads_dock.
	(gomp_free_thread) [__nvptx__]: Do not call 'free'.

	* config/nvptx/alloc.c: Delete.
	* config/nvptx/barrier.c: Ditto.
	* config/nvptx/fortran.c: Ditto.
	* config/nvptx/iter.c: Ditto.
	* config/nvptx/iter_ull.c: Ditto.
	* config/nvptx/loop.c: Ditto.
	* config/nvptx/loop_ull.c: Ditto.
	* config/nvptx/ordered.c: Ditto.
	* config/nvptx/parallel.c: Ditto.
	* config/nvptx/priority_queue.c: Ditto.
	* config/nvptx/sections.c: Ditto.
	* config/nvptx/single.c: Ditto.
	* config/nvptx/splay-tree.c: Ditto.
	* config/nvptx/work.c: Ditto.

	* testsuite/libgomp.fortran/fortran.exp (lang_link_flags): Pass
	-foffload=-lgfortran in addition to -lgfortran.
	* testsuite/libgomp.oacc-fortran/fortran.exp (lang_link_flags): Ditto.

	* plugin/plugin-nvptx.c: Include <limits.h>.
	(struct targ_fn_descriptor): Add new fields.
	(struct ptx_device): Ditto.  Set them...
	(nvptx_open_device): ...here.
	(nvptx_adjust_launch_bounds): New.
	(nvptx_host2dev): Allow NULL 'nvthd'.
	(nvptx_dev2host): Ditto.
	(GOMP_OFFLOAD_get_caps): Add GOMP_OFFLOAD_CAP_OPENMP_400.
	(link_ptx): Adjust log sizes.
	(nvptx_host2dev): Allow NULL 'nvthd'.
	(nvptx_dev2host): Ditto.
	(nvptx_set_clocktick): New.  Use it...
	(GOMP_OFFLOAD_load_image): ...here.  Set new targ_fn_descriptor
	fields.
	(GOMP_OFFLOAD_dev2dev): New.
	(nvptx_adjust_launch_bounds): New.
	(nvptx_stacks_size): New.
	(nvptx_stacks_alloc): New.
	(nvptx_stacks_free): New.
	(GOMP_OFFLOAD_run): New.
	(GOMP_OFFLOAD_async_run): New (stub).

Co-Authored-By: Dmitry Melnik <dm@ispras.ru>
Co-Authored-By: Jakub Jelinek <jakub@redhat.com>

From-SVN: r242789
2016-11-23 21:36:41 +03:00
..
abort-1.f90
abort-2.f90
acc_on_device-1-1.f90
acc_on_device-1-2.f
acc_on_device-1-3.f
asyncwait-1.f90 Update OpenACC test cases 2016-03-30 17:08:47 +02:00
asyncwait-2.f90 Update OpenACC test cases 2016-03-30 17:08:47 +02:00
asyncwait-3.f90 Update OpenACC test cases 2016-03-30 17:08:47 +02:00
atomic_capture-1.f90 OpenACC atomic directive 2015-11-03 12:28:22 +01:00
atomic_rw-1.f90 OpenACC atomic directive 2015-11-03 12:28:22 +01:00
atomic_update-1.f90 OpenACC atomic directive 2015-11-03 12:28:22 +01:00
cache-1.f95 [PR c/71381] C/C++ OpenACC cache directive rejects valid syntax 2016-06-10 11:22:38 +02:00
clauses-1.f90 Update OpenACC test cases 2016-03-30 17:08:47 +02:00
collapse-1.f90
collapse-2.f90
collapse-3.f90
collapse-4.f90
collapse-5.f90
collapse-6.f90
collapse-7.f90
collapse-8.f90
combined-directives-1.f90
combined-reduction.f90 re PR middle-end/70626 (bogus results in 'acc parallel loop' reductions) 2016-04-29 10:42:04 -07:00
data-1.f90
data-2.f90
data-3.f90
data-4-2.f90
data-4.f90
data-already-1.f
data-already-2.f
data-already-3.f
data-already-4.f
data-already-5.f
data-already-6.f
data-already-7.f
data-already-8.f
declare-1.f90 Update OpenACC test cases 2016-03-30 17:08:47 +02:00
declare-2.f90 dump-parse-tree.c (show_namespace): Handle declares. 2015-11-22 16:45:38 +00:00
declare-3.f90 dump-parse-tree.c (show_namespace): Handle declares. 2015-11-22 16:45:38 +00:00
declare-4.f90 dump-parse-tree.c (show_namespace): Handle declares. 2015-11-22 16:45:38 +00:00
declare-5.f90 dump-parse-tree.c (show_namespace): Handle declares. 2015-11-22 16:45:38 +00:00
default-1.f90 Update OpenACC test cases 2016-03-30 17:08:47 +02:00
firstprivate-1.f90 Update OpenACC test cases 2016-03-30 17:08:47 +02:00
fortran.exp OpenMP offloading to NVPTX: libgomp changes 2016-11-23 21:36:41 +03:00
gang-static-1.f90 Update OpenACC test cases 2016-03-30 17:08:47 +02:00
host_data-1.f90 re PR fortran/70598 (Fortran OpenACC host_data construct ICE) 2016-08-14 18:19:10 +00:00
if-1.f90 Update OpenACC test cases 2016-03-30 17:08:47 +02:00
implicit-firstprivate-ref.f90 Update OpenACC test cases 2016-03-30 17:08:47 +02:00
kernels-loop-2.f95 Nowadays, we use plain -fopenacc to enable OpenACC kernels processing 2016-03-16 14:10:20 +01:00
kernels-loop-data-2.f95 Nowadays, we use plain -fopenacc to enable OpenACC kernels processing 2016-03-16 14:10:20 +01:00
kernels-loop-data-enter-exit-2.f95 Nowadays, we use plain -fopenacc to enable OpenACC kernels processing 2016-03-16 14:10:20 +01:00
kernels-loop-data-enter-exit.f95 Nowadays, we use plain -fopenacc to enable OpenACC kernels processing 2016-03-16 14:10:20 +01:00
kernels-loop-data-update.f95 Nowadays, we use plain -fopenacc to enable OpenACC kernels processing 2016-03-16 14:10:20 +01:00
kernels-loop-data.f95 Nowadays, we use plain -fopenacc to enable OpenACC kernels processing 2016-03-16 14:10:20 +01:00
kernels-loop.f95 Nowadays, we use plain -fopenacc to enable OpenACC kernels processing 2016-03-16 14:10:20 +01:00
lib-1.f90
lib-2.f
lib-3.f
lib-4.f90
lib-5.f90
lib-6.f90
lib-7.f90
lib-8.f90
lib-10.f90
map-1.f90
nested-function-1.f90 [PR middle-end/71373] Handle more OMP_CLAUSE_* in nested function decomposition 2016-06-10 11:22:51 +02:00
nested-function-2.f90 [PR middle-end/71373] Handle more OMP_CLAUSE_* in nested function decomposition 2016-06-10 11:22:51 +02:00
nested-function-3.f90 [PR middle-end/71373] Handle more OMP_CLAUSE_* in nested function decomposition 2016-06-10 11:22:51 +02:00
non-scalar-data.f90 non-scalar-data.f90: Don't pass parameter variables to subroutines. 2016-04-14 14:24:03 -07:00
openacc_version-1.f
openacc_version-2.f90
parallel-reduction.f90 re PR lto/70289 ([openacc] ICE in input_varpool_node) 2016-04-08 14:09:47 -07:00
pointer-align-1.f90
pr68813.f90 Update OpenACC test cases 2016-03-30 17:08:47 +02:00
pr70289.f90 re PR lto/70289 ([openacc] ICE in input_varpool_node) 2016-04-08 14:09:47 -07:00
pr70643.f90 re PR middle-end/70643 (broken openacc reduction inside a fortran module) 2016-04-14 06:44:17 -07:00
private-variables.f90 Update OpenACC test cases 2016-03-30 17:08:47 +02:00
pset-1.f90
reduction-1.f90 re PR lto/70289 ([openacc] ICE in input_varpool_node) 2016-04-08 14:09:47 -07:00
reduction-2.f90 re PR lto/70289 ([openacc] ICE in input_varpool_node) 2016-04-08 14:09:47 -07:00
reduction-3.f90 re PR lto/70289 ([openacc] ICE in input_varpool_node) 2016-04-08 14:09:47 -07:00
reduction-4.f90 re PR lto/70289 ([openacc] ICE in input_varpool_node) 2016-04-08 14:09:47 -07:00
reduction-5.f90 re PR lto/70289 ([openacc] ICE in input_varpool_node) 2016-04-08 14:09:47 -07:00
reduction-6.f90 re PR middle-end/70895 (OpenACC: loop reduction does not work. Output is zero.) 2016-08-18 14:46:19 +00:00
reduction-7.f90 re PR middle-end/70895 (OpenACC: loop reduction does not work. Output is zero.) 2016-08-18 14:46:19 +00:00
reduction-8.f90 c-typeck.c (c_finish_omp_clauses): Mark OpenACC reduction arguments as addressable when async clause exists. 2016-06-03 14:25:12 +00:00
routine-1.f90
routine-2.f90
routine-3.f90
routine-4.f90
routine-5.f90 tree-nested.c (convert_nonlocal_omp_clauses): Add support for OMP_CLAUSE_{NUM_GANGS,NUM_VECTORS,VECTOR_LENGTH,SEQ}. 2015-11-30 11:09:33 -08:00
routine-7.f90 nvptx.c (PTX_GANG_DEFAULT): New. 2016-02-01 16:20:13 +00:00
routine-9.f90 tree-nested.c (convert_nonlocal_omp_clauses): Add support for OMP_CLAUSE_{NUM_GANGS,NUM_VECTORS,VECTOR_LENGTH,SEQ}. 2015-11-30 11:09:33 -08:00
subarrays-1.f90
subarrays-2.f90
update-1.f90 re PR libgomp/69414 ([OpenACC] "!$acc update self" does not provide expected result) 2016-03-23 14:38:55 +00:00