Commit Graph

101384 Commits

Author SHA1 Message Date
Richard Guenther bdf0f819d5 tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Copy alias info.
2010-07-05  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Copy
	alias info.

From-SVN: r161841
2010-07-05 16:06:56 +00:00
Richard Guenther a41e5e86c0 tree.c (reference_alias_ptr_type): New function.
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
2010-07-05 14:51:16 +00:00
Nathan Froyd 5c144a5fad 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
2010-07-05 14:49:04 +00:00
Jakub Jelinek f2896bc961 re PR c++/44808 (ICE: tree check: expected var_decl, have result_decl in gimplify_modify_expr)
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
2010-07-05 16:42:20 +02:00
Nathan Froyd cfe6dea201 tree.h (build_call_list): Remove.
* tree.h (build_call_list): Remove.
	* tree.c (build_call_list): Remove.

From-SVN: r161837
2010-07-05 13:15:31 +00:00
Richard Biener e22f7f3133 double-int.h (double_int_sub): Declare.
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
2010-07-05 13:14:24 +00:00
Richard Biener bdc453866c double-int.h (double_int_sub): Declare.
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
2010-07-05 13:06:07 +00:00
Nathan Froyd 989ea525be vec.h (VEC_splice, [...]): New macros.
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
2010-07-05 12:46:52 +00:00
Bernd Schmidt 7ec6356e22 arm.c (get_arm_condition_code): Remove CC_NOTBmode case.
* 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
2010-07-05 12:36:21 +00:00
Richard Guenther 75421dcdc6 tree-ssa-loop-im.c (for_each_index): Do not handle ALIGN_INDIRECT_REF.
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
2010-07-05 12:25:20 +00:00
Richard Guenther 5d65726326 re PR middle-end/44784 (Failed to build 403.gcc in SPEC CPU 2006)
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
2010-07-05 12:20:00 +00:00
Nathan Sidwell 3cd0d4fa96 e500crtsavg64gprctr.asm: Correct done label name.
* 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
2010-07-05 11:01:43 +00:00
Ira Rosen 9940b13ce7 tree-vect-loop.c (vect_get_single_scalar_iteraion_cost): Skip statements that are not vectorized.
* 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
2010-07-05 10:41:25 +00:00
Paolo Carlini 394473ab8e pt.c (tsubst): Early declare code = TREE_CODE (t) and use it throughout.
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
2010-07-05 09:55:43 +00:00
Mikael Pettersson e4dde839da re PR bootstrap/44820 (ARM bootstrap failure: regno set but unused in arm_attr_length_move_neon)
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
2010-07-05 09:11:39 +00:00
Richard Biener e3061843d8 tree-cfg.c (verify_gimple_return): Handle DECL_BY_REFERENCE RESULT_DECLs properly.
2010-07-05  Richard Guenther  <rguenther@suse.de>

	* tree-cfg.c (verify_gimple_return): Handle DECL_BY_REFERENCE
	RESULT_DECLs properly.

From-SVN: r161821
2010-07-05 09:04:44 +00:00
Ira Rosen 5bb120900a costmodel-vect-31d.c: Remove.
* 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
2010-07-05 06:48:32 +00:00
Shujing Zhao 6698dd72f7 re PR c++/22138 (Better error message for rejecting local template declaration.)
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
2010-07-05 05:36:02 +00:00
GCC Administrator d42d62c835 Daily bump.
From-SVN: r161817
2010-07-05 00:17:17 +00:00
H.J. Lu c2a78352e5 Change 8bit divmod to HImode.
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
2010-07-04 16:18:06 -07:00
Jan Hubicka 4aa1c0d592 * lto-cgraph.c (input_edge): Do not care about resolution decisions.
From-SVN: r161812
2010-07-04 22:22:48 +00:00
Jan Hubicka a05541a911 cgraphunit.c (init_cgraph): Only initialize dump file if it is not already initialized.
* 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
2010-07-04 22:21:39 +00:00
Richard Sandiford f9621cc477 gcc/
* 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
2010-07-04 22:14:56 +00:00
Richard Sandiford 596455ce05 optabs.h (optab_handlers): Change type of insn_code to int.
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
2010-07-04 22:14:02 +00:00
Richard Sandiford 947131ba4e optabs.h (optab_handler, [...]): Turn into inline functions that return an insn code.
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
2010-07-04 22:13:09 +00:00
Kaz Kojima 47e5ff44cc re PR target/44531 ([SH] Multilib configuration does not work as expected on darwin)
PR target/44531
	* config.gcc (sh*-*-*): Use regular expressions instead of
	the 'i' modifier for sed substitutions.

