This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH, OpenACC, 2/3] Non-contiguous array support for OpenACC data clauses (re-submission), compiler patches


These are the patches for gimplify, omp-low, and include/gomp-constants.h

On issue that Jakub raised in the last review email on omp-low changes [1],
was the use of DECL_IGNORED_P. Because the descriptor variables are created was
create_tmp_var_raw(), they already have DECL_IGNORED_P set, so this shouldn't
be of issue here. The use of '$' in identifier names have also been removed.

[1] https://gcc.gnu.org/ml/gcc-patches/2018-12/msg01297.html

Thanks,
Chung-Lin

	gcc/
	* gimplify.c (gimplify_scan_omp_clauses): For non-contiguous array map kinds,
	make sure bias in each dimension are put into firstprivate variables.

	* omp-low.c (struct omp_context):
	Add 'hash_map<tree_operand_hash, tree> *non_contiguous_arrays' field, also
	added include of "tree-hash-traits.h".
	(append_field_to_record_type): New function.
	(create_noncontig_array_descr_type): Likewise.
	(create_noncontig_array_descr_init_code): Likewise.
	(new_omp_context): Add initialize of non_contiguous_arrays field.
	(delete_omp_context): Add delete of non_contiguous_arrays field.
	(scan_sharing_clauses): For non-contiguous array map kinds, check for
	supported dimension structure, and install non-contiguous array variable into
	current omp_context.
	(lower_omp_target): Add handling for non-contiguous array map kinds.
	(noncontig_array_lookup): New function.
	(noncontig_array_reference_start): Likewise.
	(scan_for_op): Likewise.
	(scan_for_reference): Likewise.
	(ncarray_create_bias): Likewise.
	(ncarray_dimension_peel): Likewise.
	(lower_omp_1): Add case to look for start of non-contiguous array reference,
	and handle bias adjustments for the code sequence.

	* tree-pretty-print.c (dump_omp_clauses): Add cases for printing
	GOMP_MAP_NONCONTIG_ARRAY map kinds.

	include/
	* gomp-constants.h (GOMP_MAP_FLAG_SPECIAL_3): Define.
	(enum gomp_map_kind): Add GOMP_MAP_NONCONTIG_ARRAY,
	GOMP_MAP_NONCONTIG_ARRAY_TO, GOMP_MAP_NONCONTIG_ARRAY_FROM,
	GOMP_MAP_NONCONTIG_ARRAY_TOFROM, GOMP_MAP_NONCONTIG_ARRAY_FORCE_TO,
	GOMP_MAP_NONCONTIG_ARRAY_FORCE_FROM, GOMP_MAP_NONCONTIG_ARRAY_FORCE_TOFROM,
	GOMP_MAP_NONCONTIG_ARRAY_ALLOC, GOMP_MAP_NONCONTIG_ARRAY_FORCE_ALLOC,
	GOMP_MAP_NONCONTIG_ARRAY_FORCE_PRESENT.
	(GOMP_MAP_NONCONTIG_ARRAY_P): Define.

Attachment: 02.openacc-noncontig_arrays.gcc.patch
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]