+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.