OSDN Git Service

* c-common.c (c_format_attribute_table): Make format and
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index d526acf..72e101e 100644 (file)
@@ -1,3 +1,673 @@
+2001-10-02  Joseph S. Myers  <jsm28@cam.ac.uk>
+
+       * c-common.c (c_format_attribute_table): Make format and
+       format_arg attributes apply to function types rather than to
+       decls.
+       (is_valid_printf_arglist): Construct an attribute list and pass
+       that to check_function_format rather than a name.
+       * c-common.h (check_function_format): Adjust prototype.
+       * c-decl.c (duplicate_decls): Preserve attributes from type of
+       built-in decl when allowing for harmless conflict in types.
+       * c-format.c (record_function_format,
+       record_international_format, function_format_list,
+       international_format_info, international_format_list): Remove.
+       (function_format_info): Remove next, name and assembler_name.
+       Make format_num and first_arg_num be unsigned HOST_WIDE_INT.
+       (decode_format_attr): New.
+       (handle_format_attribute): Handle receiving a type rather than a
+       decl.  Call decode_format_attr.  Store format information in a
+       function_format_info.
+       (handle_format_arg_attribute): Correct comment.  Handle receiving
+       a type rather than a decl.  Use unsigned HOST_WIDE_INT for
+       arg_num.
+       (check_format_info_recurse, check_format_info_main): Take argument
+       numbers as unsigned HOST_WIDE_INT.
+       (check_function_format): Take a list of attributes from the
+       function type rather than a name or assembler name.  Check for
+       format attributes in that list and the attributes on the type of
+       the current function rather than looking through
+       function_format_list.
+       (check_format_info): Use unsigned HOST_WIDE_INT for argument
+       numbers.
+       (check_format_info_recurse): Take format_arg attributes from the
+       type of the function calls rather than using
+       international_format_list.  Allow for multiple format_arg
+       attributes.
+       * c-typeck.c (build_function_call): Pass type attributes to
+       check_function_format rather than name or assembler name.  Don't
+       require there to be a name or assembler name to check formats.
+
+2001-10-02  Joseph S. Myers  <jsm28@cam.ac.uk>
+
+       * attribs.c (decl_attributes): Possibly call
+       insert_default_attributes to insert default attributes on
+       functions in a lazy manner.
+       * builtin-attrs.def: New file; define the default format and
+       format_arg attributes.
+       * c-common.c (c_format_attribute_table): Move to earlier in the
+       file.
+       (c_common_nodes_and_builtins): Initialize format_attribute_table.
+       (enum built_in_attribute, built_in_attributes,
+       c_attrs_initialized, c_init_attributes,
+       c_common_insert_default_attributes): New.
+       (c_common_lang_init): Don't initialize format_attribute_table.  Do
+       call c_init_attributes.
+       * Makefile.in (c-common.o): Depend on builtin-attrs.def.
+       * c-common.h (init_function_format_info): Don't declare.
+       (c_common_insert_default_attributes): Declare.
+       * c-decl.c (implicitly_declare, builtin_function): Call
+       decl_attributes.
+       (init_decl_processing): Don't call init_function_format_info.
+       (insert_default_attributes): New.
+       * c-format.c (handle_format_attribute,
+       handle_format_arg_attribute): Be quiet about inappropriate
+       declaration when applying default attributes.
+       (init_function_format_info): Remove.
+       * tree.h (enum attribute_flags): Add ATTR_FLAG_BUILT_IN.
+       (insert_default_attributes): Declare.
+
+2001-10-02  Joseph S. Myers  <jsm28@cam.ac.uk>
+
+       * c-format.c (CPLUSPLUS_STD_VER): Define to STD_C94.
+
+2001-10-01  Jim Wilson  <wilson@redhat.com>
+
+       * sched-deps.c (add_dependence): When elide conditional dependence,
+       check that insn doesn't modify cond2.
+
+2001-10-01  Dale Johannesen  <dalej@apple.com>
+
+       * config/rs6000/rs6000.h (enum processor_type): Add support
+       for 7400 (G4) and 7450.
+       (RTX_COSTS): Ditto.
+       * config/rs6000/rs6000.c (rs6000_override_options): Ditto.
+       (rs6000_issue_rate): Ditto.
+       (rs6000_adjust_cost): Fix cycle counts for compares.
+       (debug_stack_info):  Fix an obvious typo.
+       * config/rs6000/rs6000.md: Add functional units for 7400 and 7450.
+       * doc/invoke.texi: Document.
+       * config/rs6000/darwin.h (TARGET_DEFAULT): Set to be reasonable
+       for Darwin.
+       (PROCESSOR_DEFAULT): Ditto.
+
+2001-10-01  Loren J. Rittle  <ljrittle@acm.org>
+
+       * Makefile.in (STAGE2_FLAGS_TO_PASS): Propagate HOST_CC.
+       (fixinc.sh): Map CC, CFLAGS and LDFLAGS to HOST_* versions for
+       later recursive make invocation.
+
+2001-10-01  Hans Boehm  <boehm@acm.org>
+
+       * optabs.c (emit_libcall_block): When using non-call exceptions,
+       don't add REG_LIBCALL reg notes to trapping calls.
+
+2001-10-01  David Billinghurst <David.Billinghurst@riotinto.com>
+
+       * flow.c (propagate_block_delete_libcall): Remove unused first arg
+       (propagate_one_insn):  Update for above change
+
+2001-10-01  David Billinghurst <David.Billinghurst@riotinto.com>
+
+       * unwind-sjlj.c (_Unwind_GetRegionStart, _Unwind_GetDataRelBase,
+       _Unwind_GetTextRelBase): Argument is unused.
+
+Mon Oct  1 19:20:57 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * alias.c (get_alias_set): Try to replace PLACEHOLDER_EXPR.
+       Loop through NOPs, placeholders, and components.
+       Don't go through NOPs if change mode.
+       (record_alias_subset): Do nothing if SUBSET and SET are the same.
+       * emit-rtl.c (set_mem_alias_set): Enable check.
+       * expr.c (find_placeholder): New function.
+       (expand_expr, case PLACEHOLDER_EXPR): Use it.
+       (expand_expr, case COMPONENT_EXPR): Always copy OP0 when we need
+       to modify it and avoid unneeded copies.
+       * expr.h (expand_expr): Always define.
+       (find_placeholder): New declaration.
+
+2001-10-01  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
+
+       * config/m68hc11/m68hc11.md ("add-split"): Fix add split when
+       operand 2 is the stack pointer.
+       ("addr-peephole"): Fix address computation peephole when operand 2
+       is the stack pointer.
+
+Mon Oct  1 09:26:41 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * config/i386/i386.c (ix86_va_arg): Call set_mem_alias_set.
+       (ix86_setup_incoming_varargs): Likewise.
+
+2001-10-01  Jason Merrill  <jason_merrill@redhat.com>
+
+       * stor-layout.c (layout_type): Don't complain about too-large
+       array here.
+
+Mon Oct  1 06:43:41 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * function.c (keep_stack_depressed): Don't use delete_insn.
+
+       * expr.h (set_mem_alias_set): Move decl to here.
+       * rtl.h (mem_attrs): New typedef and struct.
+       (union rtunion_def): Add field for mem_attrs.
+       (X0MEMATTR, MEM_ATTRS): New macros.
+       (MEM_ALIAS_SET): Use MEM_ATTRS.
+       (MEM_DECL, MEM_OFFSET, MEM_SIZE, MEM_ALIGN): New macros.
+       (MEM_COPY_ATTRIBUTES): Copy MEM_ATTRS.
+       (set_mem_alias_set): Delete decl from here.
+       
+       * alias.c (set_mem_alias_set): Delete from here.
+       * emit-rtl.c (mem_attrs_htab): New variable.
+       (rtx_htab_mark, rtx_htab_mark_1): Deleted.
+       (mem_attrs_htab_hash, mem_attrs_htab_eq): New functions.
+       (mem_attrs_mark, get_mem_attrs): Likewise.
+       (gen_rtx_MEM): Clear MEM_ATTRS.
+       (set_mem_attributes): Move to here.
+       (set_mem_alias_set): Likewise, and call get_mem_attrs.
+       (init_emit_once): const_int_htab now deletable htab.
+       Initialize mem_attrs_htab.
+       * explow.c (set_mem_attributes): Delete from here.
+       * function.c (put_var_into_stack): Clear MEM_ATTRS.
+       (gen_mem_addressof): Likewise; rework to use set_mem_attributes.
+       * ggc-common.c (ggc_mark_rtx_children, case MEM): New case.
+       * reload1.c (reload): Rework changing REG to MEM.
+
+2001-09-30  H.J. Lu <hjl@gnu.org>
+
+       * acconfig.h (PREFIX_INCLUDE_DIR): New variable.
+       * config.in: Rebuild.
+
+2001-09-30  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
+
+       * config/m68hc11/m68hc11.md ("cmpqi_1"): Fix constraints.
+       ("tsthi_1"): Avoid allocation in register y.
+       ("*movqi_68hc12"): Reorganize and fix constraints.
+       ("zero_extendqisi2"): Prefer d over x and y for operand 1.
+       ("addqi3"): Likewise.
+       ("addhi3"): Fix constraints.
+       ("*logicalhi3_zexthi"): Disparage soft registers.
+
+2001-09-30  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
+
+       * config/m68hc11/m68hc11.c (m68hc11_gen_movhi): Fix move of sp
+       to tmp reg.
+
+2001-09-30  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
+
+       * config/m68hc11/m68hc11.h(INCOMING_RETURN_ADDR_RTX): Remove so
+       that we use setjmp/longjmp exceptions.
+
+2001-09-30  Neil Booth  <neil@daikokuya.demon.co.uk>
+
+       * cpphash.h (POOL_ALIGN, POOL_FRONT, POOL_LIMIT, POOL_BASE,
+       POOL_SIZE, POOL_ROOM, POOL_COMMIT, struct cpp_chunk,
+       struct cpp_pool, _cpp_init_pool, _cpp_free_pool, _cpp_pool_reserve,
+       _cpp_pool_alloc, _cpp_next_chunk): Remove.
+       (_cpp_extend_buff, BUFF_ROOM): Update.
+       (_cpp_append_extend_buff): New.
+       (struct cpp_reader): Remove macro_pool, add a_buff.
+       * cppinit.c (cpp_create_reader): Initialize a_buff, instead of
+       macro_pool.
+       (cpp_destroy): Free a_buff instead of macro_pool.
+       * cpplex.c (new_chunk, chunk_suitable, _cpp_next_chunk,
+       new_chunk, _cpp_init_pool, _cpp_free_pool, _cpp_pool_reserve,
+       _cpp_pool_alloc, ): Remove.
+       (parse_number, parse_string): Update use of _cpp_extend_buff.
+       (_cpp_extend_buff): Update.
+       (_cpp_append_extend_buff, cpp_aligned_alloc): New.
+       * cpplib.c (glue_header_name, parse_answer):
+       Update use of _cpp_extend_buff.
+       (cpp_register_pragma, cpp_register_pragma_space): Use
+       _cpp_aligned_alloc.
+       (do_assert, do_unassert): Check for EOL, update.
+       * cppmacro.c (stringify_arg, collect_args): Update to use
+       _cpp_extend_buff and _cpp_append_extend_buff.
+       (save_parameter, parse_params, alloc_expansion_token,
+       _cpp_create_definition): Rework memory management.
+
+2001-09-29  Andris Pavenis  <pavenis@lanet.lv>
+
+       * config/i386/xm-djgpp.h (GCC_DRIVER_HOST_INITIALIZATION): Don't
+       update md_exec_prefix.
+       (UPDATE_PATH_HOST_CANONICALIZE): Don't free PATH as it can point
+       to string constant.
+
+2001-09-30  Ulrich Weigand  <uweigand@de.ibm.com>
+
+       * config/s390/s390.h (EXTRA_CC_MODES): Add CCLmode.
+       (SELECT_CC_MODE): Use s390_select_ccmode.
+       * config/s390/s390-protos.h (s390_select_ccmode): Add.
+       * config/s390/s390.c (s390_select_ccmode): New.
+       (s390_match_ccmode): Add CCLmode.
+       (s390_branch_condition_mask, s390_branch_condition_mnemonic): New.
+       (output_branch_condition, output_inverse_branch_condition): Removed.
+       (print_operand): Use s390_branch_condition_mnemonic.
+       * config/s390/s390.md (addsi3_cc, addsi3_cconly, addsi3_cconly2,
+       subsi3_cc, subsi3_cconly): Use logical instructions and CCLmode.
+       (bunordered, bordered, buneq, bungt, bunlt, bnuge, bunle, bltgt): New.
+
+       * config/s390/s390.c (check_and_change_labels): Preserve CC mode
+       when converting conditional branches to far branches.
+       * config/s390/s390.md (cmpstr_const, cmpstr_64, cmpstr_31, cmpint_si,
+       cmpint_di): Use CCSmode instead of CCUmode.
+
+       * config/s390/s390.c (legitimate_la_operand_p): New.
+       * config/s390/s390-protos.h (legitimate_la_operand_p): Add.
+       * config/s390/s390.md (movsi): Convert load address patterns to
+       arithmetic operations when necessary.
+       (addaddr_picR, addaddr_picL, addaddr_picN): Removed.
+       (do_la): Renamed to *do_la and use legitimate_la_operand_p.
+       (*do_la_reg_0): Don't use before reload.
+
+       * config/s390/s390.c (legitimize_address): Make more efficient
+       use of two-register addressing mode.
+
+       * config/s390/s390.c (s390_function_prologue): Fix incorrect prolog
+       with -mno-backchain in some corner cases.
+
+       * config/s390/s390.md (cmpsi_cct): Operands 0 and 1 do not commute.
+
+2001-09-29  Alexandre Oliva  <aoliva@redhat.com>
+
+       * reload.c (find_reloads): Mark new USE insns with QImode.
+       (find_reloads_toplev, find_reloads_address, subst_reg_equivs,
+       find_reloads_subreg_address): Likewise.
+       * regrename.c (note_sets, clear_dead_regs): Abort if pseudos are
+       encountered.
+       * reload1.c (reload_combine_note_use): Likewise, inside USEs and
+       CLOBBERs.
+       (reload): Make sure there are no USEs with mode other than
+       VOIDmode.  At the end, remove those marked with QImode.
+
+2001-09-29  Per Bothner  <per@bothner.com>
+
+       * cppdefault.c (cpp_include_defaults):  Also search PREFIX_INCLUDE_DIR.
+       * Makefile.in (includedir):  Rename to local_includedir.
+       (includedir):  Define as $(prefix)/include.
+       * config.in (PREFIX_INCLUDE_DIR):  New variable.
+       * configure.in (PREFIX_INCLUDE_DIR):  Test for new variable.
+
+2001-09-29  Bernd Schmidt  <bernds@redhat.com>
+
+       * config/i386/i386.c (init_mmx_sse_builtins): Fix type of storelps and
+       storehps builtins.
+       * doc/extend.texi (Vector Extensions): New node.
+       * doc/invoke.texi (Machine Dependent Options): Add documentation for
+        i386 -mmmx, -msse, -m3dnow.
+
+Sat Sep 29 15:08:16 CEST 2001  Jan Hubicka  <jh@suse.cz>
+
+       * doc/invoke.texi (Optimize Options): Revert an accidental checkin.
+
+2001-09-29  Hans-Peter Nilsson  <hp@axis.com>
+
+       * cse.c (cse_insn) [HAVE_cc0]: Fix typo delete-insn -> delete_insn.
+
+       * doc/invoke.texi (Optimize Options): Delete spurious @table.
+
+2001-09-28  Richard Henderson  <rth@redhat.com>
+
+       * varasm.c (assemble_integer): Bound alignment check by
+       BIGGEST_ALIGNMENT.
+
+       * cfgrtl.c (redirect_edge_and_branch): Abort if redirect_jump fails.
+
+2001-09-28  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
+
+       * config/i386/sol2.h (CPLUSPLUS_CPP_SPEC): Define.
+
+2001-09-25  Bernd Schmidt  <bernds@redhat.com>
+
+       Mostly from Graham Stott  <grahams@redhat.com>
+       * c-common.c (type_for_mode): Add support for V2SFmode.
+       * tree.c (build_common_tree_nodes_2): Likewise.
+       * tree.h (enum tree_index, global_trees): Likewise.
+       * config/i386/i386.c (x86_3dnow_a): New variable.
+       (override_options): Support 3Dnow extensions.
+       (bdesc_2arg, bdesc_1arg): Some SSE instructions are also part of
+       Athlon's version of 3Dnow.
+       (ix86_init_mmx_sse_builtins): Create 3Dnow builtins.
+       (ix86_expand_builtin): Handle them.
+       (ix86_hard_regno_mode_ok): Support V2SFmode if using 3Dnow.
+       * config/i386/i386.h (MASK_3DNOW, MASK_3DNOW_A, TARGET_3DNOW,
+       TARGET_3DNOW_A): New macros.
+       (TARGET_SWITCHES): Add 3Dnow switches.
+       (VALID_MMX_REG_MODE_3DNOW): New macro.
+       (VECTOR_MODE_SUPPORTED_P): Use it.
+       (enum ix86_builtins): Add entries for 3Dnow builtins.
+       * config/i386/i386.md (movv2sf_internal, movv2sf, pushv2sf, pf2id,
+       pf2iw, addv2sf3, subv2sf3, subrv2sf3, gtv2sf3, gev2sf3, eqv2sf3,
+       pfmaxv23sf3, pfminv2sf3, mulv2sf3, femms, prefetch_3dnow, prefetchw,
+       pfacc, pfnacc, pfpnacc, pi2fw, floatv2si2, pavgusb, pfrcpv2sf2,
+       pfrcpit1v2sf3, pfrcpit2v2sf3, pfrsqrtv2sf2, pfrsqit1v2sf3,
+       pmulhrwvhi3, pswapdv2si2, pswapdv2sf2): New patterns.
+       (mmx_pmovmskb, mmx_maskmovq, sse_movntdi, umulv4hi3_highpart,
+       mmx_uavgv8qi3, mmx_uavgv4hi3, mmx_psadbw, mmx_pinsrw, mmx_pextrw,
+       mmx_pshufw, umaxv8qi3, smaxv4hi3, uminv8qi3, sminv4hi3, sfence,
+       sfence_insn, prefetch): Make these available if TARGET_SSE or
+       TARGET_3DNOW_A.
+       
+Fri Sep 28 19:18:40 CEST 2001  Jan Hubicka  <jh@suse.cz>
+
+       * i386-protos.h (ix86_setup_incoming_varargs, ix86_va_arg,
+       ix86_va_start, ix86_build_va_list): Declare.
+       * i386.c (ix86_setup_incoming_varargs, ix86_va_arg,
+       ix86_va_start, ix86_build_va_list): New global functions.
+       * i386.md (sse_prologue_save_insn): New insn.
+       (sse_prologue_save): New expander.
+       * i386.h (EXPAND_BUILTIN_VA_ARG, EXPAND_BUILTIN_VA_START,
+       BUILD_VA_LIST_TYPE, SETUP_INCOMING_VARARGS): New macros.
+
+2001-09-28  Neil Booth  <neil@daikokuya.demon.co.uk>
+
+       * cpplex.c (new_buff, _cpp_get_buff, _cpp_extend_buff):
+       Use size_t everywhere, make definitions consistent with
+       prototypes.     
+
+Fri Sep 28 14:59:34 CEST 2001  Jan Hubicka  <jh@suse.cz>
+
+       * gcse.c (replace_store_insn): Use delete_insn.
+       * loop.c (move_movables): Likewise; avoid delete_insn
+       from clobbering notes moved elsewhere.
+       (check_dbra_loop): Use delete_insn.
+       * ssa.c (convert_from_ssa): Likewise.
+       * cse.c (cse_insn): Use delete_insn.
+
+2001-09-28  Neil Booth  <neil@daikokuya.demon.co.uk>
+
+       * cpphash.h (struct cpp_buff): Make unsigned.
+       (_cpp_get_buff): Take length of size_t.
+       (_cpp_unaligned_alloc): New.
+       (BUFF_ROOM, BUFF_FRONT, BUFF_LIMIT): New.
+       (struct cpp_reader): Remove ident_pool.  Add u_buff.
+       * cppinit.c (cpp_create_reader): Initialize u_buff, not ident_pool.
+       (cpp_destroy): Destroy u_buff, not ident_pool.
+       * cpplex.c (parse_number, parse_string, save_comment,
+       cpp_token_as_text): Update to use the unaligned buffer.
+       (new_buff): Make unsigned.
+       (_cpp_unaligned_alloc): New.
+       * cpplib.c (glue_header_name): Update to use the unaligned buffer.
+       * cppmacro.c (new_number_token, builtin_macro, stringify_arg):
+       Similarly.
+       (collect_args): Make unsigned.
+
+2001-09-27  Zack Weinberg  <zack@codesourcery.com>
+
+       * cpplex.c (cpp_output_token): Use a putc loop for
+       SPELL_OPERATOR, and fwrite for SPELL_IDENT.
+
+       * configure.in: Detect fwrite_unlocked and fprintf_unlocked.
+       * configure, config.in: Regenerate.
+       * system.h: Replace fwrite and fprintf with their unlocked
+       variants if available.
+
+2001-09-27  Richard Henderson  <rth@redhat.com>
+
+       * dwarf2out.c (dwarf2out_frame_finish): Never elide .debug_frame
+       in favour of .eh_frame.
+
+2001-09-27  Aldy Hernandez  <aldyh@redhat.com>
+
+       * config/rs6000/rs6000.h (FUNCTION_VALUE): Change hardcoded 33 and 3
+       to macros.
+       (LIBCALL_VALUE): Likewise.
+
+2001-09-27  Neil Booth  <neil@daikokuya.demon.co.uk>
+
+       * cpphash.h: Update comment.
+       * cpplex.c: Update comments.
+       (_cpp_can_paste): Remove.
+       * cpplib.h (_cpp_can_paste): Remove.
+       * cppmacro.c (paste_tokens, paste_all_tokens): Update to use the
+       lexer rather than _cpp_can_paste.
+
+2001-09-27  Neil Booth  <neil@daikokuya.demon.co.uk>
+
+       * doc/cppinternals.texi: Update.
+
+2001-09-26  Neil Booth  <neil@daikokuya.demon.co.uk>
+
+       * cpphash.h (struct cpp_pool): Remove locks and locked.
+       (struct cpp_context): Add member buff.
+       (struct cpp_reader): Remove member argument_pool.
+       (_cpp_lock_pool, _cpp_unlock_pool): Remove.
+       * cppinit.c (cpp_create_reader, cpp_destroy): Argument_pool is dead.
+       * cpplex.c (chunk_suitable): Remove pool argument.
+       (MIN_BUFF_SIZE, BUFF_SIZE_UPPER_BOUND, EXTENDED_BUFF_SIZE): New.
+       (new_buff, _cpp_extend_buff): Update.
+       (_cpp_get_buff): Fix silly pointer bug.  Be more selective about
+       which buffer is returned.
+       (_cpp_next_chunk, _cpp_init_pool): Pool locking removed.
+       (_cpp_lock_pool, _cpp_unlock_pool): Remove.
+       * cppmacro.c (lock_pools, unlock_pools): Remove.
+       (push_ptoken_context): Take a _cpp_buff.
+       (enter_macro_context): Pool locking removed.
+       (replace_args): Use a _cpp_buff for the replacement list with
+       arguments replaced.
+       (push_token_context): Clear buff.
+       (expand_arg): Use _cpp_pop_context.
+       (_cpp_pop_context): Free a context's buffer, if any.
+
+2001-09-26  DJ Delorie  <dj@redhat.com>
+
+       * c-typeck.c (digest_init): Check for sizeless arrays.
+
+2001-09-26  Richard Henderson  <rth@redhat.com>
+
+       * optabs.c (init_one_libfunc): Create a dummy function type
+       instead of using error_mark_node.
+
+2001-09-26  Neil Booth  <neil@daikokuya.demon.co.uk>
+
+       * cpphash.h (struct _cpp_buff, _cpp_get_buff, _cpp_release_buff,
+       _cpp_extend_buff, _cpp_free_buff): New.
+       (struct cpp_reader): New member free_buffs.
+       * cppinit.c (cpp_destroy): Free buffers.
+       * cpplex.c (new_buff, _cpp_release_buff, _cpp_get_buff,
+       _cpp_extend_buff, _cpp_free_buff): New.
+       * cpplib.h (struct cpp_options): Remove unused member.
+       * cppmacro.c (collect_args): New.  Combines the old parse_arg
+       and parse_args.  Use _cpp_buff for memory allocation.
+       (funlike_invocation_p, replace_args): Update.
+
+Wed Sep 26 13:20:51 CEST 2001  Jan Hubicka  <jh@suse.cz>
+
+       * final.c (final_scan_insn): Use delete_insn instead of delete_note.
+
+2001-09-25  Andrew Haley  <aph@cambridge.redhat.com>
+
+       * except.c (sjlj_mark_call_sites): Change address inside sequence.
+
+2001-09-24  Andrew Haley  <aph@cambridge.redhat.com>
+
+       * config/sh/linux.h (LINK_SPEC): Set dynamic-linker to agree with
+       glibc.
+
+2001-09-25  Janis Johnson  <janis187@us.ibm.com>
+           Jim Wilson  <wilson@redhat.com>
+
+       * doc/install.texi (Specific, ia64-*-linux): Document.
+
+Tue Sep 25 17:13:56 CEST 2001  Jan Hubicka  <jh@suse.cz>
+
+       * Makefile.in (cfgrtl.o): Add.
+       * basic-block.h (alloc_block, alloc_aux_for_block, alloc_aux_for_blocks,
+       free_aux_for_block, alloc_aux_for_edge, alloc_aux_for_edges,
+       free_aux_for_edge): Declare.
+       * cfg.c
+       (HAVE_return): Undefine.
+       * basic-block.h (alloc_block, alloc_aux_for_block, alloc_aux_for_blocks,
+       free_aux_for_block, alloc_aux_for_edge, alloc_aux_for_edges,
+       free_aux_for_edge): New global functions.
+       (first_delete_block): New static variable.
+       (init_flow): Clear first_delete_block.
+       (basic_block_for_insn, label_value_list, tail_recursion_label_list,
+        can_delete_note_p, can_delete_label_p, commit_one_edge_insertion,
+        try_redirect_by_replacing_jump, last_loop_beg_note,
+        back_edge_of_syntactic_loop_p, force_nonfallthru_and_redirect,
+        delete_insn, delete_insn_chain, create_basic_block_structure,
+        create_basic_block, flow_delete_block, compute_bb_for_insn,
+        free_bb_for_insn, update_bb_for_insn, set_block_for_insn,
+        set_block_for_new_insns, split_block, merge_blocks_nomove,
+        block_label, try_redirect_by_replacing_jump, last_loop_beg_note,
+        redirect_edge_and_branch, force_nonfallthru_and_redirect,
+        force_nonfallthru, redirect_edge_and_branch_force, tidy_fallthru_edge,
+        tidy_fallthru_edges, split_edge, insert_insn_on_edge,
+        commit_one_edge_insertion, commit_edge_insertions, dump_bb, debug_bb,
+        debug_bb_n, print_rtl_with_bb, verify_flow_info, purge_dead_edges,
+        purge_all_dead_edges): Move to ....
+       * cfgrtl.c: New file; .... Here.
+
+       * bb-reorder.c (fixup_reorder_chain): Use alloc_aux_for_block.
+       (reroder_basic_block): Use alloc_aux_for_blocks.
+       * predict.c (estimate_bb_frequencies): Likewise; use
+       alloc_aux_for_edges.
+       * profile.c (compute_branch_probabilities): Likewise.
+       (branch_prob): Likewise.
+       * reg-stack.c (reg_to_stack): Likewise.
+
+       * emit-rtl.c (emit_insns_after): Never return NULL.
+
+       * basic-block.h (set_block_for_new_insns): Delete.
+       * cfgrtl.c (set_block_for_new_insns): Delete.
+
+       * cfgcleanup.c (try_optimize_cfg): Add fake exit edges for noreturn
+       calls when crossjumping.
+
+       * cfgcleanup.c (try_simplify_condjump): Cleanup invert_jump call.
+       * unroll.c (copy_loop_body): Use delete_insn.
+
+       * final.c (final, final_scan_insn): Use delete_insn/delete_note.
+       * function.c (fixup_var_refs_insn, fixup_var_refs_1,
+       keep_stack_depressed): Likewise.
+       * gcse.c (cprop_cc0_jump): Likewise.
+       * local-alloc.c (update_equiv_regs): Likewise.
+       * loop.c (scan_loop, loop_delete_insns): Likewise.
+       * regmove.c (try_auto_increment, fixup_match_1): Likewise.
+       * reload1.c (reload, calculate_needs_all_insns, reload_as_needed,
+       delete_output_reload, delete_address_reloads_1,
+       reload_cse_delete_noop_set, reload_combine, reload_cse_move2add):
+       Likewise.
+       * sibcall.c (replace_call_placeholder): Likewise.
+       * cse.c (cse_insn): Likewise.
+
+2001-09-25  Bernd Schmidt  <bernds@redhat.com>
+
+       From Graham Stott  <grahams@redhat.com>
+       (def_builtin): Only define builtins appropriate for target_flags.  All
+       callers changed.
+       (builtin_decsription): Add new field mask which is used to determine
+       when to define the builtin via the macro def_builtin.
+
+       (bdesc_comi): Initialise new mask fields.
+       (bdesc_2srg): Likewise.
+       (bdesc_1arg): Likewise.
+
+       * config/i386/i386.c (ix86_init_builtins): Correct return type
+       building v4hi_ftype_v4hi_int_int tree node.
+       (ix86_expand_sse_comi): Fix typo swapping operands.
+       Don't swap comparision condition, it is already swapped.
+       (ix86_expand_sse_compare): Before swapping operands
+       move operand 1 into new rtx and not the target rtx.
+       Don't swap comparison condition, it is already swapped.
+       Always check whether we need to create a new TARGET.
+
+       * config/i386/i386.md: (sse_comi) Fix typos.
+       (sse_ucomi): Likewise.
+       (cvtss2si): Fix operand 0 contraint.
+       (cvttss2si): Likewise.
+       (sse_unpckhps): Fix mode for operand 2.
+       (sse_unpcklps): Likewise.
+
+2001-09-25  Graham Stott  <grahams@redhat.com>
+
+       * sibcall.c (skip_copy_to_return_value): Tighten return value
+       copy check.
+
+2001-09-24  David Edelsohn  <edelsohn@gnu.org>
+
+       * rs6000.c (lwa_operand): Address must be word aligned.
+
+Mon Sep 24 18:57:59 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * tree.c (type_hash_marked_p): Consider as marked if debug symbol
+       number has been set.
+       (type_hash_mark): Mark type itself.
+
+2001-09-24  Neil Booth  <neil@daikokuya.demon.co.uk>
+
+       * c-lex.c (cb_def_pragma): Update.
+       (c_lex): Update, and skip padding.
+       * cppexp.c (lex, parse_defined): Update, remove unused variable.
+       * cpphash.h (struct toklist): Delete.
+       (union utoken): New.
+       (struct cpp_context): Update.
+       (struct cpp_reader): New members eof, avoid_paste.
+       (_cpp_temp_token): New.
+       * cppinit.c (cpp_create_reader): Update.
+       * cpplex.c (_cpp_temp_token): New.
+       (_cpp_lex_direct): Add PREV_WHITE when parsing args.
+       (cpp_output_token): Don't print leading whitespace.
+       (cpp_output_line): Update.
+       * cpplib.c (glue_header_name, parse_include, get__Pragma_string,
+       do_include_common, do_line, do_ident, do_pragma,
+       do_pragma_dependency, _cpp_do__Pragma, parse_answer,
+       parse_assertion): Update.
+       (get_token_no_padding): New.
+       * cpplib.h (CPP_PADDING): New.
+       (AVOID_LPASTE): Delete.
+       (struct cpp_token): New union member source.
+       (cpp_get_token): Update.
+       * cppmacro.c (macro_arg): Convert to use pointers to const tokens.
+       (builtin_macro, paste_all_tokens, paste_tokens, funlike_invocation_p,
+       replace_args, quote_string, stringify_arg, parse_arg, next_context,
+       enter_macro_context, expand_arg, _cpp_pop_context, cpp_scan_nooutput,
+       _cpp_backup_tokens, _cpp_create_definition): Update.
+       (push_arg_context): Delete.
+       (padding_token, push_token_context, push_ptoken_context): New.
+       (make_string_token, make_number_token): Update, rename.
+       (cpp_get_token): Update to handle tokens as pointers to const,
+       and insert padding appropriately.
+       * cppmain.c (struct printer): New member prev.
+       (check_multiline_token): Constify.
+       (do_preprocessing, cb_line_change): Update.
+       (scan_translation_unit): Update to handle spacing.
+       * scan-decls.c (get_a_token): New.
+       (skip_to_closing_brace, scan_decls): Update.
+       * fix-header.c (read_scan_file): Update.
+
+       * doc/cpp.texi: Update.
+
+2001-09-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * c-aux-info.c (affix_data_type): Use ATTRIBUTE_MALLOC.  Avoid
+       leak by passing malloc'ed pointer to reconcat, not concat.
+
+2001-09-24  DJ Delorie  <dj@redhat.com>
+
+       * varasm.c (array_size_for_constructor): Handle STRING_CSTs also.
+
+2001-09-24  Ulrich Weigand  <uweigand@de.ibm.com>:
+
+       * flow.c (delete_dead_jumptables): Delete jumptable if the only
+       reference is from the literal pool.
+
+2001-09-24  Janis Johnson  <janis187@us.ibm.com>
+
+       * doc/install.texi (Final install): Request additional information
+       in mail about successful builds.
+
+2001-09-24  John David Anglin  <dave@hiauly1.hia.nrc.ca>
+
+       * pa.c (return_addr_rtx): Return NULL_RTX if count is not zero.  Use
+       initial value of return pointer register instead of value in frame-20.
+       Revise comments.
+
+2001-09-24  John David Anglin  <dave@hiauly1.hia.nrc.ca>
+
+       * som.h (ASM_OUTPUT_EXTERNAL): Improve formatting.
+       (ASM_OUTPUT_EXTERNAL_LIBCALL): Only generate a .IMPORT statement for
+       the libcall if there isn't a referenced identifier for the symbol.
+
 2001-09-24  John David Anglin  <dave@hiauly1.hia.nrc.ca>
 
        * pa.h (TRAMPOLINE_TEMPLATE): Add two words to the template for