+2007-03-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * builtins.def (ATTR_MATHFN_FPROUNDING): Rely on
+ flag_rounding_math, not flag_unsafe_math_optimizations.
+
+ * c-pretty-print.c (pp_c_direct_abstract_declarator): Use
+ fold_build2.
+ * config/alpha/alpha.c (alpha_fold_builtin_zapnot,
+ alpha_fold_vector_minmax): Likewise.
+ * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
+ * config/sparc/sparc.c (sparc_gimplify_va_arg): Likewise.
+
+2007-03-02 Eric Botcazou <ebotcazou@adacore.com>
+
+ * tree-sra.c (sra_walk_fns) <ldst>: Document new restriction.
+ (sra_walk_modify_expr) <rhs_elt>: Treat the reference as a use
+ if the lhs has side-effects.
+ <lhs_elt>: Treat the reference as a use if the rhs has side-effects.
+
+2007-03-02 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.h (TUNEMASK): Remove define.
+ (ARCHMASK): Remove define.
+ (TARGET_*): Use ix86_tune_mask variable instead of TUNEMASK.
+ Use ix86_arch_mask variable instead of ARCHMASK.
+ * config/i386/i386.c (override_options): Ditto.
+ (standard_80387_constant_p): Ditto.
+
+2007-03-02 Ian Lance Taylor <iant@google.com>
+
+ Used signed infinities in VRP.
+ * tree-vrp.c (uses_overflow_infinity): New static function.
+ (supports_overflow_infinity): New static function.
+ (make_overflow_infinity): New static function.
+ (negative_overflow_infinity): New static function.
+ (positive_overflow_infinity): New static function.
+ (is_negative_overflow_infinity): New static function.
+ (is_positive_overflow_infinity): New static function.
+ (is_overflow_infinity): New static function.
+ (overflow_infinity_range_p): New static function.
+ (compare_values_warnv): New function split out of compare_values.
+ (compare_value): Call it.
+ (set_value_range_to_nonnegative): Add overflow_infinity
+ parameter. Change caller.
+ (vrp_expr_computes_nonnegative): Add strict_overflow_p parameter.
+ Change callers.
+ (vrp_expr_computes_nonzero): Likewise.
+ (compare_ranges, compare_range_with_value): Likewise.
+ (compare_name_with_value, compare_names): Likewise.
+ (vrp_evaluate_conditional): Likewise.
+ (set_value_range): Handle infinity
+ (vrp_operand_equal_p, operand_less_p): Likewise.
+ (extract_range_from_assert): Likewise.
+ (vrp_int_const_binop): Likewise.
+ (extract_range_from_binary_expr): Likewise.
+ (extract_range_from_unary_expr): Likewise.
+ (extract_range_from_comparison): Likewise.
+ (extract_range_from_expr): Likewise.
+ (dump_value_range): Likewise.
+ (vrp_visit_cond_stmt, vrp_visit_phi_node): Likewise.
+ (test_for_singularity): Likewise.
+ (vrp_int_const_binop): Remove inline qualifier.
+ (adjust_range_with_scev): Add comment.
+ * tree-flow.h (vrp_evaluate_conditional): Update declaration.
+
+2007-03-02 Diego Novillo <dnovillo@redhat.com>
+
+ * tree-ssa-structalias.c (could_have_pointers): Tidy.
+ (get_constraint_for): Likewise.
+ (do_structure_copy): Likewise.
+ (find_func_aliases): Fix references to MODIFY_EXPR.
+ (intra_create_variable_infos): Tidy.
+ * tree-ssa-operands.c (add_virtual_operand): Add argument
+ IS_CALL_SITE.
+ When adding members of alias sets, if IS_CALL_SITE is true and
+ the symbol is not call-clobbered, skip it.
+ Adjust all callers.
+
+2007-03-02 Eric Botcazou <ebotcazou@adacore.com>
+
+ * config/alpha/alpha.c (alpha_gp_save_rtx): Insert the insns at the
+ entry by means of emit_insn_at_entry.
+
+2007-03-02 Richard Henderson <rth@redhat.com>
+
+ * expr.h (promoted_input_arg): Remove decl.
+ * function.c (promoted_input_arg): Merge into ...
+ * combine.c (setup_incoming_promotions): ... only caller.
+ Rearrange to avoid double loop.
+
+2007-03-02 Ben Elliston <bje@au.ibm.com>
+ Peter Bergner <bergner@vnet.ibm.com>
+ Janis Johnson <janis187@us.ibm.com>
+
+ * config/rs6000/dfp.md: New file.
+ * config/rs6000/rs6000.md: Include dfp.md.
+ (add<mode>3_internal1): Disable for DECIMAL_FLOAT_MODE_P operands.
+ * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Handle DDmode
+ and TDmode decimal float modes in FP registers.
+ (num_insns_constant): Likewise.
+ (rs6000_legitimate_offset_address_p): Likewise.
+ (rs6000_legitimize_address): Likewise.
+ (rs6000_legitimize_reload_address): Likewise.
+ (rs6000_legitimate_address): Likewise.
+ (rs6000_emit_move): Likewise.
+ (function_arg_boundary): Likewise.
+ (function_arg_advance): Likewise.
+ (rs6000_darwin64_record_arg_recurse): Likewise.
+ (function_arg): Likewise.
+ (rs6000_gimplify_va_arg): Likewise.
+ (rs6000_split_multireg_move): Likewise.
+ (rs6000_output_function_epilogue): Likewise.
+ (rs6000_output_function_epilogue): Likewise.
+ (rs6000_register_move_cost): Likewise.
+ (rs6000_function_value): Likewise.
+ (rs6000_libcall_value): Likewise.
+
+2007-03-02 Richard Sandiford <richard@codesourcery.com>
+
+ * config/t-vxworks (LIMITS_H_TEST): Define to true for VxWorks.
+
+2007-03-02 Richard Sandiford <richard@codesourcery.com>
+
+ * config/t-vxworks (LIBGCC2_INCLUDES): Pass -nostdinc.
+ Use $MULTIDIR to choose between the kernel and RTP headers,
+ and use $WIND_BASE and $WIND_USR to locate them.
+
+2007-03-02 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.c (override_options): Put initialization of
+ ix86_tune_mask and ix86_arch_mask to the correct place.
+
+2007-03-02 Uros Bizjak <ubizjak@gmail.com>
+ Michael Meissner <michael.meissner@amd.com>
+
+ PR target/31019
+ * config/i386/i386.h (TUNEMASK): Redefine to use ix86_tune_mask.
+ (ARCHMASK): Define.
+ (TARGET_CMOVE): Use ARCHMASK.
+ (TARGET_CMPXCHG): Ditto.
+ (TARGET_CMPXCHG8B): Ditto.
+ (TARGET_XADD): Ditto.
+ (TARGET_BSWAP): Ditto.
+ * config/i386/i386.c (ix86_tune_mask): New global variable.
+ (ix86_arch_mask): Ditto.
+ (override_options): Initialize ix86_tune_mask and
+ ix86_arch_mask. Use ARCHMASK to clear MASK_NO_FANCY_MATH_387 in
+ target_flags.
+
+2007-03-02 Ben Elliston <bje@au.ibm.com>
+
+ PR 30992
+ * config/dfp-bit.c (DFP_TO_INT): Initialise qval with "1.".
+
+2007-03-02 Joseph Myers <joseph@codesourcery.com>
+
+ * target.h (init_dwarf_reg_sizes_extra): New target hook.
+ * target-def.h (TARGET_INIT_DWARF_REG_SIZES_EXTRA): New default.
+ * doc/tm.texi (TARGET_INIT_DWARF_REG_SIZES_EXTRA): Document.
+ * dwarf2out.c (expand_builtin_init_dwarf_reg_sizes): Call this
+ hook.
+ * config/rs6000/rs6000.c (TARGET_INIT_DWARF_REG_SIZES_EXTRA,
+ rs6000_init_dwarf_reg_sizes_extra): New.
+ * config/rs6000/linux-unwind.h (ppc_fallback_frame_state): Support
+ SPE register high parts.
+
+2007-03-01 Brooks Moses <brooks.moses@codesourcery.com>
+
+ * Makefile.in: Add install-pdf target as
+ copied from automake v1.10 rules.
+ * configure.ac: Add install-pdf to target list.
+ * configure: Regenerate.
+
+2007-03-01 Paul Brook <paul@codesourcery.com>
+
+ * config/arm/arm.c (arm_legitimate_index_p): Limit iWMMXt addressing
+ modes to LDRD for DImode.
+ (output_move_double): Fixup out of range ldrd/strd.
+ (vfp_secondary_reload_class): Rename...
+ (coproc_secondary_reload_class): ... to this. Add wb argument.
+ * config/arm/arm.h (SECONDARY_OUTPUT_RELOAD_CLASS): Use
+ coproc_secondary_reload_class for CLASS_IWMMXT.
+ (SECONDARY_INPUT_RELOAD_CLASS): Ditto.
+ * arm-protos.h (coproc_secondary_reload_class): Update prototype.
+
+2007-03-01 Zdenek Dvorak <dvorakz@suse.cz>
+
+ * tree-ssa-loop-prefetch.c (determine_unroll_factor): Bound the unroll
+ factor by the estimated number of iterations.
+ (loop_prefetch_arrays): Do not prefetch in loops that iterate less than
+ prefetch latency.
+
+2007-03-01 Richard Henderson <rth@redhat.com>
+
+ * expr.c (emit_move_complex_push): Export.
+ (emit_move_complex_parts): Split out from ...
+ (emit_move_complex): ... here.
+ * expr.h (emit_move_complex_push, emit_move_complex_parts): Declare.
+ * config/i386/i386.md (movcdi): New.
+
+2007-03-01 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.c (ix86_modes_tieable_p): Fix typo, use also
+ size of mode1 to check for tieable modes in MMX case.
+
+2007-03-01 Richard Sandiford <richard@codesourcery.com>
+
+ * Makefile.in (rtlanal.o): Depend on tree.h.
+ * rtl.h (offset_within_section_p, split_const): Declare.
+ * rtlanal.c: Include tree.h.
+ (offset_within_block_p): New function, taken from
+ mips_offset_within_object_p.
+ (split_const): New function, taken from mips_split_const.
+ * config/m68k/m68k-protos.h (m68k_illegitimate_symbolic_constant_p):
+ Declare.
+ * config/m68k/m68k.h (M68K_OFFSETS_MUST_BE_WITHIN_SECTIONS_P): Define.
+ (CONSTANT_ADDRESS_P): Only accept legitimate constants.
+ (LEGITIMATE_CONSTANT_P): Check m68k_illegitimate_symbolic_constant_p.
+ * config/m68k/m68k.c (TARGET_CANNOT_FORCE_CONST_MEM): Define.
+ (m68k_illegitimate_symbolic_constant_p): New function.
+ * config/m68k/m68k.md (movsi): Remove misleading predicates.
+ If M68K_OFFSETS_MUST_BE_WITHIN_SECTIONS_P and the source is a
+ symbolic constant that might be outside the symbol's section,
+ move the symbol first and then add the offset.
+ * config/m68k/uclinux.h (M68K_OFFSETS_MUST_BE_WITHIN_SECTIONS_P):
+ Override.
+ * config/mips/mips.c (mips_split_const): Delete.
+ (mips_offset_within_object_p): Delete.
+ (mips_symbolic_constant_p): Use offset_within_section_p and
+ split_const instead of mips_offset_within_object_p and
+ mips_split_const.
+ (mips_cannot_force_const_mem, mips_const_insns, mips_unspec_address)
+ (mips_legitimize_const_move, print_operand_reloc)
+ (mips_dangerous_for_la25_p): Use split_const instead of
+ mips_split_const.
+
+2007-02-28 Eric Christopher <echristo@apple.com>
+
+ * Makefile.in (install-include-dir): Don't rm -rf include.
+
+2007-02-28 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/30364
+ * fold-const.c (fold_binary): Do not associate expressions
+ with more than one variable for integer types that do not wrap.
+
+2007-02-28 Sandra Loosemore <sandra@codesourcery.com>
+
+ * builtins.c (fold_builtin_call_list, fold_builtin_call_valist):
+ Delete, and replace with...
+ (fold_builtin_call_array): This. Update callers to use it.
+ * fold-const.c (fold_build_call_list): Delete, and replace with...
+ (fold_build_call_array): This.
+ (fold_build_call_list_initializer): Delete, and replace with...
+ (fold_build_call_array_initializer): This.
+ * tree.h: Update declarations to reflect above changes.
+
+ * c-typeck.c (build_function_call): Store converted arguments
+ in a stack-allocated array instead of building a list.
+ (convert_arguments): Store arguments in the array passed in as an
+ argument, and return the actual number of arguments.
+ * c-format.c: (check_function_format): Pass arguments in an
+ array instead of a list.
+ * c-common.c (check_function_nonnull): Likewise.
+ (check_function_sentinel): Likewise.
+ (check_function_arguments): Likewise.
+ * c-common.h: Update declarations to reflect above changes.
+
+2007-02-28 Jan Hubicka <jh@suse.cz>
+
+ * predict.def (PRED_TREE_EARLY_RETURN, PRED_CONST_RETURN,
+ PRED_NEGATIVE_RETURN): Update outcomes.
+
+2007-02-28 Bernd Schmidt <bernd.schmidt@analog.com>
+
+ * calls.c (emit_library_call_value_1): Handle partial registers
+ correctly when building up CALL_INSN_FUNCTION_USAGE.
+
+2007-02-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ * pa/predicates.md (move_src_operand): Allow zero for mode.
+ * pa/pa.md: Fix constraints for zero CONST_DOUBLE in 64-bit DFmode
+ move pattern.
+
+2007-02-27 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/30970
+ * config/i386/sse.md (*mov<mode>_internal, *movv4sf_internal,
+ *movv2df_internal): Enable pattern only for valid operand
+ combinations.
+ * config/i386/i386.c (ix86_modes_tieable_p): For SSE registers,
+ tie only 128bit modes. For MMX registers, tie only 64bit modes.
+
+2007-02-27 Mike Stump <mrs@apple.com>
+
+ * config/darwin-crt3.c: Avoid compilation when compiling for a
+ kext multilib.
+
+2007-02-27 Joseph Myers <joseph@codesourcery.com>
+
+ * Makefile.in (PREPROCESSOR_DEFINES, test-protoize-simple): Define
+ FIXED_INCLUDE_DIR.
+ (stmp-int-hdrs, stmp-fixinc, install-headers): Use include-fixed
+ for fixed headers and limits.h.
+ (install-include-dir, install-headers-tar, install-headers-cpio,
+ install-headers-cp, real-install-headers-tar,
+ real-install-headers-cpio, real-install-headers-cp): Handle
+ include-fixed as well as include.
+ (install-mkheaders): Don't install files that go only in include
+ not include-fixed.
+ * cppdefault.c (cpp_include_defaults): Separate FIXED_INCLUDE_DIR
+ from GCC_INCLUDE_DIR.
+ * gcc.c (process_command): Remove special -BstageN/ handling.
+ (do_spec_1): Add include-fixed directories.
+
+2007-02-27 Bernd Schmidt <bernd.schmidt@analog.com>
+
+ * config/bfin/t-bfin-elf (LIB1ASMFUNCS): Add _umulsi3_highpart and
+ _smulsi3_highpart.
+ * config/bfin/lib1funcs.asm (___umulsi3_highpart, ___smulsi3_highpart):
+ New functions.
+ * config/bfin/bfin.md (smulsi3_highpart, umulsi3_highpart): New
+ patterns.
+
+2007-02-27 Mark Mitchell <mark@codesourcery.com>
+
+ * c-common.c (get_priority): Add check for
+ SUPPORTS_INIT_PRIORITY.
+
+2007-02-27 Bernd Schmidt <bernd.schmidt@analog.com>
+
+ * config/bfin/bfin.md (doloop_end): FAIL if counter reg isn't SImode.
+
+ * config/bfin/bfin.c: Include "cfglayout.h".
+ (MAX_LSETUP_DISTANCE): New macro.
+ (struct loop_info): New members incoming, incoming_src and
+ incoming_dest. Delete member predecessor.
+ (length_for_loop): New function.
+ (bfin_optimize_loop): Handle more different loop structures.
+ (bfin_discover_loop): Rework detection of predecessor blocks by
+ examining incoming edges.
+ (bfin_discover_loops, bfin_free_loops): New functions, broken out of
+ bfin_reorg_loops.
+ (bfin_reorder_loops): New function.
+ (bfin_reorg_loops): Use these three new functions.
+
+ * config/bfin/bfin.h (enum reg_class, REG_CLASS_NAMES,
+ REG_CLASS_CONTENTS): Add D0REGS through D7REGS.
+ (CONSTRAINT_LEN): Add entry for 'q'.
+ (REG_CLASS_FROM_CONSTRAINT): Renamed from REG_CLASS_FROM_LETTER.
+ Add 'q' constraints.
+ (REGNO_REG_CLASS): For R0 through R7, return corresponding regclass.
+ (CLASS_LIKELY_SPILLED_P): True for R0, R1 and R2.
+
+ * config/bfin/bfin.md (add_with_carry): New pattern.
+ (s_or_u, su_optab, su_modifier): New code macros/attrs.
+ (<su_optab>hisi_ll, <su_optab>hisi_lh, <su_optab>hisi_hl,
+ <su_optab>hisi_hh): Renamed from mulhisi_xx patterns; macroized to
+ support unsigned multiplies too. Removed incorrect commutativity from
+ operand 1 constraint where appropriate.
+ (usmulhisi_ull, usmulhisi_ulh, usmulhisi_uhl, usmulhisi_uhh): New
+ patterns.
+ (<su_optab>hisi_ll_lh, <su_optab>hisi_ll_hl, <su_optab>hisi_ll_hh,
+ <su_optab>hisi_lh_hl, <su_optab>hisi_lh_hh, <su_optab>hisi_hl_hh):
+ New patterns.
+ (usmulhisi_ll_lul, usmulhisi_ll_luh, usmulhisi_ll_hul,
+ usmulhisi_ll_huh, usmulhisi_lh_lul, usmulhisi_lh_luh, usmulhisi_lh_hul,
+ usmulhisi_lh_huh, usmulhisi_hl_lul, usmulhisi_hl_luh, usmulhisi_hl_hul,
+ usmulhisi_hl_huh, usmulhisi_hh_lul, usmulhisi_hh_luh, usmulhisi_hh_hul,
+ usmulhisi_hh_huh): New patterns.
+
+ * config/bfin/bfin.md (ssashiftv2hi3, ssashifthi3, lshiftv2hi3,
+ lshifthi3): Fix output template to use half reg for operand 2.
+
+ * config/bfin/bfin.c (bfin_output_mi_thunk): Use R3 as scratch reg
+ instead of R2.
+
+ * config/bfin/bfin.md (rotl16, rotlsi3, rotrsi3): New patterns.
+
+2007-02-27 Andreas Schwab <schwab@suse.de>
+
+ * Makefile.in (TEXI_GCCINSTALL_FILES): Add gcc-common.texi.
+
2007-02-27 Jan Hubicka <jh@suse.cz>
* predict.c (last_basic_block_p): Remove.
* loop-iv.c (simplify_using_initial_values): Fix oversight in previous
change; avoid a memory leak when returning early.
-
+
2007-02-26 Mark Mitchell <mark@codesourcery.com>
* c-decl.c (static_ctors): Move to c-common.c.
2007-02-22 Ira Rosen <irar@il.ibm.com>
PR tree-optimization/30843
- * tree-vect-transform.c (vect_transform_loop): Remove strided scalar
+ * tree-vect-transform.c (vect_transform_loop): Remove strided scalar
stores only after all the group is vectorized.
2007-02-22 Dorit Nuzman <dorit@il.ibm.com>