+2004-08-25 Richard B. Kreckel <richard.kreckel@framatome-anp.com>
+
+ PR target/17171
+ * config/i386/gas.h (ASM_COMMENT_START): Define to "#".
+
+2004-08-25 Richard Henderson <rth@redhat.com>
+
+ * config/alpha/alpha.c (alpha_cannot_force_const_mem): New.
+ (TARGET_CANNOT_FORCE_CONST_MEM): New.
+
+2004-08-25 Andrew MacLeod <amacleod@redhat.com>
+
+ * doc/tree-ssa.texi: Document new operand iterator.
+
+2004-08-26 Alan Modra <amodra@bigpond.net.au>
+
+ PR target/16480
+ * config/rs6000/rs6000.c (rs6000_split_multireg_move): Don't abort
+ on "(mem (symbol_ref ..))" rtl. Look at LO_SUM base regs as well
+ as PLUS base regs.
+
+2005-08-28 Paul Brook <paul@codesourcery.com>
+
+ * config/arm/symbian.h (SUBTARGET_ASM_FLOAT_SPEC): Default to
+ -mfpu=vfp -march=armv5t
+ * config/arm/t-symbian: Change multilib to mfloat-abi=softfp.
+
+2004-08-25 Richard Henderson <rth@redhat.com>
+
+ * target-def.h (TARGET_SCALAR_MODE_SUPPORTED_P): New.
+ * target.h (struct gcc_target): Add scalar_mode_supported_p.
+ * targhooks.c (default_scalar_mode_supported_p): New.
+ * targhooks.h (default_scalar_mode_supported_p): Declare.
+ * doc/tm.texi (TARGET_SCALAR_MODE_SUPPORTED_P): Document.
+
+ * c-common.c (handle_mode_attribute): Query scalar_mode_supported_p
+ before attempting to create types. Tidy.
+ * expr.c (vector_mode_valid_p): Use scalar_mode_supported_p.
+
+ * config/alpha/alpha.c (alpha_scalar_mode_supported_p): New.
+ (TARGET_SCALAR_MODE_SUPPORTED_P): New.
+
+2004-08-25 Richard Henderson <rth@redhat.com>
+
+ * config/i386/freebsd.h (SUBTARGET_OVERRIDE_OPTIONS): Don't
+ set REAL_MODE_FORMAT for TFmode.
+
+2004-08-25 Ziemowit Laski <zlaski@apple.com>
+
+ * c-decl.c (grokparm): New function.
+ * c-tree.h (grokparm): New prototype.
+
+2004-08-25 Andrew MacLeod <amacleod@redhat.com>
+
+ * tree-ssa-operands.h (struct ssa_operand_iterator_d): New. SSA operand
+ iterator controlling structure.
+ (SSA_OP_USE, SSA_OP_DEF, SSA_OP_VUSE, SSA_OP_VMAYUSE, SSA_OP_VMAYDEF,
+ SSA_OP_VMUSTDEF, SSA_OP_VIRTUAL_USES, SSA_OP_VIRTUAL_DEFS,
+ SSA_OP_ALL_USES, SSA_OP_ALL_DEFS, SSA_OP_ALL_OPERANDS): New. Operand
+ iterator flags.
+ (FOR_EACH_SSA_TREE_OPERAND): New. Iterate over operands as trees.
+ (FOR_EACH_SSA_USE_OPERAND): New. Iterate over operands as uses.
+ (FOR_EACH_SSA_DEF_OPERAND): New. Iterate over operands as defs.
+ (FOR_EACH_SSA_MAYDEF_OPERAND): New. Iterate over V_MAY_DEFs.
+ * tree-ssa-operands.c (NULL_DEF_OPERAND_P, NULL_USE_OPERAND_P): New.
+ Empty operand pointers.
+ * tree-flow-inline.h (op_iter_done): New. Return true if finished.
+ (op_iter_next_use): New. Return next use_operand_p.
+ (op_iter_next_def): New. Return next def_operand_p.
+ (op_iter_next_tree): New. Return next operands as a tree.
+ (op_iter_init): New. Initialize an iterator structure.
+ (op_iter_init_use): New. Initialize structure and get the first use.
+ (op_iter_init_def): New. Initialize structure and get the first def.
+ (op_iter_init_tree): New. Initialize structure and get the first tree.
+ (op_iter_next_maydef): New. Return next V_MAY_DEF operands.
+ (op_iter_init_maydef): New. Initialize structure and get the first
+ V_MAY_DEF operands.
+ * tree-cfg.c (tree_duplicate_bb): Use new operand iterator.
+ * tree-dfa.c (compute_immediate_uses_for_stmt,
+ redirect_immediate_uses): Use new operand iterator.
+ (v_may_defs_disappeared_p, v_must_defs_disappeared_p): Delete.
+ (mark_new_vars_to_rename): Use new operand iterator. Count virtual
+ operands instead of using *_disappeared_p routines.
+ * tree-into-ssa.c (mark_def_sites, ssa_mark_def_sites, rewrite_stmt,
+ ssa_rewrite_stmt): Use new operand iterator.
+ * tree-outof-ssa.c (check_replaceable, find_replaceable_in_bb,
+ rewrite_trees): Use new operand iterator.
+ * tree-pretty-print.c (dump_vops): Use new operand iterator.
+ * tree-sra.c (mark_all_v_defs): Use new operand iterator.
+ * tree-ssa-alias.c (compute_points_to_and_addr_escape,
+ dump_points_to_info): Use new operand iterator.
+ * tree-ssa-ccp.c (cp_lattice_meet, visit_stmt, initialize,
+ replace_uses_in, replace_vuse_in, likely_value, set_rhs): Use new
+ operand iterator.
+ * tree-ssa-dce.c (mark_stmt_if_obviously_necessary,
+ propagate_necessity): Use new operand iterator.
+ * tree-ssa-dom.c (cprop_into_stmt, optimize_stmt): Use operand iterator.
+ (register_definitions_for_stmt): Use new operand iterator. Take stmt as
+ a parameter instead of a stmt_ann_t.
+ * tree-ssa-live.c (create_ssa_var_map, calculate_live_on_entry,
+ build_tree_conflict_graph): Use new operand iterator.
+ * tree-ssa-loop-im.c (determine_max_movement, single_reachable_address,
+ rewrite_mem_refs): Use new operand iterator.
+ * tree-ssa-loop-manip.c (find_uses_to_rename_stmt,
+ check_loop_closed_ssa_use): Use new operand iterator.
+ * tree-ssa.c (verify_ssa, replace_immediate_uses): Use operand iterator.
+ * tree-ssanames.c (release_defs): Use new operand iterator.
+ * tree-vectorizer.c (vect_create_data_ref): Use new operand iterator.
+
+2004-08-25 Adam Nemet <anemet@lnxw.com>
+
+ * tlink.c (initial_cwd): New variable.
+ (tlink_init): Initialize it.
+ (recompile_files): Use tlink_execute() instead of system(). Don't
+ duplicate verbose output of collect_execute. Restore initial_cwd.
+ Update comment before the function.
+
+2004-08-25 Ziemowit Laski <zlaski@apple.com>
+
+ * c-typeck.c (build_c_cast): In ObjC, always preserve (and silently
+ accept) a cast from one Objective-C pointer type to another.
+
+2004-08-25 Paolo Carlini <pcarlini@suse.de>
+
+ * doc/install.texi: Document that libstdc++-v3 requires
+ now automake 1.9.1.
+
+2004-08-25 Caroline Tice <ctice@apple.com>
+
+ * bb-reorder.c (partition_hot_cold_basic_blocks): Add more details
+ to comments at start of function.
+ * cfgbuild.c (make_edges): Add more details to hot/cold partitioning
+ comment.
+ * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
+ merge_blocks_move_predecessor_nojumps,
+ merge_blocks_move_successor_nojumps, merge_blocks_move,
+ try_crossjump_to_edge, try_crossjump_bb): Likewise.
+ * cfglayout.c (fixup_reorder_chain): Likewise.
+ * cfgrtl.c (rtl_can_merge_blocks, try_redirect_by_replacing_jump,
+ cfg_layout_can_merge_blocks_p): Likewise.
+ * ifcvt.c (find_if_case_1, find_if_case_2): Likewise.
+ * passes.c (rest_of_compilation): Update comments for calling
+ optimization that partitions hot/cold basic blocks.
+ * doc/invoke.texi: Update documentation of
+ freorder-blocks-and-partition flag.
+
+2004-08-25 Richard Sandiford <rsandifo@redhat.com>
+
+ * config/mips/mips.md (reg): Renamed mode attribute from ccreg.
+ (*mov*_on_*): Adjust accordingly. Add an explicit MOVECC: prefix.
+
+2004-08-25 Richard Sandiford <rsandifo@redhat.com>
+
+ * config/mips/mips.md (any_shift): New code macro.
+ (optab, insn): New code attributes.
+ ({ashl,ashr,lshr}[sd]i3): Redefine using :GPR and any_shift.
+ Use the standard rather than internal patterns for the MIPS16
+ double-shift optimization.
+ (*{ashl,ashr,lshr}[sd]i3): New names for the non-mips16 shift patterns.
+ Redefine using :GPR and any_shift.
+ (*{ashl,ashr,lshr}si3_extend): Generalize ashlsi3_internal1_extend
+ to cover all three shifts.
+ (*{ashl,ashr,lshr}si3_mips16): New names for the mips16 SImode shifts.
+ Redefine using any_shift. Use :GPR and any_shift to combine splitters.
+ (*{ashl,ashr,lshr}di3_mips16): New names for the mips16 DImode shifts.
+
+2004-08-24 Geoffrey Keating <geoffk@apple.com>
+
+ * gimplify.c (lookup_tmp_var): Separate temporaries when not
+ optimizing.
+
+2004-08-25 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ PR libstdc++/17005 (fix for HP-UX 11.11)
+ * config.gcc (hppa*-*-*): Move MASK_BIG_SWITCH to target_cpu_default2.
+ (hppa*-*-hpux*): Consolidate hppa1.0-*-* code. Rework handling of
+ tm_file including pa-hpux1010.h or pa-hpux1111.h when appropriate.
+ * config/pa/pa-hpux1010.h, config/pa/pa-hpux1111.h: New files.
+ * config/pa/pa-hpux.h (TARGET_HPUX): Define.
+ (LINK_SPEC): Handle march=1.0 option.
+ * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Predefine _XOPEN_UNIX
+ and _XOPEN_SOURCE_EXTENDED for UNIX 95.
+ (SUBTARGET_OPTIONS): New define.
+ (LINK_SPEC): Handle march=1.0 option.
+ (STARTFILE_SPEC): New define.
+ * config/pa/pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Predefine _XOPEN_UNIX
+ and _XOPEN_SOURCE_EXTENDED for UNIX 95. Additionally, predefine
+ _INCLUDE__STDC_A1_SOURCE and _INCLUDE_XOPEN_SOURCE_500 for UNIX 98.
+ (SUBTARGET_OPTIONS): New define.
+ (LINK_SPEC): Handle march=1.0 option.
+ (STARTFILE_SPEC): New define.
+ * config/pa/pa.c (override_options): Add code to process -munix= option.
+ * config/pa/pa.h (pa_unix_string, flag_pa_unix): Declare.
+ (TARGET_HPUX, TARGET_HPUX_10_10, TARGET_HPUX_11_11): Provide default
+ defines.
+ (TARGET_OPTIONS): Add SUBTARGET_OPTIONS to option list.
+ (SUBTARGET_OPTIONS): Provide default define.
+ * config/pa/pa64-hpux.h (STANDARD_STARTFILE_PREFIX_1,
+ STANDARD_STARTFILE_PREFIX_2): New defines.
+ (STARTFILE_SPEC): Provide unix95.o or unix98.o startfiles as necessary.
+ (ENDFILE_SPEC): Use %O.
+ * doc/install.texi (hppa*-*-hpux*): Reword paragraph on -g and gas.
+ Mention issue caused by changing namespace and runtime to UNIX 95/98.
+ * doc/invoke.texi (HPPA options): Move misplaced text to FRV options.
+ Document -munix=std option.
+
+2004-08-25 Steven Bosscher <stevenb@suse.de>
+
+ * cse.c (cse_around_loop, cse_check_loop_start,
+ cse_set_around_loop): Remove.
+ (cse_basic_block): Remove the around_loop argument.
+ (cse_end_of_basic_block): Remove the after_loop argument.
+ (cse_main): Likewise.
+ * rtl.h (cse_main): Update prototype.
+ * passes.c (rest_of_handle_cse, rest_of_handle_cse2,
+ rest_of_handle_gcse): Update cse_main calls.
+
+2004-08-25 Nathan Sidwell <nathan@codesourcery.com>
+
+ * tree.h (build_int_cst): New, sign extended constant.
+ (build_int_cstu): New, zero extended constant.
+ (build_int_cst_wide): Renamed from build_int_cst.
+ * tree.c (build_int_cst, build_int_cstu): New.
+ (build_int_cst_wide): Renamed from build_int_cst.
+ (make_vector_type, build_common_tree_nodes,
+ build_common_tree_nodes_2): Adjust build_int_cst calls.
+ * builtins.c (expand_builtin_prefetch, expand_builtin_strstr,
+ expand_builtin_strpbrk, expand_builtin_fputs,
+ build_string_literal, expand_builtin_printf,
+ expand_builtin_sprintf, fold_builtin_classify_type,
+ fold_builtin_lround, fold_builtin_bitop, fold_builtin_isascii,
+ fold_builtin_toascii, fold_builtin_isdigit,
+ simplify_builtin_strstr, simplify_builtin_strpbrk,
+ fold_builtin_fputs, simplify_builtin_sprintf): Likewise.
+ * c-common.c (start_fname_decls, fix_string_type, shorten_compare,
+ DEF_ATTR_INT): Likewise.
+ * c-decl.c (complete_array_type, check_bitfield_type_and_width):
+ Likewise.
+ * c-lex.c (interpret_integer, lex_charconst): Likewise.
+ * c-parse.in (primary) <TYPES_COMPATIBLE_P> Likewise.
+ * c-pretty-print.c (pp_c_integer_constant): Likewise.
+ * c-typeck.c (really_start_incremental_init, push_init_level,
+ set_nonincremental_init_from_string): Likewise.
+ * calls.c (load_register_parameters): Likewise.
+ convert.c (convert_to_pointer): Likewise.
+ coverage.c (coverage_counter_alloc, tree_coverage_counter_ref,
+ build_fn_info_type, build_fn_info_value, build_ctr_info_value,
+ build_gcov_info): Likewise.
+ * except.c (init_eh, assign_filter_values): Likewise.
+ * expmed.c (store_fixed_bit_field, extract_bit_field,
+ extract_fixed_bit_field, extract_split_bit_field, expand_shift,
+ expand_mult_const, expand_mult_highpart_adjust, extract_high_half,
+ expand_sdiv_pow2, expand_divmod, make_tree): Likewise.
+ * expr.c (convert_move, emit_group_load, emit_group_store,
+ expand_assignment, store_constructor, store_field,
+ expand_expr_real_1, reduce_to_bit_field_precision): Likewise.
+ fold-const.c (force_fit_type, int_const_binop, fold_convert_const,
+ invert_truthvalue, optimize_bit_field_compare,
+ decode_field_reference, all_ones_mask_p, constant_boolean_node,
+ fold_div_compare, fold, fold_read_from_constant_string,
+ fold_negate_const, fold_abs_const, fold_not_const, round_up,
+ round_down): Likewise.
+ * function.c (assign_parm_setup_block): Likewise.
+ * stmt.c (shift_return_value, expand_case, estimate_case_costs):
+ Likewise.
+ * stor-layout.c (layout_type, initialize_sizetypes,
+ set_min_and_max_values_for_integral_type): Likewise.
+ * tree-chrec.c (chrec_fold_multiply_poly_poly,
+ reset_evolution_in_loop): Likewise.
+ * tree-chrec.h (build_polynomial_chrec): Likewise.
+ * tree-complex.c (build_replicated_const): Likewise.
+ * tree-eh.c (honor_protect_cleanup_actions,
+ lower_try_finally_onedest, lower_try_finally_copy,
+ lower_try_finally_switch): Likewise.
+ * tree-mudflap.c (mf_build_string, mx_register_decls,
+ mudflap_register_call, mudflap_enqueue_constant): Likewise.
+ * tree-nested.c (get_trampoline_type, get_nl_goto_field): Likewise.
+ * tree-pretty-print.c (dump_generic_node): Likewise.
+ * tree-ssa-ccp.c (widen_bitfield, maybe_fold_offset_to_array_ref):
+ Likewise.
+ * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
+ * tree-ssa-loop-niter.c (number_of_iterations_cond,
+ loop_niter_by_eval, upper_bound_in_type, lower_bound_in_type):
+ Likewise.
+ * tree-ssa-loop-ivcanon.c (create_canonical_iv,
+ canonicalize_loop_induction_variables): Likewise.
+ * tree-vectorizer.c (vect_create_index_for_array_ref,
+ vect_transform_loop_bound, vect_compute_data_ref_alignment):
+ Likewise.
+
+ * config/alpha/alpha.c (alpha_initialize_trampoline, alpha_va_start,
+ alpha_gimplify_va_arg_1): Likewise.
+ * config/arm/arm.c (arm_get_cookie_size): Likewise.
+ * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Likewise.
+ * config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise.
+ * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
+ * config/mips/mips.c (mips_build_builtin_va_list, mips_va_start,
+ mips_gimplify_va_arg_expr): Likewise.
+ * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
+ * config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg,
+ add_compiler_branch_island): Likewise.
+ * config/s390/s390.c (s390_va_start): Likewise.
+ * config/sh/sh.c (sh_va_start): Likewise.
+ * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
+ Likewise.
+ * config/xtensa/xtensa.c (xtensa_va_start,
+ xtensa_gimplify_va_arg_expr): Likewise.
+
+ * objc/objc-act.c (build_objc_string_object,
+ build_objc_symtab_template, init_def_list, init_objc_symtab,
+ init_module_descriptor, generate_static_references,
+ build_selector_translation_table, get_proto_encoding,
+ build_typed_selector_reference, build_selector_reference,
+ build_next_objc_exception_stuff,
+ build_method_prototype_list_template, generate_descriptor_table,
+ generate_protocols, build_protocol_initializer,
+ build_ivar_list_template, build_method_list_template,
+ build_ivar_list_initializer, generate_ivars_list,
+ generate_dispatch_table, generate_protocol_list,
+ build_category_initializer, build_shared_structure_initializer,
+ generate_shared_structures, handle_impent,
+ generate_objc_image_info): Likewise.
+
+2004-04-25 Paolo Bonzini <bonzini@gnu.org>
+
+ * cfglayout.c (duplicate_insn_chain): Remove references to
+ NOTE_INSN_LOOP_VTOP and NOTE_INSN_LOOP_CONT.
+ * cfgloop.h (struct loop): Remove fields vtop, cont and cont_dominator.
+ * cfgrtl.c (rtl_delete_block): Remove handling of NOTE_INSN_LOOP_CONT.
+ * final.c (final_scan_insn): Remove references to NOTE_INSN_LOOP_VTOP
+ and NOTE_INSN_LOOP_CONT.
+ * insn-notes.def (NOTE_INSN_LOOP_VTOP, NOTE_INSN_LOOP_CONT): Remove.
+ * jump.c (squeeze_notes): Remove references to NOTE_INSN_LOOP_VTOP
+ and NOTE_INSN_LOOP_CONT.
+ * loop.c (scan_loops, find_and_verify_loops, for_each_insn_in_loop,
+ check_dbra_loop, loop_dump_aux): Remove references to removed notes
+ and fields.
+ * reorg.c (mostly_true_jump): Do not rely on NOTE_INSN_LOOP_VTOPs.
+ * unroll.c (unroll_loop, copy_loop_body, loop_iterations): Remove
+ references to removed notes and fields.
+ (subtract_reg_term, ujump_to_loop_cont): Remove.
+
+2004-08-25 Paolo Bonzini <bonzini@gnu.org>
+
+ * doc/install.texi: Document that libcpp does not require
+ Automake any longer. Document that Automake 1.9.1 should
+ work everywhere.
+
+2004-08-25 Zack Weinberg <zack@codesourcery.com>
+
+ * flags.h (enum debug_info_type): Remove DWARF_DEBUG.
+ * defaults.h (PREFERRED_DEBUGGING_TYPE): Remove check for
+ DWARF_DEBUGGING_INFO from choice-of-definition chain;
+ restructure using C89 features (#elif, #error).
+ * c-lex.c, final.c, opts.c, config/cris/cris.c, config/frv/frv.c
+ * config/sh/sh.h: Remove references to DWARF_DEBUG.
+ * doc/invoke.texi: Remove references to DWARF version 1;
+ clarify why -gdwarf-2<n> doesn't work.
+
+2004-08-25 Zack Weinberg <zack@codesourcery.com>
+
+ * basic-block.h (BB_SET_PARTITION): Clear old value first.
+ * cfg.c (clear_bb_flags): Don't clear partition setting.
+ * ifcvt.c (find_if_case_1): Remove ??? comment.
+
+2004-08-25 Alan Modra <amodra@bigpond.net.au>
+
+ PR target/17052
+ * config/rs6000/rs6000.h (machine_function): Remove sysv_varargs_p.
+ * config/rs6000/sysv4.h (RS6000_VARARGS_AREA): Use
+ current_function_stdarg in place of sysv_varargs_p.
+ * config/rs6000/rs6000.c (setup_incoming_varargs): Don't set
+ sysv_varargs_p.
+
+2004-08-24 Richard Henderson <rth@redhat.com>
+
+ PR target/16298
+ * config/i386/i386.c (legitimate_constant_p): Rework to not accept
+ random codes within CONST.
+
+2004-08-24 James E Wilson <wilson@specifixinc.com>
+
+ * Makefile.in (STAGEFEEDBACK_FLAGS_TO_PASS): Remove
+ -freorder-blocks-and-partition.
+
+2004-08-24 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ PR middle-end/17044
+ * tree-ssa-threadupdate.c (redirection_data): Make static.
+ (thread_block): Use ggc_alloc_cleared to allocate struct
+ redirection_data. Don't free elements in redirection_data.
+
+2004-08-24 Richard Sandiford <rsandifo@redhat.com>
+
+ * config/mips/predicates.md (small_data_pattern): Match prefetches.
+
+2004-08-24 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ PR tree-optimization/17016
+ * tree-ssa-loop-niter.c (number_of_iterations_cond,
+ number_of_iterations_exit): Use POINTER_TYPE_P instead
+ of testing for POINTER_TYPE.
+
+2004-08-24 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ * tree-ssa-loop-ivcanon.c: New file.
+ * tree-ssa-loop-manip.c (create_iv): New function.
+ * Makefile.in (tree-ssa-loop-ivcanon.o): Add.
+ (tree-ssa-loop.o, tree-ssa-loop-manip.o): Add SCEV_H dependency.
+ * cfgloop.c (mark_single_exit_loops): New function.
+ (verify_loop_structure): Verify single-exit loops.
+ * cfgloop.h (struct loop): Add single_exit field.
+ (LOOPS_HAVE_MARKED_SINGLE_EXITS): New constant.
+ (mark_single_exit_loops): Declare.
+ (tree_num_loop_insns): Declare.
+ * cfgloopmanip.c (update_single_exits_after_duplication): New function.
+ (duplicate_loop_to_header_edge): Use it.
+ * common.opt (fivcanon): New flag.
+ * timevar.def (TV_TREE_LOOP_IVCANON, TV_COMPLETE_UNROLL): New timevars.
+ * tree-cfg.c (tree_find_edge_insert_loc): Return newly created block.
+ (bsi_commit_edge_inserts_1): Pass null to tree_find_edge_insert_loc.
+ (bsi_insert_on_edge_immediate): New function.
+ * tree-flow.h (bsi_insert_on_edge_immediate,
+ canonicalize_induction_variables, tree_unroll_loops_completely,
+ create_iv): Declare.
+ * tree-optimize.c (init_tree_optimization_passes): Add
+ pass_iv_canon and pass_complete_unroll.
+ * tree-pass.h (pass_iv_canon, pass_complete_unroll): Declare.
+ * tree-scalar-evolution.c (get_loop_exit_condition,
+ get_exit_conditions_rec, number_of_iterations_in_loop,
+ scev_initialize): Use single_exit information.
+ * tree-ssa-loop-niter.c (number_of_iterations_cond): Record
+ missing assumptions.
+ (loop_niter_by_eval): Return number of iterations as unsigned
+ int.
+ * tree-ssa-loop.c (tree_ssa_loop_init): Mark single exit loops.
+ (tree_ssa_loop_ivcanon, gate_tree_ssa_loop_ivcanon, pass_iv_canon,
+ tree_complete_unroll, gate_tree_complete_unroll, pass_complete_unroll):
+ New passes.
+ (tree_ssa_loop_done): Call free_numbers_of_iterations_estimates.
+ * tree-ssanames.c (make_ssa_name): Allow creating ssa name before
+ the defining statement is ready.
+ * tree-vectorizer.c (vect_create_iv_simple): Removed.
+ (vect_create_index_for_array_ref, vect_transform_loop_bound):
+ Use create_iv.
+ (vect_transform_loop_bound): Use single_exit information.
+ (vect_analyze_loop_form): Cleanup bogus tests.
+ (vectorize_loops): Do not call flow_loop_scan.
+ * tree.h (may_negate_without_overflow_p): Declare.
+ * fold-const.c (may_negate_without_overflow_p): Split out from ...
+ (negate_expr_p): ... this function.
+ (tree_expr_nonzero_p): Handle overflowed constants correctly.
+ * doc/invoke.texi (-fivcanon): Document.
+ * doc/passes.texi: Document canonical induction variable creation.
+
+2004-08-24 Richard Sandiford <rsandifo@redhat.com>
+
+ * config/mips/mips.h (ISA_HAS_INT_CONDMOVE): Delete.
+ * config/mips/mips.c (print_operand): Fold %B/%b handling into %T/%t,
+ using the mode of the operand to decide between them.
+ * config/mips/mips.md (MOVECC): New mode macro.
+ (ccreg): New mode attribute.
+ (*mov{si,di,sf,df}_on_{cc,si,di}): Name formerly unnamed patterns.
+ Redefine using :GPR and :MOVECC. Use %T and %t for the condition.
+ (mov[sd]icc): Redefine using :GPR.
+
+2004-08-24 Richard Sandiford <rsandifo@redhat.com>
+
+ * config/mips/mips-protos.h (mips_emit_prefetch): Delete.
+ (mips_prefetch_cookie): New function.
+ * config/mips/mips.c (print_operand_address): Fix handling of
+ ADDRESS_CONST_INT.
+ (mips_emit_prefetch): Delete.
+ (mips_prefetch_cookie): New function.
+ * config/mips/mips.md (prefetch): Turn into a define_insn. Use a
+ mode of QImode for the address_operand. Use mips_prefetch_cookie
+ to calculate the first "pref" operand.
+ (prefetch_[sd]i, prefetch_[sd]i_address): Delete.
+ (prefetch_indexed_[sd]i): Redefine using :P. Use mips_prefetch_cookie.
+
2004-08-24 Richard Earnshaw <rearnsha@arm.com>
* arm.md: Include predicates.md.