OSDN Git Service

* config/i386/sol2.h (CPLUSPLUS_CPP_SPEC): Define.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 4375bac..3b5970c 100644 (file)
+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
+       non 64-bit machines.  Use these as a plabel for the trampoline.
+       (TRAMPOLINE_SIZE): Adjust size for new words.
+       (INITIALIZE_TRAMPOLINE): Initialize new words.
+       (TRAMPOLINE_ADJUST_ADDRESS): New.  Adjust address to make it a
+       pointer to the plabel in the trampoline.
+
+2001-09-24  John David Anglin  <dave@hiauly1.hia.nrc.ca>
+
+       * pa.c (function_arg): Pass floating arguments in both general and
+       floating registers in indirect (dynamic) calls when generating code
+       for the 32 bit ABI and the HP assembler.
+
+2001-09-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
+
+       * doc/install.texi: Markup fixes.
+       Use Solaris 2, SunOS 4 as appropriate.
+       (Specific, *-*-solaris2*): Explain this.
+       Unconditionally warn against /usr/ucb tools.
+       Remove Sun as warning, obsolete.
+       Move X11 header bug workaround here, update patches.
+       (Specific, sparc-sun-solaris2*): Detail Sun as fix status.
+       (Specific, sparc-sun-solaris2.7): Update patch 106950 status.
+
+2001-09-23  Zack Weinberg  <zack@codesourcery.com>
+
+       * errors.h (warning, error, fatal, internal_error): Don't mark
+       with ATTRIBUTE_PRINTF_n.
+       * toplev.h (internal_error, fatal_io_error, warning, error,
+       pedwarn, pedwarn_with_file_and_line, warning_with_file_and_line,
+       error_with_file_and_line, sorry, error_for_asm, warning_for_asm):
+       Likewise.
+
+Sun Sep 23 18:19:48 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * function.c (pop_function_context_from): var_refs_queue
+       and temp slots now in GC memory.
+       (mark_function_status, free_after_compilation): Likewise;
+       also struct function now in GC memory.
+       (assign_stack_temp_for_type): struct temp_slot now in GC memory.
+       (combine_temp_slots): Likewise.
+       (schedule_fixup_var_refs): var_refs_queue now in GC memory.
+       (prepare_function_start): Use GC memory for struct function.
+       (mark_temp_slot): Deleted.
+       (gcc_mark_struct_function): struct function now in GC memory.
+
+       * fold-const.c (extract_muldiv, case PLUS_EXPR): Only adjust
+       code for division, not modulus.
+
+       * rtl.def (MEM): Remove obsolete part of comment.
+
+2001-09-22  Joseph S. Myers  <jsm28@cam.ac.uk>
+
+       * c-format.c (init_function_format_info): Check __builtin_printf
+       and __builtin_fprintf even if -ffreestanding.  Check C99 functions
+       in gnu89 mode.
+
+Sat Sep 22 09:09:32 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * c-common.c (format_attribute_table): Remove decl.
+       * tree.h (format_attribute_table, lang_attribute_table): New decls.
+       (lang_attribute_common): Likewise.
+
+       * function.c (fix_lexical_address): Use set_mem_alias_set.
+       (expand_function_start): Likewise.
+       * config/alpha/alpha.h (SETUP_INCOMING_VARARGS): Likewise.
+
+       * varasm.c (output_constant): Fix unused variable warning.
+
+       * attribs.c: New file, from c-common.c.
+       (attribute_tables): Now four elements.
+       (format_attribute_table, lang_attribute_common): New variables.
+       (init_attributes): Reflect above changes.
+       (handle_mode_attribute): Delete check for wider than uintmax.
+       * c-common.c: Delete parts moved to attribs.c.
+       (enum attrs): Deleted; unused.
+       (c_format_attribute_table): New variable.
+       (c_common_lang_init): Initialize format_attribute_table with it.
+       * c-common.h (decl_attributes): Remove decl.
+       * tree.h (decl_attribute): Move it to here.
+       * Makefile.in (C_AND_OBJS_OBJS): Add attribs.o.
+       (attribs.o): New rule.
+
+2001-09-22  Andreas Jaeger  <aj@suse.de>
+
+       * builtins.c (c_getstr): Remove unused variable.
+
+2001-09-21  Richard Henderson  <rth@redhat.com>
+
+       * reload1.c (reload): Use delete_insn instead of splatting
+       NOTE_INSN_DELETED.
+
+2001-09-21  Richard Henderson  <rth@redhat.com>
+
+       * reload.c (push_secondary_reload): Don't check for "=" in output
+       constraint after ""->ALL_REGS check.
+
+2001-09-21  Richard Henderson  <rth@redhat.com>
+
+       * predict.c (expected_value_to_br_prob): Use pc_set.
+
+       * optabs.c (init_one_libfunc): Gen a FUNCTION_DECL for use by
+       ENCODE_SECTION_INFO; get SYMBOL_REF from make_decl_rtl.
+
+2001-09-21  Richard Henderson  <rth@redhat.com>
+
+       * rtl.h (LCT_RETURNS_TWICE): New.
+       * calls.c (emit_call_1): Set current_function_calls_setjmp for
+       ECF_RETURNS_TWICE.
+       (emit_library_call_value_1): Map LCT_RETURNS_TWICE
+       to ECF_RETURNS_TWICE.
+       * except.c (sjlj_emit_function_enter): Use LCT_RETURNS_TWICE for
+       call to setjmp.
+
+       * unwind-sjlj.c: Invent the setjmp.h declarations if inhibit_libc.
+
+       * config/stormy16/stormy16.h (DONT_USE_BUILTIN_SETJMP): New.
+       (JMP_BUF_SIZE): New.
+
+2001-09-21  Richard Henderson  <rth@redhat.com>
+
+       * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Map 'd'
+       to R8_REGS.
+
+2001-09-21  Richard Henderson  <rth@redhat.com>
+
+       * tree.def (FDESC_EXPR): New.
+       * expr.c (expand_expr): Handle it.
+       * varasm.c (initializer_constant_valid_p): Likewise.
+       (output_constant): Likewise.
+       * defaults.h (TARGET_VTABLE_USES_DESCRIPTORS): New.
+       * config/ia64/ia64.h (TARGET_VTABLE_USES_DESCRIPTORS): New.
+       (ASM_OUTPUT_FDESC): New.
+       * doc/tm.texi: Document the new macros.
+
+21-09-2001  Richard Earnshaw  (reanrsha@arm.com)
+
+       * cfgcleanup.c (merge_blocks_move_successor_nojumps): Don't leave
+       ADDR_VEC or ADDR_DIFF_VEC jump insns as part of the basic block
+       once merging is complete.
+
+Fri Sep 21 11:20:12 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * integrate.c (allocate_initial_values): Eliminate unused arg warning.
+
+21-09-2001  Richard Earnshaw  (reanrsha@arm.com)
+
+       * cfgcleanup.c (flow_find_cross_jump): Delete any REG_EQUAL notes
+       that would be invalid after a merge.
+
+Fri Sep 21 14:24:29 CEST 2001  Jan Hubicka  <jh@suse.cz>
+
+       * basic-block.h (flow_delete_insn, flow_delete_insn_chain): Kill.
+       * cfg.c (delete_insn): Rename from ....; use remove_insn; do not
+       remove some labels.
+       (flow_delete_insn): This one.
+       (delete_insn_chain): Rename from ...; do not care labels.
+       (flow_delete_insn_chain): ... this one.
+       (flow_delete_block): Remove the insns one BB has been expunged.
+       (merge_blocks_nomove): Likewise.
+       (try_redirect_by_replacing_jump): Use delete_insn[_chain]; do not care
+       updating BB boundaries.
+       (tidy_fallthru_edge): Likewise.
+       (commit_one_edge_insertion): Likewise.
+       * cfgbuild.c (find_basic_block): Likewise.
+       (find_basic_blocks_1): Likewise.
+       * cfgcleanup.c (merge_blocks_move_predecessor_nojumps): Likewise.
+       (try_crossjump_to_edge): Likewise.
+       (try_optimize_cfg): Likewise.
+       * cse.c (delete_trivially_dead_insns): Likewise.
+       * df.c (df_insn_delete): Likewise.
+       * doloop.c (doloop_modify): Use delete_related_insns.
+       * emit-rtl.c (try_split): Likewise.
+       (remove_insn): Update BB boundaries.
+       * expect.c (connect_post_landing_pads): Use delete_related_insns.
+       * flow.c (delete_dead_jumptables): Use delete_insn[_chain]; do not care
+       updating BB boundaries.
+       (propagate_block_delete_insn): Likewise.
+       (propagate_block_delete_libcall): Likewise.
+       * function.c (delete_handlers): Use delete_related_insns.
+       (thread_prologue_and_epilogue_insns): Likewise.
+       * gcse.c (delete_null_pointer_checks): Use delete_related_insns.
+       * genpeep.c (gen_peephole): Use delete_related_insns.
+       * ifcvt.c (noce_process_if_block): Use delete_insn; do not care updating
+       BB boundaries.
+       (find_cond_trap): Likewise.
+       * integrate.c (save_for_inline): Use delete_related_insns.
+       (copy_insn_list): Likewise.
+       * jump.c (pruge_linie_number_notes): Likewise.
+       (duplicate_loop_exit_test): Likewise.
+       (delete_computation): Likewise.
+       (delete_related_insn): Rename from ...; use delete_insn
+       (delete_insn): ... this one.
+       (redirect_jump): Use delete_related_insns.
+       * loop.c (scan_loop): Likewise.
+       (move_movables): Likewise.
+       (find_and_verify_loops): Likewise.
+       (check_dbra_loop): Likewise.
+       * recog.c (peephole2_optimize): Likewise.
+       * reg-stack.c (delete_insn_for_stacker): Remove.
+       (move_for_stack_reg): Use delete_insn.
+       * regmove.c (combine_stack_adjustments_for_block): Likewise.
+       * reload1.c (delete_address_reloads): Use delete_related_insns.
+       (fixup_abnormal_edges): Use delete_insn.
+       * recog.c (emit_delay_sequence): Use delete_related_insns.
+       (delete_from-delay_slot): Likewise.
+       (delete_scheduled_jump): likewise.
+       (optimize_skip): Likewise.
+       (try_merge_delay_insns): Likewise.
+       (full_simple_delay_slots): Likewise.
+       (fill_slots_from_thread): Likewise.
+       (relax_delay_slots): Likewise.
+       (make_return_insns): Likewise.
+       (dbr_schedule): Likewise.
+       * rtl.h (delete_insn): Rename to delete_related_insns.
+       (delete_insn, delete_insn_chain): New prototypes.
+       * ssa-ccp (sse_fast_dce):  Remove deleting of DEF, as it is done
+       by df_insn_delete already.
+       * ssa-dce.c (delete_insn_bb): Use delete_insn.
+       * ssa.c (convert_from_ssa): Use delete_related_insns.
+       * unroll.c (unroll_loop): Likewise.
+       (calculate_giv_inc): Likewise.
+       (copy_loop_body): Likewise.
+
+       * i386-protos.h (ix86_libcall_value, ix86_function_value,
+       ix86_function_arg_regno_p, ix86_function_arg_boundary,
+       ix86_return_in_memory, ix86_function_value): Declare.
+       * i386.c (x86_64_int_parameter_registers, x86_64_int_return_registers):
+       new static valurables.
+       (x86_64_reg_class): New enum
+       (x86_64_reg_class_name): New array.
+       (classify_argument, examine_argument, construct_container,
+        merge_classes): New static functions.
+       (optimization_options): Enable flag_omit_frame_pointer and disable
+       flag_pcc_struct_return on 64bit.
+       (ix86_libcall_value, ix86_function_value,
+       ix86_function_arg_regno_p, ix86_function_arg_boundary,
+       ix86_return_in_memory, ix86_function_value): New global functions.
+       (init_cumulative_args): Refuse regparm on x86_64, set maybe_vaarg.
+       (function_arg_advance): Handle x86_64 passing conventions.
+       (function_arg): Likewise.
+       * i386.h (FUNCTION_ARG_BOUNDARY): New macro.
+       (RETURN_IN_MEMORY): Move offline.
+       (FUNCTION_VALUE, LIBCALL_VALUE): Likewise.
+       (FUNCTION_VALUE_REGNO_P): New macro.
+       (FUNCTION_ARG_REGNO_P): Move offline.
+       (struct ix86_args): Add maybe_vaarg.
+       * next.h (FUNCTION_VALUE_REGNO_P): Delete.
+       * unix.h (FUNCTION_VALUE_REGNO_P): Delete.
+
+2001-09-21  Hartmut Penner  <hpenner@de.ibm.com>
+
+       * s390.md: Changed attributes for scheduling.
+       * s390.c: (s390_adjust_cost, s390_adjust_priority)
+       Changed scheduling
+
+2001-09-21  Joseph S. Myers  <jsm28@cam.ac.uk>
+
+       Table-driven attributes.
+       * c-decl.c, config/alpha/alpha.c, config/arc/arc.c,
+       config/arm/arm.c, config/arm/pe.c, config/avr/avr.c,
+       config/avr/avr.h, config/d30v/d30v.h, config/fr30/fr30.h,
+       config/h8300/h8300.c, config/i386/cygwin.h, config/i386/winnt.c,
+       config/m32r/m32r.c, config/mcore/mcore.c, config/sh/sh.c,
+       config/stormy16/stormy16.h, config/v850/v850.c, doc/c-tree.texi,
+       doc/tm.texi, ggc-common.c, integrate.c, print-tree.c, tree.c,
+       tree.h: Rename DECL_MACHINE_ATTRIBUTES to DECL_ATTRIBUTES.
+       * tree.h (struct tree_decl): Change machine_attributes to
+       attributes.
+       * doc/c-tree.texi: Document that all attributes are now attached
+       to decls and types.
+       * c-common.c (add_attribute, attrtab, attrtab_idx,
+       default_valid_lang_attribute, valid_lang_attribute): Remove.
+       (attribute_tables, attributes_initialized,
+       c_common_attribute_table, default_lang_attribute_table): New
+       variables.
+       (handle_packed_attribute, handle_nocommon_attribute,
+       handle_common_attribute, handle_noreturn_attribute,
+       handle_unused_attribute, handle_const_attribute,
+       handle_transparent_union_attribute, handle_constructor_attribute,
+       handle_destructor_attribute, handle_mode_attribute,
+       handle_section_attribute, handle_aligned_attribute,
+       handle_weak_attribute, handle_alias_attribute,
+       handle_no_instrument_function_attribute,
+       handle_no_check_memory_usage_attribute, handle_malloc_attribute,
+       handle_no_limit_stack_attribute, handle_pure_attribute): New
+       functions.
+       (init_attributes, decl_attributes): Rewrite to implement
+       table-driven attributes.
+       * c-common.h (enum attribute_flags): Move to tree.h.
+       * c-format.c (decl_handle_format_attribute,
+       decl_handle_format_arg_attribute): Rename to
+       handle_format_attribute and handle_format_arg_attribute.  Update
+       for table-driven attributes.
+       * c-common.h (decl_handle_format_attribute,
+       decl_handle_format_arg_attribute): Remove prototypes.
+       (handle_format_attribute, handle_format_arg_attribute): Add
+       prototypes.
+       * c-decl.c (grokdeclarator): Handle attributes nested inside
+       declarators.
+       * c-parse.in (setattrs, maybe_setattrs): Remove.
+       (maybe_type_quals_setattrs): Rename to maybe_type_quals_attrs.
+       Update to handle nested attributes properly.
+       (maybe_resetattrs, after_type_declarator,
+       parm_declarator_nostarttypename, notype_declarator, absdcl1_noea,
+       absdcl1_ea, direct_absdcl1): Update to handle nested attributes
+       properly.
+       (make_pointer_declarator): Update to handle nested attributes
+       properly.
+       * doc/extend.texi: Update documentation of limits of attributes
+       syntax.  Warn about problems with attribute semantics in C++.
+       * target.h (struct target): Remove valid_decl_attribute and
+       valid_type_attribute.  Add attribute_table and
+       function_attribute_inlinable_p.
+       * target-def.h (TARGET_VALID_DECL_ATTRIBUTE,
+       TARGET_VALID_TYPE_ATTRIBUTE): Remove.
+       (TARGET_ATTRIBUTE_TABLE, TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P):
+       Add.
+       (TARGET_INITIALIZER): Update.
+       * integrate.c (FUNCTION_ATTRIBUTE_INLINABLE_P): Remove default
+       definition.
+       (function_attribute_inlinable_p): New function.  Check for the
+       presence of any machine attributes before using
+       targetm.function_attribute_inlinable_p.
+       (function_cannot_inline_p): Update.
+       * Makefile.in (integrate.o): Update dependencies.
+       * doc/tm.texi: Update documentation of target attributes and
+       example definition of TARGET_VALID_TYPE_ATTRIBUTE.
+       * tree.c (default_valid_attribute_p, valid_machine_attribute):
+       Remove.
+       (default_target_attribute_table,
+       default_function_attribute_inlinable_p): New.
+       (lookup_attribute): Update comment to clarify handling of multiple
+       attributes with the same name.
+       (merge_attributes, attribute_list_contained): Allow multiple
+       attributes with the same name but different arguments to appear in
+       the same attribute list.
+       * tree.h (default_valid_attribute_p): Remove prototype.
+       (struct attribute_spec): New.
+       (default_target_attribute_table): Declare.
+       (enum attribute_flags): Move from c-common.h.  Add
+       ATTR_FLAG_TYPE_IN_PLACE.
+       (default_function_attribute_inlinable_p): Declare.
+       * config/alpha/alpha.c (vms_valid_decl_attribute_p): Remove.
+       (TARGET_VALID_DECL_ATTRIBUTE): Don't define.
+       (TARGET_ATTRIBUTE_TABLE): Define.
+       (vms_attribute_table): New.
+       * config/arc/arc.c (arc_valid_decl_attribute): Remove.
+       (TARGET_VALID_DECL_ATTRIBUTE): Don't define.
+       (TARGET_ATTRIBUTE_TABLE): Define.
+       (arc_attribute_table, arc_handle_interrupt_attribute): New.
+       * config/arm/arm.c (arm_valid_type_attribute_p,
+       arm_valid_decl_attribute_p, arm_pe_valid_decl_attribute_p):
+       Remove.
+       (TARGET_VALID_TYPE_ATTRIBUTE, TARGET_VALID_DECL_ATTRIBUTE): Don't
+       define.
+       (TARGET_ATTRIBUTE_TABLE): Define.
+       (arm_attribute_table, arm_handle_fndecl_attribute,
+       arm_handle_isr_attribute): New.
+       * config/avr/avr.c (avr_valid_type_attribute,
+       avr_valid_decl_attribute): Remove.
+       (TARGET_VALID_DECL_ATTRIBUTE, TARGET_VALID_TYPE_ATTRIBUTE): Don't
+       define.
+       (TARGET_ATTRIBUTE_TABLE): Define.
+       (avr_attribute_table, avr_handle_progmem_attribute,
+       avr_handle_fndecl_attribute): New.
+       * config/c4x/c4x.c (c4x_valid_type_attribute_p): Remove.
+       (TARGET_VALID_TYPE_ATTRIBUTE): Don't define.
+       (TARGET_ATTRIBUTE_TABLE): Define.
+       (c4x_attribute_table, c4x_handle_fntype_attribute): New.
+       * config/h8300/h8300.c (h8300_valid_decl_attribute): Remove.
+       (TARGET_VALID_DECL_ATTRIBUTE): Don't define.
+       (TARGET_ATTRIBUTE_TABLE): Define.
+       (h8300_attribute_table, h8300_handle_fndecl_attribute,
+       h8300_handle_eightbit_data_attribute,
+       h8300_handle_tiny_data_attribute): New.
+       * config/i386/i386-protos.h (ix86_valid_type_attribute_p,
+       i386_pe_valid_decl_attribute_p, i386_pe_valid_type_attribute_p):
+       Remove prototypes.
+       (ix86_handle_dll_attribute, ix86_handle_shared_attribute): New
+       declarations.
+       * config/i386/i386.c (ix86_valid_type_attribute_p: Remove.
+       (TARGET_VALID_TYPE_ATTRIBUTE, TARGET_VALID_DECL_ATTRIBUTE): Don't
+       define.
+       (TARGET_ATTRIBUTE_TABLE): Define.
+       (ix86_attribute_table, ix86_handle_cdecl_attribute,
+       ix86_handle_regparm_attribute): New.
+       * config/i386/winnt.c (i386_pe_valid_decl_attribute_p,
+       i386_pe_valid_type_attribute_p): Remove.
+       (ix86_handle_dll_attribute, ix86_handle_shared_attribute): New.
+       * config/ia64/ia64.c (ia64_valid_type_attribute): Remove.
+       (TARGET_VALID_TYPE_ATTRIBUTE): Don't define.
+       (TARGET_ATTRIBUTE_TABLE): Define.
+       (ia64_attribute_table): New.
+       * config/m32r/m32r.c (m32r_valid_decl_attribute, interrupt_ident1,
+       interrupt_ident2, model_ident1, model_ident2): Remove.
+       (TARGET_VALID_DECL_ATTRIBUTE): Don't define.
+       (TARGET_ATTRIBUTE_TABLE): Define.
+       (init_idents): Update.
+       (m32r_attribute_table, m32r_handle_model_attribute): New.
+       * config/m68hc11/m68hc11.c (m68hc11_valid_type_attribute_p):
+       Remove.
+       (TARGET_VALID_TYPE_ATTRIBUTE): Don't define.
+       (TARGET_ATTRIBUTE_TABLE): Define.
+       (m68hc11_attribute_table, m68hc11_handle_fntype_attribute): New.
+       * config/mcore/mcore.c (mcore_valid_decl_attribute): Remove.
+       (TARGET_VALID_DECL_ATTRIBUTE): Don't define.
+       (TARGET_ATTRIBUTE_TABLE): Define.
+       (mcore_attribute_table, mcore_handle_naked_attribute): New.
+       * config/ns32k/ns32k.c (ns32k_valid_type_attribute_p): Remove.
+       (TARGET_VALID_TYPE_ATTRIBUTE): Don't define.
+       (TARGET_ATTRIBUTE_TABLE): Define.
+       (ns32k_attribute_table, ns32k_handle_fntype_attribute): New.
+       * config/rs6000/rs6000.c (rs6000_valid_type_attribute_p): Remove.
+       (TARGET_VALID_TYPE_ATTRIBUTE): Don't define.
+       (TARGET_ATTRIBUTE_TABLE): Define.
+       (rs6000_attribute_table, rs6000_handle_longcall_attribute): New.
+       * config/sh/sh.c (sh_valid_decl_attribute): Remove.
+       (TARGET_VALID_DECL_ATTRIBUTE): Don't define.
+       (TARGET_ATTRIBUTE_TABLE): Define.
+       (sh_attribute_table, sh_handle_interrupt_handler_attribute,
+       sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute):
+       New.
+       * config/stormy16/stormy16.c (stormy16_valid_type_attribute):
+       Remove.
+       (TARGET_VALID_TYPE_ATTRIBUTE): Don't define
+       (TARGET_ATTRIBUTE_TABLE): Define.
+       (stormy16_attribute_table, stormy16_handle_interrupt_attribute):
+       New.
+       * config/v850/v850.c (v850_valid_decl_attribute): Remove.
+       (TARGET_VALID_DECL_ATTRIBUTE): Don't define.
+       (TARGET_ATTRIBUTE_TABLE): Define.
+       (v850_attribute_table, v850_handle_interrupt_attribute,
+       v850_handle_data_area_attribute): New.
+       * config/v850/v850-c.c (mark_current_function_as_interrupt):
+       Return void.  Call decl_attributes instead of
+       valid_machine_attribute.
+
+Fri Sep 21 01:49:41 2001  J"orn Rennecke <amylaar@redhat.com>
+
+       * sh-protos.h (sh_pr_n_sets): Declare.
+       * sh.c (calc_live_regs): If the initial value for PR has been copied,
+       look at the copy to determine if PR needs to be saved.
+       sh_pr_n_sets: New function.
+       * sh.h (RETURN_ADDR_RTX): Use get_hard_reg_initial_val.
+       (ALLOCATE_INITIAL_VALUE): Define.
+
+       * sh.c (initial_elimination_offset):
+       Fix RETURN_ADDRESS_POINTER_REGNUM case.
+
+Fri Sep 21 01:13:56 2001  J"orn Rennecke <amylaar@redhat.com>
+
+       * integrate.c (allocate_initial_values): New function.
+       * integrate.h (allocate_initial_values): Declare.
+       * local-alloc.c (local_alloc): Move call to allocate_reg_info from
+       here...
+       * reload1.c (reload): And initialization of reg_equiv_memory_loc
+       from here...
+       * toplev.c (rest_of_compilation): To here.
+       Call allocate_initial_values.
+       * tm.texi: add description for ALLOCATE_INITIAL_VALUE.
+
+Thu Sep 20 09:00:27 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * ggc-page.c (ggc_marked_p): Properly convert return to boolean.
+
+2001-09-20  DJ Delorie  <dj@redhat.com>
+
+       * c-typeck.c (really_start_incremental_init): Discriminate
+       between zero-length arrays and flexible arrays.
+       (push_init_level): Detect zero-length arrays and handle them
+       like fixed-sized arrays.
+       * expr.c (store_constructor): Handle zero-length arrays and
+       flexible arrays correctly.
+       * doc/extend.texi: Update zero-length array notes.
+
+2001-09-20  Jim Wilson  <wilson@redhat.com>
+
+       * config/ia64/ia64.c (itanium_split_issue): Allow max 2 FP per cycle.
+       (insn_matches_slot): Handle TYPE_L and TYPE_X slots when checking
+       for issue port conflicts.
+       (cycle_end_fill_slots): TYPE_L instructions take two slots.
+
+2001-09-20  Andrew MacLeod  <amacleod@redhat.com>
+
+       * testsuite/gcc.c-torture/execute/990208-1.x: New. XFAIL at -O3
+       on ia64.
+
+Thu Sep 20 09:00:27 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * fold-const.c (hashtab.h): Include.
+       (int_const_binop): Remove FORSIZE arg and compute from type; all
+       callers changed.
+       Call size_int_type_wide for all single-word constants.
+       (size_htab_hash, size_htab_eq): New functions.
+       (size_int_type_wide): Rework to use hash table.
+       * ggc-common.c (hashtab.h): Include.
+       (struct d_htab_root): New struct.
+       (d_htab_roots): New variable.
+       (ggc_add_deletable_htab, ggc_htab_delete): New functions
+       (ggc_mark_roots): Handle deletable htabs.
+       * ggc-page.c (ggc_marked_p): New function.
+       * ggc-simple.c (ggc_marked_p): Likewise.
+       * ggc.h: Reformatting throughout.
+       (ggc_marked_p, ggc_add_deletable_htab): New declarations.
+       * tree.c (init_obstacks): Make type_hash_table a deletable root.
+       (type_hash_add): Allocate struct type_hash from GC memory.
+       (mark_hash_entry, mark_type_hash): Deleted.
+       (type_hash_marked_p, type_hash_mark): New functions.
+       * Makefile.in (ggc-common.o, fold-const.o): Include hashtab.h.
+
+Thu Sep 20 12:49:34 2001  J"orn Rennecke <amylaar@redhat.com>
+
+       * sh.c (shiftcosts): Don't use shiftcosts array for modes wider
+       than SImode.
+
+Thu Sep 20 09:00:27 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * stor-layout.c (layout_type, case ARRAY_TYPE): Kludge to disable
+       array-too-large test for signed sizetype.
+
+Thu Sep 20 12:19:36 CEST 2001  Jan Hubicka  <jh@suse.cz>
+
+       * i386.md (indirect_jump): Allow Pmode operand.
+       (tablejump): LIkewise; perform expansion to 64bit mode.
+       * i386.c (symbolic_operand): Allow 64bit PIC references.
+       (pic_symbolic_operand): Likewise.
+       (ix86_find_base_term): Strip the 64bit PIC references.
+       (legitimate_pic_address_disp_p): Handle 64bit PIC.
+       (legitimize_pic_address): Likewise.
+       (i386_simplify_dwarf_addr): Strip down the 64bit PIC references.
+       * i386.h (CASE_VECTOR_MODE): Set to SImode for 64bit PIC compilation.
+
+2001-09-19  Alexandre Petit-Bianco  <apbianco@redhat.com>
+
+       * stringpool.c (get_identifier_with_length): New function.
+       * tree.h (get_identifier_with_length): New prototype.
+
+2001-09-19  Alan Modra  <amodra@bigpond.net.au>
+           David Edelsohn  <edelsohn@gnu.org>
+
+       Revert:
+       * config/rs6000/rs6000.c (logical_operand): CONST_INTs are
+       already sign-extended.
+
+       * config/rs6000/aix.h (INIT_TARGET_OPTABS): Define TFmode handlers.
+       * config/rs6000/rs6000.c (logical_operand): Always compare op as
+       HOST_WIDE_INT.
+       (rs6000_emit_set_long_const): Avoid unnecessary shift.
+       (output_profile_hook): Declare label_name const.
+       * config/rs6000/rs6000.md (boolcsi3, boolcdi3): Change predicates
+       to match constraints.
+
+2001-09-19  Stan Shebs  <shebs@apple.com>
+
+       * alias.c: Fix typos in comments.
+       * sched-rgn.c (init_ready_list): Ditto.
+       * unwind-dw2.c (uw_frame_state_for): Ditto.
+       * unwind-dw2-fde.c (_Unwind_Find_FDE): Ditto.
+       * unwind.inc (_Unwind_RaiseException_Phase2): Ditto.
+       * config/rs6000/rs6000.c (rs6000_adjust_priority): Ditto.
+
+2001-09-19  Richard Henderson  <rth@redhat.com>
+
+       * cfg.c (force_nonfallthru_and_redirect): Handle redirecting
+       to the exit block.
+       * Makefile.in (cfg.o): Depend on TM_P_H.
+
+2001-09-19  Richard Henderson  <rth@redhat.com>
+
+       * config/alpha/alpha.c (local_symbol_p): Split out from ...
+       (local_symbolic_operand): ... here.
+       (small_symbolic_operand): Check mode.
+       (global_symbolic_operand): New.
+       (input_operand): Reject symbolics if explicit relocs.
+       (call_operand): Tidy.
+       (alpha_legitimize_address): Use movdi_er_high_g.
+       (alpha_expand_mov): Likewise.
+       * config/alpha/alpha-protos.h: Update.
+       * config/alpha/alpha.h (PREDICATE_CODES): Update.
+       * config/alpha/alpha.md (UNSPEC_LITERAL, UNSPEC_LITUSE): New.
+       (UNSPEC_LDGP2, UNSPECV_PLDGP2): New.
+       (UNSPECV_LDGP2): Remove.
+       (all call patterns): Use 's' not 'i' for symbolic constraint.
+       (call_osf call_value_osf): Use call_operand.
+       (all osf call patterns): Use $gp.  New peepholes for explicit relocs.
+       (movdi_er_nofix, movdi_er_fix): Remove symbolic alternative.
+       (prologue_ldgp_1_er): Remove.
+       (ldgp_er_1, ldgp_er_2, prologue_ldgp_er_2): New.
+       (builtin_setjmp_receiver_er patterns): Use them.
+       (exception_receiver_er): Likewise.
+
+2001-09-19  Richard Henderson  <rth@redhat.com>
+
+       * cfgbuild.c (find_sub_basic_blocks): Handle insns that can throw.
+
+       * emit-rtl.c (try_split): Copy NORETURN, SETJMP, ALWAYS_RETURN
+       and NON_LOCAL_GOTO notes.
+       * recog.c (peephole2_optimize): Likewise.  Handle EH_REGION;
+       copy over CALL_INSN_FUNCTION_USAGE.
+
 2001-09-18  Catherine Moore  <clm@redhat.com>
 
-       * config/stormy16/stormy16.h (DEFAULT_PCC_STRUCT_RETURN): 
+       * config/stormy16/stormy16.h (DEFAULT_PCC_STRUCT_RETURN):
        Define as 0.
 
 2001-09-18  Ulrich Weigand  <uweigand@de.ibm.com>:
-        * config.gcc (s390-*-linux-*, s390x-*-linux*): Switch to 
-       new-style tm_file specification.  Specify correct tm_p_file, 
-       md_file, and out_file for s390x. 
+
+       * config.gcc (s390-*-linux-*, s390x-*-linux*): Switch to
+       new-style tm_file specification.  Specify correct tm_p_file,
+       md_file, and out_file for s390x.
 
        * config/s390/linux.h, linux64.h:  Don't include other target
        macro header files.  Now handled via tm_file.
 
-       * config/s390/linux.h, s390.h:  (IEEE_FLOAT, TARGET_IEEE_FLOAT, 
+       * config/s390/linux.h, s390.h:  (IEEE_FLOAT, TARGET_IEEE_FLOAT,
        TARGET_IBM_FLOAT): Move from linux.h to s390.h to ensure they
        are defined before use.
-       
+
 Tue Sep 18 09:51:11 2001  Eric Christopher  <ecechristo@redhat.com>
 
-        * config/mips/mips.c (mips_asm_file_start): Conditionalize Elf
-        code generation only for Gnu assembler.
+       * config/mips/mips.c (mips_asm_file_start): Conditionalize Elf
+       code generation only for Gnu assembler.
 
 2001-09-18  Catherine Moore  <clm@redhat.com>
 
-        * config/stormy16 (LIB_SPEC): Remove -lnosys.
+       * config/stormy16 (LIB_SPEC): Remove -lnosys.
 
 2001-09-18  Richard Sandiford  <rsandifo@redhat.com>