Re: Merge DEF_GOACC_BUILTIN into DEF_GOMP_BUILTIN? (was: OpenACC middle end changes)

2015-07-09 Thread Jakub Jelinek
On Thu, Jul 09, 2015 at 05:52:20PM +0200, Thomas Schwinge wrote: > --- gcc/builtins.def > +++ gcc/builtins.def > @@ -182,7 +182,9 @@ along with GCC; see the file COPYING3. If not see > #define DEF_GOMP_BUILTIN(ENUM, NAME, TYPE, ATTRS) \ >DEF_BUILTIN (ENUM, "__builtin_" NAME, BUILT_IN_NORMAL,

Merge DEF_GOACC_BUILTIN into DEF_GOMP_BUILTIN? (was: OpenACC middle end changes)

2015-07-09 Thread Thomas Schwinge
Hi! On Thu, 13 Nov 2014 19:09:49 +0100, Jakub Jelinek wrote: > On Thu, Nov 13, 2014 at 05:59:11PM +0100, Thomas Schwinge wrote: > > * should gcc/oacc-builtins.def just be merged into > > gcc/omp-builtins.def; > > Why not. The reason why they aren't in gcc/builtins.def is that > the Fortra

nvptx offloading: Tag entrypoint functions with a special attribute (was: OpenACC middle end changes)

2015-02-20 Thread Thomas Schwinge
Hi! On Fri, 20 Feb 2015 10:47:13 +0100, Jakub Jelinek wrote: > On Wed, Nov 19, 2014 at 08:52:40PM +0100, Bernd Schmidt wrote: > > Another change that's required is (something like) the following. For ptx, > > we need to know whether to output something as a .func (callable from ptx > > code) or a

Re: OpenACC middle end changes

2015-02-20 Thread Jakub Jelinek
On Wed, Nov 19, 2014 at 08:52:40PM +0100, Bernd Schmidt wrote: > Another change that's required is (something like) the following. For ptx, > we need to know whether to output something as a .func (callable from ptx > code) or a .kernel (callable from the host). That means we need to mark the > ker

Re: OpenACC middle end changes

2015-02-13 Thread Thomas Schwinge
Hi! On Thu, 18 Dec 2014 14:16:52 +0100, I wrote: > --- /dev/null > +++ gcc/config/i386/intelmic-offload.h > +#define ACCEL_COMPILER_acc_device GOMP_DEVICE_INTEL_MIC This one I got right... > --- /dev/null > +++ gcc/config/nvptx/offload.h > @@ -0,0 +1,35 @@ > +#define ACCEL_COMPILER_acc_device

Re: OpenACC middle end changes

2014-12-18 Thread Thomas Schwinge
Hi Jakub! On Thu, 13 Nov 2014 19:09:49 +0100, Jakub Jelinek wrote: > > --- gcc/builtins.c > > +++ gcc/builtins.c > > +static rtx > > +expand_builtin_acc_on_device (tree exp, rtx target ATTRIBUTE_UNUSED) > > +{ > > + if (!validate_arglist (exp, INTEGER_TYPE, VOID_TYPE)) > > +return NULL_RTX;

libgomp offloading testing (was: OpenACC middle end changes)

2014-12-18 Thread Thomas Schwinge
Hi Jakub! On Thu, 18 Dec 2014 15:20:42 +0100, Jakub Jelinek wrote: > So, with your latest change both compilers build: > mkdir objmic; cd objmic > ../configure --build=x86_64-intelmicemul-linux-gnu > --host=x86_64-intelmicemul-linux-gnu --target=x86_64-intelmicemul-linux-gnu > --enable-as-accel

Re: OpenACC middle end changes

2014-12-18 Thread Jakub Jelinek
On Thu, Dec 18, 2014 at 12:07:01PM +0100, Thomas Schwinge wrote: > Many thanks for the review comments! The very most have been addresed, > here are just a few comments. If you feel strongly/differently about > any, I'll address those, too. So, with your latest change both compilers build: mkdir

Re: OpenACC middle end changes

2014-12-18 Thread Thomas Schwinge
Hi Jakub! On Thu, 18 Dec 2014 13:36:16 +0100, Jakub Jelinek wrote: > On Thu, Dec 18, 2014 at 01:31:45PM +0100, Jakub Jelinek wrote: > > > --- gcc/config.gcc > > > +++ gcc/config.gcc > > > @@ -2906,6 +2906,7 @@ esac > > > case ${target} in > > > *-intelmic-* | *-intelmicemul-*) > > > tmake_fil

Re: OpenACC middle end changes