From-SVN: r161807
2010-07-04 22:07:29 +00:00
Daniel Kraft b8e0aa859d gfc-internals.texi (gfc_code): Document BLOCK and ASSOCIATE.
2010-07-04  Daniel Kraft  <d@domob.eu>

	* gfc-internals.texi (gfc_code): Document BLOCK and ASSOCIATE.

From-SVN: r161806
2010-07-04 20:59:10 +02:00
Manuel López-Ibáñez de8e41bca8 re PR c++/16630 (missing type name in __PRETTY_FUNCTION__)
2010-07-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR c++/16630
	* g++.dg/ext/pretty3.C: New.

From-SVN: r161805
2010-07-04 18:16:59 +00:00
Jeremie Salvucci abbd64b92a gimple.c (gimple_body): Comments added.
2010-07-04  Jeremie Salvucci  <jeremie.salvucci@free.fr>

	* gimple.c (gimple_body): Comments added.

From-SVN: r161804
2010-07-04 17:59:18 +00:00
Richard Guenther 7f5ad6d757 re PR middle-end/44809 (Mozilla build fails in gimplification.)
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
2010-07-04 16:55:40 +00:00
Richard Guenther 17fc049f34 re PR rtl-optimization/44479 (false dependencies are computed after vectorization)
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
2010-07-04 16:08:21 +00:00
Paul Thomas c9dfc4144a re PR fortran/44596 ([OOP] Dynamic dispatch uses broken types)
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
2010-07-04 14:40:34 +00:00
Richard Guenther 72aa3dcaf5 re PR middle-end/44785 (Invalid memory access in gfortran.dg/extends_3.f03)
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
2010-07-04 12:20:14 +00:00
Richard Guenther ef2a9157f4 2010-07-4 Richard Guenther <rguenther@suse.de>
* tree-ssa-sccvn.c (vn_reference_lookup_3): Fix last commit.

