OSDN Git Service

PR tree-optimization/19217
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 47c64d8..ac04aeb 100644 (file)
@@ -1,3 +1,507 @@
+2005-02-01  Steven Bosscher  <stevenb@suse.de>
+
+       PR tree-optimization/19217
+       * tree-cfg.c (verify_expr): Use the data field to see if TP was
+       seen inside a PHI node.  Do not do the ADDR_EXPR check if it was.
+       (verify_stmts): Pass (void*)1 as data to verify_expr to signal
+       that it is walking a PHI node.
+
+2005-02-01  Joseph S. Myers  <joseph@codesourcery.com>
+
+       * doc/extend.texi (Nested Functions): Update.
+
+2005-02-01  Richard Henderson  <rth@redhat.com>
+
+       PR 19696
+       * optabs.c (expand_copysign_absneg): Export.
+       * optabs.h (expand_copysign_absneg): Declare.
+       * config/rs6000/rs6000.md (copysigntf3): New.
+
+2005-02-01  Diego Novillo  <dnovillo@redhat.com>
+
+       PR tree-optimization/19633
+       * tree-flow.h (struct ptr_info_def): Add field 'pt_null'.
+       * tree-ssa-alias.c (init_alias_info): Initialize.
+       (merge_pointed_to_info): Set.
+       (add_pointed_to_expr): Set pt_null if EXPR is a NULL pointer.
+       (dump_points_to_info_for): Show value of pt_null.
+       (struct count_ptr_d): Declare.
+       (find_ptr_dereference): Remove.
+       (ptr_is_dereferenced_by): Remove.
+       (count_ptr_derefs): New local function.
+       (count_uses_and_derefs): New local function.
+       (compute_points_to_and_addr_escape): Call it.  If the number
+       of dereferences is greater than zero, mark the pointer as
+       dereferenced.  If there are fewer dereferences than uses of
+       the pointer, the pointer's value escapes.
+
+2005-02-01  Diego Novillo  <dnovillo@redhat.com>
+
+       PR tree-optimization/19670
+       * tree-ssa.c (verify_ssa_name): Don't set TREE_VISITED
+       here...
+       (verify_use): ... set it here, instead.
+
+2005-02-01  Janis Johnson  <janis187@us.ibm.com>
+
+       * doc/sourcebuild.texi (Test directives): Fix formatting.
+
+       * doc/sourcebuild.texi (Test directives): Describe selector
+       expressions.
+
+2005-02-01  Segher Boessenkool  <segher@kernel.crashing.org>
+
+       * config.gcc (powerpc64-*-linux*): Default to -m64 also for
+       specific 64-bit CPUs.
+
+2005-02-01  Richard Earnshaw  <rearnsha@arm.com>
+
+       PR target/16201
+       * arm.c (arm_eliminable_register): New function.
+       (adjacent_mem_locations): Don't allow eliminable registers.  Use
+       HOST_WIDE_INT for address offsets.
+       * arm-protos.h (arm_eliminable_register): Add prototype.
+
+2005-02-01  Steven Bosscher  <stevenb@suse.de>
+
+       PR optimization/15242
+       * params.def (PARAM_MAX_GOTO_DUPLICATION_INSNS): New param.
+       * basic-block.h (duplicate_computed_gotos): Add prototype.
+       * bb-reorder.c (duplicate_computed_gotos): New function to
+       duplicate sufficiently small blocks ending in a computed jump.
+       * passes.c (rest_of_compilation): Call duplicate_computed_gotos
+       if not optimizing for size.
+       * cfgcleanup.c (try_crossjump_bb): If not optimizing for size,
+       never do tail merging for blocks ending in a computed jump.
+       * doc/invoke.texi: Document the max-goto-duplication-insns param.
+
+2005-02-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
+
+       Patch from Richard Sandiford <rsandifo@redhat.com>
+       * reload1.c (choose_reload_regs): Prevent the find_equiv_reg() code
+       from inheriting a subreg equivalence with a non-spill register.
+
+       * tree.h (DECL_FUNCTION_CODE): Document that it is overloaded.
+
+2005-02-01  Alexandre Oliva  <aoliva@redhat.com>
+
+       * config/frv/frv.c (movcc_fp_destination_operand): New.
+       (gpr_or_memory_operand): Fix typo in comment.
+       (gpr_or_memory_operand_with_scratch): New.
+       * config/frv/frv.h (PREDICATE_CODES): Add the two new predicates.
+       * config/frv/frv.md (movcc_fp, movcc_fp_internal): Use
+       movcc_fp_destination_operand.
+       (reload_incc_fp): Use gpr_or_memory_operand_with_scratch.
+       Legitimize memory addresses using a scratch register.
+
+2005-01-31  Jeff Law  <law@redhat.com>
+
+       * tree-into-ssa.c (mark_def_sites_global_data): Make KILLS
+       bitmap a sparse bitmap instead of a simple bitmap.
+       (mark_def_sites_initialize_block):  Corresponding changes.
+       (ssa_mark_def_sites_initialize_block): Likewise.
+       (ssa_mark_phi_uses): Likewise.
+       (mark_def_site, ssa_mark_def_sites): Likewise.
+       (mark_def_site_blocks): Likewise.
+       (rewrite_ssa_into_ssa): Likewise.
+
+       * tree-ssa-dom.c (record_cond): Pass correct variable type
+       for last argument to htab_find_slot_with_hash.
+
+       * fold-const.c (fold, case CEIL_MOD_EXPR): Do not lose side
+       effects when optimizing 0 % X.  Do not try to optimize X % 0.
+
+2005-01-31  James E. Wilson  <wilson@specifixinc.com>
+
+       * config/ia64/itanium1.md (1_scall bypass): Change 2_mmalua to
+       1_mmalua.
+
+2005-02-01  Eric Christopher  <echristo@redhat.com>
+
+       * config/mips/mips.c (override_options): Warn if -mint64
+       is used.
+       * doc/invoke.texi (MIPS Options): Document that -mint64 is
+       deprecated.
+
+2005-02-01  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * cse.c (cse_reg_info): Remove hash_next, next, regno.  Add
+       timestamp.
+       (cse_reg_info_list, cse_reg_info_list_free, REGHASH_SHIFT,
+       REGHASH_SIZE, REGHASH_MASK, reg_hash, REGHASH_FN,
+       cached_cse_reg_info, GET_CSE_REG_INFO): Remove.
+       (cached_regno): Initialize to INVALID_REGNUM.
+       (cse_reg_info_table_size,
+       cse_reg_info_table_first_uninitialized,
+       cse_reg_info_timestamp): New.
+       (REG_TICK, REG_IN_TABLE, SUBREG_TICKED, REG_QTY): Use
+       get_cse_reg_info.
+       (init_cse_reg_info, get_cse_reg_info_1): New.
+       (get_cse_reg_info): Cache the last look-up.
+       (new_basic_block): Update the code to clear mappings from
+       registers to cse_reg_info entries.
+       (cse_main): Call init_cse_reg_info.
+
+       * cse.c (get_cse_reg_info): Update a comment.
+
+2005-01-31  Steven Bosscher  <stevenb@suse.de>
+
+       PR c/19333
+       * c-decl.c (start_decl): Do not warn about arrays of elements with
+       an incomplete type here.
+       (grokdeclarator): Do it here by making a pedwarn an error.
+       * c-typeck.c (push_init_level): If there were previous errors with
+       the constructor type, do not warn about braces for initializers.
+       (process_init_element): Likewise for excess initializer elements.
+
+2005-01-31  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * cse.c (delete_trivially_dead_insn): Don't iterate.
+
+2005-01-31  Andrew Pinski  <pinskia@physics.uc.edu>
+
+       * config/rs6000/rs6000.md (copysignsf3): New expand.
+       (copysigndf3): Likewise.
+
+2005-01-31  Steven Bosscher  <stevenb@suse.de>
+
+       * recog.c (constrain_operands): Only look for earlyclobber operand
+       conflicts if an '&' constraint was seen.
+
+2005-01-31  Marc Espie <espie@openbsd.org>
+
+       * config.gcc: Don't include embedded systems fragment, switches default
+       debugging format to ELF.
+       * config/i386/openbsdelf.h: Add DBX_REGISTER_NUMBER since we no 
+       longer pick it up there.
+
+2005-01-31  Dale Johannesen  <dalej@apple.com>
+       
+       * doc/extend.texi (nested functions): Fix linkage description.
+       Clarify that static is not allowed.
+
+2005-01-31  Dale Johannesen  <dalej@apple.com>
+       
+       * config/rs6000/darwin.md (movsf_low_di):  Make work.
+       (movdf_low_di):  Make work.
+
+2005-01-31  Dale Johannesen  <dalej@apple.com>
+
+       * config/rs6000/darwin-tramp.asm (__trampoline_setup):
+       Make work for 64 bit.
+
+2005-01-31  Roger Sayle  <roger@eyesopen.com>
+           Dale Johannesen  <dalej@apple.com>
+
+       PR middle-end/19650
+       * fold-const.c (fold_binary_op_with_conditional_arg):
+       Make types match original operands, before STRIP_NOPS.
+
+2005-01-31  Alan Modra  <amodra@bigpond.net.au>
+
+       * config/rs6000/linux-unwind.h (struct gcc_vregs): New.
+       (struct gcc_regs): Rename from gcc_pt_regs.  Add more regs.
+       (struct gcc_sigcontext): Delete.  Merge contents to..
+       (struct gcc_ucontext): ..here.
+       (get_sigcontext): Delete.
+       (get_regs): New function, like get_sigcontext but return regs ptr.
+       64-bit version finds regs from r1 to support vdso.
+       (ppc_linux_aux_vector): New function.
+       (ppc_fallback_frame_state): Modify for get_regs.  Restore fprs
+       and vector regs.
+
+2005-01-31  Ira Rosen  <irar@il.ibm.com>
+
+       * tree-vectorizer.c (vect_analyze_offset_expr): Use ssizetype instead
+       sizetype.
+       (vect_get_base_and_offset): Use ssizetype instead sizetype. Remove
+       redundant fold. Fix misalignment for MINUS_EXPR.
+       (vect_compute_data_ref_alignment): Use ssizetype instead sizetype.
+       (vect_analyze_pointer_ref_access): Likewise.
+       (vect_get_memtag_and_dr): Likewise.
+
+2005-01-31  Richard Henderson  <rth@redhat.com>
+
+       * config/i386/i386.c (absnegsf2_mixed): Remove all of the # hackery.
+       (absnegsf2_sse, absnegsf2_i387, absnegdf2_mixed, absnegdf2_sse,
+       absnegdf2_i387, absnegxf2_i387): Likewise.
+
+2005-01-31  Richard Henderson  <rth@redhat.com>
+
+       PR 19696
+       * optabs.c (expand_copysign_absneg): New.
+       (expand_copysign_bit): Split out from ...
+       (expand_copysign): ... here.  Use expand_copysign_absneg.
+
+2005-01-30  Roger Sayle  <roger@eyesopen.com>
+
+       PR middle-end/19697
+       * config/pa/pa.md (anddi3, iordi3): On HPPA64, disallow an integer
+       constant as the second operand and a register as the third.
+
+2005-01-31  Danny Smith  <dannysmith@users.sourceforge.net>
+
+       PR target/19704
+       * config/i386/i386.c (ix86_function_ok_for_sibcall):  Also check
+       that dllimport'd functions do not use all call-clobbered registers
+       to pass parameters.
+
+2005-01-30  Richard Henderson  <rth@redhat.com>
+
+       PR 19696
+       * optabs.c (expand_absneg_bit): Split out from expand_unop and
+       expand_abs_nojump and generalize.  Use operand_subword and
+       emit_no_conflict_block.  Support large modes.
+       (expand_abs_nojump): Use it.  Use HONOR_SIGNED_ZEROS to fall
+       back to maximum.
+       (expand_unop): Likewise.  Use HONOR_SIGNED_ZEROS to fall back
+       negation to subtraction.
+       (expand_copysign): Check that the format has signed zeros.
+       Use operand_subword and emit_no_conflict_block.  Support large modes.
+
+2005-01-30  Daniel Berlin  <dberlin@dberlin.org>
+
+       Fix PR tree-optimization/19624
+       
+       * Makefile.in (tree-ssa-pre.o): Add CFGLOOP_H.
+       * tree-ssa-pre.c: Add cfgloop.h.
+       Update comment.
+       (pre_stats): New member, constified.
+       (inserted_exprs): New static variable.
+       (NECESSARY): New macro.
+       (create_expression_by_pieces): Fold the expression, and
+       mark it as defaulting to not necessary. Also put in
+       inserted_exprs.
+       (fully_constant_expression): New function.
+       (insert_into_preds_of_block): Modify to not insert phis when we
+       are playing with induction variables.
+       Push phis onto the inserted_exprs vector, and mark them as not
+       necessary by default.
+       (insert_aux): Call fully_constant_expression on eprime.
+       If all edges produce the same value, mark it constant.
+       (mark_operand_necessary): New function.
+       (remove_dead_inserted_code): New function.
+       (init_pre): Init loop optimizer to get loop info.
+       (fini_pre): Free loop_optimizer, and inserted_exprs vec.
+       (execute_pre): Commit edge inserts, then remove dead code.
+
+2005-01-30  Richard Henderson  <rth@redhat.com>
+
+       * rtl.c (rtx_equal_p): No early exit for CONST_VECTOR.
+       * varasm.c (const_rtx_hash_1): Handle CONST_VECTOR.
+
+2005-01-30  Richard Henderson  <rth@redhat.com>
+
+       PR target/19700
+       * config/i386/i386.c (ix86_expand_copysign): New.
+       (ix86_split_copysign_const): New.
+       (ix86_split_copysign_var): Rename from ix86_split_copysign, 
+       rearrange op1/nmask operands.
+       * config/i386/i386-protos.h: Update.
+       * config/i386/i386.md (copysignsf3): Use ix86_expand_copysign.
+       (copysigndf3): Likewise.
+       (copysignsf3_const, copysigndf3_const): New.
+       (copysignsf3_var): Rename from copysignsf3, split out splitter
+       and fix split predicate for X constraint.
+       (copysigndf3_var): Similarly.
+
+2005-01-30  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * optabs.c, doc/c-tree.texi, doc/install.texi, doc/md.texi,
+       doc/passes.texi, doc/rtl.texi, doc/sourcebuild.texi,
+       doc/tm.texi, doc/tree-ssa.texi: Update copyright.
+
+2005-01-29  Richard Henderson  <rth@redhat.com>
+
+       PR target/19690
+       * config/i386/i386.md (movdf_nointeger, movdf_integer): Fix ordering
+       of # and * in constraints.
+
+2005-01-29  Richard Henderson  <rth@redhat.com>
+
+       PR middle-end/19689
+       * expr.c (store_field): Don't strip sub-mode cast when the input
+       data is even smaller.
+
+2005-01-29  Richard Henderson  <rth@redhat.com>
+
+       PR middle-end/19687
+       * expr.c (categorize_ctor_elements_1): Check for CONSTRUCTOR of a
+       union being empty.
+
+2005-01-29  Richard Henderson  <rth@redhat.com>
+
+       * combine.c (make_field_assignment): Fix argument order
+       to gen_int_mode.
+
+2005-01-29  Richard Guenther <richard.guenther@uni-tuebingen.de>
+
+       PR tree-optimization/15791
+       * fold-const.c (extract_array_ref): New function.
+       (fold): Fold comparisons between &a[i] and &a[j] or
+       semantically equivalent trees.
+
+2005-01-29  Jeff Law  <law@redhat.com>
+
+       * gcse.c (insert_expr_in_table): Revamp handling of available
+       and anticipatable occurrence lists to avoid unnecessary list
+       walking.
+       (insert_set_in_table): Similarly.
+
+2005-01-29  Joseph S. Myers  <joseph@codesourcery.com>
+
+       * c-common.c (fix_string_type): Just use c_build_qualified_type to
+       build string type.
+       (c_build_qualified_type): Build qualified array types with
+       TYPE_MAIN_VARIANT pointing to corresponding unqualified type.
+       * c-decl.c (c_make_fname_decl): Build unqualified array type
+       before qualified type.
+       (grokdeclarator): Use TYPE_MAIN_VARIANT of typedef type if element
+       type is qualified, not just if type itself is.  Don't apply
+       qualifiers to array type when declarator is processed.  Apply
+       qualifiers to field type whether or not it is an array type.
+       Don't handle array types specially for applying qualifiers to
+       variables.
+       * c-typeck.c (composite_type): Build unqualified element type and
+       array type when forming composite of array types.
+       (common_pointer_type, comptypes, comp_target_types,
+       type_lists_compatible_p, build_indirect_ref, build_array_ref,
+       convert_for_assignment): Don't apply TYPE_MAIN_VARIANT to array
+       types.
+       (type_lists_compatible_p): Cache TREE_VALUE (args1) and TREE_VALUE
+       (args2) in variables a1 and a2.
+
+2005-01-29  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * cse.c (n_elements_made, max_elements_made): Remove.
+       (insert): Don't touch n_elements_made.
+       (cse_main): Don't touch n_elements_made or max_elements_made.
+
+2005-01-28  Stephane Carrez  <stcarrez@nerim.fr>
+
+       PR target/15384
+       * config/m68hc11/t-m68hc11-gas (dp-bit.c): Fix typo causing a
+       configuration part of dp-bit.c to be lost.
+
+2005-01-28  Roger Sayle  <roger@eyesopen.com>
+
+       * expmed.c (expand_mult_highpart_optab): When attempting to use
+       a non-widening multiplication in a wider mode, the operands need
+       to be converted (zero or sign extended) to that mode.
+
+2005-01-28  Ian Lance Taylor  <ian@airs.com>
+
+       PR middle-end/16558
+       PR middle-end/19583
+       * gimple-low.c (block_may_fallthru): TRY_FINALLY_EXPR only falls
+       through if both operands fall through.
+
+2005-01-28  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * cse.c (fold_rtx) <PC>: Don't optimize.
+
+2005-01-28  Jeff Law  <law@redhat.com>
+
+       * fold-const.c (fold, case CEIL_MOD_EXPR): Optimize 0 % X.
+       (case FLOOR_MOD_EXPR, ROUND_MOD_EXPR, TRUNC_MOD_EXPR): Similarly.
+
+2005-01-28  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * cse.c (cse_reg_info_free_list, cse_reg_info_used_list,
+       cse_reg_info_used_list_end): Remove.
+       (cse_reg_info_list, cse_reg_info_list_free): New.
+       (get_cse_reg_info): When allocating an instance of
+       cse_reg_info, add it to the beginning of the cse_reg_info_list
+       list.  Remove code to maintain cse_reg_info_used_list.
+       (new_basic_block): Reset the free list to the beginning of
+       cse_reg_info_list.
+
+2005-01-28  Richard Sandiford  <rsandifo@redhat.com>
+
+       * config/frv/frv.c (bdesc_2arg): Remove __MDPACKH.
+       (frv_init_builtins): Change its prototype to take 4 uhalf arguments.
+       (frv_expand_mdpackh_builtin): New function.
+       (frv_expand_builtin): Use it to expand __MDPACKH.
+       * doc/extend.texi (__MDPACKH): Update documentation.
+
+2005-01-28  Uros Bizjak  <uros@kss-loka.si>
+
+       * config/i386/i386.c (ix86_expand_fp_absneg_operator): Use
+       SSE_FLOAT_MODE_P for use_sse computation.
+
+2005-01-28  Ralf Corsepius  <ralf.corsepius@rtems.org>
+
+       PR target/19663
+       * config/sparc/rtemself.h (LINK_GCC_C_SEQUENCE_SPEC): undefine.
+
+2005-01-27  Richard Henderson  <rth@redhat.com>
+
+       * builtins.c (expand_builtin_copysign): New.
+       (expand_builtin): Call it.
+       * genopinit.c (optabs): Add copysign_optab.
+       * optabs.c (init_optabs): Initialize it.
+       (expand_copysign): New.
+       * optabs.h (OTI_copysign, copysign_optab): New.
+       (expand_copysign): Declare.
+
+       * config/alpha/alpha.md (UNSPEC_COPYSIGN): New.
+       (copysignsf3, ncopysignsf3, copysigndf3, ncopysigndf3): New.
+
+       * config/i386/i386.c (ix86_build_signbit_mask): Split from ...
+       (ix86_expand_fp_absneg_operator): ... here.
+       (ix86_split_copysign): New.
+       * config/i386/i386-protos.h: Update.
+       * config/i386/i386.md (UNSPEC_COPYSIGN): New.
+       (copysignsf3, copysigndf3): New.
+
+       * config/ia64/ia64.md (UNSPEC_COPYSIGN): New.
+       (copysignsf3, ncopysignsf3): New.
+       (copysigndf3, ncopysigndf3): New.
+       (copysignxf3, ncopysignxf3): New.
+       * config/ia64/ia64.c (rtx_needs_barrier): Handle UNSPEC_COPYSIGN.
+
+2005-01-27  Arend Bayer  <arend.bayer@web.de>
+           Kazu Hirata  <kazu@cs.umass.edu>
+
+       * cse.c: (find_best_addr): Don't call copy_rtx before calling
+       fold_rtx.  Save cost recomputation if fold_rtx did nothing.
+       (fold_rtx) <ASM_OPERANDS>: Don't do anything if INSN is
+       NULL_RTX.
+
+2005-01-27  Jeff Law  <law@redhat.com>
+
+       * tree-into-ssa.c (ssa_rewrite_initialize_block): Do not register
+       definitions of SSA_NAMEs which are not being rewritten.
+       (rewrite_ssa_into_ssa): Only initialize the current definition
+       of an SSA_NAME if that SSA_NAME has been marked for rewriting.
+       If checking is enabled, assert that SSA_NAME_AUX is clear for all
+       SSA_NAMEs before returning.
+
+2005-01-27  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * c-common.def, c-dump.c, c-gimplify.c, c-objc-common.c,
+       cfgexpand.c, dbxout.c, function.h, opts.c, tree-flow-inline.h,
+       tree-ssa-operands.h, tree-ssa-threadupdate.c, tree-tailcall.c,
+       config/avr/avr.md, config/cris/aout.h, config/cris/cris.h,
+       config/mips/iris6.h, config/sh/sh.c: Update copyright.
+
+2005-01-27  Steven Bosscher  <stevenb@suse.de>
+
+       PR middle-end/17278
+       * opts.c (decode_options): Move flag_thread_jumps from -O1 and
+       higher to -O2 and higher.  Likewise for tree PRE.
+       * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only iterate at -O2
+       and better.
+
+2005-01-27  Ian Lance Taylor  <ian@airs.com>
+
+       PR middle-end/19583
+       * gimple-low.c (try_catch_may_fallthru): New static function.
+       (block_may_fallthru): Handle TRY_CATCH_EXPR.
+       * tree-inline.c (expand_call_inline): Don't warn about reaching
+       the end of a non-void function being inlined if the function uses
+       a return slot.
+
 2005-01-27  Jakub Jelinek  <jakub@redhat.com>
 
        * config/i386/i386.h (CALL_USED_REGISTERS): Fix comment pastos.
 
 2005-01-26  Stuart Hastings  <stuart@apple.com>
 
