OSDN Git Service

Adding new option -ftrapv.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 627fb1c..61cd3ae 100644 (file)
+2000-10-18  Chandrakala Chavva  <cchavva@redhat.com>
+
+        * expmed.c (expand_mult): Don't do synth_mult optimization for -ftrapv.
+        Use smulv_optab for -ftrapv.
+        (expand_mult_highpart): Use unsigned multiply.
+        (expand_divmod): Special-case division by -1.
+        For EXACT_DIV_EXPR, do right shift first, then the multiply.
+        For complex divide, use abs with unsigned result.
+        * expr.c (force_operand): Use unsigned multiply.
+        (expand_expr): Use overflow-trapping optabs for signed types if
+        flag_trapv.
+        If flag_trapv, don't generate a recursive call with EXPAND_SUM
+        if the type is signed and the original call wasn't EXPAND_SUM or
+        EXPAND_INITIALIZER.
+        * expr.h (addv_optab, subv_optab, smulv_optab, sdivv_optab): Declare.
+        (negv_optab, absv_optab): Declare.
+        * flags.h (flag_trapv): Declare.
+        * genopinit.c (optabs): Add entries for addv_optab, subv_optab,
+        smulv_optab, sdivv_optab, negv_optab and absv_optab.
+       (gen_insn): Interpret '$P' as requiring an integer mode,
+        including partial integer modes.
+        * loop.c (emit_iv_add_mult): Use unsigned expand_mult_add.
+        (product_cheap_p): Use unsigned expand_mult.
+        * optabs.c (addv_optab, subv_optab, smulv_optab, sdivv_optab): Define.
+        (negv_optab, absv_optab): Define.
+        (expand_binop): Use overflow-trapping optabs for signed types if
+        flag_trapv.
+        Handle negv_optab libe neg_optab.
+        (expand_abs): Take result_unsignedp argument instead of unsignedp one.
+        Use overflow-trapping optabs for signed result if flag_trapv.
+        (expand_complex_abs): Use overflow-trapping optabs for signed types if
+        flag_trapv.
+        Don't open-code complex absolute-value operation for flag_trapv.
+        (init_optabs): Initialize addv_optab, subv_optab, smulv_optab,
+        sdivv_optab, negv_optab and absv_optab.
+        * toplev.c (flag_trapv): Define.
+        (lang_independent_options f_options): Include flag_trapv.
+        * tree.h (TYPE_TRAP_SIGNED): Define.
+        * libgcc2.c (__addvsi3, __addvdi3, __subvsi3,__subvsi3, __subvdi3,
+        __mulvsi3, __negvsi2, __negvdi2, __absvsi2, __absvdi2, __mulvdi3):
+        New functions.
+        * Makefile.in: add _absvsi2 _absvdi2 _addvsi3 _addvdi3 _subvsi3
+        _subvdi3 _mulvsi3 _mulvdi3 _negvsi2 _negvdi2.
+
+2000-10-18  Geoffrey Keating  <geoffk@cygnus.com>
+           David V. Henkel-Wallace  <gumby@cygnus.com>
+
+       * config/i386/t-netware: Bring in from the Red Hat tree.
+       * config/i386/netware.h: Likewise.
+       * config/netware.h: Likewise.
+       * config/rs6000/netware.h: Delete.
+       * configure.in: Add i[34567]86-*-netware.
+       * configure: Hand-edit to match configure.in change.
+
+2000-10-18  Mark Mitchell  <mark@codesourcery.com>
+
+       * c-common.h (flag_no_builtin): Declare.
+       (flag_no_nonansi_builtin): Likewise.
+       (c_common_nodes_and_builtins): Change prototype.
+       * c-common.c (flag_no_builtin): New variable.
+       (flag_no_nonansi_builtin): Likewise.
+       (c_common_nodes_and_builtins): Remove parameters.  Adjust
+       accordingly.
+       * c-decl.c (flag_no_builtin): Remove.
+       (flag_no_nonansi_builtin): Likewise.
+       (init_decl_processing): Adjust call to
+       c_common_nodes_and_builtins.
+       
+2000-10-18  Marc Espie <espie@openbsd.org>
+
+       * tm.texi (LIBGCC_SPEC): Synch with reality.
+
+2000-10-18  Joseph S. Myers  <jsm28@cam.ac.uk>
+
+       * c-common.c (check_format_types): Check for writing through a
+       NULL pointer argument.
+
+2000-10-18  Hans-Peter Nilsson  <hp@axis.com>
+
+       * tm.texi (Exception Region Output): Document
+       DWARF_CIE_DATA_ALIGNMENT.
+       * dwarf2out.c (DWARF_CIE_DATA_ALIGNMENT): Wrap definition in
+       #ifndef.
+       [ENABLE_CHECKING] (reg_save): Abort if offset is not a multiple of
+       DWARF_CIE_DATA_ALIGNMENT.
+
+2000-10-18  Michael Hayes  <mhayes@cygnus.com>
+
+       * basic-block.h (struct loop): Delete fields pre_header_root
+       and pre_header_trace and replace with pre_header_edges
+       and num_pre_header_edges.
+       * flow.c (flow_loop_dump): Dump pre_header_edges.
+       (flow_loops_free): Free pre_header_edges.
+       (flow_loop_pre_header_scan): Calculate pre_header_edges.
+
+2000-10-18  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
+
+       * contrib.texi: Update references to steering committee members
+       and Jeff Law's entry.
+
+2000-10-18  Joseph S. Myers  <jsm28@cam.ac.uk>
+
+       * c-common.c (CPLUSPLUS_STD_VER, C_STD_VER, C_STD_NAME): Define.
+       (maybe_read_dollar_number, check_format_info_main): Use them for
+       pedantic warning messages.
+
+2000-10-18  Joseph S. Myers  <jsm28@cam.ac.uk>
+
+       * c-common.c (check_format_info_main): Minor cleanup: move
+       variables into inner scopes; initialize declarations where
+       appropriate; don't hardcode "scanf" name on warning for zero
+       width.
+
+2000-10-17  Mark Mitchell  <mark@codesourcery.com>
+
+       * c-common.c (back_end_hook): New variable.
+       * c-common.h (back_end_hook): Declare it.
+       * c-lang.c (finish_file): Use it.
+
+       * emit-rtl.c (init_emit_once): Initialize the const_int_htab
+       earlier.
+       
+2000-10-18  Jan Hubikca  <jh@suse.cz>
+
+        * i386.c (ix86_comparison_operator, put_condition_code,
+        ix86_match_ccmode, ix86_cc_mode): Handle CCRCmode.
+        (ix86_expand_strlensi_unroll_1): Use CCRCmode.
+        * i386.h (EXTRA_CC_MODES): Add CCRCmode.
+        * i386.md (adddi and negdi splitter): Use CCRCmode.
+        (add?i_3, add?i_4, add?i_5): Use CCRCmode; swap operands
+        (subsi3_carry): add '*'
+        (addsi3_carry_rc, subsi3_carry_rc, x86_movsicc_0_m1_rc): New.
+        (cmp to add peep2): Use CCRCmode; swap operands.
+
+2000-10-18  Kazu Hirata  <kazu@hxi.com>
+
+       * h8300.c: Fix a comment typo.
+       (round_frame_size): New.
+       (compute_saved_regs): Likewise.
+       (push): Likewise.
+       (pop): Likewise.
+       (push_order): Remove.
+       (pop_order): Likewise.
+       (function_prologue): Rearrange code for readability.
+       (function_epilogue): Likewise.
+
+       * config/h8300/h8300.md: Remove an unnecessary sign_extend
+       expander that is used when not optimizing.  Output a tab after
+       each assembly insns.
+
+       * reorg.c: Fix formatting.
+
+2000-10-17  Joern Rennecke <amylaar@redhat.co.uk>
+
+       * reload1.c (move2add_note_store): Check for simple
+       auto-inc in destination.
+
+2000-10-17  Michael Chastain  <chastain@redhat.com>
+
+       * config/i386/i386-aout.h: define INT_ASM_OP.
+
+Tue Oct 17 20:11:08 2000  Alan Modra <alan@linuxcare.com.au>
+
+       * pa.c (print_operand): Handle case 'c' for .vtable_inherit
+
+Tue Oct 17 20:05:51 2000  Martin Buchholz <martin@xemacs.org>
+
+       * i370.md: Fix spelling typo.
+
+2000-10-17  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
+
+       * function.c (locate_and_pad_parm): Don't align stack unconditionally.
+       Fixes execute/20001017-1.c on powerpc-linux-gnu.
+
+       * expr.c (store_constructor): Apply MEM_ALIAS_SET to MEMs only.
+       * rs6000/rs6000.c (rs6000_hash_constant): Use X0INT to access a
+       LABEL_REF.
+
+       * rs6000/rs6000.h (NO_DOLLAR_IN_LABEL, DOLLARS_IN_IDENTIFIERS,
+       ENCODE_SECTION_INFO, ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Move from
+       here...
+       * rs6000/aix.h: ...to here.
+       * rs6000/linux.h (ASM_APP_ON, ASM_APP_OFF): Define to Linux-style.
+
+2000-10-17  Jakub Jelinek  <jakub@redhat.com>
+
+       * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): Reload gp if needed.
+
+       * config/sparc/sparc.h (ASM_OUTPUT_MI_THUNK): Always use call, make
+       sure linker can relax even the delay slot mov %g1,%o7, fix output
+       formating.
+
+2000-10-17  Kazu Hirata  <kazu@hxi.com>
+
+       * config/h8300/h8300.md: Remove an unnecessary zero_extend
+       expander that is used when not optimizing.  Output a tab after
+       each assembly insns.
+
+2000-10-17  Chandrakala Chavva  <cchavva@redhat.com>
+
+       * gcc.c: New options --target-help.
+       (process_command): Added code to parse this new option.
+       * toplev.c (display_target_options): New function to support the
+       above new option.
+       * cppinit.c (new_pending_directive) : New option OPT_target__help.
+       (cpp_handle_option): Support this new option.
+       * invoke.texi: Added notes about --target-help option.
+       
+2000-10-17  Graham Stott  <grahams@redhat.com>
+       * config/i386/i386.md (testqi_1): Add missing operand prefix
+       for operand 0.
+       * config/i386/i386-protos.h: Add missing prototype.
+2000-10-17  Diego Novillo  <dnovillo@cygnus.com>
+
+       * config/i386/unix.h (ASM_OUTPUT_MI_THUNK): Symbol
+       _GLOBAL_OFFSET_TABLE should not have a $ prefix when
+       using -mintel-syntax.
+
+2000-10-17  Joseph S. Myers  <jsm28@cam.ac.uk>
+
+       * c-common.c (FMT_FLAG_DOLLAR_MULTIPLE): Define.
+       (format_types): Use it for printf.
+       (maybe_read_dollar_number): Add parameter for the kind of format
+       involved.  Warn for multiple use for arguments if this is
+       inappropriate for the kind of format involved.
+       (check_format_info_main): Update calls to maybe_read_dollar_number.
+
+2000-10-17  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
+
+       * inclhack.def (hpux_maxint): Also apply fix to values.h.
+       * fixincl.x: Rebuilt.
+
+2000-10-17  Alexandre Oliva  <aoliva@redhat.com>
+
+       * genrecog.c (write_switch): Return the first condition that needs a
+       label.
+
+2000-10-17  Bernd Schmidt  <bernds@redhat.co.uk>
+
+       * c-tree.h (warn_sequence_point): Move declaration to...
+       * c-common.h (warn_sequence_point): ... here.
+       * c-decl.c (warn_sequence_point): Move definition to...
+       * c-common.c (warn_sequence_point): ... here.
+       (struct reverse_tree): New.
+       (reverse_list, reverse_max_depth): New static variables.
+       (build_reverse_tree, common_ancestor, modify_ok
+       verify_sequence_points): New functions.
+       (c_expand_expr_stmt): Call verify_sequence_points if -Wsequence-point.
+       * c-typeck.c (check_modify_expr): Delete.
+       (build_modify_expr): Don't call it.
+
+2000-10-17  Joseph S. Myers  <jsm28@cam.ac.uk>
+
+       * c-common.h (warn_missing_format_attribute): New variable.
+       * c-decl.c (warn_missing_format_attribute): New variable.
+       (c_decode_option): Decode -Wmissing-format-attribute and
+       -Wno-missing-format-attribute.
+       * c-common.c (check_function_format): If
+       -Wmissing-format-attribute, give a warning where a vprintf or
+       vscanf function is called by a function without its own printf or
+       scanf attribute.
+       * toplev.c (documented_lang_options): Add
+       -Wmissing-format-attribute.
+       * invoke.texi: Document -Wmissing-format-attribute.
+
+2000-10-17  Marc Espie <espie@openbsd.org>
+
+       * invoke.texi (-shared): Insist on requiring code generation flags
+       to be used along with -shared, and document the subtle failure that
+       may occur otherwise.
+
+2000-10-16  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
+
+       * pa.md (return_internal): Move `use' after `return'.
+
+2000-10-16 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
+
+       * machmode.def: Correct comment.
+
+2000-10-16  Rodney Brown  <RodneyBrown@mynd.com>
+
+       * print-rtl.c (print_rtx_head): Constify.
+       * rtl.h (print_rtx_head): Similarly.
+
+       * config/pa/pa/pa-protos.h (output_64bit_and, output_64bit_ior):
+       Constify char * return value.
+       * config/pa/pa/pa.c
+       (output_64bit_and, output_64bit_ior): Constify char * return value.
+       (pa_can_combine_p): Make static.
+       (function_arg): Decorate unused `named' argument. Fix comment typo.
+       (function_arg_partial_nregs): Decorate unused `named' argument.
+
+2000-10-16  Joseph S. Myers  <jsm28@cam.ac.uk>
+
+       * c-common.c (format_check_results): New structure.
+       (finish_dollar_format_checking): Adjust to take a
+       format_check_results * parameter.
+       (check_format_info, check_format_info_recurse,
+       check_format_info_main): Split check_format_info into three
+       functions, the main checking going in check_format_info_main.
+       Recurse when any reduction of the format string argument towards a
+       string literal is done; go down both branches of a conditional
+       expression.  Don't warn for extra format arguments or empty format
+       strings if they only occur in some branches of a conditional
+       expression.
+
+2000-10-16  Kazu Hirata  <kazu@hxi.com>
+
+       * config/h8300/h8300.c: Remove obstack.  Include ggc.h.
+
+2000-10-16  Jakub Jelinek  <jakub@redhat.com>
+
+       * rtlanal.c (may_trap_p): Check operand modes of COMPARE.
+
+2000-10-15  Diego Novillo  <dnovillo@cygnus.com>
+
+       * i386.md (*movsi_or): Switch operand order for intel syntax.
+
+2000-10-14  Joseph S. Myers  <jsm28@cam.ac.uk>
+
+       * PROBLEMS: Remove.
+
+       * gcc.texi (Contributing): Update.
+
+2000-10-13  Diego Novillo  <dnovillo@cygnus.com>
+
+       * config/i386/unix.h (ASM_OUTPUT_MI_THUNK): Output final jump using
+       appropriate assembler dialect.
+
+2000-10-13  Alexandre Oliva  <aoliva@redhat.com>
+
+       * c-common.c (c_expand_builtin): PARAMS-ize prototype.
+
+2000-10-12  Marek Michalkiewicz  <marekm@linux.org.pl>
+
+       * config/avr/avr.c (output_movhi, output_movsisf): Fix loading
+       constants 1 and 2 to NO_LD_REGS.
+
+2000-10-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * Makefile.in (c-parse.c, tradcif.c): Create atomically.
+       
+       * objc/Make-lang.in (objc-parse.c): Likewise.
+
+2000-10-13  Richard Earnshaw <rearnsha@arm.com>
+
+       * arm.c: Include obstack.h
+       (minipool_obstack, minipool_startobj): Define.
+       (arm_add_gc_roots): Initialize them.
+       (create_fix_barrier): Use our new obstack.
+       (push_minipool_barrier, push_minipool_fix): Likewise.
+       (arm_reorg): Release obstack memory.
+
+2000-10-13  Jakub Jelinek  <jakub@redhat.com>
+
+       * config/sparc/sparc.md (nonlocal_goto_receiver): Remove.
+       (prologue, exception_receiver, builtin_setjmp_receiver): New
+       patterns.
+       * config/sparc/sparc.h (FINALIZE_PIC): Remove.
+       * config/sparc/sparc-protos.h (finalize_pic): Remove.
+       (load_pic_register): New prototype.
+       * config/sparc/sparc.c (pic_setup_code): Remove.
+       (finalize_pic): Rename to...
+       (load_pic_register): ...this function.
+       Don't look for nonlocal_goto_receivers and emit pic setup code
+       directly.  Don't check current_function_uses_pic_offset_table.
+
+2000-10-13  Richard Earnshaw <rearnsha@arm.com>
+
+       * tree.h (struct obstack): Declare.
+
+2000-10-12  Mark Mitchell  <mark@codesourcery.com>
+
+       Remove obstacks.  
+       * Makefile.in (ggc-callbacks.o): Remove target.
+       (flow.o): Depend on GGC_H.  
+       * alias.c (init_alias_analysis):
+       Remove ggc_p conditionals.
+       (end_alias_analysis): Likewise.  
+       * basic-block.h (init_flow): New function.
+       (allocate_reg_life_data): Declare.  
+       * bb-reorder.c  (function_obstack): Replace with ...
+       (flow_obstack): ... new variable.
+       (fixup_reorder_chain): Use it.  
+       * c-decl.c (ggc_p): Remove.
+       (caller-save.c): Don't call oballoc/obfree.  
+       * combine.c (struct
+       undobuf): Remove storage.
+       (try_combine): Don't call oballoc.
+       (undo_all): Don't call obfree.  
+       * cse.c (insert): Use xmalloc, not
+       oballoc.
+       (cse_main): Adjust accordingly.  
+       * dwarf2out.c (save_rtx): Remove
+       obstack code.
+       (dwarf2out_init): Remove ggc_p conditionals.  
+       * emit-rtl.c (rtl_obstack): Remove.
+       (gen_rtx_CONST_INT): Remove ggc_p conditionals.
+       (make_insn_raw): Likewise.
+       (emit_insn_before): Likewise.
+       (emit_insn_after): Likewise.
+       (emit_insn): Likewise.
+       (gen_sequence): Likewise.
+       (copy_insn_1): Remove handling of `b' RTL components.
+       (init_emit_once): Remove ggc_p conditionals.  
+       * except.c (create_rethrow_ref): Don't fool with obstacks.
+       (add_partial_entry): Likewise.
+       (call_get_eh_context): Likewise.
+       (begin_protect_partials): Likewise.
+       (protect_with_terminate): Likewise.  
+       * explow.c
+       (plus_constant_wide): Likewise.  
+       * expr.c (init_expr_once):
+       Likewise.
+       (emit_block_move): Likewise.
+       (clear_storage): Likewise.
+       (expand_expr): Likewise.  
+       * flow.c (function_obstack): Remove.
+       (flow_obstack): New variable.
+       (flow_firstobj): Likewise.
+       (create_base_block): Use the flow_obstack.
+       (split_block): Likewise.
+       (split_edge): Likewise.
+       (calculate_global_regs_live): Likewise.
+       (allocate_bb_life_data): Make it static.  Likewiwse.
+       (init_flow): New function.
+       (size_int_type_wide): Remove ggc_p conditionals.  
+       * function.c
+       (push_function_context_to): Don't call save_tree_status.
+       (pop_function_context_from): Or restore_tree_status.
+       (assign_stack_local_1): Don't call push_obstacks.
+       (find_fixup_replacement): Use xmalloc.
+       (fixup_var_refs_insns): Free the storage.
+       (insns_for_mem_walk): Don't mess with obstacks.
+       (instantiate_decls): Likewise.
+       (trampoline_address): Likewise.
+       (expand_function_end): Likewise.  
+       * function.h (sturct function):
+       Remove obstack-related variables.
+       (save_tree_status): Don't declare.
+       (restore_tree_status): Likewise.  
+       * gcse.c (compute_can_copy):
+       Don't call oballoc/obfree.  
+       * genattrtab.c (operate_exp): Remove
+       ggc_p conditionals.
+       (simplify_cond): Likewise.
+       (simplify_test_exp): Don't mess with obstacks.
+       (optimize_attrs): Likewise.  
+       * gengenrtl.c (gendef): Don't include
+       ggc_p conditionals.  
+       * ggc-callbacks.c (ggc_p): Remove.  
+       * ggc-none.c (ggc_p): Remove.  
+       * ggc.h (ggc_p): Don't declare.  
+       * integrate.c (save_for_inline): Don't mess with obstacks.
+       (integrate_decl_tree): Likewise.
+       (output_inline_function): Likewise.  
+       * lists.c
+       (init_EXPR_INSN_LIST_cache): Likewise.  
+       * loop.c (temp_obstack):
+       Remove.
+       (rtl_obstack): Likewise.
+       (init_loop): Don't mess with obstacks.
+       (reg_address_cost): Free BIVs and GIVs.
+       (check_insns_for_bivs): Use xmalloc, not oballoc.
+       (find_mem_givs): Likewise.
+       (record_biv): Likewise.
+       (general_induction_var): Likewise.
+       (product_cheap_p): Likewse.  
+       * optabs.c (init_one_libfunc): Remove
+       ggc_p conditional.  
+       * print-tree.c (debug_tree): Don't use
+       oballoc/obfree.
+       (print_node): Likewise.  
+       * profile.c (output_func_start_profiler):
+       Remove call to temporary_allocation.  
+       * reload1.c
+       (eliminate_regs_in_insn): Don't mess with obstacks.  
+       * resource.c
+       (mark_target_live_regs): Use xmalloc.
+       (free_resource_info): Free the memory.  
+       * rtl.c (rtl_obstack):
+       Remove.
+       (rtvec_alloc): Don't mess with obstacks.
+       (rtx_alloc): Likewise.
+       (rtx_free): Remove.
+       (copy_rtx): Don't handle `b' cases.
+       (read_rtx): Use a local rtl_obstack.  
+       * rtl.h (oballoc): Remove.
+       (obfree): Likewise.
+       (pop_obstacks): Likewise.
+       (push_obstacks): Likewise.
+       (allocate_bb_life_data): Likewise.
+       (allocate_reg_life_data): Likewise.
+       (rtx_free): Likewise.  
+       * sdbout.c (sdbout_queue_anonymous_type):
+       Use tree_cons, not saveable_tree_cons.  
+       * simplify-rtx.c
+       (cselib_init): Don't mess with obstacks.  
+       * stmt.c
+       (mark_block_nesting): Mark the label_chain.
+       (epxand_label): Use ggc_alloc, not oballoc.
+       (clear_last_expr): Don't mess with obstacks.
+       (expand_decl_cleanup): Likewise.
+       (expand_dcc_cleanup): Likewise.
+       (expand_dhc_cleanup): Likewise.
+       (expand_anon_union_decl): Likewise.
+       (add_case_node): Use xmalloc, not oballoc.
+       (free_case_nodes): New function.
+       (expand_end_case): Call it.  
+       * stor-layout.c (layout_type): Don't
+       mess with obstacks.
+       (layout_type): Likewise.  
+       * toplev.c (wrapup_global_declarations):
+       Likewise.
+       (compile_file): Remove ggc_p conditionals.
+       (rest_of_compilation): Call init_flow.  Remove ggc_p conditionals.
+       (decode_f_option): Remove ggc_p conditionals.  
+       * tree.c
+       (function_maybepermanent_obstack): Remove.
+       (maybepermanent_obstack): Likewise.
+       (function_obstack): Likewise.
+       (tmeporary_obstack): Likewise.
+       (momentary_obstack): Likewise.
+       (temp_decl_obstack): Likewise.
+       (saveable_obstack): Likewise.
+       (rtl_obstack): Likewise.
+       (current_obstack): Likewise.
+       (expression_obstack): Likewise.
+       (struct obstack_stack): Likewise.
+       (obstack_stack): Likewise.
+       (obstack_stack_obstack): Likewise.
+       (maybepermanent_firstobj): Likewise.
+       (temporary_firstobj): Likewise.
+       (momentary_firstobj): Likewise.
+       (temp_decl_firstobj): Likewise.
+       (momentary_function_firstobj): Likewise.
+       (all_types_permanent): Likewise.
+       (struct momentary_level): Likewise.
+       (momentary_stack): Likewise.
+       (init_obstacks): Remove initialization of removed obstacks.
+       (save_tree_status): Remove.
+       (restore_tree_status): Likewise.
+       (temporary_allocation): Liekwise.
+       (end_temporary_allocation): Liekwise.
+       (resume_temporary_allocation): Likewise.
+       (saveable_allocation): Likewise.
+       (push_obstacks): Likewise.
+       (push_obstacks_nochange): Likewise.
+       (pop_obstacks): Likewise.
+       (allocation_temporary_p): Likewise.
+       (permanent_allocation): Likewise.
+       (preserve_data): Likewise.
+       (preserve_initializer): Likewise.
+       (rtl_in_current_obstack): Likewise.
+       (rtl_in_saveable_obstack): Likewise.
+       (oballoc): Likewise.
+       (obfree): Likewise.
+       (savealloc): Likewise.
+       (expralloc): Likewise.
+       (print_obstack_name): Likewise.
+       (debug_obstack): Likewise.
+       (object_permanent_p): Likewise.
+       (push_momentary): Likewise.
+       (perserve_momentary): Likewise.
+       (clear_momentary): Likewise.
+       (pop_momentary): Likewise.
+       (pop_momentary_nofree): Likewise.
+       (suspend_momentary): Likewise.
+       (resume_momentary): Likewise.
+       (make_node): Don't set TREE_PERMANENT.
+       (copy_node): Remove ggc_p conditionals.  Don't set TYPE_OBSTACK.
+       Don't set TREE_PERMANENT.
+       (get_identifier): Remove ggc_p conditionals.
+       (build_string): Likewise.
+       (make_tree_vec): Likewise.
+       (build_decl_list): Remove.
+       (build_expr_list): Likewise.
+       (tree_cons): Remove ggc_p conditionals.
+       (decl_tree_cons): Remove.
+       (expr_tree_cons): Likewise.
+       (perm_tree_cons): Likewise.
+       (temp_tree_cons): Likewise.
+       (saveable_tree_cons): Likewise.
+       (build1): Remove ggc_p conditionals.
+       (build_parse_node): Likewise.
+       (build_type_attribute_variant): Don't mess with obstacks.
+       (build_type_copy): Likewise.
+       (type_hash_canon): Likewise.
+       (build_pointer_type): Likewise.
+       (build_reference_type): Likewise.
+       (build_index_type): Likewise.
+       (build_range_type): Likewise.
+       (dump_tree_statistics): Don't print obstack information.  
+       * tree.h
+       (struct tree_common): Remove permanent_flag.
+       (TREE_PERMANENT): Remove.
+       (TREE_SET_PERMANENT): Likewise.
+       (TYPE_OBSTACK): Likewise.
+       (struct tree_type): Remove obstack.
+       (oballoc): Remove.
+       (savealloc): Likewise.
+       (build_decl_list): Likewise.
+       (build_expr_list): Likewise.
+       (perm_tree_cons): Likewise.
+       (temp_tree_cons): Likewise.
+       (saveable_tree_cons): Likewise.
+       (decl_tree_cons): Likewise.
+       (expr_tree_cons): Likewise.
+       (suspend_momentary): Likewise.
+       (allocation_temporary_p): Likewise.
+       (resume_momentary): Likewise.
+       (push_obstacks_nochange): Likewise.
+       (permanent_allocation): Likewise.
+       (push_momentary): Likewise.
+       (clear_momentary): Likewise.
+       (pop_momentary): Likewise.
+       (end_temporary_allocation): Likewise.
+       (pop_obstacks): Likewise.
+       (push_obstacks): Likewise.
+       (pop_momentary_nofree): LIkewise.
+       (preserve_momentary): Likewise.
+       (saveable_allocation): Likewise.
+       (temporary_allocation): Likewise.
+       (resume_temporary_allocation): Likewise.
+       (perserve_initializer): Likewise.
+       (debug_obstack): Likewise.
+       (rtl_in_current_obstack): Likewise.
+       (rtl_in_saveable_obstack): Likewise.
+       (obfree): Likewise.  
+       * varasm.c (current_obstack): Remove.
+       (saveable_obstack): Remove.
+       (rtl_obstack): Remove.
+       (immed_double_const): Don't mess with obstacks.
+       (immed_real_cons): Likewise.
+       (output_constant_def): Likewise.
+       (init_varasm_status): Use xcalloc.
+       (mark_pool_constant): Mark the pool constant itself.
+       (free_varasm_status): Free memory.
+       (decode_rtx_const): Call bzero directly, rather than expanding it
+       inline.
+       (record_rtx_const): Don't mess with obstacks.
+       (force_const_mem): Likewise.
+       * config/arm/arm.c (arm_encode_call_attribute): Remove ggc_p
+       conditionals.
+       (aof_pic_entry): Likewise.
+       * config/ia64/ia64.c (ia64_encode_section_info): Likewise.
+       * config/m32r/m32r.c (m32r_encode_section_info): Likewise.
+       * config/pa/pa.c (saveable_obstack): Remove.
+       (rtl_obstack): Likewise.
+       (current_obstack): Likewise.
+       (output_call): Don't mess with obstacks.
+       (hppa_encode_label): Remove ggc_p conditionals.
+       * config/romp/romp.c (get_symref): Don't mess with obstacks.
+       * config/rs6000/rs6000.c (output_toc): Remove ggc_p conditional.
+       (rs6000_encode_section_info): Likewise.
+       * config/sh/sh.c (get_fpscr_rtx): Likewise.
+       
+Thu Oct 12 16:02:31 MET DST 2000 Jan Hubicka  <jh@suse.cz>
+
+       * i386.md (adddi3, subdi3 splitters): Update for new pattern.
+       (addsi3_cc, addqi3_cc, subsi3_cc): Remove
+       (addsi3_carry): Canonicalize.
+       (addqi_5): Remove '*'.
+       (sbb pattern): Canonicalize.
+
+       * i386.md (cmp to inc/add peep2): New.
+
+2000-10-12  Richard Earnshaw  <rearnsha@arm.com>
+
+       * bb-reorder.c (reorder_basic_blocks): Allocate an aux block for
+       the exit block.
+
+2000-10-12  Joseph S. Myers  <jsm28@cam.ac.uk>
+
+       * gcc.texi: Merge in contents of README.TRAD and TESTS.FLUNK.
+       * README.TRAD, TESTS.FLUNK: Remove.
+
+2000-10-12  Joseph S. Myers  <jsm28@cam.ac.uk>
+
+       * c-common.c (decl_attributes): Don't allow strftime formats with
+       first_arg_num nonzero.
+       (check_format_info): Set wanted_type and wanted_type_name to zero
+       before they are possibly assigned and used.
+
+2000-10-12  Joseph S. Myers  <jsm28@cam.ac.uk>
+
+       * c-common.c (scanf_flag_specs): Add flags ' and I.
+       (strftime_flag_pairs): Disallow any pair of the _, - and 0 flags,
+       or the ^ and # flags together.
+       (scan_char_table): Handle the ' and I flags.
+       (format_types): Add ' and I flags for scanf.
+
+2000-10-12  Joseph S. Myers  <jsm28@cam.ac.uk>
+
+       * c-common.c (print_char_table): Use the unpromoted type for
+       lengths "h" and "hh" with conversions dioxXu.
+       (check_format_types): Apply the default argument promotions where
+       the wanted type is not a pointer target.
+
+2000-10-11  Michael Meeks  <mmeeks@gnu.org>
+            Joseph S. Myers  <jsm28@cam.ac.uk>
+
+       * c-typeck.c (check_modify_expr): New function.
+       (build_modify_expr): Call it if warn_sequence_point.
+       * c-decl.c (warn_sequence_point): New variable.
+       (c_decode_option): Handle -Wsequence-point and
+       -Wno-sequence-point.  Enable -Wsequence-point as part of -Wall.
+       * c-tree.h (warn_sequence_point): Declare.
+       * invoke.texi (-Wsequence-point): Document.
+       * toplev.c (documented_lang_options): Add -Wsequence-point and
+       -Wno-sequence-point.
+       Original work by Michael Meeks, 16 Jun 1998.
+
+Wed Oct 11 06:15:41 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * tree.c (get_narrower): Don't look at precision of field if
+       not laid out yet.
+
+Tue Oct 10 23:14:33 2000  Denis Chertykov  <denisc@overta.ru>
+
+       * config/avr/avr.c (valid_machine_decl_attribute): Allow `extern'
+       declaration for data with "progmem" attribute.
+
+2000-10-09  Marek Michalkiewicz  <marekm@linux.org.pl>
+
+       * config/avr/avr.c (out_shift_with_cnt): Use AS2 macro.
+       Correct insn length if shift count is a memory operand.
+       * config/avr/avr.md: New define_peephole2 to use *reload_inqi.
+       (*iorhi3_clobber): Change lo8 to hi8.
+       (zero_extendhisi2): Change %B0 to %A1.
+       (ashlhi3, ashrhi3): Correct insn length.
+       (andhi3, abssf2, extendqisi2, extendhisi2): Change "cc"
+       from "clobber" to "set_n" in some alternatives.
+
+2000-10-10  Jakub Jelinek  <jakub@redhat.com>
+
+       * reload1.c (calculate_needs_all_insns): If deleting an instruction,
+       remove its insn_chain structure as well.
+
+2000-10-09  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
+
+       * dbxout.c (dbxout_source_line): Remove extra tab.
+
+2000-10-09  Hans-Peter Nilsson  <hp@bitrange.com>
+
+       * config/elfos.h (UNIQUE_SECTION): Apply STRIP_NAME_ENCODING on name.
+
+2000-10-09  Richard Henderson  <rth@cygnus.com>
+
+       * Makefile.in (LANG_LIB2FUNCS): Remove.
+       (LIB2FUNCS): Remove _pure.
+       (LIB2ADD): Remove LANG_LIB2FUNCS.
+       (stage_a): Don't set LANG_LIB2FUNCS.
+       * libgcc2.c (__terminate): Mark noreturn.
+       (__pure_virtual): Remove.
+       * mklibgcc.in: Remove LIB2ADD .txt processing.
+
+2000-10-09  Richard Earnshaw  <rearnsha@arm.com>
+
+       * arm.md (push_multi): Revert unintended change.
+
+2000-10-09  Richard Earnshaw  <rearnsha@arm.com>
+
+       * arm.c: Miscellaneous white space and comment clean-ups.  No 
+       functional change.
+       * arm.md: Likewise.
+
+2000-10-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * c-common.c (c_expand_builtin_printf): Set the TREE_TYPE of a new
+       STRING_CST by calling combine_strings.
+
+2000-10-09  Richard Earnshaw  <rearnsha@arm.com>
+
+       * arm.c (thumb_expand_movstrqi): Rewrite to support SSA form.
+       (thumb_output_move_mem_multiple): Support new insn format.
+       * arm.md (movmem12b): Use SSA compatible format.
+       (movmem8b): Likewise.
+
+2000-10-09  Richard Earnshaw  <rearnsha@arm.com>
+
+       * arm.md (predicable): New attribute, default to "no".
+       (all patterns): Mark as predicable if appropriate.
+       (conditional execution splits): Split using predication format.
+       (define_cond_exec): Define.
+       * arm.c (arm_print_operand): handle insn predicate.
+       
+2000-10-09  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
+
+       * README.NS32K: Remove file.
+
+2000-10-09  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
+
+       * README-bugs: Remove file.
+
+2000-10-08  Philipp Thomas  <pthomas@suse.de>
+       * aclocal.m4 (AM_GNU_GETTEXT): Fix non portable use of == operator
+       for test.
+       * configure: Rebuilt.
+
+2000-10-08  Philipp Thomas  <pthomas@suse.de>
+       * aclocal.m4 (AM_WITH_NLS): When not using included gettext,
+       disable catalog building if no suitable program was found.
+       Move warning message from here
+       (AM_GNU_GETTEXT): To here.
+       * configure: Rebuilt.
+
+2000-10-08  Philipp Thomas  <pthomas@suse.de>
+       * aclocal.m4 (GCC_PATH_PROG): New. Like AC_PATH_PROG but uses
+       different cache variables.
+       (GCC_PATH_PROG_WITH_TEST): New. Like AM_PATH_PROG_WITH_TEST but
+       uses different cache variables.
+       (AM_WITH_NLS): Use GCC_PATH_PROG and GCC_PATH_PROG_WITH_TEST.
+       * configure: Regenerated.
+       
+2000-10-08  Richard Henderson  <rth@cygnus.com>
+
+       * Makefile.in (libgcc.mk): Pass SHLIB_EXT, not SHLIB_LIBS.
+       * configure.in (sparc*-*-solaris*): Use t-slibgcc{,-sld}.
+       * mklibgcc.in: Consider SHLIB_LINK the entire shlib build command.
+       Use SHLIB_EXT.
+
+       * config/t-linux (SHLIB_EXT): New.
+       (SHLIB_LINK): Use the entire build command, with substitutions.
+       (SHLIB_LIBS): Remove.
+       * config/alpha/t-osf4: Likewise.
+       * config/mips/t-iris6: Likewise.
+       * config/sparc/t-sol2: Likewise, but move shlib stuff...
+       * config/sparc/t-slibgcc-sld: ...here.
+       * config/sparc/t-slibgcc: New file.
+
+2000-10-08  Joseph S. Myers  <jsm28@cam.ac.uk>
+
+       * tm.texi (INTMAX_TYPE, UINTMAX_TYPE): Define.
+       * c-common.h (enum c_tree_index): Add CTI_INTMAX_TYPE and
+       CTI_UINTMAX_TYPE.
+       (intmax_type_node, uintmax_type_node): Define.
+       * c-common.c (decl_attributes): If pedantic, warn if `mode'
+       attributes create a type wider than intmax_t.
+       (T_IM, T_UIM): Define properly.
+       * c-decl.c (INTMAX_TYPE, UINTMAX_TYPE): Define if not already
+       defined.
+       (init_decl_processing): Initialize intmax_type_node and
+       uintmax_type_node.
+       * c-lex.c (lex_number): When pedantic and warning for integer
+       constants that are too large, in C99 mode warn for those that have
+       a type wider than long long.
+
+2000-10-08  Joseph S. Myers  <jsm28@cam.ac.uk>
+
+       * c-common.c (FMT_FLAG_ARG_CONVERT, FMT_FLAG_SCANF_A_KLUDGE,
+       FMT_FLAG_FANCY_PERCENT_OK): Define.
+       (format_char_info): Add flag "4" to comment.
+       (format_flag_spec, format_flag_pair): New structures.
+       (format_kind_info): Add additional fields to control format
+       checking.
+       (printf_flag_specs, printf_flag_pairs, scanf_flag_specs,
+       scanf_flag_pairs, strftime_flag_specs, strftime_flag_pairs): New
+       arrays.
+       (time_char_table): Use "4" flag to handle %Ey.
+       (format_types): Add entries for new fields.
+       (get_flag_spec): New function.
+       (check_format_info): Increase size of flag_chars[] to 256.
+       Control format checking using the new fields of a format_kind_info
+       and the new tables; remove all conditionals on printf_format_type,
+       scanf_format_type or strftime_format_type.  Handle all details of
+       bad combinations of flags (including width, precision and strftime
+       modifiers) through data rather than ad hoc code.  Handle all
+       details of standard versions in which flags appeared through
+       data.  Use the "4" flag.
+
+2000-10-07  Will Cohen  <wcohen@redhat.com>, Kazu Hirata  <kazu@hxi.com>
+
+       * config/h8300/h8300.md: Remove the memory alternative and correct
+       the insn lengths in the templates for sign extention and zero
+       extention.
+
+2000-10-07  Richard Henderson  <rth@cygnus.com>
+
+       * calls.c (expand_call): Disallow sibcalls to noreturn functions.
+       * flow.c (make_edges): Revert last change.
+
+       * config/alpha/alpha.h (FUNCTION_OK_FOR_SIBCALL): Don't test
+       TREE_THIS_VOLATILE.
+       * config/pa/pa.h (FUNCTION_OK_FOR_SIBCALL): Likewise.
+
+2000-10-06  David O'Brien  <obrien@dragon.nuxi.com>
+
+       * config/alpha/elf.h: Standardize the formatting.
+
+2000-10-06  David O'Brien  <obrien@FreeBSD.org>
+
+       * config/alpha/elf.h: Protect the ASM_OUTPUT_IDENT definition with an
+       #undef.
+
+2000-10-06  Richard Henderson  <rth@cygnus.com>
+
+       * function.c (diddle_return_value): Examine
+       current_function_return_rtx instead of the DECL_RESULT.
+       (expand_function_end): Handle reloading DECL_RESULT from memory
+       into a hard register.  Query promote_mode for sign of mismatched
+       modes.
+
+2000-10-06  Vladimir Makarov  <vmakarov@touchme.toronto.redhat.com>
+
+       * haifa-sched.c (schedule_insns): Fix typo in freeing
+       forward_dependency_cache.
+
+2000-10-06  Alexandre Oliva  <aoliva@redhat.com>
+
+       * config/sh/sh.md (calli_pcrel, call_valuei_pcrel): Add
+       `TARGET_SH2' as a condition.
+
+2000-10-06  Vladimir Makarov  <vmakarov@touchme.toronto.redhat.com>
+
+       * haifa-sched.c (anti_dependency_cache, output_dependency_cache,
+       forward_dependency_cache): New variables.
+       (add_dependence, remove_dependence): Use anti_dependency_cache and
+       output_dependency_cache.
+       (compute_block_forward_dependences): Use forward_dependency_cache.
+       (schedule_insns): Allocate and free memory for anti/output/forward
+       dependencies caches.
+       
+2000-10-06  Alexandre Oliva  <aoliva@redhat.com>
+
+       * config/sh/sh.md (call, call_value): Use `TARGET_SH2' instead of
+       `! TARGET_SH1'.  Reindent.
+
+2000-10-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * builtins.c (is_valid_printf_arglist, expand_builtin_printf):
+       Move functions from here ...
+
+       * c-common.c (is_valid_printf_arglist, c_expand_builtin_printf):
+       ... to here.
+       (c_expand_builtin): New function.
+       (init_function_format_info): Don't set `check_function_format_ptr'.
+       (c_common_nodes_and_builtins): Set built_in_class type for
+       printf/__builtin_printf to BUILT_IN_FRONTEND.
+       (c_expand_expr): Handle CALL_EXPRs that are front-end builtins.
+
+       * c-common.h (build_function_call): Declare.
+
+       * expr.c (expand_expr): Pass builtins with class BUILT_IN_FRONTEND
+       to `lang_expand_expr' rather than `expand_builtin'.
+
+       * tree.c (check_function_format_ptr): Delete.
+
+       * tree.h (check_function_format_ptr): Likewise.
+
+2000-10-06  Hans-Peter Nilsson  <hp@bitrange.com>
+
+       * dwarf2out.c (build_cfa_loc): Correct to use DW_OP_regx or
+       DW_OP_bregx when cfa->reg > 31.
+
+       * frame-dwarf2.c (decode_stack_op) [case DW_OP_regx]: Add missing
+       break.
+
+2000-10-05  Richard Henderson  <rth@cygnus.com>
+
+       * c-decl.c (warn_missing_noreturn): Remove.
+       (c_expand_body): Don't set or check can_reach_end.
+       * c-tree.h (warn_missing_noreturn): Move ...
+       * flags.h: ... here.
+       (can_reach_end): Remove.
+       * flow.c (check_function_return_warnings): New.
+       (make_edges): No edge to exit for noreturn sibcalls.
+       * function.c (expand_function_end): Save the return value
+       clobber instruction.
+       (mark_function_status): Mark it.
+       * function.h (struct function): Add x_clobber_return_insn.
+       * jump.c (can_reach_end): Remove.
+       (calculate_can_reach_end): Remove.
+       (jump_optimize_1): Don't call it.
+       * output.h (check_function_return_warnings): Declare.
+       * toplev.c (warn_missing_noreturn): Move from c-decl.c
+       (rest_of_compilation): Call check_function_return_warnings.
+
+2000-10-05  Richard Henderson  <rth@cygnus.com>
+
+       * Makefile.in (NM_FOR_TARGET): New.
+       (libgcc.mk): Pass SHLIB_MKMAP, SHLIB_MAPFILES.
+       (libgcc.a, stmp-multilib): Pass NM_FOR_TARGET.
+       * mklibgcc.in: If SHLIB_MKMAP, build libgcc.map.  Depend the
+       shared library build on that and EXTRA_MULTILIB_PARTS.
+       * mkmap-flat.awk: New file.
+       * mkmap-symver.awk: New file.
+       * libgcc-std.ver: New file.
+       * config/libgcc-glibc.ver: New file.
+       * config/ia64/libgcc-ia64.ver: New file.
+       * config/t-linux (SHLIB_MKMAP, SHLIB_MAPFILES): New.
+       (SHLIB_LINK): Add --version-script.
+       * config/ia64/t-ia64 (SHLIB_MAPFILES): Add libgcc-ia64.ver.
+       * config/mips/t-iris6 (SHLIB_MKMAP, SHLIB_MAPFILES): New.
+       * config/sparc/t-sol2 (SHLIB_MKMAP, SHLIB_MAPFILES): New.
+       (SHLIB_LINK): Add -M.
+
+2000-10-05  Richard Henderson  <rth@cygnus.com>
+
+       * Makefile.in (LIB2FUNCS): Add _clz.
+       * libgcc2.c (__ffsdi2): Use count_trailing_zeros.
+       (__clz_tab): Put in its own unit, non-static.
+       * libgcc2.h: Always include longlong.h.
+
+       * longlong.h [alpha] (count_leading_zeros): Use cmpbge with
+       a zero instead of -1.
+       (count_trailing_zeros): Likewise.
+
+2000-10-05  Richard Henderson  <rth@cygnus.com>
+
+       * config/alpha/alpha.c (alpha_emit_setcc): Don't swap GT tests
+       when second op1 is const0_rtx.  Validate op0 as a register.
+       * config/alpha/alpha.md (setcc_internal): Don't allow constants
+       in the first argument of the compare.
+       (setcc_swapped_internal): Likewise.
+       (setne_internal): Likewise.
+
+2000-10-05  Geoff Keating  <geoffk@cygnus.com>
+
+       * tree.c (tree_size): New function split out of copy_node.
+       (make_node): Remove obstack handling.  Use tree_size.
+       (copy_node): Use tree_size.
+       * tree.h: Prototype tree_size.
+
+2000-10-05  Richard Henderson  <rth@cygnus.com>
+
+       * diagnostic.c (output_format): Add missing break.
+
+2000-10-05  Jim Wilson  <wilson@cygnus.com>
+
+       * function.c (fixup_var_refs_1, case SET): When gen_move_insn returns a
+       SEQUENCE, call emit_insn_before, copy PATTERN and REG_NOTES of last
+       sequence insn to INSN, and delete last sequence insn.
+
 2000-10-05  Phil Edwards  <pme@gcc.gnu.org>
 
        * gcc.c (main): Include generated configargs.h header
@@ -71,6 +1107,11 @@ Mon Oct  2 14:50:14 MET DST 2000  Jan Hubicka  <jh@suse.cz>
        * configure.in (sparc-*-solaris2*): Disable 32-to-64 cross
        compilation for solaris versions 2.7 and greater.
 
+2000-10-02  Marc Espie <espie@openbsd.org>
+
+       * config/alpha.h (WORD_SWITCH_TAKES_ARG): add -rpath to default,
+       instead of redefining from scratch.
+
 2000-10-02  David O'Brien  <obrien@dragon.nuxi.com>
 
        * config/i386/freebsd.h (NO_PROFILE_COUNTERS): Define.