I swear this was in there when i committed, but apparently not
[gcc.git] / gcc / ChangeLog
index 194966cbb5c8a598f453d18cd023ec929966a0a0..ab3054559bbe6d1e1361dec182b18d3dba852b91 100644 (file)
@@ -1,3 +1,433 @@
+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.
+
+       PR c/18946
+       * c-decl.c (warn_if_shadowing): Handle old_decl error_mark_node.
+       (pushdecl): Only use DECL_FILE_SCOPE_P if DECL_P.
+       (implicitly_declare): Handle error_mark_node.
+
+2005-01-27  Richard Henderson  <rth@redhat.com>
+
+       PR tree-opt/14329
+       * tree.h (struct tree_decl): Add debug_expr_is_from.
+       (DECL_DEBUG_EXPR_IS_FROM): New.
+       (DECL_DEBUG_EXPR): Rename from DECL_DEBUG_ALIAS_OF.
+       * dwarf2out.c (dwarf2out_var_location): Update to match.
+       * tree-outof-ssa.c (create_temp): Likewise.
+       * var-tracking.c (track_expr_p): Likewise.
+       * tree-sra.c (instantiate_element): Set DECL_DEBUG_EXPR.
+       * c-objc-common.c (c_tree_printer) <'D'>: Handle DECL_DEBUG_EXPR.
+       * toplev.c (default_tree_printer): Likewise.
+
+2005-01-27  Alexandre Oliva  <aoliva@redhat.com>
+
+       * config/frv/frv.c (frv_class_likely_spilled_p): Add GR8_REGS,
+       GR9_REGS, GR89_REGS, FDPIC_FPTR_REGS, FDPIC_REGS.
+
+2005-01-27  Steven Bosscher  <stevenb@suse.de>
+
+       * tree.h (SWITCH_COND, SWITCH_BODY, SWITCH_LABELS, CASE_LOW,
+       CASE_HIGH, CASE_LABEL, ASM_STRING, ASM_OUTPUTS, ASM_INPUTS,
+       ASM_CLOBBERS): Add tree checks.
+
+       * c-common.h (SWITCH_TYPE): Rename to SWITCH_STMT_TYPE.
+       (SWITCH_STMT_COND, SWITCH_STMT_BODY): New.
+       * c-common.def (SWITCH_STMT): Update to match.
+       * c-common.c (c_do_switch_warnings): Use SWITCH_STMT accessor
+       macros instead of SWITCH_EXPR ones.
+       * c-dump.c (c_dump_tree): Likewise.
+       * c-gimplify.c (gimplify_switch_stmt): Likewise.
+       * c-typeck.c (c_start_case, do_case, c_finish_case): Likewise.
+
+       * doc/c-tree.texi (SWITCH_STMT): Update accessor macro names.
+
+2005-01-27  Alan Modra  <amodra@bigpond.net.au>
+
+       * unwind-dw2.c (execute_stack_op): Add missing cases for
+       DW_OP_shl, DW_OP_shr, DW_OP_shra, DW_OP_xor.
+
+2005-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
+
+       * config.gcc (Obsolete configurations): Remove 'dummy', add
+       sparclite-*-coff*, sparclite-*-elf*, sparc86x-*-elf* and
+       sparc-*-openbsd*.
+
+2005-01-26  Diego Novillo  <dnovillo@redhat.com>
+
+       PR tree-optimization/19633
+       * tree-ssa-alias.c (ptr_is_dereferenced_by): Also handle
+       CALL_EXPRs.
+       (maybe_create_global_var): Do not create .GLOBAL_VAR if there
+       are no call-clobbered variables.
+       * tree-outof-ssa.c (check_replaceable): Return false for calls
+       with side-effects.
+
+2005-01-26  Ulrich Weigand  <uweigand@de.ibm.com>
+
+       * dbxout.c (dbxout_symbol_location): Resolve constant pool references
+       even for variables with NULL DECL_INITIAL.
+
+2005-01-26  Stuart Hastings  <stuart@apple.com>
+
+       * gimplify.c (shortcut_cond_expr): Re-compute side-effects.
+
+2005-01-26  Richard Henderson  <rth@redhat.com>
+
+       PR middle-end/18008
+       * c-decl.c (finish_struct): Set DECL_MODE after resetting a
+       field's type.
+       * expr.c (store_field): Strip conversions to odd-bit-sized types
+       if the destination field width matches.
+
+2005-01-26  Richard Henderson  <rth@redhat.com>
+
+       * c-decl.c, expmed.c, expr.c: Revert last change.
+
+2005-01-26  Richard Henderson  <rth@redhat.com>
+
+       PR middle-end/18008
+       * c-decl.c (finish_struct): Set DECL_MODE after resetting a
+       field's type.
+       * expmed.c (store_fixed_bit_field): Create a paradoxical subreg
+       if we don't need the bits above those present in the current mode.
+       * expr.c (store_field): Strip conversions to odd-bit-sized types
+       if the destination field width matches.
+
+2005-01-26  Richard Sandiford  <rsandifo@redhat.com>
+
+       * config/mips/iris6.h (ENDFILE_SPEC): Don't link in irix-csr.o if
+       either -ffast-math or -funsafe-math-optimizations is in use.
+
+2005-01-26  Marek Michalkiewicz  <marekm@amelek.gda.pl>
+
+       PR target/19293
+       PR target/19329
+       * config/avr/avr.c (notice_update_cc): Only set condition code for
+       ashrqi3 if shift count > 0.
+       (out_shift_with_cnt): Handle shift count <= 0 as a no-op.
+       (ashlqi3_out, ashlhi3_out, ashlsi3_out, ashrqi3_out, ashrhi3_out,
+       ashrsi3_out, lshrqi3_out, lshrhi3_out, lshrsi3_out): Handle shift
+       count <= 0 as a no-op, and shift count >= width by copying zero
+       or sign bit to all bits of the result.
+       * config/avr/avr.md (all shifts): Add alternatives for zero shift
+       count, with attribute "length" set to 0 and "cc" set to "none".
+
+2005-01-26  Aldy Hernandez  <aldyh@redhat.com>
+
+       * doc/invoke.texi: Document -mTLS.
+
+       * testsuite/gcc.target/frv/all-tls-global-dynamic.c: New.
+       * testsuite/gcc.target/frv/all-tls-initial-exec.c: New.
+       * testsuite/gcc.target/frv/all-tls-initial-exec-pic.c: New.
+       * testsuite/gcc.target/frv/all-tls-local-dynamic.c: New.
+       * testsuite/gcc.target/frv/all-tls-local-dynamic-plt.c: New.
+       * testsuite/gcc.target/frv/all-tls-local-dynamic-plt-pic.c: New.
+       * testsuite/gcc.target/frv/all-tls-local-exec.c: New.
+       * testsuite/gcc.target/frv/all-tls-local-exec-TLS.c: New.
+
+       * configure.ac: Check for a TLS capable gas.
+
+       * configure: Regenerate.
+
+2005-01-26  Richard Henderson  <rth@redhat.com>
+
+       PR middle-end/18008
+       * combine.c (make_field_assignment): Simplify store to zero_extract
+       from a source with an overlapping mask.
+
+2005-01-26  Aldy Hernandez  <aldyh@redhat.com>
+
+       2004-11-11  Eric Christopher  <echristo@redhat.com>
+
+       * config/frv/frv.md: Add fr400_integer automaton. Don't
+       allow TYPE_MUL, TYPE_MACC, or TYPE_CUT to issue in parallel
+       to TYPE_MACC.
+
+2005-01-26  Steven Bosscher  <stevenb@suse.de>
+
+       PR middle-end/16585
+       * cfgbuild.c (make_edges): Do not clear or set
+       current_function_has_computed_jump.
+       * function.h (struct function): Remove the has_computed_jump field.
+       (current_function_has_computed_jump): Do not define.
+       * sched-rgn.c (is_cfg_nonregular): Return true if a basic block ends
+       in a computed jump.  Ignore current_function_has_computed_jump.
+
+2005-01-26  Richard Henderson  <rth@redhat.com>
+
+       PR middle-end/19515
+       * expr.c (categorize_ctor_elements): New argument p_must_clear.
+       (categorize_ctor_elements_1): Likewise.  Detect a union that isn't
+       fully initialized.
+       (mostly_zeros_p): Update for new categorize_ctor_elements argument.
+       * gimplify.c (gimplify_init_constructor): Likewise.  Only shove
+       objects into static storage if they have more than one non-zero value.
+       * tree.h (categorize_ctor_elements): Update decl.
+
+2005-01-26  Steven Bosscher  <stevenb@suse.de>
+
+       PR middle-end/19616     
+       * tree.h (CALL_EXPR_TAILCALL): Add comment.
+       * calls.c (check_sibcall_argument_overlap_1): Revert the change
+       to this function from 2004-07-10.
+       * tree-tailcall.c (suitable_for_tail_opt_p): Do not consider the
+       the current function for tail call optimizations if the address
+       of one of it its arguments is taken.
+
+2005-01-26  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * cse.c (fold_rtx): Call equiv_constant only when necessary.
+
+2005-01-26  Bernd Schmidt  <bernd.schmidt@analog.com>
+
+       * function.c (expand_function_end): If current_function_calls_alloca,
+       emit stack restore in a place that is reached when the function falls
+       through at the end.
+
 2005-01-26  Alexandre Oliva  <aoliva@redhat.com>
 
        * Makefile.in (../$(build_subdir)/fixincludes/fixincl): Add dummy
