This is the mail archive of the gcc-bugs@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]

[Bug tree-optimization/18179] vectorizer: wrong alignment/step/initial-address computed for struct accesses


------- Additional Comments From cvs-commit at gcc dot gnu dot org  2004-12-15 13:02 -------
Subject: Bug 18179

CVSROOT:	/cvs/gcc
Module name:	gcc
Branch: 	autovect-branch
Changes by:	dorit@gcc.gnu.org	2004-12-15 13:02:47

Modified files:
	gcc            : ChangeLog.autovect tree-vectorizer.c 
	                 tree-vectorizer.h 
	gcc/testsuite  : ChangeLog.autovect 
Added files:
	gcc/testsuite/gcc.dg/vect: vect-90.c vect-91.c 

Log message:
	2004-12-14  Ira Rosen  <irar@il.ibm.com>
	
	PR tree-optimization/18179
	* tree-vectorizer.h (struct _stmt_vec_info): Add new fields:
	initial_offset, step, misalignment and base_aligned_p and macros
	to access them.
	* tree-vectorizer.c (vect_analyze_offset_expr): New function.
	(new_stmt_vec_info): Initialize the new fields of stmt_vec_info.
	(vect_create_data_ref_ptr): Fix printings.
	(vect_get_base_and_offset): Call get_inner_reference and
	vect_analyze_offset_expr. Renamed (previous name
	vect_get_base_and_bit_offset).
	(vect_create_addr_base_for_vector_ref): Build address_base by
	combining base and initial_offset fields of vect_stmt_info.
	(vect_update_inits_of_dr): Update offset of data-ref instead of its
	access-fn. Remove argument.
	(vect_update_inits_of_drs): Call vect_update_inits_of_dr with new
	arguments.
	(vect_compute_data_ref_alignment): Check misalignment info in
	vect_stmt_info. Remove argument.
	(vect_compute_data_refs_alignment): Call
	vect_compute_data_ref_alignment with correct argument.
	(vect_analyze_data_ref_access): Check access info in vect_stmt_info.
	(vect_analyze_pointer_ref_access): Update step and initial_offset
	fields of vect_stmt_info.
	(vect_get_memtag_and_dr): Call vect_get_base_and_offset and set the
	fields of stmt_vec_info. Reorganize. Add memtag retrieval. Renamed
	(previous name vect_get_symb_and_dr).
	(vect_analyze_data_refs): Find vectype and pass it to
	vect_get_memtag_and_dr. Remove memtag retrieval.
	(vect_get_first_index): Remove.
	(vect_compute_array_base_alignment): Remove.
	(vect_compute_array_ref_alignment): Remove.

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.9&r2=1.1.2.10
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.5&r2=2.25.2.6
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.2&r2=2.7.2.3
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.2&r2=1.1.2.3
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.dg/vect/vect-90.c.diff?cvsroot=gcc&only_with_tag=autovect-branch&r1=NONE&r2=1.1.2.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.dg/vect/vect-91.c.diff?cvsroot=gcc&only_with_tag=autovect-branch&r1=NONE&r2=1.1.2.1



-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18179


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