public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* [gomp4] declare directive [0/5]
@ 2015-06-08 14:59 James Norris
  2015-06-08 15:01 ` [gomp4] declare directive [1/5] James Norris
                   ` (4 more replies)
  0 siblings, 5 replies; 10+ messages in thread
From: James Norris @ 2015-06-08 14:59 UTC (permalink / raw)
  To: gcc-patches; +Cc: Thomas Schwinge

[-- Attachment #1: Type: text/plain, Size: 136 bytes --]

Hi!

This patch series completes the implementation of the OpenACC
declare directive.

Patches applied to gomp-4_0-branch

Thanks!
Jim


[-- Attachment #2: ChangeLogs --]
[-- Type: text/plain, Size: 4557 bytes --]

	===== gcc/ChangeLog.gomp

	* builtin-types.def (BT_FN_VOID_PTR_INT_UINT): New type.
	* gimple-pretty-print.c (dump_gimple_omp_target): Handle declare
	directive.
	* gimple.h (gf_mask): Add enum.
	(is_gimple_omp_oacc): Add declare directive.
	* gimplify.c (omp_notice_variable): Handle device_resident.
	(gimplify_omp_target_update): Handle declare directive.
	(gimplify_expr): Handle declare directive.
	* omp-builtins.def (BUILT_IN_GOACC_STATIC, BUILT_IN_GOACC_DECLARE):
	New types.
	* omp-low.c (expand_omp_target): Handle declare directive.
	(build_omp_regions_1): Likewise.
	(lower_omp_target): Likewise.
	(make_gimple_omp_edges): Likewise.
	* varpool.c (gomp-constants.h): Add inclusion.
	(make_offloadable_1, make_offloadable): New functions.
	(get_create): Add calls to make_offloadable.

	====== gcc/c/ChangeLog.gomp

	* c-parser.c (tree-iterator.h): Add inclusion.
	(check_oacc_vars1, check_oacc_vars, find_oacc_return,
	finish_oacc_declare): New functions.
	(oacc_return): New structure.
	(oacc_returns): New variable.
	(c_parser_declaration_or_fndef): Add call to finish_oacc_declare.
	(oacc_dcl_idx): New variable.
	(c_parser_oacc_declare): Rewrite.

	===== gcc/cp/ChangeLog.gomp

	* decl.c (gomp-constants.h): Add inclusion.
	(check_oacc_vars1, check_oacc_vsars, find_oacc_return,
	finish_oacc_declare): New functions.
	(finish_function): Add call to finish_oacc_declare.
	* parser.c (tree-iterator.h): Add inclusion.
	(oacc_dcl_idx): New variable.
	(OACC_DECLARE_CLAUSE_MASK): New macro.
	(cp_parser_oacc_declare): New function.
	(cp_parser_pragma): Handle parsing of declare directive.
	* pt.c (tsubr_expr): Add handling of declare directive.

	===== gcc/fortran/ChangeLog.gomp

	* f95-lang.c (gfc_attribute_table): New entry.
	* gfortran.h (symbol_attribute): New attributes. 
	(gfc_omp_map_op): New enums.
	(OMP_LIST_LINK): New enum.
	(gfc_oacc_declare): Add member: module_var.
	(finish_oacc_declare): Add calling parm.
	* module.c (ab_attribute): Add enums.
	(attr_bits): Add initialization of new attribute bits.
	(mio_symbol_attribute): Add handling of new attribute bits.
	* openmp.c (OMP_CLAUSE_LINK): New defintion.
	(gfc_match_omp_clauses): Add handling of link clause.
	(OACC_DECLARE_CLAUSES): Update declare directive clauses.
	(gfc_match_oacc_declare): Add handling of device_resident
	and link clauses.
	(gfc_resolve_oacc_declare): Add handling of link clause.
	* symbol.c (check_conflict): Add checks for declare clauses in modules.
	(gfc_add_oacc_declare_create, gfc_add_declare_copyin,
	gfc_add_oacc_declare_deviceptr, gfc_add_oacc_declare_device_resident):
	New functions.
	(gfc_add_target): Add checks for declare attrs.
	* trans-decl.c (add_attributes_to_decl): Add creation of attribute.
	(oacc_return): New structure.
	(oacc_returns, module_oacc_clauses): New variables.
	(find_oacc_return, add_clause, find_module_oacc_declare_clauses):
	New functions.
	(finish_oacc_declare): Rename from insert_oacc_declare and rewrite.
	(gfc_generate_function_code): Change calling of finish_oacc_declare.
	* trans-openmp.c (gfc_trans_omp_clauses): Add handling of link and
	device_resident clauses.
	(gfc_trans_oacc_declare): Rewrite.
	* trans-stmt.c (gfc_trans_block_construct): Change calling of
	finish_oacc_declare.
	* types.def (BT_FN_VOID_PTR_INT_UINT): New type.

	===== gcc/testsuite/ChangeLog.gomp

	* c-c++-common/goacc/declare-1.c: Update tests.
	* c-c++-common/goacc/declare-2.c: Likewise.
	* gfortran.dg/goacc/declare-1.f95: Update tests.

	===== libgomp/ChangeLog.gomp

	* libgomp.map: Add GOACC_declare and GOACC_register_static.
	* oacc-init.c (acc_shutdown_1): Add call to acc_deallocate_static.
	(acc_init): Add call to acc_allocate_static.
	* oacc-int.h (goacc_allocate_static, goacc_deallocate_static):
	New declarations.
	* oacc-parallel.c (oacc_static): New structure.
	(oacc_statics): New variable.
	(goacc_allocate_static, goacc_deallocate_static, GOACC_register_static,
	GOACC_declare): New functions.
	* testsuite/libgomp.oacc-c++/declare-1.C: New file.
	* testsuite/libgomp.oacc-c-c++-common/declare-1.c: New file.
	* testsuite/libgomp.oacc-c-c++-common/declare-2.c: Likewise.
	* testsuite/libgomp.oacc-c-c++-common/declare-3.c: Likewise.
	* testsuite/libgomp.oacc-c-c++-common/declare-4.c: Likewise.
	* testsuite/libgomp.oacc-fortran/declare-1.f90: Update test.
	* testsuite/libgomp.oacc-fortran/declare-2.f90: New file. 
	* testsuite/libgomp.oacc-fortran/declare-3.f90: Likewise. 
	* testsuite/libgomp.oacc-fortran/declare-4.f90: Likewise. 
	* testsuite/libgomp.oacc-fortran/declare-5.f90: Likewise. 


^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2015-10-30 13:27 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-06-08 14:59 [gomp4] declare directive [0/5] James Norris
2015-06-08 15:01 ` [gomp4] declare directive [1/5] James Norris
2015-06-08 15:04 ` [gomp4] declare directive [2/5] James Norris
2015-06-08 15:05 ` [gomp4] declare directive [3/5] James Norris
2015-06-17 10:04   ` Thomas Schwinge
2015-06-18 16:21     ` James Norris
2015-10-30 13:30   ` Thomas Schwinge
2015-06-08 15:06 ` [gomp4] declare directive [5/5] James Norris
2015-07-13 11:56   ` Thomas Schwinge
2015-06-08 15:06 ` [gomp4] declare directive [4/5] James Norris

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).