[gomp4] Re: [PATCH, 10/16] Add pass_oacc_kernels pass group in passes.def

2015-11-30 Thread Thomas Schwinge
Hi! On Wed, 25 Nov 2015 11:43:14 +0100 (CET), Richard Biener wrote: > On Tue, 24 Nov 2015, Tom de Vries wrote: > > > [...] > > > > Reposting using the in_loop_pipeline style in pass_lim. > > Ok. I merged trunk r230907 into gomp-4_0-branch in a very simplistic way,

Re: [PATCH, 10/16] Add pass_oacc_kernels pass group in passes.def

2015-11-25 Thread Richard Biener
On Tue, 24 Nov 2015, Tom de Vries wrote: > On 24/11/15 15:33, Richard Biener wrote: > > On Tue, 24 Nov 2015, Tom de Vries wrote: > > > > > On 24/11/15 14:13, Richard Biener wrote: > > > > On Tue, 24 Nov 2015, Tom de Vries wrote: > > > > > > > > > > On 23/11/15 11:02, Richard Biener wrote: > > >

Re: [PATCH, 10/16] Add pass_oacc_kernels pass group in passes.def

2015-11-25 Thread Richard Biener
On Tue, 24 Nov 2015, Tom de Vries wrote: > On 23/11/15 11:02, Richard Biener wrote: > > On Fri, 20 Nov 2015, Tom de Vries wrote: > > > > > On 20/11/15 14:29, Richard Biener wrote: > > > > I agree it's somewhat of an odd behavior but all passes should > > > > either be placed in a sub-pipeline

Re: [PATCH, 10/16] Add pass_oacc_kernels pass group in passes.def

2015-11-24 Thread Richard Biener
On Tue, 24 Nov 2015, Tom de Vries wrote: > On 24/11/15 14:13, Richard Biener wrote: > > On Tue, 24 Nov 2015, Tom de Vries wrote: > > > > > >On 23/11/15 11:02, Richard Biener wrote: > > > > > >On Fri, 20 Nov 2015, Tom de Vries wrote: > > > > > > > > > > > > > >On 20/11/15 14:29, Richard Biener

Re: [PATCH, 10/16] Add pass_oacc_kernels pass group in passes.def

2015-11-24 Thread Tom de Vries
On 24/11/15 15:33, Richard Biener wrote: On Tue, 24 Nov 2015, Tom de Vries wrote: On 24/11/15 14:13, Richard Biener wrote: On Tue, 24 Nov 2015, Tom de Vries wrote: On 23/11/15 11:02, Richard Biener wrote: On Fri, 20 Nov 2015, Tom de Vries wrote: On 20/11/15 14:29, Richard Biener wrote:

Re: [PATCH, 10/16] Add pass_oacc_kernels pass group in passes.def

2015-11-24 Thread Tom de Vries
On 23/11/15 11:02, Richard Biener wrote: On Fri, 20 Nov 2015, Tom de Vries wrote: On 20/11/15 14:29, Richard Biener wrote: I agree it's somewhat of an odd behavior but all passes should either be placed in a sub-pipeline with an outer loop_optimizer_init()/finalize () call or call both

Re: [PATCH, 10/16] Add pass_oacc_kernels pass group in passes.def

2015-11-24 Thread Richard Biener
On Tue, 24 Nov 2015, Tom de Vries wrote: > On 23/11/15 11:02, Richard Biener wrote: > > On Fri, 20 Nov 2015, Tom de Vries wrote: > > > > > On 20/11/15 14:29, Richard Biener wrote: > > > > I agree it's somewhat of an odd behavior but all passes should > > > > either be placed in a sub-pipeline

Re: [PATCH, 10/16] Add pass_oacc_kernels pass group in passes.def

2015-11-24 Thread Tom de Vries
On 24/11/15 14:13, Richard Biener wrote: On Tue, 24 Nov 2015, Tom de Vries wrote: >On 23/11/15 11:02, Richard Biener wrote: > >On Fri, 20 Nov 2015, Tom de Vries wrote: > > > > >On 20/11/15 14:29, Richard Biener wrote: > > > >I agree it's somewhat of an odd behavior but all passes should > >

Re: [PATCH, 10/16] Add pass_oacc_kernels pass group in passes.def

2015-11-23 Thread Richard Biener
On Sat, 21 Nov 2015, Tom de Vries wrote: > On 20/11/15 11:28, Richard Biener wrote: > > On Thu, 19 Nov 2015, Tom de Vries wrote: > > > > > >On 17/11/15 15:53, Tom de Vries wrote: > > > > > > > >And the above LIM example > > > > > > > >is none for why you need two LIM passes... > > > > > > > > >

Re: [PATCH, 10/16] Add pass_oacc_kernels pass group in passes.def

