Re: [gomp] Move openacc vector& worker single handling to RTL

2015-12-01 Thread Thomas Schwinge
Hi! On Thu, 09 Jul 2015 20:25:22 -0400, Nathan Sidwell wrote: > This is the patch I committed. [...] > 2015-07-09 Nathan Sidwell > * omp-low.c (omp_region): [...] > (enclosing_target_region, required_predication_mask, > generate_vector_broadcast, generate_oacc_broadcast, >

[gomp4] libgomp: Some torture testing for C and C++ OpenACC test cases (was: [gomp] Move openacc vector& worker single handling to RTL)

2015-07-23 Thread Thomas Schwinge
Hi! On Wed, 22 Jul 2015 12:47:32 -0400, Nathan Sidwell wrote: > On 07/20/15 11:08, Nathan Sidwell wrote: > > On 07/20/15 09:01, Nathan Sidwell wrote: > >> On 07/18/15 11:37, Thomas Schwinge wrote: > >>> For OpenACC nvptx offloading, there must still be something wrong; here's > >>> a count of the

Re: [gomp] Move openacc vector& worker single handling to RTL

2015-07-22 Thread Nathan Sidwell
On 07/20/15 11:08, Nathan Sidwell wrote: On 07/20/15 09:01, Nathan Sidwell wrote: On 07/18/15 11:37, Thomas Schwinge wrote: Hi Nathan! For OpenACC nvptx offloading, there must still be something wrong; here's a count of the (non-deterministic!) regressions of ten runs of the libgomp testsuit

Re: [gomp] Move openacc vector& worker single handling to RTL

2015-07-22 Thread Thomas Schwinge
Hi Nathan! On Tue, 21 Jul 2015 16:05:05 -0400, Nathan Sidwell wrote: > On 07/18/15 11:37, Thomas Schwinge wrote: > > On Thu, 09 Jul 2015 20:25:22 -0400, Nathan Sidwell wrote: > >> This is the patch I committed. [...] > > > > Prompted by your recent "-O0 patch" to »[f]ix PTX worker spill/fill«,

Re: [gomp] Move openacc vector& worker single handling to RTL

2015-07-21 Thread Nathan Sidwell
On 07/18/15 11:37, Thomas Schwinge wrote: Hi Nathan! On Thu, 09 Jul 2015 20:25:22 -0400, Nathan Sidwell wrote: This is the patch I committed. [...] Prompted by your recent "-O0 patch" to »[f]ix PTX worker spill/fill«, I used the attached patch 0001-O0-libgomp-C-C-testing.patch to run all C

Re: [gomp] Move openacc vector& worker single handling to RTL

2015-07-20 Thread Nathan Sidwell
On 07/20/15 09:01, Nathan Sidwell wrote: On 07/18/15 11:37, Thomas Schwinge wrote: Hi Nathan! For OpenACC nvptx offloading, there must still be something wrong; here's a count of the (non-deterministic!) regressions of ten runs of the libgomp testsuite. As private-vars-loop-worker-5.c fails

Re: [gomp] Move openacc vector& worker single handling to RTL

2015-07-20 Thread Nathan Sidwell
On 07/18/15 11:37, Thomas Schwinge wrote: Hi Nathan! For OpenACC nvptx offloading, there must still be something wrong; here's a count of the (non-deterministic!) regressions of ten runs of the libgomp testsuite. As private-vars-loop-worker-5.c fails most often, it probably makes sense to loo

Re: [gomp] Move openacc vector& worker single handling to RTL

2015-07-18 Thread Thomas Schwinge
Hi Nathan! On Thu, 09 Jul 2015 20:25:22 -0400, Nathan Sidwell wrote: > This is the patch I committed. [...] Prompted by your recent "-O0 patch" to »[f]ix PTX worker spill/fill«, I used the attached patch 0001-O0-libgomp-C-C-testing.patch to run all C and C++ libgomp testing with -O0 (for Fortra

Re: [gomp] Move openacc vector& worker single handling to RTL

2015-07-14 Thread Nathan Sidwell
On 07/14/15 04:25, Thomas Schwinge wrote: addr = gen_rtx_MEM (mode, addr); addr = gen_rtx_UNSPEC (mode, gen_rtvec (1, addr), UNSPEC_SHARED_DATA); - if (pm & PM_read) + if (pm == PM_read) res = gen_rtx_SET (addr, reg); - if (pm & PM_write) + else

Re: [gomp] Move openacc vector& worker single handling to RTL

2015-07-14 Thread Thomas Schwinge
Hi! It's me, again. ;-) On Thu, 09 Jul 2015 20:25:22 -0400, Nathan Sidwell wrote: > This is the patch I committed. [...] > --- config/nvptx/nvptx.c (revision 225323) > +++ config/nvptx/nvptx.c (working copy) > +/* Direction of the spill/fill and looping setup/teardown indicator. *

Re: [gomp] Move openacc vector& worker single handling to RTL

2015-07-13 Thread Nathan Sidwell
On 07/13/15 07:26, Thomas Schwinge wrote: Hi! On Fri, 10 Jul 2015 11:04:14 +0200, I wrote: On Thu, 09 Jul 2015 20:25:22 -0400, Nathan Sidwell wrote: This is the patch I committed. 2. Don't be shy to remove a bunch of XFAILs, in fact all :-) of those remaining from the test cases that Julia

Re: [gomp] Move openacc vector& worker single handling to RTL

2015-07-13 Thread Thomas Schwinge
Hi! On Fri, 10 Jul 2015 11:04:14 +0200, I wrote: > On Thu, 09 Jul 2015 20:25:22 -0400, Nathan Sidwell wrote: > > This is the patch I committed. > 2. Don't be shy to remove a bunch of XFAILs, in fact all :-) of those > remaining from the test cases that Julian had added in >

Re: [gomp] Move openacc vector& worker single handling to RTL

2015-07-10 Thread Thomas Schwinge
Hi! On Thu, 09 Jul 2015 20:25:22 -0400, Nathan Sidwell wrote: > This is the patch I committed. :-) Whee! From testing this, two things: 1. Can you please have a look at the following ICE? I suppose you can reproduce this in your non-checking build by just unconditionally enabling that df_veri

Re: [gomp] Move openacc vector& worker single handling to RTL

2015-07-09 Thread Nathan Sidwell
This is the patch I committed. Bernd pointed out that I didn't need to be so coy about the branches in the middle of blocks at that point of the compilation anyway. So we remove a couple of unneeded insn patterns. nathan 2015-07-09 Nathan Sidwell Infrastructure: * gimple.

Re: [gomp] Move openacc vector& worker single handling to RTL

2015-07-08 Thread Nathan Sidwell
On 07/08/15 10:58, Jakub Jelinek wrote: On Wed, Jul 08, 2015 at 10:47:56AM -0400, Nathan Sidwell wrote: +/* Generate loop head markers in outer->inner order. */ + +static void +gen_oacc_fork (gimple_seq *seq, unsigned mask) +{ + { +// TODDO: Determine this information from the parallel reg

Re: [gomp] Move openacc vector& worker single handling to RTL

2015-07-08 Thread Jakub Jelinek
On Wed, Jul 08, 2015 at 10:47:56AM -0400, Nathan Sidwell wrote: > +/* Generate loop head markers in outer->inner order. */ > + > +static void > +gen_oacc_fork (gimple_seq *seq, unsigned mask) > +{ > + { > +// TODDO: Determine this information from the parallel region itself TODO ? > +//

Re: [gomp] Move openacc vector& worker single handling to RTL

2015-07-08 Thread Nathan Sidwell
On 07/07/15 10:22, Jakub Jelinek wrote: I agree that fork/join might be less confusing. this version is the great renaming. I've added fork & join internal fns. In the PTX backend I've added 4 new unspecs: fork -- the final single mode insn forked -- the first partitioned mode insn joinin

Re: [gomp] Move openacc vector& worker single handling to RTL

2015-07-07 Thread Nathan Sidwell
On 07/07/15 10:22, Jakub Jelinek wrote: On Tue, Jul 07, 2015 at 10:12:56AM -0400, Nathan Sidwell wrote: Wouldn't function attributes be better for that case, and just use the internal functions for the case when the mode is being changed in the middle of function? It may be. I've been think

Re: [gomp] Move openacc vector& worker single handling to RTL

2015-07-07 Thread Jakub Jelinek
On Tue, Jul 07, 2015 at 10:12:56AM -0400, Nathan Sidwell wrote: > On 07/07/15 05:54, Jakub Jelinek wrote: > >On Mon, Jul 06, 2015 at 03:34:51PM -0400, Nathan Sidwell wrote: > > >How does this interact with > >#pragma acc routine {gang,worker,vector,seq} ? > >Or is that something to be added later

Re: [gomp] Move openacc vector& worker single handling to RTL

2015-07-07 Thread Nathan Sidwell
On 07/07/15 05:54, Jakub Jelinek wrote: On Mon, Jul 06, 2015 at 03:34:51PM -0400, Nathan Sidwell wrote: How does this interact with #pragma acc routine {gang,worker,vector,seq} ? Or is that something to be added later on? That is to be added later on. I suspect such routines will trivially

Re: [gomp] Move openacc vector& worker single handling to RTL

2015-07-07 Thread Jakub Jelinek
On Mon, Jul 06, 2015 at 03:34:51PM -0400, Nathan Sidwell wrote: > On 07/04/15 16:41, Nathan Sidwell wrote: > >On 07/03/15 19:11, Jakub Jelinek wrote: > > >>If the builtins are not meant to be used by users directly (I assume they > >>aren't) nor have a 1-1 correspondence to a library routine, it i

Re: [gomp] Move openacc vector& worker single handling to RTL

2015-07-06 Thread Nathan Sidwell
On 07/04/15 16:41, Nathan Sidwell wrote: On 07/03/15 19:11, Jakub Jelinek wrote: If the builtins are not meant to be used by users directly (I assume they aren't) nor have a 1-1 correspondence to a library routine, it is much better to emit them as internal calls (see internal-fn.{c,def}) inst

Re: [gomp] Move openacc vector& worker single handling to RTL

2015-07-04 Thread Nathan Sidwell
On 07/03/15 19:11, Jakub Jelinek wrote: On Fri, Jul 03, 2015 at 06:51:57PM -0400, Nathan Sidwell wrote: IMHO this is a step towards putting target-dependent handling in the target compiler and out of the more generic host-side compiler. The changelog is separated into 3 parts - a) general infra

Re: [gomp] Move openacc vector& worker single handling to RTL

2015-07-03 Thread Jakub Jelinek
On Fri, Jul 03, 2015 at 06:51:57PM -0400, Nathan Sidwell wrote: > IMHO this is a step towards putting target-dependent handling in the target > compiler and out of the more generic host-side compiler. > > The changelog is separated into 3 parts > - a) general infrastructure > - b) additiona > - c)

[gomp] Move openacc vector& worker single handling to RTL

2015-07-03 Thread Nathan Sidwell
This patch reorganizes the handling of vector and worker single modes and their transitions to/from partitioned mode out of omp-low and into mach-dep-reorg. That allows the regular middle end optimizers to behave normally -- with two exceptions, see below. There are no libgomp regressions, and