[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