2015-11-23 Thread Richard Biener
On Fri, 20 Nov 2015, Tom de Vries wrote: > On 20/11/15 14:29, Richard Biener wrote: > > I agree it's somewhat of an odd behavior but all passes should > > either be placed in a sub-pipeline with an outer > > loop_optimizer_init()/finalize () call or call both themselves. > > Hmm, but adding

Re: [PATCH, 10/16] Add pass_oacc_kernels pass group in passes.def

2015-11-23 Thread Tom de Vries
On 23/11/15 12:31, Richard Biener wrote: From the dump below I understand you want no memory references in > >the outer loop? > >So the issue seems to be that store motion fails > >to insert the preheader load / exit store to the outermost loop > >possible and thus another LIM pass is needed to

Re: [PATCH, 10/16] Add pass_oacc_kernels pass group in passes.def

2015-11-23 Thread Richard Biener
On November 23, 2015 4:37:18 PM GMT+01:00, Tom de Vries wrote: >On 23/11/15 12:31, Richard Biener wrote: From the dump below I understand you want no memory references in > >the outer loop? > >So the issue seems to be that store motion fails > >to

Re: [PATCH, 10/16] Add pass_oacc_kernels pass group in passes.def

2015-11-21 Thread Tom de Vries
On 20/11/15 11:28, Richard Biener wrote: On Thu, 19 Nov 2015, Tom de Vries wrote: >On 17/11/15 15:53, Tom de Vries wrote: > > >And the above LIM example > > >is none for why you need two LIM passes... > > > >Indeed. I'm planning a separate reply to explain in more detail the need > >for the

Re: [PATCH, 10/16] Add pass_oacc_kernels pass group in passes.def

2015-11-20 Thread Tom de Vries
On 20/11/15 11:37, Richard Biener wrote: I'd rather make loop_optimizer_init do nothing if requested flags are already set and no fixup is needed Thus sth like Index: gcc/loop-init.c === --- gcc/loop-init.c (revision

Re: [PATCH, 10/16] Add pass_oacc_kernels pass group in passes.def

2015-11-20 Thread Richard Biener
On Fri, 20 Nov 2015, Tom de Vries wrote: > On 20/11/15 11:37, Richard Biener wrote: > >I'd rather make loop_optimizer_init do nothing > > if requested flags are already set and no fixup is needed > > > Thus sth like > > > > Index: gcc/loop-init.c > >

Re: [PATCH, 10/16] Add pass_oacc_kernels pass group in passes.def

2015-11-20 Thread Richard Biener
On Thu, 19 Nov 2015, Tom de Vries wrote: > On 17/11/15 15:53, Tom de Vries wrote: > > > And the above LIM example > > > is none for why you need two LIM passes... > > > > Indeed. I'm planning a separate reply to explain in more detail the need > > for the two pass_lims. > > I. > > I managed to

Re: [PATCH, 10/16] Add pass_oacc_kernels pass group in passes.def

