+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
+ x86_64-*-linux* configurations.
+
+ * config/dfp-bit.h (CMPtype): Typedef to a word mode integer.
+ (LIBGCC2_WORDS_BIG_ENDIAN): Define.
+
+2006-03-05 Kazu Hirata <kazu@codesourcery.com>
+
+ * tree-ssa-threadupdate.c (rediscover_loops_after_threading):
+ Remove.
+ * basic-block.h: Remove the extern for
+ rediscover_loops_after_threading.
+
+ * cfgloop.c (cancel_loop): Make it static.
+ * cfgloop.h: Remove the prototype for cancel_loop.
+
+ * flow.c (recompute_reg_usage): Make it static.
+ * rtl.h: Remove the prototype for recompute_reg_usage.
+
+ * function.c (use_return_register): Make it static.
+ * function.h: Remove the prototype.
+
+2006-03-05 Kazu Hirata <kazu@codesourcery.com>
+
+ * recog.c (volatile_mem_p, validate_change_maybe_volatile):
+ Remove.
+ * recog.h: Remove the prototype for
+ validate_change_maybe_volatile.
+
+2006-03-05 Kazu Hirata <kazu@codesourcery.com>
+
+ * rtlanal.c (replace_reg): Remove.
+ * rtl.h: Remove the prototype for replace_reg.
+
+2006-03-05 Kazu Hirata <kazu@codesourcery.com>
+
+ * regclass.c (reg_scan_update): Remove.
+ (reg_scan_mark_refs): Remove the last argument.
+ * rtl.h: Remove the prototype for reg_scan_update.
+
+2006-03-04 Kazu Hirata <kazu@codesourcery.com>
+
+ * builtins.c, c-pragma.h, c-typeck.c, cgraph.c, cgraphunit.c,
+ combine.c, common.opt, config/dfp-bit.c, config/i386/i386.c,
+ config/m68k/m68k.c, config/m68k/m68k.md, config/mt/mt.c,
+ config/mt/mt.h, config/s390/s390.md, df-core.c, df-problems.c,
+ df-scan.c, df.h, diagnostic.c, expr.c, function.h, gimplify.c,
+ loop-invariant.c, omp-low.c, opts.c, passes.c,
+ rtl-factoring.c, rtlanal.c, struct-equiv.c, tree-cfgcleanup.c,
+ tree-ssa-loop-niter.c, tree-ssa-loop-prefetch.c,
+ tree-ssa-structalias.c, tree-ssa-threadedge.c,
+ tree-ssa-threadupdate.c, tree-vect-patterns.c,
+ tree-vect-transform.c, tree-vectorizer.h, tree-vrp.c,
+ unwind-dw2.c: Fix comment typos. Follow spelling conventions.
+
+2006-03-04 Kazu Hirata <kazu@codesourcery.com>
+
+ * dwarf2out.c (dwarf2out_add_library_unit_info): Remove.
+ * dwarf2out.h: Remove the prototype for
+ dwarf2out_add_library_unit_info.
+
+2006-03-04 Kazu Hirata <kazu@codesourcery.com>
+
+ * tree.c (add_var_to_bind_expr): Remove.
+ * tree.h: Remove the prototype for add_var_to_bind_expr.
+
+2006-03-04 Kazu Hirata <kazu@codesourcery.com>
+
+ * regclass.c (n_non_fixed_regs): Remove.
+ (init_reg_sets_1, globalize_reg): Remove all uses of
+ n_non_fixed_regs.
+ * hard-reg-set.h: Remove the extern for n_non_fixed_regs.
+
+2006-03-04 Kazu Hirata <kazu@codesourcery.com>
+
+ * rtlanal.c (insns_safe_to_move_p): Remove.
+ * rtl.h: Remove the prototype for insns_safe_to_move_p.
+
+2006-03-04 Kazu Hirata <kazu@codesourcery.com>
+
+ * expmed.c (expand_mult_add): Remove.
+ * expr.h: Remove the prototype for expand_mult_add.
+
+2006-03-04 Jakub Jelinek <jakub@redhat.com>
+
+ * unwind-dw2.h (_Unwind_FrameState): Add REG_SAVED_VAL_OFFSET
+ and REG_SAVED_VAL_EXP constants.
+ * unwind-dw2.c (struct _Unwind_Context): Add by_value array.
+ (_Unwind_GetGR, _Unwind_SetGR, _Unwind_GetGRPtr, _Unwind_SetGRPtr):
+ Handle regs stored by value.
+ (_Unwind_SetGRValue, _Unwind_GRByValue): New functions.
+ (execute_cfa_program): Handle DW_CFA_val_offset,
+ DW_CFA_val_offset_sf and DW_CFA_val_expression.
+ (uw_update_context_1): Handle REG_SAVED_REG with regs stored by
+ value specially. Handle REG_SAVED_VAL_OFFSET and REG_SAVED_VAL_EXP.
+ (uw_install_context_1): Handle target regs stored by value.
+
+2006-03-03 Daniel Berlin <dberlin@dberlin.org>
+
+ * tree-sra.c (tree_sra): Return todoflags;
+ (generate_one_element): Set TODO_update_smt_usage if needed.
+ (pass_sra): Remove TODO_update_smt_usage.
+ * tree-ssa-forwprop.c (forward_propagate_addr_expr): Add some
+ parameter.
+ (tree_ssa_forward_propagate_single_use_vars): Return
+ TODO_update_smt_usage if we need to update SMT usage.
+ (pass_forwprop): Remove TODO_update_smt_usage.
+
+2006-03-03 Diego Novillo <dnovillo@redhat.com>
+
+ * tree-ssa-operands.c: Tidy whitespace. Fix spelling.
+ (correct_use_link): Remove reference to get_stmt_operands.
+ (update_stmt_operands): Likewise.
+ (get_modify_expr_operands): New function factored out of
+ parse_ssa_operands and get_expr_operands.
+ Try to create V_MUST_DEFs for LHS by default.
+ (get_expr_operands) <case MODIFY_EXPR>: Call
+ get_modify_expr_operands.
+ <case ARRAY_RANGE_REF>: Handle together with ARRAY_REF.
+ <case BIT_FIELD_REF>: Clear opf_kill_def from FLAGS.
+ (parse_ssa_operands) <case MODIFY_EXPR>: Call
+ get_modify_expr_operands.
+
+2006-03-03 Kazu Hirata <kazu@codesourcery.com>
+
+ * tree-dfa.c (referenced_var_lookup_if_exists): Remove.
+ * tree-flow.h: Remove the prototype for
+ referenced_var_lookup_if_exists.
+
+2006-03-03 Steve Ellcey <sje@cup.hp.com>
+
+ PR rtl-optimization/26345
+ PR target/19061
+ * config/ia64/predicates.md (basereg_operand): Don't look in subregs.
+
+2006-03-03 Roger Sayle <roger@eyesopen.com>
+
+ PR tree-optimization/26524
+ * tree-scalar-evolution.c (interpret_rhs_modify_expr): Use
+ fold_convert to create a constant of the appropriate type.
+
+2006-03-03 Richard Sandiford <richard@codesourcery.com>
+
+ * doc/tm.texi: Refer to SYMBOL_REF_HAS_BLOCK_INFO_P instead of
+ SYMBOL_REF_IN_BLOCK_P.
+ * doc/rtl.texi: Likewise. Refer to SYMBOL_FLAG_HAS_BLOCK_INFO instead
+ of SYMBOL_FLAG_IN_BLOCK.
+ * gengtype.c (adjust_field_rtx_def): Use SYMBOL_REF_HAS_BLOCK_INFO_P
+ instead of SYMBOL_REF_IN_BLOCK_P.
+ * explow.c (use_anchored_address): Likewise.
+ * rtl.c (rtx_size): Likewise.
+ * varasm.c (create_block_symbol): Set SYMBOL_FLAG_HAS_BLOCK_INFO
+ instead of SYMBOL_FLAG_IN_BLOCK.
+ (make_decl_rtl): Use SYMBOL_REF_HAS_BLOCK_INFO_P instead of
+ SYMBOL_REF_IN_BLOCK_P.
+ (assemble_variable): Likewise.
+ (output_constant_def_contents): Likewise.
+ (output_constant_pool): Likewise.
+ (default_encode_section_info): Preserve SYMBOL_FLAG_HAS_BLOCK_INFO
+ instead of SYMBOL_FLAG_IN_BLOCK.
+ * rtl.h (block_symbol): Refer to SYMBOL_REF_HAS_BLOCK_INFO_P instead of
+ SYMBOL_REF_IN_BLOCK_P.
+ (SYMBOL_REF_BLOCK): Likewise.
+ (SYMBOL_REF_OFFSET): Likewise.
+ (BLOCK_SYMBOL_CHECK): Use SYMBOL_REF_HAS_BLOCK_INFO_P instead of
+ SYMBOL_REF_IN_BLOCK_P.
+ (SYMBOL_FLAG_IN_BLOCK): Replace with...
+ (SYMBOL_FLAG_HAS_BLOCK_INFO): ...this.
+ (SYMBOL_REF_IN_BLOCK_P): Replace with...
+ (SYMBOL_REF_HAS_BLOCK_INFO_P): ...this.
+
+2006-03-03 Jakub Jelinek <jakub@redhat.com>
+
+ * config/arm/unwind-arm.h (_Unwind_GetIPInfo): Fix pasto.
+
+2006-03-02 Roger Sayle <roger@eyesopen.com>
+
+ * simplify-rtx.c (simplify_unary_operation): When simplifying
+ (neg (lt X 0)) into (ashiftrt X C) or (lshiftrt X C), make sure
+ that we perform the right shift in the appropriate mode, and
+ then extend or truncate the result to requested mode.
+
+2006-03-03 Zdenek Dvorak <dvorakz@suse.cz>
+
+ * gengtype.c (main): Handle double_int type.
+ * tree.h (struct tree_int_cst): Make type of int_cst double_int.
+ * double-int.c: New file.
+ * double-int.h: New file.
+ * system.h: Include doubleint.h.
+ * Makefile.in (SYSTEM_H): Include double-int.h.
+ (double-int.o): Add.
+
+2006-03-03 Joseph S. Myers <joseph@codesourcery.com>
+
+ PR bootstrap/26478
+ * Makefile.in (stmp-int-hdrs): Remove include/unwind.h before
+ copying over it.
+
+2006-03-02 Zdenek Dvorak <dvorakz@suse.cz>
+
+ * tree-vrp.c (remove_range_assertions): Do not update statements
+ unnecessarily.
+
+2006-03-02 Zdenek Dvorak <dvorakz@suse.cz>
+
+ * cse.c (rest_of_handle_cse): Do not pass CLEANUP_PRE_LOOP to cfg
+ cleanup.
+ * gcse.c (rest_of_handle_gcse): Ditto.
+ * except.c (gate_handle_eh): Ditto.
+ * cfgcleanup.c (rest_of_handle_jump2): Ditto.
+ * basic-block.h (CLEANUP_PRE_LOOP): Remove.
+
+2006-03-02 Eric Christopher <echristo@apple.com>
+
+ * config/i386/i386.c (machopic_output_stub): Add indirection to
+ jump.
+
+2006-03-02 Zdenek Dvorak <dvorakz@suse.cz>
+
+ * loop.c: Removed.
+
+2006-03-02 David S. Miller <davem@sunset.davemloft.net>
+
+ Sun Niagara specific optimizations.
+ * config.gcc: Recognize niagara as target.
+ * config/sparc/sparc.h (SPARC_RELAXED_ORDERING): Mention Niagara.
+ (TARGET_CPU_niagara): Define.
+ (CPP_CPU64_DEFAULT_SPEC): Define __sparc_v9__ for Niagara.
+ (ASM_CPU64_DEFAULT_SPEC): Pass -Av9b for Niagara.
+ (CPP_CPU_SPEC): Handle -mcpu=niagara.
+ (ASM_CPU_SPEC): Likewise.
+ (PROCESSOR_NIAGARA): New enum entry.
+ (REGISTER_MOVE_COST): Handle Niagara.
+ (BRANCH_COST, PREFETCH_BLOCK, SIMULTANEOUS_PREFETCHES): Likewise.
+ * config/sparc/sparc.c (niagara_costs): New processor_costs entry.
+ (sparc_override_options): Recognize "niagara", set appropriate
+ default MASK_* values for it, and align functions to 32-bytes
+ by default just like ULTRASPARC/ULTRASPARC3.
+ (sparc_initialize_trampoline): Handle niagara like ultrasparc.
+ (sparc64_initialize_trampoline): Likewise.
+ (sparc_use_sched_lookahead): Use zero for niagara.
+ (sparc_issue_rate): Use one for niagara.
+ * config/sparc/niagara.md: New file.
+ * config/sparc/sparc.md: Include it.
+ * config/sparc/sol2-bi.h (CPP_CPU64_DEFAULT_SPEC,
+ ASM_CPU32_DEFAULT_SPEC, ASM_CPU64_DEFAULT_SPEC): Set appropriately
+ when default cpu is niagara.
+ (CPP_CPU_SPEC): Handle -mcpu=niagara.
+ (ASM_CPU_SPEC): Likewise.
+ * config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Set appropriately
+ when default cpu is niagara.
+ (ASM_CPU_SPEC): Handle -mcpu=niagara.
+ * config/sparc/linux64.h: Handle a default of TARGET_CPU_niagara
+ just like v9/ultrasparc/ultrasparc3.
+ * doc/invoke.texi: Add documentation for "niagara" and improve
+ existing documentation for ultrasparc variants.
+
+2006-03-02 Diego Novillo <dnovillo@redhat.com>
+
+ * tree-ssa-operands.c (update_stmt_operands): Update documentation.
+
+2006-03-02 Richard Sandiford <richard@codesourcery.com>
+
+ * doc/tm.texi (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Document.
+ (ASM_OUTPUT_BSS): Describe the two ways of handling global BSS,
+ and say that only one is needed.
+ * doc/rtl.texi (SYMBOL_REF_BLOCK): Say that the block can be null.
+ * target.h (have_switchable_bss_sections): New hook.
+ * explow.c (use_anchored_address): Check that the symbol is in a block.
+ * varasm.c (tls_comm_section, comm_section, lcomm_section)
+ (bss_noswitch_section): New variables.
+ (get_unnamed_section): Add SECTION_UNNAMED to the flags.
+ (get_noswitch_section): New function.
+ (get_block_for_section): Allow SECT to be null.
+ (unlikely_text_section_p): Use SECTION_STYLE.
+ (bss_initializer_p): New function.
+ (get_variable_section): Move earlier in file. Take a new argument,
+ prefer_noswitch_p. Move bss checks from assemble_variable to here.
+ Return one of the new *_sections in such cases.
+ (get_block_for_decl): New function, extracting some logic from
+ use_blocks_for_decl_p.
+ (change_symbol_section): Remove in favor of...
+ (change_symbol_block): ...this new function.
+ (use_blocks_for_decl_p): Remove checks now performed by
+ get_block_for_decl.
+ (make_decl_rtl): Use change_symbol_block and get_block_for_decl.
+ (ASM_EMIT_LOCAL, ASM_EMIT_BSS, ASM_EMIT_COMMON): Delete in favor of...
+ (emit_local, emit_bss, emit_common): ...these new functions.
+ Return true if the alignment was honored.
+ (emit_tls_common): New function.
+ (asm_emit_uninitialised): Delete.
+ (assemble_variable_noswitch): New function, split out from...
+ (assemble_variable): ...here. Don't make decisions about common
+ variables here. Globalize all public decls that go into non-common
+ sections. Check whether SYMBOL_REF_BLOCK is null.
+ (output_constant_def_contents): Check whether SYMBOL_REF_BLOCK is null.
+ (output_constant_pool): Likewise.
+ (init_varasm_once): Initialize the new section variables.
+ (have_global_bss_p): New function.
+ (categorize_decl_for_section): Use bss_initializer_p.
+ (switch_to_section): Use SECTION_STYLE. Abort for SECTION_NOSWITCH.
+ (place_block_symbol): Assert that the symbol must be in a block.
+ * target-def.h (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): New macro.
+ (TARGET_INITIALIZER): Include it.
+ * rtl.h (SYMBOL_REF_BLOCK): Document the null alternative.
+ * output.h (SECTION_STYLE_MASK, SECTION_COMMON): New macros.
+ (SECTION_MACH_DEP): Bump by two.
+ (SECTION_UNNAMED, SECTION_NOSWITCH): New macros.
+ (unnamed_section): Mention SECTION_UNNAMED in comment.
+ (named_section): Likewise SECTION_NAMED.
+ (noswitch_section_callback): New type.
+ (noswitch_section): New structure.
+ (section): Add a noswitch_section alternative.
+ (SECTION_STYLE): New macro.
+ (tls_comm_section, comm_section, lcomm_section): Declare.
+ (bss_noswitch_section, have_global_bss_p): Declare.
+ * config/elfos.h (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Override.
+ * config/iq2000/iq2000.c (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS):
+ Override.
+ * config/v850/v850.c (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Override.
+ * config/stormy16/stormy16.c (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS):
+ Override.
+
+2006-03-02 Daniel Berlin <dberlin@dberlin.org>
+
+ * gcc/tree-vrp.c (execute_vrp): Return value.
+ * gcc/regrename.c (rest_of_handle_regrename): Ditto.
+ * gcc/tree-into-ssa.c (rewrite_into_ssa): Ditto.
+ * gcc/tree-complex.c (tree_lower_complex): Ditto.
+ (tree_lower_complex_O0): Ditto.
+ * gcc/tracer.c (rest_of_handle_tracer): Ditto.
+ * gcc/postreload-gcse.c (rest_of_handle_gcse2): Ditto.
+ * gcc/postreload.c (rest_of_handle_postreload): Ditto.
+ * gcc/tree-tailcall.c (execute_tail_recursion): Ditto.
+ (execute_tail_calls): Ditto.
+ * gcc/tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
+ * gcc/tree.h (init_function_for_compilation): Ditto.
+ * gcc/ipa-cp.c (ipcp_driver): Ditto.
+ * gcc/tree-scalar-evolution.c (scev_const_prop): Ditto.
+ * gcc/tree-scalar-evolution.h (scev_const_prop): Ditto.
+ * gcc/final.c (compute_alignments): Ditto.
+ (rest_of_handle_final): Ditto.
+ (rest_of_handle_shorten_branches): Ditto.
+ (rest_of_clean_state): Ditto.
+ * gcc/omp-low.c (execute_expand_omp): Ditto.
+ (execute_lower_omp): Ditto.
+ * gcc/tree-ssa-dse.c (tree_ssa_dse): Ditto.
+ * gcc/ipa-reference.c (static_execute): Ditto.
+ * gcc/tree-ssa-uncprop.c (tree_ssa_uncprop): Ditto.
+ * gcc/reorg.c (rest_of_handle_delay_slots): Ditto.
+ (rest_of_handle_machine_reorg): Ditto.
+ * gcc/cgraphunit.c (rebuild_cgraph_edges): Ditto.
+ * gcc/flow.c (recompute_reg_usage): Ditto.
+ (rest_of_handle_remove_death_notes): Ditto.
+ (rest_of_handle_life): Ditto.
+ (rest_of_handle_flow2): Ditto.
+ * gcc/tree-ssa-copyrename.c (rename_ssa_copies): Ditto.
+ * gcc/tree-ssa-ccp.c (do_ssa_ccp): Ditto.
+ (do_ssa_store_ccp): Ditto.
+ (execute_fold_all_builtins): Ditto.
+ * gcc/mode-switching.c (rest_of_handle_mode_switching): Ditto.
+ * gcc/modulo-sched.c (rest_of_handle_sms): Ditto.
+ * gcc/ipa-pure-const.c (static_execute): Ditto.
+ * gcc/cse.c (rest_of_handle_cse): Ditto.
+ (rest_of_handle_cse2): Ditto.
+ * gcc/web.c (rest_of_handle_web): Ditto.
+ * gcc/tree-stdarg.c (execute_optimize_stdarg): Ditto.
+ * gcc/tree-ssa-math-opts.c (execute_cse_reciprocals): Ditto.
+ * gcc/tree-ssa-dom.c (tree_ssa_dominator_optimize): Ditto.
+ * gcc/tree-nrv.c (tree_nrv): Ditto.
+ (execute_return_slot_opt): Ditto.
+ * gcc/tree-ssa-alias.c (compute_may_aliases): Ditto.
+ (create_structure_vars): Ditto.
+ * gcc/loop-init.c (rtl_loop_init): Ditto.
+ (rtl_loop_done): Ditto.
+ (rtl_move_loop_invariants): Ditto.
+ (rtl_unswitch): Ditto.
+ (rtl_unroll_and_peel_loops): Ditto.
+ (rtl_doloop): Ditto.
+ * gcc/gimple-low.c (lower_function_body): Ditto.
+ (mark_used_blocks): Ditto.
+ * gcc/tree-ssa-sink.c (execute_sink_code): Ditto.
+ * gcc/ipa-inline.c (cgraph_decide_inlining): Ditto.
+ (cgraph_early_inlining): Ditto.
+ * gcc/global.c (rest_of_handle_global_alloc): Ditto.
+ * gcc/jump.c (cleanup_barriers): Ditto.
+ (purge_line_number_notes): Ditto.
+ * gcc/ifcvt.c (rest_of_handle_if_conversion): Ditto.
+ (rest_of_handle_if_after_reload): Ditto.
+ * gcc/tree-ssa-loop.c (tree_ssa_loop_init): Ditto.
+ (tree_ssa_loop_im): Ditto.
+ (tree_ssa_loop_unswitch): Ditto.
+ (tree_vectorize): Ditto.
+ (tree_linear_transform): Ditto.
+ (tree_ssa_loop_ivcanon): Ditto.
+ (tree_ssa_empty_loop): Ditto.
+ (tree_ssa_loop_bounds): Ditto.
+ (tree_complete_unroll): Ditto.
+ (tree_ssa_loop_prefetch): Ditto.
+ (tree_ssa_loop_ivopts): Ditto.
+ (tree_ssa_loop_done): Ditto.
+ * gcc/predict.c (tree_estimate_probability): Ditto.
+ * gcc/recog.c (split_all_insns_noflow): Ditto.
+ (rest_of_handle_peephole2): Ditto.
+ (rest_of_handle_split_all_insns): Ditto.
+ * gcc/tree-eh.c (lower_eh_constructs): Ditto.
+ * gcc/regmove.c (rest_of_handle_regmove): Ditto.
+ (rest_of_handle_stack_adjustments): Ditto.
+ * gcc/local-alloc.c (rest_of_handle_local_alloc): Ditto.
+ * gcc/function.c (instantiate_virtual_regs): Ditto.
+ (init_function_for_compilation): Ditto.
+ (rest_of_handle_check_leaf_regs): Ditto.
+ * gcc/gcse.c (rest_of_handle_jump_bypass): Ditto.
+ (rest_of_handle_gcse): Ditto.
+ * gcc/ipa-type-escape.c (type_escape_execute): Ditto.
+ * gcc/alias.c (rest_of_handle_cfg): Ditto.
+ * gcc/tree-if-conv.c (main_tree_if_conversion): Ditto.
+ * gcc/profile.c (rest_of_handle_branch_prob): Ditto.
+ * gcc/tree-ssa-phiopt.c (tree_ssa_phiopt): Ditto.
+ * gcc/rtl-factoring.c (rest_of_rtl_seqabstr): Ditto.
+ * gcc/bt-load.c (rest_of_handle_branch_target_load_optimize): Ditto
+ * gcc/tree-dfa.c (find_referenced_vars): Ditto.
+ * gcc/except.c (set_nothrow_function_flags): Ditto.
+ (convert_to_eh_region_ranges): Ditto.
+ (rest_of_handle_eh): Ditto.
+ * gcc/emit-rtl.c (unshare_all_rtl): Ditto.
+ (remove_unnecessary_notes): Ditto.
+ * gcc/except.h (set_nothrow_function_flags): Ditto.
+ (convert_to_eh_region_ranges): Ditto.
+ * gcc/cfgexpand.c (tree_expand_cfg): Ditto.
+ * gcc/tree-cfgcleanup.c (merge_phi_nodes): Ditto.
+ * gcc/tree-ssa-pre.c (do_pre): Ditto.
+ (execute_fre): Ditto.
+ * gcc/cfgcleanup.c (rest_of_handle_jump): Ditto.
+ (rest_of_handle_jump2): Ditto.
+ * gcc/tree-sra.c (tree_sra): Ditto.
+ * gcc/tree-mudflap.c (execute_mudflap_function_ops): Ditto.
+ (execute_mudflap_function_decls): Ditto.
+ * gcc/tree-ssa-copy.c (do_copy_prop): Ditto.
+ (do_store_copy_prop): Ditto.
+ * gcc/ipa-prop.h (ipcp_driver): Ditto.
+ * gcc/cfglayout.c (insn_locators_initialize): Ditto.
+ * gcc/tree-ssa-forwprop.c
+ (tree_ssa_forward_propagate_single_use_vars): Ditto.
+ * gcc/cfglayout.h (insn_locators_initialize): Ditto.
+ * gcc/tree-ssa-dce.c (tree_ssa_dce): Ditto.
+ * gcc/tree-ssa.c (execute_early_warn_uninitialized): Ditto.
+ (execute_late_warn_uninitialized): Ditto.
+ * gcc/rtl.h (cleanup_barriers): Ditto.
+ (split_all_insns_noflow): Ditto.
+ (purge_line_number_notes): Ditto.
+ (unshare_all_rtl): Ditto.
+ (remove_unnecessary_notes): Ditto.
+ (recompute_reg_usage): Ditto.
+ (variable_tracking_main): Ditto.
+ * gcc/integrate.c (emit_initial_value_sets): Ditto.
+ * gcc/integrate.h (emit_initial_value_sets): Ditto.
+ * gcc/tree-optimize.c (execute_free_datastructures): Ditto
+ (execute_free_cfg_annotations): Ditto.
+ (execute_fixup_cfg): Ditto.
+ (execute_cleanup_cfg_pre_ipa): Ditto.
+ (execute_cleanup_cfg_post_optimizing): Ditto.
+ (execute_init_datastructures): Ditto.
+ * gcc/tree-object-size.c (compute_object_sizes): Ditto.
+ * gcc/combine.c (rest_of_handle_combine): Ditto.
+ * gcc/tree-outof-ssa.c (rewrite_out_of_ssa): Ditto.
+ * gcc/bb-reorder.c (duplicate_computed_gotos): Ditto.
+ (rest_of_handle_reorder_blocks): Ditto.
+ (rest_of_handle_partition_blocks): Ditto.
+ * gcc/var-tracking.c (variable_tracking_main): Ditto.
+ * gcc/tree-profile.c (tree_profiling): Ditto.
+ * gcc/tree-vect-generic.c (expand_vector_operations): Ditto.
+ * gcc/reg-stack.c (rest_of_handle_stack_regs): Ditto.
+ * gcc/sched-rgn.c (rest_of_handle_sched): Ditto.
+ (rest_of_handle_sched2): Ditto.
+ * gcc/basic-block.h (free_bb_insn): Ditto.
+ * gcc/tree-ssa-structalias.c (ipa_pta_execute): Ditto.
+ * gcc/tree-cfg.c (execute_build_cfg): Ditto.
+ (remove_useless_stmts): Ditto.
+ (split_critical_edges): Ditto.
+ (execute_warn_function_return): Ditto.
+ (execute_warn_function_noreturn): Ditto.
+ * gcc/tree-ssa-reassoc.c (execute_reassoc): Ditto.
+ * gcc/cfgrtl.c (free_bb_for_insn): Ditto.
+ * gcc/passes.c (execute_one_pass): Run additional
+ todos returned by execute function.
+ * gcc/tree-pass.h (struct tree_opt_pass): Make execute
+ return a value.
+
+2006-03-02 Richard Guenther <rguenther@suse.de>
+
+ * tree-ssa-alias.c (find_used_portions): Consider taking
+ the address as making the variable not write-only.
+
+2006-03-02 Nick Clifton <nickc@redhat.com>
+
+ * config.gcc (default_use_cxa_atexit): Extend the description of
+ this configure variable. Set its default value to "yes" for
+ Linux, NetBSD and ELF targets on the assumption that they will
+ use C libraries with the __cxa_atexit function.
+
+2006-03-02 Ben Elliston <bje@au.ibm.com>
+
+ * config/rs6000/linux-unwind.h (frob_update_context): Mark `fs'
+ parameter as unused to suppress a build warning.
+
+2006-03-02 Ben Elliston <bje@au.ibm.com>
+
+ * mklibgcc.in: Depend on config/dfp-bit.h in rules that compile
+ config/dfp-bit.c.
+
+2006-03-01 Roger Sayle <roger@eyesopen.com>
+
+ PR other/26489
+ * gthr-posix.h (__gthrw2): Define to take three parameters, the
+ declared name, the weak reference name, and the typeof name.
+ (__gthrw): Avoid expanding the declared name suffix.
+ (__gthrw3): New Tru64 specific macro to simplify the OSF/1 decls.
+
+2006-03-01 Jakub Jelinek <jakub@redhat.com>
+
+ * dwarf2.h (DW_TAG_condition, DW_TAG_shared_type): New constants
+ from DWARF 3.
+ (DW_AT_description, DW_AT_binary_scale, DW_AT_decimal_scale,
+ DW_AT_small, DW_AT_decimal_sign, DW_AT_digit_count,
+ DW_AT_picture_string, DW_AT_mutable, DW_AT_threads_scaled,
+ DW_AT_explicit, DW_AT_object_pointer, DW_AT_endianity,
+ DW_AT_elemental, DW_AT_pure, DW_AT_recursive): New.
+ (DW_OP_form_tls_address, DW_OP_call_frame_cfa, DW_OP_bit_piece): New.
+ (DW_ATE_packed_decimal, DW_ATE_numeric_string, DW_ATE_edited,
+ DW_ATE_signed_fixed, DW_ATE_unsigned_fixed): New.
+ (DW_DS_unsigned, DW_DS_leading_overpunch, DW_DS_trailing_overpunch,
+ DW_DS_leading_separate, DW_DS_trailing_separate): New.
+ (DW_END_default, DW_END_big, DW_END_little): New.
+ (DW_END_lo_user, DW_END_hi_user): Define.
+ (DW_LNE_lo_user, DW_LNE_hi_user): Define.
+ (DW_CFA_val_offset, DW_CFA_val_offset_sf, DW_CFA_val_expression): New.
+ (DW_LANG_PLI, DW_LANG_ObjC, DW_LANG_ObjC_plus_plus, DW_LANG_UPC,
+ DW_LANG_D): New.
+
+2006-03-01 Diego Novillo <dnovillo@redhat.com>
+
+ * tree.def (SYMBOL_MEMORY_TAG): Rename from TYPE_MEMORY_TAG.
+ Update all users.
+ * tree-pass.h (PROP_smt_usage): Rename from PROP_tmt_usage.
+ Update all users.
+ (TODO_update_smt_usage): Rename from TODO_update_tmt_usage.
+ Update all users.
+ * tree.h (SMT_USED_ALONE): Rename from TMT_USED_ALONE.
+ Update all users.
+ * tree-flow.h (struct var_ann_d): Rename field 'type_mem_tag'
+ to 'symbol_mem_tag'.
+ Update all users.
+ * doc/tree-ssa.texi: Update documentation to reflect TMT->SMT
+ rename.
+
+2006-03-01 Roger Sayle <roger@eyesopen.com>
+
+ * builtins.c (fold_builtin_copysign): Delete unreachable code.
+
+2006-03-01 Andrew Pinski <pinskia@physics.uc.edu>
+
+ PR target/25761
+ * config/darwin.h (MACHOPIC_JUST_INDIRECT): Check just
+ MACHO_DYNAMIC_NO_PIC_P.
+ (MACHOPIC_PURE): Check flag_pic and not MACHO_DYNAMIC_NO_PIC_P.
+
+2006-03-01 Andrew Pinski <pinskia@physics.uc.edu>
+
+ PR target/26389
+ * config/darwin-protos.h (darwin_asm_output_anchor):
+ Declare.
+ * config/darwin-sections.def (cstring_section):
+ Add SECTION_MERGE to the flags.
+ (literal4_section): Likewise.
+ (literal8_section): Likewise.
+ (objc_selector_refs_section): Likewise.
+ (objc_cls_refs_section): Likewise.
+ * config/darwin.c (darwin_asm_output_anchor): New
+ function.
+ * config/darwin.h (TARGET_ASM_OUTPUT_ANCHOR): Define.
+
+2006-03-01 Daniel Berlin <dberlin@dberlin.org>
+
+ Fix PR tree-optimization/26443
+ * tree-vrp.c (pass_vrp): Add TODO_update_tmt_usage
+ to todo and PROP_tmt_usage to properties_destroyed.
+ * tree-ssa-ccp.c (pass_ccp): Ditto.
+ (pass_store_ccp): Ditto.
+ * tree-ssa-dom.c (pass_dominator): Ditto.
+
+2006-03-01 Diego Novillo <dnovillo@redhat.com>
+
+ * tree-ssa-operands.c: Cleanup whitespace.
+ (get_asm_expr_operands): Move before first invocation.
+ (get_indirect_ref_operands): Likewise.
+ (get_tmr_operands): Likewise.
+ (get_call_expr_operands): Likewise.
+ (append_def): Likewise.
+ (append_use): Likewise.
+ (append_v_may_def): Likewise.
+ (append_v_must_def): Likewise.
+ (add_call_clobber_ops): Likewise.
+ (add_call_read_ops): Likewise.
+ (add_stmt_operand): Likewise.
+ (add_virtual_operand): Likewise.
+ (build_ssa_operands): Likewise.
+
+2006-03-01 Andrew Pinski <pinskia@physics.uc.edu>
+
+ PR middle-end/26022
+ Revert:
+ PR middle-end/24437
+ * tree-ssa-ccp.c (fold_stmt): Move folding of OBJ_TYPE_REF
+ with a call expr to ...
+ * fold-const.c (fold_ternary) <case CALL_EXPR>: Here.
+
+2006-03-01 Diego Novillo <dnovillo@redhat.com>
+
+ * tree-vrp.c (extract_range_from_assert): Remove special
+ handling for types with super-types.
+
+2006-03-01 Ben Elliston <bje@au.ibm.com>
+
+ * config.gcc: Add t-dfprules to $tmake_file for powerpc-*-linux*
+ and powerpc64-*-linux* configurations.
+ * config/t-dfprules: New file.
+
+ * mklibgcc.in: Add logic to handle $DFP_ENABLE and $DFP_CFLAGS.
+ Compile dfp-bit.c from the source directory using -DWIDTH and
+ $DFP_CFLAGS to control the compilation of that file, rather than
+ generating width-specific versions in the build directory.
+ * Makefile.in (libgcc.mk): Pass down DFP_ENABLE and DFP_CFLAGS.
+ (LIBGCC_DEPS): Replace $(D32PBIT) et al with config/dfp-bit.[hc].
+
+2006-02-28 Zack Weinberg <zackw@panix.com>
+
+ * doc/md.texi: Avoid use of @headitem so that makeinfo <4.7
+ continues to work.
+
+2006-02-28 Eric Christopher <echristo@apple.com>
+
+ * config/rs6000/darwin.h (ENABLE_STACK_EXECUTE): Define.
+ Set up IN_LIBGCC definition of TARGET_64BIT.
+ * config/i386/darwin.h (ENABLE_STACK_EXECUTE): Define.
+
+2006-02-28 Roger Sayle <roger@eyesopen.com>
+
+ PR middle-end/14752
+ * c-common.c (c_common_truthvalue_conversion) <MINUS_EXPR,
+ BIT_XOR_EXPR, BIT_AND_EXPR>: Delete. Let fold optimize these
+ cases via the construction of "expr != 0".
+
+2006-02-28 Steven Bosscher <stevenb.gcc@gmail.com>
+
+ * alias.c (alias_invariant, alias_invariant_size): Remove.
+ (record_base_value): Remove.
+ (memrefs_conflict_p): Don't look at alias_invariant.
+ (end_alias_analysis): Don't free it.
+ * alias.h (record_base_value): Remove prototype.
+
+2006-02-28 Paolo Bonzini <bonzini@gnu.org>
+ Adam Nemet <anemet@caviumnetworks.com>
+
+ * rtl.h (truncated_to_mode): Declare it.
+ (struct rtl_hooks): Add reg_truncated_to_mode hook.
+ * rtlhooks-def.h (RTL_HOOKS_REG_TRUNCATED_TO_MODE): New macro.
+ (RTL_HOOKS_INITIALIZER): Include it.
+ * rtlhooks.c (reg_truncated_to_mode_general): New function.
+ * combine.c (RTL_HOOKS_REG_TRUNCATED_TO_MODE): Override to
+ reg_truncated_to_mode.
+ * rtlanal.c (truncated_to_mode): Define it.
+ * simplify-rtx.c (simplify_unary_operation_1): Use it.
+
+2006-02-28 Jeff Law <law@redhat.com>
+
+ * tree-chrec.c (chrec_convert_aggressive): Do not eliminate
+ conversions where TYPE_MIN_VALUE/TYPE_MAX_VALUE do not cover
+ the range allowed by TYPE_PRECISION.
+
+ * tree.h (strct phi_arg_d): Remove unused NONZERO field.
+
+2006-02-28 Dorit Nuzman <dorit@il.ibm.com>
+
+ PR tree-optimization/26419
+ * doc/invoke.texi (ftree-vectorizer-verbose): Add information on
+ values of n.
+
+2006-02-27 Zack Weinberg <zackw@panix.com>
+
+ * doc/md.texi: Fix typo in previous change.
+
+2006-02-27 Kenneth Zadeck <zadeck@naturalbridge.com>
+
+ * df.c: Remove.
+
+2006-02-27 Zack Weinberg <zackw@panix.com>
+
+ * rtl.def (define_constraint, define_register_constraint)
+ (define_memory_constraint, define_address_constraint): New MD forms.
+ * gensupport.c (process_rtx): Put define_constraint etc on the
+ predicate queue.
+ * genpreds.c (process_define_predicate): Adjust comment. Validate
+ the name, and call validate_exp to validate the expression.
+ (mark_mode_tests, write_extract_subexp): Can assume correct input.
+ (write_predicate_expr): Likewise. NAME argument no longer necessary;
+ all callers changed.
+ (validate_exp, needs_variable, struct constraint_data)
+ (constraints_by_letter_table, first_constraint, last_constraint_ptr)
+ (FOR_ALL_CONSTRAINTS, generic_constraint_letters, const_int_constraints)
+ (const_dbl_constraints, constraint_max_namelen)
+ (have_register_constraints, have_memory_constraints)
+ (have_address_constraints, have_address_constraints)
+ (have_extra_constraints, have_const_int_constraints)
+ (have_const_dbl_constraints, mangle, add_constraint)
+ (process_define_constraint, process_define_register_constraint)
+ (write_enum_constraint_num, write_lookup_constraint)
+ (write_insn_constraint_len, write_regclass_for_constraint)
+ (write_constraint_satisfied_p, write_insn_const_int_ok_for_constraint)
+ (write_insn_extra_memory_constraint)
+ (write_insn_extra_address_constraint)
+ (write_satisfies_constraint_fns): New.
+ (write_tm_preds_h): If we have new-style constraint definitions,
+ prototype the functions generated from them, and define the
+ old constraint interface (still used by generic code) in terms of
+ those functions.
+ (write_insn_preds_c): If we have new-style constraint definitions,
+ generate all relevant functions from those definitions.
+ (main): Handle define_constraint etc.
+ * genoutput.c (struct constraint_data, indep_constraints)
+ (mdep_constraint_letters, constraints_by_letter_table, note_constraint)
+ (mdep_constraint_len): New data structures and functions, defined
+ #ifdef USE_MD_CONSTRAINTS.
+ (check_constraint_len): Don't define #ifdef USE_MD_CONSTRAINTS.
+ (validate_insn_alternatives): If USE_MD_CONSTRAINTS is defined,
+ use new logic to validate operand constraints against constraint
+ definitions.
+ (main): Process define_constraint etc. if USE_MD_CONSTRAINTS is
+ defined.
+ * defaults.h: If none of the old-style constraint macros are
+ defined, define USE_MD_CONSTRAINTS; do not provide defaults for any
+ old-style macros; and poison REG_CLASS_FROM_LETTER,
+ CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P, and
+ EXTRA_CONSTRAINT.
+ * recog.c (reg_fits_class_p): If cl is NO_REGS, return 0 immediately.
+ * doc/md.texi: Document new constraint-definition mechanism and the
+ C interface it provides. Remove references to old mechanism
+ elsewhere in the document.
+ (Machine Constraints): Use pathnames relative to gcc directory,
+ i.e. config/ARCH/FILE. Change i386 section to refer to
+ config/i386/predicates.md; update that section to match docstrings.
+ * doc/tm.texi: Move all documentation of the old constraint-
+ definition macros to their own section, clearly mark as obsolete.
+
+ * config/i386/predicates.md (R, q, Q, l, a, b, c, d, S, D, A, f, t)
+ (u, y, x, Y, I, J, K, L, M, N, O, G, C, e, Z): New constraint
+ definitions.
+ * config/i386/i386.h (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P)
+ (CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
+ * config/i386/i386.md (*movdf_nointeger): Remove stray 'H' from
+ constraint strings.
+ (splits and peepholes): Use satisfies_constraint_*.
+ * config/i386/i386.c (memory_address_length)
+ (ix86_attr_length_immediate_default): Use satisfies_constraint_*.
+
+2006-02-27 Daniel Berlin <dberlin@dberlin.org>
+
+ * lambda-code.c (can_convert_to_perfect_nest): Allow any type of
+ scalar operation to be put back into the loop.
+
2006-02-27 Jakub Jelinek <jakub@redhat.com>
PR other/26208
PR middle-end/25600
* fold-const.c (fold_binary): Fold (X >> C) != 0 into X < 0 when
C is one less than the width of X (and related transformations).
- * simplify_rtx.c (simplify_unary_operation_1): Transform
+ * simplify-rtx.c (simplify_unary_operation_1): Transform
(neg (lt x 0)) into either (ashiftrt X C) or (lshiftrt X C)
depending on STORE_FLAG_VALUE, were C is one less then the
width of X.