2014-12-18 Thread Thomas Schwinge
Hi Jakub! On Thu, 18 Dec 2014 12:33:11 +0100, Jakub Jelinek wrote: > On Thu, Dec 18, 2014 at 11:46:00AM +0100, Thomas Schwinge wrote: > > > just > > > rtx v1 = GEN_INT (...); > > > rtx v2 = GEN_INT (...); > > > machine_mode mode = TYPE_MODE (TREE_TYPE (arg)); > > > rtx ret = gen_reg_rtx (

Re: OpenACC middle end changes

2014-12-18 Thread Jakub Jelinek
On Thu, Dec 18, 2014 at 01:31:45PM +0100, Jakub Jelinek wrote: > > --- gcc/config.gcc > > +++ gcc/config.gcc > > @@ -2906,6 +2906,7 @@ esac > > case ${target} in > > *-intelmic-* | *-intelmicemul-*) > > tmake_file="${tmake_file} i386/t-intelmic" > > + tm_file="${tm_file} i386/intelmic-offlo

Re: OpenACC middle end changes

2014-12-18 Thread Jakub Jelinek
On Thu, Dec 18, 2014 at 01:24:20PM +0100, Thomas Schwinge wrote: > Hi Jakub! > > On Thu, 18 Dec 2014 13:15:38 +0100, Jakub Jelinek wrote: > > On Thu, Dec 18, 2014 at 01:02:22PM +0100, Jakub Jelinek wrote: > > > On Thu, Dec 18, 2014 at 12:38:53PM +0100, Jakub Jelinek wrote: > > > > So, is what is

Re: OpenACC middle end changes

2014-12-18 Thread Thomas Schwinge
Hi Jakub! On Thu, 18 Dec 2014 13:15:38 +0100, Jakub Jelinek wrote: > On Thu, Dec 18, 2014 at 01:02:22PM +0100, Jakub Jelinek wrote: > > On Thu, Dec 18, 2014 at 12:38:53PM +0100, Jakub Jelinek wrote: > > > So, is what is on the gomp-4_0-branch now all that you'd like to merge to > > > trunk now?

Re: OpenACC middle end changes

2014-12-18 Thread Jakub Jelinek
On Thu, Dec 18, 2014 at 01:02:22PM +0100, Jakub Jelinek wrote: > On Thu, Dec 18, 2014 at 12:38:53PM +0100, Jakub Jelinek wrote: > > So, is what is on the gomp-4_0-branch now all that you'd like to merge to > > trunk now? Has it been tested on nvptx? I guess we should test it with > > XeonPhi offl

Re: OpenACC middle end changes

2014-12-18 Thread Jakub Jelinek
On Thu, Dec 18, 2014 at 12:38:53PM +0100, Jakub Jelinek wrote: > So, is what is on the gomp-4_0-branch now all that you'd like to merge to > trunk now? Has it been tested on nvptx? I guess we should test it with > XeonPhi offloading too to make sure it doesn't break. > And then you or together wi

Re: OpenACC middle end changes

2014-12-18 Thread Jakub Jelinek
acc or gimple_oacc_p ? > > The idea is to make it clear in the name that STMT must be an OMP one. > Now renamed to the shorter is_gimple_omp_oacc. Ok. > > If you want to shift from bitmasks in the enum > > to extra on the side bits (why?), then combined > &g

Re: OpenACC middle end changes

2014-12-18 Thread Jakub Jelinek
On Thu, Dec 18, 2014 at 11:46:00AM +0100, Thomas Schwinge wrote: > > just > > rtx v1 = GEN_INT (...); > > rtx v2 = GEN_INT (...); > > machine_mode mode = TYPE_MODE (TREE_TYPE (arg)); > > rtx ret = gen_reg_rtx (TYPE_MODE (integer_type_node)); > > emit_move_insn (ret, const0_rtx); > > rtx

Re: OpenACC middle end changes

2014-12-18 Thread Thomas Schwinge
); > > + /* FALLTHRU */ > > + case OMP_CLAUSE_IF: > > [...] if there are > some spots you want to keep them in for now, consider gcc_checking_assert > instead. Now using this a few times. > > --- gcc/tree-nested.c > > +++ gcc/tree-nested.c > > @@ -627,6 +627,8

Re: OpenACC middle end changes

