OSDN Git Service

2005-06-28 Andrew Pinski <pinskia@physics.uc.edu>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 4919e3b..53c6955 100644 (file)
@@ -1,3 +1,309 @@
+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