undefined reference to `acc_copyin_array_h_' (was: [PATCH] [gomp] Recycle non-nested team if possible)

2015-07-15 Thread Thomas Schwinge
Hallo! On Tue, 14 Jul 2015 13:47:41 +0200, Sebastian Huber wrote: > [...] > > I run the test suite on x86_64-unknown-linux-gnu with the previously > mentioned asserts and got no unexpected failures. > > With --disable-linux-futex (without asserts) I got several failures, but > none of them i

Re: [PATCH] [gomp] Recycle non-nested team if possible

2015-07-15 Thread Sebastian Huber
Thanks, I checked this in: https://gcc.gnu.org/viewcvs/gcc?view=revision&revision=225811 -- Sebastian Huber, embedded brains GmbH Address : Dornierstr. 4, D-82178 Puchheim, Germany Phone : +49 89 189 47 41-16 Fax : +49 89 189 47 41-09 E-Mail : sebastian.hu...@embedded-brains.de PGP :

Re: [PATCH] [gomp] Recycle non-nested team if possible

2015-07-14 Thread Jakub Jelinek
Hi! On Tue, Jul 14, 2015 at 01:47:41PM +0200, Sebastian Huber wrote: > With --disable-linux-futex (without asserts) I got several failures, but > none of them is related to my patch, e.g. they are of the following type > > /tmp/ccw4RofR.o: In function `main': > data-already-3.f:(.text+0x56): unde

Re: [PATCH] [gomp] Recycle non-nested team if possible

2015-07-14 Thread Sebastian Huber
On 14/07/15 12:44, Jakub Jelinek wrote: On Tue, Jul 14, 2015 at 11:28:18AM +0200, Sebastian Huber wrote: >If I destroy the barrier of the last team, and then initialize it later in >gomp_new_team() > >+static inline struct gomp_team * >+get_last_team (unsigned nthreads) >+{ >+ struct gomp_thr

Re: [PATCH] [gomp] Recycle non-nested team if possible

2015-07-14 Thread Jakub Jelinek
On Tue, Jul 14, 2015 at 11:28:18AM +0200, Sebastian Huber wrote: > If I destroy the barrier of the last team, and then initialize it later in > gomp_new_team() > > +static inline struct gomp_team * > +get_last_team (unsigned nthreads) > +{ > + struct gomp_thread *thr = gomp_thread (); > + if (th

Re: [PATCH] [gomp] Recycle non-nested team if possible

2015-07-14 Thread Sebastian Huber
On 14/07/15 09:19, Jakub Jelinek wrote: On Tue, Jul 14, 2015 at 09:09:01AM +0200, Sebastian Huber wrote: I pasted the wrong version, since I wanted to check that I get a failure in case generation % BAR_INCR != 0. There is also config/posix/bar* implementation, which would need to be checked

Re: [PATCH] [gomp] Recycle non-nested team if possible

2015-07-14 Thread Jakub Jelinek
On Tue, Jul 14, 2015 at 09:09:01AM +0200, Sebastian Huber wrote: > I pasted the wrong version, since I wanted to check that I get a failure in > case generation % BAR_INCR != 0. There is also config/posix/bar* implementation, which would need to be checked too. I'd suggest first committing a patc

Re: [PATCH] [gomp] Recycle non-nested team if possible

2015-07-14 Thread Sebastian Huber
On 14/07/15 09:04, Sebastian Huber wrote: #include static inline struct gomp_team * get_last_team (unsigned nthreads) { struct gomp_thread *thr = gomp_thread (); if (thr->ts.team == NULL) { struct gomp_thread_pool *pool = thr->thread_pool; if (pool != NULL) { str

Re: [PATCH] [gomp] Recycle non-nested team if possible

2015-07-14 Thread Sebastian Huber
On 13/07/15 16:33, Sebastian Huber wrote: On 13/07/15 16:17, Jakub Jelinek wrote: On Mon, Jul 13, 2015 at 01:15:44PM +0200, Sebastian Huber wrote: diff --git a/libgomp/team.c b/libgomp/team.c index b98b233..0bcbaf8 100644 --- a/libgomp/team.c +++ b/libgomp/team.c @@ -134,6 +134,25 @@ gomp_thr

Re: [PATCH] [gomp] Recycle non-nested team if possible

2015-07-13 Thread Sebastian Huber
On 13/07/15 16:17, Jakub Jelinek wrote: On Mon, Jul 13, 2015 at 01:15:44PM +0200, Sebastian Huber wrote: diff --git a/libgomp/team.c b/libgomp/team.c index b98b233..0bcbaf8 100644 --- a/libgomp/team.c +++ b/libgomp/team.c @@ -134,6 +134,25 @@ gomp_thread_start (void *xdata) return NULL;

Re: [PATCH] [gomp] Recycle non-nested team if possible

2015-07-13 Thread Jakub Jelinek
On Mon, Jul 13, 2015 at 01:15:44PM +0200, Sebastian Huber wrote: > diff --git a/libgomp/team.c b/libgomp/team.c > index b98b233..0bcbaf8 100644 > --- a/libgomp/team.c > +++ b/libgomp/team.c > @@ -134,6 +134,25 @@ gomp_thread_start (void *xdata) >return NULL; > } > > +static struct gomp_team

[PATCH] [gomp] Recycle non-nested team if possible

2015-07-13 Thread Sebastian Huber
Try to recycle the last non-nested team to avoid the use of malloc() and free() in the normal case where the number of threads is the same. Avoid superfluous destruction and initialization of team synchronization objects. Using the microbenchmark posted here https://gcc.gnu.org/ml/gcc-patches/200