-       * gcc/gimplify.c (shortcut_cond_expr): Re-compute side-effects.
-       * gcc/testsuite/gcc.c-torture/execute/20050125-1.c: New.
+       * gimplify.c (shortcut_cond_expr): Re-compute side-effects.
 
 2005-01-26  Richard Henderson  <rth@redhat.com>
 
 
 2005-01-11  Andreas Krebbel  <krebbel1@de.ibm.com>
 
-       * config/s390/s390.c (struct s390_frame_layout): Remove 
+       * config/s390/s390.c (struct s390_frame_layout): Remove
        save_backchain_p.
        (s390_frame_info, s390_emit_prologue): Replace occurrences of
        save_backchain_p with TARGET_BACKCHAIN.
 
 2005-01-09  Ira Rosen  <irar@il.ibm.com>
 
-       * tree-vectorizer.c (vect_analyze_offset_expr): Use 
+       * tree-vectorizer.c (vect_analyze_offset_expr): Use
        expr_invariant_in_loop_p.
        Initialize outputs first thing in the function.
        (vect_update_ivs_after_vectorizer): Call initial_condition_in_loop_num.
        (vect_is_simple_iv_evolution): Call initial_condition_in_loop_num.
-       (vect_analyze_pointer_ref_access): Check that the initial condition of 
+       (vect_analyze_pointer_ref_access): Check that the initial condition of
        the access function is loop invariant.
 
 2005-01-09  Richard Henderson  <rth@redhat.com>
        gtv2si3, umaxv8qi3, smaxv4hi3, uminv8qi3, sminv4hi3, ashrv4hi3,
        ashrv2si3, lshrv4hi3, lshrv2si3, mmx_lshrdi3, ashlv4hi3, ashlv2si3,
        mmx_ashldi3, mmx_packsswb, mmx_packssdw, mmx_packuswb, mmx_punpckhbw,
