OSDN Git Service

* basic-block.h (EDGE_CRITICAL): Remove; renumber other flags.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index ff83661..74f3fe3 100644 (file)
@@ -1,7 +1,808 @@
+Tue Sep 11 18:57:47 CEST 2001  Jan Hubicka  <jh@suse.cz>
+
+       * basic-block.h (EDGE_CRITICAL): Remove; renumber other flags.
+       (EDGE_CRITICAL_P): New predicate.
+       * cfg.c (force_nonfallthru_and_redirect, split_edge): Kill EDGE_CRITICAL
+       handling.
+       (insert_insn_on_edge): Use EDGE_CRITICAL_P.
+       (dump_edge_info): Remove "crit".
+       * cfganal.c (mark_critical_edges): Kill.
+       * cfgbuild.c (find_basic_blocks): Remove mark_critical_edges call.
+       * cfgcleanup.c (cleanup_cfg): Likewise.
+       * profile.c (instrument_edges): Use EDGE_CRITICAL_P.
+       (find_spanning_tree): Likewise.
+       * reg-stack.c (convert_regs_1): Likewise.
+       * ssa.c (mark_regs_equivalent_over_bad_edges): Likewise.
+
+       * basic-block.h (create_basic_block_structure): New.
+       (create_basic_block): Update prototype.
+       (force_nonfallthru): New.
+       * bb-reorder.c (fixup_reorder_chain): Fixup use force_nonfallthru.
+       * cfg.c (create_basic_block_structure): Rename from create_basic_block;
+       handle updating of block_for_insn, creating of empty BBs and BBs at
+       the end of INSN chain.
+       (create_basic_block): New function.
+       (split_block): Use create_basic_block.
+       (force_nonfallthru_and_redirect): Break out from ...; cleanup
+       (redirect_edge_and_branch_force): ... here.
+       (force_nonfallthru): New.
+       (split_edge): Rewrite to use force_nonfallthru and create_block.
+       * cfgbuild.c (find_basic_blocks_1): Use create_basic_block_structure.
+       (find_basic_blocks): Free basic_block_for_insn.
+       * cfgcleanup.c (merge_blocks): Use force_nonfallthru.
+
+       * cfg.c: Fix formating.
+       * cfgcleanup.c: Fix formating.
+       (merge_blocks, tail_recursion_label_p): Return bool.
+       (merge_blocks_move_predecessor_nojumps,
+        merge_blocks_move_successor_nojumps): Return void.
+
+2001-09-11  Jakub Jelinek  <jakub@redhat.com>
+
+       * configure.in: Check whether assembler supports section merging.
+       * config.in: Rebuilt.
+       * configure: Rebuilt.
+       * varasm.c (variable_section, output_constant_pool): Pass alignment
+       to SELECT_SECTION and SELECT_RTX_SECTION.
+       (mergeable_string_section): New.
+       (mergeable_constant_section): New.
+       (default_elf_asm_named_section): Output SECTION_MERGE and
+       SECTION_STRINGS flags plus SECTION_ENTSIZE entity size.
+       * output.h (mergeable_string_section): New.
+       (mergeable_constant_section): New.
+       (SECTION_MERGE, SECTION_STRINGS, SECTION_ENTSIZE): Define.
+       * toplev.c (flag_merge_constants): New.
+       (f_options): Add -fmerge-constants and -fmerge-all-constants
+       options.
+       (toplev_main): Default to -fno-merge-constants if not optimizing.
+       * flags.h (flag_merge_constants): Add extern.
+       * invoke.texi (-fmerge-constants, -fmerge-all-constants): Document.
+       * tm.texi (SELECT_SECTION, SELECT_RTX_SECTION): Document added third
+       argument.
+       * config/elfos.h (ASM_SECTION_START_OP, ASM_OUTPUT_SECTION_START):
+       Define if assembler has working .subsection -1 support.
+       (SELECT_RTX_SECTION, SELECT_SECTION): Add third macro argument.
+       Put constant into special SHF_MERGE sections if the linker should
+       attempt to merge duplicates.
+       * config/ia64/sysv4.h (SELECT_RTX_SECTION, SELECT_SECTION): Add third
+       macro argument.
+       Put constant into special SHF_MERGE sections if the linker should
+       attempt to merge duplicates.
+       * config/alpha/elf.h: Likewise.
+       (ASM_SECTION_START_OP, ASM_OUTPUT_SECTION_START): Define if assembler
+       has working .subsection -1 support.
+       * config/nextstep.h: Add third argument to SELECT_RTX_SECTION and
+       SELECT_SECTION.
+       * config/svr3.h: Likewise.
+       * config/darwin.h: Likewise.
+       * config/arm/aof.h: Likewise.
+       * config/arm/linux-elf.h: Likewise.
+       * config/avr/avr.h: Likewise.
+       * config/c4x/c4x.h: Likewise.
+       * config/d30v/d30v.h: Likewise.
+       * config/i386/dgux.h: Likewise.
+       * config/i386/osfrose.h: Likewise.
+       * config/i386/sco5.h: Likewise.
+       * config/i386/svr3gas.h: Likewise.
+       * config/ia64/aix.h: Likewise.
+       * config/m32r/m32r.h: Likewise.
+       * config/m68k/m68k.h: Likewise.
+       * config/m88k/dgux.h: Likewise.
+       * config/m88k/m88k.h: Likewise.
+       * config/mcore/mcore-pe.h: Likewise.
+       * config/mips/mips.h: Likewise.
+       * config/pa/pa.h: Likewise.
+       * config/pa/pa-linux.h: Likewise.
+       * config/romp/romp.h: Likewise.
+       * config/rs6000/sysv4.h: Likewise.
+       * config/rs6000/xcoff.h: Likewise.
+       * config/s390/linux.h: Likewise.
+       * config/sparc/sparc.h: Likewise.
+       * config/sparc/sysv4.h: Likewise.
+       * config/stormy16/stormy16.h: Likewise.
+       * config/v850/v850.h: Likewise.
+       * config/vax/vms.h: Likewise.
+       * config/arm/arm.c (arm_elf_asm_named_section): Output SECTION_MERGE
+       and SECTION_STRINGS flags plus SECTION_ENTSIZE entity size.
+       * config/sparc/sparc.c (sparc_elf_asm_named_section): Use
+       default_elf_asm_named_section for SHF_MERGE sections.
+
+Tue Sep 11 17:55:54 CEST 2001  Jan Hubicka  <jh@suse.cz>
+
+       * bb-reorder.c (fixup_reorder_chain): Fallthru edge to exit block
+       is OK.
+
+2001-09-11  Joseph S. Myers  <jsm28@cam.ac.uk>
+
+       * c-common.c (split_specs_attrs): Allow for empty attributes with
+       empty TREE_PURPOSE.  Fixes PR c/4294.
+
+Tue Sep 11 11:37:52 CEST 2001  Jan Hubicka  <jh@suse.cz>
+
+       * basic-block.h (cached_make_edge, make_single_succ): New.
+       (make_edge): Remove first parameter.
+       * bb-reroder.c (fixup_reorder_chain): Use make_single_succ_edge.
+       * cfg.c (cached_make_edge): Rename from make_edge; return newly
+       created edge; use obstack allocation.
+       (make_edge, make_single_succ_edge): New.
+       (first_removed_edge): New static variable.
+       (init_flow): Initialize first_removed_edge and n_edges.
+       (clear_edges): Use remove_edge.
+       (flow_delete_block): Likewise.
+       (remove_edge): Add removed edges to the removed edges list.
+       (split_block, redirect_edge_and_branch_force, split_edge):
+       Use make_edge.
+       * cfganal.c (flow_call_edges_add): Updaet make_edge call.
+       (add_noreturn_fake_exit_edges): Likewise.
+       (connect_infinite_loops_to_exit): Liekwise.
+       * cfgbuild.c (make_label_edge, make_edges, find_sub_basic_blocks):
+       Use cached_make_edge.
+       * cfgcleanup.c (try_crossjump_to_edge): Use make_single_succ_edge.
+       * profile.c (branch_prob): Update make_edge call.
+       * ssa-dce.c (ssa_eliminate_dead_code): Likewise.
+
+2001-09-11  Richard Henderson  <rth@redhat.com>
+
+       * config/alpha/alpha.c: Tidy formatting.
+       (local_symbolic_operand): Verify mode.
+       (alpha_sa_mask): Ignore unicos for eh_return.
+       (alpha_expand_epilogue): Handle sp_adj2 zero, not NULL.
+       * config/alpha/alpha.md (umk divsi patterns): Remove.
+       (extendsfdf2): Remove unicos check.
+       (tablejump): Merge vms and unicos code; always use direct set
+       plus label_ref use.
+
+2001-09-11  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
+
+       * config.gcc (alpha*-*-unicosmk*): New target.
+
+       * config/alpha/alpha-protos.h (symbolic_operand,
+       unicosmk_add_call_info_word, unicosmk_add_extern,
+       unicosmk_defer_case_vector, unicosmk_unique_section,
+       unicosmk_output_align, unicosmk_text_section, unicosmk_data_section,
+       unicosmk_asm_file_start, unicosmk_asm_file_end,
+       unicosmk_output_common): Declare.
+
+       * config/alpha/alpha.c (NUM_ARGS, override_options, call_operand,
+       direct_return, function_arg, alpha_va_start, alpha_va_arg,
+       alpha_does_function_need_gp, alpha_end_function): Support Cray
+       Unicos/Mk.
+       (alpha_init_machine_status, alpha_mark_machine_status,
+       alpha_free_machine_status, unicosmk_output_deferred_case_vectors,
+       unicosmk_gen_dsib, unicosmk_output_ssib, unicosmk_need_dex,
+       unicosmk_asm_named_section, unicosmk_insert_attributes,
+       unicosmk_section_type_flags, symbolic_operand,
+       unicosmk_output_module_name, unicosmk_output_default_externs,
+       unicosmk_output_dex, unicosmk_output_externs,
+       unicosmk_output_addr_vec, unicosmk_ssib_name,
+       unicosmk_initial_elimination_offset, unicosmk_asm_file_start,
+       unicosmk_asm_file_end, unicosmk_output_common,
+       unicosmk_section_type_flags, unicosmk_unique_section,
+       unicosmk_add_call_info_word, unicosmk_text_section,
+       unicosmk_data_section, unicosmk_extern_list, unicosmk_extern_head,
+       unicosmk_add_extern, unicosmk_dex, unicosmk_dex_list,
+       unicosmk_dex_count, unicosmk_special_name): New.
+       (TARGET_INSERT_ATTRIBUTES, TARGET_SECTION_TYPE_FLAGS): Define for
+       TARGET_ABI_UNICOSMK.
+       (get_aligned_mem, alpha_expand_unaligned_load,
+       alpha_expand_unaligned_store, alpha_expand_unaligned_load_words,
+       alpha_expand_unaligned_store_words): Support big-endian mode.
+       (print_operand): Likewise. New format specifier 't'. Use
+       TARGET_AS_SLASH_BEFORE_SUFFIX.
+       (alpha_is_stack_procedure): Rename from vms_is_stack_procedure.
+       (alpha_pv_save_size): Update with above change.
+       (alpha_sa_mask, alpha_sa_size, alpha_expand_prologue,
+       alpha_start_function, alpha_expand_epilogue): Likewise. Support Cray
+       Unicos/Mk.
+
+       * config/alpha/alpha.h (TARGET_ABI_UNICOSMK): New.
+       (TARGET_ABI_OSF): Exclude TARGET_ABI_UNICOSMK.
+       (TARGET_AS_SLASH_BEFORE_SUFFIX): New.
+       (EXTRA_CONSTRAINT): New constraint 'U'.
+       (PREDICATE_CODES): Add symbolic_operand.
+
+       * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM,
+       UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): New constants.
+       (mulsi3, *mulsi_se, mulvsi3): Disable for TARGET_ABI_UNICOSMK.
+       (integer division and modulus patterns): Split in default and
+       Unicos/Mk versions.
+       (*divmodsi_internal, *divmoddi_internal): Disable for
+       TARGET_ABI_UNICOSMK.
+       (unaligned_extend?idi, unaligned_load?i, unaligned_store?i): Split in 
+       little-endian and big-endian versions.
+       (ext, ins, msk): Likewise.
+       (extv, extzv, insv): Support big-endian mode.
+       (call, call_value, tablejump): Support TARGET_ABI_UNICOSMK.
+       (call_umk, call_value_umk, *call_umk, tablejump_umk,
+       *tablejump_umk_internal, *call_value_umk): New.
+       (*movdi_nofix): Add pattern for loading an address into a register on
+       TARGET_ABI_UNICOSMK.
+       (umk_laum, umk_lal, umk_lalm, *umk_load_ciw): New.
+       (umk_mismatch_args, arg_home_umk): New.
+       (various insns): Don't use mov, fmov, nop, fnop and unop.
+       (realign): Support TARGET_ABI_UNICOSMK.
+
+       * config/alpha/unicosmk.h: New file.
+       * config/alpha/t-unicosmk: New file.
+
+       * fixinc/inclhack.def (unicosmk_restrict): New.
+       * fixinc/fixincl.x: Regenerate.
+
+       * ginclude/stddef.h (size_t): Check for and define __SIZE_T__.
+       (wchar_t): Check for and define __WCHAR_T__.
+
+2001-09-11  Richard Sandiford  <rsandifo@redhat.com>
+
+       * combine.c (simplify_shift_const): Treat shifts by the mode
+       size as undefined.
+
+2001-09-11  Neil Booth  <neil@daikokuya.demon.co.uk>
+
+       * cpphash.h (struct tokenrun): New.
+       (struct cpp_context): New member bol.
+       (struct cpp_reader): New members.
+       (_cpp_init_tokenrun): New.
+       * cppinit.c (cpp_create_reader): Set up the token runs.
+       * cpplex.c (lex_directive, lex_token, next_tokenrun): New.
+       (lex_token): New internalised version of _cpp_lex_token.  Don't
+       handle directives or the multiple include opimisation here any
+       more.  Simply lex a token.
+       * cpplib.c (run_directive): Clear bol.
+       (_cpp_pop_buffer): Set bol.
+       * cppmacro.c (funlike_invocation_p): Keep tokens whilst parsing
+       arguments.
+
+2001-09-11  Michael Meissner  <meissner@redhat.com>
+
+       * config/mips/mips.h (CC1_SPEC): If -mgp32 default to -mfp32, and
+       give an error if the user uses -mfp32.
+       (CPP_FPR_SPEC): Define __mips_fpr to be 32 or 64 depending on the
+       default options.
+       (CPP_SPEC): Define __mips_fpr to be 32 or 64, depending on the
+       floating point register size.
+       (EXTRA_SPECS): Add CPP_FPR_SPEC.
+
+       * config/mips/netbsd.h (ASM_FINISH_DECLARE_OBJECT): Use
+       HOST_WIDE_INT_PRINT_DEC to properly print the result of
+       int_size_in_bytes.
+       * config/mips/elf.h (ASM_FINISH_DECLARE_OBJECT): Ditto.
+       * config/mips/elf64.h (ASM_FINISH_DECLARE_OBJECT): Ditto.
+
+2001-09-11  Hans-Peter Nilsson  <hp@axis.com>
+
+       * dbxout.c (dbxout_parms): Fix typo in comment.
+       * unroll.c (loop_find_equiv_value): Ditto.
+       * toplev.c (rest_of_compilation): Ditto.
+       * loop.c (scan_loop): Ditto.
+       * dwarf2out.c (struct dw_fde_struct): Ditto.
+
+2001-09-10  Zack Weinberg  <zackw@panix.com>
+
+       * cpplex.c (parse_identifier): Fast-path optimize.  Avoid
+       copying identifier when we're just going to throw it away.
+       (parse_identifier_slow): New routine to handle abnormal cases.
+       (_cpp_lex_token): Update call site.
+
+       * hashtable.c (ht_lookup): Don't assume that the string we've
+       been given is NUL-terminated.
+       * system.h: #define __builtin_expect(a, b) to (a) if not
+       GCC >=3.0.
+
+2001-09-10  Michael Meissner  <meissner@redhat.com>
+
+       * config.gcc (sparc64-*-solaris2): Add alias to be compatible with
+       binutils, gdb.
+
+2001-09-10  David Edelsohn  <edelsohn@gnu.org>
+
+       * config/rs6000/t-aix43 (SHLIB_INSTALL): Use mode 751 (a+x,r-o).
+
+Mon Sep 10 16:26:44 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * builtins.c (c_getstr): Correct thinko in last change and further
+       cleanup.
+
+2001-09-10  Tim Freeman <tim@fungibole.com>
+
+       * dwarf2out.c (incomplete_types, decl_scope_table): Make them
+       into varray's and register them as roots with the garbage
+       collector so they are not collected too soon.
+
+Mon Sep 10 14:21:26 CEST 2001  Jan Hubicka  <jh@suse.cz>
+
+       * Makefile.in (cfg.o, cfganal.o, cfgloop.o, cfgbuild.o, cfgcleanup.o):
+       New.
+       * basic-block.h (flow_obstack, label_value_list,
+       tail_recursion_label_list): Declare
+       (tidy_fallthru_edges): Declare.
+       (expunge_block, last_loop_beg_note): Delete.
+       (can_fallthru, flow_nodes_print, flow_edge_list_print): Declare.
+       * cfg.c: New file
+       (basic_block_for_insn, label_value_list): Move from flow.c; make global.
+       (n_basic_blocks, n_edges, basic_block_info, entry_exit_blocks,
+       init_flow, clear_edges, can_delete_note_p, can_delete_label_p,
+       flow_delete_insn, flow_delete_insn_chain, create_basic_block,
+       expunge_block, flow_delete_block, compute_bb_for_insn,
+       update_bb_for_insn, set_block_for_insn, set_block_for_new_insns,
+       make_edge, remove_edge, redirect_edge_succ, redirect_edge_succ_nodup,
+       redirect_edge_pred, split_block, marge_blocks_nomove, block_label,
+       try_redirect_by_replacing_jump, last_loop_beg_note,
+       redirect_edge_and_branch, redirect_edge_and_branch_force,
+       tidy_fallthru_edge, tidy_fallthru_edges, back_edge_of_syntactic_loop_p,
+       split_edge, insert_insn_on_edge, commit_one_edge_insertion,
+       commit_edge_insertions, dump_flow_info, debug_flow_info,
+       dump_edge_info, dump_bb, debug_bb, debug_bb_n, print_rtl_with_bb,
+       verify_flow_info, purge_dead_edges, purge_all_dead_edges):
+       Move here from flow.c
+       * cfganal.c: New file.
+       (forwarder_block_p, can_fallthru, mark_critical_edges,
+        mark_dfs_back_edges, need_fake_edge_p, flow_call_edges_add,
+        find_unreachable_blocks, create_edge_list, free_edge_list,
+        print_edge_list, verify_edge_list, find_edge_index, flow_nodes_print,
+        flow_edge_list_print, remove_fake_successors, remove_fake_edges,
+        add_noreturn_fake_exit_edges, connect_infinite_loops_to_exit,
+        flow_reverse_top_sort_order_compute, flow_depth_first_order_compute,
+        flow_dfs_compute_reverse_init, flow_dfs-compute_reverse_add_bb,
+        flow_dfs-compute_reverse_execute, flow_dfs_compute_reverse_finish);
+       Move here from flow.c
+       * cfgbuild.c: New file
+       (count_basic_blocks, find_label_refs, make_label_edge, make_eh_edge,
+        make_edges, find_basic_blocks_1, find_basic_blocks,
+        find_sub_basic_blocks): Move here from flow.c
+       * cfgcleanup.c: New file.
+       (try_simplify_condjump, try_forward_edges, tail_recursion_label_p,
+        merge_blocks_move_predecessor_nojumps,
+        merge_blocks_move_successor_nojumps, merge_blocks,
+        flow_find_cross_jump, outgoing_edges_match, try_crossjump_to_edge,
+        try_crossjump_bb, try_optimize_cfg): Move here from flow.c
+       (delete_unreachable_blocks, cleanup_cfg): Likewise; return true
+       if succeeded.
+       * cfgloop.c: New file
+       (flow_loops_cfg_dump, flow_loop_nested_p, flow_loop_dump,
+        flow_loops_dump, flow_loops_free, flow_loop_entry_edges_find,
+        flow_loop_exit_edges_find, flow_loop_nodes_find,
+        flow_loop_pre_header_scan, flow_loop_pre_header_find,
+        flow_loop_tree_node_add, flow_loops_tree_build,
+        flow_loop_level_compute, flow_loops_level_compute, flow_loop_scan,
+        flow_loops_find, flow_loops_update, flow_loop_outside_edge_p):
+       Move here from flow.c
+       * flow.c: Remove everything moved elsewhere
+       * output.h (cleanup_cfg): Return bool.
+
+       * bb-reorder.c (reorder_block_def): Remove 'index'.
+       (insert_intra_1): Add argument BB, set block for new note.
+       (make_reorder_chain): Do not depdent on BB indexes.
+       (make_reorder_chain_1): Do not use BB indexes.
+       (label_for_bb): Likewise; set BB for new insn.
+       (emit_jump_to_block_after): Likewise.
+       (fixup_reoder_chain): Sanity check that all basic blocks
+       are chained; verify newly created insn chain; remove
+       undocnitional jump simplifying; Do not use BB indexes;
+       properly initialize count and frequency information;
+       dump reordered sequence.
+       (insert_intra_bb_scope_notes): update call of insert_intra_1.
+       (insert_inter_bb_scope_notes): Set block for new insn.
+       (reorder_basic_blocks): Dump flow info before reoredering.
+
+Mon Sep 10 06:47:35 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * alias.c (clear_reg_alias_info): Use K&R format definition.
+       Avoid unsigned warning.
+       * builtins.c: Use "unsigned int", not "unsigned".
+       (target_char_cast): Use host_integerp and tree_low_cst.
+       (expand_builtin_args_info, expand_builtin_frame_address): Likewise.
+       (c_strlen): Likewise; OFFSET now HOST_WIDE_INT.
+       (c_getstr): Likewise.
+       (std_expand_builtin_va_arg): Use int_size_in_bytes.
+       (builtin_memcpy_read_str): Avoid unsigned warning.
+       (expand_builtin_memcpy): Alignments are unsigned.
+       (expand_builtin_strncpy, expand_builtin_memset): Likewise.
+       (expand_builtin_expect_jump): Use integer_zerop and integer_onep.
+       * predict.c (expensive_function_p): LIMIT now unsigned.
+       * resource.c (mark_target_live_regs): Make some vars unsigned.
+       * sdbout.c: Use "unsigned int", not "unsigned".
+       (MAKE_LINE_SAFE): Add cast to avoid unsigned warning.
+       (sdbout_source_line): Likewise.
+       (sdbout_record_type_name): Remove "const" for NAME declaration.
+       * config/alpha/alpha.c (alpha_expand_block_move): Whitespace fixes.
+
+2001-09-10  Richard Sandiford  <rsandifo@redhat.com>
+
+       * calls.c (store_one_arg): Expand comment.
+
+2001-09-10  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
+
+       * calls.c (store_one_arg): Make sure that the entire argument is
+       pushed if STACK_PARMS_IN_REG_PARM_AREA is defined.
+
+2001-09-09  Richard Henderson  <rth@redhat.com>
+
+       * emit-rtl.c (adjust_address): Fix mode for LO_SUM.
+
+Sun Sep  9 10:43:17 CEST 2001  Jan Hubicka  <jh@suse.cz>
+
+       * loop.c (combine_givs): Fix computing of benefit once giv is combined.
+
+2001-09-09  Richard Henderson  <rth@redhat.com>
+
+       * config/alpha/alpha.c (alpha_next_sequence_number): New.
+       (alpha_this_literal_sequence_number): New.
+       (alpha_this_gpdisp_sequence_number): New.
+       (some_operand, input_operand): Add HIGH.
+       (local_symbolic_operand): New.
+       (alpha_encode_section_info): New.
+       (alpha_legitimate_address_p): Allow LO_SUM.
+       (alpha_legitimize_address): Generate HIGH+LO_SUM.
+       (alpha_expand_mov): Likewise.
+       (secondary_reload_class): Check memory_operand not general_operand
+       for FP_REGS test.
+       (alpha_expand_unaligned_load): Force LO_SUM addresses into a register.
+       (alpha_expand_unaligned_store): Likewise.
+       (alpha_expand_unaligned_load_words): Likewise.
+       (alpha_expand_unaligned_store_words): Likewise.
+       (alpha_expand_block_clear): Likewise.
+       (print_operand): Handle %#, %*, %H.
+       (print_operand_address): Handle LO_SUM.
+       (find_lo_sum): New.
+       (alpha_does_function_need_gp): Use it.
+       (alpha_expand_block_move): Fix signed compare warnings.
+       (alpha_sa_mask, alpha_align_insns): Likewise.
+       * config/alpha/alpha-protos.h: Update.
+       * config/alpha/alpha.h (TARGET_EXPLICIT_RELOCS): New.
+       (MASK_EXPLICIT_RELOCS): New.
+       (TARGET_SWITCHES): Add -mexplicit-relocs.
+       (EXTRA_CONSTRAINT): Add 'T'.
+       (PREFERRED_RELOAD_CLASS): HIGH goes in GENERAL_REGS.
+       (ASM_APP_ON, ASM_APP_OFF): Turn on and off asm macro expansion.
+       (ENCODE_SECTION_INFO): Out line.
+       (REDO_SECTION_INFO_P): New.
+       (STRIP_NAME_ENCODING): New.
+       (ASM_OUTPUT_LABELREF): New.
+       (PRINT_OPERAND_PUNCT_VALID_P): Add #, *.
+       (PREDICATE_CODES): Update.
+       * config/alpha/alpha.md (divmodsi_internal_er, divmoddi_internal_er,
+       call_osf_1_er_noreturn, call_osf_1_er, movdi_er_low, movdi_er_nofix,
+       movdi_er_fix, prologue_ldgp_1_er, builtin_setjmp_receiver_sub_label_er,
+       builtin_setjmp_receiver_er, exception_receiver_1_er,
+       call_value_osf_1_er): New patterns.
+       (sibcall_osf_1, sibcall_value_osf_1): Remove register alternative.
+       (movqi, movhi, movsi): Add explicit $31 base register to lda.
+       * config/alpha/elf.h (ASM_FILE_START): Set nomacro if explicit relocs.
+       (FINAL_PRESCAN_INSN): New.
+
+Sat Sep  8 22:00:55 CEST 2001  Jan Hubicka  <jh@suse.cz>
+
+       * reg-stack.c (subst_stack_regs_pat): Fix fcmov reversal code.
+
+2001-09-08  Andreas Jaeger  <aj@suse.de>
+
+       * i386.h (TARGET_SWITCHES): Fix description.
+
+2001-09-07  David Edelsohn  <edelsohn@gnu.org>
+
+       * rs6000.c (num_insns_constant): Compute number of instructions
+       more accurately.
+
+       * doc/install.texi: Explain AIX exception handling work-around.
+       Update URL for AIX fixes.
+
+2001-09-07  Jim Wilson  <wilson@redhat.com>
+
+       * alias.c (clear_reg_alias_info): New.
+       * flow.c (attempt_auto_inc): Call clear_reg_alias_info.
+       * rtl.h (clear_reg_alias_info): Declare.
+
+2001-09-07  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
+
+       * real.c (EMUSHORT,EMUSHORT_SIZE): Use HImode if no 16-bit type is
+       available.
+       (UEMUSHORT): New. Use instead of unsigned EMUSHORT.
+       (m16m,edivm,emulm): Change declaration to match definition.
+
+2001-09-07  Roman Lechtchinsky <rl@cs.tu-berlin.de>
+
+       * reload.c (push_reload): Check for subreg_lowpart_p instead of
+       SUBREG_BYTE being 0 when determining if the inner part of a subreg
+       can be reloaded.
+
+2001-09-07  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
+
+       * c-common.c (signed_or_unsigned_type): Handle machine mode types
+       which have no corresponding C type.
+       * fold_const.c (target_isinf,target_isnan,target_negative): Update
+       the representation of 64-bit doubles to work with 64-bit ints.
+
+2001-09-07  Aldy Hernandez  <aldyh@redhat.com>
+
+       * config/mips/mips.c (override_options): Do not override ISA when ABI
+       specified if MIPS_CPU_STRING_DEFAULT was specified.
+
+2001-09-07  Richard Henderson  <rth@redhat.com>
+
+       * loop.c (record_giv): Avoid simplifying MULT to ASHIFT.
+       (express_from_1): Wrap lines.
+       * rtlanal.c (commutative_operand_precedence): Rename from
+       operand_preference; export.
+       * rtl.h: Declare it.
+       * simplify-rtx.c (simplify_gen_binary): Tidy +/- const_int handling.
+       (simplify_binary_operation): Invoke simplify_plus_minus on
+       (CONST (PLUS ...)) as well.
+       (struct simplify_plus_minus_op_data): New.
+       (simplify_plus_minus_op_data_cmp): New.
+       (simplify_plus_minus): Use them.  Avoid infinite recursion with
+       simplify_binary_operation wrt CONST.
+
+Fri Sep  7 11:52:30 2001   Kazu Hirata  <kazu@hxi.com>
+
+       * h8300-protos.h (general_operand_dst_push): Remove.
+       * h8300.c (general_operand_dst_push): Likewise.
+       * h8300.h (OK_FOR_T): Likewise.
+       (EXTRA_CONSTRAINTS): Do not use OK_FOR_T.
+       * h8300.md (pushqi_h8300): New.
+       (pushqi_h8300hs): Likewise.
+       (pushqi): Likewise.
+       (pushhi_h8300): Likewise.
+       (pushhi_h8300hs): Likewise.
+       (pushhi): Likewise.
+
+Fri Sep  7 12:56:26 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * genattrtab.c (attr_printf): First arg is unsigned.
+       Clean up formatting of callers.
+
+2001-09-06  Aldy Hernandez  <aldyh@redhat.com>
+
+       * config/mips/mips.c (override_options): Allow abi32 with 64 bit
+       registers.
+
+2001-09-07  Andreas Jaeger  <aj@suse.de>
+
+       * i386.h (TARGET_SWITCHES): Fix descriptions.
+
+2001-09-07  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
+
+       * stor-layout.c (compute_record_mode): Check DECL_SIZE is set.
+
+2001-09-06  Ira Ruben  <ira@apple.com>
+
+       Remove OP_IDENTIFIER.
+       * tree.def (OP_IDENTIFIER): Remove.
+       * tree.c (tree_node_kind enum): Remove op_id_kind.
+       (tree_node_kind_names): Remove "op_identifiers".
+       (make_node): Remove OP_IDENTIFIER test.
+       (build_op_identifier): Removed because it isn't being used.
+       * print-tree.c (print_node): Remove OP_IDENTIFIER case.
+       * cp/pt.c (tsubst): Remove OP_IDENTIFIER case.
+
+2001-09-06  Richard Henderson  <rth@redhat.com>
+
+       * simplify-rtx.c (simplify_binary_operation): Revert last change.
+
+2001-09-06  Richard Henderson  <rth@redhat.com>
+
+       * simplify-rtx.c (simplify_binary_operation): Simplify contents
+       of CONST.
+
+2001-09-06  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
+
+       * config/rs6000/rs6000.c (rs6000_emit_prologue): Fix DWARF2 register
+       number used for CR register.
+
+Thu Sep  6 11:16:35 2001  Jeffrey A Law  (law@cygnus.com)
+                         Joern Rennecke (amylaar@cygnus.com)
+
+       * h8300-protos.h (h8300_return_addr_rtx): New prototype.
+       * h8300.c (initial_offset): Handle offset between RP and FP.
+       (h8300_return_addr_rtx): New function.
+       * h8300.h (FIRST_PSEUDO_REGISTER): Bump now that we have a
+       return register.
+       (FIXED_REGISTERS, CALL_USED_REGISTERS): Corresponding changes.
+       (REG_ALLOC_ORDER, RETURN_ADDRESS_POINTER_REGNUM): Likewise.
+       (REG_CLASS_CONTENTS, ELIMINABLE_REGS): Likewise.
+       (CAN_ELIMINATE, REGISTER_NAMES):
+       (RETURN_ADDR_RTX): Call h8300_return_addr_rtx.
+
+2001-09-06  Nathan Sidwell  <nathan@codesourcery.com>
+
+       Remove TYPE_NONCOPIED_PARTS.
+       * tree.h (TYPE_NONCOPIED_PARTS): Remove.
+       (struct tree_type): Remove noncopied_parts.
+       * c-tree.h (TYPE_ACTUAL_ARG_TYPES): Map onto TYPE_BINFO.
+       * expr.c (save_noncopied_parts, init_noncopied_parts): Remove.
+       (fixed_type_p): Remove.
+       (expand_expr, INIT_EXPR): Don't deal with noncopied parts.
+       (expand_expr, MODIFY_EXPR): Likewise.
+       * ggc-common.c (ggc_mark_trees): Remove TYPE_NONCOPIED_PARTS.
+       * doc/c-tree.texi: Remove TYPE_NONCOPIED_PARTS FIXME.
+
+2001-09-06  Alan Modra  <amodra@bigpond.net.au>
+
+       * config/rs6000/rs6000.c (mask_operand): Use signed vars to avoid
+       compiler warnings.
+       (mask64_operand): Likewise.
+       (includes_rldic_lshift_p): Likewise.
+       (includes_rldicr_lshift_p): Likewise.
+
+2001-09-05  Ziemowit Laski  <zlaski@apple.com>
+
+       * objc/objc-act.c (build_message_expr): If a class method cannot
+       be found, do not issue a warning if a corresponding instance
+       method exists in the root class.
+
+2001-09-05  Richard Henderson  <rth@redhat.com>
+
+       * config/alpha/alpha.c (alpha_expand_mov): Initialize temp.
+
+2001-09-05  Zack Weinberg  <zack@codesourcery.com>
+
+       * function.c (ggc_mark_struct_function): Mark f->outer.
+       * toplev.c (rest_of_compilation): Clear DECL_SAVED_INSNS here...
+       * integrate.c (output_inline_function): ... not here.
+
+Wed Sep  5 17:28:49 CEST 2001  Jan Hubicka  <jh@suse.cz>
+
+       * profile.c (branch_prob): Call add_noreturn_fake_exit_edges.
+
+       * i386.c (size_cost): New static variable.
+       (override_function): Use size_cost when -Os is specified.
+
+       * i386.c (ix86_expand_prologue): Set use_fast_prologue_epilogue
+       properly;  Use current_function_calls_eh_return.
+       (ix86_expand_epilogue): Avoid dummy optimize_size tests;
+       use leave to avoid depdendancy chain.
+
+       * local-alloc.c (update_equiv_regs): Use CFG to iterate over INSN stream;
+       get BB loop_depth instead of computing it from LOOP notes.
+
+       * reg-stack.c (subst_stack_reg_pat): Handle reversal of conditional moves.
+
+2001-09-05  John David Anglin  <dave@hiauly1.hia.nrc.ca>
+
+       * som.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
+       * pa.h (UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
+       UNALIGNED_DOUBLE_INT_ASM_OP): Define
+
+2001-09-05  Jeffrey A Law  (law@cygnus.com)
+           Jason Merrill (jason@redhat.com)
+
+       * stor-layout.c (layout_type): Complain if an array's size can
+       not be represented in a size_t.
+
+       * config/h8300/elf.h (ENDFILE_SPEC, STARTFILE_SPEC): Define.
+
+2001-09-05  David Billinghurst <David.Billinghurst@riotinto.com>
+
+       * gcc.c: (process_command) Add parentheses around assignment
+       used as truth value.
+
+2001-09-05  Richard Sandiford  <rsandifo@redhat.com>
+
+       * config/mips/mips.c (save_restore_insns): Don't mark any register
+       save slots as unchanging if current_function_calls_eh_return.
+
+2001-09-05  Richard Henderson  <rth@redhat.com>
+
+       * config/alpha/alpha.c (alpha_legitimate_address_p): New.
+       * config/alpha/alpha-protos.h: Declare it.
+       * config/alpha/alpha.h (GO_IF_LEGITIMATE_ADDRESS): Move to c file.
+       (NONSTRICT_REG_OK_FOR_BASE_P): Rename from non-strict macro.
+       (NONSTRICT_REG_OK_FP_BASE_P): Likewise.
+       (STRICT_REG_OK_FOR_BASE_P): Rename from strict macro.
+       (REG_OK_FOR_BASE_P): Select one of the above.
+
+2001-09-05  Richard Sandiford  <rsandifo@redhat.com>
+
+       * config/mips/t-elf (EXTRA_PARTS): Use EXTRA_MULTILIB_PARTS instead.
+       (crti.o): Prefix name of object file with $(T).
+       (crtn.o): Likewise.
+
+2001-09-05  David S. Miller  <davem@redhat.com>
+
+       * config/sparc/linux.h: Set CPLUSPLUS_CPP_SPEC.
+       * config/sparc/linux64.h: Likewise.
+
+2001-09-05  Andreas Jaeger  <aj@suse.de>
+
+       * doc/invoke.texi (i386 Options): -mwide-multiply is not
+       available anymore, remove the documentation.
+       (i386 Options): Fix typo, cleanup index entries.
+
+       * prefix.c (concat): Remove, we can use the version from liberty.
+
+2001-09-05  Richard Henderson  <rth@redhat.com>
+
+       * config/alpha/alpha.c (alpha_expand_mov, alpha_expand_mov_nobwx):
+       New functions split out of md file expanders.
+       * config/alpha/alpha-protos.h: Declare them.
+       * config/alpha/alpha.md (movqi, movhi, movsi, movdi): Use them.
+
+2001-09-05  Neil Booth  <neil@daikokuya.demon.co.uk>
+
+       * cppmacro.c (funlike_invocation_p): No need to restore context.
+
+2001-09-04  Richard Henderson  <rth@redhat.com>
+
+       * reload.c (push_reload): Export.
+       * reload.h (push_reload): Declare it.
+
+       * config/alpha/alpha.h (LEGITIMIZE_ADDRESS): Move out o' line.
+       (LEGITIMIZE_RELOAD_ADDRESS): Likewise.
+       * config/alpha/alpha.c (alpha_legitimize_address): New.
+       (alpha_legitimize_reload_address): Likewise.
+       * config/alpha/alpha-protos.h: Declare them.
+
+2001-09-04  Stan Shebs  <shebs@apple.com>
+
+       * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Define.
+       * config/darwin.c (machopic_stub_name): Account for internally
+       generated lib calls such as memcpy.
+
+2001-09-04  Richard Henderson  <rth@redhat.com>
+
+       * unwind.h (_UA_END_OF_STACK): New flag.
+       * unwind.inc (_Unwind_ForcedUnwind_Phase2): Set it.
+
+Tue Sep  4 11:16:35 2001  Jeffrey A Law  (law@cygnus.com)
+
+       * h8300/elf.h (LINK_SPEC): Redefine appropriately for the H8.
+
+2001-09-04  Richard Sandiford  <rsandifo@redhat.com>
+
+       * config/mips/mips.c (save_restore_insns): Change base_offset to
+       fp_offset in second call to mips_emit_frame_related_store.
+
+2001-09-04  Hans-Peter Nilsson  <hp@axis.com>
+
+       * doc/rtl.texi: Mention that besides as a CODE_LABEL, a label can
+       sometimes be represented as a NOTE of type
+       NOTE_INSN_DELETED_LABEL.
+       (Insns): Document NOTE_INSN_DELETED_LABEL.
+
+2001-09-04  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * c-common.h (tree_dump_index): Add more comments.
+       * c-dump.c (dump_files): Name flags `tree' rather than `ast'.
+       (dump_option_value_info): New struct.
+       (dump_options): New array.
+       (dump_switch_p): Parse switch options symbolically.
+       * doc/invoke.texi (-fdump-ast): Rename to ...
+       (-fdump-tree): ... here. Document that options are symbolic, and
+       not all are applicable.
+
 2001-09-04  David S. Miller  <davem@redhat.com>
 
        * config/sparc/sparc.md (define_splits): Kill constraints.
 
