aboutsummaryrefslogtreecommitdiff
path: root/gcc/omp-expand.c
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2019-07-03 06:51:45 +0200
committerJakub Jelinek <jakub@gcc.gnu.org>2019-07-03 06:51:45 +0200
commit1a39b3d3e22ba34b750e277fae9634d0af015cae (patch)
tree8053a414e8bfb250cf183875bac03ed33de612fc /gcc/omp-expand.c
parent61a02d1e97aa9b2cb3c4e3e5c823d3a8a4c5834c (diff)
downloadgcc-1a39b3d3e22ba34b750e277fae9634d0af015cae.zip
gcc-1a39b3d3e22ba34b750e277fae9634d0af015cae.tar.gz
gcc-1a39b3d3e22ba34b750e277fae9634d0af015cae.tar.bz2
omp-expand.c (expand_omp_for_static_nochunk, [...]): For nowait worksharing loop with conditional lastprivate clause(s)...
* omp-expand.c (expand_omp_for_static_nochunk, expand_omp_for_static_chunk): For nowait worksharing loop with conditional lastprivate clause(s), emit GOMP_loop_end_nowait call at the end. * c-c++-common/gomp/lastprivate-conditional-5.c: New test. From-SVN: r272956
Diffstat (limited to 'gcc/omp-expand.c')
-rw-r--r--gcc/omp-expand.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/gcc/omp-expand.c b/gcc/omp-expand.c
index 69344f4..6902425 100644
--- a/gcc/omp-expand.c
+++ b/gcc/omp-expand.c
@@ -4039,6 +4039,12 @@ expand_omp_for_static_nochunk (struct omp_region *region,
else
gsi_insert_after (&gsi, omp_build_barrier (t), GSI_SAME_STMT);
}
+ else if (fd->have_pointer_condtemp)
+ {
+ tree fn = builtin_decl_explicit (BUILT_IN_GOMP_LOOP_END_NOWAIT);
+ gcall *g = gimple_build_call (fn, 0);
+ gsi_insert_after (&gsi, g, GSI_SAME_STMT);
+ }
gsi_remove (&gsi, true);
/* Connect all the blocks. */
@@ -4696,6 +4702,12 @@ expand_omp_for_static_chunk (struct omp_region *region,
else
gsi_insert_after (&gsi, omp_build_barrier (t), GSI_SAME_STMT);
}
+ else if (fd->have_pointer_condtemp)
+ {
+ tree fn = builtin_decl_explicit (BUILT_IN_GOMP_LOOP_END_NOWAIT);
+ gcall *g = gimple_build_call (fn, 0);
+ gsi_insert_after (&gsi, g, GSI_SAME_STMT);
+ }
gsi_remove (&gsi, true);
/* Connect the new blocks. */