OSDN Git Service

PR bootstrap/21215
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index c2ac0f4..7027907 100644 (file)
@@ -1,3 +1,700 @@
+2005-04-25  Joseph S. Myers  <joseph@codesourcery.com>
+
+       PR bootstrap/21215
+       * doc/install.texi: Document correct assembler and linker to use
+       on i?86-*-solaris2.10.
+
+2005-04-25  Steven Bosscher  <stevenb@suse.de>
+
+       Fix PR tree-optimization/21173
+
+       * tree-ssa-pre.c (create_expression_by_pieces): Simplify code.
+       Unshare expression we pass to force_gimple_operand.
+
+2005-04-25  J"orn Rennecke <joern.rennecke@st.com>
+           Stephen Clarke <stevec@superh.com>
+           Roger Sayle <roger@eyesopen.com>
+
+       PR rtl-optimization/20413
+       * cfgrtl.c (redirect_edge_and_branch): Use Pmode instead of
+       VOIDmode for LABEL_REF.
+       * final.c (shorten_branches): Likewise.
+       * jump.c (mark_all_labels, redirect_exp_1): Likewise.
+       * loop.c (reg_dead_after_loop): Likewise.
+       * varasm.c (decode_addr_const): Likewise.
+       * doc/rtl.texi: Document mode requirement for LABEL_REF.
+
+2005-04-25  Ralf Corsepius  <ralf.corsepius@rtems.org>
+
+       * config.gcc (avr-*-*): Remove redundant "case".
+
+2005-04-25  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * tree-vect-analyze.c (vect_mark_relevant): Take
+       VEC(tree,heap) instead of varray_type as an argument.
+       (vect_mark_stmts_to_be_vectorized): Change the type of
+       worklist to VEC(tree,heap).  Adjust uses of worklist.
+
+2005-04-24  Devang Patel  <dpatel@apple.com>
+
+       *  config/rs6000/darwin.h (ASM_OUTPUT_MAX_SKIP_ALIGN): New.
+       
+2005-04-24  Ian Lance Taylor  <ian@airs.com>
+
+       * c-semantics.c (build_stmt): Remove test of specific tree codes
+       for TREE_SIDE_EFFECTS handling.
+
+2005-04-24  Per Bothner  <per@bothner.com>
+
+       * c-opts.c (finish_options):  Make the line-number of the <built-in>
+       location 0, as assumed elsewhere, rather than 1.
+
+2005-04-24  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * tree-ssa-uncprop.c (equiv_stack): Change the type o
+       VEC(tree,heap).
+       (tree_ssa_uncprop, uncprop_finalize_block,
+       uncprop_initialize_block): Update uses of equiv_stack.
+
+2005-04-24  Richard Henderson  <rth@redhat.com>
+
+       PR rtl-opt/21163
+       * simplify-rtx.c (simplify_binary_operation) <IOR>: Check
+       for SCALAR_INT_MODE_P instead of not MODE_CC before returning
+       constm1_rtx.
+       <AND, LSHIFTRT, UMIN>: Use CONST0_RTX.
+       <UDIV, UMOD>: Use CONST0_RTX and CONST1_RTX.
+       <DIV, MOD>: Likewise.
+
+2005-04-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * collect2.c (main): Unlock the stdio streams.
+       * gcc.c (main): Likewise.
+       * gcov-dump.c (main): Likewise.
+       * gcov.c (main): Likewise.
+       * gen-protos.c (main): Likewise.
+       * gensupport.c (init_md_reader_args_cb): Likewise.
+       * protoize.c (main): Likewise.
+       * toplev.c (general_init): Likewise.
+
+2005-04-24  Jakub Jelinek  <jakub@redhat.com>
+
+       PR middle-end/20991
+       * cgraph.h (cgraph_local_info): Add vtable_method field.
+       * varasm.c (mark_decl_referenced): If cgraph_global_info_ready
+       and node is vtable_method, finalized and not reachable, don't do
+       anything.
+
+2005-04-24  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * tree-ssa-copy.c (copy_prop_visit_cond_stmt): Use
+       COMPARISON_CLASS_P.
+       * tree-ssa-pre.c (create_value_expr_from): Use
+       CONSTANT_CLASS_P and REFERENCE_CLASS_P.
+       * tree-ssa-propagate.c (stmt_makes_single_load,
+       stmt_makes_single_store): Use REFERENCE_CLASS_P.
+       * tree-vect-transform.c (vect_is_simple_cond): Use
+       COMPARISON_CLASS_P.
+       * tree-vrp.c (extract_range_from_assert,
+       build_assert_expr_for, fp_predicate, has_assert_expr): Use
+       COMPARISON_CLASS_P.
+
+       * tree-ssa-live.c (build_tree_conflict_graph): Change the type
+       of tpa_to_clear to VEC(int,heap).  Update uses of
+       tpa_to_clear.  Free tpa_to_clear at the end.
+
+2005-04-24  Andrew Pinski  <pinskia@physics.uc.edu>
+
+       * tree.h (TREE_THIS_VOLATILE): Document the effect on a
+       function decl.
+
+2005-04-24  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * config/rs6000/rs6000.c (rs6000_override_options): Use gcc_assert
+       and gcc_unreachable as appropriate.
+       (num_insns_constant, output_vec_const_move,
+       build_mask64_2_operands, rs6000_output_dwarf_dtprel,
+       rs6000_emit_set_const, rs6000_emit_move,
+       spe_build_register_parallel, function_arg,
+       rs6000_move_block_from_reg, altivec_expand_predicate_builtin,
+       spe_expand_predicate_builtin, spe_expand_evsel_builtin,
+       rs6000_expand_builtin, spe_init_builtins, altivec_init_builtins,
+       rs6000_common_init_builtins, expand_block_clear,
+       expand_block_move, validate_condition_mode, ccr_bit, extract_MB,
+       extract_ME, rs6000_get_some_local_dynamic_name,
+       rs6000_output_function_entry, print_operand,
+       print_operand_address, rs6000_generate_compare, rs6000_emit_sCOND,
+       output_cbranch, output_e500_flip_gt_bit,
+       rs6000_emit_vector_compare, rs6000_emit_vector_compare,
+       rs6000_emit_cmove, rs6000_emit_minmax, rs6000_split_multireg_move,
+       compute_save_world_info, rs6000_stack_info,
+       rs6000_emit_load_toc_table, rs6000_frame_related,
+       spe_synthesize_frame_save, rs6000_emit_epilogue,
+       rs6000_output_function_epilogue, rs6000_hash_constant, output_toc,
+       output_function_profiler, rs6000_trampoline_size,
+       rs6000_initialize_trampoline, find_addr_reg,
+       rs6000_machopic_legitimize_pic_address,
+       rs6000_initial_elimination_offset,
+       rs6000_dbx_register_number): Likewise.
+       * config/rs6000/rs6000.md (*fix_truncdfsi2_internal,
+       *movdf_hardfloat32, *movdf_softfloat32, *fix_trunctfsi2_internal,
+       *movti_power, *movti_string, call, call_value, sibcall,
+       sibcall_value): Likewise.
+       * config/rs6000/spe.md (*movdf_e500_double,
+       *movv2si_internal): Likewise.
+       * config/rs6000/rs6000.h (PREFERRED_RELOAD_CLASS): Remove 'abort'
+       from comment.
+
+2005-04-24  Richard Henderson  <rth@redhat.com>
+
+       PR target/21101
+       * config/i386/i386.h (CANNOT_CHANGE_MODE_CLASS): Move guts to ...
+       * config/i386/i386.c (ix86_cannot_change_mode_class): ... here.
+       Deny modes smaller than 4 bytes.
+       * config/i386/i386-protos.h: Update.
+
+2005-04-24  Ralf Corsepius  <ralf.corsepius@rtems.org>
+
+       * config.gcc (h8300-*-rtems*): Add h8300-*-rtemscoff*.
+       Switch h8300-*-rtems* to ELF.
+
+2005-04-24  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * vec.h (VEC_safe_grow): Replace grow with safe_grow.
+
+2005-04-23  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * ipa-inline.c, tree-ssa-operands.h: Fix comment typos.
+
+2005-04-23  Richard Guenther  <rguenth@gcc.gnu.org>
+
+       PR middle-end/21082
+       * fold-const.c: Fold &a[i]-&a[j] to i-j.
+
+2005-04-23  Zdenek Dvorak  <dvorakz@suse.cz>
+
+       * tree-ssa-loop-niter.c (tree_simplify_using_condition): Expand simple
+       definitions of ssa names in condition.  Split recusive part to ...
+       (tree_simplify_using_condition_1): New function.
+       (expand_simple_operations): New function.
+
+2005-04-23  Zdenek Dvorak  <dvorakz@suse.cz>
+
+       * tree-ssa-loop-ivopts.c (struct cost_pair): Add value field.
+       (find_interesting_uses_cond): Do not use integer_zerop and
+       integer_nonzerop to check for integer constants.
+       (set_use_iv_cost): Record the value field.
+       (determine_use_iv_cost_generic, determine_use_iv_cost_address,
+       determine_use_iv_cost_outer): Set the value field of the cost pair.
+       (may_eliminate_iv): Do not return the comparison code.
+       (iv_elimination_compare): New function.
+       (determine_use_iv_cost_condition): Set the value field.  Record
+       noneliminable invariants correctly.
+       (rewrite_use_compare, rewrite_use_outer): Use the value field.
+
+2005-04-23  DJ Delorie  <dj@redhat.com>
+
+       * diagnostic.c (warning): Accept parameter to classify warning option.
+       (warning0): New, for when a pointer to an error() like function is needed.
+       * errors.c (warning): Likewise.
+       * errors.h (warning, warning0): Adjust prototypes.
+       * toplev.h (warning, warning0): Likewise.
+
+       * attribs.c, builtins.c, c-common.c, c-decl.c, c-format.c,
+       c-gimplify.c, c-lex.c, c-objc-common.c, c-opts.c, c-parser.c,
+       c-pragma.c, c-typeck.c, calls.c, cgraph.c, coverage.c, emit-rtl.c,
+       fold-const.c, fortran/trans-decl.c, function.c, gcse.c,
+       genautomata.c, haifa-sched.c, opts.c, passes.c, regclass.c,
+       reload1.c, stmt.c, stor-layout.c, toplev.c, tree-cfg.c,
+       tree-dump.c, tree-inline.c, tree-mudflap.c, tree-optimize.c,
+       tree-ssa.c, tree.c, varasm.c: Adjust warning() callers.
+
+       * config/alpha/alpha.c, config/arc/arc.c, config/arm/arm.c,
+       config/avr/avr.c, config/bfin/bfin.c, config/c4x/c4x-c.c,
+       config/c4x/c4x.c, config/cris/cris.c, config/darwin-c.c,
+       config/darwin.c, config/darwin.h, config/h8300/h8300.c,
+       config/i386/cygming.h, config/i386/djgpp.h, config/i386/i386.c,
+       config/i386/winnt.c, config/ia64/ia64-c.c, config/ia64/ia64.c,
+       config/ip2k/ip2k.c, config/m32r/m32r.c, config/m68hc11/m68hc11.c,
+       config/m68k/m68k.c, config/mcore/mcore.c, config/mips/mips.c,
+       config/mmix/mmix.c, config/ns32k/ns32k.c, config/pa/pa-hpux11.h,
+       config/pa/pa.c, config/rs6000/aix43.h, config/rs6000/aix51.h,
+       config/rs6000/aix52.h, config/rs6000/darwin.h,
+       config/rs6000/rs6000-c.c, config/rs6000/rs6000.c,
+       config/s390/s390.c, config/sh/sh.c, config/sh/sh.h,
+       config/sh/symbian.c, config/sol2-c.c, config/sol2.c,
+       config/stormy16/stormy16.c, config/v850/v850-c.c,
+       config/v850/v850.c, config/xtensa/xtensa.c: Adjust warning()
+       callers.
+       
+2005-04-23  Richard Henderson  <rth@redhat.com>
+
+       PR rtl-opt/21102
+       * simplify-rtx.c (simplify_binary_operation): Fix mode check before
+       performing some integral scalar simplifications.
+
+2005-04-23  Richard Henderson  <rth@redhat.com>
+
+       PR target/21099
+       * config/i386/i386.c (ix86_split_to_parts): Use proper mode when
+       simplifying CONST_VECTOR.
+
+2005-04-23  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * tree-ssa-live.c (live_worklist): Take a stack allocated on
+       heap as an argument.  Update uses of stack.
+       (calculate_live_on_entry): Allocate stack on heap.
+
+       * tree-ssa-live.c (build_tree_conflict_graph): Allocate
+       partition_link and tpa_nodes on heap.
+
+       * tree-ssa-dce.c (worklist): Change to VEC(tree,heap).
+       (mark_stmt_necessary, propagate_necessity,
+       mark_really_necessary_kill_operand_phis): Update uses of
+       worklist.
+       (tree_dce_init): Allocate worklist using VEC_alloc.
+       (tree_dce_done): Free worklist using VEC_free.
+
+2005-04-23  Mike Stump  <mrs@apple.com>
+
+       * config/darwin.c (machopic_indirection_name): Don't use
+       quotes needlessly.
+       (darwin_emit_unwind_label): Use user_label_prefix instead of
+       "_".
+
+2005-04-23  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * final.c, ipa-inline.c, varasm.c: Fix comment typos.
+
+2005-04-23  Hans-Peter Nilsson  <hp@axis.com>
+
+       * config.gcc <cris-*>: Specify .opt files.
+       * config/cris/cris.opt, config/cris/elf.opt, config/cris/aout.opt,
+       config/cris/linux.opt: New files.
+       * config/cris/aout.h (CRIS_SUBTARGET_SWITCHES)
+       (CRIS_SUBTARGET_LONG_OPTIONS): Don't define.
+       (TARGET_ELF): Override to 0.
+       (CRIS_SUBTARGET_HANDLE_OPTION): Override to handle -melinux and
+       -melinux-stacksize=N.
+       * config/cris/cris.c: (cris_handle_option): New function.
+       (TARGET_DEFAULT_TARGET_FLAGS): Override.
+       (TARGET_HANDLE_OPTION): Override to cris_handle_option.
+       (cris_override_options): Use MASK_*, not TARGET_MASK_*.
+       * config/cris/cris.h (TARGET_MASK_SVINTO, TARGET_SVINTO,
+       (TARGET_MASK_CCINIT, TARGET_CCINIT, TARGET_MASK_PDEBUG)
+       (TARGET_PDEBUG, TARGET_MASK_SIDE_EFFECT_PREFIXES)
+       (TARGET_SIDE_EFFECT_PREFIXES, TARGET_MASK_EXPAND_MUL)
+       (TARGET_EXPAND_MUL, TARGET_MASK_STACK_ALIGN, TARGET_STACK_ALIGN)
+       (TARGET_MASK_CONST_ALIGN, TARGET_CONST_ALIGN)
+       (TARGET_MASK_DATA_ALIGN, TARGET_DATA_ALIGN)
+       (TARGET_MASK_PROLOGUE_EPILOGUE, TARGET_PROLOGUE_EPILOGUE)
+       (TARGET_MASK_ETRAX4_ADD, TARGET_ETRAX4_ADD)
+       (TARGET_MASK_ALIGN_BY_32, TARGET_ALIGN_BY_32, TARGET_MASK_ELF)
+       (TARGET_ELF, TARGET_MASK_LINUX, TARGET_LINUX)
+       (TARGET_MASK_AVOID_GOTPLT, TARGET_AVOID_GOTPLT)
+       (TARGET_MASK_MUL_BUG, TARGET_MUL_BUG, TARGET_SWITCHES)
+       (CRIS_SUBTARGET_SWITCHES, TARGET_OPTIONS)
+       (CRIS_SUBTARGET_LONG_OPTIONS): Don't define.
+       (TARGET_LINUX): Define 0.
+       (TARGET_DEFAULT): Use MASK_*, not TARGET_MASK_*.
+       (CRIS_SUBTARGET_DEFAULT): Define to 0, not TARGET_MASK_ELF.
+       (CRIS_SUBTARGET_DEFAULT): New empty default macro.
+       * config/cris/linux.h (CRIS_SUBTARGET_SWITCHES): Don't define.
+       (TARGET_LINUX): Override to 1.
+       (CRIS_SUBTARGET_DEFAULT): Use MASK_*, not TARGET_MASK_*.
+
+2005-04-23  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * haifa-sched.c (schedule_block): Fix thinko in previous
+       assertification patch.
+
+2005-04-23  Richard Sandiford  <rsandifo@redhat.com>
+
+       * config.gcc (hppa[12]*-*-hpux10*): Add pa/pa-hpux.opt to
+       $extra_options.  Also add pa/pa-hpux1010.opt for hpux10.[1-9]*.
+       (hppa*64*-*-hpux11*): Add pa/pa-hpux1010.h to $tm_file.  Add
+       pa/pa-hpux.opt, pa/pa-hpux1010.opt and pa/pa64-hpux.opt to
+       $extra_options.  Also add pa/pa-hpux1111.opt for hpux11.[1-9]*.
+       (hppa[12]*-*-hpux11*): Add pa/pa-hpux1010.h to $tm_file.  Add
+       pa/pa-hpux.opt to $extra_options.  Also add pa/pa-hpux1111.opt
+       for hpux11.[1-9]*.
+       * config/pa/pa.h (architecture_type, rtx_def, pa_arch_string, pa_arch)
+       (pa_fixed_range_string, pa_cpu_string, pa_unix_string, target_flags)
+       (MASK_PA_11, MASK_DISABLE_FPREGS, TARGET_DISABLE_FPREGS)
+       (MASK_NO_SPACE_REGS, TARGET_NO_SPACE_REGS, MASK_JUMP_IN_DELAY)
+       (TARGET_JUMP_IN_DELAY, MASK_DISABLE_INDEXING, TARGET_DISABLE_INDEXING)
+       (MASK_PORTABLE_RUNTIME, TARGET_PORTABLE_RUNTIME, MASK_GAS, TARGET_GAS)
+       (MASK_SOFT_FLOAT, TARGET_SOFT_FLOAT, MASK_LONG_LOAD_STORE)
+       (TARGET_LONG_LOAD_STORE, MASK_FAST_INDIRECT_CALLS)
+       (TARGET_FAST_INDIRECT_CALLS, MASK_BIG_SWITCH, TARGET_BIG_SWITCH)
+       (MASK_PA_20, MASK_SIO, TARGET_SIO, MASK_GNU_LD, TARGET_GNU_LD)
+       (MASK_LONG_CALLS, TARGET_LONG_CALLS, TARGET_PA_11, TARGET_PA_20)
+       (TARGET_SWITCHES, SUBTARGET_SWITCHES, TARGET_OPTIONS)
+       (SUBTARGET_OPTIONS): Delete.
+       (TARGET_PA_10): Redefine in terms of TARGET_PA_11 and TARGET_PA_20.
+       (TARGET_SCHED_DEFAULT): Define to a PROCESSOR_* enum (PROCESSOR_8000)
+       instead of a string.
+       * config/pa/pa.c (pa_arch, pa_arch_string, pa_fixed_range_string)
+       (pa_cpu_string, pa_unix_string): Delete.
+       (pa_cpu): Initialize to TARGET_SCHED_DEFAULT.
+       (flag_pa_unix): Initialize based on TARGET_HPUX_11_11 and
+       TARGET_HPUX_10_10.
+       (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
+       (pa_handle_option): New function.
+       (override_options): Remove handling of -march=, -mfixed-range=,
+       -mschedule= and -munix=.
+       * config/pa/pa-hpux.h (SUBTARGET_SWITCHES): Delete.
+       * config/pa/pa-hpux1010.h (SUBTARGET_OPTIONS): Delete.
+       * config/pa/pa-hpux10.h (SUBTARGET_OPTIONS): Delete.
+       * config/pa/pa-hpux1111.h (SUBTARGET_OPTIONS): Delete.
+       * config/pa/pa-hpux11.h (SUBTARGET_OPTIONS): Delete.
+       * config/pa/pa64-hpux.h (SUBTARGET_SWITCHES): Delete.
+       * config/pa/pa64-start.h (TARGET_PA_11, TARGET_PA_20): #undef before
+       redefining.
+       * config/pa/pa.opt: New file.
+       * config/pa/pa-hpux.opt: New file.
+       * config/pa/pa-hpux1010.opt: New file.
+       * config/pa/pa-hpux1111.opt: New file.
+       * config/pa/pa64-hpux.opt: New file.
+
+2005-04-22  David S. Miller  <davem@davemloft.net>
+
+       * rtl.h (CONST_DOUBLE): Fix comment, a CONST_DOUBLE holds an
+       integer when it's mode is VOIDmode not DImode.
+
+2005-04-22  Geoffrey Keating  <geoffk@apple.com>
+
+       * config/rs6000/rs6000.md (sync_add<mode>_internal,
+       sync_addshort_internal, sync_sub<mode>_internal, sync_andsi_internal,
+       sync_anddi_internal, sync_boolsi_internal, sync_booldi_internal,
+       sync_boolc<mode>_internal, sync_boolc<mode>_internal2,
+       sync_boolcc<mode>_internal, sync_lock_test_and_set<mode>): Use
+       "bne- $-xxx" rather than local labels.
+       (sync_lock_release<mode>): Add second operand.
+       (lwsync): Use .long rather than a more meaningful opcode.
+       * doc/md.texi (Standard Names): Add description of second
+       parameter to sync_lock_test_and_set.
+
+2005-04-23  Kazu Hirata  <kazu@cs.umass.edu>
+
+       PR tree-optimization/21088
+       * fold-const.c (fold_unary, fold_binary, fold_ternary):
+       Export.
+       * tree-vrp.c (compare_values): Use fold_binary to compare
+       pointers.  Use boolean_type_node as the type of a comparison
+       expression being folded.
+       * tree.h: Add prototypes for fold_unary, fold_binary,
+       fold_ternary.
+
+       * tree-ssa-dom.c: Fix formatting.
+
+2005-04-22  Diego Novillo  <dnovillo@redhat.com>
+
+       * Makefile.in (tree-into-ssa.o): Add dependency on PARAMS_H.
+       * lambda-code.c (perfect_nestify): Mark virtual operands in
+       the moved statement for renaming.
+       * params.def (PARAM_MIN_VIRTUAL_MAPPINGS): Define.
+       (PARAM_VIRTUAL_MAPPINGS_TO_SYMS_RATIO): Define.
+       * params.h (MIN_VIRTUAL_MAPPINGS): Define.
+       (VIRTUAL_MAPPINGS_TO_SYMS_RATIO): Define.
+       * tree-flow.h (struct var_ann_d): Update comments.
+       (rewrite_to_new_ssa_names_bb, rewrite_to_new_ssa_names,
+       allocate_ssa_names, find_phi_node_for, dump_tree_ssa,
+       debug_tree_ssa, debug_def_blocks, dump_tree_ssa_stats,
+       debug_tree_ssa_stats, rewrite_ssa_into_ssa,
+       dump_repl_tbl, debug_repl_tbl, dump_names_replaced_by,
+       debug_names_replaced_by): Remove declarations.
+       (delete_update_ssa, get_current_def, set_current_def): Declare.
+       (rewrite_into_loop_closed_ssa): Add new argument.  Update
+       all callers.
+       * tree-into-ssa.c: Include params.h.
+       (old_virtual_ssa_names): Remove.  Update all users.
+       (need_to_replace_names_p): Remove.  Update all users.
+       (struct update_ssa_stats_d): Declare.
+       (update_ssa_stats): New local.
+       (dump_tree_ssa, debug_tree_ssa, debug_def_blocks,
+       dump_tree_ssa_stats, debug_tree_ssa_stats,
+       dump_update_ssa, debug_update_ssa,
+       dump_names_replaced_by, debug_names_replaced_by): Declare.
+       (get_current_def, set current_def): Make extern.
+       (is_old_name, is_new_name): Protect against references
+       past the end of the sets.
+       (add_new_name_mapping): Assert that OLD and NEW are
+       different SSA names for the same symbol.
+       When adding a virtual mapping, update stats for virtual
+       mapping heuristic.
+       (insert_phi_nodes_for): If UPDATE_P is true, create the
+       LHS of the new PHI by duplicating SSA name VAR.
+       (insert_phi_nodes_1): Remove.  Update all users.
+       (insert_phi_nodes): Remove second argument.  Update all
+       users.
+       (maybe_replace_use, maybe_replace_def): New.
+       (rewrite_update_stmt): Call them.
+       (mark_def_interesting): Remove calls to is_gimple_reg.
+       (prepare_phi_args_for_update): Remove.  Update all users.
+       (prepare_block_for_update): Only process virtual operands
+       and GIMPLE registers in normal form.
+       (prepare_use_sites_for): New.
+       (prepare_names_to_update): Rename from prepare_def_sites.
+       Call prepare_use_sites_for.
+       (dump_update_ssa): Rename from dump_repl_tbl.
+       Update all users.
+       Show statistics for virtual mapping heuristic.
+       (debug_update_ssa): Rename from debug_debug_repl_tbl.
+       (init_update_ssa): Initialize UPDATE_SSA_STATS.
+       (delete_update_ssa): Make extern.
+       (mark_set_for_renaming): If the set is empty, do nothing.
+       (release_ssa_name_after_update_ssa): Update comment.
+       (insert_updated_phi_nodes_for): Do not remove existing
+       PHI nodes for symbols.
+       (switch_virtuals_to_full_rewrite_p): New.
+       (switch_virtuals_to_full_rewrite): New.
+       (update_ssa): Call them.
+       Clear REWRITE_THIS_STMT and REGISTER_DEFS_IN_THIS_STMT
+       for every statement before updating.
+       If all the names in NEW_SSA_NAMES have been marked for
+       removal, do nothing.
+       Only start at the top of the CFG if there are symbols in
+       SYMS_TO_RENAME.
+       (ssa_rewrite_finalize_block): Remove.
+       (ssa_register_new_def): Remove.
+       (ssa_rewrite_stmt): Remove.
+       (ssa_rewrite_phi_arguments): Remove.
+       (ssa_rewrite_initialize_block): Remove.
+       (ssa_mark_def_sites): Remove.
+       (ssa_mark_def_sites_initialize_block): Remove.
+       (ssa_mark_phi_uses): Remove.
+       (rewrite_ssa_into_ssa): Remove.
+       * tree-phinodes.c (find_phi_node_for): Remove.
+       * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
+       Call update_ssa.
+       * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops):
+       Remove calls to verify_dominators and
+       verify_loop_structure.
+       (tree_unswitch_single_loop): Call update_ssa.
+       * tree-ssa.c (verify_ssa): Assert that need_ssa_update_p
+       returns false.
+       Call verify_stmts.
+       (delete_tree_ssa): Assert that need_ssa_update_p returns
+       false.
+       * tree-vect-transform.c (vect_transform_loop): Call update_ssa.
+       * tree-vectorizer.c (allocate_new_names, rename_def_op,
+       free_new_names): Remove.  Update all users.
+       (rename_use_op): Call get_current_def.
+       (rename_variables_in_bb): Do not handle any real or
+       virtual definition.
+       (slpeel_update_phis_for_duplicate_loop): Call
+       get_current_def and set_current_def instead of using
+       SSA_NAME_AUX.
+       (slpeel_update_phi_nodes_for_guard2): Reformat comments.
+       (slpeel_can_duplicate_loop_p): Call need_ssa_update_p,
+       ssa_names_to_replace and delete_update_ssa.
+       * doc/invoke.texi: Document --param min-virtual-mappings
+       and --param virtual-mappings-ratio.
+
+2005-04-22  Diego Novillo  <dnovillo@redhat.com>
+
+       * tree-cfg.c (tree_duplicate_bb): Call create_new_def_for
+       for newly created PHI nodes.
+       Call create_new_def_for for every new V_MAY_DEF and
+       V_MUST_DEF on the copied statement.
+       (struct ssa_name_map_entry): Remove.
+       (ssa_name_map_entry_hash): Remove.
+       (ssa_name_map_entry_eq): Remove.
+       (allocate_ssa_names): Remove.
+       (rewrite_to_new_ssa_names_def): Remove.
+       (rewrite_to_new_ssa_names_use): Remove.
+       (rewrite_to_new_ssa_names_bb): Remove.
+       (rewrite_to_new_ssa_names): Remove.
+       (tree_duplicate_sese_region): Remove variables ver,
+       definitions, phi, ssa_name_map and bi.
+       Call need_ssa_update_p instead of any_marked_for_rewrite_p.
+       Call update_ssa.
+       * tree-ssa-dom.c (tree_ssa_dominator_optimize): Call
+       update_ssa instead of rewrite_ssa_into_ssa.
+       * tree-ssa-loop-manip.c (add_exit_phis_edge): Call
+       create_new_def_for.
+       (find_uses_to_rename_use): Add argument 'need_phis'.
+       (find_uses_to_rename_stmt): Do not scan virtual operands.
+       (find_uses_to_rename): Only scan PHI nodes for
+       non-virtual names.
+       (rewrite_into_loop_closed_ssa): Call update_ssa.
+       (check_loop_closed_ssa_use): Ignore virtual operands.
+       (check_loop_closed_ssa_stmt): Likewise.
+       (verify_loop_closed_ssa): Do nothing if CURRENT_LOOPS is
+       NULL.
+       (rename_variables, set_phi_def_stmts): Remove.
+       (tree_duplicate_loop_to_header_edge): Reformat comment.
+       Remove variables BB, I and DEFINITIONS.
+       Call need_ssa_update_p.
+       Call update_ssa.
+       (lv_adjust_loop_header_phi): Reformat comment.
+       * tree-ssanames.c (ssa_names_to_rewrite): Remove.
+       (marked_for_rewrite_p, any_marked_for_rewrite_p,
+       mark_for_rewrite, unmark_all_for_rewrite,
+       marked_ssa_names): Remove.  Update all users.
+       (release_ssa_name): If VAR has been registered for SSA
+       updating, do nothing.
+       * tree-vrp.c (new_ssa_names, old_ssa_names): Remove.
+       (build_assert_expr_for): Call register_new_name_mapping.
+       (insert_range_assertions): Update call to update_ssa.
+       * tree.h (mark_for_rewrite, unmark_all_for_rewrite,
+       marked_for_rewrite_p, any_marked_for_rewrite_p,
+       marked_ssa_names): Remove.
+
+2005-04-22  Jeff Law  <law@redhat.com>
+
+       * tree-ssa-dom.c (block_defs_stack): Remove, no longer needed.
+       (restore_currdefs_to_original_value): Likewise.
+       (register_definitions_for_stmt): Likewise.
+       (tree_ssa_dominator_optimize): No longer initialize CURRENT_DEF
+       for each variable.  Do not allocate/free block_defs_stack either.
+       Do not iterate if we just thread jumps.  Only iterate if the
+       tree_cleanup_cfg does useful work (temporary).
+       (dom_opt_initialize_block): No longer push a marker on
+       BLOCK_DEFS_STACK.
+       (dom_opt_finalize_block): Removal call to restore currdefs.
+       Relax restrictions for recording edge equivalences.
+       (record_equivalences_from_phis): No longer need to track
+       CURRENT_DEF.
+       (optimize_stmt): Similarly.
+       (thread_across_edge): Simplify by removing the requirement that
+       statements in the block we are threading through must be nops.
+       (initialize_hash_element): Handle GOTO_EXPR.
+
+2005-04-22  David S. Miller  <davem@davemloft.net>
+
+       * sched-vis.c (print_value): Use CONST_DOUBLE_LOW and
+       CONST_DOUBLE_HIGH.
+       * config/sparc/sparc.c (sparc_rtx_costs): Likewise, and
+       fix check on CONST_DOUBLE mode.  It should be VOIDmode
+       when it is representing an integer.
+
+2005-04-22  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * builtins.c (gimplify_va_arg_expr): Reword comments to avoid
+       'abort'. Use gcc_assert and gcc_unreachable as appropriate.
+       * c-format.c (get_constant, decode_format_attr, get_flag_spec, 
+       find_char_info_specifier_index,
+       find_length_info_modifier_index): Likewise.
+       * c-typeck.c (composite_type, pop_init_level): Likewise.
+       * combine.c (cant_combine_insn_p, try_combine): Likewise.
+       * cse.c (cse_insn): Likewise
+       * dominance.c (calc_dfs_tree): Likewise
+       dwarf2out.c (loc_descriptor_from_tree_1,
+       add_abstract_origin_attribute, force_decl_die,
+       force_type_die): Likewise
+       emit-rtl.c (operand_subword_force): Likewise
+       explow.c (hard_function_value): Likewise
+       expmed.c (store_bit_field, expand_divmod,
+       emit_store_flag_force): Likewise
+       expr.c (emit_move_multi_word, store_expr,
+       expand_expr_real_1): Likewise
+       final.c (this_is_asm_operands, shorten_branches, final_scan_insn,
+       output_operand): Likewise
+       flow.c (recompute_reg_usage): Likewise
+       * function.c (assign_stack_temp_for_type, assign_temp, 
+       handle_epilogue_set): Likewise
+       * genextract.c (main): Likewise
+       * gimplify.c (mostly_copy_tree_r, gimplify_return_expr,
+       gimplify_modify_expr_rhs, gimplify_expr): Likewise
+       * haifa-sched.c (ready_lastpos, ready_remove_first, ready_element,
+       ready_remove, rm_line_notes, rm_other_notes,
+       schedule_block): Likewise
+       mips-tfile.c (copy_object, out_of_bounds): Likewise
+
+2005-04-22 David Edelsohn  <edelsohn@gnu.org>
+
+       PR target/20813
+       * config/rs6000/default64.h (TARGET_DEFAULT): Add MASK_PPC_GFXOPT.
+       * config/rs6000/rs6000.c (processor_target_table): Rename rs64a to
+       rs64.  Add MASK_PPC_GFXOPT to powerpc64 and rs64.
+       (rs6000_init_libfuncs): Set TFmode optabs to xlq names if
+       TARGET_XL_COMPAT.
+       * doc/invoke.texi (PowerPC options): Change rs64a to rs64.
+
+2005-04-22  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * lambda-code.c: Define VEC(int,heap), VEC(lambda_loop,heap).
+       (gcc_tree_to_linear_expression): Convert to heap allocated
+       vectors.
+       (gcc_loop_to_lambda_loop, gcc_loopnest_to_lambda_loopnest,
+       lbv_to_gcc_expression, lle_to_gcc_expression,
+       lambda_loopnest_to_gcc_loopnest, can_convert_to_perfect_nest, 
+       perfect_nestify): Likewise.
+       lambda.h (gcc_loopnest_to_lambda_loopnest,
+       lambda_loopnest_to_gcc_loopnest): Likewise.
+       tree-loop-linear.c (linear_transform_loops): Likewise.
+
+2005-04-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
+
+       * config/sparc/predicates.md (arith_double_operand): Use
+       trunc_int_for_mode if HOST_BITS_PER_WIDE_INT >=64.
+       * config/sparc/sparc.md (movqi, movhi, movsi, movqi): Use gen_int_mode.
+       (DImode, DFmode constant splitters): Likewise.  Remove code for
+       TARGET_ARCH64 && HOST_BITS_PER_WIDE_INT < 64.
+       (logical constant splitters): Use const_int_operand predicate.
+       (lshrsi3_extend): Remove code for TARGET_ARCH64 &&
+       HOST_BITS_PER_WIDE_INT < 64.
+
+2005-04-22  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * config/pa/pa.c (legitimize_pic_address): Use gcc_assert and
+       gcc_unreachable as appropriate.
+       (force_mode, emit_move_sequence, singlemove_string,
+       output_move_double, output_fp_move_double, find_addr_reg,
+       output_block_move, output_block_clear, output_and,
+       output_64bit_and, output_ior, output_64bit_ior, store_reg_modify,
+       pa_adjust_cost, pa_issue_rate, print_operand,
+       output_global_address, output_arg_descriptor, output_cbranch,
+       output_lbranch, output_bb, output_bvb, output_dbra, output_movb,
+       output_call): Likewise.
+       * config/pa/pa.md (call, call_value, sibcall, sibcall_value,
+       prefetch, prefetch_cc, prefetch_nocc): Likewise.
+
+2005-04-22  Zdenek Dvorak  <dvorakz@suse.cz>
+
+       * Makefile.in (LIBGCOV): Add _gcov_interval_profiler,
+       _gcov_pow2_profiler and _gcov_one_value_profiler.
+       (tree-profile.o): Add GGC_H and gt-tree-profile.h dependency.
+       (GTFILES): Add $(srcdir)/tree-profile.c.
+       * gcov-io.h (__gcov_interval_profiler, __gcov_pow2_profiler,
+       __gcov_one_value_profiler): Declare.
+       * gimplify.c (force_gimple_operand): Check whether the statements
+       should be produced in ssa form.
+       (force_gimple_operand_bsi): New function.
+       * libgcov.c (__gcov_interval_profiler, __gcov_pow2_profiler,
+       __gcov_one_value_profiler): New functions.
+       * rtl-profile.c (rtl_gen_pow2_profiler): Only measure whether
+       the profiled value is a power of two or not.
+       * tree-cfg.c (tree_block_ends_with_condjump_p): Handle empty blocks.
+       * tree-flow.h (in_ssa_p): Declare.
+       (force_gimple_operand_bsi): Declare.
+       * tree-into-ssa.c (in_ssa_p): New variable.
+       (rewrite_into_ssa): Set in_ssa_p.
+       * tree-outof-ssa.c (rewrite_out_of_ssa): Set in_ssa_p.
+       * tree-profile.c: Include ggc.h and gt-tree-profile.h.
+       (gcov_type_node, tree_interval_profiler_fn, tree_pow2_profiler_fn,
+       tree_one_value_profiler_fn): New variables.
+       (tree_init_edge_profiler): Initialize the profiler function decls.
+       (tree_gen_edge_profiler): Use global gcov_type_node.
+       (prepare_instrumented_value): New function.
+       (tree_gen_interval_profiler, tree_gen_interval_profiler,
+       tree_gen_one_value_profiler): Call the library functions instead of
+       creating instrumentation code.
+       * tree.c (build_fn_decl): New function.
+       * tree.h (build_fn_decl): Declare.
+       * value-prof.c (rtl_divmod_values_to_profile,
+       rtl_find_values_to_profile, rtl_mod_pow2_value_transform,
+       tree_mod_pow2_value_transform, tree_find_values_to_profile):
+       Do not handle may_be_other and precise values of exponents at pow2
+       profiler.
+       (tree_mod_subtract_transform): Reflect that value field of
+       histogram has changed meaning.
+       (tree_divmod_values_to_profile): Record the values correctly.
+       (tree_values_to_profile): Update comment.
+       * value-prof.h (struct histogram_value_t): Remove pow2 data.
+
 2005-04-22  Joseph S. Myers  <joseph@codesourcery.com>
 
        * varasm.c (do_assemble_alias): Return early if TREE_ASM_WRITTEN
        decode_addr_const): Likewise.
 
 2005-04-21 Alan Modra  <amodra@bigpond.net.au>
-           Fariborz Jahanian <fjahanian@apple.com>
+          Fariborz Jahanian <fjahanian@apple.com>
 
        * config/rs6000/rs6000.c (rs6000_arg_partial_bytes): Fix size of
        portion of argument passed in fpr.
        * fold-const (fold_binary):  Fold ~X ^ ~ Y to X ^ Y.
 
 2005-04-20  Michael Pogue  <michael.pogue@sun.com>
-            Joseph S. Myers  <joseph@codesourcery.com>
+           Joseph S. Myers  <joseph@codesourcery.com>
 
        * c.opt (Wint-to-pointer-cast, Wpointer-to-int-cast): New options.
        * c-typeck.c (build_c_cast): Check these options.