r137718 - in /branches/gimple-tuples-branch/gcc...
jakub@gcc.gnu.org
jakub@gcc.gnu.org
Fri Jul 11 16:15:00 GMT 2008
Author: jakub
Date: Fri Jul 11 16:15:39 2008
New Revision: 137718
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=137718
Log:
2008-07-11 Jakub Jelinek <jakub@redhat.com>
* tree-vect-analyze.c (vect_determine_vectorization_factor): Handle
GIMPLE_CALL with non-NULL lhs.
(vect_build_slp_tree): Likewise. Fix reversed check for references.
* tree-vectorizer.c (stmt_vec_info_htab, stmt_vec_info_eq,
stmt_vec_info_hash, init_stmt_vec_info_htab,
free_stmt_vec_info_htab): Remove.
(stmt_vec_info_vec): New variable.
(init_stmt_vec_info_vec, free_stmt_vec_info_vec): New functions.
(new_loop_vec_info): Clear stmt uid before calling
set_vinfo_for_stmt.
(vect_is_simple_use): Handle GIMPLE_CALL with non-NULL lhs.
(vectorize_loops): Call {init,free}_stmt_vec_info_vec instead of
{init,free}_stmt_vec_info_htab.
* tree-parloops.c (parallelize_loops): Likewise.
* tree-ssa-operands.c (get_expr_operands): Handle VEC_COND_EXPR.
* tree-vectorizer.h (stmt_vec_info_htab): Removed.
(init_stmt_vec_info_htab, free_stmt_vec_info_htab): Remove
prototypes.
(stmt_vec_info_vec): New extern decl.
(init_stmt_vec_info_vec, free_stmt_vec_info_vec): New prototypes.
(vinfo_for_stmt, set_vinfo_for_stmt): Rewritten using stmt uid
and vector instead of a hash table.
* tree-vect-patterns.c (vect_recog_pow_pattern): Request
a GIMPLE_CALL with non-NULL lhs instead of GIMPLE_ASSIGN.
(vect_pattern_recog_1): Use is_gimple_call instead of comparing
gimple_code with GIMPLE_CALL.
* gimple.c (gimple_rhs_class_table): Use GIMPLE_SINGLE_RHS for
DOT_PROD_EXPR and VEC_COND_EXPR.
* tree-vect-transform.c (vect_get_slp_vect_defs): Use gimple_get_lhs
instead of gimple_assign_lhs.
(get_initial_def_for_induction): Use build_int_cst even for
pointers. Use POINTER_PLUS_EXPR for POINTER_TYPE_P (scalar_type).
(vect_get_vec_def_for_operand): Use is_gimple_call instead of
comparing gimple_code with GIMPLE_CALL.
(vectorizable_call): Likewise. Use gimple_call_lhs instead of
gimple_assign_lhs. Build a vector of arguments, use
gimple_build_call_vec.
(vect_get_vec_def_for_stmt_copy): Use gimple_get_lhs.
(vectorizable_live_operation): Handle GIMPLE_SINGLE_RHS operands.
2008-07-11 Doug Kwan <dougkwan@google.com>
* gimple-dummy.c (vectorizable_induction, vectorizable_type_promotion,
vectorizable_type_demotion, vectorizable_conversion,
vectorizable_operation, vectorizable_assignment,
vectorizable_load, vectorizable_call, vectorizable_store,
vectorizable_condition, vectorizable_reduction,
vectorizable_live_operation, vectorizable_function,
vect_estimate_min_profitable_iters, vect_model_simple_cost,
vect_model_store_cost, vect_model_load_cost, vect_transform_loop):
Remove DUMMY_FNs.
* tree-ssa-loop.c (gate_tree_vectorize): Reenable vectorizer.
* tree-vectorizer.c (vect_is_simple_use): Fix handling of
GIMPLE_NOP.
* tree-vectorizer.h (vectorizable_load, vectorizable_store,
vectorizable_operation, vectorizable_type_promotion,
vectorizable_type_demotion, vectorizable_conversion,
vectorizable_assignment, vectorizable_call, vectorizable_condition,
vectorizable_live_operation, vectorizable_reduction,
vectorizable_induction): Adjust prototypes.
* tree-vect-transform.c (vectorizable_load, vectorizable_store,
vectorizable_operation, vectorizable_type_promotion,
vectorizable_type_demotion, vectorizable_conversion,
vectorizable_assignment, vectorizable_call, vectorizable_condition,
vectorizable_live_operation, vectorizable_reduction,
vectorizable_induction, vect_transform_stmt,
vect_create_data_ref_ptr, vect_create_addr_base_for_vector_ref,
vect_get_vec_def_for_operand, vect_init_vector,
vect_finish_stmt_generation, vect_create_epilog_for_reduction,
get_initial_def_for_reduction, cost_for_stmt,
vect_estimate_min_profitable_iters, vect_model_reduction_cost,
vect_cost_strided_group_size, vect_model_load_cost, bump_vector_ptr,
vect_get_constant_vectors, vect_get_slp_vect_defs,
vect_get_slp_defs, get_initial_def_for_induction,
vect_get_vec_def_for_stmt_copy, vect_get_vec_defs,
vectorizable_function, vect_gen_widened_results_half,
vect_permute_store_chain, vect_setup_realignment,
vect_permute_load_chain, vect_transform_strided_load,
vect_is_simple_cond, vect_build_loop_niters,
vect_generate_tmps_on_preheader, vect_update_ivs_after_vectorizer,
vect_do_peeling_for_loop_bound, vect_gen_niters_for_prolog_loop,
vect_do_peeling_for_alignment, vect_create_cond_for_align_checks,
vect_create_cond_for_alias_checks, vect_loop_versioning,
vect_remove_stores, vect_schedule_slp_instance,
vect_transform_loop): Tuplify.
Modified:
branches/gimple-tuples-branch/gcc/ChangeLog.tuples
branches/gimple-tuples-branch/gcc/gimple-dummy.c
branches/gimple-tuples-branch/gcc/gimple.c
branches/gimple-tuples-branch/gcc/tree-parloops.c
branches/gimple-tuples-branch/gcc/tree-ssa-loop.c
branches/gimple-tuples-branch/gcc/tree-ssa-operands.c
branches/gimple-tuples-branch/gcc/tree-vect-analyze.c
branches/gimple-tuples-branch/gcc/tree-vect-patterns.c
branches/gimple-tuples-branch/gcc/tree-vect-transform.c
branches/gimple-tuples-branch/gcc/tree-vectorizer.c
branches/gimple-tuples-branch/gcc/tree-vectorizer.h
More information about the Gcc-cvs
mailing list