gcc/gcc ChangeLog.autovect tree-vectorizer.c t ...

dorit@gcc.gnu.org dorit@gcc.gnu.org
Sun Feb 13 03:24:00 GMT 2005


CVSROOT:	/cvs/gcc
Module name:	gcc
Branch: 	autovect-branch
Changes by:	dorit@gcc.gnu.org	2005-02-12 12:49:24

Modified files:
	gcc            : ChangeLog.autovect tree-vectorizer.c 
	                 tree-vectorizer.h 
	gcc/testsuite  : ChangeLog.autovect 
	gcc/testsuite/gcc.dg/vect: vect-62.c vect-85.c 

Log message:
	* tree-vectorizer.h (vect_def_type): New enum definition.
	(_stmt_vec_info): New fields "live"  and "def_type" added.
	(STMT_VINFO_LIVE_P, STMT_VINFO_DEF_TYPE): New macros to access above
	new fields.
	(set_stmt_info): Argument type changed to tree_ann_t.
	(vinfo_for_stmt): Type of variable "ann" changed to tree_ann_t.
	* tree-vectorizer.c (vect_analyze_scalar_cycles): Function made void
	instead of bool. Set STMT_VINFO_DEF_TYPE for phi nodes.
	(vect_is_simple_use): Takes additional arguments. Consider
	STMT_VINFO_DEF_TYPE.
	(vect_mark_relevant): Takes additional arguments. Set STMT_VINFO_LIVE_P.
	(vect_stmt_relevant_p): Takes additional arguments.
	(new_stmt_vec_info): Initialize the new fields STMT_VINFO_LIVE_P and
	STMT_VINFO_DEF_TYPE.
	(new_loop_vec_info): Set a stmt_vec_info for phi node.
	(destroy_loop_vec_info): Free the stmt_vec_info for phi nodes.
	(vect_get_vec_def_for_operand): Use new outputs of vect_is_simple_use.
	(vectorizable_assignment): Use new API for vect_is_simple_use.
	Support the case when the def of the assignment is used out of the loop
	and the use of the assignment is invariant.
	(vectorizable_operation): Use new API for vect_is_simple_use. Check
	if the def of the operation is used out side the loop.
	(vectorizable_load): Likewise.
	(vectorizable_select) Likewise.
	(vectorizable_store): Use new API for vect_is_simple_use.
	(vect_is_simple_cond): Use new API for vect_is_simple_use.
	(vect_analyze_operations): Check if operations are used after the loop.
	Also check phi nodes.
	(vect_enhance_data_refs_alignment): Call vect_can_advance_ivs_p.
	(vect_mark_stmts_to_be_vectorized): Check vect_stmt_relevant_p also for
	phis when initializing the worklist. Use new API for vect_mark_relevant
	ans vect_stmt_relevant_p. Use new API for vect_is_simple_use. Mark
	"liveness" (i.e. presence of uses after loop) seperately from
	"relevance" (i.e. need to be vectorized).
	(vect_analyze_loop): Call to vect_analyze_scalar_cycles moved earlier.
	(vect_pattern_recog_1): Cast to tree_ann_t in call to set_stmt_info.
	(vect_transform_loop): Likewise.
	(vect_update_ivs_after_vectorizer): Add debug printouts.
	(vect_can_advance_ivs_p): Likewise.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.autovect.diff?cvsroot=gcc&only_with_tag=autovect-branch&r1=1.1.2.32&r2=1.1.2.33
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/tree-vectorizer.c.diff?cvsroot=gcc&only_with_tag=autovect-branch&r1=2.25.2.14&r2=2.25.2.15
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/tree-vectorizer.h.diff?cvsroot=gcc&only_with_tag=autovect-branch&r1=2.7.2.6&r2=2.7.2.7
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/ChangeLog.autovect.diff?cvsroot=gcc&only_with_tag=autovect-branch&r1=1.1.2.8&r2=1.1.2.9
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.dg/vect/vect-62.c.diff?cvsroot=gcc&only_with_tag=autovect-branch&r1=1.2.26.2&r2=1.2.26.3
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.dg/vect/vect-85.c.diff?cvsroot=gcc&only_with_tag=autovect-branch&r1=1.1.8.2&r2=1.1.8.3



More information about the Gcc-cvs mailing list