From-SVN: r161799
2010-07-04 11:38:01 +00:00
Richard Guenther 4fa4929ea8 re PR tree-optimization/44656 (VN should value-replace operands during alias-oracle walk)
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
2010-07-04 10:52:43 +00:00
Ira Rosen 720f52395d tm.texi.in (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Document new arguments.
* 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
2010-07-04 08:54:52 +00:00
GCC Administrator addced2e92 Daily bump.
From-SVN: r161795
2010-07-04 00:17:09 +00:00
H.J. Lu 24b93bd603 Add a testcase for PR 44806.
2010-07-03  H.J. Lu  <hongjiu.lu@intel.com>

	PR c/44806
	* gcc.dg/torture/pr44806.c: New.

From-SVN: r161787
2010-07-03 15:44:32 -07:00
John David Anglin d3ca3d6bd7 re PR target/44597 (FAIL: gcc.c-torture/execute/builtin-prefetch-2.c compilation, ICE)
PR target/44597
	* config/pa/predicates.md (prefetch_cc_operand): Remove.
	(prefetch_nocc_operand): Likewise.
	* config/pa/pa.md (prefetch): Revise expander to use prefetch_20.
	(prefetch_20): New insn.
	(prefetch_cc): Remove.
	(prefetch_nocc): Likewise.

From-SVN: r161786
2010-07-03 22:43:47 +00:00
Manuel López-Ibáñez 4d451982e3 c-common.c (IN_GCC_FRONTEND): Do not undef.
2010-07-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	* c-family/c-common.c (IN_GCC_FRONTEND): Do not undef.
	Do not include expr.h
	(vector_mode_valid_p): Move here.
	* expr.c (vector_mode_valid_p): Move to c-common.c.
	* expr.h (vector_mode_valid_p): Do not declare here.
	* system.h: Poison GCC_EXPR_H in front-ends.
	* Makefile.in: Update dependencies.

From-SVN: r161785
2010-07-03 21:17:46 +00:00
John David Anglin 3a0c7e3af1 re PR target/44705 (FAIL: gcc.dg/pr44674.c (internal compiler error))
PR target/44705
	* config/pa/pa.h (GO_IF_LEGITIMATE_ADDRESS): Reject LABEL_REF.

From-SVN: r161781
2010-07-03 20:28:44 +00:00
Steven Bosscher 119fe9156d Move c-family/* ChangeLog entries to their proper place.
From-SVN: r161780
2010-07-03 20:09:45 +00:00
Jan Hubicka f029db6980 timevar.def (TV_OUT_OF_SSA, [...]): New timevars.
* timevar.def (TV_OUT_OF_SSA, TV_VAR_EXPAND, TV_POST_EXPAND,
	TV_VAR_TRACKING_DATAFLOW, TV_VAR_TRACKING_EMIT): New timevars.
	* cfgexpand.c (gimple_expand_cfg): Use new timevars.
	* var-tracking.c (vt_find_locations, variable_tracking_main_1):
	Likewise.

	* lto-stramer-out.c (pass_ipa_lto_gimple_out, pass_ipa_lto_finish_out):
	Update timevars.V
	* timevar.def (TV_IPA_LTO_GIMPLE_IO, TV_IPA_LTO_DECL_IO): Remove.
	(TV_IPA_LTO_GIMPLE_IN, TV_IPA_LTO_GIMPLE_OUT, TV_IPA_LTO_DECL_IN,
	TV_IPA_LTO_DECL_OUT): New.
	* lto.c (read_cgraph_and_symbols, materialize_cgraph): Update timevars.

From-SVN: r161779
2010-07-03 19:34:30 +00:00
Jan Hubicka 9b8051b48a ipa-inline.c (update_edge_key): Break out from ...
* ipa-inline.c (update_edge_key): Break out from ...
	update_callers_keys): ... here;
	(update_callee_keys): Update only the edges from caller to callee.
	(update_all_calle_keys): Do what update_calle_keys did.
	(decide_inlining_of_small_functions): Avoid recomputing of all
	callees when badness increase.

From-SVN: r161778
2010-07-03 19:33:14 +00:00
Nathan Froyd 3e78185c79 re PR objc/24867 (many N^2 loops in objc frontend)
PR objc/24867
	* objc-act.c (build_sized_array_type): New function.
	(add_objc_string): Use it.
	(generate_protocol_list): Likewise.
	(generate_objc_image_info): Likewise.
	(add_field_decl): New function.
	(objc_build_struct): Use a VEC rather than building a TREE_LIST.
	(generate_struct_by_value_array): Use add_field_decl.
	(build_objc_symtab_template): Likewise.
	(build_module_descriptor): Likewise.
	(build_objc_exception_stuff): Likewise.
	(build_protocol_template): Likewise.
	(build_method_prototype_list_template): Likewise.
	(build_method_prototype_template): Likewise.
	(build_category_template): Likewise.
	(build_selector_template): Likewise.
	(build_class_template): Likewise.
	(build_super_template): Likewise.
	(build_ivar_template): Likewise.
	(build_ivar_list_template): Likewise.
	(build_method_list_template): Likewise.
	(build_method_template): Likewise.

From-SVN: r161777
2010-07-03 19:00:52 +00:00
Jie Zhang 7c4f0041b0 arm.c (arm_attr_length_move_neon): New.
* config/arm/arm.c (arm_attr_length_move_neon): New.
	* config/arm/arm-protos.h (arm_attr_length_move_neon): Declare.
	* config/arm/neon.md (define_mode_attr V_slen): Remove.
	(neon_mov<mode> for VSTRUCT): Use arm_attr_length_move_neon
	to compute length attribute.

From-SVN: r161776
2010-07-03 16:49:05 +00:00
Jie Zhang 4e6f5666ac vfp.md (*push_multi_vfp): Use vfp_register_operand as predicate for operand 1 and remove its constraint.
* config/arm/vfp.md (*push_multi_vfp): Use vfp_register_operand
	as predicate for operand 1 and remove its constraint.
	* config/arm/predicates.md (vfp_register_operand): New.
	* config/arm/arm.md (*push_multi): Remove the constraint of
	operand 1.
	(*push_fp_multi): Likewise.

From-SVN: r161775
2010-07-03 16:35:02 +00:00
Eric Botcazou 6687b74039 * gimplify.c (mostly_copy_tree_r): Deal with BIND_EXPR.
From-SVN: r161774
2010-07-03 13:14:48 +00:00
Jonathan Wakely 21ffc3f709 regex_compiler.h: Fix filename in doxygen comment.
2010-07-03  Jonathan Wakely  <jwakely.gcc@gmail.com>

	* include/bits/regex_compiler.h: Fix filename in doxygen comment.
	* include/bits/regex_constants.h: Likewise.
	* include/bits/regex_error.h: Likewise.
	* include/bits/regex_grep_matcher.h: Likewise.
	* include/bits/regex_grep_matcher.tcc: Likewise.
	* include/bits/regex_nfa.tcc: Likewise.

From-SVN: r161773
2010-07-03 13:35:03 +01:00
Jan Hubicka bd7f30a156 * config/i386/i386.c (override_options): Revert accidental commit.
From-SVN: r161772
2010-07-03 11:55:30 +00:00