OSDN Git Service

* config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Fix ALL_REGS and
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 69e29bd..3b64a1b 100644 (file)
+2005-05-03  Richard Henderson  <rth@redhat.com>
+
+       * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Fix ALL_REGS and
+       SPEC_OR_GEN_REGS definitions.
+
+2005-05-03  Alexandre Oliva  <aoliva@redhat.com>
+
+       PR target/16888
+       * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Clear reg names
+       for unavailable registers.
+
+2005-05-03  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * tree-cfg.c (tree_forwarder_block_p): Fix a typo.
+
+       * cfglayout.c (block_locators_blocks,
+       insn_locators_initialize, insn_scope): Use VEC instead of
+       VARRAY.
+
+       * tree-mudflap.c (deferred_static_decls, mudflap_enqueue_decl,
+       mudflap_finish_file, mudflap_finish_file): Use VEC instead of
+       VARRAY.
+
+2005-05-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
+
+       * config/sparc/predicates.md (const_compl_high_operand): New.
+       * config/sparc/sparc.c (sparc_emit_set_safe_HIGH64): Rename into
+       gen_safe_HIGH64.
+       (sparc_emit_set_const64_quick1): Adjust for above change.
+       (sparc_emit_set_const64_quick2): Likewise.
+       (sparc_emit_set_const64_longway): Likewise.
+       (sparc_emit_set_const64): Likewise.
+       * config/sparc/sparc.md (movhi_const64_special, movsi_const64_special,
+       movdi_const64_special): Delete.
+       (logical constant splitters): Use const_compl_high_operand.
+
+2005-05-03  Richard Guenther  <rguenth@gcc.gnu.org>
+
+       * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Use STRIP_TYPE_NOPS
+       rather than STRIP_NOPS.
+
+2005-05-03  Jakub Jelinek  <jakub@redhat.com>
+
+       PR rtl-optimization/21330
+       * loop-unswitch.c (may_unswitch_on): Set *cinsn only when
+       returning non-NULL.
+       (unswitch_single_loop): Clear cinsn when retrying.
+
+       PR target/21297
+       * config/i386/i386.c (legitimize_address): When canonicalizing
+       ASHIFT into MULT, multiply by 1 << shift_count instead of
+       1 << log2 (shift_count).
+
+2005-05-03  Andrew MacLeod  <amacleod@redhat.com>
+
+       * lambda-code.c (gcc_loop_to_lambda_loop, 
+       lambda_loopnest_to_gcc_loopnest, phi_loop_edge_uses_def,
+       stmt_is_bumper_for_loop, perfect_nest_p, replace_uses_of_x_with_y): Use
+       generic operand interface.
+       * tree-data-ref.c (find_data_references_in_loop): Use generic interface.
+       * tree-dfa.c (collect_dfa_stats_r, mark_new_vars_to_rename): Use
+       generic operand interface.
+       * tree-flow-inline.h (delink_imm_use, link_imm_use_to_list, 
+       link_imm_use, link_imm_use_stmt, relink_imm_use, relink_imm_use_stmt,
+       next_safe_imm_use, has_zero_uses, has_single_use, single_imm_use,
+       num_imm_uses): Use ssa_use_operand_t.
+       (get_def_ops, get_use_ops, get_v_may_def_ops, get_vuse_ops,
+       get_v_must_def_ops): Delete.
+       (get_def_from_ptr, get_phi_result_ptr): Get def directly now.
+       (get_use_op_ptr, get_def_op_ptr, get_v_may_def_result_ptr,
+       get_v_may_def_op_ptr, get_vuse_op_ptr, get_v_must_def_result_ptr,
+       get_v_must_def_kill_ptr): Delete.
+       (delink_stmt_imm_use): Move and use new operand interface.
+       (op_iter_next_use, op_iter_next_def, op_iter_next_tree, op_iter_init,
+       op_iter_next_tree): Use new operand implementation.
+       (clear_and_done_ssa_iter): New.  Initialize a blank operand iterator.
+       (op_iter_init_use, op_iter_init_def, op_iter_init_tree): Add iterator 
+       type check.
+       (op_iter_next_mustdef, op_iter_next_maydef, 
+       op_iter_next_must_and_may_def): Delete. Replace with...
+       (op_iter_next_maymustdef): New.  Combine must and may next operations.
+       (op_iter_init_maydef, op_iter_init_mustdef, 
+       op_iter_init_must_and_may_def): Use new interface.
+       (single_ssa_tree_operand ): New.  Process single operands only as trees.
+       (single_ssa_use_operand): New.  Process single operands only as uses.
+       (single_ssa_def_operand): New.  Process single operands only as defs.
+       (zero_ssa_operands): New.  Return TRUE if there are zero operands of the
+       specified types.
+       (num_ssa_operands): New.  Count the number of specified operands.
+       (compare_ssa_operands_equal): New.  Compare two statements' operands.
+       (single_phi_def): New.  Return true if PHI has one def of the specified
+       operand type.
+       (op_iter_init_phiuse): New.  Initialize the iterator for PHI arguments.
+       (op_iter_init_phidef): New.  Initialize the iterator for the PHI def.
+       * tree-flow.h (struct immediate_use_iterator_d): Use ssa_use_operand_t.
+       (struct stmt_ann_d): Operands field no longer require GTY().
+       (vn_compute, vn_lookup_or_add, vn_add, vn_lookup): Change prototype.
+       * tree-into-ssa.c (mark_def_sites): Use SSA_OP_VMUSTKILL.
+       * tree-outof-ssa.c (check_replaceable, find_replaceable_in_bb, 
+       dump_replaceable_exprs, rewrite_trees): Use generic interface.
+       * tree-phinodes.c (make_phi_node, release_phi_node, resize_phi_node): 
+       Use use_operand_p instead of ssa_imm_use_t *.
+       * tree-pretty-print.c (dump_vops): check if operands are active before
+       dumping virtual operands.
+       * tree-sra.c (sra_walk_function): Use ZERO_SSA_OPERANDS.
+       * tree-ssa-ccp.c (likely_value): Use ZERO_SSA_OPERANDS.
+       (ccp_fold): Use new interface.
+       (ccp_visit_stmt): Remove unused variables and code.
+       (convert_to_gimple_builtin): Insert statements before calling 
+       mark_new_vars_to_rename.
+       * tree-ssa-copy.c (stmt_may_generate_copy): Use ZERO_SSA_OPERANDS.
+       (copy_prop_visit_cond_stmt): Use generic interface.
+       * tree-ssa-dom.c (struct expr_hash_elt): Use stmt pointer, not the 
+       annotation in table.
+       (thread_across_edge): Use generic interface.
+       (initialize_hash_element): Initialzie with stmt, not annotation.
+       (eliminate_redundant_computations): Use generic interface.
+       (record_equivalences_from_stmt): Pass stmt, not annotation.
+       (avail_expr_hash, real_avail_expr_hash, avail_expr_eq): Use generic
+       interface.
+       * tree-ssa-dse.c (dse_optimize_stmt): Use ZERO_SSA_OPERANDS.
+       * tree-ssa-loop-ivopts.c (find_invariants_stmt, 
+       find_interesting_uses_stmt, protect_loop_closed_ssa_form_use): Use 
+       generic operand interface.
+       * tree-ssa-loop-niter.c (chain_of_csts_start, get_val_for): Use generic
+       interface.
+       * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): Use Generic operand
+       Interface.
+       * tree-ssa-operands.c (struct opbuild_list_d): New.  Operand build type.
+       (build_defs, build_uses, build_v_may_defs, build_vuses, 
+       build_v_must_defs): Change type to struct opbuild_list_d.
+       (ops_active): New.  Operands active boolean.
+       (operand_memory, operand_memory_index): New.  Operand memory managers.
+       (allocate_def_optype, allocate_use_optype, allocate_v_may_def_optype,
+       allocate_vuse_optype, allocate_v_must_def_optype): Delete.
+       (free_uses, free_defs, free_vuses, free_v_may_defs, free_v_must_defs): 
+       Change from functions to static variable list heads.
+       (opbuild_initialize_virtual): New.  Initialize a virtual build list.
+       (opbuild_initialize_real): New.  Initialize a virtual build list.
+       (opbuild_free): New.  Free a build list.
+       (opbuild_num_elems): New.  Number of items in a list.
+       (opbuild_append_real): New.  Add a real (tree *) operand.
+       (opbuild_append_virtual): New.  Add and sort a virtual (tree) operand.
+       (opbuild_first): New.  Return first element index in a list.
+       (opbuild_next): New.  Return next element in a list.
+       (opbuild_elem_real): New.  Return real element.
+       (opbuild_elem_virtual): New.  Return virtual element.
+       (opbuild_elem_uid): New.  Return UID of virtual element.
+       (opbuild_clear): New.  Reset an operand list.
+       (opbuild_remove_elem): New.  Remove an element form a list.
+       (ssa_operands_active): New.  Return true if operand cache is active.
+       (init_ssa_operands, fini_ssa_operands): Initialize new implementation.
+       (ssa_operand_alloc): New.  Allocate memory from an operand chunk.
+       (correct_use_link): Use use_operand_p.
+       (finalize_ssa_uses, finalize_ssa_v_may_defs, finalize_ssa_defs,
+       finalize_ssa_vuses, finalize_ssa_v_must_defs): New implmentation. 
+       (cleanup_v_may_defs): Use new implmentation.
+       (finalize_ssa_stmt_operands, start_ssa_stmt_operands): New 
+       implementation.
+       (append_def, append_use, append_v_may_def, append_vuse, 
+       append_v_must_def): Call opbuild_append routine instead of using varray.
+       (build_ssa_operands): Simplify to simply use stmt, don't maintain a 
+       global parse_old_ops variable.
+       (free_ssa_operands): New implementation.
+       (update_stmt_operands): Move.  Change argument to build_ssa_operands.
+       (copy_virtual_operands): Move. New generic implementation.
+       (create_ssa_artficial_load_stmt): Move. New implementation.
+       (swap_tree_operands): Update for new implementation.
+       (get_expr_operands): Add stmt parameter to calls to swap_tree_operands.
+       (add_call_clobber_ops, add_call_read_ops): Initialize opbuild list
+       rather than a varray.
+       (verify_imm_links): Use use_operand_p.
+       (dump_immediate_uses_for): If the immediate use variable is a virtual 
+       variable, show the virtual ops in the stmt.
+       * tree-ssa-operands.h (def_operand_p): No longer a structure.
+       (NULL_DEF_OPERAND_P): Now a #define.
+       (def_optype_d, use_optype_d, v_def_use_operand_type, v_may_def_optype_d,
+       vuse_operand_type, vuse_optype_d, v_must_def_optype_d): Delete.
+       (def_optype_d, use_optype_d, maydef_optype_d, vuse_optype_d,
+       mustdef_optype_d): New.  Use Linked list representation.
+       (SSA_OPERAND_MEMORY_SIZE): New.  Size of operand memory chunk.
+       (struct ssa_operand_memory_d): New.  Allocated Chunk node.
+       (struct stmt_operands_d): Change to new pointers that are not GTY.
+       (STMT_USE_OPS, NUM_USES, SET_USE_OP, STMT_DEF_OPS, NUM_DEFS, SET_DEF_OP,
+       STMT_V_MAY_DEF_OPS, NUM_V_MAY_DEFS, SET_V_MAY_DEF_RESULT,
+       SET_V_MAY_DEF_OP, STMT_VUSE_OPS, NUM_VUSES, SET_VUSE_OP,
+       STMT_V_MUST_DEF_OPS, NUM_V_MUST_DEFS, SET_V_MUST_DEF_RESULT, 
+       SET_V_MUST_DEF_KILL): Delete.
+       (V_MAY_DEF_OPS, V_MAY_DEF_RESULT_PTR, V_MAY_DEF_RESULT, 
+       V_MAY_DEF_OP_PTR, V_MAY_DEF_OP): Rename to MAYDEF_*.
+       (V_MUST_DEF_OPS, V_MUST_DEF_RESULT_PTR, V_MUST_DEF_RESULT, 
+       V_MUST_DEF_KILL_PTR, V_MUST_DEF_KILL): Rename to MUSTDEF_*.
+       (enum ssa_op_iter_type): Operand iterator typechecking values.
+       (struct ssa_operand_iterator_d): Use linked lists of operands.
+       (SSA_OP_VMUSTDEFKILL): Rename to SSA_OP_VMUSTKILL.
+       (FOR_EACH_SSA_MAYDEF_OPERAND, FOR_EACH_SSA_MUSTDEF_OPERAND,
+       FOR_EACH_SSA_MUST_AND_MAY_DEF_OPERAND): Use op_iter_next_maymustdef.
+       (FOR_EACH_PHI_ARG): New.  Iterate over PHI arguments.
+       (FOR_EACH_PHI_OR_STMT_USE): New.  Iterate over PHI or stmt uses.
+       (FOR_EACH_PHI_OR_STMT_DEF): New.  Iterate over PHI or stmt defs.
+       (SINGLE_SSA_TREE_OPERAND, SINGLE_SSA_USE_OPERAND, 
+       SINGLE_SSA_DEF_OPERAND, ZERO_SSA_OPERANDS, NUM_SSA_OPERANDS): New.
+       * tree-ssa-opfinalize.h: New.  Function templates for expansion.
+       (FINALIZE_ALLOC): Expands into alloc_def, alloc_use, alloc_maydef,
+       alloc_vuse, and alloc_mustdef.
+       (FINALIZE_FUNC): Expands into finalize_ssa_def_ops, 
+       finalize_ssa_use_ops, finalize_ssa_v_may_def_ops, finalize_ssa_vuse_ops,
+       and finalize_ssa_v_must_def_ops.
+       * tree-ssa-pre.c (add_to_sets): Pass tree to vn_add.
+       (create_value_expr_from): Use stmt not vuse_optype as a parameter. Pass
+       stmt around.
+       (compute_avail): Use generic iterator interface.
+       * tree-ssa-propagate.c (first_vdef): Use generic operand interface.
+       (stmt_makes_single_load, stmt_makes_single_store): Use 
+       ZERO_SSA_OPERANDS.
+       * tree-ssa-sink.c (is_hidden_global_store): Use ZERO_SSA_OPERANDS.
+       (statement_sink_location): Use generic interface.
+       * tree-ssa.c (verify_ssa):  Use %p in fprintf.  Use generic interface.
+       (delete_tree_ssa): Don't call release_defs.  Call release_ssa_name and
+       reset the immediate use link nodes.
+       (stmt_references_memory_p): Use ZERO_SSA_OPERANDS.
+       * tree-ssanames.c (make_ssa_name): Use use_operand_p.
+       * tree-tailcall.c (find_tail_calls): Use ZERO_SSA_OPERANDS.
+       (eliminate_tail_call): Use generic operand interface.
+       * tree-vect-analyze.c (vect_analyze_data_refs): Use ZERO_SSA_OPERANDS.
+       (vect_mark_relevant, vect_mark_stmts_to_be_vectorized): Use generic 
+       interface.
+       * tree-vect-transform.c (update_vuses_to_preheader): Use generic 
+       interface.
+       * tree-vectorizer.c (rename_variables_in_bb): Use generic interface.
+       * tree-vn.c (struct val_expr_pair_d): Cache statment pointer instead of
+       vuse_optype.
+       (vn_compute, val_expr_pair_hash, vn_add, vn_lookup, vn_lookup_or_add): 
+       Use statement pointer instead of vuse_optype.  Use generic interface.
+       * tree-vrp.c (maybe_add_assert_expr): Use generic interface.
+       (stmt_interesting_for_vrp, vrp_visit_stmt): Use ZERO_SSA_OPERANDS.
+       * tree.h (struct ssa_imm_use_d): Renamed to ssa_use_operand_d.
+       (tree_ssa_name, phi_arg_d): Use ssa_use_operand_d.
+       * doc/tree-ssa.texi: Update documentation for operand interface.
+
+2005-05-03  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * config/darwin.c (machopic_define_symbol): Use gcc_assert or
+       gcc_unreachable as appropriate.
+       (machopic_function_base_name, machopic_indirect_data_reference,
+       machopic_legitimize_pic_address, darwin_non_lazy_pcrel): Likewise.
+       * config/host-darwin.c (darwin_gt_pch_use_address): Likewise
+       * config/rs6000/altivec.md (*mov<mode>_internal,
+       build_vector_mask_for_load): Likewise.
+       * config/rs6000/darwin.md (movdf_low_si, movdf_low_di,
+       *call_nonlocal_darwin64, *call_value_nonlocal_darwin64,
+       *sibcall_symbolic_64, *sibcall_value_symbolic_64): Likewise.
+       * config/rs6000/predicates.md (easy_fp_constant,
+       logical_operand): Likewise.
+       * config/rs6000/rs6000.c (spe_expand_predicate_builtin,
+       compute_save_world_info, rs6000_emit_prologue,
+       rs6000_output_mi_thunk): Reword comments to avoid 'abort'.
+       * config/rs6000/host-darwin.c (segv_handler): Use fancy_abort
+       directly.
+
+2005-05-03  Uros Bizjak  <uros@kss-loka.si>
+
+       PR middle-end/21282
+       * convert.c (convert_to_integer): Convert ceil and floor in
+       c99 mode only.
+
+2005-04-29  Geoffrey Keating  <geoffk@apple.com>
+
+       PR target/20813
+       * config/rs6000/rs6000.md (floatsidf2_internal): Merge to create
+       define_insn_and_split.  Split only when memory operand is
+       offsettable.  Use adjust_address rather than plus_constant.
+       (floatunssidf2_internal): Likewise.
+       (fix_truncdfsi2_internal): Split only when memory operand is
+       offsettable.  Use adjust_address rather than plus_constant.
+       (fix_trunctfsi2_internal): Likewise.
+       (floatsidf2_internal): Likewise.
+
+2005-05-02  Diego Novillo  <dnovillo@redhat.com>
+
+       * tree-vrp.c (set_value_range_to_nonnull): Declare inline.
+       (set_value_range_to_null): Likewise.
+       (set_value_range_to_varying): New function.  Use it in all
+       call sites that used to call set_value_range (vr, VR_VARYING, ...).
+       (extract_range_from_assert): If the integral type has a
+       super-type, and LIMIT is not within MIN and MAX values of that
+       type, set the resulting range to VR_VARYING.
+
+2005-05-02  Hans-Peter Nilsson  <hp@bitrange.com>
+
+       * config/mmix/mmix.opt: New file.
+       * config/mmix/mmix.h: Move options-related comments to mmix.opt.
+       (mmix_cc1_ignored_option): Don't declare.
+       (TARGET_OPTIONS, TARGET_MASK_LIBFUNCS, TARGET_MASK_ABI_GNU)
+       (TARGET_MASK_FCMP_EPSILON, TARGET_MASK_ZERO_EXTEND)
+       (TARGET_MASK_KNUTH_DIVISION, TARGET_MASK_TOPLEVEL_SYMBOLS)
+       (TARGET_MASK_BRANCH_PREDICT, TARGET_MASK_USE_RETURN_INSN)
+       (TARGET_MASK_BASE_ADDRESSES, TARGET_LIBFUNC, TARGET_ABI_GNU,
+       (TARGET_FCMP_EPSILON, TARGET_ZERO_EXTEND, TARGET_KNUTH_DIVISION)
+       (TARGET_TOPLEVEL_SYMBOLS, TARGET_BRANCH_PREDICT)
+       (TARGET_BASE_ADDRESSES, TARGET_USE_RETURN_INSN, TARGET_SWITCHES):
+       Don't define.
+       (TARGET_DEFAULT): Change TARGET_MASK_... to MASK_...
+       * config/mmix/mmix.c (mmix_cc1_ignored_option): Remove.
+       (TARGET_DEFAULT_TARGET_FLAGS): Override default.
+
+2005-05-02  Joseph S. Myers  <joseph@codesourcery.com>
+
+       PR c/15698
+       * c-tree.h (C_DECL_BUILTIN_PROTOTYPE): New.
+       * c-decl.c (current_function_prototype_built_in,
+       current_function_prototype_arg_types): New.
+       (merge_decls): Keep source location of prototype followed by
+       nonprototype declaration.  Update C_DECL_BUILTIN_PROTOTYPE.
+       (builtin_function): Set C_DECL_BUILTIN_PROTOTYPE.
+       (start_function): Always set current_function_prototype_locus,
+       current_function_prototype_built_in and
+       current_function_prototype_arg_types.  Check for external
+       prototype whether or not visible for external function and set
+       current_function_prototype_arg_types accordingly.
+       (store_parm_decls_oldstyle): Use
+       current_function_prototype_arg_types for checking old-style
+       definition against prototype.  Give warnings only if
+       current_function_prototype_built_in).
+
+2005-05-02  Daniel Jacobowitz  <dan@codesourcery.com>
+
+       * ggc.h (ggc_alloc_zone_pass_stat): New macro.
+       (ggc_alloc_zone_stat): Don't define.
+       * ggc-zone.c (ggc_alloc_typed_stat, ggc_alloc_stat): Use
+       ggc_alloc_zone_pass_stat.
+       * rtl.c (rtx_alloc_stat, shallow_copy_rtx_stat): Likewise.
+       * tree.c (make_node_stat, copy_node_stat, make_tree_binfo_stat)
+       (make_tree_vec_stat, tree_cons_stat, build1_stat): Likewise.
+
+2005-05-02  Daniel Jacobowitz  <dan@codesourcery.com>
+
+       * calls.c (expand_call): Handle current_function_pretend_args_size
+       when checking for sibcalls.
+
+2005-05-02  Kazu Hirata  <kazu@cs.umass.edu>
+
+       PR tree-optimization/21294
+       * tree-vrp.c (vrp_expr_computes_nonzero): New.
+       (extract_range_from_expr): Call vrp_expr_computes_nonzero.
+
+2005-05-02  Janis Johnson  <janis187@us.ibm.com>
+
+       PR 19985
+       * gcov-io.h: Declare gcov external functions hidden.
+
+2005-05-02  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * tree-ssa-uncprop.c (equiv_hash_elt, remove_equivalence,
+       record_equiv, tree_ssa_uncprop, uncprop_into_successor_phis):
+       Use VEC instead of VARRAY.
+       (equiv_free): New.
+
+       * tree-ssa-sink.c (nearest_common_dominator_of_uses): Factor
+       out common code.
+
+2005-05-02  Paolo Bonzini  <bonzini@gnu.org>
+
+        * c-common.c (resolve_overloaded_builtin): Forward to target
+        hook for BUILT_IN_MD built-ins.
+        * c-typeck.c (finish_call_expr): Call resolve_overloaded_builtin
+        for all types of built-in.
+        * target-def.h (TARGET_RESOLVE_OVERLOADED_BUILTIN): New.  Use it
+        in the definition of the target hooks struct.
+        * target.h (struct gcc_target): Add resolve_overloaded_builtin.
+        * config/rs6000/altivec.h: Rewritten.
+        * config/rs6000/rs6000-c.c (struct altivec_builtin_types,
+        altivec_resolve_overloaded_builtin, altivec_build_resolved_builtin,
+        rs6000_builtin_type, rs6000_builtin_type_compatible,
+        altivec_overloaded_builtins, rs6000_builtin_type,
+        rs6000_builtin_type_compatible): New.
+        * config/rs6000/rs6000.c (rs6000_builtin_types, rs6000_builtin_decls):
+        New.
+        (def_builtin): Turn into a function.  Check for duplicates and store
+        the builtin into rs6000_builtin_decls.
+        (bdesc_3arg, bdesc_dst, bdesc_altivec_preds, bdesc_2arg,
+        bdesc_1arg): Add overloaded builtins.
+        (altivec_expand_builtin): Check for unresolved overloaded builtins,
+        do not support ALTIVEC_COMPILETIME_ERROR.
+        (rs6000_init_builtins): Add opaque 128-bit vector, and internal
+        nodes to represent front-end types.
+        (altivec_init_builtins, rs6000_common_init_builtins): Create builtins
+        with opaque arguments and/or return values.
+        * config/rs6000/rs6000.h (enum rs6000_builtins): Remove
+        ALTIVEC_COMPILETIME_ERROR and add Altivec overloaded builtins.
+        (rs6000_builtin_type_index): New.
+        (is_ev64_opaque_type): Rename to...
+        (rs6000_is_opaque_type): ... this.
+        (rs6000_cpu_cpp_builtins): Install the resolve_overloaded_builtin
+        target hook.
+
+2005-05-02  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * function.c (reorder_blocks, reorder_blocks_1): Use VEC
+       instead of VARRAY.
+
+2005-05-02  Nathan Sidwell  <nathan@codesourcery.com>
+           Bernd Schmidt  <bernd.schmidt@analog.com>
+
+       * config/bfin/bfin.c (emit_link_insn, effective_address_32bit_p,
+       print_address_operand, print_operand, legitimize_pic_address,
+       asm_conditional_branch, bfin_gen_compare, output_push_multiple,
+       output_pop_multiple): Use gcc_assert or gcc_unreachable as
+       appropriate.
+       * config/bfin/bfin.md (movsf splitter, beq, bne): Likewise.
+
+2005-05-02  Dorit Naishlos  <dorit@il.ibm.com>
+
+       * doc/passes.texi: Document vectorization pass.
+
+2005-05-02  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * tree-scalar-evolution.c (get_exit_conditions_rec,
+       select_loops_exit_conditions,
+       number_of_iterations_for_all_loops,
+       analyze_scalar_evolution_for_all_loop_phi_nodes,
+       scev_analysis): Use VEC instead of VARRAY.
+
+2005-05-02  Michael Matz  <matz@suse.de>
+
+       PR c++/19542
+       * c-common.c (c_common_nodes_and_builtins): Create global null_node.
+       (warn_strict_null_sentinel): Define.
+       (check_function_sentinel): Check for null_node as valid sentinel too.
+       * c-common.h (c_tree_index): Added CTI_NULL.
+       (null_node) Define global_tree[CTI_NULL].
+       (warn_strict_null_sentinel): Declare.
+       * c-opts.c: (c_common_handle_option): Handle -Wstrict-null-sentinel.
+       * c.opt: (Wstrict-null-sentinel): New C++ option.
+       * doc/invoke.texi (C++ Options): Document -Wstrict-null-sentinel.
+
+2005-05-01  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * gimplify.c (gimplify_compound_lval): Use VEC instead of
+       VARRAY.
+
+       * global.c (calculate_reg_pav): Use VEC instead of VARRAY.
+
+       * dwarf2out.c (decl_scope_table, push_decl_scope,
+       pop_decl_scope, scope_die_for, dwarf2out_init): Use VEC
+       instead of VARRAY.
+
+2005-05-01  Mark Mitchell  <mark@codesourcery.com>
+
+       PR C++/14391
+       * c-cppbuiltin.c (c_cpp_builtins): Do not define __GXX_WEAK__ to 1
+       if !flag_weak.
+       * doc/cpp.texi (__DEPRECATED): Document.
+       (__EXCEPTIONS): Likewise.
+       (__GXX_WEAK__): Likewise.
+
+       * function.c (INVOKE__main): Do not define.
+       (expand_main_function): Check HAS_INIT_SECTION when determining
+       whether or not to call __main.
+
+2005-05-01  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * tree-ssa-loop-ivopts.c: Fix a comment typo.
+
+2005-01-05  Paul Brook  <paul@codesourcery.com>
+
+       * config/arm/arm.h (ARM_EMIT_TRAMPOLINE_CACHE_CLEAR): Define.
+       (INITIALIZE_TRAMPOLINE): Use it.
+       * config/arm/linux-gas.h (INITIALIZE_TRAMPOLINE): Remove.
+       * config/arm/netbsd.h (INITIALIZE_TRAMPOLINE): Remove.
+       * config/arm/netbsd-elf.h (INITIALIZE_TRAMPOLINE): Remove.
+
+2005-05-01  Gerald Pfeifer  <gerald@pfeifer.com>
+
+       * doc/install.texi (Specific): Omit dots in the @anchors names
+       for i?86-*-sco3.2v5*, i?86-*-solaris2.10, and sparc-sun-solaris2.7.
+       Omit underscores for x86_64-*-* and the "all ELF targets" entry.
+
+2005-05-01  Zdenek Dvorak  <dvorakz@suse.cz>
+
+       PR tree-optimization/18316
+       PR tree-optimization/19126
+       * tree.c (build_int_cst_type): Avoid shift by size of type.
+       * tree-scalar-evolution.c (simple_iv): Add allow_nonconstant_step
+       argument.
+       * tree-scalar-evolution.h (simple_iv): Declaration changed.
+       * tree-ssa-loop-ivopts.c (struct iv_cand): Add depends_on
+       field.
+       (dump_cand): Dump depends_on information.
+       (determine_biv_step): Add argument to simple_iv call.
+       (contains_abnormal_ssa_name_p): Handle case expr == NULL.
+       (find_bivs, find_givs_in_stmt_scev): Do not require step to be a
+       constant.
+       (add_candidate_1): Record depends_on for candidates.
+       (tree_int_cst_sign_bit, constant_multiple_of): New functions.
+       (get_computation_at, get_computation_cost_at, may_eliminate_iv):
+       Handle ivs with nonconstant step.
+       (iv_ca_set_remove_invariants, iv_ca_set_add_invariants): New functions.
+       (iv_ca_set_no_cp, iv_ca_set_cp): Handle cand->depends_on.
+       (create_new_iv): Unshare the step before passing it to create_iv.
+       (free_loop_data): Free cand->depends_on.
+       (build_addr_strip_iref): New function.
+       (find_interesting_uses_address): Use build_addr_strip_iref.
+       (strip_offset_1): Split the recursive part from strip_offset.
+       Strip constant offset component_refs and array_refs.
+       (strip_offset): Split the recursive part to strip_offset_1.
+       (add_address_candidates): Removed.
+       (add_derived_ivs_candidates): Do not use add_address_candidates.
+       (add_iv_value_candidates): Add candidates with stripped constant
+       offset.  Consider all candidates with initial value 0 important.
+       (struct affine_tree_combination): New.
+       (aff_combination_const, aff_combination_elt, aff_combination_scale,
+       aff_combination_add_elt, aff_combination_add,
+       tree_to_aff_combination, add_elt_to_tree, aff_combination_to_tree,
+       fold_affine_sum): New functions.
+       (get_computation_at): Use fold_affine_sum.
+       * tree-ssa-loop-manip.c (create_iv): Handle ivs with nonconstant step.
+       * tree-ssa-loop-niter.c (number_of_iterations_exit): Add argument
+       to simple_iv call.
+
+2005-04-30  Michael Matz  <matz@suse.de>
+
+       * config/i386/i386.md (movmemsi): Also active when
+       TARGET_INLINE_ALL_STRINGOPS.
+
+2005-04-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
+
+       PR bootstrap/20633
+       * config/freebsd-spec.h (FBSD_CPP_SPEC): Add %(cpp_arch).
+
+2005-04-30  Paul Brook  <paul@codesourcery.com>
+
+       * config/arm/bpabi.h (RENAME_LIBRARY_SET): Always use .thumb_set in
+       thumb mode.
+       * config/arm/ieee754-df.S: Use __INTERWORKING_STUBS__.
+       * config/arm/ieee754-sf.S: Ditto.
+       * config/arm/lib1funcs.asm: Define and use __INTERWORKING_STUBS__.
+       (FUNC_ALIAS): Use .thumb_set for thumb routines.
+
+2005-04-30  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * tree-ssanames.c: Fix a comment typo.
+       * doc/options.texi: Fix a typo.
+
+2005-04-30  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * config/h8300/h8300.c (byte_reg): Use gcc_assert and
+       gcc_unreachable as appropriate.
+       (split_adds_subs, cond_string, print_operand,
+       h8300_initial_elimination_offset, h8300_classify_operand,
+       h8300_unary_length, h8300_short_immediate_length,
+       h8300_bitfield_length, h8300_binary_length,
+       h8300_insn_length_from_table, compute_mov_length, output_plussi,
+       compute_plussi_length, compute_plussi_cc, output_logical_op,
+       compute_logical_op_length, compute_logical_op_cc,
+       output_h8sx_shift, get_shift_alg, h8300_shift_needs_scratch_p,
+       output_a_shift, compute_a_shift_length, compute_a_shift_cc,
+       output_a_rotate, compute_a_rotate_length, fix_bit_operand,
+       h8300_regs_ok_for_stm): Likewise.
+       * config/h8300/h8300.md (*movsi_h8300, *movsf_h8300,
+       monitor_prologue): Likewise.
+
+2005-04-30  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * loop-invariant.c (invariants, create_new_invariant,
+       get_inv_cost, best_gain_for_invariant,
+       find_invariants_to_move, move_invariants,
+       init_inv_motion_data, free_inv_motion_data): Use VEC instead
+       of VARRAY.
+
+2005-04-29  Richard Henderson  <rth@redhat.com>
+
+       * function.c (instantiate_decls): Remove valid_only argument.
+       (instantiate_decls_1, instantiate_decl): Likewise.
+       (instantiate_virtual_regs_1): Delete.
+       (instantiate_virtual_regs_lossage): Delete.
+       (instantiate_virtual_regs_in_rtx): New.
+       (safe_insn_predicate): New.
+       (instantiate_virtual_regs_in_insn): New.
+       (instantiate_virtual_regs): Update to match all that.  Only run
+       instantiate_decls once.
+
+2005-04-29  Richard Henderson  <rth@redhat.com>
+           Daniel Jacobowitz  <dan@codesourcery.com>
+
+       * gengtype.c (write_func_for_structure): Split out ...
+       (output_type_enum): ... new function.  Fix thinko accessing
+       TYPE_PARAM_STRUCT data.
+
+2005-04-29  Tom Tromey  <tromey@redhat.com>
+
+       * tree.c (build_block): Removed unused 'tags' argument.
+       * tree.h (build_block): Removed argument.
+
+2005-04-29  Michael Matz  <matz@suse.de>
+
+       PR rtl-optimization/21144
+       * postreload.c (reload_cse_move2add): Check for VOIDmode.
+
+2005-04-29  Bob Wilson  <bob.wilson@acm.org>
+
+       * config/xtensa/xtensa.h (OPTIMIZATION_OPTIONS): Define to disable
+       flag_reorder_blocks.
+
+2005-04-28  Kazu Hirata  <kazu@cs.umass.edu>
+
+       PR tree-optimization/21030
+       * tree-vrp.c (adjust_range_with_scev): Do not create invalid
+       ranges where VR->MAX is smaller than VR->MIN.
+
+2005-04-29  Devang Patel  <dpatel@apple.com>
+
+       PR tree-optimization/21272
+       PR tree-optimization/21266
+       * tree-if-conv.c (find_phi_replacement_condition): Fix think-o.
+       
+2005-04-29  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * tree-flow-inline.h: Fix a comment typo.
+       * doc/tree-ssa.texi: Fix a typo.
+
+       * tree-flow-inline.h, tree-ssa-operands.c: Fix comment typos.
+
+2005-04-29  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * config/fr30/fr30.c (fr30_expand_prologue): Use gcc_assert and
+       gcc_unreachable as appropriate.
+       (fr30_expand_epilogue, fr30_setup_incoming_varargs,
+       fr30_print_operand, fr30_move_double): Likewise.
+       * config/fr30/fr30.md (*movsi_internal, *movsf_internal): Likewise.
+
+2005-04-29  Mark Mitchell  <mark@codesourcery.com>
+
+       * config/arm/arm.h (ARM_EABI_CTORS_SECTION_OP): Do not define if a
+       definition has already been provided.
+       (ARM_EABI_DTORS_SECTION_OP): Likewise.
+       * config/arm/symbian.h (ARM_EABI_CTORS_SECTION_OP): Define.
+       (ARM_EABI_DTORS_SECTION_OP): Likewise.
+
+2005-04-29  Jim Tison  <jtison@us.ibm.com>
+
+       * config/s390/s390.md ("prologue_tpf", "epilogue_tpf"): Alter
+       trace hooks calls to improve performance.
+
+2005-04-29  Julian Brown  <julian@codesourcery.com>
+           Mark Mitchell  <mark@codesourcery.com>
+           Paul Brook  <paul@codesourcery.com>
+
+       * crtstuff.c: Handle targets that use .init_array.
+       * function.c (HAS_INIT_SECTION): Do not define. Instead, make sure
+       that INVOKE__main is set correctly.
+       (expand_main_function): Test INVOKE__main.
+       * libgcc2.c: Do not define __main when using .init_array.
+       * config/arm/arm.c (arm_elf_asm_constructor): New function.
+       * config/arm/arm.h (CTORS_SECTION_ASM_OP): Define, with specialized
+       libgcc version.
+       (DTORS_SECTION_ASM_OP): Likewise.
+       (CTOR_LIST_BEGIN): Define specially when in libgcc.
+       (CTOR_LIST_END): Likewise.
+       (DTOR_LIST_BEGIN): Likewise.
+       (DTOR_LIST_END): Likewise.
+       * config/arm/bpapi.h (INIT_SECTION_ASM_OP): Do not define it.
+       (FINI_SECTION_ASM_OP): Likewise.
+       (INIT_ARRAY_SECTION_ASM_OP): Define.
+       (FINI_ARRAY_SECTION_ASM_OP): Likewise.
+       * config/arm/elf.h (TARGET_ASM_CONSTRUCTOR): Define.
+       (SUPPORTS_INIT_PRIORITY): Evaluate to false for EABI based targets.
+       * doc/tm.texi (INIT_ARRAY_SECTION_ASM_OP): Document.
+       (FINI_ARRAY_SECTION_ASM_OP): Likewise.  
+
+2005-04-29  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * config/m68k/m68k.c (m68k_initial_elimination_offset): Use
+       gcc_assert and gcc_unreachable as appropriate.
+       (output_dbcc_and_branch, output_scc_di, legitimize_pic_address,
+       const_int_cost, output_move_const_into_data_reg,
+       output_move_qimode, output_move_double, find_addr_reg,
+       print_operand, print_operand_address): Likewise.
+       * config/m68k/m68k.md (adddi3, subdi3, negsf2, negdf2, abssf2,
+       absdf2, sordered, sunordered, suneq, sunge, sungt, sunle, sunlt,
+       sltgt, bordered, bunordered, buneq, bunge, bungt, bunle, bunlt,
+       bltgt, *bordered_rev, *bunordered_rev, *buneq_rev, *bunge_rev,
+       *bunle_rev, *bunlt_rev, *bltgt_rev, negxf2, absxf2,
+       conditional_trap): Likewise.
+       * config/m68k/m68kelf.h (ASM_OUTPUT_ALIGN): Remove unreachable code.
+
+2005-04-29  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * config/xtensa/xtensa.c (gen_int_relational): Use gcc_assert and
+       gcc_unreachable as appropriate.
+       (gen_conditional_move, xtensa_split_operand_pair,
+       xtensa_split_operand_pair, xtensa_copy_incoming_a7,
+       xtensa_copy_incoming_a7, xtensa_copy_incoming_a7,
+       xtensa_copy_incoming_a7, xtensa_output_literal,
+       xtensa_output_literal, xtensa_output_literal): Likewise.
+       * config/xtensa/xtensa.h (INITIAL_ELIMINATION_OFFSET): Likewise.
+       * config/xtensa/xtensa.md (*btrue, *bfalse, *ubtrue, *ubfalse,
+       *bittrue, *bitfalse, *masktrue, *maskfalse, movsicc_internal0,
+       movsicc_internal1, movsfcc_internal0,
+       movsfcc_internal1): Likewise.
+
+2005-04-28  James E Wilson  <wilson@specifixinc.com>
+
+       * config/i386/i386.h (HI_REGISTER_NAMES): Fix typos in comment.
+       (ADDITIONAL_REGISTER_NAMES): Delete obsolete mmx register entries.
+
+2005-04-28  DJ Delorie  <dj@redhat.com>
+
+       * opt-functions.awk (var_set): Emit proper initializer for
+       non-target bitfields.
+
+2005-04-28  Devang Patel  <dpatel@apple.com>
+
+       * dbxout.c (have_used_extensions): Remove.
+       (dbxout_type_fileds, dbxout_type, dbxout_symbol): Remove use of
+       have_used_extensions.
+       
+2005-04-28  James E Wilson  <wilson@specifixinc.com>
+
+       * doc/install.texi: Update -enable-languages info.  Correct path to
+       html docs.
+
+2005-04-28  DJ Delorie  <dj@redhat.com>
+
+       * optc-gen.awk (END): Make sure no variable is defined more
+       than once.
+       * opth-gen.awk (END): Allocate bits on a per-variable basis.
+       Allow for bitfield variables other than target_flags.
+       * doc/options.text (Mask): Document that you may specify a
+       variable other than target_flags.
+
+2005-04-28  Martin Koegler <mkoegler@auto.tuwien.ac.at>
+
+       PR rtl-optimization/18877
+       * reload.c (decompose) <case REG, case SUBREG>: Handle pseudo reg
+       number in val.start.
+
+2005-04-28  David Edelsohn  <edelsohn@gnu.org>
+
+       PR target/20813
+       * config/rs6000/aix43.h (SUBSUBTARGET_SWITCHES, aix64): Add
+       MASK_PPC_GFXOPT.
+       * config/rs6000/aix51.h (SUBSUBTARGET_SWITCHES, aix64): Same.
+       * config/rs6000/aix52.h (SUBSUBTARGET_SWITCHES, aix64): Same.
+       * config/rs6000/sysv4.h (SUBTARGET_SWITCHES, 64): Same.
+
+2005-04-28  Richard Earnshaw  <richard.earnshaw@arm.com>
+
+       * arm.c (legitimize_pic_address): Fix sense of assertion test for
+       creating pseudos when the base offset is too large.
+
+2005-04-28  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * global.c (earlyclobber_regclass): Change the type to
+       VEC(int,heap).
+       (check_earlyclobber): Update uses of earlyclobber_regclass.
+       (mark_reg_use_for_earlyclobber): Likewise.
+       (calculate_local_reg_bb_info): Allocate and free
+       earlyclobber_regclass using the VEC API.
+
+2005-04-28  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * tree-ssa-alias.c (push_fields_onto_fieldstack): Remove bogus
+       assert.
+
+2005-04-28  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * modulo-sched.c, tree-stdarg.c: Use targetm.foo instead of
+       (*targetm.foo).
+
+       * config.gcc: Obsolete c4x-* and tic4x-*.
+
+       * tree.h (edge_def): Remove.
+
+       * bt-load.c, cfgexpand.c, dwarf2out.c, emit-rtl.c, expr.c,
+       function.c, global.c, lcm.c, loop-invariant.c, optabs.c,
+       reorg.c, resource.c, tree-ssa-loop-ivopts.c, value-prof.c: Use
+       JUMP_P, LABEL_P, REG_P, MEM_P, NONJUMP_INSN_P, and INSN_P
+       where appropriate.
+
+       * attribs.c, c-pragma.c, caller-save.c, cfghooks.h,
+       coverage.c, cselib.h, domwalk.c, domwalk.h, errors.c,
+       errors.h, gcov-dump.c, gcov-io.c, gcov-io.h, gen-protos.c,
+       genattrtab.h, genextract.c, gthr-win32.h, insn-notes.def,
+       integrate.c, lambda-mat.c, lambda.h, libgcov.c, local-alloc.c,
+       machmode.def, mips-tfile.c, params.c, pretty-print.c,
+       print-rtl.c, protoize.c, regmove.c, sched-vis.c, tree-chrec.h,
+       tree-data-ref.h, vec.h, config/darwin-c.c, config/sol2-c.c,
+       config/sol2.c, config/arm/arm-cores.def, config/arm/cirrus.md,
+       config/arm/symbian.h, config/c4x/c4x.c, config/c4x/c4x.h,
+       config/i386/cygming.h, config/i386/djgpp.h,
+       config/i386/lynx.h, config/i386/netware.c,
+       config/i386/winnt.c, config/ia64/ia64-c.c,
+       config/iq2000/iq2000.c, config/m32r/little.h,
+       config/m68k/m68k-protos.h, config/m68k/m68k.h,
+       config/m68k/m68k.md, config/mcore/mcore.c,
+       config/mcore/mcore.h, config/mmix/mmix.c, config/mmix/mmix.md,
+       config/mn10300/mn10300-protos.h, config/mn10300/mn10300.c,
+       config/mn10300/mn10300.h, config/ns32k/netbsd.h,
+       config/ns32k/ns32k.c, config/ns32k/ns32k.h,
+       config/pa/pa-hpux11.h, config/pdp11/pdp11.c,
+       config/pdp11/pdp11.h, config/rs6000/darwin.h,
+       config/rs6000/default64.h, config/rs6000/rs6000-c.c,
+       config/s390/2064.md, config/s390/2084.md,
+       config/s390/s390-modes.def, config/s390/s390-protos.h,
+       config/s390/tpf.h, config/sh/sh.h, config/sh/symbian.c,
+       config/stormy16/stormy16.c, config/vax/vax-protos.h,
+       config/vax/vax.c, config/vax/vax.h,
+       config/xtensa/lib1funcs.asm, config/xtensa/xtensa.md: Update
+       copyright.
+
+2005-04-28  Joseph S. Myers  <joseph@codesourcery.com>
+
+       * c-typeck.c (build_compound_expr): Correct logic in last change.
+
+2005-04-27  James E. Wilson  <wilson@specifixinc.com>
+
+       * config/ia64/ia64.c (update_set_flags): Delete ppred and pcond
+       parameters.  Replace conditional move code with assert checking for
+       ar.lc.  Delete obsolete comments.
+       (set_src_needs_barrier): Delete cond parameter, and code using it.
+       (rtx_needs_barrier): Delete initialization of cond.  Fix typo in
+       assert checking for PR_REGS.  Fix calls to update_set_flags and
+       set_src_needs_barrier.
+       (group_barrier_needed): Renamed from group_barrier_needed_p.  Fix all
+       callers.  Rewrite explanatory comment before the function.
+       (safe_group_barrier_needed): Renamed from safe_group_barrier_needed_p.
+       Fix all callers.
+
+2005-04-27  Mike Stump  <mrs@apple.com>
+
+       * doc/cpp.texi: gcc now implements universal character names.
+
+2005-04-27  Joseph S. Myers  <joseph@codesourcery.com>
+
+       PR c/21159
+       * c-typeck.c (build_compound_expr): Don't warn for left-hand side
+       being a compound expression whose right-hand side is cast to void.
+
+2005-04-27  Caroline Tice  <ctice@apple.com>
+
+        * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
+       Remove targetm.have_named_sections test.
+       (fix_edges_for_rarely_executed_code): Likewise.
+       (insert_section_boundary_note): Likewise.
+       (reorder_basic_blocks): Check partitioning flag before calling
+       verify_hot_cold_block_grouping.
+       * dbxout.c (dbxout_function_end): Get hot/cold section labels from
+       the function struct rather than global variables.
+       * dwarf2out.c (COLD_TEXT_SECTION_LABEL): New macro.
+       (COLD_END_LABEL): Likewise
+       (cold_text_section_label): New static global variable.
+       (cold_end_label): Likewise.
+       (dwarf2out_switch_text_section): Get hot/cold section labels from
+       the function struct rather than global variables; test to make sure
+       cfun is defined.
+       (output_aranges): Use cold_text_section_label and cold_end_label;
+       check partitioning flag before putting out delta.
+       (output_ranges): Remove incorrect code attempting to use
+       hot/cold labels.
+       (output_line_info): Get cold section label from function struct; test
+       to make sure cfun is defined.
+       (add_location_or_const_value_attribute): Likewise.
+       (dwarf2out_var_location): Likewise.
+       (dwarf2out_init): Generate cold_text_section_label and cold_end_label;
+       write out cold_text_section_label if partition flag is set.
+       (dwarf2out_finish): Write out cold_end_label if partition flag is set;
+       * function.h (struct function): Add new fields to point to hot/cold
+       section labels: hot_section_label, cold_section_label,
+       hot_section_end_label and cold_section_end_label; also add new field
+       for cold text section name, unlikely_text_section_name.
+       * opts.c (decode_options): Turn off partitioning flag if
+       !targetm.have_named_sections.
+       * output.h (hot_section_label): Remove.
+       (hot_section_end_label): Remove.
+       (cold_section_end_label): Remove.
+       (unlikely_section_label): Remove.
+       (unlikely_text_section_name): Remove.
+       * passes.c (rest_of_handle_final):  Remove extra blank line.
+       * varasm.c (unlikely_section_label): Remove.
+       (hot_section_label): Remove.
+       (hot_section_end_label): Remove.
+       (cold_section_end_label): Remove.
+       (unlikely_text_section_name):  Remove.
+       (initialize_cold_section_name): Modify to call
+       targetm.strip_name_encoding; to store cold section name in current
+       function struct, if it exists; and to only use the decl_section_name
+       if flag_named_sections is true.
+       (unlikely_text_section): Modify to get section name out of current
+       function struct, if there is one; otherwise build it from
+       UNLIKELY_EXECUTED_TEXT_SECTION_NAME.
+       (in_unlikely_text_section): Likewise.
+       (named_section): Modify to get/put cold section name in current function
+       struct, if there is one.
+       (function_section):  Change 'bool unlikely' to 'int reloc'; check
+       targetm.have_named_sections before calling named_section.
+       (current_function_section): Likewise.
+       (assemble_start_function): Modify to get/put unlikely_text_section_name
+       in current function struct; modify to get hot/cold section labels
+       from function struct; initialize labels using
+       ASM_GENERATE_INTERNAL_LABEL;
+       test partitioning flag before writing out hot section label.
+       (assemble_end_function): Test partitioning flag before writing out
+       hot/cold section labels.
+       (default_section_type_flags_1):  Get cold text section name from
+       function struct if there is one; Set flags correctly for
+       cold text section if there is not a current function struct.
+       
+2005-04-27  Richard Guenther  <rguenth@gcc.gnu.org>
+
+       * tree-ssa-propagate.c (set_rhs): Revert last change.
+
+2005-04-27  Steve Ellcey  <sje@cup.hp.com>
+
+       * explow.c (convert_memory_address): Add gcc_assert.
+
+2005-04-27  Mark Mitchell  <mark@codesourcery.com>
+
+       * configure.ac: Check for ld --sysroot support.
+       * gcc.c: Document %R specifier for specs.
+       (SYSROOT_SPEC): New macro.
+       (sysroot_spec): New variable.
+       (static_specs): Add sysroot_spec.
+       (main): Pass the sysroot spec to the linker if appropriate.
+       * configure: Regenerated.
+       * config.in: Likewise.
+
+2005-04-27  Richard Guenther  <rguenth@gcc.gnu.org>
+
+       * fold-const.c (fold_binary): Use build_fold_addr_expr
+       for address calculation and INDIRECT_REF handling.
+
+2005-04-27  Andrew Haley  <aph@redhat.com>
+
+       * postreload-gcse.c (hash_scan_set): Remove bogus assertion.
+
+2005-04-27  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Reserve arm frame
+       pointer when thumb backtracing is on.
+
+       * config/fp-bit.c (abort): Revert change.
+
+2005-04-27  Ian Lance Taylor  <ian@airs.com>
+
+       * c-semantics.c (add_stmt): Don't test STATEMENT_CODE_P.
+
+2005-04-27  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * tree-ssa-dce.c: Fix a comment typo.
+
+2005-04-27  David S. Miller  <davem@davemloft.net>
+
+       * explow.c (allocate_dynamic_stack_space SETJMP_VIA_SAVE_AREA):
+       Kill setjmpless_size.  current_function_calls_setjmp is completely
+       computed when we are called, so just use the optimized size value
+       instead of using REG_SAVE_AREA notes.
+       (optimize_save_area_alloca): Delete....
+       * rtl.h (optimize_save_area_alloca): Likewise...
+       * passes.c (rest_of_compilation): and don't call it any more.
+       * reg-notes.def (SAVE_AREA): Delete.
+       
+2005-04-27  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * config/fp-bit.c (abort): Add noreturn attribute.
+
+       * config/avr/avr.c (avr_naked_function_p): Use gcc_assert and
+       gcc_unreachable as appropriate.
+       (ptrreg_to_str, cond_string, avr_normalize_condition): Likewise.
+       * config/avr/avr.h (ASM_OUTPUT_REG_PUSH,
+       ASM_OUTPUT_REG_POP): Likewise.
+
+2005-04-27  Paolo Bonzini  <bonzini@gnu.org>
+
+       * tree-complex.c (expand_vector_operations_1): Do not build
+       VIEW_CONVERT_EXPR's for the lhs.
+
+2005-04-27  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * config/pa/pa.h (PRINT_OPERAND_ADDRESS): Use gcc_assert, remove
+       unnecessary noncanonical RTL handling.
+       * config/pa/pa64-linux.h (INITIAL_ELIMINATION_OFFSET): Use
+       gcc_assert and gcc_unreachable.
+
+       * config/arm/arm.h (ARM_PRINT_OPERAND_ADDRESS): Use gcc_assert and
+       gcc_unreachable as appropriate.
+       (THUMB_PRINT_OPERAND_ADDRESS): Likewise.
+       * config/arm/arm.c (arm_override_options, arm_compute_func_type,
+       use_return_insn, const_ok_for_op, arm_gen_constant,
+       arm_canonicalize_comparison, legitimize_pic_address,
+       thumb_find_work_register, arm_load_pic_register, arm_rtx_costs_1,
+       arm_cirrus_insn_p, cirrus_reorg, minmax_code,
+       load_multiple_sequence, emit_ldm_seq, store_multiple_sequence,
+       emit_stm_seq, arm_gen_movmemqi, arm_select_dominance_cc_mode,
+       arm_select_cc_mode, arm_reload_in_hi, arm_reload_out_hi,
+       move_minipool_fix_forward_ref, move_minipool_fix_backward_ref,
+       dump_minipool, create_fix_barrier, push_minipool_fix, arm_reorg,
+       fp_immediate_constant, fp_const_from_val, vfp_output_fstmx,
+       output_call, output_mov_long_double_fpa_from_arm,
+       output_mov_long_double_arm_from_fpa,
+       output_mov_double_fpa_from_arm, output_mov_double_arm_from_fpa,
+       output_move_double, arithmetic_instr, shift_op, int_log2,
+       output_return_instruction, arm_output_function_prologue,
+       arm_output_epilogue, arm_output_function_epilogue,
+       emit_multi_reg_push, arm_get_frame_offsets,
+       arm_compute_initial_elimination_offset, arm_expand_prologue,
+       arm_print_operand, arm_assemble_integer, get_arm_condition_code,
+       arm_final_prescan_insn, arm_init_iwmmxt_builtins,
+       arm_expand_binop_builtin, thumb_pushpop, thumb_far_jump_used_p,
+       thumb_compute_initial_elimination_offset,
+       thumb_output_function_prologue, thumb_load_double_from_address,
+       thumb_output_move_mem_multiple, thumb_reload_out_hi,
+       arm_emit_vector_const, arm_dbx_register_number): Likewise.
+       * config/arm/pe.c (arm_mark_dllexport, arm_mark_dllimport): Likewise.
+       * config/arm/arm.md (thumb_extendhisi2,
+       *thumb_extendhisi2_insn_v6, *thumb_extendqisi2,
+       *thumb_extendqisi2_v6, movhi, *thumb_movhi_insn,
+       thumb_movhi_clobber, movqi, *arm_buneq, *arm_bltgt,
+       *arm_buneq_reversed, *arm_bltgt_reversed, suneq, sltgt): Likewise.
+       * config/arm/cirrus.md (*cirrus_arm_movdi,
+       *cirrus_movdf_hard_insn): Likewise.
+       * config/arm/vfp.md (*arm_movdi_vfp, *movdf_vfp): Likewise.
+
+2005-04-27  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * tree-flow.h (ssa_names): Change the type to VEC(tree,gc).
+       (num_ssa_names): Use VEC_length.
+       (ssa_names): Use VEC_index.
+       * tree-ssanames.c (ssa_names): Change the type to
+       VEC(tree,gc).
+       (init_ssanames, fini_ssa_names, make_ssanames,
+       release_ssa_name): Update uses of ssa_names.
+
+       * dojump.c, emit-rtl.c, expmed.c, expr.c, stmt.c, stor-layout.c:
+       Use fold_buildN instead of fold (buildN (...)).
+
+2005-04-27  Devang Patel <dpatel@apple.com>
+
+       * dbxout.c (dbxout_type): Check use_gnu_debug_info_extensions.
+
+2005-04-27  Matt Thomas <matt@3am-software.com>
+            Jan-Benedict Glaw <jbglaw@microdata-pos.de>
+
+       * config/vax/vax.c (vax_rtx_costs): Whitespace cleanup.
+       (vax_output_mi_thunk): Ditto.
+       (vax_notice_cc_update): Ditto.
+       (INDEX_REGISTER_P): Add trailing \.
+       (BASE_REGISTER_P): Add trailing \.
+       (legitimate_address_p): Whitespace cleanup.  Remove trailing \.
+
 2005-04-27  Richard Guenther  <rguenth@gcc.gnu.org>
 
        * tree-ssa-propagate.c (set_rhs): Check operand of
        (INDEX_REGISTER_P): New.
        (BASE_REGISTER_P): New.
        (indirectable_constant_address_p): New.  Adapted from
