1. 05 Jul, 2010 18 commits
    • tree.c (reference_alias_ptr_type): New function. · a41e5e86
      2010-07-05  Richard Guenther  <rguenther@suse.de>
      
      	* tree.c (reference_alias_ptr_type): New function.
      	* tree.h (reference_alias_ptr_type): Declare.
      	* tree-ssa-loop-ivopts.c (copy_ref_info): Restructure to
      	allow non-TARGET_MEM_REF new refs.
      	(rewrite_use_address): Pass old alias pointer type to
      	create_mem_ref.
      	* tree-ssa-address.c (create_mem_ref_raw): Get alias pointer type.
      	Build a MEM_REF instead of a TARGET_MEM_REF if possible.
      	(create_mem_ref): Get alias pointer type.  Adjust calls to
      	create_mem_ref_raw.
      	(maybe_fold_tmr): Likewise.
      	* tree-flow.h (create_mem_ref): Adjust prototype.
      
      From-SVN: r161840
      Richard Guenther committed
    • constants.c (build_constants_constructor): Use build_constructor instead of… · 5c144a5f
      constants.c (build_constants_constructor): Use build_constructor instead of build_constructor_from_list.
      
      	* constants.c (build_constants_constructor): Use build_constructor
      	instead of build_constructor_from_list.
      	* class.c (make_method_value): Likewise.
      	(get_dispatch_table): Likewise.
      	(make_class_data): Likewise.
      	(emit_indirect_register_classes): Likewise.
      	(emit_symbol_table): Likewise.
      	(add_assertion_table_entry): Likewise.
      	(emit_assertion_table): Likewise.
      	(make_field_value): Use build_constructor_single instead of
      	build_constructor_from_list.
      
      From-SVN: r161839
      Nathan Froyd committed
    • re PR c++/44808 (ICE: tree check: expected var_decl, have result_decl in gimplify_modify_expr) · f2896bc9
      	PR c++/44808
      	* gimplify.c (gimplify_modify_expr): Only SET_DECL_DEBUG_EXPR if
      	*from_p is VAR_DECL.
      
      	* g++.dg/opt/nrv16.C: New test.
      
      From-SVN: r161838
      Jakub Jelinek committed
    • tree.h (build_call_list): Remove. · cfe6dea2
      	* tree.h (build_call_list): Remove.
      	* tree.c (build_call_list): Remove.
      
      From-SVN: r161837
      Nathan Froyd committed
    • double-int.h (double_int_sub): Declare. · e22f7f31
      2010-07-05  Richard Guenther  <rguenther@suse.de>
      
      	* double-int.h (double_int_sub): Declare.
      	* double-int.c (double_int_sub): New function.
      	* dwarf2out.c (field_byte_offset): Use it.
      	* fixed-value.c (do_fixed_add): Likewise.
      	(do_fixed_multiply): Likewise.
      	(do_fixed_divide): Likewise.
      	* tree-predcom.c (add_ref_to_chain): Likewise.
      	(determine_roots_comp): Likewise.
      	* tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Likewise.
      
      From-SVN: r161836
      Richard Biener committed
    • double-int.h (double_int_sub): Declare. · bdc45386
      2010-07-05  Richard Guenther  <rguenther@suse.de>
      
      	* double-int.h (double_int_sub): Declare.
      	* double-int.c (double_int_sub): New function.
      	* dwarf2out.c (field_byte_offset): Use it.
      	* fixed-value.c (do_fixed_add): Likewise.
      	(do_fixed_multiply): Likewise.
      	(do_fixed_divide): Likewise.
      	* tree-predcom.c (add_ref_to_chain): Likewise.
      	(determine_roots_comp): Likewise.
      	* tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Likewise.
      
      From-SVN: r161835
      Richard Biener committed
    • vec.h (VEC_splice, [...]): New macros. · 989ea525
      gcc/
      	* vec.h (VEC_splice, VEC_safe_splice): New macros.  Add function
      	implementations.
      
      gcc/fortran/
      	* trans.h (gfc_conv_procedure_call): Take a VEC instead of a tree.
      	* trans-intrinsic.c (gfc_conv_intrinsic_funcall): Adjust for new
      	type of gfc_conv_procedure_call.
      	(conv_generic_with_optional_char_arg): Likewise.
      	* trans-stmt.c (gfc_trans_call): Likewise.
      	* trans-expr.c (gfc_conv_function_expr): Likewise.
      	(gfc_conv_procedure_call): Use build_call_vec instead of
      	build_call_list.
      
      From-SVN: r161834
      Nathan Froyd committed
    • arm.c (get_arm_condition_code): Remove CC_NOTBmode case. · 7ec6356e
      	* config/arm/arm.c (get_arm_condition_code): Remove CC_NOTBmode case.
      	* arm-modes.def (CC_NOTB): Don't define.
      	* config/arm/arm.md (arm_adddi3): Generate canonical RTL.
      	(adddi_sesidi_di, adddi_zesidi_di): Likewise.
      	(LTUGEU): New code_iterator.
      	(cnb, optab): New corresponding code_attrs.
      	(addsi3_carryin_<optab>): Renamed from addsi3_carryin.  Change pattern
      	to canonical form.  Operands 1 and 2 are commutative.  Parametrize
      	using LTUGEU.
      	(addsi3_carryin_shift_<optab>): Likewise.
      	(addsi3_carryin_alt2_<optab>): Renamed from addsi3_carryin_alt2.
      	Operands 1 and 2 are commutative.  Parametrize using LTUGEU.
      	(addsi3_carryin_alt1, addsi3_carryin_alt3): Remove.
      	(subsi3_compare): Renamed from subsi3_compare0_c.  Change CC_NOTB to
      	CC.
      	(arm_subsi3_insn): Allow constants for operand 0.
      	(compare_scc peephole for eq case): New.
      	(compare_scc splitters): Change CC_NOTB to CC.
      
      From-SVN: r161831
      Bernd Schmidt committed
    • tree-ssa-loop-im.c (for_each_index): Do not handle ALIGN_INDIRECT_REF. · 75421dcd
      2010-07-05  Richard Guenther  <rguenther@suse.de>
      
      	* tree-ssa-loop-im.c (for_each_index): Do not handle
      	ALIGN_INDIRECT_REF.
      	(gen_lsm_tmp_name): Likewise.
      	* tree-dump.c (dequeue_and_dump): Likewise.
      	* tree-pretty-print.c (dump_generic_node): Likewise.
      	(op_code_prio): Likewise.
      	(op_symbol_code): Likewise.
      	* tree.c (staticp): Likewise.
      	(build1_stat): Likewise.
      	* tree.h (INDIRECT_REF_P): Likewise.
      	* fold-const.c (maybe_lvalue_p): Likewise.
      	(operand_equal_p): Likewise.
      	* tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
      	(ao_ref_init_from_vn_reference): Likewise.
      	* tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
      	(find_interesting_uses_address): Likewise.
      	* dwarf2out.c (loc_list_from_tree): Likewise.
      	* gimplify.c (gimplify_expr): Likewise.
      	* tree-eh.c (tree_could_trap_p): Likewise.
      	* emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
      	* cfgexpand.c (expand_debug_expr): Likewise.
      	* tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
      	* tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
      	* tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
      	* config/rs6000/rs6000 (rs6000_check_sdmode): Likewise.
      	* tree-ssa-operands.c (get_expr_operands): Likewise.
      	* expr.c (safe_from_p): Likewise.
      	(expand_expr_real_1): Likewise.  TER BIT_AND_EXPRs into MEM_REFs.
      	* tree-vect-data-refs.c (vect_setup_realignment): Build
      	BIT_AND_EXPR and MEM_REF instead of ALIGN_INDIRECT_REF.
      	* tree-vect-stmts.c (vectorizable_load): Likewise.
      	* tree.def (ALIGN_INDIRECT_REF): Remove.
      
      From-SVN: r161830
      Richard Guenther committed
    • re PR middle-end/44784 (Failed to build 403.gcc in SPEC CPU 2006) · 5d657263
      2010-07-05  Richard Guenther  <rguenther@suse.de>
      
      	PR tree-optimization/44784
      	* tree-ssa-pre.c (bitmap_find_leader): Fix dominance check
      	for inserted stmts.
      	(find_or_generate_expression): Fix SCCVN insertion check.
      
      	* gcc.c-torture/compile/pr44784.c: New testcase.
      
      From-SVN: r161829
      Richard Guenther committed
    • e500crtsavg64gprctr.asm: Correct done label name. · 3cd0d4fa
      	* config/rs6000/e500crtsavg64gprctr.asm: Correct done label name.
      	* config/rs6000/e500crtsav64gprctr.asm: Likewise.
      	* config/rs6000/e500crtres64gprctr.asm: Likewise. Add FUNC_END
      	directives.
      
      From-SVN: r161828
      Nathan Sidwell committed
    • tree-vect-loop.c (vect_get_single_scalar_iteraion_cost): Skip statements that are not vectorized. · 9940b13c
      
      	* tree-vect-loop.c (vect_get_single_scalar_iteraion_cost): Skip
      	statements that are not vectorized.
      	* tree-vect-stmts.c (vect_get_load_cost): Update the value stored
      	in INSIDE_COST.
      
      From-SVN: r161827
      Ira Rosen committed
    • pt.c (tsubst): Early declare code = TREE_CODE (t) and use it throughout. · 394473ab
      2010-07-05  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	* pt.c (tsubst): Early declare code = TREE_CODE (t) and use it
      	throughout.
      
      From-SVN: r161825
      Paolo Carlini committed
    • re PR bootstrap/44820 (ARM bootstrap failure: regno set but unused in arm_attr_length_move_neon) · e4dde839
      2010-07-05  Mikael Pettersson  <mikpe@it.uu.se>
      
      	PR bootstrap/44820
      	* config/arm/arm.c (arm_attr_length_move_neon): Delete regno.
      
      From-SVN: r161822
      Mikael Pettersson committed
    • tree-cfg.c (verify_gimple_return): Handle DECL_BY_REFERENCE RESULT_DECLs properly. · e3061843
      2010-07-05  Richard Guenther  <rguenther@suse.de>
      
      	* tree-cfg.c (verify_gimple_return): Handle DECL_BY_REFERENCE
      	RESULT_DECLs properly.
      
      From-SVN: r161821
      Richard Biener committed
    • costmodel-vect-31d.c: Remove. · 5bb12090
      
      	* gcc.dg/vect/costmodel/ppc/costmodel-vect-31d.c: Remove.
      	* gcc.dg/vect/costmodel/ppc/costmodel-vect-76a.c: Increase loop bound.
      	* gcc.dg/vect/costmodel/ppc/costmodel-vect-76b.c: Likewise.
      	* gcc.dg/vect/costmodel/ppc/costmodel-vect-68d.c: Remove.
      	* gcc.dg/vect/pr35821-altivec.c, gcc.dg/vect/pr35821-spu.c: Likewise.
      
      From-SVN: r161819
      Ira Rosen committed
    • re PR c++/22138 (Better error message for rejecting local template declaration.) · 6698dd72
      gcc/cp/
      2010-07-05  Shujing Zhao  <pearly.zhao@oracle.com>
      
              PR c++/22138
              * parser.c (cp_parser_primary_expression): Error if local template is
              declared.
      
      gcc/testsuite/
      2010-07-05  Shujing Zhao  <pearly.zhao@oracle.com>
      
              PR c++/22138
              * g++.dg/parse/template25.C: New.
      
      From-SVN: r161818
      Shujing Zhao committed
    • Daily bump. · d42d62c8
      From-SVN: r161817
      GCC Administrator committed
  2. 04 Jul, 2010 18 commits
    • Change 8bit divmod to HImode. · c2a78352
      gcc/
      
      2010-07-04  H.J. Lu  <hongjiu.lu@intel.com>
      
      	PR rtl-optimization/44695
      	* config/i386/i386.md (extract_code): Removed.
      	(<u>divmodqi4): Likewise.
      	(divmodqi4): New.
      	(udivmodqi4): Likewise.
      	(divmodhiqi3): Change div/mod to HImode and extend operand 2 to
      	HImode.
      	(udivmodhiqi3): Likewise.
      
      gcc/testsuite/
      
      2010-07-04  H.J. Lu  <hongjiu.lu@intel.com>
      
      	PR rtl-optimization/44695
      	* gcc.dg/torture/pr44695.c: New.
      
      From-SVN: r161813
      H.J. Lu committed
    • cgraphunit.c (init_cgraph): Only initialize dump file if it is not already initialized. · a05541a9
      
              * cgraphunit.c (init_cgraph): Only initialize dump file if it is not already
              initialized.
              * lto.c (read_cgraph_and_symbols): Dump cgraph before merging.
      
      From-SVN: r161811
      Jan Hubicka committed
    • gcc/ · f9621cc4
      	* optabs.h (reload_in_optab, reload_out_optab, code_to_optab)
      	(vcond_gen_code, vcondu_gen_code, movmem_optab, setmem_optab)
      	(cmpstr_optab, cmpstrn_optab, cmpmem_optab, sync_add_optab)
      	(sync_sub_optab, sync_ior_optab, sync_and_optab, sync_xor_optab)
      	(sync_nand_optab, sync_old_add_optab, sync_old_sub_optab)
      	(sync_old_ior_optab, sync_old_and_optab, sync_old_xor_optab)
      	(sync_old_nand_optab, sync_new_add_optab, sync_new_sub_optab)
      	(sync_new_ior_optab, sync_new_and_optab, sync_new_xor_optab)
      	(sync_new_nand_optab): Redefine as macros.
      	(sync_compare_and_swap, sync_lock_test_and_set, sync_lock_release):
      	Delete.
      	(direct_optab_index): New enum.
      	(direct_optab_d): New structure.
      	(direct_optab): New typedef.
      	(direct_optab_table): Declare.
      	(direct_optab_handler, set_direct_optab_handler): New functions.
      	(sync_compare_and_swap_optab, sync_lock_test_and_set_optab)
      	(sync_lock_release_optab): New macros.
      	* optabs.c (direct_optab_table): New variable.
      	(movcc_gen_code, vcond_gen_code, vcondu_gen_code): Delete.
      	(prepare_cmp_insn): Use direct_optab_handler for cmpmem_optab,
      	cmpstr_optab and cmpstrn_optab.
      	(emit_conditional_move): Likewise for movcc_optab.
      	(can_conditionally_move_p): Likewise for movcc_gen_code.
      	(init_insn_codes): Clear direct_optab_table.
      	(init_optabs): Don't initialize the new "direct optabs" here.
      	(get_vcond_icode): Use direct_optab_handler for vcondu_gen_code and
      	vcond_gen_code.
      	(expand_val_compare_and_swap): Likewise sync_compare_and_swap_optab.
      	(expand_bool_compare_and_swap): Likewise sync_compare_and_swap_optab.
      	(expand_compare_and_swap_loop): Likewise sync_compare_and_swap_optab.
      	(expand_sync_operation): Likewise other sync_*_optabs.
      	(expand_sync_fetch_operation): Likewise.  Rename sync_compare_and_swap
      	to sync_compare_and_swap_optab.
      	(expand_sync_lock_test_and_set): Use direct_optab_handler for
      	sync_lock_test_and_set and sync_compare_and_swap, adding "_optab"
      	to the names of both.
      	* builtins.c (expand_builtin_strcmp): Use direct_optab_handler for
      	cmpstr_optab and cmpstrn_optab.
      	(expand_builtin_lock_release): Likewise sync_lock_release.
      	* expr.c (movmem_optab, setmem_optab, cmpstr_optab, cmpstrn_optab)
      	(cmpmem_optab, sync_add_optab, sync_sub_optab, sync_ior_optab)
      	(sync_and_optab, sync_xor_optab, sync_nand_optab, sync_old_add_optab)
      	(sync_old_sub_optab, sync_old_ior_optab, sync_old_and_optab)
      	(sync_old_xor_optab, sync_old_nand_optab, sync_new_add_optab)
      	(sync_new_sub_optab, sync_new_ior_optab, sync_new_and_optab)
      	(sync_new_xor_optab, sync_new_nand_optab, sync_compare_and_swap)
      	(sync_lock_test_and_set, sync_lock_release): Delete.
      	(emit_block_move_via_movmem): Use direct_optab_handler for movmem_optab.
      	(emit_block_move_via_setmem): Use direct_optab_handler for setmem_optab.
      	* genopinit.c (optabs): Use set_direct_optab_handler for the new
      	macro optabs.
      	* omp-low.c (expand_omp_atomic_fetch_op): Update the type of
      	the "optab" local variable.  Use direct_optab_handler for optab and
      	sync_compare_and_swap_optab.
      	* reload1.c (reload_in_optab, reload_out_optab): Delete.
      	* targhooks.c (default_secondary_reload): Use direct_optab_handler for
      	reload_in_optab and reload_out_optab.
      	* config/alpha/alpha.c (alpha_secondary_reload): Likewise.
      	* config/frv/frv.c (frv_alloc_temp_reg): Likewise.
      	* config/pa/pa.c (pa_secondary_reload): Likewise.
      	* java/builtins.c (compareAndSwapInt_builtin): Use direct_optab_handler
      	for sync_compare_and_swap, renaming it to sync_compare_and_swap_optab.
      	(compareAndSwapLong_builtin, compareAndSwapObject_builtin): Likewise.
      	(VMSupportsCS8_builtin): Likewise.
      
      From-SVN: r161810
      Richard Sandiford committed
    • optabs.h (optab_handlers): Change type of insn_code to int. · 596455ce
      gcc/
      	* optabs.h (optab_handlers): Change type of insn_code to int.
      	(optab_handler, set_optab_handler, convert_optab_handler)
      	(set_convert_optab_handler): Treat the insn_code field as "insn_code -
      	CODE_FOR_nothing".
      	* optabs.c (optab_table, convert_optab_table): Always zero-initialize.
      	(init_insn_codes): Zero both the above arrays.
      	(init_optabs): Never call init_insn_codes first time around.
      
      From-SVN: r161809
      Richard Sandiford committed
    • optabs.h (optab_handler, [...]): Turn into inline functions that return an insn code. · 947131ba
      gcc/
      	* optabs.h (optab_handler, convert_optab_handler): Turn into
      	inline functions that return an insn code.
      	(set_optab_handler, set_convert_optab_handler): New functions.
      	* builtins.c: Replace optab_handler(X)->insn_code with
      	optab_handler or set_optab_handler thoughout.  Likewise
      	convert_optab_handler(X)->insn_code with convert_optab_handler
      	and set_convert_optab_handler.
      	* expmed.c, expr.c, genopinit.c, ifcvt.c, optabs.c, reload.c,
      	reload1.c, stmt.c, targhooks.c, tree-ssa-loop-prefetch.c,
      	tree-ssa-math-opts.c, tree-vect-data-refs.c, tree-vect-generic.c,
      	tree-vect-loop.c, tree-vect-patterns.c, tree-vect-slp.c,
      	tree-vect-stmts.c, config/m32c/m32c.c, config/rs6000/rs6000.c,
      	config/spu/spu.c: Likewise.
      
      From-SVN: r161808
      Richard Sandiford committed
    • re PR target/44531 ([SH] Multilib configuration does not work as expected on darwin) · 47e5ff44
      	PR target/44531
      	* config.gcc (sh*-*-*): Use regular expressions instead of
      	the 'i' modifier for sed substitutions.
      
      From-SVN: r161807
      Kaz Kojima committed
    • gfc-internals.texi (gfc_code): Document BLOCK and ASSOCIATE. · b8e0aa85
      2010-07-04  Daniel Kraft  <d@domob.eu>
      
      	* gfc-internals.texi (gfc_code): Document BLOCK and ASSOCIATE.
      
      From-SVN: r161806
      Daniel Kraft committed
    • re PR c++/16630 (missing type name in __PRETTY_FUNCTION__) · de8e41bc
      2010-07-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>
      
      	PR c++/16630
      	* g++.dg/ext/pretty3.C: New.
      
      From-SVN: r161805
      Manuel López-Ibáñez committed
    • gimple.c (gimple_body): Comments added. · abbd64b9
      2010-07-04  Jeremie Salvucci  <jeremie.salvucci@free.fr>
      
      	* gimple.c (gimple_body): Comments added.
      
      From-SVN: r161804
      Jeremie Salvucci committed
    • re PR middle-end/44809 (Mozilla build fails in gimplification.) · 7f5ad6d7
      2010-07-04  Richard Guenther  <rguenther@suse.de>
      
      	PR middle-end/44809
      	* gimplify.c (gimplify_expr): Properly build a MEM_REF instead
      	of an INDIRECT_REF.
      
      	* g++.dg/torture/pr44809.C: New testcase.
      
      From-SVN: r161803
      Richard Guenther committed
    • re PR rtl-optimization/44479 (false dependencies are computed after vectorization) · 17fc049f
      2010-07-04  Richard Guenther  <rguenther@suse.de>
      
      	PR tree-optimization/44479
      	* tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Avoid
      	extra SSA name copy statements which preserves points-to
      	information.
      	* tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
      	Copy points-to information for all pointers.  Properly handle
      	MEM_REFs.
      	(vect_create_data_ref_ptr): Likewise.  Avoid extra SSA name
      	copy statements.
      	* Makefile.in (tree-ssa-loop-ivopts.o): Add tree-ssa-propagate.h
      	dependency.
      
      From-SVN: r161802
      Richard Guenther committed
    • re PR fortran/44596 ([OOP] Dynamic dispatch uses broken types) · c9dfc414
      2010-07-04  Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/44596
      	PR fortran/44745
      	* trans-types.c (gfc_get_derived_type): Derived type fields
      	with the vtype attribute must have TYPE_REF_CAN_ALIAS_ALL set.
      
      From-SVN: r161801
      Paul Thomas committed
    • re PR middle-end/44785 (Invalid memory access in gfortran.dg/extends_3.f03) · 72aa3dca
      2010-07-04  Richard Guenther  <rguenther@suse.de>
      
      	PR middle-end/44785
      	* tree-inline.c (initialize_inlined_parameters): Do not
      	re-use pointer-map slot over remap_type call.
      
      From-SVN: r161800
      Richard Guenther committed
    • 2010-07-4 Richard Guenther <rguenther@suse.de> · ef2a9157
      	* tree-ssa-sccvn.c (vn_reference_lookup_3): Fix last commit.
      
      From-SVN: r161799
      Richard Guenther committed
    • re PR tree-optimization/44656 (VN should value-replace operands during alias-oracle walk) · 4fa4929e
      2010-07-04  Richard Guenther  <rguenther@suse.de>
      
      	PR tree-optimization/44656
      	* tree-ssa-sccvn.c (vn_reference_lookup_3): Try disambiguation
      	again after value-replacing in the defintions lhs.
      
      	* gcc.dg/tree-ssa/loadpre6.c: Remove XFAIL.
      
      From-SVN: r161798
      Richard Guenther committed
    • tm.texi.in (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Document new arguments. · 720f5239
      
      	* doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST):
      	Document new arguments.
      	* doc/tm.texi: Regenerate.
      	* targhooks.c (default_builtin_vectorization_cost): Add new arguments.
      	Handle unaligned store.
      	* targhooks.h (default_builtin_vectorization_cost): Add new arguments.
      	* target.def (builtin_vectorization_cost): Add new arguments.
      	* target.h (enum vect_cost_for_stmt): Add unaligned_store.
      	* tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Take number
      	of iterations of prolog loop directly from LOOP_PEELING_FOR_ALIGNMENT.
      	(vect_vfa_segment_size): Fix indentation.
      	* tree-vectorizer.h (struct _vect_peel_info): New.
      	(struct _vect_peel_extended_info): New.
      	(struct _loop_vec_info): Add new field for peeling hash table and a
      	macro for its access.
      	(VECT_MAX_COST): Define.
      	(vect_get_load_cost): Declare.
      	(vect_get_store_cost, vect_get_known_peeling_cost, 
      	vect_get_single_scalar_iteraion_cost): Likewise.
      	(vect_supportable_dr_alignment): Add new argument.
      	* tree-vect-loop.c (new_loop_vec_info): Initialize peeling hash table
      	field.
      	(destroy_loop_vec_info): Free peeling hash table.
      	(vect_analyze_loop_form): Update call to builtin_vectorization_cost.
      	(vect_analyze_loop): Move vect_enhance_data_refs_alignment before
      	vect_analyze_slp. Fix indentation.
      	(vect_get_single_scalar_iteraion_cost): New function.
      	(vect_get_known_peeling_cost): Likewise.
      	(vect_estimate_min_profitable_iters): Rename byte_misalign to npeel. 
      	Call vect_get_single_scalar_iteraion_cost instead of cost_for_stmt per 
      	statement. Move outside cost calculation inside unknown peeling case.
      	Call vect_get_known_peeling_cost for known amount of peeling.
      	* tree-vect-data-refs.c (vect_compute_data_ref_alignment): Add data
      	reference to the print message of forced alignment.
      	(vect_verify_datarefs_alignment): Update call to 
      	vect_supportable_dr_alignment.
      	(vect_get_data_access_cost): New function.
      	(vect_peeling_hash, vect_peeling_hash_eq, vect_peeling_hash_insert,
      	vect_peeling_hash_get_most_frequent, vect_peeling_hash_get_lowest_cost,
      	vect_peeling_hash_choose_best_peeling): Likewise.
      	(vect_enhance_data_refs_alignment): Fix documentation. Use hash table
      	to store all the accesses in the loop and find best possible access to
      	align using peeling for known alignment case. For unknown alignment
      	check if stores are preferred or if peeling is worthy.
      	(vect_find_same_alignment_drs): Analyze pairs of loads too.
      	(vect_supportable_dr_alignment): Add new argument and check aligned
      	accesses according to it. 
      	* tree-vect-stmts.c (vect_get_stmt_cost): New function.
      	(cost_for_stmt): Call vect_get_stmt_cost. 
      	(vect_model_simple_cost): Likewise.
      	(vect_model_store_cost): Call vect_get_stmt_cost. Call 
      	vect_get_store_cost to calculate the cost of the statement.
      	(vect_get_store_cost): New function.
      	(vect_model_load_cost): Call vect_get_stmt_cost. Call 
      	vect_get_load_cost to calculate the cost of the statement.
      	(vect_get_load_cost): New function.
      	(vectorizable_store): Update call to vect_supportable_dr_alignment.
      	(vectorizable_load): Likewise.
      	* config/spu/spu.c (spu_builtin_vectorization_cost): Add new
      	arguments. 
      	* config/i386/i386.c (ix86_builtin_vectorization_cost): Add new
      	arguments. Handle unaligned store.
      	* config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): New.
      	(rs6000_builtin_support_vector_misalignment): Return true for word and
      	double word alignments for VSX.
      	* tree-vect-slp.c (vect_build_slp_tree): Update calls to 
      	vect_supportable_dr_alignment and builtin_vectorization_cost.
      
      
      Co-Authored-By: Revital Eres <eres@il.ibm.com>
      
      From-SVN: r161797
      Ira Rosen committed
    • Daily bump. · addced2e
      From-SVN: r161795
      GCC Administrator committed
  3. 03 Jul, 2010 4 commits