OSDN Git Service

2004-07-23 Matthias Klose <doko@debian.org>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index bc412fc..f039bce 100644 (file)
+2004-07-23  Matthias Klose  <doko@debian.org> 
+       intl.c (gcc_init_libintl): Use PACKAGE for the text domain. 
+       configure.ac: Add AC_DEFINE_UNQUOTED for PACKAGE. 
+       config.h: Regenerate.
+       configure: Likewise. 
+
+2004-07-22  Mark Mitchell  <mark@codesourcery.com>
+
+       * dwarf2out.c (output_call_frame_info): Set SYMBOL_FLAG_LOCAL on
+       generated SYMBOL_REFs for labels.
+       * config/darwin-protos.h (machopic_validate_stub_or_non_lazy_ptr):
+       Change prototype.
+       (machopic_stub_name): Remove.
+       (machopic_indirection_name): New function.
+       (machopic_mcount_stub_name): Likewise.
+       (machopic_classify_name): Remove.
+       (machopic_function_base_sym): New function.
+       (machpoic_classify_symbol): Likewise.
+       (machopic_classify_ident): Remove.
+       (machopic_define_ident): Likewise.
+       (machopic_define_name): Likewise.
+       (machopic_name_defined_p): Likewise.
+       (machopic_ident_defined_p): Likewise.
+       (darwin_strip_name_encoding): Likewise.
+       (machopic_define_symbol): New function.
+       * config/darwin.c (hashtab.h): Include.
+       (machopic_defined_list): Remove.
+       (machopic_classify_ident): Likewise.
+       (machopic_classify_name): Likewise.
+       (machopic_ident_defined_p): Likewise.
+       (machopic_define_ident): Likewise.
+       (machopic_define_name): Likewise.
+       (machopic_symbol_defined_p): New function.
+       (machopic_classify_symbol): Likewise.
+       (machopic_data_defined_p): Use machopic_classify_symbol.
+       (machopic_define_symbol): New function.
+       (machopic_function_base_sym): New function.
+       (machopic_non_lazy_pointers): Remove.
+       (machopic_non_lazy_ptr_name): Likewise.
+       (machopic_stubs): Likewise.
+       (machopic_stub_name): Likewise.
+       (NON_LAZY_POINTER_SUFFIX): New macro.
+       (STUB_SUFFIX): Likewise.
+       (machopic_indirection): New structure.
+       (machopic_indirections): New variable.
+       (machopic_indirection_hash): New function.
+       (machopic_indirection_eq): Likewise.
+       (machopic_indirection_name): Likewise.
+       (machopic_mcount_stub_name): New function.
+       (machopic_validate_stub_or_non_lazy_pointer): Reimplement to use
+       hash table.
+       (machopic_indirect_data_reference): Rework to use new functions.
+       (machopic_indirect_call_target): Likewise.
+       (machopic_legitimize_pic_address): Likewise.
+       (machopic_output_indirection): New function.
+       (machopic_finish): Use it.
+       (machopic_operand_p): Rework to use new functions.
+       (darwin_encode_seciton_info): Use SYMBOL_REF_FLAGS.
+       (darwin_strip_name_encoding): Remove.
+       (update_non_lazy_ptrs): Remove.
+       (update_stubs): Likewise.
+       (darwin_non_lazy_pcrel): Use new functions.
+       * config/darwin.h (ASM_DECLARE_OBJECT_NAME): Likewise.
+       (ASM_OUTPUT_LABELREF): Likewise.
+       (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
+       (MACHO_SYMBOL_FLAG_VARIABLE): New macro.
+       (MACHO_SYMBOL_FLAG_DEFINED): Likewise.
+       (TARGET_STRIP_NAME_ENCODING): Do not use
+       darwin_strip_name_encoding.
+       (GEN_LAZY_PTR_NAME_FOR_SYMBOL): Do not use
+       darwin_strip_name_encoding.
+       * config/i386/darwin.h (FUNCTION_PROFILER): Use
+       machopic_mcount_stub_name.
+       * config/i386/i386.c (x86_output_mi_thunk): Use
+       machopic_indirection_name, not machopic_stub_name.
+       * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Use
+       machopic_function_base_sym.
+       (print_operand): Use machopic_classify_symbol.
+       (rs6000_emit_prologue): Use machopic_function_base_sym.
+       (output_profile_hook): Do not use machopic_stub_name.
+       (macho_branch_isalnds): Do not use darwin_strip_name_encoding.
+       
+2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
+
+       PR c/7284
+       * fold-const.c (extract_muldiv_1): Do not treat signed left shift
+       as multiplication.
+
+2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
+
+       * doc/implement-c.texi: New file.
+       * doc/extend.texi (C Implementation): Move to there.
+       * doc/gcc.texi: Include implement-c.texi.
+       * Makefile.in (TEXI_GCC_FILES): Add implement-c.texi.
+
+2004-07-22  Jason Merrill  <jason@redhat.com>
+
+       * integrate.c (copy_decl_for_inlining): Remove invisible reference
+       handling.
+       * tree-inline.c (setup_one_parameter): Likewise.
+
+2004-07-22  Brian Booth  <bbooth@redhat.com>
+
+       * tree-ssa-ccp.c (latticevalue): Add UNKNOWN_VAL.
+       (substitute_and_fold): Propigate into VUSE operands when possible.
+       (visit_phi_node): Handle UNKNOWN_VAL latticevalue.
+       (cp_lattice_meet): Handle merging of latticevalues when 
+       UNKNOWN_VAL is present.
+       (visit_stmt): Visit assignments with V_MUST_DEFs.
+       (visit_assignment): Gather ccp information for V_MUST_DEF operands.
+       (ccp_fold): Deal with RHS' that are constant and virtual.
+       (evaluate_stmt): Handle UNKNOWN_VAL likely values.
+       (dump_lattice_value): Dump UNKNOWN_VAL latticevalues.
+       (initialize): Mark statements with V_MUST_DEFs as VARYING only if the
+       V_MUST_DEF operand is VARYING. Fix comment and include VOPS when 
+       computing immediate uses.
+       (set_lattice_value): Disallow a UNKNOWN_VAL->UNDEFINED state 
+       transition.
+       (replace_vuse_in): New function.
+       (likely_value): Add check of vuse operands.
+       (get_default_value): Set the default value of virtually defined 
+       variables to UKNOWN_VAL instead of VARYING.
+
+2004-07-22  Richard Henderson  <rth@redhat.com>
+
+       * expr.c (emit_push_insn): Don't use set_mem_attributes.
+
+2004-07-22  Richard Henderson  <rth@redhat.com>
+
+       * tree-ssa-live.c (create_ssa_var_map): Avoid defined-but-not-used
+       variables due to conditional compilation.
+
+2004-07-22  Diego Novillo  <dnovillo@redhat.com>
+
+       * tree-into-ssa.c (set_livein_block): Fix typo in comment.
+       (rewrite_ssa_into_ssa): Start iterating over SSA names at 1.
+       Release SSA names that have been re-renamed.
+       * tree-phinodes.c (make_phi_node): Set same TREE_TYPE as the
+       variable.
+       * tree-ssa-alias.c (init_alias_info): If aliases have been
+       computed before, clear existing alias information.
+       (create_name_tags): Do no fixup PT_ANYTHING pointers.
+       If the new name tag for a pointer is different than the one it
+       had before, mark the old tag for renaming.
+       (replace_may_alias): New function.
+       (group_aliases): Call it.
+       (setup_pointers_and_addressables): Always call get_tmt_for.
+       (maybe_create_global_var): Don't create .GLOBAL_VAR more than
+       once.
+       (set_pt_anything): New local function.
+       (set_pt_malloc): New local function.
+       (merge_pointed_to_info): Don't merge pointed-to variables from
+       the original pointer if the destination is pointing to an
+       unknown location.
+       (add_pointed_to_expr): Call set_pt_anything and set_pt_malloc.
+       (add_pointed_to_var): Do not add a variable to the points-to
+       set if the pointer is already pointing to anywhere.
+       (collect_points_to_info_r): If the defining statement is a PHI
+       node, only merge pointed-to information if the argument has
+       already been visited.
+       (get_tmt_for): Only create a new tag if the pointer didn't
+       have one already.
+       (dump_alias_info): Emit more information.
+       (dump_points_to_info_for): Likewise.
+       * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Don't
+       try to get the annotation of an SSA_NAME.
+       * tree-ssa-operands.c (add_stmt_operand): Only check for empty
+       alias sets when checking is enabled.
+       * tree-ssa-pre.c (need_eh_cleanup): New local variable.
+       (eliminate): Mark basic blocks that will need
+       EH information cleaned up.
+       (init_pre): Split ENTRY_BLOCK->0 if block 0 has more than one
+       predecessor.
+       Initialize need_eh_cleanup.
+       (fini_pre): Call tree_purge_all_dead_eh_edges and
+       cleanup_tree_cfg if needed.
+       Free need_eh_cleanup.
+       * tree-ssa.c (verify_ssa_name): New function.
+       (verify_def): Call it.
+       Re-arrange to avoid printing too many error messages.
+       (verify_use): Likewise.
+       (verify_phi_args): Likewise.
+       (verify_flow_insensitive_alias_info): New function.
+       (verify_flow_sensitive_alias_info): New function.
+       (verify_alias_info): New function.
+       (verify_ssa): Call verify_alias_info.
+       Clear TREE_VISITED on all the SSA_NAMEs before scanning the
+       program.
+       Re-arrange to avoid printing too many error messages.
+       * tree-ssanames.c (make_ssa_name): Clear
+       SSA_NAME_IN_FREE_LIST.
+       (release_ssa_name): Never release a default definition.
+       (release_defs): New function.
+       * tree.h: Declare it.
+       * tree-ssa-dce.c (remove_dead_stmt): Call it.
+
+2004-07-22  Diego Novillo  <dnovillo@redhat.com>
+
+       * tree-ssa.c (walk_use_def_chains_1): Add new argument IS_DFS.
+       If true, do a depth-first search.  Do a breadht-first search,
+       otherwise.
+       (walk_use_def_chains): Add new argument IS_DFS.
+       Update all users.
+       * tree-flow.h (walk_use_def_chains): Update prototype.
+
+2004-07-22  Hans-Peter Nilsson  <hp@axis.com>
+
+       * config/cris/cris.md: Tweak formatting.
+       (asrandb, asrandw, lsrandb, lsrandw, moversideqi, movemsideqi)
+       (mover2side, moverside, movemside, movei, op3, andu): Replace
+       live define_peephole:s with define_peephole2 near-equivalents.
+       Delete the rest.
+       ("*mov_sidesisf_biap"): Rename from "*mov_sidesi_biap".  Match all
+       word-size modes.
+       ("*mov_sidesisf", "*mov_sidesisf_biap_mem", "*mov_sidesisf_mem"):
+       Similar for "*mov_sidesi", "*mov_sidesi_biap_mem" and
+       "*mov_sidesi_mem" respectively.
+
+2004-07-22  Paolo Bonzini  <bonzini@gnu.org>
+
+       * tree-cfg.c (gimplify_val): Move from tree-complex.c.
+       (gimplify_build1): Move from tree-complex.c do_unop.
+       (gimplify_build2): Move from tree-complex.c do_binop.
+       (gimplify_build3): New.
+       * tree-complex.c (gimplify_val, do_unop, do_binop): Remove.
+       Adjust throughout to call the functions above.
+       * tree-flow.h: Declare the functions above.
+       * tree-nested.c (gimplify_val): Rename to...
+       (tsi_gimplify_val): ... this.
+
+       * Makefile.in (tree_complex.o): Update dependencies.
+       (stor-layout.o): Depend on regs.h.
+       * c-common.c (handle_vector_size_attribute): Update for
+       vector types without corresponding vector modes.
+       * expr.c (expand_expr): Treat VECTOR_CST's like CONSTRUCTORS if
+       a corresponding vector mode is not available.
+       * print-tree.c (print_node): Print nunits for vector types
+       * regclass.c (have_regs_of_mode): New.
+       (init_reg_sets_1): Initialize it and use it instead
+       of allocatable_regs_of_mode.
+       * regs.h (have_regs_of_mode): Declare it.
+       * stor-layout.c (layout_type): Pick a mode for vector types.
+       * tree-complex.c (build_word_mode_vector_type, tree_vec_extract,
+       build_replicated_const, do_unop, do_binop, do_plus_minus,
+       do_negate, expand_vector_piecewise, expand_vector_parallel,
+       expand_vector_addition, expand_vector_operations_1,
+       expand_vector_operations, tree_lower_operations,
+       pass_lower_vector_ssa, pass_pre_expand): New.
+       (expand_complex_operations, pass_lower_complex): Remove.
+       * tree-optimize.c (init_tree_optimization_passes): Adjust
+       pass ordering for changes in tree-complex.c.
+       * tree-pass.h: Declare new passes.
+       * tree.c (finish_vector_type): Remove.
+       (make_vector_type): New.
+       (build_vector_type_for_mode, build_vector_type): Rewritten.
+       * tree.def (VECTOR_TYPE): Document where the number of
+       subparts is stored.
+       * tree.h (TYPE_VECTOR_SUBPARTS): Use TYPE_PRECISION field.
+       (make_vector): Remove declaration.
+
+2004-07-21  Richard Henderson  <rth@redhat.com>
+
+       * gimple-low.c (expand_var_p): Don't look at TREE_ADDRESSABLE,
+       TREE_THIS_VOLATILE, may_aliases, or optimization level.
+       (remove_useless_vars): Dump debugging info.
+       (expand_used_vars): Move ...
+       * cfgexpand.c (expand_used_vars): ... here.  Make static.
+       * tree-flow-inline.h (set_is_used): New.
+       (set_default_def): Use get_var_ann.
+       * tree-flow.h: Update decls.
+       * tree-ssa-live.c (mark_all_vars_used_1, mark_all_vars_used): New.
+       (create_ssa_var_map): Use it.
+       * tree-ssa.c (set_is_used): Remove.
+
+2004-07-22  Ben Elliston  <bje@au.ibm.com>
+
+       * gdbinit.in: Set a breakpoint on internal_error.
+
+2004-07-21  Richard Henderson  <rth@redhat.com>
+
+       * cfgexpand.c (expand_gimple_tailcall): Fix case where we need
+       to create a new basic block.
+
+2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
+
+       PR c/15052
+       * c-decl.c (grokdeclarator): Only pedwarn for qualified void
+       return type on function definitions.  Move other warnings for
+       qualified return type to -Wreturn-type.  Do not condition any such
+       warnings on -pedantic.  Update comments.
+       (start_function): Only copy function type from previous prototype
+       declaration if return types are compatible.
+       * c-typeck.c (function_types_compatible_p): Don't condition
+       warning for incompatibility of volatile qualifiers on the return
+       type on -pedantic.  Update comment.
+       * doc/invoke.texi (-Wreturn-type, -Wextra): Update.
+
+2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
+
+       * c-typeck.c (set_init_index): Require designator to be of integer
+       type.
+
+2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
+
+       PR c/11250
+       * c-parse.in (init): Change to exprtype.
+       (primary): Set original_code for STRING to STRING_CST.
+       Call maybe_warn_string_init for compound literals.
+       (initdcl, notype_initdcl): Call maybe_warn_string_init.
+       (initval): Update.
+       * c-tree.h (maybe_warn_string_init): New.
+       (pop_init_level, process_init_element): Use struct c_expr.
+       (struct c_expr): Update comment.
+       * c-typeck.c (maybe_warn_string_init): New function.
+       (digest_init): Call it.  Additional parameter strict_string.  All
+       callers changed.
+       (output_init_element): Likewise.
+       (struct constructor_stack): Use struct c_expr for
+       replacement_value.
+       (really_start_incremental_init, push_init_level): Update.
+       (pop_init_level): Update.  Return struct c_expr.
+       (process_init_level): Update.  Take struct c_expr argument.
+
+2004-07-21  David S. Miller  <davem@nuts.davemloft.net>
+
+       * config/sparc/sparc.c (sparc_rtx_costs): Fix typo in previous
+       commit.
+
+2004-07-21  Eric Christopher  <echristo@redhat.com>
+
+       * builtins.c (expand_builtin_setjmp_receiver): Fix comment for code
+       removal.
+       * c-decl.c (pop_scope): Ditto.
+       * calls.c (expand_call): Remove call to current_nesting_level,
+       update comment accordingly. Remove calls to expand_start_target_temps
+       and expand_end_target_temps.
+       * cfgexpand.c (construct_init_block): Remove call to
+       expand_start_bindings_and_block.
+       (construct_exit_block): Remove call to expand_end_bindings.
+       * expr.c (safe_from_p): Remove BIND_EXPR handling.
+       (expand_expr_real_1): Ditto. Fix formatting.
+       (expand_vars): Delete.
+       * stmt.c (POPSTACK): Remove block_stack.
+       (stmt_status): Remove x_block_stack.
+       (block_stack): Delete.
+       (expand_start_bindings_and_block): Ditto.
+       (expand_start_target_temps): Ditto.
+       (expand_end_target_temps): Ditto.
+       (current_nesting_level): Ditto.
+       (warn_about_unused_variables): Ditto.
+       (expand_end_bindings): Ditto.
+       * tree.h: Remove declarations for above.
+
+2004-07-21  Steven Bosscher  <stevenb@suse.de>
+
+       * rtl.h (insn_note): Remove NOTE_INSN_PREDICTION.
+       * rtl.c (note_insn_name): Likewise.
+       * print-rtl.c (print_rtx): Don't print it.
+       * cfgrtl.h (can_delete_note_p): Don't handle it.
+       (rtl_delete_block): Likewise.
+       * passes.c (rest_of_handle_guess_branch_prob): Remove.
+       (rest_of_compilation): Don't call it.
+       * predict.c (process_note_predictions, process_note_prediction,
+       note_prediction_to_br_prob): Remove.
+       * basic-block.c (note_prediction_to_br_prob): Remove prototype.
+       * stmt.c (return_prediction): Remove.
+       (expand_value_return): Don't call it.  Don't add prediction
+       notes for return statements.
+
+2004-07-21  Josef Zlomek  <zlomekj@suse.cz>
+
+       * var-tracking.c (vt_find_locations): Set the in_pending bitmap at
+       once.
+
+2004-07-21  Paolo Bonzini  <bonzini@gnu.org>
+
+       * c-common.c (vector_types_convertible_p): Use vector types'
+       TYPE_SIZE and TREE_TYPE instead of their mode.
+       * convert.c (convert_to_integer): Likewise.
+       (convert_to_vector): Likewise.
+       * fold-const.c (fold_convert): Likewise.
+       * varasm.c (output_constant): Likewise.
+       * expr.c (store_constructor): Split ARRAY_TYPE and VECTOR_TYPE.
+       Allow a VECTOR_TYPE initializer to be made of several vectors.
+       For ARRAY_TYPEs and VECTOR_TYPES, simplify a bit the handling
+       of cleared and need_to_clear, and use fold_convert.
+       * c-typeck.c (build_binary_op): Do not use RDIV_EXPR for
+       integer vectors.
+
+2004-07-20  Richard Henderson  <rth@redhat.com>
+
+       * cfgexpand.c (expand_gimple_cond_expr, expand_gimple_tailcall): Split,
+       (expand_gimple_basic_block): out from here.  Renamed from expand_block.
+
+2004-07-20  David S. Miller  <davem@nuts.davemloft.net>
+
+       * config/sparc/sparc.c (sparc_rtx_costs case MULT): Emit
+       enormous cost if not TARGET_HARD_MUL.
+
+2004-07-20  Andrew Pinski  <apinski@apple.com>
+
+       PR target/16557
+       * config/i386/darwin.h (CC1_SPEC): Move the -g SPECs from ...
+       (ASM_SPEC): here.
+
+2004-07-21  Paul brook  <paul@codesourcery.com>
+
+       * config/arm/arm.c (thumb_expand_prologue): Remove bogus GEN_INT.
+
+2004-07-20  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * fold-const.c (operand_equal_p): Temporarily support NULL args.
+       (operand_equal_p, case ARRAY_REF): Compare args 2 and 3.
+       (operand_equal_p, case COMPONENT_REF): Likewise, for arg 2.
+
+2004-07-20  Zack Weinberg  <zack@codesourcery.com>
+
+       * rtl.h (plus_constant): Delete.
+       (plus_constant_wide): Rename to plus_constant.
+       (plus_constant_for_output_wide): Delete vestigial prototype.
+       (GEN_INT): Remove unnecessary cast.
+       * tree.h (build_int_2, size_int_type): Delete.
+       (build_int_2_wide): Rename to build_int_2.
+       (size_int_wide): Rename to size_int_kind.
+       (size_int_type_wide): Rename to size_int_type.
+       (size_int, ssize_int, bitsize_int, sbitsize_int): Use size_int_kind.
+       Remove unnecessary cast.
+       * tree.c (build_int_2_wide): Rename build_int_2; update comment.
+       * explow.c (plus_constant_wide): Rename plus_constant; update comment.
+       * fold-const.c (size_int_wide): Rename size_int_kind. Use size_int_type.
+       (size_int_type_wide): Rename size_int_type.
+       (int_const_binop): Use size_int_type.
+       * c-lex.c (interpret_integer): Use build_int_2.
+       * final.c (split_double): Remove unnecessary casts.
+       * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Use build_int_2.
+
+2004-07-20  Richard Henderson  <rth@redhat.com>
+
+       * gimplify.c (is_gimple_tmp_var): Move to tree-gimple.c.
+       (gimplify_compound_lval): Use is_gimple_tmp_reg.
+       * tree-gimple.c (is_gimple_tmp_var): Move from gimplify.c.
+       (is_gimple_tmp_reg): New.
+       * tree-gimple.h (is_gimple_tmp_reg): Declare.
+
+2004-07-20  Richard Henderson  <rth@redhat.com>
+
+       * tree-pretty-print.c (dump_generic_node): Dump
+       CALL_EXPR_HAS_RETURN_SLOT_ADDR.
+
+2004-07-20  Frank Ch. Eigler  <fche@redhat.com>
+
+       * tree-mudflap.c (mf_set_options_fndecl): New tree.
+       (mudflap_init): Set it.
+       (mudflap_register_call): Remove __mf_init call.
+       (mudflap_finish_file): Emit call to __mf_init here.  Emit a call to
+       to pass "-ignore-reads" option to libmudflap if needed.
+
+2004-07-20  John David Anglin  <dava.anglin@nrc-cnrc.gc.ca>
+
+       PR c++/14607
+       * config/pa/pa-hpux10.h (SUPPORTS_ONE_ONLY): Define.
+       (MAKE_DECL_ONE_ONLY): Undefine.
+       * pa-protos.h (som_text_section_asm_op, one_only_readonly_data_section,
+       readonly_data, one_only_data_section, forget_section): New prototypes.
+       * pa.c (pa_init_machine_status, som_text_section_asm_op): New
+       functions.
+       (pa_select_section): Add one-only (COMDAT) support.
+       * pa.h (struct machine_function): Define.
+       * som.h (ASM_OUTPUT_FUNCTION_PREFIX): Delete.
+       (TEXT_SECTION_ASM_OP): Call som_text_section_asm_op.
+       (DEFAULT_TEXT_SECTION_ASM_OP, NEW_TEXT_SECTION_ASM_OP,
+       ONE_ONLY_TEXT_SECTION_ASM_OP, ONE_ONLY_READONLY_DATA_SECTION_ASM_OP,
+       ONE_ONLY_DATA_SECTION_ASM_OP): New defines.
+       (EXTRA_SECTIONS): Add in_one_only_readonly_data and in_one_only_data.
+       (EXTRA_SECTION_FUNCTIONS): Rework to use individual function macros.
+       (READONLY_DATA_FUNCTION, ONE_ONLY_READONLY_DATA_SECTION_FUNCTION,
+       ONE_ONLY_DATA_SECTION_FUNCTION, FORGET_SECTION_FUNCTION): New defines
+       for EXTRA_SECTION_FUNCTIONS.
+       * doc/install.texi: Update binutils requirements.
+
+2004-07-20  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * vec.h (VEC_T_length, VEC_T_index, VEC_T_iterate, VEC_T_truncate,
+       VEC_T_replace, VEC_T_quick_insert, VEC_T_safe_insert,
+       VEC_T_ordered_remove, VEC_T_unordered_remove): Use unsigned, not
+       size_t.
+       (struct VEC): Use unsigned for num and alloc.
+       * vec.c (struct vec_prefix): Likewise.
+       (vec_o_reserve): Adjust.
+
+       * dbxout.c (dbxout_type): Fix printf format.
+
+       * tree.h (binfo_member): Remove.
+       * tree.c (binfo_member): Remove.
+
+2004-07-20  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * tree.h: Include vec.h
+       (DEF_VEC_P(tree)): New type.
+       (BINFO_BASE_BINFOS, BINFO_N_BASE_BINFOS, BINFO_BASE_BINFO): Adjust.
+       (BINFO_BASE_APPEND, BINFO_BASE_ITERATE): New.
+       (BINFO_LANG_SLOT): Remove.
+       (BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX, BINFO_PRIMARY_BASE_OF): New.
+       (struct tree_binfo): Turn base_binfos into a trailing
+       VEC(tree). Add vtt_subvtt, vtt_vptr, primary fields.
+       (binfo_lang_slots): Remove.
+       * tree.c (binfo_lang_slots): Remove.
+       (make_tree_binfo_stat): Take a base binfo count, not a
+       lang slot count.  Adjust.
+       * Makefile.in (TREE_H): Add vec.h
+       * alias.c (record_component_aliases): Adjust BINFO access.
+       * dbxout.c (dbxout_type): Likewise.
+       * dwarf2out.c (gen_member_die): Likewise.
+       * sdbout.c (sdbout_one_type): Likewise.
+       * tree-dump.c (deque_and_dump): Likewise.
+       * config/i386/i386.c (classify_argument,
+       contains_128bit_aligned_vector_p): Likewise.
+       * config/sh/symbian.c (symbian_export_vtable_and_rtti_p): Likewise.
+       * doc/c-tree.texi (Classes): Update BINFO documentation.
+
+2004-07-20  Steven Bosscher  <stevenb@suse.de>
+
+       * c-common.h (check_case_value): Remove prototype.
+       (c_add_case_label): Adjust prototype.
+       * c-common.c (check_case_value): Make static.
+       (check_case_bounds): New function.
+       (c_add_case_label): Use it.  Take new argument orig_type.
+       * c-typeck.c (struct c_switch): New orig_type field.
+       (c_start_case): Set it.
+       (do_case): Pass it to c_add_case_label.
+       * expr.c (expand_expr_real_1): Don't warn for out-of-bounds
+       cases from here.  Add the labels in reverse order.
+       * stmt.c (struct case_node): Adjust comment.  Remove balance field.
+       (add_case_node): Return nothing, don't check for duplicate cases.
+       Insert new case nodes in a list, not in an AVL tree.
+       (expand_end_case_type): Don't turn a case tree into a case list.
+       (case_tree2list): Remove.
+       * tree.h (add_case_node): Adjust prototype.
+
+2004-07-19  Paolo Bonzini  <bonzini@gnu.org>
+
+       * genattr.c (struct range, struct function_unit,
+       write_units, extend_range, init_range): Remove them.
+       (main): Remove code dealing with DEFINE_FUNCTION_UNIT.
+       Output "#define INSN_SCHEDULING" here.
+       * genattrtab.c (struct range, struct function_unit_op,
+       struct function_unit, struct dimension, enum operator,
+       operate_exp, expand_units, simplify_knowing,
+       encode_units_mask, simplify_by_exploding,
+       find_and_mark_used_attributes, unmark_used_attributes,
+       add_values_to_cover, increment_current_value,
+       test_for_current_value, simplify_with_current_value,
+       simplify_with_current_value_aux, gen_unit,
+       write_unit_name, write_function_unit_info,
+       write_complex_function, write_toplevel_expr,
+       find_single_value, extend_range): Remove.
+       (write_attr_get): Do not handle common_av->value
+       being an FFS.
+       (struct attr_desc): Remove func_units_p and blockage_p.
+       (write_attr_valueq): Do not handle them.
+       (find_attr): Do not clear them.
+       (make_internal_attr): Do not initialize them.
+       (main): Remove code dealing with DEFINE_FUNCTION_UNIT.
+       * sched-vis.c (init_target_units, insn_print_units,
+       init_block_visualization, print_block_visualization,
+       visualize_scheduled_insns, visualize_no_unit,
+       visualize_stall_cycles, visualize_alloc,
+       visualize_free, target_units, get_visual_tbl_length,
+       MAX_VISUAL_LINES, INSN_LEN, n_visual_lines,
+       visual_tbl_line_length, visual_tbl, n_vis_no_unit,
+       MAX_VISUAL_NO_UNIT, vis_no_unit): Remove.
+       * haifa-sched.c (blockage_range, clear_units,
+       schedule_unit, actual_hazard, potential_hazard,
+       insn_unit, unit_last_insn, unit_tick,
+       actual_hazard_this_instance, potential_hazard,
+       schedule_unit, max_insn_queue_index_value): Remove.
+       (MAX_INSN_QUEUE_INDEX): Removed, renamed throughout to
+       max_insn_queue_index.
+       * rtl.def (DEFINE_FUNCTION_UNIT): Remove.
+       * doc/md.texi (Processor pipeline description): Remove
+       references to old pipeline descriptions.
+       (Automaton pipeline description): Merge with the above.
+       (Old pipeline description, Comparison of the two descriptions):
+       Remove.
+
+       * bt-load.c (migrate_btr_def): Remove references to
+       use_pipeline_interface.
+       * haifa-sched.c (insn_cost, schedule_insn,
+       schedule_block, advance_one_cycle, sched_init,
+       queue_to_ready, sched_finish): Likewise.
+       * modulo-sched.c (sms_schedule, advance_one_cycle,
+       ps_has_conflicts): Likewise.
+       * sched-rgn.c (init_ready): Likewise.
+       (debug_dependencies): Likewise, and remove an "if (1)".
+       * target.h (use_dfa_pipeline_interface): Remove.
+       * config/alpha/alpha.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
+       * config/arc/arc.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
+       * config/arm/arm.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
+       * config/c4x/c4x.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
+       * config/frv/frv.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
+       * config/i386/i386.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
+       * config/ia64/ia64.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
+       * config/iq2000/iq2000.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
+       * config/m32r/m32r.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
+       * config/mcore/mcore.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
+       * config/mips/mips.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
+       * config/pa/pa.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
+       * config/rs6000/rs6000.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
+       * config/s390/s390.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
+       * config/sh/sh.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
+       * config/sparc/sparc.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
+       * config/v850/v850.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
+       * config/xtensa/xtensa.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
+       * doc/tm.texi (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
+
+2004-07-19  Roger Sayle  <roger@eyesopen.com>
+
+       * rtlanal.c (reg_set_p): Add check for regs_invalidated_by_call.
+
+2004-07-19  Jeff Law  <law@redhat.com>
+
+       * tree-ssa-dom.c (single_incoming_edge_ignoring_loop_edges): New.
+       (get_eq_expr_value): Use it.  Simplify slightly.
+
+2004-07-19  Maciej W. Rozycki  <macro@linux-mips.org>
+
+       * config/mips/mips.md (mulsidi3_32bit_r4000): Fix the clobber list.
+       (umulsidi3_32bit_r4000): Likewise.
+
+2004-07-19  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * vec.h: Propagate location information properly.
+       (VEC_T_iterate): Add result pointer parameter.
+       (VEC_T_space): New.
+       (VEC_T_reserve): Use it.
+
+2004-07-19  Daniel Jacobowitz  <dan@debian.org>
+
+       * Makefile.in (c-format.o): Depend on c-format.h.
+       * c-format.h: New file.
+       (struct format_char_info): Add CHAIN member.
+       * c-format.c: Move some types and constants to c-format.h.
+       (format_type_error): Set to -1.
+       (struct function_format_info): Use an int for format_type.
+       (decode_format_type): Return an int.  Return format_type_error
+       on error.
+       (print_char_table, asm_fprintf_char_table, gcc_diag_char_table)
+       (gcc_diag_char_table, gcc_cdiag_char_table, gcc_cxxdiag_char_table)
+       (scan_char_table, time_char_table, monetary_char_table): Initialize
+       CHAIN to NULL.
+       (n_format_types): New variable.
+       (check_format_info_main): Handle CHAIN in format_char_info.
+       (handle_format_attribute): Handle TARGET_FORMAT_TYPES and
+       TARGET_N_FORMAT_TYPES.
+       * config.gcc (i[34567]86-*-solaris2*, sparc64-*-solaris2*)
+       (sparc-*-solaris2*): Include config/t-sol2 and config/sol2-c.c.
+       * config/sol2-c.c: New file.
+       * config/t-sol2: New file.
+       * config/sol2.h (TARGET_N_FORMAT_TYPES, TARGET_FORMAT_TYPES): Define.
+       * config/sparc/elf.h, config/sparc/sp64-elf.h: Undefine
+       TARGET_N_FORMAT_TYPES and TARGET_FORMAT_TYPES.
+
+       * doc/extend.texi (Target Format Checks): New section.
+       (Function Attributes): Mention it.
+       * doc/invoke.texi: Mention target format checks.
+       * doc/sourcebuild.texi: Mention target format checks.
+       * dc/tm.texi (Misc): Document TARGET_N_FORMAT_TYPES and
+       TARGET_FORMAT_TYPES.
+
+2004-07-19  Andreas Krebbel  <krebbel1@de.ibm.com>
+
+       * config/s390/s390-protos.h (s390_return_address_offset): Prototype
+       added.
+       * config/s390/s390.c (regclass_map initializer): Register 35 added to
+       ADDR_REGS.
+       (load_multiple_operation, store_multiple_operation): Removed
+       pointless sanity check.
+       (s390_decompose_address): Added check for return_address_pointer_rtx.
+       (s390_return_addr_rtx): Use return_address_pointer_rtx for count == 0.
+       (s390_return_address_offset): New function.
+       * config/s390/s390.h (FIRST_PSEUDO_REGISTER): Increased to 36.
+       (FRAME_REGNO_P): Added check for register 35.
+       (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS,
+       REG_ALLOC_ORDER): Appended entry for register 35.
+       (REG_CLASS_CONTENTS): Adjusted class masks for register 35.
+       (EH_RETURN_HANDLER_RTX): Use return_address_pointer_rtx.
+       (RETURN_ADDRESS_POINTER_REGNUM): New macro.
+       (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET): Return address pointer
+       is eliminable using stack pointer or hard frame pointer.
+       (REGISTER_NAMES): Added name for register 35.
+       * config/s390/s390.md ("load_multiple", "store_multiple"): Removed
+       pointless sanity check.
+
+2004-07-19  Roger Sayle  <roger@eyesopen.com>
+
+       * fold-const.c (tree_expr_nonzero_p): Add function prototype.
+       (fold) <EQ_EXPR>: Move tree_expr_nonzero_p optimization from
+       fold_relational_const to here, i.e. "(x | 5) == 0" -> false.
+       (fold) (UNEQ_EXPR>: Add optimizations for unordered comparisons
+       of the form "x op x" where op is UNLE, UNGE, UNEQ or LTGT.
+       (fold_relational_const): Tidy up handling of floating point
+       comparisons by calling real_compare.  Remove tree_expr_nonzero_p
+       transformation; fold_relational_const assumes constant operands.
+
+2004-07-19  Gabriel Dos Reis  <gdr@integrable-solution.net>
+
+       * doc/sourcebuild.texi: Add libcpp, now that CPP has its own
+       directory.
+
+2004-07-19  Joseph S. Myers  <jsm@polyomino.org.uk>
+
+       * c-tree.h (struct c_expr): Define.
+       (C_SET_EXP_ORIGINAL_CODE): Remove.
+       (parser_build_binary_op, build_compound_expr): Update prototypes.
+       * c-parse.in (%union): Add exprtype.
+       (FUNC_NAME): Mark as ttype.
+       (expr, expr_no_commas, cast_expr, unary_expr, primary): Change to
+       exprtype.
+       (expr): Update.  Define directly in terms of expr_no_commas
+       instead of using nonnull_exprlist.
+       (nonnull_exprlist, unary_expr, cast_expr, expr_no_commas, primary,
+       offsetof_member_designator, typespec_nonreserved_nonattr, init,
+       initval, designator, component_declarator,
+       component_notype_declarator, enumerator, array_declarator,
+       condition, exexpr, switch_statement, stmt_nocomp, stmt,
+       nonnull_asm_operands, ivar_declarator, receiver): Update.  Don't
+       set C_EXP_ORIGINAL_CODE.  Use TREE_NO_WARNING for assignments
+       where appropriate.
+       * c-common.h (C_EXP_ORIGINAL_CODE): Remove.
+       * c-common.c (c_common_truthvalue_conversion): Don't check
+       C_EXP_ORIGINAL_CODE.
+       * c-typeck.c (parser_build_binary_op): Use c_expr structures.
+       Don't use C_EXP_ORIGINAL_CODE.
+       (default_conversion, default_function_array_conversion): Don't use
+       C_EXP_ORIGINAL_CODE.  Preserve TREE_NO_WARNING.
+       (internal_build_compound_expr): Merge into build_compound_expr.
+       (build_compound_expr): Take two operands instead of a TREE_LIST.
+       * objc/objc-act.c (get_super_receiver): Update calls to
+       build_compound_expr.
+
+2004-07-12  Paolo Bonzini  <bonzini@gnu.org>
+
+       * config/sh/sh.c (sh_use_dfa_interface): Remove.
+       (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Set to
+       hook_int_void_1.
+       * config/sh/sh.md: Extract pipeline descriptions
+       into separate files.
+       * config/sh/sh1.md: New file, extracted from sh.md.
+       * config/sh/sh4.md: New file, extracted from sh.md.
+       * config/sh/shmedia.md: New file, extracted from sh.md
+       and rewritten using new-style pipeline description.
+
+2004-07-18  Zack Weinberg  <zack@codesourcery.com>
+
+       * config/pa/pa.md: Delete the two remaining define_peephole
+       patterns.
+
+2004-07-18  Steven Bosscher  <stevenb@suse.de>
+           Joseph S. Myers  <jsm@polyomino.org.uk>
+
+       * c-common.c (c_common_truthvalue_conversion): Don't warn if
+       TREE_NO_WARNING is set.
+
+2004-07-18  Roger Sayle  <roger@eyesopen.com>
+
+       * builtins.c (simplify_builtin_memcmp, simplify_builtin_strcmp,
+       simplify_builtin_strncmp): Delete.
+       (fold_builtin_memcmp, fold_builtin_strcmp, fold_builtin_strncmp):
+       Change argument to accept an arglist instead of an "exp".  Assume
+       that the return type is always integer_type_node.  Copy missing
+       transformations from their now obsolete simplify_builtin_*
+       equivalents.
+       (fold_builtin_1): Pass arglist instead of exp to fold_builtin_memcmp,
+       fold_builtin_strcmp and fold_builtin_strncmp.
+       (simplify_builtin): Call fold_builtin_memcmp, fold_builtin_strcmp
+       and fold_builtin_strncmp instead of simplify_builtin_memcmp,
+       simplify_builtin_strcmp and simplify_builtin_strncmp respectively.
+
+2004-07-18  Daniel Jacobowitz  <dan@debian.org>
+
+       * Makefile.in (tree-alias-common.o): Update dependencies.
+
+2004-07-17  Sebastian Pop  <pop@cri.ensmp.fr>
+
+       * cfgloop.c (flow_loop_nested_p): Fix comment.
+
+2004-07-17  Jason Merrill  <jason@redhat.com>
+
+       PR c++/16115
+       * stor-layout.c (relayout_decl): New fn.
+       * tree.h: Declare it.
+       (DECL_BY_REFERENCE): New macro.
+
+2004-07-17  Eric Botcazou  <ebotcazou@act-europe.fr>
+
+       * libgcc2.c (__enable_execute_stack): New symbol.
+       * libgcc-std.ver (GCC_3.4.2): New version.  Inherit from GCC_3.4
+       and declare __enable_execute_stack.
+       * mklibgcc.in (lib2funcs): Add _enable_execute_stack.
+       * config/netbsd.h (NETBSD_ENABLE_EXECUTE_STACK): ANSIfy.
+       * config/sol2.h (TRANSFER_FROM_TRAMPOLINE): Rename into
+       ENABLE_EXECUTE_STACK.
+       * config/alpha/alpha.c (alpha_initialize_trampoline): Conditionalize
+       on ENABLE_EXECUTE_STACK instead of TRANSFER_FROM_TRAMPOLINE.
+       * config/alpha/netbsd.h (TRANSFER_FROM_TRAMPOLINE): Rename into
+       ENABLE_EXECUTE_STACK.
+       * config/alpha/osf.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
+       * config/i386/i386.c (x86_initialize_trampoline): Conditionalize
+       on ENABLE_EXECUTE_STACK instead of TRANSFER_FROM_TRAMPOLINE.
+       * config/i386/netbsd-elf.h (TRANSFER_FROM_TRAMPOLINE): Rename into
+       ENABLE_EXECUTE_STACK.
+       * config/i386/netbsd.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
+       * config/i386/netbsd64.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
+       * config/sparc/freebsd.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
+       * config/sparc/netbsd-elf.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
+       * config/sparc/sparc.c (sparc_initialize_trampoline): Conditionalize
+       on ENABLE_EXECUTE_STACK instead of TRANSFER_FROM_TRAMPOLINE.
+       (sparc64_initialize_trampoline): Likewise.
+       * doc/tm.texi (trampolines): Add ENABLE_EXECUTE_STACK macro.
+
+2004-07-17  Joseph S. Myers  <jsm@polyomino.org.uk>
+
+       * langhooks.h (builtin_function): New langhook.
+       * langhooks-def.h (LANG_HOOKS_BUILTIN_FUNCTION): New.
+       (LANG_HOOKS_INITIALIZER): Update.
+       * tree.h (builtin_function): Remove.
+       * doc/tm.texi: Update.
+       * c-tree.h (builtin_function): Declare.
+       * c-common.c, config/alpha/alpha.c, config/arm/arm.c,
+       config/c4x/c4x.c, config/frv/frv.c, config/i386/i386.c,
+       config/ia64/ia64.c, config/iq2000/iq2000.c,
+       config/rs6000/rs6000.c, config/s390/s390.c, config/sh/sh.c,
+       config/stormy16/stormy16.c: All callers of builtin_function
+       changed.
+
+2004-07-17  Andrew Pinski  <pinskia@physics.uc.edu>
+
+       PR target/16556
+       * config/i386/darwin.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME):
+       Remove white space after the backslash.
+
+2004-07-17  Eric Botcazou  <ebotcazou@libertysurf.fr>
+
+       PR rtl-optimization/16294
+       * resource.c (return_insn_p): New predicate.
+       (mark_target_live_regs): Use it.  Special-case return insns.
+       (init_resource_info): Use it.  Don't scan the epilogue past
+       a return.
+
+2004-07-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
+
+       * loop-init.c (loop_optimizer_init, loop_optimizer_finalize): Do not
+       destroy dominance information.
+       * passes.c (rest_of_handle_loop2):  Free dominance information.
+       * tree-cfg.c (cleanup_tree_cfg): Remove unreachable blocks before
+       jump threading.
+       (thread_jumps): Update dominance information and remove unreachable
+       blocks.
+       * tree-ssa-phiopt.c (replace_phi_with_stmt):  Update dominance
+       information and remove the unreachable block.
+
+2004-07-17  Graham Stott  <graham.stott@btinternet.com>
+
+       * emit-rtl.c (reorder_insns): Don't set BB for a BARRIER insn.
+
+2004-07-17  Toon Moene  <toon@moene.indiv.nluug.nl>
+
+       * doc/sourcebuild.texi: Remove libf2c entry.
+
+2004-07-17  Paolo Bonzini  <bonzini@gnu.org>
+
+       * config/i386/i386.md (movv16qi_internal): Fix typo.
+
+2004-07-17  Steven Bosscher  <stevenb@suse.de>
+
+       * final.c (final_scan_insn): Fix broken commit from previous
+       patch.
+
+2004-07-17  Joseph S. Myers  <jsm@polyomino.org.uk>
+
+       * c-typeck.c (parser_build_binary_op): Condition warnings for
+       X<=Y<=Z on -Wparentheses instead of -Wextra.
+       * doc/invoke.texi: Update.  Document that most of -Wparentheses is
+       supported for C only.
+
+2004-07-17  Steven Bosscher  <stevenb@suse.de>
+
+       * cfgcleanup.c (try_simplify_condjump): Don't remove line
+       notes to avoid unreachable code warnings.
+       * toplev.c (backend_init): Don't emit line notes for
+       unreachable code warnings.
+
+       * combine.c (distribute_notes): Don't distribute a
+       REG_VTABLE_REF note.
+       * final.c (final_scan_insn): Don't handle it.
+       * rtl.c (reg_note_name): Remove it.
+       * rtl.h (enum reg_node): Dito.
+
+       * emit-rtl.c (force_line_numbers, restore_line_number_status):
+       Remove.
+       * rtl.h (force_line_numbers, restore_line_number_status):
+       Remove prototypes.
+
+       * stmt.c (using_eh_for_cleanups_p, using_eh_for_cleanups): Move...
+       * tree-eh.c (using_eh_for_cleanups_p): ...here.  Make static.
+       (using_eh_for_cleanups): Also moved here.
+
+       * expr.c (expand_expr_real_1) <CASE_LABEL_EXPR>: Die if we see one.
+       <SWITCH_EXPR>: Die if we have a non-NULL SWITCH_BODY.  Update calls
+       to expand_start_case and add_case_node.
+       * stmt.c (struct nesting): Cleanup unused fields condition_code,
+       last_unconditional_cleanup, nominal_type, printname, and
+       line_number_status.
+       (struct fixup_goto): Remove.
+       (struct stmt_status): Remove x_goto_fixup_chain field.
+       (goto_fixup_chain): Remove.
+       (strip_default_case_nodes, group_case_nodes, emit_jump_if_reachable,
+       pushcase, pushcase_range): Remove.
+       (expand_start_bindings_and_block): Don't set unused fields in
+       the nesting stack.
+       (expand_start_case, add_case_node): Cleanup unused formal arguments.
+       (expand_end_case_type): Don't simplify the case-list.  Use emit_jump
+       instead of emit_jump_if_reachable.
+       (emit_case_nodes): Likewise.
+       * tree-cfg.c (group_case_labels, cleanup_dead_labels): No longer
+       static.
+       (update_eh_label): Work around left-over exception handing regions.
+       * tree-flow.h (group_case_labels, cleanup_dead_labels): Add protos.
+       * tree-optimize.c (execute_cleanup_cfg_post_optimizing): New function.
+       (pass_cleanup_cfg_post_optimizing): New pass.
+       (init_tree_optimization_passes): Run the new pass after all
+       optimizations.
+       * tree.h (pushcase, pushcase_range): Remove prototypes.
+       (expand_start_case, add_case_node): Update prototypes.
+
+2004-07-16  Krister Walfridsson  <cato@df.lth.se>
+
+       * tree-inline.c (estimate_num_insns_1): Correct increase of count.
+
+2004-07-16  Richard Henderson  <rth@redhat.com>
+
+       * builtins.c (std_expand_builtin_va_arg): Remove.
+       (expand_builtin_va_arg): Remove.
+       * expr.h: Don't declare them.
+       * gimplify.c (mark_decls_volatile_r): Remove.
+       (copy_if_shared_r): Don't call it.
+       * target-def.h: Don't test EXPAND_BUILTIN_VA_ARG.
+       * expr.c (expand_expr_real_1): Don't handle VA_ARG_EXPR.
+       * gimple-low.c (lower_stmt): Likewise.
+       * tree-cfg.c (cfg_remove_useless_stmts_bb): Likewise.
+       * tree-gimple.c (is_gimple_tmp_rhs, is_gimple_stmt): Likewise.
+       * tree-ssa-operands.c (get_expr_operands): Likewise.
+       * doc/tm.texi (TARGET_GIMPLIFY_VA_ARG_EXPR): Don't mention
+       EXPAND_BUILTIN_VA_ARG.
+       * system.h (EXPAND_BUILTIN_VA_ARG): Poison.
+       * config/alpha/alpha.h, config/alpha/unicosmk.h, config/i386/i386.h,
+       config/ia64/ia64.h, config/rs6000/rs6000.h, config/s390/s390.h,
+       config/sparc/sparc.h (EXPAND_BUILTIN_VA_ARG): Remove.
+
+2004-07-16  Daniel Berlin  <dberlin@dberlin.org>
+
+       * tree-ssa-pre.c (insert_aux): Break out if we hit
+       a critical edge.
+
+2004-07-16  Richard Henderson  <rth@redhat.com>
+
+       * basic-block.h (remove_fake_exit_edges): Declare.
+       * cfganal.c (remove_fake_predecessors): Rename from
+       remove_fake_successors; iterate over predecessors.
+       (remove_fake_exit_edges): New.
+       * cfgcleanup.c (try_optimize_cfg): Use it.
+       * gcse.c (one_pre_gcse_pass, store_motion): Likewise.
+       * predict.c (estimate_probability): Likewise.
+       (tree_estimate_probability, note_prediction_to_br_prob): Likewise.
+       * tree-cfg.c (make_edges): Likewise.
+       * tree-ssa-pre.c (fini_pre): Likewise.
+       * profile.c (instrument_edges): Don't remove_fake_edges.
+       (branch_prob): Do it earlier here.
+
+2004-07-16  Richard Henderson  <rth@redhat.com>
+
+       * tree-ssa-operands.c (get_expr_operands): Fix 2004-07-15
+       switchification wrt CONSTRUCTOR.  Document the reason.
+
+2004-07-16  Frank Ch. Eigler  <fche@redhat.com>
+
+       * tree-mudflap.c (mf_file_function_line_tree): Correct typo
+       that prevented descriptive __mf_check source location strings.
+
+2004-07-16  Richard Henderson  <rth@redhat.com>
+
+       * tree-def (WITH_SIZE_EXPR): New.
+       * explow.c (expr_size, int_expr_size): Handle WITH_SIZE_EXPR.
+       * expr.c (expand_expr_real_1): Likewise.
+       * gimplify.c (maybe_with_size_expr): New.
+       (gimplify_arg, gimplify_modify_expr): Use it.
+       (gimplify_modify_expr_to_memcpy): Take size parameter.
+       (gimplify_modify_expr_to_memset): Likewise.
+       (gimplify_expr): Handle WITH_SIZE_EXPR.
+       * tree-alias-common.c (find_func_aliases): Likewise.
+       * tree-eh.c (tree_could_trap_p): Likewise.
+       (tree_could_throw_p): Likewise.
+       * tree-gimple.c (is_gimple_lvalue): Likewise.
+       (get_call_expr_in): Likewise.
+       * tree-inline.c (estimate_num_insns_1): Likewise.
+       (expand_calls_inline): Likewise.
+       * tree-nested.c (convert_call_expr): Likewise.
+       * tree-pretty-print.c (dump_generic_node): Likewise.
+       * tree-sra.c (sra_walk_expr): Likewise.
+       * tree-ssa-alias.c (add_pointed_to_expr): Likewise.
+       * tree-ssa-ccp.c (get_rhs, set_rhs): Likewise.
+       * tree-ssa-operands.c (get_expr_operands): Likewise.
+       * tree-tailcall.c (find_tail_calls): Likewise.
+
+       * calls.c (expand_call): Reset old_stack_allocated after
+       calling emit_stack_restore.
+
+2004-07-16  Richard Henderson  <rth@redhat.com>
+
+       * langhooks-def.h (LANG_HOOKS_TREE_INLINING_COPY_RES_DECL_FOR_INLINING,
+       lhd_tree_inlining_copy_res_decl_for_inlining): Remove.
+       * langhooks.c (lhd_tree_inlining_copy_res_decl_for_inlining): Remove.
+       * langhooks.h (struct lang_hooks_for_tree_inlining): Remove
+       copy_res_decl_for_inlining.
+
+       * tree-inline.c (declare_return_variable): New modify_dest argument.
+       Use it as the return value, when possible or manditory.  Handle
+       TREE_ADDRESSABLE types.
+       (expand_call_inline): Extract MODIFY_EXPR lhs for call.  Simplify
+       replacement of CALL_EXPR.
+
+2004-07-16  Richard Henderson  <rth@redhat.com>
+
+       * tree-flow.h (struct var_ann_d): Remove has_hidden_use.
+       * gimple-low.c (expand_var_p): Don't check it.
+       * tree-ssa-alias.c (setup_pointers_and_addressables): Likewise.
+       * tree-ssa-copyrename.c (rename_ssa_copies): Likewise.
+       * tree-ssa-operands.c (add_stmt_operand): Likewise.
+       * tree-dfa.c (find_hidden_use_vars, find_hidden_use_vars_r): Kill.
+       (find_referenced_vars): Don't call them.
+       * tree-flow-inline.h (has_hidden_use, set_has_hidden_use): Kill.
+
+2004-07-16  Richard Henderson  <rth@redhat.com>
+
+       * function.c (pass_by_reference): True for all variable sized types.
+
+2004-07-16  Sebastian Pop  <pop@cri.ensmp.fr>
+
+       * Makefile.in (tree-pretty-print.o): Depend on tree-chrec.h.
+       * tree-pretty-print.c: Include tree-chrec.h.
+       (dump_generic_node): Pretty print SCEV_KNOWN, SCEV_NOT_KNOWN
+       and POLYNOMIAL_CHREC nodes.
+
+2004-07-16  Steve Ellcey  <sje@cup.hp.com>
+
+       * builtins.c (expand_builtin_stpcpy): Do not create temporary
+       reg with VOIDmode.
+
+2004-07-16  Segher Boessenkool  <segher@kernel.crashing.org>
+
+       * config/rs6000/eabi.asm (__eabi_convert): Fix typo (cmpi vs. cmpwi).
+
+2004-07-16  Andreas Krebbel  <krebbel1@de.ibm.com>
+
+       * config/s390/s390.md: Changed every occurence of BASE_REGISTER
+       to BASE_REGNUM.
+       * config/s390/s390.c: Likewise.
+       * config/s390/s390.h: Likewise.
+
+2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
+
+       * config/mips/mips.md (addsi3, adddi3): Remove special handling
+       of $sp adds.  Remove REGNO checks from mips16 patterns.
+
+2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
+
+       * config/mips/mips.md: Delete outdated comment.
+
+2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
+
+       * config/mips/mips.c (get_float_compare_codes): Delete.
+       (mips_emit_compare): New function, mostly extracted from
+       get_float_compare_codes and gen_conditional_branch.
+       (gen_conditional_branch, gen_conditional_move): Use it.
+
+2004-07-16  Segher Boessenkool  <segher@kernel.crashing.org>
+
+       * genautomata.c (add_vect): Speedup by using integers as
+       bit-vectors for walking through the comb_vect and finding
+       a match.
+
+2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
+
+       * config/mips/mips.c (mips_zero_if_equal): Only use XORs if the second
+       operand is an uns_arith_operand; use subtraction otherwise.
+       * config/mips/mips.md (cmpsi, cmpdi): Allow any nonmemory_operand,
+       not just arith_operands.
+
+2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
+
+       * config/mips/mips-protos.h (gen_int_relational): Delete.
+       (mips_emit_scc): Declare.
+       * config/mips/mips.c (internal_test): Delete.
+       (sle_operand, sleu_operand): New functions.
+       (map_test_to_internal_test, gen_int_relational): Delete.
+       (mips_emit_binary, mips_relational_operand_ok_p)
+       (mips_emit_int_relational, mips_zero_if_equal)
+       (mips_emit_scc): New functions.
+       (gen_conditional_branch): Rework to use mips_emit_int_relational.
+       * config/mips/mips.h (PREDICATE_CODES): Add sle_operand and
+       sleu_operand.
+       * config/mips/mips.md (seq, sne, sgt, sge, slt, sle, sgtu, sgeu)
+       (sltu, sleu): Use mips_emit_scc.
+       (*sge_[sd]i, *sgeu_[sd]i): New patterns.
+       (*sle_[sd]i, *sle_[sd]i_mips16): Use sle_operand.
+       (*sleu_[sd]i, *sleu_[sd]i_mips16): Use sleu_operand.
+
+2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
+
+       * config/mips/mips.md (*sgt_di_mips16): Fix destination constraint.
+
+2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
+
+       * config/mips/mips.md (*seq_[sd]i): Renamed from seq_[sd]i_zero.
+       (*sne_[sd]i): Likewise sne_[sd]i_zero.
+       (*sgt_[sd]i): ...and sgt_[sd]i.
+       (*slt_[sd]i): ...and slt_[sd]i.
+       (*sgtu_[sd]i): ...and sgtu_[sd]i.
+       (*sltu_[sd]i): ...and sltu_[sd]i.
+       (*sleu_[sd]i): ...and sleu_[sd]i_const.
+       Name previously unnamed mips16 patterns.  Formatting fixes.
+
+2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
+
+       * config/mips/mips.c (cmp_operands): Renamed from branch_cmp.
+       (branch_type): Delete.
+       (gen_conditional_branch, gen_conditional_move)
+       (mips_gen_conditional_trap): Update after name change.  Get the
+       comparison mode from cmp_operands[0].
+       * config/mips/mips.h (cmp_type, branch_type): Delete.
+       (cmp_operands): Renamed from branch_cmp.
+       * config/mips/mips.md (cmpsi, cmpdi, cmpsf, cmpdf): Update after
+       name change.  Don't set branch_type.
+       (seq, sne, sgt, sge, slt, sle, sgtu, sgeu, sltu, sleu): Check the
+       mode class of cmp_operands[0] rather than branch_type.  Update after
+       name change.
+
+2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
+
+       * config/mips/mips.c (mips_rtx_costs): In mips16 code, set the cost
+       of 0...255 to 0 when inside a SET.
+
+2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
+
+       * config/mips/mips.md: Remove mips16 define_peepholes.
+
+2004-07-16  Daniel Berlin  <dberlin@dberlin.org>
+
+       * tree-ssa-pre.c (init_pre): Connect infinite loops to exit.
+       (fini_pre): Remove fake edges.
+
 2004-07-15  Richard Henderson  <rth@redhat.com>
 
        * tree-ssa-operands.c (get_expr_operands): Use a switch.  Split out...
 
 2004-07-15  Roman Zippel  <zippel@linux-m68k.org>
 
-       * config/m68k/m68k.c (output_move_qimode): Abort on an attempt to 
+       * config/m68k/m68k.c (output_move_qimode): Abort on an attempt to
        generate code which is generated by pushqi1 now
        * config/m68k/m68k.h (MOVE_BY_PIECES_P): Remove.
 
 2004-07-15  Roman Zippel  <zippel@linux-m68k.org>
 
-       * combine.c (simplify_set): match the mode of the constant 0 with 
-       the tested operand to match the compare behaviour and the 
+       * combine.c (simplify_set): match the mode of the constant 0 with
+       the tested operand to match the compare behaviour and the
        simplify_relational_operation() expectation.
 
 2004-07-15  Aldy Hernandez  <aldyh@redhat.com>