X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;f=gcc%2FChangeLog;h=7ddcc3ebade76b2dad45830625e8884753c1f050;hb=af3515809c989b9c1ba9225b0b177b5bdca87938;hp=e55071362f73f8217cb41f1dc8f97cef83c834fd;hpb=8d84c16c93feedbb0745bdf1640b083cf9e97576;p=pf3gnuchains%2Fgcc-fork.git diff --git a/gcc/ChangeLog b/gcc/ChangeLog index e55071362f7..7ddcc3ebade 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,293 @@ +2007-09-12 Dorit Nuzman + + PR tree-optimization/33373 + * tree-vect-analyze (vect_determine_vectorization_factor): Call + TREE_INT_CST_LOW when comparing TYPE_SIZE_UNIT. + +2007-09-12 Jan Hubicka + + PR target/33393 + * i386.md (floatsisf2_mixed_memory, floatsisf2_sse_memory): Disable for + !SSE_MATH + +2007-09-12 Christian Bruel + + * sh.h (SH_DBX_REGISTER_NUMBER): Added fpscr, fixed sr/gbr regs. + * linux-unwind.h (SH_DWARF_FRAME_GBR): fixed. + +2007-09-12 Ira Rosen + + * tree-vect-transform.c (vect_get_slp_defs): Don't build a vector + for oprnd1 if not required. + (vectorizable_operation): Use scalar operand in SLP in case of + shift with scalar argument. + +2007-09-12 Ira Rosen + + * params.def (PARAM_MIN_VECT_LOOP_BOUND): Change default and minimum + to 1. + +2007-09-11 James E. Wilson + + * defaults.h (DWARF2_UNWIND_INFO): Don't define if + TARGET_UNWIND_INFO is defined. + * config/ia64/ia64.h (INCOMING_RETURN_ADDR_RTX): Delete undef + after definition. + +2007-09-12 Kaz Kojima + + * config/sh/sh.c (calc_live_regs): Use + current_function_saves_all_registers instead of + current_function_has_nonlocal_label. + (sh_allocate_initial_value): Likewise. + (sh_get_pr_initial_val): Likewise. + * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): Likewise. + * config/sh/sh.md (load_ra): Likewise. + +2007-09-12 Hans-Peter Nilsson + + * config/cris/t-linux (LIMITS_H_TEST): Only define if not inhibit_libc. + + PR target/33360 + * config/cris/cris.c (cris_expand_pic_call_address): Fix typo in + GET_CODE (x) == CONST_INT to CONST_INT_P (x) transformation. + +2007-09-12 Sa Liu + + * config/spu/spu.c (spu_emit_branch_or_set): Handle NaN values as + operands to DFmode GE or LE compares. + +2007-09-12 Bernd Schmidt + + * config/bfin/bfin.h (enum reg_class, REG_CLASS_CONTENTS, + REG_CLASS_NAMES): Add P0REGS. + (REGNO_REG_CLASS): Return it where appropriate. + (REG_CLASS_FROM_CONSTRAINT): Add 'qA'. + (CLASS_LIKELY_SPILLED_P): P0REGS is likely_spilled. + * doc/md.texi (Blackfin family): Document 'q' constraints. + +2007-09-11 Steve Kenton + + * pa/linux-unwind.h: Guard with inhibit_libc. + * pa/hpux-unwind.h: Likewise. + +2007-09-11 David Daney + + * doc/invoke.texi: Document new MIPS -mllsc and -mno-llsc options. + * doc/install.texi: Document new --with-llsc and --without-llsc + options. + * config.gcc: Handle --with-llsc and --without-llsc configure options. + * config/mips/mips.md (sync, memory_barrier): Wrap sync instrunction + in %| and %- operand codes. Depend on GENERATE_SYNC instead of + ISA_HAS_SYNC. + (sync_compare_and_swap, sync_add, sync_sub, + sync_old_add, sync_old_sub, sync_new_add, + sync_new_sub, sync_, sync_old_, + sync_new_, sync_nand, sync_old_nand, + sync_new_nand, sync_lock_test_and_set): Depend on + GENERATE_LL_SC instead of ISA_HAS_LL_SC. + * config/mips/mips.opt (mllsc): New option. + * config/mips/mips.c (mips_llsc): Define variable. + (mips_handle_option): Handle mllsc option. + (override_options): Set mips_print_operand_punct for '|' and '-'. + (print_operand): Add new %| and %- operand codes. + * config/mips/mips.h (mips_llsc_setting): New enum type. + (mips_llsc): Declare. + (OPTION_DEFAULT_SPECS): Add llsc handling. + (GENERATE_SYNC): New macro. + (GENERATE_LL_SC): New macro. + (MIPS_COMPARE_AND_SWAP, MIPS_SYNC_OP, MIPS_SYNC_OLD_OP, + MIPS_SYNC_NEW_OP, MIPS_SYNC_NAND, MIPS_SYNC_OLD_NAND, + MIPS_SYNC_NEW_NAND, MIPS_SYNC_EXCHANGE): Wrap instructions + in %| and %- operand codes. + +2007-09-11 Eric Botcazou + + * tree-ssa-structalias.c (push_fields_onto_fieldstack): Deal with + TYPE_NONALIASED_COMPONENT like with DECL_NONADDRESSABLE_P. + +2007-09-11 Jason Merrill + + PR middle-end/27945 + * stor-layout.c (layout_decl): Do pack variable size fields. + +2007-09-11 Maxim Kuvyrkov + + * config/m68k/predicates.md (movsi_const0_operand, + non_symbolic_call_operand): New predicates. + + * config/m68k/constraints.md: (Cs, Ci, C0, Cj, CQ, CW, CZ, CS, Ap, Ac): + New constraints. + * doc/md.texi (Constraints for Particular Machines: Motorola 680x0): + Document constraints N, O, P, R, S, T, Q, U, W, Cs, Ci, C0, Cj, CQ, + CW, CZ, CS, Ap and Ac. + + * config/m68k/m68k.md (UNSPEC_IB): New constant. + (constraints.md): New include. + (cpu, type, type1, opx, opy, opx_type, opy_type, size, opx_access, + opx_mem, opy_mem, op_mem, guess, split): New attributes. + (movdf_internal): Name pattern. Fix to use alternatives. Add split. + Specify attributes. + (pushdi): Add split. + (tstsi_internal): Name pattern. Fix to use alternatives. Specify + attributes. Split tstsi_internal_68020_cf from it. + (tstsi_internal_68020_cf): New pattern. + (tsthi_internal, tstqi_internal): Name pattern. Specify attributes. + (tst_cf): Specify attributea. + (cmpsi_cf): Name pattern. Specify attributes. + (cmp_68881, cmp_cf): Specify type attribute. + (pushexthisi_const): Fix to use alternatives. Specify + attributes. + (movsi_const0): Split movsi_const0_68000_10 and movsi_const0_68040_60 + from it. Fix to use alternatives. Specify attributes. + (movsi_const0_68040_10, movsi_const0_68040_60): New patterns. + (movsi_cf, movstrictqi_cf): Fix to use alternatives. Specify + attributes. + (movsf_cf_soft): Specify attributes. + (movdf_cf_soft): Add split. + (pushasi, zero_extendhisi2_cf, zero_extendqisi2_cfv4, + cfv4_extendhisi2, 68k_extendhisi2, extendqihi2, cfv4_extendqisi2, + 68k_extendqisi2, truncdfsf2_cf): Specify attributes. + (truncdfsf2_68881): Name pattern. Specify attributes. + (floatsi2_cf, floathi2_68881, floathi2_cf, + floatqi2_68881, floatqi2_cf, ftrunc2_cf, + fixqi2_cf, fixhi2_cf, fixsi2_cf, adddi_dishl32): + Specify attributes. + (addsi3_5200): Fix to use alternatives. Specify attributes. + Add splits. + (add3_cf, subdi_dishl32): Specify attributes. + (subsi3): Add alternative for subq.l. Specify attributes. + (sub3_cf, mulhi3, mulhisi3): Specify attributes. + (mulhisisi3_s, mulsi3_68020, mulsi3_cf): Name pattern. Specify + attributes. + (umulhisi3): Specify attributes. + (mulhisisi3_z): Name pattern. Specify attributes. + (fmul3_cf, div3_cf, negsi2_internal, negsi2_5200, + sqrt2_68881, clzsi2, one_cmplsi2_5200, subreghi1ashrdi_const32, + subregsi1ashrdi_const32, ashrsi3, subreg1lshrdi_const32, lshrsi3, + bsetmemqi): Specify attributes. + (bsetmemqi_ext): Name pattern. Specify attributes. + (bclrmemqi): Specify attributes. + (bclrmemqi_ext, scc, sls): Name pattern. Specify attributes. + (beq, bne, bgt, bgtu, blt, bltu, bge, bgeu, ble, bleu): Specify + attributes. + (beq2, bne2, bgt2, bgtu2, blt2, bltu2, bge2, bgeu2, ble2, bleu2): Name + pattern. Specify attributes. + (jump): Specify attributes. + (tablejump_internal): Name pattern. Specify attributes. + (call_value): Split into non_symbolic_call_value, + symbolic_call_value_jsr, symbolic_call_value_bsr. Fix to use + alternatives. Specify attributes. + (non_symbolic_call_value, symbolic_call_value_jsr, + symbolic_call_value_bsr): New patterns. + (nop, return, unlink, indirect_jump): Specify attributes. + (trap): Fix condition. Specify attributes. + (ib): New pattern. + + * config/m68k/m68k.c (m68k_symbolic_call_var): New variable. + (override_options): Initialize it. Initialize m68k_sched_cpu. + (CONST_METHOD): Rename to M68K_CONST_METHOD, move to m68k.h. + (const_method): Make global, rename to m68k_const_method. + (const_int_cost, output_move_const_into_data_reg): Update. + (output_move_double): Parametrize to emit rtl code, rename to + handle_move_double. + (output_reg_adjust, emit_reg_adjust, output_compadr, output_movsi, + emit_movsi): New static functions. + (output_move_double): New function with semantics of old + output_move_double. + (m68k_emit_move_double): New function. + (m68k_sched_cpu): New variable. + (attr_op_type): New enum. + (sched_guess_p): New variable. + (sched_address_type, sched_operand_type, sched_attr_op_type): + New static functions. + (m68k_sched_attr_opx_type, m68k_sched_attr_opy_type, + m68k_sched_attr_size, m68k_sched_attr_op_mem): New functions. + (sched_branch_type): New static variable. + (m68k_sched_branch_type): New function. + * config/m68k/m68k.h (M68K_SYMBOLIC_CALL): New enum. + (m68k_symbolic_call_var): Declare. + (M68K_CONST_METHOD): Rename from CONST_METHOD. Move here from m68k.c. + (m68k_const_method, m68k_emit_move_double, m68k_sched_cpu, + m68k_sched_attr_opx_type, m68k_sched_attr_opy_type, + m68k_sched_attr_size, m68k_sched_attr_op_mem, m68k_sched_branch_type): + Declare. + +2007-09-11 Jakub Jelinek + + * builtins.def (BUILT_IN_VA_ARG_PACK_LEN): New builtin. + * builtins.c (expand_builtin) : Issue + error if __builtin_va_arg_pack_len () wasn't optimized out during + inlining. + * tree-inline.c (copy_bb): Replace __builtin_va_arg_pack_len () + with the number of inline's anonymous arguments. + * doc/extend.texi: Document __builtin_va_arg_pack_len (). + +2007-09-11 Zdenek Dvorak + + * fold-const.c (extract_muldiv_1): Do not simplify + var * c * c to var. + +2007-09-11 Jan Hubicka + + * i386.h (ix86_tune_indices): Add X86_TUNE_INTER_UNIT_CONVERSIONS. + (TARGET_INTER_UNIT_CONVERSIONS): New. + * i386.md (floatsi expanders): Remove redundant check for SImode + source; offload to memory when asked for. + (floatsisf2_mixed, floatsisf2_sse, floatsidf2_mixed, floatsidf2_sse + floatdisf2_mixed, floatsisf2_sse, floatsidf2_mixed, floatsidf2_sse): + Update conditions; + (floatsisf2_mixed_memory, floatsisf2_sse_memory, + floatsidf2_mixed_memory, floatsidf2_sse_memory + floatdisf2_mixed_memory, floatsisf2_sse_memory, + floatsidf2_mixed_memory, floatsidf2_sse_memory): New. + +2007-09-11 Jan Hubicka + + * toplev.c (process_options): all frontends now do unit-at-a-time. + * cgraphunit.c: update comments. + (cgraph_expand_function): call passmanager dirrectly; emit thunks. + * c-decl.c (finish_function): use cgraph_add_new_function. + * function.c (expand_function_end): We are always unit-at-a-time. + +2007-09-11 Richard Sandiford + + * config/mips/mips.c (mips_set_mips16_mode): Use separate anchor + settings for MIPS16. + (mips_use_anchors_for_symbol_p): Use default_use_anchors_for_symbol_p. + +2007-09-11 Richard Sandiford + + * config/mips/mips.c (mips_symbol_insns_1): Allow LEAs of + SYMBOL_FORCE_TO_MEM constants. + (mips_rtx_costs): Give a cost of 1 to force_to_mem_operands. + (mips16_rewrite_pool_refs_info): New structure. + (mips16_rewrite_pool_constant): New function, split out from... + (mips16_rewrite_pool_refs): ...here. Take a pointer to a + mips16_rewrite_pool_refs_info structure rather than a pointer + to a constant pool. Force force_to_mem_operands into memory. + (mips16_lay_out_constants): Update call to mips16_rewrite_pool_refs. + * config/mips/predicates.md (force_to_mem_operand): New predicate. + * config/mips/constraints.md (kf): New constraint. + * config/mips/mips.md (*movdi_64bit_mips16): Add a d <- kf alternative. + (*movsi_mips16): Likewise. + +2007-09-11 Richard Sandiford + Nigel Stephens + David Ung + + * config/mips/mips.h (CONSTANT_POOL_COST): Move to... + * config/mips/mips.c: ...here and set to 4 for TARGET_MIPS16. + (mips16_constant_cost, mips_immediate_operand_p, mips_binary_cost) + (mips_fp_mult_cost, mips_fp_div_cost, mips_sign_extend_cost) + (mips_zero_extend_cost): New functions. + (mips_rtx_costs): Treat COMPARE constants as having zero cost. + Use the new functions. Tweak many cost estimates, both here + and in the new subroutines. Return false when the cost of the + operands has not been calculated. Check for *clear_upper32. + Check for floating-point multiply-add, reciprocal and rsqrt + patterns. Handle comparison and rotation codes. + 2007-09-11 Danny Smith * config/i386/cygming.h (TARGET_STRIP_NAME_ENCODING): Don't