@@ -5,7 +435,7 @@
 
 2005-01-26  Jan Hubicka  <jh@suse.cz>
 
-       PR tree-optimization/19421
+       PR tree-optimization/19241
        * tree-inline.c (copy_body_r): Do not walk subtrees after substituting.
 
 2005-01-26  Hans-Peter Nilsson  <hp@axis.com>
        -lsyssim.  Wrap -lc -lsyssim in --start-group --end-group instead
        of doubling.
        (STARTFILE_SPEC): Add crti.o, before crtbegin.o.
-       <sim*>: Always use crt1.o, regardless of N in simN.
+       <sim*>: Always use crt1.o, regardless of N in simN.
        <!sim>: Drop support for -pg and -p variants; always use crt0.o.
        (ENDFILE_SPEC): Add crtn.o, after crtend.o.
        (CRT_CALL_STATIC_FUNCTION): Remove.
 
        2005-01-25  Alexandre Oliva  <aoliva@redhat.com>
 
-        * config/frv/frv.h (ASM_OUTPUT_DWARF_DTPREL): Define.
-        * config/frv/frv-protos.h (frv_output_dwarf_dtprel): Declare.
-        * config/frv/frv.c (TLS_BIAS): Define.
-        (frv_output_dwarf_dtprel): New.
+       * config/frv/frv.h (ASM_OUTPUT_DWARF_DTPREL): Define.
+       * config/frv/frv-protos.h (frv_output_dwarf_dtprel): Declare.
+       * config/frv/frv.c (TLS_BIAS): Define.
+       (frv_output_dwarf_dtprel): New.
 
 2005-01-26  Jakub Jelinek  <jakub@redhat.com>
 
        * sh.c: Fix 1996 Copyright.
 
 2005-01-24  Richard Henderson  <rth@redhat.com>
-            Aldy Hernandez  <aldyh@redhat.com>
+           Aldy Hernandez  <aldyh@redhat.com>
 
-        * regrename.c (note_sets): Handle subregs.
+       * regrename.c (note_sets): Handle subregs.
 
 2005-01-24  Joseph S. Myers  <joseph@codesourcery.com>
 
        first label to see if it is a nonlocal label.
 
 2005-01-22  David Edelsohn  <edelsohn@gnu.org>
-            Andrew Pinski  <pinskia@physics.uc.edu>
+           Andrew Pinski  <pinskia@physics.uc.edu>
 
        PR target/19491
        * config/rs6000/rs6000.c (rs6000_va_start): Saturate n_gpr at
 2004-01-05  Uros Bizjak  <uros@kss-loka.si>
 
        * doc/invoke.texi (Intel 386 and AMD x86-64 Options):
-        Replace i387 with 'i386 compiler' in -mfpmath=sse option.
+       Replace i387 with 'i386 compiler' in -mfpmath=sse option.
 
 2005-01-04  Roger Sayle  <roger@eyesopen.com>