I swear this was in there when i committed, but apparently not
[gcc.git] / gcc / ChangeLog
index d0f51a0e947076d4edca6cf28a569703d30f41a5..ab3054559bbe6d1e1361dec182b18d3dba852b91 100644 (file)
@@ -1,3 +1,115 @@
+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.