Fix problems found by David Edelsohn I caused
[gcc.git] / gcc / ChangeLog
index 60cf86db92065ceabb38923beffa9b009321152e..369fc8a266d603b5efaef3b859f67e54d1e96c9a 100644 (file)
@@ -1,5 +1,737 @@
+Sun Jan 24 20:13:45 1999  David Edelsohn  <edelsohn@mhpcc.edu>
+
+       * rs6000.md (left shift + set cr patterns): Add missing '#' to
+       split patterns.
+       (move register + set cr pattern): Ditto.
+       * rs6000.md (movdi, !TARGET_POWERPC64 splitters): Add back in
+       Jan. 15th patch, inadvertently deleted.
+
+Sun Jan 24 08:07:59 1999  Jeffrey A Law  (law@cygnus.com)
+
+       * stmt.c (stmt_loop_nest_empty): New function.
+       * tree.h (stmt_loop_nest_empty): Declare it.
+       * rtl.def (CALL_PLACEHOLDER): New rtx code.
+
+Sun Jan 24 21:24:43 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
+
+       * config/c4x/c4x.c (c4x_emit_move_sequence, c4x_encode_section_info):
+       New functions.
+       (c4x_check_legit_addr): Remove USE and PLUS, allow
+       LO_SUM, and disable SYMBOL_REF, LABEL_REF, and CONST cases.
+       (c4x_legitimize_address): Penalise SYMBOL_REF, LABEL_REF, and 
+       CONST cases.  Add LO_SUM.
+       (c4x_print_operand): Modified 'C' and 'R' cases for calls.
+       Added 'U' case.  Remove dependence on SYMBOL_REF_FLAG.
+       (c4x_print_operand_address): Handle LO_SUM.
+       (c4x_scan_for_ldp): Delete.  Hooray!
+       (c4x_process_after_reload): Remove call to c4x_scan_for_ldp.
+       Split all insns.
+       (c4x_immed_int_constant): Renamed from c4x_int_constant.  All callers
+       changed.
+       (c4x_immed_float_constant): Renamed from c4x_float_constant.  All
+       callers changed.
+       (c4x_T_constraint): Allow LO_SUM, disable SYMBOL_REF, LABEL_REF, 
+       and CONST.
+       (c4x_U_constraint, symbolic_operand): New functions.
+       (src_operand): Allow 'I' constants in HImode.  Allow LO_SUM,
+       disable SYMBOL_REF, LABEL_REF, and CONST.
+       (lsrc_operand, tsrc_operand): Call src_operand instead of
+       general_operand.
+       (c4x_operand_subword): Update comments.
+
+       * config/c4x/c4x.c (TARGET_LOAD_ADDRESS): New macro.
+       (LEGITIMATE_CONSTANT_P): Allow SYMBOL_REF, LABEL_REF, CONST,
+       plus HIGH and LO_SUM for the C40.
+       (ENCODE_SECTION_INFO): Define macro.
+       (symbolic_operand, c4x_U_constraint, c4x_emit_move_sequence): New
+       prototypes.
+       (PREDICATE_CODES): Add symbolic_operand.
+
+       * config/c4x/c4x.md (movqi, movgqf, movhi, movhi): Call
+       c4x_emit_move_sequence.
+       (floatunsqiqf2, fixuns_truncqfqi2): Rework emitted RTL
+       to avoid symbol references.
+       (all patterns with g constraint): Replace 'g' constraint with 'rIm'.
+       (set_high): Renamed from set_high_use.
+       (set_lo_sum): Renamed from set_ior_lo_use.
+       (all call patterns): Make MEM explicit in call address operands.
+       Modified output templates to use 'U' modifier.
+       
+Sun Jan 24 01:15:05 PST 1999 Jeff Law  (law@cygnus.com)
+
+       * version.c: Bump for snapshot.
+
+Sat Jan 23 22:34:57 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * final.c (bb_str): Qualify a char* with the keyword `const'.
+       (add_bb_string, final_scan_insn, output_asm_insn): Likewise.
+
+       * fix-header.c (read_scan_file): Likewise.
+
+       * genoutput.c (output_epilogue, process_template): Likewise.
+       
+       * local-alloc.c (requires_inout, block_alloc): Likewise.
+
+       * output.h (output_asm_insn, assemble_string): Likewise.
+
+       * recog.c (recog_constraints, check_asm_operands,
+       decode_asm_operands, extract_insn, preprocess_constraints,
+       constrain_operands): Likewise.
+
+       * recog.h (operand_alternative, recog_constraints, insn_template,
+       insn_outfun, insn_operand_constraint, insn_name): Likewise.
+
+       * regclass.c (record_reg_classes, scan_one_insn): Likewise.
+
+       * regmove.c (find_matches): Likewise.
+
+       * reload.c (alternative_allows_memconst): Likewise.
+
+       * reload1.c (constraint_accepts_reg_p,
+       reload_cse_simplify_operands): Likewise.
+
+       * rtl.h (decode_asm_operands): Likewise.
+
+       * scan.h (fn_decl): Likewise.
+
+       * varasm.c (assemble_string): Likewise.
+
+Sat Jan 23 01:37:36 1999  Jeffrey A Law  (law@cygnus.com)
+
+       * configure.in (gcc_tooldir): Handle case where exec_prefix has
+       not been explicitly set.
+       * configure: Rebuilt.
+
+       * fold-const.c (lshift_double): Mark 'prec' arguments as possibly
+       unused.
+
+       * bitmap.h (bitmap_head_def): Make indx field unsigned.
+
+       * configure.in (gcc_tooldir): When not making a relative gcc_tooldir,
+       use $exec_prefix/$target_alias for gcc_tooldir.
+       * configure: Rebuilt.
+
+Fri Jan 22 11:48:56 1999  Richard Henderson  <rth@cygnus.com>
+
+       * cppp.c (xrealloc): Fix typo last change.
+       * cppalloc.c, gcc.c, genattr.c, genattrtab.c, gencodes.c: Likewise.
+       * genconfig.c, genemit.c, genextract.c, genflags.c: Likewise.
+       * genopinit.c, genoutput.c, genpeep.c, genrecog.c: Likewise.
+
+1999-01-22  Michael Meissner  <meissner@cygnus.com>
+
+       * rs6000.h (CR0_REGNO_P): New macro to test if cr0.
+       (CR_REGNO_NOT_CR0_P): New macro to test if cr, but not cr0.
+       (PREDICATE_CODES): Add cc_reg_not_cr0_operand.
+       (cc_reg_not_cr0_operand): Add declaration.
+
+       * rs6000.c (cc_reg_not_cr0_operand): Return true if register is a
+       pseudo register, or a control register that is not CR0.
+
+       * rs6000.md (all combiner patterns building . instructions): For
+       all `.' instructions that do something and set cr0, add an
+       alternative that does the operation, and then sets a different
+       flag, in order to avoid using the costly mcrf instruction and also
+       allow cr0 to be clobbered in asm statements.  Also fix a few
+       patterns that used the wrong register.
+
+       * rs6000.h (rs6000_cpu_select): Make string, names be const char *.
+       (rs6000_debug_name): Make const char *, not char *.
+
+       * sysv4.h (rs6000_{abi,sdata}_name): Make const char *.
+       
+       * rs6000.c (rs6000_{debug,abi,sdata}_name): Make const char *.
+       (rs6000_select): Use const char * in casts.
+
+Fri Jan 22 07:43:01 1999  Jeffrey A Law  (law@cygnus.com)
+       
+       * Makefile.in (gcc_tooldir): Move before first reference.
+       Let autoconf substitute in a value.
+       * configure.in (gcc_tooldir): Only use a relative path to the
+       tool directory if $exec_prefix == $prefix.
+       * configure: Rebuilt.
+
+       * Makefile.in (tooldir): Replace with gcc_tooldir.
+
+Thu Jan 21 23:21:57 1999  Jeffrey A Law  (law@cygnus.com)
+
+       * m68k.md (ashldi_const): Disable for !TARGET_5200.  Fix indention.
+       (ashldi3 expander): Similarly.  Update comments.
+       (ashrdi_const, lshrdi_const): Fix indention.
+       (ashrdi3, lshrdi3): FIx indention.  Update comments.
+
+Thu Jan 21 21:53:36 1999  Richard Henderson  <rth@cygnus.com>
+
+       * emit-rtl.c (try_split): Don't try to split non-instructions.
+
+Thu Jan 21 23:47:30 EST 1999  Andrew MacLeod  <amacleod@cygnus.com>
+
+       * expr.c (emit_push_insn): Fix dumb typo.
+
+Thu Jan 21 20:24:02 1999  Richard Henderson  <rth@cygnus.com>
+
+       * rs6000.h (LEGITIMIZE_RELOAD_ADDRESS): Recognize and accept
+       transformations that we have performed earlier.
+       * alpha.h (LEGITIMIZE_RELOAD_ADDRESS): Likewise.
+
+       * alpha.md (prologue_stack_probe_loop): Don't do our own label
+       handling, call gen_label_rtx instead.
+
+Thu Jan 21 17:45:18 1999  Richard Henderson  <rth@cygnus.com>
+
+       * configure.in ({rs6000|powerpc}-ibm-aix4.[12]*): Add missing `then'.
+
+       * cccp.c (xrealloc): Call malloc given a NULL old pointer.
+       * collect2.c, cppalloc.c, gcc.c, genattr.c, genattrtab.c: Likewise.
+       * gencodes.c, genconfig.c, genemit.c, genextract.c: Likewise.
+       * genflags.c, genopinit.c, genoutput.c, genpeep.c: Likewise.
+       * genrecog.c, mips-tfile.c, protoize.c: Likewise.
+
+Thu Jan 21 19:44:55 1999  Michael Meissner  <meissner@cygnus.com>
+
+       * configure.in ({rs6000|powerpc}-ibm-aix4.[12]*): If
+       --with-gnu-ld, use x-aix41-gld instead of x-aix41 to suppress
+       adding -Wl,-bbigtoc to BOOT_LDFLAGS.
+       * configure: Regenerate.
+
+       * config/rs6000/x-aix41-gld: New file, don't set BOOT_LDFLAGS.
+
+Thu Jan 21 15:48:03 1999  Dave Brolley  <brolley@cygnus.com>
+
+       * cppexp.c (cpp_lex): Allocate token_buffer dynamically.
+
+Thu Jan 21 14:18:04 EST 1999  Andrew MacLeod  <amacleod@cygnus.com>
+
+       * expr.c (MOVE_BY_PIECES_P): Define condition for deciding to use
+       move_by_pieces.
+       (MOVE_MAX_PIECES): Define maximum number of bytes to move at once.
+       (USE_LOAD_POST_INCREMENT, USE_LOAD_PRE_DECREMENT): Define defaults.
+       (USE_STORE_POST_INCREMENT, USE_STORE_PRE_DECREMENT): Define defaults.
+       (move_by_pieces): Use new macros.
+       (emit_block_move): Use new macros.
+       (clear_by_pieces): Use new macros.
+       (clear_storage): Use new macros.
+       (emit_push_insn): Use new macros.
+       (expand_expr): Use new macros.
+       * config/sh/sh.h (USE_LOAD_POST_INCREMENT, USE_LOAD_PRE_DECREMENT): 
+       Define.
+       (USE_STORE_POST_INCREMENT, USE_STORE_PRE_DECREMENT): Define.
+       (MOVE_BY_PIECES_P): Define based on alignment and TARGET_SMALLCODE.
+       (MOVE_MAX_PIECES): move 8 bytes on SH4.
+       * tm.texi(MOVE_BY_PIECES_P, MOVE_MAX_PIECES, USE_LOAD_POST_INCREMENT,
+       USE_LOAD_PRE_DECREMENT, USE_STORE_POST_INCREMENT, 
+       USE_STORE_PRE_DECREMENT): Describe new macros.
+
+Thu Jan 21 14:13:31 1999  Vladimir N. Makarov  <vmakarov@cygnus.com>
+
+        * varasm.c (output_constant_pool): Use floor_log2 instead of
+       exact_log2 for ASM_OUTPUT_ALIGN.
+
+       * stor-layout.c (layout_type): Do machine-dependent extra alignment.
+
+       * emit-rtl.c (operand_subword): Handle case when a subword outside
+       the operand.
+
+       * tm.texi (ROUND_TYPE_{SIZE,ALIGN}): More accurate descriptions of
+       the macros.
+
+Thu Jan 21 01:59:30 1999  Richard Henderson  <rth@cygnus.com>
+
+       * cse.c (fold_rtx): Revert 29 Dec change.
+       (cse_insn): Revert 12 Jan change.
+       * expr.c (expand_builtin): Don't emit CONST around CONSTANT_P_RTX.
+       * regclass.c (reg_scan_mark_refs): Revert 29 Dec change.
+       * rtl.def: Likewise.
+       * rtl.h (CONSTANT_P): Likewise.
+
+       * expr.c (emit_move_insn): Never try to flush CONSTANT_P_RTX
+       to memory.
+       * recog.c (immediate_operand): Accept CONSTANT_P_RTX.
+       * alpha.c (input_operand): Likewise.
+       * c4x.c (const_operand): Likewise.
+
+       * explow.c (allocate_dynamic_stack_space): Use register_operand
+       instead of arith_operand, which does not exist.
+
+       * 1750a.h: Fix comment closure.
+       * a29k.c (a29k_set_memflags): Fix typo in 19 Jan change.
+       * arc.md (one_cmplsi2_set_cc_insn): Fix set mode mismatch.
+       * arm.h (TARGET_SWITCHES): Fix typo.
+       * i370.md (anon mult and div patterns): Fix set mode mismatch.
+       * i860.c (output_delayed_branch): Fix operands to constrain_operands.
+       (output_delay_insn): Likewise.
+       * m88k.md (anon rotate insns): Fix set mode mismatch.
+       (anon BLKmode moves): Commonize and fix set mode mismatches.
+       * ns32k.md (udivmoddi[shq]i4_internal): Fix mode mismatch.
+       * romp.md (movdf): Fix typo.
+
+Thu Jan 21 00:29:35 1999  Nathan Sidwell  <nathan@acm.org>
+
+       * Makefile.in (install-common): Remove extraneous chmod for gcov
+       install.
+
+Wed Jan 20 18:15:08 1999  Dave Brolley  <brolley@cygnus.com>
+
+       * function.c (assign_parms): Save and restore setting of
+       TREE_USED (parm).
+
+Wed Jan 20 12:51:42 1999  Mark Mitchell  <mark@markmitchell.com>
+
+       * arm.md: Use MEM_COPY_ATTRIBUTES where appropriate throughout.
+       Pass MEM_SCALAR_P to arm_gen_store_multiple where appropriate.
+
+Tue Jan 19 21:20:52 1999  Richard Henderson  <rth@cygnus.com>
+
+       * recog.c (pop_operand): New function.
+       * recog.h (pop_operand): Declare it.
+       * genrecog.c (preds): Define it.
+
+       * expr.c (do_jump_for_compare): Handle conditional branch expanders
+       emitting multiple jump instructions.
+       * jump.c (condjump_label): New function.
+       * rtl.h (condjump_label): Declare it.
+
+Tue Jan 19 21:08:20 1999  Richard Henderson  <rth@cygnus.com>
+
+       * expr.c (emit_move_insn_1): Revert 17 Dec change.  Don't emit
+       clobber during or after reload.
+
+Tue Jan 19 16:56:03 1999  Richard Henderson  <rth@cygnus.com>
+
+       * genoutput.c (name_for_index): New function.
+       (scan_operands, validate_insn_alternatives): Use it.
+       * genrecog.c (insn_name_ptr_size): New variable.
+       (make_insn_sequence): Fill in insn_name_ptr.
+       (merge_trees): Use it.
+
+Tue Jan 19 16:37:36 1999  Richard Henderson  <rth@cygnus.com>
+
+       * i386/isc.h (TARGET_DEFAULT): Define symbolicly.
+       * i386/isccoff.h, i386/next.h, i386/sco.h, i386/sco5.h: Likewise.
+       * i386/scodbx.h, i386/sequent.h, i386.unix.h: Likewise.
+
+Tue Jan 19 15:00:10 1999  Jeffrey A Law  (law@cygnus.com)
+
+       * loop.c (NUM_STORES): Delete.
+       (loop_store_mems): Turn into an EXPR_LIST of MEMs.
+       (prescan_loop): Properly initialize loop_mems_idx.
+       (note_addr_stored): Simplify using list structure instead of
+       fixed sized array.
+       (invariant_p, check_dbra_loop, load_mems): Similarly.
+
+       * flow.c (invalidate_from_autoinc): New function.
+       (mark_set_1, mark_used_regs): Use it.
+
+       * Makefile.in (protoize.o, unprotoize.o): Depend on Makefile.
+
+1999-01-19  Vladimir N. Makarov  <vmakarov@cygnus.com>
+
+       * invoke.texi (-mlong-double-64): New option description.
+
+1999-01-19  Jim Wilson  <wilson@cygnus.com>
+
+       * libgcc2.c: Change all uses of LONG_DOUBLE_TYPE_SIZE to
+       LIBGCC2_LONG_DOUBLE_TYPE_SIZE.
+       (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): New.  Set to LONG_DOUBLE_TYPE_SIZE
+       if not defined.
+       * i960/i960.h (MULTILIB_DEFAULTS): Define to mnumerics.
+       (CPP_SPECS): Add -mlong-double-64 support.
+       (TARGET_FLAG_LONG_DOUBLE_64, TARGET_LONG_DOUBLE_64): New.
+       (TARGET_SWITCHES): Add -mlong-double-64 support.
+       (LONG_DOUBLE_TYPE_SIZE): Likewise.
+       (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define.
+       * i960/vx960-coff.h (MULTILIB_DEFAULTS): Define to msoft-float.
+       (CPP_SPECS): Add -mlong-double-64 support.
+       * i960/t-960bare (MULTILIB_OPTIONS): Add mlong-double-64.
+       (MULTILIB_DIRNAMES): Add ld64.
+       * i960/t-vxworks960 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Likewise.
+
+Tue Jan 19 11:54:04 1999  Jason Merrill  <jason@yorick.cygnus.com>
+
+       * calls.c (expand_call): Strip a TARGET_EXPR if we're passing by
+       invisible reference.
+
+Tue Jan 19 14:51:36 1999  David Edelsohn  <edelsohn@mhpcc.edu>
+
+       * rs6000.c (offsettable_addr_operand): Delete.
+       (offsettable_mem_operand): New function.
+       * rs6000.h (PREDICATE_CODES): Reflect function change.
+       (RS6000_SAVE_TOC): Represent address as MEM.
+       * win-nt.h (RS6000_SAVE_TOC): Same.
+       * rs6000.md (indirect calls): Change offsettable address parameter
+       to offsettable memory parameter.
+
+Tue Jan 19 10:24:53 1999  Mark Mitchell  <mark@markmitchell.com>
+
+       * rtl.h (rtx_def): Update documentation.
+       (MEM_IN_STRUCT_P): Likewise.
+       (MEM_SCALAR_P): New macro.
+       (MEM_COPY_ATTRIBUTES): Likewise.
+       (MEM_SET_IN_STRUCT_P): Likewise.
+       * rtl.texi (MEM_SCALAR_P): Document.
+       * alias.c (canon_rtx): Use MEM_COPY_ATTRIBUTES.
+       (fixed_scalar_and_varying_struct_p): New function.  Use
+       MEM_SCALAR_P rather than !MEM_IN_STRUCT_P.
+       (aliases_everything_p): Likewise.
+       (true_dependence): Use them.
+       (write_dependence_p): New function, containing code common to
+       anti_dependence and output_dependence.
+       (anti_dependence): Use it.
+       (output_dependence): Likewise.
+       * calls.c (save_fixed_argument_area): Don't clear
+       MEM_IN_STRUCT_P. 
+       (expand_call): Use MEM_SET_IN_STRUCT_P.
+       (emit_library_call): Don't clear MEM_IN_STRUCT_P.
+       (emit_library_call_value): Likewise.
+       (store_one_arg): Use MEM_SET_IN_STRUCT_P.
+       * combine.c (simplify_rtx): Use MEM_COPY_ATTRIBUTES.
+       (make_extraction): Likewise.
+       (simplify_shift_const): Likewise.
+       (gen_lowpart_for_combine): Likewise.
+       * cse.c (gen_lowpart_if_possible): Use MEM_COPY_ATTRIBUTES.
+       * emit-rtl.c (operand_subword): Likewise.
+       (change_address): Likewise.
+       * explow.c (stabilize): Use MEM_COPY_ATTRIBUTES.
+       * expr.c (protect_from_queue): Use MEM_COPY_ATTRIBUTES.
+       (emit_group_store): Use MEM_SET_IN_STRUCT_P.
+       (copy_blkmode_from_reg): Likewise.
+       (store_field): Likewise.
+       (expand_expr): Remove bogus guesswork setting MEM_IN_STRUCT_P
+       heuristically.  Use MEM_SET_IN_STRUCT_P.
+       (get_memory_rtx): Likewise.
+       * final.c (alter_subreg): Use MEM_COPY_ATTRIBUTES.
+       * function.c (assign_stack_temp): Clear MEM_SCALAR_P and
+       MEM_ALIAS_SET on newly returned MEMs.
+       (assign_temp): Use MEM_SET_IN_STRUCT_P.
+       (put_reg_into_stack): Likewise.
+       (fixup_var_refs1): Use MEM_COPY_ATTRIBUTES.
+       (gen_mem_addressof): Use MEM_SET_IN_STRUCT_P.
+       (assign_parms): Likewise.
+       (expand_function): Likewise.
+       * integrate.c (expand_inline_function): Likewise.
+       (copy_rtx_and_substitute): Use MEM_COPY_ATTRIBUTES.
+       * loop.c (note_addr_stored): Remove check on MEM_IN_STRUCT_P.
+       * optabs.c (gen_move_insn): Use MEM_COPY_ATTRIBUTES.
+       * print-rtl.c (print_rtx): Print /f for frame_related.
+       * recog.c (validate_replace_rtx_1): Use MEM_COPY_ATTRIBUTES.
+       * reload1.c (reload): Copy MEM_SCALAR_P as well.
+       * stmt.c (expand_decl): Use MEM_SET_IN_STRUCT_P.
+       (expand_anon_union_decl): Use MEM_COPY_ATTRIBUTES.
+       * varasm.c (make_decl_rtl): Use MEM_SET_IN_STRUCT_P.
+       (output_constant_def): Likewise.
+       * a29k.c (a29k_set_memflags_1): Take scalar_p.
+       Set MEM_SCALAR_P.
+       (a29k_set_memflags): Use it.
+       * alpha.c (get_aligned_mem): Use MEM_COPY_ATTRIBUTES.
+       * c4x.c (c4x_scan_for_ld): Likewise.
+       * h8300.c (fix_bit_operand): Likewise.
+       * m88k.c (legitimize_address): Likewise.
+       (block_move_loop): Likewise.
+       (block_move_no_loop): Likewise.
+       (block_move_sequence): Likewise.
+       (m88k_builtin_saveregs): Use MEM_SET_IN_STRUCT_P.
+       * mips/abi64.h (SETUP_INCOMING_VARARGS): Likewise.
+       * rs6000.c (expand_block_move_insn): Use MEM_COPY_ATTRIBUTES.
+       * sh.c (sh_builtin_saveregs): Use MEM_SET_IN_STRUCT_P.
+       * arm.h (arm_gen_load_multiple): Take scalar_p.
+       (arm_store_load_multiple): Likewise.
+       * arm.c (arm_gen_load_multiple): Likewise.
+       (arm_gen_store_multiple): Likewise.
+       (arm_gen_movstrqi): Treat MEM_SCALAR_P like MEM_IN_STRUCT_P.
+       
+Tue Jan 19 12:30:37 EST 1999  Andrew MacLeod  <amacleod@cygnus.com>
+
+       * optabs.c (emit_libcall_block): Add a REG_EH_REGION reg note to all
+       calls within a libcall block to indicate no throws are possible.
+       * flow.c (find_basic_blocks, find_basic_blocks_1): Don't look for 
+       libcall blocks. Don't add edges to exception handlers if we see 
+       a REG_EH_REGION note with a value of 0.
+       (make_edges): Override active_eh_region vector if the call has a note
+       indicating the call does not throw.
+
+1999-01-19  Vladimir N. Makarov  <vmakarov@cygnus.com>
+
+       * config/rs6000/sysv4.h (CC1_SPEC): Fix correct numbers of {}.
+
+Tue Jan 19 06:26:30 1999  Jeffrey A Law  (law@cygnus.com)
+
+       * Makefile.in (cccp.o, cpplib.o): Depend on Makefile.
+
+Mon Jan 18 09:56:41 1999  Jason Merrill  <jason@yorick.cygnus.com>
+
+       * invoke.texi (C++ Dialect Options): Document -fno-rtti.
+
+1999-01-18  Vladimir N. Makarov  <vmakarov@cygnus.com>
+
+       *  invoke.texi (-mcpu=740, -mcpu=750): New options.
+        (-m(no-)multiple, -m(no-)string): Describe cases for PPC740 &
+       PPC750.
+
+1999-01-18  Michael Meissner  <meissner@cygnus.com>
+
+       * rs6000.h ({ASM,CPP}_CPU_SPEC): Add support for all machines
+       supported with -mcpu=xxx.
+       (processor_type): Add PROCESSOR_PPC750.
+       (ADJUST_PRIORITY): Call rs6000_adjust_priority.
+       (RTX_COSTS): Supply costs for 750 multiply/divide operations.
+       (rs6000_adjust_priority): Add declaration.
+       
+       * rs6000.c (rs6000_override_options): -mcpu={750,740} now sets the
+       processor type as 750, not 603.  Allow -mmultiple and -mstring on
+       little endian 750 systems.
+       (rs6000_adjust_priority): Stub for now.
+       (get_issue_rate): The PowerPC 750 can issue 2 instructions/cycle.
+
+       * rs6000.md (function/cpu attributes): Add initial ppc750 support.
+
+       * sysv4.h (STRICT_ALIGNMENT): Don't force strict alignment if
+       little endian.
+       (CC1_SPEC): Pass -mstrict-align if little endian, and not
+       overridden.
+       (CC1_ENDIAN_{LITTLE,BIG,DEFAULT}_SPEC): Endian specific configs.
+       (SUBTARGET_EXTRA_SPECS): Add cc1 endian specs.
+
+       * {sysv4,eabi}le.h (CC1_ENDIAN_DEFAULT_SPEC): Override, default is
+       little endian.
+
+       * t-ppcgas (MULTILIB_*): Delete obsolete Solaris multilibs.
+
+Mon Jan 18 12:03:08 1999  Gavin Romig-Koch  <gavin@cygnus.com>
+
+       * config/mips/mips.md (div_trap): Split div_trap_mips16
+       from div_trap.  
+       (div_trap_normal,div_trap_mips16): Correct the length attributes.
+
+Mon Jan 18 11:48:28 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * cpplib.c (special_symbol): Qualify a char* with the `const' keyword.
+       Instead of writing to const char *buf directly, use a non-const
+       variable `wbuf' to allocate and write a string, then set buf = wbuf.
+
+       * cppulp.c (user_label_prefix): Qualify a char* with the `const'
+       keyword.
+
+       * dyn-string.c (dyn_string_append): Likewise.
+
+       * dyn-string.h (dyn_string_append): Likewise.
+
+       * final.c (end_final, output_operand_lossage, asm_fprintf): Likewise.
+
+       * output.h (end_final, output_operand_lossage, asm_fprintf,
+       named_section, decode_reg_name, make_decl_rtl, user_label_prefix):
+       Likewise.
+
+       * profile.c (init_branch_prob): Likewise.
+
+       * toplev.c (set_target_switch, vmessage,
+       v_message_with_file_and_line, v_message_with_decl,
+       v_error_with_file_and_line, v_error_with_decl, v_error_for_asm,
+       verror, vfatal, v_warning_with_file_and_line, v_warning_with_decl,
+       v_warning_for_asm, vwarning, vpedwarn, v_pedwarn_with_decl,
+       v_pedwarn_with_file_and_line, vsorry, v_really_sorry,
+       open_dump_file, dump_rtl, clean_dump_file, 
+       print_version, print_single_switch, print_switch_values,
+       dump_base_name, debug_args, lang_independent_options,
+       user_label_prefix, documented_lang_options, target_switches,
+       target_options, print_time, pfatal_with_name, fatal_io_error,
+       fatal_insn, default_print_error_function, print_error_function,
+       report_error_function, error_with_file_and_line, error_with_decl,
+       error_for_asm, error, fatal, warning_with_file_and_line,
+       warning_with_decl, warning_for_asm, warning, pedwarn,
+       pedwarn_with_decl, pedwarn_with_file_and_line, sorry,
+       really_sorry, botch, output_quoted_string, output_file_directive,
+       open_dump_file, rest_of_decl_compilation, display_help, main):
+       Likewise.
+
+       * toplev.h (print_time, fatal, fatal_io_error, pfatal_with_name,
+       fatal_insn, warning, error, pedwarn, pedwarn_with_file_and_line,
+       warning_with_file_and_line, error_with_file_and_line, sorry,
+        really_sorry, default_print_error_function, report_error_function,
+       rest_of_decl_compilation, pedwarn_with_decl, warning_with_decl,
+       error_with_decl, error_for_asm, warning_for_asm, output_quoted_string,
+       output_file_directive, botch): Likewise.
+
+       * tree.h (make_decl_rtl): Likewise.
+
+       * varasm.c (strip_reg_name, named_section, decode_reg_name,
+       make_decl_rtl): Likewise.
+       
+Mon Jan 18 11:35:49 1999  Gavin Romig-Koch  <gavin@cygnus.com>
+
+       * Makefile.in (TCL_LIBRARY): Use 'cd' to find the library
+       directory logically rather than physically. 
+
+Mon Jan 18 09:05:37 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * loop.c (insert_bct): Hide the definition of variables
+       `increment_direction', `compare_direction', `add_iteration' and
+       `loop_var_mode'.
+
+       * recog.c (mode_dependent_address_p): Mark parameter `addr' with
+       ATTRIBUTE_UNUSED.  Mark label `win' with ATTRIBUTE_UNUSED_LABEL.
+       (mode_independent_operand): Mark label `lose' with
+       ATTRIBUTE_UNUSED_LABEL.
+
+       * regclass.c (n_occurrences): Remove prototype and definition.
+
+       * reload.c (find_reloads_address_1): Mark variable `tem' with
+       ATTRIBUTE_UNUSED.
+
+       * reload1.c (reload): Cast the first two arguments of `bcopy' to PTR.
+
+       * sbitmap.c (sbitmap_copy): Likewise.
+
+       * scan-decls.c (scan_decls): Hide label `handle_comma'.
+
+       * toplev.c (output_lang_identify): Mark prototype with
+       ATTRIBUTE_UNUSED.
+
+       * tree.c (make_node): Cast the first argument of `bzero' to PTR.
+       (make_tree_vec): Likewise.
+       (build1): Likewise.
+
+       * varasm.c (assemble_static_space): Mark variable `tem' with
+       ATTRIBUTE_UNUSED.
+
+Mon Jan 18 04:28:36 1999  Nathan Sidwell  <nathan@acm.org>
+
+       * Makefile.in (GCOV_INSTALL_NAME): New macro.
+       (install-common): Use it.
+       (uninstall): Use it.
+       (uninstall): Use correct names for protoize and unprotoize.
+
+Mon Jan 18 03:52:56 1999  Christian Bruel <Christian.Bruel@st.com>
+                         Jeffrey A Law  (law@cygnus.com)
+
+       * flow.c (last_mem_set): Delete variable.  References removed.
+       (mem_set_list): New variable.
+       (life_analysis): Initialize and finalize alias analysis.
+       (propagate_block); Initialize mem_set_list.  Clear for CALL_INSNs.
+       (insn_dead_p): For a store to memory, search the entire mem_set_list
+       for a match.
+       (mark_set_1): Kill entries on the mem_set_list for aliased writes or
+       changes to their addresses.  Add new entries to the mem_set_list for
+       memory writes writes.
+       (mark_used_regs): Kill entries on the mem_set_list which may be
+       referenced by a load operation.
+
+Mon Jan 18 01:01:02 1999  Jeffrey A Law  (law@cygnus.com)
+
+       * alias.c (base_alias_check): Add missing return for differing
+       symbols case.
+
+Mon Jan 18 00:36:13 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
+
+       * mips-tdump.c (print_file_desc): Handle unknown filenames and
+       missing local symbols.
+
+Sun Jan 17 21:04:31 1999  Richard Henderson  <rth@cygnus.com>
+
+       * jump.c (rtx_renumbered_equal_p): Special case CODE_LABEL.
+
+       * system.h (bcopy): Implement with memmove not memcpy.
+
+Sun Jan 17 19:23:20 1999  Jeffrey A Law  (law@cygnus.com)
+
+       * Makefile.in (cppulp.o): Add dependencies.
+
+       * i386.md (integer conditional moves): Add missing earlyclobbers.
+
+        * regmove.c (optimize_reg_copy_1): Undo Aug 18 change.  Update
+        REG_N_CALLS_CROSSED and REG_LIVE_LENGH if and only if we change
+        where a register is live.
+
+Sun Jan 17 03:20:47 1999  H.J. Lu  (hjl@gnu.org)
+
+       * reg-stack.c (subst_stack_regs_pat): Abort if the destination
+       of a FP conditional move is not on the FP register stack.
+
+Sun Jan 17 01:15:04 PST 1999 Jeff Law  (law@cygnus.com)
+
+       * version.c: Bump for snapshot.
+
+Sat Jan 16 23:40:33 1999  Jeffrey A Law  (law@cygnus.com)
+
+       * reload1.c (reload_cse_regs_1): Do not call
+       reload_cse_simplify_operands for an insn with asm operands.
+
+       * cccp.c (print_help): Fix typos.
+       * cpplib.c (print_help): Fix typos.
+       * toplev.c (f_optiosn): Fix typos.
+       (documented_lang_options): Fix typos.
+
+Sat Jan 16 21:48:17 1999  Marc Espie (Marc.Espie@openbsd.org)
+
+       * gcc.c: (do_spec_1): Fix obvious typo.
+
+Sat Jan 16 19:31:07 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * c-decl.c (duplicate_decls): If `warn_traditional', warn when
+       a non-static function declaration follows a static one.
+
+       * invoke.texi (-Wtraditional): Document the extra check now done
+       by this flag.
+
+Sat Jan 16 15:13:46 1999  Jeffrey A Law  (law@cygnus.com)
+
+       * pa.md (shadd): Create shadd insns, even if the result of the shift is
+       needed without the addition.
+
+Sat Jan 16 10:48:16 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
+
+       * sh.md (movdf, movsf): Temporary workaround for no_new_pseudos lossage.
+
+Fri Jan 15 23:44:37 1999  Richard Henderson  <rth@cygnus.com>
+
+       * sparc.c (sparc_issue): Add hypersparc/sparclite86x entries.
+
+Fri Jan 15 22:30:04 1999  David Edelsohn  <edelsohn@mhpcc.edu>
+
+       * rs6000.h (CONST_OK_FOR_LETTER_P): Do not assume 32-bit CONST_INT.
+       * rs6000.c (u_short_cint_operand, add_operand, logical_operand,
+       non_add_cint_operand, non_logical_cint_operand): Likewise.
+       (get_issue_rate): Add CPU_PPC604E case.
+       * rs6000.md (movdi, !TARGET_POWERPC64 splitters): Handle 64-bit hosts.
+       
+Fri Jan 15 18:42:12 1999  Richard Henderson  <rth@cygnus.com>
+
+       * expr.c (queued_subexp_p): Make public.
+       * expr.h (queued_subexp_p): Declare it.
+       * recog.c (asm_operand_ok): New function.
+       (check_asm_operands): Use it.  After reload, use constrain_operands 
+       instead.
+       * recog.h (asm_operand_ok): Declare it.
+       * stmt.c (expand_asm_operands): Use it to try harder to make
+       asms initially satisfy their constraints.
+
+Fri Jan 15 17:43:59 1999  Jeffrey A. Law  <law@rtl.cygnus.com>
+
+       * sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Do not create
+       (mem (lo_sum (...)) for TFmode unless TARGET_V9.
+
+Sat Jan 16 12:47:15 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
+
+       * config/c4x/c4x.md (not_repeat_reg): Allow ldp instruction
+       in delay slot of RPTBD.
+
+Sat Jan 16 12:26:40 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
+
+       * config/c4x/libgcc.S (___divhi3, ___modhi3): Fix long long
+       divide and modulo sign problem.
+
+Fri Jan 15 11:02:31 1999   Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
+
+       * unroll.c (loop_iterations): Return 0 if the last loop insn
+       is not a jump insn or if the loop has multiple back edges.
+
 Thu Jan 14 22:38:41 1999  Jeffrey A Law  (law@cygnus.com)
 
+       * unroll.c (find_splittable_givs): For a DEST_ADDR giv, do not share
+       a register with another DEST_ADDR giv if the address is not valid.
+
+       * pa.c (hppa_expand_epilogue): Save and restore the static chain
+       around the call to mcount.
+
        * h8300.h (ASM_OUTPUT_LABELREF): Use asm_fprintf, not fprintf.
 
        * stmt.c (expand_end_case): Use emit_cmp_and_jump_insns to avoid
@@ -43,6 +775,56 @@ Thu Jan 14 13:52:42 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
        * config/c4x/c4x.md (in_annul_slot_3): Correctly allow unarycc 
        and binarycc operations in 3rd annulled delay slot!
 
+Wed Jan 13 16:16:44 1999  Catherine Moore  <clm@cygnus.com>
+
+        * config/arm.c (output_func_epilogue):  Check TARGET_ABORT_NORETURN
+        before generating a call to abort for volatile functions.
+        * config/arm.h (ARM_FLAG_ABORT_NORETURN):  Define.
+        (TARGET_ABORT_NORETURN):  Define.
+        (abort-on-noreturn):  New option.
+
+Wed Jan 13 13:30:08 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * cccp.c (xstrdup): Renamed from `savestring'.  All callers changed.
+       Remove prototype which we get from libiberty.h.
+
+       * collect2.c (xstrdup): Likewise.
+
+       * genextract.c (xstrdup): Likewise for `copystr'.
+       (mybzero): Remove it and use `memset' instead.
+
+       * genoutput.c (mybcopy, mybzero): Remove these.  All callers changed
+       to use `memcpy' and `memset' instead.
+
+       * genrecog.c (xstrdup): Renamed from `copystr'.  All callers
+       changed.  Remove prototype.
+       (mybcopy, mybzero): Remove these and use memcpy/memset.
+
+Wed Jan 13 00:59:04 1999  Jeffrey A Law  (law@cygnus.com)
+
+       * mips.h (LOAD_EXTEND_OP): Correct for SImode and CCmode moves when
+       generating code for TARGET_64BIT.
+
+Tue Jan 12 14:05:37 1999   David Edelsohn  <edelsohn@mhpcc.edu>
+
+       * rs6000.c (print_operand, cases 'm' and 'M'): Do not depend on
+       HOST_WIDE_INT word-size.
+       (rs6000_stack_info): Remove redundant alignment of fpmem.
+
+Tue Jan 12 14:05:37 1999   Richard Henderson  <rth@cygnus.com>
+
+       * rs6000.c (short_cint_operand): Remove CONSTANT_P_RTX handling.
+       (u_short_cint_operand, reg_or_cint_operand, logical_operand): Likewise.
+       (input_operand): Adjust CONSTANT_P_RTX handling.
+       * rs6000.h (PREDICATE_CODES): Remove CONSTANT_P_RTX references.
+       * rs6000.md (movsi): Adjust CONSTANT_P_RTX handling.
+       (movhi, movqi): Remove CONSANT_P_RTX handling.
+       (movdi): Adjust CONSTANT_P_RTX handling.
+
+Tue Jan 12 10:23:24 1999  Stan Cox  <scox@cygnus.com>
+
+       * mips.md (call_value_internal3c): New pattern for -mips16 -mlong-calls.
+
 1999-01-12  Manfred Hollstein  <manfred@s-direktnet.de>
 
        * m68k/mot3300.h (ADD_MISSING_POSIX, ADD_MISSING_XOPEN): Define to
@@ -102,43 +884,6 @@ Mon Jan 11 22:36:01 1999  Richard Henderson  <rth@cygnus.com>
        * graph.c, haifa-sched.c, local-alloc.c, regclass.c: Likewise.
        * regmove.c, reload1.c, reorg.c, sched.c: Likewise.
 
-Thu Jan 11 18:37:50 1999  Vladimir N. Makarov  <vmakarov@cygnus.com>
-
-       * invoke.texi (-mcpu=740, -mcpu=750): New options.
-        (-m(no-)multiple, -m(no-)string): Describe cases for PPC740 &
-       PPC750.
-       
-1999-01-11  Michael Meissner  <meissner@cygnus.com>
-
-       * config/rs6000/rs6000.h ({ASM,CPP}_CPU_SPEC): Add support for all
-       machines supported with -mcpu=xxx.
-       (processor_type): Add PROCESSOR_PPC750.
-       (ADJUST_PRIORITY): Call rs6000_adjust_priority.
-       (RTX_COSTS): Supply costs for 750 multiply/divide operations.
-       (rs6000_adjust_priority): Add declaration.
-       
-       * config/rs6000/rs6000.c (rs6000_override_options):
-       -mcpu={750,740} now sets the processor type as 750, not 603.
-       Allow -mmultiple and -mstring on little endian 750 systems.
-       (rs6000_adjust_priority): Stub for now.
-       (get_issue_rate): The PowerPC 750 can issue 2 instructions/cycle.
-
-       * config/rs6000/rs6000.md (function/cpu attributes): Add initial
-       ppc750 support.
-
-       * config/rs6000/sysv4.h (STRICT_ALIGNMENT): Don't force strict
-       alignment if little endian.
-       (CC1_SPEC): Pass -mstrict-align if little endian, and not
-       overridden.
-       (CC1_ENDIAN_{LITTLE,BIG,DEFAULT}_SPEC): Endian specific configs.
-       (SUBTARGET_EXTRA_SPECS): Add cc1 endian specs.
-
-       * config/rs6000/{sysv4,eabi}le.h (CC1_ENDIAN_DEFAULT_SPEC):
-       Override, default is little endian.
-
-       * config/rs6000/t-ppcgas (MULTILIB_*): Delete obsolete Solaris
-       multilibs.
-
 Sat Jan  9 23:54:09 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 
        * gcc.c (xstrerror): Renamed from my_strerror.  All callers