OSDN Git Service

* config/vax/vax.h (target_flags, MASK_UNIX_ASM, MASK_VAXC_ALIGNMENT)
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 0fac52c..511f709 100644 (file)
@@ -1,3 +1,561 @@
+2005-04-07  Richard Sandiford  <rsandifo@redhat.com>
+
+       * config/vax/vax.h (target_flags, MASK_UNIX_ASM, MASK_VAXC_ALIGNMENT)
+       (MASK_G_FLOAT, TARGET_UNIX_ASM, TARGET_VAXC_ALIGNMENT, TARGET_G_FLOAT)
+       (TARGET_SWITCHES): Delete.
+       * config/vax/vax.c (TARGET_DEFAULT_TARGET_FLAGS): Override default.
+       * config/vax/vax.opt: New file.
+
+2005-04-07  Daniel Berlin  <dberlin@dberlin.org>
+
+       * tree-ssa-dse.c (dse_optimize_stmt): Fix incorrect comment.
+
+2005-04-07  Ian Lance Taylor  <ian@airs.com>
+
+       * config/iq2000/iq2000.h (DONT_ACCESS_GBLS_AFTER_EPILOGUE): Don't
+       define.
+       * config/mips/mips.h (DONT_ACCESS_GBLS_AFTER_EPILOGUE): Likewise.
+       * config/sparc/sparc.h (DONT_ACCESS_GBLS_AFTER_EPILOGUE):
+       Likewise.
+
+2005-04-07  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * tree-ssa-sink.c (nearest_common_dominator_of_uses): Consider
+       all immediate uses in PHI nodes.
+
+2005-04-07  Richard Earnshaw  <richard.earnshaw@arm.com>
+
+       * arm.c (arm_const_double_inline_cost): Handle any constant by
+       using gen_lowpart and gen_highpart_mode.
+       (note_invalid_constants): All constants in an RTX with a constraint
+       that permits memory are now pushed to the constant pool.
+       (output_move_double): Delete code to handle reg to reg and 
+       constant to reg moves.
+       (const_double_needs_minipool, output_mov_immediate): Delete.
+       * arm.h (EXTRA_CONSTRAINT_STR_ARM): All 'D' variants now handle
+       CONST_INT and CONST_VECTOR.
+       * arm.md (ANY64): New mode macro.
+       (arm_movdi): Split reg-reg and const-reg moves.  Simplify constraints.
+       (movdf_soft_insn): Split reg-reg and const-reg moves.
+       (split patterns for 64-bit constant and register moves): New.
+       * cirrus.md (cirrus_arm_movdi): Split reg-reg and const-reg moves.
+       (cirrus_movdf_hard_insn): Likewise.
+       * fpa.md (movdf_fpa): Likewise.
+       * iwmmxt.md (iwmmxt_arm_movdi): Likewise.
+       (movv8qi_internal, movv4hi_internal, movv2si_internal): Fix
+       constraints.
+       (movv2si_internal_2): Likewise.
+       * vfp.md (arm_movdi_vfp): Split reg-reg and const-reg moves.
+       (movdf_vfp): Likewise.
+       * arm-protos.h (output_mov_immediate): Delete prototype.
+
+2005-04-07  Joseph S. Myers  <joseph@codesourcery.com>
+
+       PR target/20093
+       * simplify-rtx.c (simplify_unary_operation_1): Check
+       SUBREG_PROMOTED_UNSIGNED_P (op) > 0 for zero-extension.
+
+2005-04-06  James E Wilson  <wilson@specifixinc.com>
+
+       PR target/20717
+       * cgraphunit.c (record_call_1, case FDESC_EXPR): Handle same as
+       ADDR_EXPR.
+
+2004-04-06  Richard Sandiford  <rsandifo@redhat.com>
+
+       * coverage.h (GCOV_TYPE_NODE): Delete.
+       * coverage.c (coverage_counter_alloc, tree_coverage_counter_ref)
+       (build_ctr_info_type): Use get_gcov_type () instead of GCOV_TYPE_NODE.
+       * tree-profile.c (tree_gen_edge_profiler, tree_gen_interval_profiler)
+       (tree_gen_pow2_profiler, tree_gen_one_value_profiler): Likewise.
+       * value-prof.c (tree_divmod_fixed_value_transform): Delete.
+
+2004-04-06  Richard Sandiford  <rsandifo@redhat.com>
+
+       PR other/20792
+       * Makefile.in (gcc.pot): Remove options.c dependency.
+       * optc-gen.awk: Don't quote help strings with N_().
+
+2005-04-06  James A. Morrison  <phython@gcc.gnu.org>
+
+       * c-common.c (handle_malloc_atttribute): Only set DECL_IS_MALLOC if
+       the function returns a pointer type.
+
+2005-04-06  Daniel Berlin  <dberlin@dberlin.org>
+
+       * params.def (PARAM_SALIAS_MAX_IMPLICIT_FIELDS): New
+       * params.h (SALIAS_MAX_IMPLICIT_FIELDS): New
+       * doc/invoke.texi: Documnet salias-max-implicit-fields.
+       * tree-ssa-alias.c (struct used_part): Add implicit_uses and
+       explicit_uses members.
+       (get_or_create_used_part_for): Initialize new fields.
+       (fieldoff_compare): New function.
+       (create_overlap_variables_for): Count number of fields, use
+       heuristic to determine whether to create subvars for vars with
+       only implicit uses.
+       Sort the field list by offset and avoid creating duplicate SFT's.
+
+2005-04-06  Richard Sandiford  <rsandifo@redhat.com>
+
+       * c.opt (-F): Remove trailing whitespace from help string.
+       (-finput-charset): Use a tab to separate the switch name and help
+       string.
+       * common.opt (-fsched-stalled-insns, -fsched-stalled-insns-dep)
+       (-ftree-vectorizer-verbose): Likewise.
+
+2005-04-06  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * tree-ssa-sink.c (nearest_common_dominator_of_uses): Look at
+       a PHI argument where a use occurs instead of all PHI arguments.
+
+2005-04-06  Joseph S. Myers  <joseph@codesourcery.com>
+
+       * c-decl.c (finish_decl): Apply pending #pragma weak regardless of
+       scope.
+
+2005-04-06  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * cse.c, tree-flow-inline.h, tree-flow.h, tree-ssa-operands.c,
+       tree-ssa-sink.c, tree.h, config/bfin/bfin.c,
+       config/bfin/bfin.h: Fix comment typos.
+
+2005-04-06  Ranjit Mathew  <rmathew@hotmail.com>
+
+       * doc/install.texi: Update the URL for Jacks.
+       * doc/sourcebuild.texi: Likewise.
+
+2005-04-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
+
+       PR target/17245
+       * config/sparc/sparc.c (legitimate_address_p): Remove 'imm2'.
+       Revert 2004-10-08 patch.  Reject TFmode LO_SUM in 32-bit mode.
+
+2005-04-06  Kelley Cook  <kcook@gcc.gnu.org>
+
+       * Makefile.in (LIBGCC2_CFLAGS): Revert -pipe change.
+
+2005-04-06  Richard Sandiford  <rsandifo@redhat.com>
+
+       * config/v850/v850-protos.h (override_options): Delete.
+       * config/v850/v850.h (target_flags, MASK_GHS, MASK_LONG_CALLS, MASK_EP)
+       (MASK_PROLOG_FUNCTION, MASK_DEBUG, MASK_V850, MASK_V850E)
+       (MASK_SMALL_SLD, MASK_BIG_SWITCH, MASK_NO_APP_REGS, MASK_DISABLE_CALLT)
+       (MASK_STRICT_ALIGN, MASK_US_BIT_SET, MASK_US_MASK_SET, TARGET_GHS)
+       (TARGET_LONG_CALLS, TARGET_EP, TARGET_PROLOG_FUNCTION, TARGET_V850)
+       (TARGET_BIG_SWITCH, TARGET_DEBUG, TARGET_V850E, TARGET_US_BIT_SET)
+       (TARGET_SMALL_SLD, TARGET_DISABLE_CALLT, TARGET_NO_APP_REGS)
+       (TARGET_STRICT_ALIGN, TARGET_SWITCHES, TARGET_OPTIONS)
+       (OVERRIDE_OPTIONS): Delete.
+       (MASK_CPU): Redefine as MASK_V850 | MASK_V850E.
+       (small_memory_info): Remove the value field.
+       (CONDITIONAL_REGISTER_USAGE): Check !TARGET_APP_REGS rather than
+       TARGET_NO_APP_REGS.
+       * config/v850/v850.c (small_memory): Remove the value field.
+       (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
+       (override_options): Delete.
+       (v850_handle_memory_option, v850_handle_option): New functions.
+       * config/v850/v850.opt: New file.
+
+2005-04-06  Geoffrey Keating  <geoffk@apple.com>
+
+       * config.host: Add a section for generic hosts, and a subsection
+       for Darwin.  Add a case for x86-darwin.  Update ppc-darwin case.
+       * config/host-darwin.c: New, split out of config/rs6000/host-darwin.c.
+       * config/host-darwin.h: New.
+       * config/x-darwin: New.
+       * config/i386/host-i386-darwin.c: New.
+       * config/i386/x-darwin: New.
+       * config/rs6000/host-darwin.c: Include host-darwin.h.
+       (darwin_rs6000_gt_pch_get_address): Move to config/host-darwin.c.
+       (darwin_rs6000_gt_pch_use_address): Likewise.
+       * config/rs6000/x-darwin: Change name of .o built, update
+       dependencies for changes to rs6000/host-darwin.c.
+
+2005-04-06  Ralf Corsepius  <ralf.corsepius@rtems.org>
+
+       PR target/17824
+       * config/c4x/c4x.h (ASM_PROG, LD_PROG): Remove.
+
+2005-04-06  Dorit Naishlos  <dorit@il.ibm.com>
+
+       * tree-vect-analyze.c (vect_analyze_loop_form): Call
+       split_loop_exit_edge instead of loop_split_edge_with. 
+
+2005-04-06  Paolo Bonzini  <bonzini@gnu.org>
+
+       * config/rs6000/altivec.md (UNSPEC_VSLW, UNSPEC_SUBS,
+       UNSPEC_SET_VSCR): New constants, used throughout.
+       (*andc3_v4sf): New.
+       (altivec_vspltisb, altivec_vsplitish, altivec_vsplitisw):
+       Replace with...
+       (altivec_vspltis<VI_char>): ... this pattern, using
+       a QImode const_int_operand for the immediate.
+       (abs<mode>2, absv4sf2, altivec_abss_<mode>): Rewrite as
+       define_expands.
+
+2005-04-06  Ralf Corsepius  <ralf.corsepius@rtems.org>
+
+       PR target/17822
+       * config/avr/t-avr (AR_FOR_TARGET,RANLIB_FOR_TARGET): Remove.
+
+2005-04-06  Kelley Cook  <kcook@gcc.gnu.org>
+
+       * Makefile.in (LIBGCC2_CFLAGS): Compile with -pipe.
+
+2005-04-06  Ben Elliston  <bje@au.ibm.com>
+
+       * gcc.c: Correct comment about DEFAULT_SWITCH_TAKES_ARG and
+       DEFAULT_WORD_SWITCH_TAKES_ARG which incorrectly reported these
+       macros as living in "this file" and not gcc.h.
+
+2005-04-06  Ben Elliston  <bje@au.ibm.com>
+
+       * doc/invoke.texi (Optimize Options): Mention -ftree-lrs, not
+       -ftree-live_range_split.  Perhaps renamed at some point?
+
+2005-04-06  Zdenek Dvorak  <dvorakz@suse.cz>
+
+       PR target/20625
+       * tree-ssa-loop-ivopts.c (generic_type_for): New function.
+       (add_candidate_1): Use generic_type_for instead of unsigned_type_for.
+
+2005-04-06  Zdenek Dvorak  <dvorakz@suse.cz>
+
+       * tree-flow.h (number_of_iterations_cond): Declaration removed.
+       * tree-ssa-loop-niter.c (number_of_iterations_cond): Made static.
+       (number_of_iterations_special): New function.
+       (number_of_iterations_exit): Use number_of_iterations_special.
+       Use simplify_using_outer_evolutions only at -O3.
+       (number_of_iterations_cond, tree_simplify_using_condition,
+       simplify_using_initial_conditions, loop_niter_by_eval,
+       compare_trees, can_count_iv_in_wider_type_bound,
+       simplify_using_outer_evolutions): Use fold_build.
+
+2005-04-05  Thomas Fitzsimmons  <fitzsim@redhat.com>
+
+       * doc/install.texi (Configuration): Document --with-java-home.
+
+2005-04-05  Richard Henderson  <rth@redhat.com>
+
+       PR target/20342
+       PR target/20447
+       * config/i386/i386.c (print_operand): Handle vector zeros.
+       (ix86_split_to_parts): Handle CONST_VECTOR.
+       (ix86_hard_regno_mode_ok): Allow MMX modes in general regs.
+       (ix86_modes_tieable_p): Use ix86_hard_regno_mode_ok to decide
+       what modes to tie for MMX and SSE registers.
+       * config/i386/i386.h (MMX_REG_MODE_P): Remove.
+       * config/i386/i386.md: Extend move 0 -> xor peephole to apply
+       to vector modes as well.
+       * config/i386/predicates.md (const0_operand): Handle VOIDmode
+       properly as an input mode.
+
+2005-04-05  Andrew MacLeod  <amacleod@redhat.com>
+
+       * tree-ssa-operands.c (verify_abort): Use %p for pointers.
+
+2005-04-05  Andrew MacLeod  <amacleod@redhat.com>
+
+       * tree-pretty-print.c (dump_generic_node): Use %p for pointer.
+
+2005-04-05  Jakub Jelinek  <jakub@redhat.com>
+
+       * config/i386/i386.c (init_cumulative_args): For -m32 -mfpmath=sse
+       and local functions, set sse_nregs to 8 and float_in_sse.
+       (function_arg_advance, function_arg): If float_in_sse, pass
+       SFmode and DFmode arguments in SSE registers.
+       * config/i386/i386.h (CUMULATIVE_ARGS): Add float_in_sse field.
+
+       * config/i386/i386.c (ix86_value_regno): Only optimize local functions
+       of -funit-at-a-time.
+
+2005-04-05  Paolo Bonzini  <bonzini@gnu.org>
+
+       * config/i386/i386-protos.h (ix86_function_value): Accept two
+       arguments, like the target macro.
+       * config/i386/i386.h (FUNCTION_VALUE): Pass both arguments.
+       * config/i386/i386.c (ix86_function_value): Accept the second
+       argument of the target macro.
+       (ix86_function_ok_for_sibcall): Pass a function pointer to
+       ix86_function_value.
+       (ix86_function_value, ix86_libcall_value) [!TARGET_64BIT]: Adjust
+       call to ix86_value_regno).
+       (ix86_value_regno): Add support for returning floating point values
+       in SSE registers.
+
+2005-04-05  Jakub Jelinek  <jakub@redhat.com>
+
+       PR tree-optimization/20076
+       * tree-inline.c (inline_forbidden_p_1): Prevent inlining functions
+       that call __builtin_return or __builtin_apply_args.
+
+2005-04-05  Andrew MacLeod  <amacleod@redhat.com>
+
+       * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Use update_stmt.
+       Use immediate use iterator.
+       (stmt_is_bumper_for_loop): Use immediate use iterator.
+       * predict.c (strip_builtin_expect): Use update_stmt.
+       * tree-cfg.c (update_modified_stmts): New. Call update_stmt_if_modified
+       on all elements of a STATEMENT_LIST.
+       (bsi_insert_before, bsi_insert_after): Call update_modified_stmts.
+       (bsi_remove): Remove imm_use links and mark the stmt as modified.
+       (bsi_replace): Mark stmt as modified and the update it.
+       * tree-complex.c (update_complex_assignment): Call mark_stmt_modified.
+       (expand_complex_libcal): Call update_stmt.
+       (expand_complex_comparison): Call mark_stmt_modified.
+       (expand_complex_operations_1): Call update_stmt_if_modified.
+       (expand_vector_operations_1): Call mark_stmt_modified.
+       * tree-dfa.c (compute_immediate_uses, free_df_for_stmt, free_df,
+       compute_immediate_uses_for_phi, compute_immediate_uses_for_stmt,
+       add_immediate_use, redirect_immediate_use,
+       redirect_immediate_uses, dump_immediate_uses, debug_immediate_uses,
+       dump_immediate_uses_for, debug_immediate_uses_for): Delete.
+       (mark_new_vars_to_rename): Call update_stmt.
+       * tree-dump.c (dump_option_value_in): Add "stmtaddr".
+       * tree-flow-inline.h (modify_stmt): Rename to mark_stmt_modified.  
+       Ignore PHI nodes.
+       (unmodify_stmt): Delete.
+       (update_stmt): New.  Force an update of a stmt.
+       (update_stmt_if_modified): update a stmt if it is out of date.
+       (get_stmt_operands): Verify stmt is NOT modified. 
+       (stmt_modified_p): Update comment.
+       (delink_imm_use): Remove a use node from its immuse list.
+       (link_imm_use_to_list): Link a use node to a specific list.
+       (link_imm_use): Link a node to the correct list.
+       (set_ssa_use_from_ptr): Set a use node to a specific value, and insert
+       it in the correct list, if appropriate.
+       (link_imm_use_stmt): Link a use node, and set the stmt pointer.
+       (relink_imm_use): Link a use node in place of another node in a list.
+       (relink_imm_use_stmt): LInk a node in place of another node, and set
+       the stmt pointer.
+       (end_safe_imm_use_traverse): New.  Terminate a safe immuse iterator.
+       (end_safe_imm_use_p): New.  Check for the end of a safe immuse iterator.
+       (first_safe_imm_use): New.  Initialize a safe immuse iterator.
+       (next_safe_imm_use): New.  Proceed to next safe immuse iterator value.
+       (end_readonly_imm_use_p): New.  Check for end of a fast immuse iterator.
+       (first_readonly_imm_use): New.  Initialize a fast immuse iterator.
+       (next_readonly_imm_use): New.  Get the next fast immuse iterator value.
+       (has_zero_uses): New.  Return true if there are no uses of a var.
+       (has_single_use): New.  Return true if there is only a single use of a
+       variable.
+       (single_imm_use): New.  Return the simgle immediate use.
+       (num_imm_uses): New.  Return the number of immediate uses.
+       (get_v_must_def_ops): Use is now a pointer.
+       (use_operand_p, get_v_may_def_op_ptr, get_vuse_op_ptr,
+       get_v_must_def_kill_ptr, get_phi_arg_def_ptr): Return the address of 
+       the use node.
+       (get_immediate_uses, num_immediate_uses, immediate_use): Delete.
+       (delink_stmt_imm_use): Delink all immuses from a stmt.
+       (phi_arg_index_from_use): New.  Return a phi arg index for a use.
+       * tree-flow.h (struct dataflow_d): Delete.
+       (immediate_use_iterator_d): New.  Immediate use iterator struct.
+       (FOR_EACH_IMM_USE_FAST): New.  Macro for read only immuse iteration.
+       (FOR_EACH_IMM_USE_SAFE): New.  Macro for write-safe immuse iteration.
+       (BREAK_FROM_SAFE_IMM_USE): New.  Macro for earlyu exit from write-safe 
+       iteration.
+       (struct stmt_ann_d): Remove dataflow_t from struct.
+       * tree-if-conv.c (tree_if_conversion).  Don't call free_df.
+       (if_convertible_phi_p): Use FAST immuse iterator.
+       (if_convertible_loop_p): Don't call compute_immediate_uses.
+       (replace_phi_with_cond_modify_expr): Call update_stmt.
+       * tree-into-ssa.c (mark_def_sites, ssa_mark_def_sites): Call 
+       update_stmt_if_modified.
+       (rewrite_all_into_ssa): Initialize ssa operands.
+       * tree-loop-linear.c (linear_transform_loops): Don't call free_df or
+       compute_immediate_uses.
+       * tree-optimize.c (execute_todo): Call verify_ssa whenever the 
+       ssa_property is available.
+       (execute_one_pass):  Change parameters passed to execute_todo.
+       * tree-outof-ssa.c (rewrite_trees): Don't call modify_stmt.
+       (remove_ssa_form): Call fini_ssa_operands.
+       (insert_backedge_copies): Delete call to modify_stmt.
+       * tree-phinodes.c (make_phi_node): Initialize use nodes.
+       (release_phi_node): Delink any use nodes before releasing.
+       (resize_phi_node): Relink any use nodes.
+       (remove_phi_arg_num): Delink the use node.
+       (remove_phi_node): Release the ssa_name AFTER releasing the phi node.
+       (remove_all_phi_nodes_for): Release phi node first.
+       * tree-pretty-print.c (dump_generic_node): Print stmt address.
+       * tree-sra.c (mark_all_v_defs): Call update_stmt_if_modified.
+       (scalarize_use, scalarize_copy): Call update_stmt.
+       * tree-ssa-alias.c (compute_may_aliases): Update all modified stmts.
+       (compute_points_to_and_addr_escape): Call mark_stmt_modified.
+       * tree-ssa-cpp.c (need_imm_uses_for): Delete.
+       (ccp_initialize): Remove call to compute_immediate_uses.
+       (substitute_and_fold, execute_fold_all_builtins): Call update_stmt.
+       * tree-ssa-dom.c (tree_ssa_dominator_optimize): Update all modified 
+       stmts.
+       (simplify_cond_and_lookup_avail_expr): Call mark_stmt_modified.
+       (simplify_switch_and_lookup_avail_expr): Call mark_stmt_modified.
+       (eliminate_redundant_computations): Call mark_stmt_modified.
+       (cprop_operand): Call mark_stmt_modified.
+       (optimize_stmt): Call update_stmt_if_modified and mark_stmt_modified.
+       * tree-ssa-dse.c (fix_phi_uses, fix_stmt_v_may_defs): Delete.
+       (dse_optimize_stmt): Use new immuse interface.
+       (tree_ssa_dse): Remove calls to compute_immediate_uses and free_df.
+       * tree-ssa-forwprop.c (need_imm_uses_for): Delete.
+       (substitute_single_use_vars): Use new immuse interface.
+       (tree_ssa_forward_propagate_single_use_vars): Remove calls to free_df
+       and compute_immediate_uses.
+       * tree-ssa-loop-im.c (single_reachable_address): Use new immuse 
+       interface.
+       (rewrite_mem_refs): Call update_stmt.
+       (determine_lsm): Remove call to compute_imm_uses and free_df.
+       * tree-ssa-loop-ivcanon.c (create_canonical_iv): Call update_stmt.
+       (try_unroll_loop_completely): Call update_stmt.
+       * tree-ssa-loop-ivopts.c (rewrite_address_base): Call update_stmt.
+       (rewrite_use_compare): Call update_stmt.
+       (compute_phi_arg_on_exit): Insert each stmt before trying to process.
+       (rewrite_use) : Call update_stmt.
+       * tree-ssa-loop-manip.c (verify_loop_closed_ssa): Add arg to call.
+       * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Call 
+       update_stmt.
+       * tree-ssa-operands.c (NULL_USE_OPERAND_P): Remove declaration.
+       (allocate_use_optype, allocate_vuse_optype): Adjust allocation size.
+       (free_uses, free_vuses, free_v_may_defs, free_v_must_defs): Delink
+       use nodes.
+       (initialize_vuse_operand): New.  Initialize a vuse operand.
+       (initialize_v_may_def_operand): New.  Initialize a maydef operand.
+       (initialize_v_must_def_operand): New.  Initialize a mustdef operand.
+       (finalize_ssa_defs): Use stmt parameter.
+       (correct_use_link): Ensure a use node is in the correct list, and has
+       the correct stmt pointer.
+       (finalize_ssa_uses, finalize_ssa_v_may_defs, finalize_ssa_vuses,
+       finalize_ssa_v_must_defs): Also initialize use nodes.
+       (finalize_ssa_stmt_operands): Pass extra stmt operands.
+       (build_ssa_operands): Seperate parsing from final operand construction.
+       (parse_ssa_operands): New.  Parse entry point for operand building.
+       (swap_tree_operands): New.  Swap 2 tree operands.
+       (update_stmt_operands): Ranamed from get_stmt_operands.  Always builds
+       operands.
+       (get_expr_operands): Call swap_tree_operands when needed.
+       (copy_virtual_operands): Use initialize routines for virtual use ops.
+       (create_ssa_artficial_load_stmt): Add extra stmt parameter.
+       (verify_abort): New.  Issue imm_use error.
+       (verify_imm_links): New Verify imm_use links for a var.
+       (dump_immediate_uses_for): New.  Dump imm_uses for a var to file.
+       (dump_immediate_uses): New.  Dump imm_uses for all vars to file.
+       (debug_immediate_uses): New.  Dump imm_uses for all vars to stderr.
+       (debug_immediate_uses_for): New.  Dump imm_uses for a var to stderr.
+       * tree-ssa-operands.h (struct use_operand_ptr): Delete.
+       (NULL_USE_OPERAND_P) Define.
+       (use_optype_d, v_def_use_operand_type, vuse_optype_d): Add immediate
+       use node.
+       (struct vuse_operand_type): New struct.
+       (SET_USE): Call set_ssa_use_from_ptr.
+       (USE_STMT): Define.
+       (PHI_ARG_INDEX_FROM_USE): Define.
+       * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Set the phi 
+       argument via SET_USE, not PHI_ARG_DEF_TREE.
+       * tree-ssa-pre.c (eliminate): Call update_stmt.
+       * tree-ssa-propagate.c (cfg_blocks_get): Use imm_use iterators.  Don't
+       call free_df.
+       * tree-ssa-sink.c (all_immediate_uses_same_place): Use imm_use iterator.
+       (nearest_common_dominator_of_uses): Use imm_use iterator.
+       (statement_sink_location): Use imm_use iterator and interface.
+       (execute_sink_code): Don't call compute_immediate_uses or free-df.
+       * tree-ssa-threadupdate.c (create_edge_and_update_destination_phis): Use
+       PHI_ARG_DEF, not PHI_ARG_DEF_TREE.
+       * tree-ssa.c (verify_use, verify_phi_args): Verify some imm_use info.
+       (verify_ssa): Ensure no stmt is marked modify after optimization pass
+       if new parameter is true.
+       (init_tree_ssa): Don't initialize operand cache here.
+       (delete_tree_ssa): Don't destroy operand cache here.
+       (propagate_into_addr): Pass in a use pointer, return true if anything
+       was changed.
+       (replace_immediate_uses): Use imm_use iterator, call update_stmt.
+       (check_phi_redundancy): Use imm_use iterator.
+       (kill_redundant_phi_nodes): Don't call compute_immediate_uses or 
+       free_df.
+       * tree-ssanames.c (make_ssa_name): Initialize imm_use node.
+       (release_ssa_name): Delink node and all elements in its imm_use list.
+       * tree-tailcall.c (adjust_return_value): Call update_stmt.
+       * tree-vect-analyze.c (vect_stmt_relevant_p): Use imm_use iterator.
+       * tree-vectorizer.c (need_imm_uses_for): Delete.
+       (vectorize_loops): Dont call compute_immediate_uses or free_df.
+       * tree.h (struct ssa_imm_use_d): Define.
+       (SSA_NAME_IMM_USE_NODE): Define.
+       (struct tree_ssa_name): Add imm_use node.
+       (PHI_DF): Delete.
+       (PHI_ARG_IMM_USE_NODE): Define.
+       (struct phi_arg_d): Add imm_use node.
+       (struct tree_phi_node): Remove struct dataflow_d element.
+       (TDF_STMTADDR): Define.
+
+2005-04-05  Dale Johannesen  <dalej@apple.com>
+
+       * doc/invoke.texi (Optimization Options):  Remove
+       duplicate -fcse-follow-jumps.  Add -fweb.
+       (-ftree-lim):  Fix spelling (-ftree-loop-im, invariants).
+       (-fivcanon):  Fix spelling (-ftree-loop-ivcanon).
+
+2005-04-05  Per Bothner  <per@bothner.com>
+
+       * tree-ssa.c (execute_early_warn_uninitialized): Pass context node
+       to talk_tree as 'data' parameter, rather than EXPR_LOCUS.
+       (warn_uninit): Get EXPR_LOCUS from context now instead.
+       This fixes a USE_MAPPED_LOCATION testsuite failure.
+
+       * tree-ssa.c (warn_uninitialized_var): Remove useless local.
+
+2005-04-05  Per Bothner  <per@bothner.com>
+
+       * c-decl.c (finish_function): If USE_MAPPED_LOCATION set the location
+       of the artification 'return 0' in main() to BUILTINS_LOCATION.
+       * tree-cfg.c (remove_bb): Check that location isn't BUILTINS_LOCATION
+       before warning. 
+
+2004-04-05  Devang Patel  <dpatel@apple.com>
+
+       * config/rs600/altivec.md (altivec_vsr<VI_char>): Rename to ..
+       (lhsr<mode>3): ... new name.
+       (altivec_vsra<VI_char>): Rename to ..
+       (ashr<mode>3): ... new name.
+       * config/rs6000/rs6000.c (builtin_description): Rename shift
+       operations.
+       
+2004-04-05  Paolo Bonzini  <bonzini@gnu.org>
+
+       * combine.c (RTL_HOOKS_GEN_LOWPART_NO_EMIT): Use
+       gen_lowpart_for_combine.
+       * cse.c (gen_lowpart_if_possible): Move...
+       * rtlhooks.c (gen_lowpart_if_possible): ... here.  Also try
+       gen_lowpart_SUBREG.
+       (gen_lowpart_no_emit_general): Use it.
+
+2005-04-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
+
+       * config/sparc/sparc.c (TARGET_ASM_FILE_END): Undefine before
+       overriding.
+
+2005-04-05  Paolo Bonzini  <bonzini@gnu.org>
+
+       * system.h: Fix typo.
+
+2005-04-05  Bernd Schmidt  <bernd.schmidt@analog.com>
+
+       * config/bfin/bfin-modes.def: New file.
+       * config/bfin/bfin-protos.h: New file.
+       * config/bfin/bfin.c: New file.
+       * config/bfin/bfin.h: New file.
+       * config/bfin/bfin.md: New file.
+       * config/bfin/bfin.opt: New file.
+       * config/bfin/crti.s: New file.
+       * config/bfin/crtn.s: New file.
+       * config/bfin/elf.h: New file.
+       * config/bfin/lib1funcs.asm: New file.
+       * config/bfin/predicates.md: New file.
+       * config/bfin/t-bfin: New file.
+       * config/bfin/t-bfin-elf: New file.
+       * doc/extend.texi (exception_handler, kspisusp, nesting, nmi_handler):
+       Document new attributes.
+       (interrupt, interrupt_handler, saveall): Update documentation for
+       these attributes.
+       * doc/install.texi (Specific): Add entry for the Blackfin.
+       * doc/invoke.texi (Blackfin Options): New section.
+       * doc/md.texi (Blackfin family): New section to document constraints.
+       * config.gcc: Add bfin*-* and bfin*-elf configurations.
+
 2005-04-05  Olivier Hainque  <hainque@adacore.com>
        
        * config/mips/iris6.h (DWARF_FRAME_RETURN_COLUMN): Redefine to