X-Git-Url: http://git.sourceforge.jp/view?p=pf3gnuchains%2Fgcc-fork.git;a=blobdiff_plain;f=gcc%2FChangeLog;h=13aa77851dea984f0ad3e11b710aadd7925da6c2;hp=4af0ac0134657de6d69df209237d2967022c6398;hb=731d95c8a2990fa936e3c6dd5be7acedfffe9cad;hpb=5b865fafa95bf4d26de8ead98df5c0a2a1572e3b diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 4af0ac01346..13aa77851de 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,337 @@ +2007-02-24 Bernd Schmidt + + * loop-iv.c (implies_p): Detect additional cases where A implies B. + (determine_max_iter): Take additional LOOP arg; all callers changed. + Lose broken logic dealing with PLUS. Try to limit the upper bound by + one using simplifications. + +2007-02-23 DJ Delorie + + * doc/tm.h (BIGGEST_ALIGNMENT): Clarify the purpose of this macro. + +2007-02-23 Mike Stump + + * tlink.c (scan_linker_output): Parse linker messages from + darwin9's linker better. + +2007-02-23 Steve Ellcey + + PR debug/29614 + * varpool.c (varpool_assemble_pending_decls): Set + varpool_last_needed_node to null. + +2007-02-23 DJ Delorie + + * config/i386/i386.c (ix86_data_alignment): Don't specify an + alignment bigger than the object file can handle. + +2007-02-23 Uros Bizjak + + PR target/30825 + * config/i386/i386.md (*movdi_1_rex64, zero_extendsidi2_32, + zero_extendsidi2_rex64): Penalize MMX register<->memory moves. + (*movsf_1): Penalize MMX moves. + +2007-02-23 Bernd Schmidt + + * config/bfin/bfin.md (doloop_end): Fail for loops that can iterate + 2^32-1 or more times unless flag_unsafe_loop_optimizations. + + * loop-iv.c (determine_max_iter): Moved in front of its sole user. + +2007-02-23 Kaveh R. Ghazi + + * builtins.c (fold_builtin_logb, fold_builtin_significand): New. + (fold_builtin_1): Use them. + * fold-const.c (tree_expr_nonnegative_warnv_p): Handle + BUILT_IN_SIGNIFICAND. + +2007-02-23 H.J. Lu + + * config/i386/i386.c (bdesc_1arg): Initialize + IX86_BUILTIN_MOVSHDUP and IX86_BUILTIN_MOVSLDUP with + "__builtin_ia32_movshdup" and "__builtin_ia32_movsldup". + (ix86_init_mmx_sse_builtins): Remove IX86_BUILTIN_MOVSHDUP + and IX86_BUILTIN_MOVSLDUP. + +2007-02-22 Paolo Bonzini + + PR rtl-optimization/30841 + * fwprop.c (propagate_rtx_1): Accept a VOIDmode replacement address. + +2007-02-22 Kaveh R. Ghazi + + * builtins.c (fold_builtin_frexp): New. + (fold_builtin_2): Use it. + +2007-02-22 Mark Mitchell + + * doc/invoke.texi (Spec Files): Document getenv spec function. + + * gcc.c (getenv_spec_function): New function. + (static_spec_functions): Add it. + * config/vxworks.h (VXWORKS_TARGET_DIR): Remove. + (VXWORKS_ADDITIONAL_CPP_SPEC): Use getenv to find the VxWorks + header files. + +2007-02-22 Michael Matz + + PR debug/30898 + * dwarf2out.c (concatn_mem_loc_descriptor): New static function. + (mem_loc_descriptor): Call it. + +2007-02-22 Zdenek Dvorak + Ira Rosen + + * tree-data-ref.c (ptr_ptr_may_alias_p): Take alias sets into account. + +2007-02-22 Ira Rosen + + PR tree-optimization/30843 + * tree-vect-transform.c (vect_transform_loop): Remove strided scalar + stores only after all the group is vectorized. + +2007-02-22 Dorit Nuzman + + PR tree-optimization/30858 + * tree-vectorizer.c (vect_is_simple_reduction): Check that the stmts + in the reduction cycle have a single use in the loop. + * tree-vectorizer.h (relevant): Add documentation. + +2007-02-20 Mike Stump + + * configure.ac (powerpc*-*-darwin*): #include . + * configure: Regenerate. + +2007-02-21 Trevor Smigiel + + Change the defaults of some parameters and options. + * config/spu/spu-protos.h (spu_optimization_options): Declare. + * config/spu/spu.c (spu_optimization_options): Add. + (spu_override_options): Change params in spu_optimization_options. + * config/spu/spu.h (OPTIMIZATION_OPTIONS): Define. + + Register 127 is only 16 byte aligned when used as a frame pointer. + * config/spu/spu-protos.h (spu_init_expanders): Declare. + * config/spu/spu.c (spu_expand_prologue): Set REGNO_POINTER_ALIGN for + HARD_FRAME_POINTER_REGNUM. + (spu_legitimate_address): Use regno_aligned_for_reload. + (regno_aligned_for_load): HARD_FRAME_POINTER_REGNUM is only 16 byte + aligned when frame_pointer_needed is true. + (spu_init_expanders): New. Set alignment of HARD_FRAME_POINTER_REGNUM + to 8 bits. + * config/spu/spu.h (INIT_EXPANDERS): Define. + + Make sure shift and rotate instructions have valid immediate operands. + * config/spu/predicates.md (spu_shift_operand): Remove. + * config/spu/spu.c (print_operand): Add [efghEFGH] modifiers. + * config/spu/constraints.md (W, O): Extend range. + * config/spu/spu.md (umask, nmask): Define. + (ashl3, ashldi3, ashlti3_imm, shlqbybi_ti, shlqbi_ti, shlqby_ti, + lshr3, rotm_, lshr3_imm, rotqmbybi_, + rotqmbi_, rotqmby_, ashr3, rotma_, + rotl3, rotlti3, rotqbybi_ti, rotqby_ti, rotqbi_ti): Use + spu_nonmem_operand instead of spu_shift_operands. Use new modifiers. + (lshr3_reg): Fix rtl description. + + Make sure mulhisi immediate operands are valid. + * config/spu/predicates.md (imm_K_operand): Add. + * config/spu/spu.md (mulhisi3_imm, umulhisi3_imm): Use imm_K_operand. + + Generate constants using fsmbi and andi. + * config/spu/spu.c (enum immediate_class): Add IC_FSMBI2. + (print_operand, spu_split_immediate, classify_immediate, + fsmbi_const_p): Handle IC_FSMBI2. + + Correctly handle a CONST_VECTOR containing symbols. + * config/spu/spu.c (print_operand): Handle HIGH correctly. + (spu_split_immediate): Split CONST_VECTORs with -mlarge-mem. + (immediate_load_p): Allow symbols that use 2 instructions to create. + (classify_immediate, spu_builtin_splats): Don't accept a CONST_VECTOR + with symbols when flag_pic is set. + (const_vector_immediate_p): New. + (logical_immediate_p, iohl_immediate_p, arith_immediate_p): Don't + accept a CONST_VECTOR with symbols. + (spu_legitimate_constant_p): Use const_vector_immediate_p. Don't + accept a CONST_VECTOR with symbols when flag_pic is set. Handle HIGH + correctly. + * config/spu/spu.md (high, low): Delete. + (low_): Define. + + Remove INTRmode and INTR_REGNUM, which didn't work. + * config/spu/spu.c (spu_conditional_register_usage): Remove reference + of INTR_REGNUM. + * config/spu/spu-builtins.md (spu_idisable, spu_ienable, set_intr, + set_intr_pic, set_intr_cc, set_intr_cc_pic, set_intr_return, unnamed + peephole2 pattern): Don't use INTR or 131. + (movintrcc): Delete. + * config/spu/spu.h (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS, + CALL_USED_REGISTERS, REGISTER_NAMES, INTR_REGNUM): Remove INTR_REGNUM. + * config/spu/spu.md (UNSPEC_IDISABLE, UNSPEC_IENABLE): Remove. + (UNSPEC_SET_INTR): Add. + * config/spu/spu-modes.def (INTR): Remove. + + More accurate warnings about run-time relocations. + * config/spu/spu.c (reloc_diagnostic): Test in_section. + + Correctly warn about immediate arguments to specific intrinsics. + * config/spu/spu.c (spu_check_builtin_parm): Handle CONST_VECTORs. + (spu_expand_builtin_1): Call spu_check_builtin_parm before checking + the instruction predicate. + + Fix tree check errors with latest update. + * config/spu/spu.c (expand_builtin_args, spu_expand_builtin_1): Use + CALL_EXPR_ARG. + (spu_expand_builtin): Use CALL_EXPR_FN. + + Add missing specific intrinsics. + * config/spu/spu-builtins.def: Add si_bisled, si_bisledd and + si_bislede. + * config/spu/spu_internals.h: Ditto. + + Fix incorrect operand modifiers. + * config/spu/spu-builtins.md (spu_mpy, spu_mpyu): Remove use of %H. + * config/spu/spu.md (xor3): Change %S to %J. + + Optimize one case of zero_extend of a vec_select. + * config/spu/spu.md (_vec_extractv8hi_ze): Add. + + Accept any immediate for hbr. + * config/spu/spu.md (hbr): Change s constraints to i. + +2007-02-21 Paul Brook + + * config/arm/arm.c (thumb2_final_prescan_insn): Don't incrememnt + condexec_count when skipping USE and CLOBBER. + +2007-02-21 Nick Clifton + + * common.opt (Warray-bounds): Add Warning attribute. + (Wstrict-overflow, Wstrict-overflow=, Wcoverage-mismatch): + Likewise. + (fsized-zeroes): Add Optimization attribute. + (fsplit-wide-types, ftree-scev-cprop): Likewise. + * c.opt (Wc++0x-compat): Add Warning attribute. + +2007-02-21 Ulrich Weigand + + PR middle-end/30761 + * reload1.c (eliminate_regs_in_insn): In the single_set special + case, attempt to re-recognize the insn before falling back to + having reload fix it up. + +2007-02-20 Eric Christopher + + * config/frv/frv.c (frv_read_argument): Take a tree and int argument. + Rewrite accordingly. + (frv_read_iacc_argument): Ditto. + (frv_expand_set_builtin): Take a call instead of arglist, update for + above changes. + (frv_expand_unop_builtin): Ditto. + (frv_expand_binop_builtin): Ditto. + (frv_expand_cut_builtin): Ditto. + (frv_expand_binopimm_builtin): Ditto. + (frv_expand_voidbinop_builtin): Ditto. + (frv_expand_int_void2arg): Ditto. + (frv_expand_prefetches): Ditto. + (frv_expand_voidtriop_builtin): Ditto. + (frv_expand_voidaccop_builtin): Ditto. + (frv_expand_load_builtin): Ditto. + (frv_expand_store_builtin): Ditto. + (frv_expand_mdpackh_builtin): Ditto. + (frv_expand_mclracc_builtin): Ditto. + (frv_expand_mrdacc_builtin): Ditto. + (frv_expand_mwtacc_builtin): Ditto. + (frv_expand_builtin): Remove usage of CALL_EXPR_ARGS, update + calls for above. + +2007-02-20 Janis Johnson + + * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mcmpb and -mdfp. + * configure.ac (HAVE_GAS_CMPB): Check for assembler support of the + cmpb instruction. + (HAVE_GAS_DFP): Check for assembler support of decimal floating + point instructions. + * configure: Regenerate. + * config.in: Regenerate. + * config/rs6000/rs6000.opt (mcmpb, mdfp): New. + * config/rs6000/rs6000.c (rs6000_override_options): Add CMPB and DFP + masks to power6 and power6x and to POWERPC_MASKS. + * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define + _ARCH_PWR6. + * config/rs6000/rs6000.h: Check assembler support for CMPB and DFP. + * config/rs6000/sysv4.opt (mprototype): Use variable, not mask. + * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): + Access PROTOTYPE as variable, not mask. + +2007-02-20 Steven Bosscher + + * rtl.h (remove_reg_equal_equiv_notes): New prototype. + * rtlanal.c (remove_reg_equal_equiv_notes): New function. + * combine.c (adjust_for_new_dest): Use it. + * postreload.c (reload_combine): Likewise. + +2007-02-20 Steven Bosscher + + * rtlanal.c (find_reg_equal_equiv_note): Do not find REG_EQ* + notes on an insn with multiple sets, even if single_set returns + non-NULL for that insn. + +2007-02-20 Kaveh R. Ghazi + + * fold-const.c (tree_expr_nonnegative_warnv_p): Handle scalb, + scalbn and scalbln. + +2007-02-20 Geoffrey Keating + + * config/darwin.h (LINK_SPEC): Default -mmacosx-version-min only + if user didn't pass it. + * config/i386/darwin.h (CC1_SPEC): Likewise. + * config/rs6000/darwin.h (CC1_SPEC): Likewise. + (DARWIN_MINVERSION_SPEC): Don't depend on user's setting of + -mmacosx-version-min. + +2007-02-20 Kaveh R. Ghazi + Uros Bizjak + + * optabs.h (enum optab_index): Add new OTI_scalb. + (scalb_optab): Define corresponding macro. + * optabs.c (init_optabs): Initialize scalb_optab. + * genopinit.c (optabs): Implement scalb_optab using scalb?f3 + patterns. + * builtins.c (expand_builtin_mathfn_2, expand_builtin): Handle + BUILT_IN_SCALB{,F,L}, BUILT_IN_SCALBN{,F,L} and BUILT_IN_SCALBLN{,F,L}. + (expand_builtin): Expand BUILT_IN_SCALB{,F,L}, BUILT_IN_SCALBN{,F,L} + and BUILT_IN_SCALBLN{,F,L} using expand_builtin_mathfn_2 if + flag_unsafe_math_optimizations is set. + + * config/i386/i386.md (scalbxf3, scalb3): New expanders + to implement scalbf, scalb and scalbl built-ins as inline x87 + intrinsics. + +2007-02-20 Manuel Lopez-Ibanez + DJ Delorie + + PR other/30824 + * diagnostic.c (diagnostic_count_diagnostic): Move -Werror logic to... + (diagnostic_report_diagnostic): ... here, and turn them into real + errors. If warnings are inhibited, no need to do anything. + +2007-02-20 Uros Bizjak + + * config/i386/i386.md (expm1xf2): Reorder insn sequence for + better code generation. + +2007-02-20 Ben Elliston + + * config/m68hc11/m68hc11.h (OVERRIDE_OPTIONS): Remove extra ;. + 2007-02-20 Kazu Hirata * config/alpha/alpha.c, config/alpha/alpha.md, @@ -37,9 +371,9 @@ 2007-02-19 Lee Millward * config/ia64/ia64.c (ia64_expand_builtin): Use the - new CALL_EXPR_FN macro for retrieving the function + new CALL_EXPR_FN macro for retrieving the function declaration of the input expression. - + 2007-02-19 Manuel Lopez-Ibanez * c.opt (Waddress): New. @@ -57,7 +391,7 @@ -Wstring-literal-comparison and -Walways-true with -Waddress. * c-common.c (c_common_truthvalue_conversion): Replace -Walways-true with -Waddress. - + 2007-02-19 Eric Botcazou * tree-cfg.c (dump_function_to_file): Be prepared for functions @@ -70,9 +404,9 @@ 2007-02-19 Richard Henderson - PR debug/29558 - * var-tracking.c (track_expr_p): Disallow AGGREGATE_TYPE_P - in memory. + PR debug/29558 + * var-tracking.c (track_expr_p): Disallow AGGREGATE_TYPE_P + in memory. 2007-02-19 Andreas Krebbel @@ -822,7 +1156,7 @@ * except.c (expand_builtin_eh_return_data_regno): Pass entire CALL_EXPR as parameter instead of arglist. Use new CALL_EXPR - accessors. + accessors. * coverage.c (create_coverage): Use build_call_expr. @@ -2329,8 +2663,8 @@ 2007-02-03 Douglas Gregor - * c-opts.c (c_common_post_options): If C++0x mode is enabled, don't - warn about C++0x compatibility. + * c-opts.c (c_common_post_options): If C++0x mode is enabled, don't + warn about C++0x compatibility. 2007-02-04 Kazu Hirata