OSDN Git Service

PR 21959
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index ae7f2af..d8fdb6d 100644 (file)
+2005-06-27  Diego Novillo  <dnovillo@redhat.com>
+
+       PR 21959
+       * tree-ssa-loop-niter.c (scev_probably_wraps_p): Handle type
+       casts between unsigned and signed types with different size
+       or precision.
+
+2005-06-28  Jan Hubicka  <jh@suse.cz>
+
+       * tree-optimize.c (exercute_free_datastructures):
+       Do not disband implicit edges; do not attempt to build insn list;
+       do not free cfg annotations.
+       (execute_free_cfg_annotations); Disband implicit edges here;
+       free cfg annotations here too.
+       (pass_free_cfg_annotations); New pass.
+       (init_tree_optimization_passes); Add pass_free_cfg_annotations.
+       * tree-ssa-operands.c (free_ssa_operands); Recover; export.
+       * tree-ssa-operands.h (free_ssa_operands); declare.
+       * tree-ssa.c (delete_tree_ssa); Free SSA operand; mark stmt modified;
+       kill PHI nodes.
+       * tree-ssanames.c (release_defs): Kill addresses_taken.
+
+       * basic-block.h (basic_block_def): Kill rbi.
+       (reorder_block_def): Kill; Remove next field (replaced by aux);
+       move other fields to ...
+       (rtl_bb_info): ... here.
+       * bb-reorder.c (find_traces, rotate_loop, find_traces_1_round,
+       copy_bb, connect_traces, add_labels_and_missing_jumps
+       fix_up_fall_thru_edges, fix_crossing_conditional_branches,
+       duplicate_computed_gotos, partition_hot_cold_basic-blocks):
+       Update to new fields.
+       * cfg.c (initialize_bb_rbi): Kill.
+       * cfglayout.c (record_effective_endpoints, fixup_reorder_chain,
+       fixup_fallthru_exit_predecessor, cfg_layout_duplicate_bb): Update.
+       * cfgrtl.c (cfg_layout_create_basic_block): Do not initialize rbi.
+       (try_redirect_by_replacing_jump): Update rbi references.
+       (cfg_layout_split_block): Likewise.
+       (cfg_layout_delete_block): Likewise.
+       (cfg_layout_merge_blocks): Likewise.
+       * function.c (thread_prologue_and_epilogue_insns): Likewise.
+       * passes.c (rest_of_handle_sms): Likewise.
+       * tracer.c (seen, tail_duplicate, layout_superblocks): Likewise.
+
+2005-06-27  David Edelsohn  <edelsohn@gnu.org>
+
+       * config/rs6000/rs6000.c (rs6000_file_start): Note PPC405 erratum
+       in verbose_asm output.
+       * config/rs6000/rs6000.h (PPC405_ERRATUM77): Bracket with
+       CONFIG_PPC405CR.
+       * config.gcc (powerpc with_which): Define CONFIG_PPC405CR for
+       405cr.
+
+2005-06-27  Jakub Jelinek  <jakub@redhat.com>
+
+       * builtin-attrs.def (DEF_ATTR_FOR_INT): Add for 5 and 6.
+       (DEF_LIST_INT_INT): Add for 4,0, 4,5, 5,0, 5,6.
+       (ATTR_NOTHROW_NONNULL_4, ATTR_NOTHROW_NONNULL_5): Define.
+       (ATTR_FORMAT_PRINTF_4_0, ATTR_FORMAT_PRINTF_4_5,
+       ATTR_FORMAT_PRINTF_5_0, ATTR_FORMAT_PRINTF_5_6): Define.
+       * builtins.c: Include tree-flow.h.
+       (expand_builtin_mempcpy, expand_builtin_memmove): Comment fixes.
+       (expand_builtin_object_size, expand_builtin_memory_chk,
+       maybe_emit_chk_warning, maybe_emit_sprintf_chk_warning,
+       compute_object_offset, compute_builtin_object_size,
+       fold_builtin_object_size): New functions.
+       (expand_builtin): Handle BUILT_IN_OBJECT_SIZE and BUILT_IN_*_CHK.
+       (fold_builtin_1): Likewise.  Handle BUILT_IN_{,V}{,F}PRINTF
+       and BUILT_IN_{,F}PRINTF_UNLOCKED.
+       (fold_builtin_memory_chk, fold_builtin_stxcpy_chk,
+       fold_builtin_strncpy_chk, fold_builtin_strcat_chk,
+       fold_builtin_strncat_chk, fold_builtin_sprintf_chk,
+       fold_builtin_snprintf_chk, fold_builtin_printf, fold_builtin_fprintf):
+       New functions.
+       * builtins.def (BUILT_IN_OBJECT_SIZE, BUILT_IN_MEMCPY_CHK,
+       BUILT_IN_MEMMOVE_CHK, BUILT_IN_MEMPCPY_CHK, BUILT_IN_MEMSET_CHK,
+       BUILT_IN_STPCPY_CHK, BUILT_IN_STRCAT_CHK, BUILT_IN_STRCPY_CHK,
+       BUILT_IN_STRNCAT_CHK, BUILT_IN_STRNCPY_CHK, BUILT_IN_SNPRINTF_CHK,
+       BUILT_IN_SPRINTF_CHK, BUILT_IN_VSNPRINTF_CHK, BUILT_IN_VSPRINTF_CHK,
+       BUILT_IN_FPRINTF_CHK, BUILT_IN_PRINTF_CHK, BUILT_IN_VFPRINTF_CHK,
+       BUILT_IN_VPRINTF_CHK): New builtins.
+       * builtin-types.def (DEF_FUNCTION_TYPE_5, DEF_FUNCTION_TYPE_VAR_4):
+       Document.
+       (BT_FN_SIZE_CONST_PTR_INT, BT_FN_INT_INT_CONST_STRING_VALIST_ARG,
+       BT_FN_PTR_PTR_CONST_PTR_SIZE_SIZE, BT_FN_PTR_PTR_INT_SIZE_SIZE,
+       BT_FN_STRING_STRING_CONST_STRING_SIZE_SIZE,
+       BT_FN_INT_FILEPTR_INT_CONST_STRING_VALIST_ARG,
+       BT_FN_INT_STRING_INT_SIZE_CONST_STRING_VALIST_ARG,
+       BT_FN_INT_STRING_SIZE_INT_SIZE_CONST_STRING_VALIST_ARG,
+       BT_FN_INT_INT_CONST_STRING_VAR, BT_FN_INT_FILEPTR_INT_CONST_STRING_VAR,
+       BT_FN_INT_STRING_INT_SIZE_CONST_STRING_VAR,
+       BT_FN_INT_STRING_SIZE_INT_SIZE_CONST_STRING_VAR): New types.
+       * c-common.c (DEF_FUNCTION_TYPE_5, DEF_FUNCTION_TYPE_6,
+       DEF_FUNCTION_TYPE_VAR_4, DEF_FUNCTION_TYPE_VAR_5): Define.
+       * Makefile.in (OBJS-common): Add tree-object-size.o.
+       (tree-object-size.o): Add dependencies.
+       * tree-pass.h (pass_object_sizes): Add.
+       * tree-optimize.c (init_tree_optimization_passes): Add
+       pass_object_sizes.
+       * tree-object-size.c: New file.
+       * tree.h (fold_builtin_memory_chk, fold_builtin_stxcpy_chk,
+       fold_builtin_strncpy_chk, fold_builtin_snprintf_chk,
+       compute_builtin_object_size, init_object_sizes, fini_object_sizes):
+       New prototypes.
+       * tree-ssa-ccp.c (get_strlen): Rename to ...
+       (get_maxval_strlen): ...this function.  Handle also computing of maximum
+       string length and maximum integral value.
+       (ccp_fold_builtin): Handle BUILT_IN_*_CHK.  Use get_maxval_strlen
+       instead of get_strlen.  Pass CALLEE and ARGLIST variables to the
+       folding functions instead of computing them again.
+       (execute_fold_all_builtins): Retry ccp_fold_builtin if a builtin changed
+       into some other builtin.
+       * doc/extend.texi (Object Size Checking): Document.
+
+       * regrename.c (copy_value): Fix comment.
+
+       * toplev.c (process_options): Use if (FRAME_GROWS_DOWNWARD)
+       instead of preprocessor conditionals.
+
+       * targhooks.c (default_hidden_stack_protect_fail): Fall back to
+       default_external_stack_protect_fail if visibility is not supported
+       or not flag_pic.
+       * config/i386/i386.c (ix86_stack_protect_fail): New function.
+       (TARGET_STACK_PROTECT_FAIL): Define.
+       * config/i386/i386.md (stack_protect_si): Change CLOBBER into
+       SET to zero.
+       (stack_protect_di): Likewise.  Use %k2 instead of %2 to avoid
+       invalid instruction xorl %rax, %rax.
+
+2005-06-27  Richard Henderson  <rth@redhat.com>
+
+       * c-cppbuiltin.c (c_cpp_builtins): Add __SSP_ALL__ and __SSP__.
+       * cfgexpand.c: Include params.h.
+       (has_protected_decls, has_short_buffer): New.
+       (expand_stack_vars): Take a predicate to determine what to expand.
+       (defer_stack_allocation): True when flag_stack_protect on.
+       (SPCT_HAS_LARGE_CHAR_ARRAY, SPCT_HAS_SMALL_CHAR_ARRAY): New.
+       (SPCT_HAS_ARRAY, SPCT_HAS_AGGREGATE): New.
+       (stack_protect_classify_type, stack_protect_decl_phase): New.
+       (stack_protect_decl_phase_1, stack_protect_decl_phase_2): New.
+       (add_stack_protection_conflicts, create_stack_guard): New.
+       (expand_used_vars): Add stack protection logic.
+       (tree_expand_cfg): Likewise.
+       * common.opt (Wstack-protector): New.
+       (fstack-protector, fstack-protector-all): New.
+       * function.c: Include predict.h.
+       (assign_parm_adjust_stack_rtl): Zap stack_parm when stack protect
+       wants to copy the parameter into the stack frame.
+       (stack_protect_prologue, stack_protect_epilogue): New.
+       (expand_function_end): Call stack_protect_epilogue.  Do 
+       sjlj_emit_function_exit_after after naked_return_label.
+       * function.h (struct function): Add stack_protect_guard.
+       * params.def (PARAM_SSP_BUFFER_SIZE): New.
+       * toplev.c (process_options): Disable flag_stack_protect and/or
+       warn_stack_protect based on FRAME_GROWS_DOWNWARD.
+       * tree.h (stack_protect_prologue): Declare.
+
+       * target-def.h (TARGET_STACK_PROTECT_GUARD): New.
+       (TARGET_STACK_PROTECT_FAIL): New.
+       (TARGET_INITIALIZER): Add them.
+       * target.h (struct gcc_target): Add stack_protect_guard and
+       stack_protect_fail.
+       * targhooks.c: Include ggc.h, gty header.
+       (stack_chk_guard_decl, default_stack_protect_guard): New.
+       (stack_chk_fail_decl, default_external_stack_protect_fail): New.
+       (default_hidden_stack_protect_fail): New.
+       * targhooks.h (default_stack_protect_guard): Declare.
+       (default_external_stack_protect_fail): Declare.
+       (default_hidden_stack_protect_fail): Declare.
+       * config/i386/i386.c (TARGET_STACK_PROTECT_FAIL): New.
+       * config/i386/i386.md (UNSPEC_SP_SET, UNSPEC_SP_TEST): New.
+       (trap): Use ud2.
+       (conditional_trap, conditional_trap_1): Remove.
+       (stack_protect_set, stack_protect_set_si, stack_protect_set_di): New.
+       (stack_protect_test, stack_protect_test_si, stack_protect_test_di): New.
+       * doc/md.texi (stack_protect_set, stack_protect_test): New.
+       * doc/tm.texi (TARGET_STACK_PROTECT_GUARD): New.
+       (TARGET_STACK_PROTECT_FAIL): New.
+
+       * libgcc-std.ver (GCC_4.1.0): New.
+       * libgcc.h (__stack_chk_guard): Declare.
+       (__stack_chk_fail, __stack_chk_fail_local): Declare.
+       * libgcc2.c (L_stack_chk, L_stack_chk_local): New.
+       * mklibgcc.in (lib2funcs): Add them.
+
+2005-06-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       PR c/21911
+       * c-common.c (check_function_sentinel): Pass in named argument
+       list, skip over named arguments before looking for a sentinel.
+       (check_function_arguments): Pass in named argument list.
+       * c-common.h (check_function_arguments): Likewise.
+       * c-typeck.c (build_function_call): Likewise.
+
+2005-06-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * genautomata.c (decl_mode_check_failed,
+       regexp_mode_check_failed): Add noreturn attribute.
+
+2005-06-26  Kazu Hirata  <kazu@codesourcery.com>
+
+       * cfg.c, tree-vect-transform.c, tree.def: Fix comment typos.
+       * doc/invoke.texi: Fix typos.
+
+       * builtins.c, c-common.c, c-convert.c, c-decl.c, c-typeck.c,
+       convert.c, lambda-code.c, predict.c, tree-cfg.c,
+       tree-complex.c, tree-data-ref.c, tree-if-conv.c,
+       tree-mudflap.c, tree-scalar-evolution.c, tree-ssa-ccp.c,
+       tree-ssa-loop-ivcanon.c, tree-ssa-loop-ivopts.c,
+       tree-ssa-loop-manip.c, tree-ssa-phiopt.c, tree-ssa-pre.c,
+       tree-vect-analyze.c, tree-vect-transform.c, tree-vectorizer.c,
+       tree.c: Use fold_buildN instead of fold (buildN (...)).
+
+2005-06-26  Gerald Pfeifer  <gerald@pfeifer.com>
+
+       * doc/install.texi (Specific): Do not specify the concrete
+       versions of GCC provided by Cygwin.  Simplify the part on
+       building on Cygwin.
+
+2005-06-26  Kazu Hirata  <kazu@codesourcery.com>
+
+       * config/arc/arc-protos.c: Remove the prototype for
+       arc_finalize_pic.
+       * config/arc/arc.c (arc_finalize_pic): Remove.
+       * config/arc/arc.h (FINALIZE_PIC): Likewise.
+       * config/bfin/bfin.h (FINALIZE_PIC): Likewise.
+       * config/rs6000/rs6000.h (FINALIZE_PIC): Likewise.
+
+2005-06-26  Jakub Jelinek  <jakub@redhat.com>
+
+       PR middle-end/17965
+       * calls.c (expand_call, emit_library_call_value_1): Use xmalloc/free
+       instead of alloca for really big argument sizes.
+
+       PR middle-end/22028
+       * gimplify.c (gimplify_type_sizes): Check for type == error_mark_node
+       earlier in the function.
+
+       * regrename.c (copy_value): Don't replace fixed or global
+       regs with older regs.
+
+       * defaults.h (FRAME_GROWS_DOWNWARD): Define to 0 if not defined.
+       * function.c (get_func_frame_size): Use if (FRAME_GROWS_DOWNWARD)
+       instead of preprocessor conditionals.
+       (assign_stack_local_1, assign_stack_temp_for_type): Likewise.
+       * cfgexpand.c (FRAME_GROWS_DOWNWARD): Don't redefine to 1 or 0
+       depending on if it was or was not defined previously.
+       * doc/rtl.texi (VIRTUAL_STACK_VARS_REGNUM): Mention that only non-zero
+       definition of FRAME_GROWS_DOWNWARD means frame grows downward.
+       * doc/tm.texi (FRAME_GROWS_DOWNWARD): Likewise.
+       * config/m68hc11/m68hc11.h (FRAME_GROWS_DOWNWARD): Define to 0.  Update
+       comment.
+       * config/pa/pa.h (FRAME_GROWS_DOWNWARD): Likewise.
+       * config/rs6000/rs6000.h (FRAME_GROWS_DOWNWARD): Likewise.
+       * config/stormy16/stormy16.h (FRAME_GROWS_DOWNWARD): Define to 0.
+       * config/c4x/c4x.h (FRAME_GROWS_DOWNWARD): Likewise.
+       * config/sh/sh.h (FRAME_GROWS_DOWNWARD): Likewise.
+       * config/ia64/ia64.h (FRAME_GROWS_DOWNWARD): Likewise.
+       * config/iq2000/iq2000.h (FRAME_GROWS_DOWNWARD): Likewise.
+       * config/pdp11/pdp11.h (FRAME_GROWS_DOWNWARD): Define to 1.  Update
+       comment.
+       * config/i860/i860.h (FRAME_GROWS_DOWNWARD): Likewise.
+       * config/h8300/h8300.h (FRAME_GROWS_DOWNWARD): Likewise.
+       * config/arc/arc.h (FRAME_GROWS_DOWNWARD): Likewise.
+       * config/vax/vax.h (FRAME_GROWS_DOWNWARD): Likewise.
+       * config/sparc/sparc.h (FRAME_GROWS_DOWNWARD): Likewise.
+       * config/i386/i386.h (FRAME_GROWS_DOWNWARD): Likewise.
+       * config/fr30/fr30.h (FRAME_GROWS_DOWNWARD): Likewise.
+       * config/frv/frv.h (FRAME_GROWS_DOWNWARD): Likewise.
+       * config/mn10300/mn10300.h (FRAME_GROWS_DOWNWARD): Likewise.
+       * config/bfin/bfin.h (FRAME_GROWS_DOWNWARD): Likewise.
+       * config/ns32k/ns32k.h (FRAME_GROWS_DOWNWARD): Likewise.
+       * config/v850/v850.h (FRAME_GROWS_DOWNWARD): Likewise.
+       * config/alpha/alpha.h (FRAME_GROWS_DOWNWARD): Update comment.
+       * config/s390/s390.h (FRAME_GROWS_DOWNWARD): Likewise.
+       * config/arm/arm.h (FRAME_GROWS_DOWNWARD): Likewise.
+       * config/alpha/unicosmk.h (FRAME_GROWS_DOWNWARD): Define to 1.
+       * config/cris/cris.h (FRAME_GROWS_DOWNWARD): Likewise.
+       * config/m68k/m68k.h (FRAME_GROWS_DOWNWARD): Likewise.
+       * config/mmix/mmix.h (FRAME_GROWS_DOWNWARD): Likewise.
+
+2005-06-26  Kazu Hirata  <kazu@codesourcery.com>
+
+       PR tree-optimization/22026
+       * tree-vrp.c (extract_range_from_binary_expr): Drop to
+       VR_VARYING if a binary expression involving VR_ANTI_RANGE is
+       PLUS_EXPR, MINUS_EXPR, or unsigned MULT_EXPR.
+
+2005-06-26  Kazu Hirata  <kazu@codesourcery.com>
+
+       * Makefile.in (OBJS-common): Remove duplicate object file
+       names.
+
+2005-06-25  Jan Hubicka  <jh@suse.cz>
+
+       * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Update profile.
+       * cfg.c (update_bb_profile_for_threading): Fix rescaling.
+
+       * passes.c (rest_of_handle_branch_prob): Do not rebuild profiling info
+       when not neecesary
+       (rest_of_compilation): Fix conditional on branch prob pass.
+       * predict.c (tree_estimate_probability): Enable strip_builtin_expect
+       when not loop optimizing.
+
+2005-06-25  Bernd Schmidt  <bernd.schmidt@analog.com>
+
+       * config/bfin/bfin.md (ror_one, rol_one, ashrdi3, ashldi3, lshrdi3):
+       New patterns.
+       (movbi): Add alternative to set CC to zero.
+       (compare_eq, compare_ne, compare_le, compare_lt, compare_leu,
+       compare_ltu): Now named patterns.
+
+2005-06-25  Kelley Cook  <kcook@gcc.gnu.org>
+
+       * all files: Update FSF address in copyright headers.
+
+2005-06-25  Kelley Cook  <kcook@gcc.gnu.org>
+
+       * gengtype.c: Update FSF address in copyright header.
+       (create_file): Update FSF in outputed copyright header.
+
+2005-06-24  Kazu Hirata  <kazu@codesourcery.com>
+
+       * cfglayout.c (block_locators_locs, line_locators_locs,
+       line_locators_lines, file_locators_locs): Change the type to
+       VEC(int,heap)*.
+       (insn_locators_initialize, change_scope, insn_scope,
+       locator_line, insn_line, locator_file): Use VEC instead of
+       VARRAY.
+
+2005-06-24  Jason Merrill  <jason@redhat.com>
+
+       * tree-nrv.c (tree_nrv): Fix to check assignments to the
+       RESULT_DECL rather than just RETURN_EXPRs.
+       (finalize_nrv_r): Adjust.
+
+2005-06-24  Jan Hubicka  <jh@suse.cz>
+
+       * tree-optimize.c (init_tree_optimization_passes): Fix flags of
+       all_passes and all_ipa_passes.
+
+       * c-common.c: Include cgraph.h
+       (handle_externally_visible_attribute): New function.
+       (c_common_att): Add "externally_visible" attribute.
+       * cgraph.c (decide_is_variable_needed): Obey externally
+       visible flag.
+       (cgraph_varpool_finalize_decl): Avoid redundant checking.
+       * cgraph.h (struct cgraph_node): New flag externally_visible.
+       (decide_is_function_needed): Obey externally visible flag.
+       (cgraph_finalize_function): Avoid redundant checks.
+       (cgraph_function_and_variable_visibility): Bring symbols local
+       when asked for.
+       * common.opt (fwhole-program): New flag.
+
+       * doc/invoke.texi (-fwhole-program): Document.
+
+2005-06-24  Mark Mitchell  <mark@codesourcery.com>
+
+       PR 22171
+       * tree-ssa-operands.c (get_expr_operands): Check s_ann for NULL
+       before use.
+
+2005-06-23  Mark Mitchell  <mark@codesourcery.com>
+
+       PR 22000
+       * tree-ssa-operands.c (get_expr_operands): Check the volatility of
+       the FIELD_DECL and set s_ann->has_volatile_ops accordingly.
+
+2005-06-24  Jan Hubicka  <jh@suse.cz>
+
+       * opts.c (decode_options): Enable unit-at-a-time by default at -O1.
+
+2005-06-23  Jeff Law  <law@redhat.com>
+
+       * tree-optimize.c (init_tree_optimization_passes): Move
+       copy prop pass to run just before VRP.
+       * tree-vrp.c (remove_range_assertions): Remove copies created
+       by ASSERT_EXPR removal.
+
+2005-06-23  Kazu Hirata  <kazu@codesourcery.com>
+
+       PR tree-optimization/22117
+       * tree-vrp.c (extract_range_from_binary_expr): Compute a
+       correct range when adding two pointers.
+
+2005-06-23  Jason Merrill  <jason@redhat.com>
+
+       PR c++/19317
+       Leave the return slot target in the MODIFY_EXPR rather than making
+       it an argument, but only use it if the CALL_EXPR has a flag set.
+       * tree.h (CALL_EXPR_HAS_RETURN_SLOT_ADDR): Rename to
+       CALL_EXPR_RETURN_SLOT_OPT.
+       * calls.c (expand_call): Adjust.
+       * tree-inline.c (expand_call_inline): Adjust.
+       * tree-pretty-print.c (dump_generic_node): Adjust.
+
+       And set the flag as appropriate.
+       * gimplify.c (gimplify_modify_expr_rhs): Set
+       CALL_EXPR_HAS_RETURN_SLOT_ADDR where the LHS is obviously safe.
+       * tree-nrv.c (execute_return_slot_opt): Set
+       CALL_EXPR_HAS_RETURN_SLOT_ADDR based on escape analysis.
+       * tree-pass.h: Declare pass_return_slot.
+       * tree-optimize.c (init_tree_optimization_passes): Add it.
+       
+2005-06-23  David Edelsohn  <edelsohn@gnu.org>
+
+       PR target/21760
+       * config/rs6000/rs6000.h (PPC405_ERRATUM77): New.
+       * config/rs6000/rs6000.md: Move atomic instructions to ...
+       * config/rs6000/sync.md: Here.
+       Change sync_compare_and_swap<mode> to define_expand.  All stwcx
+       patterns test PPC405_ERRATUM77.
+
+2005-06-23  Jan Hubicka  <jh@suse.cz>
+       
+       * tree-inline.c (copy_body_r): Remap labels correctly.
+
+2005-06-22  Alan Modra  <amodra@bigpond.net.au>
+
+       * config/rs6000/sysv4.h (TARGET_ASM_EXCEPTION_SECTION): Delete.
+
+2005-06-22  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       PR middle-end/20593
+       * varasm.c (compute_reloc_for_constant): Treat VIEW_CONVER_EXPR
+       the same as the other cast operands.
+       (output_addressed_constants): Likewise.
+
+2005-06-21  Jeff Law  <law@redhat.com>
+
+       * tree-vrp.c (extract_range_from_unary_expr): Handle type
+       conversions better.
+
+2005-06-21  Dorit Nuzman  <dorit@il.ibm.com>
+
+       * genopinit.c (vec_shl_optab, vec_shr_optab): Initialize new optabs.
+       (reduc_plus_optab): Removed.  Replcaed with...
+       (reduc_splus_optab, reduc_uplus_optab): Initialize new optabs.
+       * optabs.c (optab_for_tree_code): Return reduc_splus_optab or
+       reduc_uplus_optab instead of reduc_plus_optab.
+       (expand_vec_shift_expr): New function.
+       (init_optabs): Initialize new optabs. Remove initialization of
+       reduc_plus_optab.
+       (optab_for_tree_code): Return vec_shl_optab/vec_shr_optab
+       for VEC_LSHIFT_EXPR/VEC_RSHIFT_EXPR.
+       * optabs.h (OTI_reduc_plus): Removed. Replaced with...
+       (OTI_reduc_splus, OTI_reduc_uplus): New.
+       (reduc_plus_optab): Removed.  Replcaed with...
+       (reduc_splus_optab, reduc_uplus_optab): New optabs.
+       (vec_shl_optab, vec_shr_optab): New optabs.
+       (expand_vec_shift_expr): New function declaration.
+
+       * tree.def (VEC_LSHIFT_EXPR, VEC_RSHIFT_EXPR): New tree-codes.
+       * tree-inline.c (estimate_num_insns_1): Handle new tree-codes.
+       * expr.c (expand_expr_real_1): Handle new tree-codes.
+       * tree-pretty-print.c (dump_generic_node, op_symbol, op_prio): Likewise.
+       * tree-vect-generic.c (expand_vector_operations_1): Add assert.
+
+       * tree-vect-transform.c (vect_create_epilog_for_reduction): Add two
+       alternatives for generating reduction epilog code.
+       (vectorizable_reduction): Don't fail of direct reduction support is
+       not available.
+       (vectorizable_target_reduction_pattern): Likewise.
+
+       * config/rs6000/altivec.md (reduc_smax_v4si, reduc_smax_v4sf,
+       reduc_umax_v4si, reduc_smin_v4si, reduc_smin_v4sf, reduc_umin_v4si,
+       reduc_plus_v4si, reduc_plus_v4sf): Removed.
+       (vec_shl_<mode>, vec_shr_<mode>, altivec_vsumsws_nomode,
+       reduc_splus_<mode>, reduc_uplus_v16qi): New.
+
+2005-06-20  Daniel Berlin  <dberlin@dberlin.org>
+
+       * c-typeck.c (build_function_call): Set fundecl = function again.
+       * tree-ssa-alias.c (find_used_portions): Address taking causes the
+       entire variable to be used.
+       * tree-ssa-structalias.c (do_structure_copy): Fix handling of
+       unknown size variables, and structure copies from addressof
+       operations.  Simplify how we do *a = *b type structure copies.
+       (init_base_vars): Add ANYTHING = &ANYTHING constraint the right
+       way.  READONLY's address is not taken by default.
+       INTEGER dereference should point to anything.
+       (create_variable_info_for): It's okay for the first field to not start
+       at 0.
+
+2005-06-20  Kaz Kojima  <kkojima@gcc.gnu.org>
+
+       config/sh/linux.h (FUNCTION_PROFILER): Constify a char*.
+
+2005-06-20  Roger Sayle  <roger@eyesopen.com>
+2005-06-20  Fariborz Jahanian <fjahanian@apple.com>
+
+       * combine.c (simplify_set): Simplify setting of CC register
+       by removing redundant compare with 0 on RHS.
+
+2005-06-20  Jan Beulich  <jbeulich@novell.com>
+
+       * config/i386/netware-libgcc.def: Update copyright.
+       * config/i386/netware-libgcc.exp (__divdc3, __divsc3, __divxc3,
+       __muldc3, __mulsc3, __mulxc3, __powidf2, __powisf2, __powixf2): Add.
+       * config/i386/netware.c (gen_stdcall_decoration,
+       gen_fastd_decoration): Merge into ...
+       (gen_stdcall_or_fastcall_decoration): ... this. Adjust to match
+       WinNT's changes.
+       (gen_regparm_prefix): Adjust to match i386_nlm_encode_section_info.
+       (i386_nlm_encode_section_info): Adjust to match WinNT's changes.
+       * config/i386/t-nwld (SHLIB_LINK): Also create libgcc.imp alias of
+       libgcc_s.imp. Use 'expr' rather than $(()) shell expressions.
+       * gthr-nks.h (__gthread_objc_mutex_allocate): Kill another dubious
+       use of NX_MUTEX_RECURSIVE.
+
+2005-06-19  Roger Sayle  <roger@eyesopen.com>
+
+       * fold-const.c (swap_tree_comparison): Add support for unordered
+       floating point comparisons.
+       * tree-vrp.c (opposite_comparison): Delete.
+       (extract_range_from_assert): Replace calls to opposite_comparison
+       with calls to swap_tree_comparison.
+       (register_edge_assert_for): Likewise.
+       (vrp_evaluate_conditional): Likewise.
+
+2005-06-20  Kaz Kojima  <kkojima@gcc.gnu.org>
+
+       * integrate.c (allocate_initial_values): Update the references
+       to global_live_at_start and global_live_at_end.
+
+2005-06-20  Jan Hubicka  <jh@suse.cz>
+
+       * cfgloop.h (DLTHE_RECORD_COPY_NUMBER): New flag.
+       * cfgloopmanip.c (duplicate_loop_to_header_edge): Set aux flags only
+       when asked for.
+       * loop-unroll.c (peel_loop_completely, unroll_loop_constant_iterations,
+       unroll_loop_runtime_iterations, peel_loop_simple, unroll_loop_stupid):
+       Update call of duplicate_loop_to_header_edge.
+       (apply_opt_in_copies): Clear out aux pointers.
+
+2005-06-19  Joseph S. Myers  <joseph@codesourcery.com>
+
+       * config/i386/i386.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Define.
+       (ix86_mangle_fundamental_type): New.
+       * config/ia64/ia64.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Define.
+       (ia64_mangle_fundamental_type): New.
+
+2005-06-19  Roger Sayle  <roger@eyesopen.com>
+
+       * c-decl.c (grokdeclarator): Only check TREE_OVERFLOW on
+       INTEGER_CST nodes.
+       * c-typeck.c (build_c_cast): Only preserve TREE_OVERFLOW on
+       CONSTANT_CLASS_P nodes.
+
+2005-06-19  Richard Henderson  <rth@redhat.com>
+
+       * config/ia64/vect.md (vec_extractv2sf_1): Fix cut-and-paste error;
+       the shift is always required.
+
+2005-06-19  Richard Henderson  <rth@redhat.com>
+
+       * config/ia64/ia64-modes.def (V4SF): Add.
+       * config/ia64/ia64.c (ia64_legitimate_constant_p): Handle CONST_VECTOR.
+       * config/ia64/ia64.h (CANNOT_CHANGE_MODE_CLASS): Allow vector to 
+       integer mode changes in fp regs.
+       * config/ia64/ia64.md (UNSPEC_VECT_EXTR): New.
+       * config/ia64/vect.md (smaxv2sf3, sminv2sf3): Fix typos in names.
+       (reduc_plus_v2sf, reduc_smax_v2sf, reduc_smin_v2sf): New.
+       (vcondv2sf): Use gen_fpack
+       (fpack): Remove * from name.
+       (fswap, fmix_l, fmix_r, fmix_lr): New.
+       (vec_setv2sf, vec_extractv2sf_0_le, vec_extractv2sf_0_be): New.
+       (vec_extractv2sf_1, vec_extractv2sf): New.
+
+2005-06-19  Andreas Krebbel  <krebbel1@de.ibm.com>
+
+       * combine.c (make_compound_operation): Use simplify_subreg.  Delete
+       a optimization already done by simplify_subreg.
+
+2005-06-19  Ulrich Weigand  <uweigand@de.ibm.com>
+
+       * loop.c (scan_loop): Do not consider insns setting the frame
+       pointer to be candidates for hoisting.
+
+2005-06-19  Uros Bizjak  <uros@kss-loka.si>
+
+       * config/i386/i386.md (*cmpfp_0_sf, *cmpfp_0_df, cmpfp_0_xf):
+       Remove instruction patterns.
+       (*cmpfp_0): New instruction pattern. Set "unit" attribute to "i387".
+       (*cmpfp_sf, *cmpfp_df, *cmpfp_xf, *cmpfp_u, *_cmpfp_<mode>):
+       Set "unit" attribute to "i387".
+       (*pushsf, *pushsf_rex64, *pushdf_nointeger, *pushdf_integer)
+       (*pushxf_nointeger, *pushxf_integer): Set "unit" attribute to "i387"
+       for alternative 0.
+       (*truncdfsf_mixed, *truncdfsf_i387, *truncxfsf2_mixed)
+       (*truncxfsf2_i387, *truncxfdf2_mixed, *truncxfdf2_i387): Set "unit"
+       attribute to "i387" when "type" attribute equals "multi".
+       (*floathisf2_i387, *floatsisf2_mixed, *floatsisf2_i387)
+       (*floatdisf2_mixed, *floatdisf2_i387, *floathidf2_i387)
+       (*floatsidf2_mixed, *floatsidf2_i387, *floatdidf2_mixed)
+       (*floatdidf2_i387, floathixf2, floatsixf2, floatdixf2): Set "unit"
+       attribute to "i387" when "type" attribute equals "multi".
+       * config/i386/mmx.md (*mov<mode>_internal_rex64)
+       (*mov<mode>_internal, *movv2sf_internal_rex64, *movv2sf_internal):
+       Set "unit" attribute to "mmx" when "type" attribute equals "ssecvt".
+       (mmx_pmovmskb): Correct wrong "type" and "mode" attributes.
+       * config/i386/sse.md (sse_cvtps2pi, sse_cvttps2pi, sse_cvtpd2di)
+       (sse_cvttpd2pi): Set "unit" attribute to "mmx".
+       (sse2_cvtpi2pd): Split register constraints. Set "unit" attribute
+       to "mmx" for "y" operand 1.
+
+2005-06-19  Uros Bizjak  <uros@kss-loka.si>
+
+       * config/i386/i386.c (ix86_function_arg_regno_p): Add MMX_REGNO_P
+       for TARGET_MMX.  Use MMX_REGPARM_MAX and SSE_REGPARM_MAX for MMX
+       and SSE registers to determine if regno is valid.
+       (ix86_function_value_regno_p): Depend FIRST_FLOAT_REG on
+       TARGET_FLOAT_RETURNS_IN_80387 also for TARGET_64BIT. Clean up.
+
+2005-06-18  Richard Henderson  <rth@redhat.com>
+
+       * tree-complex.c (init_dont_simulate_again): Clear DONT_SIMULATE_AGAIN
+       for control-altering statements; set it again for returns.
+       (complex_visit_stmt): Return SSA_PROP_VARYING for stmts that are
+       not MODIFY_EXPR.
+
+2005-06-18  Richard Henderson  <rth@redhat.com>
+
+       PR tree-opt/22116
+       * tree-ssa-pre.c (create_expression_by_pieces): Set
+       DECL_COMPLEX_GIMPLE_REG_P.
+       (insert_into_preds_of_block): Likewise.
+
+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
+       * 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.
        * 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
 
 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.
+       * 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.
+       * 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>
 
 2005-06-08  Richard Henderson  <rth@redhat.com>
 
        PR target/21721
-        * config/ia64/ia64.c (emit_predicate_relation_info): Skip p0.
+       * config/ia64/ia64.c (emit_predicate_relation_info): Skip p0.
 
 2005-06-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
 
 
 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.