+2005-01-17 James E Wilson <wilson@specifixinc.com>
+
+ PR target/19357
+ * config/ia64/ia64.md (movxf): Handle general register source. Adjust
+ comment to document why.
+
+2005-01-17 Richard Henderson <rth@redhat.com>
+
+ * config/i386/sse.md (smaxv4sf3_finite, sse_vmsmaxv4sf3_finite,
+ sminv4sf3_finite, sse_vmsminv4sf3_finite, smaxv2df3_finite,
+ sse2_vmsmaxv2df3_finite, sminv2df3_finite,
+ sse2_vmsminv2df3_finite): New.
+ (smaxv4sf3, sse_vmsmaxv4sf3, sminv4sf3, sse_vmsminv4sf3, smaxv2df3,
+ sse2_vmsmaxv2df3, sminv2df3, sse2_vmsminv2df3): Remove commutative.
+ Force op1 into register.
+
+2005-01-17 Kelley Cook <kcook@gcc.gnu.org>
+
+ * Makefile.in (STAGEMOVESTUFF): Stage all the stamp files to prevent
+ bubblestrap from always rebuilding build directory.
+
+2005-01-17 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * config/s390/s390.md ("*clc"): Remove incorrect '='.
+ ("*cmpmem_short"): Likewise.
+
+2005-01-17 Steven Bosscher <stevenb@suse.de>
+
+ * basic-block.h: Document BB_* flags.
+ * regrename.c (copyprop_hardreg_forward): Don't use BB_VISITED,
+ use an sbitmap instead.
+ * sched-rgn.c (compute_trg_info): Likewise.
+
+2005-01-17 Richard Sandiford <rsandifo@redhat.com>
+
+ * config.gcc (mips64*-*-linux*): Set the default abi to n32. Remove
+ redundant target_cpu_default and extra_parts lines. Use the default
+ "from-abi" ISA.
+ * config/mips/linux64.h (DRIVER_DEFAULT_ABI_SELF_SPEC): Delete.
+ (SUBTARGET_EXTRA_SPECS): Delete.
+ (DRIVER_SELF_SPECS): Remove architecture lines. Set the ABI directly.
+ (SUBTARGET_ASM_SPEC): Remove -mabi=n32 and -mabi=64 mappings.
+ * config/mips/t-linux64 (MULTILIB_DIRNAMES): Use "32" for -mabi=32
+ and "n32" for -mabi=n32.
+
+2005-01-17 Ian Lance Taylor <ian@airs.com>
+
+ PR c/5675
+ * c-typeck.c (build_c_cast): Revert patch of 2003-02-16: don't
+ fold constant variables into initial values.
+
+2005-01-17 Kazu Hirata <kazu@cs.umass.edu>
+
+ * tree-cfg.c (tree_can_merge_blocks_p): Reorder two checks.
+
+ * tree-cfg.c (tree_forwarder_block_p): Speed up by walking
+ through the statements backward.
+
+2005-01-17 Ian Lance Taylor <ian@airs.com>
+
+ PR middle-end/13127:
+ * tree-inline.c (expand_call_inline): Set TREE_NO_WARNING on
+ a variable set to the return value of the inlined function.
+
+2005-01-17 Mark Dettinger <dettinge@de.ibm.com>
+
+ * rtlanal.c (rtx_cost): Assign cost of 0 to a SUBREG
+ when modes are tieable.
+
+2005-01-17 Ranjit Mathew <rmathew@hotmail.com>
+
+ * gthr-posix.h (__gthread_active_p): Use pthread_cancel instead
+ of pthread_create to find out if threads are enabled.
+ * gthr-posix95.h (__gthread_active_p): Likewise.
+
+2005-01-17 Paolo Bonzini <bonzini@gnu.org>
+
+ * common.opt (-fnew-ra): Remove.
+ * ra*.*: Remove.
+ * toplev.h (flag_new_regalloc): Remove.
+ * Makefile.in (ra*.*): Don't mention.
+ * passes.c (rest_of_handle_new_regalloc): Remove.
+ (rest_of_handle_combine, rest_of_compilation): Always consider
+ flag_new_regalloc as false.
+ * doc/invoke.texi: Don't document -fnew-ra.
+
+2005-01-17 Paolo Bonzini <bonzini@gnu.org>
+
+ * bb-reorder.c (fix_edges_for_rarely_executed_code): Remove
+ last parameter to reg_scan.
+ * loop.c (loop_optimize): Likewise.
+ * passes.c (rest_of_handle_tracer, rest_of_handle_if_conversion,
+ rest_of_handle_web, rest_of_handle_cfg, rest_of_handle_jump_bypass,
+ rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2,
+ rest_of_handle_gcse, rest_of_handle_loop_optimize,
+ rest_of_handle_loop2, rest_of_handle_jump2): Likewise.
+ * regclass.c (reg_scan): Likewise, for the declaration.
+ * rtl.h (reg_scan): Likewise, for the prototype.
+
+2005-01-17 Kazu Hirata <kazu@cs.umass.edu>
+
+ * tree-ssa-dom.c (tree_ssa_dominator_optimize): Don't call
+ mark_dfs_back_edges.
+
+2005-01-16 Daniel Berlin <dberlin@dberlin.org>
+
+ * tree-ssa-pre.c (add_to_sets): s1 may be NULL.
+ (compute_avail): Uses don't go in tmp_gen.
+
+2005-01-16 Steven Bosscher <stevenb@suse.de>
+
+ * ggc-page.c (ggc_alloc_stat): Use __builtin_ctzl instead of a
+ loop to look for a free slot in a page entry.
+
+2005-01-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ PR target/16304
+ * defaults.h (TARGET_DEFERRED_OUTPUT_DEFS): Provide default.
+ * toplev.c (compile_file): Call process_pending_assemble_output_defs
+ just before targetm.asm_out.file_end.
+ * tree.h (process_pending_assemble_output_defs): Declare.
+ * varasm.c (assemble_output_def, process_pending_assemble_output_defs):
+ New functions.
+ (assemble_alias): Defer generation of assembly code for defines when
+ TARGET_DEFERRED_OUTPUT_DEFS is true.
+ * config/rs6000/aix41.h (TARGET_DEFERRED_OUTPUT_DEFS): Define.
+ * config/rs6000/aix43.h (TARGET_DEFERRED_OUTPUT_DEFS): Define.
+ * doc/tm.texi (TARGET_DEFERRED_OUTPUT_DEFS): document.
+
+2005-01-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ PR target/19336
+ * pa.c (pa_scalar_mode_supported_p): New function.
+ (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
+ * pa.h (MIN_UNITS_PER_WORD): Add comment.
+
+ * pa-protos.h (prefetch_operand): Delete.
+ (prefetch_cc_operand, prefetch_nocc_operand): New declations.
+ * pa.c (prefetch_operand): Delete.
+ (prefetch_cc_operand, prefetch_nocc_operand): New functions.
+ * pa.h (EXTRA_CONSTRAINT): Add `W' constraint.
+ (PREDICATE_CODES): Delete prefetch_operand. Add prefetch_cc_operand
+ and prefetch_nocc_operand.
+ * pa.md (prefetch): Rework to avoid reload problems handling short
+ displacements when a cache control completer needs to be provided.
+ (prefetch_32, prefetch_64): Delete.
+ (prefetch_cc, prefetch_nocc): New patterns.
+
+2005-01-15 David Edelsohn <edelsohn@gnu.org>
+
+ * config/rs6000/aix52.h (CPLUSPLUS_CPP_SPEC): Revert previous change.
+
+2005-01-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ PR ada/19388
+ * pa.c (pa_asm_output_aligned_common): Warn if specified alignment
+ exceeds maximum alignment for global common data.
+ * pa64-hpux.h (MAX_OFILE_ALIGNMENT): Define to 32768.
+ * som.h (MAX_OFILE_ALIGNMENT): Likewise.
+
+2004-01-15 Roger Sayle <roger@eyesopen.com>
+
+ * tree-ssa-dom.c (extract_range_from_cond): Correct condition.
+
+2004-01-15 Roger Sayle <roger@eyesopen.com>
+
+ * harg-reg-set.h (reg_class_names): Prototype global array.
+ * regclass.c (reg_class_names): Declare here and initialize to
+ REG_CLASS_NAMES.
+ (dump_regclass): Remove local declaration of reg_class_names.
+ (regclass): Likewise.
+ * cfg.c (dump_flow_info): Likewise.
+ * ra-debug.c (reg_class_names): Likewise.
+ * regrename.c (reg_class_names): Likewise.
+ * reload.c (reg_class_names): Likewise.
+ * reload1.c (spill_failure): Likewise.
+ * config/m68hc11/m68hc11.c (reg_class_names): Likewise.
+
+2005-01-15 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * config/s390/s390.md ("reload_outti"): Remove predicate for
+ output operand. Abort if operand is not a MEM.
+ ("reload_outdi", "reload_outdf"): Likewise.
+
+2005-01-15 Marc Espie <espie@openbsd.org>
+
+ * config.gcc (*-*-openbsd*): Set HAS_LIBC_R for OpenBSD <= 3.2.
+ (i[34567]86-*-openbsd*): Switch to ELF for OpenBSD >= 3.4.
+ * config/openbsd.h: Fix C++ includes for native configurations.
+ Add proper OS_CPP_BUILTINS. Fix libspec for recent OpenBSD.
+ Add trampoline support.
+ * config/i386/openbsdelf.h: New.
+
+2005-01-15 Marc Espie <espie@openbsd.org>
+
+ * collect2.c (main): Explicitly parse -dynamic-linker option.
+
+2005-01-15 Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/19060
+ * tree-ssa-dom.c (extract_range_from_cond) <case LT_EXPR, GT_EXPR>:
+ Return 0 if op1 <= TYPE_MIN_VALUE () resp. op1 >= TYPE_MAX_VALUE ().
+ (simplify_cond_and_lookup_avail_expr): Add assert for dummy == 0
+ and handle extract_range_from_cond returning false.
+ * fold-const.c (fold): Optimize comparisons with min/max even for
+ width > HOST_BITS_PER_WIDE_INT.
+
+2005-01-15 Ralf Corsepius <ralf.corsepius@rtems.org>
+
+ * config/mips/rtems.h (MIPS_DEFAULT_GVALUE): Set to 0.
+ * config/mips/t-rtems (MULTILIBS_DIRNAMES,MULTILIB_OPTIONS):
+ Remove little endian multilib variants.
+ Add mips32 multilib variant.
+
+2005-01-15 Kazu Hirata <kazu@cs.umass.edu>
+
+ * explow.c (copy_all_reg, stabilize): Remove.
+ * expr.h: Remove the corresponding prototypes.
+
+ * rtlanal.c (regs_set_between_p): Remove.
+ * rtl.h: Remove the corresponding prototype.
+
+2005-01-14 David Edelsohn <edelsohn@gnu.org>
+
+ * config/rs6000/rs6000.c (rs6k_nonimmediate_operand): Rename
+ to rs6000_nonimmediate_operand.
+ * config/rs6000/rs6000.h (PREDICATE_CODES): Rename
+ rs6k_nonimmediate_operand to rs6000_nonimmediate_operand.
+ * config/rs6000/rs6000.md (movsi_internal1): Rename predicate to
+ rs6000_nonimmediate_operand.
+ * config/rs6000/spe.md (movdf_e500_double): Rename predicate to
+ rs6000_nonimmediate_operand.
+
+2005-01-14 Andrew Pinski <pinskia@physics.uc.edu>
+
+ * tree-ssa-alias.c (pass_may_alias): Add TODO_verify_stmts.
+
+2005-01-14 Aldy Hernandez <aldyh@redhat.com>
+
+ * config/rs6000/rs6000.h (CLASS_MAX_NREGS): DF goes in 1 register
+ on e500v2.
+ (CANNOT_CHANGE_MODE_CLASS): Restrict DI mode changes on e500v2.
+ (PREDICATE_CODES): Add rs6k_nonimmediate_operand.
+
+ * config/rs6000/rs6000.c (invalid_e500_subreg): New.
+ (rs6k_nonimmediate_operand): New.
+ (rs6000_legitimate_offset_address_p): Handle DI modes on e500v2
+ correctly.
+ (legitimate_lo_sum_address_p): Same.
+ (rs6000_legitimize_address): Same.
+ (rs6000_legitimize_reload_address): Same.
+ (rs6000_legitimate_address): Same.
+ (spe_build_register_parallel): Pass DF and DC modes in a DI
+ register.
+
+ * config/rs6000/rs6000.md ("*movsi_internal1"): Change predicate
+ to rs6k_nonimmediate_operand.
+
+ * config/rs6000/spe.md ("*frob_df_di"): New.
+ ("*frob_di_df"): New.
+ ("*frob_di_df_2"): New.
+ ("*mov_sidf_e500_subreg0"): New.
+ ("*mov_sidf_e500_subreg4"): New.
+ ("*movdf_e500_double"): Change predicate to
+ rs6k_nonimmediate_operand.
+
+2005-01-14 Aldy Hernandez <aldyh@redhat.com>
+
+ * postreload.c (move2add_note_store): Only call
+ trunc_int_for_mode on scalar integers.
+
+2005-01-14 Steven Bosscher <stevenb@suse.de>
+
+ * tree-ssa-dce.c (visited_control_parents): New sbitmap to
+ replace BB_VISITED uses.
+ (find_obviously_necessary_stmts): Don't clear BB_VISITED.
+ (propagate_necessity): Check the bitmap instead of BB_VISITED.
+ (tree_dce_done): Free visited_control_parents.
+ (perform_tree_ssa_dce): Allocate and clear it.
+ * tree-ssa-pre.c (compute_antic_aux): Make non-recursive.
+ (compute_antic): Iterate from here using a DFS. Use an sbitmap
+ instead of BB_VISITED.
+
+2005-01-14 Kazu Hirata <kazu@cs.umass.edu>
+
+ * c-tree.h, coverage.h, langhooks-def.h, optabs.h, output.h,
+ rtl.h, targhooks.h, tree-flow.h, tree-mudflap.h, tree.h:
+ Remove unused prototypes.
+
+2005-01-14 Aldy Hernandez <aldyh@redhat.com>
+
+ * config/rs6000/rs6000.c (rs6000_stack_info): Fix caching of SPE
+ 64-bit register usage.
+ (spe_func_has_64bit_regs_p): Add FIXME note.
+
+2005-01-14 Aldy Hernandez <aldyh@redhat.com>
+
+ * config/rs6000/rs6000.c (rs6000_generate_compare): Replace
+ flag_finite_math_only with flag_unsafe_math_optimizations.
+
+2005-01-14 J. D. Johnston <jjohnst@us.ibm.com>
+
+ * config/s390/tpf-unwind.h (s390_fallback_frame_state): Correct
+ end-of-stack check.
+ (__tpf_eh_return): Copy TPF private stack area from the module
+ boundary stack frame. Add check for when module addresses are
+ equal, but no stub address is found.
+
+2005-01-14 Richard Earnshaw <rearnsha@arm.com>
+
+ PR target/7525
+ * arm.h (struct machine_function): Add call_via field.
+ (thumb_call_via_label): Declare.
+ * arm.c (thumb_call_via_label): New variable.
+ (thumb_call_reg_needed): New variable.
+ (arm_output_function_epilogue): For Thumb code, output any per-function
+ call-indirect trampolines.
+ (thumb_call_via_reg): New function.
+ (arm_file_end): New function.
+ (TARGET_ASM_FILE_END): Call arm_file_end.
+ (aof_file_end): Likewise.
+ * arm-protos.h (thumb_call_via_reg): Declare.
+ * arm.md (call_reg_thumb, call_value_reg_thumb): Call
+ thumb_call_via_reg in normal case.
+
+2005-01-14 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/19084
+ PR rtl-optimization/19348
+ * recog.c (peephole2_optimize): Do global life update if some peephole
+ decides it doesn't need at least one of its inputs and that change
+ influences liveness at the start of the basic block.
+
+ * basic-block.h (EXECUTE_IF_AND_COMPL_IN_REG_SET): Needs 2 REGSET
+ arguments instead of 1.
+
+2005-01-14 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ PR middle-end/18820
+ * varasm.c (initializer_constant_valid_p) <ADDR_EXPR>: Return
+ zero for nested functions needing a static chain or functions
+ with a non-constant address.
+
+2005-01-13 Roger Sayle <roger@eyesopen.com>
+
+ * simplify-rtx.c (simplify_binary_operation) <AND>: Optimize
+ (and (sign_extend X) C) into (zero_extend (and X C)).
+
+2005-01-13 David O'Brien <obrien@FreeBSD.org>
+
+ * config/freebsd-spec.h: Make KSE pthread lib logic the default.
+
+2005-01-13 Richard Henderson <rth@redhat.com>
+
+ PR target/19009
+ PR target/19250
+ PR target/19252
+ * config/i386/i386.md (cmpdf, cmpsf, bunordered, bordered, buneq,
+ bunge, bungt, bunle, bunlt, bltgt): Enable for TARGET_SSE_MATH,
+ not just TARGET_SSE.
+ (cmpfp_i_387): Rename from cmpfp_i. Move after sse patterns.
+ (cmpfp_i_mixed): Rename from cmpfp_i_sse; use for TARGET_MIX_SSE_I387.
+ (cmpfp_i_sse): Rename from cmpfp_i_sse_only; use for TARGET_SSE_MATH.
+ (cmpfp_iu_mixed, cmpfp_iu_sse, cmpfp_iu_387): Similarly.
+ (fp_jcc_1_mixed, fp_jcc_1_sse, fp_jcc_1_387): Similarly.
+ (fp_jcc_2_mixed, fp_jcc_2_sse, fp_jcc_2_387): Similarly.
+ (fp_jcc_3_387, fp_jcc_4_387, fp_jcc_5_387, fp_jcc_6_387,
+ fp_jcc_7_387, fp_jcc_8_387): Rename from fp_jcc_N.
+ (movdicc_c_rex64): Rename with '*'.
+ (movsfcc, movdfcc): Add checks for 387 and sse math to condition.
+ (movsfcc_1_sse_min, movsfcc_1_sse_max, movsfcc_1_sse): New.
+ (movsfcc_1_387): Rename from movsfcc_1.
+ (movdfcc_1_sse_min, movdfcc_1_sse_max, movdfcc_1_sse): New.
+ (movdfcc_1, movdfcc_1_rex64): Add check for 387.
+ (sminsf3, smaxsf3, smindf3, smaxdf3): New.
+ (minsf3, minsf, minsf_nonieee, minsf_sse, mindf3, mindf,
+ mindf_nonieee, mindf_sse, maxsf3, maxsf, maxsf_nonieee, maxsf_sse,
+ maxdf3, maxdf, maxdf_nonieee, maxdf_sse, sse_movsfcc, sse_movsfcc_eq,
+ sse_movdfcc, sse_movdfcc_eq, sse_movsfcc_const0_1,
+ sse_movsfcc_const0_2, sse_movsfcc_const0_3, sse_movsfcc_const0_4,
+ sse_movdfcc_const0_1, sse_movdfcc_const0_2, sse_movdfcc_const0_3,
+ sse_movdfcc_const0_4): Remove.
+ * config/i386/i386.c (ix86_expand_fp_movcc): For TARGET_SSE_MATH,
+ recognize min/max early. Update for changed sse cmove patterns.
+ (ix86_split_sse_movcc): New.
+ * config/i386/i386-protos.h: Update.
+
+2005-01-13 Steven Bosscher <stevenb@suse.de>
+
+ * tree-ssa-dse.c (fix_phi_uses): Use SSA operand iterators.
+ (fix_stmt_v_may_defs): Likewise.
+
+2005-01-13 Richard Henderson <rth@redhat.com>
+
+ * config/i386/i386.c (ix86_expand_fp_absneg_operator): Use elt_mode
+ for converting the mask.
+
+2005-01-13 David Edelsohn <edelsohn@gnu.org>
+
+ * config/rs6000/aix52.h (CPLUSPLUS_CPP_SPEC): Change _XOPEN_SOURCE
+ definition to 600.
+
+2005-01-13 Richard Henderson <rth@redhat.com>
+
+ * config/i386/i386.c (IX86_BUILTIN_MOVQ, IX86_BUILTIN_LOADD,
+ IX86_BUILTIN_STORED, IX86_BUILTIN_MOVQ2DQ,
+ IX86_BUILTIN_MOVDQ2Q): Remove.
+ (IX86_BUILTIN_VEC_EXT_V4SI): New.
+ (ix86_init_mmx_sse_builtins, ix86_expand_builtin): Update to match.
+ (ix86_expand_vector_extract): For V4S[FI], extract element 0 after
+ shuffling.
+ * config/i386/sse.md (sse_concatv2sf): Accept zero operand 2.
+ (sse2_pextrw): Fix immediate constraint.
+ (sse2_loadq, sse2_loadq_rex64): Remove.
+ * config/i386/emmintrin.h (_mm_cvtsi128_si32, _mm_cvtsi128_si64x):
+ Use __builtin_ia32_vec_ext_<size>.
+ (_mm_cvtsi32_si128, _mm_cvtsi64x_si128): Use _mm_set_epi<size>.
+
+2005-01-13 Aldy Hernandez <aldyh@redhat.com>
+
+ * function.c (assign_parm_setup_block): Look inside original
+ entry_parm when inspecting PARALLEL.
+
+2005-01-13 Ralf Corsepius <ralf.corsepius@rtems.org>
+ Joel Sherrill <joel@oarcorp.com>
+
+ PR target/19399
+ * gthr-rtems.h (__gthread_recursive_mutex_t): New type.
+ (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION): Define to
+ rtems_gxx_recursive_mutex_init.
+ (__gthread_recursive_mutex_lock): New function.
+ (__gthread_recursive_mutex_trylock): Likewise.
+ (__gthread_recursive_mutex_unlock): Likewise.
+
+2005-01-13 Ralf Corsepius <ralf.corsepius@rtems.org>
+
+ * config/i386/t-rtems-i386: Multilib on -mtune instead of -mcpu.
+
+2005-01-13 Jan Beulich <jbeulich@novell.com>
+
+ * config/ia64/ia64.md (ashlti3, ashlti3_internal): New.
+ (ashrti3_internal): Indicate output is early clobber. Generate result
+ into output rather than first input. Use move for low word of output
+ if shift count is exactly 64.
+ (lshrti3_internal): Likewise.
+
+2005-01-13 Hans-Peter Nilsson <hp@bitrange.com>
+
+ PR target/18329
+ PR target/18330
+ * reload1.c (delete_output_reload): Don't delete an output reload
+ if the pseudo lives longer than a single basic block. Adjust and
+ improve wording of comment.
+
+2005-01-12 Andrew Pinski <pinskia@physics.uc.edu>
+
+ PR target/19334
+ * config/darwin.c (machopic_select_section): Use TYPE_SIZE_UNIT instead
+ of TYPE_SIZE where we mean the number of bytes.
+
+2005-01-12 Aldy Hernandez <aldyh@redhat.com>
+
+ * function.c (assign_parm_setup_block): Relax condition on
+ multi-register optimization.
+
+2005-01-12 Nick Clifton <nickc@redhat.com>
+
+ * config/sh/sh.md (udivsi3_sh2a, divsi3_sh2a): Give these patterns
+ an "in_delay_slot" attribute of "no" to prevent them being used in
+ delay slots. This is forbidden because they might generate
+ exceptions.
+
+2005-01-12 Alan Modra <amodra@bigpond.net.au>
+
+ PR target/19389
+ * config/rs6000/rs6000.md (movtf_internal): Replace r->o and m->r
+ with r->Y and Y->r.
+
+2005-01-12 Nick Clifton <nickc@redhat.com>
+
+ * config/iq2000/iq2000.h (ASM_SPEC): Undefine (to stop -Qy being
+ passed on to GAS) but do not define, as GAS no longer supports or
+ needs the -m2000 option.
+
+2005-01-11 Roger Sayle <roger@eyesopen.com>
+
+ * builtins.c (fold_builtin_fabs): Convert argument to the appropriate
+ type as args of unprototyped builtins aren't automatically promoted.
+ (fold_builtin_abs): Likewise.
+
+2005-01-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * Makefile.in: Set a `build-warn' variable.
+
+2005-01-11 Zdenek Dvorak <dvorakz@suse.cz>
+
+ PR tree-optimization/17949
+ * tree-ssa-loop-ivopts.c (may_be_unaligned_p): New function.
+ (find_interesting_uses_address): Use it.
+
+2005-01-11 Aldy Hernandez <aldyh@redhat.com>
+
+ * regrename.c (kill_value): Handle subreg's that won't simplify.
+
+2005-01-11 Richard Henderson <rth@redhat.com>
+
+ PR target/13366
+ * config/i386/i386.h (enum ix86_builtins): Move ...
+ * config/i386/i386.c: ... here.
+ (IX86_BUILTIN_MOVDDUP, IX86_BUILTIN_MMX_ZERO, IX86_BUILTIN_PEXTRW,
+ IX86_BUILTIN_PINSRW, IX86_BUILTIN_LOADAPS, IX86_BUILTIN_LOADSS,
+ IX86_BUILTIN_STORESS, IX86_BUILTIN_SSE_ZERO, IX86_BUILTIN_PEXTRW128,
+ IX86_BUILTIN_PINSRW128, IX86_BUILTIN_LOADAPD, IX86_BUILTIN_LOADSD,
+ IX86_BUILTIN_STOREAPD, IX86_BUILTIN_STORESD, IX86_BUILTIN_STOREHPD,
+ IX86_BUILTIN_STORELPD, IX86_BUILTIN_SETPD1, IX86_BUILTIN_SETPD,
+ IX86_BUILTIN_CLRPD, IX86_BUILTIN_LOADPD1, IX86_BUILTIN_LOADRPD,
+ IX86_BUILTIN_STOREPD1, IX86_BUILTIN_STORERPD, IX86_BUILTIN_LOADDQA,
+ IX86_BUILTIN_STOREDQA, IX86_BUILTIN_CLRTI,
+ IX86_BUILTIN_LOADDDUP): Remove.
+ (IX86_BUILTIN_VEC_INIT_V2SI, IX86_BUILTIN_VEC_INIT_V4HI,
+ IX86_BUILTIN_VEC_INIT_V8QI, IX86_BUILTIN_VEC_EXT_V2DF,
+ IX86_BUILTIN_VEC_EXT_V2DI, IX86_BUILTIN_VEC_EXT_V4SF,
+ IX86_BUILTIN_VEC_EXT_V8HI, IX86_BUILTIN_VEC_EXT_V4HI,
+ IX86_BUILTIN_VEC_SET_V8HI, IX86_BUILTIN_VEC_SET_V4HI): New.
+ (ix86_init_builtins): Make static.
+ (ix86_init_mmx_sse_builtins): Update for changed builtins.
+ (ix86_expand_binop_builtin): Only use ix86_fixup_binary_operands
+ if all the modes match. Otherwise, fake it.
+ (get_element_number, ix86_expand_vec_init_builtin,
+ ix86_expand_vec_ext_builtin, ix86_expand_vec_set_builtin): New.
+ (ix86_expand_builtin): Make static. Update for changed builtins.
+ (ix86_expand_vector_move_misalign): Use sse2_loadlpd with zero
+ operand instead of sse2_loadsd. Cast sse1 fallback to V4SFmode.
+ (ix86_expand_vector_init_duplicate): New.
+ (ix86_expand_vector_init_low_nonzero): New.
+ (ix86_expand_vector_init_one_var, ix86_expand_vector_init_general):
+ Split out from ix86_expand_vector_init; handle integer modes.
+ (ix86_expand_vector_init): Use them.
+ (ix86_expand_vector_set, ix86_expand_vector_extract): New.
+ * config/i386/i386-protos.h: Update.
+ * config/i386/predicates.md (reg_or_0_operand): New.
+ * config/i386/mmx.md (mov<MMXMODEI>_internal): Add 'r' variants.
+ (movv2sf_internal): Likewise. And a splitter to match them all.
+ (vec_dupv2sf, mmx_concatv2sf, vec_setv2sf, vec_extractv2sf,
+ vec_initv2sf, vec_dupv4hi, vec_dupv2si, mmx_concatv2si, vec_setv2si,
+ vec_extractv2si, vec_initv2si, vec_setv4hi, vec_extractv4hi,
+ vec_initv4hi, vec_setv8qi, vec_extractv8qi, vec_initv8qi): New.
+ (mmx_pinsrw): Fix operand ordering.
+ * config/i386/sse.md (movv4sf splitter): Use direct pattern,
+ rather than sse_loadss expander.
+ (movv2df splitter): Similarly.
+ (sse_loadss, sse_loadlss): Remove.
+ (vec_dupv4sf, sse_concatv2sf, sse_concatv4sf, vec_extractv4sf_0): New.
+ (vec_setv4sf, vec_setv2df): Use ix86_expand_vector_set.
+ (vec_extractv4sf, vec_extractv2df): Use ix86_expand_vector_extract.
+ (sse3_movddup): Rename with '*'.
+ (sse3_movddup splitter): Use gen_rtx_REG instead of gen_lowpart.
+ (sse2_loadsd): Remove.
+ (vec_dupv2df_sse3): Rename from sse3_loadddup.
+ (vec_dupv2df, vec_concatv2df_sse3, vec_concatv2df): New.
+ (sse2_pinsrw): Fix argument ordering.
+ (sse2_loadld, sse2_loadq): Add sse1 alternatives.
+ (sse2_stored): Remove 'r' destination.
+ (vec_dupv4si, vec_dupv2di, sse2_concatv2si, sse1_concatv2si,
+ vec_concatv4si_1, vec_concatv2di, vec_setv2di, vec_extractv2di,
+ vec_initv2di, vec_setv4si, vec_extractv4si, vec_initv4si,
+ vec_setv8hi, vec_extractv8hi, vec_initv8hi, vec_setv16qi,
+ vec_extractv16qi, vec_initv16qi): New.
+
+ * config/i386/emmintrin.h (__m128i, __m128d): Use typedef, not define.
+ (_mm_set_sd, _mm_set1_pd, _mm_setzero_pd, _mm_set_epi64x,
+ _mm_set_epi32, _mm_set_epi16, _mm_set_epi8, _mm_setzero_si128): Use
+ constructor form.
+ (_mm_load_pd, _mm_store_pd): Use plain dereference.
+ (_mm_load_si128, _mm_store_si128): Likewise.
+ (_mm_load1_pd): Use _mm_set1_pd.
+ (_mm_load_sd): Use _mm_set_sd.
+ (_mm_store_sd, _mm_storeh_pd): Use __builtin_ia32_vec_ext_v2df.
+ (_mm_store1_pd, _mm_storer_pd): Use _mm_store_pd.
+ (_mm_set_epi64): Use _mm_set_epi64x.
+ (_mm_set1_epi64x, _mm_set1_epi64, _mm_set1_epi32, _mm_set_epi16,
+ _mm_set1_epi8, _mm_setr_epi64, _mm_setr_epi32, _mm_setr_epi16,
+ _mm_setr_epi8): Use _mm_set_foo form.
+ (_mm_loadl_epi64, _mm_movpi64_epi64, _mm_move_epi64): Use _mm_set_epi64.
+ (_mm_storel_epi64, _mm_movepi64_pi64): Use __builtin_ia32_vec_ext_v2di.
+ (_mm_extract_epi16): Use __builtin_ia32_vec_ext_v8hi.
+ (_mm_insert_epi16): Use __builtin_ia32_vec_set_v8hi.
+ * config/i386/mmintrin.h (_mm_setzero_si64): Use plain cast.
+ (_mm_set_pi32): Use __builtin_ia32_vec_init_v2si.
+ (_mm_set_pi16): Use __builtin_ia32_vec_init_v4hi.
+ (_mm_set_pi8): Use __builtin_ia32_vec_init_v8qi.
+ (_mm_set1_pi16, _mm_set1_pi8): Use _mm_set_piN variant.
+ * config/i386/pmmintrin.h (_mm_loaddup_pd): Use _mm_load1_pd.
+ (_mm_movedup_pd): Use _mm_shuffle_pd.
+ * config/i386/xmmintrin.h (_mm_setzero_ps, _mm_set_ss,
+ _mm_set1_ps, _mm_set_ps, _mm_setr_ps): Use constructor form.
+ (_mm_cvtpi16_ps, _mm_cvtpu16_ps, _mm_cvtpi8_ps, _mm_cvtpu8_ps,
+ _mm_cvtps_pi8, _mm_cvtpi32x2_ps): Avoid __builtin_ia32_mmx_zero;
+ Use _mm_setzero_ps.
+ (_mm_load_ss, _mm_load1_ps): Use _mm_set* form.
+ (_mm_load_ps, _mm_loadr_ps): Use raw dereference.
+ (_mm_store_ss): Use __builtin_ia32_vec_ext_v4sf.
+ (_mm_store_ps): Use raw dereference.
+ (_mm_store1_ps): Use _mm_storeu_ps.
+ (_mm_storer_ps): Use _mm_store_ps.
+ (_mm_extract_pi16): Use __builtin_ia32_vec_ext_v4hi.
+ (_mm_insert_pi16): Use __builtin_ia32_vec_set_v4hi.
+
+2005-01-11 Stan Shebs <shebs@apple.com>
+
+ * config/rs6000/rs6000.c (machopic_output_stub): Issue
+ ldu instead of lwzu if 64-bit -mdynamic-no-pic.
+
+2005-01-11 Andrew Pinski <pinskia@physics.uc.edu>
+
+ PR target/18761
+ * config/rs6000/rs6000.c (rs6000_special_round_type_align):
+ Skip all DECLs except for FIELD_DECLs.
+
+2005-01-11 Andreas Krebbel <krebbel1@de.ibm.com>
+
+ * config/s390/s390.c (override_options): Return error if
+ -mbackchain, -mpacked-stack and -mhard-float are used together.
+ (s390_va_start): Remove the backchain && packed-stack special case.
+ (s390_gimplify_va_arg): Likewise.
+ * doc/invoke.texi: Remove the ABI incompatibility note.
+
+2005-01-11 Andreas Krebbel <krebbel1@de.ibm.com>
+
+ * 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-11 Alan Modra <amodra@bigpond.net.au>
+
+ PR target/18916
+ * builtins.c (std_gimplify_va_arg_expr): Adjust alignment of *ap.
+ * expr.h (struct locate_and_pad_arg_data): Add "boundary".
+ * function.c (locate_and_pad_parm): Set new field.
+ (assign_parm_find_stack_rtl): Use it instead of FUNCTION_ARG_BOUNDARY.
+ Tweak where_pad test to include "none". Always set mem align for
+ stack_parm.
+ (assign_parm_adjust_stack_rtl): Discard stack_parm if alignment
+ not sufficient for type.
+ (assign_parm_setup_block): If stack_parm is zero on entry, always
+ make a new stack local. Block move old stack parm if necessary
+ to new aligned stack local.
+ (assign_parm_setup_stack): Use a block move to handle
+ potentially misaligned entry_parm.
+ (assign_parms_unsplit_complex): Specify required alignment when
+ creating stack local.
+ * calls.c (compute_argument_addresses): Override alignment of stack
+ arg calculated from its type with the alignment given by
+ FUNCTION_ARG_BOUNDARY.
+ (store_one_arg): Likewise.
+
+2005-01-11 Jan Beulich <jbeulich@novell.com>
+
+ * config/ia64/ia64.md (zero_extendsidi2): Replace zxt4 by addp4.
+ Change respective itanium_class attribute to ialu.
+ (shladdp4_internal): New.
+ * config/ia64/predicates.md (shladd_log2_operand): New.
+
+2005-01-11 Richard Henderson <rth@redhat.com>
+
+ * expr.c (store_constructor): Use rtvec_alloc instead of
+ alloca+gen_rtvec_v, and an incorrect number passed to alloca.
+
+2005-01-11 Kazu Hirata <kazu@cs.umass.edu>
+
+ * config/alpha/alpha.c, config/i386/mmx.md: Fix comment typos.
+
+2005-01-11 Alan Modra <amodra@bigpond.net.au>
+
+ * varasm.c (default_section_type_flags_1): Don't set SECTION_SMALL.
+ * config/ia64/ia64.c (TARGET_SECTION_TYPE_FLAGS): Define.
+ (TARGET_RWRELOC): Define.
+ (ia64_rwreloc_section_type_flags): Delete.
+ (ia64_section_type_flags): New function.
+ * config/ia64/hpux.h (TARGET_SECTION_TYPE_FLAGS): Don't define.
+ (TARGET_RWRELOC): Define.
+
+2005-01-10 David Mosberger <davidm@hpl.hp.com>
+
+ PR target/18987
+ * config/ia64/ia64.c (process_set): For alloc insn, only call
+ process_epilogue is !frame_pointer_needed.
+
+2005-01-10 Roger Sayle <roger@eyesopen.com>
+
+ PR c++/19355
+ * c-common.c (c_common_truthvalue_conversion): TRUTH_NOT_EXPR is a
+ unary operator and can't be treated as a binary/comparison operator.
+
+2005-01-10 Richard Henderson <rth@redhat.com>
+
+ * config/i386/i386.c (ix86_function_value): Use type_natural_mode.
+ (ix86_return_in_memory): Likewise.
+ (function_arg_advance): Likewise. Mirror structure in function_arg
+ for choosing register to advance.
+
+2005-01-10 Kazu Hirata <kazu@cs.umass.edu>
+
+ * tree-vectorizer.c, tree.def: Fix comment typos.
+
+2005-01-10 Mark Dettinger <dettinge@de.ibm.com>
+
+ * config/s390/s390.c (struct processor_costs): 4 new fields:
+ ddbr, ddr, debr, der.
+ (s390_rtx_costs): More precise handling of divide instructions.
+
+2005-01-10 David Edelsohn <edelsohn@gnu.org>
+
+ * config/rs6000/t-aix43 (BOOT_LDFLAGS): Define.
+
2005-01-10 Jan Beulich <jbeulich@novell.com>
* config/ia64/ia64.c (ia64_in_small_data_p): Also handle the section