]> git.ipfire.org Git - thirdparty/gcc.git/commit - libgomp/ChangeLog
re PR c++/26943 ([gomp] firstprivate + lastprivate uses inefficient barrier)
authorJakub Jelinek <jakub@redhat.com>
Tue, 2 May 2006 20:03:38 +0000 (22:03 +0200)
committerJakub Jelinek <jakub@gcc.gnu.org>
Tue, 2 May 2006 20:03:38 +0000 (22:03 +0200)
commit8ca5b2a2d4d6e210374f933c4c09895912d5e4ac
treeeb02e1dd8220b3599be8ae1486c225f960b5ccf3
parenta3428e070102b16998dacc499781306137b9f787
re PR c++/26943 ([gomp] firstprivate + lastprivate uses inefficient barrier)

PR c++/26943
* omp-low.c (maybe_lookup_decl_in_outer_ctx): New function.
(build_outer_var_ref): Use maybe_lookup_decl_in_outer_ctx
to find if var will be a global variable even in the nested context.
(omp_copy_decl): Only check for global variable at the end, it might
be overridden in outer contexts.
(scan_sharing_clauses): For global variables don't create a field.
(lower_rec_input_clauses): Do nothing for global shared variables.
Emit a barrier at the end of ILIST if there were any decls in both
firstprivate and lastprivate clauses.
(lower_send_clauses): Do nothing for global variables except for
COPYIN.

* testsuite/libgomp.c/pr26943-1.c: New test.
* testsuite/libgomp.c/pr26943-2.c: New test.
* testsuite/libgomp.c/pr26943-3.c: New test.
* testsuite/libgomp.c/pr26943-4.c: New test.
* testsuite/libgomp.c++/pr27337.C: Remove barrier.
* testsuite/libgomp.c++/pr26943.C: New test.

From-SVN: r113483
gcc/ChangeLog
gcc/omp-low.c
libgomp/ChangeLog
libgomp/testsuite/libgomp.c++/pr26943.C [new file with mode: 0644]
libgomp/testsuite/libgomp.c++/pr27337.C
libgomp/testsuite/libgomp.c/pr26943-1.c [new file with mode: 0644]
libgomp/testsuite/libgomp.c/pr26943-2.c [new file with mode: 0644]
libgomp/testsuite/libgomp.c/pr26943-3.c [new file with mode: 0644]
libgomp/testsuite/libgomp.c/pr26943-4.c [new file with mode: 0644]