X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;f=gcc%2FChangeLog;h=b521d3f506c90052da6eb8ce44e71faba4f3b4b9;hb=33b4017aaf25885030e12cdeb0cc897981fa78aa;hp=a80979ea5e96eb767083a081b8c2a53b750406a8;hpb=47cc051e7c991a84e29496b385905d13fa488e1d;p=pf3gnuchains%2Fgcc-fork.git diff --git a/gcc/ChangeLog b/gcc/ChangeLog index a80979ea5e9..b521d3f506c 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,376 @@ +2005-12-02 Richard Guenther + + * convert.c (convert_to_integer): Use fold_convert instead + of fold_build1 (NOP_EXPR, ...). Use tree_int_cst_sgn < 0 + instead of comparing against 0. Use build_int_cst instead + of converting integer_zero_node. + +2005-12-02 Richard Guenther + + * tree-pretty-print.c (op_symbol): Handle LROTATE_EXPR + and RROTATE_EXPR. + +2005-12-02 Alan Modra + + PR target/21017 + * combine.c (simplify_logical ): Simplify more patterns to + rotates. + +2005-12-02 Alan Modra + + PR middle-end/25176 + * function.c (expand_function_end): Emit blockage for unwinder + after return label. + +2005-12-01 Roger Sayle + + * tree.h (TREE_OVERFLOW): Make this flag/predicate specific to + constant nodes, i.e. INTEGER_CST, REAL_CST, etc... + * tree-vrp.c (compare_values): Only check TREE_OVERFLOW for + integer constant comparisons. + +2005-12-02 Jon Grimm + Janis Johnson + David Edelsohn + Ben Elliston + + * dfp.h, dfp.c: New files. + * Makefile.in (DECNUM, DECNUMINC, LIBDECNUMBER): New variables. + (DECNUM_H): Likewise. + (LIBDEPS, LIBS, BACKEND): Append $(LIBDECNUMBER). + (INCLUDES): Append $(DECNUMINC). + (OBJS-common): Add dfp.o. + (dfp.o): New rule. + * real.h (EXP_BITS): Pinch one bit to .. + (struct real_value): Add decimal field. + (real_format): Change table size, update documentation. + (REAL_MODE_FORMAT): Update for to handle float, decimal float. + (real_from_string3): Declare. + (decimal_single_format): Declare. + (decimal_double_format): Declare. + (decimal_quad_format): Declare. + (REAL_VALUE_TO_TARGET_DECIMAL32): New. + (REAL_VALUE_TO_TARGET_DECIMAL64): New. + (REAL_VALUE_TO_TARGET_DECIMAL128): New. + * real.c: Include dfp.h. + (normalize): Early return for decimal floats. + (do_add): Zero decimal field. + (do_compare): Call do_decimal_compare for decimal floats. + (do_fix_trunc): Likewise, call decimal_do_fix_trunc. + (real_arithmetic): Call decimal_real_arithmetic for decimal + floating point operands. + (real_identical): If a and b are of differing radix, return false. + (real_to_integer): Call decimal_real_to_integer if the value is a + decimal float. + (real_to_integer2): Likewise, call decimal_real_to_integer2. + (real_to_decimal): Likewise, call decimal_real_to_decimal. + (real_to_hexadecimal): Place "N/A" in the return string for + decimal float. + (real_from_string3): New variant, given a mode. + (real_maxval): Use decimal_real_maxval for decimal floats. + (round_for_format): Use decimal_round_for_format for decimals. + (real_convert): Use decimal_real_convert where appropriate. + (significand_size): Handle base 10. + (encode_decimal_single, decode_decimal_single, + encode_decimal_double, decode_decimal_double, encode_decimal_quad, + decode_decimal_quad): New functions. + (decimal_single_format): New. + (decimal_double_format): New. + (decimal_quad_format): New. + * machmode.def: Add SD, DD and TD decimal floating point modes. + * machmode.h (FLOAT_MODE_P, SCALAR_FLOAT_MODE_P, MODES_WIDEN_P): + Include MODE_DECIMAL_FLOAT. + (DECIMAL_FLOAT_MODE_P): New. + * mode-classes.def (MODE_DECIMAL_FLOAT): New mode class. + * genmodes.c (struct mode_data): Add counter field. + (struct mode_data): Update comment for format. + (blank_mode): Initialise counter field. + (new_mode): Increment counter field for each mode defined. + (complete_mode): Handle MODE_DECIMAL_FLOAT, update check for mode + using a format. + (make_complex_modes): Handle modes containing `D'. + (DECIMAL_FLOAT_MODE, FRACTIONAL_DECIMAL_FLOAT_MODE): New. + (make_decimal_float_mode): New. + (reset_float_format): Handle MODE_DECIMAL_FLOAT. + (cmp_modes): Compare counter field if other characteristics + similar. + (emit_real_format_for_mode): Support formats for decimal floats. + * doc/rtl.texi (Machine Modes): Document SD, DD and TDmodes. + Document MODE_DECIMAL_FLOAT. + +2005-12-02 Alan Modra + + * simplify-rtx.c (simplify_plus_minus): Do simplify constants. + Delete dead code. + +2005-12-01 Richard Henderson + + * optabs.c (expand_vec_cond_expr): Use EXPAND_NORMAL. + +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