-<<<<<<< ChangeLog
-       INDIRECTABLE_CONSTANT_ADDRESS_P in vax.h.
-       Use SYMBOL_REF_LOCAL_P.
-=======
        INDIRECTABLE_CONSTANT_ADDRESS_P in vax.h. Use SYMBOL_REF_LOCAL_P.
->>>>>>> 2.8478
        (indirectable_address_p): New.  Adapted from
        INDIRECTABLE_ADDRESS_P in vax.h.
        (nonindexed_address_p): New.  Adapted from
-<<<<<<< ChangeLog
-       GO_IF_NONINDEXED_ADDRESS in vax.h.
-       (index_temp_p): New.  Adapted from
-       INDEX_TERM_P in vax.h.
-       (reg_plus_index_p): New.  Adapted from
-       GO_IF_REG_PLUS_INDEX in vax.h.
-=======
        GO_IF_NONINDEXED_ADDRESS in vax.h.
        (index_temp_p): New.  Adapted from INDEX_TERM_P in vax.h.
        (reg_plus_index_p): New.  Adapted from GO_IF_REG_PLUS_INDEX in vax.h.
->>>>>>> 2.8478
        (legitimate_address_p): New.  Adapted from
-<<<<<<< ChangeLog
-       GO_IF_LEGITIMATE_ADDRESS in vax.h
-=======
        GO_IF_LEGITIMATE_ADDRESS in vax.h.
