OSDN Git Service

* optabs.c (expand_binop): When synthesizing double word rotates
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 6ce4883..9b4f247 100644 (file)
@@ -1,3 +1,370 @@
+2004-03-23  Olivier Hainque  <hainque@act-europe.fr>
+
+        * optabs.c (expand_binop): When synthesizing double word rotates
+        from single word shifts, use a new register target if the provided
+        target is not a REG already.
+
+2004-03-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * alias.c (get_alias_set): Add support for TYPE_REF_CAN_ALIAS_ALL.
+       * c-common.c (handle_mode_attribute): Add extra arg to
+       build_pointer_type_for_mode and build_reference_type_for_mode.
+       * c-typeck.c (build_c_cast): Only look at TREE_CONSTANT_OVERFLOW
+       for INTEGER_CST.
+       * tree.c (build_pointer_type_for_mode): Add arg CAN_ALIAS_ALL.
+       Chain pointers via TYPE_NEXT_PTR_TO.
+       (build_reference_type_for_mode): Similarly.
+       (build_type_no_quals): Add extra arg to build_pointer_type_for_mode
+       and build_reference_type_for_mode.
+       (tree_check4_failed): New function.
+       * tree.h (TREE_CHECK4, PTR_OR_REF_CHECK): New macros.
+       (TYPE_REF_CAN_ALIAS_ALL, TYPE_NEXT_PTR_TO, TYPE_NEXT_REF_TO): Likewise.
+       (TREE_NO_UNSUED_WARNING, TREE_VIA_VIRTUAL, TREE_CONSTANT_OVERFLOW):
+       Add check.
+
+2004-03-23  Roger Sayle  <roger@eyesopen.com>
+
+       * fold-const.c (tree_expr_nonnegative_p): A&B is nonnegative when
+       A is nonnegative or B is nonnegative.  Similarly A|B is nonnegative
+       when both A and B are nonnegative.
+       (tree_expr_nonzero_p): A|B is nonzero when A is nonzero or B is
+       nonzero.
+
+2004-03-23  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * fold-const.c (fold): Remove cases for INTEGER_CST, REAL_CST,
+       VECTOR_CST, STRING_CST, COMPLEX_CST, and CONSTRUCTOR.
+
+2004-03-23  Kazu Hirata  <kazu@cs.umass.edu>
+
+       PR optimization/14669
+       * fold-const.c (fold): Only unwiden integer comparisons for equality
+       and inequality operators, or when the signedness doesn't change.
+
+2004-03-23  Jakub Jelinek  <jakub@redhat.com>
+
+       * config.gcc (sparc-*-linux*): Add sparc/t-linux to tmake_file.
+       * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Set.
+       * config/sparc/t-linux: New file.
+
+2004-03-23  Richard Sandiford  <rsandifo@redhat.com>
+
+       * gcse.c (can_assign_to_reg_p): New function, split out from...
+       (want_to_gcse_p): ...here.
+       (compute_ld_motion_mems): Use can_assign_to_reg_p to validate
+       the rhs of a store.
+
+2004-03-22  Diego Novillo  <dnovillo@redhat.com>
+
+       * c-typeck.c (same_translation_unit_p): Fix pasto.
+
+2004-03-22  David Edelsohn  <edelsohn@gnu.org>
+
+       * params.def (PARAM_MAX_SCHED_REGION_BLOCKS): New.
+       (PARAM_MAX_SCHED_REGION_INSNS): New.
+       * sched-rgn.c: Include params.h
+       (MAX_RGN_BLOCKS): Delete.
+       (MAX_RGN_INSNS): Delete.
+       (too_large): Return bool.  Convert to PARAM_VALUE.
+       * Makefile.in (sched-rgn.o): Depend on $(PARAMS_H).
+       * doc/invoke.texi (param): Document max-sched-region-blocks and
+       max-sched-region-insns.
+
+2004-03-22  Joel Brobecker  <brobecker@gnat.com>
+
+       * dwarf2out.c (is_subrange_type): Do not emit a subrange_type DIE
+       for base types.
+
+2004-03-22  Joel Brobecker  <brobecker@gnat.com>
+
+       * dwarf2out.c (is_subrange_type): Minor code rework. No behavior
+       change.
+
+2004-03-22  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c/14069
+       * c-decl.c (finish_struct): Change type of incorrect flexible array
+       field into error_mark_node.
+
+2004-03-22  Andrew Pinski  <pinskia@physics.uc.edu>
+
+       PR target/14580
+       * config/rs6000/rs6000.c (symbol_ref_operand): Reject symbols
+       who are not local for Darwin PIC.
+
+2004-03-22  Ulrich Weigand  <uweigand@de.ibm.com>
+
+       * regrename.c (regrename_optimize): Set regs_ever_live for all
+       registers introduced as replacement.
+
+2004-03-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
+
+       PR middle-end/14470
+       * expr.c (mark_queue): New function.
+       (emit_insns_enqueued_after_mark): New function replacing
+       emit_queue.  Clear the body of emitted queued insns.
+       (emit_queue): Call emit_insns_enqueued_after_mark.
+       (store_expr): Mark the increment queue on entry.  Emit
+       only the incrementations queued when expanding the source.
+
+2004-03-22  Nathanael Nerode  <neroden@gcc.gnu.org>
+
+       * configure.ac: Allow --disable-coverage-flags (for the future benefit
+       of top level bootstrap, and consistency).  Reindent.
+       * configure: Regenerate.
+
+2004-03-21  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * bt-load.c, builtins.c, cfghooks.c, cfgrtl.c, gcse.c,
+       ggc-page.c, integrate.c, var-tracking.c, web.c: Remove
+       unnecessary casts.
+
+2004-03-22  Danny Smith  <dannysmith@users.sourceforge.net>
+
+       PR target/14291
+       * gcov-io.h (gcov_truncate): Define ftruncate as _chsize for
+       __MINGW32__.
+
+2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
+
+       * config/s390/s390.md ("*doloop_si"): Change predicate for operand 2
+       to nonimmediate_operand.
+       ("*doloop_di"): Likewise.
+
+2004-03-21  Alexandre Oliva  <aoliva@redhat.com>
+
+       * real.h (struct real_value): Use the same type for all
+       bitfields.  Rename exp to uexp.
+       (REAL_EXP, SET_REAL_EXP): New accessor macros for uexp.
+       Adjust all uses of exp...
+       * builtins.c: ... here, ...
+       * emit-rtl.c: ... here, and ...
+       * real.c: ... and here.
+
+2004-03-21  Gabriel Dos Reis  <gdr@integrable-solutions.net>
+
+       * pretty-print.c (pp_base_maybe_space): New function.
+       * pretty-print.h (pp_base_maybe_space): Declare.
+       (pp_maybe_space): New macro.
+
+2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
+
+       * config/s390/s390.md ("addti3", "subti3"): New insns and splitters.
+
+2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
+
+       * expmed.c (choose_mult_variant): Pass MULT_COST as argument instead
+       of using register multiplication cost.
+       (expand_mult): Adapt choose_mult_variant call.
+       (expand_mult_highpart): Call choose_mult_variant with WIDER_MODE
+       of MODE; pass appropriate cost bound.  Adjust result when
+       performing signed multiplication by a negative constant.
+       Don't use intermediate modes larger than word_mode.
+
+2004-03-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * alias.c (get_alias_set): Remove handling of PLACEHOLDER_EXPR.
+       * emit-rtl.c (component_ref_for_mem_expr): Likewise.
+       (set_mem_attributes_minus_bitpos): Call SUBSTITUTE_PLACEHOLDER_IN_EXPR.
+       * explow.c (expr_size): Likewise.
+       * expr.h (placeholder_list, find_placeholder): Deleted.
+       * expr.c (store_constructor): Likewise.
+       (get_inner_reference): Likewise.  Also don't call find_placeholder.
+       (placeholder_list, find_placeholder): Deleted.
+       (is_aligning_offset): Don't handle WITH_RECORD_EXPR, PLACEHOLDER_EXPR.
+       (expand_expr_real, cases PLACEHOLDER_EXPR, WITH_RECORD_EXPR): Likewise.
+       (highest_pow2_factor, case WITH_RECORD_EXPR): Remove.
+       * dojump.c (do_jump, case WITH_RECORD_EXPR): Likewise.
+       * dwarf2out.c (loc_descriptor_from_tree, case WITH_RECORD_EXPR):
+       Likewise.
+       * fold-const.c (invert_truthvalue, case WITH_RECORD_EXPR): Likewise.
+       (extract_muldiv, case WITH_RECORD_EXPR): Likewise.
+       * tree.c (expr_align, case WITH_RECORD_EXPR): Likewise.
+       (contains_placeholder_p): Don't handle WITH_RECORD_EXPR.
+       Clean up by using first_rtl_op.
+       (substitute_in_expr): Use SUBSTITUTE_IN_EXPR for recursive call.
+       (substitute_placeholder_in_expr): New function.
+       * tree.def (WITH_RECORD_EXPR): Deleted.
+       * tree.h (SUBSTITUTE_IN_EXPR, SUBSTITUTE_PLACEHOLDER_IN_EXPR): New.
+       (substitute_placeholder_in_expr): New.
+
+2004-03-21  Andrew Pinski  <pinskia@gcc.gnu.org>
+
+       * dojump.c (prefer_and_bit_test): Fix which part of
+       the and_test is replaced.
+
+2004-03-21  Joseph S. Myers  <jsm@polyomino.org.uk>
+
+       * frontends.texi: Add missing line.
+
+2004-03-21  Zack Weinberg  <zack@codesourcery.com>
+            Chris Devers  <cdevers@pobox.com>
+            Joseph S. Myers  <jsm@polyomino.org.uk>
+
+       * doc/frontends.texi: Rewrite.
+       * doc/gcc.texi: Update last modification date.
+
+2004-03-21  Josef Zlomek  <zlomekj@suse.cz>
+
+       * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Print the debug
+       message before redirecting the edge.
+
+2004-03-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
+
+       * emit-rtl.c (set_mem_attributes_minus_bitpos): Set MEM_POINTER
+       flag.
+       * explow.c (force_not_mem): Set REG_POINTER flag according to
+       MEM_POINTER one.
+       * rtl.h (MEM_POINTER): New macro.
+       (struct rtx_def): Use integrated for MEM_SCALAR_P and frame_related
+       for MEM_POINTER.
+
+2004-03-20  Roger Sayle  <roger@eyesopen.com>
+
+       PR target/13889
+       * cse.c (fold_rtx): Avoid substituting constants into unary
+       conversion operations.
+
+2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * fold-const.c (fold): Replace "expr" with "t".
+
+2004-03-20  Ian Lance Taylor  <ian@wasabisystems.com>
+
+       PR c/12373
+       * c-typeck.c (tagged_types_tu_compatible_p): Don't use
+       DECL_ORIGINAL_TYPE if there isn't one.
+
+2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * fold-const.c (fold): Replace "final_type" with "type".
+       Remove variable "final_type".
+
+2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * fold-const.c (fold): Constify "type".
+       Replace "TREE_TYPE (t)" with "type".
+
+2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * bb-reorder.c, bt-load.c, c-decl.c, cfgcleanup.c, coverage.c,
+       dwarf2asm.c, ifcvt.c, stor-layout.c, varasm.c: Replace calls
+       via (*targetm.foo) () with targetm.foo ().
+
+2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
+
+       PR other/14630
+       * doc/install.texi: Add info directory category and entry.
+
+2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * fold-const.c (fold): Replace "t" with "tem" where it is used
+       as a temporary variable.  Remove "orig_t" and all of its uses.
+
+2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * fold-const.c (fold): Remove variable "invert".
+       Move the handling of relational expressions that can be folded
+       to a constant ...
+       (fold_relational_const): ... here.
+       (tree_expr_nonzero_p): New.
+
+2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
+
+       PR c/14635
+       * builtins.def (nan, nanf, nanl, nans, nansf, nansl): Change to
+       DEF_GCC_BUILTIN.
+
+2004-03-20  Richard Sandiford  <rsandifo@redhat.com>
+
+       * Makefile.in (dojump.o): Depend on $(GGC_H) and dojump.h.
+       (GTFILES): Add $(srcdir)/dojump.h.
+       (gt-dojump.h): New dependency.
+       * dojump.c (and_reg, and_test, shift_test): New static variables.
+       (prefer_and_bit_test): New function.
+       (do_jump): Use it to choose between (X & (1 << C)) and (X >> C) & 1.
+
+2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * c-common.c, cfgcleanup.c, cgraphunit.c, c-pretty-print.c,
+       expmed.c, ggc-common.c, jump.c, passes.c, recog.c, regmove.c,
+       reorg.c, tree.h: Fix comment typos.
+
+2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * alias.c, attribs.c, bt-load.c, builtins.c, c-common.c,
+       c-decl.c, c-objc-common.c, c-typeck.c, calls.c, cfglayout.c,
+       cse.c, dbxout.c, dwarf2out.c, except.c, final.c,
+       haifa-sched.c, integrate.c, passes.c, rtlanal.c, sched-rgn.c,
+       sched-vis.c, simplify-rtx.c, stor-layout.c, tree.c, varasm.c,
+       vmsdbgout.c: Replace calls via (*targetm.foo) () with
+       targetm.foo ().
+
+2004-03-19  Ziemowit Laski  <zlaski@apple.com>
+
+       * config/rs6000/altivec.h (vec_dst, vec_dstst, vec_dststt,
+       vec_dstt, vec_sld, vec_splat): Add prototypes, marked with
+       always_inline attribute.
+       * config/rs6000/rs6000.c (altivec_expand_dst_builtin):
+       Treat expansion as completed even if literal argument is
+       invalid (so that other expansions are not tried in vain).
+
+2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * loop-doloop.c (add_test): Replace GEN_INT (0) with
+       const0_rtx.
+
+2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * fold-const.c (fold) <ABS_EXPR>: Move the handling of constants
+       ...
+       (fold_abs_const): ... here.
+
+2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * tree.h (TYPE_ARRAY_MAX_SIZE): Use type.maxval directly.
+
+2004-03-19  Denis Chertykov  <denisc@overta.ru>
+
+       PR target/11520
+       * config/avr/avr.md ("call_insn"): Handle explicit integer
+       specially.
+       (call_value_insn): Likewise.
+
+2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * tree.c (substitute_in_expr): Rewrite to simplify and be more generic.
+
+2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * fold-const.c (negate_expr): Move the handling of constants
+       ...
+       (fold_negate_const): ... here.
+
+2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * langhooks-def.h (LANG_HOOKS_HASH_TYPES): New macro and hook.
+       * langhooks.h (struct lang_hooks_for_types): New field hash_types.
+       * tree.c (debug_no_type_hash): Deleted.
+       (type_hash_canon): Abort if passed a variant.
+       Check lang_hooks.types.hash_types.
+       (build_type_no_quals): Copy mode of POINTER_TYPE and REFERENCE_TYPE.
+       (build_array_type): Remove unnecessary allocation of pointer type.
+       (build_complex_type): Properly qualify resulting type.
+
+2004-03-19  Paolo Bonzini  <bonzini@gnu.org>
+
+       * config/rs6000/rs6000.c (rs6000_init_builtins): Fix typo.
+
+2004-03-19  Richard Sandiford  <rsandifo@redhat.com>
+
+       * expmed.c (choose_mult_variant, expand_mult_const): New, split from...
+       (expand_mult): ...here.
+       (extract_high_half): New, split out from expand_mult_highpart.
+       (expand_highpart_optab): Likewise.  Don't clobber target prematurely.
+       (expand_highpart): Evaluate the cost of a shift/add sequence,
+       then see if any of the specialized optabs are cheaper.
+
 2004-03-18  Ian Lance Taylor  <ian@wasabisystems.com>
 
        * mklibgcc.in: Remove obsolete MAYBE_USE_COLLECT2.
         * config/rs6000/rs6000.h: Definition of DWARF_CIE_DATA_ALIGNMENT
         macro for mixed mode.
 
->>>>>>> 2.3203
 2004-03-18  Jan Hubicka  <jh@suse.cz>
 
        * predict.c (propagate_freq): Compute correctly frequency of