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] [1/2] Support reduction in loop SLP


Hi,

This is the first part of reduction support in loop-aware SLP. The
purpose of the patch is to handle "unrolled" reductions such as:

#a1 = phi <a0, a5>
...
a2 = a1 + x
...
a3 = a2 + y
...
a5 = a4 + z

Such sequence of statements is gathered into a reduction chain and
serves as a root for an SLP instance (similar to a group of strided
stores in the existing loop SLP implementation).

The patch also fixes PR tree-optimization/41881.

Since reduction chains use the same data structure as strided data
accesses, this part of the patch renames these data structures,
removing data-ref and interleaving references.

Bootstrapped and tested on powerpc64-suse-linux.
I am going to apply it later today.

Ira


ChangeLog:

	* tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Use new
	names for group elements access.
	* tree-vectorizer.h (struct _stmt_vec_info): Use interleaving info for
	reduction chains as well.  Remove data reference and interleaving related
	words from the fields names.
	* tree-vect-loop.c (vect_transform_loop): Use new names for group
	elements access.
	* tree-vect-data-refs.c (vect_get_place_in_interleaving_chain,
	vect_insert_into_interleaving_chain, vect_update_interleaving_chain,
	vect_update_interleaving_chain, vect_same_range_drs,
	vect_analyze_data_ref_dependence, vect_update_misalignment_for_peel,
	vect_verify_datarefs_alignment, vector_alignment_reachable_p,
	vect_peeling_hash_get_lowest_cost, vect_enhance_data_refs_alignment,
	vect_analyze_group_access, vect_analyze_data_ref_access,
	vect_create_data_ref_ptr, vect_transform_strided_load,
	vect_record_strided_load_vectors): Likewise.
	* tree-vect-stmts.c (vect_model_simple_cost, vect_model_store_cost,
	vect_model_load_cost, vectorizable_store, vectorizable_load,
	vect_remove_stores, new_stmt_vec_info): Likewise.
	* tree-vect-slp.c (vect_build_slp_tree,
	vect_supported_slp_permutation_p, vect_analyze_slp_instance): Likewise.

Attachment: reduc-rename.txt
Description: Text document


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