->>>>>>> 2.8478
        (vax_mode_dependent_address_p): New.  Adapted from
-<<<<<<< ChangeLog
-       GO_IF_MODE_DEPENDENT_ADDRESS in vax.h
-=======
        GO_IF_MODE_DEPENDENT_ADDRESS in vax.h.
->>>>>>> 2.8478
        * config/vax/vax.h (CONSTANT_ADDRESS_P): Use
        legitimate_constant_address_p.
        (CONSTANT_P): Use legitimate_constant_p.
        (GO_IF_NONINDEXED_ADDRESS): Removed.
        (INDEX_TEMP_P): Removed.
        (GO_IF_REG_PLUS_INDEX): Removed.
-<<<<<<< ChangeLog
-       (GO_IF_LEGITIMATE_ADDRESS): Use legitimate_address_p.
-       Two definitions, depending on whether REG_OK_STRICT is defined.
-=======
        (GO_IF_LEGITIMATE_ADDRESS): Use legitimate_address_p. Two
        definitions, depending on whether REG_OK_STRICT is defined.
->>>>>>> 2.8478
        (GO_IF_MODE_DEPENDENT_ADDRESS): Use vax_mode_dependent_address_p.
        Two definitions, depending on whether REG_OK_STRICT is defined.
        * config/vax/vax-protos.h (legitimate_constant_address_p): Prototype
 
        * dbxout.c (dbxout_type): Emit attribute vector.
        
-2005-04-05  Paul Brook  <julian@codesourcery.com>
+2005-04-05  Paul Brook  <paul@codesourcery.com>
 
        * target-def.h (TARGET_CXX_USE_AEABI_ATEXIT): Define.
        * target.h (struct gcc_target): Add cxx.use_aeabi_atexit.