X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;f=gcc%2FChangeLog;h=a8fd3f9642b073d2a6a897945bfe1cbb17e8602b;hb=024261446b840a6da5526ba42b83a56818ff32ce;hp=5cc8ec56c592e001b0c06376b365d88f473316d9;hpb=1b803a4f58f81fc8c4a444ac0bfe9d6673d2a7e8;p=pf3gnuchains%2Fgcc-fork.git diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 5cc8ec56c59..a8fd3f9642b 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,904 @@ +2011-03-26 Alan Modra + + * config/rs6000/predicates.md (word_offset_memref_op): Handle + cmodel medium addresses. + * config/rs6000/rs6000.c (rs6000_secondary_reload): Handle misaligned + 64-bit gpr loads and stores. + (rs6000_secondary_reload_ppc64): New function. + * config/rs6000/rs6000-protos.h: Declare it. + * config/rs6000/rs6000.md (reload_di_store, reload_di_load): New. + +2011-03-26 Alan Modra + + PR target/47487 + * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Support + GNU Go in traceback table. + +2011-03-25 Richard Henderson + + * expr.c (emit_block_move_via_movmem): Only use 6 operand variant + if there are exactly 6 operands. + (set_storage_via_setmem): Similarly. + +2011-03-25 Kai Tietz + + * collect2.c (write_c_file_stat): Handle backslash + as right-hand directory separator. + (resolve_lib_name): Use IS_DIR_SEPARATOR instead of + checking just for slash. + * coverage.c (coverage_init): Use IS_ABSOLUTE_PATH + instead of checking for trailing slash. + * gcc.c (record_temp_file): Use filename_cmp instead + of strcmp. + (do_spec_1): Likewise. + (replace_outfile_spec_function): Likewise. + (is_directory): Use filename_ncmp instead of strncmp. + (print_multilib_info): Likewise. + * gcov.c (find_source): Use filename_cmp instead + instead of strcmp. + (make_gcov_file_name): Fix order of slash/backslash + checks. + * incpath.c (DIRS_EQ): Use filename_cmp instead of strcmp. + (add_standard_paths): Likewise. + * mips-tfile.c (saber_stop): Handle backslash. + * prefix.c (update_path): Use filename_ncmp instead of + strncmp. + * profile.c (output_location): Use filename_cmp instead + of strcmp. + * read-md.c (handle_toplevel_file): Handle backslash. + * tlink.c (frob_extension): Likewise. + * tree-cfg.c (same_line_p): Use filename_cmp instead of + strcmp. + * tree-dump.c (dequeue_and_dump): Handle backslash. + * tree.c (get_file_function_name): Likewise. + * gengtype.c (read_input_list): Likewise. + (get_file_realbasename): Likewise. + (get_output_file_with_visibility): Use filename_cmp + instead of strcmp. + +2011-03-25 Richard Sandiford + + * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Restrict FPA_REGS + case to VFPv1. + +2011-03-25 Nathan Froyd + + * fold-const.c (expr_location_or): New function. + (fold_truth_not_expr): Call it. + +2011-03-25 Jeff Law + + * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add missing + va_end. + * c-family/c-common.c (def_fn_type): Likewise. + * ada/gcc-interface/utils.c (def_fn_type): Likewise. + * emit-rtl.c (gen_rtvec): Likewise. + * lto/lto-lang.c (def_fn_type): Likewise. + +2011-03-25 Richard Guenther + + * tree-ssa-copy.c (stmt_may_generate_copy): Copies from constants + also generate copies. + (fini_copy_prop): Handle constant values properly. + +2011-03-25 Jakub Jelinek + + * dwarf2out.c (mem_loc_descriptor) : Compare + mode size instead of bitsize with DWARF2_ADDR_SIZE. + (hash_loc_operands, compare_loc_operands): Handle + DW_OP_GNU_entry_value. + +2011-03-25 Kai Tietz + + * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Adjust comment. + (STACK_BOUNDARY): Check for bit-ness in case of MS_ABI. + * config/i386/i386.c (ix86_conditional_register_usage): Adjust + comment and use macro TARGET_64BIT_MS_ABI instead. + (ix86_keep_aggregate_return_pointer): Optimize for 64-bit case + and change default behavior for 32-bit MS_ABI. + (ix86_reg_parm_stack_space): Check additionally for bit-ness. + (ix86_function_type_abi): Allow check for ms_abi/sysv_abi for + 32-bit, too. + (ix86_cfun_abi): Likewise. + (ix86_maybe_switch_abi): Adjust comment. + (init_cumulative_args): Check for bit-ness in MS_ABI case. + (ix86_gimplify_va_arg): Check just for not TARGET_64BIT_MS_ABI + instead of checking for SYSV_ABI. + (ix86_nsaved_sseregs): Likewise. + (ix86_compute_frame_layout): Set only for 64-bit MS_ABI alignment + to 16 bytes. + (ix86_expand_call): Use TARGET_64BIT_MS_ABI macro. + * config/i386.h (TARGET_32BIT_MS_ABI): New macro. + (ACCUMULATE_OUTGOING_ARGS): Check explicit for 64-bit MS_ABI. + (OUTGOING_REG_PARM_STACK_SPACE): Likewise. + * config/mingw32.h (DEFAULT_ABI): Change default always to MS_ABI. + +2011-03-25 Richard Guenther + + * tree-flow.h (verify_stmts): Rename to verify_gimple_in_cfg. + (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq. + (verify_gimple): Remove. + * tree-cfg.c (verify_gimple_call): Merge verification + from verify_stmts. + (verify_gimple_phi): Merge verification from verify_stmts. + (verify_gimple_label): New function. + (verify_types_in_gimple_seq_2): Rename to verify_gimple_in_seq_2. + (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq. + (verify_stmt): Merge into verify_gimple_in_cfg and callees. + (verify_stmts): Rename to verify_gimple_in_cfg. + (verify_gimple_in_cfg): New function. + * passes.c (execute_function_todo): Call verify_gimple_in_cfg. + * tree-ssa.c (verify_ssa): Likewise. + * gimplify.c (gimplify_body): Call verify_gimple_in_seq. + +2011-03-25 Richard Guenther + + * passes.c (init_optimization_passes): Add FRE pass after + early SRA. + +2011-03-25 Bernd Schmidt + Andrew Stubbs + + * config/arm/vfp.md (arm_movdi_vfp): Enable only when not tuning + for Cortex-A8. + (arm_movdi_vfp_cortexa8): New pattern. + * config/arm/neon.md (adddi3_neon, subdi3_neon, anddi3_neon, + iordi3_neon, xordi3_neon): Add alternatives to discourage Neon + instructions when tuning for Cortex-A8. Set attribute "arch". + * config/arm/arm.md: Move include arm-tune.md up a bit. + (define_attr "arch"): Add "onlya8" and "nota8" values. + (define_attr "arch_enabled"): Handle "onlya8" and "nota8". + +2011-03-25 Nathan Froyd + + PR bootstrap/48282 + Revert: + 2011-03-24 Nathan Froyd + + * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and + FOR_BB_INSNS_SAFE to iterate through insns. Re-indent. + (pass_instantiate_virtual_regs): Require PROP_cfglayout. + * passes.c (init_optimization_passes): Move + pass_instantiate_virtual_regs after pass_into_cfg_layout_mode. + +2011-03-25 Kai Tietz + + * c-typeck.c (comptypes_internal): Replace target + hook call of comp_type_attributes by version in tree.c file. + * gimple.c (gimple_types_compatible_p_1): Likewise. + * tree-ssa.c (useless_type_conversion_p): Likewise. + * tree.c (build_type_attribute_qual_variant): Likewise. + (attribute_value_equal): New static helper function. + (comp_type_attributes): New function. + (merge_attributes): Use attribute_value_equal for comparison. + (attribute_list_contained): Likewise. + * tree.h (comp_type_attributes): New prototype. + +2011-03-25 Richard Guenther + + * tree-cfg.c (verify_gimple_assign_unary): Drop special casing + of complex types at -O0. + (verify_gimple_assign_binary): Likewise. + (verify_gimple_assign_ternary): Likewise. + +2011-03-24 Mark Wielaard + + * dwarf2out.c (size_of_die): Modify comment to say DW_FORM_ref_sig8. + (value_format): Use DW_FORM_ref_sig8, not DW_FORM_sig8. + +2011-03-24 Mark Wielaard + + PR debug/48041 + * dwarf2out.c (output_abbrev_section): Only write table when + abbrev_die_table_in_use > 1. + +2011-02-24 Richard Henderson + + * config/alpha/alpha.c (alpha_expand_unaligned_load): Use extql. + (alpha_expand_unaligned_store): Use mskwl, mskll, mskql. + (alpha_expand_unaligned_load_words): Use extql. + (alpha_expand_unaligned_store_words): Use insqh, mskqh, mskql. + (emit_insxl): Handle all modes for consistency. + +2011-02-24 Richard Henderson + + * config/alpha/alpha.c (get_aligned_mem): Don't test WORDS_BIG_ENDIAN. + (alpha_expand_unaligned_load): Likewise. + (alpha_expand_unaligned_store): Likewise. + (alpha_expand_unaligned_load_words): Likewise. + (alpha_expand_unaligned_store_words): Likewise. + (emit_insxl, alpha_split_compare_and_swap_12): Likewise. + (alpha_split_lock_test_and_set_12): Likewise. + (print_operand, alpha_fold_builtin_extxx): Likewise. + (alpha_fold_builtin_insxx, alpha_fold_builtin_mskxx): Likewise. + * config/alpha/alpha.md (bswapsi2, insv, extv, extzv): Likewise. + (builtin_extwh, builtin_extlh, builtin_extql): Likewise. + (unaligned_extendqidi_be, unaligned_extendhidi_be, extxl_be): Remove. + (*extxl_1_be, *extql_2_be, extqh_be, extlh_be, extwh_be): Remove. + (insbl_be, inswl_be, insll_be, insql_be, mskxl_be): Remove. + (unaligned_loadqi_be, unaligned_loadhi_be): Remove. + (unaligned_storeqi_be, unaligned_storehi_be): Remove. + (extbl): Rename from builtin_extbl; don't test WORDS_BIG_ENDIAN. + (extwl, extll, extql): Similarly. + (inswh, inslh, insqh): Similarly. + (mskbl, mskwl, mskll, mskql): Similarly. + (mskwh, msklh, mskqh): Similarly. + +2011-02-24 Richard Henderson + + * config/alpha/alpha.md (attribute isa): Add er, ner. + (attribute enabled): Handle them. + (*movdi): Merge *movdi_{er_nofix,nofix,er_fix,fix}. + +2011-02-24 Richard Henderson + + * config/alpha/alpha.md (attribute isa): Add vms. + (attribute enabled): Handle it. + (*movsf): Merge *movsf_{nofix,fix,nofp}. + (*movdf): Merge *movdf_{nofix,fix,nofp}. + (*movtf): Rename from *movtf_internal for consistency. + (*movsi): Merge with *movsi_nt_vms. + (*movhi): Merge *movhi_nobwx, *movhi_bwx. + (*movqi): Merge *movqi_nobwx, *movqi_bwx. + (*mov): Merge *mov_fix, *mov_nofix. + * config/alpha/constraint.md ("f"): Use NO_REGS when fpu is disabled. + +2011-02-24 Richard Henderson + + * config/alpha/alpha.md (extendqihi2): Implement for BWX only. + (extendqisi2, extendhisi2): Likewise. + (extendqidi2): Simplify BWX/non-BWX expansions. + (extendhidi2): Similarly. + +2011-02-24 Richard Henderson + + * config/alpha/alpha.md (attribute isa): New. + (attribute enabled): New. + (zero_extendqihi2): Merge from *zero_extendqihi2_{bwx,nobwx}. + (zero_extendqisi2, zero_extendqidi2): Similarly. + (zero_extendhisi2, zero_extendhidi2): Similarly. + * config/alpha/predicates.md (reg_or_bwx_memory_operand): New. + +2011-02-24 Richard Henderson + + * config/alpha/predicates.md (input_operand): Revert last change; + update comment to mention 32-bit VMS rather than Windows. + +2011-03-24 Nathan Froyd + + * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and + FOR_BB_INSNS_SAFE to iterate through insns. Re-indent. + (pass_instantiate_virtual_regs): Require PROP_cfglayout. + * passes.c (init_optimization_passes): Move + pass_instantiate_virtual_regs after pass_into_cfg_layout_mode. + +2011-03-24 Eric Botcazou + + * dojump.c (do_jump_by_parts_greater_rtx): Optimize in specific cases. + +2011-03-24 Uros Bizjak + + * config/i386/i386.md (ix86_print_operand): Output DFmode const_double + correctly. + +2011-03-24 Jakub Jelinek + + PR debug/48204 + * simplify-rtx.c (simplify_const_unary_operation): Call + real_convert when changing mode class with FLOAT_EXTEND. + +2011-03-24 Nick Clifton + + * config/rx/rx.h (LABEL_ALIGN_FOR_BARRIER): Define. + (ASM_OUTPUT_MAX_SKIP_ALIGN): Define. + * config/rx/rx.c (rx_option_override): Set align_jumps, + align_loops and align_labels if not set by the user. + (rx_align_for_label): New function. + (rx_max_skip_for_label): New function. + (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Define. + (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define. + (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Define. + (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Define. + * config/rx/rx-protos.h (rx_align_for_label): Add prototype. + +2011-03-24 Richard Sandiford + + PR rtl-optimization/48263 + * optabs.c (expand_binop_directly): Reinstate convert_modes code + and original commutative_p handling. Use maybe_gen_insn. + +2011-03-24 Andreas Krebbel + + * reload.c (find_reloads_subreg_address): Add address_reloaded + parameter and return true there if the full address has been + reloaded. + (find_reloads_toplev): Pass address_reloaded flag. + (find_reloads_address_1): Don't use address_reloaded parameter. + +2011-03-24 Jeff Law + + * tree-ssa-live.c (remove_unused_scope_block_p): Remove set but + unused variable "ann". + (remove_unused_locals): Likewise. + + * tree-ssa-copy.c (propagate_tree_value_into_stmt): Remove useless + statement. + + * cfglayout.c (fixup_reorder_chain): Do not dereference E_FALL + after it is freed. + +2011-03-24 Andreas Krebbel + + * config/s390/s390.c (s390_preferred_reload_class): Return NO_REGS + for invalid symbolic addresses. + (s390_secondary_reload): Don't use s390_check_symref_alignment for + larl operands. + +2011-03-24 Eric Botcazou + + * fold-const.c (fold_ternary_loc): Preserve the location (if any) of + the argument in calls to fold_truth_not_expr. + +2011-03-24 Nathan Froyd + + * tree.c (record_node_allocation_statistics): New function. + (make_node_stat, copy_node_stat, build_string): Call it. + (make_tree_binfo_stat, make_tree_vec_stat, tree_cons_stat): Likewise. + (build1_stat, build_omp_clause): Likewise. + +2011-03-24 Richard Sandiford + + * builtins.c (expand_movstr): Fix endp == 1 adjustment after + last commit. + +2011-03-24 Richard Guenther + + PR tree-optimization/48271 + * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only cleanup + blocks that still exist. + +2011-03-24 Richard Guenther + + PR tree-optimization/48270 + * tree-ssa-phiopt.c (cond_if_else_store_replacement): Do + not free datarefs before ddrs. + +2011-03-24 Eric Botcazou + + * tree-sra.c (build_ref_for_offset): Strip useless type conversions + from the address built for a reference with variable offset. + +2011-03-24 Uros Bizjak + + PR target/48237 + * config/i386/i386.md (*movdf_internal_rex64): Do not split + alternatives that can be handled with movq or movabsq insn. + (*movdf_internal): Disable for !TARGET_64BIT. + (*movdf_internal_nointeger): Ditto. + * config/i386/i386.c (ix86_print_operand): Handle DFmode immediates. + +2011-03-24 Nathan Froyd + + * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison. + (FUNCTION_ARG_ADVANCE): Likewise. + * tm.texi.in: Change references to them to hook references. + * tm.texi: Regenerate. + * targhooks.c (default_function_arg): Eliminate check for target macro. + (default_function_incoming_arg): Likewise. + (default_function_arg_advance): Likewise. + * target.def (function_arg, function_incoming_arg): Change to DEFHOOK. + (function_arg_advance): Likewise. + * target-def.h: Eliminate FUNCTION_INCOMING_ARG check. + +2011-03-24 Richard Guenther + + PR middle-end/48269 + * tree-object-size.c (addr_object_size): Do not double-account + for MEM_REF offsets. + +2011-03-24 Diego Novillo + + * lto-opts.c (input_data_block): Move to lto-streamer-in.c. + * lto-streamer-in.c (input_string_internal): Add clarifying comments. + (lto_input_data_block): Move from lto-opts.c. Make extern. + Update all users. + (lto_input_string): Rename from input_string. Make extern. + Update all users. + * lto-streamer-out.c (lto_output_string_with_length): Rename from + output_string_with_length. + Output 0 to indicate a non-NULL string. Update all callers to + not emit 0. + (lto_output_string): Rename from output_string. Make extern. + Update all users. + (lto_output_decl_state_streams): Make extern. + (lto_output_decl_state_refs): Make extern. + * lto-streamer.h (lto_input_string): Declare. + (lto_input_data_block): Declare. + (lto_output_string): Declare. + (lto_output_string_with_length): Declare. + (lto_output_decl_state_streams): Declare. + (lto_output_decl_state_refs): Declare. + +2011-03-24 Richard Guenther + + PR tree-optimization/46562 + * tree.c (build_invariant_address): New function. + * tree.h (build_invariant_address): Declare. + * tree-dfa.c (get_addr_base_and_unit_offset): Wrap around + a renamed function moved ... + * tree-flow-inline.h (get_addr_base_and_unit_offset_1): ... here. + Take valueization callback parameter. + * tree-flow.h (gimple_fold_stmt_to_constant): Declare. + * gimple-fold.h: New file. + * tree-ssa-ccp.c (ccp_fold): Use gimple_fold_stmt_to_constant_1. + (ccp_fold, fold_const_aggregate_ref, + fold_ctor_reference, fold_nonarray_ctor_reference, + fold_array_ctor_reference, fold_string_cst_ctor_reference, + get_base_constructor): Move ... + * gimple-fold.c: ... here. + (gimple_fold_stmt_to_constant_1): New function + split out from ccp_fold. Take a valueization callback parameter. + Valueize all operands. + (gimple_fold_stmt_to_constant): New wrapper function. + (fold_const_aggregate_ref_1): New function split out from + fold_const_aggregate_ref. Take a valueization callback parameter. + (fold_const_aggregate_ref): Wrap fold_const_aggregate_ref_1. + * tree-ssa-sccvn.c (simplify_binary_expression): Simplify + invariant POINTER_PLUS_EXPRs to invariant form. + (vn_valueize): New function. + (try_to_simplify): Simplify by using gimple_fold_stmt_to_constant. + * tree-vrp.c (vrp_valueize): New function. + (vrp_visit_assignment_or_call): Use gimple_fold_stmt_to_constant + to fold statements to constants. + * tree-ssa-pre.c (eliminate): Properly guard propagation of + function declarations. + * Makefile.in (tree-ssa-sccvn.o, tree-vrp.o, gimple-fold.o, + tree-ssa-ccp.o): Add gimple-fold.h dependencies. + +2011-03-24 Richard Sandiford + + * config/h8300/predicates.md (jump_address_operand): Fix register + mode check. + +2011-03-24 Ira Rosen + + * doc/invoke.texi (max-stores-to-sink): Document. + * params.h (MAX_STORES_TO_SINK): Define. + * opts.c (finish_options): Set MAX_STORES_TO_SINK to 0 + if either vectorization or if-conversion is disabled. + * tree-data-ref.c (dr_equal_offsets_p1): Moved and renamed from + tree-vect-data-refs.c vect_equal_offsets. + (dr_equal_offsets_p): New function. + (find_data_references_in_bb): Remove static. + * tree-data-ref.h (find_data_references_in_bb): Declare. + (dr_equal_offsets_p): Likewise. + * tree-vect-data-refs.c (vect_equal_offsets): Move to tree-data-ref.c. + (vect_drs_dependent_in_basic_block): Update calls to + vect_equal_offsets. + (vect_check_interleaving): Likewise. + * tree-ssa-phiopt.c: Include cfgloop.h and tree-data-ref.h. + (cond_if_else_store_replacement): Rename to... + (cond_if_else_store_replacement_1): ... this. Change arguments and + documentation. + (cond_if_else_store_replacement): New function. + * Makefile.in (tree-ssa-phiopt.o): Adjust dependencies. + * params.def (PARAM_MAX_STORES_TO_SINK): Define. + +2011-03-23 Chung-Lin Tang + + PR target/46934 + * config/arm/arm.md (casesi): Use the gen_int_mode() function + to subtract lower bound instead of GEN_INT(). + +2011-03-23 Jonathan Wakely + + PR other/48179 + PR other/48221 + PR other/48234 + * doc/extend.texi (Alignment): Move section to match order in TOC. + * doc/invoke.texi (i386 and x86-64 Windows Options): Likewise. + (Warning Options): Adjust -Wno-cpp summary and remove stray backslash. + +2011-03-23 Jeff Law + + * cfg.c (redirect_edge_succ_nodup): Duplicate the varm map + before removing the edge. + + * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Do not use E after + it may have been freed by redirect_branch_edge or + redirect_edge_succ_nodup. + +2011-03-23 Richard Guenther + + * tree-stdarg.c (va_list_counter_bump): Handle bumps via MEM_REF. + (check_va_list_escapes): Likewise. + (check_all_va_list_escapes): Likewise. + +2011-03-23 Richard Guenther + + * Makefile.in (IPA_TYPE_ESCAPE_H): Remove. + (OBJS-archive): Remove ipa-struct-reorg.o and ipa-type-escape.o. + (tree-ssa-alias.o): Do not depend on IPA_TYPE_ESCAPE_H. + (alias.o): Likewise. + (ipa-type-escape.o): Remove. + (ipa-struct-reorg.o): Likewise. + (GTFILES): Remove ipa-struct-reorg.c. + * alias.c: Do not include ipa-type-escape.h. + * tree-ssa-alias.c: Likewise. + * common.opt (fipa-struct-reorg): Preserve for backward compatibility. + * opts.c (finish_options): Do not reset flag_ipa_struct_reorg. + * passes.c (init_optimization_passes): Remove ipa-struct-reorg + and ipa-type-escape passes. + * tree-pass.h (pass_ipa_type_escape): Remove. + (pass_ipa_struct_reorg): Likewise. + * ipa-struct-reorg.h: Remove. + * ipa-struct-reorg.c: Likewise. + * ipa-type-escape.h: Likewise. + * ipa-type-escape.c: Likewise. + * doc/invoke.texi (-fipa-struct-reorg): Remove. + (--param struct-reorg-cold-struct-ratio): Likewise. + * params.def (PARAM_STRUCT_REORG_COLD_STRUCT_RATIO): Likewise. + * params.h (STRUCT_REORG_COLD_STRUCT_RATIO): Likewise. + * timevar.def (TV_IPA_TYPE_ESCAPE): Likewise. + +2011-03-23 Andreas Krebbel + + * config/s390/2084.md: Enable all insn reservations also for z9_ec + cpu attribute value. + * config/s390/s390-opts.h (enum s390_arch_option): Remove. + (enum processor_type): Add PROCESSOR_2094_Z9_EC. + * config/s390/s390.c (processor_flags_table): New constant array. + (s390_handle_arch_option): Remove. + (s390_handle_option): Remove s390_handle_arch_option invocations + and OPT_mwarn_framesize_ handling. + (s390_option_override): Remove s390_handle_arch_option invocation. + (s390_emit_prologue): Remove use of HOST_WIDE_INT_PRINT_DEC in + warnings. + * config/s390/s390.md (cpu attribute): Add z9_ec value. + * config/s390/s390.opt (s390_tune, s390_arch) + (march=): Replace s390_arch_option enum and values with + processor_type. Set variable name to s390_arch. Set + initialization value. + (mtune=): Replace s390_arch_option with processor_type. Set + variable name to s390_tune. Set initialization value. + +2011-03-23 Julian Brown + + * expr.c (expand_expr_real_1): Only use BLKmode for volatile + accesses which are not naturally aligned. + +2011-03-23 Richard Sandiford + + PR target/47553 + * config/arm/predicates.md (neon_lane_number): Accept 0..15. + +2011-03-23 Richard Sandiford + + * optabs.h (emit_unop_insn, maybe_emit_unop_insn): Change insn code + parameter from "int" to "enum insn_code". + (expand_operand_type): New enum. + (expand_operand): New structure. + (create_expand_operand): New function. + (create_fixed_operand, create_output_operand): Likewise + (create_input_operand, create_convert_operand_to): Likewise. + (create_convert_operand_from, create_address_operand): Likewise. + (create_integer_operand): Likewise. + (create_convert_operand_from_type, maybe_legitimize_operands): Declare. + (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise. + (expand_insn, expand_jump_insn): Likewise. + * builtins.c (expand_builtin_prefetch): Use the new interfaces. + (expand_builtin_interclass_mathfn, expand_builtin_strlen): Likewise. + (expand_movstr, expand_builtin___clear_cache): Likewise. + (expand_builtin_lock_release): Likewise. + * explow.c (allocate_dynamic_stack_space): Likewise. + (probe_stack_range): Likewise. Allow check_stack to FAIL, + and use the default handling in that case. + * expmed.c (check_predicate_volatile_ok): Delete. + (store_bit_field_1, extract_bit_field_1): Use the new interfaces. + (emit_cstore): Likewise. + * expr.c (emit_block_move_via_movmem): Likewise. + (set_storage_via_setmem, expand_assignment): Likewise. + (emit_storent_insn, try_casesi): Likewise. + (emit_single_push_insn): Likewise. Allow the expansion to fail. + * optabs.c (expand_widen_pattern_expr, expand_ternary_op): Likewise. + (expand_vec_shift_expr, expand_binop_directly): Likewise. + (expand_twoval_unop, expand_twoval_binop): Likewise. + (expand_unop_direct, emit_indirect_jump): Likewise. + (emit_conditional_move, vector_compare_rtx): Likewise. + (expand_vec_cond_expr, expand_val_compare_and_swap_1): Likewise. + (expand_sync_operation, expand_sync_fetch_operation): Likewise. + (expand_sync_lock_test_and_set): Likewise. + (maybe_emit_unop_insn): Likewise. Change icode to an insn_code. + (emit_unop_insn): Likewise. + (expand_copysign_absneg): Change icode to an insn_code. + (create_convert_operand_from_type): New function. + (maybe_legitimize_operand, maybe_legitimize_operands): Likewise. + (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise. + (expand_insn, expand_jump_insn): Likewise. + * config/i386/i386.md (setmem): Use nonmemory_operand rather + than const_int_operand for operand 2. + +2011-03-23 Andreas Krebbel + + * dwarf2out.c (const_ok_for_output_1): Print the unspec enum name + if possible. + +2011-03-22 Nathan Froyd + + * emit-rtl.c (emit_pattern_before_noloc): New function. + (emit_insn_before_noloc, emit_jump_insn_before_noloc): Call it. + (emit_call_insn_before_noloc, emit_debug_insn_before_noloc): Likewise. + (emit_pattern_after_noloc): New function. + (emit_insn_after_noloc, emit_jump_insn_after_noloc): Call it. + (emit_call_insn_after_noloc, emit_debug_insn_after_noloc): Likewise. + +2011-03-22 Nathan Froyd + + * libgcc2.c (__lshrdi3, __ashldi3, __ashrdi3): Use W_TYPE_SIZE. + (__ffsDI2): Likewise. + +2011-03-22 Richard Henderson + + * config/alpha/alpha.c (direct_return): Use TARGET_ABI_OSF instead + of !TARGET_ABI_OPEN_VMS. + (alpha_trampoline_init, alpha_start_function): Likewise. + (alpha_expand_epilogue, alpha_file_start): Likewise. + * config/alpha/alpha.md (divsi3, modsi3): Likewise. + (udivsi3, umodsi3, divdi3, moddi3, udivdi3, umoddi3): Likewise. + (*divmodsi_internal_er, *divmodsi_internal_er_1): Likewise. + (*divmodsi_internal, *divmoddi_internal_er): Likewise. + (*divmoddi_internal_er_1, *divmoddi_internal): Likewise. + +2011-03-22 Joseph Myers + + * config/s390/s390-opts.h: New. + * config/s390/s390.c (s390_tune, s390_tune_flags, s390_arch, + s390_arch_flags, s390_warn_framesize, s390_stack_size, + s390_stack_guard): Remove. + (s390_handle_arch_option): Return void. Take enum + s390_arch_option value instead of string and searching array. + (s390_handle_option): Don't assert that global structures are in + use. Access variables via opts pointer. Use error_at. Don't use + sscanf for -mstack-guard= or -mstack-size=. Update call to + s390_handle_arch_option. + (s390_option_override): Update call to s390_handle_arch_option. + (s390_emit_prologue): Use %d format for s390_stack_size in + diagnostic. Use %wd for HOST_WIDE_INT. + * config/s390/s390.h (enum processor_type): Move to s390-opts.h. + (s390_tune, s390_tune_flags, s390_arch, s390_arch_flags): Remove. + * config/s390/s390.opt (config/s390/s390-opts.h): New + HeaderInclude entry. + (s390_arch_string, s390_tune, s390_tune_flags, s390_arch, + s390_arch_flags, s390_warn_framesize): New Variable entries. + (s390_arch_option): New Enum and EnumValue entries. + (march=): Use Enum instead of Var. + (mstack-guard=, mstack-size=): Use UInteger and Var. + (mtune=): Use Enum. + +2011-03-22 Joseph Myers + + * config/score/score.c (score_handle_option): Don't assert that + global structures are in use. Access target_flags via opts + pointer. Use value of -march= option to determine target_flags + settings. + * config/score/score.opt (march=): Use Enum. + (score_arch): New Enum and EnumValue entries. + +2011-03-22 Joseph Myers + + * config/mep/mep.c (option_mtiny_specified): Remove. + (mep_option_override): Move register handling for -mivc2 from + mep_handle_option. Use global_options_set.x_mep_tiny_cutoff + instead of option_mtiny_specified. + (mep_handle_option): Access target_flags via opts pointer. Don't + assert that global structures are in use. Defer part of -mivc2 + handling and move it to mep_option_override. + * config/mep/mep.opt (IVC2): New Mask entry. + (mivc2): Use Var and Defer instead of Mask. + +2011-03-22 Joseph Myers + + * config/v850/v850-opts.h: New. + * config/v850/v850.c (small_memory): Replace with + small_memory_physical_max array. Make that array static const. + (v850_handle_memory_option): Take integer value of argument. Take + gcc_options pointer, option text and location. Return void. + Update for changes to small memory structures. + (v850_handle_option): Access target_flags via opts pointer. Don't + assert that global structures are in use. Update calls to + v850_handle_memory_option. + (v850_encode_data_area): Update references to small memory settings. + * config/v850/v850.h (struct small_memory_info, small_memory): Remove. + (enum small_memory_type): Move to v850-opts.h. + * config/v850/v850.opt (config/v850/v850-opts.h): New + HeaderInclude entry. + (small_memory_max): New Variable entry. + (msda): Replace by pair of options msda= and msda-. Use UInteger. + (mtda, mzda): Likewise. + +2011-03-22 Joseph Myers + + * config/sh/sh.c (sh_handle_option): Access target_flags via opts + pointer. Don't assert that global structures are in use. + +2011-03-22 Joseph Myers + + * config/pdp11/pdp11.c (pdp11_handle_option): Access target_flags + via opts pointer. Don't assert that global structures are in use. + +2011-03-22 Joseph Myers + + * config/pa/pa-hpux.opt (flag_pa_unix): New Variable entry. + (munix=93): Use Var. + * config/pa/pa-hpux1010.opt (munix=95): Use Var. + * config/pa/pa-hpux1111.opt (munix=98): Use Var. + * config/pa/pa-opts.h: New. + * config/pa/pa.c (pa_cpu, flag_pa_unix): Remove. + (pa_handle_option): Don't assert that global structures are in + use. Access target_flags via opts pointer. Don't handle + OPT_mschedule_, OPT_mfixed_range_, OPT_munix_93, OPT_munix_95 or + OPT_munix_98 here. + (pa_option_override): Handle deferred OPT_mfixed_range_. + +2011-03-22 Joseph Myers + + * config/mn10300/mn10300-opts.h: New. + * config/mn10300/mn10300.c (mn10300_processor, + mn10300_tune_string): Remove. + (mn10300_handle_option): Don't assert that global structures are + in use. Access mn10300_processor via opts pointer. Don't handle + OPT_mtune_ here. + * config/mn10300/mn10300.h (enum processor_type): Move to + mn10300-opts.h. + (mn10300_processor): Remove. + * config/mn10300/mn10300.opt (config/mn10300/mn10300-opts.h): New + HeaderInclude entry. + (mn10300_processor): New Variable entry. + (mtune=): Use Var. + +2011-03-22 Joseph Myers + + * config/microblaze/microblaze.c: Don't include opts.h. + (microblaze_handle_option, TARGET_HANDLE_OPTION): Remove. + * config/microblaze/microblaze.opt (mxl-stack-check): Use Warn. + (mno-clearbss): Use Var and Warn. + +2011-03-22 Joseph Myers + + * config/m32r/m32r-opts.h: New. + * config/m32r/m32r.c (m32r_model, m32r_sdata): Remove. + (m32r_handle_option): Don't assert that global structures are in + use. Access target_flags and m32r_cache_flush_func via opts + pointer. Don't handle OPT_mmodel_, OPT_msdata_ or + OPT_mno_flush_trap here. + * config/m32r/m32r.h (Code Models, Small Data Area): Replace by + include of m32r-opts.h. + * config/m32r/m32r.opt (config/m32r/m32r-opts.h): New + HeaderInclude entry. + (m32r_model_selected, m32r_sdata_selected): New Variable entries. + (mmodel=): Use Enum and Var. + (m32r_model): New Enum and EnumValue entries. + (mno-flush-trap): Use Var. + (msdata=): Use Enum and Var. + (m32r_sdata): New Enum and EnumValue entries. + +2011-03-22 Joseph Myers + + * config/m32c/m32c.c: Don't include opts.h. + (target_memregs, target_memregs_set, TARGET_HANDLE_OPTION, + m32c_handle_option): Remove. + (m32c_option_override): Check global_options_set.x_target_memregs + instead of target_memregs_set. + * config/m32c/m32c.h (target_memregs): Remove. + * config/m32c/m32c.opt (memregs=): Use UInteger with integer + variable. + +2011-03-22 Joseph Myers + + * config/iq2000/iq2000-opts.h: New. + * config/iq2000/iq2000.c: Don't include opts.h. + (iq2000_tune, iq2000_handle_option, TARGET_HANDLE_OPTION): Remove. + * config/iq2000/iq2000.h (enum processor_type, iq2000_tune): Remove. + * config/iq2000/iq2000.opt (config/iq2000/iq2000-opts.h): New + HeaderInclude entry. + (iq2000_tune): New Variable entry. + (march=): Add comment. Use Enum. + (iq2000_arch): New Enum and EnumValue entries. + (mcpu=): Use Enum and Var. + (iq2000_tune): New Enum and EnumValue entries. + +2011-03-22 Joseph Myers + + * config/ia64/ia64-opts.h: New. + * config/ia64/ia64.c (ia64_tune): Remove. + (ia64_handle_option): Don't handle OPT_mfixed_range_ or OPT_mtune_ + here. Use error_at. + (ia64_option_override): Handle deferred OPT_mfixed_range_. + * config/ia64/ia64.h (enum processor_type, ia64_tune): Remove. + * config/ia64/ia64.opt (config/ia64/ia64-opts.h): New + HeaderInclude entry. + (ia64_tune): New Variable entry. + (mfixed-range=): Use Defer and Var. + (mtune=): Use Enum and Var. + (ia64_tune): New Enum and EnumValue entries. + +2011-03-22 Joseph Myers + + * config/frv/frv-opts.h: New. + * config/frv/frv-protos.h (enum frv_cpu, frv_cpu_t): Move to + frv-opts.h. + (frv_cpu_type): Remove. + * config/frv/frv.c: Don't include opts.h. + (frv_cpu_type, frv_handle_option, TARGET_HANDLE_OPTION): Remove. + * config/frv/frv.opt (config/frv/frv-opts.h): New HeaderInclude entry. + (frv_cpu_type): New Variable entry. + (frv_cpu): New Enum and EnumValue entries. + +2011-03-22 Joseph Myers + + * config/cris/cris.c (cris_handle_option): Access target_flags via + opts pointer. Don't assert that global structures are in use. + Don't call CRIS_SUBTARGET_HANDLE_OPTION. + * config/cris/cris.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't define. + +2011-03-22 Joseph Myers + + * config/bfin/bfin-opts.h: New. + * config/bfin/bfin.c (bfin_lib_id_given, bfin_cpu_type, + bfin_si_revision, bfin_workarounds): Remove. + (bfin_cpus): Make static const. + (bfin_load_pic_reg): Check global_options_set.x_bfin_library_id + not bfin_lib_id_given. + (bfin_handle_option): Don't set bfin_lib_id_given. Access + bfin_cpu_type, bfin_si_revision and bfin_workarounds via opts + pointer. Use error_at. Don't assert that global structures are in use. + * config/bfin/bfin.h: Include bfin-opts.h. + (enum bfin_cpu_type, bfin_cpu_t): Move to bfin-opts.h. + (bfin_cpu_type, bfin_si_revision, bfin_workarounds): Remove. + * bfin.opt (config/bfin/bfin-opts.h): New HeaderInclude entry. + (bfin_cpu_type, bfin_si_revision, bfin_workarounds): New Variable + entries. + +2011-03-22 Joseph Myers + + * config/arm/arm.opt (mhard-float, msoft-float): Use Alias. + * config/arm/arm.c (arm_handle_option): Don't handle -mhard-float + or -msoft-float here. + * config/arm/arm.h (CPP_SPEC): Handle -mfloat-abi=*, not + -msoft-float and -mhard-float. + (OPTION_DEFAULT_SPECS): Don't handle -mhard-float and -msoft-float. + * config/arm/coff.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not + msoft-float. + * config/arm/elf.h (ASM_SPEC): Don't handle -mhard-float and + -msoft-float. + (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not msoft-float. + * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Use mfloat-abi=hard, + not mhard-float. + (LIBGCC_SPEC): Don't handle -msoft-float. + * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Don't handle + -mhard-float. + * config/arm/pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not + msoft-float. + * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Handle + -mfloat-abi=*, not -msoft-float and -mhard-float. + * config/arm/semi.h((ASM_SPEC): Don't handle -mhard-float and + -msoft-float. + * config/arm/t-arm-elf (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): + Use mfloat-abi=hard and mfloat-abi=soft in comments, not + mhard-float and msoft-float. + * config/arm/t-linux (MULTILIB_OPTIONS): Use mfloat-abi=hard and + mfloat-abi=soft in comments, not mhard-float and msoft-float. + * config/arm/t-rtems (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use + mfloat-abi=soft and mfloat-abi=hard, not msoft-float and + mhard-float. + * config/arm/t-strongarm-elf (MULTILIB_OPTIONS): Use + mfloat-abi=hard and mfloat-abi=soft, not mhard-float and + msoft-float. + * config/arm/t-wince-pe (MULTILIB_OPTIONS): Use mfloat-abi=hard, + not mhard-float. + * config/arm/wince-pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, + not msoft-float. + 2011-03-22 Richard Henderson * config/alpha/alpha.c (alpha_expand_prologue): Don't test @@ -25,8 +926,7 @@ global structures are in use. (ix86_function_specific_save, ix86_function_specific_restore): Update ix86_isa_flags_explicit field name. - * config/i386/i386.opt (ix86_isa_flags_explicit): New Variable - entry. + * config/i386/i386.opt (ix86_isa_flags_explicit): New Variable entry. (ix86_isa_flags_explicit): Rename TargetSave entry to x_ix86_isa_flags_explicit. @@ -273,6 +1173,20 @@ 2011-03-22 Nathan Froyd + * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison. + (FUNCTION_ARG_ADVANCE): Likewise. + * tm.texi.in: Change references to them to hook references. + * tm.texi: Regenerate. + * targhooks.c (default_function_arg): Eliminate check for target + macro. + (default_function_incoming_arg): Likewise. + (default_function_arg_advance): Likewise. + * target.def (function_arg, function_incoming_arg): Change to DEFHOOK. + (function_arg_advance): Likewise. + * target-def.h: Eliminate FUNCTION_INCOMING_ARG check. + +2011-03-22 Nathan Froyd + * tree.c (build_call_1): New function. (build_call_valist, build_call_array_loc, build_call_vec): Call it. @@ -343,7 +1257,8 @@ * function.c (safe_insn_predicate, assign_parm_setup_reg): Likewise. * optabs.c (can_compare_p, prepare_cmp_insn): Likewise. (emit_cmp_and_jump_insn_1, gen_add2_insn, gen_add3_insn): Likewise. - (have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn): Likewise. + (have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn): + Likewise. (gen_cond_trap): Likewise. (prepare_operand): Likewise. Change icode to an insn_code. (insn_operand_matches): New function.