diff options
author | vries <vries@138bc75d-0d04-0410-961f-82ee72b054a4> | 2016-01-18 12:52:32 +0000 |
---|---|---|
committer | vries <vries@138bc75d-0d04-0410-961f-82ee72b054a4> | 2016-01-18 12:52:32 +0000 |
commit | 31c2b13becdad09c84c010f085ada469bf67b7b2 (patch) | |
tree | 139f5264c912aebb738b36613946a5f9c12f9595 /gcc/omp-low.h | |
parent | 7c5e2ac77a2e5db3d2a99593c59142d15b473af1 (diff) | |
download | gcc-31c2b13becdad09c84c010f085ada469bf67b7b2.tar.gz |
Add oacc_kernels_p argument to pass_parallelize_loops
2016-01-18 Tom de Vries <tom@codesourcery.com>
* omp-low.c (set_oacc_fn_attrib): Make extern.
* omp-low.h (set_oacc_fn_attrib): Declare.
* tree-parloops.c (struct reduction_info): Add reduc_addr field.
(create_call_for_reduction_1): Handle case that reduc_addr is non-NULL.
(create_parallel_loop, gen_parallel_loop, try_create_reduction_list):
Add and handle function parameter oacc_kernels_p.
(find_reduc_addr, get_omp_data_i_param): New function.
(ref_conflicts_with_region, oacc_entry_exit_ok_1)
(oacc_entry_exit_single_gang, oacc_entry_exit_ok): New function.
(parallelize_loops): Add and handle function parameter oacc_kernels_p.
Calculate dominance info. Skip loops that are not in a kernels region
in oacc_kernels_p mode. Skip inner loops of parallelized loops.
(pass_parallelize_loops::execute): Call parallelize_loops with
oacc_kernels_p argument.
(pass_parallelize_loops::clone, pass_parallelize_loops::set_pass_param):
New member function.
(pass_parallelize_loops::bool oacc_kernels_p): New member var.
* passes.def: Add argument to pass_parallelize_loops instantation.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@232512 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/omp-low.h')
-rw-r--r-- | gcc/omp-low.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/gcc/omp-low.h b/gcc/omp-low.h index 3459c1b7c7a..64caef8db69 100644 --- a/gcc/omp-low.h +++ b/gcc/omp-low.h @@ -33,6 +33,7 @@ extern tree omp_member_access_dummy_var (tree); extern void replace_oacc_fn_attrib (tree, tree); extern tree build_oacc_routine_dims (tree); extern tree get_oacc_fn_attrib (tree); +extern void set_oacc_fn_attrib (tree, tree, vec<tree> *); extern int get_oacc_ifn_dim_arg (const gimple *); extern int get_oacc_fn_dim_size (tree, int); |