-       mmx_punpckhwd, mmx_punpckhdq, mmx_punpcklbw, mmx_punpcklwd, 
+       mmx_punpckhwd, mmx_punpckhdq, mmx_punpcklbw, mmx_punpcklwd,
        mmx_punpckldq, emms, addv2sf3, subv2sf3, subrv2sf3, gtv2sf3, gev2sf3,
        eqv2sf3, pfmaxv2sf3, pfminv2sf3, mulv2sf3, femms, pf2id, pf2iw,
        pfacc, pfnacc, pfpnacc, pi2fw, floatv2si2, pfrcpv2sf2, pfrcpit1v2sf3,
        pswapdv2sf2): Move to mmx.md; rename as necessary with leading
        mmx_ prefix.
        (mmx_clrdi, pavgusb): Remove.
-       (ldmxcsr, stmxcsr, sfence, sfence_insn): Move to sse.md; rename 
+       (ldmxcsr, stmxcsr, sfence, sfence_insn): Move to sse.md; rename
        with leading sse_ prefix.
        * config/i386/sse.md: Receive them.
        * config/i386/mmx.md: New file.
        (mmx_add<MMXMODEI>3, mmx_ssadd<MMXMODE12>3, mmx_usadd<MMXMODE12>3,
        mmx_sub<MMXMODEI>3, mmx_sssub<MMXMODE12>3, mmx_ussub<MMXMODE12>3
        mmx_ashr<MMXMODE24>3, mmx_lshr<MMXMODE23>3, mmx_ashl<MMXMODE24>3
-       mmx_eq<MMXMODEI>3, mmx_gt<MMXMODEI>3, mmx_and<MMXMODEI>3, 
+       mmx_eq<MMXMODEI>3, mmx_gt<MMXMODEI>3, mmx_and<MMXMODEI>3,
        mmx_nand<MMXMODEI>3, mmx_ior<MMXMODEI>3, mmx_xor<MMXMODEI>3):
        Macroize from existing patterns; use ix86_binary_operator_ok.
        (mmx_packsswb, mmx_packssdw, mmx_packuswb): Add memory alternative.
        (movtf, movtf_internal): Move near other fp moves.
        (SSEMODE, SSEMODEI, vec_setv2df, vec_extractv2df, vec_initv2df,
        vec_setv4sf, vec_extractv4sf, vec_initv4sf, movv4sf, movv4sf_internal,
-       movv2df, movv2df_internal, mov<SSEMODEI>, mov<SSEMODEI>_internal, 
+       movv2df, movv2df_internal, mov<SSEMODEI>, mov<SSEMODEI>_internal,
        movmisalign<SSEMODE>, sse_movups_1, sse_movmskps, sse_movntv4sf,
        sse_movhlps, sse_movlhps, sse_storehps, sse_loadhps, sse_storelps,
        sse_loadlps, sse_loadss, sse_loadss_1, sse_movss, sse_storess,
        sse_shufps, addv4sf3, vmaddv4sf3, subv4sf3, vmsubv4sf3, negv4sf2,
        mulv4sf3, vmmulv4sf3, divv4sf3, vmdivv4sf3, rcpv4sf2, vmrcpv4sf2,
        rsqrtv4sf2, vmrsqrtv4sf2, sqrtv4sf2, vmsqrtv4sf2, sse_andv4sf3,
-       sse_nandv4sf3, sse_iorv4sf3, sse_xorv4sf3, sse2_andv2df3, 
-       sse2_nandv2df3, sse2_iorv2df3, sse2_xorv2df3, sse2_andv2di3, 
-       sse2_nandv2di3, sse2_iorv2di3, sse2_xorv2di3, maskcmpv4sf3, 
+       sse_nandv4sf3, sse_iorv4sf3, sse_xorv4sf3, sse2_andv2df3,
+       sse2_nandv2df3, sse2_iorv2df3, sse2_xorv2df3, sse2_andv2di3,
+       sse2_nandv2di3, sse2_iorv2di3, sse2_xorv2di3, maskcmpv4sf3,
        vmmaskcmpv4sf3, sse_comi, sse_ucomi, sse_unpckhps, sse_unpcklps,
        smaxv4sf3, vmsmaxv4sf3, sminv4sf3, vmsminv4sf3, cvtpi2ps, cvtps2pi,
        cvttps2pi, cvtsi2ss, cvtsi2ssq, cvtss2si, cvtss2siq, cvttss2si,
        smulv8hi3_highpart, umulv8hi3_highpart, sse2_umulsidi3,
        sse2_umulv2siv2di3, sse2_pmaddwd, sse2_uavgv16qi3, sse2_uavgv8hi3,
        sse2_psadbw, sse2_pinsrw, sse2_pextrw, sse2_pshufd, sse2_pshuflw,
-       sse2_pshufhw, eqv16qi3, eqv8hi3, eqv4si3, gtv16qi3, gtv8hi3, 
+       sse2_pshufhw, eqv16qi3, eqv8hi3, eqv4si3, gtv16qi3, gtv8hi3,
        gtv4si3, umaxv16qi3, smaxv8hi3, uminv16qi3, sminv8hi3, ashrv8hi3,
        ashrv4si3, lshrv8hi3, lshrv4si3, lshrv2di3, ashlv8hi3, ashlv4si3,
        ashlv2di3, sse2_ashlti3, sse2_lshrti3, sse2_unpckhpd, sse2_unpcklpd,
-       sse2_packsswb, sse2_packssdw, sse2_packuswb, sse2_punpckhbw, 
+       sse2_packsswb, sse2_packssdw, sse2_packuswb, sse2_punpckhbw,
        sse2_punpckhwd, sse2_punpckhdq, sse2_punpcklbw, sse2_punpcklwd,
        sse2_punpckldq, sse2_punpcklqdq, sse2_punpckhqdq, sse2_movupd,
-       sse2_movdqu, sse2_movdq2q, sse2_movdq2q_rex64, sse2_movq2dq, 
+       sse2_movdqu, sse2_movdq2q, sse2_movdq2q_rex64, sse2_movq2dq,
        sse2_movq2dq_rex64, sse2_loadd, sse2_stored, sse2_storehpd,
        sse2_loadhpd, sse2_storelpd, sse2_loadlpd, sse2_movsd, sse2_loadsd,
        sse2_loadsd_1, sse2_storesd, sse2_shufpd, sse2_clflush, sse2_mfence,
        sse3_haddv4sf3, sse3_hsubv4sf3, sse3_addsubv2df3, sse3_haddv2df3,
        sse3_hsubv2df3, sse2_ashlti3, sse2_lshrti3): Likewise.
        (sse_movhlps): Model with vec_select+vec_concat.
