+2005-06-18 Steven Bosscher <stevenb@suse.de>
+
+ * Makefile.in: Fix tree-cfgcleanup.c dependencies.
+
+2005-06-18 Richard Henderson <rth@redhat.com>
+
+ * expr.c (store_constructor): Use store of 0 to indicate value
+ death instead of a clobber.
+
+ * config/i386/i386.c (ix86_expand_reduc_v4sf): New.
+ * config/i386/i386-protos.h (ix86_expand_reduc_v4sf): Declare.
+ * config/i386/sse.md (reduc_plus_v4sf): New.
+ (reduc_smax_v4sf, reduc_smin_v4sf): New.
+
+2005-06-18 James A. Morrison <phython@gcc.gnu.org>
+
+ * fold_const (fold_binary): Fold X % (2**N) to X & (2**N - 1) for
+ nonnegative values of X.
+
+2005-06-18 Uros Bizjak <uros@kss-loka.si>
+
+ * doc/md.texi (Standard Names): Change insn pattern name
+ from truncM2 to btruncM2 for 'trunc' built-in description.
+ Add rintM2 insn pattern description.
+
+2005-06-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * c-decl.c (locate_old_decl): Add format attribute.
+ (implicit_decl_warning): Likewise.
+
+ * diagnostic.h (verbatim): Move ...
+ * toplev.h (verbatim): ... here. Add ATTRIBUTE_GCC_DIAG.
+ * pretty-print.h (pp_verbatim): Add ATTRIBUTE_GCC_PPDIAG.
+
+2005-06-18 Roger Sayle <roger@eyesopen.com>
+
+ PR target/22083
+ * config/rs6000/aix51.h (TARGET_C99_FUNCTIONS): Remove definition.
+
+2005-06-18 Dorit Nuzman <dorit@il.ibm.com>
+
+ * tree.def (REDUC_MAX_EXPR, REDUC_MIN_EXPR, REDUC_PLUS_EXPR): New
+ tree-codes.
+ * optabs.h (OTI_reduc_smax, OTI_reduc_umax, OTI_reduc_smin,
+ OTI_reduc_umin, OTI_reduc_plus): New optabs for reduction.
+ (reduc_smax_optab, reduc_umax_optab, reduc_smin_optab, reduc_umin_optab,
+ reduc_plus_optab): New optabs for reduction.
+ * expr.c (expand_expr_real_1): Handle new tree-codes.
+ * tree-inline.c (estimate_num_insns_1): Handle new tree-codes.
+ * tree-pretty-print.c (dump_generic_node, op_prio, op_symbol): Handle
+ new tree-codes.
+ * optabs.c (optab_for_tree_code): Handle new tree-codes.
+ (init_optabs): Initialize new optabs.
+ * genopinit.c (optabs): Define handlers for new optabs.
+
+ * tree-vect-analyze.c (vect_analyze_operations): Fail vectorization in
+ case of a phi that is marked as relevant. Call vectorizable_reduction.
+ (vect_mark_relevant): Phis may be marked as relevant.
+ (vect_mark_stmts_to_be_vectorized): The use corresponding to the
+ reduction variable in a reduction stmt does not mark its defining phi
+ as relevant. Update documentation accordingly.
+ (vect_can_advance_ivs_p): Skip reduction phis.
+ * tree-vect-transform.c (vect_get_vec_def_for_operand): Takes
+ additional argument. Handle reduction.
+ (vect_create_destination_var): Update call to vect_get_new_vect_var.
+ Handle non-vector argument.
+ (get_initial_def_for_reduction): New function.
+ (vect_create_epilog_for_reduction): New function.
+ (vectorizable_reduction): New function.
+ (vect_get_new_vect_var): Handle new vect_var_kind.
+ (vectorizable_assignment, vectorizable_operation, vectorizable_store,
+ vectorizable_condition): Update call to vect_get_new_vect_var.
+ (vect_transform_stmt): Call vectorizable_reduction.
+ (vect_update_ivs_after_vectorizer): Skip reduction phis.
+ (vect_transform_loop): Skip if stmt is both not relevant and not live.
+ * tree-vectorizer.c (reduction_code_for_scalar_code): New function.
+ (vect_is_simple_reduction): Was empty - added implementation.
+ * tree-vectorizer.h (vect_scalar_var): New enum vect_var_kind value.
+ (reduc_vec_info_type): New enum vect_def_type value.
+ * config/rs6000/altivec.md (reduc_smax_v4si, reduc_smax_v4sf,
+ reduc_umax_v4si, reduc_smin_v4si, reduc_umin_v4sf, reduc_smin_v4sf,
+ reduc_plus_v4si, reduc_plus_v4sf): New define_expands.
+
+ * tree-vect-analyze.c (vect_determine_vectorization_factor): Remove
+ ENABLE_CHECKING around gcc_assert.
+ * tree-vect-transform.c (vect_do_peeling_for_loop_bound,
+ (vect_do_peeling_for_alignment, vect_transform_loop,
+ vect_get_vec_def_for_operand): Likewise.
+
+2005-06-18 Joseph S. Myers <joseph@codesourcery.com>
+
+ * config/ia64/ia64.c (ia64_function_arg): Set up a PARALLEL for a
+ big-endian unnamed __float80 value.
+
+2005-06-18 Richard Henderson <rth@redhat.com>
+
+ PR tree-opt/22103
+ * tree-sra.c (generate_copy_inout): Handle SSA_NAME complex
+ destinations.
+
+2005-06-17 Richard Henderson <rth@redhat.com>
+
+ * tree-vect-transform.c (vect_do_peeling_for_loop_bound): Use
+ initialize_original_copy_tables and free_original_copy_tables.
+ (vect_do_peeling_for_alignment): Likewise.
+
+2005-06-17 Pat Haugen <pthaugen@us.ibm.com>
+
+ * bb-reorder.c (find_traces_1_round): Use succ block frequency
+ instead of edge frequency for calls to better_edge_p.
+
+2005-06-17 Andrew Pinski <pinskia@physics.uc.edu>
+
+ PR tree-opt/22105
+ * tree-ssa-loop-im.c (for_each_index): Handle COMPLEX_CST.
+
+2005-06-17 Steve Ellcey <sje@cup.hp.com>
+
+ PR target/19889
+ * config/ia64/hpux.h (FUNCTION_PROFILER): New (dummy).
+ (PROFILE_HOOK): New.
+ (PROFILE_BEFORE_PROLOGUE): Undef.
+ (NO_PROFILE_COUNTERS): New.
+ * config/ia64/ia64-protos.h (ia64_profile_hook): New.
+ * config/ia64/ia64.c (ia64_compute_frame_size): Add ifdef.
+ (gen_mcount_func_rtx): New.
+ (ia64_profile_hook): New.
+ * config/ia64/ia64.md (ip_value): New.
+
+2005-06-17 Devang Patel <dpatel@apple.com>
+
+ * config/rs6000/predicates.md (s5bit_cint_operand,
+ u5bit_cint_operand): New.
+ * config/rs6000/altivec.md (altivec_vspltb, altivec_vsplth,
+ altivec_vspltisw_v4sf): Use new 5 bit constant operand predicates.
+ * config/rs6000/rs6000.c (rs6000_expand_unop_builtin): Fix signed
+ 5 bit constant check.
+
+2005-06-17 Richard Henderson <rth@redhat.com>
+
+ * local-alloc.c (update_equiv_regs): Update reg_equiv_init
+ properly when moving an initialization insn.
+
+2005-06-17 Paolo Bonzini <bonzini@gnu.org>
+
+ * aclocal.m4 (gcc_AC_CHECK_TOOL): Do not overwrite the
+ passed variable.
+ * configure.ac: Regenerate.
+
+2005-06-17 Jan Hubicka <jh@suse.cz>
+
+ * tree-optimize.c (execute_ipa_pass_list): New.
+ (ipa_passes): Use it.
+
+2005-06-16 Richard Henderson <rth@redhat.com>
+
+ PR tree-opt/22022
+ * tree-complex.c (update_phi_components): Avoid no-op moves.
+
+2005-06-16 Joseph S. Myers <joseph@codesourcery.com>
+
+ * Makefile.in (cc1-checksum.c): Use
+ build/genchecksum$(build_exeext), not build/genchecksum$(exeext).
+
+2005-06-16 Geoffrey Keating <geoffk@apple.com>
+
+ * gengtype.c (adjust_field_rtx_def): Don't add a skip to
+ basic_block types.
+
+ * config/t-slibgcc-darwin (SHLIB_SOVERSION): Rename from
+ SHLIB_MINOR.
+ (SHLIB_REVISION): Delete.
+ (SHLIB_VERSTRING): Update to compensate.
+ (SHLIB_SONAME): Just use one '.' in the name.
+
+2005-06-16 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ PR tree-optimization/22018
+ * tree-vrp.c (vrp_int_const_binop): Overhaul handling of overflow.
+
+2005-06-16 Richard Henderson <rth@redhat.com>
+
+ PR tree-opt/22035
+ * builtins.c (fold_builtin_complex_mul): Remove.
+ (fold_builtin_complex_div): Remove.
+ (fold_builtin_1): Don't call them.
+ * fold-const.c (fold_complex_add, fold_complex_mult_parts,
+ fold_complex_mult, fold_complex_div_parts, fold_complex_div): Remove.
+ (fold_binary): Don't call them. Don't expand complex comparisons to
+ elementary comparisons.
+ * tree-complex.c (init_dont_simulate_again): Enhance search for
+ stmts that require decomposition.
+ (complex_visit_stmt): Handle RETURN_EXPR properly.
+ (create_components): Handle no referenced variables properly.
+ * tree.h (fold_complex_mult_parts): Remove.
+ (fold_complex_div_parts): Remove.
+
+2005-06-16 Richard Guenther <rguenth@gcc.gnu.org>
+
+ * doc/extend.texi: Document sseregparm target attribute.
+ Clarify fastcall and regparm documentation.
+ * config/i386/i386.h: Adjust float_in_sse documentation.
+ * config/i386/i386.c: Add new target attribute sseregparm.
+ (ix86_handle_cdecl_attribute, ix86_handle_regparm_attribute):
+ Merge into ...
+ (ix86_handle_cconv_attribute): ... here. Also handle
+ sseregparm attribute.
+ (ix86_comp_type_attributes): Compare sseregparm attributes.
+ (ix86_function_sseregparm): New function, split out from ...
+ (init_cumulative_args): ... here. Use to decide use
+ of SSE registers and error in case of missing support.
+ (ix86_value_regno): Likewise.
+ (function_arg_advance): Do not bail out for DFmode if we need
+ to pass doubles in registers.
+ (function_arg): Likewise.
+
+2005-06-16 Paolo Bonzini <bonzini@gnu.org>
+ Daniel Jacobowitz <dan@codesourcery.com>
+ Alan Modra <amodra.bigpond.net.au>
+
+ * configure.ac (gcc_version): Set near the beginning.
+ (as, ld, nm): Do not link in-tree tools. Set gcc_cv_* if tools are
+ found in the tree. Use gcc_AC_PROG to find the tools in the system.
+ (objdump): Do not look for it.
+ * Makefile.in (NM_FOR_TARGET): Point to ./nm
+ (ORIGINAL_AS_FOR_TARGET, ORIGINAL_LD_FOR_TARGET,
+ ORIGINAL_NM_FOR_TARGET): Substitute from autoconf.
+ (as, ld, nm): New rules.
+ (libgcc.mk): Depend on them.
+ * aclocal.m4 (gcc_AC_TOOL_DIRS, gcc_AC_CHECK_TOOL,
+ gcc_AC_BUILD_EXEEXT): New.
+ (gcc_AC_CHECK_PROG_VER): Use gcc_AC_BUILD_EXEEXT.
+ * configure: Regenerate.
+
+2005-06-16 Jan Hubicka <jh@suse.cz>
+
+ * basic-block.h (rtl_bb_info): Break out head_, end_,
+ global_live_at_start, global_live_at_end from ...
+ (basic_block_def): ... here; update all references
+ (BB_RTL): New flag.
+ (init_rtl_bb_info): Declare.
+ * cfgexpand.c (expand_gimple_basic_block): Init bb info, set BB_RTL
+ flag.
+ * cfgrtl.c: Include ggc.h
+ (create_basic_block_structure): Init bb info.
+ (rtl_verify_flow_info_1): Check BB_RTL flag and rtl_bb_info pointer.
+ (init_rtl_bb_info): New function.
+ (rtl_merge_block, cfglayout_merge_block): Copy global_live_at_end here.
+ * cfghooks.c (merge_block): Do not copy global_live_at_end here.
+ * cfg.c (clear_bb_flags): Skip BB_RTL flag.
+ (dump_flow_info): Gueard global_live_* dumping.
+
+ * Makefile.in (cfg.o): Add new dependencies.
+ * basic-block.h (reorder_block_def): Kill
+ original/copy/duplicated/copy_number fields.
+ (BB_DUPLICATED): New flag.
+ (initialize_original_copy_tables, free_original_copy_tables,
+ set_bb_original, get_bb_original, set_bb_copy, get_bb_copy): New.
+ * cfg.c: Include hashtab.h and alloc-pool.h
+ (bb_original, bb_copy, original_copy_bb_pool): New static vars.
+ (htab_bb_copy_original_entry): New struct.
+ (bb_copy_original_hash, bb_copy_original_eq): New static functions.
+ (initialize_original_copy_tables, free_original_copy_tables,
+ set_bb_original, get_bb_original, set_bb_copy, get_bb_copy): New
+ global functions.
+ * cfghooks.c (duplicate_block): Update original/copy handling.
+ * cfglayout.c (fixup_reorder_chain): Likewise.
+ (cfg_layout_initialize): Initialize orignal_copy tables.
+ (cfg_layout_finalize): FInalize original_copy tables.
+ (can_copy_bbs_p): Use BB_DUPLICATED flag.
+ (copy_bbs): Likewise.
+ * cfgloopmanip.c (update-single_exits_after_duplication): Likewise.
+ (duplicate_loop_to_header_edge): Likewise; update handling of
+ copy_number.
+ (loop_version): Likewise.
+ * dominance.c (get_dominated_by_region): Use BB_DUPLICATED_FLAG.
+ * except.c (expand_resx_expr): Check that reg->resume is not set.
+ * loop-unroll.c (unroll_loop_constant_iterations,
+ unroll_loop_runtime_iterations, apply_opt_in_copies): Update
+ copy/original handling.
+ * loop-unwitch.c (unswitch_loop): Likewise.
+ * tree-cfg.c (create_bb): Do not initialize RBI.
+ (disband_implicit_edges): Do not kill RBI.
+ (add_phi_args_after_copy_bb): Use new original/copy mapping.
+ (add_phi_args_after_copy): Use BB_DUPLICATED flag.
+ (tree_duplicate_sese_region): Update original/copy handling.
+ * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Likewise.
+ * tree-ssa-loop-manip.c (copy_phi_node_args): Likewise.
+ * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Likewise.
+
+2005-06-15 Andrew Pinski <pinskia@physics.uc.edu>
+
+ PR tree-opt/21923
+ * tree-ssa.c (tree_ssa_useless_type_conversion_1): Conversions between
+ integer types whos ranges are different are not useless.
+
2005-06-15 Andrew Pinski <pinskia@physics.uc.edu>
PR tree-opt/22024
2005-05-17 Paolo Bonzini <bonzini@gnu.org>
- * tree-ssa-math-opts.c: New file.
-
-2005-05-17 Paolo Bonzini <bonzini@gnu.org>
-
* Makefile.in: Add tree-ssa-math-opts.c.
* expr.c (expand_expr_real_1) <case RDIV_EXPR>: Never emit as a*(1/b).
* fold-const.c (distribute_real_division): New.