gimplify.c (gimplify_modify_expr_rhs): Use types_compatible_p.
[gcc.git] / gcc / ChangeLog
index 8575eb79391aec3bf0232c8fd5ba4876aa5af2f9..c84ae79e5860d783f664198ba4a6db6d1099dc30 100644 (file)
@@ -1,3 +1,162 @@
+2004-12-23  Mark Mitchell  <mark@codesourcery.com>
+
+       * gimplify.c (gimplify_modify_expr_rhs): Use types_compatible_p.
+
+2004-12-23  DJ Delorie  <dj@redhat.com>
+
+       * genrecog.c (did_you_mean_codes): New.
+       (compute_predicate_codes): Fail unmatched codes.
+
+2004-12-23  Eric Christopher  <echristo@redhat.com>
+
+       * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Add
+       assert for machine=mips for !TARGET_IRIX.
+       * config/mips/linux.h: Remove machine=mips assert.
+       * config/mips/netbsd.h: Ditto.
+       * config/mips/openbsd.h: Ditto.
+
+2004-12-23  Dale Johannesen  <dalej@apple.com>
+
+       * tree.c (iterative_hash_expr):  Canonicalize builtins.
+
+2004-12-23  Alexandre Oliva  <aoliva@redhat.com>
+
+       PR target/16819
+       * calls.c (load_register_parameters): Don't call use_regs when
+       nregs is zero.
+
+2004-12-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
+
+       PR middle-end/17746
+       * expr.c (get_inner_reference): Add 'keep_aligning' parameter.
+       Break on aligning VIEW_CONVERT_EXPR nodes on STRICT_ALIGNMENT
+       platforms only if keep_aligning is true.
+       (expand_assignment): Adjust call to get_inner_reference.
+       (expand_expr_addr_expr_1): Likewise.
+       (expand_expr_real_1): Likewise.
+       * dojump.c (do_jump): Likewise.
+       * dwarf2out.c (loc_descriptor_from_tree_1): Likewise.
+       * fold-const.c (optimize_bit_field_compare): Likewise.
+       (decode_field_reference): Likewise.
+       (split_address_to_core_and_offset): Likewise.
+       * tree-ssa-loop-ivopts.c (split_address_cost): Likewise.
+       * tree.h (get_inner_reference): Adjust prototype.
+
+2004-12-23  Richard Henderson  <rth@redhat.com>
+
+       * config/i386/i386.c (override_options): Revert last change
+       wrt fancy 387 math.
+
+2004-12-23  Richard Henderson  <rth@redhat.com>
+
+       * config/alpha/alpha.md (one_cmpl<mode>2, and<mode>3, andnot<mode>3,
+       ior<mode>3, iornot<mode>3, xor<mode>3, xornot<mode>3): New macroized
+       vector operate patterns.
+
+2004-12-23  Richard Henderson  <rth@redhat.com>
+
+       * config/i386/i386.c (ix86_expand_vector_move): Tidy.
+       (ix86_expand_vector_move_misalign): New.
+       (ix86_misaligned_mem_ok): Remove.
+       (TARGET_VECTORIZE_MISALIGNED_MEM_OK): Remove.
+       * config/i386/i386-protos.h: Update.
+       * config/i386/i386.md (SSEMODEI): Rename from SSEINT16.
+       (MMXMODEI): Rename from MMXINT8.
+       (SSEMODE, MMXMODE, movmisalign<mode>): New.
+
+2004-12-23  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/16405
+       * gimplify.c (gimplify_modify_expr_rhs): Handle
+       INDIRECT_REF/ADDR_EXPR combinations.
+
+2004-12-22  Richard Henderson  <rth@redhat.com>
+
+       * config/alpha/alpha.c (alpha_expand_mov): Split out ...
+       (alpha_expand_movmisalign): ... misaligned vector support.
+       (TARGET_VECTORIZE_MISALIGNED_MEM_OK): Remove.
+       * config/alpha/alpha-protos.h: Update.
+       * config/alpha/alpha.md (VEC): New macro.
+       (movv8qi, movv4hi, movv2si): Compress with VEC.
+       (movv8qi_fix, movv4hi_fix, movv2si_fix): Likewise.
+       (movv8qi_nofix, movv4hi_nofix, movv2si_nofix): Likewise.
+       (movmisalign<mode>): New.
+
+2004-12-22  Richard Henderson  <rth@redhat.com>
+
+       * optabs.h (OTI_movmisalign, movmisalign_optab): New.
+       * optabs.c (init_optabs): Create it.
+       * genopinit.c (optabs): Initialize it.
+       * expr.c (expand_expr_real_1) <MISALIGNED_INDIRECT_REF>: Use it.
+       * tree-vectorizer.c (vect_supportable_dr_alignment): Likewise.
+       * target-def.h (TARGET_VECTORIZE_MISALIGNED_MEM_OK): Remove.
+       * target.h (vectorize.misaligned_mem_ok): Remove.
+       * targhooks.c (default_vect_misaligned_mem_ok): Remove.
+       * doc/md.texi (movmisalign): New.
+       * doc/tm.texi (TARGET_VECTORIZE_MISALIGNED_MEM_OK): Remove.
+
+2004-12-22  Richard Henderson  <rth@redhat.com>
+
+       * config/i386/emmintrin.h (_mm_loadh_pd): Don't cast pointer arg
+       to __v2si.
+       (_mm_storeh_pd, _mm_loadl_pd, _mm_storel_pd): Likewise.
+       * config/i386/i386.c (ix86_init_mmx_sse_builtins): Use double* or
+       const double* for __builtin_ia32_loadhpd, __builtin_ia32_loadlpd,
+       __builtin_ia32_storehpd, __builtin_ia32_storelpd.
+       (ix86_expand_builtin): Update to match.
+       (ix86_expand_vector_init): Use sse2_loadlpd.
+       * config/i386/i386.md (vec_setv2df): Use sse2_loadlpd, sse2_loadhpd.
+       (vec_extractv2df): Use sse2_storelpd, sse2_storehpd.
+       (sse2_storehpd, sse2_loadhpd, sse2_storelpd, sse2_loadlpd): New.
+       (sse2_movhpd): Remove.
+
+2004-12-23  Alan Modra  <amodra@bigpond.net.au>
+
+       PR target/18751
+       * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): Return
+       false for anything larger than 32 bits in 32-bit code.
+
+2004-12-22  Richard Henderson  <rth@redhat.com>
+
+       * config/i386/i386.md (btsq, btrq, btcq): Fix modes.
+       (bt peepholes): Likewise.
+
+       * varasm.c (force_const_mem): Call set_mem_align.
+
+2004-12-22  Richard Henderson  <rth@redhat.com>
+
+       * config/i386/predicates.md (sse_comparison_operator): Fix
+       typo in ieee test.
+       (arith_or_logical_operator): Downcase codes.
+
+2004-12-23  Kaz Kojima  <kkojima@gcc.gnu.org>
+
+       PR target/18511
+       * reload1.c (emit_output_reload_insns): Check if OLD is a hard
+       register before calling regno_clobbered_p.
+       * reload.c: Update comment for regno_clobbered_p.
+
+2004-12-22  Richard Henderson  <rth@redhat.com>
+
+       * config/i386/i386.c (override_options): Respect user disable of
+       fancy 387 math, sse, mmx.
+       (construct_container): Generate error if we need an sse regster
+       and sse has been disabled.
+       * config/i386/i386.h (TARGET_SWITCHES): Disabling sse also disables
+       later sse generations.  Disabling mmx also disables 3dnow.
+
+2004-12-22  Daniel Berlin  <dberlin@dberlin.org>
+
+       * tree-inline.c (struct inline_data): Remove inlined_fns.
+       (expand_call_inline): Remove dead code setting
+       inlined_fns.
+       (optimize_inline_calls): Remove dead code setting DECL_INLINED_FNS.
+       * tree.h (struct tree_decl): Remove inlined_fns.
+
+2004-12-22  Roger Sayle  <roger@eyesopen.com>
+
+       * tree-browser.c: Remove obsolete #ifdef HOST_EBCDIC code.
+
 2004-12-23  Alan Modra  <amodra@bigpond.net.au>
 
        PR target/18896