OSDN Git Service

* gcc.dg/vect/vect-reduc-1.c: Add cleanup-tree-dump.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 44fbfdb..6e03eef 100644 (file)
@@ -1,3 +1,924 @@
+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
+       * tree-ssa-reassoc.c (init_reassoc): Also give chain decl a distint
+       rank.
+
+2005-06-15  Diego Novillo  <dnovillo@redhat.com>
+
+       * tree-ssa-structalias.c (dump_solution_for_var): Reformat
+       output.
+       (dump_sa_points_to_info): Make extern.
+       (debug_sa_points_to_info): New.
+       * tree-ssa-structalias.h (TREE_SSA_STRUCTALIAS_H): Rename from
+       TREE_ALIAS_COMMON.
+       (dump_sa_points_to_info): Declare.
+       (debug_sa_points_to_info): Declare.
+
+2005-06-15  Joseph S. Myers  <joseph@codesourcery.com>
+
+       * c-tree.h (default_function_array_conversion): Declare.
+       * c-typeck.c (default_function_array_conversion): Export.  Correct
+       comment.
+       (default_conversion): Do not call
+       default_function_array_conversion.  Do not allow FUNCTION_TYPE.
+       (build_function_call): Call default_function_array_conversion on
+       the function.
+       (convert_arguments): Do not call it on the function arguments.
+       (build_unary_op): Do not allow ARRAY_TYPE or FUNCTION_TYPE for
+       TRUTH_NOT_EXPR.  Call default_function_array_conversion for taking
+       address of ARRAY_REF.
+       (build_compound_expr): Do not call
+       default_function_array_conversion.
+       (build_c_cast): Do not call default_function_array_conversion.
+       (convert_for_assignment): Do not call default_conversion.
+       (digest_init): Call default_function_array_conversion to convert
+       string constants and compound literals to pointers, but not
+       otherwise.
+       (output_init_element): Likewise.
+       (build_asm_expr): Do not call default_function_array_conversion.
+       (c_process_expr_stmt): Likewise.
+       (c_objc_common_truthvalue_conversion): Likewise.  Do not allow
+       FUNCTION_TYPE.
+       * c-parser.c (c_parser_expression_conv): New.
+       (c_parser_asm_operands, c_parser_expr_list): Add convert_p
+       argument.  All callers changed.  Call
+       default_function_array_conversion if convert_p.
+       (c_parser_initializer, c_parser_initval): Call
+       default_function_array_conversion except for string constants and
+       compound literals.
+       (c_parser_initelt): Call default_function_array_conversion for
+       ObjC expression received.
+       (c_parser_statement_after_labels): Call c_parser_expression_conv
+       for return and expression statements.
+       (c_parser_paren_condition, c_parser_for_statement,
+       c_parser_conditional_expression): Call c_parser_expression_conv.
+       (c_parser_expr_no_commas, c_parser_conditional_expression,
+       c_parser_binary_expression, c_parser_cast_expression,
+       c_parser_unary_expression): Call
+       default_function_array_conversion.
+
+2005-06-15  Diego Novillo  <dnovillo@redhat.com>
+
+       * tree-vrp.c (vrp_int_const_binop): Do not handle MAX_EXPR
+       when the result overflows.
+
+2005-06-15  David Ung  <davidu@mips.com>
+
+       * config/mips/mips.c (mips_rtx_cost_data): Add cost for 4kc, 4kp,
+       24k and 24kx.
+       
+2005-06-15  Richard Sandiford  <richard@codesourcery.com>
+
+        * doc/invoke.texi (-mips16): Fix typo.
+
+2005-06-15  David Ung  <davidu@mips.com>
+
+       * config/mips/mips.h (GENERATE_MIPS16E): New definition.
+       * config/mips/mips.md (zero_extend<SHORT:mode><GPR:mode>2):
+       Changed expand condition to exclude generating of "and" if
+       GENERATE_MIPS16E is true.
+       (*zero_extend<SHORT:mode><GPR:mode>2_mips16e): New pattern for
+       matching mips16e zeb/zeh.
+       (*extend<SHORT:mode><GPR:mode>2_mips16e): New pattern for matching
+       mips16e seb/seh. 
+       (*extend<SHORT:mode><GPR:mode>2): Disable this pattern for
+       GENERATE_MIPS16E. 
+        * doc/invoke.texi (MIPS Options): Add comment to -mips16
+       indicating MIPS16e ASE is used if targetting for MIPS32 or MIPS64.
+       
+2005-06-15  Diego Novillo  <dnovillo@redhat.com>
+
+       PR 22018
+       * tree-vrp.c (vrp_int_const_binop): New.
+       (extract_range_from_binary_expr): Call it.
+       Unify handling division and multiplication.
+
+2005-06-15  Aldy Hernandez  <aldyh@redhat.com>
+
+       * c-common.h (same_scalar_type_ignoring_signedness): Protoize.
+
+       * c-common.c (same_scalar_type_ignoring_signedness): New.
+
+       * c-typeck.c (build_binary_op): Check compatability of vector
+       types.  Move error report after switch.
+       Do not clobber code[01] on *_DIV_EXPR case.
+
+       * testsuite/gcc.dg/simd-1.c: Update error messages.
+       * testsuite/gcc.dg/simd-1b.c: Re-enable tests.  Update error
+       messages.
+       * testsuite/gcc.dg/simd-2.c: Update error messages.
+       * testsuite/gcc.dg/simd-4.c: New.
+
+2005-06-15  Bernd Schmidt  <bernd.schmidt@analog.com>
+
+       * Makefile.in (local-alloc.o): Depend on $(GGC_H) and reload.h.
+       * local-alloc.c: Include "ggc.h" and "reload.h".
+       (struct equivalence): New member is_arg_equivalence.
+       (local_alloc): Always call update_equiv_regs.
+       (update_equiv_regs): Allocate reg_equiv_init; set reg_equiv_init_size.
+       Detect equivalences made by stores to memory in a second pass.
+       Return early if not optimizing.
+       Initialize reg_equiv_init for all equivalences; treat equivalences for
+       REG_EQUIV notes existing before this pass specially.
+       (no_equiv): Don't clear reg_equiv_init or remove notes if the
+       is_arg_equivalence field is set.
+       * reload.h (reg_equiv_init, reg_equiv_init_size): Declare.
+       * reload1.c (reg_equiv_init): No longer static.
+       (reg_equiv_init_size): New variable.
+       (reload): Don't allocate reg_equiv_init; don't free it when done but
+       clear it.
+       Restructure equivalence set up code not to set reg_equiv_init, but to
+       clear it when we can't use an equivalence.
+       Undo change disabling equivalences for MEM_READONLY_P memrefs.
+       Dump equivalencing insns to dump_file.
+
+2005-06-14  Richard Sandiford  <richard@codesourcery.com>
+
+       * config/mips/mips.c (machine_function): Add varargs_size field.
+       (mips_setup_incoming_varargs): Store the amount of extra stack space
+       there rather than in *pretend_size.  When saving registers, always
+       expect virtual_incoming_args_rtx to point to the start of the
+       pretend arguments.
+       (mips_va_start): Remove alignment hack.  Handle all
+       !EABI_FLOAT_VARARGS_P cases in the same way.
+       (compute_frame_size): Handle varargs_size.  Remove the redundant
+       !TARGET_OLDABI condition in the handling of pretend_args_size.
+       (mips_initial_elimination_offset): Remove the now-redundant check
+       of TARGET_NEWABI.
+
+2005-06-14  Jeff Law  <law@redhat.com>
+
+       * tree-vrp.c (local_fold): Remove.
+       (simplify_using_ranges): Use fold_convert, not local_fold.  Tweak
+       DIV/MOD case slightly for readability.
+
+2005-06-14  Frank Ch. Eigler  <fche@redhat.com>
+
+       PR mudflap/21023
+       * tree-mudflap.c (mudflap_finish_file): Exclude non-public
+       rather than static objects (!) from libmudflap registration.
+
+2005-06-14  Richard Sandiford  <richard@codesourcery.com>
+
+       * opt-functions.awk (global_state_p, needs_state_p, static_var): New.
+       (var_ref): Take the option's flags as a second parameter.  Check
+       static_var.
+       * optc-gen.awk: Declare local state variables.  Pass flags to var_ref.
+
+2005-06-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
+
+       PR target/20301
+       * config/sparc/sol2.h (ASM_GENERATE_INTERNAL_LABEL): Emit
+       unsigned index numbers.
+
+2005-06-13  Geoffrey Keating  <geoffk@apple.com>
+
+       * Makefile.in (install-man): Doesn't really depend on installdirs.
+       (various rules for installing manpages): Do depend on installdirs.
+
+2005-06-14  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * unwind-dw2-fde-darwin.c (examine_objects): Fix aliasing in
+       read_encoded_value_with_base call.
+       * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Likewise.
+       * unwind-dw2-fde.c (_Unwind_Find_FDE): Likewise.
+       * unwind-dw2.c (extract_cie_info): Fix aliasing in
+       read_encoded_value call.
+       (execute_cfa_program, uw_frame_state_for): Likewise.
+
+2005-06-13  Roger Sayle  <roger@eyesopen.com>
+
+       PR rtl-optimization/22053
+       * reg-stack.c (compensate_edge): Correct mistake in the assertion
+       checking of EDGE_ABNORMAL_CALL edges; complex return values can
+       result in the top two stack slots, st(0) and st(1), being live.
+
+2005-06-13  Jeff Law  <law@redhat.com>
+
+       * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): No longer
+       simplify DIV, MOD or ABS expressions using VRP information.
+       Remove WALK_DATA parameter.  Prototype and all callers updated.
+       (eliminate_redundant_computations): Remove WALK_DATA parameter.
+       Prototype and all callers updated.
+       (optimize_stmt): WALK_DATA parameter is now unused.
+
+       * tree-vrp.c (local_fold): New function.  Like fold, but
+       strips useless type conversions in the result.
+       (simplify_using_ranges): New function, largely cribbed from
+       tree-ssa-dom.c::simplify_rhs_and_lookup_avail_expr.
+       (vrp_finalize): Call simplify_using_ranges.
+
+2005-06-13  Mark Mitchell  <mark@codesourcery.com>
+
+       * config/i386/x86-64.h (ASM_SPEC): Explicitly pass --64 to the
+       assembler in 64-bit mode.
+
+2005-06-13  David Edelsohn  <edelsohn@gnu.org>
+
+       Revert scc_operand patch.
+       * config/rs6000/predicates.md (scc_operand): Delete.
+       * config/rs6000/rs6000.md (scc_operand): Change to scc_eq_operand.
+
+2005-06-13  Jakub Jelinek  <jakub@redhat.com>
+
+       * trans-expr.c (gfc_conv_function_call): Return int instead of
+       void.  Use a local variable for has_alternate_specifier and
+       return it.  Avoid modification of function type's return value
+       in place, since it may be shared.
+       * trans.h (has_alternate_specifier): Remove.
+       (gfc_conv_function_call): Change return type.
+       * trans-stmt.c (has_alternate_specifier): Remove.
+       (gfc_trans_call): Add a local has_alternate_specifier variable,
+       set it from gfc_conv_function_call return value.
+
+2005-06-13  Zdenek Dvorak  <dvorakz@suse.cz>
+
+       PR middle-end/21985
+       * fold-const.c (split_address_to_core_and_offset): Always return
+       the address of the base object.
+
+2005-06-13  Bernd Schmidt  <bernd.schmidt@analog.com>
+
+       * doc/invoke.texi (Blackfin Options): Document -mlong-calls.
+
+2005-06-12  Richard Henderson  <rth@redhat.com>
+
+       PR tree-opt/21994
+       * tree-complex.c (update_complex_components_on_edge): New.
+       (update_parameter_components): Use it.
+       (update_phi_components): Likewise.
+       (expand_complex_move): Likewise for is_ctrl_altering_stmt.
+
+2005-06-12  James A. Morrison  <phython@gcc.gnu.org>
+
+       PR tree-optimization/14796
+       * fold-const (fold_binary): Transform (X << C) >> C into X & (-1>>C)
+       for unsigned types.
+
+2005-06-12  Kazu Hirata  <kazu@codesourcery.com>
+
+       * cgraphunit.c, tree-ssa-loop-ivopts.c,
+       tree-ssa-structalias.c, tree-vectorizer.c, tree-vectorizer.h,
+       config/sparc/sparc.c: Fix comment typos.
+
+2005-06-12  Richard Earnshaw  <richard.earnshaw@arm.com>
+
+       * arm/ieee754-df.s (aeabi_dcmpeq, aeabi_dcmplt, aeabi_dcmple)
+       (aeabi_dcmpge, aeabi_dcmpgt): Maintain 8-byte stack alignment.
+       * arm/ieee754-sf.s (aeabi_l2f, aeabi_fcmpeq, aeabi_fcmplt)
+       (aeabi_fcmple, aeabi_fcmpge, aeabi_fcmpgt): Likewise.
+
+2005-06-12  James A. Morrison  <phython@gcc.gnu.org>
+
+       PR tree-optimization/14796
+       * fold-const.c (fold_binary): Transform (A >> C) << C into
+       one BIT_AND_EXPR.
+       <shift>: Transform (A OP c1) OP c2 into A OP (c1 + c2).
+
+2005-06-11  Geoffrey Keating  <geoffk@apple.com>
+
+       * config/rs6000/predicates.md (reg_or_arith_cint_operand): Delete.
+       (reg_or_add_cint_operand): Rename from reg_or_add_cint64_operand.
+       Handle SImode.
+       (reg_or_sub_cint_operand): Likewise.
+       (mask_operand): Handle DImode.
+       (mask64_operand): Delete.
+       (and64_operand): Delete.
+       * config/rs6000/rs6000.c (num_insns_constant): Use mask_operand
+       instead of mask64_operand.
+       (print_operand): Likewise.
+       (rs6000_rtx_costs): Use mask_operand and reg_or_add_cint_operand and
+       reg_or_sub_cint_operand instead of *64_* variants.
+       * config/rs6000/rs6000.h (EXTRA_CONSTRAINT): Use mask_operand
+       instead of mask64_operand.
+       * config/rs6000/rs6000.md: Use mask_operand and and_operand instead
+       of *64_* variants.
+       (FP): New.
+       (add_op2): Delete.
+       (add<mode>3): Use reg_or_add_cint_operand.
+       (sub_op2): Delete.
+       (sub<mode>3): Use reg_or_sub_cint_operand.
+       (udiv<mode>3, div<mode>3, div<mode>3_no_mq, mod<mode>3,
+       mov<mode>_internal2, mov<mode>, cmp<mode>, cmp<mode>,
+       cmp<mode>_internal1, indirect_jump<mode>, ctr<mode>,
+       ctr<mode>_internal1, ctr<mode>_internal2, ctr<mode>_internal5,
+       ctr<mode>_internal6, save_fpregs_<mode>, return_internal_<mode>,
+       return_and_restore_fpregs_<mode>, eh_set_lr_<mode>,
+       various unnamed patterns): New.
+       (udivsi3, divsi3, divsi3_no_mq, modsi3, movsi_internal2, movsi,
+       cmpsi, cmpsi_internal1, indirect_jumpsi, ctrsi, ctrsi_internal1,
+       ctrsi_internal2, ctrsi_internal5, ctrsi_internal6, save_fpregs_si,
+       return_internal_si, return_and_restore_fpregs_si, eh_set_lr_si,
+       udivdi3, divdi3, divdi3_no_mq, moddi3, movdi_internal2, movdi,
+       cmpdi, cmpdi_internal1, indirect_jumpdi, ctrdi, ctrdi_internal1,
+       ctrdi_internal2, ctrdi_internal5, ctrdi_internal6, save_fpregs_di,
+       return_internal_di, return_and_restore_fpregs_di, eh_set_lr_di,
+       movhi, movqi, cmpsf, cmpdf, cmptf, various unnamed patterns):
+       Delete.
+
+2005-06-11  Gabriel Dos Reis  <gdr@integrable-solutions.net>
+
+       * rtl.h (to_rtx_code): Remove.
+       * machmode.h (to_machine_mode): Likewise.
+       * read-rtl.c (apply_mode_macro): Replace to_machine_mode with
+       explicit cast.
+       (apply_mode_maps): Likewise.
+       (read_rtx_1): Likewise.
+       (apply_code_macro): Replace to to_rtx_code with explicit cast.
+       (check_code_macro): Likewise.
+       (read_rtx_1): Likewise.
+
+2005-06-11  Gabriel Dos Reis  <gdr@integrable-solutions.net>
+
+       * c-typeck.c (convert_for_assignment): Avoid checking
+       OPT_Wc___compat, as it is always true.
+
+2005-06-11  David Edelsohn  <edelsohn@gnu.org>
+
+       * config/rs6000/rs6000.md (eq<mode>_compare): Restrict to Pmode.
+
+2005-06-11  Daniel Berlin  <dberlin@dberlin.org>
+
+       Fix PR tree-optimization/22005
+       Fix PR tree-optimization/22025
+       
+       * tree-ssa-structalias.c (struct variable_info): Add has_union
+       member.
+       (create_variable_info_for):  Mark variables containing unions.
+       Don't sort the field stack if notokay is true.
+       (find_what_p_points_to): Convert variables containing unions back
+       to their SFT's if necessary.
+       
+2005-06-11  Daniel Berlin  <dberlin@dberlin.org>
+
+       * lambda-code.c (replace_uses_equiv_to_x_with_y): Verify the step
+       is an INTEGER_CST before calling int_cst_value.
+
+2005-06-10  Uros Bizjak  <uros@kss-loka.si>
+
+       PR target/21981
+       * config/i386/i386.c (ix86_function_value_regno_p): Return true
+       for FIRST_MMX_REG if TARGET_MMX.
+       (ix86_return_in_memory): Return 1 for MMX/3dNow vectors. Delete
+       wrong comment.
+       (ix86_struct_value_rtx): Emit warning for MMX ABI violations.
+       (ix86_value_regno): Return FIRST_MMX_REG for MMX vector modes.
+
+2005-06-10  Daniel Berlin  <dberlin@dberlin.org>
+
+       * lambda-code.c (replace_uses_equiv_to_x_with_y): Check step
+       and access function against chrec_dont_know.
+         
+2005-06-10  Daniel Berlin  <dberlin@dberlin.org>
+
+       * lambda-code.c (replace_uses_of_x_with_y): Renamed and rewritten
+       slightly.
+       (exit_phi_for_loop_p): New function.
+       (can_put_in_inner_loop): Ditto.
+       (can_convert_to_perfect_nest): Ditto.
+       (perfect_nestify): Create iv with right type.
+       Rewrite statements in correct order.    
+
+2005-06-10  Keith Besaw  <kbesaw@us.ibm.com>
+
+       * tree-ssa-alias.c (new_type_alias): Use existing type
+       tag if VAR has just one in its may_aliases list.
+
+2005-06-10  Fariborz Jahanian <fjahanian@apple.com>
+
+       * rs6000/predicates.md (scc_operand): New.
+       * rs6000/rs6000.md : Use scc_operand for eq:SI compares.
+
+2005-06-10  Dorit Nuzman  <dorit@il.ibm.com>
+
+       * tree-vect-analyze.c (vect_analyze_data_ref_dependence): DRs whose
+       dependence-distance modulo VF is 0 are recorded in the 
+       SAME_ALIGN_REFs VEC in each DR.
+       (vect_enhance_data_refs_alignment): Avoid 80 column overflow. The
+       alignment information of DRs that are in the SAME_ALIGN_REFs VEC of the
+       DR we want to peel for, is set to 0.
+       * tree-vect-transform.c (vect_do_peeling_for_loop_bound): Fix printout.
+       * tree-vectorizer.c (destroy_loop_vec_info): Free the SAME_ALIGN_REFs
+       VEC.
+       * tree-vectorizer.h (dr_p): New type. Defined to use the VEC API.
+       (_stmt_vec_info): Added new field same_align_refs.
+       (STMT_VINFO_SAME_ALIGN_REFS): New macro.
+
+2005-06-10  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * vec.h (VEC_safe_grow): Append MEM_STAT_INFO.
+
+2005-06-10  Alan Modra  <amodra@bigpond.net.au>
+
+       * config/rs6000/linux.h (NO_PROFILE_COUNTERS): Define.
+       * config/rs6000/linux64.h (NO_PROFILE_COUNTERS): Define as 1.
+       * config/rs6000/rs6000.c (output_function_profiler): Obey
+       NO_PROFILE_COUNTERS.  Handle TARGET_SECURE_PLT.  Use "bcl 20,31"
+       for -fPIC.  Delete save_lr and substitute its value into strings.
+
+2005-06-09  Dale Johannesen  <dalej@apple.com>
+
+       * config/i386/i386.c (optimization_options):  Make -fno-math-errno
+       the default on Darwin.
+       * config/rs6000/rs6000.c (optimization_options):  Ditto.
+       * doc/invoke.texi (-fno-math-errno): Document.
+
+2005-06-09  Dale Johannesen  <dalej@apple.com>
+
+       * config/rs6000/rs6000.c (TARGET_INSN_VALID_WITHIN_DOLOOP):
+       Change to TARGET_INVALID_WITHIN_DOLOOP.
+
+2005-06-09  David Edelsohn  <edelsohn@gnu.org>
+
+       * config/rs6000/rs6000.md (eq): Convert to define_insn_and_split.
+       * config/rs6000/predicates.md (scc_eq_operand): New.
+
+2005-06-09  Kaz Kojima  <kkojima@gcc.gnu.org>
+
+       * config/sh/sh.md (mextr_rl): Set buffer size properly.
+       (*mextr_lr): Likewise.
+
+2005-06-09  Gabriel Dos Reis  <gdr@integrable-solutions.net>
+
+       PR c/21759
+       * c.opt (Wc++-compat): New.
+       * doc/invoke.texi (-Wc++-compat): Document.
+       * c-typeck.c (convert_for_assignment): Check for implicit
+       conversion void* -> T*.
+
+2005-06-09  Gabriel Dos Reis  <gdr@integrable-solutions.edu>
+
+       * machmode.h (to_machine_mode): New.
+       * rtl.h (to_rtx_code): Likewise.
+       * read-rtl.c (apply_mode_macro): Convert mode to machine_mode.
+       (print_c_condition): Convert return value of htab_find().
+       (apply_code_macro): Add explicit cast when convertin to enums.
+       (apply_mode_maps): Likewise.
+       (check_code_macro): Likewise.
+       (read_rtx_1): Likewise.
+
+2005-06-09  Richard Henderson  <rth@redhat.com>
+
+       * config/ia64/ia64.c (update_set_flags): Just return for IF_THEN_ELSE.
+       Use SCALAR_FLOAT_MODE_P.
+       * config/ia64/vect.md (vcondv2sf): Remove code check on comparison.
+       (fselect): Rename from fpcmp; use %F.
+       (fpcmp): New.
+
+2005-06-09  Jan Hubicka  <jh@suse.cz>
+
+       * cgraphunit.c (cgraph_create_edges): Do not walk BLOCK; finalize
+       local statics when doing unit-at-a-time.
+       (cgraph_varpool_assemble_pending_decls): Output debug info.
+       * dwarf2out.c (decls_for_scope): Skip local statics.
+       (dwarf2out_decl): Handle local statics.
+       * passes.c (rest_of_decl_compilation): Do not differentiate
+       local and global statics in unit-at-a-time.
+       * tree-inline.c (remap_decls): Put local static into
+       unexpanded_vars_list rather than introducing duplicated VAR_DECL
+       node.
+
+2005-06-09  Daniel Berlin  <dberlin@dberlin.org>
+
+       * config/rs6000/rs6000.c: (rs6000_insn_valid_within_doloop): Fix
+       prototype.
+
+2005-06-08  Daniel Berlin  <dberlin@dberlin.org>
+
+       * Makefile.in (OBJS-common): Add tree-ssa-structalias.o.
+       * tree-flow.h (find_what_p_points_to): Add prototype.
+       (push_fields_onto_fieldstack): Ditto.
+       (sort_fieldstack): Ditto.
+       * tree-optimize.c (init_tree_optimization_passes): Add
+       pass_build_pta and pass_del_pta.
+       * tree-pass.h (pass_build_pta): New structure.
+       (pass_del_pta): Ditto.
+       * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Disambiguate
+       using new alias analyzer.
+       (push_fields_onto_fieldstack): Removed from here.
+       (bitpos_of_field): Ditto.
+       (fieldoff_compare): Ditto.
+       * tree-ssa-structalias.c: New file.
+       * tree-ssa-structalias.h: Ditto.
+
+2005-06-09  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * c-typeck.c (build_c_cast): Check type punning on COMPONENT_REF
+       too.
+
+2005-06-09  Bernd Schmidt  <bernd.schmidt@analog.com>
+
+       * config/bfin/bfin.c (enum bfin_builtins): Moved here from...
+       * config/bfin/bfin.h (enum bfin_builtins): ... here.
+
+2005-06-09  Adrian Straetling  <straetling@de.ibm.com>
+
+       * target.h (insn_valid_within_doloop): Rename into
+       "invalid_within_doloop".  Change return type to "const char *".
+       Update Comment.
+       * targhooks.h (default_insn_valid_within_doloop): Rename into
+       "default_invalid_within_doloop". 
+       * targhooks.c (default_insn_valid_within_doloop): Likewise.
+       Update Comment.
+       * target-def.h (TARGET_INSN_VALID_WITHIN_DOLOOP): Rename target hook
+       into "TARGET_INVALID_WITHIN_DOLOOP". Default it to
+       "default_invalid_within_doloop".
+       * hooks.c (hook_constcharptr_rtx_null): New function.
+       (hook_bool_rtx_true): Remove.
+       * hooks.h (hook_constcharptr_rtx_null): Declare.
+       (hook_bool_rtx_true): Remove.
+       * loop-doloop.c (doloop_valid_p): Temporarily store return value of
+       "invalid_within_doloop" and print error message if non-null.
+       Update Comment.
+       * doc/tm.texi: Update documentation.
+       * config/s390/s390.c: Adjust to new hook name and new default hook.
+       * config/rs6000/rs6000.c: (rs6000_insn_valid_within_doloop): Rename
+       into "rs6000_invalid_within_doloop".
+       (rs6000_invalid_within_doloop): Change return type to "static const
+       char *" and replace return values.  Update Comment.
+
+2005-06-09  Bernd Schmidt  <bernd.schmidt@analog.com>
+
+       * config/bfin/bfin.opt (mlong-calls): New.
+       * config/bfin/predicates.md (call_insn_operand): Disallow SYMBOL_REF
+       if TARGET_LONG_CALLS.
+
+2005-06-09  Richard Henderson  <rth@redhat.com>
+
+       PR tree-opt/20610
+       * tree.h (DECL_COMPLEX_GIMPLE_REG_P): New.
+       (struct tree_decl): Add gimple_reg_flag.
+       * integrate.c (copy_decl_for_inlining): Copy it.
+       * gimplify.c (internal_get_tmp_var): Set it.
+       (gimplify_bind_expr): Likewise.
+       (gimplify_function_tree): Likewise.
+       (gimplify_modify_expr_complex_part): New.
+       (gimplify_modify_expr): Use it.
+       * tree-gimple.c (is_gimple_reg_type): Allow complex.
+       (is_gimple_reg): Allow complex with DECL_COMPLEX_GIMPLE_REG_P set.
+
+       * tree-complex.c (complex_lattice_t): New.
+       (complex_lattice_values, complex_variable_components): New.
+       (some_nonzerop, find_lattice_value, is_complex_reg,
+       init_parameter_lattice_values, init_dont_simulate_again, 
+       complex_visit_stmt, complex_visit_phi, create_components,
+       update_complex_components, update_parameter_components, 
+       update_phi_components, update_all_vops, expand_complex_move): New.
+       (extract_component): Handle INDIRECT_REF, COMPONENT_REF, ARRAY_REF,
+       SSA_NAME.
+       (update_complex_assignment): Use update_complex_components;
+       handle updates of return_expr properly.
+       (expand_complex_addition): Use complex lattice values.
+       (expand_complex_multiplication): Likewise.
+       (expand_complex_division): Likewise.
+       (expand_complex_libcall): Use update_complex_components.
+       (expand_complex_comparison): Use update_stmt.
+       (expand_complex_operations_1): Use expand_complex_move, retrieve
+       lattice values.
+       (tree_lower_complex): Compute lattice values.
+       (tree_lower_complex_O0): Duplicate from tree_lower_complex.
+       (pass_lower_complex_O0): Rename from pass_lower_complex.
+       (pass_lower_complex, gate_no_optimization): New.
+       * tree-optimize.c (init_tree_optimization_passes): Update for
+       complex pass changes.
+       * tree-pass.h (pass_lower_complex_O0): Declare.
+
+2005-06-08  Dale Johannesen  <dalej@apple.com>
+
+        * config/darwin.c (darwin_binds_local_p):  New.
+        * config/darwin-protos.h (darwin_binds_local_p):  Declare it.
+        * config/i386/i386.c (TARGET_BINDS_LOCAL_P):  Use it for TARGET_MACHO.
+        * config/rs6000/rs6000.c (rs6000_binds_local_p):  Remove.
+        (TARGET_BINDS_LOCAL_P):  Change it to darwin_binds_local_p.
+
+2005-06-08  Aldy Hernandez  <aldyh@redhat.com>
+
+        * config/rs6000/rs6000.h: Remove rs6000_long_double_size_string,
+        rs6000_isel, rs6000_spe, rs6000_alignment_string,
+        rs6000_sched_restricted_insns_priority_str,
+        rs6000_sched_restricted_insns_priority, rs6000_abi_string.
+
+2005-06-08  Zdenek Dvorak  <dvorakz@suse.cz>
+
+       * tree-ssa-address.c (addr_for_mem_ref): Use LAST_VIRTUAL_REGISTER
+       instead of FIRST_PSEUDO_REGISTER for creating pseudoregisters.
+       * tree-ssa-loop-ivopts.c (add_cost, multiply_by_cost,
+       multiplier_allowed_in_address_p, get_address_cost): Ditto.
+
+2005-06-08  Richard Henderson  <rth@redhat.com>
+
+       * config/ia64/ia64.h (NO_PROFILE_COUNTERS): New.
+       * config/ia64/ia64.c (ia64_output_function_profiler): Honor it.
+       Emit out3 load right after alloc.
+
+2005-06-08  Aldy Hernandez  <aldyh@redhat.com>
+
+       * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
+       rs6000_explicit_options.
+
+2005-06-08  Richard Henderson  <rth@redhat.com>
+
+       * config/ia64/ia64.h (FUNCTION_PROFILER): Move implementation ...
+       * config/ia64/ia64.c (ia64_output_function_profiler): ... here; add
+       unwind markup.
+       * config/ia64/ia64-protos.h (ia64_output_function_profiler): Declare.
+
+2005-06-08  Joseph S. Myers  <joseph@codesourcery.com>
+
+       * config/sol2-c.c (cmn_err_char_table): Allow width for %b
+       formats.
+
+2005-06-08  James A. Morrison  <phython@gcc.gnu.org>
+
+       PR target/20666
+       * config/sparc/sparc.c (sparc_fold_builtin): New function
+       (sparc_vis_mul8x16): New function.
+       (sparc_handle_vis_mul8x16): New function.
+       (TARGET_FOLD_BUILTIN): Define to sparc_fold_builtin.
+
 2005-06-08  David Edelsohn  <edelsohn@gnu.org>
 
        * config/rs6000/rs6000.md (call_indirect_nonlocal_aix32): Prefer
 
 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.