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

gcc/gcc ChangeLog alias.c emit-rtl.c expr.c fo ...


CVSROOT:	/cvs/gcc
Module name:	gcc
Changes by:	dorit@gcc.gnu.org	2004-09-23 14:34:35

Modified files:
	gcc            : ChangeLog alias.c emit-rtl.c expr.c 
	                 fold-const.c genopinit.c gimplify.c optabs.c 
	                 optabs.h print-rtl.c target-def.h target.h 
	                 targhooks.c targhooks.h tree-dump.c tree-eh.c 
	                 tree-gimple.c tree-pretty-print.c 
	                 tree-ssa-alias.c tree-ssa-dce.c tree-ssa-dom.c 
	                 tree-ssa-loop-im.c tree-ssa-loop-ivopts.c 
	                 tree-ssa-operands.c tree-vectorizer.c 
	                 tree-vectorizer.h tree.c tree.def tree.h 
	gcc/config/i386: i386.c 
	gcc/config/rs6000: altivec.md rs6000.c rs6000.h 
	gcc/testsuite  : ChangeLog 
	gcc/testsuite/gcc.dg/vect: vect-13.c vect-26.c vect-27.c 
	                           vect-28.c vect-29.c vect-40.c 
	                           vect-41.c vect-42.c vect-43.c 
	                           vect-44.c vect-45.c vect-46.c 
	                           vect-47.c vect-48.c vect-49.c 
	                           vect-50.c vect-51.c vect-52.c 
	                           vect-53.c vect-54.c vect-55.c 
	                           vect-56.c vect-57.c vect-58.c 
	                           vect-59.c vect-60.c vect-61.c 
	                           vect-75.c vect-76.c vect-77.c 
	                           vect-78.c 
Added files:
	gcc/testsuite/gcc.dg/vect: vect-27a.c vect-29a.c vect-48a.c 
	                           vect-56a.c vect-72.c vect-72a.c 
	                           vect-77a.c 

