X-Git-Url: http://git.sourceforge.jp/view?p=pf3gnuchains%2Fgcc-fork.git;a=blobdiff_plain;f=gcc%2FChangeLog;h=654c990657eac693948296862cb2c905eedd2d52;hp=281fdc345a7fe8883ebaf8cb23a7a1fc84ece0d5;hb=65801c1c5d0c18501a01e8fef286e25357248b7b;hpb=4a967fbe46c236c527f8a4bcea5338a0eeb1b554 diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 281fdc345a7..654c990657e 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,793 @@ +2006-06-08 Paolo Bonzini + + PR middle-end/27733 + * expmed.c (struct alg_hash_entry): Fix type of field T + to match synth_mult argument. + (NUM_ALG_HASH_ENTRIES): Make it bigger for 64-bit HOST_WIDE_INT. + +2006-06-08 Maxim Kuvyrkov + + PR target/27863 + * haifa-sched.c (unlink_other_notes, unlink_line_notes): Update basic + block boundaries. + +2006-06-08 Richard Guenther + + PR middle-end/27116 + * fold-const.c (negate_expr_p): We can negate BIT_NOT_EXPR + only, if overflow is defined and not trapping. + (negate_expr): Likewise. + +2006-06-07 Zdenek Dvorak + + PR tree-optimization/27872 + * tree-ssa-loop-manip.c (tree_unroll_loop): Set EDGE_IRREDUCIBLE_LOOP + flag on the new exit edge of the unrolled loop. + +2006-06-07 Zdenek Dvorak + + PR rtl-optimization/26449 + * loop-invariant.c (move_invariant_reg): Fail if force_operand fails. + +2006-06-07 Andrew MacLeod + + PR middle-end/27793 + * tree-dfa.c (referenced_vars_dup_list): New. List of duplicate + referenced_variables with matching DECL_UID's. + (find_referenced_vars): Make sure duplicate list is empty to start. + (referenced_var_p): Remove. + (referenced_var_check_and_insert): Renamed from referenced_var_insert. + Check if var is in the list, and add if needed. Update the duplicate + list if a different var is in the list with the same DECL_UID. + (add_referenced_var): Call routine to check and insert. + * tree-ssa.c (delete_tree_ssa): Clear var_ann's on duplicates. + * tree-flow.h (referenced_vars_dup_list): External declaration. + +2006-06-07 Fred Fish + + * config/mips/t-elf (MULTILIB_MATCHES): Combine two entries + into single entry. + +2006-06-07 Paolo Bonzini + + PR target/27390 + * reg-stack.c (subst_stack_regs_pat): Reorder resetting of + the imaginary and real parts of a clobbered register. + Emit insn to set the imaginary part. + +2006-06-06 Peter Lemieszewski + + * config/s390/t-tpf (LIB2ADDEH): Include unwind-dw2-fde-glibc.c + in lieu of unwind-dw2-fde.c. + +2006-06-06 Francois-Xavier Coudert + + * config/i386/mingw32.h (GOMP_SELF_SPECS): Define. + +2006-06-06 Ulrich Weigand + + PR target/27842 + * config/rs6000/altivec.md (UNSPEC_VSLW): Remove. + ("altivec_vspltisw_v4sf", "altivec_vslw_v4sf"): Remove. + ("mulv4sf3", "absv4sf3", "negv4sf3"): Adapt users to use + V4SImode temporaries and operations instead. + +2006-06-06 Joseph S. Myers + + * config/mips/t-linux64 (tp-bit.c): Append to tp-bit.c, not + dp-bit.c. + +2006-06-06 Mike Stump + + * Makefile.in: Rename to htmldir to build_htmldir to avoid + installing during build. + +2006-06-06 Maxim Kuvyrkov + + * params.def (PARAM_MAX_SCHED_EXTEND_REGIONS_ITERS): Change default + value to 0. + * doc/invoke.texi (max-sched-extend-regions-iters): Document. + * config/ia64/ia64.c (params.h): New header. + (ia64_optimization_options): New function to adjust parameters. + * config/ia64/ia64-protos.h (ia64_optimization_options): New prototype. + * config/ia64/ia64.h (OPTIMIZATION_OPTIONS): New macro. + * config/ia64/t-ia64 (ia64.o): Add dependence from params.h . + +2006-06-05 Kazu Hirata + + * stor-layout.c (debug_rli): Fix a typo in a debug message. + +2006-06-05 Steve Ellcey + + PR target/27051 + * config/ia64/ia64.c (ia64_select_rtx_section): Check TARGET_NO_SDATA. + +2006-06-05 Dorit Nuzman + Victor Kaplansky + + PR tree-optimization/26360 + * tree-vectorizer.c (destroy_loop_vec_info): Remove (dead) pattern + stmts. + +2006-06-04 Roger Sayle + Andrew Pinski + + PR middle-end/27382 + * c-common.c (c_common_truthvalue_conversion): Explicitly check + for LABEL_DECL before calling DECL_WEAK. + + PR c/27150 + * c-typeck.c (build_binary_op): Likewise, explicitly check for + LABEL_DECL and PARM_DECL. + +2006-06-05 Joseph S. Myers + + PR c/25161 + PR c/27020 + * c-decl.c (grokdeclarator): Disallow variably modified types at + file scope. Avoid marking shared array type of constant size as + VLA. + +2006-06-04 Volker Reichelt + + PR c++/27601 + * c-common.c (fold_offsetof_1): Handle static members. + +2006-06-04 Eric Christopher + + * stor-layout.c (start_record_layout): Initialize remaining_in_alignment. + (debug_rli): Output value for remaining_in_alignment. + (update_alignment_for_field): Unconditionalize + ms_bitfield_layout_p code. Handle non-bitfield fields. Remove + extra alignment code. + (place_field): Don't realign if ms_bitfield_layout_p. Unconditionalize + ms_bitfield_layout_p code. Rewrite handling of structure fields. + * tree.h (record_layout_info_s): Remove prev_packed. + * doc/extend.texi (ms_struct): Add documentation of format. + +2006-06-04 Mark Shinwell + + * tree.h: Declare folding_initializer. + * builtins.c (fold_builtin_constant_p): Give definite answer + if folding inside an initializer. + * fold-const.c: Define folding_initializer. + (START_FOLD_INIT): Save and then set folding_initializer. + (END_FOLD_INIT): Restore folding_initializer. + +2006-06-04 Richard Guenther + + PR tree-optimization/27039 + * fold-const.c (fold_comparison): Handle pointer comparison + again for all comparison codes. Compare offsets in signed + size type. + (fold_binary): Move code from here. + +2006-06-03 Roger Sayle + + PR target/26223 + * config/i386/i386.c (construct_container): Split static issued_error + flag into issued_sse_arg_error, issued_sse_ret_error and + issued_x87_ret_error. Issue a daignostic if the x86-64 ABI + requires the use of x87 registers and the user explicitly + specified the -mno-80387 command line option. + +2006-06-02 Geoffrey Keating + + * config/rs6000/host-darwin.c (sigaltstack): Protect prototype with + HAVE_DECL_SIGALTSTACK. + (MC_FLD): New. + (segv_handler): Use MC_FLD. + * configure.ac: Check for a sigaltstack declaration. + Compute HAS_MCONTEXT_T_UNDERSCORES on Darwin. + * configure: Regenerate. + * config.in: Regenerate. + +2006-06-03 J"orn Rennecke + + PR other/27850 + * Makefile.in (stmp-fixinc): Fix typo. + +2006-06-02 Roger Sayle + + * fold-const.c (fold_unary) : Ensure folded expressions + are type correct. Clean-up. + : Likewise. Optimize creal(~z) as creal(z). + : Likewise. Optimize cimag(~z) as -cimag(z). + +2006-06-01 DJ Delorie + + * config/v850/v850.h (ASM_OUTPUT_ADDR_DIFF_ELT): Disabled the + shift, as we've disabled the "switch" insn that needs it. + +2006-06-01 Per Bothner + + Suppress extra '#1 or '#1 ' on -dD output. + * c-opts.c (finish_options): Use internal line 0 for . + * c-ppoutput.c (cb_define): Don't increment line 0. + +2006-06-01 Pete Steinmetz + + * doc/invoke.texi: Add cpu_type power6. + * config.gcc: Add cpu_type power6. + * config/rs6000/rs6000.c (rs6000_override_options): Alias power6 + to power5+ with Altivec. + * config/rs6000/aix52.h (ASM_CPU_SPEC): Add power6. + * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add power6. + +2006-05-30 Anatoly Sokolov + + * config/avr/avr.h (SET_ASM_OP): Define. + +2006-06-01 Kazu Hirata + + * config/bfin/bfin.c: Fix comment typos. + +2006-06-01 Paolo Bonzini + + PR 25453 + * doc/install.texi: Document --enable-bootstrap and + --disable-bootstrap. + +2006-06-01 Paolo Bonzini + + * doc/install.texi: Document that InfoZIP can replace jar. + +2006-05-31 Roger Sayle + + * config/i386/i386.c (ix86_expand_fp_absneg_operator): When SSE + isn't available, directly generate the simpler x87 patterns without + the (use (const_int 0)). + * config/i386/i386.md (*negsf2_1): Enable pre-reload if the SSE + implementation isn't available. + (*negdf2_1): Likewise. + (*negxf2_1): XF mode negation is always done using the x87. + (*abssf2_1, *absdf2_1, *absxf2_1): Likewise^3 for fabs. + +2006-05-31 Roger Sayle + + * builtins.c (fold_builtin_cabs): Delete prototype. Require an + additional FNDECL argument. Optimize cabs(-z) and cabs(~z) as + cabs(z). + (fold_builtin_decl) : Update fold_builtin_cabs call. + +2006-05-31 Jie Zhang + + * config/bfin/bfin-protos.h (bfin_hardware_loop): Declare. + * config/bfin/bfin.c (basic-block.h): Include. + (struct machine_function): New. + (bfin_init_machine_status): New. + (override_options): Initialize init_machine_status. + (bfin_hardware_loop): New. + (MAX_LOOP_DEPTH, MAX_LOOP_LENGTH): Define. + (DEF_VEC_P (loop_info)): New. + (DEF_VEC_ALLOC_P (loop_info,heap)): New. + (struct loop_info): New. + (loop_info): New typedef. + (struct loop_work): New. + (loop_work): New typedef. + (DEF_VEC_O (loop_work)): New. + (DEF_VEC_ALLOC_O (loop_work,heap)): New. + (bfin_dump_loops): New. + (bfin_bb_in_loop): New. + (bfin_scan_loop): New. + (bfin_optimize_loop): New. + (bfin_reorg_loops): New. + (bfin_reorg): Use bfin_reorg_loops. + * config/bfin/bfin.h (FIRST_PSEUDO_REGISTER): Adjust for adding + loop registers. + (I_REGNO_P): Simplify. + (DP_REGNO_P, DPREG_P): New macros. + (REGISTER_NAMES, FIXED_REGISTERS, CALL_USED_REGISTERS, + REG_ALLOC_ORDER): Add LT0, LT1, LC0, LC1, LB0, LB1. + (enum reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): + Add LT_REGS, LC_REGS, LB_REGS. + (REG_CLASS_FROM_LETTER): Add 't' for LT_REGS, 'k' for LC_REGS, + 'l' for LB_REGS. + (REGNO_REG_CLASS): Deal with loop registers. + * config/bfin/bfin.md: Add comment for 't', 'k', 'l' constraint + letters. + (REG_LT0, REG_LT1, REG_LC0, REG_LC1, REG_LB0, REG_LB1): + New constants for loop registers. + (UNSPEC_LSETUP_END): New. + (seq_insns): New define_attr. Set it for appropriate insns. + (movsi_insn): Add alternatives for move from/to + loop count registers. + (doloop_end): New define_expand. + (loop_end): New define_insn. + (define_split for bad doloop_end): New. + (lsetup_with_autoinit): New define_insn. + (lsetup_without_autoinit): New define_insn. + (rep_movsi, rep_movhi): Clobber LT1, LC1, LB1. + * config/bfin/predicates.md (lc_register_operand): New. + (lt_register_operand): New. + (lb_register_operand): New. + (nondp_register_operand): New. + (nondp_reg_or_memory_operand): New. + * doc/md.texi: Document Blackfin new 't', 'k', 'l' constraint letters. + +2006-05-31 Jie Zhang + + * config/bfin/bfin.c (bfin_delegitimize_address): New. + (TARGET_DELEGITIMIZE_ADDRESS): Define. + +2006-05-31 Daniel Jacobowitz + + * Makefile.in (CATALOGS): Add po/ prefix. + * configure: Regenerated. + +2006-05-31 Richard Earnshaw + + PR target/27829 + * arm.c (arm_print_operand case 'S'): Validate that the operand is + a shift operand before calling shift_op. Avoid redundant call of + shift_op. + +2006-05-30 Naveen.H.S + DJ Delorie + + * config/m32c/m32c.c (m32c_expand_insv): Check that the value + we're inserting is a singlt-bit constant. + +2006-05-30 Roger Sayle + + * simplify-rtx.c (simplify_binary_operation_1) : Cast + width to HOST_WIDE_INT to avoid comparison warnings on some targets. + +2006-05-30 Roger Sayle + + PR tree-optimization/23452 + * fold-const.c (fold_mult_zconjz): New subroutine of fold_binary, + to optimize z * conj(z) as realpart(z)^2 + imagpart(z)^2. + (fold_binary) : Call fold_mult_zconjz for integral + complex values and with -ffast-math for FP complex values. + +2006-05-30 Kazu Hirata + + * c-common.h: Remove the prototype for yyparse. + * rtl.h: Remove the prototype for init_loop. + +2006-05-30 Andreas Krebbel + + * cse.c (validate_canon_reg, cse_insn): Don't change insns without + calling recog. + +2006-05-30 Roger Sayle + + * simplify-rtx.c (simplify_binary_operation): Unfactor the shift + and rotate cases. + : Optimize (lshiftrt (clz X) C) as (eq X 0) where C is + log2(GET_MODE_BITSIZE(X)) on targets with the appropriate semantics. + +2006-05-30 Dirk Mueller + + PR c/27273 + * c-common.c (convert_and_check): Only track TREE_CONSTANT_OVERFLOW + for CONSTANT_CLASS_P expresisons. + +2006-05-30 Volker Reichelt + + PR c/27718 + * c-typeck.c (c_expr_sizeof_type): Handle invalid types. + +2006-05-30 Zdenek Dvorak + + PR tree-optimization/27779 + * tree-data-ref.c (analyze_siv_subscript_cst_affine): Use + initial_condition instead of CHREC_LEFT. + +2006-05-30 Steven Bosscher + + * config/m32r/m32r.h (DBX_OUTPUT_SOURCE_LINE): Fix type of begin_label. + * config/m32r/initfini.c (__do_global_dtors, __do_global_ctors): + Make prototypes ISO C90. + +2006-05-30 Mircea Namolaru + Leehod Baruch + + * see.c (see_analyze_one_def): Correct check. + (see_get_extension_data): Check if extension is parallel. + (see_get_extension_reg): Likewise. + +2006-05-30 Uros Bizjak + + PR target/27790 + * config/i386/i386.c (ix86_expand_int_vcond): Force cop0 + into register for (code == GTU). + +2006-05-29 Roger Sayle + + PR tree-optimization/24964 + * simplify-rtx.c (simplify_binary_operation_1): Add function comment. + : Minor clean-up. Don't convert x*-1.0 into -x if we honor + signaling NaNs. Optimize -x*-x as x*x for all float modes, and + abs(x)*abs(x) as x*x for scalar floating point modes. + +2006-05-29 Sebastian Pop + + PR middle-end/27745 + * lambda-code.c (perfect_nestify): Don't copy statements + in the inner loop: move them to the inner loop header. + +2006-05-29 Diego Novillo + + PR 26237 + * c-tree.texi: Document OpenMP directives and clauses. + +2006-05-29 Kazu Hirata + + * varasm.c (globalize_decl): Fix indentation. + +2006-05-29 Diego Novillo + + PR 26242 + * doc/passes.texi: Add documentation for pass_vrp, pass_ipa_pta, + pass_fre, pass_store_ccp, pass_copy_prop, + pass_store_copy_prop, pass_merge_phi, pass_nrv, + pass_return_slot, pass_object_size, pass_lim, + pass_linear_transform, pass_empty_loop, pass_complete_unroll, + pass_loop_prefetch and pass_stdarg. + +2005-05-29 Bernd Schmidt + + * config/bfin/bfin.opt (mfdpic): New option. + * config/bfin/t-bfin-elf (EXTRA_PARTS): Add crtbeginS.o and crtendS.o. + (EXTRA_MULTILIB_PARTS): Likewise. + (CRTSTUFF_T_CFLAGS, TARGET_LIBGCC2_CFLAGS): Use -fpic. + (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Build one extra -mfdpic + multilib. + * config/bfin/elf.h (STARTFILE_SPEC): Don't link in crt0.o if -shared. + (CRT_CALL_STATIC_FUNCTION): New. + * config/bfin/uclinux.h (STARTFILE_SPEC): Don't link in crt0.o if + -shared. + (CRT_CALL_STATIC_FUNCTION): New. + * config/bfin/bfin.c (legitimize_pic_address): Now static. Handle + FD-PIC moves. + (n_pregs_to_save): PIC register doesn't need to be saved with FD-PIC. + (print_operand): Handle UNSPEC_MOVE_FDPIC and UNSPEC_FUNCDESC_GOT17M4. + (initialize_trampoline): Changed to handle FD-PIC code generation. + (expand_move): If TARGET_FDPIC, use emit_pic_move as needed. + (bfin_expand_call): Generate FD-PIC calls if TARGET_FDPIC. + (override_options): Disallow -mid-shared-library -mfdpic combination. + Can't do unaligned ops if FD-PIC. + Turn off flag_pic if trying to generate non-id-shared-library + non-fdpic code, since it's not supported. + (bfin_assemble_integer): New function. + (TARGET_ASM_INTEGER): Define. + * config/bfin/crti.s (__init, __fini): Save P3 on the stack if + __BFIN_FDPIC__. + * config/bfin/crtn.s: Restore them. + * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __BFIN_FDPIC__ + if TARGET_FDPIC. + (DRIVER_SELF_SPECS, SUBTARGET_DRIVER_SELF_SPECS, + LINK_GCC_C_SEQUENCE_SPEC, ASM_SPEC, LINK_SPEC): New macros. + (FDPIC_FPTR_REGNO, FDPIC_REGNO, OUR_FDPIC_REG): New macros. + (TRAMPOLINE_SIZE, TRAMPOLINE_TEMPLATE): Adjust for FD-PIC. + (CONDITIONAL_REGISTER_USAGE): If TARGET_FDPIC, FDPIC_REGNO is + call-used. + (enum reg_class, REG_CLASS_CONTENTS, REG_CLASS_NAMES): Add + FDPIC_REGS and FDPIC_FPTR_REGS. + (REG_CLASS_FROM_LETTER): Use 'Z' and 'Y' for them. + * config/bfin/bfin.md (UNSPEC_MOVE_FDPIC, UNSPEC_FUNCDESC_GOT17M4, + UNSPEC_VOLATILE_LOAD_FUNCDESC): New constants. + (load_funcdescsi): New pattern. + (call_symbol_fdpic, sibcall_symbol_fdpic, call_value_symbol_fdpic, + sibcall_value_symbol_fdpic, call_insn_fdpic, sibcall_insn_fdpic, + call_value_insn_fdpic, sibcall_value_insn_fdpic): New patterns. + +2006-05-29 Kazu Hirata + + * gcse.c, rtlanal.c: Remove obsolete comments associated with + loop.c. + + * config/bfin/bfin.h (PARM_BOUNDRY, STACK_BOUNDRY): Remove. + + * tree-flow.h: Remove the prototype for add_type_alias. + * tree-ssa-alias.c (add_type_alias): Remove. + +2006-05-28 Kazu Hirata + + * cfgcleanup.c, cfgexpand.c, cgraphunit.c, config/arm/arm.c, + config/fr30/fr30.md, config/i386/i386-interix.h, + config/i386/i386.c, config/i386/i386.md, config/sh/superh.h, + config/sh/superh64.h, config/v850/v850.c, df-core.c, + df-problems.c, df.h, except.c, final.c, haifa-sched.c, + lambda-code.c, libgcc2.h, omp-low.c, optabs.c, predict.c, + reload.c, tree-flow.h, tree-outof-ssa.c, tree-ssa-dce.c, + tree-ssa-pre.c, tree-vect-transform.c: Fix comment typos. + Follow spelling conventions. + * doc/invoke.texi, doc/rtl.texi, doc/tm.texi: Fix typos. + Follow spelling conventions. + +2006-05-27 Richard Guenther + + PR middle-end/27773 + * fold-const.c (fold_plusminus_mult_expr): Use fold_convert + to produce a constant of value 1 of generic type. + +2006-05-27 Dirk Mueller + + * cgraphunit.c (decide_is_function_needed): Fix wrong + PR reference. + +2006-05-26 Ulrich Weigand + + PR rtl-optimization/27661 + * reload.c (find_reloads): When reloading a VOIDmode constant + as address due to an EXTRA_MEMORY_CONSTRAINT or 'o' constraint, + use Pmode as mode of the reload register. + +2006-05-26 Eric Botcazou + + * doc/invoke.texi (Optimize Options): Document that -funit-at-a-time + is enabled at -O and above. + +2006-05-26 Steven Bosscher + + PR target/27571 + * config/alpha/alpha.c (alpha_does_function_need_gp): Skip jump + table data. + +2006-05-25 Mark Mitchell + + PR c++/20103 + * gimplify.c (gimplify_decl_expr): Do not call gimple_add_tmp_var + for anonymous variables explicitly declared by front ends. + +2006-05-25 Eric Botcazou + + * tree-ssa-structalias.h (PTR_IS_REF_ALL): New macro. + (struct alias_info): Add new field ref_all_symbol_mem_tag. + * tree-ssa-alias.c (compute_may_aliases): If the program contains + ref-all pointers, run a finalization pass for them. + (compute_flow_insensitive_aliasing): Skip ref-all pointers. + (finalize_ref_all_pointers): New function. + (is_escape_site): Return ESCAPE_BAD_CAST for conversion from a + regular pointer type to a ref-all pointer type. + (get_tmt_for): Return the special memory tag for ref-all pointers. + +2006-05-25 Richard Guenther + + PR middle-end/27743 + * fold-const.c (fold_binary): Do not look at the stripped + op0 for (a OP c1) OP c2 to a OP (c1+c2) shift optimization. + +2006-05-25 Eric Botcazou + + * tree-vrp.c (extract_range_from_assert): Set the range to VARYING + for LT and GT if the computed range is effectively empty. + +2006-05-24 John David Anglin + + PR target/27627 + * pa/pa-modes.def: Use mips_single_format, mips_double_format and + mips_quad_format formats instead of ieee_single_format, + ieee_double_format and ieee_quad_format formats, respectively. + +2006-05-24 Zdenek Dvorak + + PR tree-optimization/27639 + PR tree-optimization/26719 + * tree-vrp.c (adjust_range_with_scev): Use scev_direction and adjust + call to scev_probably_wraps_p. + * tree-ssa-loop-niter.c (compare_trees, convert_step_widening, + used_in_pointer_arithmetic_p, convert_step): Removed. + (nowrap_type_p): New function. + (scev_probably_wraps_p): Rewritten. + * tree-scalar-evolution.c (instantiate_parameters_1): Do not call + chrec_convert if chrec_convert_aggressive might have been used. + * tree-chrec.c (convert_affine_scev, chrec_convert_1, + scev_direction): New functions. + (chrec_convert): Changed to a wrapper over chrec_convert_1. + * tree-ssa-loop-ivopts.c (idx_find_step): Use convert_affine_scev + instead of convert_step. + * tree-flow.h (scev_probably_wraps_p): Declaration changed. + (convert_step): Declaration removed. + (convert_affine_scev, nowrap_type_p, scev_direction): Declare. + +2006-05-23 Kenneth Zadeck + + * df-core.c: Added to header comments. + * df.h (df_ru_bb_info, df_rd_bb_info, df_lr_bb_info, + df_ur_bb_info, df_urec_bb_info): Added comments. + * df-problems (df_ref_bitmap, ru, rd, lr, ur, + urec, ri problems): Fixed header comments. + (df_ru_transfer_function): Fixed in-out set dyslexia when copying + code from df_rd_transfer_function. + +2006-05-23 Richard Sandiford + + * libgcc2.c (LIBGCC2_MAX_UNITS_PER_WORD): New macro. + (LIBGCC2_UNITS_PER_WORD): Use LIBGCC2_MAX_UNITS_PER_WORD rather than + MIN_UNITS_PER_WORD to set the default. Also use it in the guard. + +2006-05-23 Joseph Myers + + * expr.c (undefined_operand_subword_p): New. + (emit_move_multi_word): Do not generate move from undefined bits + of a paradoxical subreg. + +2006-05-23 Richard Sandiford + + PR rtl-optimization/27736 + * combine.c (replaced_rhs_value): New variable. + (combine_instructions): Set it. + (distribute_notes): When distributing a note in replaced_rhs_insn, + check whether the value was used in replaced_rhs_value. + +2006-05-23 Andrew MacLeod + + PR c++/26757 + * tree-ssa-loop-im.c (determine_invariantness_stmt): Use + add_referenced_var instead of add_referenced_tmp_var. + * tree-complex.c (create_one_component_var): Use add_referenced_var. + * tree-ssa-loop-manip.c (create_iv, tree_unroll_loop): Use + add_referenced_var. + * tree-tailcall.c (adjust_accumulator_values, adjust_return_value, + tree_optimize_tail_calls_1): Use add_referenced_var. + * tree-ssa-loop-ivopts.c (create_new_iv): Use add_referenced_var. + * tree-ssa-alias.c (create_memory_tag, create_global_var, create_sft): + Use add_referenced_var. + * tree-if-conv.c (ifc_temp_var): Use add_referenced_var. + * gimplify.c (force_gimple_operand): Use add_referenced_var. + * tree-ssa-phiopt.c (conditional_replacement, abs_replacement): + Use add_referenced_var. + * tree-dfa.c (struct walk_state): Remove. + (find_referenced_vars): Remove walk state and vars_found hash table. + (make_rename_temp): Use add_referenced_var. + (find_vars_r): Pass less parameters to add_referenced_var. + (referenced_var_p): New. Is var in referenced_var hash table. + (referenced_var_insert): Assert var isn't already in hash table. + (add_referenced_var): Don't need walk_state parameter. Add var if it + isn't already in the hash table. + (add_referenced_tmp_var): Remove. + (find_new_referenced_vars_1): Use add_referenced_var. + * tree-ssa-pre.c (create_expression_by_pieces, + insert_into_preds_of_block, insert_extra_phis, realify_fake_stores): + Use add_referenced_var. + * tree-vect-patterns.c (vect_pattern_recog_1): Use add_referenced_var. + * lambda-code.c (lbv_to_gcc_expression, lle_to_gcc_expression, + lambda_loopnest_to_gcc_loopnest, perfect_nestify): Use + add_referenced_var. + * tree-vect-transform.c (vect_create_addr_base_for_vector_ref, + vect_create_data_ref_ptr, vect_create_destination_var, + vect_init_vector, vect_build_loop_niters, + vect_generate_tmps_on_preheader, vect_update_ivs_after_vectorizer, + vect_gen_niters_for_prolog_loop, vect_create_cond_for_align_checks): + Use add_referenced_var. + * tree-outof-ssa.c (create_temp): Use add_referenced_var. + * tree-flow.h (add_referenced_tmp_var): Remove prototype + (add_referenced_var): Add prototype. + * tree-ssa-structalias.c (get_constraint_for, + intra_create_variable_infos): Use add_referenced_var. + +2006-05-23 Alexandre Oliva + + * simplify-rtx.c (simplify_subreg): Adjust REG_OFFSET for + big-endian paradoxical subregs. + * var-tracking.c (struct micro_operation_def): Document that, + for modify micro operations, insn is the subsequent instruction. + (var_reg_delete_and_set, var_mem_delete_and_set): Split into... + (var_reg_set, var_mem_set): ... new functions. + (add_stores): Record subsequent insn. + (compute_bb_dataflow): Use new functions for MO_USE. + (emit_notes_in_bb): Use new functions for MO_USE. Emit use + notes after the insn, and modify notes before the insn known + to be the subsequent one. + (vt_initialize): Invert sorting of MO_CLOBBERs and MO_SETs. + +2006-05-23 Kazu Hirata + + PR target/27696 + * config/i386/i386.c (ix86_expand_builtin): Use + gen_sse3_monitor64 for TARGET_64BIT. + +2006-05-22 Kenneth Zadeck + + PR rtl-optimization/26375 + PR rtl-optimization/26855 + * df-problems (df_ru_bb_local_compute_process_def): Removed update + to gen set. + (df_ru_bb_local_compute): Reversed statements and removed bogus + comment explaining why they should be in wrong order. + (df_ru_dump, df_rd_dump): Enhanced debug info. + * modulo-sched.c (sms_schedule, tree_opt_pass pass_sms): Enhanced + debug info. + * ddg.c (add_deps_for_def): Converted use of reaching defs to + reaching uses and fixed space problem. + +2006-05-23 Jan Hubicka + + * cgraphunit.c (decide_is_function_needed): Also nested functions + and functions declared inline can be optimized out at -O0. + +2006-05-22 Gerald Pfeifer + + * doc/install.texi (Configuration): Remove reference to CrossGCC + FAQ which was hijacked. + (Building): Ditto. + +2006-05-22 Kazu Hirata + + PR target/27266 + * config/i386/i386.c (ix86_expand_branch): Jump to simple if + ix86_compare_emitted is non-NULL. + +2006-05-22 Volker Reichelt + + PR c++/27451 + * stmt.c (expand_asm_operands): Skip asm statement with erroneous + clobbers. + +2006-05-22 Richard Sandiford + + PR rtl-optimization/25514 + * combine.c (replaced_rhs_insn): New variable. + (combine_instructions): Set replaced_rhs_insn when trying to replace + a SET_SRC with a REG_EQUAL note. + (distribute_notes): Use replaced_rhs_insn when determining the live + range of a REG_DEAD register. + +2006-18-05 Joerg Wunsch + Anatoly Sokolov + + * config/avr/avr.c (avr_mcu_types): Add support for attiny261, + attiny461, attiny861, attiny25, attiny45, attiny85, attiny24, + attiny44, attiny84, at90pwm2, at90pwm3, atmega165p, atmega169p, + atmega164p, atmega324p, atmega644p, atmega644, atmega329, + atmega3290, atmega649, atmega6490, atmega406, atmega640, + atmega1280, atmega1281, at90can32, at90can64, at90usb646, + at90usb647, at90usb1286 and at90usb1287 devices. + * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.). + * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.). + +2006-05-22 Richard Sandiford + + * mklibgcc.in (lib2funcs): Remove _floatdidf from initial assignment. + +2006-05-22 Richard Guenther + + Revert + 2006-01-31 Richard Guenther + Paolo Bonzini + + * doc/install.texi (--disable-libgcc-math): Document. + +2006-05-22 Richard Guenther + + Revert + 2006-01-31 Richard Guenther + + * doc/invoke.texi (-msselibm): Document. + * target.h (expand_library_builtin): New target hook. + * builtins.c (expand_builtin): Use expand_library_builtin. + (default_expand_library_builtin): New function. + * gcc.c (LINK_GCC_MATH_SPEC): Define. + (LINK_COMMAND_SPEC): Handle %(link_gcc_math). + (link_gcc_math_spec): Declare. + (static_specs): Add link_gcc_math_spec. + * expr.h (default_expand_library_builtin): Declare. + * target-def.h (TARGET_EXPAND_LIBRARY_BUILTIN): Define. + (TARGET_INITIALIZER): Add TARGET_EXPAND_LIBRARY_BUILTIN. + * config/i386/i386.h: Provide LINK_GCC_MATH_SPEC. + * config/i386/i386.opt (msselibm): New target option. + * config/i386/i386.c (ix86_builtin_function_variants): New array. + (ix86_init_sse_abi_builtins): New function. + (ix86_expand_library_builtin): Likewise. + (TARGET_EXPAND_LIBRARY_BUILTIN): Define. + (override_options): Handle error conditions wrt -msselibm. + (ix86_builtins): Add function codes for SSE2 ABI builtins. + (ix86_init_builtins): Call ix86_init_sse_abi_builtins. + * doc/extend.texi (__builtin_sse2_*): Document new target specific + builtins. + +2006-05-22 Volker Reichelt + + PR c/27420 + * c-common.c (self_promoting_args_p): Skip erroneous args. + + PR c/26818 + * c-decl.c (finish_struct): Skip erroneous fields. + 2006-05-22 Nick Clifton * config/cris/cris.opt (march): Remove VarExists attribute. @@ -72,7 +862,7 @@ (df_ref_record_1): Changed DF_REF_CLOBBER into DF_REF_MUST_CLOBBER and set DF_REF_PARTIAL. (df_defs_record): Changed DF_REF_CLOBBER into DF_REF_MUST_CLOBBER. - (df_uses_record): Added DF_REF_PARTIAL for subreg. + (df_uses_record): Added DF_REF_PARTIAL for subreg. (df_scan_add_problem): Added flags parameter. (df_ref_create_structure): Changed switching structure. (df_bb_refs_record): Fixed case where duplicate artificial refs @@ -83,8 +873,8 @@ (df_record_exit_block_uses, df_insn_refs_record): Changed location of flags. (df_set_state): Removed function. (df_grow_reg_info, df_reg_chain_unlink, df_ref_remove, - df_insn_create_insn_record, df_insn_refs_delete, - df_ref_create_structure): Formatting changes. + df_insn_create_insn_record, df_insn_refs_delete, + df_ref_create_structure): Formatting changes. * df-core.c (df_mvs_dump, df_set_flags, df_clear_flags, df_delete_basic_block): New function. (df_init): Changed location of flags. @@ -98,7 +888,7 @@ (df_prune_to_subcfg): Made public. (df_analyze_problem): Added blocks_to_init parameter and made public. - (df_ref_record, df_bb_refs_record, df_mark_reg, + (df_ref_record, df_bb_refs_record, df_mark_reg, df_record_exit_block_uses): Whitespace changes. (df_dump): Whitespace changes. * df.h: Some reordering to remove forward references. @@ -191,7 +981,7 @@ * dwarf2out.c (dwarf2_name): Use the dwarf_name language hook. * ada/misc.c (gnat_dwarf_name): New function. (LANG_HOOKS_DWARF_NAME): Define to gnat_dwarf_name. - + 2006-05-19 Richard Sandiford * libgcc2.c (MIN_UNITS_PER_WORD): Move default definition from @@ -468,7 +1258,7 @@ 2006-05-15 Per Bothner - * tree.c: (last_annotated_node): Use sources_locus typedef. + * tree.c: (last_annotated_node): Use source_locus typedef. This permits bootstrapping with --enable-mapped-location. 2006-05-15 Zdenek Dvorak @@ -695,7 +1485,7 @@ 2006-05-08 Jan Hubicka - PR middle-end/25962 + PR middle-end/24561 * cgraphunit.c (decide_is_function_needed): When not optimizing even unused static functions are needed. @@ -2463,7 +3253,7 @@ * doc/invoke.texi (C++ Dialect Options): Rewrite -fvisibility-inlines-hidden documentation to describe something entirely different, although in practise compatible. - (Code Gen Options): Warn about system headers in -fvisibiltity= + (Code Gen Options): Warn about system headers in -fvisibility= documentation. * doc/extend.texi (Other Builtins): Document that