This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [gomp4] backport parallel reduction changes


Hi Cesar!

On Mon, 11 Apr 2016 16:23:40 -0700, Cesar Philippidis <cesar@codesourcery.com> wrote:
> This patch backports the reduction changes in trunk to gomp-4_0-branch.

Thanks!

> Prior to this patch, gomp-4_0-branch was having the gimplifier create a
> temporary variable for reference-typed reductions. That's no longer
> necessary with this patch.
> 
> Besides for the reference reduction changes, this patch also addresses
> some problems with reductions in acc parallel directives. Specifically,
> private and firstprivate reductions are reported as errors now, so that
> resolves PR70357.
> 
> Thomas, there's still some divergence between trunk and gomp-4_0-branch
> in the various FEs. Those changes are too late for trunk right now. I'll
> take a closer look at them later, but maybe we should drop them in
> gomp-4_0-branch.

ACK.

> I've applied this patch to gomp-4_0-branch.

I'm seeing:

    XFAIL: gfortran.dg/goacc/combined-directives.f90   -O   scan-tree-dump-times gimple "acc loop private.i. private.j. vector" 2
    XFAIL: gfortran.dg/goacc/combined-directives.f90   -O   scan-tree-dump-times gimple "acc loop private.i. private.j. worker" 2
    XFAIL: gfortran.dg/goacc/combined-directives.f90   -O   scan-tree-dump-times gimple "acc loop private.i. reduction..:y." 2
    [-XFAIL:-]{+XPASS:+} gfortran.dg/goacc/combined-directives.f90   -O   scan-tree-dump-times gimple "omp target oacc_[^ ]+ map.force_tofrom:y" 2
    PASS: gfortran.dg/goacc/combined-directives.f90   -O   scan-tree-dump-times gimple "private.z" 2
    PASS: gfortran.dg/goacc/combined-directives.f90   -O  (test for excess errors)
    PASS: gfortran.dg/goacc/combined_loop.f90   -O  (test for excess errors)

Is it correct to remove the XFAIL?

And, I'm also seeing:

    PASS: gfortran.dg/goacc/loop-tree-1.f90   -O   scan-tree-dump-times original "worker\\(3\\)" 1
    PASS: gfortran.dg/goacc/loop-tree-1.f90   -O  (test for excess errors)
    PASS: gfortran.dg/goacc/mod-array.f90   -O  (test for excess errors)
    [-PASS:-]{+FAIL: gfortran.dg/goacc/modules.f95   -O  (internal compiler error)+}
    {+FAIL:+} gfortran.dg/goacc/modules.f95   -O  (test for excess errors)
    PASS: gfortran.dg/goacc/multi-clause.f90   -O   (test for errors, line 9)
    PASS: gfortran.dg/goacc/multi-clause.f90   -O  (test for excess errors)
    PASS: gfortran.dg/goacc/omp-fixed.f   -O   (test for errors, line 24)

    [...]/gcc/testsuite/gfortran.dg/goacc/modules.f95:22:0: internal compiler error: in wide_int_to_tree, at tree.c:1494
    0xe1cbb3 wide_int_to_tree(tree_node*, generic_wide_int<wide_int_ref_storage<false> > const&)
            [...]/gcc/tree.c:1494
    0xe1cdf6 build_int_cst(tree_node*, long)
            [...]/gcc/tree.c:1302
    0xe1ce6b build_simple_mem_ref_loc(unsigned int, tree_node*)
            [...]/gcc/tree.c:4644
    0xa5903d lower_oacc_reductions
            [...]/gcc/omp-low.c:5733
    0xa82204 lower_oacc_head_tail
            [...]/gcc/omp-low.c:6479
    0xa82204 lower_omp_for
            [...]/gcc/omp-low.c:15276
    [...]

That also reproduces when compiling that test case with GCC trunk, where
this test case is not yet present.  For reference, you had originally
added this test case to our internal openacc-gomp-4_0-branch in r446781,
with gimplifier code changes, Subject: "[patch] parallel reductions data
clauses" (2015-03-11).  Most of these code changes you just
removed/rewrote; so, evidently, more fixing needs to be applied.  :-)


GrÃÃe
 Thomas


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]