Re: [gomp4] Library side of depend clause support

2013-09-30 Thread Jakub Jelinek
On Mon, Sep 30, 2013 at 05:04:23PM +0400, Ilya Tocar wrote: > On 27 Sep 12:08, Jakub Jelinek wrote: > > Looks like you forgot some files. I've checked > http://gcc.gnu.org/viewcvs/gcc?view=revision&revision=202968 > And e. g. hashtab.h is missing. So currently branch is failing to build, > with ta

Re: [gomp4] Library side of depend clause support

2013-09-30 Thread Ilya Tocar
On 27 Sep 12:08, Jakub Jelinek wrote: Looks like you forgot some files. I've checked http://gcc.gnu.org/viewcvs/gcc?view=revision&revision=202968 And e. g. hashtab.h is missing. So currently branch is failing to build, with task.c:46:21: fatal error: hashtab.h: No such file or directory > Here is

Re: [gomp4] Library side of depend clause support

2013-09-27 Thread Jakub Jelinek
On Fri, Sep 27, 2013 at 01:48:36AM +0200, Jakub Jelinek wrote: > Perhaps. What if I do just minor cleanup (use flexible array members for > the reallocated vectors, and perhaps keep only the last out/inout task > in the hash table chains rather than all of them), retest, commit and then > we can d

Re: [gomp4] Library side of depend clause support

2013-09-26 Thread Jakub Jelinek
On Thu, Sep 26, 2013 at 03:54:09PM -0700, Richard Henderson wrote: > On 09/26/2013 11:36 AM, Jakub Jelinek wrote: > > +struct gomp_task; > > struct gomp_taskgroup; > > +struct htab; > > + > > +struct gomp_task_depend_entry > > +{ > > + void *addr; > > + struct gomp_task_depend_entry *next; > > +

Re: [gomp4] Library side of depend clause support

2013-09-26 Thread Richard Henderson
On 09/26/2013 11:36 AM, Jakub Jelinek wrote: > +struct gomp_task; > struct gomp_taskgroup; > +struct htab; > + > +struct gomp_task_depend_entry > +{ > + void *addr; > + struct gomp_task_depend_entry *next; > + struct gomp_task_depend_entry *prev; > + struct gomp_task *task; > + bool is_in; >

[gomp4] Library side of depend clause support

2013-09-26 Thread Jakub Jelinek
Hi! This patch adds depend clause support. In GOMP_task, before queueing the task, if task has any depend clauses we look up the addresses in a hash table (in the parent task, because only sibling tasks are ordered through depend clause), and if there are any dependencies on the earlier started ta