gcc/libgomp
Jakub Jelinek 0494285ab0 libgomp.h (struct gomp_task_depend_entry): Add redundant_out field.
* libgomp.h (struct gomp_task_depend_entry): Add redundant_out field.
	(struct gomp_taskwait): New type.
	(struct gomp_task): Add taskwait and parent_depends_on, remove
	in_taskwait and taskwait_sem fields.
	(gomp_finish_task): Don't destroy taskwait_sem.
	* task.c (gomp_init_task): Don't init in_taskwait, instead init
	taskwait and parent_depends_on.
	(GOMP_task): For if (0) tasks with depend clause that depend on
	earlier tasks don't defer them, instead call
	gomp_task_maybe_wait_for_dependencies to wait for the dependencies.
	Initialize redundant_out field, for redundant out entries just
	move them at the end of linked list instead of removing them
	completely, and set redundant_out flag instead of redundant.
	(gomp_task_run_pre): Update last_parent_depends_on if scheduling
	that task.
	(gomp_task_run_post_handle_dependers): If parent is in
	gomp_task_maybe_wait_for_dependencies and newly runnable task
	is not parent_depends_on, queue it in parent->children linked
	list after all runnable tasks with parent_depends_on set.
	Adjust for addition of taskwait indirection.
	(gomp_task_run_post_remove_parent): If parent is in
	gomp_task_maybe_wait_for_dependencies and task to be removed
	is parent_depends_on, decrement n_depend and if needed awake
	parent.  Adjust for addition of taskwait indirection.
	(GOMP_taskwait): Adjust for addition of taskwait indirection.
	(gomp_task_maybe_wait_for_dependencies): New function.
	* testsuite/libgomp.c/depend-5.c: New test.

From-SVN: r213408
2014-08-01 10:05:13 +02:00
..
config
testsuite libgomp.h (struct gomp_task_depend_entry): Add redundant_out field. 2014-08-01 10:05:13 +02:00
acinclude.m4
aclocal.m4
alloc.c
barrier.c
ChangeLog libgomp.h (struct gomp_task_depend_entry): Add redundant_out field. 2014-08-01 10:05:13 +02:00
ChangeLog.graphite
config.h.in
configure
configure.ac
configure.tgt
critical.c
env.c
error.c
fortran.c
hashtab.h
iter_ull.c
iter.c
libgomp_f.h.in
libgomp_g.h
libgomp.h libgomp.h (struct gomp_task_depend_entry): Add redundant_out field. 2014-08-01 10:05:13 +02:00
libgomp.map
libgomp.spec.in
libgomp.texi
loop_ull.c
loop.c
Makefile.am
Makefile.in
omp_lib.f90.in gimplify.c (omp_notice_variable): If n is non-NULL and no flags change in ORT_TARGET region, don't jump to do_outer. 2014-06-18 09:16:12 +02:00
omp_lib.h.in gimplify.c (omp_notice_variable): If n is non-NULL and no flags change in ORT_TARGET region, don't jump to do_outer. 2014-06-18 09:16:12 +02:00
omp.h.in
ordered.c
parallel.c
sections.c
single.c
target.c
task.c libgomp.h (struct gomp_task_depend_entry): Add redundant_out field. 2014-08-01 10:05:13 +02:00
team.c
work.c