OSDN Git Service

2006-12-16 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index ad6b37e..b17a039 100644 (file)
+2006-12-16  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
+
+       PR middle-end/7651
+       * c.opt (Wempty-body): New.
+       * doc/invoke.texi (Wempty-body): Document it.
+       (Wextra): Enabled by -Wextra.
+       * c-opts.c (c_common_post_options): Enabled by -Wextra.
+       * c-common.c (empty_body_warning): Replace Wextra with Wempty-body.
+       * c-parser.c (c_parser_c99_block_statement): Likewise.
+       
+2006-12-15  Jakub Jelinek  <jakub@redhat.com>
+
+       PR target/30185
+       * config/rs6000/rs6000.md (div<mode>3): Use correct mode in
+       force_reg call.
+
+2006-12-15  Andrew Pinski  <pinski@gmail.com>
+
+       PR tree-opt/30140
+       * tree-inline.c (setup_one_parameter): Gimplify the statement if
+       the variable is not a gimple register variable.
+
+2006-12-15  Uros Bizjak  <ubizjak@gmail.com>
+
+       * invoke.texi (mstringop-strategy): Add missing "byte_loop" value.
+
+2006-12-14  Jan Hubicka  <jh@suse.cz>
+
+       * tree-flow.h (struct stmt_ann_d): Move bitfield references_memory
+       to proper place.
+
+2006-12-14  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/30197
+       * builtins.c (fold_builtin_cexp): New function to fold cexp
+       to cexpi and exp parts.
+       * tree-ssa-pre.c (try_combine_conversion): Also handle
+       REALPART_EXPR and IMAGPART_EXPR.
+
+2006-12-14  Richard Guenther  <rguenther@suse.de>
+
+       PR middle-end/30172
+       * fold-const.c (fold_binary): Fold __complex__ ( x, 0 )
+       + __complex__ ( 0, y ) to __complex__ ( x, y ).
+       Fold __complex__ (x, y) * +-I to __complex__ (-+y, +-x).
+
+2006-12-14  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/30198
+       * fold-const.c (fold_unary): Fold REALPART_EXPR of cexpi to cos.
+       Fold IMAGPART_EXPR of cexpi to sin.
+
+2006-12-14  Dorit Nuzman  <dorit@il.ibm.com>
+           Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
+
+       * spu.c (TARGET_VECTORIZE_BUILTIN_MASK_FOR_LOAD): Defined.
+       (spu_init_builtins): Mark the SPU_MASK_FOR_LOAD builtin decl as read 
+       only.   
+       (spu_expand_builtin_1): Handle the SPU_MASK_FOR_LOAD builtin.
+       (spu_builtin_mask_for_load): New.
+       * spu-builtins.def (SPU_MASK_FOR_LOAD): Define new builtin.
+       * spu.md (UNSPEC_SPU_REALIGN_LOAD, UNSPEC_SPU_MASK_FOR_LOAD):New.
+       (vec_realign_load_<mode>, spu_lvsr): New.
+
+2006-12-13  Ian Lance Taylor  <iant@google.com>
+
+       PR c++/19564
+       PR c++/19756
+       * c-typeck.c (parser_build_binary_op): Move parentheses warnings
+       to warn_about_parentheses in c-common.c.
+       * c-common.c (warn_about_parentheses): New function.
+       * c-common.h (warn_about_parentheses): Declare.
+       * doc/invoke.texi (Warning Options): Update -Wparentheses
+       description.
+
+2006-12-13  Zdenek Dvorak <dvorakz@suse.cz>
+
+       * tree-ssa-loop-ivopts.c: Include tree-affine.h.
+       (divide): Removed.
+       (constant_multiple_of): Fix order of operators for division.
+       (aff_combination_const, aff_combination_elt, aff_combination_scale,
+       aff_combination_add_elt, aff_combination_add, aff_combination_convert,
+       tree_to_aff_combination, add_elt_to_tree, unshare_aff_combination,
+       aff_combination_to_tree): Moved to tree-affine.c and made to work with
+       double_int coefficients.
+       (get_computation_aff, get_computation_at): Work with double_int
+       coefficients.
+       (get_computation_cost_at): Do not use divide.
+       (rewrite_use_nonlinear_expr, rewrite_use_address, rewrite_use_compare):
+       Assert that expressing the computation did not fail.
+       * tree-ssa-address.c: Include tree-affine.h.
+       (add_to_parts, most_expensive_mult_to_index, addr_to_parts,
+       create_mem_ref): Work with double_int coefficients.
+       * tree-affine.c: New file.
+       * tree-affine.h: New file.
+       * tree-flow.h (struct affine_tree_combination): Removed.
+       * Makefile.in (tree-affine.o): Add.
+       (tree-ssa-address.o, tree-ssa-loop-ivopts.o): Add tree-affine.h
+       dependency.
+
+2006-12-13  Peter Bergner  <bergner@vnet.ibm.com>
+
+       PR middle-end/30191
+       Revert:
+       * reload1.c (eliminate_regs_in_insn): Merge the plus_src "else" and
+       the offset == 0 "then" clauses.
+       * config/rs6000/predicates.md (gpc_reg_operand): Check for
+       reload_in_progress.
+
+2006-12-13  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/i386.h (FIRST_PSEUDO_REGISTER): Define to 53.
+       (FIXED_REGISTERS, CALL_USED_REGISTERS): Remove dir register.
+       (REG_ALLOC_ORDER): Remove one element due to removal of dir register.
+       (FRAME_POINTER_REGNUM): Update register number to 20.
+       (REG_CLASS_CONTENTS): Update contents due to removed dir register.
+       (HI_REGISTER_NAMES): Remove "dirflag".
+
+       * config/i386/i386.c (regclass_map): Remove dirflag entry.
+       (dbx_register_map, dbx64_register_map, svr4_dbx_register_map):
+       Remove "dir" entry.
+       (ix86_md_asm_clobbers): Remove "dirflag" default asm clobber.
+
+       * config/i386/i386.md (R10_REG, R11_REG): Renumber.
+       (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-12-13  Mark Shinwell  <shinwell@codesourcery.com>
+
+       * config/arm/arm.c (arm_output_fldmx): Output FLDMD instead of
+       FLDMX.  Rename function to...
+       (vfp_output_fldmd): ...this.
+       (vfp_output_fstmx): Output FSTMD instead of FSTMX.  Rename
+       function to...
+       (vfp_output_fstmd): ...this.
+       (vfp_emit_fstmx): Don't leave space in the frame layout for the
+       FSTMX format word.  Rename function to...
+       (vfp_emit_fstmd): ...this.
+       (arm_get_vfp_saved_size): Don't add in space for the FSTMX format
+       word.
+       (arm_output_epilogue): Adjust comment to reflect use of FSTMD.
+       (arm_unwind_emit_sequence): Don't compensate for the FSTMX format
+       word.  Also emit "vsave" assembler directives in such cases rather
+       than "save".
+       * config/arm/libunwind.S (gnu_Unwind_Restore_VFP,
+       gnu_Unwind_Save_VFP): Adjust comments.
+       (gnu_Unwind_Restore_VFP_D, gnu_Unwind_Save_VFP_D): New functions
+       for saving and restoring using FSTMD and FLDMD rather than
+       FSTMX and FLDMX.
+       (gnu_Unwind_Restore_VFP_D_16_to_31, gnu_Unwind_Restore_VFP_D_16_to_31):
+       New functions for saving and restoring the VFPv3 registers 16 .. 31.
+       * config/arm/pr-support.c (gnu_unwind_execute): Add conditional
+       compilation case to correctly handle unwind opcode 0xc8 when using
+       VFP.
+       * config/arm/unwind-arm.c (struct vfpv3_regs): New.
+       (DEMAND_SAVE_VFP_D, DEMAND_SAVE_VFP_V3): New flags.
+       (__gnu_Unwind_Save_VFP_D, __gnu_Unwind_Restore_VFP_D,
+       __gnu_Unwind_Save_VFP_D_16_to_31, __gnu_Unwind_Restore_VFP_D_16_to_31):
+       Declare.
+       (restore_non_core_regs): Restore registers using FLDMD rather than
+       FLDMX if required.  Also handle restoration of VFPv3 registers.
+       (_Unwind_VRS_Pop): Handle saving and restoring of registers using
+       FSTMD and FLDMD if required; also handle VFPv3 registers 16 .. 31,
+       including cases where the caller specifies a range of registers
+       that overlaps the d15/d16 boundary.
+
+2006-12-13  Diego Novillo  <dnovillo@redhat.com>
+
+       PR 30089
+       * tree-ssa-operands.h (SSA_OPERAND_MEMORY_SIZE): Add space to
+       accomodate 511 operands.
+
+2006-12-13  Richard Guenther  <rguenther@suse.de>
+
+       * builtins.c (expand_builtin_cexpi): Fix typo.
+
+2006-12-13  Jan Hubicka  <jh@suse.cz>
+
+       * Makefile.in: Add dependencies.
+       * tree-pretty-print.c: Include value-prof.h
+       (dump_generic_bb_buff): Dump histograms
+       * value-prof.c: Include pointer-set.h
+       (gimple_alloc_histogram_value, histogram_hash, histogram_eq,
+       set_histogram_value, gimple_histogram_value,
+       gimple_add_histogram_value, gimple_remove_histogram_value,
+       gimple_histogram_value_of_type, dump_histogram_value,
+       dump_histograms_for_stmt, gimple_remove_stmt_histograms,
+       gimple_duplicate_stmt_histograms, visit_hist,
+       verify_histograms): New functions.
+       (tree_value_profile_transformations): Update for new histogram API.
+       (tree_divmod_fixed_value): Update for new histogram API.
+       (tree_divmod_fixed_value_transform): Update for new histogram API.
+       (tree_mod_pow2): Update for new histogram API.
+       (tree_mod_pow2_value_transform): Update for new histogram API.
+       (tree_mod_subtract): Update for new histogram API.
+       (tree_mod_subtract_transform): Update for new histogram API.
+       (tree_stringops_transform): Update for new histogram API.
+       (tree_divmod_values_to_profile): Update for new histogram API.
+       (tree_stringops_values_to_profile): Update for new histogram API.
+       (tree_find_values_to_profile): Update for new histogram API.
+       * value-prof.h (gimple_histogram_value): Declare.
+       (gimple_histogram_value_of_type): Declare.
+       (gimple_add_histogram_value): Declare.
+       (gimple_remove_histogram_value): Declare.
+       (dump_histograms_for_stmt): Declare.
+       (gimple_remove_histogram_value): Declare.
+       (gimple_remove_stmt_histograms): Declare.
+       (gimple_duplicate_stmt_histograms): Declare.
+       (verify_histograms): Declare.
+       * function.h
+       (struct funrction): Add value_histograms hash.
+       (VALUE_HISTOGRAMS): New macro.
+       * profile.c (compute_value_histograms): update for new API.
+       * tree-inline.c: Include value-prof.h
+       (copy_bb): Update histograms.
+       * tree-flow.h (struct stmt_ann_d): Do not contain pointer to histograms;
+       reorder to get smaller memory layout.
+       * tree-cfg.c: Include value-prof.h
+       (bsi_remove): Update histograms.
+       (bsi_replace): Update histograms.
+       (verify_stmts): Call histogram verifier.
+       (tree_duplicate_bb): Update histograms.
+       (move_block_to_fn): Update histograms.
+
+2006-12-13  Richard Guenther  <rguenther@suse.de>
+
+       * ipa-inline.c (cgraph_flatten_node): Replace leafify with
+       flatten.
+       (cgraph_decide_inlining): Likewise.
+
+2006-12-13  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/17687
+       * builtins.def (BUILT_IN_CEXPI, BUILT_IN_CEXPIF, BUILT_IN_CEXPIL):
+       New builtins for imaginary argument cexp.
+       * builtin-types.def (BT_FN_COMPLEX_FLOAT_FLOAT,
+       BT_FN_COMPLEX_DOUBLE_DOUBLE, BT_FN_COMPLEX_LONGDOUBLE_LONGDOUBLE):
+       New required builtin types.
+       * builtins.c (expand_builtin_cexpi): Declare.
+       (mathfn_built_in): Handle BUILT_IN_CEXPI.
+       (expand_builtin_cexpi): New static helper.
+       (expand_builtin): Call it.
+       (do_mpfr_sincos): Adjust for CEXPI evaluation.
+       (fold_builtin_sincos): New function to fold sincos to cepxi.
+
+2006-12-13  Richard Guenther  <rguenther@suse.de>
+
+       * ipa-reference.c (scan_for_static_refs): Also scan
+       tcc_comparison class trees.
+
+2006-12-12 David Daney  <ddaney@avtrex.com>
+
+       * config/mips/mips.h (ASM_OUTPUT_EXTERNAL): Undefine it before
+       define.
+
+2006-12-12  Andrew Pinski  <pinskia@gmail.com>
+
+       * tree-vect-transform.c (vect_permute_load_chain):
+       Set DECL_GIMPLE_REG_P to true for the vect_perm_*
+       temp variables.
+
+2006-12-13  Sa Liu  <saliu@de.ibm.com>
+           Ben Elliston  <bje@au.ibm.com>
+
+       * config/spu/spu.h (C_COMMON_OVERRIDE_OPTIONS): Define.
+       (REGISTER_TARGET_PRAGMAS): Don't zero warn_main flag.
+       * config/spu/spu-protos.h (spu_c_common_override_options):
+       Declare.
+       * config/spu/spu-c.c (spu_c_common_override_options): New.
+       * config/spu/spu.c (spu_override_options): Whitespace fix.
+
+2006-12-12  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
+
+       * config/spu/spu.c (cpat_info): Fix an incorrectly identified case.
+
+2006-12-12  Geoffrey Keating  <geoffk@apple.com>
+
+       * mips-tdump.c: Replace CROSS_COMPILE with
+       CROSS_DIRECTORY_STRUCTURE.
+       * mips-tfile.c: Likewise.
+       * gcc.c: Likewise.
+       * configure.ac: Likewise.
+       * cppdefault.c: Likewise.
+       * Makefile.in: Likewise.
+       * config/alpha/osf.h: Likewise.
+       * config/i386/cygwin.h: Likewise.
+       * config/i386/beos-elf.h: Likewise.
+       * config/i386/nto.h: Likewise.
+       * config/fr30/fr30.h: Likewise.
+       * config/svr4.h: Likewise.
+       * config/rs6000/aix.h: Likewise.
+       * config/rs6000/sysv4.h: Likewise.
+       * config/pa/pa64-hpux.h: Likewise.
+       * config/pa/pa-hpux10.h: Likewise.
+       * config/pa/pa-hpux11.h: Likewise.
+       * collect2.c: Likewise.
+       * configure: Regenerate.
+
+       * doc/tm.texi (Alignment Output): Document that ASM_OUTPUT_SKIP
+       actually takes an unsigned HOST_WIDE_INT for its second parameter.
+
+2006-12-13  Ulrich Weigand  <uweigand@de.ibm.com>
+
+       * config/spu/spu.c (TARGET_ENCODE_SECTION_INFO): Define.
+       (spu_encode_section_info): New.
+       * config/spu/spu.h (ALIGNED_SYMBOL_REF_P): Adjust.
+       (SYMBOL_FLAG_ALIGN1): New.
+
+2006-12-12  Andrew Pinski  <andrew_pinski@playstation.sony.com>
+
+       PR tree-opt/28624
+       * tree-ssa-dom.c (eliminate_degenerate_phis): Use a temporary 
+       bitmap for EXECUTE_IF_SET_IN_BITMAP.
+
+2006-12-12  Andrew Pinski  <andrew_pinski@playstation.sony.com>
+
+       PR tree-opt/28436
+       * tree.h (DECL_COMPLEX_GIMPLE_REG_P): Rename to ...
+       (DECL_GIMPLE_REG_P): This.
+       * fold-const.c (fold_indirect_ref_1): Fold *(foo *)&vectorfoo into
+       using BIT_FIELD_REF.
+       * omp-low.c (omp_copy_decl_2): Use the renamed DECL_GIMPLE_REG_P.
+       * tree-gimple.c (is_gimple_reg): Use the renamed DECL_GIMPLE_REG_P
+       and check for VECTOR_TYPE.
+       * expr.c (get_inner_reference): Set the mode for BIT_FIELD_REF with
+       vector types.
+       * tree-flow-inline.h (var_can_have_subvars): Use the renamed
+       DECL_GIMPLE_REG_P.
+       * gimplify.c (internal_get_tmp_var): Use the renamed DECL_GIMPLE_REG_P
+       and check for VECTOR_TYPE.
+       (gimplify_bind_expr): Likewise.
+       (gimplify_function_tree): Likewise.
+       * expmed.c: Include target.h.
+       (extract_bit_field): For vector mode, try find a better mode first.
+       If that fails use gen_lowpart (for vectors only).
+       * tree-dfa.c (make_rename_temp): Use the renamed DECL_GIMPLE_REG_P
+       and check for VECTOR_TYPE.
+       * tree-ssa-pre.c (create_expressions_by_pieces): Likewise.
+       (insert_into_preds_of_block): Likewise.
+       (insert_fake_stores): Create gimple register store_tmps for
+       vector types.
+       * tree-sra.c (sra_elt): New field, is_vector_lhs.
+       (sra_walk_expr <case BIT_FIELD_REF>): For vector types that
+       are the left hand side, set the element's is_vector_lhs to true.
+       (instantiate_element): For vector types which were on the left
+       hand size, set DECL_GIMPLE_REG_P to false.
+       * tree-nested.c (create_tmp_var_for): Use the renamed DECL_GIMPLE_REG_P.        * tree-inline.c (declare_return_variable):  Use the renamed
+       DECL_GIMPLE_REG_P
+       and check for VECTOR_TYPE.
+       (copy_decl_to_var):  Use the renamed DECL_GIMPLE_REG_P.
+       (copy_result_decl_to_var): Likewise.
+       * tree-vect-transform.c (vect_get_new_vect_var): For vector types,
+       create a gimple register variable.
+       (vect_permute_store_chain): Set DECL_GIMPLE_REG_P to true for the
+       vect_inter_* temp variables.
+       * Makefile.in (expmed.o): Update dependencies.
+
+2006-12-12  Peter Bergner  <bergner@vnet.ibm.com>
+
+       * reload1.c (eliminate_regs_in_insn): Merge the plus_src "else" and
+       the offset == 0 "then" clauses.
+       * config/rs6000/predicates.md (gpc_reg_operand): Check for
+       reload_in_progress.
+
+2006-12-12  Marcin Dalecki  <martin@dalecki.de>
+
+       * doc/passes.texi: remove docs about "redundant PHI removal".
+       * tree-pass.h: remove orphaned declaration of pass_redundant_phi,
+       remove redundant pass_partition_blocks declaration.
+
+2006-12-12  Andrew Macleod  <amacleod@redhat.com>
+       
+       PR tree-optimization/30159
+       * tree-ssa-coalesce.c (coalesce_ssa_name): Process single ssa_name 
+       functions in case a default_def coalesce is required.
+
+2006-12-12  Jakub Jelinek  <jakub@redhat.com>
+
+       PR libstdc++/11953
+       * gthr-posix.h (_REENTRANT): Only define if __osf__ is defined.
+
+       * config/ia64/linux.h (CPP_SPEC): Define.
+       * config/s390/linux.h (CPP_SPEC): Define.
+
+2006-12-12  Jim Wilson  <wilson@specifix.com>
+           Jakub Jelinek  <jakub@redhat.com>
+
+       PR rtl-optimization/27761
+       * combine.c (try_combine): Don't create a useless garbage SET
+       if PATTERN (i2) is a PARALLEL.  If added_sets_1, save
+       PATTERN (i1) resp. SET from i1src to i1dest in i1pat
+       and use it to prevent accidental modification of i1src.
+
+2006-12-12  Ira Rosen  <irar@il.ibm.com>
+
+       * tree-vect-analyze.c (vect_analyze_data_ref_access): Add another check
+       for stores with gaps.
+       * tree-vect-transform.c (vect_permute_store_chain): Create
+       interleave_high or interleave_low according to the endianess.
+
+2006-12-12  Richard Guenther  <rguenther@suse.de>
+
+       PR middle-end/30147
+       * fold-const.c (fold_read_from_constant_string): Only fold read
+       from constant string if the result type is integer.
+
+2006-12-12  Olivier Hainque  <hainque@adacore.com>
+
+       * config/rs6000/t-vxworks: Remove assignment to LIB2FUNCS_EXTRA.
+
+2006-12-12  Olivier Hainque  <hainque@adacore.com>
+
+       * config/vxlib.c: Extract tls related routines into ...
+       * config/vxlib-tls.c: New file. 
+       * config/t-vxworks: Add vxlib-tls.c to LIB2FUNCS_EXTRA.
+       
+2006-12-12  Sa Liu  <saliu@de.ibm.com>
+           Ben Elliston  <bje@au.ibm.com>
+
+       * config/spu/spu.opt (mfixed-range): New option.
+       * config/spu/spu.h (spu_fixed_range_string): Declare.
+       * config/spu/spu.c (spu_override_options): Handle -mfixed-range.
+       (fix_range): New function.
+       * doc/invoke.texi (SPU Options): Document -mfixed-range.
+       * testsuite/gcc.target/spu/fixed-range.c: New.
+       * testsuite/gcc.target/spu/fixed-range-bad.c: Ditto.
+
+2006-12-11  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR middle-end/17982
+       PR middle-end/20218
+       * cgraphunit.c (cgraph_optimize): Remove call to
+       process_pending_assemble_externals.
+
+       * config/elfos.h (ASM_OUTPUT_EXTERNAL): New.
+
+       * config/ia64/hpux.h (TARGET_ASM_FILE_END): Removed.
+
+       * config/ia64/ia64.c (ia64_asm_output_external): Rewritten.
+       (ia64_hpux_add_extern_decl): Removed.
+       (ia64_hpux_file_end): Likewise.
+       (extern_func_list): Likewise.
+       (extern_func_head): Likewise.
+
+       * output.h (assemble_external): Update comments.
+       (default_elf_asm_output_external): New.
+       (maybe_assemble_visibility): New.
+
+       * toplev.c (compile_file): Update comment.
+
+       * varasm.c (assemble_external): Always put it on
+       pending_assemble_externals.
+       (maybe_assemble_visibility): Make it extern and return int.
+       (default_elf_asm_output_external): New.
+
+2006-12-11  Daniel Berlin  <dberlin@dberlin.org>
+
+       * tree-ssa-structalias.c (handle_ptr_arith): Return false when we
+       can't handle the pointer arithmetic.
+
+2006-12-11  Diego Novillo  <dnovillo@redhat.com>
+
+       * doc/tree-ssa.texi: Update documentation for virtual operands
+       and the use of push_stmt_changes/pop_stmt_changes.
+       * doc/invoke.texi: Remove documentation for params
+       global-var-threshold.
+       Update documentation on max-aliased-vops.
+
+       * tree-into-ssa.c: Cleanup comments, variables and
+       spacing in various functions.
+       (regs_to_rename): Declare.
+       (mem_syms_to_rename): Declare.
+       (dump_update_ssa): Declare.
+       (debug_update_ssa): Declare.
+       (dump_names_replaced_by): Declare.
+       (debug_names_replaced_by): Declare.
+       (dump_def_blocks): Declare.
+       (debug_def_blocks): Declare.
+       (dump_defs_stack): Declare.
+       (debug_defs_stack): Declare.
+       (dump_currdefs): Declare.
+       (debug_currdefs): Declare.
+       (mark_def_sites): Do not handle virtual operands.
+       (compute_idf): Rename from find_idf.  Update users.
+       (register_new_def): Make local.  Convert second argument
+       to 'tree'.
+       Use BLOCK_DEFS_STACK directly.
+       If pushing a non-register, also push the underlying
+       symbol.
+       (rewrite_stmt): Do not handle virtual operands.
+       (dump_tree_ssa): Call dump_def_blocks, dump_defs_stack,
+       dump_currdefs and dump_tree_ssa_stats.
+       (dump_tree_ssa_stats): Also dump REPL_TBL.
+       (replace_use): Remove.  Update all users to call SET_USE
+       instead.
+       (rewrite_blocks): Move code to free memory to
+       fini_ssa_renamer.
+       (mark_def_site_blocks): Move initialization code to
+       init_ssa_renamer.
+       (init_ssa_renamer): New.
+       (fini_ssa_renamer): New.
+       (rewrite_into_ssa): Call them.
+       (prepare_block_for_update): Process SSA_OP_ALL_USES first
+       and SSA_OP_ALL_DEFS later.  Do not process virtual
+       operands separately.
+       (dump_update_ssa): Call dump_decl_set.
+       (init_update_ssa): Initialize regs_to_rename and
+       mem_syms_to_rename.
+       Call init_ssa_renamer.
+       (delete_update_ssa): Call fini_ssa_renamer.
+       Free blocks_with_phis_to_rewrite.
+       (mark_sym_for_renaming): If the variable has
+       sub-variables, also mark them.
+       If the variable belongs to a partition, also mark it.
+       (mark_set_for_renaming): Call mark_sym_for_renaming on
+       every symbol in the set.
+       (switch_virtuals_to_full_rewrite): Call
+       mark_set_for_renaming.
+       (update_ssa): Separate syms_to_rename into regs_to_rename
+       and mem_syms_to_rename.
+
+       * tree-dump.c (dump_options): Add TDF_MEMSYMS.
+       * tree-pretty-print.c (debug_generic_expr): Add TDF_MEMSYMS.
+       (debug_generic_stmt): Likewise.
+       (debug_tree_chain): Likewise.
+       (dump_symbols): New.
+       (dump_generic_node): Check for TDF_MEMSYMS.
+       Handle MEMORY_PARTITION_TAG.
+       If the statement references memory and TDF_MEMSYMS is
+       given, call dump_symbols.
+       Indicate default names with (D).
+       (dump_vops): Update for new virtual operator format.
+
+       * tree.c (init_ttree): Add MEMORY_PARTITION_TAG to
+       tree_contains_struct.
+       (tree_code_size): Handle MEMORY_PARTITION_TAG.
+       (tree_node_structure): Likewise.
+       (needs_to_live_in_memory): Handle SSA names.
+       * tree.h (MTAG_P): Likewise.
+       (struct tree_memory_partition_tag): Declare.
+       (MPT_SYMBOLS): Define.
+       (union tree_node): Add field 'mpt'.
+       * treestruct.def (TS_MEMORY_PARTITION_TAG): Define.
+       * tree.def (MEMORY_PARTITION_TAG): Define.
+
+       * tree-pass.h (TDF_MEMSYMS): Define.
+
+       * params.h (GLOBAL_VAR_THRESHOLD): Remove.
+
+       * tree-ssa-alias.c: Include pointer-set.h
+       (struct alias_map_d): Remove fields total_alias_vops,
+       grouped_p and may_aliases.  Update all users.
+       (struct mp_info_def): Declare.
+       (mp_info_t): New type.
+       (get_smt_for): Rename from get_tmt_for.  Update all
+       users.
+       (add_may_alias): Add argument ALREADY_ADDED.  If given,
+       use it to avoid adding duplicate entries to alias sets.
+       (replace_may_alias): Remove.  Update all users.
+       (total_alias_vops_cmp): Remove.  Update all users.
+       (group_aliases_into): Remove.  Update all users.
+       (tree_pointer_compare): Remove.  Update all users.
+       (compact_name_tags): Remove.  Update all users.
+       (group_aliases): Remove.  Update all users.
+       (mark_non_addressable): Move from tree-flow-inline.h.
+       Remove the symbol from the partition holding it, if
+       needed.
+       (dump_mp_info): New.
+       (debug_mp_info): New.
+       (sort_mp_info): New.
+       (create_partition_for): New.
+       (rewrite_alias_set_for): New.
+       (compute_memory_partitions): New.
+       (compute_may_aliases): Call it.
+       (init_alias_info): If computing aliases for the first
+       time, mark every memory symbol for renaming.
+       (have_common_aliases_p): New.
+       (compute_flow_insensitive_aliasing): Call it.
+       (setup_pointers_and_addressables): Do not cache
+       num_referenced_vars.
+       For register promoted symbols, mark their former
+       partition for renaming.
+       (maybe_create_global_var): Only create .GLOBAL_VAR if
+       there are no call-clobbered variables and a mix of pure
+       and non-pure functions were found.
+       (may_alias_p): Tidy comments.
+       (create_tag_raw): Remove unused variable new_type.
+       (dump_alias_info): call dump_memory_partitions.
+       (dump_points_to_info_for): Call dump_decl_set.
+       (may_be_aliased): Tidy comments and formatting.
+
+       * timevar.def (TV_MEMORY_PARTITIONING): Define.
+       * tree-vectorizer.c (vect_memsyms_to_rename): Rename from
+       vect_vnames_to_rename.  Set DECL_UIDs instead of SSA name
+       versions in it.
+       (slpeel_update_phi_nodes_for_guard1): Ignore memory PHIs.
+       * tree-vect-transform.c (vect_transform_loop): Call
+       mark_set_for_renaming with vect_memsyms_to_rename.
+       * tree-flow-inline.h (zero_imm_uses_p): New.
+       (memory_partition): New.
+       (set_memory_partition): New.
+       (factoring_name_p): New.
+       (symbol_mem_tag): New.  Update every function that used
+       to access the annotation directly.
+       (set_symbol_mem_tag): Likewise.
+
+       * tree-ssa-copy.c (may_propagate_copy): Allow copies
+       between a partition and a symbol as long as the symbol
+       belongs to the partition.
+       (merge_alias_info): Ignore merge requests when memory
+       partitions are involved.
+
+       * tree-ssa.c (verify_ssa_name): Check that default
+       definitions have empty defining statements.
+       (verify_use): Remove argument IS_VIRTUAL.
+       Don't call verify_ssa_name.
+       (verify_phi_args): Call verify_ssa_name.
+       (verify_flow_insensitive_alias_info): Handle MPTs.
+       (verify_flow_sensitive_alias_info): Likewise.
+       (verify_name_tags): Likewise.
+       (verify_call_clobbering): Likewise.
+       (verify_ssa): Check for VOPs only after aliasing
+       information is available.
+       Check virtuals and real operands separately.
+       Call verify_ssa_name on every operand.
+       (stmt_references_memory_p): Move to tree-ssa-operands.c.
+       (walk_use_def_chains_1): Guard against NULL PHI
+       arguments.
+
+       * tree-ssa-operands.c (stmt_references_memory_p): Move from
+       tree-ssa.c.
+       (get_mpt_for): New.
+       (dump_memory_partitions): New.
+       (debug_memory_partitions): New.
+
+       * tree-flow.h (struct var_ann_d): Add field mpt.
+       (struct stmt_ann_d): Add bitfield references_memory.
+       * Makefile.in (tree-ssa-structalias.o): Include
+       pointer-set.h
+       (tree-ssa-alias.o): Likewise.
+       * tree-ssa-structalias.c: (update_alias_info): Use
+       STORED_SYMS to determine which variables are being
+       written to by the store operation.
+       * tree-ssa-structalias.h (struct alias_info)
+       <total_alias_vops>: Remove.  Update all users.
+       <written_vars>: Change to a pointer set.  Update all
+       users.
+       <dereferenced_ptrs_store>: Likewise.
+       <dereferenced_ptrs_load>: Likewise.
+       (NUM_REFERENCES): Remove.  Update all users.
+       (NUM_REFERENCES_CLEAR): Remove.  Update all users.
+       (NUM_REFERENCES_INC): Remove.  Update all users.
+       (NUM_REFERENCES_SET): Remove.  Update all users.
+
+       * params.def (PARAM_GLOBAL_VAR_THRESHOLD): Remove.
+       Update all users.
+       (PARAM_MAX_ALIASED_VOPS): Set to 10.
+       * tree-ssanames.c (make_ssa_name): Initialize
+       SSA_NAME_IS_DEFAULT_DEF to 0.
+
+2006-12-11  Aldy Hernandez  <aldyh@redhat.com>
+
+       * tree-ssa-dse.c (aggregate_vardecl_d): New.
+       (dse_global_data): Add aggregate_vardecl field.
+       (dse_possible_dead_store_p): New.
+       Add prev_defvar variable.
+       Allow immediate uses and previous immediate uses to differ
+       if they are setting different parts of the whole.
+       (get_aggregate_vardecl): New.
+       (dse_record_partial_aggregate_store): New.
+       (dse_whole_aggregate_clobbered_p): New.
+       (dse_partial_kill_p): New.
+       (dse_optimize_stmt): Abstract code checking a possible dead store
+       into new function dse_possible_dead_store_p().
+       Call dse_maybe_record_aggregate_store().
+       When checking whether a STMT and its USE_STMT refer to the
+       same memory address, check also for partial kills that clobber
+       the whole.
+       Move some variable definitions to the block where they are used.
+       (aggregate_vardecl_hash): New.
+       (aggregate_vardecl_eq): New.
+       (aggregate_vardecl_free): New.
+       (aggregate_whole_store_p): New.
+       (tree_ssa_dse): Initialize and free aggregate_vardecl.
+       Mark which aggregate stores we care about.
+
+2006-12-11  Andrew Macleod  <amacleod@redhat.com>
+
+       * tree-ssa-operands.h (struct vuse_element_d): Declare.
+       (vuse_element_t): Declare.
+       (struct vuse_vec_d): Declare.
+       (vuse_vec_p): Declare.
+       (VUSE_VECT_NUM_ELEM): Define.
+       (VUSE_VECT_ELEMENT_NC): Define.
+       (VUSE_ELEMENT_PTR_NC): Define.
+       (VUSE_ELEMENT_VAR_NC): Define.
+       (VUSE_VECT_ELEMENT): Define.
+       (VUSE_ELEMENT_PTR): Define.
+       (VUSE_ELEMENT_VAR): Define.
+       (struct maydef_optype_d) <use_var>: Remove.
+       <use_ptr>: Remove.
+       <usev>: Add.
+       (struct vuse_optype_d) <kill_var>: Remove.
+       <use_ptr>: Remove.
+       <usev>: Add.
+       (struct mustdef_optype_d) <kill_var>: Remove.
+       <use_ptr>: Remove.
+       <usev>: Add.
+       (VUSE_OP_PTR): Add argument.  Use VUSE_ELEMENT_PTR.
+       (VUSE_OP): Add argument.  Use VUSE_ELEMENT_PTR.
+       (VUSE_NUM): Define.
+       (VUSE_VECT): Define.
+       (MAYDEF_OP_PTR): Add argument.  Use VUSE_OP_PTR.
+       (MAYDEF_OP): Add argument.  Use VUSE_OP.
+       (MAYDEF_NUM): Define.
+       (MAYDEF_VECT): Define.
+       (MUSTDEF_KILL_PTR): Use VUSE_OP_PTR.
+       (MUSTDEF_KILL): Use VUSE_OP.
+       (MUSTDEF_NUM): Define.
+       (MUSTDEF_VECT): Define.
+       (realloc_maydef): Declare.
+       (realloc_vuse): Declare.
+       (struct ssa_operand_iterator_d) <vuse_index>: Add.
+       <mayuse_index>: Add.
+       (LOADED_SYMS): Define.
+       (STORED_SYMS): Define.
+       (FOR_EACH_SSA_MUSTDEF_OPERAND): Call op_iter_next_mustdef.
+       * tree-into-ssa.c: Adapt for multi-operand V_MAY_DEF and VUSE
+       operators.
+       * tree-pretty-print.c: Likewise.
+       * tree-ssa-dse.c: Likewise.
+       * tree-flow-inline.h: Likewise.
+       (op_iter_next_mustdef): New.
+       * tree-ssa-operands.c: Likewise.
+       (ALLOC_OPTYPE): Remove.
+       Update all users.
+       (alloc_def): New.
+       (alloc_use): New.
+       (alloc_maydef): New.
+       (alloc_vuse): New.
+       (alloc_mustdef): New.
+       (realloc_maydef): New.
+       (realloc_vuse): New.
+
+2006-12-11  Aldy Hernandez  <aldyh@redhat.com>
+
+       * tree-ssa-operands.c: Remove build_v_must_defs.
+       (init_ssa_operands): Delete build_v_must_defs.
+       (finalize_ssa_v_must_def_ops): Remove.
+       (finalize_ssa_v_must_defs): Remove.
+       (finalize_ssa_stmt_operands): Do not call
+       finalize_ssa_v_must_defs.
+       (start_ssa_stmt_operands): Do not check build_v_must_defs.
+       (append_v_must_def): Delete.
+       (copy_virtual_operands): Do not copy V_MUST_DEFs.
+       (get_modify_expr_operands): Remove reference to V_MUST_DEF from
+       comment.  Remove opf_kill_def.
+       (build_ssa_operands): Remove references to v_must_defs.
+       (copy_virtual_operands): Same.
+       (copy_virtual_operands): Same.
+       (fini_ssa_operands): Same.
+       (free_ssa_operands): Same.
+       (add_mustdef_op): Remove.
+       Remove mustdef_optype_p.
+       (alloc_mustdef): Remove.
+       Remove references to V_MUST_DEFs in comment at top of file.
+       (get_expr_operands): Remove opf_kill_def.
+       (opf_kill_def): Remove.
+       (add_virtual_operand): Remove opf_kill_def.
+       (get_indirect_ref_operands): Same.
+       (get_tmr_operands): Same.
+
+       * tree-vectorizer.c (rename_variables_in_bb): Remove
+       SSA_OP_ALL_KILLS.
+
+       * tree-ssa-loop-manip.c (find_uses_to_rename_stmt): Remove
+       SSA_OP_ALL_KILLS.
+       (check_loop_closed_ssa_stmt): Same.
+
+       * tree-ssa.c (verify_def): Remove V_MUST_DEF from comment.
+       (verify_use): Same.
+       (verify_ssa): Remove V_MUST_DEFs traces.
+       (verify_ssa): Remove SSA_OP_ALL_KILLS.
+
+       * tree-into-ssa.c (mark_def_sites): Change SSA_OP_VMUSTDEF to
+       SSA_OP_VMAYDEF.
+       (rewrite_update_stmt): Remove SSA_OP_VIRTUAL_KILLS.
+       (rewrite_stmt): Remove SSA_OP_ALL_KILLS.
+
+       * tree-ssa-operands.h (struct stmt_operands_d): Remove V_MUST_DEF
+       references.
+       (MUSTDEF_OPS): Remove.
+       (SSA_OP_VMUSTDEF): Remove.
+       (FOR_EACH_SSA_MUSTDEF_OPERAND): Remove.
+       (struct mustdef_optype_d): Remove.
+       Remove mustdef_optype_p.
+       (struct stmt_operands_d): Remove mustdef_ops.
+       (ssa_operand_iterator_d): Remove mustdefs and mustkills.
+       (SSA_OP_VIRTUAL_DEFS): Remove SSA_OP_VMUSTDEF.
+       (MUSTDEF_RESULT_PTR): Remove.
+       (MUSTDEF_RESULT): Remove.
+       (MUSTDEF_KILL_PTR): Remove.
+       (MUSTDEF_KILL): Remove.
+       (MUSTDEF_NUM): Remove.
+       (MUSTDEF_VECT): Remove.
+       (SSA_OP_VIRTUAL_KILLS): Remove.
+       (SSA_OP_ALL_VIRTUALS): Remove SSA_OP_VIRTUAL_KILLS.
+       (SSA_OP_VMUSTKILL): Remove.
+       (SSA_OP_ALL_KILLS): Remove.
+       (SSA_OP_ALL_OPERANDS): Remove SSA_OP_ALL_KILLS.
+
+       * tree-flow-inline.h (op_iter_init_def): Remove
+       SSA_OP_VIRTUAL_KILLS.
+       (delink_stmt_imm_use): Remove SSA_OP_ALL_KILLS.
+
+       * tree-ssa-pre.c (compute_rvuse_and_antic_safe): Remove
+       SSA_OP_VIRTUAL_KILLS.
+
+       * tree-ssa-loop-im.c (determine_max_movement): Remove
+       SSA_OP_VIRTUAL_KILLS.
+       (gather_mem_refs_stmt): Same.
+       (gather_mem_refs_stmt): Same.
+
+       * tree-ssa-dce.c (mark_really_necessary_kill_operand_phis): Delete.
+       (perform_tree_ssa_dce): Remove call to
+       mark_really_necessary_kill_operand_phis.
+
+       * tree-flow-inline.h (op_iter_init): Remove setting of mustdefs
+       and mustkills.
+       (op_iter_next_use): Do not check mustkills.
+       (op_iter_next_def): Do not check mustdefs.
+       (op_iter_next_tree): Do not check mustkills or mustdefs.
+       (clear_and_done_ssa_iter): Do not set mustdefs or mustkills.
+       (op_iter_next_maymustdef): Do not check mustkills.
+       (op_iter_init_must_and_may_def): Remove SSA_OP_VMUSTKILL.
+       (op_iter_init_mustdef): Remove.
+
+       * tree-ssa-live.c (create_ssa_var_map): Change SSA_OP_VMUSTDEF to
+       SSA_OP_VMAYDEF.
+
+       * tree-ssa-dse.c (dse_optimize_stmt): Remove SSA_OP_VMUSTDEF.
+
+       * tree-ssa-ccp.c: Remove V_MUST_DEF traces from comments.
+       (visit_assignment): Same.
+
+       * tree-ssa-copy.c (copy_prop_visit_assignment): Same.
+
+       * tree-sra.c (mark_all_v_defs_1): Remove V_MUST_DEF from comment.
+
+       * tree-outof-ssa.c (check_replaceable): Remove SSA_OP_VMUSTDEF.
+
+       * tree-pretty-print.c (dump_vops): Remove printing of V_MUST_DEF.
+       Remove kill_p variable.
+
+       * tree-dfa.c (struct dfa_stats_d): Remove num_v_must_defs.
+       (dump_dfa_stats): Remove code related to V_MUST_DEFs.
+       (collect_dfa_stats_r): Do not set num_v_must_defs.
+       (mark_new_vars_to_rename): Remove v_must_defs_{before,after}
+       code.
+
+       * tree-into-ssa.c (mark_def_sites): Change SSA_OP_VMUSTKILL to
+       SSA_OP_VMAYUSE.
+
+       * tree-ssa-pre.c (compute_rvuse_and_antic_safe): Remove
+       SSA_OP_VMUSTDEF and SSA_OP_VMUSTKILL.
+
+       * tree-ssa-propagate.c (stmt_makes_single_store): Remove
+       SSA_OP_VMUSTDEF.
+
+2006-12-11  Zdenek Dvorak <dvorakz@suse.cz>
+
+       PR rtl-optimization/30113
+       * loop-iv.c (implies_p): Require the mode of the operands to be
+       scalar.
+
+2006-12-11  Diego Novillo  <dnovillo@redhat.com>
+
+       * tree-ssa-operands.h (create_ssa_artificial_load_stmt):
+       Rename from create_ssa_artficial_load_stmt.  Update all users.
+       * tree-into-ssa.c (register_new_def): Make static.
+       * tree.c (is_global_var): Handle SSA_NAMEs.
+       * tree.h (SSA_NAME_IS_DEFAULT_DEF): Define.  Update all users
+       that used to call gimple_default_def.
+       * tree-ssa-operands.c (push_stmt_changes): New.
+       (pop_stmt_changes): New.  Update every pass that modifies
+       statements to bracket modifications with
+       push_stmt_changes/pop_stmt_changes.
+       (discard_stmt_changes): New.
+       * tree-ssa-dom.c (stmts_to_rescan): Change to stack of
+       'tree *' instead of 'tree'.  Update all users.
+       * tree-flow-inline.h (zero_imm_uses_p): New.
+       (symbol_mem_tag): New.  Update every function that used
+       to access the annotation directly.
+       (set_symbol_mem_tag): Likewise.
+       * tree-dfa.c (dump_variable): Always show the escape mask.
+       (mark_symbols_for_renaming): Rename from
+       mark_new_vars_to_rename.  Update all users.
+       Only mark to rename naked symbols in real and virtual
+       operands.
+
+2006-12-11  Andreas Schwab  <schwab@suse.de>
+
+       * varasm.c (elf_record_gcc_switches): Cast second argument of
+       ASM_OUTPUT_SKIP to unsigned HOST_WIDE_INT.
+
+2006-12-11  Diego Novillo  <dnovillo@redhat.com>
+
+       * tree-scalar-evolution.c (scev_const_prop):
+       * tree-phinodes.c (remove_phi_node): Add argument
+       RELEASE_LHS_P.  If given, release the SSA name on the LHS of
+       the PHI node.
+       Update all users.
+       * tree-ssa-dce.c: Remove forward declarations for static
+       functions.  Re-arrange functions bodies as needed.
+       (find_obviously_necessary_stmts): Never mark PHI nodes as
+       obviously necessary.
+
+2006-12-11  Carlos O'Donell  <carlos@codesourcery.com>
+
+       * config/arm/elf.h (MAX_OFILE_ALIGNMENT): Remove definition.
+
+2006-12-11  Jan Hubicka  <jh@suse.cz>
+
+       * value-prof.c (tree_stringops_transform): New.
+       (tree_value_profile_transformations): Require count to be non-zero;
+       call stringop transform; reset stmt BSI after BB changed.
+       (tree_divmod_fixed_value, tree_mod_pow2): Don't emit unnecesary label.
+       (interesting_stringop_to_profile_p, tree_stringop_fixed_value): New.
+       (tree_stringops_values_to_profile): New.
+       (tree_values_to_profile): Call tree_stringops_values_to_profile.
+       * tree.h (build_string_literal): Tidy prototype.
+       (validate_arglist, builtin_memset_read_str, get_pointer_alignment):
+       Declare.
+       * builtins.c (validate_arglist, builtin_memset_read_str,
+       get_pointer_alignment): Export.
+
+2006-12-11  Uros Bizjak  <ubizjak@gmail.com>
+
+       PR target/30120
+       Revert:
+       2006-11-15  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/i386.opt: New target option -mx87regparm.
+
+       * config/i386/i386.h (struct ix86_args): Add x87_nregs, x87_regno,
+       float_in_x87: Add new variables. mmx_words, sse_words: Remove.
+       (X87_REGPARM_MAX): Define.
+
+       * config/i386/i386.c (override_options): Error out for
+       -mx87regparm but no 80387 support.
+       (ix86_attribute_table): Add x87regparm.
+       (ix86_handle_cconv_attribute): Update comments for x87regparm.
+       (ix86_comp_type_attributes): Check for mismatched x87regparm types.
+       (ix86_function_x87regparm): New function.
+       (ix86_function_arg_regno_p): Add X87_REGPARM_MAX 80387 floating
+       point registers.
+       (init_cumulative_args): Initialize x87_nregs and float_in_x87
+       variables.
+       (function_arg_advance): Process x87_nregs and x87_regno when
+       floating point argument is to be passed in 80387 register.
+       (function_arg): Pass XFmode arguments in 80387 registers for local
+       functions.  Pass SFmode and DFmode arguments to local functions
+       in 80387 registers when flag_unsafe_math_optimizations is set.
+
+       * reg-stack.c (convert_regs_entry): Disable NaN load for
+       stack registers that are used for argument passing.
+
+       * doc/extend.texi: Document x87regparm function attribute.
+       * doc/invoke.texi: Document -mx87regparm.
+
+2006-12-11  Jan Hubicka  <jh@suse.cz>
+
+       Move all varpool routines out of cgraph/cgraphunit to varpool.c
+       * cgraph.c: Update comments.
+       (cgraph_varpool_hash,
+       cgraph_varpool_nodes, cgraph_varpool_last_needed_node
+       cgraph_varpool_node_name, cgraph_varpool_node,
+       cgraph_varpol_mode_for_asm, cgraph_varpool_mark_needed_node,
+       cgraph_variable_initializer_availability): Move to
+       varpool.c and drop cgraph_ prefixes.
+       (cgraph_varpool_enqueue_needed_node, cgraph_varpool_reset_queue,
+       cgraph_varpool_first_unanalyzed_node, cgraph_varpool_finalize_decl):
+       move to varpool.c; drop cgraph_ prefix; make static.
+       (dump_cgraph_varpool_node): Move to varpool.c under name
+       dump_varpool_node.
+       (dump_varpool, hash_varpool_node, eq_varpool_node,
+       decide_is_variable_needed): Move to varpool.c
+       (decl_assembler_name_equal): Move to tree.c.
+       (availability_names): Rename to ...
+       (cgraph_availability_names): ... this one.
+       (dump_cgraph_node): Update.
+       * cgraph.h: Reorder declarations now in varpool.c
+       (cgraph_vailablity_names): Declare.
+       (struct cgraph_varpool_node): Rename to ...
+       (struct varpool_node): ... this one.
+       (cgraph_varpool_first_unanalyzed_node, cgraph_varpool_nodes_queue,
+       cgraph_varpool_first_unanalyzed_node, cgraph_varpool_node,
+       cgraph_varpool_node_for_asm, cgraph_varpool_mark_needed_node,
+       cgraph_varpool_finalize_decl, cgraph_varpool_enqueue_needed_node,
+       cgraph_varpool_reset_queue, cgraph_varpool_assemble_pending_decls,
+       cgraph_variable_initializer_availability): Rename to ...
+       (varpool_first_unanalyzed_node, varpool_nodes_queue,
+       varpool_first_unanalyzed_node, varpool_node,
+       varpool_node_for_asm, varpool_mark_needed_node,
+       varpool_finalize_decl, varpool_enqueue_needed_node,
+       varpool_assemble_pending_decls, variable_initializer_availability):
+       Rename to ...
+       * tree.c (decl_assembler_name_equal): Move here from cgraph.c.
+       * tree.h (decl_assembler_name_equal): Declare.
+       * omp-low.c (lower_omp_critical): Update.
+       * ipa-reference (analyze_variable, static_execute): Likewise.
+       * toplev.c (wrapup_global_declaration_2, compile_file): Update.
+       * cgraphunit.c: Update comments.
+       (cgraph_varpool_assembled_nodes_queue): Move to varpool.c under name
+       varpool_assembled_nodes_queue.
+       (cgraph_varpool_analyze_pending_decls): Move to varpool.c under name
+       varpool_analyze_pending_decls.
+       (cgraph_varpool_remove_unreferenced_decls): Move to varpool.c under name
+       varpool_remove_unreferenced_decls.
+       (record_reference): Update.
+       (cgraph_create_edges): Update.
+       (record_referneces_in_initializer): New function.
+       (cgraph_varpool_assemble_decl): Move to varpool.c under name
+       varpool_assemble_decl; make global.
+       (cgraph_varpool_assemble_pending_decls): Move to varpool.c under name
+       varpool_assemble_pending_decls.
+       (process_function_and_variable_attributes, cgraph_finalize_compilation_unit,
+       struct cgraph_order_sort, cgraph_output_in_order,
+       cgraph_function_and_variable_invisibility, cgraph_optimize,
+       cgraph_increase_alignment): Update.
+       * dwarf2out.c (decls_for_scope): Likewise.
+       * ipa-type-escape.c (analyze_variable, type_escape_execute): Likewise.
+       * except.c (output_ttype): Likewise.
+       * varasm.c (mark_decl_referenced): Likewise.
+       (find_decl_and_mark_referenced, assemble_alias): update.
+       * Makefile.in: Add varpool.c, gt-varpool.c and remove gt-cgraphunit.c
+       * passes.c (rest_of_decl_compilation): Update.
+
+2006-12-11  Ira Rosen  <irar@il.ibm.com>
+
+       * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Use 
+       GIMPLE_STMT_OPERAND.
+       * tree-vect-transform.c (vect_permute_store_chain): Likewise.
+       (vect_setup_realignment): Likewise.
+
+2006-12-11  Sa Liu  <saliu@de.ibm.com>
+           Ben Elliston  <bje@au.ibm.com>
+
+       * config/spu/spu-elf.h (STARTFILE_SPEC): Update.
+       (ENDFILE_SPEC): Likewise.
+       * config/spu/spu.opt (mstdmain): New option.
+       * config/spu/crti.asm: Remove.
+       * config/spu/crtn.asm: Likewise.
+       * config/spu/crt0.c: Likewise.
+       * config/spu/crtend.c: Likewise.
+       * config/spu/t-spu-elf (EXTRA_MULTILIB_PARTS): Remove crt0 files
+       listed above.
+       ($(T)crti.o, $(T)crtn.o, $(T)crt1.o, $(T)crtend1.o): Remove.
+       * doc/invoke.texi (SPU Options): Document -mstdmain.
+
+2006-12-10  Zdenek Dvorak <dvorakz@suse.cz>
+
+       * doc/loop.texi: Document number_of_latch_executions and
+       number_of_cond_exit_executions.
+       * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop,
+       chrec_is_positive, number_of_iterations_for_all_loops,
+       scev_const_prop): Use number_of_latch_executions.
+       (set_nb_iterations_in_loop): Do not increase the value of the
+       number of iterations.
+       (number_of_iterations_in_loop): Renamed to ...
+       (number_of_latch_executions): ... this.
+       (number_of_exit_cond_executions): New function.
+       * tree-scalar-evolution.h (number_of_iterations_in_loop): Declaration
+       removed.
+       (number_of_latch_executions, number_of_exit_cond_executions): Declare.
+       * tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables): Use
+       number_of_latch_executions.
+       * tree-data-ref.c (get_number_of_iters_for_loop): Use
+       number_of_exit_cond_executions.
+       * tree-vect-analyze.c (vect_get_loop_niters): Ditto.
+       * cfgloop.h (struct loop): Improve description of the nb_iterations
+       field.
+
+2006-12-10  Daniel Berlin  <dberlin@dberlin.org>
+
+       * tree-ssa-alias.c (compact_name_tags): Use sort_tags_by_id.
+       (tree_pointer_compare): Remove.
+
+2006-12-10  Zdenek Dvorak <dvorakz@suse.cz>
+
+       * tree-vrp.c (adjust_range_with_scev): Use get_chrec_loop.
+       * loop-unswitch.c (unswitch_loops): Use FOR_EACH_LOOP.
+       * tree-loop-linear.c (linear_transform_loops): Ditto.
+       * tree-ssa-loop-im.c (determine_lsm): Ditto.
+       * tree-ssa-loop-niter.c (estimate_numbers_of_iterations,
+       free_numbers_of_iterations_estimates): Ditto.
+       * tree_ssa_unswitch_loops (tree_ssa_unswitch_loops): Ditto.
+       * tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
+       * tree-ssa-loop-ivopts.c (tree_ssa_iv_optimize): Ditto.
+       * modulo-sched.c (sms_schedule): Ditto.
+       * tree-ssa-loop-ivcanon.c (canonicalize_induction_variables,
+       tree_unroll_loops_completely): Ditto.
+       * predict.c (predict_loops): Ditto.
+       * tree-if-conv.c (main_tree_if_conversion): Ditto.
+       * loop-unroll.c (unroll_and_peel_loops, peel_loops_completely,
+       decide_unrolling_and_peeling): Ditto.
+       * cfgloopmanip.c (unloop): Use delete_loop.
+       (place_new_loop): Access larray vector instead of parray.
+       (create_preheaders, force_single_succ_latches,
+       fix_loop_structure): Use FOR_EACH_LOOP and delete_loop..
+       * loop-doloop.c (doloop_optimize_loops): Ditto.
+       * loop-invariant.c (move_loop_invariants): Ditto.
+       * tree-cfg.c (replace_uses_by): Ditto.
+       * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Ditto.
+       * tree-chrec.h (CHREC_VAR, CHREC_LEFT, CHREC_RIGHT, CHREC_VARIABLE):
+       Moved to ...
+       * tree.h (CHREC_VAR, CHREC_LEFT, CHREC_RIGHT, CHREC_VARIABLE):
+       ... here.
+       * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop,
+       compute_overall_effect_of_inner_loop, chrec_is_positive): Use
+       get_loop and get_chrec_loop.
+       (number_of_iterations_for_all_loops): Use number_of_loops.
+       (scev_initialize, scev_reset, scev_const_prop): Use FOR_EACH_LOOP.
+       * tree-scalar-evolution.h (get_chrec_loop): New inline function.
+       * cfgloopanal.c (mark_irreducible_loops): Use number_of_loops,
+       and FOR_EACH_LOOP.
+       * tree-chrec.c (evolution_function_is_invariant_rec_p,
+       chrec_convert_1): Use get_loop and get_chrec_loop.
+       * loop-init.c (loop_optimizer_init): Use number_of_loops.
+       (loop_optimizer_init): Use FOR_EACH_LOOP.
+       * tree-vectorizer.c (vect_loops_num): Removed.
+       (vectorize_loops): Store number of loops locally.  Use
+       FOR_EACH_LOOP and get_loop.
+       * tree-vectorizer.h (vect_loops_num): Removed.
+       * tree-data-ref.c (get_number_of_iters_for_loop): Use get_loop.
+       (find_data_references_in_loop): Do not set parallel_p.
+       * tree-data-ref.h: Do not declare VEC(loop_p).
+       * cfgloop.c (flow_loops_dump, mark_single_exit_loops,
+       verify_loop_structure): Use FOR_EACH_LOOP.
+       (flow_loops_free): Use FOR_EACH_LOOP, free larray vector.
+       (initialize_loops_parallel_p): Removed.
+       (flow_loops_find): Push the loops into a vector.
+       (delete_loop): New function.
+       (cancel_loop): Use delete_loop.
+       * cfgloop.h: Declare VEC(loop_p).
+       (struct loop): Remove parallel_p field.
+       (struct loops): Replace num and parray field by larray vector.
+       Remove shared_headers field.
+       (delete_loop): Declare.
+       (get_loop, get_loops, number_of_loops, fel_next, fel_init,
+       FOR_EACH_LOOP): New.
+       * doc/loop.tex: Document new accessor functions.
+
+2006-12-10  Andrew MacLeod  <amacleod@redhat.com>
+
+       * common.opt (-ftree-lrs): Remove live range splitting option.
+       * makefile.in: Add tree-ssa-coalesce.o and reduce header dependancies.
+       * opts.c (decode_options): Remove flag_tree_live_range_split.
+       * tree-flow.h (struct var_ann_d): Rename fields from root_ to base_.
+       * tree-flow-inline.h (single_imm_use_p): New.  Check for single use.
+       * tree-outof-ssa.c: Remove header files which aren't needed.
+       (SSANORM_*): Remove flags.
+       (print_exprs_edge, coalesce_abnormal_edges, coalesce_phi_operands, 
+       coalesce_result_decls_and_copies, coalesce_asm_operands): Remove.
+       (coalesce_ssa_name): Move to tree-ssa-coalesce.c.
+       (assign_vars): Use Basevar instead of root_var structure.
+       (replace_def_variable): Dont do anything if def is replaceable.
+       (remove_ssa_form): Integrate functional changes.
+       (rewrite_out_of_ssa): Remove live-range_split option.
+       * tree-ssa-coalesce.c: New File for ssa-name coalescing.
+       (coalesce_cost): Calculate the cost of a coalesce.
+       (coalesce_cost_bb): Calculate the coalesce cost within a BB.
+       (coalesce_cost_edge): Calculate the coalesce cost on an edge.
+       (pop_cost_one_pair): Remove the best coalesce with cost 1 from the list.
+       (pop_best_coalesce): Remove the best coalesce from the list.
+       (coalesce_pair_map_hash): Calculate coalesce pair hash.
+       (coalesce_pair_map_eq): Compare 2 coalesce pairs for hash function.
+       (create_coalesce_list): Create a coalesce list object.
+       (delete_coalesce_list): Free a coalesce list object.
+       (find_coalesce_pair): Find matching pair in the coalesce list.
+       (add_cost_one_coalesce): Add a coalesce to the "cost one" list.
+       (add_coalesce): Add a coalesce to the coalesce list.
+       (compare_pairs): Comparision function to determine pair sorted order.
+       (num_coalesce_pairs): Number of coalesced pairs.
+       (first_coalesce_pair, end_coalesce_pair_p, next_coalesce_pair):
+       Coalesce pair iterator functions.
+       (sort_coalesce_list): Sort coalesce pairs in order of expense.
+       (dump_coalesce_list): Show coalesce list.
+       (ssa_conflicts_new): Create an SSA conflict graph.
+       (ssa_conflicts_delete): Delete an SSA conflict graph.
+       (ssa_conflicts_test_p): Test for conflicts.
+       (ssa_conflicts_add_one): Add a single conflict.
+       (ssa_conflicts_add): Add a conflict pair.
+       (ssa_conflicts_merge): Merge conflicts.
+       (struct live_track_d): Struct for tracking live partitions.
+       (new_live_track): Create new live_track object.
+       (delete_live_track): Delete a live_track object.
+       (live_track_remove_partition): Remove a partition from the live list.
+       (live_track_add_partition): Add a partition from the live list.
+       (live_track_clear_var): Take VAR from the live list.
+       (live_track_live_p): Is var live?
+       (live_track_process_use): Make var come alive.
+       (live_track_process_def): Make var go dead, add conflicts.
+       (live_track_init): Initialize to a live on exit set.
+       (live_track_clear_base_vars): Clear live partitions.
+       (build_ssa_conflict_graph): Build a conflict graph.
+       (print_exprs): Common debug output routine.
+       (abnormal_corrupt): Output info about a failed coalesce across an
+       abnormal edge.
+       (fail_abnormal_edge_coalesce): Output info about a failed MUST_COALESCE.
+       (create_outofssa_var_map): Create a var map and coalesce list.
+       (attempt_coalesce): Coalesce a pair.
+       (coalesce_partitions): Coalesce all pairs in a coalesce list.
+       (coalesce_ssa_name): Entry point.  Determine what ssa_names to coalesce.
+       * tree-ssa-live.c: Remove header files which aren't needed.
+       (var_map_base_init): New.  Initialize a basevar list.
+       (var_map_base_fini): New.  Finish a basevar list.
+       (init_var_map): Initialize new fields.
+       (delete_var_map): Free new fields.
+       (var_union): Use renamed fields.
+       (compact_var_map): Remove.
+       (partition_to_view_init): Use renamed fields, change order of an if.
+       (partition_view_fini): Use renamed fields.
+       (partition_view_normal): Create basevar list if requested.
+       (partition_view_bitmap): Create a view based on a bitmap of partitions.
+       (change_partition_var): Use renamed fields.
+       (create_ssa_var_map): Remove.
+       (tpa_init, tpa_remove_partition, tpa_delete, tpa_compact,
+       root_var_init): Remove.
+       (partition_pair_map_hash, partition_pair_map_eq, create_coalesce_list,
+       delete_coalesce_list, find_partition_pair, coalesce_cost, add_coalesce,
+       compare_pairs, num_coalesce_pairs, first_partition_pair,
+       end_partition_pair_p, next_partition_pair, sort_coalesce_list,
+       pop_best_coalesce, add_conflicts_if_valid, set_if_valid,
+       build_tree_conflict_graph, coalesce_tpa_members, dump_coalesce_list,
+       tpa_dump): Moved to tree-ssa-coalesce.c and/or renamed there.
+       (dump_var_map): Use renamed fields.
+       * tree-ssa-live.h (struct  _var_map): Modify fields.
+       (partition_to_var, version_to_var, var_to_partition): Use renamed 
+       fields.
+       (basevar_index): New.  Index of the base variable of a partition.
+       (num_basevars): New.  Number of unique base variables in partition map.
+       (register_ssa_partition): Use renamed fields.
+       (struct tree_partition_associator_d): Remove.
+       (tpa_num_trees, tpa_tree, tpa_first_partition, tpa_next_partition,
+       tpa_find_tree, tpa_decompact, root_var_init, root_var_num,
+       root_var, root_var_first_partition, root_var_next_partition,
+       root_var_dump, root_var_delete, root_var_remove_partition, 
+       root_var_find, root_var_compact, root_var_decompact): Remove.
+       (struct partition_pair, struct coalesce_list_d): Moved to 
+       tree-ssa-coalesce.c
+       * tree-ssa-ter.c: Remove header files which aren't needed.
+
+2006-12-10  Steven Bosscher  <steven@gcc.gnu.org>
+
+       * cse.c: (struct cse_basic_block_data): Remove LAST field.
+       (struct branch_path): Remove BRANCH and TAKEN fields. Add new
+       BB field.
+       (cse_visited_basic_blocks): New static bitmap.
+       (cse_end_of_basic_block, cse_basic_block): Remove.
+       (cse_find_path, cse_dump_path, cse_prescan_path,
+       cse_extended_basic_block): New static functions.
+       (cse_insn): Don't CSE over setjmp calls.  Use the CFG to find
+       basic block boundaries.  Don't record jump equivalences here.
+       Update the CFG after doing in-place replacement of the SET_SRC.
+       (cse_main): Rewrite.  Look for extended basic block headers
+       and call cse_extended_basic_block on them until all paths that
+       start at this header are exhausted.
+       (rest_of_handle_cse): Verify that the CFG is incrementally updated
+       and correct after cse_main.
+       Don't call delete_trivially_dead_insns, let cfgcleanup do that.
+       (rest_of_handle_cse2): Verify the CFG here, too, after cse_main.
+       (pass_cse): Add TODO_verify_flow.
+       (pass_cse2): Likewise.
+
+2006-12-10  Rask Ingemann Lambertsen  <rask@sygehus.dk>
+
+       * reload1.c (choose_reload_regs): Don't set byte offset when
+       resolving subregs of hard regs.
+
+2006-12-09  Zack Weinberg  <zackw@panix.com>
+
+       * c-opts.c (c_common_parse_file): Unconditionally give a warning,
+       suitable for the language, if set_yydebug is true.
+       * c-pragma.h: Define enum pragma_omp_clause here.  Don't define
+       YYDEBUG or declare yydebug.
+       * c-parser.c (yydebug, enum pragma_omp_clause): Delete.
+
+2006-12-09  Jan Hubicka  <jh@suse.cz>
+
+       * cgraph.c: Update copyright.
+       * cgraph.h: Likewise
+       (cgraph_update_pending_function): Remove prototype.
+       * cgraphunit.c: Update copyright; update overall comment.
+       (cgraph_assemble_pending_functions): Make local.
+
+2006-12-09  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
+
+       * haifa-sched.c (schedule_block): Remove excessive sanity check.
+
+2006-12-08  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
+
+       * config/spu/spu-protos.h (spu_split_immediate): Renamed from
+       spu_split_address.
+       (cpat_const_p, gen_cpat_const): Add.
+       * config/spu/spu.c (immediate_class): New enum.
+       (cpat_info, classify_immediate): New.
+       (print_operand): Use S, D, T instead of F, G, H.  Use
+       classify_immediate.  Handle cpat cases.
+       (spu_split_immediate):  Renamed from spu_split_address.  Split all
+       immediates that can be split.
+       (immediate_load_p): Use classify_immediate.
+       (spu_legitimate_constant_p): Accept everything except some cases of
+       CONST_VECTOR.
+       (spu_expand_move): Use spu_split_immedate.
+       (fsmbi_const_p): Use classify_immediate.
+       (cpat_const_p): New.
+       (gen_cpat_const: New.
+       * config/spu/constraints.md (j,k,l): New constraints for cpat
+       instructions.
+       * config/spu/spu.md (unnamed splitter): Change address splitter to
+       handle all immediates.
+       (_mov<mode>, _movdi, _movti): Handle i, j, k constraints for cpat
+       instructions.
+       (cpat, _cpat, splitter): Generate a TImode constant for cpat patterns
+       when possible.
+
+2006-12-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
+
+       PR target/30039
+       * pa.md (high:DI and lo_sum:DI): Handle 64-bit CONST_INTs in 32-bit
+       patterns.  Correct length of high:DI instruction sequence.
+
+2006-12-08  Mike Stump  <mrs@apple.com>
+
+       * config/rs6000/t-darwin (TARGET_LIBGCC2_CFLAGS): Build
+       libgcc with -mmacosx-version-min=10.4.
+       * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Default to
+       G4 for 10.5+ unless doing kernel builds.
+
+2006-12-08  Uros Bizjak  <ubizjak@gmail.com>
+
+       PR target/30120
+       * reg-stack.c (convert_regs_entry): Mark current argument passing
+       registers as live.
+
+       * config/i386/i386.h (X87_REGPARM_MAX): Set to 0 to disable passing
+       of float arguments in x87 registers.
+
+2006-12-08  John David Anglin  <dave.anglin.@nrc-cnrc.gc.ca>
+
+       * pa.h (LEGITIMATE_CONSTANT_P): Simplify.
+
+2006-12-08  Mark Shinwell  <shinwell@codesourcery.com>
+
+       * recog.c (mode_dependent_address_p): Identify pre-increment,
+       pre-decrement, post-increment and post-decrement addressing as always
+       being mode-dependent.
+       * config/m32c/m32c.c (m32c_mode_dependent_address): Delete.
+       * config/m32c/m32c.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op.
+       * config/m32c/m32c-protos.h (m32c_mode_dependent_address): Delete.
+       * config/m32r/m32r.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete PRE_DEC,
+       PRE_INC and POST_INC checks.
+       * config/i386/i386.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op.
+       * config/sh/sh.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op.
+       * config/pdp11/pdp11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op.
+       * config/avr/avr.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op.
+       * config/c4x/c4x.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete PRE_DEC,
+       PRE_INC, POST_DEC and POST_INC cases.
+       * config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p):
+       Delete POST_INC and PRE_DEC cases.
+       * config/m68hc11/m68hc11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to
+       no-op.
+       * config/cris/cris.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op.
+       * config/mn10300/mn10300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to
+       no-op.
+       * config/ia64/ia64.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op.
+       * config/m68k/m68k.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op.
+       * config/rs6000/rs6000.c (rs6000_mode_dependent_address): Delete
+       PRE_INC and PRE_DEC cases.
+       * config/arc/arc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op.
+       * config/mcore/mcore.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op.
+       * config/arm/arm.h (ARM_GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
+       (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op.
+       * config/pa/pa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op.
+       * config/vax/vax.c (vax_mode_dependent_address_p): Delete
+       auto-increment cases.
+       * config/h8300/h8300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete
+       auto-increment cases.
+       * config/bfin/bfin.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op.
+
+2006-12-08  Andrew MacLeod  <amacleod@redhat.com>
+
+       * Makefile.in: Add new file tree-ssa-ter.c.
+       * tree-outof-ssa.c (struct temp_expr_table_d, new_temp_expr_table,
+       free_temp_expr_table, add_value_to_version_list,
+       add_value_to_partition_list, remove_value_from_partition_list,
+       add_dependence, check_replaceable, finish_expr, mark_replaceable,
+       kill_expr, kill_virtual_exprs, find_replaceable_in_bb,
+       find_replaceable_exprs, dump_replaceable_exprs): Move to tree-ssa-ter.c.
+       * tree-ssa-live.h (find_replaceable_exprs, dump_replaceable_exprs): Add
+       prototypes.
+       * tree-ssa-ter.c: New file using code moved from tree-outof-ssa.c.
+       (struct value_expr_d): Remove.
+       (struct temp_expr_table_d): Rename fields, add explicit vector of
+       replaceable expressions instead of sharing.  Change value_expr_p's to
+       bitmap.  Delete free_list.
+       (new_temp_expr_table): Rename fields, count number of ssa_names in
+       each partition.
+       (free_temp_expr_table): Rename field, free new fields.
+       (new_value_expr, free_value_expr, find_value_in_list, add_value_to_list,
+       add_info_to_list, remove_value_from_list): Delete.
+       (version_to_be_replaced_p): New.  Is an ssa-name replaceable?
+       (make_dependent_on_partition): New.  Set bit in version list, allocating
+       a bitmap if need be.
+       (add_to_partition_kill_list): New.  Set bit in the partition list,
+       allocating a bitmap if need be.
+       (remove_from_partition_kill_list): New.  Remove a bit from the
+       partition list, free the bitmap if it is empty.
+       (add_dependence): Use renamed field, cleanup.  Don't add a dependence
+       on partitions with only one member.
+       (is_replaceable_p): New.  Split out replaceability check from
+       check_replaceable.
+       (process_replaceable): New.  Code split from check_replaceable.
+       (check_replaceable): Removed.
+       (finished_with_expr): Renamed from finish_expr.
+       (kill_expr): Use renamed fields and less parameters.
+       (kill_virtual_exprs): Less parameters.
+       (mark_replaceable): Use renamed fields.
+       (find_replaceable_in_bb): Use renamed fields, cleanup.
+       (find_replaceable_exprs): Use renamed routines, cleanup.
+       (dump_replaceable_exprs): Don't go past end of ssa_names list.
+       (debug_ter): New.  Debug routine to dump state.
+
+2006-12-08  Bernd Schmidt  <bernd.schmidt@analog.com>
+
+       * config/bfin/bfin.c (effective_address_32bit_p): Return true for
+       anything involving the GOT.
+       (bfin_adjust_cost): Don't take the REGNO of a MEM.
+       (trapping_loads_p): Look inside the pattern of an insn to find the
+       SET.
+       * config/bfin/bfin.md (attr "type"): Add movcc.
+       (insn_reservation "alu"): Likewise.
+       (movsicc_insn1, movsicc_insn2): Change type to movcc.
+
+2006-12-07  Andrew Pinski  <andrew_pinski@playstation.sony.com>
+
+       * config/spu/spu-c.c (spu_build_overload_builtin): Delete.
+       (spu_resolve_overloaded_builtin): Check for non scalar instead
+       of vector type and check the function call argument type also for
+       non scalar.
+       Call build_function_call instead of spu_build_overload_builtin.
+
+2006-12-07  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
+
+       * config/spu/spu.c (array_to_constant): Correct the order of arguments
+       to the calls of hwint_to_const_double.
+
+2006-12-07  Nick Clifton  <nickc@redhat.com>
+
+       * config/elfos.h (TARGET_ASM_RECORD_GCC_SWITCHES): Set to
+       elf_record_gcc_switches.
+
+2006-12-07  Andrew Macleod  <amacleod@redhat.com>
+
+       * expr.c (string_constant): Account for non-zero lower bound arrays.
+
+2006-12-07  Richard Guenther  <rguenther@suse.de>
+
+       * builtins.c (expand_builtin_pow): Adjust predicates for
+       pow to cbrt expansion to unsafe math and !HONOR_NANS for
+       negative base.
+
+2006-12-07  Jan Hubicka  <jh@suse.cz>
+
+       * i386.c (nocona_cost, pentium4_cost): Update preffered memcpy/memset
+       codegen.
+
+2006-12-07  Jan Hubicka  <jh@suse.cz>
+
+       * tree-vrp.c (compare_values): Short circuit INTEGER_CST;
+       use fold_constant_to_binary; tolerate wrong type constants.
+       (value_intersect_p): Do just two tests.
+
 2006-12-07  Bernd Schmidt  <bernd.schmidt@analog.com>
 
        * config/bfin/bfin.c (print_operand): New modifier 'N' for constants.
        (struct gcc_target): Add record_gcc_switches and
        record_gcc_switches_section fields.
        * target-def.h (TARGET_ASM_RECORD_GCC_SWITCHES): Provide a
-        default definition.
+       default definition.
        (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Provide a default
        definition.
        * toplev.c (print_single_switch): Simplify by providing a
        (print_to_asm_out_file): New function.
        (print_to_stderr): New function.
        (init_asm_output): If flag_record_gcc_switches is set then if
-        the target supports recording the switches then emit them into
-        the assembler output file, otherwise tell the user that the
-        switch is not supported.
+       the target supports recording the switches then emit them into
+       the assembler output file, otherwise tell the user that the
+       switch is not supported.
        * varasm.c (eld_record_gcc_switches): New function.  Example
        handler for the record_gcc_switches target hook.
        * doc/tm.texi (TARGET_ASM_RECORD_GCC_SWITCHES): Document the new
        (gfc_add_modify_stmt): New macro.
        * fortran/f95-lang.c (lang_tree_node): Handle gimple statements.
 
-       2006-11-02  Aldy Hernandez  <aldyh@redhat.com>
-
-       * ada/ada-tree.h (lang_tree_node): Handle gimple tuples.
-       * ada/trans.c (gnat_gimplify_expr): Replace MODIFY_EXPR with
-       GIMPLE_MODIFY_STMT.
-
        2006-11-01  Aldy Hernandez  <aldyh@redhat.com>
 
        * Merge from mainline at revision 118200.
 
 2006-04-20  Jakub Jelinek  <jakub@redhat.com>
 
+       PR C/27558
        * c-pretty-print.c (pp_c_direct_abstract_declarator): Print
        TYPE_MAX_VALUE (TYPE_DOMAIN (t)) + 1 for ARRAY_TYPE rather
        than plain TYPE_MAX_VALUE (TYPE_DOMAIN (t)).