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, TYPE,

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 ja...@redhat.com 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

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 kernel

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 ja...@redhat.com 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

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! On Thu, 13 Nov 2014 19:09:49 +0100, Jakub Jelinek ja...@redhat.com 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;

Re: OpenACC middle end changes

2014-12-18 Thread Thomas Schwinge
GIMPLE_OACC_KERNELS: +case GIMPLE_OACC_PARALLEL: + gcc_unreachable (); + Ditto etc. Same reasoning as for gimple_copy given above. (And, asserts/gcc_unreachable now all gone.) Do you want me to repost the OpenACC Middle End changes patch, or would you be OK with reviewing the code on gomp

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_code_label

Re: OpenACC middle end changes

2014-12-18 Thread Jakub Jelinek
me to repost the OpenACC Middle End changes patch, or would you be OK with reviewing the code on gomp-4_0-branch, diffing against the last trunk merge point, 0fcfaa33cbf333ac69cc2b01a7277e5272ff8a3d, r218679? 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 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 with

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 offloading

Re: OpenACC middle end changes

2014-12-18 Thread Thomas Schwinge
Hi Jakub! On Thu, 18 Dec 2014 13:15:38 +0100, Jakub Jelinek ja...@redhat.com 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

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 ja...@redhat.com 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

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-offload.h ;;

Re: OpenACC middle end changes

2014-12-18 Thread Thomas Schwinge
Hi Jakub! On Thu, 18 Dec 2014 12:33:11 +0100, Jakub Jelinek ja...@redhat.com 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 Thomas Schwinge
Hi Jakub! On Thu, 18 Dec 2014 13:36:16 +0100, Jakub Jelinek ja...@redhat.com 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-*)

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

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 ja...@redhat.com 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

Re: OpenACC middle end changes

2014-12-18 Thread Thomas Schwinge
Hi Jakub! On Thu, 13 Nov 2014 19:09:49 +0100, Jakub Jelinek ja...@redhat.com 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

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 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. */ +

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 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 kernel

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

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 different

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 already

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

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: 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 * +omp_get_id (tree

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: 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 reduction array name */