+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
+ 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