OSDN Git Service

* config/rs6000/rs6000.c (rs6000_stack_info): Correct alignment of
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index f19a4f4..c61f9b1 100644 (file)
@@ -1,3 +1,914 @@
+2004-09-09  Alan Modra  <amodra@bigpond.net.au>
+
+       * config/rs6000/rs6000.c (rs6000_stack_info): Correct alignment of
+       save_size.
+
+2004-09-08  David Edelsohn  <edelsohn@gnu.org>
+
+       * config/rs6000/power4.md (power4-lmul): du4 feeds iu1.
+       * config/rs6000/power5.md (power5-lmul): Same.
+
+2004-09-08  Richard Henderson  <rth@redhat.com>
+
+       PR rtl-opt/17186
+       * function.c (expand_function_end): Have fall-off-the-end
+       return path jump around return register setup.
+
+2004-09-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
+
+       * config/sparc/sparc.c (sparc_indent_opcode): New variable.
+       (output_return): Do not test for the presence of the 'unimp' insn.
+       Use 'current_function_uses_only_leaf_regs' and 'final_sequence'
+       as predicates instead of custom ones.  Return raw strings when
+       possible.
+       (output_sibcall): Likewise.  Concatenate strings.
+       (output_ubranch): Remove kludge for TurboSPARC.
+       (output_cbranch): Remove 'noop' parameter.  Do not output 'nop'.
+       (output_v9branch): Likewise.
+       (print_operand): Use 'final_sequence' instead of 'dbr_sequence_length'.
+       <#>: Set sparc_indent_opcode if the delay slot is filled.
+       <(>: Likewise.
+       <)>: New operand to emit the displacement from the saved PC on return.
+       <@>: Remove.
+       * config/sparc/sparc.h (sparc_indent_opcode): Declare it.
+       (ASM_OUTPUT_OPCODE): New macro.
+       (PRINT_OPERAND_PUNCT_VALID_P): Remove '^' and add ')'.
+       * config/sparc/sparc.md (normal_branch, inverted_branch,
+       normal_fp_branch, inverted_fp_branch, normal_fpe_branch,
+       inverted_fpe_branch): Adjust call to output_cbranch.
+       (normal_int_branch_sp64, inverted_int_branch_sp64): Adjust
+       call to output_v9branch.
+       * config/sparc/sparc-protos.h (output_cbranch): Adjust.
+       (output_v9branch): Likewise.
+
+2004-09-08  Devang Patel  <dpatel@apple.com>
+
+       * config/darwin.h  (TARGET_OPTION_TRANSLATE_TABLE): Add -segaddr,
+       -segs_read_only_addr and -segs_read_write_addr.
+       (WORD_SWITCH_TAKES_ARG): Same.
+       (LINK_SPEC): Same.
+       * doc/invoke.texi: Document -segaddr, -segs_read_only_addr and
+       -segs_read_write_addr.
+
+2004-09-08  Richard Henderson  <rth@redhat.com>
+
+       * function.c (reference_callee_copied): New.
+       (assign_parm_setup_reg): Use it.
+       * calls.c (initialize_argument_information): Likewise.
+       (emit_library_call_value_1): Likewise.
+       * function.h (reference_callee_copied): Declare.
+
+       * target.h (struct gcc_target): Add callee_copies.
+       * target-def.h (TARGET_CALLEE_COPIES): New.
+       (TARGET_PASS_BY_REFERENCE): Update default.
+       * expr.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
+       * targhooks.c (hook_callee_copies_named): New.
+       (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Rename from
+       hook_pass_by_reference_false.
+       (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): New.
+       * targhooks.h: Update decls.
+       * config/arc/arc.c (TARGET_CALLEE_COPIES): New.
+       * config/arc/arc.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
+       * config/frv/frv-protos.h (frv_function_arg_callee_copies): Remove.
+       * config/frv/frv.c (frv_function_arg_callee_copies): Remove.
+       * config/frv/frv.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
+       * config/iq2000/iq2000.c (TARGET_CALLEE_COPIES): New.
+       * config/iq2000/iq2000.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
+       * config/m68hc11/m68hc11.c (TARGET_CALLEE_COPIES): New.
+       * config/m68hc11/m68hc11.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
+       * config/mips/mips.c (TARGET_CALLEE_COPIES): New.
+       (mips_callee_copies): New.
+       * config/mips/mips.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
+       * config/mmix/mmix.c (TARGET_CALLEE_COPIES): New.
+       * config/mmix/mmix.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
+       * config/mn10300/mn10300.c (TARGET_CALLEE_COPIES): New.
+       * config/mn10300/mn10300.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
+       * config/pa/pa.c (TARGET_CALLEE_COPIES): New.
+       * config/pa/pa.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
+       * config/sh/sh.c (sh_callee_copies): New.
+       (TARGET_CALLEE_COPIES): New.
+       * config/sh/sh.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
+       * config/v850/v850.c (TARGET_CALLEE_COPIES): New.
+       * config/v850/v850.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
+       * doc/tm.texi (TARGET_CALLEE_COPIES): Replace documentation
+       for FUNCTION_ARG_CALLEE_COPIES.
+       * doc/rtl.texi (CALL_INSN_FUNCTION_USAGE): Update.
+
+2004-09-08  Devang Patel  <dpatel@apple.com>
+
+       * tree-if-conv.c (find_phi_replacement_condition): Return true
+       edge block.
+       (replace_phi_with_cond_modify_expr): Select conditional expr args
+       based on true edge basic block.
+       
+2004-09-08  Jan Hubicka  <jh@suse.cz>
+
+       * tree-ssa-operands.c (add_stmt_operand): Use V_MUST_DEF even for
+       variables being alias set.
+
+2004-09-08  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * final.c (shorten_branches, final, get_insn_template,
+       output_alternate_entry_point, final_scan_insn, alter_subreg,
+       alter_cond, output_operand, asm_fprintf, final_forward_branch_p,
+       leaf_renumber_regs_insn): Use gcc_assert and gcc_unreachable.
+       * fix-header.c (lookup_std_proto): Likewise.
+       * flow.c (first_insn_after_basic_block_note, verify_wide_reg,
+       verify_local_live_at_start, update_life_info, mark_reg,
+       calculate_global_regs_live, allocate_reg_life_data,
+       init_propagate_block_info, mark_set_regs, flush_reg_cond_reg_1,
+       ior_reg_cond, not_reg_cond, and_reg_cond, elim_reg_cond,
+       attempt_auto_inc, mark_used_reg, mark_used_regs): Likewise.
+       * fold-const.c (force_fit_type, div_and_round_double,
+       may_negate_without_overflow_p, int_const_binop, const_binop,
+       size_binop, size_diffop, fold_convert_const, fold_convert,
+       invert_tree_comparison, swap_tree_comparison,
+       comparison_to_compcode, compcode_to_comparison, invert_truthvalue,
+       range_binop, make_range, fold_cond_expr_with_comparison,
+       fold_div_compare, fold, fold_checksum_tree, fold_negate_const,
+       fold_abs_const, fold_not_const, fold_relational_const, round_up,
+       round_down): Likewise.
+       * function.c (find_function_data, assign_stack_temp_for_type,
+       instantiate_virtual_regs_lossage, aggregate_value_p,
+       assign_parm_find_entry_rtl, assign_parm_setup_block,
+       expand_function_start, expand_function_end, keep_stack_depressed,
+       handle_epilogue_set, thread_prologue_and_epilogue_insns): Likewise.
+
+2004-09-08  Daniel Berlin  <dberlin@dberlin.org>
+
+       * Makefile.in (tree-loop-linear.o): Added.
+       (OBJS-common): Add tree-loop-linear.o
+       * common.opt: New flag, ftree-loop-linear.
+       * timevar.def: New timevar, TV_TREE_LOOP_LINEAR.
+       * tree-flow.h: Add prototype for linear_transform_loops.
+       * tree-optimize.c: Add linear transform after vectorization.
+       * tree-pass.h: Add struct pass_linear_transform.
+       * tree-ssa-loop.c: Add pass_linear_transform.
+       * tree-loop-linear.c: New file.
+       * lambda-code.c: gcc_assertify.
+       (gcc_loop_to_lambda_loop): Handle all exit tests.
+       Handle case where we have (invariant >= induction var).
+       (find_induction_var_from_exit_cond): Ditto.
+       
+2004-09-08  Jie Zhang  <zhangjie@magima.com.cn>
+
+       * tree-ssa-alias.c (compute_flow_insensitive_aliasing): If type
+       memory tag is call clobbered, so are its aliases.
+       (group_aliases): When two memory tags being grouped, if one is
+       call clobbered, so are the other and its aliases.
+       (add_may_alias): Remove call-clobbering stuff.
+       (replace_may_alias): Likewise.
+       (merge_pointed_to_info): Merge pt_global_mem
+
+2004-09-08  Jan Hubicka  <jh@suse.cz>
+
+       * cgraph.c (cgraph_remove_node): Free DECL_INITIAL field of node.
+       * cgraphunit.c (verify_cgraph): Don't verify on syntax errors.
+       (cgraph_expand_function): Remove stale cgraph edges of currently
+       compiled function; fix non-unit-at-a-time code copying function
+       node for later reuse.
+
+2004-09-08  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * vec.c (vec_p_reserve, vec_o_reserve): Rename to ...
+       (vec_gc_p_reserve, vec_gc_o_reserve): ... here. Clone to
+       (vec_heap_p_reserve, vec_heap_o_reserve): ... here, adjust.
+       (vec_gc_free, vec_heap_free): New.
+       * vec.h (DEF_VEC_GC_P, DEF_VEC_MALLOC_P): New.
+       (DEF_VEC_P): Add allocator argument. Adjust.
+       (DEF_VEC_GC_O, DEF_VEC_MALLOC_O): New.
+       (DEF_VEC_O): Add allocator argument. Adjust.
+       (VEC(free)): New.
+
+       * tree.h (tree): Define a GC'd vector.
+       * lamba-code.c (lambda_loop): Likewise.
+       * value-prof.h (histogram_value): Likewise.
+
+2004-09-08  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * emit-rtl.c (immed_double_const): Use gcc_assert and gcc_unreachable.
+       (gen_rtx_SUBREG, gen_reg_rtx, mark_user_reg, subreg_hard_regno,
+       gen_lowpart_common, gen_highpart, gen_highpart_mode,
+       subreg_highpart_offset, operand_subword, operand_subword_force,
+       mem_expr_equal_p, set_mem_attributes_minus_bitpos,
+       set_mem_alias_set, change_address_1, verify_rtx_sharing,
+       copy_most_rtx, set_first_insn, set_last_insn, prev_cc0_setter,
+       try_split, add_insn_after, add_insn_before, remove_insn,
+       remove_unnecessary_notes, emit_insn_before, emit_jump_insn_before,
+       emit_call_insn_before, emit_insn_after, emit_jump_insn_after,
+       emit_call_insn_after, emit_insn, emit_jump_insn, emit_call_insn,
+       set_unique_reg_note, emit, push_to_full_sequence, copy_insn_1,
+       gen_const_vector_0, emit_copy_of_insn_after): Likewise.
+       * et-forest.c (set_prev, set_next, et_check_occ_sanity,
+       record_path_before_1, check_path_after_1, check_path_after): Likewise.
+       * except.c (gen_eh_region, resolve_one_fixup_region,
+       remove_unreachable_regions, convert_from_eh_region_ranges_1,
+       add_ehl_entry, duplicate_eh_region_1, build_post_landing_pads,
+       connect_post_landing_pads, sjlj_emit_function_exit,
+       remove_exception_handler_label, remove_eh_handler,
+       reachable_next_level, collect_one_action_chain,
+       output_function_exception_table): Likewise.
+       * explow.c (trunc_int_for_mode, copy_to_mode_reg,
+       optimize_save_area_alloca, allocate_dynamic_stack_space,
+       probe_stack_range, hard_function_value): Likewise.
+       * expmed.c (mode_for_extraction, store_bit_field,
+       store_fixed_bit_field, extract_bit_field, expand_shift,
+       expand_mult_const, expand_mult, choose_multiplier,
+       expand_mult_highpart, expand_divmod, emit_store_flag,
+       do_cmp_and_jump): Likewise.
+       * expr.c (convert_move, convert_modes, move_by_pieces,
+       move_by_pieces_ninsns, move_by_pieces_1, emit_block_move,
+       move_block_from_reg, gen_group_rtx, emit_group_load,
+       emit_group_move, emit_group_store, use_reg, use_regs,
+       can_store_by_pieces, store_by_pieces, store_by_pieces_1,
+       emit_move_insn, emit_move_insn_1, emit_push_insn,
+       expand_assignment, store_expr, count_type_elements,
+       store_constructor, store_field, safe_from_p, expand_var,
+       expand_expr_addr_expr, expand_expr_real_1, do_store_flag): Likewise.
+
+2004-09-08  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * dbxout.c (dbxout_type, dbxout_type_name, dbxout_symbol): Use
+       gcc_assert and gcc_unreachable.
+       * ddg.c (create_ddg_dependence, add_deps_for_def,
+       add_deps_for_use, create_ddg, add_edge_to_ddg): Likewise.
+       * df.c (df_ref_unlink, df_ref_record, df_uses_record,
+       df_reg_def_chain_create, df_reg_use_chain_create, df_analyze,
+       df_insn_delete, df_refs_reg_replace, df_ref_reg_replace,
+       df_insns_modify, df_pattern_emit_before, df_bb_reg_live_start_p,
+       df_bb_reg_live_end_p, df_bb_regs_lives_compare,
+       df_bb_single_def_use_insn_find, dataflow_set_a_op_b,
+       dataflow_set_copy, hybrid_search, diagnostic.c,
+       diagnostic_build_prefix, diagnostic_count_diagnostic): Likewise.
+       * dojump.c (do_jump): Likewise.
+       * dominance.c (calc_dfs_tree_nonrec, calc_dfs_tree,
+       compute_dom_fast_query, calculate_dominance_info,
+       free_dominance_info, get_immediate_dominator,
+       set_immediate_dominator, get_dominated_by,
+       redirect_immediate_dominators, nearest_common_dominator,
+       dominated_by_p, verify_dominators, recount_dominator,
+       iterate_fix_dominators, add_to_dominance_info,
+       delete_from_dominance_info): Likewise.
+       * dwarf2asm.c (size_of_encoded_value, eh_data_format_name,
+       dw2_asm_output_delta_uleb128, dw2_asm_output_delta_sleb128,
+       dw2_force_const_mem, dw2_asm_output_encoded_addr_rtx): Likewise.
+       * dwarf2out.c (expand_builtin_init_dwarf_reg_sizes, reg_save,
+       initial_return_save, stack_adjust_offset, dwarf2out_stack_adjust,
+       flush_queued_reg_saves, dwarf2out_frame_debug_expr,
+       dwarf2out_frame_debug, dw_cfi_oprnd1_desc, output_cfi,
+       output_call_frame_info, output_loc_operands, build_cfa_loc,
+       decl_ultimate_origin, AT_flag, AT_int, AT_unsigned, AT_string,
+       AT_string_form, add_AT_specification, AT_ref, set_AT_ref_external,
+       AT_loc, AT_loc_list, AT_addr, AT_lbl, add_child_die,
+       splice_child_die, attr_checksum, same_dw_val_p,
+       break_out_includes, build_abbrev_table, size_of_die, mark_dies,
+       unmark_dies, value_format, output_loc_list, output_die,
+       output_pubnames, output_aranges, base_type_die, is_base_type,
+       modified_type_die, dbx_reg_number, multiple_reg_loc_descriptor,
+       mem_loc_descriptor, loc_descriptor, loc_descriptor_from_tree_1,
+       field_byte_offset, add_data_member_location_attribute,
+       add_const_value_attribute, rtl_for_decl_location,
+       add_location_or_const_value_attribute, add_byte_size_attribute,
+       add_bit_offset_attribute, add_bit_size_attribute,
+       add_abstract_origin_attribute, pop_decl_scope, scope_die_for,
+       decl_start_label, gen_formal_parameter_die,
+       gen_type_die_for_member, gen_subprogram_die, gen_label_die,
+       gen_typedef_die, gen_type_die, gen_tagged_type_instantiation_die,
+       force_decl_die, force_type_die, gen_decl_die,
+       dwarf2out_imported_module_or_decl, prune_unused_types_prune,
+       dwarf2out_finish): Likewise.
+
+2004-09-08  Andreas Tobler  <toa@pop.agri.ch>
+
+       * Makefile.in (builtins.o): Depend on tree-mudflap.h.
+       * builtins.c: Include tree-mudflap.h.
+
+2004-09-08  Uros Bizjak  <uros@kss-loka.si>
+
+       * config/i386/i386.c (ix86_prepare_fp_compare_args): Do not
+       force operand 0.0 into register in XFmode. Also do not force
+       operand 0.0 into register if !TARGET_CMOVE.
+       * config/i386/i386.md (*cmpfp_0): Delete. Remove comment.
+       (*cmpfp_0_sf, cmpfp_0_df, cmpfp_0_xf): New patterns to 
+       implement ftst x87 instruction.
+       (*fp_jcc_7): New insn pattern. Change corresponding split
+       pattern to handle "general_operand" instead of
+       "nonimmediate_operand".
+
+2004-09-08  Ben Elliston  <bje@au.ibm.com>
+
+       * doc/rtl.texi (Insns): Document NOTE_INSN_FUNCTION_BEG.
+
+2004-09-07  Frank Ch. Eigler  <fche@redhat.com>
+
+       * builtins.c (std_gimplify_va_arg_expr): Mark INDIRECT_REF nodes
+       generated from standard va_arg expansion.
+       * tree-mudflap.c (mx_xform_derefs_1): Omit instrumentation from
+       marked nodes.
+       (mf_varname_tree, mf_file_function_line_tree): Add some support
+       for column numbers if compiled with USE_MAPPED_LOCATION.
+
+2004-09-07  Ziemowit Laski  <zlaski@apple.com>
+
+       * c-decl.c (groktypename_in_parm_context): Remove function.
+       * c-tree.h (groktypename_in_parm_context): Remove prototype.
+
+2004-09-07  Ziemowit Laski  <zlaski@apple.com>
+
+       * Makefile.in (c-parse.o): Depend on $(C_COMMON_H).
+       * c-parse.in: Include c-common.h instead of objc-act.h.
+       (ivar_decl_list, ivar_decls, ivar_decl, ivars, ivar_declarator,
+       myparms, myparm): Remove %type declarations.
+       (methodtype, optparms, OBJC_TYPE_QUAL, objc_quals, objc_qual,
+       objc_typename, objc_try_catch_stmt, optellipsis): Add %type
+       declarations.
+       (objc_inherit_code, objc_public_flag): Remove.
+       (typespec_nonreserved_nonattr): Call
+       objc_get_protocol_qualified_type() instead of get_static_reference()
+       and get_protocol_reference().
+       (stmt_nocomp): Call grokparm() on @catch parameter.
+       (objcdef): Move semantic action to objc_finish_implementation().
+       (classdef): Move semantic action to objc_start_class_interface(),
+       objc_continue_interface(), objc_finish_interface(),
+       objc_start_class_implementation(), objc_continue_implementation(),
+       objc_start_category_interface() and
+       objc_start_category_implementation().
+       (protocoldef): Move semantic actions to objc_start_protocol() and
+       objc_finish_interface().
+       (ivar_decl_list): Remove nonterminal.
+       (visibility_spec): Move semantic actions to objc_set_visibility().
+       (ivar_decls): Remove assignment to $$.
+       (ivar_decl): Rephrase in terms of component_decl; call
+       objc_add_instance_variable().
+       (ivars, ivar_declarator): Remove nonterminals.
+       (opt_semi): New nonterminal.
+       (methodtype): Remove semantic actions.
+       (methoddef): Move semantic actions to objc_set_method_type(),
+       objc_start_method_definition() and objc_finish_method_definition().
+       (methodproto): Move semantic actions to objc_set_method_type() and
+       objc_add_method_declaration().
+       (methoddecl): Use objc_typename instead of typename; move semantic
+       actions to objc_build_method_signature().
+       (optarglist, myxdecls, mydecl, myparms, myparm): Remove nonterminals.
+       (optparmlist): Express in terms of optparms and optellipsis.
+       (optparms, optellipsis, objc_qual, objc_quals, objc_typename): New
+       nonterminals.
+       (keyworddecl): Use objc_typename instead of typename.
+       (rid_to_yy): Mark RID_IN, RID_OUT, RID_INOUT, RID_BYCOPY, RID_BYREF
+       and RID_ONEWAY as returning OBJC_TYPE_QUAL to yyparse().
+
+2004-09-08  Alan Modra  <amodra@bigpond.net.au>
+
+       * doc/tm.texi (MD_UNWIND_SUPPORT): Document.
+       (MD_FALLBACK_FRAME_STATE_FOR): Update.
+       * unwind-dw2.c (MD_UNWIND_SUPPORT): #include if defined.
+       (uw_frame_state_for): Adjust MD_FALLBACK_FRAME_STATE_FOR invocation.
+       (MD_FROB_UPDATE_CONTEXT): Remove default.
+       (uw_update_context_1): Instead #ifdef invocation.
+       * config/ia64/unwind-ia64.c (MD_UNWIND_SUPPORT): #include if defined.
+       (uw_frame_state_for): Adjust MD_FALLBACK_FRAME_STATE_FOR invocation.
+       * config/alpha/gnu.h (MD_FALLBACK_FRAME_STATE_FOR): Don't undef.
+       (MD_UNWIND_SUPPORT): Undefine this instead.
+       * config/i386/gnu.h: Likewise.
+       * config/alpha/linux-unwind.h: New file, macro converted to
+       function, extracted from..
+       * config/alpha/linux.h (MD_FALLBACK_FRAME_STATE_FOR): ..this.
+       (MD_UNWIND_SUPPORT): Define.
+       * config/alpha/vms-unwind.h, config/alpha/vms.h: Likewise.
+       * config/i386/linux-unwind.h, config/i386/linux.h,
+       config/i386/linux64.h: Likewise.
+       * config/ia64/linux-unwind.h, config/ia64/linux.h: Likewise.
+       MD_HANDLE_UNWABI too.
+       * config/mips/linux-unwind.h, config/mips/linux.h: Likewise.
+       * config/pa/linux-unwind.h, config/pa/pa32-linux.h: Likewise.
+       * config/rs6000/darwin-unwind.h, config/rs6000/darwin.h: Likewise.
+       * config/s390/linux-unwind.h, config/s390/linux.h: Likewise.
+       * config/sparc/linux-unwind.h, config/sparc/linux.h,
+       config/sparc/linux64.h: Likewise.
+       * config/sh/linux-unwind.h, config/sh/linux.h: Likewise, but merge
+       SH_FALLBACK_FRAME_FLOAT_STATE into sh_fallback_frame_state.
+       * config/rs6000/linux-unwind.h, config/rs6000/linux.h,
+       config/rs6000/linux64.h: Likewise.  Split out get_sigcontext
+       function.  Use ARG_POINTER_REGNUM for 32-bit temp reg too.
+
+2004-09-07  Jan Hubicka  <jh@suse.cz>
+
+       * cse.c (fold_rtx):  Avoid building of
+       (CONST (MINUS (CONST_INT) (SYMBOL_REF)))
+
+       * tree-ssa-pre.c (grand_bitmap_obstack): New.
+       (value_insert_into_set_bitmap, bitmap_set_new): Use the obstack.
+       (init_pre): Initialize obstack.
+       (fini_pre): Free obstack.
+
+2004-09-07  David Daney  <ddaney@avtrex.com>
+
+       * config.gcc: Added support for --with-divide=[breaks|traps] for
+       mips targets.
+       * config/mips/mips.h (MASK_DIVIDE_BREAKS): New target_flags bit.
+       (TARGET_DIVIDE_TRAPS): New macro.
+       (TARGET_SWITCHES): Added -mdivide-traps and -mdivide-breaks.
+       (OPTION_DEFAULT_SPECS): Added --with-divide= support.
+       * config/mips/mips.c (mips_idiv_insns): Generate proper count on
+       GENERATE_DIVIDE_TRAPS.
+       (mips_output_division): Emit conditional trap if
+       GENERATE_DIVIDE_TRAPS is set.
+       * doc/install.texi: Document --with-divide.
+       * doc/invoke.texi: Document -mdivide-traps and -mdivide-breaks.
+
+2004-09-07  Caroline Tice  <ctice@apple.com>
+
+       * cfgrtl.c (rtl_verify_flow_info_1):  Add new edge flag,
+       EDGE_CROSSING, to flags test case.
+       
+2004-09-07  Jan Hubicka  <jh@suse.cz>
+
+       * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Deal with '<'
+       class too.
+
+2004-09-07  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * cfganal.c (flow_depth_first_order_compute, dfs_enumerate_from,
+       cfgbuild.c, inside_basic_block_p, control_flow_insn_p,
+       make_label_edge, make_edges, find_basic_blocks_1): Use gcc_assert
+       or gcc_unreachable.
+       * cfg.c (clear_edges, initialize_bb_rbi, compact_blocks,
+       remove_edge, alloc_aux_for_blocks, free_aux_for_blocks,
+       alloc_aux_for_edges, free_aux_for_edges): Likewise.
+       * cfgcleanup.c (try_forward_edges,
+       merge_blocks_move_predecessor_nojumps,
+       merge_blocks_move_successor_nojumps): Likewise.
+       * cfgexpand.c (expand_gimple_cond_expr,
+       expand_gimple_tailcall): Likewise.
+       * cfghooks.c (duplicate_block): Likewise.
+       * cfglayout.c (record_effective_endpoints,
+       insn_locators_initialize, change_scope, fixup_reorder_chain,
+       verify_insn_chain, fixup_fallthru_exit_predecessor,
+       duplicate_insn_chain, cfg_layout_finalize): Likewise.
+       * cfgloopanal.c (check_irred): Likewise.
+       * cfgloop.c (superloop_at_depth, flow_loops_free,
+       flow_loop_entry_edges_find, flow_loops_find,
+       flow_loop_outside_edge_p, get_loop_body,
+       get_loop_body_in_dom_order, get_loop_body_in_bfs_order,
+       get_loop_exit_edges, num_loop_branches, cancel_loop,
+       verify_loop_structure): Likewise.
+       cfgloopmanip.c (find_path, remove_path, loop_delete_branch_edge,
+       duplicate_loop_to_header_edge, create_preheader,
+       create_loop_notes): Likewise.
+       * cfgrtl.c (delete_insn, try_redirect_by_replacing_jump,
+       edirect_branch_edge, force_nonfallthru_and_redirect,
+       rtl_split_edge, insert_insn_on_edge, commit_one_edge_insertion,
+       commit_edge_insertions, commit_edge_insertions_watch_calls,
+       purge_dead_edges, cfg_layout_redirect_edge_and_branch,
+       cfg_layout_redirect_edge_and_branch_force,
+       cfg_layout_merge_blocks, rtl_flow_call_edges_add): Likewise.
+       * cgraph.c (cgraph_node, cgraph_create_edge, cgraph_remove_edge,
+       cgraph_redirect_edge_callee, cgraph_global_info, cgraph_rtl_info,
+       cgraph_varpool_node): Likewise.
+       * cgraphunit.c (cgraph_finalize_function,
+       cgraph_finalize_compilation_unit, cgraph_mark_functions_to_output,
+       cgraph_expand_function, cgraph_remove_unreachable_nodes,
+       cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
+       cgraph_mark_inline, cgraph_expand_all_functions,
+       cgraph_build_static_cdtor): Likewise.
+       * combine.c  (do_SUBST, try_combine, subst, combine_simplify_rtx,
+       simplify_logical, distribute_notes, insn_cuid): Likewise.
+       * conflict.c (conflict_graph_add, print_conflict): Likewise.
+       * coverage.c (rtl_coverage_counter_ref, tree_coverage_counter_ref,
+       coverage_checksum_string): Likewise.
+       * cse.c (make_new_qty, make_regs_eqv, insert, invalidate,
+       hash_rtx, exp_equiv_p, cse_basic_block, count_reg_usage,
+       cse_cc_succs, cse_condition_code_reg): Likewise.
+       * cselib.c (entry_and_rtx_equal_p, remove_useless_values,
+       rtx_equal_for_cselib_p, wrap_constant, cselib_hash_rtx,
+       new_cselib_val, cselib_subst_to_values, cselib_invalidate_regno,
+       cselib_record_set): Likewise.
+
+2004-09-07  Jan Hubicka  <jh@suse.cz>
+
+       * tree-ssa-loop-ivopts.c (iv_value): Avoid invalid sharing on niter.
+
+2004-09-07  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * builtins.c (fold_builtin_strchr): Use build_int_cst, not
+       fold_convert.
+       (fold_builtin_strpbrk): Likewise.
+       * expr.c (array_ref_low_bound): Likewise.
+       * tree-scalar-evolution.c (chrec_is_positive, add_to_evolution_1,
+       interpret_rhs_modify_expr, number_of_iterations_in_loop): Likewise.
+       * tree-sra.c (generate_element_zero): Likewise.
+       * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
+       * tree-ssa-loop-ivopts.c (determine_biv_step, idx_find_step,
+       add_old_iv_candidates, add_iv_candidates): Likewise.
+       * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise.
+
+2004-09-07  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * c-aux-info.c (gen_type): Use gcc_assert or gcc_unreachable.
+       * c-common.c (c_type_hash, c_common_nodes_and_builtins,
+       c_expand_expr, boolean_increment, nonnull_check_p,
+       check_function_arguments_recurse, fold_offsetof_1): Likewise.
+       * c-cppbuiltin.c (define__GNUC__, builtin_define_stdint_macros,
+       builtin_define_type_max): Likewise.
+       * c-decl.c (bind, pop_scope, merge_decls, pushdecl_top_level,
+       implicit_decl_warning, builtin_function, build_compound_literal,
+       complete_array_type, grokdeclarator, get_parm_info,
+       start_function, store_parm_decls_oldstyle,
+       c_write_global_declarations): Likewise.
+       * c-format.c (get_constant, decode_format_attr,
+       maybe_read_dollar_number, get_flag_spec, check_format_arg,
+       check_format_types, format_type_warning,
+       find_char_info_specifier_index, init_dynamic_asm_fprintf_info,
+       init_dynamic_diag_info, handle_format_attribute): Likewise.
+       * c-gimplify.c (push_context, pop_context, finish_bc_block): 
+       * c-lex.c (c_lex_with_flags, lex_string): Likewise.
+       * c-objc-common.c (c_tree_printer): Likewise.
+       * c-pch.c (pch_init): Likewise.
+       * c-pragma.c (maybe_apply_pragma_weak): Likewise.
+       * c-pretty-print.c (pp_c_tree_decl_identifier): Likewise.
+       * c-typeck.c (c_incomplete_type_error, composite_type,
+       common_pointer_type, common_type, same_translation_unit_p,
+       tagged_types_tu_compatible_p, finish_init, pop_init_level,
+       set_designator, set_nonincremental_init_from_string,
+       process_init_element, c_finish_if_stmt): Likewise.
+       * caller-save.c (init_caller_save, save_call_clobbered_regs,
+       insert_restore, insert_save, insert_one_insn): Likewise.
+       * calls.c (emit_call_1, compute_argument_block_size,
+       precompute_arguments, expand_call, emit_library_call_value_1,
+       store_one_arg): Likewise.
+
+2004-09-07  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * configure.ac (enable-checking): Add release option. Reorganize
+       to avoid repetition.
+       * configure: Rebuilt.
+       * doc/install.texi (enable-checking): Amend documentation.
+
+2004-09-06  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR bootstrap/17313
+       * Makefile.in (specs.ready): Depend on cc1$(exeext).
+
+2004-09-06  James E Wilson  <wilson@specifixinc.com>
+
+       * config/mips/mips.md (movsf_hardfloat, movdf_hardfloat_64bit,
+       movdf_hardfloat_32bit): Split fG into two alternatives.
+       (movv2sf_hardfloat_64bit): Split fYG into two alternatives.
+
+       * emit-rtl.c (try_split): Check INSN_P before may_trap_p call.
+
+2004-09-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
+
+       * final.c (output_in_slot): Delete.
+       (final_scan_insn): Revert 2004-09-03 change.
+       (output_asm_insn): Likewise.
+       * config/sparc/sparc.c (output_return): Likewise.
+       (output_sibcall): Likewise.
+
+2004-09-06  Jan Hubicka  <jh@suse.cz>
+
+       * loop.c (loop_dump_aux): Do not print RTL when not available.
+       * tree-ssa-loop-ivopts.c (add_standard_iv_candidates): Do not use
+       frontend specific type nodes.
+       (produce_memory_decl_rtl): Break out from ...
+       (prepare_decl_rtl): ... here.  Handle ADDR_EXPR correctly.
+       (get_computation_at): Avoid random tree sharing.
+       (tree_ssa_iv_optimize): Verify tree sharing; dump loops.
+
+2004-09-06  Zack Weinberg  <zack@codesourcery.com>
+
+       * Makefile.in (rtl.o, bitmap.o): Correct dependencies, remove
+       unnecessary commands.
+
+2004-09-06  Mohan Embar  <gnustuff@thisiscool.com>
+
+       * Makefile.in (rtl.o): Remove -DGENERATOR_FILE.
+       (bitmap.o): Likewise.
+
+2004-09-06  Paolo Bonzini  <bonzini@gnu.org>
+
+       Unify the management of RTL and tree-level dump files.
+
+       * cfgexpand.c (tree_expand_cfg): Fix incorrect comment.
+       Don't print function name to the dump file, the pass manager
+       would do this for us. Add code from the top of
+       rest_of_compilation, up to the initial RTL dump.
+       * passes.c (rest_of_handle_jump): Call fixup_tail_calls and
+       close the DFI_sibling dump file.
+       (rest_of_compilation): Don't do that here.  Remove code up to the
+       initial RTL dump.
+       (init_optimization_passes): Remove.
+       (pass_rest_of_compilation): Change pass name to NULL.
+       * toplev.c (lang_dependent_init): Do not use an empty dump file prefix.
+       Do not call init_optimization_passes.
+       * toplev.h (init_optimization_passes): Remove.
+
+       * graph.c (print_rtl_graph_with_bb, clean_graph_dump_file,
+       finish_graph_dump_file): Remove SUFFIX parameter.
+       * graph.h (print_rtl_graph_with_bb, clean_graph_dump_file,
+       finish_graph_dump_file): Likewise.
+
+       * tree-pass.h (struct tree_opt_pass): Add `letter' field.
+       * cfgexpand.c (pass_expand): Adjust.
+       * gimple-low.c (pass_lower_cf, pass_remove_useless_vars): Adjust.
+       * passes.c (pass_rest_of_compilation): Adjust.
+       * predict.c (pass_profile): Adjust.
+       * tree-alias-common.c (pass_build_pta, pass_del_pta): Adjust.
+       * tree-cfg.c (pass_build_cfg, pass_remove_useless_stmts,
+       pass_split_crit_edges, pass_warn_function_return): Adjust.
+       * tree-complex.c (pass_lower_vector_ssa, pass_pre_expand): Adjust.
+       * tree-dfa.c (pass_referenced_vars): Adjust.
+       * tree-eh.c (pass_lower_eh): Adjust.
+       * tree-if-conv.c (pass_build_ssa): Adjust.
+       * tree-into-ssa.c (pass_build_ssa): Adjust.
+       * tree-mudflap.c (pass_mudflap_1, pass_mudflap_2): Adjust.
+       * tree-nomudflap.c (pass_mudflap_1, pass_mudflap_2): Adjust.
+       * tree-nrv.c (pass_nrv): Adjust.
+       * tree-optimize.c (pass_gimple, pass_all_optimizations,
+       pass_cleanup_cfg_post_optimizing, pass_free_datastructures,
+       pass_init_datastructures): Adjust.
+       * tree-outof-ssa.c (pass_del_ssa): Adjust.
+       * tree-profile.c (pass_tree_profile): Adjust.
+       * tree-sra.c (pass_sra): Adjust.
+       * tree-ssa-alias.c (pass_may_alias): Adjust.
+       * tree-ssa-ccp.c (pass_ccp, pass_fold_builtins): Adjust.
+       * tree-ssa-copyrename.c (pass_rename_ssa_copies): Adjust.
+       * tree-ssa-dce.c (pass_dce, pass_cd_dce): Adjust.
+       * tree-ssa-dom.c (pass_dominator): Adjust.
+       * tree-ssa-dse.c (pass_dse): Adjust.
+       * tree-ssa-forwprop.c (pass_forwprop): Adjust.
+       * tree-ssa-if-conv.c (pass_if_conversion): Adjust.
+       * tree-ssa-loop-ch.c (pass_ch): Adjust.
+       * tree-ssa-loop.c (pass_loop, pass_loop_init, pass_lim,
+       pass_loop_done, pass_complete_unroll, pass_iv_canon,
+       pass_iv_optimize, pass_vectorize): Adjust.
+       * tree-ssa-phiopt.c (pass_phiopt): Adjust.
+       * tree-ssa-pre.c (pass_pre, pass_fre): Adjust.
+       * tree-ssa.c (pass_redundant_phi, pass_early_warn_uninitialized,
+       pass_late_warn_uninnitialized): Adjust.
+       * tree-tailcall.c (pass_tail_recursion, pass_tail_calls): Adjust.
+
+       * Makefile.in (tree-dump.o): Add new dependencies.
+       * cgraph.c (cgraph_remove_node): TDF_all -> TDF_tree_all.
+       * cgraphunit.c (cgraph_preserve_function_body_p, cgraph_optimize):
+       Likewise.
+       * toplev.c (dump_file_name): New.
+       * tree-dump.c (dump_enable_all): Add LETTER parameter.
+       (struct dump_file_info): Add NUM and LETTER fields.
+       (dump_files): Adjust and add RTL dump files.
+       (dump_register): Add NUM and LETTER fields.
+       (get_dump_file_name, dump_initialized_p, enable_rtl_dump_file): New.
+       (dump_begin): Use get_dump_file_name.
+       (dump_switch_p_1): Adjust call to dump_enable_all.
+       * tree-dump.h (dump_register): Adjust prototype.
+       * tree-optimize.c (register_one_dump_file): Take dump file index.
+       Support flags for RTL dumps.
+       (register_dump_files): Fill in NUM field of struct dump_file_info.
+       Track properties both when the gate is executed and when it is not.
+       (execute_todo): Dump RTL.  Add PROPERTIES parameter.
+       (execute_one_pass): Pass properties to execute_todo.  Handle VCG
+       dumps of RTL.
+       * tree-pass.h (dump_file_name): New.
+       * tree.h (TDF_TREE, TDF_RTL, get_dump_file_name, dump_initialized_p):
+       New.
+
+       * Makefile.in (passes.o): Add new dependencies.
+       * passes.c (struct dump_file_info, enum dump_file_index,
+       dump_file_tbl, init_optimization_passes): Remove.
+       (open_dump_file, close_dump_file): Use tree-dumping infrastructure.
+       (rest_of_handle_new_regalloc, rest_of_handle_old_regalloc): Use
+       dump_enabled_p.
+       (finish_optimization_passes): Update finish_graph_dump_file loop.
+       (enable_rtl_dump_file): Remove.
+       * tree-dump.c (dump_files): Adjust and add RTL dump files.
+       (enable_rtl_dump_file): Add here.
+       * tree.h (enum tree_dump_index): Add RTL dump file indices.
+       * doc/invoke.texi (Debugging options): Document new RTL debugging
+       options.  Update.
+
+2004-09-05  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * c-common.c, c-decl.c, combine.c, defaults.h, fold-const.c,
+       gimplify.c, gthr-nks.h, hooks.c, lambda-code.c, lambda-mat.c,
+       stor-layout.c, target.h, tree-cfg.c, tree-chrec.c,
+       tree-if-conv.c, tree-inline.c, tree-into-ssa.c,
+       tree-mudflap.c, tree-optimize.c, tree-scalar-evolution.c,
+       tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-dce.c,
+       tree-ssa-pre.c, tree-vectorizer.c, tree-vectorizer.h, tree.h,
+       vec.h: Fix comment formatting.
+
+2004-09-05  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * c-common.c, cfgexpand.c, cgraphunit.c, defaults.h,
+       et-forest.c, expr.c, gimplify.c, global.c, gthr-lynx.h,
+       hard-reg-set.h, modulo-sched.c, optabs.c, postreload-gcse.c,
+       tree-data-ref.c, tree-flow.h, tree-if-conv.c, tree-inline.c,
+       tree-sra.c, tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c,
+       tree-ssa-loop-niter.c, tree-ssa-operands.c,
+       tree-ssa-operands.h, tree-ssa-propagate.c,
+       tree-ssa-propagate.h, tree-ssa-threadupdate.c, value-prof.c,
+       vec.c, vec.h: Fix comment typos.  Follow spelling conventions.
+
+2004-09-05  Diego Novillo  <dnovillo@redhat.com>
+
+       * tree-if-conv.c (gate_tree_if_conversion): Enable only if the
+       vectorizer is enabled.
+
+2004-09-05  Andreas Jaeger  <aj@suse.de>
+
+       * tree-if-conv.c: Spell check comments and clean up whitespace.
+
+2004-09-05  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
+
+       * tree-ssa-loop-ivopts.c: New file.
+       * Makefile.in (tree-ssa-loop-ivopts.c): Add.
+       * cfgloop.h (target_avail_regs, target_res_regs, target_small_cost,
+       target_pres_cost, target_spill_cost): Declare.
+       * cfgloopanal.c (avail_regs, res_regs, small_cost, pres_cost,
+       spill_cost): Renamed to ...
+       (target_avail_regs, target_res_regs, target_small_cost,
+       target_pres_cost, target_spill_cost): ... and exported.
+       (init_set_costs, global_cost_for_size): Work with renamed variables.
+       * common.opt (flag_ivopts): New flag.
+       * expr.c (expand_expr_real_1): Handle SSA_NAME case.  Handle
+       REF_ORIGINAL.
+       * gimplify.c (struct gimplify_ctx): Add into_ssa field.
+       (internal_get_tmp_var, gimplify_modify_expr, gimplify_expr): Support
+       generating SSA form.
+       (force_gimple_operand): New function.
+       * timevar.def (TV_TREE_LOOP_IVOPTS): New timevar.
+       * tree-cfg.c (stmt_bsi): New function.
+       * params.def (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND,
+       PARAM_IV_MAX_CONSIDERED_USES): New.
+       * tree-flow.h (stmt_bsi, tree_ssa_iv_optimize, split_loop_exit_edge,
+       bsi_insert_on_edge_immediate_loop. standard_iv_increment_position,
+       ip_end_pos, ip_normal_pos, force_gimple_operand): Declare.
+       * tree-gimple.c (is_gimple_formal_tmp_var): Accept ssa names.
+       * tree-nested.c (build_addr): Export.
+       * tree-optimize.c (init_tree_optimization_passes): Add
+       pass_iv_optimize.
+       * tree-pass.h (pass_iv_optimize): Declare.
+       * tree-ssa-loop-im.c (for_each_index): Handle REALPART_EXPR and
+       IMAGPART_EXPR.
+       * tree-ssa-loop-manip.c (create_iv): Force the base to be acceptable
+       as a phi node argument.
+       (split_loop_exit_edge, bsi_insert_on_edge_immediate_loop,
+       ip_end_pos, ip_normal_pos, standard_iv_increment_position): New
+       functions.
+       * tree-ssa-loop-niter.c (zero_p, unsigned_type_for): Export.
+       * tree-ssa-loop.c (tree_ssa_loop_ivopts, gate_tree_ssa_loop_ivopts,
+       pass_iv_optimize): New pass.
+       * tree-ssa-operands.c (get_indirect_ref_operands): Handle REF_ORIGINAL.
+       * tree-ssanames.c (release_ssa_name): Allow calling with var = NULL.
+       * tree.c (build_int_cst_type, cst_and_fits_in_hwi): New functions.
+       * tree.h (REF_ORIGINAL): New macro.
+       (build_int_cst_type, unsigned_type_for, zero_p,
+       cst_and_fits_in_hwi, build_addr): Declare.
+       * doc/invoke.texi (-fivopts): Document.
+       (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND,
+       PARAM_IV_MAX_CONSIDERED_USES): Document.
+       * doc/passes.texi: Document induction variable optimizations pass.
+
+2004-09-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * builtin-attrs.def (ATTR_NOTHROW_SENTINEL_1): New.
+       * builtins.def (BUILT_IN_EXECLE): Set ATTR_NOTHROW_SENTINEL_1.
+       * c-common.c (c_common_attribute_table): Accept parameters to
+       sentinel attribute.
+       (check_function_sentinel, handle_sentinel_attribute): Likewise.
+       * doc/extend.texi: Update accordingly.
+
+2004-09-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * builtin-attrs.def (ATTR_SENTINEL, ATTR_SENTINEL_NOTHROW_LIST):
+       New.
+       * builtins.def (BUILT_IN_EXECL, BUILT_IN_EXECLP): Add `sentinel'
+       attribute.
+       * c-common.c (handle_sentinel_attribute, check_function_sentinel):
+       New functions.
+       (c_common_attribute_table): Add `sentinel' attribute.
+       (check_function_arguments): Handle `sentinel' attribute.
+       * doc/extend.texi: Document `sentinel' attribute.
+
+2004-09-04  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * configure: Regenerated.
+
+2004-09-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * gimplify.c (internal_get_tmp_var): Remove unused var CLASS.
+
+       * tree.c (save_expr): No longer TREE_READONLY.
+
+2004-09-04  Jan Hubicka  <jh@suse.cz>
+
+       * passes.c (rest_of_clean_state):  Fix merge conflict made during
+       commiting the patch.
+
+2004-09-04  Jan Hubicka  <jh@suse.cz>
+
+       * passes.c (rest_of_clean_state):  Decompose the instruction stream.
+
+2004-09-04  Richard Sandiford  <rsandifo@redhat.com>
+
+       * doc/md.texi (shift patterns): New anchor.  Add reference to
+       TARGET_SHIFT_TRUNCATION_MASK.
+       * doc/tm.texi (TARGET_SHIFT_TRUNCATION_MASK): Document.
+       * target.h (shift_truncation_mask): New target hook.
+       * targhook.h (default_shift_truncation_mask): Declare.
+       * targhook.c (default_shift_truncation_mask): Define.
+       * target-def.h (TARGET_SHIFT_TRUNCATION_MASK): Define.
+       (TARGET_INITIALIZER): Include it.
+       * simplify-rtx.c (simplify_binary_operation): Combine ASHIFT, ASHIFTRT
+       and LSHIFTRT cases.  Truncate arg1 if SHIFT_COUNT_TRUNCATED, otherwise
+       reject all out-of-range values.  Fix sign-extension code for modes
+       whose width is smaller than HOST_BITS_PER_WIDE_INT.
+       * optabs.c (simplify_expand_binop, force_expand_binop): New functions.
+       (expand_superword_shift, expand_subword_shift): Likewise.
+       (expand_doubleword_shift_condmove, expand_doubleword_shift): Likewise.
+       (expand_binop): Use them to implement double-word shifts.
+       * config/arm/arm.c (arm_shift_truncation_mask): New function.
+       (TARGET_SHIFT_TRUNCATION_MASK): Define.
+
+2004-09-04  Jan Hubicka  <jh@suse.cz>
+
+       * tree.c (iterate_hash_expr): Optimize, avoid use of iterative_hash_object.
+       (mix): New macro copied from hashtab.c
+       (iterative_hash_hashval_t, iterative_hash_pointer,
+       iterative_hash_host_wide_int): New functions based on hashtab.c
+       implementation.
+
+2004-09-04  Richard Sandiford  <rsandifo@redhat.com>
+
+       * config/mips/mips.md (mask): New mode attribute.
+       (zero_extendsidi2): Add memory alternative.
+       (*zero_extendsidi2_mem): Delete.
+       (zero_extend[qh]i[sd]i2): Redefine using :GPR and :SHORT.  Use
+       memory_operand in the TARGET_MIPS16 check.
+       (*zero_extend[qh]i[sd]i2{,_mips16}): Name previously unnamed patterns.
+       Redefine using :GPR and :SHORT.
+       (zero_extendqihi2): Use memory_operand in the TARGET_MIPS16 check.
+
+2004-09-04  Uros Bizjak  <uros@kss-loka.si>
+
+       * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_RINT{,F,L}
+       using rint_optab.
+       (expand_builtin): Expand BUILT_IN_RINT{,F,L} using
+       expand_builtin_mathfn.
+       * genopinit.c (optabs): Rename trunc_optab to btrunc_optab. Use
+       btrunc?f patterns for btrunc_optab. Implement rint_optab using
+       rint?f patterns.
+       * optabs.c (init_optabs): Initialize rint_optab.
+       * optabs.h (enum optab_index): Rename OTI_trunc to OTI_btrunc.
+       Add new OTI_rint.
+       (btrunc_optab): Rename macro from trunc_optab.
+       (rint_optab): Define corresponding macro.
+
+       * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FRNDINT_FLOOR,
+       UNSPEC_FRNDINT_CEIL, UNSPEC_FRNDINT_TRUNC, UNSPEC_FRNDINT_MASK_PM.
+
+       * config/i386/i386-protos.h (emit_i387_cw_initialization):
+       Change prototype. Add new int parameter.
+       * config/i386/i386.c (emit_i387_cw_initialization):
+       Handle new rounding modes.
+
+       * config/i386/i386.h (enum fp_cw_mode): Delete.
+       (MODE_NEEDED): Handle new rounding modes.
+       (EMIT_MODE_SET): Change condition to handle new rounding modes.
+
+       * config/i386/i386.md (UNSPEC_FRNDINT_FLOOR, UNSPEC_FRNDINT_CEIL,
+       UNSPEC_FRNDINT_TRUNC, UNSPEC_FRNDINT_MASK_PM): New unspecs to
+       represent different rounding modes of frndint insn.
+       (type): Add frndint type.
+       (i387, length, memory): Handle this type.
+       (i387_cw): New attribute definition.
+       (*fix_truncdi_1, fix_truncdi_nomemory, fix_truncdi_memory,
+       *fix_truncsi_1, fix_truncsi_nomemory, fix_truncsi_memory,
+       *fix_trunchi_1, fix_trunchi_nomemory, fix_trunchi_memory):
+       Add "i387_cw" attribute defined to "trunc".
+       (x86_fnstcw_1): Remove comment.
+       (*frndintxf2): Rename insn definition to frndintxf2. Move
+       insn definition near rint?f2 expanders.
+       (rintdf2, rintsf2, rintxf2): New expanders to implement rint,
+       rintf and rintl built-ins as inline x87 intrinsics.
+       (frndintxf2_floor): New pattern to implement floor rounding
+       mode with frndint x87 instruction.
+       (floordf2, floorsf2, floorxf2): New expanders to implement floor,
+       floorf and floorl built-ins as inline x87 intrinsics.
+       (frndintxf2_ceil): New pattern to implement ceil rounding
+       mode with frndint x87 instruction.
+       (ceildf2, ceilsf2, ceilxf2): New expanders to implement ceil,
+       ceilf and ceill built-ins as inline x87 intrinsics.
+       (frndintxf2_trunc): New pattern to implement trunc rounding
+       mode with frndint x87 instruction.
+       (btruncdf2, btruncsf2, btruncxf2): New expanders to implement trunc,
+       truncf and truncl built-ins as inline x87 intrinsics.
+       (frndintxf2_mask_pm): New pattern to implement rounding
+       mode with exceptions with frndint x87 instruction.
+       (nearbyintdf2, nearbyintsf2, nearbyintxf2): New expanders to
+       implement nearbyint, nearbyintf and nearbyintl built-ins as
+       inline x87 intrinsics.
+
 2004-09-04  Richard Sandiford  <rsandifo@redhat.com>
 
        * config/mips/mips.md (SHORT): New mode macro.
        * tree-ssa-operands.c (get_expr_operands): Handle COND_EXPR.
        * tree-if-conv.c: New file.
        * doc/passes.texi: Document tree if-conversion pass.
-       * doc/tree-ssa.texi: Same.      
+       * doc/tree-ssa.texi: Same.
 
 2004-09-03  H.J. Lu  <hongjiu.lu@intel.com>
 
 
 2004-09-03  Richard Henderson  <rth@redhat.com>
 
-        PR middle-end/9997
-        * cfgexpand.c (LOCAL_ALIGNMENT): Provide default.
-        (STACK_ALIGNMENT_NEEDED, FRAME_GROWS_DOWNWARD): Likewise.
-        (struct stack_var, EOC, stack_vars, stack_vars_alloc, stack_vars_num,
-        stack_vars_sorted, stack_vars_conflict, stack_vars_conflict_alloc,
-        frame_phase, get_decl_align_unit, add_stack_var, triangular_index,
-        resize_stack_vars_conflict, add_stack_var_conflict,
-        stack_var_conflict_p, add_alias_set_conflicts, stack_var_size_cmp,
-        union_stack_vars, partition_stack_vars, dump_stack_var_partition,
-        expand_one_stack_var_at, expand_stack_vars, expand_one_stack_var,
+       PR middle-end/9997
+       * cfgexpand.c (LOCAL_ALIGNMENT): Provide default.
+       (STACK_ALIGNMENT_NEEDED, FRAME_GROWS_DOWNWARD): Likewise.
+       (struct stack_var, EOC, stack_vars, stack_vars_alloc, stack_vars_num,
+       stack_vars_sorted, stack_vars_conflict, stack_vars_conflict_alloc,
+       frame_phase, get_decl_align_unit, add_stack_var, triangular_index,
+       resize_stack_vars_conflict, add_stack_var_conflict,
+       stack_var_conflict_p, add_alias_set_conflicts, stack_var_size_cmp,
+       union_stack_vars, partition_stack_vars, dump_stack_var_partition,
+       expand_one_stack_var_at, expand_stack_vars, expand_one_stack_var,
        expand_one_static_var, expand_one_hard_reg_var,
        expand_one_register_var, expand_one_error_var, defer_stack_allocation,
        expand_one_var, expand_used_vars_for_block, clear_tree_used): New.
-        (expand_used_vars): Rewrite.
+       (expand_used_vars): Rewrite.
        * Makefile.in (cfgexpand.o): Update dependencies.
 
 2004-09-04  Jan Hubicka  <jh@suse.cz>
 2004-09-03  Devang Patel  <dpatel@apple.com>
 
        * dwarf2out.c (gen_field_die). Equate decl number to die.
-       
+
 2004-09-03  Vladimir Makarov  <vmakarov@redhat.com>
 
        PR target/15832
        * tsystem.h: Declare memcpy and memset when inhibit_libc.
 
 2004-09-02  Roman Zippel  <zippel@linux-m68k.org>
+
        * combine.c (try_combine): Delay modifying of insns which cannot
        be easily undone.
 
        TARGET_BPABI_CPP_BUILTINS.
 
 2004-09-02  Roman Zippel  <zippel@linux-m68k.org>
+
        * combine.c (distribute_notes): Don't add REG_LABEL to jump insn.
 
 2004-09-02  Eric Christopher  <echristo@redhat.com>
 
 2004-08-30  Nathan Sidwell  <nathan@codesourcery.com>
 
+       * alias.c (mems_in_disjoint_alias_sets_p, record_alias_subset,
+       record_set, rtx_equal_for_memref_p, init_alias_analysis): Use
+       gcc_assert and gcc_unreachable instead of abort.
+       * alloc-pool.c (abort, fancy_abort): Remove.
+       (create_alloc_pool, free_alloc_pool, pool_alloc, pool_free): Use
+       gcc_assert or gcc_unreachable.
+       * attribs.c (init_attributes, decl_attributes): Likewise.
+       * bb-reorder.c (FREE, find_traces_1_round, copy_bb,
+       mark_bb_for_unlikely_executed_section,
+       add_labels_and_missing_jumps, fix_crossing_conditional_branches,
+       fix_crossing_unconditional_branches):  Likewise.
+       * bitmap.c (bitmap_first_set_bit, bitmap_last_set_bit,
+       bitmap_operation):  Likewise.
+       * bt-load.c (insn_sets_btr_p, augment_live_range,
+       move_btr_def):  Likewise.
+       * builtins.c (c_readstr, expand_builtin_longjmp, apply_args_size,
+       apply_result_size, expand_builtin_apply, expand_builtin_mathfn,
+       expand_builtin_mathfn_2, expand_builtin_mathfn_3,
+       builtin_memcpy_read_str, expand_movstr, expand_builtin_stpcpy,
+       expand_builtin_memcmp, expand_builtin_args_info,
+       std_gimplify_va_arg_expr, expand_builtin_unop,
+       expand_builtin_fputs, expand_builtin_profile_func,
+       expand_builtin_fork_or_exec, fold_builtin_bitop,
+       fold_builtin_classify, fold_builtin_fputs): Likewise.
+
+2004-08-30  Nathan Sidwell  <nathan@codesourcery.com>
+
        * gcov-io.c (GCOV_CHECK): Use gcc_assert when available.
        * gcov.c (abort): Remove undef.
 
        (mover2side, moverside, movemside, movei, op3, andu): Replace
        live define_peephole:s with define_peephole2 near-equivalents.
        Delete the rest.
-       ("*mov_sidesisf_biap"): Rename from "*mov_sidesi_biap".  Match all
+       ("*mov_sidesisf_biap"): Rename from "*mov_sidesi_biap".  Match all
        word-size modes.
        ("*mov_sidesisf", "*mov_sidesisf_biap_mem", "*mov_sidesisf_mem"):
        Similar for "*mov_sidesi", "*mov_sidesi_biap_mem" and