re PR libgomp/80394 (Empty OpenMP task is wrongly removed when optimizing)
PR libgomp/80394 * omp-low.c (scan_omp_task): Don't optimize away empty tasks if they have any depend clauses. * testsuite/libgomp.c/pr80394.c: New test. From-SVN: r246849
This commit is contained in:
parent
c6cf6ef7c0
commit
fbc698e0f4
@ -1,3 +1,9 @@
|
||||
2017-04-11 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR libgomp/80394
|
||||
* omp-low.c (scan_omp_task): Don't optimize away empty tasks
|
||||
if they have any depend clauses.
|
||||
|
||||
2017-04-11 Martin Liska <mliska@suse.cz>
|
||||
|
||||
PR ipa/80212
|
||||
|
@ -1857,9 +1857,11 @@ scan_omp_task (gimple_stmt_iterator *gsi, omp_context *outer_ctx)
|
||||
tree name, t;
|
||||
gomp_task *stmt = as_a <gomp_task *> (gsi_stmt (*gsi));
|
||||
|
||||
/* Ignore task directives with empty bodies. */
|
||||
/* Ignore task directives with empty bodies, unless they have depend
|
||||
clause. */
|
||||
if (optimize > 0
|
||||
&& empty_body_p (gimple_omp_body (stmt)))
|
||||
&& empty_body_p (gimple_omp_body (stmt))
|
||||
&& !omp_find_clause (gimple_omp_task_clauses (stmt), OMP_CLAUSE_DEPEND))
|
||||
{
|
||||
gsi_replace (gsi, gimple_build_nop (), false);
|
||||
return;
|
||||
|
@ -1,3 +1,8 @@
|
||||
2017-04-11 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR libgomp/80394
|
||||
* testsuite/libgomp.c/pr80394.c: New test.
|
||||
|
||||
2017-04-04 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR libgomp/79876
|
||||
|
22
libgomp/testsuite/libgomp.c/pr80394.c
Normal file
22
libgomp/testsuite/libgomp.c/pr80394.c
Normal file
@ -0,0 +1,22 @@
|
||||
/* PR libgomp/80394 */
|
||||
|
||||
int
|
||||
main ()
|
||||
{
|
||||
int x = 0;
|
||||
#pragma omp parallel shared(x)
|
||||
#pragma omp single
|
||||
{
|
||||
#pragma omp task depend(inout: x)
|
||||
{
|
||||
for (int i = 0; i < 100000; i++)
|
||||
asm volatile ("" : : : "memory");
|
||||
x += 5;
|
||||
}
|
||||
#pragma omp task if (0) depend(inout: x)
|
||||
;
|
||||
if (x != 5)
|
||||
__builtin_abort ();
|
||||
}
|
||||
return 0;
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user