+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.
+ * predicates.md: New file.
+ * arm.c (s_register_operand, arm_hard_register_operand)
+ (arm_general_register_operand, f_register_operand, reg_or_int_operand)
+ (arm_immediate_operand, arm_neg_immediate_operand)
+ (arm_not_immediate_operand, arm_rhs_operand, arm_rhsm_operand)
+ (arm_add_operand, arm_addimm_operand, arm_not_operand)
+ (offsettable_memory_operand, alignable_memory_operand)
+ (arm_reload_memory_operand, arm_float_rhs_operand)
+ (arm_float_add_operand, vfp_compare_operand, arm_float_compare_operand)
+ (index_operand, shiftable_operator, logical_binary_operator)
+ (shift_operator, equality_operator, arm_comparison_operator)
+ (minmax_operator, cc_register, dominant_cc_register)
+ (arm_extendqisi_mem_op, power_of_two_operand, nonimmediate_di_operand)
+ (di_operand, nonimmediate_soft_df_operand, soft_df_operand)
+ (const_shift_operand, load_multiple_operation)
+ (store_multiple_operation, multi_register_push, thumb_cmp_operand)
+ (thumb_cmpneg_operand, thumb_cbrch_target_operand)
+ (cirrus_register_operand, cirrus_fp_register)
+ (cirrus_shift_const): Delete, replaced with equivalents in
+ predicates.md.
+ (shift_op): Handle ROTATE.
+ * arm-protos.h: Delete declarations for above.
+ * arm.h (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Delete.
+ * t-arm (MD_INCLUDES): Add predicates.md.
+ (s-preds): Depends on MD_INCLUDES.
+
+2004-08-24 Richard Sandiford <rsandifo@redhat.com>
+
+ * config/mips/mips.c (mips_gen_conditional_trap): Fix mode.
+ * config/mips/mips.md (*conditional_trap[sd]i): Name previously unnamed
+ patterns. Redefine using :GPR. Give the match_operator a mode.
+ Use '%2' rather than '%z2' for operand 2.
+
+2004-08-24 Richard Sandiford <rsandifo@redhat.com>
+
+ * config/mips/mips.md (load_call[sd]i): Redefine using :P. Add mode
+ attribute.
+
+2004-08-24 Richard Sandiford <rsandifo@redhat.com>
+
+ * config/mips/mips.md (indirect_jump): Use force_reg. Adjust names
+ of internal patterns.
+ (indirect_jump[sd]i): Renamed from indirect_jump_internal[12].
+ Redefine using :P.
+ (tablejump): Use expand_binop to calculate address. Adjust names
+ of internal patterns.
+ (tablejump[sd]i): Renamed from tablejump_internal[12].
+ Redefine using :P.
+ (tablejump_mips16[12]): Delete.
+
+2004-08-24 Richard Sandiford <rsandifo@redhat.com>
+
+ * config/mips/mips.md (*seq_[sd]i, *seq_[sd]i_mips16, *sne_[sd]i)
+ (*sgt_[sd]i, *sgt_[sd]i_mips16, *sge_[sd]i, *slt_[sd]i)
+ (*slt_[sd]i_mips16, *sle_[sd]i, *sle_[sd]i_mips16, *sgtu_[sd]i)
+ (*sgtu_[sd]i_mips16, *sge_[sd]i, *sltu_[sd]i, *sltu_[sd]i_mips16)
+ (*sleu_[sd]i, *sleu_[sd]i_mips16): Redefine using :GPR.
+
+2004-08-24 Richard Sandiford <rsandifo@redhat.com>
+
+ * config/mips/mips.md (cmpsi, cmpdi): Redefine using :GPR.
+ (*branch_zero[sd]i): Renamed from branch_zero{,_di}. Redefine
+ using :GPR.
+ (*branch_zero[sd]i_inverted): Likewise branch_zero{,_di}_inverted.
+ (*branch_equality[sd]i): Likewise branch_equality{,_di}.
+ (*branch_equality[sd]i_inverted): Likewise
+ branch_equality{,_di}_inverted.
+ (*branch_equality[sd]i_mips16): Name formerly unnamed patterns.
+ Redefine using :GPR.
+
+2004-08-24 Zack Weinberg <zack@codesourcery.com>
+
+ * rtl.def: Reorganize, placing all codes used only in machine
+ descriptions at the end.
+
+ * rtl.def: Wrap MD-only codes in #ifdef GENERATOR_FILE.
+ * gengtype.c: Don't include rtl.h. Define enum rtx_code and
+ rtx_name, rtx_format arrays by direct reference to rtl.def,
+ first undefining GENERATOR_FILE. Define enum insn_note and
+ note_insn_name array by direct reference to insn-notes.def.
+ (adjust_field_rtx_def): Remove local definition of rtx_name.
+ Use symbolic names for insn notes.
+ * Makefile.in (gengtype.o): Update dependencies.
+
+2004-08-24 Zack Weinberg <zack@codesourcery.com>
+
+ * basic-block.h (struct basic_block_def): Reorder fields to
+ eliminate interior padding. Remove 'partition' field.
+ (BB_DISABLE_SCHEDULE, BB_HOT_PARTITION, BB_COLD_PARTITION)
+ (BB_UNPARTITIONED, BB_PARTITION, BB_SET_PARTITION)
+ (BB_COPY_PARTITION): New macros.
+ * bb-reorder.c, cfgcleanup.c, cfglayout.c, cfgrtl.c, ifcvt.c
+ Replace all references to the 'partition' field of a basic
+ block with new macros.
+
+ * insn-notes.def: Delete NOTE_INSN_DISABLE_SCHED_OF_BLOCK.
+ * final.c (final_scan_insn): Don't handle it.
+ * modulo-sched.c: Set BB_DISABLE_SCHEDULE flag on g->bb
+ instead of emitting a NOTE_INSN_DISABLE_SCHED_OF_BLOCK note.
+ * sched-rgn.c (sched_is_disabled_for_current_region_p):
+ Look for a BB_DISABLE_SCHEDULE flag on the block instead of a note.
+
+2004-08-24 Nathan Sidwell <nathan@codesourcery.com>
+
+ * c-decl.c (c_init_decl_processing): Adjust
+ build_common_tree_nodes call.
+ * expmed.c (const_mult_add_overflow_p): Use
+ build_distinct_type_copy.
+ * stor-layout.c (early_type_list): Remove.
+ (layout_type): Don't append to early_type_list.
+ (initialize_sizetypes): Add signed_p argument.
+ (set_sizetype): Overwrite the stub type nodes directly.
+ * tree.c (copy_node_stat): Clear a type's value cache here ...
+ (build_distinct_type): ... not here.
+ (build_common_tree_nodes): Add signed_sizetype argument. Adjust.
+ * tree.h (initialize_sizetypes): Add signed_p argument.
+ (build_common_tree_nodes): Likewise.
+
+ * objc/objc-act.c (get_static_reference): Use
+ build_variant_type_copy.
+ (get_protocol_reference): Likewise.
+ * objc/objc-act.h (TREE_STATIC_TEMPLATE): Use TREE_PRIVATE.
+
+2004-08-24 Richard Henderson <rth@redhat.com>
+ Andrew Pinski <apinski@apple.com>
+
+ * gimplify.c (gimplify_array_ref_to_plus): Delete.
+ (gimplify_addr_expr): Do not call gimplify_array_ref_to_plus
+ for ARRAY_REF.
+
+ * config/rs6000/rs6000.c (altivec_expand_builtin): Go passed
+ ARRAY_REF also to get to the STRING_CST.
+
+2004-08-24 Paul Brook <paul@codesourcery.com>
+
+ * config/arm/arm.c (arm_override_options): Update error message.
+ * config/arm/arm.h (TARGET_HARD_FLOAT): Rename to
+ TARGET_HARD_FLOAT_ABI.
+ (TARGET_SOFT_FLOAT_ABI): Rename to TARGET_HARD_FLOAT.
+ (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Use TARGET_HARD_FLOAT_ABI.
+
+2004-08-24 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
+
+ PR target/17093
+ * config/m32r.md (movsi_sda): Add SI mode specification to
+ UNSPEC.
+
+2004-08-24 Nick Clifton <nickc@redhat.com>
+
+ * config/m32r/m32r.h (PREDICATE_CODES): Remove duplicate definition
+ of seth_add3_operand.
+
+2004-08-24 Nathan Sidwell <nathan@codesourcery.com>
+
+ * Makefile.in (PROTO_OBJS): Add errors.o.
+ * protoize.c (fancy_abort): Remove.
+ * mips-tfile.c (fancy_abort): Add parameters.
+
+2004-08-24 Jonathan Wakely <redi@gcc.gnu.org>
+
+ * doc/trouble.texi (C++ misunderstandings): Fix example code.
+
+2004-08-24 Andreas Tobler <a.tobler@schweiz.ch>
+
+ * Makefile.in (HOOKS_H): Add dependency on MACHMODE_H.
+ (host-default.o): Add dependency on HOOKS_H.
+ * config/x-linux: Likewise.
+ * config/x-solaris: Likewise.
+ * config/i386/x-mingw32: Likewise.
+ * config/rs6000/x-darwin: Likewise.
+
+2004-08-23 James E Wilson <wilson@specifixinc.com>
+
+ * reg-notes.def (REG_NOTE): In comment, change DEF_INSN_NOTE to
+ DEF_REG_NOTE.
+
+2004-08-23 Mark Mitchell <mark@codesourcery.com>
+
+ PR c/14492
+ * dwarf2out.c (loc_descriptor_from_tree): Robustify.
+
+2004-08-23 Diego Novillo <dnovillo@redhat.com>
+
+ * cfg.c (check_bb_profile): Fix typos.
+ * function.c (assign_parm_is_stack_parm): Likewise.
+ * tree-nested.c: Likewise.
+
+2004-08-23 Daniel Jacobowitz <dan@debian.org>
+
+ * ggc-zone.c (struc alloc_chunk): Rearrange flag bits and SIZE.
+ Remove TYPECODE.
+ (ggc_alloc_zone_1): Mark TYPE as unused. Don't save it in the chunk.
+
+2004-08-23 Eric Christopher <echristo@redhat.com>
+
+ * defaults.h (VECTOR_MODE_SUPPORTED_P): Remove macro.
+ * system.h (VECTOR_MODE_SUPPORTED_P): Poison.
+ * target-def.h (TARGET_VECTOR_MODE_SUPPORTED_P): Define.
+ * target.h: Ditto.
+ * hooks.h: Include machmode.h.
+ (hook_bool_mode_false): Declare.
+ * hooks.c (hook_bool_mode_false): Define.
+ * expr.c (vector_mode_valid_p): Use targetm.vector_mode_supported_p.
+ * stor-layout.c (layout_type): Ditto.
+ * config/alpha/alpha.c (alpha_vector_mode_supported_p): New function.
+ Define to target macro.
+ * config/alpha/alpha.h (VECTOR_MODE_SUPPORTED_P): Delete.
+ * config/arm/arm.c: Ditto. Use.
+ * config/arm/arm.h: Ditto.
+ * config/arm/arm-protos.h: Ditto.
+ * config/i386/i386.c: Ditto.
+ * config/i386/i386.h: Ditto.
+ * config/rs6000/rs6000.c: Ditto.
+ * config/rs6000/rs6000.h: Ditto.
+ * config/sh/sh.c: Ditto.
+ * config/sh/sh.h: Ditto.
+ * config/sh/sh-protos.h: Ditto.
+ * config/sh/sh.md: Use.
+ * doc/tm.texi: Move documentation for VECTOR_MODE_SUPPORTED_P
+ to TARGET_VECTOR_MODE_SUPPORTED_P.
+
+2004-08-23 Nathan Sidwell <nathan@codesourcery.com>
+
+ * Makefile.in (BUILD_ERRORS): Set to build-errors.
+ (errors.o): New target for host.
+ (build-errors.o): New target for build.
+ (genobjs): Replace errors.o with build-errors.
+ (gengenrtl$(buildexeext)): Add $(BUILD_ERRORS).
+ (GCOV_OBJS, GCOV_DUMP_OBJS): Add errors.o.
+ (fix-headers$(build_exeext)): Add $(BUILD_ERRORS).
+ (fix-header.o): Add errors.h
+ * collect2.c (fancy_abort): Add parameters.
+ * collect2.h (fancy_abort): Don't declare.
+ * errors.h (fancy_abort): Don't declare.
+ * errors.c: Include either bconfig.h or config.h.
+ (fancy_abort): Trim filename.
+ * fix-header.c (v_fatal, fatal): Remove.
+ (progname): Remove definition.
+ (main): Set progname here.
+ * gcc.c (fancy_abort): Add parameters.
+ * gcc.h (fancy_abort): Remove declaration.
+ * gcov.c (fancy_abort): Remove.
+ * rtl.h (fancy_abort): Don't declare.
+ (abort): Don't define.
+ * tree.h (fancy_abort): Don't declare.
+ (abort): Don't define.
+ * system.h (fancy_abort): Declare.
+ (abort): Define to fancy_abort.
+ * fixinc/Makefile.in (ALLOBJ): Add ../build-errors.o
+
+ * tree.h (enum size_type_kind): Remove USIZETYPE, UBITSIZETYPE.
+ (usize_type, ubitsizetype): Remove.
+ * stor-layout.c (set_sizetype): Don't initialize usizetype,
+ ubitsizetype.
+ * fold-const.c (size_diffop): TYPE can never be ubitsizetype.
+
+ * tree.h (build_distinct_type_copy): New.
+ (build_type_copy): ... here. Rename to ...
+ (build_variant_type_copy): ... here.
+ * tree.c (build_qualified_type): Rename build_type_copy call.
+ (build_distinct_type_copy): New, broken out of ...
+ (build_type_copy): ... here. Rename to ...
+ (build_variant_type_copy): ... here. Use
+ build_distinct_type_copy.
+ (build_common_tree_nodes_2): Rename build_type_copy call.
+ * c-common.c (c_common_nodes_and_builtins): Rename build_type_copy
+ call.
+ (handle_packed_attribute, handle_unused_attribute,
+ handle_transparanet_union_attribute, handle_aligned_attribute,
+ handle_deprecated_attribute): Likewise.
+ * c-decl.c (clone_underlying_type, store_parm_decls_oldstyle):
+ Likewise.
+ * config/arm/arm.c (arm_handle_isr_attribyte): Likewise.
+ * config/rs6000/rs6000.c (rs6000_init_builtins): Use
+ build_distinct_type_copy.
+
+2004-08-23 Richard Sandiford <rsandifo@redhat.com>
+
+ * config/mips/mips.md (mfhilo_[sd]i): Redefine using :GPR. Add mode
+ attribute.
+
+2004-08-23 Richard Sandiford <rsandifo@redhat.com>
+
+ * config/mips/mips.md (length): Don't use mips_fetch_insns for indexed
+ loads and stores.
+ (*lwxc1_<mode>, *ldxc1_<mode>, *swxc1_<mode>, *sdxc1_<mode>): Name
+ formerly unnamed patterns. Redefine using :P for the address. Remove
+ explicit length attributes.
+
+2004-08-23 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ * tree-ssa-loop-im.c (fem_single_reachable_address, for_each_memref):
+ New functions.
+ (single_reachable_address): Use them.
+ (schedule_sm): Add dump.
+ (is_call_clobbered_ref): New function.
+ (determine_lsm_reg): Check whether the reference is call clobbered.
+ Only work for gimple_reg_type values.
+
+2004-08-23 Richard Sandiford <rsandifo@redhat.com>
+
+ * config/mips/mips.md (*mov<mode>_ra): Name previously unnamed MIPS16
+ $31 store insns. Redefine using :GPR.
+
+2004-08-23 Richard Sandiford <rsandifo@redhat.com>
+
+ * config/mips/mips.md (P): New mode macro.
+ (*xgot_hi[sd]i, *xgot_lo[sd]i, *got_disp[sd]i, *got_page[sd]i)
+ (*load_got[sd]i, *low[sd]i, *low[sd]i_mips16): Redefine using :P.
+ Add mode attributes.
+
+2004-08-23 Richard Sandiford <rsandifo@redhat.com>
+
+ * config/mips/mips.md (UNSPEC_[LS][WD][LR]): Delete in favor of...
+ (UNSPEC_{LOAD,STORE}_{LEFT,RIGHT}): ...these new constants. Shuffle
+ later constants to cover the gap.
+ (load, store): New mode attributes.
+ (mov_l[wd]l, mov_l[wd]r, mov_s[wd]l, mov_s[wd]r): Redefine using :GPR.
+ Use new unspec constants.
+
+2004-08-23 Richard Sandiford <rsandifo@redhat.com>
+
+ * config/mips/mips.md (one_cmpl[sd]i2): Redefine using :GPR.
+ (and[sd]3, ior[sd]i3, xor[sd]i3): Likewise. Change 32-bit patterns
+ to use register_operand rather than uns_arith_operand as the predicate
+ for operand 1. Remove redundant MIPS16 force_reg() for operand 1.
+ (*and[sd]i3, *ior[sd]i3, *xor[sd]i3): Name formerly unnamed patterns.
+ Redefine using :GPR. Make same predicate change here. Extend the
+ commutativity of operands 1 and 2 from the SImode version to the
+ DImode one.
+ (*and[sd]i3_mips16, *ior[sd]i3_mips16, *xor[sd]i3_mips16): Likewise,
+ but with no predicate changes.
+ (*nor[sd]i3): Redefine using :GPR.
+
+2004-08-23 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ * tree-ssa-operands.c (get_call_expr_operands): Add VUSE operands for
+ noreturn functions.
+
+2004-08-23 Richard Sandiford <rsandifo@redhat.com>
+
+ * config/mips/mips.h (ISA_HAS_DCLZ_DCLO): Delete.
+ * config/mips/mips.md (abs[sd]i2): Redefine using :GPR. Only use
+ branch-likely insns for absdi2 if GENERATE_BRANCHLIKELY. Use "%."
+ rather than "%z2" (with a fake const0_rtx for operand 2).
+ (ffs[sd]i2): Redefine using :GPR.
+ (clz[sd]i2): Likewise. Use ISA_HAS_CLO_CLZ for the 64-bit case.
+
+2004-08-23 Richard Sandiford <rsandifo@redhat.com>
+
+ * config/mips/mips.md ({,u}divmod[sd]i4): Redefine using :GPR.
+
+2004-08-23 Richard Sandiford <rsandifo@redhat.com>
+
+ * config/mips/mips.md (any_extend): New code macro.
+ (u, su): New code attributes.
+ ({,u}mulsidi3, {,u}mulsidi3_32bit_internal, {,u}mulsidi3_32bit_r4000)
+ ({u,s}mulsi3_highpart, {u,s}mulsi3_highpart_internal)
+ ({u,s}mulsi3_highpart_mulhi_internal, {s,u}muldi3_highpart)
+ (*{s,u}mul_acc_di): Redefine using any_extend.
+ (*{,u}muls_di, *{s,u}msac_di): Likewise. Change names of patterns
+ to reflect real insn names.
+ (*mulsidi3_64bit, *mulsidi3_64bit_parts): Replace use of match_operator
+ with an any_extend template.
+ ({u,s}mulsi3_highpart_neg_mulhi_internal): Redefine using any_extend.
+ Add '*' to name.
+
+2004-08-23 Richard Sandiford <rsandifo@redhat.com>
+
+ * config/mips/mips.h (GENERATE_MULT3_SI): Check TARGET_MAD.
+ * config/mips/mips.md (mul[sd]i3, mul[sd]i3_internal)
+ (mul[sd]i3_r4000): Redefine using :GPR.
+ (mulsi3_mult3): Don't check TARGET_MAD separately.
+ (muldi3_mult3): Moved after mulsi_mult3.
+
+2004-08-23 Richard Sandiford <rsandifo@redhat.com>
+
+ * config.gcc (mips-*-*): Remove definitions of MASK_GAS and
+ OBJECT_FORMAT_ELF. Set MASK_SPLIT_ADDR by default if using GNU ld.
+ * config/mips/mips.h (MASK_GAS): Delete. Shuffle later masks down.
+ (TARGET_GAS, TARGET_MIPS_AS): Delete.
+ (TARGET_GPWORD): Define to true for n32 on IRIX.
+ (TARGET_SWITCHES): Remove -mmips-as. Turn -mgas into a no-op.
+ (MIPS_AS_ASM_SPEC, SUBTARGET_MIPS_AS_ASM_SPEC): Delete.
+ (GAS_ASM_SPEC): Delete, folding into ASM_SPEC.
+ (ASM_ABI_DEFAULT_SPEC, TARGET_ASM_SPEC): Delete.
+ (MDEBUG_ASM_SPEC): Delete, folding into...
+ (SUBTARGET_ASM_DEBUGGING_SPEC): ...here.
+ (ASM_SPEC): Inline old GAS_ASM_SPEC. Use GNU names for ABI switches.
+ (EXTRA_SPECS): Remove mips_as_asm_spec, gas_asm_spec, target_asm_spec,
+ subtarget_mips_as_asm_spec, mdebug_asm_spec. Use MULTILIB_ABI_DEFAULT
+ to define asm_abi_default_spec.
+ (ASM_STABS_OP, ASM_STABN_OP, ASM_STABD_OP): Delete.
+ (TARGET_ASM_SELECT_SECTION): Delete.
+ * config/mips/mips.c (MIPS_MAX_FIRST_STACK_STEP): Define to 0x7ff0
+ for non-mips16 code, removing previous workaround for SGI assemblers.
+ (TARGET_ASM_INTEGER, mips_assemble_integer): Delete.
+ (TARGET_ASM_ALIGNED_DI_OP): Define this instead.
+ (override_options): Remove !TARGET_GAS and !have_named_sections code.
+ (print_operand): Fold TARGET_GAS conditionals into asm strings.
+ (mips_output_filename): Remove !TARGET_GAS code. Replace use of
+ ASM_STABS_OP and ASM_STABN_OP.
+ (mips_file_start): Remove TARGET_MIPS_AS/TARGET_GAS checks.
+ (mips_output_aligned_decl_common): Remove mention of SGI o32 assembler.
+ (mips_output_function_prologue): Remove !TARGET_GAS code.
+ (mips_select_rtx_section): Remove !have_named_sections code.
+ (mips_select_section): Delete.
+ * config/mips/mips.md (trap): Remove !TARGET_GAS check.
+ * config/mips/linux.h (TARGET_DEFAULT): Remove use of MASK_GAS.
+ * config/mips/sdb.h (PUT_SDB_DEF, PUT_SDB_PLAIN_DEF): Delete.
+ (PUT_SDB_BLOCK_START, PUT_SDB_BLOCK_END): Fold TARGET_GAS conditional.
+ * config/mips/vxworks.h (ASM_SPEC): As for mips.h.
+ * config/mips/windiss.h (ASM_SPEC): Likewise.
+
+2004-08-23 Richard Sandiford <rsandifo@redhat.com>
+
+ * read-rtl.c (map_value, mapping, macro_group): New structures.
+ (BELLWETHER_CODE): New macro.
+ (modes, codes, bellwether_codes): New variables.
+ (find_mode, uses_mode_macro_p, apply_mode_macro, find_code)
+ (uses_code_macro_p, apply_code_macro, apply_macro_to_string)
+ (apply_macro_to_rtx, uses_macro_p, add_condition_to_string)
+ (add_condition_to_rtx, apply_macro_traverse, add_mapping)
+ (add_map_value, initialize_macros): New functions.
+ (def_hash, def_hash_eq_p): Generalize to anything that points to,
+ or starts with, a char * field.
+ (find_macro, read_mapping, check_code_macro): New functions.
+ (read_rtx_1): New, split out from read_rtx. Handle the new
+ define_{mode,code}_{macro,attr} constructs. Use find_macro
+ to parse the name of a code or mode. Use BELLWETHER_CODE to
+ extract the format and to choose a suitable code for rtx_alloc.
+ Modify recursive invocations to use read_rtx_1.
+ (read_rtx): Call initialize_macros. Apply code and mode macros
+ to the rtx returned by read_rtx_1. Cache everything after the
+ first macro expansion for subsequent read_rtx calls.
+ * doc/md.texi: Document new .md constructs.
+ * config/mips/mips.md (GPR): New mode macro.
+ (d, si8_di5): New mode attributes.
+ (any_cond): New code macro.
+ (add[sd]i3): Redefine using :GPR.
+ (*add[sd]i3): Likewise, renaming from add[sd]i3_internal.
+ (*add[sd]i3_sp[12], *add<mode>3_mips16): Redefine using :GPR, naming
+ previously unnamed MIPS16 patterns.
+ (*addsi3_extended): Renamed from addsi3_internal_2. Fix overly long
+ lines. Don't match (plus (const_int 0) ...).
+ (*addsi3_extended_mips16): Name previously unnamed MIPS16 pattern.
+ Use a define_split to generate the addition.
+ (sub[sd]i3): Redefine using :GPR. Turn subsi3 into a define_insn.
+ (subsi3_internal): Delete.
+ (*subsi3_extended): Renamed from subsi3_internal_2.
+ (bunordered, bordered, bunlt, bunge, buneq, bltgt, bunle, bungt)
+ (beq, bne, bgt, bge, blt, ble, bgtu, bgeu, bltu, bleu): Redefine
+ using an any_cond template.
+
+2004-08-23 Richard Sandiford <rsandifo@redhat.com>
+
+ * read-rtl.c (read_rtx): Tidy use of format_ptr.
+
+2004-08-23 Richard Sandiford <rsandifo@redhat.com>
+
+ * read-rtl.c (string_obstack): New file-scope variable.
+ (read_string, read_quoted_string, read_braced_string)
+ (read_escape): Remove obstack parameter and use string_obstack instead.
+ (read_rtx): Remove function-local rtl_obstack and initialize
+ string_obstack instead. Update call to read_string.
+
2004-08-22 Andrew Pinski <apinski@apple.com>
PR c/15262
(copyprop_hardreg_forward_1): Update call to kill_value_regno.
2004-08-20 Daniel Berlin <dberlin@dberlin.org>
-
+
Fix PR tree-optimization/17111
* tree-ssa-pre.c (create_value_expr_from): Don't change the types
of non-value_handles.
(override_options): Added checks for the new options.
(s390_emit_prologue): Emit stack check and trap code and perform
compile time stack size checking.
-
- * config/s390/s390.h (TARGET_OPTIONS): Added new options
+
+ * config/s390/s390.h (TARGET_OPTIONS): Added new options
"warn-framesize", "warn-dynamicstack", "stack-size" and
"stack-guard".