Hi!

On Tue, 1 Dec 2015 15:25:42 +0100, Tom de Vries <tom_devr...@mentor.com> wrote:
> Handle BUILT_IN_GOACC_PARALLEL in ipa-pta

>       * c-c++-common/goacc/kernels-alias-ipa-pta-2.c: New test.
>       * c-c++-common/goacc/kernels-alias-ipa-pta-3.c: New test.
>       * c-c++-common/goacc/kernels-alias-ipa-pta.c: New test.

I see:

    PASS: c-c++-common/goacc/kernels-alias-ipa-pta-2.c (test for excess errors)
    FAIL: c-c++-common/goacc/kernels-alias-ipa-pta-2.c scan-tree-dump-times 
optimized "(?n)= 0;$" 2
    PASS: c-c++-common/goacc/kernels-alias-ipa-pta-2.c scan-tree-dump-times 
optimized "(?n)= 1;$" 1
    FAIL: c-c++-common/goacc/kernels-alias-ipa-pta-2.c scan-tree-dump-times 
optimized "(?n)= \\*a" 0
    PASS: c-c++-common/goacc/kernels-alias-ipa-pta-3.c (test for excess errors)
    PASS: c-c++-common/goacc/kernels-alias-ipa-pta-3.c scan-tree-dump-times 
optimized "(?n)= 0;$" 1
    PASS: c-c++-common/goacc/kernels-alias-ipa-pta-3.c scan-tree-dump-times 
optimized "(?n)= 1;$" 1
    PASS: c-c++-common/goacc/kernels-alias-ipa-pta-3.c scan-tree-dump-times 
optimized "(?n)= \\*a" 1
    PASS: c-c++-common/goacc/kernels-alias-ipa-pta.c (test for excess errors)
    FAIL: c-c++-common/goacc/kernels-alias-ipa-pta.c scan-tree-dump-times 
optimized "(?n)= 0;$" 2
    PASS: c-c++-common/goacc/kernels-alias-ipa-pta.c scan-tree-dump-times 
optimized "(?n)= 1;$" 1
    FAIL: c-c++-common/goacc/kernels-alias-ipa-pta.c scan-tree-dump-times 
optimized "(?n)= \\*_[0-9]\\[0\\];$" 0

..., and similar for C++.  Looking at
c-c++-common/goacc/kernels-alias-ipa-pta.c:

> --- /dev/null
> +++ b/gcc/testsuite/c-c++-common/goacc/kernels-alias-ipa-pta.c
> @@ -0,0 +1,23 @@
> +/* { dg-additional-options "-O2" } */
> +/* { dg-additional-options "-fipa-pta -fdump-tree-optimized" } */
> +
> +#define N 2
> +
> +void
> +foo (void)
> +{
> +  unsigned int a[N];
> +  unsigned int b[N];
> +  unsigned int c[N];
> +
> +#pragma acc kernels pcopyout (a, b, c)
> +  {
> +    a[0] = 0;
> +    b[0] = 1;
> +    c[0] = a[0];
> +  }
> +}
> +
> +/* { dg-final { scan-tree-dump-times "(?n)= 0;$" 2 "optimized" } } */
> +/* { dg-final { scan-tree-dump-times "(?n)= 1;$" 1 "optimized" } } */
> +/* { dg-final { scan-tree-dump-times "(?n)= \\*_\[0-9\]\\\[0\\\];$" 0 
> "optimized" } } */

..., manually running that one for C, I get:

    ;; Function foo._omp_fn.0 (foo._omp_fn.0, funcdef_no=1, decl_uid=1874, 
cgraph_uid=1, symbol_order=1)
    
    __attribute__((oacc function (1, 1, 1), omp target entrypoint))
    foo._omp_fn.0 (const struct .omp_data_t.0 & restrict .omp_data_i)
    {
      unsigned int[2] * _3;
      unsigned int[2] * _5;
      unsigned int _7;
      unsigned int[2] * _8;
    
      <bb 2>:
      _3 = *.omp_data_i_2(D).a;
      *_3[0] = 0;
      _5 = *.omp_data_i_2(D).b;
      *_5[0] = 1;
      _7 = *_3[0];
      _8 = *.omp_data_i_2(D).c;
      *_8[0] = _7;
      return;
    
    }
    
    
    
    ;; Function foo (foo, funcdef_no=0, decl_uid=1866, cgraph_uid=0, 
symbol_order=0)
    
    foo ()
    {
      unsigned int c[2];
      unsigned int b[2];
      unsigned int a[2];
      struct .omp_data_t.0 .omp_data_arr.1;
      static long unsigned int .omp_data_sizes.2[3] = {8, 8, 8};
      static short unsigned int .omp_data_kinds.3[3] = {514, 514, 514};
    
      <bb 2>:
      .omp_data_arr.1.c = &c;
      .omp_data_arr.1.b = &b;
      .omp_data_arr.1.a = &a;
      GOACC_parallel_keyed (-1, foo._omp_fn.0, 3, &.omp_data_arr.1, 
&.omp_data_sizes.2, &.omp_data_kinds.3, 0);
      .omp_data_arr.1 ={v} {CLOBBER};
      a ={v} {CLOBBER};
      b ={v} {CLOBBER};
      c ={v} {CLOBBER};
      return;
    
    }


Grüße
 Thomas

Attachment: signature.asc
Description: PGP signature

Reply via email to