+2005-06-28 Andrew Pinski <pinskia@physics.uc.edu>
+
+ * config/rs6000/rs6000.md (setmemsi): s/operand/operands/.
+
+2005-06-28 Richard Henderson <rth@redhat.com>
+
+ * config/ia64/ia64.c (ia64_expand_vecint_compare): Use unsigned
+ saturating subtraction for QI and HImode unsigned compares. Use
+ bit arithmetic tricks for SImode unsigned compares.
+ (ia64_expand_vcondu_v2si): Remove.
+ (ia64_expand_vecint_cmov): Don't call it.
+
+2005-06-28 Richard Henderson <rth@redhat.com>
+
+ * rtlanal.c (nonzero_bits1): Use the mode of the value for
+ determining integral-ness for comparisons.
+
+2005-06-28 Andrew Pinski <pinskia@physics.uc.edu>
+
+ * config/rs6000/rs6000.md (setmemsi): Fix operand 2.
+
+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