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