OSDN Git Service

* config/rs6000/rs6000.md (strlensi): Emit barrier after
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 713be1a..f844e61 100644 (file)
+2006-03-17  David Edelsohn  <edelsohn@gnu.org>
+
+       * config/rs6000/rs6000.md (strlensi): Emit barrier after
+       unconditional jump.
+
+2006-03-17  Paul Brook  <paul@codesourcery.com>
+
+       * doc/install.texi: Docuemnt --with-mode.
+       * config.gcc: Add --with-mode for arm*-*-*.
+       * config/arm/arm.h (OPTION_DEFAULT_SPECS): Add "mode".
+
+2006-03-17  J"orn Rennecke <joern.rennecke@st.com>
+
+       * sh.c (max_labelno_before_reorg): New variable.
+       (sh_reorg): Initialize it.
+       (find_barrier): Check max_labelno_before_reorg before using
+       label_to_alignment.  Take length of explicit alignment insns
+       into account.  When seeing a UNSPECV_CONST_END, return it.
+
+       * sh.c (fixup_mova): Set mode of affected label to QImode.
+       (untangle_mova): New function.
+       (find_barrier): Use it.  Check mode of label before decrementing
+       num_mova.
+       (sh_reorg): Likewise.
+       Set mode of all insns back to VOIDmode.
+
+       * sh.c (MOVA_LABELREF): New macro.
+       (mova_p, fixup_mova, sh_reorg): Use it.
+       (find_barrier, sh_reorg): Don't count num_mova back to 0 unless
+       ADDR_DIFF_VEC matches mova.
+
+2006-03-17  Steven Bosscher  <stevenb.gcc@gmail.com>
+
+       * dwarf2asm.c (dw2_asm_output_offset): Mark 'base' argument
+       with ATTRIBUTE_UNUSED.
+
+2006-03-17  Alexandre Oliva  <aoliva@redhat.com>
+
+       * dwarf2out.c (dwarf2out_stack_adjust): Always track the stack
+       pointer, instead of assuming it is possible to derive the
+       correct args size from a call insn.
+
+2006-03-16  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
+
+       * rtl.h (CONST_INT_P): Define.
+       * config/vax/vax.c (print_operand_address): Use CONST_INT_P()
+       instead of GET_CODE(x) == CONST_INT.
+       (vax_rtx_costs): Likewise.
+       (vax_output_int_move): Likewise.
+       (vax_output_int_add): Likewise.
+       (legitimate_constant_address_p): Likewise.
+       (index_term_p): Likewise.
+       * config/vax/vax.h (PRINT_OPERAND): Likewise.
+       * config/vax/vax.md (and<mode>3): Likewise.
+       (ashrsi3): Likewise.
+       (extv): Likewise.
+       (movstricthi): Likewise.
+       (movstrictqi): Likewise.
+       (rotrsi3): Likewise.
+       (five unnamed insns): Likewise.
+
+2006-03-16  Geoffrey Keating  <geoffk@apple.com>
+
+       * doc/tm.texi (SDB and DWARF): Add extra parameter to
+       ASM_OUTPUT_DWARF_OFFSET.  Use @var to indicate metavariables.
+       * dwarf2asm.h (dw2_asm_output_offset): Add section parameter.
+       * dwarf2asm.c (dw2_asm_output_offset): Add base section parameter.
+       Pass to ASM_OUTPUT_DWARF_OFFSET.
+       * dwarf2out.c (debug_frame_section): New.
+       (output_call_frame_info): Use debug_frame_section.  Pass it to
+       dw2_asm_output_offset.
+       (output_die): Pass appropriate section to dw2_asm_output_offset.
+       (output_compilation_unit_header): Likewise.
+       (output_pubnames): Likewise.
+       (output_aranges): Likewise.
+       (enum dw_val_class): Break dw_val_class_lbl_offset into
+       dw_val_class_lineptr and dw_val_class_macptr.
+       (add_AT_lbl_offset): Delete.
+       (add_AT_lineptr): New.
+       (add_AT_macptr): New.
+       (AT_lbl): Expect a lineptr or macptr.
+       (print_die): Handle dw_val_class_lineptr and dw_val_class_macptr.
+       (attr_checksum): Likewise.
+       (same_dw_val_p): Likewise.
+       (size_of_die): Likewise.
+       (value_format): Likewise.
+       (output_die): Likewise.
+       (dwarf2out_finish): Call add_AT_lineptr and add_AT_macptr instead of
+       add_AT_lbl_offset.
+       * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add extra parameter.
+       * config/i386/i386.c (x86_file_start): Call darwin_file_start.
+       * config/darwin-protos.h (darwin_file_start): New.
+       (darwin_asm_output_dwarf_offset): New.
+       * config/ia64/ia64.h (ASM_OUTPUT_DWARF_OFFSET): Add extra parameter.
+       * config/rs6000/rs6000.c (rs6000_darwin_file_start): Call
+       darwin_file_start.
+       * config/darwin.c (darwin_emit_unwind_label): Don't output label
+       if not EH section; simplify.
+       (darwin_file_start): New.
+       (darwin_asm_output_dwarf_offset): New.
+       * config/darwin.h (DEBUG_FRAME_SECTION): In __DWARF segment,
+       mark as 'debug'.
+       (DEBUG_INFO_SECTION): Likewise.
+       (DEBUG_ABBREV_SECTION): Likewise.
+       (DEBUG_ARANGES_SECTION): Likewise.
+       (DEBUG_MACINFO_SECTION): Likewise.
+       (DEBUG_LINE_SECTION): Likewise.
+       (DEBUG_LOC_SECTION): Likewise.
+       (DEBUG_PUBNAMES_SECTION): Likewise.
+       (DEBUG_STR_SECTION): Likewise.
+       (DEBUG_RANGES_SECTION): Likewise.
+       (FRAME_BEGIN_LABEL): Must start with 'L' in debug section.
+       (ASM_OUTPUT_DWARF_OFFSET): New.
+
+2006-03-16  Joseph S. Myers  <joseph@codesourcery.com>
+
+       * config.gcc (tm_defines): Always add to previous value rather
+       than replacing it.
+
+2006-03-16  Richard Sandiford  <richard@codesourcery.com>
+
+       * config/mips/predicates.md (splittable_const_int_operand): New,
+       split from move_operand.
+       (splittable_symbolic_operand): New.
+       (move_operand): Add commentary.  Use splittable_const_int_operand.
+       Inline mips_atomic_symbolic_constant_p.
+       * config/mips/mips.md: Add combine splitters for handling moves
+       of splittable_const_int_operands and splittable_symbolic_operands.
+       * config/mips/mips-protos.h (mips_atomic_symbolic_constant_p): Delete.
+       (mips_split_symbol): Declare.
+       (mips_move_integer): Declare.
+       * config/mips/mips.c (mips_split_p): Make global.
+       (TARGET_MIN_ANCHOR_OFFSET): Override default.
+       (TARGET_MAX_ANCHOR_OFFSET): Likewise.
+       (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Likewise.
+       (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Likewise.
+       (mips_offset_within_object_p): Handle block symbols.
+       (mips_atomic_symbolic_constant_p): Delete.
+       (mips_cannot_force_const_mem): Return false for constants that
+       mips_legitimize_move can handle.
+       (mips_use_blocks_for_constant_p): New function.
+       (mips_split_symbol): Make global.
+       (mips_move_integer): Likewise.  Add a temporary register argument.
+       (mips_legitimize_const_move): Use splittable_const_int_operand and
+       splittable_symbolic_operand.
+       (mips_use_anchors_for_symbol_p): New function.
+       * config/mips/mips.h: Protect externs with !USED_FOR_TARGET.
+       (mips_split_p): Declare.  
+
+2006-03-16  Richard Sandiford  <richard@codesourcery.com>
+
+       * config.gcc (mips64*-*-linux*): Keep existing tm_defines.
+       (mips*-*-linux*): Likewise.
+
+2006-03-16  Roger Sayle  <roger@eyesopen.com>
+           Daniel Speyer  <dspeyer@wam.umd.edu>
+
+       PR middle-end/18259
+       * tree-dump.c (dump_real): New function.
+       (dequeue_and_dump) <REAL_CST>: Use it to dump FP constants.
+       * Makefile.in (REAL_H): New macro for dependencies on real.h.
+       (tree-dump.o): Add $(REAL_H) to the dependencies.
+
+2006-03-16  Roger Sayle  <roger@eyesopen.com>
+
+       PR middle-end/21781
+       * real.c (real_from_string): If the mantissa is zero, don't bother
+       parsing the exponent as the result should always be zero.
+
+2006-03-16  Andreas Krebbel  <krebbel1@de.ibm.com>
+
+       * simplify-rtx.c (simplify_plus_minus): Simplify within CONST terms.
+
+2006-03-16  Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
+
+        * config/ia64/ia64.c (stops_p): Added explicit initialization.
+        (ia64_first_cycle_multipass_dfa_lookahead_guard_spec,
+        ia64_h_i_d_extended, ia64_set_sched_flags, ia64_speculate_insn,
+        ia64_needs_block_p, ia64_gen_check, ia64_sched_init_global,
+       ia64_sched_finish_global): New static functions to implement
+       hooks from gcc_target.sched.
+       (spec_check_no, max_uid, pending_data_specs): New static variables.
+        (ia64_mode_to_int, ia64_gen_spec_insn, ia64_spec_check_p,
+       ia64_spec_check_src_p): New static functions.
+        (ia64_adjust_cost): Renamed to ia64_adjust_cost_2.
+        (TARGET_SCHED_ADJUST_COST): Removed.
+        (TARGET_SCHED_ADJUST_COST_2, TARGET_SCHED_INIT_GLOBAL,
+       TARGET_SCHED_FINISH_GLOBAL, TARGET_SCHED_H_I_D_EXTENDED,
+       TARGET_SCHED_SPECULATE_INSN, TARGET_SCHED_NEEDS_BLOCK_P,
+       TARGET_SCHED_GEN_CHECK,
+       TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC,
+        TARGET_SCHED_SET_SCHED_FLAGS): New macros.
+        (update_set_flags, group_barrier_needed, set_src_needs_barrier):
+       Fixed to handle speculation checks.
+        (rtx_needs_barrier): Fixed to handle speculative loads and
+        their checks.
+        (ia64_variable_issue): Added code to count speculative loads and their
+        checks.
+        (ia64_first_cycle_multipass_dfa_lookahead_guard): Fixed to handle
+        speculative loads.
+        (enum SPEC_MODES, enum SPEC_GEN_LD_MAP, SPEC_GEN_CHECK_OFFSET):
+        New enumerations.
+        (SPEC_GEN_EXTEND_OFFSET, SPEC_N, SPEC_GEN_CHECK_MUTATION_OFFSET):
+        New constants.
+        (ia64_ld_address_bypass_p): Fixed to handle speculative loads.
+       (ia64_reorg): Reset stops_p to NULL after it is freed.
+        * config/ia64/ia64.md (UNSPEC_LDA, UNSPEC_LDS, UNSPEC_LDSA,
+       UNSPEC_LDCCLR, UNSPEC_CHKACLR, UNSPEC_CHKS): New constants.
+        (itanium_class): chk_s renamed to chk_s_i.  New constants: chk_s_f,
+        chk_a.
+        (data_speculative, control_speculative, check_load): New attributes.
+        (mov<mode>_advanced, mov<mode>_speculative,
+        mov<mode>_speculative_advanced, zero_extend<mode>di2_advanced,
+        zero_extend<mode>di2_speculative,
+        zero_extend<mode>di2_speculative_advanced): New patterns for
+        data and control speculative loads.
+        (mov<mode>_clr, zero_extend<mode>di2_clr): New patterns for
+        check loads.
+        (advanced_load_check_clr_<mode>, speculation_check_<mode>):
+        New pattern for data and control speculation checks.
+       (MODE, MODE_FOR_EXTEND, output_a, output_s, output_sa, output_c_clr,
+       ld_reg_constr, ldc_reg_constr, chk_reg_constr, mem_constr,
+       reg_pred_prefix, ld_class, chka_class, chks_class, attr_yes):
+       Auxiliary definitions for the patterns.
+        * config/ia64/itanium1.md (1_fldc, 1_fldpc, 1_ldc, 1_chk_s_f, 1_chk_a,
+        1b_fldc, 1b_fldpc, 1b_ldc, 1b_chk_s_f, 1b_chk_a): New resource
+        constraints.
+       (1_fld, 1_fldp, 1_ld, 1b_fld, 1b_fldp, 1b_ld): Add a condition
+        for speculation.
+        (1_chk_s, 1b_chk_s): Renamed to 1_chk_s_i, 1b_chk_s_i.
+        * config/ia64/itanium2.md (2_flda, 2_fldc, 2_fldpc, 2_ldc, 2_chk_s_f,
+       2_chk_a, 2b_flda, 2b_fldc, 2b_fldpc, 2b_ldc, 2b_chk_s_f, 2b_chk_a):
+       New resource constraints.
+       (2_fld, 2_fldp, 2_ld, 2b_fld, 2b_fldp, 2b_ld): Add a condition
+        for speculation.
+        (2_chk_s, 2b_chk_s): Renamed to 2_chk_s_i, 2b_chk_s_i.
+        * config/ia64/ia64.opt (msched-br-data-spec, msched-ar-data-spec,
+        msched-control-spec, msched-br-in-data-spec, msched-ar-in-data-spec,
+        msched-in-control-spec, msched-ldc, msched-control-ldc,
+        msched-spec-verbose, msched-prefer-non-data-spec-insns,
+        msched-prefer-non-control-spec-insns,
+       msched-count-spec-in-critical-path): New flags to tune speculative
+       scheduling.
+       * doc/invoke.texi (msched-br-data-spec, msched-ar-data-spec,
+        msched-control-spec, msched-br-in-data-spec, msched-ar-in-data-spec,
+        msched-in-control-spec, msched-ldc, msched-control-ldc,
+        msched-spec-verbose, msched-prefer-non-data-spec-insns,
+        msched-prefer-non-control-spec-insns,
+       msched-count-spec-in-critical-path): Document new flags.
+
+2006-03-16  Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
+
+        * target.h (struct spec_info_def): New opaque declaration.
+        (struct gcc_target.sched): New fields: adjust_cost_2, h_i_d_extended,
+        speculate_insn, needs_block_p, gen_check,
+        first_cycle_multipass_dfa_lookahead_guard_spec, set_sched_flags.
+        * target-def.h (TARGET_SCHED_ADJUST_COST_2,
+        TARGET_SCHED_H_I_D_EXTENDED, TARGET_SCHED_SPECULATE_INSN,
+        TARGET_SCHED_NEEDS_BLOCK_P, TARGET_SCHED_GEN_CHECK,
+        TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC,
+        TARGET_SCHED_SET_SCHED_FLAGS): New macros to initialize fields in
+        gcc_target.sched.
+        (TARGET_SCHED): Use new macros.
+        * rtl.h (copy_DEPS_LIST_list): New prototype.
+        * sched-int.h (struct sched_info): Change signature of new_ready field,
+       adjust all initializations. New fields: add_remove_insn,
+        begin_schedule_ready, add_block, advance_target_bb, fix_recovery_cfg,
+       region_head_or_leaf_p.
+        (struct spec_info_def): New structure declaration.
+        (spec_info_t): New typedef.
+        (struct haifa_insn_data): New fields: todo_spec, done_spec, check_spec,
+        recovery_block, orig_pat.
+        (glat_start, glat_end): New variables declaraions.
+        (TODO_SPEC, DONE_SPEC, CHECK_SPEC, RECOVERY_BLOCK, ORIG_PAT):
+       New access macros.
+        (enum SCHED_FLAGS): New constants: SCHED_RGN, SCHED_EBB,
+        DETACH_LIFE_INFO, USE_GLAT.
+        (enum SPEC_SCHED_FLAGS): New enumeration.
+        (NOTE_NOTE_BB_P): New macro.
+        (extend_dependency_caches, xrecalloc, unlink_bb_notes, add_block,
+        attach_life_info, debug_spec_status, check_reg_live): New functions.
+        (get_block_head_tail): Change signature to get_ebb_head_tail, adjust
+        all uses in ddg.c, modulo-sched.c, haifa-sched.c, sched-rgn.c,
+        sched-ebb.c
+       (get_dep_weak, ds_merge): Prototype functions from sched-deps.c .
+        * ddg.c (get_block_head_tail): Adjust all uses.
+        * modulo-sched.c (get_block_head_tail): Adjust all uses.
+       (sms_sched_info): Initialize new fields.
+       (contributes_to_priority): Removed.
+        * haifa-sched.c (params.h): New include.
+       (get_block_head_tail): Adjust all uses.
+        (ISSUE_POINTS): New macro.
+        (glat_start, glat_end): New global variables.
+        (spec_info_var, spec_info, added_recovery_block_p, nr_begin_data,
+       nr_be_in_data, nr_begin_control, nr_be_in_control, bb_header,
+       old_last_basic_block, before_recovery, current_sched_info_var,
+       rgn_n_insns, luid): New static variables.
+        (insn_cost1): New function.  Move logic from insn_cost to here.
+        (find_insn_reg_weight1): New function.  Move logic from
+        find_insn_reg_weight to here.
+        (reemit_notes, move_insn, max_issue): Change signature.
+        (move_insn1): Removed.
+        (extend_h_i_d, extend_ready, extend_global, extend_all, init_h_i_d,
+        extend_bb): New static functions to support extension of scheduler's
+        data structures.
+        (generate_recovery_code, process_insn_depend_be_in_spec,
+        begin_speculative_block, add_to_speculative_block,
+        init_before_recovery, create_recovery_block, create_check_block_twin,
+        fix_recovery_deps): New static functions to support
+        generation of recovery code.
+        (fix_jump_move, find_fallthru_edge, dump_new_block_header,
+        restore_bb_notes, move_block_after_check, move_succs): New static
+        functions to support ebb scheduling.
+        (init_glat, init_glat1, attach_life_info1, free_glat): New static
+        functions to support handling of register live information.
+        (associate_line_notes_with_blocks, change_pattern, speculate_insn,
+       sched_remove_insn, clear_priorities, calc_priorities, bb_note,
+       add_jump_dependencies): New static functions.
+        (check_cfg, has_edge_p, check_sched_flags): New static functions for
+       consistancy checking.
+       (debug_spec_status): New function to call from debugger.
+       (priority): Added code to handle speculation checks.
+       (rank_for_schedule): Added code to distinguish speculative instructions.
+       (schedule_insn): Added code to handle speculation checks.
+       (unlink_other_notes, rm_line_notes, restore_line_notes, rm_other_notes):
+       Fixed to handle ebbs.
+        (move_insn): Added code to handle ebb scheduling.
+       (max_issue): Added code to use ISSUE_POINTS of instructions.
+        (choose_ready): Added code to choose between speculative and
+        non-speculative instructions.
+        (schedule_block): Added code to handle ebb scheduling and scheduling of
+        speculative instructions.
+        (sched_init): Initialize new variables.
+        (sched_finish): Free new variables.  Print statistics.
+        (try_ready): Added code to handle speculative instructions.
+        * lists.c (copy_DEPS_LIST_list): New function.
+        * sched-deps.c (extend_dependency_caches): New function.  Move logic
+        from create_dependency_caches to here.
+       (get_dep_weak, ds_merge): Make global.
+        * genattr.c (main): Code to output prototype for
+        dfa_clear_single_insn_cache.
+        * genautomata.c (DFA_CLEAR_SINGLE_INSN_CACHE_FUNC_NAME): New macros.
+        (output_dfa_clean_insn_cache_func): Code to output
+        dfa_clear_single_insn_cache function.
+        * sched-ebb.c (target_n_insns): Remove.  Adjust all users to use
+       n_insns.
+        (can_schedule_ready_p, fix_basic_block_boundaries, add_missing_bbs):
+        Removed.
+        (n_insns, dont_calc_deps, ebb_head, ebb_tail, last_bb):
+        New static variables.
+        (begin_schedule_ready, add_remove_insn, add_block1, advance_target_bb,
+       fix_recovery_cfg, ebb_head_or_leaf_p): Implement hooks from
+       struct sched_info.
+        (ebb_sched_info): Initialize new fields.
+       (get_block_head_tail): Adjust all uses.
+       (compute_jump_reg_dependencies): Fixed to use glat_start.
+       (schedule_ebb): Code to remove unreachable last block.
+        (schedule_ebbs): Added code to update register live information.
+        * sched-rgn.c (region_sched_info): Initialize new fields.
+       (get_block_head_tail): Adjust all uses.
+       (last_was_jump): Removed.  Adjust users.
+        (begin_schedule_ready, add_remove_insn, insn_points, extend_regions,
+       add_block1, fix_recovery_cfg, advance_target_bb, region_head_or_leaf_p):
+       Implement new hooks.
+        (check_dead_notes1): New static function.
+        (struct region): New fields: dont_calc_deps, has_real_ebb.
+        (RGN_DONT_CALC_DEPS, RGN_HAS_REAL_EBB): New access macros.
+        (BB_TO_BLOCK): Fixed to handle EBBs.
+        (EBB_FIRST_BB, EBB_LAST_BB): New macros.
+        (ebb_head): New static variable.
+        (debug_regions, contributes_to_priority): Fixed to handle EBBs.
+        (find_single_block_regions, find_rgns, find_more_rgns): Initialize
+       new fields.
+       (compute_dom_prob_ps): New assertion.
+        (check_live_1, update_live_1): Fixed to work with glat_start instead of
+        global_live_at_start.
+       (init_ready_list): New assertions.
+       (can_schedule_ready_p): Split update code to begin_schedule_ready.
+       (new_ready): Add support for BEGIN_CONTROL speculation.
+        (schedule_insns): Fixed code that updates register live information
+        to handle EBBs.
+        (schedule_region): Fixed to handle EBBs.
+       (init_regions): Use extend_regions and check_dead_notes1.
+        * params.def (PARAM_MAX_SCHED_INSN_CONFLICT_DELAY,
+        PARAM_SCHED_SPEC_PROB_CUTOFF): New parameters.
+       * doc/tm.texi (TARGET_SCHED_ADJUST_COST_2, TARGET_SCHED_H_I_D_EXTENDED,
+       TARGET_SCHED_SPECULATE_INSN, TARGET_SCHED_NEEDS_BLOCK_P,
+       TARGET_SCHED_GEN_CHECK,
+       TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC,
+       TARGET_SCHED_SET_SCHED_FLAGS): Document.
+        * doc/invoke.texi (max-sched-insn-conflict-delay,
+       sched-spec-prob-cutoff): Document.
+
+2006-03-16  Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
+
+        * sched-int.h (struct haifa_insn_data): New fields: resolved_deps,
+       inter_tick, queue_index.
+       (struct sched_info): Change signature of init_ready_list field.
+       Adjust all initializations.
+       (RESOLVED_DEPS): New access macro.
+       (ready_add): Remove prototype.
+       (try_ready): Add prototype.
+       * sched-rgn.c (init_ready_list): Use try_ready.
+       (schedule_region): Initialize
+       current_sched_info->{sched_max_insns_priority, queue_must_finish_empty}.
+       * sched-ebb.c (new_ready): Remove.  Adjust ebb_sched_info.
+       (init_ready_list): Use try_ready.
+       (schedule_ebb): Initialize current_sched_info->sched_max_insns_priority.
+       * lists.c (remove_list_elem): Remove `static'.
+       (remove_free_INSN_LIST_elem): New function.
+       * rtl.h (remove_list_elem, remove_free_INSN_LIST_elem): Add prototypes.
+       * haifa-sched.c (INTER_TICK, QUEUE_INDEX): New macros.
+       (INVALID_TICK, MIN_TICK, QUEUE_SCHEDULED, QUEUE_NOWHERE, QUEUE_READY):
+       New constants.
+       (readyp): New variable.
+       (queue_remove, ready_remove_insn, fix_inter_tick, fix_tick_ready,
+       change_queue_index, resolve_dep): New static functions.
+       (try_ready): New function.  Adjust callers in sched-rgn.c and
+       sched-ebb.c to use it instead of ready_add.
+       (clock_var): Move at the begining of file.
+       (rank_for_schedule): Fix typo.
+       (queue_insn): Add assertion.  Handle QUEUE_INDEX.
+       (ready_lastpos): Enforce assertion.
+       (ready_add): Make it static.  Handle QUEUE_INDEX.  Add new argument,
+       update all callers.
+       (ready_remove_first, ready_remove): Handle QUEUE_INDEX.
+       (schedule_insn): Rewrite to use try_ready and resolve_dep.
+       (queue_to_ready): Use free_INSN_LIST_list.
+       (early_queue_to_ready): Fix typo.
+       (schedule_block): Init readyp.  Move init_ready_list call after the
+       initialization of clock_var.  Fix error in rejecting insn by
+       targetm.sched.dfa_new_cycle.  Add call to fix_inter_tick.  Remove code
+       that previously corrected INSN_TICKs.  Add code for handling
+       QUEUE_INDEX.
+       (set_priorities): Fix typo.
+       (sched_init): Initialize INSN_TICK, INTER_TICK and QUEUE_INDEX.
+       Clarify comment and code that keeps current_sched_info->next_tail
+       non-null.
+
+2006-03-16  Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
+
+       * sched-rgn.c (extend_rgns): New static function.
+       (find_rgns): Use it.
+       (gather_region_statistics, print_region_statistics): New static
+       functions.
+       * params.def (PARAM_MAX_SCHED_EXTEND_REGIONS_ITERS): New parameter.
+        * doc/invoke.texi (max-sched-extend-regions-iters): Document.
+
+2006-03-16  Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
+            Andrey Belevantsev <abel@ispras.ru>
+
+       * ddg.c (build_intra_loop_deps): Adjust add_forward_dependence call.
+        * lists.c (unused_deps_list): New variable.
+       (free_list): Add assertions to verify the proper distinguishing 
+        between INSN_LISTs and DEPS_LISTs.
+        (find_list_elem, remove_list_elem, remove_list_node): New static
+       functions.
+        (alloc_DEPS_LIST, free_DEPS_LIST, free_DEPS_LIST_node,
+        remove_free_INSN_LIST_elem, remove_free_DEPS_LIST_elem,
+        remove_free_INSN_LIST_node, remove_free_DEPS_LIST_node): New functions.
+        (alloc_INSN_LIST): Assert that the list we're working on is indeed
+       an INSN_LIST.
+        (free_INSN_LIST_node): Likewise.
+       * modulo-sched.c (current_sched_info): Initialize flags field.
+       * reg-notes.def: Exchange DEP_ANTI and DEP_OUTPUT.
+       * rtl.def (DEPS_LIST): Define.
+        * rtl.h: Declare new functions from lists.c.
+        * sched-deps.c (spec_dependency_cache): New static variable.
+        (maybe_add_or_update_back_dep_1, add_back_dep): New static functions.
+        (add_dependence): Change return type to void.  Move the logic to ...
+        (add_or_update_back_dep_1): ... here.  Handle speculative dependencies.
+        (delete_all_dependences): Add comment about forward_dependency_cache.
+       Handle spec_dependency_cache.  Handle DEPS_LISTs.
+        (fixup_sched_groups): Clarify the change of priority of output
+        and anti dependencies.
+        (sched_analyze_2): Adjust add_dependence calls to create data
+       speculative dependence.
+        (add_forward_dependence): Renamed to add_forw_dep, change prototype.
+       Adjust all callers.  Handle DEPS_LISTS.
+        (compute_forward_dependences): Use add_forw_dep.  Sort LOG_LINKs in
+       presence of speculation.
+        (init_dependency_caches, free_dependency_caches):
+       Handle spec_dependency_cache.
+        (adjust_add_sorted_back_dep, adjust_back_add_forw_dep, delete_forw_dep,
+       estimate_dep_weak, get_dep_weak, ds_merge, check_dep_status):
+       New static functions.
+        (add_or_update_back_dep, add_or_update_back_forw_dep,
+       add_back_forw_dep, delete_back_forw_dep): New functions.
+       * sched-int.h (ds_t, dw_t): New typedefs.
+       (struct sched_info): Add new field flags.
+       (struct haifa_insn_data): Add new bitfield has_internal_dep.
+       Prototype new sched-deps.c functions.
+        (HAS_INTERNAL_DEP, DEP_STATUS): New access macros.
+       (BITS_PER_DEP_STATUS, BITS_PER_DEP_WEAK, DEP_WEAK_MASK, MAX_DEP_WEAK,
+       MIN_DEP_WEAK, NO_DEP_WEAK, UNCERTAIN_DEP_WEAK, BEGIN_DATA, BE_IN_DATA,
+       BEGIN_CONTROL, BE_IN_CONTROL, BEGIN_SPEC, DATA_SPEC, CONTROL_SPEC,
+       SPECULATIVE, BE_IN_SPEC, FIRST_SPEC_TYPE, LAST_SPEC_TYPE,
+       SPEC_TYPE_SHIFT, DEP_TRUE, DEP_OUTPUT, DEP_ANTI, DEP_TYPES, HARD_DEP):
+       New constants.
+        (enum SPEC_TYPES_OFFSETS, enum DEPS_ADJUST_RESULT, enum SCHED_FLAGS):
+       New enums.
+       * sched-rgn.c (current_sched_info): Initialize flags field.
+       (schedule_insns): Initialize current_sched_info before the sched_init
+       call.
+       * sched-ebb.c (current_sched_info): Initialize flags field.
+       (add_deps_for_risky_insns): Use control_flow_insn_p instead of JUMP_P.
+       Call add_or_update_back_dep instead of add_dependence.
+       Create control speculative dependencies.
+       (schedule_insns): Initialize current_sched_info before the sched_init
+       call.
+
+2006-03-16  Kaz Kojima  <kkojima@gcc.gnu.org>
+
+       * config/sh/linux-unwind.h (shmedia_fallback_frame_state): Set
+       fs->signal_frame.
+       (sh_fallback_frame_state): Likewise.
+
+2006-03-15  Geoffrey Keating  <geoffk@apple.com>
+
+       * config.gcc (*-*-darwin*): Don't build crt2.o for all Darwin ports.
+       Do switch on default_use_cxa_atexit.
+       (powerpc*-*-darwin*): Build crt2.o on powerpc.
+       * config/darwin-crt3.o: New.
+       * config/darwin.h (LINK_SPEC): If -shared-libgcc, make linker default
+       to 10.3.  Pass '-multiply_defined suppress' if crt3.o is in use.
+       (STARTFILE_SPEC): Add crt3.o when -shared-libgcc and appropriate
+       OS version.
+       * config/rs6000/t-darwin: Move crt2.o building to here.
+       * config/rs6000/darwin.h (C_COMMON_OVERRIDE_OPTIONS): Update
+       Mac OS version for using __cxa_get_exception_ptr.  Don't test versions
+       of __cxa_atexit.
+
+2006-03-15  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
+
+       * config/vax/vax.c (nonindexed_address_p): Change logical negation
+       from '! xxx' to '!xxx' for coding-style conformance.
+       * config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Likewise.
+       (EXTRA_CONSTRAINT): Likewise.
+       * config/vax/vax.md (four unnamed insns): Likewise.
+       
+2006-03-15  Paul Brook  <paul@codesourcery.com>
+
+       * config/arm/arm.c (minipool_pad): New.
+       (add_minipool_forward_ref): Include pool alignment padding in address
+       calculation.
+       (push_minipool_fix): Set minipool_pad.
+       (minipool_pad): Ditto.
+
+2006-03-15  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
+
+       * config/vax/vax.c (split_quadword_operands): Use MEM_P()
+       instead of GET_CODE() == MEM and REG_P() instead of
+       GET_CODE() == REG.
+       (print_operand_address): Likewise.
+       (vax_address_cost): Likewise.
+       (vax_rtx_costs): Likewise.
+       (vax_notice_update_cc): Likewise.
+       (vax_output_int_add): Likewise.
+       (INDEX_REGISTER_P): Likewise.
+       (BASE_REGISTER_P): Likewise.
+       (nonindexed_address_p): Likewise.
+       (vax_mode_dependent_address_p): Likewise.
+       * config/vax/vax.h (EXTRA_CONSTRAINT): Likewise.
+       (PRINT_OPERAND): Likewise.
+       * config/vax/vax.md (ashlsi3): Likewise.
+       (ashlsi3): Likewise.
+       (some more unnamed insns): Likewise.
+
+2006-03-15  Kazu Hirata  <kazu@codesourcery.com>
+
+       * tree-ssa-dce.c (EXECUTE_IF_CONTROL_DEPENDENT): Make it an
+       iterator-style macro.
+       (mark_control_dependent_edges_necessary): Update the use of
+       EXECUTE_IF_CONTROL_DEPENDENT.
+
+2006-03-15  J"orn Rennecke <joern.rennecke@st.com>
+
+       * config/sh/predicates.md (cache_address_operand): Special.
+       (ua_address_operand): Likewise.
+
+2006-03-15  Zdenek Dvorak <dvorakz@suse.cz>
+
+       * haifa-sched.c (unlink_other_notes, reemit_notes): Do not handle
+       loop notes.
+       * sched-deps.c (sched_analyze_insn, sched_analyze): Ditto.
+
+2006-03-15  Andreas Schwab  <schwab@suse.de>
+
+       * gensupport.c (identify_predicable_attribute): Don't free p_false
+       when it is still in use.
+
+2006-03-15  Eric Botcazou  <ebotcazou@libertysurf.fr>
+
+       * config.gcc (default with_cpu setting) <sparc*-*-*>: Do not modify
+       the default setting here.
+
+2006-03-14  Steven Bosscher  <stevenb.gcc@gmail.com>
+
+       * tree-pass.h (pass_cfg): Remove.
+       * alias.c (rest_of_handle_cfg, pass_cfg): Remove.
+       * passes.c (pass_cfg): Don't run it.
+
+2006-03-14  Kazu Hirata  <kazu@codesourcery.com>
+
+       * Makefile.in (reg-stack.o): Don't depend on gt-reg-stack.h.
+       * reg-stack.c (stack_regs_mentioned_data): Change the type to
+       VEC(char,heap) *.
+       (stack_regs_mentioned): Update the uses of
+       stack_regs_mentioned_data.  Don't access the array beyond its
+       end.
+       (reg_to_stack): Update the uses of stack_regs_mentioned_data.
+       Don't include gt-reg-stack.h.
+
+       * config/bfin/bfin.h (UNALIGNED_WORD_ASM_OP): Remove.
+       * system.h (UNALIGNED_WORD_ASM_OP): Poison.
+
+       * combine.c (UWIDE_SHIFT_LEFT_BY_BITS_PER_WORD): Remove.
+
+       PR middle-end/26684
+       * reg-stack.c (stack_regs_mentioned_data): Put it undef #ifdef
+       STACK_REGS.
+
+2006-03-14  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
+
+       * pa/pa32-linux.h (CRT_CALL_STATIC_FUNCTION): Fix typo.
+
+2006-03-14  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/26672
+       * tree-ssa-propagate.c (set_rhs): Don't walk DEFs if not in
+       SSA form.
+
+2006-03-14  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/26667
+       * ipa-inline.c (cgraph_check_inline_limits): Walk the correct
+       node for the callees.  Always allow inlining if it will shrink
+       the function size.
+
+2006-03-14  Richard Guenther  <rguenther@suse.de>
+
+       PR middle-end/26659
+       * builtins.c (get_pointer_alignment): Prefer alignment
+       information from decls over that from types.
+
+2006-03-14  Andrew Pinski  <pinskia@physics.uc.edu>
+
+       PR target/26657
+       * config/darwin.h (LINK_COMMAND_SPEC): Handle -fopenmp.
+
+2006-03-14  Joseph S. Myers  <joseph@codesourcery.com>
+
+       * config/rs6000/rs6000.opt (mdlmzb): New option.
+       (msched-prolog, msched-epilog): Use Var not Mask.
+       * doc/invoke.texi (-mdlmzb): Document.
+       * config/rs6000/rs6000.c (TARGET_DEFAULT_TARGET_FLAGS): Remove
+       MASK_SCHED_PROLOG.
+       (rs6000_override_options): Enable -mdlmzb for 405 and 440.
+       * config/rs6000/rs6000.md: Add dlmzb support for 405 and 440.
+
+2006-03-13  Uttam Pawar  <uttamp@us.ibm.com>
+
+       PR rtl-optimization/25739
+       * bt-load.c (augment_live_range): Free tos pointer.
+
+       * gensupport.c (identify_predicable_attribute): Free
+       p_false pointer.
+       * gcov.c (create_file_names): Free name pointer.
+
+2006-03-13  Roger Sayle  <roger@eyesopen.com>
+
+       PR middle-end/26557
+       * stmt.c (emit_case_nodes): Handle the case where the index is a
+       CONST_INT, where the comparison mode is specified by the index type.
+
+2006-03-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
+
+       * pa/pa32-linux.h (CRT_CALL_STATIC_FUNCTION): Define when CRTSTUFFS_O
+       is defined.
+
+2006-03-13  Richard Sandiford  <richard@codesourcery.com>
+
+       * config/mips/mips.md (*branch_fp): Use %Z2 for the condition.
+       (*branch_fp_inverted): Likewise.
+
+2006-03-13  Jakub Jelinek  <jakub@redhat.com>
+
+       PR middle-end/25989
+       * omp-low.c (expand_omp_for_generic): Mark istart0
+       and iend0 as addressable.
+
+2006-03-13  Jie Zhang  <jie.zhang@analog.com>
+
+       * config/bfin/uclinux.h: Define _GNU_SOURCE in CPLUSPLUS_CPP_SPEC.
+
+2006-03-13  Jeff Law  <law@redhat.com>
+
+       * tree-vrp.c (stmt_interesting_for_vrp): Some statements with
+       virtual operands are interesting.
+       (vrp_visit_stmt): Corresponding changes.
+
+2006-03-13  Bernd Schmidt  <bernd.schmidt@analog.com>
+
+       * config/bfin/lib1funcs.asm (___umodsi3): Use stack to save contents
+       of RETS.
+       * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): If
+       TARGET_ID_SHARED_LIBRARY, define __ID_SHARED_LIB__.
+       * config/bfin/crti.S: Use it instead of __PIC__.
+       * config/bfin/crtn.S: Likewise.
+
+       * config/bfin/bfin.md (call_value_symbol, sibcall_value_symbol,
+       call_symbol, sibcall_symbol): Disallow if TARGET_ID_SHARED_LIBRARY,
+       not if flag_pic.
+       Lose 'G' modifier for call operand.
+       * config/bfin/bfin.c (print_operand) <case SYMBOL_REF>: Don't
+       recognize 'G' modifier.
+
+2006-03-13  Eric Botcazou  <ebotcazou@adacore.com>
+
+       PR middle-end/18859
+       * gimplify.c (gimplify_switch_expr): Discard empty ranges.
+       * stmt.c (expand_case): Likewise.
+
+2006-03-13  Zdenek Dvorak <dvorakz@suse.cz>
+
+       PR rtl-optimization/26254
+       * loop-invariant.c (seq_insns_valid_p): New function.
+       (move_invariant_reg): Only emit new code if it is valid.
+
+2006-03-13  Zdenek Dvorak <dvorakz@suse.cz>
+
+       * cfgrtl.c (last_loop_beg_note, back_edge_of_syntactic_loop_p):
+       Removed.
+       (force_nonfallthru_and_redirect): Do not use last_loop_beg_note.
+       (rtl_split_edge): Do not use back_edge_of_syntactic_loop_p.
+       (commit_one_edge_insertion): Do not look for loop notes.
+
+2006-03-13  Zdenek Dvorak <dvorakz@suse.cz>
+
+       * jump.c (follow_jumps): Do not check for loop notes.  Move check for
+       flag_test_coverage out of loop.
+
+2006-03-13  Zdenek Dvorak <dvorakz@suse.cz>
+
+       * final.c (shorten_branches): Remove outdated comment, and turn
+       the if branch that guards it to continue.
+
+2006-03-13  Zdenek Dvorak <dvorakz@suse.cz>
+
+       * cfgloop.c (flow_loop_dump): Do not dump loop->invalid field.
+       * cfgloop.h (struct loop): Remove unused fields.
+
+2006-03-13  Kazu Hirata  <kazu@codesourcery.com>
+
+       * doc/invoke.texi (-fdump-rtl-loop): Remove.
+       (-dL, -fdump-rtl-loop2): Update the dump file names 
+
+       * doc/invoke.texi: Update dump file names.
+
+2006-03-12  Steven Bosscher  <stevenb.gcc@gmail.com>
+
+       * predict.c (estimate_probability): Remove.
+       * profile.c (rest_of_handle_branch_prob, pass_branch_prob): Remove.
+       * basic-block.h (estimate_probability): Remove prototype.
+       * passes.c (finish_optimization_passes): Dump branch prediction or
+       profiling heuristics to the .profile tree dump.
+       (init_optimization_passes): Unqueue pass_branch_prob.
+
+       * doc/invoke.texi (-fdump-rtl-bp): Remove.
+
+2006-03-11  Steven Bosscher  <stevenb.gcc@gmail.com>
+
+       * rtl.def (LABEL_REF): Remove the field for LABEL_NEXTREF.
+       * rtl.h (LABEL_NEXTREF): Remove field accessor.
+
+2006-03-11  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * function.h (frame_offset_overflow): Declare.
+       * function.c (frame_offset_overflow): New function.
+       (assign_stack_local_1): Call it to detect that the offset overflows.
+       * cfgexpand.c (alloc_stack_frame_space): Likewise.
+
+2006-03-11  Steven Bosscher  <stevenb.gcc@gmail.com>
+
+       * config/sh/sh.c: Include alloc-pool.h.
+       (label_ref_list_pool): New alloc pool.
+       (label_ref_list_t): New type for lists of labels.
+       (struct pool_node): Make wend a label_ref_list_t.
+       (add_constant): Use the new type, eradicate LABEL_NEXTREF
+       references.
+       (dump_table): Likewise.
+       (sh_reorg): Set up the alloc pool before using add_constant and
+       dump_table, and destroy it when finishing.
+
+2006-03-11  Richard Sandiford  <richard@codesourcery.com>
+
+       * config/mips/mips.c: Remove redundant comment.
+
+2006-03-10  Jason Merrill  <jason@redhat.com>
+
+       PR c/26004
+       * gimplify.c (gimplify_modify_expr_rhs): Don't do return slot opt if 
+       the target was declared 'register'.
+
+2006-03-10  Adam Nemet  <anemet@caviumnetworks.com>
+
+       * genpreds.c (write_insn_constraint_len): Change definition of
+       insn_constraint_len to return size_t to match the declaration.
+
+2006-03-10  DJ Delorie  <dj@redhat.com>
+
+       * config/m32c/m32c.c (m32c_const_ok_for_constraint_p): Bit numbers
+       start at zero.
+       (m32c_expand_insv): Fix test for an AND mask.
+
+2006-03-10  Richard Guenther  <rguenther@suse.de>
+
+       PR middle-end/26565
+       * builtins.c (get_pointer_alignment): Handle component
+       references for field alignment.
+
+2006-03-10  J"orn Rennecke <joern.rennecke@st.com>
+
+       * config.gcc (sh*-superh-elf, sh*elf (newlib)): Use newlib.h
+       when building with libgloss.
+       (sh*elf): Implement --without-fp option.
+       (sh64-superh-linux*): Don't multilib. 
+
+2006-03-10  J"orn Rennecke <joern.rennecke@st.com>
+
+       * struct-equiv.c (rtx_equiv_p): Fix POST_MODIFY case.
+
+2006-03-09  Andrew Pinski  <pinskia@physics.uc.edu>
+
+       * tree-ssa-phiopt.c (tree_ssa_phiopt): Add cfgchanged variable.
+       Set it when one of the replacement functions returned true.
+       Return TODO_cleanup_cfg if cfgchanged is true.
+       (pass_phiopt) <todo_flags_finish>: Remove TODO_cleanup_cfg.
+
+2006-03-09  Adam Nemet  <anemet@caviumnetworks.com>
+
+       * combine.c (simplify_shift_const_1): Use gen_lowpart_or_truncate
+       instead of gen_lowpart.
+
+2006-03-09  Richard Sandiford  <richard@codesourcery.com>
+
+       * config/mips/mips-protos.h (mips_output_conditional_branch): Change
+       interface.
+       (mips_output_order_conditional_branch): Declare.
+       * config/mips/mips.h (MIPS_BRANCH): New macro.
+       * config/mips/mips.c (gen_conditional_branch): Use VOIDmode
+       for the comparison.  Use gen_condjump.
+       (mips_output_conditional_branch): Rework interface to take the
+       asm templates for a direct branch and the inverse of a direct branch.
+       (mips_output_order_conditional_branch): New function.
+       (mips_builtin_branch_and_move): New function.
+       (mips_expand_builtin_compare): Use it.  Use VOIDmode for the
+       branch condition.  Use gen_single_cc as the condition for
+       __builtin_mips_upper_* or __builtin_mips_lower_*.
+       (mips_expand_builtin_bposge): Use mips_builtin_branch_and_move.
+       Use VOIDmode for the branch condition.
+       * config/mips/predicates.md (order_operator): New predicate.
+       * config/mips/mips.md (UNSPEC_SINGLE_CC): New constant.
+       (branch_fp): Rename to...
+       (*branch_fp): ...this.  Remove mode from comparison operator.
+       Use new mips_output_conditional_branch interface.
+       (branch_fp_inverted): Rename to...
+       (*branch_fp_inverted): ...this and update as for *branch_fp.
+       (*branch_zero<mode>): Rename to...
+       (*branch_order<mode>): ...this.  Remove mode from comparison operator.
+       Use mips_output_order_conditional_branch.  Only accept ordered
+       comparisons.  
+       (*branch_zero<mode>_inverted): Rename to...
+       (*branch_order<mode>_inverted): ...this and update as for
+       *branch_order<mode>.
+       (*branch_equality<mode>): Accept zero as the second operand to
+       the equality operator.  Use the new mips_output_conditional_branch
+       interface.
+       (*branch_equality<mode>_inverted): Likewise.
+       (condjump): New expander.
+       * config/mips/mips-dsp.md (mips_bposge): Remove mode from comparison
+       operator.
+       * config/mips/mips-ps-3d.md (bc1any4t, bc1any4f): Likewise.
+       (bc1any2t, bc1any2f): Likewise.
+       (single_cc): New expander.
+       (*branch_upper_lower, *branch_upper_lower_inverted): New patterns.
+
+2006-03-09  Richard Sandiford  <richard@codesourcery.com>
+
+       * doc/md.texi: Update documentation of MIPS constraints.
+       * config/mips/constraints.md: New file.
+       * config/mips/mips.md: Include it.
+       * config/mips/mips.c (mips_char_to_class): Delete.
+       (override_options): Don't initialize mips_char_to_class.
+       * config/mips/mips.h (mips_char_to_class): Delete.
+       (REG_CLASS_FROM_LETTER): Delete.
+       (CONST_OK_FOR_LETTER_P): Delete.
+       (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
+       (EXTRA_CONSTRAINT_Y): Delete.
+       (EXTRA_CONSTRAINT_STR): Delete.
+       (CONSTRAINT_LEN): Delete.
+       (EXTRA_MEMORY_CONSTRAINT): Delete.
+
+2006-03-09  Diego Novillo  <dnovillo@redhat.com>
+
+       * tree-cfg.c (move_block_to_fn): Remove the statements from the
+       original fn's eh regions.
+
+2006-03-09  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * fold-const.c (build_range_check): Make sure to use a valid type to
+       apply the "(c>=low) && (c<=high) into (c-low>=0) && (c-low<=high-low)"
+       transformation.
+
+       (range_predecessor): New static function.
+       (range_successor): Likewise.
+       (merge_ranges): Use them to compute predecessors and successors of
+       range bounds.
+
+2006-03-09  Roger Sayle  <roger@eyesopen.com>
+
+       PR middle-end/26561
+       * fold-const.c (fold_div_compare): When optimizing X/C1 op C2 as
+       X op C3, consider whether C3 overflows towards +Inf or -Inf.
+
+2006-03-08  DJ Delorie  <dj@redhat.com>
+
+       * config/m32c/addsub.md (addqi3): Disparage a0/a1.
+       (addpsi3): Expand to include memory operands.  Remove
+       reload-specific splits.
+       * config/m32c/bitops.md (bset_qi, bset_hi, bclr_qi): New.
+       (andqi3_16, andhi3_16, iorqi3_16, iorhi3_16): New.
+       (andqi3_24, andhi3_24, iorqi3_24, iorhi3_24): New.
+       (andqi3, andhi3, iorqi3, iorhi3): Convert to expanders.
+       (shift1_qi, shift1_hi, insv): New.
+       * config/m32c/cond.md (cbranchqi4, cbranchhi4): Remove.
+       (cbranch<mode>4, stzx_16, stzx_24_<mode>, stzx_reversed,
+       cmp<mode>, b<code>, s<code>, s<code>_24, movqicc, movhicc,
+       cond_to_int): New.
+       * config/m32c/m32c-protos.h: Update as needed.
+       * config/m32c/m32c.c (m32c_reg_class_from_constraint): Don't
+       default the Rcr, Rcl, Raw, and Ral constraints.  Add Ra0 and Ra1.
+       Fail for unrecognized R* constraints.
+       (m32c_cannot_change_mode_class): Be more picky about pseudos.
+       (m32c_const_ok_for_constraint_p): Add Imb, Imw, and I00.
+       (m32c_extra_constraint_p2): Allow (mem (plus (plus fb int) int)).
+       Add Sp constraint.
+       (m32c_init_libfuncs): New.
+       (m32c_legitimate_address_p): Add debug wrapper.
+       (m32c_rtx_costs): New.
+       (m32c_address_cost): New.
+       (conversions): Add 'B' prefix.
+       (m32c_print_operand): 'h' and 'H' pick lower and upper halves of
+       operands, or word regnames for QI operands.  'B' prints bit
+       position.
+       (m32c_expand_setmemhi): New.
+       (m32c_expand_movmemhi): New.
+       (m32c_expand_movstr): New.
+       (m32c_expand_cmpstr): New.
+       (m32c_prepare_shift): Shift counts are limited to 16 bits at a time.
+       (m32c_expand_neg_mulpsi3): Handle non-ints.
+       (m32c_cmp_flg_0): New.
+       (m32c_expand_movcc): New.
+       (m32c_expand_insv): New.
+       (m32c_scc_pattern): New.
+       * config/m32c/m32c.h (reg classes): Add AO_REGS and A1_REGS.  Take
+       a0/a1 out of SIregs.
+       (STORE_FLAG_VALUE): New.
+       * config/m32c/m32c.md: Add unspecs for string moves.  Define various mode and
+       code macros.
+       (no_insn): New.
+       * config/m32c/mov.md: Make constraints more liberal.
+       (zero_extendqihi2): Optimize r0/r1 case.
+       * config/m32c/muldiv.md (mulpsi3): Check for intvals.
+       * config/m32c/predicates.md (m32c_any_operand): New.
+       (m32c_nonimmediate_operand): New.
+       (m32c_hl_operand): New.
+       (m32c_r3_operand): New.
+       (ap_operand): New.
+       (ma_operand): New.
+       (memsym_operand): New.
+       (memimmed_operand): New.
+       (a_qi_operand): New.
+       (m32c_eqne_operator): New.
+       (m32c_1bit8_operand): New.
+       (m32c_1bit16_operand): New.
+       (m32c_1mask8_operand): New.
+       (m32c_1mask16_operand): New.
+       * config/m32c/blkmov.md: New file.
+       * config/m32c/t-m32c (MD_FILES): Add blkmov.
+
+2006-03-08  Andreas Tobler  <a.tobler@schweiz.ch>
+
+       * dwarf2out.c (expand_builtin_dwarf_sp_column): Make dwarf_regnum
+       unsigned to fix signed/unsigned comparison issue in
+       DWARF2_FRAME_REG_OUT.
+       (expand_builtin_init_dwarf_reg_sizes): Make i unsigned to fix signed/
+       unsigned comparison issue in DWARF2_FRAME_REG_OUT.
+
+       * tree-ssa-operands.c (finalize_ssa_def_ops): Move the declaration
+       of ptr into the ENABLE_CHECKING section.
+
+2006-03-08  Jeff Law  <law@redhat.com>
+
+       * tree-vrp.c (infer_value_range): Only count pointer uses
+       and dereferences if -fdelete-null-pointer-checks is enabled.
+
+       * tree-vrp.c (find_assert_locations): Infer value ranges for
+       single use pointers, but do not create ASSERT_EXPRs for them.
+       When a non-null range is inferred for a pointer, backwards
+       propagate that range to other equivalent pointers through the
+       use-def chain.
+
+2006-03-08  Paolo Bonzini  <bonzini@gnu.org>
+
+       PR bootstrap/26500
+       * Makefile.in (dvi, html, install-info): Invoke the corresponding
+       language hook targets.
+       * ada/Make-lang.in, cp/Make-lang.in, objc/Make-lang.in,
+       objcp/Make-lang.in: Create stub rules for dvi, html, install-info
+       if language hook targets were missing.
+
+2006-03-07  Zdenek Dvorak <dvorakz@suse.cz>
+
+       * tree-ssa-opfinalize.h: Removed.
+       * Makefile.in (tree-ssa-operands.o): Remove tree-ssa-opfinalize.h
+       dependency.
+       * tree-ssa-operands.c: Do not include tree-ssa-opfinalize.h.
+       (ALLOC_OPTYPE, APPEND_OP_AFTER, MOVE_HEAD_AFTER, MOVE_HEAD_TO_FREELIST,
+       INITIALIZE_USE, add_def_op, add_use_op, add_vuse_op, add_maydef_op,
+       add_mustdef_op, finalize_ssa_def_ops, finalize_ssa_use_ops,
+       finalize_ssa_v_may_def_ops, finalize_ssa_vuse_ops,
+       finalize_ssa_v_must_def_ops): New.
+
+2006-03-07  Kenneth Zadeck <zadeck@naturalbridge.com>
+
+       * df-scan.c: (df_bb_refs_record): Fix obvious typo with wrong
+       block as parameter.
+
+2006-03-07  Geoffrey Keating  <geoffk@apple.com>
+
+       * varasm.c (assemble_end_function): Say that 'fnname' is unused.
+
+       * config/i386/i386.c (ix86_delegitimize_address): Handle Darwin
+       addresses with offsets; reorganize.
+
+       * dwarf2out.c (DWARF2_FRAME_REG_OUT): Move up in file.
+       (expand_builtin_dwarf_sp_column): Call DWARF2_FRAME_REG_OUT.
+       (expand_builtin_init_dwarf_reg_sizes): Likewise.
+
+2006-03-08  David Billinghurst <David.Billinghurst@riotinto.com>
+
+       PR target/26588
+       * config/i386/cygwin.h (GOMP_SELF_SPECS): Define.
+
+2006-03-08  Ben Elliston  <bje@au.ibm.com>
+
+       * config/fp-bit.h (CMPtype): Typedef to a word mode integer.
+
+2006-03-07  Aldy Hernandez  <aldyh@redhat.com>
+
+       PR gomp/26238
+       * doc/passes.texi (Tree-SSA passes): Document omp lowering and
+       expansion.
+
+2006-03-07  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/26587
+       * tree-ssa-structalias.c (handle_ptr_arith): Handle MINUS_EXPR.
+
+2006-03-07  Richard Sandiford  <richard@codesourcery.com>
+
+       * varasm.c (assemble_variable): Fix setting of DECL_IN_TEXT_SECTION.
+
+2006-03-07  Richard Sandiford  <richard@codesourcery.com>
+
+       * hooks.c (hook_bool_mode_rtx_true): New function.
+       * hooks.h (hook_bool_mode_rtx_true): Declare.
+       * toplev.c (compile_file): Call output_shared_constant_pool.
+       * varasm.c (shared_constant_pool): New variable.
+       (assemble_start_function, assemble_end_function): Remove arguments
+       from call to output_constant_pool.
+       (create_constant_pool): New function, split out from...
+       (init_varasm_status): ...here.
+       (force_const_mem): Choose between the shared and per-function constant
+       pools.  Set current_function_uses_const_pool when reusing old entries
+       as well as when creating new ones.
+       (mark_constant): Ignore data argument.
+       (mark_constants): Remove pool argument.
+       (mark_constant_pool): Likewise.  Use current_function_uses_const_pool
+       to decide whether the function uses a constant pool.
+       (output_constant_pool_contents): New function, split out from...
+       (output_constant_pool): ...here.
+       (output_shared_constant_pool): New function.
+       (init_varasm_once): Initialize shared_constant_pool.
+       * output.h (output_constant_pool): Delete.
+       (output_shared_constant_pool): Declare.
+       * config/s390/s390-protos.h (s390_output_constant_pool): Delete.
+       * config/i386/i386.c (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Override.
+
+2006-03-06  Nick Clifton  <nickc@redhat.com>
+
+       * config/m32r/m32r.h (OPTIMIZATION_OPTIONS): Remove reference to
+       flag_strength_reduce.
+
 2006-03-06  Ben Elliston  <bje@au.ibm.com>
 
        * config.gcc: Add t-dfprules to $tmake_file for i*86-*-linux* and