This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] libgomp: Introduce gomp_thread::spare_team


On Mon, Jul 13, 2015 at 09:26:10AM +0200, Sebastian Huber wrote:
> 
> 
> On 13/07/15 09:17, Jakub Jelinek wrote:
> >On Mon, Jul 13, 2015 at 08:32:33AM +0200, Sebastian Huber wrote:
> >>Ping.
> >Space in gomp_thread is precious, that is a TLS variable, and you want
> >to only handle the non-nested case only anyway, so why don't you
> >just try to use
> >if (thr->thread_pool)
> >   {
> >     struct gomp_thread *last_team = thr->thread_pool->last_team;
> >     if (last_team && last_team->nthreads == nthreads)
> >       {
> >	team = last_team;
> >	thr->thread_pool->last_team = NULL;
> >       }
> >   }
> >?
> 
> I started with this variant, but it needs one more if to check the thread
> pool. Since space seems to be more important, I will adjust the patch.

I guess you can use if (__builtin_expect (thr->thread_pool != NULL, 1))
the first GOMP_parallel etc. in a thread is slower anyway.
It also needs a check that thr->ts.team == NULL.

	Jakub


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]