Log message:
	2004-09-23  Dorit Naishlos <dorit@il.ibm.com>
	
	* tree.def (ALIGN_INDIRECT_REF, MISALIGNED_INDIRECT_REF):
	New tree-codes.
	* tree.h (REF_ORIGINAL): Consider ALIGN_INDIRECT_REF and
	MISALIGNED_INDIRECT_REF.
	* alias.c (get_alias_set, nonoverlapping_memrefs_p): Likewise.
	* emit-rtl.c (mem_expr_equal_p, set_mem_attributes_minus_bitpos):
	Likewise.
	* expr.c (safe_from_p, expand_expr_real_1, rewrite_address_base)
	(find_interesting_uses_address): Likewise.
	* fold-const.c (non_lvalue, operand_equal_p): Likewise.
	(build_fold_addr_expr_with_type): Likewise.
	* gimplify.c (gimplify_addr_expr, gimplify_expr): Likewise.
	* print-rtl.c (print_mem_expr): Likewise.
	* tree-dump.c (dequeue_and_dump): Likewise.
	* tree-eh.c (tree_could_trap_p): Likewise.
	* tree-gimple.c (is_gimple_addressable, get_base_address): Likewise.
	* tree-pretty-print.c (op_prio, op_symbol, dump_generic_node): Likewise.
	* tree-ssa-alias.c (find_ptr_dereference, ptr_is_dereferenced_by):
	Likewise.
	* tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
	* tree-ssa-dom.c (record_equivalences_from_stmt): Likewise.
	* tree-ssa-loop-im.c (for_each_index, is_call_clobbered_ref): Likewise.
	* tree-ssa-loop-ivopts.c (find_interesting_uses_address): Likewise.
	(add_address_candidates, rewrite_address_base): Likewise.
	* tree-ssa-operands.c (get_expr_operands, get_indirect_ref_operands):
	Likewise.
	* tree.c (staticp, build1_stat): Likewise.
	
	* tree.def (REALIGN_LOAD_EXPR, REALIGN_STORE_EXPR): New tree-codes.
	* tree-pretty-print.c (dump_generic_node): Consider REALIGN_LOAD_EXPR.
	* tree-ssa-operands.c (get_expr_operands): Likewise.
	* expr.c (expand_expr_real_1): Likewise.
	
	* optabs.h (vec_realign_store_optab, vec_realign_load_optab): New
	optabs.
	(OTI_vec_realign_store, OTI_vec_realign_load): New optab_index values
	for the new optabs.
	(expand_ternary_op): New function.
	* genopinit.c (optabs): Handle the new optabs.
	* optabs.c (optab_for_tree_code): Add cases for the new tree-codes.
	(init_optabs): Initialize vec_realign_load_optab.
	(expand_ternary_op): New functions.
	
	* target-def.h (TARGET_VECTORIZE): New member for struct gcc_target.
	(TARGET_VECTORIZE_MISALIGNED_MEM_OK): New member for targetm.vectorize.
	(TARGET_VECTORIZE_BUILTIN_MASK_FOR_LOAD): Likewise.
	(TARGET_VECTORIZE_BUILTIN_MASK_FOR_STORE): Likewise.
	* target.h (struct vectorize): New member for struct gcc_target.
	(misaligned_mem_ok): New member for targetm.vectorize.
	(builtin_mask_for_load): Likewise.
	(builtin_mask_for_store): Likewise.
	* targethooks.c (default_vect_misaligned_mem_ok): New function.
	* targethooks.h (default_vect_misaligned_mem_ok): New function.
	
	* config/rs6000/altivec.md (build_vector_mask_for_load): New
	define_expand.
	(vec_realign_load_v4si, vec_realign_load_v4sf, vec_realign_load_v8hi)
	(vec_realign_load_v16qi): New define_insn.
	* config/rs6000/rs6000.h (ALTIVEC_BUILTIN_MASK_FOR_LOAD):
	(ALTIVEC_BUILTIN_MASK_FOR_STORE): New target builtins.
	* config/rs6000/rs6000.c (altivec_builtin_mask_for_load):
	(altivec_builtin_mask_for_store): New variables.
	(rs6000_builtin_mask_for_load): New function. Implements
	TARGET_VECTORIZE_BUILTIN_MASK_FOR_LOAD.
	(rs6000_builtin_mask_for_store): New function. Implements
	TARGET_VECTORIZE_BUILTIN_MASK_FOR_STORE.
	(rs6000_expand_builtin): Expand the target builtins
	builtin_mask_for_load and builtin_mask_for_store.
	(altivec_init_builtins): Initialize the new target builtins.
	* config/i386/i386.c (ix86_misaligned_mem_ok): New function.
	Implements the target hook TARGET_VECTORIZE_MISALIGNED_MEM_OK.
	
	* tree-vectorizer.c (vect_create_data_ref): Renamed to
	vect_create_data_ref_ptr. Returns a pointer instead of an array-ref.
	(vect_create_addr_base_for_vector_ref): Additional argument (offset).
	(vectorizable_store): Call vect_create_data_ref_ptr with additional
	arguments, and create an indirect_ref with its return value data_ref.
	Check aligned_access_p.
	(vectorizable_load): Handle misaligned loads, using software-pipelined
	scheme with REALIGN_LOAD_EXPR and ALIGN_INDIRECT_REF if
	vec_realign_load_optab is supported, or using a scheme without
	software-pipelining with MISALIGNED_INDIRECT_REF if the target hook
	misaligned_mem_ok is supported.
	
	(vect_finish_stmt_generation): Typo.
	(vect_enhance_data_refs_alignment): Rename loop_vinfo to loop_info.
	(vect_analyze_data_refs_alignment): Don't fail vectorization in the
	presence of misaligned loads.
	(vect_analyze_data_ref_access): Add check for constant init.
	(vect_get_symbl_and_dr): Remove duplicate line.
	* tree-vectorizer.h (DR_MISALIGNMENT): Add comment.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?cvsroot=gcc&r1=2.5584&r2=2.5585
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/alias.c.diff?cvsroot=gcc&r1=1.242&r2=1.243
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/emit-rtl.c.diff?cvsroot=gcc&r1=1.415&r2=1.416
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/expr.c.diff?cvsroot=gcc&r1=1.722&r2=1.723
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/fold-const.c.diff?cvsroot=gcc&r1=1.462&r2=1.463
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/genopinit.c.diff?cvsroot=gcc&r1=1.80&r2=1.81
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/gimplify.c.diff?cvsroot=gcc&r1=2.80&r2=2.81
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/optabs.c.diff?cvsroot=gcc&r1=1.242&r2=1.243
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/optabs.h.diff?cvsroot=gcc&r1=1.36&r2=1.37
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/print-rtl.c.diff?cvsroot=gcc&r1=1.118&r2=1.119
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/target-def.h.diff?cvsroot=gcc&r1=1.103&r2=1.104
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/target.h.diff?cvsroot=gcc&r1=1.116&r2=1.117
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/targhooks.c.diff?cvsroot=gcc&r1=2.31&r2=2.32
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/targhooks.h.diff?cvsroot=gcc&r1=2.21&r2=2.22
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/tree-dump.c.diff?cvsroot=gcc&r1=1.34&r2=1.35
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/tree-eh.c.diff?cvsroot=gcc&r1=2.19&r2=2.20
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/tree-gimple.c.diff?cvsroot=gcc&r1=2.24&r2=2.25
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/tree-pretty-print.c.diff?cvsroot=gcc&r1=2.38&r2=2.39
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/tree-ssa-alias.c.diff?cvsroot=gcc&r1=2.42&r2=2.43
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/tree-ssa-dce.c.diff?cvsroot=gcc&r1=2.18&r2=2.19
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/tree-ssa-dom.c.diff?cvsroot=gcc&r1=2.50&r2=2.51
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/tree-ssa-loop-im.c.diff?cvsroot=gcc&r1=2.13&r2=2.14
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/tree-ssa-loop-ivopts.c.diff?cvsroot=gcc&r1=2.11&r2=2.12
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/tree-ssa-operands.c.diff?cvsroot=gcc&r1=2.46&r2=2.47
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/tree-vectorizer.c.diff?cvsroot=gcc&r1=2.10&r2=2.11
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/tree-vectorizer.h.diff?cvsroot=gcc&r1=2.4&r2=2.5
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/tree.c.diff?cvsroot=gcc&r1=1.433&r2=1.434
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/tree.def.diff?cvsroot=gcc&r1=1.101&r2=1.102
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/tree.h.diff?cvsroot=gcc&r1=1.628&r2=1.629
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/i386/i386.c.diff?cvsroot=gcc&r1=1.729&r2=1.730
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/rs6000/altivec.md.diff?cvsroot=gcc&r1=1.22&r2=1.23
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/rs6000/rs6000.c.diff?cvsroot=gcc&r1=1.713&r2=1.714
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/rs6000/rs6000.h.diff?cvsroot=gcc&r1=1.339&r2=1.340
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/ChangeLog.diff?cvsroot=gcc&r1=1.4335&r2=1.4336
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.dg/vect/vect-27a.c.diff?cvsroot=gcc&r1=NONE&r2=1.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.dg/vect/vect-29a.c.diff?cvsroot=gcc&r1=NONE&r2=1.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.dg/vect/vect-48a.c.diff?cvsroot=gcc&r1=NONE&r2=1.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.dg/vect/vect-56a.c.diff?cvsroot=gcc&r1=NONE&r2=1.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.dg/vect/vect-72.c.diff?cvsroot=gcc&r1=1.1&r2=1.2
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.dg/vect/vect-72a.c.diff?cvsroot=gcc&r1=NONE&r2=1.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.dg/vect/vect-77a.c.diff?cvsroot=gcc&r1=NONE&r2=1.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.dg/vect/vect-13.c.diff?cvsroot=gcc&r1=1.3&r2=1.4
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.dg/vect/vect-26.c.diff?cvsroot=gcc&r1=1.1&r2=1.2
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.dg/vect/vect-27.c.diff?cvsroot=gcc&r1=1.1&r2=1.2
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.dg/vect/vect-28.c.diff?cvsroot=gcc&r1=1.1&r2=1.2
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.dg/vect/vect-29.c.diff?cvsroot=gcc&r1=1.1&r2=1.2
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.dg/vect/vect-40.c.diff?cvsroot=gcc&r1=1.1&r2=1.2
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.dg/vect/vect-41.c.diff?cvsroot=gcc&r1=1.1&r2=1.2
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.dg/vect/vect-42.c.diff?cvsroot=gcc&r1=1.1&r2=1.2
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.dg/vect/vect-43.c.diff?cvsroot=gcc&r1=1.1&r2=1.2
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.dg/vect/vect-44.c.diff?cvsroot=gcc&r1=1.1&r2=1.2
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.dg/vect/vect-45.c.diff?cvsroot=gcc&r1=1.1&r2=1.2
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.dg/vect/vect-46.c.diff?cvsroot=gcc&r1=1.1&r2=1.2
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.dg/vect/vect-47.c.diff?cvsroot=gcc&r1=1.1&r2=1.2
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.dg/vect/vect-48.c.diff?cvsroot=gcc&r1=1.1&r2=1.2
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.dg/vect/vect-49.c.diff?cvsroot=gcc&r1=1.1&r2=1.2
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.dg/vect/vect-50.c.diff?cvsroot=gcc&r1=1.1&r2=1.2
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.dg/vect/vect-51.c.diff?cvsroot=gcc&r1=1.1&r2=1.2
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.dg/vect/vect-52.c.diff?cvsroot=gcc&r1=1.1&r2=1.2
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.dg/vect/vect-53.c.diff?cvsroot=gcc&r1=1.1&r2=1.2
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.dg/vect/vect-54.c.diff?cvsroot=gcc&r1=1.1&r2=1.2
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.dg/vect/vect-55.c.diff?cvsroot=gcc&r1=1.1&r2=1.2
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.dg/vect/vect-56.c.diff?cvsroot=gcc&r1=1.1&r2=1.2
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.dg/vect/vect-57.c.diff?cvsroot=gcc&r1=1.1&r2=1.2
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.dg/vect/vect-58.c.diff?cvsroot=gcc&r1=1.1&r2=1.2
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.dg/vect/vect-59.c.diff?cvsroot=gcc&r1=1.1&r2=1.2
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.dg/vect/vect-60.c.diff?cvsroot=gcc&r1=1.1&r2=1.2
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.dg/vect/vect-61.c.diff?cvsroot=gcc&r1=1.1&r2=1.2
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.dg/vect/vect-75.c.diff?cvsroot=gcc&r1=1.2&r2=1.3
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.dg/vect/vect-76.c.diff?cvsroot=gcc&r1=1.2&r2=1.3
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.dg/vect/vect-77.c.diff?cvsroot=gcc&r1=1.2&r2=1.3
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.dg/vect/vect-78.c.diff?cvsroot=gcc&r1=1.2&r2=1.3


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