Add pass_parallelize_loops_oacc_kernels to pass_oacc_kernels
commit74e09b9dbbe43321fb20b0174f926893bf2111bc
authortschwinge <tschwinge@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 21 Apr 2015 20:06:16 +0000 (21 20:06 +0000)
committertschwinge <tschwinge@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 21 Apr 2015 20:06:16 +0000 (21 20:06 +0000)
tree82bd9355d75328ae4682882aa93c7bfb15a75516
parent1c2529b64620811cbff4a50374af797ee52ef5f8
Add pass_parallelize_loops_oacc_kernels to pass_oacc_kernels

gcc/
* passes.def: Add pass_parallelize_loops_oacc_kernels in pass group
pass_oacc_kernels.
* tree-parloops.c (create_parallel_loop, gen_parallel_loop): Add
function parameters region_entry and bool oacc_kernels_p.  Handle
oacc_kernels_p.
Call create_parallel_loop with additional args.
(parallelize_loops): Add function parameter oacc_kernels_p.  Calculate
dominance info.  Skip loops that are not in a kernels region. Call
gen_parallel_loop with additional args.
(pass_parallelize_loops::execute): Call parallelize_loops with false
argument.
(pass_data_parallelize_loops_oacc_kernels): New pass_data.
(class pass_parallelize_loops_oacc_kernels): New pass.
(pass_parallelize_loops_oacc_kernels::execute)
(make_pass_parallelize_loops_oacc_kernels): New function.
* tree-pass.h (make_pass_parallelize_loops_oacc_kernels): Declare.

gcc/testsuite/
* c-c++-common/goacc/kernels-loop-2.c: New test.
* c-c++-common/goacc/kernels-loop.c: New test.
* c-c++-common/goacc/kernels-loop-n.c: New test.
* c-c++-common/goacc/kernels-loop-mod-not-zero.c: New test.

libgomp/
* testsuite/libgomp.oacc-c-c++-common/kernels-loop-2.c: New test.
* testsuite/libgomp.oacc-c-c++-common/kernels-loop.c: New test.
* testsuite/libgomp.oacc-c-c++-common/kernels-loop-n.c: New test.
* testsuite/libgomp.oacc-c-c++-common/kernels-loop-mod-not-zero.c:
New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gomp-4_0-branch@222285 138bc75d-0d04-0410-961f-82ee72b054a4
14 files changed:
gcc/ChangeLog.gomp
gcc/passes.def
gcc/testsuite/ChangeLog.gomp
gcc/testsuite/c-c++-common/goacc/kernels-loop-2.c [new file with mode: 0644]
gcc/testsuite/c-c++-common/goacc/kernels-loop-mod-not-zero.c [new file with mode: 0644]
gcc/testsuite/c-c++-common/goacc/kernels-loop-n.c [new file with mode: 0644]
gcc/testsuite/c-c++-common/goacc/kernels-loop.c [new file with mode: 0644]
gcc/tree-parloops.c
gcc/tree-pass.h
libgomp/ChangeLog.gomp
libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-loop-2.c [new file with mode: 0644]
libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-loop-mod-not-zero.c [new file with mode: 0644]
libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-loop-n.c [new file with mode: 0644]
libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-loop.c [new file with mode: 0644]