OSDN Git Service

PR middle-end/20648
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index d79c6ec..fad5db2 100644 (file)
@@ -1,3 +1,645 @@
+2005-04-03  Steven Bosscher  <stevenb@suse.de>
+
+       PR middle-end/20648
+       * bb-reorder.c (duplicate_computed_gotos): Do not unfactor
+       a computed goto if the edge to the computed goto block has
+       incoming abnormal edges.  Clarify how the function works.
+
+2005-04-03  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * params.c (set_param_value): Use gcc_assert & gcc_unreachable.
+       * passes.c (open_dump_file, rest_of_handle_final): Likewise.
+       * postreload-gcse.c (expr_equiv_p, oprs_unchanged_p,
+       hash_scan_set, reg_set_between_after_reload_p,
+       reg_used_between_after_reload_p, get_avail_load_store_reg,
+       eliminate_partially_redundant_load): Likewise.
+       * postreload.c (reload_cse_simplify_set,
+       reload_combine_note_use): Likewise.
+       * predict.c (predict_insn, expected_value_to_br_prob,
+       propagate_freq, expensive_function_p): Likewise.
+       * print-rtl.c (print_rtx): Likewise.
+       * profile.c (instrument_edges, instrument_values,
+       compute_branch_probabilities, branch_prob, union_groups,
+       tree_register_profile_hooks, rtl_register_profile_hooks): Likewise.
+       * protoize.c (in_system_include_dir, file_could_be_converted,
+       file_normally_convertible, gen_aux_info_file, seek_to_line,
+       do_cleaning): Likewise.
+       * tree-ssa-alias.c (collect_points_to_info_r): Likewise.
+       * tree-ssa-ccp.c (execute_fold_all_builtins): Likewise.
+       * tree-ssa-loop-ivopts.c (produce_memory_decl_rtl): Likewise.
+
+2005-04-03 Mostafa Hagog <mustafa@il.ibm.com>
+
+       * cfg.c (clear_bb_flags): Don't clear BB_DISABLE_SCHEDULE.
+       * modulo-sched.c (undo_replace_buff_elem): New structure.
+       (kernel_number_of_cycles, ps_unschedule_node,
+       undo_generate_reg_moves,free_undo_replace_buff,
+       undo_permute_partial_schedule,  loop_single_full_bb_p,
+       SIMPLE_SMS_LOOP_P, loop_canon_p, canon_loop,
+       build_loops_structure, get_sched_window): New.
+       (generate_reg_moves): Return undo_replace_buff_elem and other
+       fixes.
+       (generate_prolog_epilog): Remove old loop versioning.
+       (sms_schedule): Use loop information and loop_version.
+       (sms_schedule_by_order): Split part of it to get_sched_window.
+       * passes.c (rest_of_handle_sms): call cfg_layout_initialize
+       cfg_layout_finalize and free_dominance_info before/after SMS.
+
+2005-04-03 Mostafa Hagog <mustafa@il.ibm.com>
+
+       * cfghooks.c (lv_flush_pending_stmts,
+       cfg_hook_duplicate_loop_to_header_edge, extract_cond_bb_edges,
+       lv_adjust_loop_header_phi, lv_add_condition_to_bb): New.
+       * cfghooks.h (cfg_hook_duplicate_loop_to_header_edge,
+       lv_add_condition_to_bb,
+       lv_adjust_loop_header_phi, extract_cond_bb_edges,
+       flush_pending_stmts): New in cfg_hooks structure.
+       (cfg_hook_duplicate_loop_to_header_edge, lv_flush_pending_stmts,
+       extract_cond_bb_edges, lv_adjust_loop_header_phi,
+       lv_add_condition_to_bb): New declarations.
+       * cfgloop.h (duplicate_loop_to_header_edge): Change return type to
+       bool.
+       (loop_version): Declare.
+       * cfgloopmanip.c (cfghooks.h): Include.
+       (duplicate_loop_to_header_edge): Change return type to bool.
+       (loop_version, lv_adjust_loop_entry_edge): Move here.
+       * cfgrtl.c (cfgloop.h): Include.
+       (rtl_verify_flow_info_1): Fix.
+       (rtl_lv_add_condition_to_bb, rtl_extract_cond_bb_edges): New.
+       (rtl_cfg_hooks, cfg_layout_rtl_cfg_hook): Add hooks to
+       initialization.
+       * tree-cfg.c (tree_lv_adjust_loop_header_phi,
+       tree_lv_add_condition_to_bb): New.
+       (tree_cfg_hooks): Add new hooks to initialization.
+       * tree-ssa-loop-manip.c (lv_adjust_loop_header_phi,
+       lv_adjust_loop_entry_edge, tree_ssa_loop_version): Remove.
+
+2005-04-03  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * config/stormy16/stormy16.h (PREDICATE_CODES): Add SUBREG to
+       xstormy16_below100_or_register,
+       xstormy16_splittable_below100_or_register, and
+       nonimmediate_nonstack_operand.
+
+       * config/stormy16/stormy16-protos.h: Remove the prototypes for
+       xstormy16_ineqsi_operator, equality_operator,
+       inequality_operator, shift_operator,
+       xstormy16_below100_operand, xstormy16_below100_or_register,
+       xstormy16_splittable_below100_or_register,
+       xstormy16_onebit_set_operand, xstormy16_onebit_clr_operand.
+       * config/stormy16/stormy16.c (xstormy16_ineqsi_operator,
+       equality_operator, inequality_operator,
+       xstormy16_below100_operand, xstormy16_below100_or_register,
+       xstormy16_splittable_below100_or_register,
+       xstormy16_onebit_set_operand, xstormy16_onebit_clr_operand,
+       nonimmediate_nonstack_operand, shift_operator): Move to
+       predicates.md.
+       * config/stormy16/stormy16.h (PREDICATE_CODES): Remove.
+       * config/stormy16/stormy16.md: Include predicates.md.
+       * config/stormy16/predicates.md: New.
+
+2005-04-02  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * config/iq2000/iq2000.c (uns_arith_operand, arith_operand,
+       small_int, large_int, reg_or_0_operand, simple_memory_operand,
+       equality_op, cmp_op, pc_or_label_operand, call_insn_operand,
+       move_operand, power_of_2_operand): Move to predicates.md.
+       * config/iq2000/iq2000.h (SPECIAL_MODE_PREDICATES,
+       PREDICATE_CODE): Remove.
+       * config/iq2000/iq2000.md: Include predicates.md.
+       * config/iq2000/predicates.md: New.
+
+2005-04-02  Richard Sandiford  <rsandifo@redhat.com>
+
+       * config/m68hc11/m68hc11.h (target_flags, MASK_SHORT)
+       (MASK_AUTO_INC_DEC, MASK_M6811, MASK_M6812, MASK_M68S12)
+       (MASK_NO_DIRECT_MODE, MASK_MIN_MAX, MASK_LONG_CALLS)
+       (TARGET_SHORT, TARGET_M6811, TARGET_M6812, TARGET_M68S12)
+       (TARGET_AUTO_INC_DEC, TARGET_MIN_MAX, TARGET_NO_DIRECT_MODE)
+       (TARGET_LONG_CALLS, TARGET_SWITCHES, TARGET_OPTIONS)
+       (SUBTARGET_SWITCHES, SUBTARGET_OPTIONS, m68hc11_regparm_string)
+       (m68hc11_reg_alloc_order, m68hc11_soft_reg_count)
+       (TARGET_M68HC11): Delete.
+       (TARGET_DEFAULT): Change the default setting from MASK_M6811 to 0.
+       * config/m68hc11/m68hc12.h (TARGET_M68HC12): Delete.
+       * config/m68hc11/m68hc11.c (m68hc11_regparm_string)
+       (m68hc11_reg_alloc_order, m68hc11_soft_reg_count)
+       (nb_soft_regs): Delete.
+       (TARGET_DEFAULT_TARGET_FLAGS): Override default with TARGET_DEFAULT.
+       (m68hc11_override_options): Remove the code that caters for MASK_M6811
+       and MASK_M6812 being set simultaneously.  Change the code that sets
+       the default m68hc11_soft_reg_count to use integers instead of strings.
+       (m68hc11_conditional_register_usage, hard_regno_mode_ok): Use
+       m68hc11_soft_reg_count (which now has an int type) as the number
+       of soft registers.
+       * config/m68hc11/m68hc11.opt: New file.
+
+2005-04-02  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * config/fr30/fr30.h (PREDICATE_CODES): Remove
+       fp_displacement_operand, sp_displacement_operand.
+
+       * config/m68hc11/m68hc11-protos.h: Add a prototype for
+       m68hcc_auto_inc_p.
+       Remove the prototypes for tst_operand, cmp_operand,
+       stack_register_operand, d_register_operand,
+       hard_addr_reg_operand, splitable_operand,
+       m68hc11_logical_operator, m68hc11_arith_operator,
+       m68hc11_non_shift_operator, m68hc11_shift_operator,
+       m68hc11_unary_operator, m68hc11_eq_compare_operator,
+       non_push_operand, hard_reg_operand, and
+       reg_or_some_mem_operand.
+       * config/m68hc11/m68hc11.c (m68hcc_auto_inc_p): Make it
+       extern.
+       (tst_operand, cmp_operand, non_push_operand,
+       splitable_operand, reg_or_some_mem_operand,
+       stack_register_operand, d_register_operand,
+       hard_addr_reg_operand, hard_reg_operand,
+       m68hc11_eq_compare_operator, m68hc11_logical_operator,
+       m68hc11_arith_operator, m68hc11_non_shift_operator,
+       m68hc11_shift_operator, m68hc11_unary_operator): Move to
+       predicates.md.
+       * config/m68hc11/m68hc11.h (PREDICATE_CODES): Remove.
+       * config/m68hc11/m68hc11.md: Include predicates.md.
+       * config/m68hc11/predicates.md: New.
+
+2005-04-02  Alexandre Oliva  <aoliva@redhat.com>
+
+       PR debug/19345
+       * dwarf2out.c (add_abstract_origin_attribute): Revert accidental
+       change checked in along with 2005-03-03's patch for debug/20253.
+       * tree-inline.c (remap_type): Remap TYPE_STUB_DECL.
+       (remap_decl): Insert type decl in map earlier.
+
+2005-04-02  Alexandre Oliva  <aoliva@redhat.com>
+
+       PR tree-optimization/20640
+       * tree-ssa-dce.c (remove_dead_stmt): Don't redirect edge to
+       post-dominator if it has phi nodes.
+       (eliminate_unnecessary_stmts): Remove dead phis in all blocks
+       before dead statements.
+
+2005-04-02  Alexandre Oliva  <aoliva@redhat.com>
+
+       PR middle-end/20491
+       * final.c (alter_subreg): Don't call subreg_regno for a non-REG.
+
+2005-04-02  Alexandre Oliva  <aoliva@redhat.com>
+
+       PR rtl-optimization/20290
+       * loop.c (for_each_insn_in_loop): Don't assume the loop body runs
+       in every iteration if the entry point is the exit test.
+
+2005-04-02  Hans-Peter Nilsson  <hp@axis.com>
+
+       * config/cris/cris.md (attribute "length"): Define.
+
+2005-04-02  Geoffrey Keating  <geoffk@apple.com>
+
+       * config/rs6000/predicates.md (indexed_or_indirect_operand): New.
+       (word_offset_memref_operand): New.
+       * config/rs6000/rs6000-protos.h (word_offset_memref_operand): Delete.
+       (indexed_or_indirect_operand): Delete.
+       * config/rs6000/rs6000.c (word_offset_memref_operand): Delete.
+       (indexed_or_indirect_operand): Delete.
+
+       * config/rs6000/t-darwin8: Comment out ppc64 multilib.
+
+       PR 20650
+       * config/rs6000/rs6000.md (fix_truncdfsi2): Make destination
+       a register.
+
+       * config/rs6000/t-darwin (TARGET_LIBGCC2_CFLAGS): Add -pipe.
+       * config/t-darwin (TARGET_LIBGCC2_CFLAGS): Likewise.
+
+2005-04-01  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
+
+       * gcc/config/vax/vax.md: Spellcheck, fix whitespace.
+
+2005-04-01  Ian Lance Taylor  <ian@airs.com>
+
+       * gcc.c: Don't include <sys/resource.h> or declare getrusage.
+       (rus, prus): Remove static variables.
+       (execute): Use pex_run/pex_get_status rather than pexecute/pwait.
+       (process_command): Permit report_times and use_pipes together.
+
+2005-04-01  Joseph S. Myers  <joseph@codesourcery.com>
+
+       * c-decl.c (validate_proto_after_old_defn): Look at
+       TYPE_MAIN_VARIANT of argument types.
+
+2005-04-01  Paul Brook  <paul@codesourcery.com>
+
+       * config/arm/arm.c (thumb_call_via_label): Include space for SP.
+       (arm_output_function_epilogue): Allow call_via_SP.
+       (thumb_call_via_reg, arm_file_end): Ditto.
+       * config/arm/arm.h (struct machine_function): Include space for SP.
+       (thumb_call_via_label): Update declaration.
+
+2005-04-01  Ian Lance Taylor  <ian@airs.com>
+
+       * final.c (final_scan_insn): Revert part of 2005-03-30 patch: when
+       doing a peephole optimization, once again put any notes in the
+       proper position.
+
+2005-04-01  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * bb-reorder.c, fold-const.c, varasm.c: Fix comment typos.
+
+2005-04-01  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * local-alloc.c (update_equiv_regs): Use gcc_assert, gcc_unreachable.
+       (block_alloc, find_free_reg): Likewise.
+       * loop-doloop.c (doloop_modify): Likewise.
+       * loop-invariant.c (record_use): Likewise.
+       * loop-iv.c (get_biv_step_1, get_biv_step, iv_analyze,
+       get_iv_value, canon_condition, eliminate_implied_condition,
+       eliminate_implied_condition, simplify_using_initial_values,
+       shorten_into_mode, canonicalize_iv_subregs,
+       iv_number_of_iterations): Likewise.
+       * loop-unroll.c (expand_var_during_unrolling): Likewise.
+       * loop-unswitch.c (compare_and_jump_seq, unswitch_single_loop,
+       unswitch_loop): Likewise.
+       * loop.c (INSN_LUID, loop_optimize, rtx_equal_for_loop_p,
+       move_movables, replace_call_address, find_and_verify_loops,
+       rtx_equal_for_prefetch_p, fold_rtx_mult_add, loop_iterations,
+       record_giv, final_giv_value, general_induction_var,
+       simplify_giv_expr, extension_within_bounds_p, try_copy_prop,
+       loop_giv_dump): Likewise.
+
+       * gcov-io.h (GCOV_CHECK, GCOV_CHECK_READING,
+       GCOV_CHECK_WRITING): Remove.
+       (gcov_position, gcov_rewrite): Use gcc_assert.
+       * gcov-io.c (gcov_open, gcov_write_words, gcov_write_length,
+       gcov_read_words, gcov_sync, gcov_seek): Use gcc_assert.
+       * libgcov.c (__gcov_merge_single, __gcov_merge_delta): Use
+       gcc_assert.
+
+2005-04-01  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * tree-inline.c: Fix a typo.
+
+2005-04-01  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * configure.ac (enable-checking): Explicitly set all variables for
+       collective switch values.  Alphabetize variables. Rename
+       ac_checking_valgrind to ac_valgrind_checking.  Allow 'none' as
+       synonym for 'no'.
+       * doc/install.texi (enable-checking): Update documentation.
+       * configure: Rebuilt.
+
+2005-04-01  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * tree-inline.c (copy_body_r): Use CONSTANT_CLASS_P where
+       possible.
+
+2005-04-01  Richard Earnshaw  <richard.earnshaw@arm.com>
+
+       * arm.c (adjacent_mem_locations): Reject volatile memory refs.
+       Also reject cases where this pattern will cause load delay stalls
+       unless optimizing for size and it will produce a shorter sequence.
+       * arm.md (arith_adjacent_mem): Make better use of ldm addressing
+       variants to avoid pre-adjusting the base when possible.
+
+2005-04-01  Richard Earnshaw  <richard.earnshaw@arm.com>
+
+       * arm.md (minmax_arithsi): Reject all eliminable registers, not just
+       the frame and argument pointers.
+       (strqi_preinc, strqi_predec, loadqi_preinc, loadqi_predec): Likewise.
+       (loadqisi_preinc, loadqisi_predec, strsi_preinc): Likewise.
+       (strsi_predec, loadsi_preinc, loadsi_predec): Likewise.
+       (strqi_shiftpreinc, strqi_shiftpredec, loadqi_shiftpreinc): Likewise.
+       (loadqi_shiftpredec, strsi_shiftpreinc, strsi_shiftpredec): Likewise.
+       (loadsi_shiftpreinc, loadsi_shiftpredec): Likewise.
+
+2005-04-01  Danny Smith  <dannysmith@users.sourceforge.net>
+
+       * config/i386/cygming.h (SUBTARGET_ATTRIBUTE_TABLE): Define,
+       with entry for selectany attribute.
+       * config/i386/i386-protos.h (ix86_handle_selectany_attribute):
+       Declare.
+       * config/i386/winnt.c (ix86_handle_selectany_attribute): Define.
+       (i386_pe_asm_named_section): Handle sections generated by
+       selectany attribute.
+       * doc/extend.texi (selectany): Document attribute.
+
+2005-04-01  Paolo Bonzini  <bonzini@gnu.org>
+           Jan Hubicka  <jh@suse.cz>
+
+       * config/i386/i386.c (ix86_decompose_address): Look inside SUBREGs
+       to fix addresses involving EBP and ESP.
+       (aligned_operand, legitimate_address_p, ix86_address_cost): Be prepared
+       for SUBREGed registers.
+       (legitimate_address_p): Accept SUBREGed registers.
+
+2005-04-01  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c++/19406
+       * dwarf2out.c (gen_type_die_for_member): Handle FIELD_DECL.
+       (dwarf2out_imported_module_or_decl): Use gen_type_die_for_member
+       for FIELD_DECLs.
+
+2005-04-01  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * doc/contrib.texi, doc/invoke.texi, doc/tm.texi: Fix typos.
+
+2005-04-01  James E Wilson  <wilson@specifixinc.com>
+
+       PR c++/20505
+       * dwarf2out.c (rtl_for_decl_init): New function.
+       (rtl_for_decl_location): Extracted from here.
+       (tree_add_const_value_attribute): Call rtl_for_decl_init and
+       add_const_value_attribute.  Delete initializer_constant_valid_p call.
+
+2005-04-01  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * cgraphunit.c, dbxout.c, flow.c, gcse.c, gimplify.c,
+       lambda-code.c, loop.c, machmode.def, mips-tfile.c,
+       modulo-sched.c, passes.c, postreload-gcse.c, tree-eh.c,
+       tree-ssa-ccp.c, varasm.c, config/frv/frv.c, config/frv/frv.h,
+       config/frv/frv.md, config/i386/i386.c, config/i386/i386.h,
+       config/i386/i386.md, config/rs6000/predicates.md,
+       config/rs6000/rs6000.c, config/s390/fixdfdi.h,
+       config/s390/s390.c, config/stormy16/stormy16.c,
+       config/stormy16/stormy16.md, config/vax/vax.md: Fix comment
+       typos.
+
+2005-04-01  Joseph S. Myers  <joseph@codesourcery.com>
+
+       PR c/17855
+       * gimplify.c (gimplify_expr): Create a temporary for lvalue
+       COND_EXPR and CALL_EXPR.
+
+2005-03-31  Vladimir Makarov  <vmakarov@redhat.com>
+
+       PR target/20632
+       * genautomata.c (first_cycle_unit_presence): Check all alternative
+       states for unit presence.
+
+       * doc/md.texi: Remove remark about impossibility to query unit
+       presence in non nondeterministic automaton state.
+       
+       * config/ia64/ia64.c (get_template): Change order of unit querying.
+
+2005-03-31  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * tree-ssa-dom.c (cprop_into_successor_phis): Remove an
+       obsolete comment.
+
+2005-03-31  Zdenek Dvorak  <dvorakz@suse.cz>
+
+       * cfgloopanal.c (mark_loop_exit_edges): Clean EDGE_LOOP_EXIT
+       flag for edges outside any loops.
+
+2005-03-31  Janis Johnson  <janis187@us.ibm.com>
+
+       * doc/sourcebuild.texi (Test Directives): Describe cleanup-* procs.
+
+2005-03-31  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * tree-ssa-alias.c: Follow spelling conventions.
+       * doc/tree-ssa.texi: Fix a typo.
+
+2005-03-31  J"orn Rennecke <joern.rennecke@st.com>
+
+       * postreload-gcse.c: Include target.h.
+       (gcse_after_reload_main): Return early if we cannot modify jumps.
+       * Makefile.in (postreload-gcse.o): Depend on $(TARGET_H).
+
+2005-03-31  David Edelsohn  <edelsohn@gnu.org>
+
+       * tree-ssa-loop-im.c (stmt_cost): Add RDIV_EXPR to list of
+       expensive operations.
+
+2005-03-31  Ian Lance Taylor  <ian@airs.com>
+
+       * collect2.c (lderrout): New variable.
+       (collect_exit): Dump ldout to stdout.  Dump and unlink lderrout,
+       if it is set, to stderr.
+       (handler): Unlink lderrout if it is set.
+       (dump_file): Add "to" parameter.  Change all callers.
+       (main): Initialize lderrout.
+       (collect_execute): Add errname parameter.  Change all callers.
+       Rename redir parameter to outname.  Never pass
+       PEX_STDERR_TO_STDOUT to pex_run.
+       * collect2.h (collect_execute, dump_file): Update declarations.
+       * tlink.c (tlink_execute): Add errname parameter.  Change all
+       callers.
+       (do_tlink): Check lderrout as well as ldout.
+
+2005-03-31  Caroline Tice  <ctice@apple.com>
+
+       * Makefile.in (varasm.o): Add basic-block.h to list of requirements.
+       (bb-reorder.o): Add errors.h to list of requirements.
+       (STAGEFEEDBACK_FLAGS_TO_PASS): Add -freorder-blocks-and-partition to
+       profiledbootstrap flags.
+       * bb-reorder.c (errors.h): Add new include.
+       (struct bbro_basic_block_data_def): Add new field, in_trace.
+       (add_unlikely_executed_notes):  Remove function.
+       (mark_bb_for_unlikely_executed_section): Remove function.
+       (insert_section_boundary_note): New function.
+       (verify_hot_cold_block_grouping): New function.
+       (push_to_next_round_p): Remove variables and tests that push all
+       cold blocks to last round.
+       (find_traces): Remove code that added extra round of trace finding
+       when doing partitioning.
+       (find_traces_1_round) :  Remove variable last_round;  add code to 
+       update new struct field, in_trace; correct trace_length where it was 
+       incorrect before (after call to copy_bb); change code that pushed all 
+       cold blocks to last round. Instead verify that all blocks going into 
+       a trace belong in the same partition.
+       (connect_traces): Modify to connect the traces in two passes, if the
+       function contains both hot and cold blocks.  The first pass connects 
+       all the traces for blocks in the partition that the first block in 
+       the function belongs to; the second pass connnects all the traces 
+       containing blocks that belong in the other partition.
+       (find_rarely_executed_basic_blocks_and_crossing_edges):  Remove
+       code that automatically put the first block in a function into the
+       hot partition if the function had any hot blocks.
+       (fix_crossing_unconditional_branches): Check number of succ edges 
+       before attempting to get one.
+       (fix_edges_for_rarely_executed_code):  Update comment describing
+       function.
+       (reorder_basic_blocks):  Add code to initialize new field (in_trace);
+       remove call to add_unlikely_executed_notes; add call to 
+       verify_hot_cold_block_grouping.
+       (duplicate_computed_gotos): Don't change computed goto if it's a 
+       crossing edge.
+       (partition_hot_cold_basic_blocks):  Update function comment.
+       * cfgcleanup.c (try_simplify_condjump): Remove redundacy from 
+       condition.
+       (try_forward_edges): Likewise.
+       (merge_blocks_move_predecessor_nojumps): Likewise.
+       (merge_blocks_move_successor_nojumps): Likewise.
+       (merge_blocks_move): Likewise.
+       (try_crossjump_bb): Likewise.
+       * cfglayout.c (update_unlikely_executed_notes): Remove function.
+       (fixup_reorder_chain): Remove code for adding UNLIKELY_EXECUTED_CODE
+       notes to cold bb's; remove call to update_unlikely_executed_notes.
+       (duplicate_insn_chain):  change NOTE_INSN_UNLIKELY_EXECUTED_CODE to
+       NOTE_INSN_SWITCH_TEXT_SECTIONS.
+       * cfglayout.h (scan_ahead_for_unlikely_executed_note): Remove
+       function declaration.
+       * cfgrtl.c (can_delete_note_p): Remove UNLIKELY_EXECUTED_CODE note
+       from consideration.
+       (rtl_can_merge_blocks): Remove redundancy from condition.
+       (try_redirect_by_replacing_jump): Likewise.
+       (force_nonfallthru_and_redirect): Remove code for adding
+       UNLIKELY_EXECUTED_CODE notes to cold bb's.
+       (commit_one_edge_insertion): Likewise.
+       (cfg_layout_can_merge_blocks_p): Remove redundancy from condition.
+       * dbxout.c (FORCE_TEXT): Replace function_section with 
+       current_function_section.
+       (struct dbx_debug_h): Add do_nothing function for new debug_hooks
+       function, switch_text_section.
+       (struct xcoff_debug): Likewise.
+       (dbxout_function_end): Add code to put out label diffs for both
+       hot and cold sections.
+       * debug.c (struct do_nothing_debug_hooks): Add do_nothing function
+       for new debug_hooks funciton, switch_text_section..
+       * debug.h (struct gcc_debug_hooks):  Add new function to debug_hooks,
+       switch_text_section.
+       * dwarf2out.c (struct dw_fde_struct):  Add five new fields: 
+       dw_fde_hot_section_label, dw_fde_hot_section_end_label, 
+       dw_fde_unlikely_section_label, dw_fde_unlikely_section_end_label and 
+       dw_fde_switched_sections.
+       (output_call_frame_info):  Add test to see if function switches text
+       sections in the middle; if so, use appropriate extra hot and cold 
+       section labels to compute size deltas for the hot and cold sections.
+       (dwarf2out_begin_prologue): Add code to initialize new fields in 
+       dw_fde_struct.
+       (dwarf2out_switch_text_section): New function (invoked through 
+       debug_hook); updates new fields in dw_fde_struct appropriately and
+       increments separate_line_info_table_in_use.
+       (dwarf2_debug_hooks): Initialize switch_text_section function to be
+       dwarf2out_switch_text_section.
+       (struct var_loc_node): Add new field, section_label.
+       (output_aranges): Add code to check whether in hot or cold section and
+       use the appropriate label in calculating deltas.
+       (output_ranges): Likewise.
+       (output_line_info): Add code to check which section we're in and
+       use appropriate hot/cold label.
+       (add_location_or_constant_value_attribute): Likewise.
+       (gen_subprogam_die): Modify arange attributes to use correct labels.
+       (dwarf2out_begin_block): Change call to function_section into call to
+       current_function_section.
+       (dwarf2out_end_block): Likewise.
+       (dwarf2out_source_line): Likewise.
+       (dwarf2out_var_location): Add code to check whether in hot or cold 
+       section and use the appropriate label.
+       * except.c (output_function_exception_table): Change call to 
+       function_section into call to current_function_section.
+       * final.c (profile_function): Likewise.
+       (scan_ahead_for_unlikely_executed_note): Remove function.
+       (final_scan_insn):  Remove calls to 
+       scan_ahead_for_unlikely_executed_note, and related code for switching 
+       to cold section, except for the single time 
+       NOTE_INSN_SWITCH_TEXT_SECTIONS may be encountered;  add calls to 
+       debug_hooks->switch_text_sections; replace appropriate calls to 
+       function_section with calls to current_function_section.
+       * ifcvt.c (find_if_case_1): Remove redundancy from condition, add 
+       test_bb to condition.
+       (find_if_case_2): Likewise.
+       * insn-notes.def: Change NOTE_INSN_UNLIKELY_EXECUTED_CODE to
+       NOTE_INSN_SWITCH_TEXT_SECTIONS.  Update comment appropriately.
+       * opts.c (decode_options): Change warning about hot/cold partitioning
+       with exceptionss to inform (so as not to cause bootstrap failures);
+       remove warning about partitioning with DWARF debug info.
+       * output.h (current_function_section): Add new function decl.
+       (insert_section_boundary_note): Likewise.
+       (enum in_section): Move this declaration here from varasm.c.
+       (unlikely_section_label): Likewise.
+       (unlikely_text_section_name): Likewise.
+       (last_text_section_name): New global variable.
+       (last_text_section): Likewise.
+       (hot_section_label): Likewise.
+       (hot_section_end_label): Likewise.
+       (cold_section_end_label): Likewise.
+       * passes.c (rest_of_handle_final): Free unlikely_text_section_name.
+       * print-rtl.c (print_rtx): Change NOTE_INSN_UNLIKELY_EXECUTED_CODE
+       to NOTE_INSN_SWITCH_TEXT_SECTIONS.
+       * reg-stack.c (emit_swap_insn): Remove UNLIKELY_EXECUTED_CODE note 
+       insn from consideration.
+       * sdbout.c (sdb_debug_hooks): Add do_nothing for new function, 
+       switch_text_section.
+       * varasm.c (basic-block.h): Add new include.
+       (unlikely_section_label_printed): Remove global variable.
+       (unlikely_section_label): Make global variable not be static any more.
+       (unlikely_text_section_name): Likewise.
+       (hot_section_end_label): New global variable (not static)
+       (first_function_block_is_cold): Likewise.
+       (hot_section_label): Likewise.
+       (cold_section_end_label): Likewise..
+       (last_text_section): New global variable, not static.
+       (last_text_section_name): New global variable, not static.
+       (initialize_cold_section_name): New function.
+       (enum in_section): Move declaration to output.h.
+       (text_section): Update last_text_section.
+       (unlikely_text_section): Replace code to determine cold section name 
+       with call to initialize_cold_section_name; Add code to update 
+       last_text_section; remove code for printing out label.
+       (named_section_real): Add code to update last_text_section and 
+       last_text_section_name as appropriate.
+       (function_section): Change test for 'unlikely' to depend on
+       first_function_block_is_cold (moved old test to 
+       current_function_section).
+       (current_function_section): New function.
+       (assemble_start_function): Move code that frees 
+       unlikely_text_section_name; initialize hot_section_end_label; 
+       print hot and cold section labels at the start of the function; 
+       set first_function_block_is_cold, if appropriate; initialize l
+       ast_text_section; add call to insert_section_boundary_note.
+       (assemble_end_function):  Add code to write out hot and cold section
+       end labels.
+       *vmsdbgout.c (vmsdbg_debug_hooks): Add do_nothing for new function,
+       switch_text_section.
+       * config/darwin.c (machopic_select_section): Replace incorrect 
+       function in base_funs; update reloc for cold sections if necessary.
+       * config/darwin.h (SECTION_FUNCTION):  Add code to update 
+       last_text_section if appropriate.
+       (text_unlikely_section): Remove.
+       * config/sparc/sparc.c (sparc_output_deferred_case_vectors): Likewise.
+       * config/stormy16/stormy16.c (stormy_16_output_addr_vec): Likewise.
+       * config/xtensa/xtensa.c (override_options): Turn off hot/cold
+       partitioning for this architecture.
+
+2005-03-31  Olivier Hainque  <hainque@adacore.com>
+
+       * dwarf2out.c (dwarf2out_frame_finish): Honor DWARF2_FRAME_INFO
+       defined and non-zero.
+
+2005-03-31  Gabriel Dos Reis  <gdr@integrable-solutions.net>
+
+       PR c++/18644
+       * doc/invoke.texi (-Wsynth): Don't document, as it now is void of
+       semantics. 
+
+2005-03-31  Alan Modra  <amodra@bigpond.net.au>
+
+       PR target/20611
+       * config/rs6000/rs6000.md (load_toc_v4_PIC_1b): Remove inline
+       label operand.  Remove (use (unspec..)).  Don't emit a label on
+       the offset word.
+       * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Don't
+       generate inline label for load_toc_v4_PIC_1b.
+       (rs6000_emit_load_toc_table): Likewise.
+
+2005-03-31  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * config.gcc: Obsolete i860-*-sysv4*, ip2k-*-elf,
+       ns32k-*-netbsdelf*, and ns32k-*-netbsd*.
+
+2005-03-29  Devang Patel  <dpatel@apple.com>
+
+       * tree-sra.c (decide_block_copy): Disable scalarization of
+       sub-elements.
+       
+2005-03-30  Stuart Hastings  <stuart@apple.com>
+           Dale Johannesen  <dalej@apple.com>
+
+       * Makefile.in (print-tree.o):  Depend on tree-iterator.h.
+       * print-tree.c (print_node):  Add case STATEMENT_LIST.
+
 2005-03-31  Alan Modra  <amodra@bigpond.net.au>
 
        * config.gcc (cpu_is_64bit): Set for 64-bit powerpc cpus.