+2005-04-08 Kazu Hirata <kazu@cs.umass.edu>
+
+ * c-tree.h (C_LANG_TREE_NODE_CHAIN_NEXT): Remove.
+
+ * function.c (push_function_context_to): Don't set
+ contains_functions.
+ * function.h (function): Remove contains_functions.
+ (current_function_contains_functions): Remove.
+
+ * function.h (function): Remove instrument_entry_exit.
+ (current_function_instrument_entry_exit): Remove.
+
+ * function.h (nonlocal_labels): Remove.
+
+2005-04-08 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * config/s390/tpf.h (ASM_SPEC): Define.
+
+2005-04-08 Kazu Hirata <kazu@cs.umass.edu>
+
+ * tree-flow.h: Remove the prototype for
+ redirect_immediate_uses.
+ (TDFA_USE_OPS, TDFA_USE_VOPS): Remove.
+
+2005-04-08 Richard Earnshaw <richard.earnshaw@arm.com>
+
+ * arm.c (arm_const_double_by_parts): New function.
+ * arm-protos.h (arm_const_double_by_parts): Add prototype.
+ * arm.md (define_split for 64-bit constants): Add another one.
+
+2005-04-08 Andrew MacLeod <amacleod@redhat.com>
+
+ * tree-ssa-operands.c (correct_use_link): Remove linear scan.
+
+2005-04-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * system.h: Revert last change.
+
+2005-04-08 Richard Sandiford <rsandifo@redhat.com>
+
+ * config/xtensa/xtensa.h (target_flags, MASK_NO_FUSED_MADD)
+ (MASK_CONST16, TARGET_NO_FUSED_MADD, TARGET_CONST16)
+ (TARGET_SWITCHES): Delete.
+ * config/xtensa/xtensa.c (TARGET_DEFAULT_TARGET_FLAGS): Define.
+ * config/xtensa/xtensa.md (muladdsf3, mulsubsf3): Check
+ TARGET_FUSED_MADD instead of !TARGET_NO_FUSED_MADD.
+ * config/xtensa/xtensa.opt: New file.
+
+2005-04-08 Ben Elliston <bje@au.ibm.com>
+
+ * config/fp-bit.c: Include L_mul_tf in #endif comment.
+ * config/fp-bit.h: Tidy comments.
+
+2005-04-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * system.h: Poison PARAMS.
+
+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
+ match what the system unwinder expects.
+ * config/mips/mips.c (mips_frame_set): If we're saving the return
+ address register and the dwarf return address column number differs
+ from the hard register number, adjust the note reg to refer to the
+ former.
+
+2004-04-05 Richard Sandiford <rsandifo@redhat.com>
+
+ * config/mn10300/mn10300-protos.h (mn10300_override_options): Declare.
+ * config/mn10300/mn10300.h (target_flags, TARGET_MULT_BUG)
+ (TARGET_SWITCHES, TARGET_DEFAULT): Delete.
+ (processor_type): New enum.
+ (mn10300_processor): New variable.
+ (TARGET_AM33, TARGET_AM33_2): Redefine in terms of mn10300_processor.
+ (PROCESSOR_DEFAULT, OVERRIDE_OPTIONS): New macros.
+ * config/mn10300/linux.h (TARGET_SWITCHES, TARGET_DEFAULT): Delete.
+ (PROCESSOR_DEFAULT): New macro.
+ * config/mn10300/mn10300.c (mn10300_processor): New variable.
+ (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
+ (mn10300_handle_option, mn10300_override_options): New functions.
+ * config/mn10300/mn10300.opt: New file.
+
+2005-04-05 Eric Botcazou <ebotcazou@libertysurf.fr>
+ Sebastian Pop <sebastian.pop@cri.ensmp.fr>
+
+ PR tree-optimization/19903
+ * tree-chrec.c (chrec_convert): Return chrec_dont_know for constants
+ that don't fit in their type after conversion.
+
+2005-04-05 Uros Bizjak <uros@kss-loka.si>
+
+ PR target/20421
+ * config/i386/i386.md (frndintxf2_floor, frndintxf2_ceil)
+ (frndintxf2_trunc, frndintxf2_mask_pm): Add FLAGS_REG clobber.
+ Allocate local stack slots here. Set ix86_optimize_mode_switching.
+ flag here. Implement using define_insn_and_split.
+ (frndintxf2_floor_i387, frndintxf2_ceil_i387, frndintxf2_trunc_i387)
+ (frndintxf2_mask_pm_i387): New insn patterns.
+ (floorsf2, floordf2, floorxf2): Remove local stack slot allocations.
+ Do not set ix86_optimize_mode_switching flag.
+ (ceilsf2, ceildf2, ceilxf2): Same.
+ (btruncsf2, btruncdf2, btruncxf2): Same.
+ (nearbyintsf2, nearbyintdf2, nearbyintxf2): Same.
+
+2005-04-05 Ian Lance Taylor <ian@airs.com>
+
+ PR debug/9963
+ * config/i386/cygming.h (ASM_OUTPUT_EXTERNAL): Pass DECL to
+ i386_pe_record_external_function.
+ (i386_pe_record_external_function): Update declaration.
+ * config/i386/winnt.c (struct extern_list): Add decl field.
+ (i386_pe_record_external_function): Add decl parameter.
+ (i386_pe_file_end): Check TREE_ASM_WRITTEN on decl, not
+ identifier.
+ * config/i386/i386-protos.h (i386_pe_record_external_function):
+ Update declaration.
+
+2005-04-05 Kazu Hirata <kazu@cs.umass.edu>
+
+ * config/m68k/m68k-protos.h: Add a prototype for
+ valid_dbcc_comparison_p_2.
+ * config/m68k/m68k.c (not_sp_operand, symbolic_operand,
+ extend_operator, const_uint32_operand, const_sint32_operand,
+ general_src_operand, nonimmediate_src_operand,
+ memory_src_operand, post_inc_operand, pre_dec_operand,
+ pcrel_address): Move to predicates to predicates.md.
+ * config/m68k/m68k.h (PREDICATE_CODES): Remove.
+ * config/m68k/m68k.md: Include predicates.md.
+ * config/m68k/predicates.md: New.
+
+2005-04-04 Roger Sayle <roger@eyesopen.com>
+
+ * config/i386/i386.md (*truncdfsf2_i387_1): New pattern.
+
+ * fold-const.c (maybe_lvalue_p): Delete orphaned comment.
+
+2005-04-04 Ian Lance Taylor <ian@airs.com>
+
+ * c-typeck.c (struct c_switch): Rename switch_stmt field to
+ switch_expr.
+ (c_start_case): Build SWITCH_EXPR, not SWITCH_STMT.
+ (do_case): Use SWITCH_COND rather than SWITCH_STMT_COND.
+ (c_finish_case): Use SWITCH_BODY rather than SWITCH_STMT_BODY.
+ Call c_do_switch_expr_warnings rather than c_do_switch_warnings.
+ * c-common.c (c_do_switch_warnings_1): New static function broken
+ out of c_do_switch_warnings.
+ (c_do_switch_warnings): Call c_do_switch_warnings_1.
+ (c_do_switch_expr_warnings): New function.
+ * c-common.h (c_do_switch_expr_warnings): Declare.
+
+2005-04-04 David Edelsohn <edelsohn@gnu.org>
+ Daniel Jacobowitz <dan@codesourcery.com>
+
+ * tree-eh.c (tree_could_trap_p): Allow non-constant floating point
+ trapping divide.
+ * rtlanal.c (may_trap_p): Same.
+
+2005-04-04 Dale Johannesen <dalej@apple.com>
+
+ * ChangeLog: remove reference to ChangeLog.12.
+
+2005-04-05 Hans-Peter Nilsson <hp@axis.com>
+
+ CRIS epilogue as RTL.
+ * config/cris/cris.md: Change all 0 in unspec 0 to
+ CRIS_UNSPEC_PLT.
+ (CRIS_UNSPEC_PLT, CRIS_UNSPEC_FRAME_DEALLOC): New constants.
+ ("*cris_load_multiple", "cris_frame_deallocated_barrier"): New
+ patterns.
+ ("return"): Change to define_expand. Call cris_expand_return for
+ actual expansion.
+ ("*return_expanded"): New pattern.
+ ("epilogue"): New define_expand.
+ * config/cris/cris.h (PREDICATE_CODES): Add
+ cris_load_multiple_op.
+ * config/cris/cris.c (ASSERT_PLT_UNSPEC): Correct test for unspec
+ type.
+ (enum cris_retinsn_type): New.
+ (struct machine_function): New member return_type.
+ (TARGET_ASM_FUNCTION_EPILOGUE): Don't override.
+ (cris_target_asm_function_epilogue): Remove, moving RTLified
+ contents to...
+ (cris_expand_epilogue): New function.
+ (cris_reg_saved_in_regsave_area, cris_movem_load_rest_p,
+ (cris_gen_movem_load, cris_load_multiple_op)
+ (cris_return_address_on_stack_for_return, cris_expand_return): New
+ functions.
+ (cris_target_asm_function_prologue)
+ (cris_initial_frame_pointer_offset): Call
+ cris_reg_saved_in_regsave_area instead of complicated expression.
+ Call cris_return_address_on_stack instead of an expression.
+ (cris_print_operand) <case 'o', case 'O'>: New cases.
+ (cris_return_address_on_stack): Change return-type to bool.
+ (cris_simple_epilogue): Ditto. Return false if registers are
+ saved.
+ * config/cris/cris-protos.h (cris_simple_epilogue)
+ (cris_return_address_on_stack): Adjust prototype return type.
+ (cris_gen_movem_load, cris_expand_epilogue, cris_expand_return)
+ (cris_return_address_on_stack_for_return): New prototypes.
+
+2005-04-04 Kazu Hirata <kazu@cs.umass.edu>
+
+ * config/frv/frv.h (PREDICATE_CODES): Add CONST to
+ gpr_or_int12_operand.
+
+ * config/frv/frv-protos.h: Add a prototype to
+ frv_legitimate_memory_operand and frv_const_unspec_p.
+ (frv_unspec): Move from frv.c.
+ * config/frv/frv.c (frv_unspec): Move to frv-protos.h.
+ (frv_const_unspec_p, frv_legitimate_memory_operand_): Export.
+ (ldd_address_operand, fdpic_fptr_operand, frv_load_operand,
+ gpr_or_fpr_operand, gpr_or_int12_operand,
+ gpr_fpr_or_int12_operand, fpr_or_int6_operand,
+ gpr_or_int10_operand, gpr_or_int_operand, int12_operand,
+ int6_operand, int5_operand, uint5_operand, uint4_operand,
+ uint1_operand, int_2word_operand, uint16_operand,
+ upper_int16_operand, integer_register_operand,
+ gpr_no_subreg_operand, fpr_operand, even_reg_operand,
+ odd_reg_operand, even_gpr_operand, odd_gpr_operand,
+ quad_fpr_operand, even_fpr_operand, odd_fpr_operand,
+ dbl_memory_one_insn_operand, dbl_memory_two_insn_operand,
+ move_destination_operand, movcc_fp_destination_operand,
+ frv_function_symbol_referenced_p, move_source_operand,
+ condexec_dest_operand, condexec_source_operand,
+ reg_or_0_operand, lr_operand, fdpic_operand, got12_operand,
+ const_unspec_operand, gpr_or_memory_operand,
+ gpr_or_memory_operand_with_scratch, fpr_or_memory_operand,
+ icc_operand, fcc_operand, cc_operand, icr_operand,
+ fcr_operand, cr_operand, call_operand, sibcall_operand,
+ symbolic_operand, relational_operator,
+ integer_relational_operator, float_relational_operator,
+ ccr_eqne_operator, minmax_operator,
+ condexec_si_binary_operator, condexec_si_media_operator,
+ condexec_si_divide_operator, condexec_si_unary_operator,
+ condexec_sf_conv_operator, condexec_sf_add_operator,
+ condexec_memory_operand, intop_compare_operator, acc_operand,
+ even_acc_operand, quad_acc_operand, accg_operand: Move to
+ predicates.md.
+ * config/frv/frv.h (PREDICATE_CODES): Remove.
+ * config/frv/frv.md: Include predicates.md.
+ * config/frv/predicates.md: New.
+
+2004-04-04 Richard Sandiford <rsandifo@redhat.com>
+
+ PR target/19537
+ * Makefile.in (tree-ssa-loop-ivopts.o): Depend on langhooks.h.
+ * tree-ssa-loop-ivopts.c: Include langhooks.h.
+ (add_standard_iv_candidates_for_size): New function, extracting code
+ from add_standard_iv_candidates and parameterizing it by type size.
+ (add_standard_iv_candidates): Use add_standard_iv_candidates_for_size.
+
+2004-04-04 Richard Sandiford <rsandifo@redhat.com>
+
+ * system.h (GCOV_SIZE_TYPE): Unposion.
+ * gcov-io.h (GCOV_TYPE_NODE): Delete, replacing with...
+ (GCOV_TYPE_SIZE): ...this new macro.
+ * coverage.h (get_gcov_type, GCOV_TYPE_NODE): Declare.
+ * coverage.c (get_gcov_type, get_gcov_unsigned_t): New functions.
+ (rtl_coverage_counter_ref): Use GCOV_TYPE_SIZE.
+ (build_fn_info_type, build_fn_info_value, build_ctr_info_type)
+ (build_ctr_info_value, build_gcov_info): Use get_gcov_unsigned_t
+ instead of unsigned_intSI_type_node.
+ * rtl-profile.c (rtl_gen_interval_profiler, rtl_gen_pow2_profiler)
+ (rtl_gen_one_value_profiler_no_edge_manipulation)
+ (rtl_gen_const_delta_profiler): Use GCOV_TYPE_SIZE.
+ * value-prof.c: Include coverage.h.
+
2005-04-02 Daniel Berlin <dberlin@dberlin.org>
Diego Novillo <dnovillo@redhat.com>
PR target/4198
PR target/12027
* config.gcc (Obsolete configurations): Remove
- sparclite-*-coff*, sparclite-*-elf* and sparc-*-openbsd*.
+ sparclite-*-coff*, sparclite-*-elf* and sparc86x-*-elf*.
(sparclite-*-coff*): Delete.
(sparclite-*-elf*): Likewise.
(sparc86x-*-elf*): Likewise.
* tree-cfg.c (remove_useless_stmts_warn_notreached): Only warn if
the source line is greater than 0.
(remove_bb): Likewise.
-
-See ChangeLog.12 for earlier changes.