OSDN Git Service

* reload.c (find_equiv_reg): Checks all valueno and regno regs
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 87c0522..008a523 100644 (file)
@@ -1,3 +1,701 @@
+Fri Apr 21 14:58:29 2000  Denis Chertykov  <denisc@overta.ru>
+
+       * reload.c (find_equiv_reg): Checks all valueno and regno regs
+       as a call-clobbered regs.
+
+Fri Apr 21 13:30:26 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * rtl.c: Use NOTE_INSN_REPEATED_LINE_NUMBER and NOTE_INSN_RANGE_BEG.
+       * rtl.h: Likewise.
+       * rtl.def: Update comment.
+       * function.c (expand_function): Use NOTE_INSN_REPEATED_LINE_NUMBER.
+       * integrate.c (expand_inline_function): Likewise.
+       * profile.c (branch_prob): Likewise.
+       * ggc-common.c (ggc_mark_rtx_children): Use NOTE_INSN_RANGE_BEG.
+       * print-rtl.c (print_rtx): Likewise.
+       * haifa-sched.c (sched_analyze, unlink_other_notes): Likewise.
+       (reemit_notes): Likewise; also use enum insn_note.
+
+       * stor-layout.c (layout_decl): Only set DECL_MODE if not already set.
+       (place_field): Properly compute know and actual alignment.
+
+       * gengenrtl.c (gencode): Write obstack_alloc_rtx function start
+       in proper format.
+
+       * cse.c (cse_insn): In (set REG0 REG1) case, remove a REG_EQUAL
+       note for REG1.
+
+2000-04-21  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * cpphash.c (struct arg, struct arglist): Const-ify strings.
+       (warn_trad_stringify, duplicate_arg_p): New helper functions.
+       (collect_expansion): Rewrite to scan over a token list.
+       Remove -traditional support.
+       (collect_formal_parameters): Rename to collect_params; rewrite
+       to scan over a token list.
+       (_cpp_create_definition): Adjust to scan a token list.
+       (_cpp_macroexpand): Remove -traditional support.
+       (_cpp_compare_defs): Whitespace is now canonicalized.
+       (comp_def_part): Delete function.
+
+       * cpphash.h: Update prototypes.
+       * cpplex.c (init_token_list): Don't set lineno if there is no
+       buffer.
+       (pedantic_whitespace): New function.
+       (_cpp_scan_line): Mark tokens that had hspace before.  Don't
+       consume a newline.  Use pedantic_whitespace.
+       (_cpp_lex_token): Remove support for -traditional macros.
+       (_cpp_get_define_token): Delete.
+       (_cpp_get_directive_token): Do the real work here.  Use
+       pedantic_whitespace.
+       (_cpp_init_input_buffer): Initialize pfile->directbuf.
+
+       * cpplib.c (get_macro_name): Delete.
+       (do_define): Read the entire line into pfile->directbuf, then
+       feed the token list to _cpp_create_definition.
+       * cpplib.h (HSPACE_BEFORE): new define.
+       (struct cpp_reader): Add a toklist member, "directbuf".
+
+       * predict.c (estimate_probability): New heuristic: if a jump
+       branches around a block with no successors, predict it taken.
+       Disentangle control flow.
+
+2000-04-20  Richard Henderson  <rth@cygnus.com>
+
+       * loop.c (emit_iv_add_mult): Revert last change.
+
+2000-04-20  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * cpplib.h (enum cpp_ttype): Add token types for all
+       punctuators.  Distinguish pp-numbers from valid C numbers.
+       Give some tokens better names.  Initialize from macro.    
+       (struct cpp_name, cpp_token, cpp_toklist): New data   
+       structures.
+       Update prototypes.
+       * cpplex.c (bump_column, expand_name_space,
+       expand_token_space, init_token_list, cpp_output_list,
+       _cpp_scan_line):  New functions.
+       (output_line_command): Add third argument, new line number.
+       * cpphash.h: Update prototypes.
+       * cppexp.c, cpphash.c, cpplib.c, scan-decls.c: Update for new
+       token names.
+
+2000-04-20  Richard Henderson  <rth@cygnus.com>
+
+       * config/alpha/alpha.c (alpha_emit_floatuns): Emit missing barrier.
+
+2000-04-20  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * c-common.c (decl_attributes) [A_ALIAS]: Set TREE_USED on the
+       object pointed to.
+
+Thu Apr 20 14:19:18 MET DST 2000  Jan Hubicka  <jh@suse.cz>
+
+       * loop.c (emit_iv_add_mult):  Simplify it's input and emit
+       REG_EQUAL note explaining the calculated value.
+
+       * calls.c (expand_call): Avoid unnecesary precalculation
+       and outgoing parameters space guarding for sibling calls.
+       (store_one_arg): Likewise.
+
+Thu Apr 20 08:01:07 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * toplev.c (enum dump_file_index, dump_file): Add DFI_sibling.
+       (rest_of_compilation): Write sibling dump file and account
+       for time as jump time.
+       * invoke.texi: Update documentation on dump flags.
+
+2000-04-19  Marek Michalkiewicz  <marekm@linux.org.pl>
+
+       * avr.c: #include "system.h" instead of <stdio.h> and <stdlib.h>.
+
+2000-04-19  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * cpphash.c (special_symbol): Represent an empty macro with
+       "\r \r " not just "\r ".
+       (_cpp_macroexpand): Correct condition for the foo ( ) special
+       case.
+       (unsafe_chars): Handle EOF as second argument.
+       (push_macro_expansion): Simplify test for removing escape at
+       end.  Do not trim both escapes if there is no text in between.
+
+2000-04-19  Jim Blandy  <jimb@redhat.com>
+
+       * dwarf2out.c (DWARF2_ADDR_SIZE): New macro.  Use it instead
+       of PTR_SIZE, when appropriate.
+
+2000-04-19  Mark Mitchell  <mark@codesourcery.com>
+
+       * system.h (ONLY_INT_FIELDS): Make sure it is defined.
+       (USE_ENUM_BITFIELDS): Fix typo.
+
+Wed Apr 19 12:14:55 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * stor-layout.c (place_field): Set rli->offset_align properly.
+
+2000-04-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * mips.h (BITS_PER_WORD, UNITS_PER_WORD, UNITS_PER_FPREG,
+       INT_TYPE_SIZE, LONG_TYPE_SIZE, POINTER_SIZE, POINTER_BOUNDARY,
+       PARM_BOUNDARY): Remove unnecessary casts.
+
+Wed Apr 19 12:02:37 MET DST 2000  Jan Hubicka  <jh@suse.cz>
+
+       * calls.c (precompute_arguments): Remove must_preallocate and
+       args_size calls.
+       (expand_call): Update call of precompute_arguments.
+
+       * loop.c (check_insn_for_bivs, for_every_insn_in_loop,
+       check_insn_for_givs): Break out from ...
+       (strength_reduce) ... here; use for_every_insn_in_loop to call
+       check_insn_for_givs.
+       * loop.h (for_every_insn_in_loop): Declare.
+       (loop_insn_callback): New type.
+
+2000-04-18  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * cpplib.c (do_pragma_poison):  Strings in the token buffer are
+       not nul-terminated.
+
+Tue Apr 18 16:04:12 2000  Jim Wilson  <wilson@cygnus.com>
+
+       * config/ia64/sysv4.h (SELECT_SECTION): Use data_section if
+       flag_pic and RELOC.
+
+2000-04-18  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * cccp.c, cexp.y, cexp.c, cccp.1: Removed.
+
+       * configure.in: Delete --disable-cpplib option and all
+       references to cpp_main.
+       * configure: Regenerate.
+       * Makefile.in: Remove all references to CCCP, CCCP_OBJS,
+       @cpp_main@, cccp.c, cexp.c, cexp.y, cexp.output, cexp.o,
+       cccp.o, cccp, or cppmain.  Link cppmain.o straight to
+       cpp$(exeext).  Add --no-headers to makeinfo command line when
+       generating INSTALL.  Install and uninstall cpp.1 manpage, not
+       cccp.1.
+       * install.texi: Delete all references to cexp.y/cexp.c.
+       Delete ancient instructions for compiling GCC on 3b1.
+       * INSTALL: Regenerate.
+
+       * cppfiles.c, cpplib.h, jump.c, protoize.c, c-lex.c, mips/t-ecoff,
+       mips/t-elf, mips/t-r3900: Remove references to cccp.c.
+       * convex.h, fx80.h, m68k.h, pdp11.h: Remove references to
+       cexp.c/cexp.y.
+       * xm-linux.h, xm-os2.h, romp.h: Remove definition of BSTRING,
+       which is no longer tested anywhere.
+       
+       * cppinit.c (handle_option): Don't run error message through
+       gettext twice.
+
+Tue Apr 18 14:16:47 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * conflict.c (conflict_graph_add): Pass enum type to htab_find_slot.
+       * cpperror.c (hashtab.h): Now include.
+       * cppexp.c (hashtab.h): Likewise.
+       * cpplex.c (hashtab.h): Likewise.
+       * cppfiles.c (hashtab.h): Likewise.
+       (find_include_file, _cpp_calc_hash, cpp_read_file): Pass enum type
+       to htab_find_slot_with_hash.
+       * cpphash.c (hashtab.h): Now include.
+       (_cpp_lookup_slot): INSERT is now enum insert_option.
+       * cpphash.h (_cpp_lookup_slot): Likewise.
+       * cppinit.c (hashtab.h): Include earlier.
+       (initialize_builtins): Pass enum to htab_find_slot.
+       * cpplib.c (hashtab.h): Now include.
+       (do_define, do_undef): Pass enum type to _cpp_lookup_slot.
+       (do_pragma_poison, do_assert): Likewise.
+       * emit-rtl.c (gen_rtx_CONST_INT): Pass enum to
+       htab_find_slot_with_hash.
+       * simplify-rtx.c (cselib_lookup_mem, cselib_lookup): Likewise.
+       * tree.c (type_hash_add): Likewise.
+       (build1): Minor cleanup.
+
+       * ggc-common.c: Add missing blanks.
+       * print-tree.c (print_node): Print DECL_OFFSET_ALIGN.
+       * tree.h (DECL_OFFSET_ALIGN): Fix typo in comment.
+
+       * stmt.c (mark_case_node): New function.
+       (mark_case_nesting): Call it.
+
+       * expmed.c (emit_store_flag): If comparing two-word integer
+       with zero, can optimize NE, EQ, GE, and LT.
+
+       * c-decl.c (mark_binding_level): Use 'for' instead of `while'.
+       * conflict.c: Minor cleanups.
+       * optabs.c: Add blank line
+       * simplify-rtx.c: Minor cleanups.
+
+2000-04-18  Stan Cox  <scox@cygnus.com>
+
+       * gengenrtl.c (genlegend): Fix misspelling.
+
+2000-04-18  Robert Lipe  <robertlipe@usa.net>
+
+       * configure.in (ENUM_BITFIELDS_ARE_UNSIGNED): Added.  Check that
+       bitfields of the host compiler are not signed quantities.
+       * config.in: Regenerate.
+       * configure: Regenerate.
+       * system.h (USE_ENUM_BITFIELDS): Added.
+       (ENUM_BITFIELDS): Added.
+       * rtl.h (rtx_def): Members `code', `mode', now ENUM_BITFIELD.
+       (SHORT_ENUM_BUG): Deleted.
+       * tree.h (tree_common): Members `code', `mode', `built_in_class', 
+       now ENUM_BITFIELD.
+       * config/i386/xm-sco.h (ONLY_INT_FIELDS): Deleted.
+       (CODE_FIELD_BUG): Likewise.
+       * config/m68k/x-apollo68 (CC): Deleted SHORT_ENUM_BUG.
+       (OLD_CC): Likewise.
+       * config/m68k/x-ccur (X_CFLAGS): Likewise.
+
+2000-04-18  Mark Mitchell  <mark@codesourcery.com>
+
+       * cpplex.c (_cpp_lex_token): Don't call CPP_BUMP_LINE when the
+       mark is active.
+
+2000-04-17  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * cppexp.c (lex): Don't assume tokens are NUL terminated.
+       * cpplib.c (do_include, do_import, do_include_next,
+       read_line_number, detect_if_not_defined): Likewise.
+       * cpphash.c (collect_expansion): Likewise.
+       (special_symbol, _cpp_macroexpand): Check return from
+       cpp_file_buffer.
+       * cpphash.h (CPP_NUL_TERMINATE, CPP_NUL_TERMINATE_Q): Delete
+       macros.  Delete all uses.
+
+       * gcc.dg/cpp-mi.c: Add two more test cases.
+       * gcc.dg/cpp-mind.h, gcc.dg/cpp-mindp.h: New files.
+
+2000-04-17  Richard Henderson  <rth@cygnus.com>
+
+       * bb-reorder.c (fixup_reorder_chain): Don't look up new block again.
+       (reorder_basic_blocks): If no epilogue in rtl, force last block last.
+
+2000-04-17  Mark Mitchell  <mark@codesourcery.com>
+
+       * function.c (expand_function_start): Use hard_function_value to
+       compute the RTL to use for DECL_RESULT.
+
+Mon Apr 17 23:35:29 MET DST 2000  Jan Hubicka  <jh@suse.cz>
+
+       * i386.c (athlon_cost): Fix lea, divide and XFmode move costs.
+       (x86_integer_DFmode_moves, x86_partial_reg_dependency,
+        x86_memory_mismatch_stall): New global variables.
+       (ix86_adjust_cost): Handle MEMORY_BOTH on places MEMORY_STORE was only
+       alloved; fix load penalties for Athlon.
+       * i386.h (x86_integer_DFmode_moves, x86_partial_reg_dependency,
+       x86_memory_mismatch_stall): Declare.
+       (TARGET_INTEGER_DFMODE_MOVES, TARGET_PARTIAL_REG_DEPENDENCY,
+        TARGET_MEMORY_MISMATCH_STALL): New.
+       * i386.md (athlon scheduling parameters): Fix latencies according to
+       Athlon Optimization Manual.
+       (sahf, xchg, fldcw, leave instruction patterns): Set athlon_decode to
+       vector.
+       (fsqrt instruction patterns): Set athlon_decode to direct.
+       (movhi_1): Promote for TARGET_PARTIAL_REG_DEPENDENCY and for
+       PARTIAL_REGISTER_STALL with !TARGET_HIMODE_MATH machines.
+       (movqi_1): Handle promoting correctly for TARGET_PARTIAL_REG_DEPENDENCY
+       and TARGET_PARTIAL_REGISTER_STALL machines.
+       (pushdf_nointeger): New pattern.
+       (pushdf_integer): Rename from pushdf.
+       (movdf_nointger): Enable for !TARGET_INTEGER_DFMODE_MOVES machines.
+       (movdf_intger): Disable for !TARGET_INTEGER_DFMODE_MOVES machines.
+
+2000-04-17  Richard Henderson  <rth@cygnus.com>
+
+       * loop.c (canonicalize_condition): Add WANT_REG argument.
+       Stop the search if we match it.
+       * expr.h (canonicalize_condition): Update decl.
+       * predict.c (expected_value_to_br_prob): Use it.  Track last
+       expected value note.
+       (find_expected_value): Remove.
+
+       * reorg.c (mostly_true_jump): Always use BR_PROB if present.
+
+2000-04-17  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * aclocal.m4 (AM_GNU_GETTEXT): Don't AC_REQUIRE([AC_FUNC_MMAP]).
+       (AC_FUNC_MMAP_FILE): New macro, tests read-only private map of
+       a plain file.
+       * configure.in: Call AC_FUNC_MMAP_FILE.
+       * configure: Regenerate.
+       * config.in: Regenerate.
+
+       * intl/loadmsgcat.c: Test HAVE_MMAP_FILE not HAVE_MMAP.
+       * fixinc/fixincl.c: Likewise.
+
+2000-04-17  Richard Henderson  <rth@cygnus.com>
+
+       * builtins.c (expand_builtin_expect): New.
+       (expand_builtin): Call it.
+       * builtins.def (BUILT_IN_EXPECT): New.
+       * c-common.c (c_common_nodes_and_builtins): Declare __builtin_expect.
+       * extend.texi: Document it.
+
+       * predict.c (expected_value_to_br_prob): New.
+       (find_expected_value): New.
+       * basic-block.h (expected_value_to_br_prob): Declare.
+       * toplev.c (rest_of_compilation): Invoke it.
+
+       * rtl.h (NOTE_EXPECTED_VALUE): New.
+       (NOTE_INSN_EXPECTED_VALUE): New.
+       * rtl.c (note_insn_name): Update.
+       * print-rtl.c (print_rtx): Reorg NOTE_LINE_NUMBER special
+       cases; handle NOTE_INSN_EXPECTED_VALUE.
+
+2000-04-17  Jakub Jelinek  <jakub@redhat.com>
+
+       * config/sparc/sparc.c (eligible_for_sibcall_delay): Cannot use
+       leaf sibcall delay slot if flag_pic.
+       (output_sibcall): Always emit call for leaf sibcall if flag_pic.
+
+2000-04-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * Makefile.in (stmp-fixproto): Acknowledge errors in fixproto.
+
+       * fixproto: If fix-header fails, exit with an error.
+
+Mon Apr 17 14:59:36 MET DST 2000  Jan Hubicka  <jh@suse.cz>
+
+       * cse.c (struct check_depdendence_data): New.
+       (check_dependence): New function.
+       (invalidate): Use check_depdenence.
+
+2000-04-16  Mark Mitchell  <mark@codesourcery.com>
+
+       * dwarf2out.c (DWARF_CIE_DATA_ALIGNMENT): Adjust, now that
+       UNITS_PER_WORD is unsigned.
+
+       * tree.h (struct tree_common): Remove misleading comment.
+
+2000-04-16  Dave Pitts  <dpitts@cozx.com>
+
+       * Makefile.in ($(srcdir)/c-parse.y: c-parse.in): Enclose the whole
+       message in quotes. Otherwise, IBM's make program treats the '#' as the
+       start of a comment and ignores the remainder of the line.
+
+       * c-lex.c (yylex): Change for EBCDIC, lower case characters preceed
+       upper case.
+       * cccp.c (initialize_char_syntax): Allow for holes in EBCDIC.
+       * cexp.y (initialize_random_junk): Likewise.
+       * cppfiles.c (find_include_file): Cast alloca return value.
+       * cppinit.c (initialize_standard_includes): Likewise.
+       * cpplib.c (cpp_define, cpp_undef): Likewise.
+       * defaults.h (ASM_OUTPUT_ASCII): Use ISPRINT.
+       * final.c (output_asm_insn): Allow for holes in EBCDIC.
+       * fold-const.c (CHARMASK): New.
+       (real_hex_to_f): Use it.
+       * real.c (CHARMASK): New.
+       (etoasc, asctoeg): Use it.
+       (asctoeg): EBCDIC lower case characters preceed upper case.
+
+       * i370.c (mvs_add_label): Change spacing for coding conventions.
+       * i370.h (ASM_OUTPUT_CASE_LABEL): Change to the data CSECT for the
+       outputing case vectors.
+       (ASM_OUTPUT_CASE_END): New, put assembler back into code CSECT.
+       (ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Remove page check,
+       since vector in in the data CSECT.
+       (ASM_OUTPUT_REG_POP, ASM_OUTPUT_REG_PUSH): Restore to correct operation.
+       * i370.md (Many patterns): Put the length in the XL directives.
+       (movdi): Put back STM and MVC in definition.
+       (floatsidf2): Correct TARGET_ELF_ABI pattern and add back the LE370
+       pattern using the TCA.
+       * oe.h (CPP_SPEC): Added to allow trigraphs.
+       * xm-oe.h (HOST_BITS_PER_LONGLONG): Change to 32. IBM's compiler does
+       not support the "long long" type.
+
+2000-04-16  Mark Mitchell  <mark@codesourcery.com>
+
+       * config/mips/mips-protos.h (mips_legitimate_address_p): New
+       function.
+       (mips_reg_mode_ok_for_base_p): Likewise.
+       * config/mips/mips.h (REG_OK_STRICT_P): Don't define.
+       (REG_OK_FOR_INDEX_P): Define unconditionally.
+       (REG_MODE_OK_FOR_BASE_P): Use mips_reg_mode_ok_for_base_p.
+       (GO_IF_LEGITIMATE_ADDRESS): Use mips_legitimate_address_p.
+       * config/mips/mips.c (mips16_simple_memory_operand): Adjust now
+       that GET_MODE_SIZE is unsigned.
+       (mips_reg_mode_ok_for_base_p): Define.
+       (mips_legitimate_address_p): Likewise.  Adjust now
+       that GET_MODE_SIZE is unsigned.
+       (block_move_loop): Make the number of bytes unsigned.
+       (expand_block_move): Likewise.
+       (function_arg): Make the loop counter unsigned to match the
+       boundary condition.
+
+2000-04-16  Richard Henderson  <rth@cygnus.com>
+
+       * rtl.h (enum insn_note): New enumeration.  Subsume
+       NOTE_INSN_DELETED and friends.
+       (GET_NOTE_INSN_NAME): Adjust index by NOTE_INSN_BIAS.
+       * rtl.c (note_insn_name): Tweak string order.
+
+2000-04-15  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * cpplex.c (_cpp_read_and_prescan): Enlarge len by setting it
+       to offset * 2.
+
+       * cpplex.c (output_line_command): Remove debugging prints.
+       (cpp_output_tokens): Don't write out a zero-length buffer or
+       try to see if it has a newline in it.
+       (_cpp_expand_to_buffer): Copy the source buffer before pushing.
+       (_cpp_read_and_prescan): Move shift-down of pushback bytes to
+       the end of the loop.  Use memmove.  Don't read past the end of
+       the buffer.  Remove trailing newlines from error messages.
+
+2004-04-16  Neil Booth  <NeilB@earthling.net>
+
+       * cpphash.h (SYNTAX_INCLUDE, SYNTAX_ASSERT, directive_handler): new.
+       * cpplib.c: Add new syntax flags to directive table, and
+       supporting macros.
+
+2000-04-15  Ulrich Drepper  <drepper@redhat.com>
+
+       * i386.c (ix86_expand_epilogue): Yes, the x86 can pop 64k at once
+       using ret $N.
+
+2000-04-15  David Edelsohn  <edelsohn@gnu.org>
+
+       * toplev.c (display_help): Prefix "f" to "sched-verbose=".
+       * haifa-sched.c: Update -fsched-verbose comments to use "=".
+
+Sat Apr 15 10:59:19 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * Makefile.in (ggc-page.o): Now includes toplev.h.
+       * ggc-page.c (toplev.h): Now included.
+       (gc_time): Remove declaration.
+       (ggc_collect): TIME now long.
+       * toplev.c (parse_time, varasm_time, gc_time): Still global; all
+       others static.
+       * toplev.h (gc_time, parse_time, gc_time): New declarations.
+
+       * toplev.c: Make *_time variable long to reduce chance of overflow.
+       (TIMEVAR): Likewise for `otime'.
+       (print_time): Arg is now long; compute percentage in FP and round.
+       * toplev.h (print_time): Arg is long.
+
+       * tree.c: Minor whitespace changes.
+
+       * configure.in (alpha*-*-*): Add config/alpha/t-alpha.
+       * configure: Rebuilt.
+       * libgcc2.c (__fixunstfDI): Renamed from __fixunstfdi.
+       (__fixunsxfDI): Renamed from __fixunsxfdi.
+       (__fixunsdfDI): Renamed from __fixunsdfdi.
+       (__fixunssfDI): Renamed from __fixunssfdi.
+       (__floatdisf): Use proper type in REP_BIT macro.
+       (__fixunsxfSI): Renamed from __fixunsxfsi.
+       (__fixunsdfSI): Renamed from __fixunsdfsi.
+       (__fixunssfSI): Renamed from __fixunssfsi.
+       * libgcc2.h: Add cases for MIN_UNITS_PER_WORD > 4.
+       Change location of macros and upper-case some names as above.
+       * longlong.h ([alpha]): Use PARAMS, not __P in decl of __udiv__qrnnd.
+       * config/alpha/t-alpha, config/alpha/qrnnd.asm: New files.
+
+       * varasm.c (assemble_variable): Add cast to remove warning.
+       (immed_real_const_1): Only use CONST[01]_RTX if not in nested function.
+
+       * flow.c (count_basic_blocks, find_basic_blocks_1): Remove last change.
+       * optabs.c (emit_libcall_block): If have REG_EH_REGION, update
+       region number to -1.
+
+2000-04-15  Richard Earnshaw (rearnsah@arm.com)
+
+       * emit-rtl.c (unshare_all_rtl_again): Unmark everything, then
+       call unshare_all_rtl.
+
+       * arm.md (movhi): REGNO_POINTER_ALIGN is now bits.
+
+Fri Apr 14 16:58:45 2000  Jim Wilson  <wilson@cygnus.com>
+
+       * config/ia64/lib1funcs.asm (__divdi3, __moddi3, __udivdi3, __umoddi3):
+       Use .s1 not .s0 for all FP instructions.
+
+2000-04-14  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * cpplex.c (cpp_output_tokens, cpp_scan_buffer_nooutput): New public
+       interfaces.
+       (safe_fwrite, output_line_command): New static functions.
+       (cpp_expand_to_buffer): Now private to cpplib.
+       (cpp_scan_buffer): Take a printer.
+
+       * cpphash.h: Update prototypes.
+       * cpplib.h: Update prototypes.
+       (cpp_printer): New.
+       (cpp_buffer): Remove last_nominal_fname.
+       (cpp_reader): Remove lineno.
+
+       * cppmain.c: Use a cpp_printer.
+       * fix-header.c: No need to inhibit line commands.  Call
+       cpp_start_read with no printer.
+
+       * cpperror.c (cpp_notice_from_errno): Provide default name.
+       * cppfiles.c (make_IHASH, _cpp_fake_ihash): New functions.
+       (find_include_file, cpp_read_file): Use make_IHASH.
+       (file_cleanup): Set control_macro and clear
+       input_stack_listing_current here.
+       (_cpp_execute_include): Don't output entering-file marker.
+       * cpphash.c (special_symbol): Look for the line number in the
+       buffer, not the reader.
+       (_cpp_macroexpand): No need to disable line commands.
+       (_cpp_dump_definition): No need to generate line commands.
+       (dump_hash_helper): Remove excess newline from output.
+       * cppinit.c (dump_special_to_buffer): No need to generate line
+       commands.
+       (cpp_printer_init): New.
+       (cpp_start_read): Take a printer, and start it up if it's not
+       NULL.  No need to generate line commands.
+       (cpp_finish): Expect no buffers stacked at all.  Take a
+       printer argument, and flush the output buffer if it's not
+       NULL.
+       * cpplex.c (_cpp_lex_token): Return EOF if there's no buffer.
+       Don't put two hashes at the beginning of an assertion.
+       (cpp_get_token): Don't increment pfile->lineno or emit line
+       commands here.  Return EOF if there's no buffer when we get
+       EOF.
+       * cpplib.c (do_define, skip_if_group): 
+       No need to disable line commands.
+       (_cpp_output_line_command): Delete function.
+       (do_line): Don't emit line commands here, but set things up so
+       they will be emitted if necessary.  Use _cpp_fake_ihash to
+       make unique nominal_fnames if necessary.
+       (do_elif, do_else, _cpp_handle_eof): Call cpp_error_with_line
+       with 0 for column, not -1.
+       (_cpp_handle_eof): Don't set the control macro here.  Don't
+       clear input_stack_listing_current here.  Don't emit line
+       commands.
+
+2000-04-14  Geoff Keating  <geoffk@cygnus.com>
+
+       * config/rs6000/sysv4.h (LINK_START_SOLARIS_SPEC): Define to empty
+       always, use the default SVR4 start address.
+
+       * config/rs6000/linux.h (LINK_SPEC): Don't define.
+       (LINK_SHLIB_SPEC): Define.
+       (LINK_START_DEFAULT_SPEC): Define.
+       (LINK_OS_DEFAULT_SPEC): Define.
+
+       * config/rs6000/sysv4.h (ENDFILE_SPEC): Use the %(endfile_*) macros.
+
+       * config/rs6000/eabi.asm (__eabi): Call __init rather than 
+       __do_global_ctors to handle constructors.
+       * config/rs6000/sysv4.h (STARTFILE_ADS_SPEC): Use crtbegin.
+       (STARTFILE_YELLOWKNIFE_SPEC): Likewise.
+       (STARTFILE_MVME_SPEC): Likewise.
+       (STARTFILE_SIM_SPEC): Likewise.
+       (ENDFILE_ADS_SPEC): Use crtend.
+       (ENDFILE_YELLOWKNIFE_SPEC): Likewise.
+       (ENDFILE_MVME_SPEC): Likewise.
+       (ENDFILE_SIM_SPEC): Likewise.
+       (STARTFILE_SOLARIS_SPEC): Use crtbegin/crtbeginS.
+       (ENDFILE_SOLARIS_SPEC): Use crtend/crtendS.
+       (STARTFILE_LINUX_SPEC): Use crtbeginS for shared objects.
+       (ENDFILE_LINUX_SPEC): Use crtendS for shared objects.
+       * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Don't build eabi-ctors.o.
+       (EXTRA_MULTILIB_PARTS): Build crtbeginS/crtendS.
+       (CRTSTUFF_T_CFLAGS_S): Define.
+       * config/rs6000/eabi-ctors.c: Delete.
+       
+       * config/rs6000/eabi-ci.asm (__init): Align stack to 16-byte
+       boundary.
+       (__fini): Likewise.
+       * config/rs6000/eabi-cn.asm (__init): Allow for 16-byte stack frame.
+       boundary.
+       (__fini): Likewise.
+
+Fri Apr 14 16:09:02 2000  Jim Wilson  <wilson@cygnus.com>
+
+       * combine.c (force_to_mode, case LSHIFTRT): Check that shift shift
+       plus mask size is smaller or equal to the mode size.
+
+Fri Apr 14 18:07:30 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * print-rtl.c (print_rtx, case NOTE): Don't blow up if NOTE_BASIC_BLOCK
+       not yet set.
+
+       * expr.c (reload.h): Now included.
+       (emit_block_move): Set volatile_ok when checking for movstr.
+       (emit_move_1): Check for replacements in addresses in multi-word case.
+       * Makefile.in (expr.o): Now includes reload.h.
+
+       * flow.c (count_basic_blocks): Remove unused var PREV_CALL.
+       Never have a LIBCALL end a basic block.
+       (find_basic_blocks_1): Likewise.
+       Reorganize CALL_INSN cases.
+
+       * sbitmap.h (EXECUTE_IF_SET_IN_SBITMAP): Revert last change.
+
+Fri Apr 14 10:54:22 2000  Jim Wilson  <wilson@cygnus.com>
+
+       * config/ia64/lib1funcs.asm (__ia64_nonlocal_goto): Drop obsolete
+       completers from mov.ret instruction.
+
+2000-04-14  Richard Henderson  <rth@cygnus.com>
+
+       * fold-const.c (extract_muldiv): Don't distribute and widen
+       multiply across plus for non-sizetype unsigned types.
+
+2000-04-14  Richard Henderson  <rth@cygnus.com>
+
+       * flow.c (find_auto_inc): Don't autoinc eliminable registers.
+       If the original source is dead in the incr insn, it's dead now.
+
+Fri Apr 14 07:40:32 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * stor-layout.c (layout_decl): Properly compare KNOWN_ALIGN to
+       see if DECL_BIT_FIELD needs to still be set.
+
+       * tree.h (struct tree_type): Make PRECISION 9 bits and MODE 7.
+
+       * dbxout.c (dbxout_type, case INTEGER_TYPE): Don't call
+       print_int_cst_octal with something that's not an INTEGER_CST.
+
+       * config/alpha/alpha.c (alpha_emit_floatuns): Ensure we pass a REG
+       and not a SUBREG to a FLOAT rtl.
+
+Thu Apr 13 19:39:56 2000  Clinton Popetz  <cpopetz@cygnus.com>
+
+       * emit-rtl.c (try_split): Avoid infinite loop if the split
+       results in a sequence that contains the original insn.
+
+2000-04-13  Andreas Jaeger  <aj@suse.de>
+
+       * config/mips/mips.c (expand_block_move): Pass alignment
+       argument to move_by_pieces in bits, not bytes.
+
+       * config/mips/linux.h (CPP_PREDEFINES): Also define __PIC__ and
+       __pic__ for little endian.
+
+2000-04-13  Andreas Jaeger  <aj@suse.de>
+
+       * config/i386/i386-protos.h: Add prototype for
+       uno_comparison_operator.
+
+Thu Apr 13 15:55:08 MET DST 2000  Jan Hubicka  <jh@suse.cz>
+
+       * alias.c (nonlocal_reference_p): Take care of CALL_INSNS's fusage.
+       * calls.c (ECF_PURE): New flag.
+       (emit_call_1): Handle ECF_PURE calls.
+       (initialize_argument_information): Unset ECF_PURE flag too.
+       (precompute_arguments): Precompute for ECF_PURE too.
+       (expand_call): Handle ECF_PURE calls too.
+       (emit_library_call_value_1): Rename no_queue argument to fn_type,
+       accept value of 2 as pure function.
+       (emit_library_call_value, emit_library_call): Rename no_queue argument
+       to fn_type.
+       * optabs.c (prepare_cmp_insn): Pass fn_type 2 to memcmp call.
+
+       * tree.h (DECL_IS_PURE): New macro.
+       (struct tree_decl): Add pure_flag.
+       * c-common.c (enum attrs): Add attribute "pure".
+       (init_attributes): Initialize attribute "pure"
+       (decl_attributes): Handle attribute "pure".
+       * extend.texi (Attribute "pure"): Document.
+       * calls.c (expand_call): Add (mem:BLK (scratch)) to "equal from"
+       in pure function.
+       (flags_from_decl_or_type): Support attribute "pure".
+
 2000-04-13  Jason Merrill  <jason@casey.cygnus.com>
 
        * cpplex.c (_cpp_lex_token): Handle digraphs.  Don't null-terminate
@@ -45,7 +743,7 @@ Wed Apr 12 20:51:20 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
 
 Wed Apr 12 17:20:41 MET DST 2000  Jan Hubicka  <jh@suse.cz>
 
-       (expand_call): Do not reverse args in "equal from" field.
+       * calls.c (expand_call): Do not reverse args in "equal from" field.
        (emit_library_call_value_1): Emit_libcall_block for const and pure
        function.
 
@@ -67,8 +765,8 @@ Wed Apr 12 15:54:11 MET DST 2000  Jan Hubicka  <jh@suse.cz>
 
 Wed Apr 12 07:51:54 2000  Catherine Moore  <clm@cygnus.com>
  
-        * calls.c (emit_library_call_value_1): Change 3rd arg to
-        locate_and_pad_parm to disregard the setting of partial.
+       * calls.c (emit_library_call_value_1): Change 3rd arg to
+       locate_and_pad_parm to disregard the setting of partial.
 
 Wed Apr 12 08:47:38 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
 
@@ -1220,7 +1918,7 @@ Wed Apr  5 12:35:18 2000  Hans-Peter Nilsson  <hp@axis.com>
        all (op (minus A B) 0) with (op A B).
 
 Wed Apr  5 18:03:31 2000  Toshiyasu Morita  (toshi.morita@sega.com)
-                         J"orn Rennecke <amylaar@cygnus.co.uk>
+                         J"orn Rennecke <amylaar@cygnus.co.uk>
 
        * sh.md (block_lump_real_i4): Add missing clobber of T_REG
        (block_lump_real): Likewise.
@@ -3599,11 +4297,11 @@ Thu Mar 16 02:14:16 2000  Hans-Peter Nilsson  <hp@bitrange.com>
 
        2000-01-27  Clinton Popetz  <cpopetz@cygnus.com>
 
-        * rs6000.c (rs6000_emit_load_toc_table): Use "LCG" and
-        reload_toc_labelno for non-prologue TOC reloads.  Also, don't
-        increment rs6000_pic_labelno here.
-        (rs6000_emit_prologue): Pass TRUE to rs6000_emit_load_toc_table,
-        and increment rs6000_pic_labelno here.
+       * rs6000.c (rs6000_emit_load_toc_table): Use "LCG" and
+       reload_toc_labelno for non-prologue TOC reloads.  Also, don't
+       increment rs6000_pic_labelno here.
+       (rs6000_emit_prologue): Pass TRUE to rs6000_emit_load_toc_table,
+       and increment rs6000_pic_labelno here.
 
        2000-01-24  Geoffrey Keating  <geoffk@cygnus.com>
 
@@ -3782,29 +4480,29 @@ Thu Mar 16 02:14:16 2000  Hans-Peter Nilsson  <hp@bitrange.com>
 
        2000-01-07  David Edelsohn  <edelsohn@gnu.org>
 
-        * rs6000.c (processor_target_table): Add power3 as alias for 630.
-        * aix43.h: Revert Aug 2 change.
-        (HAS_INIT_SECTION): Define, not visible yet.
-        (LD_INIT_SWITCH): Define, not visible yet.
-        * t-aix43 (MULTILIB_OPTIONS): Revert Aug 2 change.
+       * rs6000.c (processor_target_table): Add power3 as alias for 630.
+       * aix43.h: Revert Aug 2 change.
+       (HAS_INIT_SECTION): Define, not visible yet.
+       (LD_INIT_SWITCH): Define, not visible yet.
+       * t-aix43 (MULTILIB_OPTIONS): Revert Aug 2 change.
 
        2000-01-04  Joel Sherrill (joel@OARcorp.com>
 
-        * config/rs6000/rtems.h: Include config/rtems.h.
+       * config/rs6000/rtems.h: Include config/rtems.h.
 
        2000-01-04  David Edelsohn  <edelsohn@gnu.org>
 
-        * rs6000.h (HANDLE_PRAGMA_PACK): Define.
-        (SLOW_UNALIGNED_ACCESS): Define.
-        (CASE_VECTOR_MODE): Always use 32-bit offsets.
-        (ASM_FILE_END): Generate 64-bit symbol in 64-bit mode.
-        (EXTRA_SECTOIN_FUNCTIONS): Indent .csect pseudo-op.
-        (toc_section): Likewise and .toc pseudo-op.
-        (ASM_DECLARE_FUNCTION): Likewise.  Align text more strictly in
-        64-bit mode.
-        (TEXT_SECTION_ASM_OP): Likewise.
-        (ASM_OUTPUT_ADD_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Always use
-        32-bit offsets.
+       * rs6000.h (HANDLE_PRAGMA_PACK): Define.
+       (SLOW_UNALIGNED_ACCESS): Define.
+       (CASE_VECTOR_MODE): Always use 32-bit offsets.
+       (ASM_FILE_END): Generate 64-bit symbol in 64-bit mode.
+       (EXTRA_SECTOIN_FUNCTIONS): Indent .csect pseudo-op.
+       (toc_section): Likewise and .toc pseudo-op.
+       (ASM_DECLARE_FUNCTION): Likewise.  Align text more strictly in
+       64-bit mode.
+       (TEXT_SECTION_ASM_OP): Likewise.
+       (ASM_OUTPUT_ADD_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Always use
+       32-bit offsets.
 
        1999-12-17  Jakub Jelinek  <jakub@redhat.com>
 
@@ -3821,7 +4519,7 @@ Thu Mar 16 02:14:16 2000  Hans-Peter Nilsson  <hp@bitrange.com>
 
        2000-01-05  Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
 
-        * rs6000.h: Continue cleanup.
+       * rs6000.h: Continue cleanup.
        * aix.h: Likewise.
        * lynx.h: Likewise.
        * netware.h: Likewise.
@@ -15888,7 +16586,7 @@ Sat Oct  9 12:18:16 1999  Richard Henderson  <rth@cygnus.com>
        (count_or_remove_death_notes): New.
        (verify_flow_info): Abort on error after all checks.
        (remove_edge): Decrement n_edges.
-       (remove_fake_edges): Tweek format.
+       (remove_fake_edges): Tweak format.
        * haifa-sched.c (schedule_insns): Use split_all_insns.
        * output.h (update_life_info): Remove declaration.
        * recog.c (split_all_insns): From the corpse of split_block_insns,