+       Cleanup redundant and unused insn attributes.
+       * config/sparc/sparc.md (define_attr "insn"): Kill address, unary,
+       binary, and move.  Mark ialu as default.
+       (commented out define_function_unit "alu"): Kill.
+       (define_attr "use_clobbered"): Kill.
+       (whole file): Kill address insn type references.  Replace
+       all unary/binary/move references with ialu.
+       * config/sparc/sparc.c (whole file): Kill TYPE_ADDRESS
+       references.  Replace TYPE_{UNARY,BINARY,MOVE} references with
+       TYPE_IALU.
+
+       Simplify length insn attribute and make more judicious use
+       of insn attribute defaulting.
+       * config/sparc/sparc.md (all insns with length > one): Mark as
+       insn type multi if real instructions, else use default if
+       it is a forced splitter.
+       (all insns with length == one): Use default insn length.
+       (all insns of type ialu): Use default insn type.
+
+       Fix erroneous insn attribute settings.
+       (addx): Set insn type to misc.
+       (mulsidi3_sp64, const_mulsidi3_sp64, umulsidi3_sp64,
+       const_umulsidi3_sp64): Set insn type to imul.
+
+       Track SFmode vs DFmode insns according to UltraSPARC
+       scheduling rules.
+       * config/sparc/sparc.md ("fptype"): New attribute, default
+       to "single".
+       (all DFmode single insns): Mark as fptype "double".
+
 2001-09-03  Jakub Jelinek  <jakub@redhat.com>
 
        * loop.c (express_from_1): Fix CONSTANT_P(a) case.