OSDN Git Service

* target.h (invalid_conversion, invalid_unary_op,
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 6235f5d..cb67755 100644 (file)
+2005-06-28  Joseph S. Myers  <joseph@codesourcery.com>
+
+       * target.h (invalid_conversion, invalid_unary_op,
+       invalid_binary_op): New hooks.
+       * target-def.h (TARGET_INVALID_CONVERSION,
+       TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP,
+       TARGET_INITIALIZER): Likewise.
+       * hooks.h (hook_constcharptr_tree_tree_null,
+       hook_constcharptr_int_tree_null,
+       hook_constcharptr_int_tree_tree_null): New.
+       * hooks.c (hook_constcharptr_tree_tree_null,
+       hook_constcharptr_int_tree_null,
+       hook_constcharptr_int_tree_tree_null): Likewise.
+       * gcc/doc/tm.texi (TARGET_INVALID_CONVERSION,
+       TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Document.
+       * c-convert.c (convert): Use invalid_conversion hook.
+       * c-typeck.c (build_unary_op): Use invalid_unary_op hook.
+       (build_binary_op): Use invalid_binary_op hook.
+       * config/ia64/ia64-modes.def: Define RFmode.
+       * config/ia64/ia64-protos.h (spill_xfmode_operand): Remove.
+       (ia64_expand_movxf_movrf): New.
+       * config/ia64/ia64.md (movxf): Move code to
+       ia64_expand_movxf_movrf.
+       (movrf, movrf_internal): New.
+       * ia64.c (ia64_invalid_conversion, ia64_invalid_unary_op,
+       ia64_invalid_binary_op, TARGET_INVALID_CONVERSION,
+       TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): New.
+       (spill_xfmode_operand): Rename to spill_xfmode_rfmode_operand.
+       Add mode parameter.  Make static.
+       (ia64_expand_movxf_movrf): New, moved from ia64.md.  Handle RFmode
+       as well as XFmode.
+       (ia64_function_arg, ia64_function_value, ia64_register_move_cost,
+       ia64_scalar_mode_supported_p): Handle RFmode as well as XFmode.
+       (ia64_init_builtins): Set up __fpreg as RFmode.
+       (ia64_mangle_fundamental_type): Mangle __fpreg as u7__fpreg.
+
+2006-06-28  Adrian Straetling  <straetling@de.ibm.com>
+
+       * builtins.c: (expand_builtin_memset): Rewrite to support
+       'set_storage_via_setmem'.
+       * expr.c: (enum insn_code setmem_optab): Define.
+       (enum insn_code clrmem_optab): Remove.
+       (set_storage_via_setmem): New function.
+       (clear_storage_via_setmem): Remove.
+       (clear_storage): Replace call to "clear_storage_via_clrmem" with
+       "set_storage_via_setmem".
+       * expr.h: (set_storage_via_setmem): Declare.
+       (CLEAR_RATIO): Redefine using HAVE_setmemM.
+       * optabs.h: (enum insn_code setmem_optab): Declare.
+       (enum insn_code clrmem_optab): Remove.
+       * optabs.c: (init_optabs): Initialize setmem_optab.
+       (enum insn_code clrmem_optab): Remove.
+       * genopinit.c: (otabs): Likewise.
+       * doc/md.texi: Document new standard pattern 'setmem'. Remove
+         'clrmem'.
+       * config/alpha/alpha.c: (alpha_expand_block_clear): Adjust
+       'operands' ordering.
+       * config/frv/frv.c: (frv_expand_block_clear): Likewise.
+       * config/rs6000/rs6000.c: (expand_block_clear): Likewise.
+       * config/alpha/alpha.md: ("clrmemqi", "clrmemdi"): Rename to "setmemM".
+       FAIL on operands[2]!=const0_rtx. Adjust 'operands' ordering.
+       * config/avr/avr.md: ("clrmemhi"): Likewise.
+       * config/frv/frv.md: ("clrmemsi"): Likewise.
+       * config/i386/i386.md: ("clrmemsi", "clrmemdi"): Likewise.
+       * config/pa/pa.md: ("clrmemsi", "clrmemdi"): Likewise.
+       * config/rs6000/rs6000.md: ("clrmemsi"): Likewise.
+       * config/s390/s390.md: ("clrmem<mode>"): Likewise.
+
+2005-06-28  Paul Brook  <paul@codesourcery.com>
+
+       * Makefile.in: Set and use UNWIND_H.  Install as unwind.h.
+       * c-decl.c (finish_decl): Call default_init_unwind_resume_libfunc.
+       * except.c (add_ehspec_entry): Generate arm eabi filter lists.
+       (assign_filter_values): Ditto.
+       (output_ttype): New function.
+       (output_function_exception_table): Use output_ttype.  Generate arm
+       eabi filter lists.
+       (default_init_unwind_resume_libfunc): New function.
+       * except.h (default_init_unwind_resume_libfunc): Add prototype.
+       * optabs.c (init_optabs): Don't set unwind_resume_libfunc.
+       * opts.c (decode_options): Use targetm.unwind_tables_default.
+       * target-def.h (TARGET_ASM_TTYPE): Provide and use definition.
+       (TARGET_ARM_EABI_UNWINDER, TARGET_UNWIND_TABLES_DEFAULT): Ditto.
+       * target.h (struct gcc_target): Add asm.ttype, unwind_tables_default
+       and arm_eabi_unwinder.
+       * unwind-c.c: Support Arm EABI unwinder.
+       * unwind.h: Rename ...
+       * unwind-generic.h: ... To this.
+       * doc/tm.texi (TARGET_ASM_TTYPE, TARGET_ARM_EABI_UNWINDER): Document.
+       (TARGET_UNWID_TABLES_DEFAULT): Document.
+
+       * config/arm/arm-protos.h (arm_output_fn_unwind): Add prototype.
+       * config/arm/arm.c (arm_unwind_emit, arm_output_ttype): New functions.
+       (TARGET_UNWIND_EMIT, TARGET_ASM_TTYPE, TARGET_ARM_EABI_UNWINDER):
+       Define.
+       (thumb_pushpop, thumb_output_function_prologue): Output unwinding
+       directives.
+       (arm_unwind_emit_stm, arm_unwind_emit_set): New functions.
+       * config/arm/arm.h (MUST_USE_SJLJ_EXCEPTIONS): Only define when
+       !TARGET_UNWIND_INFO.
+       (ARM_OUTPUT_FN_UNWIND, ARM_EABI_UNWIND_TABLES): Define.
+       * config/arm/bpabi.h (TARGET_UNWIND_INFO): Define.
+       * config/arm/elf.h (ASM_DECLARE_FUNCTION_NAME,
+       ASM_DECLARE_FUNCTION_SIZE): Use ARM_OUTPUT_FN_UNWIND.
+       * config/arm/lib1funcs.asm: Include libunwind.S.
+       * config/arm/libgcc-bpabi.ver: Add unwinding routines.
+       * config/arm/libunwind.S: New file.
+       * config/arm/pr-support.c: New file.
+       * config/arm/t-bpabi (LIB1ASMFUNCS): Add _unwind.
+       (UNWIND_H, LIB2ADDEH, LIB2ADDEHDEP): Set.
+       * config/arm/t-symbian (UNWIND_H, LIB2ADDEH, LIB2ADDEHDEP): Set.
+       * config/arm/unwind-arm.c: New file.
+       * config/arm/unwind-arm.h: New file.
+       * config/i386/t-netware (USER_H): Remove unwind.h.
+       * config/ia64/ia64.h (TARGET_UNWIND_TABLES_DEFAULT): Define.
+
+2005-06-28  DJ Delorie  <dj@redhat.com>
+
+       * c-decl.c (pop_scope): Move warning control into warning call.
+       (diagnose_mismatched_decls): Likewise.
+       (pushdecl): Likewise.
+       (start_decl): Likewise.
+       (grokparms): Likewise.
+       (start_function): Likewise.
+       (store_parm_decls_newstyle): Likewise.
+       (store_parm_decls_oldstyle): Likewise.
+       (finish_function): Likewise.
+       (declspecs_add_scspec): Likewise.
+       * c-format.c (decode_format_attr): Likewise.
+       (maybe_read_dollar_number): Likewise.
+       (avoid_dollar_number): Likewise.
+       (finish_dollar_format_checking): Likewise.
+       (check_format_info): Likewise.
+       (check_format_info_main): Likewise.
+       (check_format_types): Likewise.
+       (format_type_warning): Likewise.
+       * c-typeck.c (function_types_compatible_p): Likewise.
+       (build_array_ref): Likewise.
+       (convert_arguments): Likewise.
+       (build_c_cast): Likewise.
+       (store_init_value): Likewise.
+       (process_init_element): Likewise.
+       (c_start_case): Likewise.
+       * stor-layout.c (finalize_record_size): Likewise.
+       * tree-cfg.c (execute_warn_function_noreturn): Likewise.
+       * tree-inline.c (expand_call_inline): Likewise.
+
+2005-06-28  Uros Bizjak  <uros@kss-loka.si>
+
+       PR target/22134
+       * config/i386/i386.md (fist<mode>2_with_temp splitter):
+       Clobber memory operand, not scratch register.
+
+2005-06-28  Andreas Krebbel  <krebbel1@de.ibm.com>
+
+       * config/s390/s390.c (machine_function): New field has_landing_pad_p.
+       (s390_set_has_landing_pad_p, s390_reg_clobbered_rtx,
+        s390_regs_ever_clobbered): New functions.
+       (s390_return_addr_rtx): Use get_hard_reg_initial_value.
+       (s390_register_info, s390_init_frame_layout, s390_update_frame_layout):
+       Use s390_regs_ever_clobbered.
+       (s390_emit_prologue): Don't use r14 as temp reg if its content is used
+       for builtin_return_address.
+       * config/s390/s390.md ("exception_receiver"): New expander.
+       * config/s390/s390-protos.h (s390_set_has_landing_pad_p): Prototype
+       added.
+
+2005-06-28  Andreas Krebbel  <krebbel1@de.ibm.com>
+
+       * except.c (current_function_has_exception_handlers): Function 
+       description added and if statements merged.
+
+2005-06-28  Richard Henderson  <rth@redhat.com>
+
+       * config/i386/sse.md (smaxv16qi3): Fix buffer overflow.
+       (sminv16qi3, umaxv8hi3, uminv8hi3): Likewise.
+
+2005-06-27  Richard Henderson  <rth@redhat.com>
+
+       * config/ia64/ia64.c (ia64_expand_vcondu_v2si): Generate proper
+       comparison operations.
+       (ia64_expand_vecint_minmax): Fix size of xops.
+       * config/ia64/vect.md (umax<VECINT>3): Fix fallback pattern typo.
+       (vec_shl_<VECINT>, vec_shr_<VECINT>): New.
+
+2005-06-27  Richard Henderson  <rth@redhat.com>
+
+       * tree-vect-transform.c (get_initial_def_for_reduction): Use correct
+       type for DEF and INIT_VAL.  Pretend MIN/MAX need epilogue adjustment.
+
+2005-06-27  Richard Henderson  <rth@redhat.com>
+
+       * config/i386/sse.md (vec_shl_<SSEMODEI>, vec_shr_<SSEMODEI>): New.
+       (smaxv16qi3, umaxv8hi3, sminv16qi3, uminv8hi3): New.
+
+2005-06-27  Richard Henderson  <rth@redhat.com>
+
+       * tree-vect-transform.c (vect_create_epilog_for_reduction): Remove
+       duplicate little-endian adjustment.
+
+2005-06-28  Kelley Cook  <kcook@gcc.gnu.org>
+
+       * doc/include/texinfo.tex: Import from upstream CVS.
+
+2005-06-28  Jan Hubicka  <jh@suse.cz>
+
+       * cgraph.c (cgraph_remove_node): Do not release function bodies until
+       full cgraph is built.
+       * cgraph.h (cgraph_decide_inlining_incrementally): Add early argument.
+       * cgraphunit.c (cgraph_finalize_function): Update call of
+       cgraph_decide_inlining_incrementally.
+       (initialize_inline_failed): Break out of ...
+       (cgraph_analyze_function): ... here.
+       (rebuild_cgraph_edges): New function.
+       (pass_rebuild_cgraph_edges): New pass.
+       * common.opt (fearly-inlining): New flag.
+       * ipa-inline.c: Include ggc.h
+       (cgraph_clone_inlined_nodes): Avoid re-using of original copy
+       when cgraph is not fully built.
+       (cgraph_decide_inlining_incrementally): Add early mode.
+       (cgraph_early_inlining): New function.
+       (cgraph_gate_early_inlining): Likewise.
+       (pass_early_ipa_inline): New pass.
+       * ipa.c (cgraph_postorder): NULLify aux pointer.
+       * tree-inline.c (expand_call_inline): Avoid warning early.
+       * tree-optimize.c (pass_early_local_passes): New.
+       (execute_cleanup_cfg_pre_ipa): New.
+       (pass_cleanup_cfg): New.
+       (register_dump_files): Fix handling subpasses of IPA pass.
+       (init_tree_optimization_passes): Add early passes.
+       (execute_ipa_pass_list): Fix handling of subpasses of IPA pass.
+       * passes.h (pass_early_tree_profile, pass_rebuild_cgraph_edges,
+       pass_early_ipa_inline): New passes.
+       * tree-profile.c (do_early_tree_profiling, pass_early_tree_profile): New.
+
+       * invoke.texi: Document early-inlining.
+
+2005-06-28  Kelley Cook  <kcook@gcc.gnu.org>
+
+       * doc/include/fdl.texi: Merge in changes from upstream.
+       * doc/include/gpl.texi: Likewise.
+
+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
        (function_arg): Likewise.
 
 2005-06-16  Paolo Bonzini  <bonzini@gnu.org>
-            Daniel Jacobowitz  <dan@codesourcery.com>
+           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.
+       * 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>
 
        
 2005-06-15  Richard Sandiford  <richard@codesourcery.com>
 
-        * doc/invoke.texi (-mips16): Fix typo.
+       * doc/invoke.texi (-mips16): Fix typo.
 
 2005-06-15  David Ung  <davidu@mips.com>
 
        mips16e seb/seh. 
        (*extend<SHORT:mode><GPR:mode>2): Disable this pattern for
        GENERATE_MIPS16E. 
-        * doc/invoke.texi (MIPS Options): Add comment to -mips16
+       * 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>
        * 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>