2011-01-24 Kai Tietz * emit-rtl.c (reg_attrs_htab_hash): Replace long by intptr_t. 2011-01-24 Paul Koning * builtins.c (c_readstr): Fix byte order if BYTES_BIG_ENDIAN != WORDS_BIG_ENDIAN. 2011-01-24 H.J. Lu PR target/46519 * config/i386/i386.c: Include sbitmap.h and fibheap.h. (block_info): Add scanned and prev. (move_or_delete_vzeroupper_2): Return if the basic block has been scanned and the upper 128bit state is unchanged from the last scan. (move_or_delete_vzeroupper_1): Return true if the exit state is changed. (move_or_delete_vzeroupper): Visit basic blocks using the work-list based algorithm based on vt_find_locations in var-tracking.c. * config/i386/t-i386: Also depend on sbitmap.h and $(FIBHEAP_H). 2011-01-24 Nick Clifton * config/v850/v850.opt (mv850es): New option - alias for -mv850e1. * config/v850/v850.h (ASM_SPEC): If -mv850es is specified pass -mv850e1 to the assembler. If -mv850e1 or -mv850es is specified then define __v850e1__. * doc/invoke.texi: Document -mv850es. 2011-01-24 Richard Henderson * config/rx/predicates.md (rx_fp_comparison_operator): Don't accept compound unordered comparisons. * config/rx/rx.c (rx_split_fp_compare): Remove. * config/rx/rx-protos.h: Update. * config/rx/rx.md (gcc_conds, rx_conds): Remove. (cbranchsf4): Don't call rx_split_fp_compare. (*cbranchsf4): Use rx_split_cbranch. (*cmpsf): Don't accept "i" constraint. (*conditional_branch): Only valid after reload. (cstoresf4): Merge expander with insn. Don't call rx_split_fp_compare. 2011-01-24 Michael Meissner PR target/47385 * config/rs6000/altivec.md (vector constant splitters): Add support for creating vector single precision constants if -mvsx is used and we would create the constant using Altivec primitives. 2011-01-23 Bernd Schmidt Richard Sandiford PR rtl-optimization/47166 * reload1.c (emit_reload_insns): Disable the spill_reg_store mechanism for PRE_MODIFY and POST_MODIFY. (inc_for_reload): For PRE_MODIFY, return the insn that sets the reloadreg. 2011-01-23 Andreas Schwab * compare-elim.c (maybe_select_cc_mode): Add ATTRIBUTE_UNUSED markers. 2011-01-22 Jan Hubicka PR lto/47333 * lto-cgraph.c (reachable_from_this_partition_p): Fix pasto. 2011-01-22 Jan Hubicka PR tree-optimization/43884 PR lto/44334 * predict.c (maybe_hot_frequency_p): Use entry block frequency as base. * doc/invoke.texi (hot-bb-frequency-fraction): Update docs. 2011-01-22 Anatoly Sokolov * config/s390/s390.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove. * config/s390/s390.c (s390_register_move_cost, s390_memory_move_cost): New. (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define. 2011-01-22 Ulrich Weigand PR middle-end/47401 * except.c (sjlj_assign_call_site_values): Move setting the crtl->uses_eh_lsda flag to ... (sjlj_mark_call_sites): ... here. (sjlj_emit_function_enter): Support NULL dispatch label. (sjlj_build_landing_pads): In a function with no landing pads that still has must-not-throw regions, generate code to register a personality function with empty LSDA. 2011-01-21 Richard Henderson * config/rx/rx.c (TARGET_FLAGS_REGNUM): New. * config/mn10300/mn10300.c (TARGET_FLAGS_REGNUM): New. * compare-elim.c: New file. * Makefile.in (OBJS-common): Add it. (compare-elim.o): New. * common.opt (fcompare-elim): New. * opts.c (default_options_table): Add OPT_fcompare_elim. * tree-pass.h (pass_compare_elim_after_reload): New. * passes.c (init_optimization_passes): Add it. * recog.h: Protect against re-inclusion. * target.def (TARGET_FLAGS_REGNUM): New POD hook. * doc/invoke.texi (-fcompare-elim): Document it. * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Document it. * doc/tm.texi: Rebuild. 2011-01-22 Nick Clifton * config/rx/rx.md (cstoresf4): Pass comparison operator to rx_split_fp_compare. 2011-01-22 Nick Clifton * config/rx/rx.md (UNSPEC_CONST): New. (deallocate_and_return): Wrap the amount popped off the stack in an UNSPEC_CONST in order to stop it being rejected by -mmax-constant-size. (pop_and_return): Add a "(return)" rtx. (call): Drop the immediate operand. (call_internal): Likewise. (call_value): Likewise. (call_value_internal): Likewise. (sibcall_internal): Likewise. (sibcall_value_internal): Likewise. (sibcall): Likewise. Generate an explicit call using sibcall_internal. (sibcall_value): Likewise. (mov<>): FAIL if a constant operand is not legitimate. (addsi3_unpsec): New pattern. * config/rx/rx.c (rx_print_operand_address): Handle UNPSEC CONSTs. (ok_for_max_constant): New function. (gen_safe_add): New function. (rx_expand_prologue): Use gen_safe_add. (rx_expand_epilogue): Likewise. (rx_is_legitimate_constant): Use ok_for_max_constant. Handle UNSPEC CONSTs. 2011-01-21 Jeff Law PR tree-optimization/47053 * tree-ssa-dse.c (need_eh_cleanup): New bitmap. (dse_optimize_stmt): Set the appropriate bit in NEED_EH_CLEANUP when statements are deleted. (tree_ssa_dse): Allocate & free NEED_EH_CLEANUP. If NEED_EH_CLEANUP is nonempty, then purge dead edges and cleanup the CFG. 2011-01-21 Alexandre Oliva PR debug/47402 Temporarily revert: 2011-01-21 Alexandre Oliva PR debug/47106 * tree-dfa.c (create_var_ann): Mark variable as used. 2011-01-21 Jakub Jelinek PR middle-end/45566 * except.c (convert_to_eh_region_ranges): Emit queued no-region notes from other section in hot/cold partitioning even if last_action is -3. Increment call_site_base. PR rtl-optimization/47366 * fwprop.c (forward_propagate_into): Return bool. If any changes are made, -fnon-call-exceptions is used and REG_EH_REGION note is present, call purge_dead_edges and return true if it purged anything. (fwprop_addr): Adjust callers, call cleanup_cfg (0) if any EH edges were purged. 2011-01-21 Jeff Law PR rtl-optimization/41619 * caller-save.c (setup_save_areas): Break out code to determine which hard regs are live across calls by examining the reload chains so that it is always used. Eliminate code which checked REG_N_CALLS_CROSSED. 2011-01-21 Jakub Jelinek PR tree-optimization/47355 * tree-eh.c (cleanup_empty_eh_merge_phis): Give up if NOP has non-debug uses beyond PHIs in new_bb. 2011-01-21 Alexandre Oliva PR debug/47106 * cfgexpand.c (account_used_vars_for_block): Only account vars that are annotated as used. (estimated_stack_frame_size): Don't set TREE_USED. * tree-dfa.c (create_var_ann): Mark variable as used. 2011-01-21 Richard Guenther PR middle-end/47395 * tree.def (WIDEN_MULT_MINUS_EXPR): Fix printed name. 2011-01-21 Richard Guenther PR tree-optimization/47365 * tree-ssa-sccvn.h (vn_lookup_kind): Declare. (vn_reference_lookup_pieces): Adjust. (vn_reference_lookup): Likewise. * tree-ssa-sccvn.c (vn_walk_kind): New static global. (vn_reference_lookup_3): Only look through kills if in VN_WALKREWRITE mode. (vn_reference_lookup_pieces): Adjust. (vn_reference_lookup): Likewise. (visit_reference_op_load): Likewise. (visit_reference_op_store): Likewise. * tree-ssa-pre.c (phi_translate_1): Use VN_WALK mode. (compute_avail): Likewise. (eliminate): Likewise. 2011-01-21 Jakub Jelinek * tree-ssa-live.c (remove_unused_scope_block_p): Don't remove DECL_IGNORED_P non-reg vars if they are used. PR tree-optimization/47391 * varpool.c (const_value_known_p): Return false if decl is volatile. 2011-01-21 Kai Tietz PR bootstrap/47215 * config/i386/i386.c (ix86_local_alignment): Handle case for va_list_type_node is nil. (ix86_canonical_va_list_type): Likewise. 2011-01-21 Alan Modra * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Add builtin_define __CMODEL_MEDIUM__ and __CMODEL_LARGE__. 2011-01-20 Ramana Radhakrishnan * config/arm/arm.md (define_attr type): Rename f_load and f_store to f_fpa_load and f_fpa_store. Update. (write_conflict): Deal with rename fallout. (*push_fp_multi): Likewise. * config/arm/fpa.md (f_load): Use f_fpa_load. (f_store): Use f_fpa_store. (*movsf_fpa): Likewise. (*movdf_fpa): Likewise. (*movxf_fpa): Likewise. (*thumb2_movsf_fpa): Likewise. (*thumb2_movdf_fpa): Likewise. (*thumb2_movxf_fpa): Likewise. * config/arm/vfp.md (*thumb2_movdf_vfp): Fix attribute to f_loadd and f_stored. (*thumb2_movdi_vfp): Likewise. (*thumb2_movsf_vfp): Fix attribute to f_loads. (*thumb2_movsi_vfp): Likewise. * config/arm/cortex-m4-fpu.md (cortex_m4_f_load): Use f_loads instead of f_load. * config/arm/cortex-a5.md (cortex_a5_f_loads): Remove f_load. 2011-01-20 Anatoly Sokolov * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove. * config/xtensa/xtensa-protos.h (constantpool_address_p): Remove. * config/xtensa/xtensa.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define. (xtensa_mode_dependent_address_p): New function. (constantpool_address_p): Make static. Change return type to bool. Change argument type to const_rtx. Use CONST_INT_P predicate. 2011-01-20 Alexandre Oliva PR debug/46583 * tree-ssa-live.c (remove_unused_scope_block_p): Keep type decls. 2011-01-20 Jakub Jelinek PR debug/47283 * cfgexpand.c (expand_debug_expr): Instead of generating (mem (debug_implicit_ptr)) for MEM_REFs use COMPONENT_REF etc. handling. 2011-01-20 Richard Guenther PR middle-end/47370 * tree-inline.c (remap_gimple_op_r): Recurse manually for the pointer operand of MEM_REFs. 2011-01-20 Jakub Jelinek PR tree-optimization/46130 * ipa-split.c (consider_split): If return_bb contains non-virtual PHIs other than for retval or if split_function would not adjust it, refuse to split. 2011-01-20 Richard Guenther PR tree-optimization/47167 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Revert previous change, only avoid enumeral type changes. 2011-01-19 Dodji Seketeli PR c++/47291 * dwarf2out.c (generic_type_p, schedule_generic_params_dies_gen) (gen_scheduled_generic_parms_dies): New functions. (gen_struct_or_union_type_die): Schedule template parameters DIEs generation for the end of CU compilation. (dwarf2out_finish): Generate template parameters DIEs here. 2011-01-19 Alexandre Oliva PR debug/46240 * tree-into-ssa.c (maybe_register_def): Do not attempt to add debug bind stmt on merge edges. 2011-01-19 Alexandre Oliva PR debug/47079 PR debug/46724 * function.c (instantiate_expr): Instantiate incoming rtl of implicit arguments, and recurse on VALUE_EXPRs. (instantiate_decls): Instantiate rtl and VALUE_EXPR of result. * var-tracking.c (adjust_mems): Reject virtual_incoming_args_rtx. 2011-01-19 Alexandre Oliva * c-parser.c (c_parser_for_statement): Initialize collection_expression. 2011-01-19 Joseph Myers * config/spu/spu-elf.h (ASM_SPEC): Remove %{w:-W}. 2011-01-19 Joseph Myers * config/rs6000/sysv4.h (LINK_PATH_SPEC): Remove. (LINK_SHLIB_SPEC): Don't use %(link_path). (SUBTARGET_EXTRA_SPECS): Remove link_path. 2011-01-19 Joseph Myers * config/rs6000/sysv4.h (SHARED_LIB_SUPPORT): Remove conditional. (NO_SHARED_LIB_SUPPORT): Remove. (LINK_SHLIB_SPEC): Remove one conditional definition. 2011-01-19 Joseph Myers * config/mips/linux64.h (LINK_SPEC): Remove %{non_shared} %{call_shared}. * config/mips/mips.h (LINK_SPEC): Remove %{non_shared}. * config/mips/netbsd.h (LINK_SPEC): Remove %{call_shared}. * config/mips/openbsd.h (LINK_SPEC): Remove %{non_shared} %{call_shared} and conditionals on these options not being passed. * config/mips/sde.h (LINK_SPEC): Remove %{non_shared} %{call_shared}. 2011-01-19 Jakub Jelinek * ipa-split.c (find_return_bb): Use single_pred_p/single_pred_edge, simplify. * ipa-split.c: Spelling fixes. 2011-01-19 Richard Henderson * config/mn10300/mn10300.md (mulsi3): Use reg_or_am33_const_operand. (*mulsi3): Likewise. * longlong.h [__mn10300__] (count_leading_zeros): New. [__mn10300__] (umul_ppmm, smul_ppmm): New. [__mn10300__] (add_ssaaaa, subddmmss): New. [__mn10300__] (udiv_qrnnd, sdiv_qrnnd): New. [__mn10300__] (UMUL_TIME, UDIV_TIME): New. 2011-01-19 Ulrich Weigand * config/spu/spu.h (MOVE_RATIO): Return 4 in the !speed case. 2011-01-19 Richard Henderson * config/mn10300/mn10300.md (addsi3_flags): New. (addc_internal, adddi3, adddi3_internal, *adddi3_degenerate): New. (subsi3_flags, subc_internal, subdi3): New. (subdi3_internal, *subdi3_degenerate): New. * config/mn10300/predicates.md (reg_or_am33_const_operand): New. * config/mn10300/mn10300.c (mn10300_can_use_retf_insn): New. (mn10300_can_use_rets_insn): Rename from mn10300_can_use_return_insn. (mn10300_expand_epilogue): Use it. Compute REG_SAVE_BYTES once. * config/mn10300/mn10300-protos.h: Update. * config/mn10300/mn10300.md (return): Use mn10300_can_use_retf_insn. (return_ret): Likewise. Rename from return_internal_regs. (return_internal): Remove. * config/mn10300/mn10300.c (mn10300_unspec_int_label_counter): Remove. (mn10300_asm_output_addr_const_extra): Don't handle UNSPEC_INT_LABEL. (mn10300_legitimate_constant_p): Likewise. (mn10300_can_use_return_insn): Use mn10300_initial_offset. (mn10300_frame_size): New. (mn10300_expand_prologue): Use it. (mn10300_expand_epilogue): Likewise. (mn10300_initial_offset): Likewise. * config/mn10300/mn10300-protos.h: Update. * config/mn10300/mn10300.h (mn10300_unspec_int_label_counter): Remove. * config/mn10300/mn10300.md (UNSPEC_INT_LABEL): Remove. (prologue, epilogue, return_internal): Tidy output code. (mn10300_store_multiple_operation, return): Likewise. (int_label, pop_pic_reg, GOTaddr2picreg): Remove. (am33_loadPC, mn10300_loadPC, call_next_insn): Remove. (add_GOT_to_pic_reg, add_GOT_to_any_reg): Remove. (load_pic, am33_load_pic): New. (mn10300_load_pic0, mn10300_load_pic1): New. * config/mn10300/mn10300-modes.def (CCZN, CCZNC): New modes. * config/mn10300/mn10300.c (CC_FLAG_Z): New. (CC_FLAG_N, CC_FLAG_C, CC_FLAG_V): New. (cc_flags_for_mode, cc_flags_for_code): New. (mn10300_print_operand) ['B']: Use nc/ns for GE/LT when the overflow flag is not valid. Validate that the flags we need for the comparison are valid. (mn10300_output_cmp): Remove. (mn10300_output_add): New. (mn10300_select_cc_mode): Use cc_flags_for_code. (mn10300_split_cbranch): New. (mn10300_match_ccmode): New. (mn10300_split_and_operand_count): New. * config/mn10300/mn10300.h (SELECT_CC_MODE): Pass all of the arguments to the function. * config/mn10300/mn10300.md (*am33_addsi3, *mn10300_addsi3): Merge... (addsi3): ... here. Use mn10300_output_add. (*addsi3_flags): New. (*am33_subsi3, *mn10300_subsi3): Merge... (subsi3): ... here. Use attribute isa. (*subsi3_flags): New. (negsi2): Rewrite from expander to insn_and_split. Use NOT+INC when possible. (*am33_andsi3, *mn10300_andsi3): Merge... (andsi3): ... here. (*andsi3_flags): New. (andsi3 splitters): New. (*am33_iorsi3, *mn10300_iorsi3): Merge... (iorsi3): ... here. (*iorsi3_flags): New. (*am33_xorsi3, *mn10300_xorsi3): Merge... (xorsi3): ... here. (*xorsi3_flags): New. (*am33_cmpsi2, *mn10300_cmplsi2): Merge... (one_cmplsi2): ... here. (*one_cmplsi2_flags): New. (*cbranchsi4_cmp): Rename from cbranchsi4_post_reload. Use "r" instead of "dax" in constraints. Use mn10300_split_cbranch. (*cmpsi): Rename from cmpsi. Do not use mn10300_output_cmp. Do not use matching constraints to eliminate a self-comparison. (*integer_conditional_branch): Rename from integer_conditional_branch. Use int_mode_flags to match CC_REG. (*cbranchsi4_btst, *btstsi): New. (*cbranchsf4_cmp): Rename from *cbranchsf4_post_reload. Use mn10300_split_cbranch. (*am33_cmpsf): Rename from am33_cmpsf. (*float_conditional_branch): Rename from float_conditional_branch. (*zero_extendqisi2_am33, *zero_extendqisi2_mn10300): Merge... (zero_extendqisi2): ... here. (*zero_extendhisi2_am33, *zero_extendhisi2_mn10300): Merge... (zero_extendhisi2): ... here. (*extendqisi2_am33, *extendqisi2_mn10300): Merge... (extendqisi2): ... here. (*extendhisi2_am33, *extendhisi2_mn10300): Merge... (extendhisi2): ... here. (*am33_ashlsi3, *mn10300_ashlsi3): Merge... (ashlsi3): ... here. (*am33_lshrsi3, *mn10300_lshrsi3): Merge... (lshrsi3): ... here. (*am33_ashrisi3, *mn10300_ashrsi3): Merge... (ashrsi3): ... here. (consecutive add peephole): Remove. * config/mn10300/predicates.md (label_ref_operand): New. (int_mode_flags): New. (CCZN_comparison_operator): New. * config/mn10300/mn10300.md (UNSPEC_EXT): New. (throughput_42_latency_43): New reservation. (mulsidi3, umulsidi3): New expanders. (mulsidi3_internal): Rewrite from old mulsidi3 pattern. Expose the MDR register to allocation; separately allocate the low and high parts of the DImode result. (umulsidi3_internal): Similarly. (*am33_mulsi3, *mn10300_mulsi3): Merge into ... (*mulsi3): ... here. Clobber MDR as a scratch as necessary. (udivsi3, umodsi3): Remove. (udivmodsi4, divmodsi4): New expanders. (*udivmodsi4): Rename from udivmodsi4. Expose MDR properly. (*divmodsi4): Simiarly. (ext_internal): New. * config/mn10300/constraints.md ("z"): New constraint. * config/mn10300/mn10300.h (MDR_REGNUM): Remove. (FIXED_REGISTERS): Don't fix MDR. (CALL_USED_REGSITERS): Reformat nicely. (REG_ALLOC_ORDER): Add MDR. (enum regclass): Add MDR_REGS. (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update to match. (IRA_COVER_CLASSES): Add MDR_REGS. (REGNO_REG_CLASS): Handle MDR_REG. * config/mn10300/mn10300.c (mn10300_secondary_reload): Handle MDR_REGS. (mn10300_register_move_cost): Likewise. * config/mn10300/mn10300.md (MDR_REG): New. (*movsi_internal): Handle moves to/from MDR_REGS. * config/mn10300/mn10300.c (mn10300_print_operand_address): Handle POST_MODIFY. (mn10300_secondary_reload): Tidy combination reload classes. (mn10300_legitimate_address_p): Allow post-modify and reg+reg addresses for AM33. Allow symbolic offsets for reg+imm. (mn10300_regno_in_class_p): New. (mn10300_legitimize_reload_address): New. * config/mn10300/mn10300.h (enum reg_class): Remove DATA_OR_ADDRESS_REGS, DATA_OR_EXTENDED_REGS, ADDRESS_OR_EXTENDED_REGS, SP_OR_EXTENDED_REGS, SP_OR_ADDRESS_OR_EXTENDED_REGS. Add SP_OR_GENERAL_REGS. (REG_CLASS_NAMES): Update to match. (REG_CLASS_CONTENTS): Likewise. (INDEX_REG_CLASS): Use GENERAL_REGS for AM33. (BASE_REG_CLASS): Use SP_OR_GENERAL_REGS for AM33. (REGNO_IN_RANGE_P): Remove. (REGNO_DATA_P): Use mn10300_regno_in_class_p. (REGNO_ADDRESS_P, REGNO_EXTENDED_P): Likewise. (REGNO_STRICT_OK_FOR_BASE_P): Likewise. (REGNO_STRICT_OK_FOR_BIT_BASE_P): Likewise. (REGNO_STRICT_OK_FOR_INDEX_P): Likewise. (REGNO_SP_P, REGNO_AM33_P, REGNO_FP_P): Remove. (REGNO_GENERAL_P): New. (HAVE_POST_MODIFY_DISP): New. (USE_LOAD_POST_INCREMENT, USE_STORE_POST_INCREMENT): New. (LEGITIMIZE_RELOAD_ADDRESS): New. * config/mn10300/mn10300-protos.h: Update. * config/mn10300/mn10300.c (mn10300_preferred_reload_class): Allow DATA_REGS for AM33 stack-pointer destination. (mn10300_preferred_output_reload_class): Likewise. (mn10300_secondary_reload): Rearrange mn10300_secondary_reload_class into a form appropriate for ... (TARGET_SECONDARY_RELOAD): New. * config/mn10300/mn10300.h (SECONDARY_RELOAD_CLASS): Remove. * config/mn10300/mn10300-protos.h: Update. * config/mn10300/mn10300.md (reload_plus_sp_const): Rename from reload_insi; use the "A" constraint for the scratch; handle AM33 moves of sp to non-address registers. * config/mn10300/mn10300.md (*am33_movqi, *mn10300_movqi): Merge into (*movqi_internal): ... here. (*am33_movhi, *mn10300_movhi): Merge into... (*movhi_internal): ... here. (*movsi_internal): Use "r" instead of "dax" in constraints. Use "A" as the source/destination of moves from/to SP. (movsf): Only allow for AM33-2. (*movsf_internal): Use "r" instead of "dax"; use "F" instead of any integer constant constraint. Only allow for AM33-2. Tidy all of the alternative outputs. (movdi, movdf, *am33_2_movdf, *mn10300_movdf): Remove. (udivmodsi4): Delete expander and promote *udivmodsi4. Disallow for MN103. (udivsi3, umodsi3): New patterns for MN103 only. 2011-01-19 Joern Rennecke * doc/tm.texi.in: Spell out that a lack of register class unions can lead to ICEs. * doc/tm.texi: Regenerate. 2011-01-19 Jakub Jelinek PR rtl-optimization/47337 * dce.c (check_argument_store): New function. (find_call_stack_args): Ignore debug insns. Use check_argument_store. PR tree-optimization/47290 * tree-eh.c (infinite_empty_loop_p): New function. (cleanup_empty_eh): Use it. 2011-01-18 Steve Ellcey PR target/46997 * ia64.c (ia64_expand_unpack): Fix code for TARGET_BIG_ENDIAN. (a64_expand_widen_sum): Ditto. * vect.md (mulv2si3): Disable for TARGET_BIG_ENDIAN. (vec_extract_evenodd_help): Ditto. (vec_extract_evenv4hi): Ditto. (vec_extract_oddv4hi): Ditto. (vec_extract_evenv2si): Ditto. (vec_extract_oddv2si): Ditto. (vec_extract_evenv2sf): Ditto. (vec_extract_oddv2sf): Ditto. (vec_pack_trunc_v4hi: Ditto. (vec_pack_trunc_v2si): Ditto. (vec_interleave_lowv8qi): Fix for TARGET_BIG_ENDIAN. (vec_interleave_highv8qi): Ditto. (mix1_r): Ditto. (vec_extract_oddv8qi): Ditto. (vec_interleave_lowv4hi): Ditto. (vec_interleave_highv4hi): Ditto. (vec_interleave_lowv2si): Ditto. (vec_interleave_highv2si): Ditto. 2011-01-18 John David Anglin * doc/extend.texi: Mention __float128 support on hppa HP-UX. * config/pa/pa-hpux.h (HPUX_LONG_DOUBLE_LIBRARY): Define to 1. * config/pa/pa.c (pa_expand_builtin): New. Include "langhooks.h". (pa_c_mode_for_suffix): New. (TARGET_EXPAND_BUILTIN): Define. (TARGET_C_MODE_FOR_SUFFIX): Define. (pa_builtins): Define. (pa_init_builtins): Register __float128 type and init new support builtins. * config/pa/pa.h (HPUX_LONG_DOUBLE_LIBRARY): Define if not defined. * config/pa/quadlib.c (_U_Qfcopysign): New. 2011-01-18 Eric Botcazou PR middle-end/46894 * explow.c (allocate_dynamic_stack_space): Do not assume more than BITS_PER_UNIT alignment if STACK_DYNAMIC_OFFSET or STACK_POINTER_OFFSET are defined. 2011-01-18 Ulrich Weigand PR tree-optimization/47179 * config/spu/spu.c (spu_ref_may_alias_errno): New function. (TARGET_REF_MAY_ALIAS_ERRNO): Define. 2011-01-18 Richard Guenther PR rtl-optimization/47216 * emit-rtl.c: Include tree-flow.h. (set_mem_attributes_minus_bitpos): Use tree_could_trap_p instead of replicating it with different semantics. * Makefile.in (emit-rtl.o): Adjust. 2011-01-18 Ramana Radhakrishnan * config/arm/cortex-a9.md (cortex-a9-neon.md): Actually include. (cortex_a9_dp): Handle neon types correctly. 2011-01-18 Jakub Jelinek PR rtl-optimization/47299 * expr.c (expand_expr_real_2) : Don't use subtarget. Use normal multiplication if both operands are constants. * expmed.c (expand_widening_mult): Don't try to optimize constant multiplication if op0 has VOIDmode. Convert op1 constant to mode before using it. 2011-01-17 Ralf Wildenhues * doc/lto.texi (LTO): Ensure two spaces after period. Fix spacing after 'e.g.', typos, comma, hyphenation. 2011-01-17 Richard Henderson * config/rx/predicates.md (rx_constshift_operand): Use match_test. (rx_restricted_mem_operand): New. (rx_shift_operand): Use register_operand. (rx_source_operand, rx_compare_operand): Likewise. * config/rx/rx.md (addsi3_flags): New expander. (adddi3): Rewrite as expander. (adc_internal, *adc_flags, adddi3_internal): New patterns. (subsi3_flags): New expander. (subdi3): Rewrite as expander. (sbb_internal, *sbb_flags, subdi3_internal): New patterns. * config/rx/rx.c (RX_BUILTIN_SAT): Remove. (rx_init_builtins): Remove sat builtin. (rx_expand_builtin): Likewise. * config/rx/rx.md (ssaddsi3): New. (*sat): Rename from sat. Represent the CC_REG input. * config/rx/predicates.md (rshift_operator): New. * config/rx/rx.c (rx_expand_insv): Remove. * config/rx/rx-protos.h: Update. * config/rx/rx.md (*bitset): Rename from bitset. Swap the ashift operand to the canonical position. (*bitset_in_memory, *bitinvert, *bitinvert_in_memory): Similarly. (*bitclr, *bitclr_in_memory): Similarly. (*insv_imm, rx_insv_reg, *insv_cond, *bmcc, *insv_cond_lt): New. (insv): Retain the zero_extract in the expansion. * config/rx/rx.md (bswapsi2): Use = not + for output reload. (bswaphi2, bitinvert, revw): Likewise. * config/rx/rx.c (gen_rx_store_vector): Use VOIDmode for gen_rtx_SET. (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise. * config/rx/rx.md (pop_and_return): Use VOIDmode for SET. (stack_push, stack_pushm, stack_pop, stack_popm): Likewise. (bitset, bitset_in_memory): Likewise. (bitinvert, bitinvert_in_memory): Likewise. (bitclr, bitclr_in_memory): Likewise. (insv, sync_lock_test_and_setsi, movstr, rx_movstr): Likewise. (rx_strend, rx_cmpstrn): Likewise. (rx_setmem): Likewise. Make the source BLKmode to match the dest. (bitop peep2 patterns): Remove. * config/rx/rx.c (rx_match_ccmode): New. * config/rx/rx-protos.h: Update. * config/rx/rx.md (abssi2): Clobber, don't set flags. (addsi3, adddi3, andsi3, negsi2, one_cmplsi2, iorsi3): Likewise. (rotlsi3, rotrsi3, ashrsi3, lshrsi3, ashlsi3): Likewise. (subsi3, subdi3, xorsi3, addsf3, divsf3, mulsf3, subsf3): Likewise. (fix_truncsfsi2, floatsisf2): Likewise. (*abssi2_flags, *addsi3_flags, *andsi3_flags, *negsi2_flags): New. (*one_cmplsi2_flags, *iorsi3_flags, *rotlsi3_flags): New. (*rotrsi3_flags, *ashrsi3_flags, *lshrsi3_flags, *ashlsi3_flags): New. (*subsi3_flags, *xorsi3_flags): New. * config/rx/rx.md (cstoresf4, *cstoresf4): New patterns. * config/rx/rx.c (rx_print_operand): Remove workaround for unsplit comparison operations. * config/rx/rx.md (movsicc): Split after reload. (*movsicc): Merge *movsieq and *movsine via match_operator. (*stcc): New pattern. * config/rx/rx.c (rx_float_compare_mode): Remove. * config/rx/rx.h (rx_float_compare_mode): Remove. * config/rx/rx.md (cstoresi4): Split after reload. (*sccc): New pattern. * config/rx/predicates.md (label_ref_operand): New. (rx_z_comparison_operator): New. (rx_zs_comparison_operator): New. (rx_fp_comparison_operator): New. * config/rx/rx.c (rx_print_operand) [B]: Examine comparison modes. Validate that the flags are set properly for the comparison. (rx_gen_cond_branch_template): Remove. (rx_cc_modes_compatible): Remove. (mode_from_flags): New. (flags_from_code): Rename from flags_needed_for_conditional. (rx_cc_modes_compatible): Re-write in terms of flags_from_mode. (rx_select_cc_mode): Likewise. (rx_split_fp_compare): New. (rx_split_cbranch): New. * config/rx/rx.md (most_cond, zs_cond): Remove iterators. (*cbranchsi4): Use match_operator and rx_split_cbranch. (*cbranchsf4): Similarly. (*cbranchsi4_tst): Rename from *tstbranchsi4_. Use match_operator and rx_split_cbranch. (*cbranchsi4_tst_ext): Combine *tstbranchsi4m_eq and tstbranchsi4m_ne. Use match_operator and rx_split_cbranch. (*cmpsi): Rename from cmpsi. (*tstsi): Rename from tstsi. (*cmpsf): Rename from cmpsf; use CC_Fmode. (*conditional_branch): Rename from conditional_branch. (*reveresed_conditional_branch): Remove. (b): Remove expander. * config/rx/rx-protos.h: Update. * config/rx/rx.c (rx_compare_redundant): Remove. * config/rx/rx.md (cmpsi): Don't use it. * config/rx/rx-protos.h: Update. * config/rx/rx-modes.def (CC_F): New mode. * config/rx/rx.c (rx_select_cc_mode): New. * config/rx/rx.h (SELECT_CC_MODE): Use it. * config/rx/rx-protos.h: Update. 2011-01-17 Richard Henderson * except.c (dump_eh_tree): Fix stray ; after for statement. 2011-01-17 Richard Guenther PR tree-optimization/47313 * tree-inline.c (tree_function_versioning): Move DECL_RESULT handling before copying the body. Properly deal with by-reference result in SSA form. 2011-01-17 Ian Lance Taylor PR target/47219 * config/sparc/sparc.c (sparc_sr_alias_set): Don't define. (struct_value_alias_set): Don't define. (sparc_option_override): Don't set sparc_sr_alias_set and struct_value_alias_set. (save_or_restore_regs): Use gen_frame_mem rather than calling set_mem_alias_set. (sparc_struct_value_rtx): Likewise. 2011-01-17 H.J. Lu PR target/47318 * config/i386/avxintrin.h (_mm_maskload_pd): Change mask to __m128i. (_mm_maskstore_pd): Likewise. (_mm_maskload_ps): Likewise. (_mm_maskstore_ps): Likewise. (_mm256_maskload_pd): Change mask to __m256i. (_mm256_maskstore_pd): Likewise. (_mm256_maskload_ps): Likewise. (_mm256_maskstore_ps): Likewise. * config/i386/i386-builtin-types.def: Updated. (ix86_expand_special_args_builtin): Likewise. * config/i386/i386.c (bdesc_special_args): Update __builtin_ia32_maskloadpd, __builtin_ia32_maskloadps, __builtin_ia32_maskloadpd256, __builtin_ia32_maskloadps256, __builtin_ia32_maskstorepd, __builtin_ia32_maskstoreps, __builtin_ia32_maskstorepd256 and __builtin_ia32_maskstoreps256. * config/i386/sse.md (avx_maskload): Use on mask register. (avx_maskstore): Likewise. 2011-01-17 Olivier Hainque Michael Haubenwallner Eric Botcazou PR target/46655 * xcoffout.c (ASM_OUTPUT_LINE): Output line only if positive, and only if <= USHRT_MAX in 32-bit mode. 2011-01-17 Ralf Wildenhues * doc/install.texi (Configuration, Specific): Wrap long lines in examples. Allow line wrapping in long options and URLs where beneficial for PDF output. 2011-01-16 Richard Sandiford * config/mips/mips.c (mips_classify_symbol): Don't return SYMBOL_PC_RELATIVE for nonlocal labels. 2011-01-15 Eric Botcazou * config/sparc/sol2-bi.h (CC1_SPEC): Fix typo. 2011-01-15 Jan Hubicka PR tree-optimization/47276 * ipa.c (function_and_variable_visibility): Do not try to mark alias declarations as needed. 2011-01-15 Martin Jambor * common.opt (fdevirtualize): New flag. * doc/invoke.texi (Option Summary): Document it. * opts.c (default_options_table): Add devirtualize flag. * ipa-prop.c (detect_type_change): Return immediately if devirtualize flag is not set. (detect_type_change_ssa): Likewise. (compute_known_type_jump_func): Likewise. (ipa_analyze_virtual_call_uses): Likewise. 2011-01-14 Martin Jambor PR tree-optimization/45934 PR tree-optimization/46302 * ipa-prop.c (type_change_info): New type. (stmt_may_be_vtbl_ptr_store): New function. (check_stmt_for_type_change): Likewise. (detect_type_change): Likewise. (detect_type_change_ssa): Likewise. (compute_complex_assign_jump_func): Check for dynamic type change. (compute_complex_ancestor_jump_func): Likewise. (compute_known_type_jump_func): Likewise. (compute_scalar_jump_functions): Likewise. (ipa_analyze_virtual_call_uses): Likewise. (ipa_analyze_node): Push and pop cfun, set current_function_decl. 2011-01-14 Joseph Myers * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -msse5. * config/i386/i386.opt (msse5): New Alias. 2011-01-14 Joseph Myers * config/sparc/linux.h (CC1_SPEC): Remove %{sun4:} %{target:}. * config/sparc/linux64.h (CC1_SPEC): Likewise. * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise. * config/sparc/sparc.h (CC1_SPEC): Likewise. 2011-01-14 Joseph Myers * config/sparc/linux.h (CC1_SPEC): Don't handle old equivalents of -mcpu options. * config/sparc/linux64.h (CC1_SPEC): Likewise. * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise. * config/sparc/sol2-bi.h (CPP_CPU_SPEC, CC1_SPEC): Likewise. * config/sparc/sparc.h (CPP_CPU_SPEC, CC1_SPEC, ASM_CPU_SPEC): Likewise. * config/sparc/t-elf (MULTILIB_MATCHES): Don't handle -mv8. 2011-01-14 Joseph Myers * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -fvec or -fvec-eabi. 2011-01-14 Mike Stump * config/alpha/alpha.md (umk_mismatch_args): Don't put a mode on set. * config/fr30/fr30.md: Likweise (movsi_push): Likewise. (movsi_pop): Likewise. (enter_func): Likewise. * config/moxie/moxie.md (movsi_push): Likewise. (movsi_pop): Likewise. 2011-01-14 Joseph Myers * config/mips/linux64.h (LINK_SPEC): Remove %{bestGnum} %{no_archive} %{exact_version}. * config/mips/mips.h (LINK_SPEC): Remove %{bestGnum}. * config/mips/netbsd.h (LINK_SPEC): Remove %{bestGnum} %{no_archive} %{exact_version}. * config/mips/openbsd.h (LINK_SPEC): Likewise. * config/mips/sde.h (LINK_SPEC): Remove %{bestGnum}. * config/mips/vxworks.h: Likewise. 2011-01-14 Joseph Myers * config/microblaze/microblaze.h (ASM_SPEC): Remove %{microblaze1}. 2011-01-14 Joseph Myers * config/m32r/little.h (CPP_ENDIAN_SPEC, CC1_ENDIAN_SPEC, ASM_ENDIAN_SPEC, LINK_ENDIAN_SPEC): Remove. 2011-01-14 Joseph Myers * config/i386/nwld.h (LINK_SPEC): Check -nodefaultlibs not -nodefaultlib. 2011-01-14 Joseph Myers * config/cris/cris.h (ASM_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check for mcpu not cpu. * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC, CRIS_CC1_SUBTARGET_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check for mcpu not cpu. (CRIS_LINK_SUBTARGET_SPEC): Don't generate -rpath-link options. Don't handle -shlib. 2011-01-14 Joseph Myers * config/avr/avr.h (CPP_SPEC): Don't handle -posix. (CC1_SPEC): Don't handle -profile. 2011-01-14 Joseph Myers * config/microblaze/microblaze.h (CC1_SPEC): Remove -gline spec. * config/mips/mips.h (CC1_SPEC): Likewise. 2011-01-14 Joseph Myers * config/microblaze/microblaze.h (CC1_SPEC): Remove %{save-temps: }. * config/mips/mips.h (CC1_SPEC): Likewise. 2011-01-14 Joseph Myers * config/i386/linux.h (LINK_SPEC): Don't use %{!ibcs:} conditional. * config/m32r/linux.h (LINK_SPEC): Likewise. * config/mips/linux.h (LINK_SPEC): Likewise. * config/mips/linux64.h (LINK_SPEC): Likewise. * config/sparc/linux.h (LINK_SPEC): Likewise. * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC, LINK_SPEC): Likewise. * config/xtensa/linux.h (LINK_SPEC): Likewise. 2011-01-14 Joseph Myers * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove %{version:-v}. * config/lm32/uclinux-elf.h (LINK_SPEC): Likewise. 2011-01-14 Joseph Myers * config/sparc/sp-elf.h (ASM_SPEC): Remove %{v:-V}. * config/sparc/sp64-elf.h (ASM_SPEC): Likewise. 2011-01-14 Joseph Myers * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove %{b}. 2011-01-14 Rainer Orth * configure.ac (gcc_cv_ld_static_dynamic): Solaris 2 ld always supports -Bstatic/-Bdynamic. * configure: Regenerate. 2011-01-14 Jan Hubicka Jack Howarth PR target/46037 * config/darwin.c (darwin_override_options): Honor flag_gtoggle when checking debug_info_level. Test write_symbols instead of debug_hooks->var_location when setting flag_var_tracking_uninit. 2011-01-14 Richard Guenther PR tree-optimization/47179 * target.def (ref_may_alias_errno): New target hook. * targhooks.h (default_ref_may_alias_errno): Declare. * targhooks.c: Include tree-ssa-alias.h and tree-flow.h. (default_ref_may_alias_errno): New function. * target.h (struct ao_ref_s): Declare. * tree-ssa-alias.c: Include target.h. (call_may_clobber_ref_p_1): Use the ref_may_alias_errno target hook. * Makefile.in (tree-ssa-alias.o): Adjust dependencies. (targhooks.o): Likewise. * doc/tm.texi.in (TARGET_REF_MAY_ALIAS_ERRNO): Document. * doc/tm.texi (TARGET_REF_MAY_ALIAS_ERRNO): Copy documentation. 2011-01-14 Richard Guenther * tree-ssa-structalias.c (new_var_info): Use DECL_HARD_REGISTER. 2011-01-14 Richard Guenther PR tree-optimization/47280 * tree-ssa-forwprop.c (associate_plusminus): Cleanup EH and return CFG changes. (tree_ssa_forward_propagate_single_use_vars): Deal with CFG changes from associate_plusminus. 2011-01-14 Richard Guenther PR middle-end/47281 Revert 2011-01-11 Richard Guenther PR tree-optimization/46076 * tree-ssa.c (useless_type_conversion_p): Conversions from unprototyped to empty argument list function types are useless. 2011-01-14 Richard Guenther PR tree-optimization/47286 * tree-ssa-structalias.c (new_var_info): Register variables are global. 2011-01-14 Martin Jambor PR middle-end/46823 * tree-inline.c (expand_call_inline): Get fndecl from call graph edge. 2011-01-13 Anatoly Sokolov * config/xtensa/xtensa.h (XTENSA_LIBCALL_VALUE, LIBCALL_VALUE, LIBCALL_OUTGOING_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros. * config/xtensa/xtensa.c (xtensa_libcall_value, xtensa_function_value_regno_p): New functions. (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define. 2011-01-13 Kai Tietz PR c++/47213 * config/i386/cygming.h (TARGET_ASM_ASSEMBLE_VISIBILITY): PE specific hook. * config/i386/i386-protos.h (i386_pe_assemble_visibility): New function prototype. * config/i386/winnt.c (i386_pe_assemble_visibility): Warn only if attribute was specified by user. 2011-01-13 Michael Meissner PR target/47251 * config/rs6000/rs6000.md (floatunsdidf2): Add check for hardware floating point. (floatunsdidf2_fcfidu): Ditto. 2011-01-13 Andreas Krebbel * config/s390/s390.c (print_operand_address): Replace 'error' with 'output_operand_lossage'. (print_operand): Likewise. 2011-01-13 Jeff Law PR rtl-optimization/39077 * doc/invoke.texi (max-gcse-insertion-ratio): Document. * params.h (MAX_GCSE_INSERTION_RATIO): Define. * params.def (PARAM_MAX_GCSE_INSERTION_RATIO): Define. * lcm.c (pre_edge_lcm): Properly initialize output sbitmaps. * gcse.c (prune_insertions_deletions): New function. (compute_pre_data): Use it. 2011-01-13 Dodji Seketeli PR debug/PR46973 * dwarf2out.c (prune_unused_types_mark_generic_parms_dies): New static function. (prune_unused_types_mark): Use it. 2011-01-13 Andrey Belevantsev PR rtl-optimization/45352 * sel-sched.c: Update copyright years. (reset_sched_cycles_in_current_ebb): Also recheck the DFA state in the advancing loop when we have issued issue_rate insns. 2011-01-12 Richard Henderson * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): New. (TARGET_MD_ASM_CLOBBERS): New. * config/mn10300/mn10300.c (mn10300_delegitimize_address): New. (TARGET_DELEGITIMIZE_ADDRESS): New. * config/mn10300/mn10300.md (UNSPEC_BSCH): New. (clzsi2, *bsch): New patterns. * config/mn10300/mn10300.md (INT): New mode iterator. (*mov_clr): New pattern, and peep2 to generate it. * config/mn10300/mn10300.c (mn10300_option_override): Force enable flag_split_wide_types. * config/mn10300/mn10300.c (mn10300_asm_trampoline_template): Remove. (mn10300_trampoline_init): Rewrite without a template, an immediate load and a direct branch. * config/mn10300/mn10300.h (TRAMPOLINE_SIZE): Reduce to 16. 2011-01-12 Anatoly Sokolov * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Remove. * config/s390/s390-protos.h (s390_output_addr_const_extra): Remove. * config/s390/s390.c (s390_output_addr_const_extra): Make static. (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define. 2011-01-12 Kai Tietz PR debug/47209 * dwarfout2.c (should_emit_struct_debug): Use TYPE_MAIN_VARIANT of type. 2011-01-12 Jan Hubicka PR driver/47244 * gcc.c (PLUGIN_COND): Update to disable plugin unless -flto is used. (PLUGIN_COND_CLOSE): New macro. (LINK_COMMAND_SPEC): Update to use PLUGIN_COND_CLOSE. 2011-01-12 Richard Guenther PR lto/47259 * lto-streamer-out.c (output_gimple_stmt): Do not wrap register variables in a MEM_REF. 2011-01-12 Joseph Myers * config.gcc (arm*-*-linux*, bfin*-uclinux*, bfin*-linux-uclibc*, crisv32-*-linux* | cris-*-linux*, frv-*-*linux*, moxie-*-uclinux*, hppa*64*-*-linux*, hppa*-*-linux*, i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu, x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu, ia64*-*-linux*, lm32-*-uclinux*, m32r-*-linux*, m32rle-*-linux*, m68k-*-uclinux*, m68k-*-linux*, microblaze*-linux*, mips64*-*-linux* | mipsisa64*-*-linux*, mips*-*-linux*, s390-*-linux*, s390x-*-linux*, sh*-*-linux*, sparc-*-linux*, sparc64-*-linux*, vax-*-linux*, xtensa*-*-linux*, am33_2.0-*-linux*): Use gnu-user.h before linux.h. * config/gnu-user.h: New. Copied from linux.h. (LINUX_TARGET_STARTFILE_SPEC): Rename to GNU_USER_TARGET_STARTFILE_SPEC. (LINUX_TARGET_ENDFILE_SPEC): Rename to GNU_USER_TARGET_ENDFILE_SPEC. (LINUX_TARGET_CC1_SPEC): Rename to GNU_USER_TARGET_CC1_SPEC. (LINUX_TARGET_LIB_SPEC): Rename to GNU_USER_TARGET_LIB_SPEC. (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC, LINUX_TARGET_OS_CPP_BUILTINS, CHOOSE_DYNAMIC_LINKER1, CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64, BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32, BIONIC_DYNAMIC_LINKER64, LINUX_DYNAMIC_LINKER, LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64, TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Remove. * config/arm/linux-eabi.h (CC1_SPEC): Use GNU_USER_TARGET_CC1_SPEC. (LIB_SPEC): Use GNU_USER_TARGET_LIB_SPEC. (STARTFILE_SPEC): Use GNU_USER_TARGET_STARTFILE_SPEC. (ENDFILE_SPEC): Use GNU_USER_TARGET_ENDFILE_SPEC * config/linux.h (NO_IMPLICIT_EXTERN_C, ASM_APP_ON, ASM_APP_OFF, LINUX_TARGET_STARTFILE_SPEC, STARTFILE_SPEC, LINUX_TARGET_ENDFILE_SPEC, ENDFILE_SPEC, LINUX_TARGET_CC1_SPEC, CC1_SPEC, CPLUSPLUS_CPP_SPEC, LINUX_TARGET_LIB_SPEC, LIB_SPEC, LINK_EH_SPEC, LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Remove. 2011-01-12 Richard Guenther PR other/46946 * doc/invoke.texi (ffast-math): Document it is turned on with -Ofast. 2011-01-12 Jan Hubicka PR tree-optimization/47233 * opts.c (common_handle_option): Disable ipa-reference with profile feedback. 2011-01-12 Nicola Pero * c-parser.c (c_parser_objc_at_property_declaration): Improved error message. 2011-01-12 Nicola Pero * c-parser.c (c_lex_one_token): Updated and reindented some comments. No changes in code. 2011-01-11 Ian Lance Taylor * godump.c (go_output_var): Don't output the variable if there is already a type with the same name. 2011-01-11 Ian Lance Taylor * godump.c (go_format_type): Don't generate float80. 2011-01-11 Richard Henderson * config/mn10300/mn10300.c (mn10300_address_cost): Remove forward declaration. Rewrite for both speed and size. (mn10300_address_cost_1): Remove. (mn10300_register_move_cost): New. (mn10300_memory_move_cost): New. (mn10300_rtx_costs): Rewrite for both speed and size. Don't handle ZERO_EXTRACT. Do handle UNSPEC, arithmetic, logicals, compare, extensions, shifts, BSWAP, CLZ. (mn10300_wide_const_load_uses_clr): Remove. (TARGET_REGISTER_MOVE_COST): New. (TARGET_MEMORY_MOVE_COST): New. * config/mn10300/mn10300-protos.h: Update. * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Remove. * config/mn10300/constraints.md ("R", "T"): Remove constraints. * config/mn10300/mn10300.c (mn10300_mask_ok_for_mem_btst): Remove. * config/mn10300/mn10300-protos.h: Update. * config/mn10300/mn10300.md (movsi_internal): Don't use "R". (*byte_clear, *byte_set, *bit_clear1, *bit_clear2, *bit_set): Remove. (iorqi3, *am33_iorqi3, *mn10300_iorqi3): Remove. (*test_int_bitfield, *test_byte_bitfield): Remove. (*bit_test, *subreg_bit_test): Remove. * config/mn10300/predicates.md (const_8bit_operand): Remove. * config/mn10300/constraints.md ("c"): Rename from "A". ("A", "D"): New constraint letters. * config/mn10300/mn10300.md (fmasf4): Use the "c" constraint. (fmssf4, fnmasf4, fnmssf4): Likewise. * config/mn10300/mn10300.md (isa): New attribute. (enabled): New attribute. * config/mn10300/mn10300.md (absdf2, negdf2): Remove. (abssf2, negsf2): Define only for hardware fp. (sqrtsf2): Reformat. (addsf3, subsf3, mulsf3): Merge expander and insn. * config/mn10300/mn10300.h (ARG_PIONTER_CFA_OFFSET): New. (DEBUGGER_AUTO_OFFSET): Remove. (DEBUGGER_ARG_OFFSET): Remove. * config/mn10300/mn10300.c (mn10300_gen_multiple_store): Make static. Emit register stores with the same offsets as the hardware. (mn10300_store_multiple_operation): Don't check that the register save offsets are monotonic. * config/mn10300/mn10300-protos.h: Update. * config/mn10300/mn10300.h (ASM_PN_FORMAT): Delete. * config/mn10300/mn10300.h (INCOMING_RETURN_ADDR_RTX): Define in terms of the value on the stack, not the MDR register. 2011-01-11 Jan Hubicka PR lto/45721 PR lto/45375 * tree.h (symbol_alias_set_t): Move typedef here from varasm.c (symbol_alias_set_destroy, symbol_alias_set_contains, propagate_aliases_backward): Declare. * lto-streamer-out.c (struct sets): New sturcture. (trivally_defined_alias): New function. (output_alias_pair_p): Rewrite. (output_unreferenced_globals): Fix output of alias pairs. (produce_symtab): Likewise. * ipa.c (function_and_variable_visibility): Set weak alias destination as needed in lto. * varasm.c (symbol_alias_set_t): Remove. (symbol_alias_set_destroy): Export. (propagate_aliases_forward, propagate_aliases_backward): New functions based on ... (compute_visible_aliases): ... this one; remove. (trivially_visible_alias): New (trivially_defined_alias): New. (remove_unreachable_alias_pairs): Rewrite. (finish_aliases_1): Reorganize code checking if alias is defined. * passes.c (rest_of_decl_compilation): Do not call assemble_alias when in LTO mode. 2011-01-11 Richard Guenther PR tree-optimization/46076 * tree-ssa.c (useless_type_conversion_p): Conversions from unprototyped to empty argument list function types are useless. 2011-01-11 Richard Guenther PR middle-end/45235 * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not mark volatile MEMs as MEM_READONLY_P. 2011-01-11 Richard Guenther PR tree-optimization/47239 * tree-ssa-ccp.c (get_value_from_alignment): Punt for FUNCTION_DECLs. 2011-01-11 Jeff Law PR tree-optimization/47086 * tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Do not record IVs from statements that might throw. 2011-01-10 Jan Hubicka PR lto/45375 * lto-cgraph.c (input_profile_summary): Remove overactive sanity check. 2011-01-10 Jan Hubicka PR lto/45375 * profile.c (read_profile_edge_counts): Ignore profile inconistency when correcting profile. 2011-01-10 Jan Hubicka PR lto/46083 * lto-streamer-out.c (pack_ts_function_decl_value_fields): Store DECL_FINI_PRIORITY. * lto-streamer-in.c (unpack_ts_function_decl_value_fields): Restore DECL_FINI_PRIORITY. 2011-01-10 Ralf Wildenhues * doc/gimple.texi: Fix quoting of multi-word return values in @deftypefn statements. Ensure presence of return value. Wrap overlong @deftypefn lines. (is_gimple_operand, is_gimple_min_invariant_address): Remove descriptions of removed functions. * doc/hostconfig.texi (Host Common): Wrap long line, fix quoting of multi-word return value in @deftypefn statement. 2011-01-10 Ralf Wildenhues * doc/gimple.texi (Temporaries, Operands, Compound Lvalues) (Conditional Expressions, Logical Operators) (Statement and operand traversals): Do not indent smallexample code. Fix duplicate function argument in example. 2011-01-10 Jeff Law PR tree-optimization/47141 * ipa-split.c (split_function): Handle case where we are returning a value and the return block has a virtual operand phi. 2011-01-10 Jan Hubicka PR tree-optimization/47234 * tree-pass.h (TODO_rebuild_cgraph_edges): New TODO. (pass_feedback_split_functions): Declare. * passes.c (init_optimization_passes): Add ipa-split as subpass of tree-profile. * ipa-split.c (gate_split_functions): Update comments; disable split-functions for profile_arc_flag and branch_probabilities. (gate_feedback_split_functions): New function. (execute_feedback_split_functions): New function. (pass_feedback_split_functions): New global var. 2011-01-10 H.J. Lu PR lto/46760 * tree-inline.c (tree_can_inline_p): Check e->call_stmt before calling gimple_call_set_cannot_inline. 2011-01-10 Iain Sandoe * config/darwin-sections.def: Remove unused section. 2011-01-10 Dave Korn PR c++/47218 * cgraphunit.c (assemble_thunk): Call resolve_unique_section. 2011-01-09 Nicola Pero PR objc/47232 * c-parser.c (c_parser_declaration_or_fndef): Improved error message. 2011-01-09 Kai Tietz * config/i386/winnt.c (i386_pe_start_function): Make sure to switch back to function's section. 2011-01-09 Iain Sandoe PR gcc/46902 PR testsuite/46912 * plugin.c: Move include of dlfcn.h from here... * system.h: ... to here. 2011-01-09 Ralf Wildenhues * doc/cpp.texi (C++ Named Operators): Fix markup for header file name. * doc/cppinternals.texi (Top): Wrap node in @ifnottex to avoid two extra empty pages in PDF output. 2011-01-08 Nicola Pero PR objc/47078 * c-parser.c (c_parser_objc_type_name): If the type is unknown, for error recovery purposes behave as if it was not specified so that the default type is usd. 2011-01-07 Jan Hubicka PR tree-optmization/46469 * ipa.c (function_and_variable_visibility): Clear needed flags on nodes with external decls; handle weakrefs merging correctly. 2011-01-07 Joseph Myers * opts.c (finish_options): Set opts->x_flag_opts_finished to true, not false. 2011-01-07 Jan Hubicka * doc/invoke.texi: (-flto, -fuse-linker-plugin): Update defaults and no longer claim that gold is required for linker plugin. * configure: Regenerate. * gcc.c (PLUGIN_COND): New macro. (LINK_COMMAND_SPEC): Use it. (main): Default to plugin enabled with HAVE_LTO_PLUGIN is set. * config.in (HAVE_LTO_PLUGIN): New. * configure.ac (--with-lto-plugin): New parameter; autodetect HAVE_LTO_PLUGIN. 2011-01-07 Jan Hubicka PR tree-optimization/46367 * ipa-inline.c (cgraph_clone_inlined_nodes): Use original function only when we can update original. (cgraph_mark_inline_edge): Sanity check. * ipa-prop.c (ipa_make_edge_direct_to_target): Sanity check. 2011-01-07 Ulrich Weigand * config/spu/spu.h (ASM_COMMENT_START): Define. 2011-01-07 H.J. Lu PR driver/42445 * gcc.c (%>S): New. (SWITCH_KEEP_FOR_GCC): Likewise. (set_collect_gcc_options): Check SWITCH_KEEP_FOR_GCC. (do_spec_1): Handle "%>". * config/i386/i386.h (CC1_CPU_SPEC): Replace "%<" with "%>". 2011-01-07 Jakub Jelinek PR target/47201 * config/i386/i386.c (ix86_delegitimize_address): If simplify_gen_subreg fails, return orig_x. PR bootstrap/47187 * value-prof.c (gimple_stringop_fixed_value): Handle lhs of the call properly. 2011-01-07 Jan Hubicka PR lto/45375 * lto-opt.c (lto_reissue_options): Set flag_shlib. 2011-01-07 Iain Sandoe * target.def (function_switched_text_sections): New hook. * doc/tm.texi: Regenerated. * doc/tm.texi.in (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New. * final.c (default_function_switched_text_sections): New. (final_scan_insn): Call function_switched_text_sections when a mid-function section change occurs. * output.h (default_function_switched_text_sections): Declare. * config/darwin-protos.h (darwin_function_switched_text_sections): Likewise. * config/darwin.c (darwin_function_switched_text_sections): New. * config/darwin.h (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New. 2011-01-07 Iain Sandoe * dwarf2out.c (gen_subprogram_die): Add pubnames with code ranges for DWARF >= 3. Add pubnames for the primary section and a reduced DIE for the secondary code fragment when outputting for DWARF == 2. 2011-01-07 Anatoly Sokolov * config/xtensa/xtensa.h (OUTPUT_ADDR_CONST_EXTRA): Remove. * config/xtensa/xtensa-protos.h (xtensa_output_addr_const_extra): Remove. * config/xtensa/xtensa.c (xtensa_output_addr_const_extra): Make static. (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define. 2011-01-06 Eric Botcazou PR debug/46704 * dwarf2out.c (dwarf2out_finish): Output the debug_aranges section only when it is not empty. 2011-01-06 Changpeng Fang Bobcat Enablement * config.gcc (i[34567]86-*-linux* | ...): Add btver1. (case ${target}): Add btver1. * config/i386/driver-i386.c (host_detect_local_cpu): Let -march=native recognize btver1 processors. * config/i386/i386-c.c (ix86_target_macros_internal): Add btver1 def_and_undef * config/i386/i386.c (struct processor_costs btver1_cost): New btver1 cost table. (m_BTVER1): New definition. (m_AMD_MULTIPLE): Includes m_BTVER1. (initial_ix86_tune_features): Add btver1 tune. (processor_target_table): Add btver1 entry. (static const char *const cpu_names): Add btver1 entry. (software_prefetching_beneficial_p): Add btver1. (ix86_option_override_internal): Add btver1 instruction sets. (ix86_issue_rate): Add btver1. (ix86_adjust_cost): Add btver1. * config/i386/i386.h (TARGET_BTVER1): New definition. (enum target_cpu_default): Add TARGET_CPU_DEFAULT_btver1. (enum processor_type): Add PROCESSOR_BTVER1. * config/i386/i386.md (define_attr "cpu"): Add btver1. 2011-01-06 Rainer Orth PR target/43309 * config/i386/i386.c (legitimize_tls_address) : Handle TARGET_64BIT && TARGET_SUN_TLS. * config/i386/i386.md (UNSPEC_TLS_IE_SUN): Declare. (tls_initial_exec_64_sun): New pattern. 2011-01-06 Gerald Pfeifer * doc/invoke.texi (Overall Options): Improve wording and markup of the description of -wrapper. 2011-01-06 Joseph Myers * config/sol2.opt (G, YP,, Ym,, compat-bsd, pthread, pthreads, rdynamic, threads): New Driver options. 2011-01-06 Rainer Orth PR target/38118 * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Also switch to .bss if coming from .tdata. * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise. 2011-01-06 Jan Hubicka PR lto/47188 * collect2.c (main): Do not enable LTOmode when plugin is active. 2011-01-06 Rainer Orth PR other/45915 * configure.ac (gcc_cv_as_gnu_unique_object): Only use ldd --version output if supported. * configure: Regenerate. 2011-01-06 Joseph Myers * config/linux-android.opt (tno-android-cc, tno-android-ld): New Driver options. 2011-01-06 Jakub Jelinek PR c/47150 * c-convert.c (convert): When converting a complex expression other than COMPLEX_EXPR to a different complex type, ensure c_save_expr is called instead of save_expr, unless in_late_binary_op. * c-typeck.c (convert_for_assignment): Set in_late_binary_op also when converting COMPLEX_TYPE. 2011-01-06 Ira Rosen PR tree-optimization/47139 * tree-vect-loop.c (vect_is_simple_reduction_1): Check that only the last reduction value is used outside the loop. Update documentation. 2011-01-05 Joseph Myers * config/rtems.opt: New. * config.gcc (*-*-rtems*): Use rtems.opt. 2011-01-05 Changpeng Fang * config/i386/i386.c (ix86_option_override_internal): Bulldozer processors do not support 3DNow instructions. 2011-01-05 Ulrich Weigand * config/spu/spu.c (spu_option_override): Set parameter PARAM_MAX_COMPLETELY_PEEL_TIMES to 4 instead of 1. 2011-01-05 Jan Hubicka * lto-wrapper.c (run_gcc): Default to WHOPR mode when none is specified at the command line. 2011-01-05 Martin Jambor PR lto/47162 * lto-cgraph.c (output_cgraph_opt_summary_p): Also check for thunk deltas on streamed outgoing edges. (output_node_opt_summary): Output info for outgoing edges only when the node is in new parameter set. (output_cgraph_opt_summary): New parameter set, passed to the two aforementioned functions. Update its forward declaration and its callee too. 2011-01-05 Tom Tromey * c-parser.c (c_parser_omp_atomic): Pass location of assignment operator to c_finish_omp_atomic. * c-typeck.c (lvalue_or_else): Add 'loc' argument. (build_unary_op): Update. (build_modify_expr): Update. (build_asm_expr): Update. 2011-01-05 Ulrich Weigand * config/spu/spu.c (emit_nop_for_insn): Set INSN_LOCATOR for newly inserted insns. (pad_bb): Likewise. (spu_emit_branch_hint): Likewise. (insert_hbrp_for_ilb_runout): Likewise. (spu_machine_dependent_reorg): Call df_finish_pass after schedule_insns returns. 2011-01-05 Ulrich Weigand * config/spu/spu.c (spu_expand_prologue): Support -fstack-usage. 2011-01-05 Eric Botcazou PR tree-optimization/47005 * tree-sra.c (struct access): Add 'non_addressable' bit. (create_access): Set it for a DECL_NONADDRESSABLE_P field. (decide_one_param_reduction): Return 0 if the parameter is passed by reference and one of the accesses in the group is non_addressable. 2011-01-04 Eric Botcazou PR tree-optimization/47056 * cgraphbuild.c (mark_address): Remove ATTRIBUTE_UNUSED markers. (mark_load): Likewise. Handle FUNCTION_DECL specially. (mark_store): Likewise. Pass STMT to ipa_record_reference. 2011-01-04 Eric Botcazou * dwarf2out.c (rtl_for_decl_init): Strip no-op conversions off the initializer. Skip view conversions from aggregate types. 2011-01-04 Kai Tietz PR bootstrap/47055 * libgcov.c (gcov_exit): Check for HAS_DRIVE_SPEC. 2011-01-04 Philipp Thomas * config/microblaze/microbalse.opt (mxl-float-convert): Fix obvious typo. 2011-01-04 Ulrich Weigand * function.c (thread_prologue_and_epilogue_insns): Do not crash on empty epilogue sequences. 2011-01-04 Joseph Myers * config/vxworks.opt (Bdynamic, Bstatic, Xbind-lazy, Xbind-now, non-static): New Driver options. 2011-01-04 Jie Zhang PR driver/47137 * gcc.c (default_compilers[]): Set combinable field to 0 for all assembly languages. 2011-01-04 Mingjie Xing * config/mips/loongson3a.md: New file. * config/mips/mips.md: Include loongson3a.md. * config/mips/mips.c (mips_multipass_dfa_lookahead): Return 4 when TUNE_LOONGSON_3A. 2011-01-03 Eric Botcazou PR middle-end/47017 * expr.c (expand_expr_real_1) : Call memory_address_addr_space instead of convert_memory_address_addr_space on the base expression. 2011-01-03 Ulrich Weigand * config/spu/spu.c (spu_option_override): Update error text for bad -march= / -mtune= values. 2011-01-03 Ulrich Weigand * config/spu/spu.c (asm_file_start): Only reset flag_var_tracking if branch-hint optimization will be performed. 2011-01-03 Jakub Jelinek PR tree-optimization/47148 * ipa-split.c (split_function): Convert arguments to DECL_ARG_TYPE if possible. PR tree-optimization/47155 * tree-ssa-ccp.c (bit_value_binop_1): Use r1type instead of type when computing uns. PR rtl-optimization/47157 * combine.c (try_combine): If undobuf.other_insn becomes (set (pc) (pc)) jump, call update_cfg_for_uncondjump on it and set *new_direct_jump_p too. 2011-01-03 Sebastian Pop PR tree-optimization/47021 * graphite-sese-to-poly.c (scan_tree_for_params): Handle ADDR_EXPR. 2011-01-03 Jakub Jelinek * gcc.c (process_command): Update copyright notice dates. * gcov.c (print_version): Likewise. * gcov-dump.c (print_version): Likewise. * mips-tfile.c (main): Likewise. * mips-tdump.c (main): Likewise. 2011-01-03 Martin Jambor PR tree-optimization/46801 * tree-sra.c (type_internals_preclude_sra_p): Check whether aggregate fields start at byte boundary instead of the bit-field flag. 2011-01-03 H.J. Lu PR driver/47137 * gcc.c (main): Revert revision 168407. 2011-01-03 Martin Jambor * lto-cgraph.c (input_cgraph_opt_section): Use the correct section type. 2011-01-03 Ulrich Weigand * tree-vect-generic.c (expand_vector_operations_1): When using vector/ vector optab to expand vector/scalar shift, update gimple to vector. 2011-01-03 Martin Jambor * cgraphunit.c (verify_cgraph_node): Verify there is no direct call to a thunk. 2011-01-03 Martin Jambor PR tree-optimization/46984 * cgraph.h (cgraph_indirect_call_info): make field thunk_delta HOST_WIDE_INT. (cgraph_create_indirect_edge): Fixed line length. (cgraph_indirect_call_info): Declare. (cgraph_make_edge_direct) Update declaration. * cgraph.c (cgraph_allocate_init_indirect_info): New function. (cgraph_create_indirect_edge): Use it. (cgraph_make_edge_direct): Made delta HOST_WIDE_INT. Updated all callees. * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update for the new thunk_delta representation. * ipa-prop.c (ipa_make_edge_direct_to_target): Convert delta to HOST_WIDE_INT. (ipa_write_indirect_edge_info): Remove streaming of thunk_delta. (ipa_read_indirect_edge_info): Likewise. * lto-cgraph.c (output_edge_opt_summary): New function. (output_node_opt_summary): Call it on all outgoing edges. (input_edge_opt_summary): New function. (input_node_opt_summary): Call it on all outgoing edges. 2011-01-02 H.J. Lu PR driver/47137 * gcc.c (main): Don't check have_o when settting combine_inputs. 2011-01-02 Eric Botcazou * regrename.c: Add general comment describing the pass. (struct du_head): Remove 'length' field. (get_element, merge_sort_comparison, merge, sort_du_head): Remove. (regrename_optimize): Do not sort chains. Rework comments, add others. Force renaming to the preferred class (if any) in the first pass and do not consider registers that belong to it in the second pass. (create_new_chain): Do not set 'length' field. (scan_rtx_reg): Likewise. 2011-01-02 Jakub Jelinek PR tree-optimization/47140 * tree-ssa-ccp.c (evaluate_stmt): For binary assignments, use TREE_TYPE (lhs) instead of TREE_TYPE (rhs1) as second argument to bit_value_binop. PR rtl-optimization/47028 * cfgexpand.c (gimple_expand_cfg): Insert entry edge insertions after parm_birth_insn instead of at the beginning of first bb. 2011-01-02 Mingjie Xing * doc/generic.texi: Remove duplicated "@subsubsection Statements". Remove the word "see" before "@pxref". * doc/rtl.texi: Remove the word "see" before "@pxref". 2011-01-01 Jan Hubicka * tree-loop-distribution.c (tree_loop_distribution): Do not use freed memory. 2011-01-01 Kai Tietz PR target/38662 * tree.c (type_hash_eq): Call language hook for METHOD_TYPEs, too. Copyright (C) 2011 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved.