X-Git-Url: http://git.sourceforge.jp/view?p=pf3gnuchains%2Fgcc-fork.git;a=blobdiff_plain;f=gcc%2FChangeLog;h=7eb20a31c42c43d8307a16a5b19518c6aa0b2265;hp=b4ff1f894458c198c652d880941edad39f77212c;hb=4a08b13445c3a25d5722a6b2d8b43c709b6ba551;hpb=73444c651ff4e30a66b18ae14f5a669994238076 diff --git a/gcc/ChangeLog b/gcc/ChangeLog index b4ff1f89445..7eb20a31c42 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,6 +1,787 @@ +2005-12-01 Kaveh R. Ghazi + + * builtins.def (BUILT_IN_PUTC, BUILT_IN_PUTC_UNLOCKED): New. + + * config/pa/pa.c (pa_init_builtins): If we detect + DONT_HAVE_FPUTC_UNLOCKED, set builtin fputc_unlocked to + putc_unlocked. + +2005-12-01 Richard Guenther + + * fold-const.c (fold_binary): Use fold_build2, not + fold (build (...)). + +2005-12-01 Nathan Sidwell + + * config/ms1/ms1.c (ms1_reorg_hazard): Don't count noop moves. + + * vec.h (VEC_block_remove): New. + +2005-12-01 Gabriel Dos Reis + + PR c/13384 + * c-common.c (lvalue_error): Fix wording. + +2005-12-01 Richard Guenther + + * tree-ssa-forwprop.c (forward_propagate_addr_expr): Fix + thinko in last patch. + +2005-12-01 Geoffrey Keating + + * config/t-slibgcc-darwin (SHLIB_LINK): Use -single_module rather + than -flat_namespace. + +2005-12-01 Ben Elliston + + * mklibgcc.in: Parameterise the script to build soft float + functions by iterating over each type, rather than cloning the + code for each type. + +2005-11-30 Kaveh R. Ghazi + + PR middle-end/25158 + * builtins.c (fold_builtin_fputs): Defer check for missing + replacement functions. + +2005-11-30 Kean Johnston + + * config/i386/i386.c: Check the value of SUPPORTS_ONE_ONLY, not + simply its presense in case targets #define SUPPORTS_ONE_ONLY 0. + +2005-11-30 Richard Guenther + + PR tree-optimization/22501 + * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): New + function split out from ... + (forward_propagate_addr_expr): ... here. Use it to propagate + ADDR_EXPRs to all uses. + +2005-11-30 Volker Reichelt + + * tree.h (CASE_FLT_FN, CASE_INT_FN): New macros. + * builtins.c (expand_builtin_mathfn): Use them. + (expand_builtin_mathfn_2): Likewise. + (expand_builtin_mathfn_3): Likewise. + (expand_builtin_int_roundingfn): Likewise. + (expand_builtin): Likewise. + (integer_valued_real_p): Likewise. + (fold_builtin_int_roundingfn): Likewise. + (fold_builtin_bitop): Likewise. + (fold_builtin_logarithm): Likewise. + (fold_builtin_1): Likewise. + * convert.c (convert_to_integer): Likewise. + * fold-const.c (negate_mathfn_p): Likewise. + (tree_expr_nonnegative_p): Likewise. + +2005-11-30 Dale Johannesen + Andrew Pinski + + * combine.c (find_split_point): Sign extend bitmask + when changing bitfield assignment to IOR of AND. + +2005-11-30 Nathan Sidwell + + * config/ms1/ms1.md (decrement_and_branch_until_zero): Add early + clobber to scratch reg. + (*decrement_and_branch_until_zero_no_clobber): Remove. + (decrement_and_branch peephole): Add dummy scratch reg to pattern. + (mulhish3): Use TARGET_MS1_16_003, TARGET_MS2. + * config/ms1/ms1.opt (mmul): Remove. + * config/ms1/ms1.h (ASM_SPEC): Cope with uppercase arch names. + (LINK_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Default to 16-002. + +2005-11-30 John David Anglin + Bernd Schmidt + + * pa/predicates.md (symbolic_operand): Add comment. + * pa/pa.md (reload_insi_r1, reload_indi_r1): New reload expanders. + * pa/pa-protos.h (pa_secondary_reload_class): Delete. + * pa/pa.c (TARGET_SECONDARY_RELOAD): Define. + (pa_secondary_reload_class): Delete. + (pa_secondary_reload): New function derived from SECONDARY_RELOAD_CLASS + and pa_secondary_reload_class. Reorder some checks. Update inline + copy of symbolic operand. + * pa/pa.h (SECONDARY_RELOAD_CLASS): Delete. + +2005-11-30 Nathan Sidwell + + * loop-doloop.c (add_test): Only add jump notes if we did emit a + jump. + +2005-11-30 Jeff Law + + * tree-ssa-uncprop.c (associate_equivalences_with_edges): Properly + handle SSA_NAME_OCCURS_IN_ABNORMAL_PHI. + +2005-11-30 Jakub Jelinek + + * config/ia64/ia64.c (ia64_expand_tls_address): Add ORIG_OP1 argument. + Move ADDEND_{HI,LO} computation into TLS_MODEL_INITIAL_EXEC case. + (ia64_expand_move): Adjust caller. + + * config/ia64/ia64.c (ia64_expand_atomic_op): Only use + fetchadd{4,8}.acq instruction if CODE is PLUS or MINUS, for MINUS + negate VAL. + +2005-11-30 Paolo Bonzini + + * simplify-rtx.c (simplify_plus_minus): Remove final parameter. + Always produce an output if we can remove NEGs or canonicalize + (minus (minus ...)) expressions. Provide a fast path for the + two-operand case. + (simplify_gen_binary): Do not call simplify_plus_minus. + (simplify_binary_operation_1): Reassociate at the end of the + function. + +2005-11-29 Evan Cheng + + * config/i386/xmmintrin.h (_MM_TRANSPOSE4_PS): Rewrite using high/low + moves and unpack to speed up. + +2005-11-29 David S. Miller + + * config/sparc/sparc.c (gen_compare_reg): Kill 2nd and 3rd + argument, they are always sparc_compare_op0 and sparc_compare_op1. + (gen_v9_scc): Update callers. + * config/sparc/sparc.md: Likewise. + * config/sparc/sparc-protos.h: Update extern declaration. + + * tree-into-ssa.c (rewrite_into_ssa): Fix comment typo. + +2005-11-29 Andrew Pinski + + * fold-const.c (negate_expr) : Add break after + the if. + +2005-11-29 Andrew Pinski + + * fold-const.c (negate_expr_p): Return true for BIT_NOT_EXPR. + (fold_unary) : Move -(~a) transformation to ... + (negate_expr): Here. + +2005-11-29 Ben Elliston + + * config/i386/i386.h (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): + Fix typo in comment. + +2005-11-29 Ben Elliston + + * Makefile.in (clean-target): Depend on clean-target-libgcc. + (clean-target-libgcc): Import rule from the top-level Makefile.in. + +2005-11-29 Kaveh R. Ghazi + + PR middle-end/20109 + PR middle-end/25120 + * builtins.c (init_target_chars): New. + (expand_builtin_printf, expand_builtin_fprintf, + expand_builtin_sprintf, fold_builtin_sprintf, + maybe_emit_sprintf_chk_warning, fold_builtin_sprintf_chk, + fold_builtin_snprintf_chk, fold_builtin_printf, + fold_builtin_fprintf): Check for matching format strings using + the target charset. + +2005-11-29 Paul Brook + + * config.gcc: Do not use fixproto on m68k-elf. + +2005-11-28 Roger Sayle + + * expmed.c (div_cost): Replace with... + (sdiv_cost, udiv_cost): New. + (init_expmed): Initialize sdiv_cost and udiv_cost, not div_cost. + Rename the div and mod fields, used to initialize sdiv_pow2_cheap + and smod_pow2_cheap, to sdiv_32 and smod_32 to avoid confusion. + (expand_divmod): Replace use of div_cost with either sdiv_cost + or udiv_cost depending upon the signedness of the operation. + +2005-11-28 Alexandre Oliva + + PR libfortran/24991 + * config/darwin.c (machopic_indirection_name, + machopic_output_indirection): Follow transparent alias chain. + +2005-11-28 Alexandre Oliva + + * varasm.c (ultimate_transparent_alias_target): Add comment. + +2005-11-28 Kazu Hirata + + * config/m68k/m68k.c (notice_update_cc): Use SET_DEST and + SET_SRC instead of XEXP where appropriate. + +2005-11-28 Joseph S. Myers + + * config/fp-bit.c (isnan, isinf, pack_d, unpack_d): Use + __builtin_expect. + +2005-11-28 Joseph S. Myers + + * config/fp-bit.h (LSHIFT): Take shift count parameter. + * config/fp-bit.c (_fpadd_parts): Shift in one go instead of one + bit at a time. + +2005-11-28 Bernd Schmidt + + * config/bfin/bfin.c (bfin_secondary_reload): Renamed from + secondary_input_reload_class, made static. Adapt to new + infrastructure. + (secondary_output_reload_class): Delete. + (TARGET_SECONDARY_RELOAD): New macro. + * config/bfin/bfin.h (SECONDARY_INPUT_RELOAD_CLASS, + SECONDARY_OUTPUT_RELOAD_CLASS): Delete. + +2005-11-28 Nathan Sidwell + + PR c++/21166 + * c-decl.c (finish_struct): Only set DECL_PACKED on a field + when its natural alignment is > BITS_PER_UNIT. + * stor-layout.c (finalize_type_size): Revert my patch of 2005-08-08. + * c-common.c (handle_packed_attribute): Ignore packing on a field + whose type is naturally char aligned. + +2005-11-28 Richard Guenther + + * c-common.c (strict_aliasing_warning): Handle all + component-ref like accesses. + +2005-11-28 Roger Sayle + Uros Bizjak + + PR middle-end/20219 + * fold-const.c (fold binary) : Optimize + sin(x)/tan(x) as cos(x) and tan(x)/sin(x) as 1.0/cos(x) + when flag_unsafe_math_optimizations is set and + we don't care about NaNs or Infinities. + + Move x/expN(y) and x/pow(y,z) transformation into common + flag_unsafe_math_optimizations section. + +2005-11-27 Mark Mitchell + + * gcc.c (main): Change type of argv to "char **". + +2005-11-28 Alan Modra + + * doc/invoke.texi (powerpc msdata-data): Static data doesn't go in + small data sections. + * config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Make global. + * config/rs6000/rs6000-protos.h: (rs6000_elf_in_small_data_p): Declare. + * config/rs6000/sysv4.h (ASM_OUTPUT_ALIGNED_LOCAL): Rename to.. + (ASM_OUTPUT_ALIGNED_DECL_LOCAL): ..this, adding extra parm. Don't + output locals to sbss if !rs6000_elf_in_small_data_p. + (ASM_OUTPUT_ALIGNED_BSS): Adjust for above. + +2005-11-28 Alan Modra + + PR target/24997 + * config/rs6000/rs6000.c (legitimate_indexed_address_p): Allow pattern + generated by reload. + * config/rs6000/predicates.md (indexed_or_indirect_operand): Use + indexed_or_indirect_address. + (indexed_or_indirect_address): Don't test for base reg. Call + address_operand last. Make it a special predicate. + +2005-11-27 Kazu Hirata + + * config/m68k/m68k.c (notice_update_cc): Remove useless code. + +2005-11-27 Andrew Pinski + + PR middle-end/24575 + * fold-const.c (negate_expr_p): Add case for signed divides if overflow + is undefined. + (negate_expr): Likewise. + +2005-11-27 Andreas Schwab + + * config/m68k/m68k.c: Reindent and fix whitespace, remove + redundant parens. + +2005-11-27 Steven Bosscher + + * cfgcleanup.c (try_crossjump_to_edge): Always split SRC2 if it + has EH predecessor edges. + +2005-11-26 Eric Christopher + + * config/i386/i386.md (*zero_extendqihi2_movzbw): Avoid partial + register stalls by zero extending to the full register. + +2005-11-27 Joseph S. Myers + + * config/floatunsisf.c, config/floatunsidf.c, + config/floatunsixf.c, config/floatunsitf.c: New files. + * config/ia64/t-hpux: Add floatunsitf.c. + * config/ia64/ia64.c (ia64_init_libfuncs): Use + _U_Qfcnvxuf_dbl_to_quad for unsigned DImode-to-TFmode conversion. + +2005-11-26 Richard Henderson + + * c-lex.c (pragma_lex): Rename from c_lex. + * c-pch.c: Update for pragma_lex rename. + * c-pragma.c, c-pragma.h, config/ia64/ia64-c.c: Likewise. + * config/m32c/m32c-pragma.c, config/darwin-c.c: Likewise. + * config/rs6000/rs6000-c.c, config/c4x/c4x-c.c: Likewise. + * config/sol2-c.c, config/v850/v850-c.c: Likewise. + * doc/tm.texi: Likewise. + +2005-11-26 Andrew Pinski + + PR middle-end/23669 + * fold-const.c (fold_binary): Convert -A/-B to A/B for signed types + when overflow is undefined. + +2005-11-26 Hans-Peter Nilsson + + * doc/md.texi (Insn Canonicalizations): Refer to the + function commutative_operand_precedence for further rules. + +2005-11-25 Roger Sayle + + PR middle-end/21309 + * expmed.c (choose_mult_variant): Return immediately when mult_cost + is less than zero. Limit mult_cost to a reasonable upper bound for + the synthetic multiplication sequence. + +2005-11-25 Kaveh R. Ghazi + + PR middle-end/25022 + * builtins.c (expand_builtin_printf, expand_builtin_fprintf, + fold_builtin_fputs, fold_builtin_printf, fold_builtin_fprintf): + Lookup the explicit replacement functions for any unlocked + stdio builtin transformations. + +2005-11-25 Hans-Peter Nilsson + + * config/cris/cris.md ("reload_out"): Mark operand 2 as + earlyclobber. + * targhooks.c (default_secondary_reload): Don't require operand 2 + for an input reload to be earlyclobber. + +2005-11-25 Volker Reichelt + + * fold-const.c (negate_mathfn_p): Fix comment and add support + for BUILT_IN_CBRT, BUILT_IN_SINH, BUILT_IN_TANH, BUILT_IN_ASINH, + BUILT_IN_ATANH. + +2005-11-25 Joseph S. Myers + + PR middle-end/24998 + * config/sparc/sparc.c (sparc_init_libfuncs): Use _Q_utoq and + _Q_ulltoq for unsigned conversions from SImode and DImode to + TFmode. + +2005-11-25 Alan Modra + + * config/rs6000/ppc64-fp.c (__floatunditf): New function. + (__floatundidf, __floatundisf): Likewise. + +2005-11-25 David Edelsohn + + * config/rs6000/rs6000.c (rs6000_sr_alias_set): Delete. + (rs6000_override_options): Remove initialization of + rs6000_sr_alias_set. + (rs6000_emit_eh_reg_restore): Use gen_frame_mem. + (rs6000_emit_stack_tie): Same. + (emit_frame_save): Same. + (gen_frame_mem_offset): Same. + (rs6000_emit_prologue): Same. + (rs6000_emit_epilogue): Same. + +2005-11-25 Andrew Pinski + + PR middle-end/24989 + * fold-const.c (fold_build): Convert bool_var != 1 and + bool_var == 0 to !bool_var. + +2005-11-25 Andrew Pinski + + PR middle-end/24990 + * fold-const.c (fold_binary): Fold (~a) == C to a == ~C + for C being INTEGER_CST. Likewise for !=. + +2005-11-25 Joseph S. Myers + + PR middle-end/24998 + * config/rs6000/rs6000.c (rs6000_init_libfuncs): Use _q_utoq for + unsigned conversions from SImode to TFmode. + +2005-11-24 Bernd Schmidt + + * expr.c (expand_expr_real_1): Fix error in last change. + +2005-11-24 J"orn Rennecke + + * caller-save.c: (this_insn_sets): Move into: + (save_call_clobbered_regs). + (mark_set_regs): Get this_insn_sets from data. + + (save_call_clobbered_regs): Take sets of the return value by + sibcalls into account. + +2005-11-24 J"orn Rennecke + PR target/21623: + + * regclass.c (FORBIDDEN_INC_DEC_CLASSES): Remove + SECONDARY_INPUT_RELOAD_CLASS and SECONDARY_OUTPUT_RELOAD_CLASS tests. + (init_fake_stack_mems): Remove HAVE_SECONDARY_RELOADS test. + (memory_move_secondary_cost, init_reg_autoinc): Remove + SECONDARY_INPUT_RELOAD_CLASS / SECONDARY_OUTPUT_RELOAD_CLASS tests. + Replace SECONDARY_{IN,OUT}PUT_RELOAD_CLASS use with + secondary_reload_class call. + (copy_cost): Likewise. Add new parameter prev_sri. Changed all + callers. + * reload.c (entire file): Remove HAVE_SECONDARY_RELOADS checks. + (push_secondary_reload): Use secondary_reload target hook. + (secondary_reload_class, scratch_reload_class): New functions. + (push_reload): Remove SECONDARY_INPUT_RELOAD_CLASS and + SECONDARY_OUTPUT_RELOAD_CLASS tests. Replace + SECONDARY_{IN,OUT}PUT_RELOAD_CLASS use with secondary_reload_class call. + * reload.h (HAVE_SECONDARY_RELOADS): Don't define nor test. + (secondary_reload_class, scratch_reload_class): Declare. + * reload1.c: Include target.h. + (reload_adjust_reg_for_temp): New function. + (reload_adjust_reg_for_icode): Likewise. + (choose_reload_regs): Remove SECONDARY_INPUT_RELOAD_CLASS test. + Replace SECONDARY_INPUT_RELOAD_CLASS use with secondary_reload_class + call. + (emit_input_reload_insns): Likewise. Rewrite secondary reload checks + for inheritance. Support case when both secondary & tertiary reloads + are for intermediate registers. + (emit_output_reload_insns): Replace SECONDARY_OUTPUT_RELOAD_CLASS use + with secondary_reload_class call. Support case when both secondary + & tertiary reloads are for intermediate registers. + * target-def.h (TARGET_SECONDARY_RELOAD): Provide default definition. + (TARGET_INITIALIZER) Add TARGET_SECONDARY_RELOAD. + * target.h (secondary_reload_info): New struct / typedef. + (struct gcc_target): New member secondary_reload. + * targhooks.c Include reload.h, optabs.h and recog.h. + (default_secondary_reload): New function. + * targhooks.h (default_secondary_reload): Declare. + * doc/tm.texi: Document secondary_reload target hook. Update + description of SECONDARY_*RELOAD_CLASS and reload_{in,out}. + * doc/md.texi: Likewise. + + * sh-protos.h (sh_secondary_reload): Declare. + * sh.c (TARGET_SECONDARY_RELOAD): Override. + (sh_secondary_reload): New function. + * sh.h (SECONDARY_INOUT_RELOAD_CLASS): Don't define. + (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise. + (SECONDARY_INPUT_RELOAD_CLASS): Likewise. + (HAVE_SECONDARY_RELOADS): Define. + * sh.md (reload_indf): Rename to: + (reload_indf__frn). + (reload_outdf): Rename to: + (reload_outdf__RnFRm). + (reload_insf): Rename to: + (reload_insf__frn). + (reload_insi): Rename to: + (reload_insi__i_fpul). + +2005-11-24 Uros Bizjak + + * configure.ac: Require at least texinfo 4.4. + * configure: Regenerate. + + * doc/install.texi (Tools/packages necessary for building GCC): + Update required version of texinfo to at least 4.4. + (Installing GCC: Building): Update required version of texinfo + to at least 4.4. + (Installing GCC: Final installation): Update required version + of texi2dvi to at least 4.4. + (Host/target specific installation notes for GCC): Update required + version of texinfo to at least 4.4. + +2005-11-24 Richard Guenther + Dirk Mueller + + PR c++/14024 + * c-common.h (strict_aliasing_warning): Declare. + * c-common.c (strict_aliasing_warning): New function, + split out from ... + * c-typeck.c (build_c_cast): ... here. + +2005-11-24 Paolo Bonzini + + * optabs.c (expand_binop): Use swap_commutative_operands_with_target + to order operands. + (swap_commutative_operands_with_target): New. + +2005-11-24 Paolo Bonzini + + * gcse.c (hash_scan_set): Look through REG_EQUAL or REG_EQUIV notes + also when doing PRE, rather than only for global CPROP. + +2005-11-24 Ben Elliston + + * machmode.h (CLASS_HAS_WIDER_MODES_P): New macro. + * optabs.c (expand_binop): Use CLASS_HAS_WIDER_MODES_P, improve + formatting. + (expand_twoval_unop): Likewise. + (widen_clz): Likewise. + (expand_parity): Likewise. + (expand_unop): Likewise. + (emit_cmp_and_jmp_insn_1): Likewise. + (prepare_float_lib_cmp): Likewise. + +2005-11-24 Ben Elliston + + * optabs.c (prepare_cmp_insn): Use SCALAR_FLOAT_MODE_P. + Remove unused `class' variable. + +2005-11-23 Gabriel Dos Reis + + PR c++/21667 + * c-typeck.c (build_array_ref): Avoid code duplicate. Use common + C/C++ diagnostic function warn_array_subscript_with_type_char. + * c-common.h (warn_array_subscript_with_type_char): Declare. + * c-common.c (warn_array_subscript_with_type_char): Define. + +2005-11-23 Gabriel Dos Reis + + PR c/21668 + * c-decl.c (grokdeclarator): Don't warn for 'extern const' when + compiling at the intersection of C and C++. + +2005-11-23 Mark Mitchell + + * doc/invoke.texi: For man pages, include gcc-vers.texi. + List @file in the option summary. Include the libiberty + documentation for @file. + * gcc.c (main): Call expandargv. + * Makefile.in (gcc-vers.texi): Define srcdir. + +2005-11-23 Diego Novillo + + * passes.c (init_optimization_passes): Document + sequencing of passes. + +2005-11-23 Kazu Hirata + + * config/m68k/predicates.md (pcrel_address, extend_operator, + post_inc_operand, pre_dec_operand): Remove redundant + conditionals. + (const_uint32_operand, const_sint32_operand): Use gcc_assert + instead of abort. + (valid_dbcc_comparison_p): Rewrite in the lisp style. + +2005-11-23 Ben Elliston + + * dwarf2.h (enum dwarf_type): Add DW_ATE_decimal_float. + +2005-11-22 J"orn Rennecke + + Preparatory work for PR target/21623: + * alpha.c (secondary_reload_class): Rename to: + (alpha_secondary_reload_class). + * alpha.h, alpha-protos.h: Likewise. + * mn10300.c (secondary_reload_class): Rename to: + (mn10300_secondary_reload_class). + * mn10300.h, mn10300-protos.h: Likewise. + * pa.c (secondary_reload_class): Rename to: + (pa_secondary_reload_class). + * pa.h, pa-protos.h: Likewise. + * rs6000.c (secondary_reload_class): Rename to: + rs6000_secondary_reload_class. + * rs6000.h, rs6000-protos.h: Likewise. + +2005-11-22 Eric Botcazou + + PR middle-end/22561 + * tree-ssa-structalias.c (get_constraint_for): Handle ARRAY_RANGE_REF. + +2005-11-22 Ian Lance Taylor + + * optabs.c (expand_unop): Call SCALAR_FLOAT_MODE_P on a mode, not + a mode_class. + (prepare_cmp_insn): Likewise. + +2005-11-22 Kazu Hirata + + PR target/23435 + * m68k.md (zero_extendsidi2): Force operands[1] to a register + if both operands[0] and operands[1] are memory. + +2005-11-22 Andrew Pinski + + PR middle-end/23606 + * fold-const.c (fold_unary) : For + COMPARISON_CLASS_P and an integral types create create a new + expression with the new type and fold that. + +2005-11-22 Andrew Pinski + + PR target/24988 + * config/rs6000/darwin.h (TARGET_OS_CPP_BUILTINS): Remove call + to SUBTARGET_OS_CPP_BUILTINS. + +2005-11-22 Richard Earnshaw + + * arm.c (emit_set_insn): New function. + (arm_split_constant): Call it. + (arm_gen_compare_reg, arm_reload_in_hi, arm_reload_out_hi): Likewise. + (arm_legitimize_address): Likewise. Use plus_constant. + (arm_expand_prologue): Likewise. Use VOIDmode in SET. + (thumb_expand_prologue): Likewise. + (arm_gen_load_multiple): Use VOIDmode in SET. + (arm_gen_store_multiple): Likewise. + (vfp_emit_fstmx): Likewise. Use plus_constant. + (emit_multi_reg_push): Likewise. + (emit_sfm): Use plus_constant. + +2005-11-23 Alan Modra + + PR target/24954 + * config/rs6000/predicates.md (easy_vector_constant_add_self): Fix + typo last change. + +2005-11-22 Alan Modra + + PR middle-end/24950 + * expmed.c (store_bit_field): Don't attempt to insv a field + larger than the reg. + +2005-11-22 Alan Modra + + PR target/24954 + * config/rs6000/predicated.md (easy_vector_constant_add_self): Use + explicit sign extension, not a (char) cast. + +2005-11-22 Ben Elliston + + * optabs.c: Use SCALAR_FLOAT_MODE_P instead of explicitly testing + GET_MODE_CLASS (x) == MODE_FLOAT. + * config/i386/i386.c: Likewise. + * config/rs6000/xcoff.h: Likewise. + * config/rs6000/linux64.h: Likewise. + * config/rs6000/rs6000.c: Likewise. + * config/rs6000/rs6000.h: Likewise. + * config/rs6000/predicates.md: Likewise. + * config/rs6000/sysv4.h: Likewise. + +2005-11-21 Kaveh R. Ghazi + + * c-cppbuiltin.c (c_cpp_builtins): Define __pic__ and __PIC__ when + flag_pic is set. + + * config/alpha/freebsd.h, config/alpha/linux.h, + config/arm/linux-elf.h, config/bfin/bfin.h, + config/cris/linux.h, config/darwin.h, config/freebsd-spec.h, + config/i386/beos-elf.h, config/i386/gnu.h, + config/i386/linux.h, config/i386/linux64.h, config/i386/nto.h, + config/i386/sco5.h, config/m32r/m32r.h, config/m68k/linux.h, + config/m68k/m68k.h, config/mips/linux.h, config/pa/pa-linux.h, + config/rs6000/linux64.h, config/rs6000/sysv4.h, + config/rs6000/vxworks.h, config/s390/linux.h, config/s390/tpf.h, + config/sh/linux.h, config/sh/sh.h, config/sol2.h, + config/sparc/linux.h, config/sparc/linux64.h, + config/xtensa/xtensa.h: Don't define __pic__ or __PIC__. + + * doc/invoke.texi: Document that the macros __pic__ and __PIC__ + are both defined when either flag -fpic or -fPIC are used. + +2005-11-22 Joseph S. Myers + + * config/fp-bit.c (clzusi): New function. + (si_to_float, usi_to_float): Use it to compute proper shift. + (usi_to_float): Preserve guard bits when shifting right. + * libgcc-std.ver (GCC_4.2.0): New version. + * libgcc2.c (__floatundixf, __floatunditf, __floatundidf, + __floatundisf): New functions. + * libgcc2.h (__floatundixf, __floatunditf, __floatundidf, + __floatundisf): Declare. + * mklibgcc.in (lib2funcs): Add _floatundidf, _floatundisf, + _floatundixf, and _floatunditf. + * optabs.c (expand_float): If target does not define a pattern for + signed or unsigned conversion, use an unsigned libcall instead of + a signed one. + (init_optabs): Initialize ufloat_optab. + +2005-11-22 Joseph S. Myers + + * config/rs6000/rs6000.opt (mmulhw): New option. + * doc/invoke.texi (-mmulhw): Document. + * config/rs6000/rs6000.c (rs6000_override_options): Enable -mmulhw + for 405 and 440. + * config/rs6000/rs6000.md: Add half-word multiply and + multiply-accumulate instructions for 405 and 440. + +2005-11-21 Joel Sherrill + + * config/arm/rtems-elf.h: Added definition of LINK_GCC_C_SEQUENCE_SPEC + which matches behavior of gcc 4.0 and older for RTEMS targets. The + default now includes a linker group which makes the RTEMS one nest. + +2005-11-22 Ben Elliston + + * cse.c (fold_rtx): Typo fix. + (find_comparison_args): Pass the mode of arg1, not arg1 itself. + +2005-11-21 Richard Henderson + + * c-common.c, config/darwin-c.c, c-decl.c, c-tree.h, c-objc-common.h, + langhooks-def.h, langhooks.h: Revert 2005-11-18 lookup_name patch. + + * c-tree.h (lookup_name): Move declaration ... + * c-common.h (lookup_name): ... here. + * config/darwin-c.c: Include c-common.h. + * config/t-darwin: Update dependencies. + +2005-11-22 Ben Elliston + + * optabs.c (expand_abs_nojump): Use SCALAR_FLOAT_MODE_P instead of + explicitly testing GET_MODE_CLASS (x) == MODE_FLOAT. + * genopinit.c (gen_insn): Likewise. + * reload.c (find_equiv_reg): Likewise. + * loop.c (load_mems): Likewise. + * rtlanal.c (may_trap_p_1, canonicalize_condition): Likewise. + * cse.c (find_comparison_args, fold_rtx): Likewise. + * dwarf2out.c (add_const_value_attribute): Likewise. + * expr.c (convert_move): Likewise. + * recog.c (general_operand, register_operand): Likewise. + * reg-stack.c (replace_reg): Likewise. + * tree-vect-generic.c (type_for_widest_vector_mode): Likewise. + * c-common.c (handle_vector_size_attribute): Likewise. + * simplify-rtx.c (simplify_const_unary_operation): Likewise. + (simplify_binary_operation_1): Likewise. + (simplify_const_binary_operation): Likewise. + (simplify_relational_operation): Likewise. + (simplify_const_relational_operation): Likewise. + (simplify_immed_subreg): Likewise. + * emit-rtl.c (gen_lowpart_common): Likewise. + * expmed.c (expand_mult): Likewise. + * stor-layout.c (layout_type): Likewise. + +2005-11-21 Paolo Bonzini + + PR target/24951 + * config/rs6000/rs6000.c (output_vec_const_move): Load cst and + cst2 only for SPE vectors. + +2005-11-21 David Edelsohn + + PR target/24953 + * config/rs6000/predicates.md (vrsave_operation): Check + UNSPEC_VOLATILE value. + +2005-11-21 Jan Hubicka + + PR tree-optimization/24653 + * tree-ssa-ccp.c (ccp_fold): Strip down useless conversions. + +2005-11-21 Uros Bizjak + + * config/i386/predicates.md (ax_reg_operand): New predicate. + (memory_displacement_only_operand): New predicate. + * config/i386/i386.md ("modrm" attribute): Return 0 if one + operand is AX register and the other operand is memory operand + with displacement only. + 2005-11-21 Uros Bizjak - * fold-const.c (fold_binary) : Optimize A / A to 1.0 + * fold-const.c (fold_binary) : Optimize A / A to 1.0 if we don't care about NaNs or Infinities. 2005-11-20 Ian Lance Taylor @@ -129,7 +910,7 @@ * langhooks-def.h (LANG_HOOKS_LOOKUP_NAME): Add. (LANG_HOOKS_DECLS): Add initializer for LANG_HOOKS_LOOKUP_NAME. * langhooks.h (lang_hooks_for_decls): Add lookup_name. - + 2005-11-18 Richard Earnshaw PR target/24914 @@ -466,7 +1247,7 @@ as empty. * config/darwin.h (STARTFILE_SPEC): Use %(darwin_crt2) to possibly link in crt2.o. - + * config/darwin.h (REAL_LIBGCC_SPEC): Link in shared libgcc depending on -mmacosx-version-min setting. @@ -548,7 +1329,7 @@ 2005-11-13 Razya Ladelsky - * ipa-prop.c (ipa_callsite_compute_param ): Removed obsolete type + * ipa-prop.c (ipa_callsite_compute_param ): Removed obsolete type checking. 2005-11-13 Jason Merrill @@ -659,7 +1440,7 @@ 2005-11-11 Jason Merrill PR c++/24686 - * gimplify.c (gimplify_cleanup_point_expr): Also save and restore + * gimplify.c (gimplify_cleanup_point_expr): Also save and restore the cleanup list. 2005-11-11 Zdenek Dvorak @@ -699,7 +1480,7 @@ 2005-11-10 Daniel Berlin - * tree-ssa-alias.c (compute_may_aliases): Remove call to + * tree-ssa-alias.c (compute_may_aliases): Remove call to delete_old_heap_vars. * tree-dfa.c (referenced_var_remove): Remove function. * tree-ssa.c (init_tree_ssa): Call init_alias_heapvars. @@ -824,12 +1605,12 @@ 2005-11-09 Andreas Krebbel PR 24624 - * config/s390/s390.c (struct s390_frame_layout): New fields + * config/s390/s390.c (struct s390_frame_layout): New fields first_save_gpr_slot and last_save_gpr_slot. - (cfun_grps_save_area_size, s390_frame_info, s390_emit_prologue, - s390_emit_epilogue, s390_initial_elimination_offset): Replaced + (cfun_grps_save_area_size, s390_frame_info, s390_emit_prologue, + s390_emit_epilogue, s390_initial_elimination_offset): Replaced first_save_gpr and last_save_gpr with the _slot variants. - (s390_register_info): Calculate first_save_gpr_slot and + (s390_register_info): Calculate first_save_gpr_slot and last_save_gpr_slot using regs_ever_live. 2005-11-09 Andreas Krebbel @@ -884,7 +1665,7 @@ 2005-11-09 Per Bothner Uros Bizjak - + PR c/24101 * toplev.c (process_options): Initialize debug_hooks early in case lang_hooks.post_options ends up calling a debug_hook. @@ -926,7 +1707,7 @@ (oldheapvars): Ditto. (get_constraint_for): Put heap vars on heapvars list. (delete_old_heap_vars): New function. - + 2005-11-08 Jason Merrill * tree.h (CALL_FROM_THUNK_P): Add CALL_EXPR_CHECK. @@ -1031,7 +1812,7 @@ DDR_DIST_VECTS. (build_classic_dist_vector, build_classic_dir_vector): Push a set of distance/direction vectors instead of a single one. - * tree-data-ref.h (dir_vects, dist_vects): Replace dir/dist + * tree-data-ref.h (dir_vects, dist_vects): Replace dir/dist lambda_vectors with a vec of lambda_vectors. (DDR_DIR_VECT, DDR_DIST_VECT): Redefined as operations on vec. (DDR_DIR_VECTS, DDR_DIST_VECTS, DDR_NUM_DIR_VECTS, @@ -1071,7 +1852,7 @@ * predict.c (predict_loops): Use new param. * predict.def (MAX_PRED_LOOP_ITERATIONS): Remove. - * ipa-inline.c (cgraph_decide_inlining_of_small_function, + * ipa-inline.c (cgraph_decide_inlining_of_small_function, cgraph_decide_inlining, cgraph_decide_inlining_incrementally): Do not hold memory returned by cgraph_node_name across other call. @@ -1273,7 +2054,7 @@ (collapse_rest_of_var): New function. (do_structure_copy): Collapse if do_simple_structure_copy returns false. - + 2005-11-03 Andrew Pinski PR middle-end/24589 @@ -1391,7 +2172,7 @@ (compute_frame_pointer_to_cfa_displacement): Likewise. (gen_subprogram_die): Restore old code for when DWARF2_UNWIND_INFO is not defined. - + PR rtl-optimization/17356 * cfgrtl.c (purge_dead_edges): Undo last change. In EDGE_EH code, add check for CALL_INSN if EDGE_ABRNOMAL_CALL true. @@ -1414,7 +2195,7 @@ * predict.def (MAX_PRED_LOOP_ITERATIONS): Define. 2005-10-31 Andrew MacLeod - + PR tree-optimization/19097 * tree-ssa-operands.c (correct_use_link): Don't look for modified stmts. @@ -1567,7 +2348,7 @@ PR/24220 * c-common.c (vector_types_convertible_p): Check vector element type. - + 2005-10-21 Kaz Kojima * config/sh/sh.c (prepare_move_operands): Handle the address @@ -1830,7 +2611,7 @@ PR 23714 * builtins.c (expand_builtin_trap): Export. * expr.h (expand_builtin_trap): Declare. - * expr.c (expand_assignment): Emit a trap for integral offsets + * expr.c (expand_assignment): Emit a trap for integral offsets from registers that weren't reduced to bitpos. * tree-cfg.c (mark_array_ref_addressable_1): Remove. @@ -1925,7 +2706,7 @@ (struct cxx): Add adjust_class_at_definition target hook. * target-def.h: (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): New define, defaulting to hook_bool_tree_true. Add to TARGET_INITIALIZER - (TARGET_CXX_ADJUST_CLASS_AT_DEFINITION): New define, defaulting to + (TARGET_CXX_ADJUST_CLASS_AT_DEFINITION): New define, defaulting to hook_void_tree. Add to TARGET_CXX. * tree.h (struct decl_with_vis): Rename non_addr_const_p field to dllimport_flag. @@ -1933,26 +2714,26 @@ * tree.c (merge_dllimport_decl_attributes): Check DECL_DLLIMPORT_P instead of attribute. Check for dllexport override. Warn if inconsistent dll linkage. Don't lose old dllimport if decl has - had address referenced. Tweak lookup of dllimport atribute. + had address referenced. Tweak lookup of dllimport atribute. (handle_dll_attribute): Check targetm.valid_dllimport_attribute_p for target specific rules. Don't add dllimport attribute if DECL_DECLARED_INLINE_P. Set DECL_DLLIMPORT_P when adding - dllimport attribute. + dllimport attribute. (staticp): Replace DECL_NON_ADDR_CONSTANT_P with DECL_DLLIMPORT_P. * varasm.c (initializer_constant_valid_p): Replace DECL_NON_ADDR_CONSTANT_P with DECL_DLLIMPORT_P PR target/21801 PR target/23589 - * config.gcc (i[34567]86-*-cygwin*): Add winnt-cxx.o to + * config.gcc (i[34567]86-*-cygwin*): Add winnt-cxx.o to 'cxx_target_objs', winnt-stubs,o to 'extra_objs'. (i[34567]86-*-mingw32*): Likewise. * doc/tm.texi (TARGET_CXX_ADJUST_CLASS_AT_DEFINITION): Document. (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Document. - + * config/i386/winnt.c (i386_pe_dllimport_p): Factor out - C++-specific code. Change return value to bool. + C++-specific code. Change return value to bool. (i386_pe_dllimport_p): Likewise. (associated_type): Simplify and make language-independent (i386_pe_encode_section_info): Replace override of ambiguous @@ -1964,9 +2745,9 @@ * config/i386/winnt-stubs.c: New file. Define stub versions of lang-specific functions. * config/i386/i386-protos.h: Declare winnt-[cxx|stubs].c functions - i386_pe_type_dllimport_p, i386_pe_type_dllexport_p, + i386_pe_type_dllimport_p, i386_pe_type_dllexport_p, i386_pe_adjust_class_at_definition. - (i386_pe_valid_dllimport_attribute_p): Declare. + (i386_pe_valid_dllimport_attribute_p): Declare. * config/i386/cygming.h (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Define. (TARGET_CXX_ADJUST_CLASS_AT_DEFINITION): Define. * config/i386/t-cygming: Add rules for winnt-cxx.o, winnt-stubs.o. @@ -2035,7 +2816,7 @@ 2005-10-11 Eric Botcazou - PR middle-end/24263 + PR middle-end/24263 * convert.c (convert_to_real): Revert 2005-10-05 patch. Only apply the optimization for rounding builtins if the inner cast is also an extension. @@ -2145,7 +2926,7 @@ 2004-11-22 Mark Mitchell * config.gcc (arm*-*-linux-gnueabi): Use __cxa_atexit. - + 2004-11-19 Mark Mitchell * config.gcc (arm*-*-linux-gnueabi): Add it. * config/arm/bpabi.h (FPUTYPE_DEFAULT): Undefine it before @@ -2243,7 +3024,7 @@ out return_label and naked_return_label. 2005-10-06 Daniel Berlin - + * tree-ssa-structalias.c (check_for_overlaps): Fix bug in last change. @@ -2254,7 +3035,7 @@ being a DECL. 2005-10-06 Daniel Berlin - + Fix PR tree-optimization/22488 * tree-ssa-structalias.c (check_for_overlaps): New function. (create_variable_info_for): Use it. @@ -2318,7 +3099,7 @@ PR Debug/23205 * dbxout.c (dbxout_symbol): Check DECL_RTL_SET_P, after handling constants. Check NAMESPACE_DECL context for constants. - + 2005-10-05 Eric Christopher * doc/md.texi (Standard Names): Fix name of pushm1 pattern.