[gomp] remove tid/ntid fns from libgcc

2015-07-10 Thread Nathan Sidwell
I've committed this patch to remove library versions of the num threads and thread id. This has been busted since my reorg of the tid and ntid builtins, but wasn't noticed because they're not used anyway. nathan 2015-07-10 Nathan Sidwell * config/nvptx/gomp

[nvptx] mkoffload cleanup

2015-07-10 Thread Nathan Sidwell
than 2015-07-10 Nathan Sidwell * config/nvptx/mkoffload.c (Q): New macro. (proacess): Use it for emitting code. Index: config/nvptx/mkoffload.c === --- config/nvptx/mkoffload.c(revision 225703) +++ config/nv

Re: Merge trunk r225562 (2015-07-08) into gomp-4_0-branch

2015-07-13 Thread Nathan Sidwell
On 07/12/15 05:39, Thomas Schwinge wrote: Hi! On Fri, 10 Jul 2015 18:50:20 -0400, Nathan Sidwell wrote: it looks like the most recent merge from trunk to gomp4 was early May. I think it is time for another one -- can you handle that? Indeed :-) -- and, as it happens, resolving the "

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

GOMP_offload_register

2015-07-13 Thread Nathan Sidwell
Ilya, GOMP_offload_register's target data argument is 'void *'. Is there any reason it shouldn't be 'const void *'? It would seem to me that that would be better? (a cursory look at i386/intelmic-mkoffload.c suggests a lack of consts in the variable decls there. ptx suffers the same problem

[GOMP] a struct for offload target data

2015-07-13 Thread Nathan Sidwell
Bernd, this patch changes the offload target data type from an array of void *, to a struct, which is somewhat easier to deal with than remembering numeric indices and type casts. This is step 1 in reworking the launch API. ok? nathan 2015-07-13 Nathan Sidwell gcc/ * config/nvptx

Re: GOMP_offload_register

2015-07-13 Thread Nathan Sidwell
On 07/13/15 09:49, Ilya Verbin wrote: On Mon, Jul 13, 2015 at 09:42:50 -0400, Nathan Sidwell wrote: GOMP_offload_register's target data argument is 'void *'. Is there any reason it shouldn't be 'const void *'? It would seem to me that that would be better? (a

[gomp] constify device data & fix cleanup

2015-07-14 Thread Nathan Sidwell
tch in this series to break the API between mkoffload and libgomp -- adding version numbering. I could do this just for PTX (and have an inferior long term solution), or modify intelmic too. Preference? nathan 2015-07-14 Nathan Sidwell gcc/ * config/i386/intelmic-mkoffload.c (generate_

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] constify device data & fix cleanup

2015-07-15 Thread Nathan Sidwell
On 07/15/15 04:42, Ilya Verbin wrote: 2015-07-15 2:59 GMT+03:00 Nathan Sidwell : The other thing this does is change the interface between libgommp and the plugin's load_image and unload_image routines. I've added the ability to return a pointer to target-specific connection data

[gomp] Fix PTX unloading

2015-07-15 Thread Nathan Sidwell
ading the target images before destroying the memory maps containing said images. Mkoffloads now emits a static destructor call. Ok for gomp4? nathan 2015-07-15 Nathan Sidwell libgomp/ * target.c (gomp_offload_image_to_device): Rename to ... (gomp_load_image_to_device): ...

[nvptx] C++ify mkoffloads

2015-07-15 Thread Nathan Sidwell
I've applied this obvious patch to trunk to make mkoffloads work for C++. The equivalent is already on the gomp4 branch. nathan 2015-07-15 Nathan Sidwell * config/nvptx/mkoffload.c (process): Add C++ protection to emitted code. Index: config/nvptx/mkoffl

fixup gomp register/unregister prototypes

2015-07-15 Thread Nathan Sidwell
I'm almost tempted to commit as obvious. I noticed that the callers of these functions from code generated by mkoffload declare the 2nd arg as an int, because they have no visibility of the enum. I thought it wise to make the definitions match. ok for trunk? nathan 2015-07-15 N

[gomp] ptx debug message tweak

2015-07-15 Thread Nathan Sidwell
I've applied this patch to gomp4 branch. I found it useful to know the compute grid dimensions when spawning a kernel. nathan 2015-07-15 Nathan Sidwell * plugin/plugin-nvptx.c (nvptx_exec): Show grid dimensions in debug message. Index: plugin/plugin-nv

Constify host-side offload data`

2015-07-15 Thread Nathan Sidwell
for trunk? nathan 2015-07-15 Nathan Sidwell gcc/ * config/nvptx/mkoffload.c (process): Constify host data. * config/i386/intelmic-mkoffload.c (generate_target_descr_file): Constify host data. (generate_host_descr_file): Likewise. libgomp/ * target.c (struct_offload_image_descr): Constify

Re: [nvptx] C++ify mkoffloads

2015-07-15 Thread Nathan Sidwell
On 07/15/15 20:55, Bernd Schmidt wrote: On 07/15/2015 08:55 PM, Nathan Sidwell wrote: I've applied this obvious patch to trunk to make mkoffloads work for C++. The equivalent is already on the gomp4 branch. Not really objecting, but why is this necessary? We control how to compile the

Re: Constify host-side offload data`

2015-07-16 Thread Nathan Sidwell
On 07/16/15 07:41, Ilya Verbin wrote: On Wed, Jul 15, 2015 at 20:56:50 -0400, Nathan Sidwell wrote: Index: gcc/config/nvptx/mkoffload.c === - fprintf (out, "extern void *__OFFLOAD_TABLE__[];\n\n"); + fprintf (out, &qu

[gomp] Fix PTX worker spill/fill

2015-07-16 Thread Nathan Sidwell
I've committed this patch to fix a bug in the worker spill/fill code. We ended up not incrementing the pointer, resulting in the stack frame being filled with the same value. Thanks to Jim for finding the failure. nathan 2015-07-16 Nathan Sidwell * config/nvptx/nvptx.c (nvptx_gen_

Re: [gomp4] Remove device-specific filtering during parsing for OpenACC

2015-07-16 Thread Nathan Sidwell
(and to not use e.g. mixed-case "nVidia" or "acc_device_nvidia" names, which are contrary to the recommendations in the spec). OK to apply, or any comments? thanks! -- Nathan Sidwell

Re: [GOMP] a struct for offload target data

2015-07-16 Thread Nathan Sidwell
On 07/13/15 10:33, Bernd Schmidt wrote: On 07/13/2015 03:57 PM, Nathan Sidwell wrote: this patch changes the offload target data type from an array of void *, to a struct, which is somewhat easier to deal with than remembering numeric indices and type casts. This is step 1 in reworking the

constify target offload data

2015-07-16 Thread Nathan Sidwell
Jakub, Ilya, this patch against trunk constifies the offload target data. I'm having difficulty building an intelmic toolchain, so the changes there aren't tested. Ilya, if you could check them, that'd be great. nathan 2015-07-16 Nathan Sidwell gcc/ * config/nvptx/mkoff

Re: constify target offload data

2015-07-17 Thread Nathan Sidwell
On 07/17/15 07:05, Jakub Jelinek wrote: On Fri, Jul 17, 2015 at 02:01:12PM +0300, Ilya Verbin wrote: On Thu, Jul 16, 2015 at 16:08:47 -0400, Nathan Sidwell wrote: Jakub, Ilya, this patch against trunk constifies the offload target data. I'm having difficulty building an intelmic toolchai

Re: fixup gomp register/unregister prototypes

2015-07-17 Thread Nathan Sidwell
On 07/17/15 10:44, Jakub Jelinek wrote: On Wed, Jul 15, 2015 at 03:04:30PM -0400, Nathan Sidwell wrote: I'm almost tempted to commit as obvious. I noticed that the callers of these functions from code generated by mkoffload declare the 2nd arg as an int, because they have no visibility o

Re: [C++/66443] virtual base of abstract class

2015-07-17 Thread Nathan Sidwell
On 07/17/15 15:42, Jason Merrill wrote: On 07/08/2015 10:50 AM, Nathan Sidwell wrote: On 06/30/15 19:21, Nathan Sidwell wrote: On 06/30/15 00:19, Jason Merrill wrote: On 06/29/2015 06:57 PM, Nathan Sidwell wrote: * method.c (synthesized_method_walk): Skip virtual bases of abstract

[gomp4] remove kernel-specific launch

2015-07-19 Thread Nathan Sidwell
Tom, as we discussed this patch removes the GOACC_kernels call, which forwards to GOACC_parallel. We simply call GOACC_parallel directly. ok for gomp4 branch? nathan 2015-07-19 Nathan Sidwell gcc/ * omp-low.c (expand_omp_target): Convert to BUILT_IN_GOACC_PARALLEL. Remove

Refactor openacc wait routine

2015-07-19 Thread Nathan Sidwell
this trunk patch refactors libgomp's goacc_wait, which is used for two different purposes. 1) when openacc pragmas specify a (non-zero) waits. 2) when the wait pragma itself specifies a zero number of waits. this leads to #2 calling goacc_wait with num_waits=0, and forces #1 to never do that.

Fix PTX loaded module data

2015-07-19 Thread Nathan Sidwell
-allocated vector of offloaded functions, with some totally bogus code in the unload routine. This is currently not used, because there is no unloading destructor. The patch fixes that. A followup patch will then be able to enable unloading. ok for trunk? nathan 2015-07-18 Nathan Sidwell

Re: [gomp4] remove kernel-specific launch

2015-07-19 Thread Nathan Sidwell
funcs that should be converted to something else before the end of compilation. nathan 2015-07-19 Nathan Sidwell gcc/ * omp-low.c (expand_omp_target): Convert to BUILT_IN_GOACC_PARALLEL. Remove BUILT_IN_GOACC_KERNELS cases. * omp-builtins.def (BUILT_IN_GOACC_KERNELS): Delete. libgomp/ *

Re: [gomp4] remove kernel-specific launch

2015-07-20 Thread Nathan Sidwell
On 07/20/15 05:54, Tom de Vries wrote: Turning it into an internal fn will make it harder to convert a GOACC_kernels_internal call into a GOACC_parallel call, which we're doing here I wondered ...

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: [gomp4] New nvptx pattern and internal builtin

2015-07-20 Thread Nathan Sidwell
a single array describing the builtins and allowing direct indexing using the builtin number, rather than iteration when expanding. ok? nathan 2015-07-20 Nathan Sidwell * config/nvptx/nvptx.c (nvptx_builtins): Delete enum. (nvptx_types): New enum. (builtin_description): Add type and

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

Re: Fix PTX loaded module data

2015-07-20 Thread Nathan Sidwell
On 07/19/15 17:04, Nathan Sidwell wrote: Hi, this patch fixes the ptx plugin's management of offloaded functions. Currently it has a single global list of functions. But it should track this information per ptx device instance. I've moved the linked list into the per-device data

Re: Refactor openacc wait routine

2015-07-20 Thread Nathan Sidwell
On 07/19/15 08:37, Nathan Sidwell wrote: this trunk patch refactors libgomp's goacc_wait, which is used for two different purposes. 1) when openacc pragmas specify a (non-zero) waits. 2) when the wait pragma itself specifies a zero number of waits. this leads to #2 calling goacc_wait

fix gomp offload routine unloading

2015-07-20 Thread Nathan Sidwell
thful. ok for trunk? nathan 2015-07-20 Nathan Sidwell libgomp/ * target.c (gomp_offload_image_to_device): Rename to ... (gomp_load_image_to_device): ... here. (GOMP_offload_register): Adjust call. (gomp_init_device): Likewise. (gomp_unload_image_from_device): New. Broken o

Re: fix gomp offload routine unloading

2015-07-21 Thread Nathan Sidwell
On 07/21/15 05:51, Jakub Jelinek wrote: On Mon, Jul 20, 2015 at 07:08:55PM -0400, Nathan Sidwell wrote: 2015-07-20 Nathan Sidwell libgomp/ * target.c (gomp_offload_image_to_device): Rename to ... (gomp_load_image_to_device): ... here. (GOMP_offload_register

offload data version number

2015-07-21 Thread Nathan Sidwell
Advice sought. ok? nathan 2015-07-21 Nathan Sidwell include/ * gomp-constants.h (GOMP_VERSION, GOMP_VERSION_NVIDIA_PTX): New. (GOMP_VERSION_PACK, GOMP_VERSION_LIB, GOMP_VERSION_DEV): New. libgomp/ * plugin/plugin-nvptx.c: Include gomp-constants.h. (GOMP_OFFLOAD_load_image): Replace wit

Re: fix gomp offload routine unloading

2015-07-21 Thread Nathan Sidwell
On 07/21/15 09:20, Ilya Verbin wrote: On Tue, Jul 21, 2015 at 08:15:41 -0400, Nathan Sidwell wrote: On 07/21/15 05:51, Jakub Jelinek wrote: On Mon, Jul 20, 2015 at 07:08:55PM -0400, Nathan Sidwell wrote: 2015-07-20 Nathan Sidwell libgomp/ * target.c

Re: offload data version number

2015-07-21 Thread Nathan Sidwell
On 07/21/15 09:25, Nathan Sidwell wrote: This trunk patch implements new register and unregister entry points to allow specifying data version information. (I'll shortly be posting patches changing the PTX offload data format.) We now have GOMP_offload_{,un}register_2, which take an addit

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

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 li

Re: offload data version number

2015-07-24 Thread Nathan Sidwell
On 07/21/15 11:21, Nathan Sidwell wrote: On 07/21/15 09:25, Nathan Sidwell wrote: This trunk patch implements new register and unregister entry points to allow specifying data version information. (I'll shortly be posting patches changing the PTX offload data format.) We now

default omp clause

2015-07-24 Thread Nathan Sidwell
trunk? nathan 2015-07-24 Nathan Sidwell * gimplify.c (omp_default_clause): New function. Reorganize flow for clarity. Broken out of ... (omp_notice_variable): ... here. Index: gcc/gimplify.c === --- gcc/gimplify.c (revision

Re: default omp clause

2015-07-24 Thread Nathan Sidwell
On 07/24/15 11:22, Jakub Jelinek wrote: On Fri, Jul 24, 2015 at 11:10:59AM -0400, Nathan Sidwell wrote: +case OMP_CLAUSE_DEFAULT_NONE: + { + const char *accn; Can you rename this variable to something that makes sense? kind, or construct, or name, or directive? Hm, yeah

Re: offload data version number

2015-07-24 Thread Nathan Sidwell
On 07/24/15 12:30, Jakub Jelinek wrote: So there is no version anywhere? I remember in the design ideas the plan was that the data section containing the target info (that originally has been meant to be passed as GOMP_target parameter, but later on has been changed to the register/unregister a

[gomp4] default clause cleanup

2015-07-24 Thread Nathan Sidwell
I've committed this to gomp4 branch. It's the openacc equivalent of the omp cleanup I committed earlier to both trunk and gomp4. nathan 2015-07-24 Nathan Sidwell * gimplify.c (device_resident_p): New function, broken out of omp_notice_variable. (oacc_default_clause): Ne

Re: offload data version number

2015-07-24 Thread Nathan Sidwell
ading functions, so don't expect a NULL value. We can simply check the returned value and only need dlerror when we get NULL. The counting that DLSYM_OPT does was somewhat funky too. IMHO better for that macro to simply return a truth value. ok for trunk? nathan 2015-07-24 Nathan Sidwell

Re: offload data version number

2015-07-24 Thread Nathan Sidwell
On 07/24/15 15:51, Ilya Verbin wrote: On Fri, Jul 24, 2015 at 15:26:38 -0400, Nathan Sidwell wrote: mber into mkoffload:process () like: 865 fprintf (out, "static const void *target_data[] = {\n"); 866 fprintf (out, " MAGIC, VERSION, ptx_code, (void*) %u, var_mappings, (vo

[gomp4] Fix some gomp tests

2015-07-25 Thread Nathan Sidwell
I've committed this to gomp4 branch. It fixes some tests that were incorrect and fail with some development I am working on. nathan 2015-07-25 Nathan Sidwell * testsuite/libgomp.oacc-c-c++-common/reduction-2.c: Copy lresult, not result for logical reductions. * testsuite/libgomp.o

OMP. More constification

2015-07-26 Thread Nathan Sidwell
unted on that bit and simply added a 'void *' cast when calling it. I've not checked the intelmic library, and suspect that will need some consts adding -- is that something you can do Ilya? nathan 2015-07-26 Nathan Sidwell libgomp/ * libgomp.h (struct acc_dispatch_t):

[gomp4] fiuxup openacc default handling

2015-07-26 Thread Nathan Sidwell
tweaked the setting of GOVD_ flags slightly, to make the firstprivate handling I'm working on less invasive. nathan 2015-07-26 Nathan Sidwell * gimplify.c (oacc_default_clause): Fallthrough to unspecified handling. Propagate mapping from outer scop

Re: OMP. More constification

2015-07-27 Thread Nathan Sidwell
On 07/27/15 04:23, Jakub Jelinek wrote: On Sun, Jul 26, 2015 at 11:01:09AM -0400, Nathan Sidwell wrote: I found some more missing consts. The size, kind, var and function arrays emitted by omp-low are read only, but are not so marked. This patch First of all, the hostaddrs array is going to

Re: OMP. More constification

2015-07-27 Thread Nathan Sidwell
On 07/27/15 07:43, Jakub Jelinek wrote: On Mon, Jul 27, 2015 at 07:33:59AM -0400, Nathan Sidwell wrote: They are only global objects if they are filled with constants. Right know for kinds array that is true always, for sizes array if no VLAs nor variable length array sections are used. They

Re: offload data version number

2015-07-27 Thread Nathan Sidwell
On 07/24/15 09:32, Nathan Sidwell wrote: On 07/21/15 11:21, Nathan Sidwell wrote: I committed a version to gomp4 branch, but would still like to get this to trunk ASAP. I committed this update to the gomp4 branch to match the updated version currently under review for trunk. nathan

Re: [gomp4] fiuxup openacc default handling

2015-07-27 Thread Nathan Sidwell
On 07/27/15 11:21, Tom de Vries wrote: On 26/07/15 19:09, Nathan Sidwell wrote: I've committed this update to my earlier breakout of default handling. After complaining about something because of 'none', we should fall through to the default handling, to prevent ICEing later (on

Re: [gomp4] fiuxup openacc default handling

2015-07-28 Thread Nathan Sidwell
On 07/27/15 11:21, Tom de Vries wrote: On 26/07/15 19:09, Nathan Sidwell wrote: I've committed this update to my earlier breakout of default handling. After complaining about something because of 'none', we should fall through to the default handling, to prevent ICEing later (on

Re: [gomp4] Fix some gomp tests

2015-07-28 Thread Nathan Sidwell
On 07/28/15 06:14, Thomas Schwinge wrote: Hi Nathan! On Sat, 25 Jul 2015 16:02:01 -0400, Nathan Sidwell wrote: I've committed this to gomp4 branch. It fixes some tests that were incorrect Hmm, I fail to see what you deem incorrect in the following two Fortran test cases? Imp

Re: [gomp4] Fix some gomp tests

2015-07-28 Thread Nathan Sidwell
( nathan -- Nathan Sidwell

[gomp4] Redesign oacc_parallel launch API

2015-07-28 Thread Nathan Sidwell
ck them up and overwrite with any dynamic ones passed in from the launch function. nathan 2015-07-28 Nathan Sidwell include/ * gomp-constants.h (GOMP_DIM_GANG, GOMP_DIM_WORKER, GOMP_DIM_VECTOR): New. (GOMP_DIM_MAX, GOMP_DIM_MASK): New. (GOMP_LAUNCH_END, GOMP_LAUNCH_DIM,

Re: [gomp4] Redesign oacc_parallel launch API

2015-07-28 Thread Nathan Sidwell
Oh, one more thing. I placed constants for the 3 launch dimensions into gomp-constants.h, as they are needed by both library and compiler. Working on a patch to remove the current set of constants from omp-low.h nathan

[gomp4] unify open acc level constants

2015-07-28 Thread Nathan Sidwell
I've committed this to the gomp4 branch. It cleans up the existing OACC_foo constants defined in omp-low.h, replacing them with the ones I just defined in gomp-constants.h nathan 2015-07-28 Nathan Sidwell * omp-low.h (enum oacc_loop_levels): Delete. (OACC_LOOP_MASK): Delete.

Re: [gomp4] Redesign oacc_parallel launch API

2015-07-29 Thread Nathan Sidwell
On 07/29/15 05:22, Thomas Schwinge wrote: Hi Nathan! On Tue, 28 Jul 2015 12:52:02 -0400, Nathan Sidwell wrote: I've committed this patch to the gomp4 branch to redo the launch API. I'll post a version for trunk once the versioning patch gets approved & committed. Thanks! (

Re: [gomp4] Redesign oacc_parallel launch API

2015-07-29 Thread Nathan Sidwell
On 07/29/15 08:24, Nathan Sidwell wrote: On 07/29/15 05:22, Thomas Schwinge wrote: Likewise for the other torture testing flags. Investigating ... (I've seen those failures be intermittent) Interestingly the fails go away with an unoptimized libgomp. I've observed somethi

[gomp4] PTX target format

2015-07-29 Thread Nathan Sidwell
X version number, as that just got incremented for the launch API change. nathan 2015-07-29 Nathan Sidwell gcc/ * config/nvptx/mkoffload.c (process): Reimplement emission of ptx objects to set of arrays. libgomp/ * plugin/plugin-nvptx.c (struct targ_ptx_

lto wrapper verboseness

2015-07-29 Thread Nathan Sidwell
Jakub, this patch augments the lto wrapper to print out the arguments to spawned commands when verbose. I found this useful in debugging recent development. ok for trunk? nathan 2015-07-29 Nathan Sidwell * lto-wrapper.c (verbose_exec): New. (compile_offload_image, run_gcc): Call it

[gomp4] openacc default handling

2015-07-29 Thread Nathan Sidwell
xical scopes to find a data clause for the object, before applying the default behaviour. This patch reorganizes things to make that the case. nathan 2015-07-29 Nathan Sidwell gcc/ * gimplify.c (oacc_default_clause): Outer scope searching moved to omp_notice_variable. (omp_notice_variable)

Re: lto wrapper verboseness

2015-07-30 Thread Nathan Sidwell
On 07/30/15 04:28, Richard Biener wrote: On Thu, Jul 30, 2015 at 10:15 AM, Jakub Jelinek wrote: On Thu, Jul 30, 2015 at 10:09:05AM +0200, Richard Biener wrote: On Thu, Jul 30, 2015 at 1:05 AM, Nathan Sidwell wrote: Jakub, this patch augments the lto wrapper to print out the arguments to

[gomp4] ptx builtins

2015-07-30 Thread Nathan Sidwell
uffle down, as that was missing. nathan 2015-07-30 Nathan Sidwell gcc/ * config/nvptx/nvptx.mc (UNSPEC_BROADCAST, UNSPEC_SHFL_DOWN): Replace with ... (UNSPEC_SHUFFLE): ... this. (nvptx_broadcast): Replace with ... (nvptx_shuffle): ...

Re: [gomp4] Redesign oacc_parallel launch API

2015-07-30 Thread Nathan Sidwell
On 07/29/15 17:45, Nathan Sidwell wrote: On 07/29/15 08:24, Nathan Sidwell wrote: On 07/29/15 05:22, Thomas Schwinge wrote: Likewise for the other torture testing flags. Investigating ... (I've seen those failures be intermittent) Interestingly the fails go away with an unopti

[gomp] more ptx builtins

2015-07-30 Thread Nathan Sidwell
s piece of implementation is completed. Whilst there I noticed the shuffle, pack and unpack insns lacked register constraints, so I added them. nathan 2015-07-30 Nathan Sidwell gcc/ * config/nvptx/nvptx.md (UNSPECV_UNLOCK): New. (nvptx_shuffle): Add constraints. (nvptx_unpack,

Re: Constification of _omp_fn.* argument for target regions

2015-07-31 Thread Nathan Sidwell
On 07/31/15 04:43, Jakub Jelinek wrote: Hi! I wonder if we shouldn't change: TREE_TYPE (ctx->receiver_decl) = build_qualified_type (build_reference_type (type), TYPE_QUAL_RESTRICT); in fixup_child_record_type to add: if (is_gimple_omp_offloaded (ctx->stmt)) type = build_qualif

Re: offload data version number

2015-07-31 Thread Nathan Sidwell
On 07/24/15 15:26, Nathan Sidwell wrote: Jakub, this version makes the following changes to the earlier version. *) Renames things to FOO_ver, rather than FOO_2 *) No attempt to deal with cross-version plugins and libgomp. *) Adds GOMP_OFFLOAD_version function to plugin. (I went with your

Re: offload data version number

2015-07-31 Thread Nathan Sidwell
On 07/31/15 08:16, Nathan Sidwell wrote: On 07/24/15 15:26, Nathan Sidwell wrote: Jakub, this version makes the following changes to the earlier version. *) Renames things to FOO_ver, rather than FOO_2 *) No attempt to deal with cross-version plugins and libgomp. *) Adds GOMP_OFFLOAD_version

Re: [C++/66443] virtual base of abstract class

2015-08-01 Thread Nathan Sidwell
On 07/17/15 15:59, Nathan Sidwell wrote: On 07/17/15 15:42, Jason Merrill wrote: On 07/08/2015 10:50 AM, Nathan Sidwell wrote: On 06/30/15 19:21, Nathan Sidwell wrote: On 06/30/15 00:19, Jason Merrill wrote: On 06/29/2015 06:57 PM, Nathan Sidwell wrote: * method.c

Re: offload data version number

2015-08-01 Thread Nathan Sidwell
(i.e. DLSYM (version); plus the v != GOMP_VERSION checking). Fixed. ok? I'll commit a version of this to gomp4 branch shortly. nathan 2015-08-01 Nathan Sidwell gcc/ * config/nvptx/mkoffload.c (process): Replace GOMP_offload_{,un}register with GOMP_offload_{,un}register_ver. lib

Re: offload data version number

2015-08-01 Thread Nathan Sidwell
On 08/01/15 20:06, Nathan Sidwell wrote: ok? I'll commit a version of this to gomp4 branch shortly. this is the gomp4 committed version. nathan 2015-08-01 Nathan Sidwell include/ * gomp-constants.h (GOMP_VERSION_INTEL_MIC): New. libgomp/ * plugin/plugin-nv

[gomp4] note why 3 is missing

2015-08-01 Thread Nathan Sidwell
I committed this to gomp4 branch to note why device type 3 is missing. Someone's bound to forget ... nathan 2015-08-01 Nathan Sidwell include/ * gomp-constants.h: Note why device 3 is missing. libgomp/ * openacc.h: Note why device 3 is missing. * openacc.f90: Lik

[gomp4] expand acc_on_device earlier

2015-08-02 Thread Nathan Sidwell
I've committed this to gomp4 branch. It expands the acc_on_device builtin earlier in the new oacc_xform pass. This will allow more optimization earlier on. The existing expansion point now only needs to deal with the host-side case. nathan 2015-08-02 Nathan Sidwell gcc/ * omp-

[gomp4] PTX launch dimensions

2015-08-03 Thread Nathan Sidwell
I've committed this to gomp4. The ptx backend can now examine the openacc attribute to determine launch dimensions and figure out whether vector or worker single neutering is needed. nathan 2015-08-03 Nathan Sidwell * config/nvptx/nvptx.c (nvptx_reorg): Check get_oacc_fn_attri

Re: [gomp4] expand acc_on_device earlier

2015-08-03 Thread Nathan Sidwell
On 08/03/15 07:37, Thomas Schwinge wrote: Hi! On Sun, 2 Aug 2015 21:23:30 -0400, Nathan Sidwell wrote: I've committed this to gomp4 branch. It expands the acc_on_device builtin earlier in the new oacc_xform pass. This will allow more optimization earlier on. Thanks! The exi

Re: [C++/66443] virtual base of abstract class

2015-08-03 Thread Nathan Sidwell
On 08/02/15 23:44, Jason Merrill wrote: It seems to me that DR 1658 ignores vbases of abstract classes for determining whether a destructor is deleted, but says nothing about exception specifications. DR 1351 specifically ignores vbases of abstract classes for determining the exception specifi

Re: offload data version number

2015-08-03 Thread Nathan Sidwell
On 08/03/15 07:15, Thomas Schwinge wrote: Hi! On Sat, 1 Aug 2015 20:20:49 -0400, Nathan Sidwell wrote: this is the gomp4 committed version. --- liboffloadmic/plugin/libgomp-plugin-intelmic.cpp(revision 226462) +++ liboffloadmic/plugin/libgomp-plugin-intelmic.cpp(working copy

[gomp4] OpenACC first private

2015-08-03 Thread Nathan Sidwell
from declare handling, as that wasn't creating the expected omp_region context object. The previous handling of firstprivate just happened to work. Jim has been working on resolving that problem. nathan 2015-08-03 Nathan Sidwell * gimplify.c (GOVD_GANGLOCAL): Delete. (oacc_default_cla

[gomp4] Fix ptx warning

2015-08-03 Thread Nathan Sidwell
I've committed this to gomp4. I was reusing a size_t variable in a loop where unsigned would do, and fprintf got upset. nathan 2015-08-03 Nathan Sidwell * config/nvptx/mkoffload.c (process): Avoid printf formatting warning. Index: config/nvptx/mkoffl

[gomp4] internal fns for id & nid

2015-08-03 Thread Nathan Sidwell
calls or be accessible by the user. A later patch will optimize the OACC_DIM_SIZE function in the oacc-xform pass. nathan 2015-08-03 Nathan Sidwell gcc/ * internal-fn.def (GOACC_DIM_SIZE, GOACC_DFIM_POS): New. * internal-fn.c (expand_GOACC_DIM_SIZE, expand_GOACC_DIM_POS): New. * config

[gomp4] Remove superfluous code

2015-08-03 Thread Nathan Sidwell
I've committed this to gomp4 branch. It tidies up the error message processing and removes some code that shows a remarkable confusion about how shared libraries work. nathan -- Nathan Sidwell - Director, Sourcery Services - Mentor Embedded 2015-08-03 Nathan Sidwell libgomp/ * p

Re: [gomp4] Remove superfluous code

2015-08-03 Thread Nathan Sidwell
On 08/03/15 19:52, Nathan Sidwell wrote: I've committed this to gomp4 branch. It tidies up the error message processing and removes some code that shows a remarkable confusion about how shared libraries work. I've also committed it to trunk as obvious. nathan

[gomp4] Worker reduction builtin

2015-08-04 Thread Nathan Sidwell
. I also realized the lockk and unlock expanders needed to emit memory barriers to that writes made by one thread in the protected region could be seen by other threads in the region. nathan 2015-08-04 Nathan Sidwell * config/nvptx/nvptx.md (UNSPECV_MEMBAR): New. (nvptx_membar): New

[gomp4] some ptx cleanups

2015-08-04 Thread Nathan Sidwell
I've applied this to gomp4 branch. There was an inconsistency with the 'S' assembly formatter, in that it didn't print the leading '.', but the others did. Also the pseudo's structure is no longer used. nathan 2015-08-04 Nathan Sidwell * config/nvp

[PTX] small cleanup

2015-08-04 Thread Nathan Sidwell
This removal of unused structure is now committed to trunk too. nathan 2015-08-04 Nathan Sidwell * config/nvptx/nvptx.h (struct nvptx_pseudo_info): Delete. (machine_function): Remove pseudos field. Index: gcc/config/nvptx/nvptx.h

Re: offload data version number

2015-08-04 Thread Nathan Sidwell
omically commit them. nathan -- Nathan Sidwell

[gomp4] optimize launch dimensions

2015-08-04 Thread Nathan Sidwell
ected diagnostic. I'll be fixing that shortly. nathan 2015-08-04 Nathan Sidwell gcc/ * doc/tm.texi.in (TARGET_GOACC_VALIDATE_DIMS): Add hook. * doc/tm.texi: Regenerated. * target.def (TARGET_GOACC): New hook prefix. (validate_dims): New. * targhooks.h (default_goacc_validate_dims

[gomp4] fix spinlock

2015-08-06 Thread Nathan Sidwell
I've committed this to fix the spinlock problem Cesar fell over. While there I added more checking on the worker dimension. nathan 2015-08-06 Nathan Sidwell * config/nvptx/nvptx.c (nvptx_expand_lock_unlock): Create label. (nvptx_validate_dims): Check worker dimension is not to

[gomp4] fork/join target hook

2015-08-06 Thread Nathan Sidwell
I realized other targets might need to do different things with the openacc fork and join buitins. I created a new target hook and default implementation. The default deletes the internal functions if there is no RTL expander for them. nathan 2015-08-06 Nathan Sidwell * doc/tm.texi.in

Re: [gomp4] fix spinlock

2015-08-06 Thread Nathan Sidwell
On 08/06/15 17:56, Cesar Philippidis wrote: On 08/06/2015 01:41 AM, Nathan Sidwell wrote: I've committed this to fix the spinlock problem Cesar fell over. While there I added more checking on the worker dimension. I hit a couple of more bugs with the spinlocks. First, the address

Re: [gomp4] Redesign oacc_parallel launch API

2015-08-06 Thread Nathan Sidwell
On 08/06/15 18:33, Cesar Philippidis wrote: Looking at set_oacc_fn_attrib, it appears that const values are also considered dynamic. See the attached test case more more info. Is that the expected behavior? If not, I could take a look at this after I finished my reduction patch. It's annoying

Re: offload data version number

2015-08-06 Thread Nathan Sidwell
02/15 02:06, Nathan Sidwell wrote: On 07/31/15 12:10, Jakub Jelinek wrote: This will hopefully be just GOMP_4.1 instead in the end, but it can change when gomp-4_1-branch is merged to trunk, we don't guarantee ABI stability at this point. Sure. I'd prefer version to go after d

Re: [C++] Coding rule enforcement

2015-09-16 Thread Nathan Sidwell
on (unless -Wsystem-headers). This version implements Richard's suggestion of warning flags. nathan 2015-09-16 Nathan Sidwell c-family/ * c.opt (Wmultiple-inheritance, Wvirtual-inheritance, Wtemplates, Wnamespaces): New C++ warnings. cp/ * decl.c (xref_basetypes): Check virtual

[gomp4] reduction cleanup

2015-09-16 Thread Nathan Sidwell
I noticed some unreachable code. Committed this. 2015-09-16 Nathan Sidwell * omp-low.c (lower_oacc_reductions): Remove dead initialization and unreachable code. Index: gcc/omp-low.c === --- gcc/omp-low.c (revision 227792

[gomp4] Break out dimension checking

2015-09-16 Thread Nathan Sidwell
I've applied this patch, which breaks out the offload function dimension checking to a separate function. I'll be making use of that shortly, and execute_oacc_transform was getting unnecessarily large. nathan 2015-09-16 Nathan Sidwell * omp-low.c (oacc_validate_dims): Ne

<    1   2   3   4   5   6   7   8   9   10   >