OSDN Git Service

* config/xtensa/xtensa.c (xtensa_return_in_msb): New function.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 9d17775..74fe101 100644 (file)
@@ -1,3 +1,832 @@
+2004-03-04  Bob Wilson  <bob.wilson@acm.org>
+
+       * config/xtensa/xtensa.c (xtensa_return_in_msb): New function.
+       (TARGET_RETURN_IN_MSB): Define to xtensa_return_in_msb.
+
+2004-03-05  Hans-Peter Nilsson  <hp@axis.com>
+
+       PR other/14354
+       * config/fp-bit.c (_fpdiv_parts): Do not round when pack_d would
+       round the same.  When rounding, clear bits that would cause a
+       second rounding in pack_d.
+       (_fpmul_parts): Ditto.  Remove #if 0:d code.
+
+2004-03-04  Ziemowit Laski  <zlaski@apple.com>
+
+       PR c++/14425, c++/14426
+       * config/rs6000/altivec.h (vec_splat_s8, vec_splat_s16,
+       vec_splat_s32, vec_splat_u8, vec_splat_u16, vec_splat_u32):
+       Change C++ definitions to accept a 'const int' argument;
+       the prototypes already do.
+       * config/rs6000/rs6000.c (rs6000_common_init_builtins):
+       Rename v4si_ftype_char, v8hi_ftype_char, v16qi_ftype_char,
+       v4sf_ftype_v4si_char, v4si_ftype_v4sf_char, v4si_ftype_v4si_char,
+       v8hi_ftype_v8hi_char, v16qi_ftype_v16qi_char,
+       v16qi_ftype_v16qi_v16qi_char, v8hi_ftype_v8hi_v8hi_char,
+       v4si_ftype_v4si_v4si_char and v4sf_ftype_v4sf_v4sf_char to
+       end in ..._int; change them to accept an int instead of a char
+       as the last parameter.
+
+2004-03-04  Phil Edwards  <phil@codesourcery.com>
+
+       * genmultilib:  Change '=' to '-' when translating option names
+       to directory names.
+
+2004-03-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * expr.c (expand_expr_real, case COMPONENT_REF): Get proper type of
+       stack slot for temp used for result of BLKmode but in integral mode.
+
+2004-03-04  Jan Hubicka  <jh@suse.cz>
+
+       * reload.c (find_reloads): Reorganize if seqeunce to switch.
+
+       * cfgrtl.c (rtl_redirect_edge_and_branch):  Set the source BB as dirty.
+       (cfglayout_redirect_edge_and_branch):  Set the source BB as dirty.
+
+2004-03-04  Steve Ellcey  <sje@cup.hp.com>
+
+       * config/ia64/ia64.md (divdf3_internal_thr): Fix algorithm.
+       * testsuite/gcc.dg/20040303-1.c: New test.
+
+2004-03-04  Steven Bosscher  <stevenb@suse.de>
+
+       * ppro.md: Rewrite as a DFA pipeline description.
+       * i386.md: Remove all uses of the ppro_uops attribute.
+       * i386.c: (ix86_safe_ppro_uops, ix86_dump_ppro_packet,
+       ix86_reorder_insn, ix86_sched_reorder_ppro, ix86_sched_init,
+       ix86_sched_reorder, ix86_variable_issue,
+       struct ix86_sched_data, TARGET_SCHED_VARIABLE_ISSUE,
+       TARGET_SCHED_INIT, TARGET_SCHED_REORDER): Remove.
+       (ia32_use_dfa_pipeline_interface): Add TARGET_PENTIUMPRO.
+       (ia32_multipass_dfa_lookahead): Add TARGET_PENTIUMPRO.
+       * athlon.md (athlon_ssecmp_load): Fix comment
+
+2004-03-04  Stuart Hastings  <stuart@apple.com>
+
+       * gcc/doc/invoke.texi: Document -mlongcall for Darwin/PPC.
+
+2004-03-04  Stuart Hastings  <stuart@apple.com>
+
+       * gcc/config/i386/darwin.h: Darwin/x86 doesn't support CPUs before
+       686, tell Darwin assembler to allow prefetch insns, non-empty def
+       of SUBTARGET_OPTION_TRANSLATE_TABLE.
+
+2004-03-04  DJ Delorie  <dj@redhat.com>
+
+       PR optimization/14282
+       * sched-deps.c (sched_analyze_insn): Allow a stack adjustment
+       between a call and the assignment of its return value.
+
+2004-03-04  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * config/h8300/h8300.c: Put a comment for every function.
+
+2004-03-04  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * config/h8300/h8300.md: Add comments about peephole2's.
+
+2004-03-04  Steven Bosscher  <stevenb@suse.de>
+
+       * i386.h (TARGET_CPU_DEFAULT_nocona): Fix value.
+
+2004-03-04  Jan Hubicka  <jh@suse.cz>
+
+       * cfgcleanup.c (thread_jump): Update call of cselib_init.
+       * cselib.c (cselib_record_memory): New static variable.
+       (cselib_lookup_mem, cselib_record_set, cselib_record_sets):
+       Give up on memories when asked for.
+       (cselib_init): Accept new argument.
+       * cselib.h (cselib_init): Update prototype.
+       * gcse.c (local_cprop_pass): Update call of cselib_init.
+       * loop.c (load_mems): Update call of cselib_init.
+       * postreload.c (reload_cse_regs_1): Update call of cselib_init.
+       * sched-deps.c (sched_analyze): Update call of cselib_init.
+
+2004-03-04  David Edelsohn  <edelsohn@gnu.org>
+           GP <gp@qnx.com>
+
+       * config/rs6000/rs6000.c (output_function_profiler): Append @plt
+       when compiling PIC.
+
+2004-03-04  Josef Zlomek  <zlomekj@suse.cz>
+
+       PR/14362
+       * var-tracking.c (track_expr_p): Do not track variables which
+       should be ignored for debugging purposes.
+
+2004-03-04  Alan Modra  <amodra@bigpond.net.au>
+
+       * real.c (encode_ibm_extended): Don't bother rounding low double.
+       * c-cppbuiltin.c (builtin_define_float_constants): Tweak MAX
+       when fmt->pnan < fmt->p.
+
+2004-03-04  Eric Christopher  <echristo@redhat.com>
+
+       * config/mips/mips.h (FUNCTION_ARG_REGNO_P): Fix to check
+       only range of valid arg registers and fixed_regs.
+
+2004-03-04  Alan Modra  <amodra@bigpond.net.au>
+
+       PR target/14406
+       * config/rs6000/rs6000.md (abstf2, abstf2+1): Delete define_insn.
+       (abstf2, abstf2_internal): New define_expand.
+
+2004-03-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
+
+       PR optimization/14235
+       * expr.c (convert_move): Copy the source to a new pseudo
+       when converting from a sub-word source to a larger-than-word
+       register which conflicts with the source.
+
+2004-03-03  Zack Weinberg  <zack@codesourcery.com>
+
+       PR 13728
+       * c-decl.c (diagnose_mismatched_decls): Issue an error for two
+       parameters with the same name, unless one is a forward decl.
+       Do not issue a redundant-redeclaration warning for forward
+       decls of parameters.
+
+2004-03-04  David Edelsohn  <edelsohn@gnu.org>
+
+       * doc/install.texi (*-ibm-aix*): Document use of Bash to speed up
+       configuration.
+
+2004-03-03  Ian Lance Taylor  <ian@wasabisystems.com>
+
+       * ggc-zone.c (ggc_pch_write_object): Don't align file pointer.
+
+2004-03-04  Alan Modra  <amodra@bigpond.net.au>
+
+       * target-def.h (TARGET_OPTF): Delete.
+       * c-opts.c (TARGET_OPTF): Define.
+
+2004-03-04  Jan Hubicka  <jh@suse.cz>
+
+       * cselib.c (cselib_finish): Fix another miss-application of my previous
+       patch.
+
+2004-03-03  Mike Stump  <mrs@apple.com>
+
+       Add framework support for darwin.
+
+       * c-incpath.c: Include target.h and machmode.h.
+       (add_path): Use a consistent style for cpp_dir.  Initialize
+       p->construct to 0.
+       (add_cpp_dir_path): New.
+       (register_include_chains): Add use of extra_includes callback.
+       (hook_void_int): Add.
+       (target_c_incpath): Add.
+       * c-incpath.h (add_cpp_dir_path): New.
+       (target_c_incpath_s): Add.
+       (target_c_incpath): Add.
+       (C_INCPATH_INIT): Add.
+       * c-opts.c (c_common_missing_argument,
+       c_common_handle_option): Add -F argument processing.
+       * c.opt: Add -F argument processing.
+       * gcc.c (trad_capable_cpp): Add -F argument processing.
+       * cppfiles.c (find_file_in_dir): Update to use construct
+       callback.
+       (search_path_exhausted, cpp_get_path, cpp_get_buffer,
+       cpp_get_prev): New.
+       (_cpp_find_file): Use search_path_exhausted.
+       (make_cpp_dir): Initialize construct to 0.
+       * cpplib.h (missing_header_cb
+       cpp_get_path, cpp_get_buffer, cpp_get_file, cpp_get_prev): New.
+       (cpp_callbacks): Add missing_header
+       (cpp_dir): Add construct.
+       * target-def.h: (TARGET_OPTF): New.
+       * hooks.c (hook_void_int, hook_void_charptr): Add.
+       * hooks.h (hook_void_int, hook_void_charptr): Add.
+       * Makefile.in (c-incpath.o) : Add $(TARGET_H) and
+       $(MACHMODE_H) dependencies.
+       * doc/invoke.texi (Darwin Options): Document -F.
+       * doc/tm.texi (TARGET_EXTRA_INCLUDES): Add.
+       (TARGET_OPTF): Add.
+       * fix-header.c (target_c_incpath): Add.
+
+       * config/darwin-c.c: Add c-incpath.h include.
+       (using_frameworks, find_subframework_file,
+       find_subframework_header, add_system_framework_path,
+       frameworks_in_use, num_frameworks, max_frameworks,
+       add_framework, find_framework, struct framework_header,
+       framework_header_dirs, framework_construct_pathname,
+       find_subframework_file, add_system_framework_path,
+       add_framework_path, framework_defaults,
+       darwin_register_frameworks, find_subframework_header): Add.
+       * config/darwin.h (TARGET_EXTRA_INCLUDES, TARGET_OPTF): New.
+       (TARGET_OPTION_TRANSLATE_TABLE): Add -framework support.
+       (CPP_SPEC): Add __APPLE_CC__ support.
+       * t-darwin (darwin-c.o): Add c-incpath.h dependency.
+
+2004-03-04  Jan Hubicka  <jh@suse.cz>
+
+       * cselib.c (cselib_finish): Fix miss-application of my previous
+       patch.
+
+2004-03-03  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * hooks.c (hook_tree_tree_identity): New.
+       * hooks.h: Add a prototype for hook_tree_tree_identity.
+       * stmt.c (expand_asm_operands): Use targetm.md_asm_clobbers
+       instead of MD_ASM_CLOBBERS.
+       * system.h (MD_ASM_CLOBBERS): Poison.
+       * target-def.h (TARGET_MD_ASM_CLOBBERS): New.
+       (TARGET_INITIALIZER): Add TARGET_MD_ASM_CLOBBERS.
+       * target.h (gcc_target): Add md_asm_clobbers.
+       * config/i386/i386.c (TARGET_MD_ASM_CLOBBERS): New.
+       (ix86_md_asm_clobbers): New.
+       * config/i386/i386.h (MD_ASM_CLOBBERS): Remove.
+       * doc/tm.texi (MD_ASM_CLOBBERS): Change to
+       TARGET_MD_ASM_CLOBBERS.
+
+2004-03-03  Stuart Hastings  <stuart@apple.com>
+
+       * gcc/config.gcc: Arrange for Darwin/x86 to build libgcc_eh.a.
+
+2004-03-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
+
+       * config/sparc/sparc.c (noov_compare64_op): Fix typo.
+
+       * config/sparc/sparc.h (ASM_FLOAT): Delete.
+       (ASM_DOUBLE): Likewise.
+       (ASM_LONGDOUBLE): Likewise.
+       * config/sparc/pbd.h (ASM_INT_OP): Delete.
+
+2003-03-03  Richard Henderson  <rth@redhat.com>
+
+       PR opt/13862
+       * cselib.c (cselib_record_sets): Don't record multiple sets in
+       asm insns.
+
+2004-03-03  Mostafa Hagog  <mustafa@il.ibm.com>
+
+       * common.opt: Add description of the new -fgcse-after-reload flag.
+
+       * flags.h (flag_gcse_after_reload): Declaration of global variable.
+
+       * gcse.c (reg_used_on_edge ,reg_set_between_after_reload_p,
+       reg_used_between_after_reload_p, rtx get_avail_load_store_reg,
+       is_jump_table_basic_block, bb_has_well_behaved_predecessors,
+       get_bb_avail_insn, hash_scan_set_after_reload,
+       compute_hash_table_after_reload, eliminate_partially_redundant_loads,
+       gcse_after_reload, get_bb_avail_insn): New functions to implement
+       gcse-after-reload.
+       (gcse_after_reload_main): New function, the main entry point to
+       gcse-after-reload.
+
+       * rtl.h (gcse_after_reload_main): Declaration of the new function.
+
+       * opts.c (common_handle_option): Handle the -fgcse-after-reload flag.
+
+       * toplev.c (flag_gcse_after_reload): Initialization.
+
+       * passes.c (rest_of_handl_gcse2): Call gcse_after_reload_main.
+
+       * params.def (PARAM_GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
+       PARAM_GCSE_AFTER_RELOAD_CRITICAL_FRACTION): New parameters for tuning
+       the gcse after reload optimization.
+
+       * params.h (GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
+       GCSE_AFTER_RELOAD_CRITICAL_FRACTION): Two macros to access the tuning
+       parameters.
+
+       * doc/invoke.texi: Documentation for the new flag gcse-after-reload.
+
+2004-03-03  Nicolas Pitre <nico@cam.org>
+
+       * config/arm/ieee754-df.S (muldf3, divdf3): Fix denormalization of
+       small negative values.
+
+2004-03-03  Jan Hubicka  <jh@suse.cz>
+
+       * cselib.c (hash_table):  Remove GTY marker.
+       (reg_values): Turn into array.
+       (used_regs): Likewise.
+       (n_used_regs): New static variable.
+       (reg_values_old): Kill.
+       (clear_table): Update uses of arrays.
+       (cselib_lookup): Likewise.
+       (cselib_record_set): Likewise.
+       (cselib_init): Likewise.
+       (cselib_finish): Likewise.
+       (cselib_udpate_varray_sizes): Kill.
+       * cselib.h (cselib_update_varray_sizes): Kill.
+
+2004-03-03  Paul Brook  <paul@codesourcery.com>
+
+       * flow.c (ior_reg_cond, and_reg_cond): Remove stray ")".
+
+2004-03-03  Jan Hubicka  <jh@suse.cz>
+
+       * ggc-common.c (ggc_alloc_cleared_stat, ggc_realloc_stat):
+       Rename from ...; make statistics transparent.
+       (ggc_alloc_cleared, ggc_realloc_stat): ... these.
+       (loc_descriptor): New structure.
+       (hash_descriptor, eq_descriptor, loc_descriptor, cmp_statistics,
+       add_statistics):
+       New static function.
+       (ggc_record_overhead, dump_statistics): New global function.
+       * ggc-none.c (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
+       ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Rename
+       from ...; accept locations
+       (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
+       ggc_realloc, ggc_alloc_typed):  ... this one.
+       from ...; accept locations
+       * ggc-page.c (ggc_alloc_typed_stat, ggc_alloc_zone_stat,
+       ggc_alloc_stat): Rename from ... ; pass locations
+       * ggc-page.c (ggc_alloc_typed, ggc_alloc_zone, ggc_alloc):
+       ... this one.
+       (ggc_alloc_stat): Record overehead.
+       * ggc.h (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
+       ggc_realloc, ggc_alloc_typed):  Turn to macros
+       (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
+       ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Declare.
+       (dump_ggc_loc_satistics, ggc_record_overehead): Declare.
+       * langhooks.h (lhd_make_node): Declare.
+       (LANG_HOOKS_MAKE_TYPE): Default to new function,
+       * langhooks.c (lhd_make_node): New.
+       * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Rename from ... ; pass
+       locations.
+       (rtx_alloc, swallow_copy_rtx): ... this one.
+       * rtl.h (rtx_alloc, swallow_copy_rtx): Turn to macros.
+       * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Declare.
+       * toplpev.c (finalize): Dump stats.
+       * tree.c (make_node_stat, copy_node_stat, make_tree_vec_stat,
+       build_tree_list_stat, tree_cons_stat, build?_stat,  build_decl_stat):
+       Rename from ... ; pass locators.
+       (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
+       build?,  build_decl): Declare.
+       * tree.h (make_node_stat, copy_node_stat, make_tree_vec_stat,
+       build_tree_list_stat, tree_cons_stat, build?_stat,  build_decl_stat):
+       Declare.
+       (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
+       build?,  build_decl): New macros.
+       * Makefile.in (RTL_H, TREE_H): Add statistics.h dependency.
+       * statistics.h: New file.
+
+2004-03-03  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
+           Richard Sandiford  <rsandifo@redhat.com>
+
+       * config/mips/mips.h (MASK_FIX_SB1): Bump.
+       (MASK_FIX_R4400, TARGET_FIX_R4400): New macros.
+       (TARGET_SWITCHES): Add -mfix-r4400 and -mno-fix-r4400.
+       * config/mips/mips.c (mips_output_division): Fill the branch delay
+       slot with a nop if TARGET_FIX_R4000.  Extend R4000 workarounds to
+       TARGET_FIX_R4400.
+       (mips_output_division): Adjust accordingly.
+       (override_options): Make -march=r4400 imply -mfix-r4400 by default.
+       * doc/invoke.texi: Document -mfix-r4400 and new errata workarounds.
+
+2004-03-03  Paolo Bonzini  <bonzini@gnu.org>
+
+       * alias.c (rtx_equal_for_memref_p): Use predicates
+       to test rtx classes and new rtx class codes, possibly
+       splitting conditionals that tested against '<' and 'o'.
+       * caller-save.c (save_call_clobbered_regs): Likewise.
+       * combine.c (contains_muldiv, find_split_point, subst,
+       combine_simplify_rtx, simplify_if_then_else,
+       simplify_set, simplify_logical, expand_compound_operation,
+       make_compound_operation, if_then_else_cond, known_cond,
+       apply_distributive_law, cached_nonzero_bits,
+       cached_num_sign_bit_copies, simplify_shift_const,
+       gen_binary, simplify_comparison, update_table_tick,
+       record_value_for_reg, get_lsat_value_validate): Likewise.
+       * cse.c (mention_regs, find_best_addr, find_comparison_args,
+       fold_rtx, cse_insn, invalidate_memory, cse_basic_block):
+       Likewise.
+       * emit-rtl.c (copy_insn_1): Likewise.
+       * expr.c (force_operand): Likewise.
+       * final.c (final_scan_insn, get_mem_expr_from_op): Likewise.
+       * flow.c (notice_stack_pointer_modification_1,
+       invalidate_mems_from_autoinc, ior_reg_cond, not_reg_cond,
+       and_reg_cond, elim_reg_cond): Likewise.
+       * function.c (update_epilogue_consts): Likewise.
+       * genattrtab.c (attr_rtx_1): Likewise.
+       * genopinit.c (gen_insn): Likewise.
+       * integrate.c (subst_constants): Likewise.
+       * jump.c (reversed_comparison_code_parts,
+       reversed_comparison_code, delete_related_insns,
+       rtx_renumbered_equal_p): Likewise.
+       * local-alloc.c (block_alloc): Likewise.
+       * loop.c (rtx_equal_for_prefetch_p, maybe_eliminate_biv,
+       canonicalize_condition): Likewise.
+       * loop-iv.c (simplify_using_conditions, iv_number_of_iterations):
+       Likewise.
+       * optabs.c (add_equal_node, expand_binop): Likewise.
+       * predict.c (estimate_probability): Likewise.
+       * ra-debug.c (ra_print_rtx_2op, ra_print_rtx): Likewise.
+       * recog.c (validate_replace_rtx_1, comparison_operator,
+       offsettable_address_p, constrain_operands): Likewise.
+       * reg-stack.c (swap_rtx_condition_1, subst_stack_regs_pat):
+       Likewise.
+       * regclass.c (scan_one_insn): Likewise.
+       * regmove.c (stable_and_no_regs_but_for_p): Likewise.
+       * regrename.c (kill_autoinc_value): Likewise.
+       * reload.c (find_reusable_reload, find_reloads,
+       reg_overlap_mentioned_for_reload_p): Likewise.
+       * reload1.c (gen_reload, delete_address_reloads_1): Likewise.
+       * rtl.c (copy_rtx): Likewise.
+       * rtl.h (CONSTANT_P, INSN_P): Likewise.
+       * rtlanal.c (commutative_operand_precedence): Likewise.
+       * sched-deps.c (conditions_mutex_p): Likewise.
+       * sched-rgn.c (is_cfg_nonregular): Likewise.
+       * simplify-rtx.c (simplify_gen_binary,
+       simplify_gen_relational, simplify_replace_rtx,
+       simplify_unary_operation, simplify_binary_operation,
+       simplify_ternary_operation, simplify_rtx): Likewise.
+       * unroll.c (reg_dead_after_loop): Likewise.
+       * config/alpha/alpha.c (alpha_swapped_comparison_operator,
+       print_operand): Likewise.
+       * config/arc/arc.c (proper_comparison_operator): Likewise.
+       * config/arm/arm.c (arm_arm_address_cost, arm_select_cc_mode):
+       Likewise.
+       * config/avr/avr.c (_reg_unused_after): Likewise.
+       * config/frv/frv.c (frv_ifcvt_modify_tests,
+       frv_ifcvt_modify_insn, frv_pack_insn): Likewise.
+       * config/i386/i386.c (ix86_comparison_operator,
+       ix86_carry_flag_operator, fcmov_comparison_operator,
+       arith_or_logical_operator, print_operand,
+       ix86_expand_binary_operator, ix86_binary_operator_ok):
+       Likewise.
+       * config/i386/i386.md: Likewise.
+       * config/ia64/ia64.c (not_postinc_memory_operand,
+       ia64_print_operand, update_set_flags, errata_emit_nops):
+       Likewise.
+       * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS,
+       CONSTRAINT_OK_FOR_S): Likewise.
+       * config/ip2k/ip2k.c (mdr_resequence_xy_yx,
+       mdr_try_move_dp_reload, ip2k_check_can_adjust_stack_ref,
+       ip2k_xexp_not_uses_reg_for_mem, ip2k_xexp_not_uses_reg_p,
+       ip2k_composite_xexp_not_uses_reg_p, ip2k_unary_operator):
+       Likewise.
+       * config/iq2000/iq2000.c (cmp_op, symbolic_expression_p,
+       eqne_comparison_operator, signed_comparison_operator):
+       Likewise.
+       * config/mips/mips.c (cmp_op, symbolic_expression_p):
+       Likewise.
+       * config/mmix/mmix (mmix_foldable_comparison_operator,
+       mmix_comparison_operator): Likewise.
+       * config/pa/pa.c (hppa_legitimize_address): Likewise.
+       * config/rs6000/rs6000.c (stmw_operation,
+       branch_comparison_operator, trap_comparison_operator,
+       ccr_bit): Likewise.
+       * config/rs6000/rs6000.h (SELECT_CC_MODE): Likewise.
+       * config/s390/s390.c (s390_alc_comparison,
+       s390_slb_comparison):L Likewise.
+       * config/sh/sh.c (gen_block_redirect, reg_unused_after):
+       Likewise.
+       * config/sparc/sparc.c (eq_or_neq, normal_comp_operator,
+       noov_compare_op, noov_compare64_op, v9_regcmp_op,
+       emit_hard_tfmode_operation, reg_unused_after)
+       * doc/md.texi, doc/rtl.texi: Likewise.
+
+       * ra-debug.c: Add 2004 to list of copyright years.
+       * unroll.c: Likewise.
+
+       * combine.c (simplify_logical): Remove dummy test,
+       (apply_distributive_law): Fix typo in comment.
+       GET_CODE (x) == AND so x is a commutative binary op.
+       * jump.c (delete_related_insns): simplify loop
+       condition, move testing of RTX codes inside the loop.
+       (rtx_renumbered_equal_p): do not use RTX_CODE.
+       * rtl.c (rtx_class): Declare as enum rtx_class.
+       * rtl.def (EQ, NE, UNEQ, LTGT, UNORDERED, ORDERED):
+       Move to RTX_COMM_COMPARE class.
+       (HIGH, SYMBOL_REF, LABEL_REF, CONST, CONST_INT, CONST_DOUBLE):
+       Move to RTX_CONST_OBJ class.
+       * rtl.h (enum rtx_class): New declaration,
+       (RTX_OBJ_MASK, RTX_OBJ_RESULT, RTX_COMPARE_MASK,
+       RTX_COMPARE_RESULT, RTX_ARITHMETIC_MASK, RTX_ARITHMETIC_RESULT,
+       RTX_BINARY_MASK, RTX_BINARY_RESULT, RTX_COMMUTATIVE_MASK,
+       RTX_COMMUTATIVE_RESULT, RTX_NON_COMMUTATIVE_RESULT,
+       RTX_EXPR_FIRST, RTX_EXPR_LAST, UNARY_P, BINARY_P,
+       ARITHMETIC_P, COMMUTATIVE_ARITHMETIC_P, COMPARISON_P,
+       SWAPPABLE_OPERANDS_P, NON_COMMUTATIVE_P, COMMUTATIVE_P,
+       OBJECT_P): New macros.
+       * config/sparc/sparc.c (noov_compare_op): Remove register
+       from parameter.
+
+2004-03-03  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * target.h: Remove texi jargons in comments.
+
+2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * config/h8300/lib1funcs.asm (___fixunssfsi): Change the
+       threshold to 0x4f.
+
+       Revert:
+       2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
+       * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
+       as well.
+       * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
+       * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
+
+2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * doc/md.texi (cbranchmode4): New.
+
+2004-03-02  Eric Christopher  <echristo@redhat.com>
+
+       * config/mips/mips16.S: Change fixsfsi and fixdfsi to
+       fix_trunc.
+       * config/mips/mips.c (mips_init_libfuncs): Change accordingly.
+       * config/mips/t-elf (LIB1ASMFUNCS): Ditto.
+       * config/mips/t-isa3264 (LIB1ASMFUNCS): Ditto.
+       * config/mips/t-r3900 (LIB1ASMFUNCS): Ditto.
+
+2004-03-02  Richard Henderson  <rth@redhat.com>
+
+       PR middle-end/11767
+       * coverage.c (coverage_counter_ref): Set MEM_NOTRAP_P.
+       * optabs.c (prepare_cmp_insn): Force trapping memories to registers
+       before the compare, if flag_non_call_exceptions.
+
+2004-03-02  Richard Henderson  <rth@redhat.com>
+
+       PR middle-end/14327
+       * stmt.c (expand_computed_goto): Do do_pending_stack_adjust before
+       emitting the label, not after.
+
+2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
+
+       * config/m68hc11/m68hc11.c (m68hc11_addr_mode): New variable.
+       (m68hc11_mov_addr_mode): Likewise.
+       (m68hc11_override_options): Initialize them based on target.
+       (register_indirect_p): Allow a MEM for indirect addressing modes and
+       use flags to control what is allowed.
+       (m68hc11_small_indexed_indirect_p): Use m68hc11_mov_addr_mode for
+       supported addressing modes.
+       (m68hc11_register_indirect_p): Use m68hc11_addr_mode.
+       (go_if_legitimate_address_internal): Likewise.
+       (m68hc11_indirect_p): Likewise and check the mode.
+       (print_operand): Allow a (MEM (MEM)) and generate indirect addressing.
+
+2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * builtins.c (BUILTIN_SETJMP_FRAME_VALUE): Remove.
+       (expand_builtin_setjmp_setup): Use
+       targetm.builtin_setjmp_frame_value instead of
+       BUILTIN_SETJMP_FRAME_VALUE.
+       * system.h (BUILTIN_SETJMP_FRAME_VALUE): Poison.
+       * target-def.h (TARGET_BUILTIN_SETJMP_FRAME_VALUE): New.
+       (TARGET_INITIALIZER): Add TARGET_BUILTIN_SETJMP_FRAME_VALUE.
+       * target.h (gcc_target): Add builtin_setjmp_frame_value.
+       * targhooks.c (default_builtin_setjmp_frame_value): New.
+       * targhooks.h: Add a prototype for
+       default_builtin_setjmp_frame_value.
+       * doc/tm.texi (BUILTIN_SETJMP_FRAME_VALUE): Change to
+       TARGET_BUILTIN_SETJMP_FRAME_VALUE.
+
+2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
+
+       * config/m68hc11/m68hc11.md (move peephole2): New peepholes to optimize
+       sequences of moves.
+       (add peepholes): New peepholes to optimize sequences adding small
+       constants.
+       (bset peepholes): New peepholes to transform an OR in a bset form
+       (bclr peepholes): Likewise for bclr form.
+       (cmp peepholes): New peepholes to avoid register copies when comparing.
+
+2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
+
+       * config/m68hc11/m68hc11.md ("*pushdi_internal"): New insn and split
+       to separate push from moves.
+       ("*pushdf_internal"): Likewise.
+       ("*pushsf_internal"): Likewise.
+       ("*pushsi_internal"): Likewise.
+       ("movdi_internal"): Use define_insn_and_split; non push operand.
+       ("movdf_internal"): Likewise.
+       ("movsf_internal"): Likewise.
+       ("movsi_internal"): Likewise.
+       ("*movhi_68hc12", "*addhi3_68hc12"): Fix and tune constraints
+       ("*addhi3", "*subhi3", "*andhi3_mem", "*iorhi3_mem"): Likewise.
+       ("*ashlsi3_const1", "*lshrsi3_const1"): Likewise.
+
+2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
+
+       * config/m68hc11/m68hc11.md ("tstqi_z_used"): Use define_insn_and_split.
+       ("cmphi_z_used", "cmpqi_z_used"): Likewise.
+       ("movstrictsi", "movstricthi", "movstrictqi"): Likewise.
+       ("anddi3", "andsi3", "iordi3", "iorsi3"): Likewise.
+       ("xordi3", "xorsi3", "*logicalsi3_zexthi"): Likewise.
+       ("*logicalsi3_zextqi", "*logicalhi3_zexthi_ashift8"): Likewise.
+       ("logicalhi3_zexthi", "*logicalsi3_silshr16"): Likewise.
+       ("*logicalsi3_silshl16", "*logicalsi3_silshl16_zext"): Likewise.
+       ("*ashldi3_const32", "*ashldi3_const1", "addsi_silshr16"): Likewise.
+       ("addsi_andshr16", "*ashlsi3_const16_zexthi"): Likewise.
+       ("*lshrdi3_const32", "*lshrdi_const1"): Likewise.
+
+2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
+
+       * config/m68hc11/m68hc11.md (SOFT_TMP_REGNUM): Define.
+       (SOFT_XY_REGNUM): Define.
+       (cmp split): Use the above instead of hard coded numbers.
+       (8-bit op split): No need to check the mode; allow Q_REG.
+       (ashift split): Adjust the first operand if it uses the SP and we
+       are pushing the shifted value.
+       (plus shift split): Fix when a source is in register D+X.
+       ("doloop_end"): Pass dummy arguments to gen_rtx_NE.
+
+2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
+
+       * config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Fix when
+       comparing with Z register.
+
+2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
+
+       * cfgloop.h (struct loop_desc): Removed.
+       (struct loop): Fields simple, desc and has_desc removed.
+       (simple_loop_p, count_loop_iterations): Declaration removed.
+       * cfgloopanal.c (struct unmark_altered_insn_data): Removed.
+       (unmark_altered, blocks_invariant_registers, unmark_altered_insn
+       blocks_single_set_registers, invariant_rtx_wrto_regs_p_helper,
+       invariant_rtx_wrto_regs_p, test_for_iteration, constant_iterations,
+       simple_loop_exit_p, variable_initial_value, variable_initial_values,
+       simple_condition_p, simple_increment, count_strange_loop_iterations,
+       inverse, fits_in_mode_p, simple_loop_p, count_loop_iterations):
+       Removed.
+       * loop-iv.c (check_simple_exit, find_simple_exit): Update comments.
+
+2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * genattrtab.c: Don't handle MATCH_INSN.
+       * genrecog.c: Likewise.
+       * gensupport.c: Likewise.
+       * rtl.def (match_insn): Remove.
+       * doc/md.texi (match_insn, match_insn2): Remove.
+
+2004-03-02  Mark Mitchell  <mark@codesourcery.com>
+
+       * doc/c-tree.texi (DECL_ASSEMBLER_NAME): Mention that using this
+       macro results in memory allocation.
+
+2004-03-02  David O'Brien  <obrien@FreeBSD.org>
+
+       * config/freebsd-spec.h (FBSD_DYNAMIC_LINKER): Add.
+       * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Define
+       %(fbsd_dynamic_linker),
+       (LINK_SPEC): Use %(fbsd_dynamic_linker), and sync style with
+       config/i386/freebsd.h
+       * config/arm/freebsd.h: Ditto.
+       * config/i386/freebsd.h: Ditto.
+       * config/i386/freebsd64.h: Ditto.
+       * config/ia64/freebsd.h: Ditto.
+       * config/rs6000/sysv4.h: Ditto.
+       * config/sparc/freebsd.h: Ditto.
+
+2004-03-02  Loren James Rittle  <ljrittle@acm.org>
+
+       * gcc/doc/install.texi (*-*-freebsd*): Update target information.
+
+2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * rtl.def (define_combine): Remove.
+
+2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * config/h8300/h8300.md: Tweak formatting.
+
+2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * config/h8300/h8300.md (*cmphi_h8300): Rename to
+       *cmphi_h8300_znvc.
+       (*cmphi_h8300hs): Rename to *cmphi_h8300hs_znvc.
+
+2004-03-01  Mark Mitchell  <mark@codesourcery.com>
+
+       PR bootstrap/14356
+       * gcc.c (process_command): Remove const-qualification from argv.
+       (main): Likewise.
+
+2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * config/h8300/h8300.md (pushqi1_h8300hs): Rename to
+       pushqi1_h8300hs_advanced.  Adjust its caller.
+       (pushhi1_h8300hs): Rename to pushhi1_h8300hs_advanced.
+       Adjust its caller.
+
+2004-03-02  Nicolas Roche  <roche@act-europe.fr>
+
+       * Makefile.in (install-libgcc, install-multilib): Pass
+       mkinstalldirs var to libgcc.mk.
+
+2004-03-01  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * system.h (DBX_OUTPUT_STANDARD_TYPES): Poison.
+       * doc/tm.texi (DBX_OUTPUT_STANDARD_TYPES): Remove.
+
+2004-03-01  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * config/h8300/h8300.c (gtle_operator): Accept GT and LE.
+       * config/h8300/h8300.md: Split several peephole2's, each into
+       two.
+
+2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
+
+       * dominance.c (recount_dominator): Handle postdominators.
+
+2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
+
+       * config/mips/mips-protos.h (enum mips_symbol_type): Move from mips.h.
+       (NUM_SYMBOL_TYPES): Likewise.
+       (SYMBOL_64_HIGH, SYMBOL_64_MID, SYMBOL_64_LOW): New symbol types.
+       (mips_unspec_address): Declare.
+       (mips_gotoff_page, mips_gotoff_global): Delete.
+       * config/mips/mips.h (PREDICATE_CODES): Add general_symbolic_operand.
+       * config/mips/mips.c (enum mips_symbol_type, NUM_SYMBOL_TYPES): Delete.
+       (mips_symbolic_constant_p, mips_symbolic_address_p)
+       (mips_symbol_insns): Handle new symbol types.
+       (general_symbolic_operand): New predicate.
+       (mips_unspec_address): Make extern.
+       (mips_gotoff_page, mips_gotoff_global): Delete.
+       (override_options): Allow -mabi=64 -mno-abicalls -mexplicit-relocs.
+       Handle new symbol types.
+       * config/mips/mips.md (*lea_high64, *lea64): New patterns.
+       (*xgot_hi[sd]i, *xgot_lo[sd]i, *got_disp[sd]i, *got_disp[sd]i): Call
+       mips_unspec_address directly.
+       * doc/invoke.texi: Remove the -mabi=64 -mno-abicalls exception from
+       the documentation of -mexplicit-relocs.
+
+2004-03-01  Jeff Law  <law@redhat.com>
+
+       * fold-const.c (fold): An equality comparison of a non-weak object
+       against zero has a known result.  Similarly an equality comparison
+       of the address of two non-weak, unaliased symbols has a known result.
+
+       * ggc-page.c (struct page_entry): New field PREV.
+       (ggc_alloc): Update PREV field appropriately.
+       (sweep_pages): Likewise.
+       (ggc_free): Likewise.  Use PREV field rather than loop to
+       improve ggc_free performance.
+
+2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
+
+       * config/mips/mips.c (mips_output_division): Use the division
+       instruction to fill the delay slot of a zero check.
+       (mips_idiv_insns): Adjust accordingly.
+
+2004-03-01  Nathanael Nerode  <neroden@gcc.gnu.org>
+
+       * config.gcc: Create a default tmake_file for linux, and use
+       it in all but two linux clauses.  Comment those two.
+
+2004-03-01  Paolo Bonzini  <bonzini@gnu.org>
+
+       * combine.c (try_combine):  Do not refer to is_replaced.
+       (gen_lowpart_for_combine):  Perverse subregs now have a
+       more politically correct name.
+       * cse.c (cse_insn): Likewise.
+       * jump.c: Fix bogus reference to delete_insn.
+
+2004-02-29  Mark Mitchell  <mark@codesourcery.com>
+
+       PR debug/14328
+       * dwarf2out.c (gen_enumeration_type_die): Output all enumeration
+       constants as signed values.
+
+       PR middle-end/13448
+       * c-tree.h (readonly_warning): Rename to ...
+       (readonly_error): ... this.
+       * c-typeck.c (build_unary_op): Adjust accordingly.
+       (readonly_warning): Rename to ...
+       (readonly_error): ... this and issue errors, not warnings.
+       (build_modify_expr): Call readonly_error, not readonly_warning.
+       (c_expand_asm_operands): Likewise.
+       * tree-inline.c (optimize_inline_calls): Do not inline functions
+       after errors have occurred.
+
+2004-02-29  Nathanael Nerode  <neroden@gcc.gnu.org>
+
+       * configure.ac: Rearrange some threading code for clarity;
+       add section comment.
+       * configure: Regenerate.
+
+2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * passes.c, config/frv/frv.c, config/sh/sh.c: Fix comment
+       typos.
+       * doc/cppopts.texi: Fix a typo.
+
+2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * config/i386/i386.md: Fix formatting.
+
+2004-02-29  Nathanael Nerode  <neroden@gcc.gnu.org>
+
+       * configure.ac: Add some comments delineating sections of code.
+
+       * doc/install.texi: Note that libada uses autoconf 2.57 also.
+
+       * doc/install.texi: Fix idiot typo in previous commit.
+
+       * doc/install.texi: Update for conversion of intl to autoconf 2.57.
+
+2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * config/h8300/h8300.md: Add comments about peephole2's.
+
 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
 
        * config/h8300/h8300.md: Tweak operand numbers of some
        * config/sh/sh.c: Convert to ISO-C.
 
 2004-02-28  Andrew Pinski  <pinskia@physics.uc.edu>
-       
+
        * c-typeck.c (tagged_types_tu_compatible_p): Fix pasto in
        my previous patch.
 
 
 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
 
-       * config/mips/mips.c (override_options): Remove an obsolete 
+       * config/mips/mips.c (override_options): Remove an obsolete
        duplicate definition of the "e" constraint.
        * config/mips/mips.h: Update a comment accordingly.
 
        * Makefile.in (OBJS-common): Add it.
        * diagnostic.c (rtl_dump_and_exit): Move decl ...
        * flags.h (rtl_dump_and_exit): ... here.
-       * output.h (size_directive_output, last_assemble_variable_decl): 
+       * output.h (size_directive_output, last_assemble_variable_decl):
        Move from toplev.c.
        * rtl.h (reg_alloc): Move from toplev.c.
        * toplev.c (HAVE_conditional_execution, DUMPFILE_FORMAT,
        struct dump_file_info, enum dump_file_index, dump_file_tbl,
        open_dump_file, close_dump_file, rest_of_decl_compilation,
        rest_of_type_compilation, rest_of_handle_final,
-       rest_of_handle_delay_slots, rest_of_handle_stack_regs, 
+       rest_of_handle_delay_slots, rest_of_handle_stack_regs,
        rest_of_handle_variable_tracking, rest_of_handle_machine_reorg,
        rest_of_handle_new_regalloc, rest_of_handle_old_regalloc,
        rest_of_handle_regrename, rest_of_handle_reorder_blocks,
        rest_of_handle_sched, rest_of_handle_sched2, rest_of_handle_regmove,
-       rest_of_handle_tracer, rest_of_handle_if_conversion, 
+       rest_of_handle_tracer, rest_of_handle_if_conversion,
        rest_of_handle_if_after_combine, rest_of_handle_web,
        rest_of_handle_branch_prob,
        rest_of_handle_value_profile_transformations, rest_of_handle_cfg,
-       rest_of_handle_addressof, rest_of_handle_sibling_calls, 
+       rest_of_handle_addressof, rest_of_handle_sibling_calls,
        rest_of_handle_jump_bypass, rest_of_handle_inlining,
        rest_of_handle_null_pointer, rest_of_handle_combine,
        rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2,
-       rest_of_handle_gcse, rest_of_handle_loop_optimize, 
+       rest_of_handle_gcse, rest_of_handle_loop_optimize,
        rest_of_handle_loop2, rest_of_compilation): Move to passes.c.
        (decode_d_option): Use enable_rtl_dump_file.
        (compile_file, finalize, do_compile): Move profile+combine+graph
        enable_rtl_dump_file): Declare.
 
 2004-02-27  Eric Botcazou  <ebotcazou@act-europe.fr>
