OSDN Git Service

PR c/26004
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index cacec9a..0d90fa2 100644 (file)
@@ -1,3 +1,207 @@
+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