2014-12-18 Thread Thomas Schwinge
Hi! On Thu, 13 Nov 2014 19:09:49 +0100, Jakub Jelinek wrote: > On Thu, Nov 13, 2014 at 05:59:11PM +0100, Thomas Schwinge wrote: > > --- gcc/builtins.c > > +++ gcc/builtins.c > > +/* Expand OpenACC acc_on_device. > > + > > + This has to happen late (that is, not in early folding; > > expand_bu

Re: OpenACC middle end changes

2014-11-20 Thread Bernd Schmidt
On 11/20/2014 07:52 AM, Jakub Jelinek wrote: On Thu, Nov 20, 2014 at 03:19:11AM +0100, Bernd Schmidt wrote: Thomas had apparently already pointed out an issue with the new gomp_target class (there are multiple similar types of statements we want to handle with OpenACC, they have different codes

Re: OpenACC middle end changes

2014-11-19 Thread Jakub Jelinek
On Thu, Nov 20, 2014 at 03:19:11AM +0100, Bernd Schmidt wrote: > Thomas had apparently already pointed out an issue with the new gomp_target > class (there are multiple similar types of statements we want to handle with > OpenACC, they have different codes but we want to have function pointers > op

Re: OpenACC middle end changes

2014-11-19 Thread Jakub Jelinek
On Wed, Nov 19, 2014 at 08:52:40PM +0100, Bernd Schmidt wrote: > Another change that's required is (something like) the following. For ptx, > we need to know whether to output something as a .func (callable from ptx > code) or a .kernel (callable from the host). That means we need to mark the > ker

Re: OpenACC middle end changes

2014-11-19 Thread Bernd Schmidt
Another change that's required is (something like) the following. For ptx, we need to know whether to output something as a .func (callable from ptx code) or a .kernel (callable from the host). That means we need to mark the kernel functions somehow in omp-low.c, and the following does that by

Re: OpenACC middle end changes

2014-11-19 Thread Bernd Schmidt
On 11/19/2014 02:50 AM, Bernd Schmidt wrote: @@ -8417,6 +8926,9 @@ expand_omp_target (struct omp_region *region) /* Add the new function to the offload table. */ vec_safe_push (offload_funcs, child_fn); + /* Add the new function to the offload table. */ + vec_safe_pu

Re: OpenACC middle end changes

2014-11-15 Thread Gerald Pfeifer
On Thursday 2014-11-13 17:59, Thomas Schwinge wrote: > Here is our current set of OpenACC middle end changes. As discussed > before, this is not yet all of OpenACC 2.0 -- we shall a) document what > is working already, and b) continue to work on closing the gap. As David wrote in a

Re: OpenACC middle end changes

2014-11-14 Thread Jakub Jelinek
On Fri, Nov 14, 2014 at 11:28:15AM +0100, Richard Biener wrote: > > This patch is based on the last merge of trunk into gomp-4_0-branch, > > 9be82689 (trunk r216846, 2014-10-29), and still includes an old version > > of the offloading patches, as currently present on gomp-4_0-branch. > > We're alre

Re: OpenACC middle end changes

2014-11-13 Thread Cesar Philippidis
On 11/13/2014 11:09 AM, Jakub Jelinek wrote: > On Thu, Nov 13, 2014 at 11:03:47AM -0800, Cesar Philippidis wrote: @@ -233,6 +242,90 @@ static tree scan_omp_1_op (tree *, int *, void *); *handled_ops_p = false; \ break; +/* Helper function to get the reductio

Re: OpenACC middle end changes

2014-11-13 Thread Joseph Myers
On Thu, 13 Nov 2014, Thomas Schwinge wrote: > gcc/doc/invoke.texi | 14 You're adding documentation for -fopenacc, but I don't see any .opt file changes in this patch, and I'd expect the option to be added in the same patch as its documentation. -- Joseph S. Myers

Re: Re: OpenACC middle end changes

2014-11-13 Thread Jakub Jelinek
On Thu, Nov 13, 2014 at 11:03:47AM -0800, Cesar Philippidis wrote: > >> @@ -233,6 +242,90 @@ static tree scan_omp_1_op (tree *, int *, void *); > >>*handled_ops_p = false; \ > >>break; > >> > >> +/* Helper function to get the reduction array name */ > >> +static const char * > >>

Re: Re: OpenACC middle end changes

2014-11-13 Thread Cesar Philippidis
I'll try to respond to the reduction stuff. It's been a while since I started working on it, so I may have lost some state. On 11/13/2014 10:09 AM, Jakub Jelinek wrote: >> @@ -233,6 +242,90 @@ static tree scan_omp_1_op (tree *, int *, void *); >>*handled_ops_p = false; \ >>break;

Re: OpenACC middle end changes

2014-11-13 Thread Jakub Jelinek
On Thu, Nov 13, 2014 at 05:59:11PM +0100, Thomas Schwinge wrote: > * should gcc/oacc-builtins.def just be merged into > gcc/omp-builtins.def; Why not. The reason why they aren't in gcc/builtins.def is that the Fortran FE doesn't source those, but OpenACC supports the same languages as OpenM