OSDN Git Service

* reload.c (find_equiv_reg): Checks all valueno and regno regs
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index b1156e0..008a523 100644 (file)
@@ -1,3 +1,368 @@
+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
        (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.
+       (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.
@@ -1552,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.