-       (sse_movlhps, sse_unpckhps, sse_unpcklps, sse3_movshdup, 
+       (sse_movlhps, sse_unpckhps, sse_unpcklps, sse3_movshdup,
        sse3_movsldup, sse_shufps, sse_shufps_1, sse2_unpckhpd, sse3_movddup,
        sse2_unpcklpd, sse2_shufpd, sse2_shufpd_1, sse2_punpckhbw,
        sse2_punpcklbw, sse2_punpckhwd, sse2_punpcklwd, sse2_punpckhdq,
        sse2_punpckldq, sse2_punpckhqdq, sse2_punpcklqdq, sse2_pshufd,
-       sse2_pshufd_1, sse2_pshuflw, sse2_pshuflw_1, sse2_pshufhw, 
+       sse2_pshufd_1, sse2_pshuflw, sse2_pshuflw_1, sse2_pshufhw,
        sse2_pshufhw_1): Likewise.
        (neg<SSEMODEI>2, one_cmpl<SSEMODEI>2): New.
        (add<SSEMODEI>3, sse2_ssadd<SSEMODE12>3, sse2_usadd<SSEMODE12>3,
        sub<SSEMODEI>3, sse2_sssub<SSEMODE12>3, sse2_ussub<SSEMODE12>3,
        ashr<SSEMODE24>3, lshr<SSEMODE248>3, sse2_eq<SSEMODE124>3,
        sse2_gt<SSEMODDE124>3, and<SSEMODEI>3, sse_nand<SSEMODEI>3,
-       ior<SSEMODEI>3, xor<SSEMODEI>3): Macroize from existing patterns.       
+       ior<SSEMODEI>3, xor<SSEMODEI>3): Macroize from existing patterns.
        (addv4sf3, sse_vmaddv4sf3, mulv4sf3, sse_vmmulv4sf3, smaxv4sf3,
        sse_vmsmaxv4sf3, sminv4sf3, sse_vmsminv4sf3, addv2df3, sse2_vmaddv2df3,
        mulv2df3, sse2_vmmulv2df3, smaxv2df3, sse2_vmsmaxv2df3, sminv2df3,
        for IBM long double format correctly.
 
 2005-01-06  Daniel Berlin <dberlin@dberlin.org>
-       
+
        Fix PR tree-optimization/18792
 
        * tree-data-ref.c (build_classic_dist_vector): Change first_loop
        to first_loop_depth, and use loop depth instead of loop number.
        (build_classic_dir_vector): Ditto.
        (compute_data_dependences_for_loop): Use depth, not loop number.
-       * tree-loop-linear.c (try_interchange_loops): Use loop depth, not loop 
+       * tree-loop-linear.c (try_interchange_loops): Use loop depth, not loop
        number. Pass in loops, instead of loop numbers.
        (gather_interchange_stats): Ditto.
        (linear_transform_loops): Ditto.
        * gcc.c (process_command): Change year in 'gcc --version' to 2005.
 
 2005-01-05  Daniel Berlin  <dberlin@dberlin.org>
-       
+
        Fix PR middle-end/19286
        Fix PR debug/19267
        * dwarf2out.c (gen_subprogram_die): If we've already tried to
        (decls_for_scope): Ditto.
        * gimple-low.c (mark_blocks_with_used_subblocks): Remove.
        (mark_used_blocks): Don't call mark_blocks_with_used_subblocks.
-       
+
 2005-01-05  Richard Henderson  <rth@redhat.com>
 
        PR target/11327
        (ix86_expand_binop_builtin): Force operands into registers
        when optimizing.
        (ix86_expand_unop_builtin, ix86_expand_unop1_builtin,
-       ix86_expand_sse_compare, ix86_expand_sse_comi, 
+       ix86_expand_sse_compare, ix86_expand_sse_comi,
        ix86_expand_builtin): Likewise.
 
 2005-01-05  Richard Henderson  <rth@redhat.com>
            Richard Henderson  <rth@redhat.com>
 
        PR target/18910
-       * config/i386/i386.c (ix86_expand_move): Handle tls symbols 
+       * config/i386/i386.c (ix86_expand_move): Handle tls symbols
        with an offset.
 
 2005-01-05  Richard Henderson  <rth@redhat.com>
 
        * tree-vectorizer.c (vect_strip_conversions): New function.
        (vect_analyze_offset_expr): Call vect_strip_conversions. Add
-       check for binary class. 
+       check for binary class.
 
 2005-01-03  Daniel Berlin  <dberlin@dberlin.org>
 
        * tree-inline.c: Include debug.h.
        (expand_call_inline): Call outlining_inline_function here.
        * tree-optimize.c (init_tree_optimization_passes): Add
-       pass_mark_used_blocks. 
+       pass_mark_used_blocks.
        * tree-pass.h (pass_mark_used_blocks): New.
        * Makefile.in (tree-inline.o): Add debug.h dependency.