1. 26 May, 2009 6 commits
  2. 25 May, 2009 10 commits
    • re PR c++/38064 ([c++0x] operator== doesn't work for enum classes) · 550a799d
      	PR c++/38064
      	* typeck.c (cp_build_binary_op): Allow ENUMERAL_TYPE in
      	arithmetic comparisons.
      	(cp_common_type): Handle scoped enums.
      
      	* call.c (promoted_arithmetic_type_p): Don't use INTEGRAL_TYPE_P.
      	(add_builtin_candidate, add_builtin_candidates): Likewise.
      	(convert_like_real): Likewise.
      	* class.c (check_bitfield_decl): Likewise.
      	* decl.c (check_static_variable_definition): Likewise.
      	(compute_array_index_type): Likewise.
      	* decl2.c (grokbitfield): Likewise.
      	* init.c (build_new_1): Likewise.
      	* pt.c (convert_nontype_argument): Likewise.
      	(current_instantiation): Likewise.
      	* tree.c (pod_type_p): Likewise.
      	* typeck.c (build_static_cast_1): Likewise.
      	(build_reinterpret_cast_1): Likewise.
      
      From-SVN: r147854
      Jason Merrill committed
    • cgraph.c (dump_cgraph_node): Dump size/time/benefit. · 85057983
      	* cgraph.c (dump_cgraph_node): Dump size/time/benefit.
      	* cgraph.h (struct inline_summary): New filed self_wize,
      	size_inlining_benefit, self_time and time_inlining_benefit.
      	(struct cgraph_global_info): Replace insns by time ans size fields.
      	* ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
      	(ipcp_estimate_growth, ipcp_insert_stage): Likewise.
      	(ipcp_update_callgraph): Do not touch function bodies.
      	* ipa-inline.c: Include except.h
      	(MAX_TIME): New constant.
      	(overall_insns): Remove.
      	(leaf_node_p): New.
      	(overall_size, max_benefit): New static variables.
      	(cgraph_estimate_time_after_inlining): New function.
      	(cgraph_estimate_size_after_inlining): Rewrite using benefits.
      	(cgraph_clone_inlined_nodes): Update size.
      	(cgraph_mark_inline_edge): Update size.
      	(cgraph_estimate_growth): Use size info.
      	(cgraph_check_inline_limits): Check size.
      	(cgraph_default_inline_p): Likewise.
      	(cgraph_edge_badness): Compute badness based on benefit and size cost.
      	(cgraph_decide_recursive_inlining): Check size.
      	(cgraph_decide_inlining_of_small_function): Update size; dump sizes and
      	times.
      	(cgraph_decide_inlining): Likewise.
      	(cgraph_decide_inlining_incrementally): Likewise; honor
      	PARAM_EARLY_INLINING_INSNS.
      	(likely_eliminated_by_inlining_p): New predicate.
      	(estimate_function_body_sizes): New function.
      	(compute_inline_parameters): Use it.
      	* except.c (must_not_throw_labels): New function.
      	* except.h (must_not_throw_labels): Declare.
      	* tree-inline.c (init_inline_once): Kill inlining_weigths
      	* tree-ssa-structalias.c: Avoid uninitialized warning.
      	* params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
      	(PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
      	(PARAM_INLINE_CALL_COST): Remove.
      	(PARAM_EARLY_INLINING_INSNS): New.
      
      From-SVN: r147852
      Jan Hubicka committed
    • re PR tree-optimization/36327 (SCCVN should look through struct copies) · 01df5c8a
      2009-05-25  Richard Guenther  <rguenther@suse.de>
      
      	PR tree-optimization/36327
      	* tree-ssa-alias.c (walk_non_aliased_vuses): Add second walker
      	callback for reference translation or lookup at the point
      	of may-defs.
      	* tree-ssa-alias.h (walk_non_aliased_vuses): Adjust prototype.
      	* tree-ssa-sccvn.c (get_ref_from_reference_ops): Bail out
      	for union COMPONENT_REFs.
      	(vn_reference_lookup_3): New callback.  Lookup from memset
      	and CONSTRUCTOR assignment, translate through struct copies.
      	(vn_reference_lookup_pieces): Make sure to not free the
      	passed operands array.  Adjust walk_non_aliased_vuses call.
      	(vn_reference_lookup): Adjust walk_non_aliased_vuses call,
      	make sure we do not leak memory.
      
      	* gcc.dg/tree-ssa/ssa-fre-24.c: New testcase.
      	* gcc.dg/tree-ssa/ssa-fre-25.c: Likewise.
      	* gcc.dg/tree-ssa/sra-2.c: Disable FRE.
      	* gcc.dg/vect/no-vfa-vect-43.c: Adjust.
      	* gcc.dg/vect/vect-40.c: Likewise.
      	* gcc.dg/vect/vect-42.c: Likewise.
      	* gcc.dg/vect/vect-46.c: Likewise.
      	* gcc.dg/vect/vect-76.c: Likewise.
      
      From-SVN: r147851
      Richard Guenther committed
    • re PR fortran/40176 (Fortran 2003: Procedure pointers with array return value) · c74b74a8
      2009-05-25  Janus Weil  <janus@gcc.gnu.org>
      
      	PR fortran/40176
      	* primary.c (gfc_match_varspec): Handle procedure pointer components
      	with array return value.
      	* resolve.c (resolve_expr_ppc): Ditto.
      	(resolve_symbol): Make sure the interface of a procedure pointer has
      	been resolved.
      	* trans-array.c (gfc_walk_function_expr): Handle procedure pointer
      	components with array return value.
      	* trans-expr.c (gfc_conv_component_ref,gfc_conv_procedure_call,
      	gfc_trans_arrayfunc_assign): Ditto.
      	(gfc_trans_pointer_assignment): Handle procedure pointer assignments,
      	where the rhs is a dummy argument.
      	* trans-types.c (gfc_get_ppc_type,gfc_get_derived_type): Handle
      	procedure pointer components with array return value.
      
      
      2009-05-25  Janus Weil  <janus@gcc.gnu.org>
      
      	PR fortran/40176
      	* gfortran.dg/proc_ptr_18.f90: New.
      	* gfortran.dg/proc_ptr_19.f90: New.
      	* gfortran.dg/proc_ptr_comp_9.f90: New.
      	* gfortran.dg/proc_ptr_comp_10.f90: New.
      
      From-SVN: r147850
      Janus Weil committed
    • tree-ssa-alias.h (dump_points_to_solution): Declare. · 6b8ed145
      2009-05-25  Richard Guenther  <rguenther@suse.de>
      
      	* tree-ssa-alias.h (dump_points_to_solution): Declare.
      	* tree-inline.c (expand_call_inline): Reset the escaped and
      	callused solutions.
      	* tree-ssa-structalias.c (pass_build_ealias): New.
      	* tree-pass.h (pass_build_ealias): Declare.
      	* passes.c (init_optimization_passes): Add PTA during 
      	early optimizations.
      	* tree-ssa-alias.c (dump_alias_info): Dump the ESCAPED
      	and CALLUSED solutions.
      	(dump_points_to_solution): New function, split out from ...
      	(dump_points_to_info_for): ... here.
      	* tree-parloops.c (parallelize_loops): Reset the escaped and
      	callused solutions.
      
      	* gcc.dg/tree-ssa/ssa-fre-14.c: Adjust.
      	* gcc.dg/tree-ssa/ssa-fre-15.c: Likewise.
      
      From-SVN: r147848
      Richard Guenther committed
    • makefile.vms: New file to compile gas on VMS. · 0d38b677
      2009-05-25  Tristan Gingold  <gingold@adacore.com>
      
      	* makefile.vms: New file to compile gas on VMS.
      
      	* configure.com: New file to do configuration on VMS with DCL.
      
      From-SVN: r147847
      Tristan Gingold committed
    • re PR bootstrap/40027 (i686-pc-solaris2.10 bootstrap fails using Sun ld) · 0adcf178
      	PR bootstrap/40027
      	* config/i386/i386.c (USE_HIDDEN_LINKONCE): Only define if missing.
      	* config/i386/sol2.h [!TARGET_GNU_LD] (USE_HIDDEN_LINKONCE): Define.
      
      From-SVN: r147845
      Rainer Orth committed
    • re PR tree-optimization/40238 (ICE in gimple_verify_flow_info, at tree-cfg.c:4603) · 12aaf609
      	PR tree-optimization/40238
      	* tree-vect-stmts.c (vect_init_vector): Insert initialization
      	statements after basic block's labels.
      	* tree-vect-slp.c (vect_slp_transform_bb): Call destroy_bb_vec_info() 
      	to free	the allocated memory.
      
      From-SVN: r147844
      Ira Rosen committed
    • Dominique Dhumieres · 7ac61957
      2009-05-24  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
      	    Dominique Dhumieres
      
      	PR fortran/35732
      	PR fortran/39872
      	* trans-array.c (gfc_conv_ss_startstride): Add one to index.
      	* gfortran.dg/bounds_check_fail_3.f90: New test.
      	* gfortran.dg/bounds_check_fail_4.f90: New test.
      	* gfortran.dg/bounds_check_14.f90: Update test.
      	* gfortran.dg/bound_4.f90: Update test.
      
      From-SVN: r147842
      Jerry DeLisle committed
    • Daily bump. · ea74392e
      From-SVN: r147840
      GCC Administrator committed
  3. 24 May, 2009 10 commits
    • sh.c (sh_set_return_address): Mark store of return address with a USE. · 7f9a14e3
      	* gcc/config/sh/sh.c (sh_set_return_address): Mark store of
      	return address with a USE.
      
      From-SVN: r147836
      Kaz Kojima committed
    • re PR tree-optimization/40233 (Test failures with "alignment of array elements… · b842d478
      re PR tree-optimization/40233 (Test failures with "alignment of array elements is greater than element size")
      
      2009-05-24  Richard Guenther  <rguenther@suse.de>
      
      	PR middle-end/40233
      	* tree.c (make_vector_type): Build the TYPE_DEBUG_REPRESENTATION_TYPEs
      	array type from the main variant of the inner type.
      
      	* gcc.c-torture/compile/pr40233.c: New testcase.
      
      From-SVN: r147835
      Richard Guenther committed
    • Makefile.tpl (compare-target): Skip ./ada/*tools directories. · 2e6a3c8d
      	* Makefile.tpl (compare-target): Skip ./ada/*tools directories.
      	* Makefile.in: Regenerate.
      
      From-SVN: r147834
      Nicolas Roche committed
    • erf_2.F90 (dg-options): Add -mieee for alpha*-*-* targets. · 782dc37a
      	* gfortran.dg/erf_2.F90 (dg-options): Add -mieee
      	for alpha*-*-* targets.
      
      From-SVN: r147833
      Uros Bizjak committed
    • vax-protos.h (legitimate_constant_address_p): Change definition to bool (from… · 8db7b33f
      vax-protos.h (legitimate_constant_address_p): Change definition to bool (from int) to un-break build.
      
      2009-05-24  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
      
      	* config/vax/vax-protos.h (legitimate_constant_address_p): Change
      	definition to bool (from int) to un-break build.
      	(legitimate_constant_p, vax_mode_dependent_address_p): Likewise.
      
      From-SVN: r147832
      Jan-Benedict Glaw committed
    • tree-ssa-operands.h (push_stmt_changes, [...]): Delete. · cff4e50d
      2009-05-24  Paolo Bonzini  <bonzini@gnu.org>
      
      	* tree-ssa-operands.h (push_stmt_changes, pop_stmt_changes,
      	discard_stmt_changes): Delete.
      	* tree-ssa-operands.c (scb_stack): Delete.
      	(init_ssa_operands): Do not initialize it.
      	(fini_ssa_operands): Do not free it.
      	(push_stmt_changes, pop_stmt_changes, discard_stmt_changes): Delete.
      
      	* tree-cfg.c (replace_uses_by): Replace pop_stmt_changes with 
      	update_stmt, remove the others.  Fix comments.
      	* tree-dfa.c (optimize_stack_restore): Likewise.
      	* tree-ssa-forwprop.c (forward_propagate_addr_expr): Likewise.
      	* tree-ssa-loop-ivopts.c (rewrite_use): Likewise.
      	* tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
      	* tree-ssa-ccp.c (optimize_stack_restore, execute_fold_all_builtins):
      	Likewise.
      	* tree-ssa-propagate.c (substitute_and_fold): Likewise.
      	* tree-ssa-dom.c (propagate_rhs_into_lhs): Likewise.
      	(dom_opt_finalize_block): Likewise, adjusting access to stmts_to_rescan.
      	(optimize_stmt): Likewise, adjusting access to stmts_to_rescan.
      	(stmts_to_rescan): Change item type to gimple.
      	(tree_ssa_dominator_optimize): Change type of stmts_to_rescan.
      
      From-SVN: r147831
      Paolo Bonzini committed
    • switch.adb (Is_Internal_GCC_Switch, [...]): Bodies of ... · 6e00e546
              * switch.adb (Is_Internal_GCC_Switch, Switch_Last): Bodies of ...
              * switch.ads (Is_Internal_GCC_Switch, Switch_Last): New functions.
              Add -auxbase variants to the list of recognized internal switches.
              * back_end.adb (Scan_Back_End_Switches): Use the new functions and
              adjust comments.
              * lib.ads: Make comment on internal GCC switches more general.
              * gcc-interface/lang-specs.h (specs for Ada): Pass -auxbase variants
              as for C.
      
      From-SVN: r147830
      Olivier Hainque committed
    • passes.texi (Tree-SSA passes): Document SLP pass. · a70d6342
      	* doc/passes.texi (Tree-SSA passes): Document SLP pass.
      	* tree-pass.h (pass_slp_vectorize): New pass.
      	* params.h (SLP_MAX_INSNS_IN_BB): Define.
      	* timevar.def (TV_TREE_SLP_VECTORIZATION): Define.
      	* tree-vectorizer.c (timevar.h): Include.
      	(user_vect_verbosity_level): Declare.
      	(vect_location): Fix comment.
      	(vect_set_verbosity_level): Update user_vect_verbosity_level
      	instead of vect_verbosity_level.
      	(vect_set_dump_settings): Add an argument. Ignore user defined
      	verbosity if dump flags require higher level of verbosity. Print to
      	stderr only for loop vectorization.
      	(vectorize_loops): Update call to vect_set_dump_settings.
      	(execute_vect_slp): New function.
      	(gate_vect_slp): Likewise.
      	(struct gimple_opt_pass pass_slp_vectorize): New.
      	* tree-vectorizer.h (struct _bb_vec_info): Define along macros to
      	access its members.
      	(vec_info_for_bb): New function.
      	(struct _stmt_vec_info): Add bb_vinfo and a macro for its access.
      	(VECTORIZATION_ENABLED): New macro.
      	(SLP_ENABLED, SLP_DISABLED): Likewise.
      	(vect_is_simple_use): Add bb_vec_info argument.
      	(new_stmt_vec_info, vect_analyze_data_ref_dependences,
      	vect_analyze_data_refs_alignment, vect_verify_datarefs_alignment,
      	vect_analyze_data_ref_accesses, vect_analyze_data_refs,
      	vect_schedule_slp, vect_analyze_slp): Likewise.
      	(vect_analyze_stmt): Add slp_tree argument.
      	(find_bb_location): Declare.
      	(vect_slp_analyze_bb, vect_slp_transform_bb): Likewise.
      	* tree-vect-loop.c (new_loop_vec_info): Adjust function calls.
      	(vect_analyze_loop_operations, vect_analyze_loop,
      	get_initial_def_for_induction, vect_create_epilog_for_reduction,
      	vect_finalize_reduction, vectorizable_reduction,
      	vectorizable_live_operation, vect_transform_loop): Likewise.
      	* tree-data-ref.c (dr_analyze_innermost): Update comment,
      	skip evolution analysis if analyzing a basic block.
      	(dr_analyze_indices): Likewise.
      	(initialize_data_dependence_relation): Skip the test whether the
      	object is invariant for basic blocks.
      	(compute_all_dependences): Skip dependence analysis for data
      	references in basic blocks.
      	(find_data_references_in_stmt): Don't fail in case of invariant
      	access in basic block.
      	(find_data_references_in_bb): New function.
      	(find_data_references_in_loop): Move code to
      	find_data_references_in_bb    and add a call to it.
      	(compute_data_dependences_for_bb): New function.
      	* tree-data-ref.h (compute_data_dependences_for_bb): Declare.
      	* tree-vect-data-refs.c (vect_check_interleaving): Adjust to the case
      	that STEP is 0.
      	(vect_analyze_data_ref_dependence): Check for interleaving in case of
      	unknown dependence in basic block and fail in case of dependence in
      	basic block.
      	(vect_analyze_data_ref_dependences): Add bb_vinfo argument, get data
      	dependence instances from either loop or basic block vectorization
      	info.
      	(vect_compute_data_ref_alignment): Check if it is loop vectorization
      	before calling nested_in_vect_loop_p.
      	(vect_compute_data_refs_alignment): Add bb_vinfo argument, get data
      	dependence instances from either loop or basic block vectorization
      	info.
      	(vect_verify_datarefs_alignment): Likewise.
      	(vect_enhance_data_refs_alignment): Adjust function calls.
      	(vect_analyze_data_refs_alignment): Likewise.
      	(vect_analyze_group_access): Fix printing. Skip different checks if
      	DR_STEP is 0. Keep strided stores either in loop or basic block
      	vectorization data structure. Fix indentation.
      	(vect_analyze_data_ref_access): Fix comments, allow zero step in
      	basic blocks.
      	(vect_analyze_data_ref_accesses): Add bb_vinfo argument, get data
      	dependence instances from either loop or basic block vectorization
      	info.
      	(vect_analyze_data_refs): Update comment. Call
      	compute_data_dependences_for_bb to analyze basic blocks.
      	(vect_create_addr_base_for_vector_ref): Check for outer loop only in
      	case of loop vectorization. In case of basic block vectorization use
      	data-ref itself   as  a base.
      	(vect_create_data_ref_ptr): In case of basic block vectorization:
      	don't advance the pointer, add new statements before the current
      	statement.  Adjust function calls.
      	(vect_supportable_dr_alignment): Support only aligned accesses in
      	basic block vectorization.
      	* common.opt (ftree-slp-vectorize): New flag.
      	* tree-vect-patterns.c (widened_name_p): Adjust function calls.
      	(vect_pattern_recog_1): Likewise.
      	* tree-vect-stmts.c (process_use): Likewise.
      	(vect_init_vector): Add new statements in the beginning of the basic
      	block in case of basic block SLP.
      	(vect_get_vec_def_for_operand): Adjust function calls.
      	(vect_finish_stmt_generation): Likewise.
      	(vectorizable_call): Add assert that it is loop vectorization, adjust
      	function calls.
      	(vectorizable_conversion, vectorizable_assignment): Likewise.
      	(vectorizable_operation): In case of basic block SLP, take
      	vectorization factor from statement's type and skip the relevance
      	check. Adjust function calls.
      	(vectorizable_type_demotion): Add assert that it is loop
      	vectorization, adjust function calls.
      	(vectorizable_type_promotion): Likewise.
      	(vectorizable_store): Check for outer loop only in case of loop
      	vectorization. Adjust function calls. For basic blocks, skip the
      	relevance check and don't advance pointers.
      	(vectorizable_load): Likewise.
      	(vectorizable_condition): Add assert that it is loop vectorization,
      	adjust function calls.
      	(vect_analyze_stmt): Add argument. In case of basic block SLP, check
      	that it is not reduction, get vector type, call only supported
      	functions, skip loop    specific parts.
      	(vect_transform_stmt): Check for outer loop only in case of loop
      	vectorization.
      	(new_stmt_vec_info): Add new argument and initialize bb_vinfo.
      	(vect_is_simple_use): Fix comment, add new argument, fix conditions
      	for external definition.
      	* passes.c (pass_slp_vectorize): New pass.
      	* tree-vect-slp.c (find_bb_location): New function.
      	(vect_get_and_check_slp_defs): Add argument, adjust function calls,
      	check for patterns only in loops.
      	(vect_build_slp_tree): Add argument, adjust function calls, fail in
      	case of multiple types in basic block SLP.
      	(vect_mark_slp_stmts_relevant): New function.
      	(vect_supported_load_permutation_p): Fix comment.
      	(vect_analyze_slp_instance): Add argument. In case of basic block
      	SLP, take vectorization factor from statement's type, check that
      	unrolling factor is 1. Adjust function call. Save SLP instance in
      	either loop or basic block vectorization structure. Return FALSE,
      	if SLP failed.
      	(vect_analyze_slp): Add argument. Get strided stores groups from
      	either loop or basic block vectorization structure. Return FALSE
      	if basic block SLP failed.
      	(new_bb_vec_info): New function.
      	(destroy_bb_vec_info, vect_slp_analyze_node_operations,
      	vect_slp_analyze_operations, vect_slp_analyze_bb): Likewise.
      	(vect_schedule_slp): Add argument. Get SLP instances from either
      	loop or basic block vectorization structure. Set vectorization factor
      	to be 1 for basic block SLP.
      	(vect_slp_transform_bb): New function.
      	* params.def (PARAM_SLP_MAX_INSNS_IN_BB): Define.
      
      From-SVN: r147829
      Ira Rosen committed
    • initializer_list (initializer_list): Add missing typedefs. · ffa52e11
      2009-05-24  Eelis van der Weegen  <eelis@eelis.net>
      	
      	* libsupc++/initializer_list (initializer_list): Add missing typedefs.
      
      From-SVN: r147828
      Eelis van der Weegen committed
    • Daily bump. · d2993707
      From-SVN: r147827
      GCC Administrator committed
  4. 23 May, 2009 10 commits
    • final.c (shorten_branches): Do not align labels for jump tables. · 0676c393
      	* final.c (shorten_branches): Do not align labels for jump tables.
      	(final_scan_insn): Use JUMP_TABLE_DATA_P.
      
      	* gcc.dg/falign-labels-1.c: New test.
      
      Co-Authored-By: Maxim Kuvyrkov <maxim@codesourcery.com>
      
      From-SVN: r147824
      Mark Mitchell committed
    • passes.texi: Standardize spelling of RTL, Tree and Tree SSA. · 94324dae
      	* doc/passes.texi: Standardize spelling of RTL, Tree and Tree SSA.
      	Remove outdated reference to flow.c and fix nits.
      	* doc/gccint.texi: Tweak RTL description.
      	* doc/rtl.texi: Likewise.
      
      From-SVN: r147821
      Eric Botcazou committed
    • decl.c (set_rm_size): Bypass the check for packed array types. · 03049a4e
      	* gcc-interface/decl.c (set_rm_size): Bypass the check for packed array
      	types.
      
      From-SVN: r147819
      Eric Botcazou committed
    • decl.c (gnat_to_gnu_entity): Do not modify the original type because of the alignment when... · aae8570a
      	* gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Do not modify the
      	original type because of the alignment when there is an address clause.
      
      From-SVN: r147818
      Eric Botcazou committed
    • avr.c: Change my email address. · 92bffc14
      	* config/avr/avr.c: Change my email address.
      	* config/avr/avr.h: Likewise.
      	* config/avr/avr.md: Likewise.
      	* config/avr/avr-protos.h: Likewise.
      	* config/avr/libgcc.S: Likewise.
      
      From-SVN: r147817
      Denis Chertykov committed
    • Trevor Smigiel <Trevor_Smigiel@playstation.sony.com> · eec9405e
      	* config/spu/spu-protos.h (aligned_mem_p, spu_valid_mov): Remove.
      	(spu_split_load, spu_split_store): Change return type to int.
      	(spu_split_convert): Declare.
      	* config/spu/predicates.md (spu_mem_operand): Remove.
      	(spu_mov_operand): Update.
      	(spu_dest_operand, shiftrt_operator, extend_operator): Define.
      	* config/spu/spu.c (regno_aligned_for_load): Remove.
      	(reg_aligned_for_addr, spu_expand_load): Define.
      	(spu_expand_extv): Reimplement and handle MEM.
      	(spu_expand_insv): Handle MEM.
      	(spu_sched_reorder): Handle insn's with length 0.
      	(spu_legitimate_address_p): Reimplement.
      	(store_with_one_insn_p): Return TRUE for any mode with size
      	larger than 16 bytes.
      	(address_needs_split): Define.
      	(spu_expand_mov): Call spu_split_load and spu_split_store for MEM
      	operands.
      	(spu_convert_move): Define.
      	(spu_split_load): Use spu_expand_load and change all MEM's to
      	TImode.
      	(spu_split_store): Change all MEM's to TImode.
      	(spu_init_expanders): Preallocate registers that correspond to
      	LAST_VIRTUAL_REG+1 and LAST_VIRTUAL_REG+2 and set them with
      	mark_reg_pointer.
      	(spu_split_convert): Define.
      	* config/spu/spu.md (QHSI, QHSDI): New mode iterators.
      	(_move<mode>, _movdi, _movti): Update predicate and condition.
      	(load, store): Change to define_split.
      	(extendqiti2, extendhiti2, extendsiti2, extendditi2): Simplify to
      	extend<mode>ti2.
      	(zero_extendqiti2, zero_extendhiti2, <v>lshr<mode>3_imm): Define.
      	(lshr<mode>3, lshr<mode>3_imm, lshr<mode>3_re): Simplify to one
      	define_insn_and_split of lshr<mode>3.
      	(shrqbybi_<mode>, shrqby_<mode>): Simplify to define_expand.
      	(<v>ashr<mode>3_imm): Define.
      	(extv, extzv, insv): Allow MEM operands.
      	(trunc_shr_ti<mode>, trunc_shr_tidi, shl_ext_<mode>ti,
      	shl_ext_diti, sext_trunc_lshr_tiqisi, zext_trunc_lshr_tiqisi,
      	sext_trunc_lshr_tihisi, zext_trunc_lshr_tihisi): Define for combine.
      	(_spu_convert2): Change to define_insn_and_split and remove the
      	corresponding define_peephole2.
      	(stack_protect_set, stack_protect_test, stack_protect_test_si):
      	Change predicates to memory_operand.
      
      From-SVN: r147814
      Trevor Smigiel committed
    • Fix typo in ChangeLog · 6cfd7dcf
      From-SVN: r147813
      Mark Mitchell committed
    • thumb2.md: Add 16-bit multiply instructions. · 7d31a807
      	* config/arm/thumb2.md: Add 16-bit multiply instructions.
      	gcc/testsuite/
      
      	* lib/target-supports.exp (check_effective_target_arm_thumb2_ok):
      	New function.
      	* gcc.target/arm/thumb2-mul-space.c: New file.
      	* gcc.target/arm/thumb2-mul-space-2.c: New file.
      	* gcc.target/arm/thumb2-mul-space-3.c: New file.
      	* gcc.target/arm/thumb2-mul-speed.c: New file.
      
      From-SVN: r147812
      Mark Mitchell committed
    • Daily bump. · 67f43f51
      From-SVN: r147811
      GCC Administrator committed
  5. 22 May, 2009 4 commits
    • Fix PR tree-optimization/40219 · d021d274
      From-SVN: r147807
      Michael Meissner committed
    • re PR tree-optimization/38964 (TBAA side-effects of C++ new still missing) · 4d7a65ea
      2009-05-22  Richard Guenther  <rguenther@suse.de>
      
      	PR middle-end/38964
      	* alias.c (write_dependence_p): Do not use TBAA for answering
      	anti-dependence or output-dependence.
      	* tree-ssa-structalias.c (set_uids_in_ptset): Remove TBAA pruning
      	code.
      	(emit_pointer_definition): Remove.
      	(emit_alias_warning): Likewise.
      	(find_what_var_points_to): Remove TBAA pruning code.
      	(find_what_p_points_to): Likewise.  Do not warn about strict-aliasing
      	violations.
      	(compute_points_to_sets): Remove code computing the set of
      	dereferenced pointers.
      	* tree-data-ref.c (dr_may_alias_p): Properly use the split
      	oracle for querying anti and output dependencies.
      	* tree-ssa-alias.c (refs_may_alias_p_1): Add argument specifying
      	if TBAA may be applied.
      	(refs_anti_dependent_p): New function.
      	(refs_output_dependent_p): Likewise.
      	* tree-ssa-alias.h (refs_anti_dependent_p): Declare.
      	(refs_output_dependent_p): Likewise.
      
      	* doc/tree-ssa.texi (Memory model): New section.
      
      	testsuite/
      	* g++.dg/warn/Wstrict-aliasing-float-ref-int-obj.C: XFAIL.
      	* gcc.dg/Wstrict-aliasing-converted-assigned.c: Likewise.
      	* gcc.dg/Wstrict-aliasing-float-ptr-int-obj.c: Likewise.
      
      	* doc/c-tree.texi (CHANGE_DYNAMIC_TYPE_EXPR): Remove.
      	* doc/gimple.texi (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove.
      
      	* cfgexpand.c (expand_gimple_basic_block): Do not handle
      	GIMPLE_CHANGE_DYNAMIC_TYPE or CHANGE_DYNAMIC_TYPE_EXPR.
      	* expr.c (expand_expr_real_1): Likewise.
      	* gimple-low.c (lower_stmt): Likewise.
      	* gimple-pretty-print.c (dump_gimple_stmt): Likewise.
      	(dump_gimple_cdt): Remove.
      	* gimple.c (gss_for_code): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE.
      	(gimple_size): Likewise.
      	(walk_gimple_op): Likewise.
      	(is_gimple_stmt): Likewise.
      	(walk_stmt_load_store_addr_ops): Likewise.
      	(gimple_build_cdt): Remove.
      	* gimple.def (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove.
      	* gimple.h (gimple_cdt_new_type): Remove.
      	(gimple_cdt_new_type_ptr): Likewise.
      	(gimple_cdt_set_new_type): Likewise.
      	(gimple_cdt_location): Likewise.
      	(gimple_cdt_location_ptr): Likewise.
      	(gimple_cdt_set_location): Likewise.
      	* gimplify.c (gimplify_expr): Do not handle CHANGE_DYNAMIC_TYPE_EXPR.
      	* tree-cfg.c (remove_useless_stmts_1): Do not handle
      	GIMPLE_CHANGE_DYNAMIC_TYPE.
      	(verify_types_in_gimple_stmt): Likewise.
      	* tree-inline.c (estimate_num_insns): Likewise.
      	(expand_call_inline): Do not copy DECL_NO_TBAA_P.
      	(copy_decl_to_var): Likewise.
      	(copy_result_decl_to_var): Likewise.
      	* tree-pretty-print.c (dump_generic_node): Do not handle
      	CHANGE_DYNAMIC_TYPE_EXPR.
      	* tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
      	* tree-ssa-operands.c (get_expr_operands): Likewise.
      	* tree-ssa-structalias.c (struct variable_info): Remove
      	no_tbaa_pruning member.
      	(new_var_info): Do not set it based on DECL_NO_TBAA_P.
      	(unify_nodes): Do not copy it.
      	(find_func_aliases): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE.
      	(dump_solution_for_var): Do not dump no_tbaa_pruning state.
      	(set_uids_in_ptset): Do not check it.
      	(find_what_var_points_to): Likewise.
      	(compute_tbaa_pruning): Remove.
      	(compute_points_to_sets): Do not call it.
      	* tree.c (walk_tree_1): Do not handle CHANGE_DYNAMIC_TYPE_EXPR.
      	* tree.def (CHANGE_DYNAMIC_TYPE_EXPR): Remove.
      	* tree.h (CHANGE_DYNAMIC_TYPE_NEW_TYPE): Remove.
      	(CHANGE_DYNAMIC_TYPE_LOCATION): Likewise.
      	(DECL_NO_TBAA_P): Likewise.
      	(struct tree_decl_common): Move no_tbaa_flag to unused flags section.
      	* omp-low.c (copy_var_decl): Do not copy DECL_NO_TBAA_P.
      	(expand_omp_atomic_pipeline): Do not set it.
      	* print-tree.c (print_node): Do not dump it.
      	* tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
      	redundant check.
      
      	cp/
      	* init.c (avoid_placement_new_aliasing): Remove.
      	(build_new_1): Do not call it.
      
      From-SVN: r147805
      Richard Guenther committed
    • re PR target/39856 (ICE in subst_stack_regs_pat, at reg-stack.c:1386) · 83a6ac60
      2009-05-22 Vladimir Makarov <vmakarov@redhat.com>
      
      	PR target/39856
      	* reg-stack.c (subst_stack_regs_pat): Remove gcc_assert for note
      	for clobber.
      
      From-SVN: r147804
      Vladimir Makarov committed
    • win32.S (_ffi_closure_STDCALL): New function. · 84c40c4a
      	* src/x86/win32.S (_ffi_closure_STDCALL):  New function.
      	(.eh_frame):  Add FDE for it.
      
      From-SVN: r147802
      Dave Korn committed