-            Roger Sayle  <roger@eyesopen.com>
+           Roger Sayle  <roger@eyesopen.com>
 
        * fold-const.c (fold): Revert 2004-02-25 change.  Use the original
        operands to build a tree with swapped operands.
        * config/rs6000/spe.md: Delete spe_efsctuiz.
        Add spe_fixuns_truncsfsi2.
        Add spe_fix_truncsfsi2.
+
 2004-02-26  Eric Christopher  <echristo@redhat.com>
 
        * c-lex.c (c_lex_string_translate): New variable.
 
 2004-02-24  Aldy Hernandez  <aldyh@redhat.com>
 
-        * config/rs6000/spe.md (spe_fix_truncsfsi2): Delete.
-        (spe_fixuns_truncsfsi2): Delete.
+       * config/rs6000/spe.md (spe_fix_truncsfsi2): Delete.
+       (spe_fixuns_truncsfsi2): Delete.
 
-        * config/rs6000/rs6000.md (fix_truncsfsi2): Delete.
-        (fixuns_truncsfsi2): Delete.
+       * config/rs6000/rs6000.md (fix_truncsfsi2): Delete.
+       (fixuns_truncsfsi2): Delete.
 
 2004-02-24  Josef Zlomek  <zlomekj@suse.cz>
 
 
        * config/i386/i386.c: Rename pni to sse3.
        * config/i386/i386.h: Likewise.
