[PATCH, 7/8] Add pass_parloops_oacc_kernels to pass_oacc_kernels
Tom de Vries
Tom_deVries@mentor.com
Tue Nov 25 12:15:00 GMT 2014
On 15-11-14 18:23, Tom de Vries wrote:
> On 15-11-14 13:14, Tom de Vries wrote:
>> Hi,
>>
>> I'm submitting a patch series with initial support for the oacc kernels
>> directive.
>>
>> The patch series uses pass_parallelize_loops to implement parallelization of
>> loops in the oacc kernels region.
>>
>> The patch series consists of these 8 patches:
>> ...
>> 1 Expand oacc kernels after pass_build_ealias
>> 2 Add pass_oacc_kernels
>> 3 Add pass_ch_oacc_kernels to pass_oacc_kernels
>> 4 Add pass_tree_loop_{init,done} to pass_oacc_kernels
>> 5 Add pass_loop_im to pass_oacc_kernels
>> 6 Add pass_ccp to pass_oacc_kernels
>> 7 Add pass_parloops_oacc_kernels to pass_oacc_kernels
>> 8 Do simple omp lowering for no address taken var
>> ...
>
> This patch adds:
> - a specialized version of pass_parallelize_loops called
> pass_parloops_oacc_kernels to pass group pass_oacc_kernels, and
> - relevant test-cases.
>
> The pass only handles loops that are in a kernels region, and skips over bits of
> pass_parallelize_loops that are already done for oacc kernels.
>
> The pass reintroduces the use of omp_expand_local, I haven't managed to make it
> work yet using the external pass pass_expand_omp_ssa.
>
> An obvious limitation of the patch is the fact that we copy over the clauses
> from the kernels directive to the generated parallel directive. We'll need to do
> something more intelligent here, f.i. setting vector_length based on the
> parallelization factor.
>
> Another limitation is that the pass still needs -ftree-parallelize-loops to
> trigger.
>
Updated for using pass_copyprop instead of pass_ccp in pass_oacc_kernels.
Bootstrapped and reg-tested as before.
OK for trunk?
Thanks,
- Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0007-Add-pass_parloops_oacc_kernels-to-pass_oacc_kernels.patch
Type: text/x-patch
Size: 23004 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20141125/7978fb92/attachment.bin>
More information about the Gcc-patches
mailing list