OSDN Git Service

* Makefile.in: Fix tree-cfgcleanup.c dependencies.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 2c98836..767fd7c 100644 (file)
@@ -1,3 +1,299 @@
+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.