-        * config/i386/i386.md: Likewise.
+       * config/i386/i386.md: Likewise.
        * config/i386/pmmintrin.h: Likewise.
        * doc/extend.texi: Likewise.
        * doc/invoke.texi: Likewise.
        (movdf_softfloat64):  Ditto.
 
 2004-02-23  Fariborz Jahanian <fjahanian@apple.com>
-        * config/rs6000/rs6000.c (function_arg): call to
+       * config/rs6000/rs6000.c (function_arg): call to
        rs6000_mixed_function_arg for DFmode moved to allow
        normal DFmode incoming register assignment.
 
        TARGET_DEFAULT_SHORT_ENUMS.  Update the description.
 
 2004-02-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
-            Falk Hueffner  <falk@debian.org>
+           Falk Hueffner  <falk@debian.org>
 
        PR c/14188
        * builtins.c (expand_builtin_va_arg): Emit an informative message
 
 2004-02-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
 
-        PR c++/12007
+       PR c++/12007
        * dbxout.c (dbxout_parms): Check that DECL_RTL and DECL_INCOMING_RTL
        are set for parameters before outputing debugging information.
 
 2004-02-20  Matt Kraai  <kraai@alumni.cmu.edu>
 
        * doc/install.texi (Building the Ada compiler): Remove
-        example.
+       example.
 
 2004-02-20  James E Wilson  <wilson@specifixinc.com>