X-Git-Url: http://git.sourceforge.jp/view?p=pf3gnuchains%2Fgcc-fork.git;a=blobdiff_plain;f=gcc%2FChangeLog;h=372df6b4eb34c0a204a883afaeee2c9008b038ae;hp=ca61217382525f7329b6bb78653b348817ecdb97;hb=869bde6b9946186a3d4b71cb3d48090e16723f57;hpb=33ef0630c91ab184085630014dee7bb2084e3e2a diff --git a/gcc/ChangeLog b/gcc/ChangeLog index ca612173825..372df6b4eb3 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,8 +1,720 @@ +2009-05-18 Maxim Kuvyrkov + + M68K TLS support. + * configure.ac (m68k-*-*): Check if binutils support TLS. + * configure: Regenerate. + * config/m68k/predicates.md (symbolic_operand): Extend comment. + * config/m68k/constraints.md (Cu): New constraint. + * config/m68k/m68k.md (UNSPEC_GOTOFF): Remove. + (UNSPEC_RELOC16, UNSPEC_RELOC32): New constants. + (movsi): Handle TLS symbols. + (addsi3_5200): Handle XTLS symbols, indent. + * config/m68k/m68k-protos.h (m68k_legitimize_tls_address): Declare. + (m68k_tls_reference_p): Declare. + (m68k_legitimize_address): Declare. + (m68k_unwrap_symbol): Declare. + * config/m68k/m68k.opt (mxtls): New option. + * config/m68k/m68k.c (ggc.h): Include. + (m68k_output_dwarf_dtprel): Implement hook. + (TARGET_HAVE_TLS, TARGET_ASM_OUTPUT_DWARF_DTPREL): Define. + (m68k_expand_prologue): Load GOT pointer when function needs it. + (m68k_illegitimate_symbolic_constant_p): Handle TLS symbols. + (m68k_legitimate_constant_address_p): Same. + (m68k_decompose_address): Handle TLS references. + (m68k_get_gp): New static function. + (enum m68k_reloc): New contants. + (TLS_RELOC_P): New macro. + (m68k_wrap_symbol): New static function. + (m68k_unwrap_symbol): New function. + (m68k_final_prescan_insn_1): New static function. + (m68k_final_prescan_insn): New function. + (m68k_move_to_reg, m68k_wrap_symbol_into_got_ref): New static + functions. + (legitimize_pic_address): Handle TLS references.. + (m68k_tls_get_addr, m68k_get_tls_get_addr) + (m68k_libcall_value_in_a0_p) + (m68k_call_tls_get_addr, m68k_read_tp, m68k_get_m68k_read_tp) + (m68k_call_m68k_read_tp): Helper variables and functions for ... + (m68k_legitimize_tls_address): Handle TLS references. + (m68k_tls_symbol_p, m68k_tls_reference_p_1, m68k_tls_reference_p): + New functions. + (m68k_legitimize_address): Handle TLS symbols. + (m68k_get_reloc_decoration): New static function. + (m68k_output_addr_const_extra): Handle UNSPEC_RELOC16 and + UNSPEC_RELOC32. + (m68k_output_dwarf_dtprel): Implement hook. + (print_operand_address): Handle UNSPEC_RELOC16 adn UNSPEC_RELOC32. + (m68k_libcall_value): Return result in A0 instead of D0 when asked by + m68k_call_* routines. + (sched_attr_op_type): Handle TLS symbols. + (gt-m68k.h): Include. + * config/m68k/m68k.h (FINAL_PRESCAN_INSN): Define. + (LEGITIMATE_PIC_OPERAND_P): Support TLS. + +2009-05-18 Martin Jambor + + * ipa-prop.c (ipa_check_stmt_modifications): Removed. + (visit_store_addr_for_mod_analysis): New function. + (ipa_detect_param_modifications): Use walk_stmt_load_store_addr_ops. + (determine_cst_member_ptr): Use gimple_assign_single_p. + (ipa_get_stmt_member_ptr_load_param): Use gimple_assign_single_p. + (ipa_analyze_call_uses): Use !gimple_assign_rhs2 rather than number of + operands. Don't check number of operands of a NOP_EXPR. + +2009-05-18 Eric Fisher + + * doc/tree-ssa.texi (SSA Operands): Fix a mistake. + +2009-05-17 Manuel López-Ibáñez + + PR c/40172 + * c-common.c (warn_logical_operator): Don't warn if one of + expression isn't always true or false. + +2009-05-17 Kai Tietz + + * config/i386/biarch32.h: New file. + * config.gcc: Add for target i386-w64-* the biarch32.h to tm_file. + +2009-05-17 Adam Nemet + + * config/mips/mips.md (*zero_extend_trunchi, + *zero_extend_truncqi): Merge these into ... + (*zero_extend_trunc): ... this new pattern. + Name the pattern following this as *zero_extendhi_truncqi. + +2009-05-16 Brad Lucier + + PR middle-end/39301 + * hwint.h: Add macro HOST_WIDEST_INT_PRINT. + * bitmap.c (bitmap_descriptor): Make fields HOST_WIDEST_INT. + (output_info): Make field HOST_WIDEST_INT. + (print_statistics): Use HOST_WIDEST_INT_PRINT. + (dump_bitmat_statistics): Same. + +2009-05-16 Francois-Xavier Coudert + + * config.gcc (use_gcc_stdint): Set to wrap. + * config/darwin.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, + INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, + UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE, + INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, + UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE, + INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE, + UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE, + UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define. + +2009-05-16 Joseph Myers + + * config.gcc (mips*-*-*): Support arch_32, arch_64, tune_32 and + tune_64. + * config/mips/mips.h (MIPS_ABI_DEFAULT, MULTILIB_ABI_DEFAULT): + Move definitions earlier. + (OPT_ARCH64, OPT_ARCH32): Define. + (OPTION_DEFAULT_SPECS): Add entries for arch_32, arch_64, tune_32 + and tune_64. + +2009-05-16 Richard Earnshaw + + PR target/40153 + * arm.md (cstoresi_nltu_thumb1): Use a neg of ltu as the pattern name + implies. + +2009-05-16 Richard Earnshaw + + * arm.md (movdi2): Copy non-reg values to DImode registers. + +2009-05-16 Jakub Jelinek + + PR target/39942 + * final.c (label_to_max_skip): New function. + (label_to_alignment): Only use LABEL_TO_ALIGNMENT if + CODE_LABEL_NUMBER <= max_labelno. + * output.h (label_to_max_skip): New prototype. + * config/i386/i386.c (ix86_avoid_jump_misspredicts): Renamed to... + (ix86_avoid_jump_mispredicts): ... this. Don't define if + ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined. Update comment. + Handle CODE_LABELs with >= 16 byte alignment or with + max_skip == (1 << align) - 1. + (ix86_reorg): Don't call ix86_avoid_jump_mispredicts if + ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined. + + PR target/39942 + * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Don't emit second + .p2align 3 if MAX_SKIP is smaller than 7. + * config/i386/linux.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise. + +2009-05-15 Ian Lance Taylor + + * alias.c (struct alias_set_entry_d): Rename from struct + alias_set_entry. Change all uses. + * except.c (struct call_site_record_d): Rename from struct + call_site_record. Change all uses. + * except.h (struct eh_region_d): Rename from struct eh_region. + Change all uses. + * gcse.c (struct hash_table_d): Rename from struct hash_table. + Change all uses. + * graphite.c (struct ivtype_map_elt_d): Rename fromstruct + ivtype_map_elt. Change all uses. + (struct rename_map_elt_d): Rename fromstruct rename_map_elt. + Change all uses. + (struct ifsese_d): Rename fromstruct ifsese. Change all uses. + * graphite.h (struct name_tree_d): Rename from struct name_tree. + Change all uses. + (struct sese_d): Rename from struct sese. Change all uses. + * omega.h (struct eqn_d): Rename from struct eqn. Change all + uses. + (struct omega_pb_d): Rename from struct omega_pb. Change all + uses. + * optabs.h (struct optab_d): Rename from struct optab. Change all + uses. + (struct convert_optab_d): Rename from struct convert_optab. + Change all uses. + * tree-pass.h (struct ipa_opt_pass_d): Rename fromstruct + ipa_opt_pass. Change all uses. + * tree-predcom.c (struct dref_d): Rename from struct dref. Change + all uses. + + * c-decl.c (pushtag): If -Wc++-compat, warn if the tag is already + defined as a typedef. + (grokdeclarator): If -Wc++-compat, warn if a typedef is already + defined as a tag. + +2009-05-15 Manuel López-Ibáñez + + PR 16302 + * fold-const.c (make_range,build_range_check,merge_ranges): Move + declaration to... + (merge_ranges): Returns bool. + * tree.h (make_range): .. to here. + (build_range_check): Likewise. + (merge_ranges): Likewise. Renamed from merge_ranges. + * c-typeck.c (parser_build_binary_op): Update calls to + warn_logical_operator. + * c-common.c (warn_logical_operator): Add new warning. + * c-common.h (warn_logical_operator): Update declaration. + +2009-05-15 Manuel López-Ibáñez + + * ira-conflicts.c (add_insn_allocno_copies): Fix wrong + conditional. + +2009-05-15 Kaveh R. Ghazi + + * doc/install.texi: Document MPC requirements, flags etc. + + * builtins.c (do_mpc_arg1, fold_builtin_ccos): New. + (fold_builtin_cexp): Ensure we get a complex REAL_TYPE. + Evaluate constant arguments. + (fold_builtin_carg): Ensure we get a complex REAL_TYPE. + (fold_builtin_1): Likewise, also evaluate constant arguments. + Remove superfluous break. + (do_mpc_ckconv): New. + * real.h: Include mpc.h. + * toplev.c (print_version): Output MPC version info if available. + +2009-05-15 Sandra Loosemore + + * fold-const.c (fold_convert_const_real_from_real): Check for + overflow. + +2009-05-15 H.J. Lu + + * config/i386/i386.c (ix86_reorg): Call optimize_function_for_speed_p + only once. + +2009-05-15 Jan Hubicka + + * doc/invoke.texi (max-early-inliner-iterations): New flag. + * ipa-inline.c (enum inlining_mode): New INLINE_SIZE_NORECURSIVE. + (try_inline): Fix return value. + (cgraph_decide_inlining_incrementally): Honor new value. + (cgraph_early_inlining): Handle indirect inlining. + * params.def (PARAM_EARLY_INLINER_MAX_ITERATIONS): New. + +2009-05-15 Jan Hubicka + + * cgraph.h (struct cgraph_node): Add finalized_by_frotnend flag. + * cgraphunit.c (cgraph_finalize_function): Set it. + (cgraph_expand_function): Use it. + +2009-05-15 Sandra Loosemore + + * real.c (encode_ieee_half): Define. + (decode_ieee_half): Define. + (ieee_half_format): Define. + (arm_half_format): Define. + * real.h (ieee_half_format): Declare. + (arm_half_format): Declare. + +2009-05-15 Sandra Loosemore + + * optabs.c (prepare_float_lib_cmp): Test that the comparison, + swapped, and reversed optabs exist before trying to use them. + +2009-05-15 Paul Brook + Sandra Loosemore + + * config/arm/arm.c (neon_vector_mem_operand): Handle element/structure + loads. Allow PRE_DEC. + (output_move_neon): Handle PRE_DEC. + (arm_print_operand): Add 'A' for neon structure loads. + * config/arm/arm-protos.h (neon_vector_mem_operand): Update prototype. + * config/arm/neon.md (neon_mov): Update comment. + * config/arm/constraints.md (Un, Us): Update neon_vector_mem_operand + calls. + (Um): New constraint. + +2009-05-15 Jan Hubicka + + Revert the following patch until testsuite fallout is fixed: + * cgraph.c (dump_cgraph_node): Dump size/time/benefit. + * cgraph.h (struct inline_summary): New filed self_wize, + size_inlining_benefit, self_time and time_inlining_benefit. + (struct cgraph_global_info): Replace insns by time ans size fields. + * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size + (ipcp_estimate_growth, ipcp_insert_stage): Likewise. + (ipcp_update_callgraph): Do not touch function bodies. + * ipa-inline.c: Include except.h + MAX_TIME: New constant. + (overall_insns): Remove + (overall_size, max_benefit): New static variables. + (cgraph_estimate_time_after_inlining): New function. + (cgraph_estimate_size_after_inlining): Rewrite using benefits. + (cgraph_clone_inlined_nodes): Update size. + (cgraph_mark_inline_edge): Update size. + (cgraph_estimate_growth): Use size info. + (cgraph_check_inline_limits): Check size. + (cgraph_default_inline_p): Likewise. + (cgraph_edge_badness): Compute badness based on benefit and size cost. + (cgraph_decide_recursive_inlining): Check size. + (cgraph_decide_inlining_of_small_function): Update size; dump sizes and times. + (cgraph_decide_inlining): Likewise. + (cgraph_decide_inlining_incrementally): Likewise; honor PARAM_EARLY_INLINING_INSNS. + (likely_eliminated_by_inlining_p): New predicate. + (estimate_function_body_sizes): New function. + (compute_inline_parameters): Use it. + * except.c (must_not_throw_labels): New function. + * except.h (must_not_throw_labels): Declare. + * tree-inline.c (init_inline_once): Kill inlining_weigths + * tree-ssa-structalias.c: Avoid uninitialized warning. + * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300. + (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60. + (PARAM_INLINE_CALL_COST): Remove. + (PARAM_EARLY_INLINING_INSNS): New. + +2009-05-15 Richard Guenther + + * tree-ssa-pre.c (eliminate): Use TODO_update_ssa_only_virtuals, + not TODO_update_ssa. + +2009-05-15 Richard Guenther + + PR tree-optimization/39999 + * gimple.h (gimple_expr_type): Use the expression type looking + through useless conversions. + * tree-ssa-sccvn.c (vn_nary_op_lookup_stmt): Use gimple_expr_type. + (vn_nary_op_insert_stmt): Likewise. + (simplify_binary_expression): Likewise. + +2009-05-15 Richard Guenther + + * common.opt (-ftree-forwprop, -ftree-phiprop, -ftree-pta): + New options, enabled by default. + * doc/invoke.texi (-ftree-forwprop, -ftree-phiprop, -ftree-pta): + Document. + * tree-ssa-forwprop.c (gate_forwprop): Use flag_tree_forwprop. + * tree-ssa-phiprop.c (gate_phiprop): Use flag_tree_phiprop. + * tree-ssa-structalias.c (gate_tree_pta): New function. + (pass_build_alias): Use it. + +2009-05-15 Joseph Myers + + * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Also + recurse on an invariant address if a conversion from a pointer + type to a wider integer type is involved. + +2009-05-15 Jan Hubicka + + * cgraph.c (dump_cgraph_node): Dump size/time/benefit. + * cgraph.h (struct inline_summary): New filed self_wize, + size_inlining_benefit, self_time and time_inlining_benefit. + (struct cgraph_global_info): Replace insns by time ans size fields. + * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size + (ipcp_estimate_growth, ipcp_insert_stage): Likewise. + (ipcp_update_callgraph): Do not touch function bodies. + * ipa-inline.c: Include except.h + MAX_TIME: New constant. + (overall_insns): Remove + (overall_size, max_benefit): New static variables. + (cgraph_estimate_time_after_inlining): New function. + (cgraph_estimate_size_after_inlining): Rewrite using benefits. + (cgraph_clone_inlined_nodes): Update size. + (cgraph_mark_inline_edge): Update size. + (cgraph_estimate_growth): Use size info. + (cgraph_check_inline_limits): Check size. + (cgraph_default_inline_p): Likewise. + (cgraph_edge_badness): Compute badness based on benefit and size cost. + (cgraph_decide_recursive_inlining): Check size. + (cgraph_decide_inlining_of_small_function): Update size; dump sizes and times. + (cgraph_decide_inlining): Likewise. + (cgraph_decide_inlining_incrementally): Likewise; honor PARAM_EARLY_INLINING_INSNS. + (likely_eliminated_by_inlining_p): New predicate. + (estimate_function_body_sizes): New function. + (compute_inline_parameters): Use it. + * except.c (must_not_throw_labels): New function. + * except.h (must_not_throw_labels): Declare. + * tree-inline.c (init_inline_once): Kill inlining_weigths + * tree-ssa-structalias.c: Avoid uninitialized warning. + * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300. + (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60. + (PARAM_INLINE_CALL_COST): Remove. + (PARAM_EARLY_INLINING_INSNS): New. + doc/invoke.texi (max-inline-insns-auto, early-inlining-insns): Update. + (inline-call-cost): Remove. + (early-inlining-insns): New. + +2009-05-15 Eric Botcazou + + * dbxout.c (dbxout_range_type): Add LOW and HIGH parameters. Use them + for bounds. + (print_int_cst_bounds_in_octal_p): Likewise. + (dbxout_type): Adjust calls to above functions. Be prepared to deal + with subtypes. + * dwarf2out.c (base_type_die): Likewise. + (is_subrange_type): Delete. + (subrange_type_die): Add LOW and HIGH parameters. Use them for bounds. + (modified_type_die): Call subrange_type_for_debug_p on subtypes. + * fold-const.c (fold_truth_not_expr) : Do not strip it if + the destination type is boolean. + (build_range_check): Do not special-case subtypes. + (fold_sign_changed_comparison): Likewise. + (fold_unary): Likewise. + * langhooks-def.h (LANG_HOOKS_GET_SUBRANGE_BOUNDS): Define. + (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_GET_SUBRANGE_BOUNDS. + * langhooks.h (lang_hooks_for_types): Add get_subrange_bounds. + * tree.c (subrange_type_for_debug_p): New predicate based on the former + is_subrange_type. + * tree.h (subrange_type_for_debug_p): Declare. + * tree-chrec.c (avoid_arithmetics_in_type_p): Delete. + (convert_affine_scev): Remove call to above function. + (chrec_convert_aggressive): Likewise. + * tree-ssa.c (useless_type_conversion_p_1): Do not specifically return + false for conversions involving subtypes. + * tree-vrp.c (vrp_val_max): Do not special-case subtypes. + (vrp_val_min): Likewise. + (needs_overflow_infinity): Likewise. + (extract_range_from_unary_expr): Likewise. + +2009-05-15 Paolo Bonzini + + * config/frv/frv.h: Clean up references to GO_IF_LEGITIMATE_ADDRESS. + * config/frv/frv.c: Likewise. + * config/s390/s390.c: Likewise. + * config/sparc/sparc.h: Likewise. + * config/i386/i386.h: Likewise. + * config/i386/i386.c: Likewise. + * config/crx/crx.c: Likewise. + * config/m68hc11/m68hc11.h: Likewise. + * config/iq2000/iq2000.c: Likewise. + * config/mn10300/mn10300.h: Likewise. + * config/mn10300/mn10300.c: Likewise. + * config/m68k/m68k.c: Likewise. + * config/rs6000/rs6000.c: Likewise. + * config/rs6000/xcoff.h: Likewise. + * config/rs6000/linux64.h: Likewise. + * config/rs6000/sysv4.h: Likewise. + * config/score/score3.c: Likewise. + * config/score/score7.c: Likewise. + * config/score/score.c: Likewise. + * config/arm/arm.md: Likewise. + * config/mips/mips.c: Likewise. + * config/mips/mips.md: Likewise. + * config/bfin/bfin.h: Likewise. + * config/pa/pa.c: Likewise. + * config/pa/constraints.md: Likewise. + + * config/pdp11/pdp11-protos.h (legitimate_address_p): Delete. + * config/pdp11/pdp11.c (legitimate_address_p): Delete. + * config/pdp11/pdp11.h: Use memory_address_p instead. + +2009-05-14 Ian Lance Taylor + + * passes.c (finish_optimization_passes): Change i to int. + * plugin.c (plugins_active_p): Change event to int. + (dump_active_plugins): Likewise. + * reginfo.c (invalid_mode_change_p): Change to to unsigned int. + Add cast. + * tree.c (tree_range_check_failed): Change c to unsigned int. + (omp_clause_range_check_failed): Likewise. + (build_common_builtin_nodes): Change mode to int. Add cast. + * config/ia64/ia64.c (is_emitted): Change r to unsigned int. + (ia64_hard_regno_rename_ok, ia64_eh_uses): Likewise. + + * c-typeck.c (build_unary_op): If -Wc++-compat, warn about using + ++ or -- with a variable of enum type. + +2009-05-14 Steven Bosscher + + PR driver/40144 + * opts.c (common_handle_option): Add OPT_fcse_skip_blocks as a no-op. + +2009-05-14 Steven Bosscher + + * store-motion.c: Do not include params.h + * Makefile.in: Fix dependencies for various files. + +2009-05-14 Steven Bosscher + + * auto-inc-dec.c: Fix pass description, remove apparent + accidental duplication. + +2009-05-14 H.J. Lu + + PR middle-end/40147 + * ipa-utils.h (memory_identifier_string): Moved to ... + * tree.h (memory_identifier_string): Here. Add GTY(()). + +2009-05-14 Paolo Bonzini + + * doc/tm.texi (TARGET_LEGITIMATE_ADDRESS_P): Refer mainly to this + in the former documentation of... + (GO_IF_LEGITIMATE_ADDRESS): ... this. + * ira-conflicts.c (get_dup_num): Use address_operand. + * targhooks.c (default_legitimate_address_p): New. + * targhooks.h (default_legitimate_address_p): New. + * reload.c (strict_memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]: + Call hook. + * recog.c (memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]: Call hook. + * target.h (struct target): Add legitimate_address_p. + * target-def.h (TARGET_LEGITIMATE_ADDRESS_P): New. + (TARGET_INITIALIZER): Include it. + + * config/alpha/alpha.h (GO_IF_LEGITIMATE_ADDRESS): Delete. + * config/alpha/alpha-protos.h (alpha_legitimate_address_p): Remove. + * config/alpha/alpha.c (alpha_legitimate_address_p): Make static. + (TARGET_LEGITIMATE_ADDRESS_P): New. + + * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Delete. + (REG_OK_STRICT_P): Delete. + * config/frv/frv-protos.h (frv_legitimate_address_p): Rename to... + (frv_legitimate_address_p_1): ... this. + * config/frv/frv.c (frv_legitimate_address_p): Forward to... + (frv_legitimate_address_p_1): ... the renamed old + frv_legitimate_address_p. + * config/frv/predicates.md: Adjust calls to frv_legitimate_address_p. + (TARGET_LEGITIMATE_ADDRESS_P): New. + + * config/s390/s390.h (GO_IF_LEGITIMATE_ADDRESS): Delete. + * config/s390/s390-protos.h (legitimate_address_p): Remove. + * config/s390/s390.c (legitimate_address_p): Rename to... + (s390_legitimate_address_p): ... this, make static. + (legitimize_address): Adjust call. + (TARGET_LEGITIMATE_ADDRESS_P): New. + * config/s390/constraints.md ("e"): Call strict_memory_address_p. + + * config/m32c/m32c.h (GO_IF_LEGITIMATE_ADDRESS): Delete. + * config/m32c/m32c-protos.h (m32c_legitimate_address_p): Remove. + * config/m32c/m32c.c (m32c_legitimate_address_p): Make static. + (TARGET_LEGITIMATE_ADDRESS_P): New. + + * config/spu/spu.h (GO_IF_LEGITIMATE_ADDRESS): Delete. + * config/spu/spu-protos.h (spu_legitimate_address): Remove. + * config/spu/spu.c (spu_legitimate_address): Rename to... + (spu_legitimate_address_p): ... this, make static. + (TARGET_LEGITIMATE_ADDRESS_P): New. + + * config/sparc/sparc.h (GO_IF_LEGITIMATE_ADDRESS): Delete. + * config/sparc/sparc-protos.h (legitimate_address_p): Remove. + * config/sparc/sparc.c (legitimate_address_p): Rename to... + (sparc_legitimate_address_p): ... this, make static and return bool. + (legitimize_address): Adjust call. + (TARGET_LEGITIMATE_ADDRESS_P): New. + + * config/i386/i386.h (GO_IF_LEGITIMATE_ADDRESS): Delete. + * config/i386/i386-protos.h (legitimate_address_p): Remove. + * config/i386/i386.c (legitimate_address_p): Rename to... + (ix86_legitimate_address_p): ... this, make static. + (constant_address_p): Move after it, adjust call. + (TARGET_LEGITIMATE_ADDRESS_P): New. + + * config/avr/avr.h (GO_IF_LEGITIMATE_ADDRESS): Delete. + * config/avr/avr-protos.h (legitimate_address_p): Remove. + * config/avr/avr.c (legitimate_address_p): Rename to... + (avr_legitimate_address_p): ... this, make static. + (legitimize_address): Adjust call. + (TARGET_LEGITIMATE_ADDRESS_P): New. + + * config/crx/crx.h (GO_IF_LEGITIMATE_ADDRESS): Delete. + * config/crx/crx-protos.h (crx_legitimate_address_p): Remove. + * config/crx/crx.c (crx_legitimate_address_p): Make static. + (TARGET_LEGITIMATE_ADDRESS_P): New. + + * config/xtensa/xtensa.h (GO_IF_LEGITIMATE_ADDRESS): Delete. + * config/xtensa/xtensa-protos.h (xtensa_legitimate_address_p): Remove. + * config/xtensa/xtensa.c (xtensa_legitimate_address_p): Make static. + (TARGET_LEGITIMATE_ADDRESS_P): New. + + * config/stormy16/stormy16.h (GO_IF_LEGITIMATE_ADDRESS): Delete. + * config/stormy16/stormy16-protos.h (xstormy16_legitimate_address_p): + Remove. + * config/stormy16/stormy16.c (xstormy16_legitimate_address_p): + Make static. + (TARGET_LEGITIMATE_ADDRESS_P): New. + + * config/m68hc11/m68hc11.h (GO_IF_LEGITIMATE_ADDRESS): Delete. + * config/m68hc11/m68hc11-protos.h (m68hc11_go_if_legitimate_address): + Remove. + * config/m68hc11/m68hc11.c (m68hc11_go_if_legitimate_address): + Rename to... + (m68hc11_legitimate_address_p): ... this, make static. + (go_if_legitimate_address_internal): Rename to... + (m68hc11_legitimate_address_p_1): ... this. + (legitimize_address): Adjust call. + (TARGET_LEGITIMATE_ADDRESS_P): New. + + * config/iq2000/iq2000.h (GO_IF_LEGITIMATE_ADDRESS): Delete. + * config/iq2000/iq2000-protos.h (iq2000_legitimate_address_p): + Remove. + * config/iq2000/iq2000.c (iq2000_legitimate_address_p): + Make static. + (TARGET_LEGITIMATE_ADDRESS_P): New. + + * config/mn10300/mn10300.h (GO_IF_LEGITIMATE_ADDRESS): Delete. + * config/mn10300/mn10300-protos.h (legitimate_address_p): Remove. + * config/mn10300/mn10300.c (legitimate_address_p): Rename to... + (mn10300_legitimate_address_p): ... this, make static. + (TARGET_LEGITIMATE_ADDRESS_P): New. + + * config/m68k/m68k.h (GO_IF_LEGITIMATE_ADDRESS): Delete. + * config/m68k/m68k-protos.h (m68k_legitimate_address_p): Remove. + * config/m68k/m68k.c (m68k_legitimate_address_p): Make static. + (TARGET_LEGITIMATE_ADDRESS_P): New. + + * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete. + (REG_OK_STRICT_FLAG, REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Delete. + (INT_REG_OK_FOR_BASE_P, INT_REG_OK_FOR_INDEX_P): Move above. + * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete. + * config/rs6000/rs6000-protos.h (rs6000_legitimate_address): Remove. + * config/rs6000/rs6000.c (rs6000_legitimate_address): Rename to... + (rs6000_legitimate_address_p): ... this, make static. + (TARGET_LEGITIMATE_ADDRESS_P): New. + (REG_MODE_OK_FOR_BASE_P): Delete. + (rs6000_legitimize_reload_address): Use INT_REG_OK_FOR_BASE_P. + + * config/picochip/picochip.h (GO_IF_LEGITIMATE_ADDRESS): Delete. + * config/picochip/picochip-protos.h (picochip_legitimate_address_p): + Delete. + * config/picochip/picochip.c (picochip_legitimate_address_p): Make + static, adjust types. + (TARGET_LEGITIMATE_ADDRESS_P): New. + + * config/score/score.h (GO_IF_LEGITIMATE_ADDRESS): Delete. + * config/score/score.c (score_address_p): Rename to... + (score_legitimate_address_p): ... this. + (TARGET_LEGITIMATE_ADDRESS_P): New. + * config/score/score3.c (score3_address_p): Rename to... + (score3_legitimate_address_p): ... this. + * config/score/score7.c (score7_address_p): Rename to... + (score7_legitimate_address_p): ... this. + + * config/arm/arm.h (ARM_GO_IF_LEGITIMATE_ADDRESS, + THUMB2_GO_IF_LEGITIMATE_ADDRESS, THUMB1_GO_IF_LEGITIMATE_ADDRESS, + GO_IF_LEGITIMATE_ADDRESS): Delete. + * config/arm/arm-protos.h (thumb1_legitimate_address_p, + thumb2_legitimate_address_p): Delete. + (arm_legitimate_address_p): Rename to... + (arm_legitimate_address_outer_p): ... this. + * config/arm/constraints.md ("Uq"): Adjust call. + * config/arm/predicates.md (arm_extendqisi_mem_op): Likewise. + * config/arm/arm.c (arm_legitimate_address_p): New, rename old one to... + (arm_legitimate_address_outer_p): ... this. + (thumb1_legitimate_address_p, thumb2_legitimate_address_p): Make static. + (TARGET_LEGITIMATE_ADDRESS_P): New. + + * config/mips/mips.h (GO_IF_LEGITIMATE_ADDRESS): Delete. + * config/mips/mips-protos.h (mips_legitimate_address_p): Remove. + * config/mips/mips.c (mips_legitimate_address_p): ... Make static. + (TARGET_LEGITIMATE_ADDRESS_P): New. + + * config/vax/vax.h (GO_IF_LEGITIMATE_ADDRESS): Delete. + * config/vax/vax-protos.h (legitimate_address_p): Remove. + * config/vax/vax.c (legitimate_address_p): Rename to... + (vax_legitimate_address_p): ... this, make static. + (TARGET_LEGITIMATE_ADDRESS_P): New. + + * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Delete. + * config/h8300/h8300-protos.h (h8300_legitimate_address_p): Remove. + * config/h8300/h8300.c (h8300_legitimate_address_p): ... Make static. + (TARGET_LEGITIMATE_ADDRESS_P): New. + + * config/mmix/mmix.h (GO_IF_LEGITIMATE_ADDRESS): Delete. + * config/mmix/mmix-protos.h (mmix_legitimize_address): Remove. + * config/mmix/mmix.c (mmix_legitimate_address): Rename to... + (mmix_legitimate_address_p): ... this, make static. + (TARGET_LEGITIMATE_ADDRESS_P): New. + + * config/bfin/bfin.h (GO_IF_LEGITIMATE_ADDRESS): Delete. + * config/bfin/bfin-protos.h (bfin_legitimate_address_p): Remove. + * config/bfin/bfin.c (bfin_legitimate_address_p): ... Make static. + (TARGET_LEGITIMATE_ADDRESS_P): New. + +2009-05-14 Paolo Bonzini + + * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Remove handling + of MODE_COMPLEX_INT. + +2009-05-14 Rainer Orth + + * config/alpha/alpha.c (alpha_initialize_trampoline): Change 0 to + LCT_NORMAL in function call. + * mips-tdump.c (print_file_desc): Add cast to enum type. + * mips-tfile.c (add_ext_symbol): Add casts to enum types. + (mark_stabs): Add casts to enum types. + (parse_stabs_common): Add casts to enum types. + +2009-05-13 Adam Nemet + + * config/mips/mips.c (mips_print_operand) : + Check for invalid values of LETTER. + +2009-05-13 Taras Glek + + * attribs.c (register_attribute): moved out attribute registration into + register_attribute. + * doc/plugins.texi: Documented register_attribute and PLUGIN_ATTRIBUTES. + * gcc-plugin.h: Added forward decl for register_attribute. + * gcc-plugin.h (plugins_event): Added PLUGIN_ATTRIBUTES. + * plugin.c (register_callback, invoke_plugin_callbacks): Added + PLUGIN_ATTRIBUTES boilerplate. + +2009-05-14 Dave Korn + + * config/i386/msformat-c.c (ms_printf_length_specs): Use enumeration + values even in sentinel and empty entries. + (ms_printf_flag_specs): Likewise. + (ms_scanf_flag_specs): Likewise. + (ms_strftime_flag_specs): Likewise. + (ms_print_char_table): Likewise. + (ms_scan_char_table): Likewise. + (ms_time_char_table): Likewise. + +2009-05-13 Doug Kwan + + * tree-ssa-sccvn.c (compare_ops): Stabilize qsort. + +2009-05-13 Adam Nemet + + * config/mips/mips.md (store): Add attributes for QI and HI. + Update comment. + (truncdisi2, truncdihi2, truncdiqi2): Merge these into ... + (truncdi2): ... this new pattern. + 2009-05-13 Brad Hards * Makefile.in (TEXI_GCCINT_FILES): Add plugins.texi. -2009-05-13 Jakub Jelinek +2009-05-14 Jakub Jelinek Ben Elliston PR middle-end/40035