X-Git-Url: http://git.sourceforge.jp/view?p=pf3gnuchains%2Fgcc-fork.git;a=blobdiff_plain;f=gcc%2FChangeLog;h=0d5634b3fb12b4dc625e88eea091e1a03f6577ea;hp=51f8f31c512695f2e792c934e403129efbbfa507;hb=aff39734f4e88646ab9640291434652899b7b69d;hpb=6a086156536dd7ba5021c4035537987dd0977f51 diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 51f8f31c512..0d5634b3fb1 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,882 @@ +2006-10-30 J"orn Rennecke + + * unwind-dw2.c (uw_init_context_1): Fix test that checks if + dwarf_reg_size_table has been initialized. + +2006-10-30 Roger Sayle + + * builtins.c (expand_builtin_mathfn_3): Correct coding style. + * ddg.c (print_ddg_edge): Likewise. + * dwarf2out.c (prune_unused_types_walk): Likewise. + * ifcvt.c (noce_try_cmove_arith): Likewise. + * langhooks.c (add_builtin_function): Likewise. + * reg-stack.c (subst_stack_regs_pat): Likewise. + * tree.c (expanded_location): Likewise. + * tree-dump.c (dequeue_and_dump): Likewise. + +2006-10-30 David Daney + + * config/mips/linux.h (NO_SHARED_SPECS): Correct syntax error. + +2006-10-30 Jakub Jelinek + + PR tree-optimization/29637 + * tree.c (make_vector_type): Don't recurse if TYPE_MAIN_VARIANT + of the innertype is the innertype itself. + +2006-10-30 Danny Smith + + * dwarf2out.c (file_name_acquire): Correct typo. + +2006-10-29 Daniel Berlin + + * tree.h (tree_value_handle): Remove struct value_set declaration. + Change value_set to bitmap_set. + * tree-pretty-print.c (dump_generic_node): Use has_stmt_ann. + * tree-vn.c (get_value_handle): Made inline and moved to + tree-flow-inline.h. + * tree-flow-inline.h: (has_stmt_ann): New function. + * tree-ssa-pre.c (expressions): New variable. + (next_expression_id): Ditto. + (alloc_expression_id): New function. + (struct value_set): Remove. + (get_expression_id): New function. + (get_or_alloc_expression_id): Ditto. + (expression_for_id): Ditto. + (clear_expression_ids): Ditto. + (FOR_EACH_EXPR_ID_IN_SET): New macro. + (bb_value_sets): Renamed to bb_bitmap_sets. + All value sets replaced with bitmap_sets. + Add visited member. + (BB_VISITED): New macro. + (postorder): New variable. + (add_to_value): Removed. + (value_exists_in_set_bitmap): Ditto. + (value_insert_into_set_bitmap): Ditto. + (set_new): Ditto. + (set_copy): Ditto. + (set_remove): Ditto. + (set_contains_value): Ditto. + (insert_into_set): Ditto. + (set_equal): Ditto. + (find_leader): Ditto. + (bitmap_set_subtract_from_value_set): Ditto. + (value_insert_into_set): Ditto. + (print_value_set): Ditto. + (debug_value_set): Ditto. + (constant_expr_p): New function. + (bitmap_remove_from_set): Ditto. + (bitmap_insert_into_set): Ditto. + (bitmap_set_free): Ditto. + (vh_compare): Ditto. + (sorted_array_from_bitmap_set): Ditto. + (bitmap_set_subtract): Ditto. + (bitmap_set_equal): Ditto. + (debug_bitmap_set): Ditto. + (find_leader_in_sets): Ditto. + (bitmap_set_replace_value): Modify for bitmapped sets. + (phi_translate): Ditto. + (phi_translate_set): Ditto. + (bitmap_find_leader): Ditto. + (valid_in_sets): Ditto. + (union_contains_value): Ditto. + (clean): Ditto. + (compute_antic_aux): Ditto. Mark changed blocks. + (compute_antic): Ditto. Iterate in postorder and only over + changing blocks. + (compute_rvuse_and_antic_safe): Reuse postorder. + (create_component_ref_by_pieces): Modify for bitmapped sets. + (find_or_generate_expression): Ditto. + (create_expression_by_pieces): Ditto. + (insert_into_preds_of_block): Ditto. + (changed_blocks): New variable. + (do_regular_insertion): Broken out from insert_aux. + (insert_aux): Modified for bitmapped sets. + (find_existing_value_expr): New function. + (create_value_expr_from): Use it. + (insert_extra_phis): Removed. + (print_bitmap_set): Renamed from bitmap_print_value_set. + (compute_avail): Handle RETURN_EXPR. + (init_pre): Modify for bitmapped sets. + * tree-flow.h (has_stmt_ann): New function. + +2006-10-29 Roger Sayle + + * builtins.c (fold_builtin_floor): Check for the availability of + the C99 trunc function before transforming floor into trunc. + +2006-10-29 Kaveh R. Ghazi + + * builtins.c (fold_builtin_hypot): Rearrange recursive + transformation before others, and also do ABS_EXPR. When + necessary, check flag_unsafe_math_optimizations. When necessary, + add fabs. + +2006-10-29 Roger Sayle + + * fold-const.c (fold_comparison): Fold ~X op ~Y as Y op X. + Fold ~X op C as X op' ~C, where op' is the swapped comparison. + (fold_binary): ~X eq/ne C is now handled in fold_comparison. + Fold -X eq/ne -Y as X eq/ne Y. + +2006-10-29 Richard Sandiford + + * config/mips/mips.md (mul3): Check ISA_HAS_MUL3 rather than + GENERATE_MULT3_. Restrict the test to SImode. Use ISA_HAS_MUL3 + rather than GENERATE_MULT3_SI in the various define_peephole2s. + (mulsi3_mult3): Depend on ISA_HAS_MUL3 rather than GENERATE_MULT3_SI. + Use an inclusive test for "mult" rather than "mul". + (rotr3): Depend on ISA_HAS_ROR. + * config/mips/mips.h (GENERATE_MULT3_SI): Delete in favor of + ISA_HAS_MUL3. + (GENERATE_MULT3_DI): Delete. + (ISA_HAS_64BIT_REGS): Use consistent formatting. + (ISA_HAS_MUL3): New macro. + (ISA_HAS_CONDMOVE, ISA_HAS_8CC): Use consistent formatting. + (ISA_HAS_FP4, ISA_HAS_MADD_MSUB, ISA_HAS_NMADD_NMSUB): Likewise. + (ISA_HAS_CLZ_CLO): Likewise. + (ISA_HAS_DCLZ_DCLO): Delete. + (ISA_HAS_MULHI, ISA_HAS_MULS, ISA_HAS_MSAC): Require !TARGET_MIPS16. + (ISA_HAS_MACC): Require !TARGET_MIPS16 for all ISAs, not just + the VR4120 and VR4130. + (ISA_HAS_MACCHI): Use consistent formatting. + (ISA_HAS_ROTR_SI, ISA_HAS_ROTR_DI): Delete in favor of... + (ISA_HAS_ROR): ...this new macro. + (ISA_HAS_PREFETCH, ISA_HAS_PREFETCHX): Use consistent formatting. + (ISA_HAS_SEB_SEH, ISA_HAS_EXT_INS): Likewise. + (ISA_HAS_LOAD_DELAY): Use ISA_MIPS1. + +2006-10-29 Roger Sayle + + PR tree-optimization/15458 + * fold-const.c (fold_binary): Optimize ~X ^ C as X ^ ~C, where C + is a constant. + +2006-10-29 Richard Guenther + + * config/i386/i386-protos.h (ix86_expand_trunc): Declare. + (ix86_expand_truncdf_32): Likewise. + * config/i386/i386.c (ix86_expand_trunc): New function expanding + trunc inline for SSE math and -fno-trapping-math and if not + optimizing for size. + (ix86_expand_truncdf_32): Same for DFmode on 32bit archs. + * config/i386/i386.md (btruncsf2, btruncdf2): Adjust expanders + for expanding btrunc inline for SSE math. + +2006-10-29 Joseph Myers + + * config.gcc (i[34567]86-*-linux*): Handle --enable-targets=all. + Handle tuning for bi-arch i[34567]86-*-linux* like that for + i[34567]86-*-solaris2.1[0-9]*. + * config/i386/linux64.h (TARGET_VERSION, MULTILIB_DEFAULTS): + Define conditionally depending on TARGET_64BIT_DEFAULT. + (SPEC_32, SPEC_64): Define. + (LINK_SPEC): Use them. + * doc/install.texi (--enable-targets=all): Document for x86-linux. + +2006-10-29 Richard Guenther + + * config/i386/i386-protos.h (ix86_expand_round): Declare. + (ix86_expand_rounddf_32): Likewise. + * config/i386/i386.c (ix86_expand_round): New function expanding + round inline for SSE math and -fno-trapping-math and if not + optimizing for size. + (ix86_expand_rounddf_32): Same for DFmode on 32bit archs. + * config/i386/i386.md (rounddf2, roundsf2): New pattern expanding + round via ix86_expand_round. + +2006-10-29 Richard Guenther + + * config/i386/i386-protos.h (ix86_expand_floorceil): Declare. + (ix86_expand_floorceildf_32): Likewise. + * config/i386/i386.c (ix86_expand_sse_compare_mask): New + static helper function. + (ix86_expand_floorceil): Expander for floor and ceil to SSE + math. + (ix86_expand_floorceildf_32): Same for DFmode on 32bit archs. + * config/i386/i386.md (floordf2): Adjust to enable floor + expansion via ix86_expand_floorceil if TARGET_SSE_MATH and + -fno-trapping-math is enabled and if not optimizing for size. + (floorsf2, ceildf2, ceilsf2): Likewise. + * config/i386/sse.md (sse_maskcmpsf3): New insn. + (sse2_maskcmpdf3): Likewise. + +2006-10-29 Richard Guenther + + * builtins.c (expand_builtin_mathfn): Expand nearbyint as + rint in case -fno-trapping-math is enabled. + * config/i386/i386-protos.h (ix86_expand_rint): Declare. + * config/i386/i386.c (ix86_gen_TWO52): New static helper function. + (ix86_expand_sse_fabs): Likewise. + (ix86_expand_rint): New function expanding rint to x87 or SSE math. + * config/i386/i386.md (rintdf2): Enable for SSE math if + -fno-trapping-math is enabled, use ix86_expand_rint for expansion. + (rintsf2): Likewise. + +2006-10-29 Richard Guenther + + * genopinit.c (optabs): Change lfloor_optab and lceil_optab + to conversion optabs. + * optabs.c (init_optabs): Initialize lfloor_optab and lceil_optab + as conversion optab. + * optabs.h (enum optab_index): Remove OTI_lfloor and OTI_lceil. + (enum convert_optab_index): Add COI_lfloor and COI_lceil. + (lfloor_optab, lceil_optab): Adjust defines. + * builtins.c (expand_builtin_int_roundingfn): Adjust for + lfloor and lceil optabs now being conversion optabs. + * config/i386/i386-protos.h (ix86_expand_lfloorceil): Declare. + * config/i386/i386.c (ix86_expand_sse_compare_and_jump): + New static helper function. + (ix86_expand_lfloorceil): New function to expand lfloor and + lceil inline. + * config/i386/i386.md (lfloor2): Split into ... + (lfloorxf2): ... x87 variant + (lfloordi2, lfloorsi2): ... and SSE variants + using ix86_expand_lfloorceil. + (lceil2, lceilxf2, lceildi2, lceilsi2): + Likewise. + * doc/md.texi (lfloorMN, lceilMN): Document. + +2006-10-29 Richard Sandiford + + * configure.ac (HAVE_AS_NO_SHARED): New AC_DEFINE. Test for the + -mno-shared assembler option on mips targets. + * configure, config.in: Regenerate. + * config/mips/linux.h (NO_SHARED_SPECS): New macro. + (DRIVER_SELF_SPECS): Define to NO_SHARED_SPECS if non-empty. + * config/mips/linux64.h (DRIVER_SELF_SPECS): Include NO_SHARED_SPECS. + +2006-10-29 Richard Sandiford + + * config/mips/mips.c (mips_classify_symbol): Test DECL_WEAK as well + as TREE_PUBLIC when deciding whether to return SYMBOL_GOT_GLOBAL. + +2006-10-29 Kazu Hirata + + * config/darwin.c, config/darwin.opt, config/ia64/itanium1.md, + config/ia64/itanium2.md, real.c, tree-ssa-structalias.c: Fix + comment typos. + +2006-10-28 Kaveh R. Ghazi + + PR middle-end/29335 + * builtins.c (do_mpfr_arg2, fold_builtin_hypot): New. + (fold_builtin_pow): Evaluate constant arguments at compile-time + using MPFR. + (fold_builtin_1): Handle BUILT_IN_ATAN2 and BUILT_IN_HYPOT. + (do_mpfr_ckconv): New helper function. + (do_mpfr_arg1): Use do_mpfr_ckconv. + (do_mpfr_arg2): New. + +2006-10-28 Andrew Pinski + + PR tree-opt/29271 + * doc/invoke.texi (-fdump-rtl-sched2) Fix file extension number. + (-fdump-rtl-sched): Rename to .. + (-fdump-rtl-sched1): here. Also fix file extension number. + +2006-10-28 Richard Guenther + + * fold-const.c (maybe_canonicalize_comparison): Fix code + to match comment. + +2006-10-28 Uros Bizjak + + * config/i386/i386.h (GENERAL_REGNO_P): Use STACK_POINTER_REGNUM. + (NON_QI_REG_P): Use IN_RANGE. + (REX_INT_REGNO_P): Use IN_RANGE. + (FP_REGNO_P): Use IN_RANGE. + (SSE_REGNO_P): Use IN_RANGE. + (REX_SSE_REGNO_P): Use IN_RANGE. + (MMX_REGNO_P): Use IN_RANGE. + (STACK_REGNO_P): New macro. + (STACK_REG_P): Use STACK_REGNO_P. + (NON_STACK_REG_P): Use STACK_REGNO_P. + (REGNO_OK_FOR_INDEX_P): Use REX_INT_REGNO_P. + (REGNO_OK_FOR_BASE_P): Use GENERAL_REGNO_P. + (REG_OK_FOR_INDEX_NONSTRICT_P): Use REX_INT_REGNO_P. + (REG_OK_FOR_BASE_NONSTRICT_P): Use GENERAL_REGNO_P. + (HARD_REGNO_RENAME_OK): Use !IN_RANGE. + +2006-10-28 Eric Botcazou + + * except.h (output_function_exception_table): Add 'const char*' param. + * except.c (switch_to_exception_section): Add 'const char*' param. + If named sections are supported and HAVE_LD_EH_GC_SECTIONS is defined + and flag_function_sections is set, use a function-specific section. + (output_function_exception_table): Add 'const char*' param. + Adjust call to switch_to_exception_section. + * final.c (rest_of_handle_final): Adjust calls to + output_function_exception_table. + * configure.ac (HAVE_LD_EH_GC_SECTIONS): New check. + * config.in: Regenerate. + * configure: Likewise. + +2006-10-28 Richard Guenther + + PR middle-end/26899 + * fold-const.c (maybe_canonicalize_comparison_1): Helper + for maybe_canonicalize_comparison. + (maybe_canonicalize_comparison): New function for canonicalizing + comparison trees. + (fold_comparison): Call it to canonicalize comparisons with + constants involved. + +2006-10-28 Richard Guenther + + PR target/28806 + * builtins.c (expand_builtin_int_roundingfn_2): Expand + BUILT_IN_LROUND and BUILT_IN_LLROUND from here. + (expand_builtin): Adjust likewise. + * genopinit.c (optabs[]): Add lround optab. + * optabs.c (init_optabs): Initialize lround_optab. + * optabs.h (enum convert_optab_index): Add COI_lround. + (lround_optab): Define. + * config/i386/i386-protos.h (ix86_expand_lround): Declare. + * config/i386/i386.c (ix86_sse_copysign_to_positive): New + static function. + (ix86_expand_lround): New function. + * config/i386/i386.md (lrounddi2, lroundsi2): + New expanders. + * doc/md.texi (lroundMN2): Document. + +2006-10-28 Uros Bizjak + + PR target/29377 + * config/h8300/h8300.c (h8300_emit_stack_adjustment): Change "size" + argument to HOST_WIDE_INT. Update function prototype. + (round_frame_size): Change return type to HOST_WIDE_INT. Change + "size" argument to HOST_WIDE_INT. Update function prototype. + +2006-10-28 Uros Bizjak + + * config/i386/i386.c (output_387_ffreep): Create output from a + template string for !HAVE_AS_IX86_FFREEP. + +2006-10-27 Eric Christopher + + * config/darwin.c: Fix formatting and grammar. + +2006-10-27 Jan Hubicka + + * builtins.c (fold_builtin): Don't generate NOP_EXPR that is going + to be thrown away soon when IGNORE is set. + * tree-ssa-ccp.c (convert_to_gimple_builtin): Add IGNORE argument + indicating when return value shall not be computed. + * gimplify.c (internal_get_tmp_var): Avoid random tree sharing. + +2006-10-27 Vladimir Makarov + + * config/i386/i386.h (TARGET_GEODE): + (TARGET_CPU_CPP_BUILTINS): Add code for geode. + (TARGET_CPU_DEFAULT_geode): New macro. + (TARGET_CPU_DEFAULT_k6, TARGET_CPU_DEFAULT_k6_2, + TARGET_CPU_DEFAULT_k6_3, TARGET_CPU_DEFAULT_athlon, + TARGET_CPU_DEFAULT_athlon_sse, TARGET_CPU_DEFAULT_k8, + TARGET_CPU_DEFAULT_pentium_m, TARGET_CPU_DEFAULT_prescott, + TARGET_CPU_DEFAULT_nocona, TARGET_CPU_DEFAULT_generic): Increase + the macro values. + (TARGET_CPU_DEFAULT_NAMES): Add geode. + (processor_type): Add PROCESSOR_GEODE. + + * config/i386/i386.md: Include geode.md. + (cpu): Add geode. + + * config/i386/i386.c (geode_cost): New initialized global + variable. + (m_GEODE, m_K6_GEODE): New macros. + (x86_use_leave, x86_push_memory, x86_deep_branch, x86_use_sahf, + x86_use_himode_fiop, x86_promote_QImode, x86_add_esp_4, + x86_add_esp_8, x86_rep_movl_optimal, x86_ext_80387_constants, + x86_schedule): Use m_K6_GEODE instead of m_K6. + (x86_movx, x86_cmove): Set up m_GEODE. + (x86_integer_DFmode_moves): Clear m_GEODE. + (processor_target_table): Add entry for geode. + (processor_alias_table): Ditto. + + * config/i386/geode.md: New file. + + * doc/invoke.texi: Add entry about geode processor. + +2006-10-27 Mike Stump + + * config/darwin-c.c (darwin_cpp_builtins): Move __STATIC__ and + __DYNAMIC__ from here back to ... + * config/darwin.h (CPP_SPEC): ... here. + +2006-10-26 Nathan Froyd + Nathan Sidwell + + * ggc-common.c (ggc_min_heapsize_heuristic): Be more conservative + when choosing the minimum heapsize. + +2006-10-26 Nathan Froyd + + * gcc/unwind-dw2.h: Move cfa-related variables into + struct frame_state_reg_info to ensure that the CFA is properly + handled when executing DW_CFA_{remember,restore}_state. + * gcc/unwind-dw2.c, gcc/config/alpha/linux-unwind.h, + gcc/config/alpha/vms-unwind.h, gcc/config/s390/tpf-unwind.h + gcc/config/s390/linux-unwind.h, gcc/config/sparc/linux-unwind.h + gcc/config/i386/linux-unwind.h, gcc/config/sh/linux-unwind.h + gcc/config/rs6000/linux-unwind.h, + gcc/config/rs6000/darwin-fallback.c, gcc/config/pa/linux-unwind.h, + gcc/config/pa/hpux-unwind.h, gcc/config/mips/linux-unwind.h: + Modify to use new cfa_* fields. + +2006-10-26 Andreas Krebbel + + * config/s390/s390.c (s390_init_frame_layout): Check positive + frame_size. + +2006-10-26 Ben Elliston + + * gimplify.c (get_name): Remove extraneous break. + (gimplify_omp_for): Initialise ret with GS_OK. + +2006-10-25 Steve Ellcey + + * config/ia64/hpux.h: Define _INCLUDE__STDC_A1_SOURCE in C++. + Add unix98.o to link line. + +2006-10-25 Kaveh R. Ghazi + + PR middle-end/29335 + * builtins.c (fold_builtin_cbrt, fold_builtin_logarithm): + Calculate compile-time constants using MPFR. + (fold_builtin_1): Likewise handle BUILT_IN_ERF, BUILT_IN_ERFC, + BUILT_IN_EXPM1 and BUILT_IN_LOG1P. + +2006-10-25 Bob Wilson + + * config/xtensa/lib2funcs.S: Use C-style comments. + +2006-10-24 Nathan Froyd + + * dwarf2out.c (gen_compile_unit_die): Use IS_ABSOLUTE_PATH. + (file_table_relative_p): Likewise. + (dwarf2out_finish): Likewise. + (file_name_acquire): Use DIR_SEPARATOR and DIR_SEPARATOR_2. + +2006-10-25 Daniel Berlin + + * tree-ssa-structalias.c (intra_create_variable_infos): + Don't recreate nonlocal_all if it already exists. + +2006-10-25 Richard Guenther + + PR target/28803 + * optabs.h (enum optab_index): Remove OTI_lrint. + (enum convert_optab_index): Add COI_lrint. + (lrint_optab): Adjust. + (expand_sfix_optab): Declare. + * optabs.c (expand_sfix_optab): New function. + (init_optabs): Init lrint_optab as conversion optab. + * genopinit.c (lrint_optab): Change to a conversion optab. + * builtins.c (expand_builtin_int_roundingfn_2): Adjust to + expansion via conversion optab. + * config/i386/i386.md (*fistdi2_1): Remove + flag_unsafe_math_optimizations guard. + (fistdi2, fistdi2_with_temp, *fist2_1, fist2, + fist2_with_temp): Likewise. + (lrint2): Split into... + (lrintxf2): ... x87 part + (lrintdi2, lrintsi2): ... and SSE parts. + * config/i386/sse.md (sse_cvtss2si_2, sse_cvtss2_siq_2, + sse2_cvtsd2si_2, sse2_cvtsd2siq_2): New insns for + UNSPEC_FIX_NOTRUNC matching non-vector float modes. + * doc/md.texi (lrintMN2): Document. + +2006-10-25 Uros Bizjak + + PR target/28909 + * config/i386/sync.md ("sync_add", "sync_sub"): + Use inc and dec instructions for TARGET_USE_INCDEC. + ("*sync_compare_and_swap"): Fix -masm=intel template. + ("sync_double_compare_and_swap"): Likewise. + ("*sync_double_compare_and_swapdi_pic"): Likewise. + ("*sync_compare_and_swap_cc"): Likewise. + ("sync_double_compare_and_swap_cc"): Likewise. + ("*sync_double_compare_and_swap_ccdi_pic"): Likewise. + ("sync_old_add"): Likewise. + ("sync_lock_test_and_set"): Likewise. + ("sync_lock_test_and_set"): Likewise. + ("sync_add"): Likewise. + ("sync_sub"): Likewise. + ("sync_ior"): Likewise. + ("sync_and"): Likewise. + ("sync_xor"): Likewise. + +2006-10-25 Uros Bizjak + + * optabs.h (enum optab_index): Rename OTI_drem to OTI_remainder. + (remainder_optab): Define corresponding macro. + (drem_optab): Remove. + * optabs.c (init_optabs): Initialize remainder_optab. Remove + drem_optab initialization. + * genopinit.c (optabs): Implement remainder_optab using + remainder?f3 patterns. Remove drem_optab. + * builtins.c (expand_builtin_mathfn_2): Handle + BUILT_IN_REMAINDER{,F,L} using remainder_optab. + (expand_builtin): Expand BUILT_IN_REMAINDER{,F,L} using + expand_builtin_mathfn_2. + + (expand_builtin) [BUILT_IN_FMOD, BUILT_IN_DREM]: Do not + depend on flag_unsafe_math_optimizations. + + * config/i386/i386.md ("remaindersf3", "remainderdf3") + ("remainderxf3"): Renamed from "drem{s,d,x}f3" expanders. + Do not depend on flag_unsafe_math_optimizations. Use + truncxf?f expander instead of truncxf?f_i387_noop. + + ("fpremxf4", "fprem1xf4"): Do not depend on + flag_unsafe_math_optimizations. + ("fmodsf3", "fmoddf3", "fmodxf3"): Do not depend on + flag_unsafe_math_optimizations. Use truncxf?f expander + instead of truncxf?f_i387_noop. + + * doc/md.texi (fmod, remainder): Document standard named pattern. + +2006-10-24 Richard Sandiford + David Daney + + PR middle-end/29519 + * rtlanal.c (nonzero_address_p): Remove check for values wrapping. + +2006-10-25 Ben Elliston + + * doc/extend.texi (Variable Attributes): Typo fix. + +2006-10-24 Uros Bizjak + + * config/i386/i386.h (FIRST_PSEUDO_REGISTER): Define to 54. + (FIXED_REGISTERS, CALL_USED_REGISTERS): Add fpcr register. + (REG_ALLOC_ORDER): Add one element to allocate fpcr register. + (FRAME_POINTER_REGNUM): Update register number to 21. + (REG_CLASS_CONTENTS): Update contents for added fpcr register. + (HI_REGISTER_NAMES): Add "fpcr" for fpcr register. + + * config/i386/i386.c (regclass_map): Add fpcr entry. + (dbx_register_map, dbx64_register_map, svr4_dbx_register_map): + Add fpcr entry. + (print_reg): Assert REGNO (x) != FPCR_REG. + + * config/i386/i386.md (FPCR_REG, R11_REG): New constants. + (DIRFLAG_REG): Renumber. + (x86_fnstcw_1, x86_fldcw_1): Use FPCR_REG instead of FPSR_REG. + (*sibcall_1_rex64_v, *sibcall_value_1_rex64_v): Use R11_REG. + (sse_prologue_save, *sse_prologue_save_insn): Renumber + hardcoded SSE register numbers. + + * config/i386/mmx.md (mmx_emms, mmx_femms): Renumber + hardcoded MMX register numbers. + +2006-10-24 Kaveh R. Ghazi + + PR middle-end/29335 + * builtins.c (fold_builtin_sin, fold_builtin_atan): Remove. + (do_mpfr_arg1): Add `min', `max' and `inclusive' arguments. + Update all callers. + (BUILT_IN_SIN, BUILT_IN_ATAN): Handle in main switch. + (BUILT_IN_ASIN, BUILT_IN_ACOS, BUILT_IN_ATAN, BUILT_IN_ASINH, + BUILT_IN_ACOSH, BUILT_IN_ATANH, BUILT_IN_SINH, BUILT_IN_COSH, + BUILT_IN_TANH): Calculate compile-time arguments using MPFR. + +2006-10-24 Richard Guenther + + PR middle-end/28796 + * builtins.c (fold_builtin_classify): Use HONOR_INFINITIES + and HONOR_NANS instead of MODE_HAS_INFINITIES and MODE_HAS_NANS + for deciding optimizations in consistency with fold-const.c + (fold_builtin_unordered_cmp): Likewise. + +2006-10-24 Richard Guenther + + * builtins.c (fold_builtin_floor): Fold floor (x) where + x is nonnegative to trunc (x). + (fold_builtin_int_roundingfn): Fold lfloor (x) where x is + nonnegative to FIX_TRUNC_EXPR. + +2006-10-24 Richard Guenther + + PR tree-optimization/29567 + * tree-vrp.c (register_edge_assert_for_1): Fix wrong logic + for TRUTH_NOT_EXPR. Clarify comments. + +2006-10-24 Kaveh R. Ghazi + + PR middle-end/29335 + * builtins.c (fold_builtin_exponent): Evaluate constant arguments + at compile-time using MPFR. Change parameter VALUE to FUNC, + update all callers. + (do_mpfr_arg1): Rename `exact' to `inexact'. Carefully check + for overflow and underflow at all times and avoid folding in + those cases. + +2006-10-24 Ben Elliston + + * reload1.c: Formatting fixes. + +2006-10-23 Zdenek Dvorak + + PR tree-optimization/14784 + * tree-flow.h (struct var_ann_d): Add is_heapvar bit. + * tree-ssa-structalias.c (get_constraint_for, + intra_create_variable_infos): Set is_heapvar. + * tree-ssa-operands.c (access_can_touch_variable): Do not handle + non-heapvar pointer variables specially. + +2006-10-23 Kaveh R. Ghazi + + PR middle-end/29335 + * builtins.c (fold_builtin_sin, fold_builtin_cos, + fold_builtin_tan): Fold all constant arguments. Take a "type" + argument as necessary. + (do_mpfr_arg1): New. + * real.c, real.h (real_from_mpfr, mpfr_from_real): New. + +2006-10-23 Bob Wilson + + * config/xtensa/lib1funcs.asm: Use C-style comments. + +2006-10-23 Rafael Avila de Espindola + + * tree.c (local_define_builtin): Replace calls to + lang_hooks.builtin_function with add_builtin_function. + * c-objc-common.h (LANG_HOOKS_BUILTIN_FUNCTION): Define as + c_builtin_function. + * c-tree.h (builtin_function): Rename to c_builtin_function. Change + the signature. + * c-decl.c (builtin_function): Rename to c_builtin_function. Move + common code to add_builtin_function. + * langhooks.c (add_builtin_function): New function. + (lhd_builtin_function): New function. + * langhooks.h (struct lang_hooks): Change the signature of + builtin_function. + (add_builtin_function): New function. + * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Replace + calls to lang_hooks.builtin_function with add_builtin_function. + * c-common.c (decl_builtin_1): Replace calls to + lang_hooks.builtin_function with add_builtin_function. + * config/alpha/alpha.c (alpha_init_builtins): Replace calls to + lang_hooks.builtin_function with add_builtin_function. + * config/frv/frv.c (def_builtin): Replace calls to + lang_hooks.builtin_function with add_builtin_function. + * config/s390/s390.c (s390_init_builtins): Replace calls to + lang_hooks.builtin_function with add_builtin_function. + * config/sparc/sparc.c (def_builtin): Replace calls to + lang_hooks.builtin_function with add_builtin_function. + * config/i386/i386.c (def_builtin): Replace calls to + lang_hooks.builtin_function with add_builtin_function. + * config/sh/sh.c (sh_media_init_builtins): Replace calls to + lang_hooks.builtin_function with add_builtin_function. + * config/c4x/c4x.c (c4x_init_builtins): Replace calls to + lang_hooks.builtin_function with add_builtin_function. + * config/stormy16/stormy16.c (xstormy16_init_builtins): + Replace calls to lang_hooks.builtin_function with + add_builtin_function. + * config/iq2000/iq2000.c (def_builtin): + Replace calls to lang_hooks.builtin_function with + add_builtin_function. + * config/ia64/ia64.c (def_builtin): Replace calls to + lang_hooks.builtin_function with add_builtin_function. + * config/rs6000/rs6000.c (def_builtin): Replace calls to + lang_hooks.builtin_function with add_builtin_function. + (altivec_init_builtins): Replace calls to + lang_hooks.builtin_function with add_builtin_function. + * config/arm/arm.c (def_mbuiltin): Replace calls to + lang_hooks.builtin_function with add_builtin_function. + (arm_init_tls_builtins): Replace calls to + lang_hooks.builtin_function with add_builtin_function. + * config/mips/mips.c (mips_init_builtins): Replace calls to + lang_hooks.builtin_function with add_builtin_function. + * config/bfin/bfin.c (def_builtin): Replace calls to + lang_hooks.builtin_function with add_builtin_function. + * langhooks-def.h (lhd_builtin_function): New function. + (LANG_HOOKS_BUILTIN_FUNCTION): Define as lhd_builtin_function. + +2006-10-23 Jakub Jelinek + + * builtins.c (expand_builtin, maybe_emit_chk_warning): Handle + BUILT_IN_STRNCAT_CHK. + +2006-10-23 Jan Hubicka + + * builtins.c (expand_builtin_memmove): Remove ORIG_EXP argument; + don't do conversion from memmove to memcpy here. + (expand_builtin_bcopy, expand_builtin): Update call of + expand_builtin_memmove. + (fold_builtin_memory_op): Do folding of memmove to memcpy here. + +2006-10-23 Paul Brook + + * stor-layout.c (start_record_layout): maximum_field_alignment + overrides STRUCTURE_SIZE_BOUNDARY. + +2006-10-23 Ulrich Weigand + + * config/s390/predicates.md ("bras_sym_operand"): Do not accept + nonlocal function symbols if flag_pic. + +2006-10-23 Richard Guenther + + PR middle-end/27132 + PR middle-end/23295 + * builtins.c (fold_binary): Remove checks for flag_wrapv + and flag_trapv where negate_expr_p covers these cases. + +2006-10-23 Richard Guenther + + PR middle-end/29548 + * fold-const.c (fold_plusminus_mult_expr): Check exact power + of two on the absolute value. + (fold_binary): Fold x * -C to -x * C if x is easily negatable + and negating -C does not overflow. + +2006-10-23 Richard Guenther + + PR middle-end/21032 + * convert.c (convert_to_real): Fold (float)-x to -(float)x + only if not flag_rounding_math. + +2006-10-22 Richard Sandiford + Kaz Kojima + + PR target/28232 + * config/sh/sh.c (expand_block_move): Use a BLKmode rather than + SImode memory reference for the source of a movua. + * config/sh/sh.md (UNSPEC_MOVUA): New macro. + (movua): Use an unspec instead of sign_extract. Expect the source + to have mode BLKmode. + (extv, insv): Use a BLKmode rather than SImode memory reference + for the source of a movua. + +2006-10-22 Jeff Law + Richard Guenther + + PR tree-optimization/15911 + * tree-vrp.c (extract_code_and_val_from_cond): New function. + (register_edge_assert_for_1): Likewise. + (register_edge_assert_for): Handle &&/&/||/| in conditionals. + (find_conditional_asserts): Adjust for new function signature. + (find_assert_locations): Likewise. + +2006-10-22 H.J. Lu + + * config/i386/tmmintrin.h: Remove the duplicated content. + +2006-10-22 H.J. Lu + + * config.gcc (i[34567]86-*-*): Add tmmintrin.h to extra_headers. + (x86_64-*-*): Likewise. + + * config/i386/i386.c (pta_flags): Add PTA_SSSE3. + (override_options): Check SSSE3. + (ix86_builtins): Add IX86_BUILTIN_PHADDW, IX86_BUILTIN_PHADDD, + IX86_BUILTIN_PHADDSW, IX86_BUILTIN_PHSUBW, IX86_BUILTIN_PHSUBD, + IX86_BUILTIN_PHSUBSW, IX86_BUILTIN_PMADDUBSW, + IX86_BUILTIN_PMULHRSW, IX86_BUILTIN_PSHUFB, + IX86_BUILTIN_PSIGNB, IX86_BUILTIN_PSIGNW, IX86_BUILTIN_PSIGND, + IX86_BUILTIN_PALIGNR, IX86_BUILTIN_PABSB, IX86_BUILTIN_PABSW, + IX86_BUILTIN_PABSD, IX86_BUILTIN_PHADDW128, + IX86_BUILTIN_PHADDD128, IX86_BUILTIN_PHADDSW128, + IX86_BUILTIN_PHSUBW128, IX86_BUILTIN_PHSUBD128, + IX86_BUILTIN_PHSUBSW128, IX86_BUILTIN_PMADDUBSW128, + IX86_BUILTIN_PMULHRSW128, IX86_BUILTIN_PSHUFB128, + IX86_BUILTIN_PSIGNB128, IX86_BUILTIN_PSIGNW128, + IX86_BUILTIN_PSIGND128, IX86_BUILTIN_PALIGNR128, + IX86_BUILTIN_PABSB128, IX86_BUILTIN_PABSW128 and + IX86_BUILTIN_PABSD128. + (bdesc_2arg): Add SSSE3. + (bdesc_1arg): Likewise. + (ix86_init_mmx_sse_builtins): Support SSSE3. + (ix86_expand_builtin): Likewise. + * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): Likewise. + + * config/i386/i386.md (UNSPEC_PSHUFB): New. + (UNSPEC_PSIGN): Likewise. + (UNSPEC_PALIGNR): Likewise. + Include mmx.md before sse.md. + + * config/i386/i386.opt: Add -mssse3. + + * config/i386/sse.md (ssse3_phaddwv8hi3): New pattern for SSSE3. + (ssse3_phaddwv4hi3): Likewise. + (ssse3_phadddv4si3): Likewise. + (ssse3_phadddv2si3): Likewise. + (ssse3_phaddswv8hi3): Likewise. + (ssse3_phaddswv4hi3): Likewise. + (ssse3_phsubwv8hi3): Likewise. + (ssse3_phsubwv4hi3): Likewise. + (ssse3_phsubdv4si3): Likewise. + (ssse3_phsubdv2si3): Likewise. + (ssse3_phsubswv8hi3): Likewise. + (ssse3_phsubswv4hi3): Likewise. + (ssse3_pmaddubswv8hi3): Likewise. + (ssse3_pmaddubswv4hi3): Likewise. + (ssse3_pmulhrswv8hi3): Likewise. + (ssse3_pmulhrswv4hi3): Likewise. + (ssse3_pshufbv16qi3): Likewise. + (ssse3_pshufbv8qi3): Likewise. + (ssse3_psign3): Likewise. + (ssse3_psign3): Likewise. + (ssse3_palignrti): Likewise. + (ssse3_palignrdi): Likewise. + (abs2): Likewise. + (abs2): Likewise. + + * config/i386/tmmintrin.h: New file. + + * doc/extend.texi: Document SSSE3 built-in functions. + + * doc/invoke.texi: Document -mssse3/-mno-ssse3 switches. + +2006-10-22 Ira Rosen + + * tree-vect-transform.c (vectorizable_load): Use the type of the + return value of the mask_for_load builtin to create realign_load + stmt. + +2006-10-22 Richard Sandiford + + * config/mips/mips.c (mips_split_const): Don't accept bare PLUS + expressions. + +2006-10-21 H.J. Lu + + * config/i386/i386.md (UNSPEC_LDQQU): Renamed to ... + (UNSPEC_LDDQU): This. + * config/i386/sse.md (sse3_lddqu): Updated. + +2006-10-21 Richard Guenther + + * builtins.c (expand_builtin_int_roundingfn_2): New function. + (expand_builtin): Use it to expand lrint instead of + expand_builtin_mathfn. + +2006-10-21 Uros Bizjak + + PR middle-end/28252 + * builtins.c (fold_builtin): Fold pow(x,1.0/3.0) as cbrt(x) if + flag_unsafe_math_optimizations is set. + +2006-10-21 Uros Bizjak + + PR target/19398 + * config/i386/i386.md (fix_trunc?f?i_sse): Add peephole2 + patterns to use memory input operand in x87->mem->XMM + reload sequences. Skip transformation for TARGET_K8. + +2006-10-21 Uros Bizjak + + * config/i386/i386.md (extendsfdf2, extendsfxf2, extenddfxf2): Do not + force operand1 to register if both operands are memory operands. + (*extendsfdf2_mixed, *extendsfdf2_sse, *extendsfdf2_i387) + (*extendsfxf2_i387, *extenddfxf2_i387): Do not disable pattern + if both operands are memory operands. + (truncdfsf2): Do not force operand1 to register if both operands + are memory operands. + 2006-10-21 Kaveh R. Ghazi * Makefile.in (LIBS): Add $(GMPLIBS). @@ -133,13 +1012,13 @@ (init_alias_heapvars): Initialize nonlocal_for_type and nonlocal_all. (delete_alias_heapvars): Free nonlocal_for_type and null out - nonlocal_all. + nonlocal_all. 2006-10-19 Eric Botcazou * fold-const.c (add_double): Rename to add_double_with_sign. Add 'unsigned_p' parameter and take it into account for the overflow. - (mul_double): Rename to mul_double_with_sign. + (mul_double): Rename to mul_double_with_sign. Add 'unsigned_p' parameter and take it into account for the overflow. (fold_div_compare): Call add_double_with_sign instead of add_double and mul_double_with_sign instead of mul_double, passing them the @@ -196,17 +1075,17 @@ 2006-10-17 Wolfgang Gellerich * config/s390/contraints.md: New file. - * config/s390/s390-protos.h (s390_mem_constraint, - s390_O_constraint_str, s390_N_constraint_str, + * config/s390/s390-protos.h (s390_mem_constraint, + s390_O_constraint_str, s390_N_constraint_str, s390_float_const_zero_p): Function prototypes added. - * config/s390/s390.c (s390_extra_constraint_str, - s390_const_double_ok_for_constraint_p, + * config/s390/s390.c (s390_extra_constraint_str, + s390_const_double_ok_for_constraint_p, s390_const_ok_for_constraint_p): Functions removed. (s390_mem_constraint, s390_O_constraint_str, s390_N_constraint_str, s390_float_const_zero_p): New functions. * config/s390/s390.h (REG_CLASS_FROM_LETTER, CONST_OK_FOR_CONSTRAINT_P, - CONST_DOUBLE_OK_FOR_CONSTRAINT_P, EXTRA_CONSTRAINT_STR, - EXTRA_MEMORY_CONSTRAINT, EXTRA_ADDRESS_CONSTRAINT, CONSTRAINT_LEN): + CONST_DOUBLE_OK_FOR_CONSTRAINT_P, EXTRA_CONSTRAINT_STR, + EXTRA_MEMORY_CONSTRAINT, EXTRA_ADDRESS_CONSTRAINT, CONSTRAINT_LEN): Macro definitions removed. (s390_const_ok_for_constraint_p, s390_const_double_ok_for_constraint_p, s390_extra_constraint_str): Functions removed. @@ -577,7 +1456,7 @@ 2006-10-06 Danny Smith - config/i386/mingw32.h (GOMP_SELF_SPECS): Add -mthreads for openmp. + * config/i386/mingw32.h (GOMP_SELF_SPECS): Add -mthreads for openmp. 2006-10-06 Jakub Jelinek