This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [OpenACC 7/11] execution model
- From: Jakub Jelinek <jakub at redhat dot com>
- To: Nathan Sidwell <nathan at acm dot org>
- Cc: GCC Patches <gcc-patches at gcc dot gnu dot org>, Bernd Schmidt <bschmidt at redhat dot com>, Jason Merrill <jason at redhat dot com>, "Joseph S. Myers" <joseph at codesourcery dot com>, Richard Guenther <richard dot guenther at gmail dot com>
- Date: Tue, 27 Oct 2015 09:18:02 +0100
- Subject: Re: [OpenACC 7/11] execution model
- Authentication-results: sourceware.org; auth=none
- References: <5627DD78 dot 9040302 at acm dot org> <5627EAA2 dot 3060507 at acm dot org> <20151022092359 dot GI478 at tucnak dot redhat dot com> <562CE7EC dot 8090508 at acm dot org> <562EB318 dot 2040207 at acm dot org>
- Reply-to: Jakub Jelinek <jakub at redhat dot com>
On Mon, Oct 26, 2015 at 04:11:20PM -0700, Nathan Sidwell wrote:
> Jakub, Richard,
> This is the updated version of patch 7, using target-insns.def for the new
> insns. Otherwise same as yesterday's, which had the following changes:
>
> The significant change is that now the head/tail unique markers are
> threaded on a data dependency variable. I'd not noticed its lack being a
> problem, but this is certainly more robust in showing the ordering
> dependency between calls. The dependency var is the 2nd parameter, and all
> others are simply shifted along by one.
>
> At RTL generation time the date dependency is exposed to the RTL expander,
> which in the PTX case simply does a src->dst move, which will eventually be
> deleted as unnecessary.
>
> ok?
LGTM, though could I ask you to try to try to move the
struct oacc_collapse
expand_oacc_collapse_init
expand_oacc_collapse_vars
expand_oacc_for
additions somewhere else
(e.g. in between expand_omp_taskreg and expand_omp_for_init_counts),
because it seems patch just got too confused and gave up, so most of
expand_omp_for which I assume is unchanged except for
> + else if (gimple_omp_for_kind (fd.for_stmt) == GF_OMP_FOR_KIND_OACC_LOOP)
> + {
> + gcc_assert (!inner_stmt);
> + expand_oacc_for (region, &fd);
> + }
addition is considered to be deleted in one place and added into another
one; if patch does this, I'd be afraid svn blame or git blame would do so
too, and thus lose history for expand_omp_for. If moving it around doesn't
help, no big deal, but if it helps, it would be appreciated.
> (is_oacc_parallel, is_oaccc_kernels): New.
One too many Cs.
Jakub