2015-11-20 Thread Richard Biener
On Thu, 19 Nov 2015, Tom de Vries wrote: > On 16/11/15 13:45, Richard Biener wrote: > > > I've eliminated all the uses for pass_tree_loop_init/pass_tree_loop_done > > > in > > > >the pass group. Instead, I've added conditional loop optimizer setup in: > > > >- pass_lim and pass_scev_cprop (added

Re: [PATCH, 10/16] Add pass_oacc_kernels pass group in passes.def

2015-11-20 Thread Tom de Vries
On 20/11/15 14:29, Richard Biener wrote: I agree it's somewhat of an odd behavior but all passes should either be placed in a sub-pipeline with an outer loop_optimizer_init()/finalize () call or call both themselves. Hmm, but adding loop_optimizer_finalize at the end of pass_lim breaks the

Re: [PATCH, 10/16] Add pass_oacc_kernels pass group in passes.def

2015-11-19 Thread Tom de Vries
On 16/11/15 13:45, Richard Biener wrote: I've eliminated all the uses for pass_tree_loop_init/pass_tree_loop_done in >the pass group. Instead, I've added conditional loop optimizer setup in: >- pass_lim and pass_scev_cprop (added in this patch), and Reposting the "Add pass_oacc_kernels pass

Re: [PATCH, 10/16] Add pass_oacc_kernels pass group in passes.def

2015-11-18 Thread Bernhard Reutner-Fischer
On November 18, 2015 9:30:23 AM GMT+01:00, Richard Biener wrote: >On Tue, 17 Nov 2015, Tom de Vries wrote: > >> On 17/11/15 16:18, Richard Biener wrote: >> > > > IMHO autopar needs to handle induction itself. >> > > > >> > > >I'm not sure what you mean. Could you elaborate?

Re: [PATCH, 10/16] Add pass_oacc_kernels pass group in passes.def

2015-11-18 Thread Richard Biener
On Tue, 17 Nov 2015, Tom de Vries wrote: > On 17/11/15 16:18, Richard Biener wrote: > > > > IMHO autopar needs to handle induction itself. > > > > > > > >I'm not sure what you mean. Could you elaborate? Autopar handles > > > induction > > > >variables, but it doesn't handle exit phis reading the

Re: [PATCH, 10/16] Add pass_oacc_kernels pass group in passes.def

2015-11-18 Thread Tom de Vries
On 17/11/15 15:53, Tom de Vries wrote: And the above LIM example is none for why you need two LIM passes... Indeed. I'm planning a separate reply to explain in more detail the need for the two pass_lims. I. I managed to get rid of the two pass_lims for the motivating example that I used

Re: [PATCH, 10/16] Add pass_oacc_kernels pass group in passes.def

2015-11-17 Thread Tom de Vries
On 17/11/15 11:05, Richard Biener wrote: On Tue, Nov 17, 2015 at 12:20 AM, Tom de Vries wrote: On 16/11/15 13:45, Richard Biener wrote: + NEXT_PASS (pass_scev_cprop); What's that for? It's supposed to help removing loops - I don't expect kernels to

Re: [PATCH, 10/16] Add pass_oacc_kernels pass group in passes.def

2015-11-17 Thread Richard Biener
On Tue, 17 Nov 2015, Tom de Vries wrote: > On 17/11/15 11:05, Richard Biener wrote: > > On Tue, Nov 17, 2015 at 12:20 AM, Tom de Vries > > wrote: > > > On 16/11/15 13:45, Richard Biener wrote: > > > > > > > > > > > > + NEXT_PASS (pass_scev_cprop); > > > > > >

Re: [PATCH, 10/16] Add pass_oacc_kernels pass group in passes.def

2015-11-17 Thread Tom de Vries
On 17/11/15 16:18, Richard Biener wrote: IMHO autopar needs to handle induction itself. > >I'm not sure what you mean. Could you elaborate? Autopar handles induction >variables, but it doesn't handle exit phis reading the final value of the >induction variable. Is that what you want fixed?

Re: [PATCH, 10/16] Add pass_oacc_kernels pass group in passes.def

2015-11-17 Thread Richard Biener
On Tue, Nov 17, 2015 at 12:20 AM, Tom de Vries wrote: > On 16/11/15 13:45, Richard Biener wrote: + NEXT_PASS (pass_scev_cprop); > > > >What's that for? It's supposed to help removing loops - I don't > >expect kernels to vanish. >>> >>>

Re: [PATCH, 10/16] Add pass_oacc_kernels pass group in passes.def

2015-11-16 Thread Richard Biener
On Mon, 16 Nov 2015, Tom de Vries wrote: > On 11/11/15 12:02, Richard Biener wrote: > > On Mon, 9 Nov 2015, Tom de Vries wrote: > > > > > On 09/11/15 16:35, Tom de Vries wrote: > > > > Hi, > > > > > > > > this patch series for stage1 trunk adds support to: > > > > - parallelize oacc kernels

Re: [PATCH, 10/16] Add pass_oacc_kernels pass group in passes.def

2015-11-16 Thread Tom de Vries
On 16/11/15 13:45, Richard Biener wrote: + NEXT_PASS (pass_scev_cprop); > > > >What's that for? It's supposed to help removing loops - I don't > >expect kernels to vanish. > >I'm using pass_scev_cprop for the "final value replacement" functionality. >Added comment. That

Re: [PATCH, 10/16] Add pass_oacc_kernels pass group in passes.def

2015-11-16 Thread Tom de Vries
On 11/11/15 12:02, Richard Biener wrote: On Mon, 9 Nov 2015, Tom de Vries wrote: On 09/11/15 16:35, Tom de Vries wrote: Hi, this patch series for stage1 trunk adds support to: - parallelize oacc kernels regions using parloops, and - map the loops onto the oacc gang dimension. The patch

Re: [PATCH, 10/16] Add pass_oacc_kernels pass group in passes.def

2015-11-11 Thread Richard Biener
On Mon, 9 Nov 2015, Tom de Vries wrote: > On 09/11/15 16:35, Tom de Vries wrote: > > Hi, > > > > this patch series for stage1 trunk adds support to: > > - parallelize oacc kernels regions using parloops, and > > - map the loops onto the oacc gang dimension. > > > > The patch series contains

[PATCH, 10/16] Add pass_oacc_kernels pass group in passes.def

2015-11-09 Thread Tom de Vries
On 09/11/15 16:35, Tom de Vries wrote: Hi, this patch series for stage1 trunk adds support to: - parallelize oacc kernels regions using parloops, and - map the loops onto the oacc gang dimension. The patch series contains these patches: 1Insert new exit block only when needed in