r224035 - in /branches/gomp-4_1-branch: gcc/Cha...

jakub@gcc.gnu.org jakub@gcc.gnu.org
Tue Jun 2 17:30:00 GMT 2015


Author: jakub
Date: Tue Jun  2 17:30:00 2015
New Revision: 224035

URL: https://gcc.gnu.org/viewcvs?rev=224035&root=gcc&view=rev
Log:
	* gimplify.c (omp_check_private): Handle
	omp_member_access_dummy_var vars.
	(gimplify_scan_omp_clauses): Set DECL_NAME on
	omp_member_access_dummy_var vars.
	* omp-low.c (omp_member_access_dummy_var, unshare_and_remap_1,
	unshare_and_remap): New functions.
	(use_pointer_for_field): omp_member_access_dummy_var vars
	don't need to be made addressable.
	(build_outer_var_ref): Handle omp_member_access_dummy_var vars.
	Handle OMP_CLAUSE_SHARED_FIRSTPRIVATE references.
	(lower_send_clauses): Likewise.
	(scan_sharing_clauses): Handle OMP_CLAUSE_SHARED_FIRSTPRIVATE
	references.
	(lower_send_shared_vars): Handle omp_member_access_dummy_var vars.
	(create_task_copyfn): Fix up handling of
	OMP_CLAUSE_SHARED_FIRSTPRIVATE decls.
	(lower_omp_regimplify_p): Use IS_TYPE_OR_DECL_P macro.
	(struct lower_omp_regimplify_operands_data): New type.
	(lower_omp_regimplify_operands_p, lower_omp_regimplify_operands): New
	functions.
	(lower_omp_1): Use lower_omp_regimplify_operands instead of
	gimple_regimplify_operands.
	* omp-low.h (omp_member_access_dummy_var): New prototype.
gcc/cp/
	* parser.c (cp_parser_lambda_body): Call
	save_omp_privatization_clauses and restore_omp_privatization_clauses
	around lambda body parsing.
	(cp_parser_oacc_all_clauses, cp_parser_omp_all_clauses,
	cp_parser_omp_for_loop, cp_omp_split_clauses, cp_parser_oacc_cache,
	cp_parser_cilk_for): Adjust finish_omp_clauses callers.
	(cp_parser_pragma): Call push_omp_privatization_clauses and
	pop_omp_privatization_clauses around OpenMP pragma parsing.
	* cp-gimplify.c (cxx_omp_disregard_value_expr): New function.
	* pt.c (apply_late_template_attributes): Adjust finish_omp_clauses
	and tsubst_omp_clauses callers.
	(tsubst_omp_clauses): Add ALLOW_FIELDS argument, adjust possible
	non-static data member arguments and pass ALLOW_FIELDS down to
	finish_omp_clauses.
	(tsubst_omp_for_iterator): Adjust finish_omp_clauses caller.
	(tsubst_expr): Adjust tsubst_omp_clauses caller, call
	push_omp_privatization_clauses and pop_omp_privatization_clauses
	around instantiation of the constructs.
	* cp-tree.h (DECL_OMP_PRIVATIZED_MEMBER): Define.
	(finish_omp_clauses): Add ALLOW_FIELDS argument to prototype.
	(push_omp_privatization_clauses, pop_omp_privatization_clauses,
	save_omp_privatization_clauses, restore_omp_privatization_clauses,
	cxx_omp_disregard_value_expr): New prototypes.
	* cp-objcp-common.h (LANG_HOOKS_OMP_DISREGARD_VALUE_EXPR): Redefine.
	* semantics.c (omp_private_member_map, omp_private_member_vec): New
	variables.
	(finish_non_static_data_member): Return dummy decl for privatized
	non-static data members.
	(finish_omp_clauses): Add ALLOW_FIELDS argument.  Handle
	non-static data member privatization in {,first,last,copy}private,
	reduction and linear clauses.  Diagnose linear with predetermined
	decls.
	(push_omp_privatization_clauses, pop_omp_privatization_clauses,
	save_omp_privatization_clauses, restore_omp_privatization_clauses):
	New functions.
	(finish_omp_for): Adjust finish_omp_clauses caller.
gcc/testsuite/
	* g++.dg/gomp/clause-1.C (T::test): Remove dg-error
	on privatization of non-static data members.
	* g++.dg/gomp/member-1.C: New test.
	* g++.dg/gomp/member-2.C: New test.
libgomp/
	* testsuite/libgomp.c++/taskloop-5.C: New test.
	* testsuite/libgomp.c++/member-1.C: New test.
	* testsuite/libgomp.c++/member-2.C: New test.

Added:
    branches/gomp-4_1-branch/gcc/testsuite/g++.dg/gomp/member-1.C
    branches/gomp-4_1-branch/gcc/testsuite/g++.dg/gomp/member-2.C
    branches/gomp-4_1-branch/libgomp/testsuite/libgomp.c++/member-1.C
    branches/gomp-4_1-branch/libgomp/testsuite/libgomp.c++/member-2.C
    branches/gomp-4_1-branch/libgomp/testsuite/libgomp.c++/taskloop-5.C
Modified:
    branches/gomp-4_1-branch/gcc/ChangeLog.gomp
    branches/gomp-4_1-branch/gcc/cp/ChangeLog.gomp
    branches/gomp-4_1-branch/gcc/cp/cp-gimplify.c
    branches/gomp-4_1-branch/gcc/cp/cp-objcp-common.h
    branches/gomp-4_1-branch/gcc/cp/cp-tree.h
    branches/gomp-4_1-branch/gcc/cp/parser.c
    branches/gomp-4_1-branch/gcc/cp/pt.c
    branches/gomp-4_1-branch/gcc/cp/semantics.c
    branches/gomp-4_1-branch/gcc/gimplify.c
    branches/gomp-4_1-branch/gcc/omp-low.c
    branches/gomp-4_1-branch/gcc/omp-low.h
    branches/gomp-4_1-branch/gcc/testsuite/ChangeLog.gomp
    branches/gomp-4_1-branch/gcc/testsuite/g++.dg/gomp/clause-1.C
    branches/gomp-4_1-branch/libgomp/ChangeLog.gomp



More information about the Gcc-cvs mailing list