diff options
author | law <law@138bc75d-0d04-0410-961f-82ee72b054a4> | 1997-08-11 15:56:58 +0000 |
---|---|---|
committer | law <law@138bc75d-0d04-0410-961f-82ee72b054a4> | 1997-08-11 15:56:58 +0000 |
commit | 071cd279a6ac9efccecd8171777a9fc99ac4796a (patch) | |
tree | b2e1ea43e0bdba8cca9bb02ed01f5e3da5a955a6 /gcc/ChangeLog.4 | |
parent | 5b48acd0eb694e43d357e6ad8f2daa604ad8d2ff (diff) | |
download | gcc-071cd279a6ac9efccecd8171777a9fc99ac4796a.tar.gz |
Initial revision
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@14764 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ChangeLog.4')
-rw-r--r-- | gcc/ChangeLog.4 | 10783 |
1 files changed, 10783 insertions, 0 deletions
diff --git a/gcc/ChangeLog.4 b/gcc/ChangeLog.4 new file mode 100644 index 00000000000..af668a3be89 --- /dev/null +++ b/gcc/ChangeLog.4 @@ -0,0 +1,10783 @@ +Mon Jan 13 19:12:18 1992 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) + + * unroll.c (find_splittable_givs): When completely unrolling loop, + use biv initial value stored in splittable_regs instead of + bl->initial_value, since the later may not be safe. + + * sched.c (schedule_block): When calculating whether a register + crosses a call, must do this after registers are killed and before + new registers are made live. + + * x-rs6000: Define INSTALL as /usr/ucb/install -c. /etc/install + (the SYS V version) does not handle -c option as Makefile.in + intends it. + +Mon Jan 13 11:21:24 1992 Michael Meissner (meissner at osf.org) + + * mips-tfile (parse_stabs_common): Don't relocate N_LBRAC and + N_RBRAC stabs for compatibility with other stabs implementations. + +Mon Jan 13 07:41:32 1992 Michael Tiemann (tiemann at cygnus.com) + + * cp-decl.c (grokdeclarator): Don't set TREE_PRIVATE here. + TREE_PRIVATE is only for visibility. + (start_function): Don't test TREE_PRIVATE here. #pragma + interface/implementation should properly handle the case of static + (i.e. non-public) defns in implementation section now. + +Mon Jan 13 07:31:38 1992 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * rs6000.c (output_ascii): The AIX assembler silently truncates + strings longer than 666 characters, so break them up well before that. + +Mon Jan 13 00:26:47 1992 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * c-decl.c (pushdecl): Warn about shadowing at top level any symbol + that was declared among the function parms. But don't warn for + parms in a nested function. + * tree.c (chain_member): New function. + + * sparc.c (output_return): Handle structure value in all the cases. + + * toplev.c (main): -gstabs+ means use stabs with gdb extensions. + + * fixincludes: Insert #undef NULL before #define NULL. + + * gvarargs.h (va_list): Check some macros to avoid redefinition. + + * tree.h (DECL_PACKED): New macro. + * c-common.c (decl_attribute): Handle `packed'. + * stor-layout.c (layout_record): Handle DECL_PACKED. + * c-parse.y (attrib): Accept `packed' with no arg. + + * c-decl.c (shadow_tag): For useless keyword, just warn. + (duplicate_decls): Don't preserve volatile bit from old decl + if that is just a default declaration for abort, exit, etc. + + * cccp.c (do_assert, do_unassert, check_assertion): + No pedantic warnings in system header files. + + * ultrix.h (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE): Defined. + (WCHAR_TYPE_SIZE): Defined. + + * i386.h (HI_REGISTER_NAMES): Add a name for dummy reg 16. + + * dbxout.c (flag_minimal_debug): Make it static. + +Sun Jan 12 18:10:46 1992 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * c-lex.c (check_newline): Check #line for `3' meaning system header. + * cccp.c (output_line_command): Output `3' if system header. + * c-tree.h (system_header_p): Declare it. + (ridpointers): Declaration deleted. + + * dwarfout.c (fundemental_type_code): Treat OFFSET_TYPE like integer. + (type_is_fundamental, output_type): Likewise. + + * optabs.c (expand_float): Abort if FROM has VOIDmode. + * expr.c (expand_expr, FLOAT_EXPR case): Don't pass a VOIDmode. + +Sun Jan 12 16:11:40 1992 Michael Meissner (meissner at osf.org) + + * mips.h (ASM_OUTPUT_SPACE): If assembler is gas, don't use the + .space directive, since the table PREDICATE_CODES generates tickles + a bug. + +Sun Jan 12 15:59:41 1992 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * expmed.c: Include real.h. + (make_tree): Properly handle CONST_INT and handle many more rtl codes. + (expand_mult_add): Don't do folding here; just call make_tree and fold. + * Makefile.in (expmed.o): Includes real.h. + +Sun Jan 12 12:26:20 1992 Michael Tiemann (tiemann at cygnus.com) + + * cp-decl.c (store_parm_decls): Finish change started 11 Jan 1992. + + * cp-decl.c (pushtag): Don't set CLASSTYPE_TAGS after + CURRENT_CLASS_TYPE has been defined. + + * cp-lex.c (check_newline): Set INTERFACE_UNKNOWN if we see a + #pragma implementation or if it's the toplevel file. + +Sat Jan 11 22:04:34 1992 Michael Meissner (meissner at osf.org) + + * mips.md (fix_truncsfsi2_opt): Delete, since the optimizer will + strip the clobbers when substituting a register for a cs'ed value, + unlike GCC 1. + (fix_truncdfsi2_opt): Likewise. + (long long shifts): Fix various typos. + +Sat Jan 11 15:26:24 1992 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * expr.h (GEN_FCN): Alternate definition if FUNCTION_CONVERSION_BUG. + * xm-romp.h (FUNCTION_CONVERSION_BUG): Define it. + + * i386.md (cmpstrsi recognizers): Change back to repz. + +Sat Jan 11 11:18:32 1992 Michael Tiemann (tiemann at cygnus.com) + + * cp-decl.c (store_parm_decls): Don't put non-PARM_DECL nodes in the + list that will become DECL_ARGUMENTS. + + * cp-decl2.c (grokfield): Convert () initialization to = + initialization in FIELD context. + * cp-decl.c (parmlist_is_exprlist): Now non-static. + + * cp-decl.c (grokdeclarator): Don't let static class members be + declared `static' at top-level. + + * cp-decl.c (pushdecl_class_level): Don't use DECL_ASSEMBLER_NAME. + + * cp-decl.c (grokdeclarator): Don't let language linkage interfere + with declarator grokking--the two are independent. + + * cp-call.c (compute_conversion_costs): Look for constructor or type + conversions regardless of whether we have CONTRAVARIANCE_HARSHNESS + or not. Also, `#if 0' some dead code. + + * cp-method.c (report_type_mismatch): Fix bugs in formatting error + messages. + + * cp-decl.c (grokvardecl): Verify that when static class members are + declared at toplevel, the types match their initial declaration. + +Sat Jan 11 08:41:24 1992 Fred Fish (fnf at fishpond) + + * config/m68kv4.h (NO_DOLLAR_IN_LABEL): Undefine so that the + default for m68k/SVR4 systems is to use '$', which is more + widely supported. + +Sat Jan 11 10:56:10 1992 Jeffrey A. Law (law at wombat.gnu.ai.mit.edu) + + * Finish PIC implementation on the 68k + * output.h (flag_pic): Declare here so that insn-*.c can see it. + + * reload1.c (reload): When compiling PIC ignore REG_EQUIV notes + which are CONSTANT_P, but are not LEGITIMATE_PIC_OPERAND_P. + + * m68k.md (call, call_value): Make these into define_expands. If + compiling PIC code, then load the address of the function into a + register so that we make indirect calls. + (Non-PIC call, call_value): New define_insns. These are + standard call insns. + (PIC call, call_value): New define_insns which output PIC calls. + (movsi): Make this into a define_expand. Legitimize PIC addresses + if necessary. Old movsi code is now an unnamed define_insn pattern. + + * m68k.h (GO_IF_LEGITIMATE_ADDRESS case INDIRECTABLE_1_ADDRESS_P): + Use LEGITIMATE_PIC_OPERAND_P to reject SYMBOL_REFS and LABEL_REFS + without PIC relocation when compiling PIC code. + + * m68k.c (legitimize_pic_address): New function. Given an address + return that address as "legitimized" PIC code. + (print_operand_address): When generating PIC code, handle PIC + relocated label_refs just like a PIC relocated symbol_ref. + (print_operand_address): If -fpic then add ":w" to displacement in + PIC relocated references. + (print_operand_address): If -fPIC then add ":l" to displacement in + PIC relocated references. + +Fri Jan 10 18:03:08 1992 Ken Raeburn (Raeburn@Cygnus.COM) + + * cp-init.c (build_new): Don't allocate header for arrays if no + destructor is needed. Also fix broken calculation of array size. + (build_delete): Don't skip array header if no destructor is needed. + +Fri Jan 10 14:54:19 1992 Michael Tiemann (tiemann at cygnus.com) + + * cp-cvt.c cp-decl2.c cp-expr.c cp-gc.c cp-init.c cp-lex.c cp-parse.y + cp-pt.c cp-search.c cp-tree.c: Clean up problems found with -Wreturn + (from rfg). + + * cp-typeck.c cp-tree.c cp-cvt.c cp-lex.c cp-call.c cp-class.c: + Add (unsigned) casts to all places where native SVr4 compilers + expect to see unsigned values. + +Fri Jan 10 08:34:36 1992 Fred Fish (fnf at sunfish) + + * m68ksgs.h (REGISTER_NAMES): Provide separate versions for + SUPPORT_SUN_FPA defined and not defined. + +Fri Jan 10 22:36:41 1992 (Eric Youngdale at youngdale@v6550c.nrl.navy.mil) + + * Improve I/O performance of gcc on VMS. + * cccp.c (VMS_open, VMS_fopen, VMS_freopen): New functions. + (open, fopen, freopen): Define as macros on VMS. + * toplev.c (VMS_fopen): New function. + (fopen): Define as macro on VMS. + +Fri Jan 10 22:00:50 1992 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * genrecog.c (merge_trees): If two trees both have actions, but + one adds clobbers and one doesn't, ignore the one that does. + + * genemit.c (gen_split): Say that we are giving the definition number + in our error message. + * genrecog.c (fatal): Likewise. + * genoutput.c (scan_operands): Likewise. + + * caller-save.c: Include expr.h (for gen_move_insn). + (regno_save_elim): Deleted. + (init_save_areas): Don't initialize it. + (setup_save_areas): Don't set it. + (save_call_clobbered_regs, restore_referenced_regs): Accept mode, + not spill register. + (insert_save_restore): Don't do our own register elimination and + reloading; instead set the insns we make to the desired mode. + * reload1.c (struct elim_table): New field MAX_OFFSET. + (reload): Always call init_save_areas. + Initialize max_offset each pass. + At each CALL_INSN, create a need for a spill register that will + be used by caller-save. + Pass mode for insns to save_call_clobbered_regs instead of a + spill reg number. + Call reload_as_needed if we will have to reload the caller-save + insns, even if nothing else needs reload (unlikely). + (eliminate_regs_in_insn): Record maximum offset value. + * Makefile.in (caller-save.o): Includes expr.h. + + * reload.c (find_reloads): CALL_INSNs can't have output reloads. + * reload1.c (emit_reload_insns): Put any reloads for a CALL_INSN + in front of any immediately-preceeding USE insns. + + * flow.c (life_analysis): Mark all global regs as live at the end of + the function. + (propagate_block): Each call makes all global registers live. + (mark_used_regs): A RETURN may use the stack pointer and uses all + global regs. + * cse.c (cse_insn): A CALL_INSN clobbers any global regs. + * reorg.c (mark_referenced_resources): Calls used global regs. + (mark_set_resources): CALL_INSNs clobber global regs. + +Fri Jan 10 17:24:06 1992 Michael Meissner (meissner at osf.org) + + * collect2.c (whole file): Major rewrite to merge in collect3 + functionality which uses GCC to build up the constructor and + destructor tables, instead of using the assembler. Also improve + the support for cross compilers to find the tools. The old assembly + language support has been removed. + + * mips-tfile.c (CODE_MASK): Move to mips.h to use with mips-tdump + also. + (MIPS_IS_STAB): Likewise. + (MIPS_MARK_STAB): Likewise. + (MIPS_UNMARK_STAB): Likewise. + + * mips-tdump.c (various): Changes by Per Bothner to print + encapsulated stabs, and to shorten the output. + + * mips.h (MIPS_VERSION): Set Meissner version # to 7. + (cmp2_op): Make cmp2_op a real function instead of just a + macro to cmp_op. + (OPTIMIZATION_OPTIONS): -O now sets flag_caller_saves and + flag_schedule_insns_after_reload. + (CC1_SPEC): Fix typo preventing -mgpopt from being set if + optimization. + (PREDICATE_CODES): Define. + (USE_COLLECT, EXTENDED_COFF, NO_UNDERSCORES): Delete, not needed in + GCC 2.00. + (ASM_INT_OP, ASM_SHORT_OP, ASM_CHAR_OP): Likewise. + (CODE_MASK): Move from mips-tfile. + (MIPS_IS_STAB): Likewise. + (MIPS_MARK_STAB): Likewise. + (MIPS_UNMARK_STAB): Likewise. + + * mips.c (cmp2_op): Make this a real function, instead of a macro + pointing to cmp_op. + (volatile_buffer): New static variable to support .set volatile. + (mips_move_1word): Do .set volatile/.set novolatile around volatile + memory references. + (mips_move_2words): Likewise. + + * mips.md (sne define_split): Fix so that it generates a gtu 0. + (all set cc define_splits): Remove reload_completed tests. + (all set cc define_insns): Don't allow 0 as operand 1. + +Fri Jan 10 16:40:45 1992 Jeffrey A. Law (law at wombat.gnu.ai.mit.edu) + + * m68k.md (addsi3, addhi3, subsi3, stack adjustment peepholes): + Perform small (8 < N <= 16) constant additions and subractions to + address registers with two addqw (or subqw) instructions. + +Fri Jan 10 06:54:22 1992 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * calls.c (expand_call): Check for _longjmp as well as longjmp; + clean up code a bit and merge with check for setjmp-like names. + Emit a BARRIER if this is a call to longjmp in addition to + volatile calls. + +Fri Jan 10 02:25:54 1992 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * c-typeck.c (digest_init): Properly return error_mark_node + after invalid element in array initializer. + + * gcc.c (pexecute): Use `fork' in error message if don't have vfork. + + * Makefile.in: Add .NOEXPORT. + +Thu Jan 9 13:36:25 1992 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * expr.c (expand_expr): Handle OFFSET_REF. + + * cse.c (simplify_binary_operation): Never use associative law for + floating arithmetic. + + * fixinc.svr4: Renamed INCLUDES to INPUT. + + * i386.md (cmpstrsi recognizers): Output repe, not repz. + +Thu Jan 9 18:02:34 1992 Dennis P. Glatting (dennisg at tti) + + * tree.h (CONSTRUCTOR_NAME_FORMAT): Changed name format. Old format + was recognized as destructors not constructors. + * objc-actions.c (build_module_descriptor): + Null-terminate global_object_name. + +Thu Jan 9 10:35:58 1992 Tom Wood (wood at dg-rtp.dg.com) + + * sdbout.c (sdbout_syms): Don't attempt to output a LABEL_DECL. + +Thu Jan 9 08:17:44 1992 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * fold-const.c (merge_component_references): Treat constants as + unsigned, so we don't get extra sign bits where we don't want them. + +Wed Jan 8 19:12:59 1992 James Van Artsdalen (james at bigtex.cactus.org) + + * reload.c (combine_reloads): Don't use a fixed_reg as an reload + reg, even if it dies. + + * loop.c (record_giv): Fix typo extracting insn_uid. + +Wed Jan 8 15:41:10 1992 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * cpp.texi, gcc.texi: Files renamed. + * invoke.texi, extend.texi, md.texi, rtl.texi, tm.texi: New subfiles. + * Makefile.in: Corresponding changes. + + * fixincludes: Renamed INCLUDES to INPUT. + + * m68k.c (notice_update_cc, print_operand): Fix typos. + + * cp-decl.c (expand_static_init): Save and restore current obstacks. + + * c-decl.c (poplevel): Put labels in BLOCK_VARS of top-level block. + +Wed Jan 8 12:53:48 1992 Michael Tiemann (tiemann at cygnus.com) + + * cp-decl.c (expand_static_init): Switch to PERMANENT_OBSTACK during + expansion. + +Wed Jan 8 07:45:58 1992 Tom Wood (wood at dg-rtp.dg.com) + + * m88kv3.h (STARTFILE_SPEC): SVR3 has *crt0.o files. + + * configure (m88k-*sysv{3,4}): The files are named m88kv{3,4}. + +Wed Jan 8 06:01:44 1992 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * romp.md (mftbi): Allow memory in the contraints since there can't + be an input reload on an insn that uses cc0. + + * cse.c (FIXED_BASE_PLUS_P): Include virtual_incoming_args_rtx. + (NONZERO_BASE_PLUS_P): New macro. + (find_comparison, simplify_relational_operation_args): Use + NONZERO_BASE_PLUS_P instead of FIXED_BASE_PLUS_P when appropriate. + + * m68k.md (peepholes): Don't change around stack adjusts and pushes + when we are pushing something whose address involves sp. + + * cse.c (simplify_unary_operation): Check for operations on + integers by looking at mode of OP, not output mode, to avoid + confusion with FIX operations whose result is an integer. + + * rtl.h ([df]const[012]_rtx): Deleted. + (const_tiny_rtx): New declaration. + (CONST0_RTX): Use const_tiny_rtx instead of {d,f,}const0_rtx. + (CONST1_RTX, CONST2_RTX): New macros. + * emit-rtl.c ([df]const[012]_rtx): Deleted. + (const_tiny_rtx): New definition. + (init_emit_once): Initialize const_tiny_rtx instead of old vars. + * cse.c (simpify_binary_operation): Use CONST[01]_RTX. + * varasm.c (immed_real_const_1): Likewise. + * combine.c (subst): Likewise. + * reg-stack.c (record_reg_life, stack_reg_life_analysis): Likewise. + * convex.md, i860.md, m88k.c, spur.md, vax.h, ns32k.md: Likewise. + +Tue Jan 7 22:11:17 1992 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * x-i386isc (ENQUIRE_LDFLAGS): New defn: add -posix. + + * protoize.c (_POSIX_SOURCE): Define only if POSIX. + + * m68k.h (FPA_REG_P): Always define this somehow. + + * c-decl.c (c_decode_option): Handle -Wchar-subscripts. + * c-typeck.c (build_array_ref): Do the real work. + +Tue Jan 7 21:15:54 1992 Michael Meissner (meissner at osf.org) + + * mips.md (branch_zero_false): Use correct mode (CC_0) on + match_operator. + +Tue Jan 7 14:24:45 1992 James Van Artsdalen (james at bigtex.cactus.org) + + * reg-stack.c (replace_reg): get mode class from a mode, not a reg. + +Tue Jan 7 14:16:18 1992 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * reg-stack.c (emit_pop_insn): Fix typo FPmode_reg. + + * protoize.c (longjmp): Don't declare it. + +Tue Jan 7 09:47:47 1992 Michael Tiemann (tiemann at cygnus.com) + + * cp-lex.c (real_yylex): From John Hassey, allocate space for the + terminating null on wide character literals. + +Tue Jan 7 07:41:42 1992 Tom Wood (wood at dg-rtp.dg.com) + + * m88kv3.h (LIB_SPEC): Add -lg. + +Tue Jan 7 06:29:30 1992 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * stor-layout.c (layout_type): Don't over-align a structure + when strict alignment is not required. + + * rs6000.h (CALL_USED_REGISTERS): r31 should not be marked call-used. + + * rs6000.md (add-and-compare): Fix duplicate operand number. + + * a29k.md (inbyte, inhw): Correct duplicate operand number. + + * fold-const.c (fold, case MULT_EXPR): Simplify (a * (1 << b)). + * combine.c (subst, case MULT): Likewise. + (simplify_shift_const, shift cases): Similarly, associate A << B << C. + + * genoutput.c (seen): New array. + (scan_operands): Give error if an operand number was specified + twice. Include pattern number in error message. + (gen_insn, gen_expand, gen_split, gen_peephole): Initialize `seen'. + (gen_split, gen_peephole): Add initializations for arrays that + are copied. + + * optabs.c (expand_unop): Complete recent change; one TARGET was + not changed to TEMP. + + * expmed.c (expand_mult): Always try multiplication by value and + by negated value. Fix bug where we don't include the cost of the negate + when seeing which way is better. Write proper value in REG_EQUAL + note. + + * optabs.c (extendtab): Replacement for {zero,sign}_extend_codes. + (can_extend_p): Use new table and return type is not enum insn_code. + (gen_extend_insn): Deleted; not used. + (init_extends): Make like init_flottab: use new table and initialize + unused entries to CODE_FOR_nothing, not zero. + * expr.c (convert_move): can_extend_p fails if it returns + CODE_FOR_nothing, not zero. + * expr.h (can_extend_p): Add definition. + + * expr.h: Add "extern" to function definitions. + +Mon Jan 6 10:12:34 1992 Leonard Norrgard (vinsci at nic.funet.fi) + + * m68k.c (SUPPORT_SUN_FPA): Conditionalize references to the + optional Sun 3 Floating Point Accelerator with SUPPORT_SUN_FPA. + * m68k.h (SUPPORT_SUN_FPA): Likewise. + + * m68k.c (notice_update_cc): New function. + * m68k.h (NOTICE_UPDATE_CC): Just call notice_update_cc. + + * sun3.h (SUPPORT_SUN_FPA): New define. + +Mon Jan 6 16:42:43 1992 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * varasm.c (assemble_global, assemble_label): New functions. + * objc-actions.c (finish_objc): Call them to define and globalize. + Use output_constant to reference a class. + + * Makefile.in (install-limits-h): New target. + (install-headers): Depend on install-limits-h. + (USER_H): Deleted LIMITS_H. + (INSTALLED_H): Added limits.h. + (mostlyclean): Remove tmp-limits.h. + * limitx.h: New file. + + * x-isc: File deleted. + + * objc-actions.c (build_module_descriptor): Init global_object_name. + + * Makefile.in (collect2): Depend on version.o. + + * protoize.c (PATH_MAX): Definition deleted. Just test it + to see if param.h should be included. + + * cse.c (simplify_binary_operation, case MULT): Make a copy + of the operand when converting 2.0 * X to X+X. + + * reload.c (find_reloads): Refine when we set force_reload and + better document the cases. + +Mon Jan 6 08:22:19 1992 James Van Artsdalen (james at bigtex.cactus.org) + + * i386.c (output_float_compare): Output only single-pop compare + if both operands are the FP top of stack reg. + When comparing FP top of stack with itself, print `%st(0)' as the + reg name, not `%st'. + +Mon Jan 6 12:01:51 1992 Tiggr (rcpieter at mole.gnu.ai.mit.edu) + + * arm.md (mulsi3): Fixed contraints. + +Mon Jan 6 08:21:46 1992 Tom Wood (wood at dg-rtp.dg.com) + + * m88k-move.sh: Renamed from m88k-movstr.sh. Rename the generated + files move*.asm from movstr*.asm to be SVR3-legit. + * t-m88k, t-m88kluna, t-m88kv4: Use the new names. + + * c-aux-info.c, dbxout.c: Include errno.h as in protoize.c. + + * Makefile.in (BISONFLAGS): Don't use -v since *.output is big. + (cp-parse.c): Do use -d to create cp-parse.h. + (cp-parse.o): Don't define PARSE_OUTPUT. + * x-mips, x-m88kdgux (BISONFLAGS): No -v. + +Mon Jan 6 07:54:55 1992 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * genpeep.c (match_rtx): Loop over vectors (e.g., PARALLEL) in the + natural order so we see an operand before we see a MATCH_DUP referring + to it. + + * genrecog.c (write_tree_1): Simplify code that writes braces and + avoid writing them unnecessarily. + Don't write dead code when last test was unconditional. + + * optabs.c (expand_binop, expand_twoval_binop, expand_unop): + Standardize loop for wider mode. + (emit_cmp_insn, emit_float_lib_cmp): Likewise. + (expand_binop): Correct how extensions are done: use convert_to_mode, + don't use SUBREG for non-integer operations, and remove test + involving HOST_BITS_PER_INT. + (expand_unop): Similar changes; make code closer to expand_binop. + Handle failure of recursive call when expanding. Fix incorrect use + of TEMP when widening. Use SUBREG for NEG and NOT. + + * reload.c (find_reloads_address_part): New function. + (find_reloads_address): Call it instead of push_reload when we are + reloading a PLUS or a constant. + +Sun Jan 5 18:34:15 1992 (Eric Youngdale at youngdale@v6550c.nrl.navy.mil) + + * make-cc1.com: Change file names from cp-tab.* to cp-parse.*. + +Sun Jan 5 18:06:11 1992 Michael Tiemann (tiemann at cygnus.com) + + * cp-decl.c (grokdeclarator): Correctly grok REFERENCE_TYPE + parameters when TYPE_REFERENCE_TO is automagically converted. + +Sun Jan 5 05:19:19 1992 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * tree.h (CONSTRUCTOR_NAME_FORMAT): New macro. + * objc-actions.c (build_module_descriptor): Make constructor name + from name of file or of a global that it defines. + Return constructor name. + (finish_objc): Use name returned as name to call. + + * protoize.c (GUESSPATHLEN): New macro. + (main): Use that for initial buffer size for getcwd. + * dbxout.c (getwd, getcwd, GUESSPATHLEN): Define as in protoize.c. + (dbxout_init): Call getcwd in loop, as in protoize.c. + * c-aux-info.c (getwd, getcwd, GUESSPATHLEN): Define as in protoize.c. + (gen_aux_info_record): Call getcwd in loop. + * i386v.h, i386vgas.h (MAXPATHLEN): Don't define. + + * svr3.h (LINK_SPEC): Don't pass -K. + + * reload.c (find_reloads): Do record in non_reloaded_operands if no -O. + + * m68k.c (output_function_prologue, output_function_epilogue): + Add braces and adjust conditionals to fix balance and indentation. + + * objc-actions.c (build_module_descriptor): Mark __objc_file_init used. + +Sat Jan 4 13:27:40 1992 James Van Artsdalen (james at bigtex.cactus.org) + + * protoize.c: unprotoize getcwd & fork declarations. + (edit_fn_declaration): use "VOLATILE", not "volatile". + +Sat Jan 4 20:19:41 1992 Michael Meissner (meissner at osf.org) + + * mips.h (set_volatile): Add new global variable reference. + + * mips.c (set_volatile): New global variable to keep track of the + number of .set volatile's done. At present, no code actually turns + this on. + (mips_move_1word): Use %. instead of putting const0_rtx into an + unused operator and using %z to get to $0, which is hardwired to 0. + (mips_move_2words): Likewise. + (override_options): Allow %., %{, and %} punctuation. + (print_operands): Add support for %. to get the current name of + register 0, %{ to turn on .set volatile, and %} to turn on .set + novolatile. + (function_epilogue): Give an error if .set volatile was left on in + the epilogue. + (mips_asm_file_start): Don't emit .set nobopt unless we are filling + branch delay slots. + + * mips.md (set reg on comparison define_splits): Don't allow the + scheduler to split any set of a comparision insns, to work around a + bug in sched.c. + +Sat Jan 4 23:01:41 1992 Jeffrey A Law (law at planet.super.org) + + * m68k.c (output_function_prolog): Decrement (instead of + increment) num_saved_regs when a frame pointer is needed. + (the link/unlk will restore the frame pointer register) + +Sat Jan 4 11:11:24 1992 Dennis P. Glatting (dennisg at tti) + + * next.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): #undef before defining. + +Sat Jan 4 07:40:25 1992 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * expr.c (convert_to_mode): Correctly zero-extend a constant into + a mode whose size is twice the host int size. + + * machmode.h (enum mode_class): Add MAX_MODE_CLASS. + (GET_CLASS_NARROWEST_MODE): New macro. + (byte_mode, word_mode): Add declarations. + * caller-save.c (choose_hard_reg_mode): Use GET_CLASS_NARROWEST_MODE. + * combine.c (make_extraction): Don't use explicit QImode and SImode. + * cse.c (simplify_unary_operation): Integer CONST_DOUBLEs have + VOIDmode, not DImode. + (simplify_binary_operation): Remove explicit DFmode reference. + * expmed.c (init_expmed): Don't make our own copy of word_mode. + (store_bit_field, extract_bit_field): Remove explicit + QImode reference; don't recompute word_mode. + (store_fixed_bit_field, {store,extract}_split_bit_field): Don't + recompute word_mode. + (emit_store_flag): Likewise. + (extract_fixed_bit_field): Replace explicit mode references with a + loop on modes; don't recompute word_mode. + * expr.c (convert_mode, move_block_{to,from}_reg, use_regs): Don't + recompute word_mode. + (emit_push_insn, do_jump_by_parts*): Likewise. + (push_block): Remove explicit QImode reference. + (get_inner_reference): Use mode_for_size. + * emit-rtl.c (restore_reg_data): Make unused regs word_mode. + (operand_subword): Don't recompute word_mode. + * fold-const.c (optimize_bit_field_compare): Likewise. + (merge_component_references): Likewise. + * flow.c (mark_set_1, mark_used_regs): Likewise. + * loop.c (combine_movables): Use GET_CLASS_NARROWEST_MODE. + * optabs.c (expand_binop): Replace SImode references in multi-word + multiply with the mode used for each subpart. + (expand_binop, expand_unop): Don't recompute word_mode. + * reg-stack.c (reg_to_stack): Use GET_CLASS_NARROWEST_MODE. + * reload.c (find_equiv_reg): Check for MODE_FLOAT, not SFmode/ DFmode. + * rtl.c (class_narrowest_mode, byte_mode, word_mode): Define. + (init_rtl): Initialize them. + * sched.c (attach_deaths): Don't recompute word_mode. + * stor-layout.c (mode_for_size): Use GET_CLASS_NARROWEST_MODE. + (get_best_mode): Likewise. + Don't recompute word_mode. + * unroll.c (unroll_loop): Replace default of SImode with word_mode. + + * calls.c (calls_alloca): Don't recurse on BLOCK_SUPERCONTEXT. + +Sat Jan 4 03:42:09 1992 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * protoize.c (pointer_type): Use char * if non-ANSI. + (const_pointer_type): Likewise. + (malloc, realloc): Declare to return pointer_type. + (setjmp): Don't declare, to avoid trouble with macro defns. + (const): If not ANSI, define as empty macro. + +Sat Jan 4 00:59:53 1992 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) + + * sparc.c (legitimize_pic_address): When converting a symbol_ref, + use an extra temp reg when -fPIC, and add a REG_EQUAL note to the + insn referencing the global offset table. This allows loop to + optimize these PIC sequences. + +Fri Jan 3 20:29:57 1992 James Van Artsdalen (james at bigtex.cactus.org) + + * i386.md (return): Always output return insns. + + * i386.h (FUNCTION_PROLOGUE): If the last nonnote insn in a function + is a BARRIER, don't output a function epilogue. + +Fri Jan 3 12:43:09 1992 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * t-decrose, t-decstatn, t-encrose, t-i386rose, t-mips (ALL): + Use libgcc.a, not libgcc. + + * protoize.c (STRINGIFY): Provide non-ANSI alternative definition. + + * c-decl.c (get_parm_info): Keep non-parms in the parm list. + + * stmt.c (cost_table): Now short. + (estimate_case_costs): Handle that. + + * Makefile.in (float.h, *protoize.1, gcc.xtar.Z): + Make temp files, then rename. + (clean): Delete those temp files. + + * Makefile.in (c-parse.c): Don't use -d, since cp-parse.output is big. + +Fri Jan 3 10:32:31 1992 Michael Tiemann (tiemann at mole.gnu.ai.mit.edu) + + * Makefile.in (cp-parse.c): Add missing -o flag. + +Fri Jan 3 08:21:04 1992 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * reg-stack.c: Complete last change (renaming DFmode_reg). + + * expmed.c (init_expmed): Pass dummy pointer to number of clobbers to + recog so it can let us see patterns that need added clobbers. + +Fri Jan 3 07:54:32 1992 Tom Wood (wood at dg-rtp.dg.com) + + * c-decl.c (implicitly_declare): Record whether this is an implicit + declaration before setting IDENTIFIER_IMPLICIT_DECL. + +Thu Jan 2 21:17:12 1992 Michael Meissner (meissner at osf.org) + + * mips.c (compute_frame_size): Don't count FP registers twice. + +Thu Jan 2 14:59:55 1992 Michael Tiemann (tiemann at hal) + + * cp-lex.h: Renamed from cp-parse.h. Now cp-parse.h is the file + created by bison from cp-parse.y. + * Makefile.in: reflect this naming change. + +Thu Jan 2 12:37:32 1992 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * objc-actions.c (build_obj_method_call): Typo in NEXT case. + + * next.h (HAVE_ATEXIT): Defined. + + * c-decl.c (duplicate_decls): + No error if override decl that has DECL_BUILT_IN_NONANSI. + + * Makefile.in (c-parse.c): Don't use -o, since cp-parse.output is big. + + * Makefile.in (protoize, PROTOIZE): Delee these 2 new targets; + `protoize' was redundant. + + * c-typeck.c (build_function_call): If the fn is volatile, + make a pointer-to-volatile-function type pointer. + * calls.c (expand_call): Handle calls to such pointers as volatile. + + * expmed.c (init_expmed): Pass all 3 args to `recog'. + + * varasm.c (output_constant): For REAL_TYPE, mode_for_size arg is bits. + + * sparc.md (storing SF into mem at symb addr): Fix typos. + + * protoize.c (my_access, my_stat, my_execvp, my_link, my_unlink): + (my_open, my_chmod): Macros that run access, stat,... with casts. + Renamed from former POSIX-only macros and made unconditional. + All calls to these functions also renamed. + + * m68k.h (LEGITIMATE_PIC_OPERAND_P): Undo change below, + thus making the behavior really change to accept all CONST_DOUBLE. + + * libgcc1.c, libgcc2.c: Renamed from gnulib1.c, gnulib2.c. + * gcc.c (link_command_spec): Link with libgcc.a. + * Makefile.in (libgcc): Rename targets and variables from gnulib. + * *.h, t-*, x-*: Rename refs to those symbols and files. + * expr.c (LIBGCC_NEEDS_DOUBLE): Renamed from GNULIB_... + + * m68k.c (symbolic_operand): Reject all CONST_DOUBLE. + * m68k.h (SELECT_RTX_SECTION): Use LEGITIMATE_PIC_OPERAND_P. + (LEGITIMATE_PIC_OPERAND_P): Reject the CONST_DOUBLEs + that symbolic_operand used to accept. + +Thu Jan 2 21:06:13 1992 James Van Artsdalen (james at bigtex.cactus.org) + + * protoize.c (is_id_char,free_def_dec,check_aux_info): + Don't declare them `inline'. + (save_def_or_dec,munge_compile_params,find_extern_def,check_source, + scan_for_missed_items): Use alloca instead of variable length arrays. + + * Makefile.in (protoize,unprotoize): Get $(LIBS) for alloca. + +Thu Jan 2 21:40:52 1992 Jeffrey A Law (law at b115.super.org) + + * sparc.h (OPTIMIZATION_OPTIONS): Enable caller-saves for -O2 + and higher optimization levels. + +Thu Jan 2 06:46:56 1992 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * final.c (final_scan_insn): Compare debug_info_level with entries in + its enum, not with integers. + + * reg-stack.c ({SF,DF}mode_reg): Deleted. + (FP_mode_reg): New array, indexed by register and by mode. + (reg_to_stack): Replace initialization of old vars with initialization + of FP_mode_reg. + (replace_reg): Use new array. + + * romp.c, romp.h, romp.md: Rename symbolic_operand to + romp_symbolic_operand. + + * emit-rtl.c (init_emit_once): Create virtual registers before the + structure value regsisters, since the latter might use the former. + + * varasm.c (output_constant): Fix typo: missing arg to expand_expr. + + * vax.md (call_pop, call_pop_value): Use correct register number for + stack pointer. Add new patterns for case of zero args. + +Thu Jan 2 08:12:59 1992 Fred Fish (fnf at sunfish) + + * x-amix: Minor changes to some comments. + * x-amix (CCLIBFLAGS, GNULIB2_CFLAGS, XCFLAGS): Remove definitions. + * x-amix (manext): Add definition. + +Thu Jan 2 11:14:28 1991 Ken Raeburn (Raeburn@Cygnus.COM) + + * fold-const.c (fold, case PLUS_EXPR): If association permits + reduction to var+0, convert var to the desired type before returning + it. + +Wed Jan 1 10:37:50 1992 Michael Tiemann (tiemann at cygnus.com) + + * expr.c (convert_move): When GET_MODE_BITSIZE (TO_MODE) > + BITS_PER_WORD, check that it's also > GET_MODE_BITSIZE (FROM_MODE). + + * expr.c (expand_expr): In CONSTRUCTOR case, preserve + MEM_IN_STRUCT_P when creating a new target when TARGET and EXP might + not be independent. + +Wed Jan 1 18:32:03 1992 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * c-parse.y (parmlist_1): Accept `PARMS; PARMS'. + (parmlist_or_identifiers_1): Likewise. Also use plain parmlist_2. + Delete the ([names] decls) syntax. + (defn_parms, defn_parmlist_2): Deleted. + * c-decl.c (get_parm_info): Put parm decls into original order. + Don't nreverse the original decls list. + (pushdecl, duplicate_decls): Avoid error for forward parm decl. + (clear_parm_order): New function. + (push_parm_decl): Record original order of parms. + + * c-decl.c (struct binding_level): New slot subblocks_tag_transparent. + (pushlevel): Use that, not ->parm_flag. + (start_function): Set that slot. + + * config.sub: Always distinguish between amix and sysv4. + Convert commodore to cbm and digital to dec. + + * m68k.md (stack adjust then push SI): New peephole. + + * m68k.h, fx80.h (WCHAR_TYPE): Use precisely "long int". + * sun3.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Undef before defining. + + * cexp.y (yylex): Use LONG_TYPE_SIZE, not INT_TYPE_SIZE. + (LONG_TYPE_SIZE): Add default definition. + + * objc-actions.c: Declare index and rindex. + (build_module_descriptor): Simplify last change. + Use a fixed name for the initialization function. + (init_objc): Don't do constructor here. + (finish_objc): Do it here, with proper name if not NEXT_OBJC_RUNTIME. + + * protoize.c: Unprotoized. + (edit_file): Improve message in -n case. + + * Makefile.in (LANGUAGES): Add proto. + (C, C++, OBJC, OBJECTIVE-C): Aliases for l.c. targets. + (PROTOIZE, protoize, PROTO): Aliases for proto. + (rest.encap): Delete dep `proto'. + +Wed Jan 1 15:07:41 1992 Michael Meissner (meissner at osf.org) + + * mips.md (extend*): Use gen_lowpart to make the SUBREG, rather than + doing it wrong by hand. If not optimizing, make sign extends from + memory not force the operand into a register first and do two + shifts -- combine already does this when optimizing. + (copyright): Add 1992 to list of years the file was modified. + +Wed Jan 1 06:10:01 1992 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * reload1.c (reload): When forcing an illegitimate constant into + memory, use mode of SET_DEST in case constant is VOIDmode. + + * stmt.c (expand_end_case): Pass index type to emit_case_nodes instead + of unsigned flag. + (node_has_{low,high}_bound): Accept INDEX_TYPE as an argument and see + if the a node value is at the limit of values of the type. + (node_is_bounded): Accept INDEX_TYPE and pass to above functions; + always call them. + (emit_case_nodes): Accept INDEX_TYPE instead of UNSIGNEDP as arg; + pass index type to recursive calls and to calls to bound checking + functions. + + * varasm.c (assemble_integer_zero): Deleted. + (assemble_integer, assemble_real): New functions. + (output_constant_pool, output_constant): Use new functions. + * final.c (end_final, profile_function): Likewise. + + * calls.c (calls_alloca): Don't interpret operands that are RTL as if + they were trees; check args of nested CALL_EXPR for alloca calls. + +Wed Jan 1 16:51:30 1992 Fred Fish (fnf at fishpond) + + * Makefile.in (manext): Include the '.' character. + (mandir): Don't use manext. + (install-man, uninstall): Change uses of manext. + +Wed Jan 1 21:31:01 1992 Ron Guilmette (rfg at ncd.com) + + * i860.md (cmpeqsi, cmpltsi, cmpgtsi): Made control flow more obvious. + (cmpnesi, cmplesi, cmpgesi): New patterns. + (cmpgeusi, cmpleusi): Fixed bug in compares against zero. + +Tue Dec 31 11:16:37 EST 1991 Dennis P. Glatting (...!uunet!tti!dennisg) + + * objc-actions.c (build_module_descriptor): Emit a constructor + function. Constructor function calls a ObjC run-time routine passing + a pointer to the module's module structure. + (init_objc): Call different constructor function if not Next. + (build_selector_translation_table): Don't give a selector global scope. + Changed in construction of decl_specs. + +Tue Dec 31 18:06:23 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * genrecog.c (add_to_sequence): Clear PREDS for "const_int_operand". + (same_modes): Properly check when we should ignore a mode test. + + * reload1.c (emit_reload_insns): Only change spill_reg_store for + output reloads. + Clear spill_reg_store when we did an input reload to a spill register. + (delete_output_reload): Use single_set. + (count_occurrences): Don't count use which is SET_DEST. + +Tue Dec 31 16:51:37 1991 Michael Meissner (meissner at osf.org) + + * mips.h (MIPS_VERSION): Change Meissner version # to 6. + (ASM_FINAL_SPEC): Don't pass -d and friends to mips-tfile. + (CONSTANT_ALIGNMENT): Align constructors on word boundaries. + + * mips.md (extend*): Replace sign extension insns with a + define_expand that converts the expansion into the appropriate + shifts. Add insns that do sign extension from memory, which the + optimizer will utilitize if the thing being sign extended really + comes from memory. This allows the shifts to compete for CSE, at a + potential cost of generating worse code if reload spills a HI or QI + register to the stack. + (sne define_split): Instead of using a constant 0 as the second + argument to the slti instruction, use a hard coded regisiter 0. + + * mips-sysv.h (MD_STARTFILE_PREFIX): Define to point into the + directory where the MIPS compilers live. + (LIB_SPEC): Add crtn.o after all libs. + (STARTFILE_SPEC): Use crt1.o, not crtn.o. + (MACHINE_TYPE): Correct typo, this is System V, not BSD. + Changes are from Ron Guilmette (rfg at ncd.com). + + * configure (mips-*-sysv): Correctly use mips-sysv.h instead of + mips.h. Change is from Ron Guilmette. + +Tue Dec 31 16:51:37 1991 Michael Stump (mrs at charlie.secs.csun.edu) + + * t-decrose, t-decstatn, t-encrose, t-i386rose, t-mips: Remove + collect2 from EXTRA_PASSES, as collect2 does not need installing as + collect2. Also, change the symlink back to a hard link. + + * Makefile.in: Add collect2 to STAGESTUFF as it is something that + needs removing or moving to stagen, but it should not be installed. + +Tue Dec 31 15:47:50 1991 Michael Tiemann (tiemann at hal) + + * combine.c (simplify_comparison): Swap evaluation of OP0 and OP1 so + the lattern can use the result of the former. + + * conditions.h: In comments, refer to `tm.h', since `tm-' is no + longer the form used for these files. + +Tue Dec 31 11:45:26 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * cp-lex.c (lineno, finput): Decls deleted. + + * global-alloc.c (find_reg): New arg RETRYING. + (retry_global_alloc, global_alloc): Pass that arg. + + * Makefile.in (*protoize, *protoize.o): Compile with CC. + * protoize.c: Include config.h, not tconfig.h. + Always define _POSIX_SOURCE. + + * convex*.h (CPP_SPEC): !ansi controls _POSIX_SOURCE, _CONVEX_SOURCE. + * conv1*.h, conv2*.h: Files deleted. + + * m68k.h, fx80.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Defined. + +Tue Dec 31 08:08:32 1991 Tom Wood (wood at dg-rtp.dg.com) + + * cexp.y (yylex): Record the parsed characters when dealing with + multibyte characters. + +Mon Dec 30 17:13:30 1991 James Van Artsdalen (james at bigtex.cactus.org) + + * i386.md (mulhi3,mulsi3): If a multiply by constant 128, use the + two operand multiply instead of three operand form: the AT&T + assemblers generate incorrect object code for the latter. + +Mon Dec 30 17:39:36 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * jump.c (jump_optimize): Complete last change: use expand_and result. + + * reload1.c (emit_reload_insns): Check if reload_in needs a secondary + reload if we have an in-out reload, since it might have been the + output the needed the secondary reload. + + * cse.c (simplify_unary_operation): Mode of integer CONST_DOUBLE is + VOIDmode, not DImode. + + * fold-const.c (fold, case COND_EXPR): Make an ABS_EXPR when the + comparison is LE_EXPR or LT_EXPR. + + * calls.c (calls_alloca): New function. + (expand_call): Preexpand any argument that contains a call to alloca + if this call will use the stack. + + * rs6000.h (DATA_SECTION_OP): Make result a string to avoid compilation + error. + + * rs6000.h, sparc.h, sun2o4.h, sun3.h (WCHAR_TYPE_SIZE): Fix + incorrect definition. + +Mon Dec 30 16:10:46 1991 Michael Meissner (meissner at osf.org) + + * mips.h (CC1_SPEC): Complete change deleting -mnogpopt and -mngpopt + in favor of -mno-gpopt. + +Mon Dec 30 11:32:05 1991 Michael Tiemann (tiemann at cygnus.com) + + * cp-class.c (build_vtable): If we're doing #pragma interface + and the interface is known, set TREE_PUBLIC, regardless of + TREE_EXTERNAL settings. + + * cp-decl.c (make_temporary_for_reference): Don't call + `convert_pointer_to', since the type may not be an aggr type. + + * cp-decl.c (finish_decl): Now takes 4th arg NEED_POP. + All callers changed. + + * cp-class.c (permanent_obstack): Declare it. + (add_method): push and pop obstacks before changing out of/into + temporary allocation. + * cp-decl.c (implicitly_declare): Add + push_obstacks_nochange/pop_obstacks around changes out of/into + temporary allocation. + (shadow_tag,xref_tag,start_decl,finish_decl): Ditto. + * cp-decl2.c (grokfield,get_temp_name): Ditto. + * cp-except.c ({ansi_}lookup_exception_object): Ditto. + * cp-lex.c (get_time_identifier): Ditto. + * cp-tree.c (build_exception_variant): Ditto. + * cp-typeck.c (mark_addressable): Ditto. + + * cp-decl.c (grokdeclarator,maybe_build_cleanup): Delete calls to + preserve allocation status. Now handled by callers. + +Mon Dec 30 01:44:21 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * c-lex.c (yyprint): Function moved here. + * c-parse.y, objc-parse.y: Moved from here. + + * Makefile.in (c-parse.c, objc-parse.c, cp-tab.c, cexp.c): + cd to srcdir to run Bison. + + * c-lex.c (check_newline): Get rid of #ident pedantic warning. + * cccp.c (do_ident): Put it here. + Don't warn if in system header file. + + * cccp.c (main, finclude): Warn if file ends in backslash-newline. + + * next.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): New definitions. + + * global-alloc.c (find_reg): Kick out local regs if that helps. + (global_alloc): Set up vars local_regs_live_length, local_regs_n_refs. + + * protoize.c (do_processing): Fix setting syscalls_absolute_filename. + + * configure (m68k-*-sysv4*, m68k-*-amix*): New alternatives. + * config.sub (*-commodore): Default OS to Amigados. + (-amix*): Allow this as input. + (amiga): New abbreviation. + + * sparc.c (output_function_epilogue): Skip unimp differently in leaf. + Use jmp insn rather than separate add. + (output_return): Skip unimp here too. + * sparc.md (return "peepholes"). Handle skipping the unimp. + + * fold-const.c (fold, optimizing 2*EXPR): Use save_expr. + + * varasm.c (make_decl_rtl): Permit initializer for local explicit reg. + + * c-decl.c (kept_level_p): Changed to also return TRUE for binding + levels which contain only tagged type declarations. + + * calls.c (expand_call): Cleaned up prev change. + +Mon Dec 30 11:29:47 1991 Michael Tiemann (tiemann at mole.gnu.ai.mit.edu) + + * cp-lex.c (real_yylex): Call REAL_VALUE_TRUNCATE with 2 args. + + * calls.c (expand_call): Handle allocating ARGBLOCK in the case + that ACCUMULATE_OUTGOING_ARGS is not defined. + +Mon Dec 30 10:27:11 1991 James Van Artsdalen (james at bigtex.cactus.org) + + * protoize.c: fix typo in <sys/wait.h> inclusion. + +Mon Dec 30 06:16:16 1991 Leonard Norrgard (vinsci at nic.funet.fi) + + * c-decl.c (grokdeclarator): Changed erroneus error message. + +Sun Dec 29 16:16:55 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * toplev.c (main): Last -On option wins. + * Makefile.in (ENQUIRE_CFLAGS): Add -O0. + + * Makefile.in (cp-tab.c): Change "expect" message. + + * final.c (leaf_renumber_regs): Renumber just the PATTERN. + +Sun Dec 29 14:20:15 1991 Per Bothner (bothner at cygnus.com) + + * dbxout.c (dbxout_type): Tiemann's DECL_IGNORED_P optimization (Nov + 20) was a little too drastic: If it succeded, no type info was + emitted at all, which made for syntactically invalid stabs. + Instead, just set 'full=0', + * dbxout.c (dbxout_symbol): Re-write code for TYPE_DECL to be a + little cleaner. It *seems* to work ... + +Sun Dec 29 07:04:22 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * expr.c (convert_move): Add truncates from DImode to smaller modes. + (move_by_pieces, move_by_pieces_ninsns): Rework to remove explicit + references to integer modes. + Never need to align greater than BIGGEST_ALIGNMENT. + + * optabs.c (init_extends, init_fixtab, init_floattab, init_optabs): + Add TImode operations. + + * reload.c (find_reloads): Prefer alternatives that reload SCRATCH + instead of something else. + + * rs6000.md (movti): Adjust constraints and alternative order so + we actually get to use the stsi insn. + + * rs6000.h (REG_ALLOC_ORDER): Put r9 in front of r11 so we don't try to + put a TImode value in r11 as often. + + * caller-save.c (setup_save_areas): New parameter pchanged; set when + memory is allocated. + * reload1.c (reload): Pass pointer to something_changed to + setup_save_areas. + + * loop.c (scan_loop): Don't suppress moving insns that can trap just + because we have passed a call inside a libcall/retval block. + + * jump.c (get_label_before): Don't separate a CALL_INSN from any USE + insns immediately preceeding it. + (get_label_after): Likewise, for following CLOBBERs. + + * cse.c (fold_rtx, case '<'): When seeing if we have seen this + comparison before, use a constant equivalence. + Add test for things like "(a | 1) != 0". + (fold_rtx, case '2'): Move code to handle associative operations to + here; add support for MINUS, SMAX, SMIN, UMAX, and UMIN. + (record_jump_equiv): See if OP1 is equivalent to a constant. + + * jump.c (jump_optimize): Don't pass a SUBREG as a target to + expand_and. + + * combine.c (subst): Never associate floating-point, even if not IEEE. + Associate MAX and MIN operations. + + * output.h (output_asm_insn, asm_fprintf): Add "extern" to decls. + (alter_subreg): Add declaration. + * rs6000.md (movsf, movdf): Don't declare alter_subreg here. + (trunc_call_rtl): Don't declare trunc_used; use rs6000_trunc_used. + * rs6000.c (rs6000_trunc_used): New name of trunc_used. + * rs6000.h (rs6000_trunc_used): Add declaration. + +Sat Dec 28 18:14:21 1991 Michael Tiemann (tiemann at cygnus.com) + + * cp-method.c (build_overload_name): Don't call OB_FINISH unless END + is nonzero. + +Sat Dec 28 17:46:05 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) + + * gcc.c (default_compilers): Handle -ansi in the C++ entries + exactly the same way as the C entries do. + + * rtl.c (add_dependence): Cast enums to int before doing an + ordered comparison, since some compilers can't do this. + + * sparc.c (pic_address_needs_scratch): New function. Returns + true if the pic address X needs a scratch register when loaded. + (legitimize_pic_address): Clean up. New argument SCRATCH, which + is a scratch register for those loads that need it. + (emit_move_sequence): New argument SCRATCH_REG, which is a scratch + register for those loads that need it. When loading a pic label, + set %o7 instead of clobbering it so its value can be used later. + (compute_frame_size): Leaf functions need to allocate space for + register window in frame if size greater than 0. + (print_operand): Delete obsolete %^ which added %o7 to addresses. + All uses of %o7 are now explicit. + * sparc.h: Fix callers of legitimize_pic_address. + (REG_CLASS_FROM_LETTER): Add 'r' case. + (SECONDARY_INPUT_RELOAD_CLASS): New macro, to force reload to + allocate a scratch register for certain pic address reloads. + (flag_pic): Define as extern so that it will be defined for + insn-emit.c. + * sparc.md: Fix all callers of legitimize_pic_address and + emit_move_sequence. + (reload_insi): New pattern. Used to force reload to allocate a + scratch register for those pic address loads that need one. + (reload_insi+2): When loading pic label, set %o7 instead of + clobbering it. + (movdf, movsf): Reject matches that would require reloading via + use of a condition. + (tablejump): Now a define_expand, so can generate different + pattern when pic. + (pic_tablejump): Explicitly mention in rtl that %o7 is used, + instead of using %^. + + * m88k.h, sparc.h: Delete references to non-existent + BLOCK_PROFILER_USED_REG_P macro. + +Sat Dec 28 14:31:36 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * c-lex.c (check_newline): Set ignore_escape_flag for reading filename. + (yylex): Handle ignore_escape_flag in string constant. + + * gnulib2.c (__do_global_dtors): Count elements properly. + + * m68k.md (tsthi): Don't allow address register. + +Sat Dec 28 11:49:06 1991 James Van Artsdalen (james at bigtex.cactus.org) + + * final.c (final): Initialize elements of line_note_exists. + + * protoize.c: Don't include <sys/wait.h> on USG unless SVR4. + +Sat Dec 28 11:09:36 1991 Fred Fish (fnf at fishpond) + + * Makefile.in (includes): Pre-remove the tmp dir; fix INSTALLED_H ref. + +Sat Dec 28 06:31:16 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * sparc.md (movstrsi): Fix typo testing for more than 32 subunits. + + * genrecog.c: Major rework. + We now check to see if pairs of comparison nodes can have anything + that they both match. If not, they can be reordered. An efficient + ordering is established that groups all nodes with identical rtl + codes inside groups with identical modes. This allows us to generate + a comparison tree that is a list of nested switch statements. + Also, genrecog.c is now indented properly so that debugging is eased. + (add_to_sequence): Enforce mode on the first arg of COMPARE, comparison + operation, SIGN_EXTEND, and ZERO_EXTEND. + + * a29k.h, romp.h, rs6000.h (PREDICATE_CODES): Add definition. + +Fri Dec 27 17:31:48 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * a29k.h, decrose.h, encrose.h, m88kdgux.h (WCHAR_TYPE_SIZE): + Add definition. + * rs6000.h, sparc.h, sun2o4.h, sun3.h, svr3.h, svr4.h: Likewise. + + * expmed.c (expand_mult): For negative values, try multiplication by + the original value as well as by negated value. + +Fri Dec 27 20:54:59 1991 Fred Fish (fnf at fishpond) + + * m68kv4.h: Include m68ksgs.h rather than m68k.h. + + * m68kv4.h: Define TARGET_DEFAULT to be 68020 + 68881. + (CPP_SPEC): Define based on TARGET_DEFAULT + + * m68kv4.h (PCC_STATIC_STRUCT_RETURN): Undef this. + (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Defs deleted. + (ASCII_DATA_ASM_OP, ASM_OUTPUT_ASCII): Defs deleted. + + * m68kv4.h (ASM_OUTPUT_SKIP, FUNCTION_VALUE_REGNO_P): + (FUNCTION_PROFILER, STRUCT_VALUE_REGNUM, BSS_ASM_OP): + (FUNCTION_VALUE, FUNCTION_EXTRA_EPILOGUE, LIBCALL_VALUE): + (STACK_BOUNDARY, EMPTY_FIELD_BOUNDARY, BIGGEST_ALIGNMENT): + Redefined to match m68k/SVR4 conventions. + + * m68ksgs.h (ASM_OUTPUT_SKIP): Redefined to use `.space'. + (ASM_NO_SKIP_IN_TEXT): Defined. + + * amix.h, xm-amix.h, x-amix: New files. + +Fri Dec 27 20:43:11 1991 Michael Tiemann (tiemann at cygnus.com) + + * cp-tree.h (build_overload_name): Declare this function. + * cp-decl2.c, cp-method.c: Delete random `extern' declarations. + + * cp-lex.c (get_directive_line): Declare it extern. + (lineno,yychar,yylval,lastiddecl,finput): Ditto. + (ridpointers): Don't need to declare it here. + (check_newline): Handle new #pragmas. + + * cp-class.c (add_method): Add a cast in call to `obstack_base'. + +Fri Dec 27 20:22:05 1991 Michael Tiemann (tiemann at cygnus.com) + + * cp-decl.c (push_overloaded_decl): Now returns a value. + All callers changed. + + * cp-decl.c (duplicate_decls): Give better error message when user + declaration conflicts with built-in one. Also, when we decide to + keep a builtin function builtin, copy the DECL_RTL from OLDDECL to + NEWDECL. + +Fri Dec 27 17:18:15 1991 Michael Meissner (meissner at osf.org) + + * mips.h (TRAMPOLINE_TEMPLATE): Define correctly for MIPS. + (TRAMPOLINE_SIZE): Define to be 9 words. + (INITIALIZE_TRAMPOLINE): Define correctly for MIPS. + (TRANSFER_FROM_TRAMPOLINE): Define to do a mprotect of the + trampoline, so that we can jump to it. I suspect the mprotect may + fail on some MIPS based systems, because the trampoline is on the + stack, and not in the data section. + + * mips.c (mips_output_filename): Don't warn about ECOFF not + handling #line's within functions if we are using the OSF/rose + object format. + +Fri Dec 27 15:35:38 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * c-typeck.c (build_array_ref): Special warning about `register' array. + + * gnulib2.c (L_trampoline): Don't create a function here. + The definition of TRANSFER_FROM_TRAMPOLINE can do that if nec. + * m68k.h (TRANSFER_FROM_TRAMPOLINE): Make the function here. + + * fx80.*: Renamed from alliant.*. + * configure: Alternative renamed to fx80-alliant-*. + * config.sub: Corresponding changes. + + * cccp.c (traditional): No longer static. + * cexp.y (yylex): Handle full variety of character constants. + Include stdlib.h and locale.h if needed. + + * c-decl.c (shadow_tag): Change warnings to error or pedwarn. + + * gnulib2.c (__do_global_dtors): If length not given, count it. + * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Ignore length; scan till null. + (__CTOR_END__, __DTOR_END__): Declarations deleted. + + * cp-decl2.c (finish_file): Always change $ to _ + regardless of NO_DOLLAR_IN_LABEL. + +Fri Dec 27 15:04:40 1991 Tom Wood (wood at dg-rtp.dg.com) + + * svr4.h (ASM_OUTPUT_ALIGNED_COMMON): Fix typo. + + * m88k.c: Move extern decls. + (output_ascii): Use ASCII_DATA_ASM_OP. + * m88k.h (HAVE_ATEXIT): Delete. + (ASM_OUTPUT_ALIGNED_COMMON, ASM_OUTPUT_ALIGNED_LOCAL, + ASCII_DATA_ASM_OP): Override svr4.h. + (EXTRA_SECTIONS): No ctors/dtors for m88k-luna. + * m88kdgux.h (STANDARD_STARTFILE_PREFIX): No need to override svr4.h. + +Fri Dec 27 11:34:59 1991 Ken Raeburn (Raeburn@Cygnus.COM) + + * cp-pt.c (mangle_class_name_for_template): Use a local obstack + rather than fixed-size buffers. + + * cp-class.c (add_method): Case obstack_base value to desired type + when reallocating vector node. + +Fri Dec 27 09:16:50 1991 Ron Guilmette (rfg at ncd.com) + + * sort-protos: New file. + + * i386.c: Remove decls of frame_pointer_needed; include flags.h. + * i386.c (output_387_binary_op, output_float_compare): + Moved declarations of strcat to top level. + + * i860.md (cmpnesf, cmpnedf): New patterns. + * i860.md (cmplesf, cmpgesf): Corrected to allow for IEEE conformance. + +Thu Dec 26 11:20:07 1991 Michael Tiemann (tiemann at cygnus.com) + + * cp-class.c: Declare N_* variables here. + * cp-class.h: Declare N_* variables extern here. + + * cp-gc.c (build_static_gc_entry): Call `assemble_gc_entry' instead + of implementing it directly. + * varasm.c (assemble_gc_entry): New function. + + * calls.c (expand_call): Don't crash if somebody declared a void + function `const'. + + * cp-cvt.c (convert): Handle case when two equal array types are + distinct (in memory). + * tree.c (build_index_2_type): Don't set TREE_TYPE of lower bound. + (index_type_equal): New function. + + * cp-spew.c (yylex): Extend special-case ptr-to-func ((*)()) parsing + to handle (*)[] and (&)[] declarations as well. + + * cp-decl2.c (finish_file): Unconditionally call + assemble_{constructor,destructor}. Also, delete code for writing + _init and _fini sections that was #if 0'd. These actions belong in + varasm if anywhere. + + * cp-class.c (add_method): Fix handling of obstacks to correctly + extend TREE_VECs. + +Thu Dec 26 15:24:45 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * cccp.c (main): Add new option -include. Rename -i to -imacros. + * gcc.c (SWITCH_TAKES_ARG): Remove -i. + (WORD_SWITCH_TAKES_ARG): Add -include, -imacros. + * hp800.h (WORD_SWITCH_TAKES_ARG): Add all the standard alternatives. + * mips.h (SWITCH_TAKES_ARG): Remove -Y and -i. + * next.h, sparc.h (WORD_SWITCH_TAKES_ARG): Add -include, -imacros. + * sun2.h, sun3.h (WORD_SWITCH_TAKES_ARG): Copy from sparc.h. + * svr4.h (SWITCH_TAKES_ARG): Remove -i, -f. + (WORD_SWITCH_TAKES_ARG): Add -include, -imacros. + + * toplev.c (flag_gnu_linker): New variable. -fgnu-linker. + * flags.h (flag_gnu_linker): Declare it. + * varasm.c (assemble_constructor, assemble_destructor): + Handle flag_gnu_linker. + + * sparc.md (structure values): Separate unimp pattern deleted. + New pattern for combined call and unimp. `call' pattern changed. + (type): Deleted type marker, added call_no_delay_slot. + +Thu Dec 26 05:04:28 1991 James Van Artsdalen (james at bigtex.cactus.org) + + * reg-stack.c (move_for_stack_reg): If a SET_DEST is REG_UNUSED, + just pop the SET_SRC. + +Wed Dec 25 17:23:25 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * c-decl.c (init_decl_processing): Fix type of exit, _exit. + + * jump.c (cross_jump_death_matters): Move def to front, make static. + +Tue Dec 24 20:41:32 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * hard-reg-set.h (reg_names): Declare here. + * stmt.c (expand_asm_operands): Not here. + + * gcc.c (handle_braces, do_spec_1, give_switch): Clear up %*. + + * expr.c (expand_expr): Delete decl of lang_expand_expr. + + * final.c (final_scan_insn): Delete line number followed by another + line number, if numbers are effectively consecutive. + + * jump.c (jump_optimize): Set cross_jump_death_matters from cross_jump. + * reg-stack.c (reg_to_stack): Pass 2 for cross_jump to jump_optimize. + Don't set cross_jump_death_matters here. + (record_reg_life): Delete decl of call_used_reg_set. + + * c-decl.c (init_decl_processing): + Declare abort, exit, and _exit as volatile. + + * c-decl.c (implicitly_declare): Set IDENTIFIER_IMPLICIT_DECL earlier. + (pushdecl): Test that and avoid nested extern warning. + + * c-decl.c (init_decl_processing): Don't handle EXPAND_BUILTIN_VARARGS. + +Tue Dec 24 15:42:34 1991 Michael Tiemann (tiemann at cygnus.com) + + * cp-init.c (add_friends): Add missing IDENTIFIER_POINTER macro + application to strncmp argument. + + * cp-method.c (build_overload_*): Now uses SCRATCH_OBSTACK instead + of relying on fixed buffers of finite length. + (fndecl_as_string): Ditto. + All callers changed. + * cp-except.c (cplus_exception_name): Definition moved to + cp-method.c. + +Tue Dec 24 10:38:49 1991 Michael Collison (collison at osf.org) + + * ns32k.c (hard_regno_mode_ok): Define this as a function now. + Also change the way it work so that we don't allow moves between + the general registers and the floating point registers. + + * ns32k.h (HARD_REGNO_MODE_OK): Turn it into a function call. + + * ns32k.md (call_value): fix to correct a bug where the compiler thinks + the return value of a function call is in f0 instead of r0. Fix + courtesy of vince russo. + (movqi, movhi): Fix up these patterns because they could return + undefined instruction templates. Fix courtesy of vince russo. + +Tue Dec 24 10:14:20 1991 Ron Guilmette (rfg at ncd.com) + + * mips-tfile.c (main): Move nested extern decl of version_string to + file-scope. + (catch_signal): Move nested extern decl of sys_siglist to + file-scope. + + * varasm.c (assemble_variable): Handle ASM_OUTPUT_ALIGNED_COMMON. + * svr4.h (ASM_OUTPUT_ALIGNED_COMMON, ASM_OUTPUT_ALIGNED_LOCAL): New. + (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Deleted. + + * gcc.c (SWITCH_TAKES_ARG, default_compilers): Eliminated -Y* option. + (execute): Moved decls of execv and execvp to top level. + (do_spec, do_spec1, handle_braces, give_switch): Support new %* spec. + + * c-lang.c (recognize_objc_keyword): Added explicit return. + + * svr4.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): New definitions. + (ASM_SPEC, LINK_SPEC): Support more standard svr4 options. + (LIB_SPEC): Fixed to link crtend.o *after* libc.a. + + * svr4.h (CONST_SECTION_FUNCTION): Moved decl of `text_section' to + top level. + + * cexp.y (main): Add explicit return type and explicit value. + Move decl of yydebug to top level. + + * gnulib2.c (__bb_init_func): Moved decl of ___tcov_init to top level. + + * toplev.c (main): Deleted obsolete checks for -opt and -noreg. + Moved decls of environ, version_string, language string to file-scope. + Compile-time error if PREFERRED_DEBUGGING_TYPE is missing. + + * tree.c (dump_tree_statistics): Deleted decl of class_obstack. + (object_permanent_p): Added explicit return type. + +Tue Dec 24 09:29:24 1991 Charles Hannum (mycroft at hal.gnu.ai.mit.edu) + + * expr.h (lang_expand_expr): Fix typo. + +Tue Dec 24 06:52:45 1991 Michael Meissner (meissner at osf.org) + + * gnulib2.c (__main): Make sure the exit module is pulled in if we + have atexit, since that module defines constructor/destructor + variables as bss symbols rather than as references. + + * decrose.h (HAVE_ATEXIT): Define. + * encrose.h (HAVE_ATEXIT): Define. + * i386rose.h (HAVE_ATEXIT): Define. + * decstatn.h (HAVE_ATEXIT): Define. + + * gcc.texinfo (HAVE_ATEXIT): Expand documentation. + (EXIT_BODY): Document. + + * protoize.c (POSIX): Make protoize accept TARGET_POSIX as a synonym + for POSIX to make the code and documentation agree. Also, if the + user defined _POSIX_SOURCE explicitly, turn on POSIX support in + protoize. + +Tue Dec 24 00:14:38 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * calls.c (emit_call_1): Additional arg STRUCT_VALUE_SIZE. + Use as arg in call and call_value insns. + (expand_call): Record the size, to pass it. + * expr.c (emit_library_call): Pass 0 for STRUCT_VALUE_SIZE. + * sparc.md (call, call_value): Make use of new arg. + Generate an unimp instruction to use sparc calling convention. + Add nameless pattern to recognize it. + * sparc.c (output_function_epilogue): Skip the caller's unimp insn. + + * Makefile.in (INSTALLED_H): New variable. + (includes): Preserve just those specific files. + + * expr.h (lang_expand_expr): Declare it. + * expr.c: Don't declare it. + * cp-expr.c (init_cplus_expand): Set up lang_expand_expr here. + * cp-lex.c (init_lex): Call init_cplus_expand. + +Mon Dec 23 15:17:59 1991 Tom Wood (wood at dg-rtp.dg.com) + + * configure: Delete m88k-v88r32 (this is supported by m88k-svr3) + and add m88k. + * config.sub: Delete v88r as a system type. + +Mon Dec 23 19:50:48 1991 Fred Fish (fnf at fishpond) + + * 3b1.h, crds.h, hp320.h, m68k.md, m68ksgs.h, mot3300.h, news.h, + tower-as.h: Replace port oriented macros SGS_3B1, HPUX_ASM, and + SONY_ASM, with configuration oriented macros SGS_SWITCH_TABLES, + SGS_SWAP_W, SGS_CMP_ORDER, and SGS_NO_LI. + + * m68ksgs.h: New file. + + * m68k.c (print_operand_address): Change switch labels for MOTOROLA. + Don't use a `%'. Add missing `L' to some labels. + For SGS assembler, use one symbol for the offset. + +Mon Dec 23 17:03:13 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * recog.h (insn_name): New declaration. + * final.c (output_asm_insn): Don't declare insn_name here. + + * dbxout.c (dbxout_function, dbxout_begin_function): + Pass missing arg to dbxout_really_begin_function. + + * jump.c (jump_optimize): Set new var can_reach_end. + * c-decl.c, cp-decl.c (finish_function): + Merge that into current_function_returns_null. + + * config.sub (fx2800): New machine alias. + + * va-m88k.h (va_start): Test __GNUC__, not __CLASSIFY_TYPE__. + + * m88kv4.h: New version from Wood. + (CPP_PREDEFINES): Put -A options here. Remove __CLASSIFY_TYPE__. + + * cccp.c (initialize_builtins): Define __GNUC__ as 2. + + * rtl.h (read_rtx): New declaration. + + * c-lex.c: Don't include output.h. + (asm_out_file): Declare it. + (ridpointers): Allocate storage here. + + * c-lex.h (lastiddecl, token_buffer): Declare here. + (yylex, make_pointer_declarator, reinit_parse_for_function): Likewise. + * c-parse.y, objc-parse.y: Not here. + + * objc-actions.c (error_with_ivar, error_with_method): + (warn_with_method): Use count_error, not errorcount. + +Mon Dec 23 11:50:37 1991 Ron Guilmette (rfg at ncd.com) + + * sdbout.c: Fixed typo. + * stmt.c (init_stmt, init_stmt_for_function): Explict return type. + * gnulib2.c (__fixunsdfdi, __fixunssfdi): Move extern decls. + * recog.c (init_recog): Added explicit return type. + * longlong.h (count_leading_zeros): Moved decl of `__clz_tab'. + * print-rtl.c (insn_name_ptr): Make decl `extern'. + + * objc-actions.h, objc-actions.c (doing_objc_thang): Make extern. + * objc-actions.h, objc-actions.c (finish_class): Return void. + * objc-actions.c (continue_class): Added default error return value. + + * fixinc.svr4: Map assertion tests to equivalent ANSI macro tests. + + * i860.c (output_block_move): Disabled code to move by words or + halfwords until it can be made to work right. + + * i860.c (output_block_move): Moved a sequence of common + `output_asm_insn' calls out of (and before) conditionals. + + * i860.c (output_block_move): Corrected bugs in move loop. + +Mon Dec 23 15:25:01 1991 Tom Wood (wood at dg-rtp.dg.com) + + * m88kv4.h (CPP_PREDEFINES): Fix for varargs/stdarg. + (includes): Include svr4.h before m88k.h so the overrides in m88k.h + will take effect. + +Mon Dec 23 07:06:27 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * i860.c (output_delayed_branch): Call insn_extract and + constrain_operands so that `which_alternative' is set properly. + + * stor-layout.c (layout_type, case ARRAY_TYPE): Handle + TYPE_NO_FORCE_BLK similar to RECORD_TYPE. + + * encrose.h, i386rose.h, mips.h (LIBG_SPEC): Deleted; unused. + +Sun Dec 22 12:02:03 1991 James Van Artsdalen (james at bigtex.cactus.org) + + * i386.c (function_epilogue): Use correct operand for insn mode. + +Sun Dec 22 12:20:16 1991 Michael Tiemann (tiemann at cygnus.com) + + * cp-decl.c (grokdeclarator): Don't set TREE_PUBLIC for member + functions that are really declared as inline methods. + + * cp-init.c (build_virtual_init): Add missing call to + `assemble_external' when we use a virtual function table. + + * cp-decl.c (implicitly_declare): Don't allocate a decl if at the + global binding level. + + * vax.h (PRINT_OPERAND): Handle new 'R' case. + * vax.md: Change all patterns which passed a negated operand for + `rotl' to use 'R' as the negator, since rotl cannot acctually handle + negative arguments. + +Sun Dec 22 12:31:46 1991 Ron Guilmette (rfg at ncd.com) + + * i386v4.h (TARGET_VERSION): Added definition. + * i860v4.h (TARGET_VERSION): Added definition. + + * m68kv4.h: New file. + * fx2800.h: New file. + + * m88kv4.h (DWARF_DEBUGGING_INFO): Deleted redundant definition. + (It's defined already in svr4.h.) + + * m88kv4.h (CPP_PREDEFINES): Added definition. + + * m88kv4.h (CPP_SPEC, LIB_SPEC, LINK_SPEC, STARTFILE_SPEC): + Deleted redundant definitions. (These are defined in svr4.h.) + + * cccp.c (errno, sys_nerr, sys_errlist): Moved extern decls to top lev. + * function.c (round_down): Likewise. + * calls.c, c-convert.c: Delete block-level extern decls. + * c-convert.c: Include flags.h. + + * configure (i386-*-sysv*): Fixed tmake_file value. + (i860-*-sysv3*): Fixed xmake_file and tmake_file value. + (i860-alliant-*): New configuration. + + * i860.c (recog_operand, call_used_regs, insn_template, + insn_n_operands, insn_outfun, alter_subreg): Moved extern + declarations out of local contexts and put them at file-scope. + + * i860.c (zero_operand): Deleted useless function. + + * i860.c (singlemove_string): Added code to optimize moving halfword + constants. + + * i860.c (output_block_move): Don't do CC_STATUS_INIT until it is + definitely necessary & appropriate. + + * i860.c (output_block_move): Create up to 16 sequential load/store + pairs for constant length moves regardless of operand sizes (e.g. + byte, halfword, word). + + * i860.c (output_block_move): Try to generate widest kind of + sequential load/store pairs for constant length moves before trying + the less efficient (narrower) ones. + + * i860.c (output_block_move): Don't do sequential load/store pairs + for constant length moves unless the size is a multiple of the + size of the operands moved each time (i.e. word, halfword, byte). + + * i860.c (output_block_move): Re-wrote code to do inline variable + length block moves to correct fatal errors (e.g. no check for zero + or neagtive start count) and to make it more efficient (saved 1 cycle + per iteration). + + * i860.c (output_block_move): Make variable length moves with starting + alignment of 4 or 2 `#if 0' for now, until they can be fixed to work + right. Also reordered all three cases so that longer alignments are + checked for first. + +Sun Dec 22 01:25:07 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * i386v4.h: Include svr4.h just once. + + * protoize.c (fprintf, printf): Decls put in #if 0. + + * emit-rtl.c (stack_slot_list): Delete superfluous extern decl. + (emit): Abort if arg isn't recognized. + + * c-parse.y (current_declspecs, declspec_stack): Declare static. + (undeclared_variable_notice): Likewise. + (lastiddecl): Declare extern. + * objc-parse.y: Same changes as c-parse.y. + (token_buffer): Declare extern. + + * c-lex.c: Include output.h. + (check_newline): Decl of asm_out_file deleted. + + * c-lex.h (ridpointers, NORID): Declare/define here. + * c-lex.c, c-parse.y, objc-parse.y: Not here. + + * sun3.h (WORD_SWITCH_TAKES_ARG): Add `-assert'. + (LINK_SPEC): Pass -assert to linker. + + * gbl-ctors.h (__CTOR_END__, __DTOR_END__): Remove `extern'. + + * sparc.h (RTX_COSTS): Increase multiply cost to 20. + (MULSI3_LIBCALL): Use .umul. + (UMULSI3_LIBCALL): Deleted. + +Sat Dec 21 18:34:27 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * combine.c (simplify_comparison): Allow OP0 to be VOIDmode if it + is a COMPARE or a comparison operation. + + * i860.md (bte): Remove now unneeded patterns. + Correct mode mismatch errors in patterns that will now be used. + +Sat Dec 21 00:14:25 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * ns32k.h (TRAMPOLINE_TEMPLATE, TRAMPOLINE_SIZE): Dummies deleted. + (INITIALIZE_TRAMPOLINE): Likewise. #error inserted. + + * ns32k.c (print_operand_address): For invalid address, just abort. + + * Makefile.in (FIXINCLUDES): New variable. + (includes, maketest): Use that. + * x-i386v4 (FIXINCLUDES): Override here. + +Fri Dec 20 18:28:54 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * dbxout.c (dbxout_really_begin_function): New subroutine. + (dbxout_function): Use that, but only if not DBX_FUNCTION_FIRST. + (dbxout_begin_function): New function. + * varasm.c (assemble_start_function): Call dbxout_begin_function. + + * dbxout.c (dbxout_function): Implement DBX_OUTPUT_FUNCTION_END. + + * sparc.md (movstrsi): Add missing double quote. + + * gcc.c (process_command): Handle -Xlinker. + + * calls.c (expand_call): Treat vfork like setjmp. + + * c-decl.c (implicitly_declare): Use push_obstacks_nochange. + + * sparc.h (WORD_SWITCH_TAKES_ARG): Add -assert. + (LINK_SPEC): Pass -assert to linker. + + * svr4.h (ASM_OUTPUT_LOCAL): Fix typo. + +Fri Dec 20 07:52:19 1991 Michael Tiemann (tiemann at cygnus.com) + + * cp-decl2.c (lang_decode_option): Recognize more -fno-OPTION + options which need special treatment (in the turning off of the + option). + + * cp-parse.y (named_class_head_sans_basetype_either): Rule deleted. + (identifier_either): Rule deleted. + (delete): Don't call `build_x_delete'' if the type does not have a + destructor. We may still need to adjust the address passed to + `operator delete'. + + * cp-init.c (build_delete): New argument MAYBE_ADJUST. All callers + changed. Also, add #if 0/#endif around code dealing with ALIGNMENT. + It's dead code, and that's unclear otherwise. + (maybe_adjust_addr_for_delete): New function. + (build_new): Initialize special header for arrays allocated with + `operator new[]'. This is a rewrite of Ken's code. + (init_init_processing): New built-in type BI_header_type. + + * cp-init.c (build_{new,delete}): Call `build_builtin_call' for BIN, + BID. + (build_builtin_call): New function. + + * cp-decl.c (grokvardecl): Set TREE_EXTERNAL. + (grokdeclarator): Set TREE_PUBLIC for all member functions. They + are effectively global. Do the same for static members. + (start_function): Don't clear TREE_EXTERNAL in case the function + belongs to another file's implementation. Other fixes to + TREE_PUBLIC/TREE_EXTERNAL logic based on interface/implementation. + + * cp-method.c (hack_identifier): Call `assemble_external' if + necessary. + +Fri Dec 20 06:27:38 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * reload1.c (emit_reload_insns): Always record first insn emitted + for a reload, including any insns for a secondary reload. + (gen_input_reload): Correct documentation of function. + +Thu Dec 19 22:01:51 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * gnulib1.c (perform_fixdfsi): New customization macro. + + * svr4.h (SELECT_RTX_SECTION): Undef before defining. + +Thu Dec 19 16:59:12 1991 (Eric Youngdale at youngdale@v6550c.nrl.navy.mil) + + * cccp.c (hack_vms_include_specification): Make conversion of + filenames more versatile for user specified include directories. + +Thu Dec 19 17:38:18 1991 Michael Meissner (meissner at osf.org) + + * mips.h (#error's): Put tab in front of all #error's, so that + ancient pre-ANSI compilers will not complain about unknown + directives, even if the #error is #ifdef'ed out. + + * mips.md (fix_trunc*): Reorder constraints so that 'd' comes before + 'f', and put a '*' in front of 'f' constraints to keep integer in + the GP registers. + (define_splits): Add reload_completed check for all define_splits + that use subreg on the arguments to work around bug in sched.c. + + * cccp.c (lang_asm): New static variable to indicate we are + processing an assembly file and to ignore unknown directives in case + they are comments, like they are on the MIPS systems. + (main): Set lang_asm if -lang-asm switch. + (handle_directive, skip_if_group): Don't report about unknown + directives if lang_asm is set. + + * gcc.c (default_compilers array): Pass -lang-asm to cpp when + processing .S files instead of -lang-c. + +Thu Dec 19 15:06:09 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * c-decl.c (c_decode_option): Handle -fno-ident. + * c-lex.c (check_newline): Ignore #ident for -fno-ident. + + * svr4.h (ASM_OUTPUT_LOCAL): Use assemble_name. + + * mips.h: Use #error, not #include, for error messages. + + * cccp.c (warning, main): Implement -Werror. + + * i386sco.h (CPP_SPEC): Move non-fixed option here. + (CPP_PREDEFINES): From here. + + * gcc.c (do_spec_1): For %p, just pass -D options. + For %P, pass all -A options. Put in whitespace, fix typos. + + * c-parse.y (parmlist_2, defn_parmlist_2): Warn about (...). + * c-decl.c (get_parm_info): Don't warn here. + +Thu Dec 19 06:15:46 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * toplev.c (compile_file): Avoid ordered comparison of debug_info_level + since it is an enum. + + * mips.c: Include gstab.h. + + * sparc.md: Fix typo. + + * caller-save.c (save_call_clobbered_regs): Don't save regs that + die in a CALL_INSN or that are born there. + +Thu Dec 19 04:28:23 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * c-aux-info.c (gen_aux_info_record): Don't write space at line beg. + +Wed Dec 18 11:46:13 1991 Tom Wood (wood at dg-rtp.dg.com) + + * cse.c (cse_main): Use get_max_uid rather than computing it. + +Wed Dec 18 18:13:06 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * loop.c (scan_loop): Ensure replacement made by single-use code + is not modified in the life of the register being replaced. + +Wed Dec 18 15:37:52 1991 Ron Guilmette (rfg at ncd.com) + + * rtl.h (fconst2_rtx, dconst2_rtx): Added extern declarations. + + * flags.h (flag_inhibit_size_directive): Declared. + + * svr4.h (INT_ASM_OP, INIT_SECTION_ASM_OP): Moved around. + (ASCII_DATA_ASM_OP): Definition added. + (flag_inhibit_size_directive): Deleted superfluous extern decls. + + * Makefile.in: Correct number of expected shift/reduce conflicts + reported by bison for cp-parse.y. + + * sparcv4.h: New file. + + * i860.h (FUNCTION_ARG_BOUNDARY): Added definition. + (sfmode_constant_to_ulong): Added extern declaration. + + * i860.md (BTE/BTNE patterns): Changed all instances of + `(match_operand:SI 2 "zero_operand" "J")' to `(const_int 0)'. + + * i860.md (load then BTE/BTNE patterns): Added 8 new patterns, + for cond branch on EQ/NE of a zero-extended memref with small integer. + + * i860.md: 20 new patterns (involving BTE/BTNE) like existing 20 + but simplified so that the combiner will find them. + + * i860.md (sfmode_constant_to_ulong, fconst2_rtx): Removed + superfluous nested extern declarations. + +Wed Dec 18 15:39:46 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * va-i860.h (va_start for stdarg.h): Divide reg counts by 4. + + * stmt.c (emit_case_nodes): Fix typo, near testing cost_table. + + * i860.h (CUMULATIVE_ARGS): Define a named struct, then use it. + + * function.c (expand_function_start): Compute sizes in proper order. + + * svr4.h (MD_STARTFILE_PREFIX): Defined. + (STANDARD_STARTFILE_PREFIX): Deleted. + + * sparc.md (movstrsi): Disable if needs more than 32 insns. + + * expr.c (store_expr): Handle copying too-short STRING_CST. + + * gstdarg.h (_VA_LIST): Handle this like _VA_LIST_. + + * m68k.h (LOCAL_LABEL_PREFIX): Remove the `L'. + Fix uses of %L by adding `L'. + * m68k.c (print_operand_address): Fix use of %L. + * m68k.md (movhi): Fix use of %L. They were inconsistent. + +Wed Dec 18 14:59:26 1991 Michael Meissner (meissner at osf.org) + + * limits.h (whole file): Protect against inclusion. + + * t-decrose (LIMITS_H): Don't install limits.h on OSF/1. + * t-encrose (LIMITS_H): Don't install limits.h on OSF/1. + * t-i386rose (LIMITS_H): Don't install limits.h on OSF/1. + + * x-decrose (SYSTEM_INCLUDES): Don't do -I/usr/include. + * x-encrose (SYSTEM_INCLUDES): Don't do -I/usr/include. + * x-i386rose (SYSTEM_INCLUDES): Don't do -I/usr/include. + +Wed Dec 18 04:53:23 1991 Ken Raeburn (Raeburn@Cygnus.COM) + + * cp-init.c (build_new): Rewrote some of the array-handling code. + Now stores the number of elements (after stripping off all outer + ARRAY_TYPE nodes) at the start of allocated storage, just before the + pointer the user's program sees. We also store the 2s compliment + value of the pointer returned so we can distinguish when deleting a + pointer whether it was "adjusted" or not. + (expand_vec_init): Added a type conversion for cases when the + address of an array gets passed in and we want to deal with the + elements. + (build_delete): Catch a case where deletion of arrays could slip + through. + (build_vec_delete): More array-handling rewrites. Extract the + stored value and use it as the number of objects to destroy; ignore + any value supplied by the user. + + * cp-init.c (init_vfields): Now static. + + * cp-tree.h (struct lang_decl_flags): Merged "dummy" fields. + + * cp-tree.h (DECL_TEMPLATE_INSTANTIATIONS): New macro for finding a + list of instantiations already made of a template. (Only + implemented for functions currently.) + * cp-tree.def (DECL_TEMPLATE_INSTANTIATIONS): Describe it. + * cp-pt.c (instantiate_template): Maintain and make use of it. + + * cp-pt.c (tsubst, case REFERENCE_TYPE): Call build_reference_type + instead of constructing the type here. + +Wed Dec 18 03:37:46 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * c-parse.y (label_decl): Use identifiers_or_typenames. + + * c-parse.y: Support FUNCTION ([ARGNAMES] DECLS) {...}. + (defn_parmlist_2, defn_parms): New nonterminals. + (identifiers_or_typenames): New nonterminal. + (parmlist_or_identifiers_1): Changed. + * c-decl.c (combine_parm_decls): New function. + +Tue Dec 17 22:18:43 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * function.c (expand_main_function): Build SYMBOL_REF with Pmode, + not VOIDmode. + + * rs6000.h (HARD_REGNO_NREGS, CLASS_MAX_NREGS): FP regs can only hold + 64 bits, not any size FP value. + + * reload1.c (reload): Remove variable old_caller_save_needed. + Call init_save_areas and setup_save_areas instead of + allocate_save_areas and elim_save_addrs. + * caller-save.c (init_caller_save): New function, from part of + allocate_save_areas. + (setup_save_areas): New function, from rest of allocate_save_areas + and elim_save_addrs. + When scanning pseudos to find hard regs that might need caller-save, + look at all parts of multi-word registers. + + * flow.c (elim_reg_set): New variable. + (flow_analysis): Set it to contain those regs that we can eliminate. + (mark_used_regs): Don't set eliminable regs as live when they are used. + + * global-alloc.c (global_alloc): Clear preferences with eliminable + regs, in addition to clearing conflicts. + + * reload.c (find_reloads_toplev): Abort instead of making + a SUBREG of a VOIDmode constant. + + * emit-rtl.c (copy_rtx_if_shared): SCRATCH may always be shared. + +Tue Dec 17 21:06:03 1991 Michael Meissner (meissner at osf.org) + + * mips.h (MIPS_VERSION): Bump MM version number to 5. + (processor_type): New enum to hold which type of + processor to schedule for. + (mips_cpu): New global to hold processor type. + (MASK_*, TARGET_*): Rearrange target bits, add bits to select + processor type, r4000 int/long/long long sizes. + (TARGET_SWITCHES): Delete redunant no options, only leave no- + version. + (CUMULATIVE_ARGS): Make this a structure, not a pointer to a + structure. + (INIT_CUMULATIVE_ARGS): CUMULATIVE_ARGS changes. + (FUNCTION_ARG_ADVANCE): Ditto. + (FUNCTION_ARG): Ditto. + (FUNCTION_ARG_PARTIAL_NREGS): Ditto. + (RTX_COSTS): Count simple memory refs as one instruction. + (REGISTER_MOVE_COST): Define as 4, to make sure constraints are + checked. + + * mips.md (hilo type attribute): Add hilo type attribute to + separate moves to/from the hi/lo registers with other register + transfers. + (move patterns): Set hilo attribute as appropriate. + (define_function_units): Update the integer and memory functional + units to include R4000 and R6000 processors, keyed off of the + -mr[46]000 switches. Add a new functional unit for transfering + stuff between register sets. + (mov{sf,df}_xfer*): Remove these patterns, as they are no longer + needed in GCC 2.00 to move between the different register sets, + and generate insn not found messages if used. + (movsi_ulw, movsi_usw): Correct test to see if stack loads are + aligned. Use UNITS_PER_WORD-1 instead of a hard coded 3. + (move define_expands): Delete move define_expands, since they are + illegal according to the documentation, and the bug they guard + against has long ago been fixed. + + * mips.c (mips_cpu): New global to hold processor type. + (override_options): Set mips_cpu, check for 64 bit r4000 switches + if processor not a r4000. + (init_cumulative_args): CUMULATIVE_ARGS changes. + (function_arg_advance): Ditto. + (function_arg): Ditto. + (function_arg_partial_nregs): Ditto. + (mips_output_filename): Except for first .file, don't emit any other + .file if encapsulating stabs in ECOFF, just put out stabs. This + confuses gdb. + (mips_output_lineno): Don't put out .loc's if encapulating stabs in + ECOFF. + (mips_asm_file_start): Put a .set nobopt for MIPS assembler to + work around bug where the assembler goes bonkers if a branch + inside of a .set noreorder section jumps to a label outside of a + .set noreorder section. This is supposed to be fixed in 2.20 of + the assembler. + (function_epilogue): Correctly emit nops with tabs and newlines if + needed. + + * decrose.h (OBJECT_FORMAT_ROSE): Define, to tell collect to + enable OSF/rose support, rather than use nm. + + * encrose.h (OBJECT_FORMAT_ROSE): Define, to tell collect to + enable OSF/rose support, rather than use nm. + + * i386rose.h (OBJECT_FORMAT_ROSE): Define, to tell collect to + enable OSF/rose support, rather than use nm. + + * t-decrose (EXTRA_PASSES): Build collect2 instead of collect-osf, + and link it to ld. + + * t-encrose (EXTRA_PASSES): Build collect2 instead of collect-osf, + and link it to ld. + + * t-i386rose (EXTRA_PASSES): Build collect2 instead of collect-osf, + and link it to ld. + + * x-decrose (DEBUG): Delete -g, since CFLAGS already passes it. + (GCC_CFLAGS): Define POSIX so we can build protoize. + + * x-encrose (DEBUG): Delete -g, since CFLAGS already passes it. + (GCC_CFLAGS): Define POSIX so we can build protoize. + + * x-i386rose (DEBUG): Delete -g, since CFLAGS already passes it. + (GCC_CFLAGS): Define POSIX so we can build protoize. + + * t-decstatn (EXTRA_PASSES): Explicitly mention collect2. + (ld): Use $(SYMLINK) rather than just ln. + + * t-mips (EXTRA_PASSES): Explicitly mention collect2. + + * collect2.c (whole file): Rewrite file based on collect-osf, to + make it more portable. Highlights include: running ld only once if + there are no constructors; OSF/rose support; not assuming that the + linker, assembler, nm live in /bin; -v support to trace the commands + being executed and print a version number; loops instead of + recursion used to write out the tables; support for user using -r; + checking all error returns; not using the shell to start processes. + + * collect-osf.c (whole file): Deleted, merged into collect2.c. + +Tue Dec 17 15:49:06 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) + + * sched.c (schedule_insns): Don't update value of reg_live_length + when it is negative, because negative values are special. + + * sched.c (schedule_block): Make new_needs an int not an enum, since + some compilers won't accept using `|' and `&' with enums. + + * sparc.md: Don't emit nop after floating point compare; this is + no longer needed. + + From Tom Wood: + * sched.c (memrefs_conflict_p): Exchange xsize and ysize when x + and y are exchanged. + +Tue Dec 17 15:01:04 1991 Mark Eichin (eichin at cygnus.com) + + * cp-decl.c (set_nested_typename): use SET_IDENTIFIER_TYPE_VALUE, + not set_identifier_type_value, so that the binding doesn't get + unwound by leaving class scope. + +Tue Dec 17 10:57:12 1991 Tom Wood (wood at dg-rtp.dg.com) + + * toplev.c (main): Make -g0 produce no debugging information. + +Tue Dec 17 15:15:20 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * gcc.c (do_spec_1): In %P, duplicate the names with __ just in front. + + * gstab.h: Renamed from stab.h. + * collect2.c, dbxout.c, final.c, mips-tfile.c: #include changed. + * dbxout.c (N_CATCH): Define this if stab.h does not. + * Makefile.in: Depend on gstab.h where appropriate. + + * Makefile.in (STAGESTUFF): Remove collect and collect2. + + * c-parse.y (parmlist_2): Allow just `...' with no named args. + * c-decl.c (get_parm_info): Pedantic warning for that usage. + + * final.c (final_scan_insn): Don't output blocks for -g1. + + * Makefile.in (crtbegin.o, crtend.o): Use -g0. + + * function.c (expand_main_function): Do nothing if INIT_SECTION_ASM_OP. + + * varasm.c (assemble_asm): Handle ADDR_EXPR of a STRING_CST. + * stmt.c (expand_asm): Likewise. + * c-parse.y (extdef, stmt): Accept STRING_CST or ADDR_EXPR in asm. + +Tue Dec 17 15:01:11 1991 Tom Wood (wood at dg-rtp.dg.com) + + * m88k.h (INIT_SECTION_ASM_OP): Override svr[34].h. + * m88kv4.h (INIT_SECTION_ASM_OP): Override svr4.h and m88k.h. + * m88kdgux.h ({INIT,CTORS,DTORS}_SECTION_ASM_OP): Override m88k.h + except when compiling crtstuff.c. + +Mon Dec 16 21:50:42 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * stmt.c (struct case_node): Remove unused field `test_label'. + (pushcase, pushcase_range): Don't initialize it. + + * stmt.c (check_for_full_enumeration_handling): Only print warnings + if -Wswitch is specified. + (expand_end_case): Call check_for_full_enumeration_handling even if + -Wswitch is not specified. + + * expr.c (convert_move): Add missing arg to call to force_reg. + (convert_to_mode): Likewise, for protect_from_queue. + +Mon Dec 16 20:33:10 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * expr.c (expand_builtin): Check number and types of args. + + * c-parse.y (stmt, extdef): Allow constant expression inside plain asm. + + * m68k.md (movhi): Use asm_fprintf to print .set or equivalent. + * m68k.c (print_operand_address): Use %R when printing pc register. + * m68k.h (ASM_OUTPUT_INTERNAL_LABEL, ASM_GENERATE_INTERNAL_LABEL): + Use %L. + + * c-typeck.c, cp-typeck.c (c_sizeof): Give error for incomplete type. + +Mon Dec 16 11:14:28 1991 Ken Raeburn (Raeburn@Cygnus.COM) + + * cp-decl.c (init_decl_processing): Don't declare unused function + __builtin_vec_delete. + +Mon Dec 16 08:35:04 1991 Torbjorn Granlund (tege at hal.gnu.ai.mit.edu) + + * gnulib2.c (__udivmoddi4): Add comment. + +Mon Dec 16 07:47:13 1991 Michael Tiemann (tiemann at cygnus.com) + + * cp-call.c (ideal_candidate): Always set BEST before using it. + Also, call `build_component_ref_1' with 3 args everywhere, and + `build_indirect_ref' with 2 args everywhere. + +Mon Dec 16 07:17:46 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * reload.h: Add `extern' to function declarations. + (gen_input_reload): Add declaration. + * reload1.c (reload): Allocate save area if caller-saves are needed; + check for case when it becomes needed after some spill registers are + obtained. + Can now eliminate frame pointer even when caller-saves are needed. + Perform register elimination of save area and see if caller-save needs + a spill register. + If required, find a spill register and pass it to caller-save code. + (gen_input_reload): No longer static. + * Makefile.in (caller-save.o): Now includes reload.h (again). + * global-alloc.c (global_alloc): Can eliminate frame pointer even if + we have caller-saves. + * toplev.c (compile_file): Call init_caller_saves. + + * caller-save.c: Major rewrite; almost entirely new code. + Integrate caller-saving with frame pointer elimination. + Don't try to save and restore registers that cannot be directly + copied to memory (such as MQ). + Correctly place save and restore insns. + Don't restore a saved register until end of block or if it is needed. + + * cse.c (mention_regs): Now returns int to indicate that the hash code + may have changed. + For COMPARE and comparison op, ensure that any register operand has + a quantity number. + (insert_regs): Return value from mention_regs. + (rehash_using_reg): New function. + (record_jump_equiv, mention_regs): Call rehash_using_reg if an operand + of a compare is a REG whose hash code is changing. + +Mon Dec 16 07:09:21 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * function.c (expand_main_function): New subroutine. Call __main. + * c-decl.c, cp-decl.c (store_parm_decls): Use that. + * cp-decl.c (init_decl_processing): Don't declare __main. + + * objc-actions.c (init_objc): Call __objcInit as a constructor. + + * toplev.c (compile_file): Reenable SDB code #if 0'd before. + + * protoize.c (version_string): Make it extern. + * Makefile.in (protoize, unprotoize): Link with version.o. + +Sun Dec 15 23:31:47 1991 Michael Tiemann (tiemann at cygnus.com) + + * cp-tree.c (virtual_member): When recurring, don't dive into + nonexistent baseclasses. + + * cp-decl.c (grokdeclarator): Set TREE_STATIC for initialized const + arrays. + * cp-typeck.c (mark_addressable): A decl that was TREE_STATIC might + be chagned to TREE_EXTERNAL due to #pragma interface/implementation. + +Sun Dec 15 14:57:23 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * Makefile.in (SYSCALLS.c.X): Fix typo. + (INTERNAL_CFLAGS): Delete -DMERGED. + + * dbxout.c (dbxout_init): Pass proper args to ASM_OUTPUT_MAIN_*. + * newpbb.h (ASM_OUTPUT_MAIN_SOURCE_FILENAME): Add proper arguments. + + * stmt.c (emit_case_nodes): Rewrite to change induction conditions. + Handle boundedness in the bounded node itself. + Handle branching entirely at the parent level. + + * gstdarg.h: Use va-i860.h. + * va-i860.h (va_start for ANSI): Fix typo. Call __builtin_next_arg. + +Sat Dec 14 20:45:30 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * Makefile.in (USER_H): va-hp9k8.h should be va-hp800.h. + + * loop.c (invariant_p): Call-clobbered register is not invariant if + loop has calls. + (count_loop_regs_set): Count a CLOBBER as a setting of a register. + + * stmt.c: Move include of ctype.h and definition of cost variables to + front of file. + (expand_end_case): Always set use_cost_table. Check type here instead + of in estimate_case_costs. Don't suppress use of cost table when + not optimizing. + (estimate_case_costs): Now returns int. Check for any case tag + that is an unusual control character here and reject use of table + if so. Always do comparisons signed, since that's how we access the + cost table. + (balance_case_nodes): Don't check for strange control characters here. + (node_has_low_bound): Do checking if we don't have a left branch, + instead of if we do. + (node_has_{low,high}_bound): Remove spurious checks on branches. + (emit_case_nodes): Ensure operation passed to emit_cmp_insn matches + the branch we actually emit. + Fix case of a range node with no left or right branch; use of case + and default label were backward for the high test. + Remove unused variables defaulted_{left,right}. + +Sat Dec 14 16:10:11 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * protoize.c: Don't include limits.h. + Rename `pathname' to `filename' everywhere. + Clean up indentation of fprintf calls. + Use standard GNU format for file name/line in error messages. + (n_base_source_files): Renamed from base_source_files. + (convert_filename, invocation_filename, base_source_filenames): + `path' renamed to `filename'. + (syscalls_absolute_filename): Renamed from syscalls_pathname. + (find_file): Arg FILENAME no longer const. + (main): Fix getcwd error-checking logic. + (varargs_style_indicator): Delete `const'. + (savestring): Declare arg `input' const. + + * Makefile.in (protoize, protoize.o, unprotoize, unprotoize.o): + Use GCC_FOR_TARGET. + (getopt.o, getopt1.o): Likewise. + (GCC_FOR_TARGET): Delete -B./. + (GCC_CFLAGS): Add -B./. Copy ALL_CFLAGS's definition, less XCFLAGS. + + * cp-init.c (add_friends): Pass proper args to strncmp. + + * toplev.c (compile_file): Clear DECL_RTL for vars not really output. + #if 0 possibly redundant code for SDB output. + + * sys-types.h: Include gstddef.h to get size_t and wchar_t. + + * ultrix.h (CPP_PREDEFINED): Add __unix, __ultrix, __bsd4_2. + + * Makefile.in (STAGESTUFF): Add collect, collect2. + +Sat Dec 14 12:16:12 1991 Michael Tiemann (tiemann at cygnus.com) + + * cp-search.c (get_baselinks): Use obstacks right, instead of + aborting when we know we're using them wrong. + + * cp-parse.y (structsp): Fix typo in exception declaration rule. + + * cp-typeck.c (build_modify_expr_1): Recursive call to + `build_modify_expr_1' used pre-BINFO representation for + BASETYPE_PATH argument. + + * cp-decl.c (start_decl): Don't switch to temporary allocation for + decls of type REFERENCE_TYPE, as their initializers may live a long + time, too. + +Sat Dec 14 07:11:03 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * reload.c (find_reloads_toplev): If we have a SUBREG of a multi-word + constant, try to extract just the word we want. + + * global-alloc.c (global_alloc): Correct reference to ELIMINABLES. + +Fri Dec 13 15:28:38 1991 Michael Meissner (meissner at osf.org) + + * configure (mips-mips-sysv): On MIPS System V, use xm-umips.h, not + xm-mips.h. + + * gstddef.h (__PTRDIFF_TYPE__): Provide default definition in case + non-GCC 2.00 compiler is used. + (__SIZE_TYPE__): Ditto. + (__WCHAR_TYPE__): Ditto. + +Fri Dec 13 14:49:54 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * config.sub: Renamed from config.subr. + Support os -sym1. + Convert -svr3, -svr4 to -sysv3, -sysv4. + * configure: Used new name. + + * Makefile.in (includes): Preserve files from GCC already in dir. + +Fri Dec 13 11:01:12 1991 Fred Fish (fnf at fishpond) + + * att386.h: Fix unparenthesized macro arguments in + ASM_OUTPUT_ASCII macro. + + * i386v4.h: Select an assembly language syntax file and include + it. Supply missing macros from ones in i386v.h (TARGET_DEFAULT, + VALUE_REGNO, FUNCTION_VALUE_REGNO_P). + + * svr4.h: Fix misspelled variable name labelno (was labeno). + +Fri Dec 13 09:07:22 1991 Michael Tiemann (tiemann at cygnus.com) + + * cp-typeck.c (build_component_ref): Call `assemble_external' as + nec. + (build_function_call_real): Call `assemble_external' as nec. for + function calls we build. Code slightly rearranged for clarity. + * cp-call.c (build_method_call): Call `assemble_external' as nec. + +Thu Dec 12 22:03:52 1991 Eric Youngdale (youngdale at v6550c.nrl.navy.mil) + + * make-cc1.com: Change message given to user. Change c-parse_tab.* + to c-parse.* + + * config-gcc.com: Purge excess versions of version.opt. + +Thu Dec 12 20:25:20 1991 Michael Meissner (meissner at osf.org) + + * Makefile.in (BOOT_CFLAGS): Remove quotes around the argument, + since this causes a syntax error when it is later expanded. + +Thu Dec 12 17:53:55 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * config.subr: Add many new machines and some OS's. + + * va-i860.h: Rewrite from rfg. + + * toplev.c (main): Handle -dm on USG systems. + + * m68k.c (print_operand, print_operand_address): New functions. + * m68k.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS): Just call them. + + * m68k.c (S_*, D_*): Delete the #undefs at the end. + + * stmt.c (expand_return): Special case if fcn returns void. + + * objc-actions.c (build_objc_method_call): Fix typo in NeXT case. + + * expr.c (expand_builtin, BUILT_IN_ARGS_INFO): Cast init of word_ptr. + + * protoize.c: Delete the `extern "C"' for C++ compilation. + +Thu Dec 12 10:01:13 1991 Michael Meissner (meissner at osf.org) + + * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Fix off by one error in + handling the constructor list when a valid count is supplied. + + * collect2.c (write_hooks): Emit a count before the list of + constructors, to go back to the old format. + + * collect-osf.c (write_s_file): Emit a count before the list of + constructors, to go back to the old format. + + * gnulib2.c (exit): Provide default defintions as bss symbols for + all of the constructor/destructor related symbols if the macro + INIT_SECTION_ASM_OP is not defined. The second link that collect + does and/or gld will provide the right values. + + * decrose.h (HAVE_ATEXIT): Nuke macro, no longer used. + * encrose.h (HAVE_ATEXIT): Nuke macro, no longer used. + * i386rose.h (HAVE_ATEXIT): Nuke macro, no longer used. + +Thu Dec 12 07:27:05 1991 Tom Wood (wood at dg-rtp.dg.com) + + * gbl-ctors.h (__CTOR_LIST__, __DTOR_LIST__): Renamed from *_BEGIN__. + * collect-osf.c collect2.c: Rename here as well. + +Thu Dec 12 04:15:22 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * c-parse.y (stmt): Make asm alternatives allow expr. + * c-typeck.c (c_expand_asm_operands): Get the STRING_CST from the expr. + + * c-parse.y (datadecl, datadecls, lineno_datadecl): New rules. + (xdecls): Use them. + +Wed Dec 11 18:36:53 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Just one definition; use ON_EXIT. + Test for -1 and handle both kinds of table format. + * gnulib2.c (__do_global_dtors): Check for -1... + (__do_global_ctors): Dummy defn of ON_EXIT if no other defined. + (__main): Do nothing if called again. + (exit): Use EXIT_BODY if defined. + * crtstuff.c (__CTOR_LIST__, __DTOR_LIST__): + Renamed from *_BEGIN__. Add -1 as first elt. + (__CTOR_END__, __DTOR_END__): Add 0 as last elt. + (ON_EXIT): Dummy defn if no other is defined. + +Wed Dec 11 18:08:36 1991 Mark Eichin (eichin at cygnus.com) + + * cp-parse.y (template_parm): removed some reduce/reduce conflicts + by noting which of identifier or identifier_defn would actually be + passed up in this context. + +Wed Dec 11 17:52:46 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * flow.c (propagate_block): Adjust loop depth if it is changed in + notes at the end of a block. + Abort if loop depth ever reaches zero. + +Wed Dec 11 16:30:09 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * cccp.c (do_endif): Don't call record_control_macro at top level. + +Wed Dec 11 14:45:42 1991 Mark Eichin (eichin at cygnus.com) + + * cp-decl.c (set_identifier_type_value): If we're in a + class_binding_level, shadow the type there. + (xref_defn_tag): New function. Calls xref_tag with special flag set + to indicate that we know we're defining something. + (pushdecl_top_level): if class_binding_level is set, search from it + instead of only from current_binding_level when trying to find + shadowed values. This is in support of tests m5.cc through m8.cc, + which broke after the changes for m9.cc were installed. + + * cp-spew.c (do_aggr): New function. Looks ahead from AGGR to see if + we have AGGR identifier { or AGGR identifier : which are both + definitions, and passes up identifier_DEFN instead. This is in + support of test m9.cc. + (yylex): add SPEW_DEBUG case after EMPTY, so we don't have gaps in + the displayed stream. + (yylex, case AGGR): added call to do_aggr. + (debug_yychar): added call to debug_yytranslate for proper + translations. + + * cp-parse.y (debug_yytranslate): New function to support SPEW_DEBUG + translations. + (TYPENAME_DEFN): new token, TYPENAME seen by do_aggr. + (IDENTIFIER_DEFN): new token, ditto. + (PTYPENAME_DEFN): new token, ditto. + (identifier_defn): corresponds to identifier, but when the + identifier has been seen by do_aggr. + (named_class_head_sans_basetype_defn): specially recognize aggr + identifier_defn. + (named_class_head): add parallel clauses calling xref_tag_defn when + we know we're defining this aggr. + (named_class_head_sans_basetype_defn_either): for when we don't care + if it is a defn or not (such as templates) + (identifier_either): ditto. + + * cp-tree.h (xref_defn_tag): New declaration. + +Wed Dec 11 12:37:51 1991 Ken Raeburn (Raeburn@Cygnus.COM) + + * cp-parse.y (label_colon): New nonterminal, with all label prefixes + from "stmt" moved here. + (stmt): Use it. Also provide useful message for label followed by + end of block (close-brace). + + * cp-init.c (BIVN): Deleted unused variable. + * cp-decl.c (init_decl_processing): Don't declare function + __builtin_vec_new; it's never used. + +Wed Dec 11 10:59:48 1991 Michael Meissner (meissner at osf.org) + + * toplev.c (main): Complete last change from RMS, use variable + 'level' which used to be named 'arg'. + + * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Don't reference ON_EXIT for + those poor systems without atexit or on_exit. + +Wed Dec 11 09:06:52 1991 Jeffrey A. Law (law at wombat.gnu.ai.mit.edu) + + * m68k.c (output_function_prologue, output_function_epilogue): + When saving/restoring only 2 registers, do so with two "movel" + instructions instead of a single "moveml". This results in + faster code for the 68020 and later machines. + +Wed Dec 11 06:45:08 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * x-romp (MAKE): Add definition; the supplied `make' doesn't define it. + +Tue Dec 10 22:17:50 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * combine.c (try_combine): Always make a copy of I2's pattern if + it will be used in a PARALLEL (`added_sets_2' nonzero). + + * Makefile.in (BOOT_CFLAGS): New parameter. + (bootstrap*): Use it. + + * flow.c (find_basic_blocks): Set depth of last insn, not first, + into basic_block_loop_depth. + (propagate_blocks): Use consistently with new definition. + + * cse.c (cse_end_of_basic_block, cse_basic_block): Remove previous + change; it can cause loops following around branches. + + * Makefile.in (USER_H): Add va-hp9k8.h. + +Tue Dec 10 17:22:01 1991 Tom Wood (wood at dg-rtp.dg.com) + + * m88k*.h: Include svr3.h as the default. m88kv4.h and m88kdgux.h + include svr4.h. Override svr[34].h as needed. + * t-m88k, t-m88kv4: Specify EXTRA_PARTS. + + * m88k.c (uses_arg_area_p): Check current_function_varargs. + +Tue Dec 10 15:41:03 1991 Michael Meissner (meissner at osf.org) + + * osf-main.c (whole file): Delete, since the constructor stuff was + moved to gnulib2.c. + + * Makefile.in (collect2, collect2.o): Change to use the default + compiler to build collect2, instead of the newly built GCC, since + otherwise, collect2 will create a circular dependency. Also, pass + LDFLAGS when linking. + + * collect-osf.c (write_s_file): Change to the new way of doing + constructors and destructors of having an end marker instead of a + count. + + * collect.c (REAL_AS_PATH, REAL_LD_PATH, REAL_NM_PATH): New macros + to allow cross compilers to specify where the real linker, + assembler, and nm live. + (NM_FLAGS): New macro to allow a configuration to change what flags + get passed to nm. + (alloca defines): Remove alloca defines, since config.h provides + them. + (write_hooks): Change to the new way of doing constructors and + destructors of having an end marker instead of a count. Cast all + alloca calls to be the appropriate pointer type. Put both + constructors and destructors into the data section, because the MIPS + tools do not like non-instructions in the .text section. + + * decrose.h (HAVE_ATEXIT): Define, OSF/1 has atexit. + (FULL_PROTOTYPES, NO_CONST_IN_SYSCALL): Remove, no longer used. + + * encrose.h (HAVE_ATEXIT): Define, OSF/1 has atexit. + (FULL_PROTOTYPES): Remove, no longer used. + + * i386rose.h (HAVE_ATEXIT): Define, OSF/1 has atexit. + + * t-decrose (LIB2FUNCS_EXTRA): Remove, osf-main.c is no longer + needed, since constructor/destructor support moved into gnulib2.c. + + * t-encrose (LIB2FUNCS_EXTRA): Remove, osf-main.c is no longer + needed, since constructor/destructor support moved into gnulib2.c. + + * t-i386rose (LIB2FUNCS_EXTRA): Remove, osf-main.c is no longer + needed, since constructor/destructor support moved into gnulib2.c. + + * t-decstatn (CCLIBFLAGS, GNULIB2_CFLAGS): Define so that gnulib1 + and gnulib2 are both compiled with -G 0, in case the users compiles + and links this way. It also fixes a bug where the constructors and + destructors that collect2 produces are in the big data section, but + gnulib2 thinks they are in the small data section, because it only + sees a pointer. + (ld): Add -f to remove old ld link to collect2, if it exists. + + * t-mips (CCLIBFLAGS, GNULIB2_CFLAGS): Define so that gnulib1 + and gnulib2 are both compiled with -G 0, in case the users compiles + and links this way. It also fixes a bug where the constructors and + destructors that collect2 produces are in the big data section, but + gnulib2 thinks they are in the small data section, because it only + sees a pointer. + (ld): Add rule to link collect2 to ld. + (EXTRA_PASSES): Build collect2 (aka ld). + + * xm-mips.h (alloca): If not GNU C, declare alloca to be char *. + + * mips-tfile.c (add_aux_sym_tir): Move code to record bitfield size, + so that it agrees with MIPS ECOFF practice, rather than the + documentation, which affects enum bitfields. Changes from Per + Bothner. + +Tue Dec 10 14:10:10 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Get rid of __reverse_order, etc. + * gnulib2.c (__do_global_dtors): Remove & before arrays. + + * configure: Set a default value for xm_file. + Remove redundant defaulting of cpu_type. + + * svr4.h (ASM_DECLARE_FUNCTION_SIZE): Output internal label properly. + + * function.c (assign_parms): Set current_function_args_info. + * output.h: Declare that var. + * tree.h (BUILTIN_ARGS_INFO): Renamed from BUILT_IN_VARARGS. + * expr.c (expand_builtin): Implement __builtin_args_info. + * c-decl.c (init_decl_processing): Declare it. + * va-i860.h: Use it. + Also update order of elements in struct __va_ctl. + + * toplev.c (main): Eliminate -gsdb and -gdbx. + Clean up setting of use_gdb_dbx_extensions. + +Tue Dec 10 10:33:58 1991 Tom Wood (wood at gen-rtx) + + * svr4.h (ASM_DECLARE_FUNCTION_SIZE): Use an internal label. + +Tue Dec 10 07:12:28 1991 James Van Artsdalen (james@raid) + + * Makefile.in (crtbegin.o, crtend.o): crstuff.c is in $(srcdir). + +Tue Dec 10 06:56:26 1991 Michael Tiemann (tiemann at cygnus.com) + + * cp-decl.c (kept_level_p): New function, borrowed from c-decl.c. + * cp-parse.y (compstmt): Call it. + +Mon Dec 9 18:37:32 1991 Ken Raeburn (Raeburn@Cygnus.COM) + + * cp-decl.c (grok_enum_decls): Don't give warning for class-local + enum types; this is a perfectly reasonable usage. + +Mon Dec 9 12:23:48 1991 Ron Guilmette (rfg at ncd.com) + + * toplev.c (main): Check that no extra chars follow the level # + in a -gNNN option. Also check that the debugging level requested + is between 0 and 3 (inclusive). + +Mon Dec 9 20:34:48 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) + + * sched.c (schedule_block): Don't crash if `line' is zero. + (schedule_insns): Initialize line_note_head. + +Mon Dec 9 15:31:46 1991 Michael Meissner (meissner at osf.org) + + * mips-tfile.c (pseudo_ops array): Correctly size the .stabs and + .stabn elements. + + * mips.c (function_prologue, function_epilogue): Use assemble_name + to print the current function, instead of fprintf, in case there is + a leading '*'. + + * mips-news.h (CPP_PREDEFINES): Define news3700, not news7300. + + * mips.md (ashldi3_internal3): Fix typos. + (ashrdi3_internal3): Ditto. + (lshldi3_internal3): Ditto. + +Mon Dec 9 11:49:52 1991 Torbjorn Granlund (tege at hal.gnu.ai.mit.edu) + + * longlong.h (__a29k__ udiv_qrnnd): Change "q" to "1" for operand + 2 constraint. + +Mon Dec 9 11:22:58 1991 Ken Raeburn (Raeburn@Cygnus.COM) + + * cp-typeck.c (build_x_function_call): A method might have type + pointer-to-method as well. Don't build an OFFSET_REF for any + "function" that already has pointer type. Only use + DECL_CLASS_CONTEXT to find type of `this' for FUNCTION_DECLs; for + method pointer expressions, look up the basetype of the method type. + (build_unary_op): Fix comment in typo. + + * cp-tree.c: Fix typo in comment at start of file. + +Mon Dec 9 07:17:13 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * cse.c (cse_insn): When a jump is converted to unconditional, + delete the dead code, but leave the notes. + (cse_basic_block, cse_end_of_basic_block): Some unconditional jumps are + part of the basic block. + (cse_basic_block): Add missing arg to cse_end_of_basic_block call. + +Mon Dec 9 07:16:15 1991 Ron Guilmette (rfg at ncd.com) + + * sys-types.h: New file. + * sys-protos.h: New file. + * SYSCALLS.c: Just include those files. + + * protoize.c (VOLATILE): Define this symbol conditionally so that + it can be used to declare GNU `volatile' functions. + (abort): Added VOLATILE extern declaration (but not if it's a macro). + (kill, fork): Added extern declaration. + (substr): Declare c as int. + + * gbl-ctors.h: New file. + * crtstuff.c: Include gbl-ctors.h. + (INIT_SECTION_ASM_OP): Delete default definition. + Only compile .init section code if INIT_SECTION_ASM_OP is defined. + (pointer): Globally changed to `func_ptr'. + * Makefile.in (crtbegin.o, crtend.o, gnulib2): Depend on gbl-ctors.h. + * gnulib2.c: Added definition of __builtin_saveregs for i860/svr4 + and fixed up definition of __builtin_saveregs for i860/non-svr4. + (__bb_avoid_warning): Added explicit return type. + (__builtin_new, __builtin_vec_new, __builtin_delete, + __builtin_vec_delete): Use `void*' where appropriate. + (exit): Change conditional to ON_EXIT. Make dummy if no real exit. + Include gbl-ctors.h. + (__main): Change conditional to INIT_SECTION_ASM_OP. + (__do_global_ctors): Conditional on INIT_SECTION_ASM_OP. + Use DO_GLOBAL_CTORS_BODY for the guts. + Include gbl-ctors.h. + +Mon Dec 9 01:07:56 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * fixinc.svr4: Don't change #ident or assertion tests. + Don't install inline.h. + + * c-common.c (get_directive_line): Declare c as int. + + * configure: Create additional file tconfig.h. + * protoize.c: Include that, not tm.h. + * Makefile.in (protoize.o, unprotoize.o): Depend on tconfig.h. + + * svr4.h (HAVE_ATEXIT): Defined. + * gnulib2.c (_main, exit): Use HAVE_ATEXIT to control use of atexit. + + * final.c (final_scan_insn): Output first and last note in a series. + + * objc-actions.c (build_objc_method_call): + New arg LOOKUP_OBJECT. + (build_message_expr): Pass RECEIVER for LOOKUP_OBJECT. + Pass RECEIVER or self_decl as OBJECT. + + * unx386.h (PRINT_IMMED_PREFIX, PRINT_OFFSET_PREFIX): Deleted. + + * rtl.h: Undef FLOAT. + + * svr4.h (ASM_DECLARE_OBJECT_NAME, ASM_DECLARE_FUNCTION_SIZE): + Fix typo. + +Sun Dec 8 21:46:51 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * protoize.c (main): Declare `value'. + (abspath): Declare endp. Declare and set outp and inp. + + * cp-decl.c (sigsegv): Function deleted. + (init_decl_processing): Don't use it. + Also don't include signal.h. + + * t-svr4: New file. + * configure (i386-*-sysv4*, i860-*-sysv4*): Use that file. + +Sun Dec 8 12:01:36 1991 Ron Guilmette (rfg at ncd.com) + + * fixinc.svr4: New file. + + * final.c (profile_function): Specify return type. + (get_attr_length): Added a return statement to prevent warnings. + + * final.c (final_scan_insn): Switch to .text section before output + of jumptable lable (if requested by JUMP_TABLES_IN_TEXT_SECTION). + Don't switch sections again after the label. + + * configure (i386-*-sysv*): Configuration deleted. + (i386-*-sysv3, i386-*-sysv4, i860-*-sysv3, i860-*-sysv4): + Added assignment to `tmake_file' (to pick up def of EXTRA_PARTS). + (i860-*-sysv3, i860-*-sysv4): Added assignment to `xmake-file'. + (i860-*-sysv3): Deleted bogus GAS related stuff. + + * combine.c (combinable_i3pat): Added explicit return type. + + * i860.h (TARGET_FPU): Deleted this target flag. i860 fpu is on chip. + (TARGET_XP): New target flag for XR and XP models. + (TARGET_FLAGS, HARD_REGNO_MODE_OK): Adjusted for above changes. + (REG_ALLOC_ORDER): Use first the regs less likely for other purposes. + (LITERAL_COMPARE_BETTER_UNSIGNED): Defined. + (BRANCH_COST): Defined. + (CC_ONLY_*): Deleted these obsolete defines. + (CC_NEGATED): Added for IEEE behavior with cmpgesf and cmplesf. + (ASM_OUTPUT_CASE_LABEL): + Added .align so assembler doesn't barf on subsequent .long(s). + (FLOAT_TYPE_VALUE, INTIFY, FLOATIFY, FLOAT_ARG_TYPE): + Added definitions needed to build a useable gnulib1 library. + + * i860.md: Removed all references to CC_ONLY_* symbols. + (cmpledf, cmpgedf): Adjusted assembler code as suggested + by i860 manuals, for IEEE results. + (cbranch, flipped_cbranch, inverse_cbranch, flipped_inverse_cbranch): + Check for CC_NEGATED. + (bte, btne patterns): Complete rewrite. + (anonymous sign-extend patterns): Moved before the named patterns. + + * i860.md (addsi3, subsi3): Disparaged alternatives with a floating- + pointer input register to avoid complicated reloading problem. + (negsi2): Deleted bogus `I' constraint on operand 1. + (divdf3, divsf3): Added additional continuation characters + needed to make lines acceptable to `read_rtx' in the gen* programs. + + * i860.c: Include "flags.h" to get access to `optimize' flag. + (leaf_function_p): Added extern declaration. + (zero_operand): New function. + (must_preserve_r1, must_preserve_bytes): New variables. + (function_prologue, function_epilogue): + Support treatment of return-address reg (r1) in leaf functions. + + * i860v4.h (CPP_PREDEFINES): Add pre-assertions for i860/svr4. + (CPP_SPEC): Deleted definition. + (TYPE_OPERAND_FMT): New definition. + (ASM_OUTPUT_FUNCTION_PREFIX): #undef before defining. + (ASM_OUTPUT_EPILOGUE_SUFFIX): Deleted obsolete macro. + (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP, + TDESC_SECTION_ASM_OP, EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS, + TDESC_SECTION_FUNCTION): Definitions added. + + * i860v3.h: Complete rewrite. Uses svr3.h. + + * i386v4.h: Don't include i386v.h. Include i386.h instead. + (SDB_DEBUGGING_INFO): #undef deleted. + (ASM_OUTPUT_DWARF_STRING): Added definition. + + * gcc.c (default_compilers): Pass -g* options to cpp. + + * gcc.c (do_spec_1): Don't duplicate -A options in CPP_PREDEFINES. + + * gnulib2.c (exit, __main, __do_global_dtors, __do_global_ctors): + New functions. + + * i386.h (PRINT_IMMED_PREFIX, PRINT_OFFSET_PREFIX): + Define here, and use IP. + + * i386.h: Don't include syms.h or define FILNMLEN. + + * x-i860v3, x-i860v4: New files. + * x-i386v4 (CCLIBFLAGS, GCC_CFLAGS): Added definitions. + + * xm-svr3.h: New file. + * xm-i86v3.h, xm-i86v4.h, xm-i386v.h: Rewritten. + * xm-i38v4.h: New file. + + * svr4.h (LIB_SPEC): Make crtend.o come before any *crtn.o + file (to avoid hitting return without standard epilogue in .init code). + (INIT_SECTION_ASM_OP): Added definition for crtstuff.c (and friends). + (CTORS_SECTION_FUNCTION, DTORS_SECTION_FUNCTION): + Adjusted indentation of continuations to match those in rest of file. + + * svr3.h (CPP_PREDEFINES): Don't define this here. + (ASM_FILE_START_1): Provide no-op default definition. + (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Undef these before defining. + (INT_ASM_OP, USE_CONST_SECTION, INIT_SECTION_ASM_OP, + CONST_SECTION_ASM_OP, CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP, + EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS, READONLY_DATA_SECTION, + CONST_SECTION_FUNCTION, CTORS_SECTION_FUNCTION, DTORS_SECTION_FUNCTION, + ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR, SELECT_SECTION, + SELECT_RTX_SECTION): Definitions added. + +Sun Dec 8 15:27:56 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * next.c (handle_pragma): Use get_directive_line. + + * gnulib2.c (__do_global_dtors, __do_global_ctors): + Remove the feature to control the order of execution. + This is not a clean solution to the overall problem. + +Sun Dec 8 14:47:44 1991 Michael Meissner (meissner at osf.org) + + * mips-tfile.c (toplevel, add_local_symbol, parse_stabs_common): + More changes for smuggling stabs through from meissner@osf.org and + bothner@cygnus.com. + + * mips.h (ignore_line_number): New global, set when we must avoid + putting out a MIPS ECOFF .loc because the file changed inside of a + function, and we are also putting out stabs, which can handle this. + (ASM_STABS_OP, ASM_STABN_OP, ASM_STABD_OP): Define to put a comment + in front of the pseudo op, if we are encapsulating stabs in MIPS + ECOFF. + (ASM_OUTPUT_SOURCE_FILENAME): Change to call mips_output_filename. + (ASM_OUTPUT_SOURCE_LINE): change to call mips_output_lineno. + + * mips.c (toplevel): Include stab.h for encapsulating stabs. + (ignore_line_number): New global variable. + (reg_or_0_operand): Call register_operand for REG's as well as + SUBREG's. + (override_option): Don't allow ints in FP registers unless -mdebugh. + (mips_output_filename): New function to write the filename to the + assembler output. Add special support for encapsulating .stabs in + MIPS ECOFF. + (mips_output_lineno): New function to write the line number to the + assembler output. Add special support for encapsulating .stabs in + MIPS ECOFF. + (function_epilogue): Clear ignore_line_number. + + * mips.md (fix_trunc??si_opt, mov??_internal): Change '!' constraint + back to '*'. + +Sat Dec 7 16:58:57 1991 Ken Raeburn (Raeburn@Cygnus.COM) + + * cp-spew.c (scan_tokens): Stop scanning at semi-colon. + + * cp-spew.c: Made SPEW_DEBUG code useable: + (yylex): Use stderr in SPEW_DEBUG code. + (yytags): Deleted table. + (debug_yychar): Print to stderr, and don't try finding translations + for values over 256. + + * cp-class.c (push_lang_context): Fix typo in comment. + + * cp-decl.c (finish_decl): Undo `pushclass' done in start_decl for + top-level decls of methods. + + * cp-lex.c (restore_pending_input): Cast 0 to pointer type for + obstack_free. + + * cp-pt.c (do_pending_expansions): Use TREE_USED instead of + TREE_ADDRESSABLE for functions. Put in comments explaining why we + compile unused methods of classes that are interface-unknown: the + file initializer/cleanup functions might need them. + (mumblefrotz): Delete unused function; this code is in cp-parse.y. + +Sat Dec 7 15:46:55 1991 Timothy Moore (moore@cs.utah.edu) + + * function.c: Handle ARGS_GROW_DOWNWARD. + (pad_below, pad_to_arg_alignment, round_down): New subroutines. + (locate_and_pad_parm): Use them, for the existing case. + Also handle the ARGS_GROW_DOWNWARD case, using them. + +Sat Dec 7 15:46:55 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * tree.h (DECL_ARG_TYPE_AS_WRITTEN): New macro. + * c-decl.c (grokdeclarator): Store value there. + + * m68k.c (output_function_prologue, output_function_epilogue): + Support MOTOROLA syntax. + + * toplev.c (main): Testing for -ggdb catches -g also. + Default use_gdb_dbx_extensions to 1 for -gstabs, 0 for -gdbx. + Specified default is for -g. + + * cccp.c (handle_directive): Store start address in directive_start. + (do_xifdef): Use that, checking if at start of file. + (do_endif): Compute ep properly. + + * protoize.c (abspath): Fix errors referencing argument cwd. + (main): Allocate big enough buffer for getcwd. + Don't clobber varargs_style_indicator, copy it. + (savestring): New function. + +Sat Dec 7 00:53:16 1991 Ron Guilmette (rfg at ncd.com) + + * c-decl.c (warn_redundant_decls, warn_nested_externs): New vars. + (c_decode_option): Support -Wredundant-decls and -Wnested-externs. + (pushdecl): Print those warnings. + * c-tree.h (warn_redundant_decls, warn_nested_externs): Declared. + + * c-decl.c (pending_xref_error, c_mark_varargs): Added return type. + + * cccp.c (main): Added code to support the presence of -A (assertion) + options within CPP_PREDEFINES. + + * c-lang.c: Minor cleanups. + + * c-lex.c (check_newline): Added support for the -g3 option. + + * dwarfout.c (type_tag): Fixed bug in gcc Dwarf generation for + tagged types. + + * dwarfout.c (output_decl): Added two pre-checks to see if nodes + are ERROR_MARK nodes before using them. + + * dwarfout.c (generate_new_sfname_entry): Function added. + + * dwarfout.c (lookup_filename): Call generate_new_sfname_entry + as soon as each new source filename is added to the list of + known filenames (thus avoiding an m68k forward-ref assembler bug). + + * dwarfout.c (dwarfout_line): Initialize prev_file_entry_num to + (unsigned) -1 rather than zero to avoid bogus suppression of + first .debug_sfnames section entry. + + * dwarfout.c (compare_filename_entries): Function deleted. (It's + no longer needed.) + + * dwarfout.c (dwarfout_finish): Don't generate .debug_sfnames + section entries here anymore. (See lookup_filename.) + + * Makefile.in (realclean): Delete c-parse.h. + Delete objc-parse.output just once. + +Fri Dec 6 17:49:28 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * cse.c (FIXED_BASE_PLUS_P): The frame or argument pointer itself is + a fixed address. + (find_comparison_args): If we find something equivalent to a + fixed address, return the fixed address. + + * combine.c (try_combine): Don't access new_i2_notes if it hasn't been + defined (it isn't defined unless newi2pat != 0). + +Fri Dec 6 16:01:02 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) + + * rtl.h (enum reg_note): Define two new values REG_DEP_ANTI, + REG_DEP_OUTPUT, which are used to mark LOG_LINKS. + * rtl.c (reg_note_name): Likewise. + (add_dependence): Return void. New parameter DEP_TYPE to indicate + type of dependence. + + * sched.c: Major rewrite to delete much obsolete code, correct many + comments, delete unused variables, etc. Modify all callers of + add_dependence to pass new argument. Significant changes are: + (reassign_dependence): Deleted, was unnecessary. + (priority): Account for type of dependence when calculating + priority. + (flush_pending_lists): New function. Encapsulate code which makes + dependencies between an INSN and every insn on the + pending_read_insns and pending_write_insns lists. + (rank_for_schedule): Account for type of dependence with last + scheduled insn when deciding which ready insn to schedule next. + (launch_link): Give all birthing insns the same priority. + (schedule_block): Only sort the ready list once, after all ready + insns have been added to it. + (schedule_block): When deciding what REG_DEAD notes are needed on a + just scheduled insns, process all sets first (sched_note_set) then + process all uses (attach_deaths_insn). + (attach_deaths): Simplified by above change. + (sched_note_set): Likewise. + (update_flow_info): Renamed from update_links, since it no longer + does anything with LOG_LINKS. Sched_analyze_insn creates all + necessary new LOG_LINKS already. + (schedule_insn): Delete no op move insns after reload. + +Fri Dec 6 13:33:48 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * crtstuff.c: Give permission to link with non-free programs. + + * toplev.c (flag_inhibit_size_directive): New var and -f option. + * svr4.h (ASM_DECLARE_OBJECT_NAME, ASM_DECLARE_FUNCTION_SIZE): Use it. + * Makefile.in (crtbegin.o, crtend.o): Use that option. Use -g1. + +Fri Dec 6 08:42:53 1991 Ron Guilmette (rfg at ncd.com) + + * Makefile.in (STAGESTUFF): Added __main and _exit to support g++. + + * c-common.c (c_expand_expr_stmt): Made return type explicit. + + * c-common.c: (get_directive_line): Function added to support -g3. + +Fri Dec 6 04:50:39 1991 Michael Tiemann (tiemann at cygnus.com) + + * cp-tree.h (OPERATOR_ASSIGN_CHARS_P): Flushed. + * cp-decl.c (grok_op_properties): Flush OPERATOR_ASSIGN_CHARS_P. + * cp-init.c (add_{friend,friends}): Ditto. + +Thu Dec 5 22:31:12 1991 Jeffrey A Law (law at super.super.org) + + * m68k.h (CONST_COSTS): Show that constants which can be easily + generated are less expensive than most. + + * m68k.md (movsi): Use two instruction sequences to load constants + which are just outside moveq's range (within 8 of moveq's range). + Likewise for positive even constants within twice moveq's range. + +Thu Dec 5 20:17:13 1991 Eric Youngdale (youngdale at v6550c.nrl.navy.mil) + + * config-gcc.com: Generate a file 'version.opt' which will be given + to the VMS linker to put the gcc version number in the image + header version number field. + + * make-cc1.com: Compile c-lex.c when building gcc and objc, and + add c-lex.obj to the list of files given to the linker. + Add version.opt to the list of files given to the linker. + + * make-cccp.com: Add version.opt to the list of files given to the + linker. + +Thu Dec 5 23:04:20 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * combine.c (make_extraction): Don't make a STRICT_LOW_PART of a MEM; + clean up comments so they agree with the code. + + * combine.c (try_combine): Correct test for when we can safely change + the mode of a pseudo; can't if it doesn't die in I3. + + * c-decl.c (WCHAR_TYPE_SIZE): Deleted; never used. + * c-common.c (WCHAR_TYPE_SIZE, WCHAR_BYTES): Deleted, no longer needed. + (combine_strings): Use size of `wchar_type_node' to get number of + bytes in wchar_t. + * next.h (WCHAR_TYPE_SIZE): Delete; no longer used. + + * cse.c (cse_main): Add new argument to cse_basic_block_call. + Don't call cse_around_loop here. + (cse_basic_block): Call cse_around_loop from here while we still + have our arrays allocated. + + * combine.c (simplify_comparison): Fix error in last change; don't + reference TEM before it is set. + + * toplev.c (fatal_insn_not_found): Flush all files before aborting. + +Thu Dec 5 21:42:29 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * objc-actions.c (build_objc_method_call): Eval OBJECT and SELECTOR + only once. Always pass self_decl as self to the method. + +Thu Dec 5 14:52:16 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) + + * ccrtstuff.c, gnulib2.c, protoize.c: Include tm.h not config.h, + since these are complied for the target, host defines do not apply. + +Thu Dec 5 14:52:24 1991 Michael Meissner (meissner at osf.org) + + * dbxout.c (ASM_STABS_OP, ASM_STABN_OP, ASM_STABD_OP): If + not defined, define as .stabs/.stabn/.stabd respectively. Change + all places emitting stabs to use the macros. + * cp-decl2.c: Ditto. + * cp-gc.c: Ditto. + * final.c: Ditto. + * varasm.c: Ditto. + * gcc.texinfo: Document ASM_STAB[DNS]_OP macros. + +Thu Dec 5 12:03:40 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * gcc.c (process_command): Don't put `.' on startfile_prefix. + Cast result of alloca. + + * config/*.h (ASM_OUTPUT_ASCII): Put parens around all uses of args. + + * hp800.h, hp800.c, hp800.md, xm-hp800.h: New files. + * va-hp800.h: New file. + * gvarargs.h: Use va-hp800.h if needed. + * config.subr, configure: Add alternatives for hp800, hp700. + +Thu Dec 5 09:35:15 1991 Michael Tiemann (tiemann at cygnus.com) + + * cp-search.c (note_debug_info_needed): Do the right thing for + static member functions. + +Thu Dec 5 01:25:13 1991 Michael Tiemann (tiemann at mole.gnu.ai.mit.edu) + + * version.c: Now 1.96. + +Wed Dec 4 23:17:23 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * reorg.c (try_merge_delay_insns, fill_simple_delay_slots): Correctly + update NEXT_TRIAL after possibly splitting an insn. + +Wed Dec 4 17:03:11 1991 Jim Wilson (wilson at sphagnum.cygnus.com) + + * gplus.gperf: Add throw and template keywords. Update private, + protected, and public definitions. + + * print-tree.c (print_node): Add missing indentation argument to + print_node call for values field. + +Wed Dec 4 18:39:33 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * objc-actions.c (build_objc_method_call): Define as static. + +Wed Dec 4 17:04:49 1991 Michael Meissner (meissner at osf.org) + + * mips-tfile.c (add_varray_page, alloc_type enum): Keep track of how + many pages we allocated for varrays as well as the small stuff. + (stabs_filename): New static to hold the special filename used for + passing stabs through. + (parse_stabs_common, parse_stabs, parse_stabn): New functions to + smuggle stabs through to the debugger. Stabs must be commented out, + just like the other debug directives. + (add_local_symbol): Check hash_ptr to see if it's null before + storing into it, in case no name is passed. + (add_file): Add support for the special stabs file. + (copy_object): Before copying the external symbols, figure out the + file indexes of each of the files, and then explicitly remap the + original file indexes of the external symbol to be the new file + index. If this isn't done, then bad file numbers can get generated + if a filename is repeated. + (various): Change the name of small_alloc to alloc_counts, since we + now track large memory allocations as well. + + * mips-tdump.c (toplevel): Delete unnecessary include file stamp.h. + +Wed Dec 4 11:05:04 1991 Michael Collison (collison at osf.org) + + * encore.h (ASM_OUTPUT_LABELREF_AS_INT): add definition + * ns32k.h: ditto + + * ns32k.h (ASM_OUTPUT_LABEL, ASM_GLOBALIZE_LABEL): If COLLECT is + defined provide alternate definitions + + * encrose.h (ASM_OUTPUT_INT): If COLLECT is defined provide + alternate definition + +Wed Dec 4 01:39:07 1991 Ken Raeburn (Raeburn@Cygnus.COM) + + * cp-pt.c (end_template_decl): For method templates, pop the class + binding level before the others rather than after. + + * cp-class.c: Added DEBUG_CP_BINDING_LEVELS code. Include cp-decl.h + if that symbol is defined, but don't list it in Makefile.in since + that's not the normal mode. + (pushclass): Print messages and frob indentation level. + (popclass): Likewise. + + * cp-spew.c (yylex): If identifier_type says PTYPENAME, and + following token is "<", force looking_for_typename to be + non-negative. + + * cp-pt.c (mangle_class_name_for_template): Drop extra spaces + between last parm and closing ">". Print a message before aborting + if a parm type isn't handled. + + * cp-decl.c (maybe_globalize_type): Don't do it if the identifier + that names the type doesn't currently have a type value. + +Wed Dec 4 01:06:28 1991 Michael Tiemann (tiemann at cygnus.com) + + * cp-decl.c (finish_enum): Call `rest_of_type_compilation' for + ENUMTYPE. + * cp-class.c (finish_struct): Ditto. + * cp-decl.c (pushtag): Set TYPE_STUB_DECL. + * cp-search.c (note_debug_info_needed): Call + `rest_of_type_compilation' if we notice we need debug info for TYPE. + * dbxout.c (dbxout_init): Fix typo in comment. + + * cp-parse.y (DOT_STAR): New token. + (expr_no_commas): Handle DOT_STAR expressions. + * cp-lex.c (real_yylex): Recognize DOT_STAR. Also, rearrange + scanner to make it more efficient. + + * cp-decl.c (maybe_build_cleanup): When building cleanups, pass + TYPE_MAIN_VARIANT to `build_delete'. + +Tue Dec 3 22:52:33 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) + + * flow.c (mark_set_1): Make a REG_UNUSED note not a REG_DEAD note + for the part of multi-word hard registers not needed. + +Tue Dec 3 22:34:13 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * configure: Support --objdir. + + * objc-parse.y: Get rid of many static decls. + Reorder all token definitions to match c-parse.y. + (recognize_objc_keyword): New function. + * c-lex.c (token_buffer): No longer static. + (yylex): For @, call recognize_objc_keyword. Don't use keyword table. + * c-lang.c (recognize_objc_keyword): Dummy definition. + + * objc-actions.c (build_objc_method_call) [!NEXT_OBJC_RUNTIME]: + Pass selector as arg to the method. + Always cast the method to a function type. + + * xm-sparc.h (alloca): If using Sun CC, include alloca.h. + If using GCC, define as __builtin_alloca the way other machines do. + + * cccp.c (print_containing_files): Print the nominal file names. + +Tue Dec 3 16:54:04 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * jump.c (jump_optimize): If branches are expensive, convert jumps + around increments or decrements by one into an increment by the + conditional expression. + + * combine.c (simplify_comparison): Don't remove a SUBREG unless + it doesn't affect either operand. + + * cse.c (find_comparison_args): Rework so that we can correctly + fold comparisons on machines that set CC0 to the result of a + condition test, not just a COMPARE. + (cse_insn): Don't set THIS_INSN_CC0 to a constant if we don't know + its mode. + +Tue Dec 3 12:01:12 1991 Jim Wilson (wilson at sphagnum.cygnus.com) + + * mips.md: Use AND not IOR in define_function_unit definitions. + Correct setting of MODE attribute in various insn patterns. + +Tue Dec 3 08:31:18 1991 Michael Tiemann (tiemann at cygnus.com) + + * cp-spew.c (scan_tokens): Delete Dec 2 change. + (yylex): Instead, copy TMP_TOKEN.YYLVAL.TTYPE if it was allocated on + the wrong obstack. + (probe_obstack): New function to support the above change. + + * cp-tree.h (CLASSTYPE_DEBUG_REQUESTED): New flag. + (CLASSTYPE_ASM_WRITTEN): Deleted. + cp-class.c (finish_struct): Now almost always assume that classes + with methods are to ignored for debugging purposes. + cp-search.c (dfs_debug_{mark,unmarkedp}): Rewritten to handle new + algorithm for minimizing debug output. + + * cp-decl2.c (constructor_name): Handle case when THING is a + UNION_TYPE. + +Tue Dec 3 06:35:38 1991 Michael Tiemann (tiemann at cygnus.com) + + * jump.c (duplicate_look_exit_test): If REG_MAP is non-zero, call + replace_regs on the REG_NOTES of COPY. + + * cp-spew.c (scan_tokens): Don't read past '='. + + * cp-call.c (compute_conversion_costs): For now, treat + CONTRAVARIANCE_HARSHNESS as EVIL_HARSNESS, since we cannot tell the + difference between when we should accept it (pointers to the right + sort of methods) and when we shouldn't (base* to derived* + conversions). + +Mon Dec 2 18:53:42 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) + + * cse.c (cse_around_loop): Fix typo in comment. + * dbxout.c (dbxout_type_fields): Likewise. + + * sched.c (sched_analyze_1): Pass the second and third args of a + ZERO_EXTRACT or SIGN_EXTRACT in the SET_DEST to sched_analyze_2. + + * combine.c (make_compound_operation): Change (lshiftrt (ashift ...)) + to a ZERO_EXTRACT, not a SIGN_EXTRACT. + +Mon Dec 2 15:09:13 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * jump.c (jump_optimize): New arg AFTER_REGSCAN. + If not set, don't use duplicate_loop_exit_test. + * toplev.c (compile_file): Pass new arg to jump_optimize. + + * next.h (SELECT_SECTION): Test TREE_CONSTANT as well as TREE_READONLY. + + * xm-i86v[34].h: Renamed from xm-i860v[34].h. + * configure: Corresponding changes. + + * m68k.c (output_function_epilogue): Put %R on all regs in asm_fprintf. + + * t-decstatn (ld): Just copy collect2. + (collect): Target deleted. + (EXTRA_PASSES): Deleted collect. + (mips-tfile, mips-tdump): Depend on LIBDEPS. + * t-mips (mips-tfile, mips-tdump): Depend on LIBDEPS. + * collect2.c (main): Run /bin/ld. + Use fatal_perror where appropriate. + + * objc-actions.c (build_message_expr): Fix typo. + + * configure: Add missing fi to finish last change. + + * cse.c (simplify_binary_operation): Restore missing break in case DIV. + + * sdbout.c (sdbout_init): Explicitly do nothing. + (sdbout_typedefs): Function deleted. + +Mon Dec 2 12:504:35 1991 Eric Youngdale (youngdale at v6550c.nrl.navy.mil) + + * config-gcc.com: Finish changeover from tm-*.h to *.h. + +Sun Dec 1 05:18:32 1991 Michael Tiemann (tiemann at cygnus.com) + + * cp-search.c (lookup_{field,fnfields}): If PROTECT is 0, don't + memoize the entry we find. + + * cp-decl.c (grokvardecl): Call `build_lang_field_decl' instead of + `build_decl' if we retroactively allocate a VAR_DECL. + +Sun Dec 1 00:10:18 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * configure: Convert option syntax from + to --. + Support --target. + + * i386v4.h (ASM_OUTPUT_LOCAL, ASM_OUTPUT_GLOBAL): Deleted. + (ASM_FILE_START): Deleted. + (STARTFILE_SPEC, LIB_SPEC, STANDARD_STARTFILE_PREFIX): Deleted. + (STDC_VALUE): Deleted. + + * real.h (REAL_VALUE_TRUNCATE): Check for same size as SFmode. + + * config/*.h: Renamed from tm-*.h. #includes and comments changed. + * configure: Changed accordingly. + * t-*: tm-*.h file names changed. + + * gnulib2.c (__enable_execute_stack): Renamed function. + * convex.h (INITIALIZE_TRAMPOLINE): Use new name. + +Sun Dec 1 08:57:45 1991 Michael Meissner (meissner at osf.org) + + * cccp.c (main): Add cast in front of alloca for non GCC compilers. + +Sat Nov 30 22:33:24 1991 Chris Smith (csmith@convex.com) + + * config.subr: Recognize -c3*. + New alternatives for convex-c3*. + * configure: Alternatives for convex rewritten. + + * gnulib2.c (__execute_enable_stack): New function for Convex only. + + * gcc.c (do_spec_1): Use \ as quoting char. + + * convex.h (TARGET_SWITCHES): Add new machine types c32, c34, c38. + Add flag TARGET_INDIRECTS, true for c1 and c2, false for c3. + * convex.h (GO_IF_LEGITIMATE_ADDRESS): Avoid indirect + addressing if ! TARGET_INDIRECTS. + + * convex.h: (BITS_PER_WORD, UNITS_PER_WORD, WORDS_BIG_ENDIAN): + It now works to describe machine correctly. + + * convex.h (SIZE_TYPE, PTRDIFF_TYPE): Make them ints rather + than longs to match usage in /usr/include. + + * convex.h (enum reg_class): Add classes SP_REGS, the stack + pointer, and INDEX_REGS, the remaining A_REGS. + (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS): Adjust + for new classes. + (INDEX_REG_CLASS, BASE_REG_CLASS): Use INDEX_REGS so gcc will + not index off the stack pointer (register 0). + + * convex.h (TRAMPOLINE_TEMPLATE, TRAMPOLINE_SIZE, + INITIALIZE_TRAMPOLINE): Define. + + * convex.h (INITIAL_FRAME_POINTER_OFFSET): Define. + + * convex.h (RTX_COSTS): Specify costs to prevent multiply + from being synthesized from shifts (which aren't faster). + + * convex.h (NOTICE_UPDATE_CC): No need to do CC_STATUS_INIT, + cc is never looked at. + + * convex.h (VTABLE_USES_MASK, VINDEX_MASK, SET_DECL_VINDEX): + define so g++ works. + + * convex.h: If COLLECT is defined, define output macros for + collect to call. + + * convex*.h: If !traditional, define _LONGLONG and 64-bit + typedefs to prevent types.h from murdering ansi compilations. + + * convex.md (movsi): split into define_expand and two + anonymous define_insns, one that uses indirection and + one that doesn't. TARGET_INDIRECTS selects which. + + * convex.c (output_call): New routine. Scan forward from call + to decide if AP is live, omit AP reload if not. + * convex.md (call, call_value): use output_call. + + * convex.md (bit manipulation peepholes): remove, now done in + combine. + + * convex.md (indirect_jump): Define. + + * convex.c (const_double_{high,low}_int): Just return the + appropriate word, remove slow float computations. + + * math-convex: New file to use builtin instructions. + + * x-convex: Use cc -pcc to bootstrap gcc. + +Sat Nov 30 10:21:26 1991 Ron Guilmette (rfg at ncd.com) + + * tm-i386v4.h (DBX_REGISTER_NUMBER): Different renumbering. + + * tm-svr4.h (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Changed + so that the progbits parameter actually appears in the definitions. + + * tm-svr4.h (CTORS_SECTION_FUNCTION, DTORS_SECTION_FUNCTION): Adapted + for change in CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP. + +Sat Nov 30 07:05:06 1991 Michael Tiemann (tiemann at cygnus.com) + + * cp-spew.c (follows_{identifier,typename}): New arrays. + * cp-spew.c (init_spew): Initialize new arrays. + * cp-decl.c (lookup_name): takes new parameter PREFER_TYPE. + All callers changed. + * cp-spew.c (yylex): Set LOOKING_FOR_TYPENAME every time we see an + AGGR or ENUM. + + * cp-lex.c (real_yylex): When composing EXTERN_LANG_STRING, call + `real_yylex', not `yylex'. Changed other places that depended on + calling `real_yylex' for their input. + + * cp-spew.c (scan_tokens): Never read past '{' or ':'. Fill the + token buffer with EMPTY tokens in that case. + (yylex): Handle EMPTY tokens. + + * cp-parse.y (structsp): Avoid using `yyungetc' to push a ';' back + on the input stream. + (START_DECLARATOR): New token. + (absdcl): Handle START_DECLARATOR. + * cp-spew.c (consume_token): Renamed from `discard_token'. + (struct token): Changed structure to make it smaller. + (spew_init): Renamed from init_spew. Now called from init_lex. + (scan_tokens): Renamed from slurp_next_token. + Many functions reformatted to match GCC indentation style. + + * cp-lex.c (arbitrate_lookup): Don't guess in favor of type if + yychar is ')'. + + * cp-decl.c (lookup_name): Fixed so that all binding levels use + `looking_for_typename' consistently. + * cp-type2.c (build_functional_cast): Handle new case that we are + called in a context where a method is appropriate (but we parsed it + as a ctor call). + + * cp-call.c (CONST_HARSHNESS): Change bit that we test. + (convert_harshness,compute_conversion_costs): Call CONST_HARSHNESS + consisently when needed. + + * cp-init.c (decl_constant_value): Keep enabled even when + CURRENT_FUNCTION_DECL is null. + +Sat Nov 30 01:23:38 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * sdbout.c (sdbout_init): Just call sdbout_one_type on each type. + + * tm-att386.h (ASM_OUTPUT_ASCII): Output a space after ASM_BYTE_OP. + * tm-sun386.h: Likewise. + * tm-i386.h (ASM_OUTPUT_BYTE, ASM_OUTPUT_CHAR): Likewise. + (ASM_OUTPUT_SHORT, ASM_OUTPUT_LONG, ASM_OUTPUT_DOUBLE): Likewise. + (ASM_OUTPUT_FLOAT, ASM_OUTPUT_ADDR_VEC_ELT): Likewise. + * tm-att386.h (ASM_BYTE_OP, ASM_SHORT, ASM_LONG, ASM_DOUBLE): + Don't end with space. + * tm-sun386.h, tm-bsd386.h: Likewise. + + * c-lex.h: Renamed from c-parse.h. All #includes changed. + * c-parse.c, c-parse.h: Renamed from c-parse.tab.*. + * Makefile.in: Changed accordingly. + (C_OJBS, realclean, TAGS): These changed too. + + * tm-svr4.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): + Undef before defining. + + * tm-i386v4.h: Include tm-svr4.h. + (CPP_PREDEFINES): Define SVR4, and several assertions. + (LIB_SPEC): Delete -Qy. LINK_SPEC handles this. + (DBX_REGISTER_NUMBER): New macro. + +Fri Nov 29 22:16:06 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * rs6000.md: Cannot use "muls" and "muli" to do widening multiply + from HImode to SImode; delete the 12 patterns that try to do this. + +Fri Nov 29 21:32:52 1991 Michael Tiemann (tiemann at cygnus.com) + + * cp-cvt.c (build_type_conversion): Don't assume that if + TYPE_HAS_{INT,REAL}_CONVERSION implies that CLASSTYPE_CONVERSION for + the given type combination is non-NULL. + +Fri Nov 29 16:08:22 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * crtstuff.c: New file. Needs papers from rfg. + * Makefile.in (crtbegin.o, crtend.o): New targets. + + * objc-actions.c (build_message_expr): Lots of cleanups. + (build_objc_method_call): New subroutine. + Handles new option NEXT_OBJC_RUNTIME. + + * expr.c (do_jump): Any LABEL_REF is nonzero. + (expand_expr): Construct LABEL_REFs with Pmode. + +Fri Nov 29 14:43:32 1991 Michael Meissner (meissner at osf.org) + + * mips-tfile.c (parse_def): Change an error into a warning. + + * mips.md (fix_trunc??si_opt, mov??_internal): Change '*' constraint + to '!' to keep reload from allocating FP registers from holding + excess integer values. + (ashift right define_splits): Fix typo, so that the long long + arithmetic right shifts are recognized. + (all define_splits): dummy out constraints, since they are not used. + + * mips.c (override_options): Allow int's in FP registers again, now + that ! constraints are used. + +Fri Nov 29 13:20:13 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * dwarfout.c (output_compile_unit_die): Don't include the name + of the compiler which compiled the compiler in the AT_producer + string. It goofs up comparisons of stage2 & stage3 object files. + + * c-parse.y, objc-parse.y: Don't declare position_after_white_space + as static; it is now in c-lex.c. + +Fri Nov 29 05:15:26 1991 Michael Tiemann (tiemann at cygnus.com) + + * cp-decl.c (xref_tag): Check that TREE_CODE (ref) is aggr type + before storing into CLASSTYPE_DECLARED_CLASS (ref). + + * cp-decl2.c (build_push_scope): Don't let non-aggr types appear in + `cname::fname' expressions. + + * cp-class.c (resolves_to_fixed_type_p): VAR_DECL and FIELD_DECL + nodes of ARRAY_TYPE may resolved to fixed type. Also handle other + cases of WITH_CLEANUP_EXPR. + + * cp-spew.c (frob_identifier): Handle case of a type conversion + operator that converts to a nested type. + + * cp-expr.c (cplus_expand_expr): In NEW_EXPR case, if ARGS is + permanent, build a new arglist instead of modifying it in place. + + * cp-typeck.c (convert_arguments): Add ??? to comment about virtual + function conversions. ??? I don't understand what that code is + supposed to do anymore. + (comp_target_parms): If STRICT <= 0, accept types whose + TYPE_MAIN_VARIANTs are equal. + + * cp-call.c (convert_harshness): Revamped to handle contravariance + better. + * cp-class.h (struct candidate): Declaration moved from cp-tree.h. + + * cp-class.c (duplicate_tag_error): New function. + * cp-parse.y (LC): Call it if we're redefining a tag. + * cp-decl.c (duplicate_decls): Only copy DECL_ARGUMENTS from OLDDECL + if non-NULL. Otherwise we get nonsense when we try to parse + inline function bodies of classes that have already been redefined. + * cp-lex.c (reinit_parse_for_method): If we get some text for a + class that's been redefined, flush the text. + * cp-tree.h (TYPE_REDEFINED): New field in `struct lang_type'. + + * cp-cvt.c (convert_to_integer): Only warn about anachronistic + conversion from int to enum if PEDANTIC is nonzero. + + * cp-typeck.c (convert_for_initialization): No longer give warning + messages about bitwise copy: this is currently how the default X(X&) + constructor is implemented. + * cp-init.c (expand_aggr_init_1): Ditto. + + * cp-method.c (dump_init): Handle WITH_CLEANUP_EXPR and TARGET_EXPR. + * tree.c (simple_cst_equal): Handle WITH_CLEANUP_EXPR. Correct + handling of TARGET_EXPR case. + + * cp-decl.c (grok_reference_init): If DECL is permanent, make it's + DECL_REFERENCE_SLOT permanent as well. + + * cp-cvt.c (build_type_conversion): If PEDANTIC, give message about + conversions which cast away const. + + * cp-decl.c (store_return_init): If PEDANTIC, give error about named + return values. + + * cp-init.c (decl_constant_value): Don't return DECL_INITIAL if + CURRENT_FUNCTION_DECL is null or if the initializer is a + CONSTRUCTOR. + +Thu Nov 28 05:29:52 1991 Michael Tiemann (tiemann at cygnus.com) + + * integrate.c (expand_inline_function): When passing objects by + invisible reference, correctly compute the amount of space to be + allocated in the pseudo-frame we create for the inline function. + + * cp-typeck.c (mark_addressable): Add call to + `mark_inline_for_output' that got lost in Nov 25 change. + + * cp-decl.c (push_overloaded_decl): If the value of a name is an + ADDR_EXPR, look inside to get the _DECL node. + + * cp-decl.c (grokdeclarator): Don't convert type of operators new + and delete to METHOD_TYPE; they remain FUNCTION_TYPEs. + + * function.c (expand_function_start): Set TREE_REGDECL bit on + RESULT_DECL if result starts life in a register. + + * c-common.c (truthvalue_conversion): Don't treat a CONVERT_EXPR as + a NOP when it or the expression inside it is of REFERENCE_TYPE. + + * cp-class.c (finish_struct): Test DESTRUCTOR_NAME_P on + DECL_ASSMBLER_NAME, not DECL_NAME. + +Wed Nov 27 13:49:10 1991 Jim Wilson (wilson at sphagnum.cygnus.com) + + * cse.c (simplify_relational_operation): Correct handling of + COMPARE as first argument. Always strip it off. Don't invert + return value for EQ when !HAVE_cc0. + +Thu Nov 28 20:08:15 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * gmon.c: New file. + +Thu Nov 28 15:02:24 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * combine.c (subst, case SET): Never make a paradoxical SUBREG of + a REG unless the SUBREG and REG occupy the same number of words. + + * emit-rtl.c: Include flags.h. + (operand_subword): Always look inside floating if -fpretend-float. + * final.c (split_double): Likewise. + * Makefile.in (emit-rtl.o): Includes flags.h. + + * c-lex.c (yylex): Add goto to `L' case. + +Thu Nov 28 08:37:02 1991 Michael Tiemann (tiemann at mole.gnu.ai.mit.edu) + + * tm-mips.h (ASM_OUTPUT_INT): Use `do {...} while (0)' so it can be + used in if/else constructs. + +Thu Nov 28 00:23:26 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * tree.h (BUILT_IN_FRAME_ADDRESS, BUILT_IN_RETURN_ADDRESS): + New function codes. + * c-decl.c (init_decl_processing): Declare the functions. + * expr.c (expand_builtin): Implement them. + + * gcc.c: Pass to ld all the dirs in LIBRARY_PATH: + (library_prefix): New list of prefixes. + (process_command): Put dirs from LIBRARY_PATH on that list. + (do_spec_1): %D outputs those dirs. + (link_command_spec): Use %D after passing -L options. + + * gcc.c (process_command): Don't require machine suffix + for dirs from COMPILER_PATH or LIBRARY_PATH. + + * cccp.c (main): C_INCLUDE_PATH, etc., add dirs rather than replacing. + + * Use the TYPE_DECLs to drive dbx and sdb output of type tags. + * toplev.c (rest_of_type_compilation): New function. + (compile_file): Pass list of initial decls to dbxout_init, sdbout_init. + (various): Don't call get_*_types. + * dbxout.c (dbxout_init): Get initial types from that list. + * sdbout.c (sdbout_init): Likewise. + * sdbout.c, dbxout.c: Don't call get_*_types. + (*out_typedefs): New subroutines. + * c-decl.c (finish_struct, finish_enum): Call rest_of_type_compilation. + (pushtags): Record TYPE_STUB_DECL. + * tree.h (TYPE_STUB_DECL): New macro. + * stor-layout.c (chain_type, get_permanent_types, get_temporary_types): + Deleted. + (save_storage_status, restore_storage_status): Don't frob chains. + (layout_type): Don't call chain_type. + + * dbxout.c (dbxout_type_fields): Output `/'-spec after type tag + only if really needed. + +Wed Nov 27 18:52:55 1991 Michael Tiemann (tiemann at cygnus.com) + + * expr.c (expand_expr): Typo in expand_end_bindings, in BIND_EXPR case. + +Wed Nov 27 23:10:48 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * cccp.c (main): Use savestring, not strdup. + +Wed Nov 27 17:10:17 1991 Michael Meissner (meissner at osf.org) + + * mips.c (mips_load_reg3, mips_load_reg4): New global variables to + enable scheduling the second nop for the mfhi and mflo instructions. + (mips_hard_regno_mode_ok): New global array to give the results + of HARD_REGNO_MODE_OK for each register and mode. + (mips_fill_delay_slot): Instead of taking the number of nops as a + parameter, take an enumeration, giving what kind of delay this is. + If the next instruction is a label, put nops before label, not + after. Add support for mflo/mfhi, which need 2 nops if the next + instruction would modify the hi/lo registers. + (mips_move_1word, mips_move_2words): mips_fill_delay_slot calling + sequence changes. Pass mflo/mfhi to schedule nops. + (mips_move_2words): Move DImode to/from hi and lo registers is now + supported. + (function_arg): Correctly align long long parameters, just like + doubles. Also correct typo in debug code. Bug report from + lisa@MicroUnity.com. + (override_options): Initialize mips_hard_regno_mode_ok. Restrict + int's from going in the FP registers, to limit the register + allocator from allocating them instead of using memory. Also, make + the special registers (HI, LO, FPSW) only accept full sized ints, or + a double int for the HI:LO combination. + (compute_frame_size): Don't set the initialized member until reload + has completed, since otherwise the information may change. + + * mips.md (various): Add 64 bit integer operations for addition, + subtraction, negation, and, inclusive or, exclusive or, one's + complement, shifts, and nor. Add 32x32->64 bit support for + multiply, which the compiler then uses to construct 64 bit + multiplies. + (mulsi3): Break mul into it's two instructions, and schedule the + two nops needed for the mflo instruction. Don't allow an integer + multiplier anymore. + (ffssi2): Delete define_expand, and use a second clobber'ed register + to preserve the original input, instead of (clobber (match_dup 1)). + (movsi_ulw): Change mips_fill_delay_slot calling sequence. + (movdi_internal): Allow DImode move from HI/LO to/from GP registers. + (movdi define_split): Add a define_split to separate the two parts + of DImode register pairs when using GP registers. + (movdf define_split): Add a define_split to separate the two parts + of DFmode register pairs when using GP registers. + (mov??_internal): Change condition to call memory_operand, instead + of just checking for MEM, which disallows (subreg (MEM)) during + the intermediate parts of the compilation. Reported by + lisa@MicroUnity.com. + (negsi2): Turn back into a real insn instead of just a + define_expand for subsi3. + (one_cmplsi2): Turn back into a real insn instead of just a + define_expand for norsi3. + (andsi3, iorsi3, xorsi3): Be more liberal than the real machine, and + allow 32 bit constants to improve the code generated for bitfields, + at the expense of potentially not moving the constant out of loops. + (various): Add = constraint to all clobbers. + (fix_trunc*): Go back to old method of using two clobbers, since + unoptimized compiles call abort otherwise, when returning the result + of truncating a float as a function result. + + * tm-mips.h (delay_type): New enum to express different types of + delay slots. + (mips_load_reg3, mips_load_reg4): Declarations for more registers + to check for needing nops. Used by multiply/divide to schedule + the two nops needed after mfhi/mflo if the next instruction would + clobber the register. + (CONDITIONAL_REGISTER_USAGE): If -msoft-float, disable all FP + registers. + (MASK_DEBUG_G): Add comment saying -mdebugg turns of new DImode + patterns, in case the code is wrong. + (HARD_REGNO_NREGS): All FP registers use register pairs, so that + SF in a GP register takes only one register, and SI in a FP + register takes 2. + (HARD_REGNO_MODE_OK): Change macro to reference the array + mips_hard_regno_mode_ok, which is now built in override_options. + (CONST_OK_FOR_LETTER_P): 'N' is now for negative numbers, 'O' is + an exact power of 2, and 'P' is now for positive numbers. + (PREFERRED_RELOAD_CLASS): If -msoft-float, never prefer a FP + register. + (PREFERRED_RELOAD_CLASS_FM): Delete, since nobody uses it. + (FINAL_PRESCAN_INSN): Check for mips_load_reg3 and mips_load_reg4 + being mentioned. Also add a missing tab when more than one delay + slot. + (CONST_COSTS): Make all constant ints cost 0 to lower register + pressure according to Richard Kenner. + (RTX_COSTS): Adjust costs for DI, SF, and DF modes, and add ABS/FFS + costs as well. + (REGISTER_MOVE_COSTS): Bump costs for moving between register + classes, so that reload doesn't try to store int type values in the + floating point registers. + +Wed Nov 27 15:01:52 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * config-gcc.com: Renaming of out-vax.c. + * make-cc1.com: Link dbxout with all languages. Add cp-spew. + + * cccp.c (include_defaults_array): Fix typo. + + * gstddef.h: Handle _STDDEF_H_. + + * configure.bat, Makefile.dos: New files. + + * c-lex.c: New file. All subroutines moved here. + (yylex): Small diffs between C and OBJC merged. + * c-parse.y, objc-parse.y: Deleted from here. + * c-lang.c (lookup_interface): New stub. + * Makefile.in (c-lex.o): New rule. + (OBJC_OBJS, C_OBJS): Changed for new files. + +Wed Nov 27 13:34:15 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) + + * c-parse.y (yylex): Don't assume that long is 32 bits and long + long is 64 bits when warning for out of range integer constants, + and when creating a tree to represent integer constants. + * cp-lex.c (real_yylex): Likewise. + * objc-parse.y (yylex): Likewise. + + * combine.c (simplify_comparison, ASHIFT case): Prevent shift by + HOST_BITS_PER_INT for inequality comparisons. + + * fold-const.c (operand_equal_p): Arguments are not equal if + signedness differs. Conversions don't match if signedness differs. + + * sparc.md (movsi, movhi, movqi, movdi): Prohibit matches that + would require reloading by the use of conditions. + + * alloca.c (alloca): Add parens to make precedence clearer. + + * tm-news.h (PRINT_OPERAND): Add 68040 support so that the compiler + will bootstrap. + +Wed Nov 27 09:41:13 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * expr.c (expand_expr, case MIN_EXPR): Fix typo in operand number + in safe_from_p call. + + * recog.c (indirect_operand): Correctly handle case where we have + a (subreg (mem X) C) after reload. + +Tue Nov 26 16:24:03 1991 Ron Guilmette (rfg at ncd.com) + + * dwarfout.c (output_enumeration_type_die): Handle a GNU C + language extension: incomplete enum types. + + * dwarfout.c (output_type): Fixed bug which causes DIEs for + file-scope tagged types to be generated in a local-scope + under some conditions. + + * dwarfout.c (dwarfout_init, dwarfout_finish): Moved code which + generates most of the .debug_aranges entries from dwarfout_init + into dwarfout_finish to avoid m68k assembler bug. + + * Makefile.in (EXTRA_PARTS): New parameter. + (install-common): Compile the things in EXTRA_PARTS. + (GCC_PASSES, GCC_PARTS): New variables. + (STAGESTUFF, native, enquire, enquire.o): Use them. + (protoize, protoize.o, unprotoize, unprotoize.o, SYSCALLS.c.X): + (gnulib2.ready, collect2, collect2.o, getopt.o, getopt1.o): Likewise. + + * tm-svr4.h (CPP_PREDEFINES): Don't define this here. Undef it + so that other files which include this one will be forced to + define it appropriately for the specific target and OS. + (CPP_SPEC): Deleted. + (LIB_SPEC): Add crtend.o as last thing linked in on each link-step. + (STARTFILE_SPEC): Add crtbegin.o as the first thing linked in. + (NO_DOLLAR_IN_LABEL): Added define. Most svr4's don't support $. + + * tm-svr4.h: Added support for the .ctors and .dtors sections + (as for the m88k). + (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): New macros. + * tm-svr4.h (HERE_ASM_OP, ASM_DECLARE_FUNCTION_SIZE): Deleted + define of HERE_ASM_OP and made ASM_DECLARE_FUNCTION_SIZE not + try to use a dot when computing a function's size in a .size + directive (because Tom Wood says that 88open doesn't approve + of dot as an asm operand). + + * x-genix, x-i386sco, x-xenix (INSTALL): Define as cp. + +Tue Nov 26 16:24:03 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * gcc.c (default_compilers): Pass -A* to cpp. + + * Make names unique if unpacked on MSDOG. + * config/*.c: `out-' removed from all file names out-*.c. + * x-hp*: Renamed from x-hp9k*. + * tm-conv1.h, tm-conv2.h: Renamed from tm-convex*.h. + * tm-hp*.h: `9k' removed from these names. + * tm-isi*.h: `68' removed from these names. + * tm-i860b.h, tm-i860bg.h: `sd' removed. + * tm-i860g3.h: Renamed from tm-i860v3g.h. + * tm-i386sun.h: Renamed from tm-sun386i.h. + * tm-sun3o3.h, tm-sun4o3.h: Were tm-sun*os3.h. + * tm-sun3n3.h: Was tm-sun3os3nf.h. + * tm-sun3n.h: Was tm-sun3-nfp.h. + * tm-sun2o4.h: Was tm-sun2os4.h. + * xm-hp320.h: Was xm-hp9k320.h. + * xm-i386sun.h: Was xm-sun386i.h. + * configure: Adjust for those renamings. + + * configure (m68000-hp-hpux*): Use xm-hp320.h. + + * stmt.c (expand_value_return): New subroutine. + (expand_return): Use that. + + * make-gcc.com: New name for make.com. + + * stor-layout.c (layout_record): Return list of static members. + (layout_type): Lay them out here. + + * expmed.c (init_expmed): Use 3 as shift count for shift_cost. + + * x-sco: File deleted. + + * print-tree.c (print_node): Always be brief for vector elts. + +Tue Nov 26 07:42:41 1991 Michael Tiemann (tiemann at rtl.cygnus.com) + + * cp-decl.c (grokdeclarator): Fix typo involving ~RID_STATIC. + +Mon Nov 25 21:51:09 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * optabs.c (emit_cmp_insn): If both operands are VOIDmode, + put first operand into register, not second. + + * alliant.md, gmicro.md, i386.md, m68k.md, ns32k.md, pyr.md: + Don't allow a constant as the first operand to tstxx insns. + * tahoe.md, vax.md: Likewise. + * convex.md: Remove erroneous comment on tstsi. + +Mon Nov 25 20:51:00 1991 DJ Delorie (dj@ctron.com) + + * cccp.c (main): Look in env vars to override header dir list. + * gcc.c (process_command): Likewise. + + * gcc.c (execute): Alternate way to get status on MSDOS. + Error for -pipe on MSDOS. + (pexecute): Alternate definition for MSDOS. + (find_a_file): Handle new hook EXECUTABLE_SUFFIX. + (EXECUTABLE_SUFFIX): Add default definition, and alternate for MSDOS. + (P_tmpdir): Add default definition for MSDOS. + +Mon Nov 25 17:18:52 1991 Michael Collison (collison at osf.org) + + * x-encrose: New file for mmax running OSF/1. + * t-encrose: ditto. + + * ns32k.md (movsi): Use new constraint letters 'x' and 'y' + representing the frame and stack pointer. + (movhi,movqi): Add constraints and template code to allow moves + between the floating point and general purpose registers. + + * tm-ns32k.h (REGISTER_MOVE_COST): Use this macro to discourage + moves between the floating point registers and the frame and stack + pointer. Also discourage moves between the fp and general registers. + (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS, + REG_CLASS_FROM_LETTER): Add two new register classes representing + the frame pointer and stack pointer respectively. + (GO_IF_NONINDEXED_ADDRESS): Add check to see if register is also a + base register. This causes reload to reject pseudo registers when + REG_OK_STRICT is defined. + + * tm-i386rose.h: New file for 386 running on OSF/1. + * x-i386rose: ditto + * t-i386rose: ditto + + * config.subr: Added case for 'osf-'. + * configure: Added case for i386-osfrose + + * tm-encrose.h (CC1_SPEC): Simplified so by default it passes nothing. + (ASM_SPEC): Changed so that under OSF/1 with NO_J_SWITCH defined + nothing is passed to the assembler. + (TARGET_DEFAULT): Changed so that, by default, no code is generated + using the static base (sb) register. + (OVERRIDE_OPTIONS): Removed in lieu of the new debug macros + PREFERRED_DEBUGGING_TYPE and DEFAULT_GDB_EXTENSION. + (DEFAULT_GDB_EXTENSIONS): Define it + (PREFERRED_DEBUGGING_TYPE): Use it. + +Mon Nov 25 17:18:52 1991 Jyrki Kuoppala (jkp at batman.hut.fi) + + * ns32k.md (ashlhi3): use addw also on 32532 if shiftcount is 1. + (ashlqi3): likewise. + (addsi3): don't use addr instead of addd on the 32532. + + * out-ns32k.c (calc_address_cost): don't assume unknown RTX codes + have XEXP's which are rtx's. + + * ns32k.md (movsi): don't use addr for the 32532 immed displacements. + (shift patterns): fixed a typo with %$%n. + + * out-ns32.c (calc_address_cost) new function. + tm-ns32k.h (ADDRESS_COST): call calc_address_cost. + + * out-ns32k.c (print_operand_address): use error & debug_rtx if error. + + * tm-ns32k.h (CONST_OK_FOR_LETTER_P): constraint 'I' shouldn't + match anything on the 32532 to make negative arithmetic left + shifts behave consistently. + + * ns32k.md (subsf+1): don't use ajdspb on the 32532. + + * tm-ns32k.h (CONST_OK_FOR_LETTER_P): positive values not OK for + constraint 'I' if on 32532. + + * ns32k.md (ashl??): if TARGET_32532, use lsh{d,w,b}. + + * ns32k.md (adjusting stack pointer): don't use ajdp{b,w} if not 32532. + + * ns32k.md (isv,insv-1,insv-2,extzv): use constraint K instead of + n for offset. + + * ns32k.md (insv-1): use only register_operand with constraint + "r" for operand 2, insd can't take constant offsets >= 8. + (pattern insv-2): added another insv-like pattern, for + offsettable operand. + (insv): constraint should be "+g". + (pattern before insv): installed an insv-like pattern + with operand 0 having register_operand and SImode. + + * out-ns32k.c (print_operand): define as a void function. + + * ns32k.md (call_value): use operands[1], not operands[0] to check + for CONSTANT_ADDRESS_P. + + * out-ns32k.c (print_operand): eliminate + PRINT_OPERAND_EXTRACT_FLOAT, don't depend on HOST_WORDS_BIG_ENDIAN. + + * tm-ns32.h (INDIRECTABLE_1_ADDRESS_P): use CONSTANT_ADDRESS_P, + not CONSTANT_P. + + * tm-ns32k.h (GO_IF_LEGITIMATE_ADDRESS): checking for CONST_INT + is not right because displacements are not 32-bit. Use + CONSTANT_ADDRESS_NO_LABEL_P instead. + + * tm-ns32k.h (output_move_double, output_shift_insn): New declarations. + + * out-ns32k.c (print_operand_address): Use fatal for errors. + + * ns32k.md (insv, extzv): Replaced with the pattern near insv in 1.40. + + * out-ns32k.c (print_operand): function moved from tm-ns32k.h. + Modified to use PUT_IMMEDIATE_PREFIX, PUT_EXTERNAL_PREFIX; added + macro PRINT_OPERAND_EXTRACT_FLOAT. + + * out-ns32k.c (print_operand_address): replaced the function with + a more clean version, written for gas syntax. + + * ns32k.md (call): #if 0 code which was used when GAS_SYNTAX was not + defined. + (call_value): likewise. + + * ns32k.md (pattern after ashrsi3): added % before $ so the + pattern works also for gas syntax. + (pattern after ashrhi3): likewise. + (pattern after ashrqi3): likewise. + (pattern after lshrsi3): likewise. + (pattern after lshrhi3): likewise. + (pattern after lshrqi3): likewise. + (pattern after rotrsi3): likewise. + (pattern after rotrhi3): likewise. + (pattern after rotrqi3): likewise. + + * ns32k.md (movsf): put #ifndef GAS_SYNTAX part inside #if 0 since + for now we only use GAS syntax. + + * tm-ns32k.h (INDIRECTABLE_2_ADDRESS_P): add TARGET_SB as a + condition in addition to CONSTANT_ADDRESS_P. + + * tm-ns32k.h (MEM_REG): use CONSTANT_ADDRESS_P instead of GET_CODE + == SYMBOL_REG, add TARGET_SB to the second-part condition. + + * ns32k.md (rotrsi3): fixed a typo NEGATE->NEG + + * tm-ns32k.h: added a comment about CONSTANT_ADDRESS_P; it's not + strictly according to the spec. + + * tm-ns32k.h: added defaults for ABSOLUTE_PREFIX,IMMEDIATE_PREFIX + etc, using gas syntax. + + * out-ns32k.c: removed macro FP_REG_P. + + * tm-ns32k.h: (ASM_OUTPUT_ALIGN_CODE): changed alignment from 4 to + 2 since GAS syntax is the default assembler syntax now. + (PRINT_OPERAND, PRINT_OPERAND_ADDRESS): defined to call + print_operand and print_operand_address in out-ns32k.c, + respectively. + + * tm-ns32k.h: New macros TARGET_SB, TARGET_PIC. + Dummy code for trampolines, calls fatal(). + Macro FP_REG_P moved here from out-ns32k.c. + Some reorganizations of blocks. + 68000 -> ns32k. + + * tm-ns32k.h (TARGET_VERSION) says GAS syntax. + (TARGET_*) added some empty lines for clarity. + +Mon Nov 25 14:29:39 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * Makefile.in (aux-output.o): Depend on insn-codes.h. + + * make-cc1.com: Handle print-rtl.c. + + * toplev.c (warn_aggregate_return): New variable. + (W_options): Define option to set it. + * flags.h: Declare it. + * calls.c (expand_call): Print warning if value is aggregate. + * function.c (init_function_start): Likewise. + +Mon Nov 25 13:29:50 1991 Per Bothner (bothner at cygnus.com) + + * cp-except.c (init_exception_processing): Fix return type of + longjmp (from int to void). + +Mon Nov 25 13:11:51 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) + + * rtlanal.c (refers_to_regno_p): Check for `x == 0' on repeat. + + * x-mips, xm-vms.h: Change cplus-* to cp-* in comments. + * x-tower (X_CFLAGS): Add missing `-'. + + * unroll.c (unroll_loop): When simplifying loops executed only once, + use last_loop_insn not copy_end. + +Mon Nov 25 07:45:46 1991 Michael Tiemann (tiemann at rtl.cygnus.com) + + * cp-except.c (init_exception_processing): Mark `ExceptionHandler' + constructor and destructor as being TREE_EXTERNAL, and mark the + `ExceptionHandler' type as being interface-only. + + * cp-decl.c (maybe_globalize_type): Don't test TYPE_BEING_DEFINED + for ENUMERAL_TYPE. + + * cp-class.c (modify_vtable_entry): Disable code which attempts to + encode in a vtable an indirection to another vtable entry. + + * cp-call.c (build_method_call): Convert FUNCTION to + DECL_MAIN_VARIANT (FUNCTION) once we are going to use it for real. + * cp-init.c (build_delete): Use DECL_MAIN_VARIANT (DTOR). * + * cp-typeck.c (mark_addressable): Use DECL_MAIN_VARIANT (X). + +Mon Nov 25 00:41:14 1991 Per Bothner (bothner at cygnus.com) + + * dbxout.c (dbxout_type): Tiemann's DECL_IGNORED_P optimization (Nov + 20) was a little too drastic: If it succeded, no type info was + emitted at all, which made for syntactically invalid stabs. + Instead, just set 'full=0', + * dbxout.c (dbxout_symbol): Re-write code for TYPE_DECL to be a + little cleaner. It *seems* to work ... + +Sun Nov 24 19:32:07 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) + + * sched.c (update_links): Use PUT_REG_NOTE_KIND to change REG_NOTE. + +Sun Nov 24 14:53:37 1991 Ron Guilmette (rfg at ncd.com) + + * cccp.c: Add `return 0;' statements to all do_* functions which + needed them to prevent spurious warnings. Also change plain + `return;' statements to `return 0;' statements where appropriate. + +Sun Nov 24 07:37:17 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * cse.c (cse_insn): When making equivalences of subparts of + a SET, avoid putting a (hard) register in the hash table twice, + each time with different modes. + + * genrecog.c (write_tree_1,change_state): Don't check for a position + containing a '*' since we don't set it to that. + (main): Don't define recog_addr_dummy; no longer used. + * recog.c (recog_addr_dummy): No longer needed; wasn't actually used. + (init_recog_no_volatile, init_recog): Don't set recog_addr_dummy. + + * expmed.c (store_split_bit_field, extract_bit_field): Abort if + operand_subword of target returns 0. + * expr.c (convert_move, move_block_from_reg, emit_move_insn): Likewise. + + * combine.c (subst, case SUBREG): Don't allow making a SUBREG of + a hard reg in a mode not valid for that hard reg. + * emit-rtl.c (gen_lowpart_common, operand_subword): Likewise. + + * expmed.c (extract_split_bit_field): Use operand_subword_force. + * expr.c (emit_move_insn): If operand_subword fails for non-const, + use operand_subword_force. + + * expmed.c (expand_mult): Pass OP0 through protect_from_queue so we can + use it in a REG_EQUAL note and check it for being a MEM. + + * rtl.def (SMIN, SMAX, UMIN, UMAX): New RTL codes. + * fold-const.c (const_binop, case MIN_EXPR, MAX_EXPR): Use MIN and MAX. + (fold, case MIN_EXPR, MAX_EXPR): Check for operands equal; check for + min (x, lowest-value-for-type) and max (x, highest-value-for-type). + (fold, case COND_EXPR): Look for conditionals that are equivalent + to ABS_EXPR, MIN_EXPR, or MAX_EXPR and convert them to the appropriate + expression. + * expr.h (smin_optab, smax_optab, umin_optab, umax_optab): New vars. + * gcc.texinfo (smin, smax, umin, umax): Add documentation. + * expr.c (expand_expr, case ABS_EXPR): Ignore ABS on unsigned types. + If jumps are expensive, we can do ABS with shifts and xors. + (expand_expr, case MIN_EXPR, MAX_EXPR): Try to do using new optabs. + * optabs.c (smin_optab, smax_optab, umin_optab, umax_optab): + Initialize new optabs. + * cse.c (simplify_binary_operation): New cases SMIN, SMAX, UMIN, UMAX. + * rs6000.md (sminsi3, smaxsi3, uminsi3, umaxsi3): New patterns. + * m88k.md (abssi2): Delete pattern; now done in expr.c. + + * rs6000.md (scc): Correct typos in last change. + + * expmed.c (expand_mult): TARGET will only be written once, so + function return register is OK. + Write a REG_EQUAL note so multiplications can be cse'ed. + + * expmed.c (emit_store_flag): Skip trying most sequences of insns + if branches are very cheap (BRANCH_COST == 0). + * expr.c (expand_expr, case COND_EXPR): Check for BRANCH_COST <= 1, + not equal to 1. + Know that emit_store_flag won't do most sequence if branches are very + cheap. + + * tm-vax.h (BRANCH_COST): Define to be equal to zero. + +Sun Nov 24 07:07:31 1991 Michael Tiemann (tiemann at cygnus.com) + + * cp-decl.c (maybe_globalize_type): Don't globalize a type that's + being defined. + +Sun Nov 24 05:08:57 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * c-decl.c (finish_struct): Use main variant checking ANSI bitfields. + + * tm-tower-as.h (ASM_FILE_START): Use output_file_directive. + + * gcc.c (process_command): Treat `-' as file name, not option. + +Sat Nov 23 20:28:58 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * cse.c (simplify_binary_operation): Remove duplicate code for SFmode + and DFmode; use of REAL_VALUE_TRUNCATE means that all modes can be + handled with the same code. + Truncate result as well as inputs to computations. + + * cse.c (cse_basic_block): Allow recording of destinations in the + final insn of a LIBCALL block. + + * flow.c (insn_dead_p): Add new argument CALL_OK. + (propagate_block): Pass new arg. + (libcall_dead_p): Indicate that we can accept a CALL when we use + insn_dead_p to see if the destination of the CALL is dead. + + * genrecog.c (struct decision): Remove fields `dupcount' + and `reg_class' and all references; they were being set but never + used and are now obsolete. + + * emit-rtl.c (gen_lowpart_common, operand_subword): Don't make + a new REG for the function return value until we after the RTL + is copied for possible inlining; use a SUBREG instead. + + * combine.c (can_combine_p): Don't move insn past a volatile ref if + it is an `asm', even if non-volatile. + + * gmicro.md: Fix punctuation problem causing syntax error. + + * tm-rs6000.h (CONST_OK_FOR_LETTER_P): Add `O' and `P'. + * out-rs6000.c (reg_or_neg_short_operand): New function. + + * rs6000.md (attribute "type"): New type `delayed_compare'. + Add define_function_unit for delayed comparisons. + Mark comparison results of certain insns as being delayed for + longer that normal comparison results; add a new missing types + of `compare'. + (seq, sle): Remove special-cases for (const_int 0) operands; use + alternative with constraint of `O' instead. + (sltu, sgeu): Support most constants in second operand. + + * cse.c (prev_insn_cc0_mode): New variable. + (fold_rtx): When folding CC0, get the mode from prev_insn_cc0_mode. + (cse_insn): Save mode of SET of CC0 in prev_insn_cc0_mode. + +Sat Nov 23 17:01:47 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * expmed.c (init_expmed): Make REG a pseudo, not a hard reg. + + * tm-m68k.h (RTX_COSTS): New macro. + + * varasm.c (make_decl_rtl): Get rid of pedantic warning. + + * gcc.c (link_command_spec): Delete code for handling -collect. + (default_compilers): Get rid of the %x for g++. + This is because now collect is always supposed to be run. + + * tm-vms.h (ASM_OUTPUT_COMMON): Avoid void as type in :? operator. + * tm-sun3.h (ASM_OUTPUT_FLOAT_OPERAND, ASM_OUTPUT_DOUBLE_OPERAND): + Likewise. + * tm-vaxv.h (ASM_OUTPUT_ASCII): Declare `s' as unsigned char *. + * tm-crds.h (FUNCTION_EPILOGUE): Don't call FUNCTION_EXTRA_EPILOGUE. + + * configure (i386-dontknow-*, ns32k-*-*): Alternatives deleted. + (m68k-tti2-*): Deleted. + (m68k-tti-*): Renamed from m68k-tti1-*. + + * i860.md (floatsidf2): Escape the doublequotes. + + * Makefile.in (final.o): Add insn-codes.h as dep. + (OBJS): Add dbxout.o. + (C_OBJS, OBJC_OBJS): Deleted here. + (CPLUS_OBJS): Deleted cp-dbxout.o. + (cp-dbxout.o): Target deleted. + +Sat Nov 23 06:33:24 1991 Michael Tiemann (tiemann at cygnus.com) + + * cp-spew.c (yylex): Don't see TYPENAME if LOOKING_FOR_TYPENAME + is < 0. Definitely see TYPENAME if LOOKING_FOR_TYPENAME > 0. + + * cp-decl.c (grokdeclarator): Any type construction that uses a + struct/union/enum type that is not yet defines pushes that type into + the global namespace. + + * cp-spew.c (discard_token): Renamed from `eat_token'. + Also, make all local functions static. Some day we'll use inlining. + +Thu Nov 21 16:06:14 1991 Mark Eichin (eichin at cygnus.com) + + * Makefile.in: added rule for cp-spew.o + + * cp-parse.y (TYPENAME_SCOPE): added an action, since it is no + longer done in the lexer. + (yyprint): Took out case for TYPENAME_SCOPE. + + * cp-lex.c (real_yylex): renamed from yylex. Also all of the code + dealing with nested classes has been #if 0'd in favor of the code in + cp-spew.c. + + * cp-spew.c (New File): This calls yylex (which is now real_yylex) + and looks ahead as far as possible to bind up nested classes and + pass them on to the parser. + +Thu Nov 21 18:14:11 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) + + * out-sparc.c (output_function_epilogue): Correct parameters in + call to final_scan_insn, write_symbols parameter no longer exists. + + * integrate.c (save_for_inline_copying): Use GET_RTX_CLASS. + +Thu Nov 21 17:44:46 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * gcc.texinfo (PCC_BITFIELD_TYPE_MATTERS): Clarify that macro + must always be non-zero unless MEM extv/extzv/insv exist. + + * romp.md (movdi): Disable define_split when we are moving + between overlapping registers prior to reload to work + around hard-to-fix sched.c bug. + +Thu Nov 21 17:14:54 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) + + * jump.c (invert_exp): Correct typo in comment. + +Thu Nov 21 15:34:27 1991 Michael Meissner (meissner at osf.org) + + * gcc.texinfo (warning options): Make the documentation agree with + the code, -Wstrict-prototypes and -Wmissing-prototypes are not + turned on via -Wall; -Wnoparenthesis is now spelled + -Wno-parenthesis. + (option header): Mention that -W options take the no- prefix as well + as -f options. + +Thu Nov 21 08:12:51 1991 Tom Wood (wood at dg-rtp.dg.com) + + * out-m88k.c (check_float_value): Change use of REAL_VALUE_TRUNCATE. + * tm-m88k.h (FLOAT_TO_INT_INTERNAL): Ditto. + (AS_BUG_POUND_TYPE): Simplify. + * tm-m88kdgux.h: Don't need AS_BUG_DOT_LABELS or AS_BUG_POUND_TYPE. + +Thu Nov 21 06:47:11 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * rs6000.md (scc): Add missing '&' in some alternatives of constraints. + + * a29k.md (negdf2): Fix typo in constraints for SCRATCH in 29050 case. + + * real.h (REAL_VALUE_TRUNCATE): Default is to truncate to float if + mode size is BITS_PER_WORD instead of when mode if SFmode. + +Thu Nov 21 01:58:27 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * dbxout.c (dbxout_type): Test TYPE_BINFO before TYPE_BINFO_BASETYPES. + +Thu Nov 21 01:45:53 1991 Ken Raeburn (raeburn@cygnus.com) + + * cp-parse.y (unary_expr): Break out `new' expressions with + parenthesized types into more basic forms, and handle trailing array + dimensions with an appropriate warning message. + + * cp-class.c (pushclass): For UPType, overload the template name. + (popclass): For UPType, undo the overload. + + * cp-decl.c (pop_decl_level): Don't look up DECL_NAME slot of a + null pointer. + (pushdecl_top_level): Reworked handling of shadow lists to be + correct. + (lookup_tag): Bypass redefinition error message for UPT as well as + for TEMPLATE_DECL. + (start_decl): Add template decls only to top level. Print message + for non-function, non-class templates. + (finish_decl): Disable code that renames anonymous types; leave it + disabled until we figure out why it was being done in the first + place. + (grokdeclarator): Eliminate hack to deal with destructor templates. + Extend some code handling constructors to handle destructors as + well. Deleted some unnecessary code dealing with function + templates. + + * cp-decl2.c (constructor_name): Treat class template decl like + type decl. + + * cp-lex.c (store_pending_inline): If a function is not to be + compiled, discard its text only if can_free flag is set. + + * cp-decl.c (start_function): For `pre-parsed' functions, only + set extern-inline flag if inline flag is set. + * cp-lex.c (do_pending_inlines): Don't set inline flag for method + templates, regardless of default-inline flag setting. + (process_next_inline): Ditto. + + * cp-method.c (dump_type): Do something semi-useful with UPT + nodes, instead of crashing. + (fndecl_as_string): For constructor and destructor, use name of + function rather than looking up class constructor name; should be + the same, and it's cheaper this way. + (build_overload_name): Make template-related names unique, as well + as unlikely to be accepted by the assembler. + + * cp-parse.y (yyprint): Handle PRE_PARSED_CLASS_DECL. + (template_def): In case handling destructors, pass new decl to + end_template_decl, rather than ungrokked call_expr node. Rewrote + last derivation. + (scoped_typename): Don't try building from template type; it doesn't + work. + (try_for_typename): Treat typename using template parms like any + other typename. + + * cp-pt.c: New comment at start lists some known problems. + (end_template_decl): Do nothing for error_mark_node. Check + DECL_CLASS_CONTEXT and DECL_EXTERNAL when setting TREE_EXTERNAL + field of template decl. Don't need to pop extra class level for + non-operators any more, but do need to assign class context field. + (instantiate_member_templates): Now returns void. + (tsubst, case FUNCTION_DECL): Process flag fields of method as for + other functions. Handle class context field. Push decl at top + level only if decl context is null. + (tsubst, case TREE_LIST): Use via-public and via-virtual fields. + (do_pending_expansions): Correct handling of methods. + + * cp-pt.c (overload_template_name): If not class-level, push + extra binding level. Disable check that overload hasn't already + been done; for now, it's needed. + (undo_template_name_overload): Pop it. + +Thu Nov 21 00:15:33 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) + + * dbxout.c (dbxout_type_methods): Don't dereference TYPE_NAME and + ctor_name until after checking for non-null methods. + + * sched.c (create_reg_dead_note): New function. Add a REG_DEAD note + for REG to INSN, reusing a REG_DEAD note from the dead_notes line. + (attach_deaths): Add quick exit for many rtx that can't contain a + register. Rewrite REG_DEAD note code to use the new scheme (see + the Nov 1 ChangeLog entry). + (new_insn_dead_notes): Don't add a REG_DEAD note to an insn that + already has one. + (update_links): Must convert REG_UNUSED notes to REG_DEAD when a + register formerly just clobbered is now explicitly set and used in + the new split insns. + +Wed Nov 20 18:02:38 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) + + * c-decl.c, cccp.c: Change all -Wno options to + -Wno- options so as to be consistent with toplev.c, and so as + to also be consistent with the -fno- options. + * objc-actions.c: Add a -Wno-selector option to match the + -Wselector option. + + * gcc.c (default_compilers): Pass all -W options to cpp, so that + -Wno options will be passed along with the -W options that it + understands. + * cccp.c (main): Accept -Wno option counterparts for every + existing option. + +Wed Nov 20 00:03:41 1991 Michael Tiemann (tiemann at cygnus.com) + + * cp-tree.c (lang_output_debug_info): Deleted. + * cp-class.c (finish_struct): Set DECL_IGNORED_P on the TYPE_DECL + nodes for types that should not have their debugging info written + out. + * dbxout.c (dbxout_{symbol,type}): Check DECL_IGNORED_P for + TYPE_DECLs of RECORD_TYPE nodes. + + * cp-decl.c (grok_op_properties): Fix bug in grokking NEW_EXPR + and DELETE_EXPR operators. + * cp-method.c (hack_operator): Deleted. + * cp-init.c (init_init_processing): Use `ansi_opname' for + {NEW,DELETE}_EXPR instead of calling hack_operator and build_opid. + * cp-decl2.c (grokopexpr): Deleted. + * cp-lex.c (build_opid): Deleted. + * cp-class.c (build_instantiated_decl): Deleted. + * All cp-* files: OP_IDENTIFIER is no longer used. + + * cp-parse.y (operator_name): For most cases, Use `ansi_opname' + directly instead of calling `build_opid'. + +Tue Nov 19 16:02:51 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * c-decl.c (xref_tag): If we find wrong kind of type, return it. + (lookup_tag): Fill in pending_invalid_xref_file, ..._line. + + * real.h (REAL_VALUE_TRUNCATE): New argument MODE. + * cse.c (simplify_unary_operation, simplify_binary_operation): + Pass that arg. + * c-parse.y, objc-parse.y, cp-lex.c (yylex): Likewise. + * fold-const.c (combine): Truncate floating result to fit mode. + (fold): Don't add 1 to float constant if that doesn't change the value. + +Tue Nov 19 09:37:36 1991 Michael Meissner (meissner at osf.org) + + * configure (ns32k-encore-osf): Restore Encore Multimax using the + OSF/rose object format, since the necessary files, such as + tm-encrose.h, are present in the distribution. + +Mon Nov 18 21:38:13 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) + + * out-sparc.c (output_cbranch): Always emit a nop before a FP branch + to avoid illegal assembly output. + * sparc.md: Don't define delay slot for FP compare insns. This was + meant to solve the above problem, but fails with insn scheduling. + + * sparc.md (movsi): Must accept 'f' in addition to 'r' because + combine can convert FP hard registers to SImode. + +Mon Nov 18 13:43:12 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * rtlanal.c (replace_regs): Correct code that prevents nested SUBREGs. + +Mon Nov 18 13:43:12 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * c-decl.c (finish_decl): Reinstall lost end_temporary_allocation. + + * tree.h (DECL_LANG_FLAG_8): Deleted. + * print-tree.c (print_node): Don't use it. Do print DECL_IGNORED_P. + +Mon Nov 18 06:59:37 1991 Michael Tiemann (tiemann at cygnus.com) + + * cp-decl.c (value_identifier): Gone, following c-decl.c. Now use + zero DECL_NAME for this purpose. + * cp-typeck.c: Also affected by this change. + + * c-lang.c, objc-lang.c (lang_output_debug_info): New function. + * dbxout.c (dbxout_type_methods): Fix minor problems arising from + assuming all RECORD_TYPE are C++ RECORD_TYPE nodes. + (dbxout_type): Ditto. + +Sun Nov 17 17:33:58 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * tree.c (struct obstack_stack): New slots expression and rtl. + (push_obstacks, push_obstacks_nochange, pop_obstacks): + Save and restore all 4 obstack vars individually. + + * c-decl.c (start_decl): Call push_obstacks_nochange here. + (push_parm_decl, grokfield): Also here. + (finish_decl): Not here. + Also clean up test for whether to replace DECL_INITIAL with error mark. + +Sun Nov 17 14:25:15 1991 Michael Tiemann (tiemann at cygnus.com) + + * cp-typeck.c (c_expand_return): Be more careful about throwing + away only cleanup generated by 'build_functional_cast'. + + * cp-init.c (build_new): Use TRUE_TYPE instead of TYPE more + consistently, in case TYPE is really an ARRAY_TYPE on its own. + + * cp-dbxout.c: Gone. Now G++ uses dbxout.c. + * cp-tree.h (OPERATOR_NAME_P): Changed to IDENTIFIER_OPNAME_P. + (OPERATOR_TYPENAME_P): Changed to IDENTIFIER_TYPENAME_P. + (OPERATOR_{NEW,DELETE}_FORMAT): Deleted. + * cp-lex.c (ansi_{opname,assopname}): New variables. All cp-* files + changed to use these where comparisons against *_FORMAT were made. + (init_lex): Initialize `ansi_{opname,assopname}' arrays. + Also, update {opname,assignop}_tab grok new ANSI equivalences. + (build_operator_fnname): Changed to build ANSI-style overloaded + names. + * cp-dem.c (optable): Add new ANSI equivalences. + (cplus_demangle): Fixed to recognize new ANSI demangling. Note that + old-style destructors, and possibly other codes were broken by the + (undocumented) 27 Oct changes. + + * cp-decl2.c (grokclassfn): Set DECL_CLASS_CONTEXT here. + * cp-class.c (finish_struct): Don't skip over FUNCTION_DECL that + already has a DECL_CLASS_CONTEXT. + + * cp-except.c (cplus_expand_end_try): Set BLOCK_HANDLER_BLOCK for + blocks that handle exceptions. + (EXCEPTION_NAME_PREFIX): Shorted to "__ex" (from "__exception"). + (EXCEPTION_NAME_LENGTH): Reduced to 4 from 12. + + * dbxout.c (flag_minimal_debug): Define new variable that is + non-zero when symtab output routines can output abbreviated. + (dbxout_type_fields): Move code that writes out debugging info about + fields of RECORD_TYPE and UNION_TYPE nodes from `dbxout_type' into + this function. + (dbxout_type_{method,method_1}): Move code from `dbxout_type' into + these new functions. + (dbxout_type): Now writes out info about basetypes. Also, no longer + need to record info about types having ctors, dtors, or both. GDB + now figures out what it needs to, when it needs to. + (dbxout_symbol): Implement special abbreviated form for C++ classes, + which place their names in both the struct and decl namespaces. + (dbxout_block): Write out special debugging stabs for exception + handler blocks. + + * tree.h (BLOCK_HANDLER_BLOCK): Define new flag to indicate that a + BLOCK is an exception handler block (a `catch' block for C++). + (TREE_VFIELD, DECL_IGNORED_P): New macros. + +Sat Nov 16 22:21:56 1991 Jeffrey A Law (law at super.super.org) + + * tm-m68k.h (CONST_COSTS): Integer values between -128 and 127 + inclusive are very cheap because of moveq. + +Sat Nov 16 00:40:04 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * Makefile.in (install-cross-tools): Avoid clobbering symlinks already + made. Double the $ before the @ in the indirection script. + + * t-decstatn: New file. + * configure: (mips-dec-ultrix*): Use t-decstatn. + + * collect-ld: Always run collect if collect is installed. + + * collect-osf.c, enquire.c, gnulib2.c: Use gstddef.h, not stddef.h. + + * gnulib2.c (__eprintf): Undef NULL. + + * c-typeck.c (build_array_ref): Ref is volatile if array is volatile. + +Fri Nov 15 19:53:41 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) + + * c-typeck.c (build_binary_op_nodefault): Delete ERROR_CODE + argument because it is always the same as CODE. Add new argument + CONVERT_P, and call default_conversion on the operand trees if + true. Rename to build_binary_op. + (old build_binary_op): Deleted because it is now unnecessary. + * c-common.c, c-convert.c, c-decl.c, c-tree.h, c-typeck.c: All + callers and other references to build_binary_op* fixed. + * c-typeck.c (new build_binary_op): Add warning message for + comparisons of signed and unsigned variables that won't give the + expected result due to unexpected sign extension. + + * expr.c (convert_move): Add TFmode support and clean up code. + * optabs.c (init_fixtab): Add TFmode support. + (init_floattab): Likewise. + (expand_float): Likewise. + (expand_fix): Likewise. + (init_optabs): Likewise. + + From Per Bothner: + * collect2.c: Define vfork as fork for USG. Rewrite to not use + prototypes, so it doesn't need gcc for compilation. + (main): No longer uses static sized array for ld arguments, so + that long command lines will work. Vfork ld instead of running + via popen with nm. + (write_hooks): Use type names not variable names in sizeof calls. + +Fri Nov 15 15:01:41 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * fold-const.c (size_int): Properly preserve old obstack settings. + * c-decl.c (finish_decl, grokdeclarator, xref_tag): Likewise. + * stor-layout.c (layout_type): Likewise. + * varasm.c (output_constant_def): Likewise. + * tree.c (push_obstacks_nochange): New function. + + * stor-layout.c (layout_type): Make size of temp type saveable. + * tree.c (saveable_allocation): New function. + + * configure: Comment out certain alternatives not yet updated. + (sparc-unicom-*, m68k-tti1-*, m68-tti2-*): New alternatives. + (m88k-*-v88r32*): New alternative. + (i386-alternate-sysv): New alternative, not sure why. + (sparc-*-sysv*): Commented out--not really supported. + +Fri Nov 15 22:22:32 PDT 1991 Mike Stump (mrs at csun.edu) + + * configure: Recognize only canonical names. Added missing entries + for some configurations that obviously have not been tested in a + while. + + * config.subr: Massive overhaul. It claimed to canonicalize + the machine specification, but it never really did. Now it + does. In general, it is not necessary to specify the os for + popular machines that have a popular os, or given the os, it + can sometimes figure out the vendor. Added in all the old + ways of specifying machines from configure. Also added + support for all (before it was missing a few) of the tm-*.h + files. It now supports the concept of guessing the vendor for + a given CPU type. It now supports the concept of guessing the + os version given the vendor and/or the CPU type. Changed the + default os for vax to ultrix, changed the default os for i386 + to sco. + + * collect-ld: New file. It is useful when compiling C++ programs + on machines that use collect. This includes the decstation. + +Fri Nov 15 14:19:29 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) + + * out-sparc.c: Singlemove_string no longer static. + (emit_move_sequence): Emit sethi/low_sum insn pair for values which + are not arith_double_operands, was missing not. + * sparc.md: DImode sethi pattern now uses singlemove_string to load + a constant into a reg. + * tm-sparc.h (LEGITIMATE_CONSTANT_P): Accept anything except a + floating point constant. + Declare singlemove_string so it can be used in sparc.md. + + * jump.c (jump_optimize): Correct typos in comments. + +Fri Nov 15 08:05:26 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * out-rs6000.c (scc_comparison_operator): Allow non-FP EQ. + + * combine.c (subst, case NEG): Correct shift count in code that + negates ZERO_EXTRACT to SIGN_EXTRACT. + +Thu Nov 14 23:03:46 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * genrecog.c (try_merge_1): Add big new comment. + +Thu Nov 14 19:28:57 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * m68k.md: Fix peephole that merges a stack adjust with a push to + use addqw instead of addql since we know we are incrementing an + address register (sp). + + * loop.c (scan_loop): Rework code that looks for loops starting at the + exit test; don't skip non-jump insns at start of loop and modernize + and clean up code. + + * gcc.texinfo (SECONDARY_RELOAD_CLASS): Update description to + show uses for both intermediate and scratch registers. + * reload.h (SECONDARY_{INPUT,OUTPUT}_RELOAD_CLASS): Default from + SECONDARY_RELOAD_CLASS, if defined. + (HAVE_SECONDARY_RELOADS): Defined if any of the secondary reload + macros are defined. + (reload_secondary_icode, reload_{in,out}_optab): New vars. + * reload.c: Include insn-codes.h. + (find_secondary_reload): New function. + (push_reload): Call find_secondary_reload to process input and + output reloads. Create both secondary and tertiary reloads, + as required. + * reload1.c: Include insn-codes.h. + (init_reload): Initialize reload_{in,out}_optab. + (emit_reload_insns): Handle cases where a secondary reload + is a scratch register and where tertiary reloads are required. + * Makefile.in (reload.o, reload1.o): Now include insn-codes.h. + + * tm-romp.h (SECONDARY_OUTPUT_RELOAD_CLASS): Define to use a BASE_REGS + for symbolic memory locations. + * romp.md (reload_outsi, reload_outhi, reload_outqi): New patterns. + + * expr.c (expand_expr): Pass BRANCH_COST to do_store_flag. + (do_store_flag): Canonicalizations done in emit_store_flag + need to be done here as well. + Test for ffs as well as abs when seeing if scc is expensive. + * expmed.c (emit_store_flag): Correct cases that are open-coded: + Add a few missing cases and correct handling of normalizep. + * combine.c (simplify_shift_const, case IOR): Convert sequence + open-coded by emit_store_flag into LE or (neg (le ..)), as + appropriate. + (simplify_shift_const, case MINUS): Similarly, for GT. + (simplify_comparison): sign_bit_comparison_p now true only if + also comparing against constant zero. + (simplify_comparison, case NOT): If sign bit comparison, just + reverse comparison. + (simplify_comparison, case MINUS): Move case where we subtract + one from the absolute value of something to PLUS, since we + subtract one using a PLUS operation. + (simplify_comparison, case MINUS): Handle GT case done by + emit_store_flag. + (simplify_comparison, cae IOR): Similarly, for IOR. + + * tm-rs6000.h (BRANCH_COST): Define as 2. + * rs6000.md (scc): Allow some more cases. + (new scc patterns): Add numerous patterns to reflect superoptimizer + results for scc insns on RS/6000. + +Thu Nov 14 16:42:19 1991 Michael Meissner (meissner at osf.org) + + * mips-tfile.c (all): Change small allocation requests to use + separate allocation and free functions, instead of using the word8 + union to hold each request. In order to support this easily, a free + field was added to each small structure that is released. + (main): If debugging, print a summary of the number of small + allocations, frees, and the number of pages used. + (add_procedure, copy_objects): Stuff the pointer to the end symbol + into the shash chain, and use it's value to generate the new value + for the computed end block. This is much safer than trying to + calculate this on the fly. + (main): Don't try to avoid using malloc by setvbuf'ing the streams + we use. + +Wed Nov 13 23:47:10 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) + + From tege@sics.se: + * sparc.md: In DF load peephole, use operands not xoperands, so + that output_asm_insn will use the right values. + + * tm-sun3.h, tm-sun2os4.h: Define PTRDIFF_TYPE, SIZE_TYPE, + WCHAR_TYPE same as tm-sparc.h. + + * c-decl.c (finish_function): Don't clear current_function_decl + for nested functions. + + * dbxout.c: Include insn-config.h and reload.h. + (dbxout_symbol): Pass DECL_RTL (decl) through eliminate_regs before + using. + (dbxout_parms): Pass DECL_RTL and DECL_INCOMING_RTL of parms through + eliminate_regs before using. + * sdbout.c: Include insn-config.h and reload.h. + (sdbout_symbol): Pass DECL_RTL (decl) through eliminate_regs before + using. + (sdbout_parms): Pass DECL_RTL and DECL_INCOMING_RTL of parms through + eliminate_regs before using. + * Makefile.in: Update dependency lists for dbxout.c and sdbout.c. + + * combine.c (try_combine): Don't pass sets with (USE (MEM ...)) + dests to reg_referenced_p. + +Wed Nov 13 21:38:03 1991 John Bunda (bunda at cs.utexas.edu) + + * reload1.c (gen_input_reload): If IN is a PLUS whose second arg + is the same as the reload register, swap the args of the PLUS. + +Wed Nov 13 14:43:09 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) + + * tm-sparc.h (OPTIMIZATION_OPTIONS): Don't redefine options set in + toplev.c, only effect flag_omit_frame_pointer. + + * sparc.md: Delete obsolete sign_extract and zero_extract patterns. + We get better code without them. + (indirect_jump, tablejump): Extend indirect_jump pattern to accept + any address, not just a register. Add tablejump like pattern which + also accepts any address. + + * unroll.c (final_biv_value): Make sure the initial value of the biv + is invariant if it is used after the loop. + +Tue Nov 12 23:16:51 1991 Michael Meissner (meissner at osf.org) + + * tm-mips.h (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Correct so + ASM_OUTPUT_REG_PUSH actually does a push instead of pop, and vica + versa. Also make ASM_OUTPUT_REG_POP turn on .set noreorder, and + increment the appropriate -mstats load delay counters. + +Tue Nov 12 22:53:45 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * expr.h (BRANCH_COST): Supply default value here. + * jump.c (BRANCH_COST): Don't default BRANCH_COST here. + + * global-alloc.c (global_alloc): Use proper entry in eliminables + when searching for the frame pointer. + +Tue Nov 12 22:23:36 1991 Jim Wilson (wilson at sphagnum.cygnus.com) + + * expr.c: (expand_expr, MIN_EXPR case): Check for const_true_rtx + not const1_rtx as return value from compare_from_rtx. + (do_jumps_by_part_greater): Handle const0_rtx and const_true_rtx + return values from compare_from_rtx. + (do_jumps_by_part_equality, do_jumps_by_part_equality_rtx): Likewise. + + * sched.c (sched_analyze_2): Correctly handle ASM_OPERAND and + ASM_INPUT rtx. Volatile and traditional asm statements are + assumed to use and clobber all hard registers and all memory. + (schedule_block): Delete code that incorrectly handles ASM_OPERAND + and ASM_INPUT rtx by exiting early. + +Tue Nov 12 15:38:56 1991 Tom Wood (wood at dg-rtp.dg.com) + + * sched.c: Introduce names for various priority values. Reduce + LAUNCH_PRIORITY to avioid wrap-around in launch_link. + +Tue Nov 12 14:21:52 1991 Per Bothner (bothner at cygnus.com) + + * cp-lex.c (init_lex): Exception-handling fixes. + * cp-tree.h: Add new OPERATOR_CHARS_P that is like + OPERATOR_NAME_P, except if takes a (char*), not a tree. + * cp-dbxout.c (dbxout_type_methods): Handle operators + specially when chopping prefix for minimal_debug. + + * config/tm-news.h: In PRINT_OPERAND, recognize new 68040 + operand types. Add definition of CPP_DEFINES for cross-compiling. + +Tue Nov 12 13:11:01 1991 Michael Meissner (meissner at osf.org) + + * protoize.c (__OSF1__ ifdef): Remove OSF/1 specific ifdefs, since + the problem they address has been fixed, and the ifdefs now cause + spurious warnings. + + * tm-mips.h (INT_TYPE_SIZE): Define. + (SHORT_TYPE_SIZE): Define. + (LONG_TYPE_SIZE): Define. + (LONG_LONG_TYPE_SIZE): Define. + (CHAR_TYPE_SIZE): Define. + (FLOAT_TYPE_SIZE): Define. + (DOUBLE_TYPE_SIZE): Define. + (LONG_DOUBLE_TYPE_SIZE): Define. + + * out-mips.c (block_move_load_store): New commn function to create + one load and store for the block move functions. The load is + emitted directly, and the store is returned, to be emitted later. + (block_move_sequence): Call block_move_load_store. For straight + line moves, have two outstanding loads before a store, for newer + machines that want two delay slots. + (block_move_loop): Call block_move_load_store. Move 4 words per + loop, for a loop that moves 16 bytes in 11 cycles if aligned, and 16 + bytes in 19 cycles if not aligned. + (block_move_memcpy): Change argument names for consistancy. + (expand_block_move): Always move address into a register, even for + one byte moves. Fix bugs in calling memcpy. If moving a large + constant amount of unaligned data, emit a runtime check to see if + the data is really aligned, and if so do an aligned move, otherwise + an unaligned move loop. + + * mips-tfile.c (toplevel): Make some changes, so that mips-tfile can + be debugged on OSF/1. + (efdr structure): Align identifiers in declaration. + (cur_proc_value): Delete variable. + (cur_oproc_begin): New global to record original proc .ent symbol. + (cur_oproc_end): New global to record original proc .end symbol. + (add_procedure): Set cur_oproc_begin, cur_oproc_end variables + instead of cur_proc_value. + (parse_begin, parse_end): Add check for cur_oproc_begin being set. + (parse_end): Use cur_oproc_end's value node for new value node. + (main): Add cast to free_multiple_pages call. + +Tue Nov 12 08:57:39 1991 Tom Wood (wood at dg-rtp.dg.com) + + * jump.c (jump_optimize): Merge the "if (...) x = 0;" case with + the "x = a; if (...) x = b;" case. + +Mon Nov 11 19:27:03 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * cp-cvt.c (convert_pointer_to): Correctly get type of a TREE_VEC + object. (This patch is from someone at Cygnus.) + + * combine.c (try_combine): Add missing parens. + +Mon Nov 11 19:26:24 1991 Ron Guilmette (rfg at ncd.com) + + * c-typeck.c (build_binary_op_nodefault, convert_for_assignment): + A (void *) object is compatible with a function pointer if it is + the constant zero. + (build_conditional_expr): Properly check for pointers to functions. + +Sun Nov 10 19:59:12 1991 Michael Meissner (meissner at osf.org) + + * cccp.c (make_undef): Fix by off by one error. + (MIN, MAX): Add #undef, in case some system include file defined + these macros. + +Sun Nov 10 10:34:17 1991 Michael Tiemann (tiemann at cygnus.com) + + * cp-decl2.c (grokfield): Set TREE_EXTERNAL on static const + decls that are either uninitialized in their initial declaration, + or initialized by something we cannot evaluate at initial + declaration time. + + * cp-init.c (build_new): Make `operator new' with placement cast + its return type to the type of the object being allocated. + + * cp-typeck.c (commonparms): If the last element of P1 is + VOID_LIST_NODE, use that. + + * stor-layout.c (layout_record): Return PENDING_STATICS. + (layout_type): Don't commit static members to a particular mode + until REC has been laid out completely. + +Sat Nov 9 23:16:51 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * cccp.c (fancy_abort): Don't declare as static. + +Sat Nov 9 20:38:30 1991 Michael Tiemann (tiemann at cygnus.com) + + * cp-decl.c (push_overloaded_decl): Don't cons new decl to + existing ERROR_MARK_NODE. If the old decl was erroneous, just + ignore it. + + * cp-call.c (ideal_candidate): Fix typo in error message. + +Sat Nov 9 14:13:46 1991 Jeffrey A Law (law at super.super.org) + + * tm-hp9k2bsd.h (MULSI3_LIBCALL): New define which avoids + the use of __mulsi3 for signed integer multiplication. + (UMULSI3_LIBCALL, DIVSI3_LIBCALL, UDIVSI3_LIBCALL): Likewise. + (MODSI3_LIBCALL, UMODSI3_LIBCALL): Likewise. + +Fri Nov 8 12:05:39 1991 Per Bothner (bothner at cygnus.com) + + First cut at ANSI-style exception handling (using + syntax and semantics of Stroustrup 2nd ed). + THIS IS WORK IN PROGRESS! + * cp-tree.h: Declare flag_ansi_exceptions. + * gplus.gperf: Add 'throw' (for ANSI exception handling), + and update private/protected/public from (old) cp-lex.c. + * cp-hash.h: New file, generated from gplus.gperf. + * cp-lex.c: #include cp-hash.h, instead of requiring + manual cut-and-paste when keywords are changed. + * cp-lex.c: Commented out some extern declarations that + were conflicting with inlines in cp-input.c. + Hooks for ANSI-style exception handling. + * cp-parse.y: Parse ANSI-style exception stuff. + * cp-decl2.c: Define new flag flag_ansi_exceptions. + * cp-decl2.c (finish_table): Off-by-one error in + calculating index type. + * clus-decl2.c (finish_vtable_vardecl): Add missing + TREE_OPERAND to get dossier decl. + * cp-except (cplus_expand_start_except): Allow NULL name, + since there is no distinguished name for ANSI exceptions. + * cp-except (cplus_expand_raise): Too few + parameters to expand_expr; add them. + * cp-except.c: New functions for ANSI exceptions: + cplus_exception_name, ansi_exception_object_lookup, + cplus_expand_throw, ansi_expand_start_catch. + These are heavily hacked from similar old functions. + + Try to make -fdossier work better (but more work is needed). + (Especially, generate fewer unneeded descriptors.) + * cp-class.c (add_virtual_function, finish_struct): Do not + create a vtable just because of -fdossier. + * cp-gc.c: Each type points to an array of fields, + instead of an array of pointers to fields. Ditto for methods. + This saves one pointer per field or method by removing + unneded extra indirection. Also other tweaks to save space. + * cp-decl.c (init_decl_processing): Add length of + field and method arrays to descriptors, instead of + relying on NULL-termination (since we no longer have + the extra pointer array). + Make the parameter count and required count of + method descriptors be shorts. + * cp-method.c: Remove no-longer-needed functions + build_i_desc_overload and build_m_desc_overload. + + Other C++ fixes: + * cp-dbxout.c (dbxout_symbol): Class types were + emitting only a "t" spec which made gdb unhappy. + Kludged it so that it once more emits "Tt". + * cp-tree.c (lang_output_debug_info): Do emit debugging + info if this implementation file corresponds the the + type's interface, even if nothing is written. + +Fri Nov 8 08:18:55 1991 Tom Wood (wood at dg-rtp.dg.com) + + * tm-m88k*.h: Fix comments, minor cleanups. + +Thu Nov 7 16:21:05 1991 Torbjorn Granlund (tege at mole.gnu.ai.mit.edu) + + * longlong.h (__ibm032__): Fix operand order for add_ssaaaa and + sub_ddmmss. + +Thu Nov 7 12:47:14 1991 Michael Meissner (meissner at osf.org) + + * tm-mips.h (MIPS_VERSION): Bump meissner version number to 3.3. + (PCC_BITFIELD_TYPE_MATTERS): Define this to be 1. + + * out-mips.c (block_move_loop): New function to generate a loop to + do a block move. + (block_move_call): Pass the source, destination, size as separate + arguments, rather than a pointer to an array of operands. + (expand_block_move): Change block_move_call calling sequence. + (expand_block_move): If moving big aligned items, generate a loop to + do it, rather than calling memcpy/bcopy. + (override_options): If -msoft-float, 'f' constraint picks GP + registers. + + * t-decrose (collect): Use ALL_CFLAGS instead of CFLAGS, since this + gets the shared library flags in x-decrose. + +Thu Nov 7 07:57:36 1991 Tom Wood (wood at dg-rtp.dg.com) + + * tm-m88k.h (MEMORY_MOVE_COST): Define. + (TARGET_88*): Fix. + +Wed Nov 6 19:07:42 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * a29k.md (negsf2, negdf2): Add missing CLOBBER in 29050 case. + + * jump.c (jump_optimize): When looking for a conditional jump + skipping an unconditional jump, be sure the conditional jump is + not an unconditional jump. + + * combine.c (try_combine): If we make an unconditional jump, + be sure it is followed by a BARRIER. + (subst, case SET): Convert (set (pc) (return)) to (return). + +Wed Nov 6 13:41:55 1991 Tom Wood (wood at dg-rtp.dg.com) + + * tm-m88kv3.h, xm-m88kv3.h: Renamed from *m88ksysv3*. + +Wed Nov 6 09:27:16 1991 Michael Meissner (meissner at osf.org) + + * tm-mips.h (MIPS_VERSION): Bump meissner version number to 3.2. + (TARGET_SWITCHES): Add -msoft-float and -mhard-float. + (GP_RETURN): Use GP_REG_FIRST as base of GP registers. + (FP_RETURN): Use FP_REG_FIRST as base of FP registers. If + -msoft-float, make $2 be the return register. + (GP_ARG_FIRST, GP_ARG_LAST): Use GP_REG_FIRST as 1st GP reg. + (FP_ARG_FIRST, FP_ARG_LAST): Use FP_REG_FIRST as 1st FP reg. + + * mips.md (ffssi2, ffssi2_internal): Fix ffs builtin so that it + doesn't clobber the input argument by turning it into a + define_expand, and using a parallel operation including the + necessary clobber's. + (abssi2, ffssi2, ffssi2_internal): Use the 'd' constraint which only + matches the integer registers, rather than 'r' which can match + floating point registers as well. + + * tm-mips-news.h (CPP_SPEC): Add -Dnews7300, -Dsony_news, -Dmips, + and -Dhost_mips. + +Wed Nov 6 08:46:54 1991 Mark Eichin (eichin at cygnus.com) + + * cp-class.c (add_method): when adding a new constructor or + destructor, actually chain onto method_vec[0] rather than replacing + the list with the current entry. + +Wed Nov 6 07:04:55 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * expr.c (store_field): Handle case where we are storing into a BLKmode + field of an object that is in a register. + (expand_expr, case COMPONENT_REF): Handle case where we are extracting + a BLKmode field from an object in a register. + +Tue Nov 5 22:16:39 1991 Michael Meissner (meissner at osf.org) + + * tm-mips.h (target_flags): Delete second declaration. + (MASK_G0, MASK_G1, MASK_G2): Delete, since -G xx now works to set + the size of the small data/bss area cutoff. + (MASK_G012_USED, MASK_G012_NUSED): ditto. + (TARGET_GVALUE): ditto. + (TARGET_G012_USED): ditto. + (TARGET_SWITCHES): Delete -mGx, -mno-Gx switches. + (TARGET_DEFAULT): Set to 0 instead of MASK_G012_NUSED. + + * tm-decrose.h (TARGET_DEFAULT): Eliminate MASK_G012_NUSED. + + * out-mips.c (override_options): Remove support for -mGx and -mno-Gx + switches to set the cutoff size for small data/bss. + + * mips.md (abssi2): Add new pattern. + (ffssi2): Add new pattern. + +Tue Nov 5 18:36:29 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * gcc.texinfo (MEMORY_MOVE_COST): Document new macro. + * regclass.c (MEMORY_MOVE_COST): Default it to 2. + (regclass, reg_class_record): Use MEMORY_MOVE_COST, not constant 2. + (regclass): Look at result of single_set instead of checking again if + pattern is a SET. + * tm-rs6000.h (MEMORY_MOVE_COST): Add definition. + +Tue Nov 5 17:01:05 1991 Ken Raeburn (raeburn at cygnus.com) + + * cp-pt.c (tsubst): For char_type_node, just build variant and + return it. + (tsubst, case FUNCTION_DECL): Walk methods more efficiently. + + * cp-pt.c (overload_template_name): Push a binding level, to + separate template name binding from method parameters. Check + identifier value slots for TYPE_DECLs, not RECORD_TYPEs. Don't need + to do extra push of TYPE_DECL for template name. + (undo_template_name_overload): Pop it. Don't need to explicitly + clear template name binding. + + * cp-ptree.c (print_lang_decl): For FIELD_DECL, don't try to + print fields that go off the end of the lang_decl_flags structure. + + * cp-pt.c (pop_template_decls): Don't explicitly clear out value + slots of identifier; let poplevel/poplevel_class do it. + + * cp-pt.c: Use build_lang_decl insteaed of build_decl for + all TEMPLATE_DECL and TYPE_DECL nodes. + + * cp-tree.h (make_anon_name): Declare it. + + * cp-pt.c (unify): Deleted unreachable code. + + * cp-decl.c (push_overloaded_decl): Fixed typo from merge. + (start_decl): Ditto. + (grokdeclarator, case CALL_EXPR): Remove debug_tree call + accidentally left in. Handle constructor templates specially, like + destructor templates. Removed some commented-out code. + (grokdeclarator, case SCOPE_REF): If the type is uninstantiated, + treat it like any other aggregate type code. + + * cp-lex.c (identifier_typedecl_value): If no binding slot from + the identifier is the right type decl, use the type name if it is + non-null, even if the name doesn't match. + (build_lang_decl): If new decl node is TREE_PERMANENT, make sure the + lang-specific info gets allocated that way too; don't assume that + the current obstack is permanent. + (copy_decl_lang_specific): If decl is TREE_PERMANENT, assert that + the current obstack is permanent. + + * cp-parse.y (template_def): Delete derivations that were + purportedly for constructors; they didn't work. + (notype_declarator): Deal with them here. + (template_instantiate_once): Copy decl node with permanent obstacks, + thereby clearing the chain pointer, before pushing it into top + level. + (structsp): Don't need to undo template name overload here. + (scoped_typename): Want TYPENAME with template type, not PTYPENAME. + +Tue Nov 5 13:46:06 1991 Tom Wood (wood at dg-rtp.dg.com) + + * sdbout.c (sdbout_init, sdbout_symbol): Don't reverse the + permanent types. + + * cccp.c (make_definition): Eliminate previous change associated + with pretty-printing strings passed to do_define. + (pass_thru_directive): Move pretty-printing here. + +Tue Nov 5 11:21:34 1991 Michael Meissner (meissner at osf.org) + + * tm-mips-news.h (ASM_SPEC, LINK_SPEC): Correctly pass -EB instead + of -EL, since the Sony News system is big endian not little endian. + +Tue Nov 5 09:54:08 1991 Tom Wood (wood at dg-rtp.dg.com) + + * tm-m88kv4.h, t-m88kv4, x-m88kv4: Renamed from *m88ksysv4*. + +Tue Nov 5 06:36:07 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * cse.c (simplify_relational_operation, unsigned comparisons): Don't + simplify unless mode of operand is a MODE_INT mode. + + * Makefile.in (*CFLAGS): More clearly document the purposes of each + of the flags. Add X_CFLAGS and T_CFLAGS for x-* and t-* to override. + * x-decrose, x-hp9k320g, x-i386isc, x-m88ksysv4, x-mips, x-tower: + Override X_CFLAGS instead of CFLAGS or INTERNAL_CFLAGS. + * x-vax: Likewise. + * x-sco: Don't include XCFLAGS in definition of CFLAGS. + + * gstddef.h: Renamed from stddef.h. + * Makefile.in (USER_H, install-common-headers): Install gstddef.h as + stddef.h. + +Mon Nov 4 17:54:04 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * integrate.c (save_constants): If we are referencing a constant in + the constant pool in a different mode than its normal mode, make + a SUBREG so that we can record both modes. + (copy_for_inline, restore_constants): Handle these SUBREG's. + (copy_for_inline): Must copy a MEM if it's address contains an + ADDRESS (i.e., the address of a constant pool entry). + + * expr.c (expand_expr, case PLUS_EXPR): If adding constant, FP, and + something else, add FP to the constant and then add the other operand. + + * global-alloc.c (find_reg): If all_regs_p, use ALL_REGS, not + GENERAL_REGS. + * local-alloc.c (block_alloc): Likewise. + + * genoutput.c (gen_expand): Record all the same information as + for a DEFINE_INSN. + + * cse.c (simplify_binary_operation, case PLUS): Simplify expressions + like (a +/- b) - (a +/- c). + (simplify_binary_operation, case MULT): For X * (-1), try to simplify + the NEG before we make it. + +Mon Nov 4 16:29:01 1991 Mark Eichin (eichin at cygnus.com) + + * cp-pt.c (overload_template_name): use build_lang_decl so that + lang_specific gets initialized properly. + + * cp-parse.y (LC): use make_lang_type to produce complete node, + not just make_node. + + * cp-ptree.c (print_lang_type): return if TYPE_LANG_SPECIFIC is + null, since everything printed here is in lang_specific. + +Mon Nov 4 16:17:48 1991 James Van Artsdalen (james at raid.dell.com) + + * x-i386v4: New file. + * configure (i386-sysv4): Use it. + +Mon Nov 4 12:36:09 1991 Michael Meissner (meissner at osf.org) + + * gcc.texinfo (BRANCH_COST): Move so BRANCH_COST formats correctly. + +Mon Nov 4 08:03:44 1991 Tom Wood (wood at dg-rtp.dg.com) + + * x-m88kdgux, x-m88ksysv4: Don't set XCFLAGS. + + * jump.c (jump_optimize): Change "if (...) x = 0;" to use a + store-flag insn if jumps are expensive (BRANCH_COST). + + * tm-m88k.h (BRANCH_COST): Branches are cheap on the m88100. + (OVERRIDE_OPTIONS): Make m88100 the default. + (STORE_FLAG_VALUE): Use -1. + (.ctors and .dtors sections): Change section flags. + * m88k.md (sxx, negate sxx): Use ext and extu. Eliminate extendsxx. + +Mon Nov 4 07:19:36 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * romp.md (movdf, movdi): When splitting, ensure we put in a CLOBBER + for a scratch register, when needed. + + * tm-a29k.h (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE): Define to be + compatible with those chosen by EPI. + + * tm-rs6000.h (REG_ALLOC_ORDER): Put CR registers before integer regs. + + * cse.c (simplify_relational_operation): Fix error in last change. + +Sun Nov 3 12:22:41 1991 Torbjorn Granlund (tege at sics.se) + + * longlong.h (m68020 count_leading_zeros): Fix typo in previous + change. + +Sun Nov 3 09:25:39 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * cse.c (simplify_relational_operation, cases GEU, LTU, GTU, LEU): + Simplify comparisons that have known values such as (unsigned) x < 0. + + * final.c (final_scan_insn): If we've just made a branch unconditional, + convert (set (pc) (return)) to (return). + Use const_true_rtx instead of calling gen_rtx to make it again. + + * x-romp (CC): Pass -Hnocpp to hc so it will use builtin preprocessor. + (INTERNAL_CFLAGS): Don't define BSTRING here. + * xm-romp.h (alloca): Add definition to allow use of hc's builtin. + (BSTRING): Define here. + + * reload1.c (spill_hard_reg): Correct typo in previous change; had + test backwards. + + * function.c (instantiate_virtual_regs_1, case PLUS): If can't + replace operand with register, try to replace all copies of operand + with the register in case of MATCH_DUP. + + * recog.c (validate_replace_rtx_1): Use rtx_equal_p to see if + things are equal. + + * genconfig.c (max_recog_operands, max_dup_operands): Remove `_flag' + in name since these aren't flags. + (max_clobbers_per_insn): Likewise. + (main): Default to at least 10 operands (for asm) and 1 dup operand. + +Sun Nov 3 07:26:57 1991 Ron Guilmette (rfg at ncd.com) + + * Makefile.in (gnulib1.null): Use $(GCC_FLAGS) instead + of $(CCLIBFLAGS). + (gnulib1): Don't copy gnulib1.c into a temporary .c file before + compiling. That messes up the source file names in the debug info, + which makes it harder to debug gnulib1 problems. + + * Makefile.in (install-*): Force removal of previously installed files + before installing new ones (in case they got set to read-only somehow). + + * Makefile.in (uninstall): Remove protoize.1 and unprotoize.1 man + page files. + +Sat Nov 2 22:42:06 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * out-a29k.c (output_epilog): Remove write_symbols from parameter list + of call to final_scan_insn. + * out-m88k.c (preserve_registers): Likewise. + * out-mips.c (function_epilogue): Likewise. + * out-sparc.c (output_function_epilogue, output_tail_call): Likewise. + +Sat Nov 2 22:02:45 1991 Ken Raeburn (raeburn at cygnus.com) + + * cp-search.c (push_class_decls): Added missing argument to + overload_template_name. + + * cp-ptree.c (print_lang_decl): Don't print lang-specific fields + for FIELD_DECL, since it has only the shorter flags structure. + + * cp-class.c (finish_struct_method): Fixed comment typo. + + * cp-decl.c: Add some code for debugging binding level + manipulations, conditionalized on DEBUG_CP_BINDING_LEVELS. + (debug_bindings_indentation): New var, used to maintain indentation + to indicate which changes are on the behalf of other routines. + (push_binding_level): Print debugging messages to track binding + level changes and call/nesting sequences. + (pushlevel, poplevel): Ditto. + (pushlevel_class): Ditto. + (pop_binding_level): Ditto. Also scribble over freed binding level, + and don't store it for re-use. + (poplevel_class): Ditto. + * cp-decl.h (debug_bindings_indentation): Declare it. + * cp-pt.c (push_template_decls, pop_template_decls): Added + debugging fprintf calls here too. + +Sat Nov 2 17:00:22 1991 Ron Guilmette (rfg at ncd.com) + + * cp-except.c (finish_exception_decl): Change `enum debugger' to + `enum debug_info_type'. + * final.c (final_start_function, final, final_end_function, + output_source_line): Delete the `write_symbols' parameter. + Instead use the global `write_symbols' declared in flags.h. + * sched.c (unlink_notes, schedule_block, schedule_insns): Compare + `write_symbols' with NO_DEBUG rather than with zero. + * toplev.c (rest_of_decl_compilation, rest_of_compilation): Don't + pass `write_symbols' to assemble_variable, final_start_function, + final, final_end_function. + * varasm.c (assemble_variable): Delete the `write_symbols' parameter. + Instead use the global`write_symbols' declared in flags.h + +Sat Nov 2 09:48:47 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * caller-save.c: Don't include reload.h; not used. + * Makefile.in (caller-save.o): Likewise. + + * final.c (final_start_function, final_end_function, final): Change + enum debugger to enum debug info to finish previous change. + (final_scan_insn, output_source_line): Likewise. + * varasm.c (assemble_variable): Likewise. + + * rtlanal.c (modified_between_p, find_last_value): New functions; not + yet used. + * rtl.h (find_last_value): Declare. + + * cse.c (simplify_binary_operation): Remove comparison cases from + here; now in simplify_relational_operation. + +Fri Nov 1 19:04:50 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * rtl.h (REG_DEAD): More precisely describe when a REG_DEAD note + should be present. + * rtlanal.c (dead_or_set_regno_p): New function. + (dead_or_set_p): A value is dead or set only if each register in it + is dead or set. + * combine.c (reg_bitfield_target): New function. + (distribute_notes, case REG_DEAD): Place REG_DEAD note only if both + dead_or_set_p and reg_bitfield_target are false. + * flow.c (cc0_live): New variable; replaces following_insn_dead. + (propagate_block): Initialize cc0_live instead of following_insn_dead. + Track CC0's life just like other regs instead of using special + mechanism involving following_insn_dead. + Clear last_mem_set even when not final pass. + Don't call mark_used_regs on dead insns. + (insn_dead_p): Use cc0_live to see if a set of CC0 is dead. + Correctly test if set of multi-word value is needed; set if dead only + if none of the words are needed. + (libcall_dead_p): Allow CALL to be in any part of PARALLEL. + Use insn_dead_p to see if SET of return register is dead; old code + incorrectly tested multi-word registers. + (mark_set_1): Track whether all or only some words of a value are + needed; write partial REG_UNUSED note if only some words won't be + needed. + (mark_used_regs): Likewise for REG_DEAD notes. + Set cc0_live for a reference to CC0. + Don't write REG_DEAD note if register is already dead or set in INSN. + No longer check for unused SET_DEST since it won't be called for dead + insns; if a single SET's result was unneeded but the insn can't be + deleted, the source of the SET is live. + Clear last_mem_set even if not final pass. + + * reload1.c (gen_input_reload): Handle REG+MEM the same as REG+INT. + + * gcc.c (xmalloc, xrealloc): Use unsigned instead of size_t for `size'. + + * cccp.c (bcopy, bzero, bcmp): No longer static. Only declare at + front of file if we are going to define them later. + +Fri Nov 1 18:57:25 1991 Ron Guilmette (rfg at ncd.com) + + * cccp.c (timebuf): Declaration moved out of `special_symbol' and + made global (and "static") to get values of __DATE__ and __TIME__ + to remain constant throughout compilation. + (debug_output): New variable. + (main): Accept -g3 option and set debug_output when seen. + (main): Moved initializations of `outbuf' and `fp' to before call + to `initialize_builtins'. + Pass fp and &output to initialize_builtins so that it can write out + artificial #define lines for builtin symbols. + Call `output_line_directive' before doing each make_define or + make_undef so that when `debug_output' is in effect, we'll + get #line 0 directives before each artificial #define or #undef. + (special_symbol): Initialization of `timebuf' deleted from here. + (initialize_builtins): Initialize timebuf here. + (pass_thru_directive): New function. + (do_define, do_undef): Use `pass_thru_directive' for "precompilation" + of header files. + Call `pass_thru_directive' when -g3 option used. + (initialize_builtins): Generate artificial #define directives (in the + output) to represent the values of all builtin symbols whose defs + can't change during compilation. + (make_undef): Added output buffer param so that make_undef could let + do_undef do output to stdout. + Call do_undef with a real output buffer. + (make_definition): Likewise. + Many minor changes to get strings passed to do_define to always look + like correctly formed #define directives. + + * c-decl.c (store_parm_decls): Remove non-params from the list before + checking to see if the type of any element of the list is complete. + (pushlevel): Fixed bug which caused scope of tagged types to be + incorrectly assigned to the outermost {} block of functions rather + than to the outermost binding contours of functions. + (pushtag): Revised to clarify code used to find applicable + binding level for a tagname. + Set TYPE_CONTEXT of new tagged type so that dwarfout.c can tell + file-scope tagged types from non-file-scope tagged types. + Create a NULL-named TYPE_DECL node for each new tagged type + (even incomplete ones). + (finish_struct, finish_enum): Don't create NULL-named + TYPE_DECL nodes for complete tagged types. (This is now done in + `pushtag' for *all* new tagged type declarations and definitions.) + + * toplev.c (compile_file): Adjust conditions under which + `dwarfout_file_scope_decl' is called during final traversal of + the chain of file-scope decls so that it is called also for + file-scope TYPE_DECLs. + (rest_of_decl_compilation): Deleted call to `dwarfout_file_scope_decl' + for file-scope TYPE_DECLs; call `dwarfout_file_scope_decl' instead of + `dwarfout_file_scope_symbol'. + + * dbxout.c, sdbout.c, flags.h, toplev.c: Change DEBUG_LEVEL_* to + DINFO_LEVEL_* to prevent possible confusion about meaning. + + * flags.h, toplev.c: (enum debug_info_type): Renamed type from + `debugger' and cleaned up definition of type (including deletion + of useless EXTENDED_DBX_DEBUG code). + (use_gdb_dbx_extensions): Make declarations conditional on + DBX_DEBUGGING_INFO being defined. + + * out-i860.c (output_fp_move_double, find_addr_reg): Add return stmts + to avoid warnings when compiling with -Wreturn-type. + (output_delayed_branch): Fix test for CONST_INT values which must be + loaded in two instructions (as two halves). + (function_epilogue): Remove ASM_OUTPUT_EPILOGUE_SUFFIX. (Superceeded + by ASM_DECLARE_FUNCTION_SIZE in varasm.c.) + + * xm-i386.h (i386): Define in case the native host compiler doesn't. + + * tm-svr4.h (SVR4): Define this rather than SVR4_target. + (ASM_FINAL_SPEC): Support the -pipe option. + (ASM_DECLARE_FUNCTION_NAME, ASM_DECLARE_OBJECT_NAME): Allow easy + redefinition of the syntax for second operand of .type. + (ASM_DECLARE_FUNCTION_SIZE): Fix line continuations. + +Fri Nov 1 14:14:14 1991 Michael Meissner (meissner at osf.org) + + * out-mips.c (mips_asm_file_end): Generate correct code if the user + uses asm("name"). Patch from bothner@cygnus.com. + + * mips-tfile.c (init_file initialization): Fix #ifdef + BYTES_BIG_ENDIAN to be #if BYTES_BIG_ENDIAN, to allow the DECstation + to work again. + (toplevel): Remove declarations of internal library functions, + _flsbuf, _filbuf. + +Thu Oct 31 14:59:11 1991 Torbjorn Granlund (tege at mole.gnu.ai.mit.edu) + + * longlong.h (m68020 count_leading_zeros): Use %b for offset and + width syntax for bfffo instruction. + +Thu Oct 31 05:45:54 1991 Ken Raeburn (raeburn@cygnus.com) + + * cp-decl.c (PUSH_BINDING_LEVEL, POP_BINDING_LEVEL): Replaced + uses of macros with their expansions, and deleted the macros. + +Wed Oct 30 12:45:33 1991 Ron Guilmette (rfg at ncd.com) + + * dwarfout.c, dwarf.h, README.DWARF: Replacement files that bring + the Dwarf implementation up to that defined by draft 5 of the + UI/PLSIG Dwarf specification. + +Wed Oct 30 10:50:07 1991 Michael Meissner (meissner at osf.org) + + * objc-parse.y (yylex): Cast short types to int before shifting, to + avoid bogus warnings from the MIPS C compiler. + + * cccp.c (fancy_abort): Make this global again, so that + -Dabort=fancy_abort will not cause a link error, because obstack.c + contains a reference to abort. + +Wed Oct 30 07:38:08 1991 Tom Wood (wood at dg-rtp.dg.com) + + * SYSCALLS.c (abort): Undefine first. + + * xm-m88k.h (HOST_WORDS_BIG_ENDIAN): Define it. + * out-m88k.c (output_and): Choose "clr" last. + +Tue Oct 29 22:49:47 1991 Michael Meissner (meissner at osf.org) + + * tm-mips.h (num_refs): New global array. + (mips_count_memory_refs): New function decl. + + * out-mips.h (num_refs): New global array to count number of 1, 2, + or 3 instruction data references with -mstats. + (mips_count_memory_refs): New function decl to determine whether a + data memory reference uses 1, 2, or 3 instructions. + (mips_move_1word, mips_move_2words): Call mips_count_memory_refs + as appropriate. + (function_epilogue): Print number of 1, 2, and 3 instruction + memory references if -mstats. + + * mips.md (movsi_ulw, movsi_usw): Call mips_count_memory_refs if + needed. + +Tue Oct 29 05:14:27 1991 Ken Raeburn (raeburn at cygnus.com) + + * cp-parse.y (template_def): Don't pass bogus declspecs to + start_decl. + + * cp-pt.c (tsubst, case FUNCTION_DECL): Build new argument list + from method template, instead of retaining the old one. + +Tue Oct 29 00:44:51 1991 Ken Raeburn (raeburn at cygnus.com) + + * cp-class.c (finish_struct): Skip type fields if they are + template names bound to their expansions. + + * cp-decl.c (binding_levels_sane): Define only if PARANOID; use a + macro returning 1 otherwise. Check class_binding_level stack for + consistency also. + (pushdecl): Verify that bindings pushed at global scope are in + permanent obstack storage. + (start_decl): While processing_template_decl, don't also need to + verify that the decl uses the template parameters. For method + templates, construct proper method type for result. TREE_EXTERNAL + flag for methods should be cleared if DECL_EXTERNAL is clear. + (grokdeclarator, case CALL_EXPR): Intercept destructor templates, + which have a different internal form, and convert them to a form + that can be recognized. + + * cp-decl2.c (grokclassfn): Include length of class name when + creating assembler name for destructor; otherwise ambiguities + result. + + * cp-lex.c (identifier_typedecl_value): New fn; scans bindings of + identifier for a given type decl; falls back to name of type. + * cp-tree.h (IDENTIFIER_TYPEDECL_VALUE): Call it. + + * cp-method.c (fndecl_as_string): Print constructor_name of type + for constructor and destructor, not type name. + + * cp-parse.y (template_def): Don't output warning about missing + type and storage class, since this gets printed for destructor + templates. + (notype_declarator): Accept '~' PTYPENAME. + (scoped_typename): Want a PTYPENAME, not TYPENAME. Build a + SCOPE_REF node instead of calling resolve_scope_to_name. + + * cp-pt.c (instantiate_member_templates): New fn. Instantiates + members associated with template for a given template class. + * cp-method.c (template_instantiate_once): Call it. + + * cp-pt.c (end_template_decl): Catch destructor templates that + are being passed through without being converted to TEMPLATE_DECL + nodes; convert them now. Copy argument list for function template + into permanent storage. + (lookup_template_class): Supply IDENTIFIER_TEMPLATE data for new + anonymous type name. + (tsubst, case FUNCTION_DECL): Improve method lookup code. + (tsubst): Use hash table and build_cplus_* functions for building + new nodes when possible, so equality tests are easier. Extend + FUNCTION_TYPE case to handle METHOD_TYPE as well. + (instantiate_template): Don't do anything for error_mark_node. + (do_pending_expansions): Keep expansions not used in queue to check + again later. + + * cp-tree.def: Fix up some comments relating to PT-related types. + + * tree.c (init_tree_codes): Now void, in agreement with decl + elsewhere. + +Mon Oct 28 22:07:44 1991 Jeffrey A Law (law at b117.super.org) + + * output.h (current_function_uses_pic_offset_table): Declare here + so that out-*.c can see it. + + * tm-m68k.h (FINALIZE_PIC): New macro. + (PIC_OFFSET_TABLE_REGNUM): New macro. Defines which address + register is used to hold the offset table for PIC. + (CONDITIONAL_REGISTER_USAGE): Make PIC_OFFSET_TABLE_REGNUM be + fixed when generating position independent code. + + * out-m68k.c (finalize_pic): New function. + (output_function_prologue): If generating position independent + code output assembler text to load the pic_offset_table register. + +Mon Oct 28 10:02:36 1991 Michael Meissner (meissner at osf.org) + + * toplev.c (main): If -G is used, set g_switch_set to true, and set + g_switch_value to be the integer value of it's argument, for use in + the MIPS port to determine whether a static or global item goes into + the normal data area, or into the small data area. + + * out-mips.c (g_switch_set, g_switch_value): Delete these global + variables, since toplev.c now defines them. + + * tm-mips.h (EXTRA_INT_OPTIONS): Delete macro which is no longer + used in internal OSF patches to provide -G xx support. + (ASM_SPEC, CC1_SPEC, LINK_SPEC): Remove -G32, since the new -G + patches take care of it now. + + * tm-decrose.h (ASM_SPEC, LINK_SPEC): Remove -G32. + + * tm-decstatn.h (ASM_SPEC, LINK_SPEC): Remove -G32. + + * tm-iris.h (ASM_SPEC, LINK_SPEC): Remove -G32. + + * tm-mips-bsd.h (LINK_SPEC): Remove -G32. + + * tm-mips-news.h (ASM_SPEC, LINK_SPEC): Remove -G32. + + * tm-mips-sysv.h (LINK_SPEC): Remove -G32. + +Mon Oct 28 07:11:28 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * combine.c (try_combine): Don't delete unused SETs if they have + side-effects. + + * Makefile.in, t-i386sco: Had both LIMIT_H and LIMITS_H; latter + is correct. + + * combine.c (subst): New argument `unique_copy'; if non-zero ensure + each copy of `from' replaced gets a unique copy of `to'. + Pass arg to recursive callers. + (try_combine): Pass new arg to subst. + + * Makefile.in (LANGUAGES): Use `objective-c' instead of `class-c' + to avoid confusion. + + * gcc.c (xmalloc, xrealloc): Really make non-static. + +Mon Oct 28 00:21:56 1991 Michael Meissner (meissner at osf.org) + + * tm-mips.h (CC1_SPEC): Convert -gline into -g1. + +Sun Oct 27 17:15:48 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * reload1.c (spill_hard_reg): Rework code that relies on the fact that + reg_class_superclasses[i][0] == i, since it isn't true! + +Sun Oct 27 06:15:24 1991 Ron Guilmette (rfg at ncd.com) + + * configure: Always remove any files before we write them in case + the old copy was read-only. + + * Makefile.in (manext): Now just extension without the period. + (mandir): Default to include manext. + (install-man): Adjust to new definition of manext. + (uninstall): Remove protoize.1 and unprotoize.1 from mandir. + + * genemit.c (gen_exp): Write integer using %u instead of %d to + avoid warnings from some compilers when most negative int is written. + + * cccp.c: Make variables not used outside this file static. + (main, line_to_error, xmalloc, xrealloc, xcalloc): Add missing return + statements (in unreachable paths). + (xmalloc, xrealloc, xcalloc, savestring): Make SIZE arg unsigned. + +Sun Oct 27 06:14:45 1991 Jeffrey A Law (law at b115.super.org) + + * tm-m68k.h (SELECT_RTX_SECTION): New macro. Used to force + symbolic objects in the constant pool into the read-write data + section when generating position independent code. + + * recog.c (general_operand, immediate_operand, nonmemory_operand): + Use LEGITIMATE_PIC_OPERAND_P to reject constants which are not + valid when generating position independent code. + + * reload.c (find_reloads): Do not win in 's', 'i', or 'g' cases + if the constant does not satisfy LEGITIMATE_PIC_OPERAND_P. + + * tm-m68k.h (LEGITIMATE_PIC_OPERAND_P): New macro. + + * out-m68k.c (symbolic_operand): New function. Copied from + tm-sparc.h. + + * gcc.texinfo: Document LEGITIMATE_PIC_OPERAND_P. + +Sat Oct 26 07:51:40 1991 Michael Meissner (meissner at osf.org) + + * mips.md (movsi_usw): Remove invalid '&' constraint on a memory + address. + +Sat Oct 26 07:16:15 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * flow.c (find_basic_blocks): Build label_value_list as list of + CODE_LABELs, not LABEL_REFs. + + * fold-const.c (optimize_bit_field_compare): Call fold on result + of build1 call that converts integer to proper mode. + + * rtl.h (unsigned_condition, signed_condition): Add definition; + functions were previously added to jump.c. + * combine.c (simplify_comparison): Use unsigned_condition to simplify + last change. + +Sat Oct 26 06:48:59 1991 Jeffrey A Law (law at b115.super.org) + + * tm-sun2.h, tm-sun3.h (ASM_SPEC): Pass "-k" to the assembler if + -fpic or -fPIC. + +Fri Oct 25 20:43:54 1991 Michael Meissner (meissner at osf.org) + + * tm-mips.h (CC1_SPEC): Remove special rules for -g0, -g1, etc., now + that GCC supports these directly. + + * configure (dec-mips-osf): DECstation running OSF/rose uses + t-decrose, not t-mips. + + * x-decrose (COFF_CC, COFF_CFLAGS, WARNINGS): Delete. + (libdir, bindir, mandir): Put GCC 2 in the /usr/ccs/gcc tree. + + * x-mips (comment): Delete a comment about cross compilers that is + no longer true. + + * t-decrose (coff-obstack.o): Delete rule that is no longer used. + +Fri Oct 25 18:46:51 1991 Mark Eichin (eichin at cygnus.com) + + * cp-dem.c (cp-demangle): added support for templates, static + data, and the new (correct) mangling for destructors. + +Fri Oct 25 16:18:18 1991 Mark Eichin (eichin at tweedledumber.cygnus.com) + + * cp-decl2.c: (grokclassfn): destructor names *should* contain + the length; otherwise, we can't tell the difference between a + destructor for a class whose name begins with 't' and a destructor + for an instance of a template class. + +Fri Oct 25 02:15:12 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * SYSCALLS.c, protoize.c: Changes from rfg. + waiting for real changelog entries from rfg. + + * gcc.c (xmalloc, xrealloc): No longer static. + +Thu Oct 24 19:21:04 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * fold-const.c (optimize_bit_field_compare): + Use build1 rather than convert, to avoid warnings. + + * final.c (output_source_line): Fix if-scope for DBX fmt. + +Thu Oct 24 13:29:34 1991 Tom Wood (wood at dg-rtp.dg.com) + + * gcc.c gen*.c: Don't make fancy_abort static. + +Thu Oct 24 12:07:23 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * combine.c (simplify_comparison): When narrowing a comparison + and removing ANDs, make it unsigned. + +Thu Oct 24 08:02:04 1991 Ken Raeburn (raeburn at cygnus.com) + + * cp-decl.c (binding_levels_sane): New function, tests that stack + of binding levels is consistent. Argument provides extra + identification for call site, in case compiler optimizes too well. + If PARANOID is not set, does nothing. + (push_binding_level, pop_binding_level): Now functions, for easier + debugging. Inlined under GNU C if not PARANOID. + (PUSH_BINDING_LEVEL, POP_BINDING_LEVEL): Invoke functions. + (push_to_top_level): Use type-shadowed slots to unwind + IDENTIFIER_TYPE_VALUE back to top level. + (start_decl): When processing a template decl, shouldn't need to + check uses_template_parms. For methods, modify arg list to include + `this'. Don't set context of template. Use perm_tree_cons when + building members list for class template. + (grokdeclarator): Check "friend" flag before calling + globalize_nested_type. Build a method type for a function that has + a context. + + * cp-pt.c (end_template_decl): If template has non-null context, + chain it off of the containing class, rather than using pushdecl. + (instantiate_class_template): Instantiate all the member templates + hanging off the class template. Also, simplify some code in the + case where setup_parse is 0. + (tsubst): Check for several common values that won't be modified by + substitutions. + (tsubst, case FUNCTION_DECL): Don't return type passed if it has a + non-null context that might need fixing. Process that context while + building up the new decl node; use it to notify build_decl_overload + that we've got a method rather than a function. + (tsubst, case METHOD_TYPE): Handle like FUNCTION_TYPE; enhance that + case to handle TYPE_METHOD_BASETYPE when set. + (unify): Increment value pointed to by nsubsts, not the pointer + itself. + (do_pending_expansions): Method context is in DECL_CONTEXT, not + DECL_CLASS_CONTEXT. + + * cp-lex.c (do_identifier): Don't try looking up fields in base + classes of UNINSTANTIATED_P_TYPE. + + * cp-parse.y (primary): Call require_complete_type only for + CALL_EXPR nodes of types other than void. + (template_type): Don't call IDENTIFIER_TYPE_VALUE on + error_mark_node. + + * cp-ptree.c (print_lang_decl): For UNINSTANTIATED_P_TYPE, show + template as well as parameters. + + * cp-tree.h (DECL_TEMPLATE_*, UPT_*): New accessor macros for + TEMPLATE_DECL and UNINSTANTIATED_P_TYPE nodes. All (most?) uses + except for node creation changed to use these. + * cp-tree.def: Updated comments for these node types. + + * cp-pt.c (uses_template_parms): Handle ADDR_EXPR. + (end_template_decl): For function with non-null context, pop class + binding level. + +Thu Oct 24 06:57:28 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * a29k.md, romp.md, rs6000.md (movdi, movdf, movti): Handle case of + reg-reg copy with overlapping registers correctly. + + * out-rs6000.c (ccr_bit, case NE): Fix typo in bit number. + (output_epilog): Must restore stack using backchain if alloca called. + + * romp.md, rs6000.md (extendxxyy2, zero_extendxxyy2): Use DEFINE_EXPAND + to force operand to register; DEFINE_INSN allows memory (better cse). + + * rs6000.md (ffssi2): New patterns. + (maskir): Add patterns to use maskir instructions. + + * tm-a29kunix.h (TARGET_DEFAULT, CPP_SPEC): Default to 29050. + + * tm-rs6000.h (LINK_SPEC): Add -bnodelcsect. + (HARD_REGNO_MODE_OK): Delete kludge that didn't allow DImode in reg 31 + and TImode in 29-31; the bug was fixed elsewhere. + +Wed Oct 23 17:48:43 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * combine.c (try_combine): If an insn doesn't match, check for case + where first SET's result isn't used; previously only checked second. + + * combine.c (try_combine): When we substitute into a COMPARE, check + SELECT_CC_MODE to see if we should try to change the mode of the + COMPARE and its result. + +Wed Oct 23 16:38:26 1991 Torbjorn Granlund (tege at hal.gnu.ai.mit.edu) + + * gnulib2.c (__ashrdi3): Compute sign extension shift count from + machine word size instead of using 31. + +Wed Oct 23 14:25:04 1991 Michael Meissner (meissner at osf.org) + + * tm-mips.h (PREFERRED_DEBUGGING_TYPE): Unless otherwise defined, + set to SDB_DEBUG. + + * tm-decrose.h (PREFERRED_DEBUGGING_TYPE): Define to DBX_DEBUG. + + * out-mips.c (override_options): Don't override debugger choice now + that PREFERRED_DEBUGGING_TYPE is provided. + +Wed Oct 23 07:25:32 1991 Tom Wood (wood at dg-rtp.dg.com) + + * sdbout.c (sdbout_symbol/FUNCTION_DECL, sdbout_toplevel_data, + sdbout_end_epilogue): Use DECL_ASSEMBLER_NAME to avoid link-time + multiple definitions. + +Tue Oct 22 15:06:31 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * reload1.c (reload): For now, we must always have a frame pointer + if a function calls alloca and EXIT_IGNORE_STACK is non-zero. + + * cse.c (insert_regs): Don't make new quantity for the register in + a SUBREG. + (merge_equiv_classes): Don't invalidate the register inside a SUBREG. + (canon_hash, case SUBREG): Remove code to treat SUBREGs like REGs. + +Tue Oct 22 10:25:29 1991 Tom Wood (wood at dg-rtp.dg.com) + + * tm-m88kdgux.h (PREFERRED_DEBUGGING_TYPE): Use it. + * tm-m88k.h (OVERRIDE_OPTIONS): Don't override write_symbols. + + * out-m88k.c (m88k_output_{prologue,epilogue}): Renamed. + +Tue Oct 22 00:51:48 1991 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * c++: New shell script. + + * gcc.c (default_compilers): Treat .ii files as cpp'd C++. + + * varasm.c (make_function_rtl): Don't alter DECL_ASSEMBLER_NAME. + + * toplev.c (main): Use PREFERRED_DEBUGGING_TYPE if support + more than one format. + +Mon Oct 21 23:08:02 1991 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * c-decl.c (grokdeclarator): Fix error message for long float. + +Mon Oct 21 16:55:31 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * optabs.c (add_equal_note): New function. + (expand_binop): Delete some obsolete, turned-off code. + Use GET_RTX_CLASS to see if operator is commutative. + Call add_equal_note if we make a multi-insn sequence; if it fails, + redo the operation without our target. + In multi-word cases, don't allow TARGET to be the same as an input. + (expand_unop): Allow operation to fail. + Call add_equal_note and allow failure, like in expand_binop. + In multi-word case, don't allow TARGET to be OP0. + (emit_unop_insn): Use add_equal_note; ignore its failure here. + + * optabs.c (expand_float, expand_fix): In cases when we will jump, + ensure we call emit_queue before protect_from_queue. + Eliminate redundant calls to protect_from_queue and force_non_mem. + + * reorg.c (steal_delay_list_from_target): Don't take an insn from + the fallthrough thread of an annulled branch insn. + +Mon Oct 21 16:55:08 1991 Tom Wood (wood at dg-rtp.dg.com) + + * configure (m88k targets): Complete last change. + +Mon Oct 21 16:06:25 1991 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * integrate.c (copy_rtx_and_substitute): When making copy of frame, + round size to keep substituted frame pointer aligned. + (CEIL_ROUND): New macro. + +Mon Oct 21 15:16:17 1991 Michael Meissner (meissner at osf.org) + + * tm-mips.h (GP_REG_OR_PSEUDO_NONSTRICT_P): New macro for + REG_OK_FOR_{BASE,INDEX}_P in non strict mode. Fix typos in the + previous change. + (GP_REG_OR_PSEUDO_P): Rename to GP_REG_OR_PSEUDO_STRICT_P. + (REG_OK_FOR_BASE_P): Use GP_REG_OR_PSEUDO_NONSTRICT_P if non strict. + (REG_OK_FOR_INDEX_P): Use GP_REG_OR_PSEUDO_NONSTRICT_P if non strict. + (GO_IF_LEGITIMATE_ADDRESS): Indicate if strict checking is being + used if -mdebugb tracing. + +Mon Oct 21 15:08:15 1991 Tom Wood (wood at dg-rtp.dg.com) + + * Makefile.in (*.o): Add insn-codes.h to all lists using expr.h. + (dwarfout.o): Add dwarf.h, reload.h, output.h, and insn-config.h. + + * c-tree.h (TYPE_ACTUAL_ARG_TYPES): New macro for list of actual + types. + * c-decl.c (store_parm_decls): Compute TYPE_ACTUAL_ARG_TYPES if a + prototype is not present. Delete old method. + (duplicate_decls): Provide better diagnostics if a prototype + follows a function definition. + + * m88k.md (gen_divsi3): Delete REG_EQUAL workaround. + * t-m88k{,luna,sysv4}: Target makefile portion (from Mike Stump). + * x-m88k{,dgux,luna,sysv4}: Corresponding deletions. + * {tm,t,x}-m88ksysv4: Renamed from m88ksvr4. Deleted xm-m88ksvr4. + * {tm,xm}-m88ksysv3: Renamed from v88r32. + * configure: Corresponding changes. + + * tm-m88k.h (ASM_OUTPUT_{CONSTRUCTOR,DESTRUCTOR}): Output to + .ctors/.dtors sections. + (TARGET_SWITCHES): Add -m88000, -m88100, and -m88110. Replace + DG/UX MXDB options with SUBTARGET_SWITCHES macro. + * tm-m88kdgux.h (SUBTARGET_SWITCHES, ASM_SPEC, ASM_FIRST_LINE): + Put MXDB options here changing -mdwarf to -mstandard. + +Sun Oct 20 06:39:54 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * combine.c (simplify_comparison, case PLUS): Only do simplification + for equality comparison due to overflow problems. + + * gen*.c: Remove "void *" and uses of size_t added by recent change. + + * reload.c (find_reloads): If "&" given without any registers, + turn off earlyclobber, in addition to giving error. + + * Makefile.in (STAGE_GCC): Deleted. + (STAGESTUFF): Add gcc (from STAGE_GCC) and gcc-cross. + +Sun Oct 20 04:37:21 1991 Michael Tiemann (tiemann at cygnus.com) + + * cp-decl.c (grokfndecl): Use DECL_NAME, not DECLARATOR at end of + function, since DECL_NAME may be different if it's an operator name. + + * cp-cvt.c (convert_pointer_to): Test if PARENT is TREE_VEC + before testing IS_AGGR_TYPE. + +Sun Oct 20 00:40:47 1991 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * gcc.c (link_command_spec): -collect converts to -c. + + * toplev.c (main): Support -gstabs and -gcoff. Fix args to strncmp. + +Sat Oct 19 21:51:03 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * reorg.c: Use const_true_rtx instead of const1_rtx. + (delete_scheduled_jump): Don't delete an insn that sets CC0 if it + has a side-effect. + (update_block): Add missing declaration for parameter WHERE. + (fill_slots_from_thread): Stop search if we find an insn that we + can't put into the delay slot unless we own the thread. + +Sat Oct 19 17:30:23 1991 Michael Meissner (meissner at osf.org) + + * tm-mips.h (GP_REG_OR_PSEUDO_P): New macro to make sure a reg or + pseudo reg during reload will eventually be a GP register for use as + a base or index register. This fixes a bug where a FP register + could be used as a base or index register in some cases after + convert from floating point to integer was done. + (REGNO_OK_FOR_BASE_P, REGNO_OK_FOR_INDEX_P): Use GP_REG_OR_PSEUDO_P. + (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): In the non strict version, + don't allow hard FP registers ever. + +Sat Oct 19 11:59:55 1991 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * tm-sun3.h, tm-sparc.h (WORD_SWITCH_TAKES_ARG): + Check for Tdata as well as target. + + * c-decl.c (grokdeclarator): Don't warn for array of incomplete elt. + + * expr.c (expand_expr): For INDIRECT_REF, don't set unchanging bit. + * c-typeck.c (build_indirect_ref): Do set TREE_UNCHANGING if nec. + + * reload.c (find_reloads): Warning or error for misuse of `&'. + * toplev.c (warning_for_asm): New function. + + * t-i386sco: New file. + * x-i386sco: Add -Di286 to CC, OLDCC. + (LIMIT_H): Moved to t-i386sco. + +Sat Oct 19 09:08:11 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * gcc.c: Add missing extern declarations deleted by last change. + (xrealloc, xmalloc): Don't declare as void *; non-ANSI compilers + can't handle it. + +Sat Oct 19 08:26:13 1991 Ron Guilmette (rfg at ncd.com) + + * tree.h: Fix spelling error in comment. + + * tree.def, cp-parse.y: Change comments that refer to LET_STMT nodes to + refer to BLOCK nodes. + + * gcc.c, gen*.c: Declare as static objects that aren't referenced + outside the file they are in. + (xrealloc, xmalloc): Functions return char *, not int. + (main): Add missing returns (in unreachable code) to avoid warnings + when compiled with -Wreturn-type. + * gcc.c (pexecute): Likewise. + * genattrtab.c (operate_exp): Likewise. + +Fri Oct 18 16:58:12 1991 Eric Youngdale (youngdale at v6550c.nrl.navy.mil) + + * make-cc1.com: Finish changeover from cplus-* to cp-*. + +Fri Oct 18 16:57:37 1991 Ron Guilmette (rfg at ncd.com) + + * tm-svr4.h: Delete lines duplicated due to transmission problems. + +Fri Oct 18 16:55:53 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * jump.c (unsigned_condition, signed_condition): New functions. + + * configure (vax): Set tm_file to tm-vax.h so "configure vax-dec-bsd" + works. + + * combine.c (subst, case PLUS, MINUS): Remove some simplifications + from here. + * cse.c (simplify_binary_operation, case PLUS, MINUS): Put these + simplifications here. + Strip off CONST when looking for some simplifications. + Add code to simplify (a - (a - b)). + + * combine.c (expand_compound_operation): Correctly handle case where + we have a ZERO_EXTRACT that extends beyond the bounds of the object. + + * global-alloc.c (mark_elimination): No longer have FORBIDDEN_REGS as + argument. + * reload1.c (reload): Don't pass FORBIDDEN_REGS to mark_elimination. + + * cse.c (simplify_{unary,binary,relational}_operation): Complete + change that removes warnings from floating-point traps when constant + folding (some cases had been omitted). + +Fri Oct 18 16:41:29 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) + + * stmt.c (expand_anon_union_decl): When creating new mem, copy the + RTX_UNCHANGING_P and MEM_IN_STRUCT_P bits from the old one. + + * sparc.md: Add new scc addx/subx patterns. + +Fri Oct 18 09:10:43 1991 Michael Tiemann (tiemann at cygnus.com) + + * cp-parse.y (stmts): Fix parsing rules to match C++ semantics + better (and hence give the compiler better error recovery). + +Thu Oct 17 19:31:15 1991 Ken Raeburn (raeburn at cygnus.com) + + * cp-pt.c (tsubst): For NEGATE_EXPR, call build1, not build. + Handle NOP_EXPR likewise. + (unify, case TEMPLATE_CONST_PARM): Copy value to permanent obstack. + + * cp-method.c (PARM_CAN_BE_ARRAY_TYPE): If not already defined, + define it to be 1. + (build_overload_name): Test to see if it's nonzero, rather than + whether it's defined; this permits compilation options to disable + it, but leave it enabled by default. Add one to the array size, + since the value retrieved appears to be the maximum index, not the + true array size. + +Thu Oct 17 19:15:37 1991 Mark Eichin (eichin at tweedledumber.cygnus.com) + + * cp-pt.c (instantiate_class_template): has an argument to + indicate whether to setup for parsing or not. (All existing cases + did a feed input, but if we are trying to set up intermediate nodes + while waiting for the parser to return to a template_instantiate + site we need to suppress the parsing part of it, which will get + redone later.) + (tsubst): under case UNINSTANTIATED_P_TYPE, actually instantiate any + class templates that are needed for function return values, and set + them up as pending templates to be run later. + + * cp-parse.y (primary): since build_x_function_call doesn't + require a complete type any more in certain cases, we instantiate + any pending templates and then require_complete_type on the + remainder. + + * cp-typeck.c (build_function_call_real): added an argument to + optionally skip the require_complete_type... implicit template + instantiation has to be postponed, so we won't get a complete type + until the parser can grab it. + + * cp-call.c (build_overload_call_real): added an argument do + allow choice of build_function_call_maybe or build_function_call + based on whether we thought we would require a complete type out of + build_function_call. + +Wed Oct 16 09:06:57 1991 Tom Wood (wood at dg-rtp.dg.com) + + * c-decl.c (store_parm_decls): Fix and disable recording the arg + type list for the function indicating the number of arguments. + * c-typeck.c (self_promoting_args_p): Allow the arg type to be null. + + * expmed.c (store_bit_field, extract_bit_field): Add checks for + MEM_IN_STRUCT_P if the structure reference is a MEM. + +Tue Oct 15 18:37:50 1991 Ken Raeburn (raeburn at cygnus.com) + + * cp-call.c (build_overload_call): If template match fails, still + set function field of candidate structure, and set bad_arg field to + new magic number -4 to indicate failed type unificiation. + + * cp-class.c (add_method): Call make_function_rtl only if not + processing a template declaration. + + * cp-tree.def: New node type, UNINSTANTIATED_P_TYPE, for + parameterized types that haven't had parameters filled in yet. + Looks like a type node. + + * cp-decl.c (struct binding_level): New flag indicating any name + should be accepted when looked up at this level. This is a kludge + to try to deal with methods of parameterized types. + (declare_uninstantiated_type_level): Set it. + (uninstantiated_type_level_p): Return it. + * cp-class.c (pushclass): If the "class" type is + UNINSTANTIATED_P_TYPE, flag it in the new binding level. + + * cp-decl.c (push_overloaded_decl): New argument to indicate + whether the decl should be forgotten when the current level is + exited. Callers changed. + (push_overloaded_decl_top_level): Ditto. + (dont_forget_overload): Deleted. + (push_overloaded_decl_1): New fn; like push_overloaded_decl, but + never forgets. Intended only for use by auto_function macro. + (auto_function): Use it. + + * cp-decl.c (print_binding_level): Print type-shadowed field at + each level. Skip fields with no values. + + * cp-decl.c (adjust_type_value): Use SET_IDENTIFIER_TYPE_VALUE, + not set_identifier_type_value. + + * cp-decl.c (pushdecl): Undo Oct 4 back-out of previous change. + Set type value of name of passed decl, instead of name of type in + passed decl. + (pushdecl_top_level): Search type-shadowed fields of outer binding + levels, munging outermost one if found to cause it to "restore" the + new global value. + + * cp-decl.c (push_overloaded_decl): Don't punt second or later + templates of a given name. + + * cp-decl.c (start_decl): Template-handling code moved up, to + cope better with variable declarations. Don't check for incomplete + type or constructor requirements when processing template. + + * cp-decl2.c (build_push_scope): If passed error mark node, just + return it. + (constructor_name): Handle UNINSTANTIATED_P_TYPE. + + * cp-lex.c (identifier_type): Don't return PTYPENAME for function + template name. + + * cp-method.c (report_type_mismatch): New magic bad-arg value -4 + indicates type unification failure. + (build_overload_name, case UNINSTANTIATED_P_TYPE): Handle like other + template-related types that shouldn't get visibility outside the + compiler. + + * cp-parse.y (template_type): Use IDENTIFIER_TYPE_VALUE from + name, if expansion doesn't happen. + (tmpl.1, tmpl.2): Now type <ttype>. Value is null or return value + from instantiate_class_template. + (template_instantiation): Always put copy of decl in global scope. + Use pushdecl_top_level instead of setting IDENTIFIER_GLOBAL_VALUE + slot. + (LC): If type has been or is being defined, push a new type with the + same name, to avoid conflict. + (try_for_typename): New type <itype>. Value is non-zero iff type to + be pushed uses no template parms and isn't error_mark_node. + (scoped_id): Return error_mark_node for template parameter uses, and + leave error_mark_node alone. Only pop class if try_for_typename + value is non-zero. + (scoped_typename): Ditto. + + * cp-pt.c (end_template_decl): If template decl/class head arg is + null, punt. For non-type templates that didn't come in as template + decls, clear public flag. Such cases shouldn't arise any more; just + put in abort call for now until we're sure. Comment out code for + forcibly removing temporary values of template type parms; Michael + broke the code and fixed the original problem. Handle error case + where decl to be pushed might be null. + (coerce_template_parms): Handle arg list as TREE_VEC as well as + TREE_LIST. If arg list uses template parms, return + UNINSTANTIATED_P_TYPE node. + (uses_template_parms, case UNINSTANTIATED_P_TYPE): Return 1. + (instantiate_class_template): Now returns tree -- error_mark_node or + NULL_TREE or class type; callers and decls changed. Assign + TYPE_NAME field when building new RECORD_TYPE and TYPE_DECL nodes. + Don't need to do extra poplevel any more. + (tsubst): Handle UNINSTANTIATED_P_TYPE, MINUS_EXPR, PLUS_EXPR, + NEGATE_EXPR. + (undo_template_name_overload): Don't need to explicitly clear type + field any more. + (overload_template_name): Push a TYPE_DECL, instead of explicitly + setting type value field. + (end_template_instantiation): Don't need to pop a level any more. + (reinit_parse_for_template): Throw away saved block for null or + error template node. + (type_unification): Handle variadic functions, and functions with + default values for arguments. + (unify): Handle TREE_VEC and UNINSTANTIATED_P_TYPE. + + * cp-ptree.c (print_lang_type): Handle UNINSTANTIATED_P_TYPE. + + * cp-tree.h (push_overload_decl): Declare here, not in + cp-decl.c. + (TEMPLATE_TYPE_* macros): Delete unused (and now incorrect) + versions. + +Mon Oct 14 14:30:32 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) + + * integrate.c (expand_inline_function): Fix typo from last edit, + where TYPE_MODE was applied to an argument, not the type of an + argument. + + * cse.c (canon_hash, SUBREG case): Add cast which is needed by some + compilers. + +Mon Oct 14 07:59:50 1991 Tom Wood (wood at dg-rtp.dg.com) + + * toplev.c (rest_of_compilation): Compute the function's name and + pass it to assemble_{start,end}_function. + * varasm.c (assemble_start_function): New parameter. + (assemble_end_function): New function for ASM_DECLARE_FUNCTION_SIZE. + * final.c, sdbout.c: Correct comments. + * tm-svr4.h, tm-sysv4.h (ASM_DECLARE_FUNCTION_SIZE): Add and use a + NAME parameter. + * tm-m88k.h (ASM_DECLARE_FUNCTION_SIZE): Override svr4 definition. + * out-m88k.c (output_prologue): Delete previous method. + + * m88k.md: Use trap_if. + (divsi3): Store into output operand only once to aviod problems + with REG_EQUAL note. + * out-m88k.c (output_call): Accomodate assembler range + restriction. + * tm-m88kdgux.h (AS_BUG_IMMEDIATE_LABEL): Specify the restriction. + (ASM_SPEC): Pass -KV3 to the assembler in some cases. + * tm-m88k.h (CONDITIONAL_REGISTER_USAGE): Mark the addressing base + register global. + +Sat Oct 12 00:30:23 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * Makefile.in (.SUFFIXES): Rule added. + + * dbxout.c (dbxout_block): Handle debug_info_level. + * sdbout.c (sdbout_begin_block): Likewise. + * toplev.c (compile_file): Likewise, when calling init_emit_once. + * emit-rtl.c (init_emit_once): Cosmetic change. + * Makefile.in (sdbout.o): Include flags.h. + + * configure: Default srcdir from dir in which configure is found. + + * i860.md (floatsidf2): Rewrite to be independant of host machine. + (divdf3, divsf3): New patterns. + + * tm-i860.h (ASM_DECLARE_FUNCTION_NAME): Macro deleted. + (ASM_OUTPUT_FUNCTION_PREFIX): Macro added. + + * stmt.c (pushcase, pushcase_range, expand_end_case): + Don't give "unreachable code" warning for a USE. + + * tm-i386.h (HARD_REGNO_MODE_OK): Fp regs reject TFmode. + +Fri Oct 11 16:43:37 1991 Tom Wood (wood at dg-rtp.dg.com) + + * cse.c (find_comparison_args): Reject VOIDmode to avoid invalid + shift. + +Fri Oct 11 14:30:31 1991 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * c-typeck.c (function_types_compatible_p): + NULL as arg type matches self-promoting type. + (self_promoting_type_p): New function. + (common_type): NULL for arg in one fcn type means use arg from other. + * c-decl.c (store_parm_decls): Record arg type list for the fn, + just to indicate how many args there are. + + * i860.md, out-i860.c, tm-i860.h: Merge many changes by rfg. + * tm-i860bsd.h, xm-i860.h: Likewise. + * tm-i860v3.h, tm-i860v4.h: New files. + * xm-i860v3.h, xm-i860v4.h: New files. + * tm-i860v3g.h: Renamed from tm-i860g.h. + * configure (i860-sysv3*): Renamed from i860-sysv*. New filenames. + (i860-sysv4*): New alternative. + + * print-rtl.c: New file, split from rtl.c. + * Makefile.in (print-rtl.o): New target. + (OBJS): Add that target. + + * toplev.c (DEFAULT_GDB_EXTENSIONS): Provide default definition. + (main): Use that for -g with dbx format. + Don't support -G. + * gcc.c (default_compilers): Get rid of -G. + +Fri Oct 11 14:30:43 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) + + * stmt.c (expand_anon_union_decl): Correctly handle anonymous + unions, whether in memory or registers. + + These were written by Michael Tiemann. + The following changes net a 16% speedup compiling some + machine-generated CAD synthesis code. + * c-decl.c (field_decl_cmp): New function, use as comparison + function for qsort. + (finish_struct): If there are more than 15 fields, allocate a + LANG_TYPE for the FIELD_DECLs, and sort them according to + `field_decl_cmp'. + * c-tree.h (lang_type): Define a LANG_TYPE for RECORD_TYPEs. + * c-typeck.c (build_component_ref): If LANG_TYPE set, then use + binary search to find the field, otherwise use linear search as + before. + + * tree.h: Declare savealloc. + * c-common.c: Delete now unnecessary cast of savealloc result. + +Fri Oct 11 10:06:09 1991 Tom Wood (wood at dg-rtp.dg.com) + + * cse.c (simplify_binary_operation): Fix typo in last change. + + * cp-*, gcc.texinfo, make-cc1.com, tree.c, undocumented: Change + cplus- to cp-. Rename cplus-parse.y to cp-parse.y. + +Fri Oct 11 07:48:40 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * recog.c (find_single_use_1): Ignore appearances of DEST in + contexts where it is being set, not referenced. + (find_single_use): Use dead_or_set_p instead of looking for REG_DEAD + notes. + +Fri Oct 11 07:29:33 1991 Ron Guilmette (rfg at ncd.com) + + * c-parse.y, cp-lex.c, objc-parse.y (check_newline): Use `pedwarn' + instead of `error' when we see an #ident if -pedantic. + * cccp.c (do_assert, do_unassert, check_assertion, do_sccs): Warn + if -pedantic. + +Thu Oct 10 18:30:28 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) + + * gcc.c (default_compilers): Correctly handle new debugging + options, pass all -g* and -G* options. + + * Makefile.in, c-decl.c, cp-decl.c, final.c, flags.h, gcc.1, + gcc.c, print-tree.c, toplev.c, tree.def, tree.h: Delete support + for obsolete GDB_DEBUG format, -gg option, symout.c, etc. + * gdbfiles.h, symseg.h, symout.c: Delete obsolete files. + +Thu Oct 10 17:56:16 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * expr.c (convert_move): When widening FROM to multi-word, ensure that + we only reference each piece of TO once so that emit_no_conflict_block + can be safely used. + + * toplev.c (float_signal): Re-enable the signal after we catch it. + + * cse.c (simplify_binary_operation): Add missing fp error handler + setup in DFmode case. + + * combine.c (subst, case XOR): Fix typo in checking for + STORE_FLAG_VALUE equal to just the sign bit. + (simplify_comparison): Fix typo in computing maximum signed number in + a mode; also, use GET_MODE_MASK rather than trying to compute it. + +Thu Oct 10 17:52:44 1991 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * c-decl.c (init_decl_processing): Turn off `alloca' for -ansi. + (c_decode_option): Handle -fbuiltin, -fno-builtin. + +Thu Oct 10 17:42:03 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) + + * caller-save.c (emit_mult_restore): Initialize MAYBE_TEMPREG. + + * function.c (assign_parms): Set MEM_IN_STRUCT_P when creating a + MEM for a aggregate passed by reference. + * expr.c (expand_expr, INDIRECT_REF case): Set MEM_IN_STRUCT_P + when dereferencing an aggregate. + + * sched.c (sched_note_set): Add missing parens. + + * sparc.md: Delete unnecessary clobbers from all SCC patterns. + + * integrate.c (expand_inline_function): Correct handling of arguments + passed by invisible reference. + + * cse.c (canon_hash): Compute hash code for SUBREG same as we do + for REG. Otherwise, SUBREG hash codes can change when qty_const + changes, which results in duplicate SUBREG entries, which can + cause a crash. + +Wed Oct 9 15:55:42 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) + + * cccp.c (main): Update MAX_INCLUDE_LEN if GCC_EXEC_PREFIX gets into + the act. + + * xm-a29k.h: Change copyright message back to GPL version 2. + * xm-a29k-ultra.h: Use GPL version 2 copyright. + + * reload1.c (reload): Put array size in cast, to prevent compiler + warning. + + * dwarfout.c (type_attribute): Check for ERROR_MARK nodes. + +Wed Oct 9 13:59:22 1991 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * toplev.c (float_signal): Reenable handler. + + * configure: Comment out various options not yet updated. + + * cp-*.c, cp-*.h: Renamed from cplus-*.[ch]. + * Makefile.in: Renaming here also. + + * x-*: Renamed from make-*. + * Makefile.in (tmake_file, xmake_file): New vars. + (Makefile): Depend on them. + * configure: Replace host_make_var_file with host_xmake_file. + Handle tmake_file also, for target machine. + Form file names from x- and t-. + Rearrange use of temporary files during editing of Makefile. + + * t-mips: Most of x-mips moved here. + * t-decrose: Likewise from x-decrose. + + * xm-a29k-ult.h: Renamed from xm-a29k-ultra.h. + + * Makefile. in (install-common): Don't handle `collect' specially. + It should be in EXTRA_PASSES if it is needed. + + * cse.c (simplify_binary_expression): Use float handler for DF like SF. + Don't warn about traps; leave them for run time. + + * tm-hp9k320.h (SIZE_TYPE): New definition. + Note: this affects tm-3b1.h by inheritance. Not sure that's right. + +Wed Oct 9 12:15:40 1991 Tom Wood (wood at dg-rtp.dg.com) + + * rtl.def (TRAP_IF): Make TRAP into a conditional trap. + * rtl.h (TRAP_CONDITION): Define. + * rtlanal.c (reg_referenced_p may_trap_p): Deal with TRAP_IF properly. + (volatile_refs_p side_effects_p): Not currently true for TRAP_IF. + +Wed Oct 9 03:55:21 1991 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * make-mips (BISONFLAGS): Assignment deleted. + + * real.h (REAL_VALUE_MINUS_ZERO): New macro. + * fold-const.c (target_minus_zero): New function. + * tm-sun2os4.h (ASM_OUTPUT_FLOAT, ASM_OUTPUT_FLOAT_OPERAND): + (ASM_OUTPUT_DOUBLE, ASM_OUTPUT_DOUBLE_OPERAND): + Use REAL_VALUE_ISINF, REAL_VALUE_MINUS_ZERO. + +Tue Oct 8 17:56:13 1991 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * c-decl.c (duplicate_decls): If redeclaring builtin as static, + replace the old decl. + + * tm-seq386.h (HARD_REGNO_MODE_OK): Copy usual def into override def. + + * tm-news.h (CPP_PREDEFINES): Get rid of invalid conditionals. + * tm-tower.h: Likewise. + + * tm-gmicro.h (MODES_TIEABLE_P): Fix typo. + + * ns32k.md (rotrsi3): Fix typo `NEGATE' for `NEG'. + + * c-typeck.c (mark_addressable): Handle CONSTRUCTOR. + * expr.c (expand_expr): Handle addressable contructors. + +Tue Oct 8 14:42:56 1991 Tom Wood (wood at dg-rtp.dg.com) + + * expmed.c (lshift_value): Ensure the shift amount is in range. + +Mon Oct 7 20:45:35 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) + + * integrate.c (function_cannot_inline_p, save_for_inline_copying, + save_for_inline_nocopy, expand_inline_function, + output_inline_function): Use GET_RTX_CLASS. + + * listing: Remove RCS Author and Log fields. + + * cse.c (exp_equiv_p): Fix typos in comments/spacing. + * emit-rtl.c: Likewise. + * expmed.c (store_fixed_bit_field): Likewise. + * integrate.c (subst_constants): Likewise. + + * longlong.h: Again fix same typo previously fixed Sept 5. + +Mon Oct 7 17:28:23 1991 Michael Meissner (meissner at osf.org) + + * xm-mips.h (MIPS): Define MIPS to 1 instead of nothing, so + mips-tfile will compile once again. + +Mon Oct 7 17:10:32 1991 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * cccp.c (main): Pedantically warn if no newline at end of file. + (finclude): Likewise. + + * c-decl.c (grokdeclarator): funcdef_flag overrides parm level. + +Sun Oct 6 16:37:31 1991 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * sparc.md (peephole for lo-sum and load df): Use output_move_double. + + * tree.h (DECL_BUILT_IN_NONANSI): New flag. + * c-decl.c (init_decl_processing): Set flag for `alloca'. + + * c-decl.c (duplicate_decls): Rearranged to reduce conditionals. + Allow redefining built-in functions as static even if new decl + is not a function. Also allow if built-in is not ANSI. + + * out-sparc.c (output_move_double): Fix typo in test for using ldd. + +Sun Oct 6 12:56:19 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * expr.c (expand_expr, case COND_EXPR): Rename var added in last + change; some C compilers don't like "optab optab;". + +Sun Oct 6 09:26:55 1991 Michael Tiemann (tiemann at cygnus.com) + + * cplus-method.c (build_overload_name): When walking up contexts, if + CONTEXT becomes a _TYPE node, point it at the _DECL node for the + type. + + * cplus-decl2.c (grokclassfn): Paremeter COMPLAIN deleted. No + longer performs sanity check by itself. + (check_classfn): New function. Performs sanity check that + `grokclassfn' used to do. All callers changed. + + * tree.h (struct tree_decl): Add new ignored_flag; delete + lang_flag_8 to make room. + (DECL_IGNORED_P): New macro. + (DECL_LANG_FLAG_8): Deleted. + * cplus-dbxout.c (dbxout_type): Use this macro instead of + ANON_AGGRNAME_P. + * cplus-decl.c (pushtag): Set DECL_IGNORED_P when appropriate. + * cplus-decl.c (duplicate_decls): Ensure DECL_IGNORED_P remains + consistent. + + * cplus-decl.c (grokfndecl): If we have an overloaded operator, set + the DECL_NAME to something that dbxout.c can handle. + * cplus-method.c (hack_operator): Change this function to handle + this new behavior. + * cplus-init.c (do_friend): Ditto. + +Sat Oct 5 14:32:01 1991 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * expmed.c (expand_mult): Avoid fetching memory more than once. + + * tm-ultrix.h (DOLLARS_IN_IDENTIFIERS): Define as 1. + + * expr.c (expand_builtin): Clarify error message for BUILT_IN_NEXT_ARG. + +Sat Oct 5 08:42:02 1991 Michael Tiemann (tiemann at cygnus.com) + + * cplus-decl.c (clear_anon_tags): New function. + (make_anon_name): Moved here from cplus-method.c. + * cplus-lex.c (check_for_missing_semicolon, note_list_got_semicolon): + call `clear_anon_tags' when done. + * cplus-dbxout.c (dbxout_type): No longer test ANON_AGGRNAME_P for + TYPE_NAMEs that are IDENTIFIER_NODES. They no longer appear in GNU + C++. Also, we can rely on the fact that there are no anon aggrnames + in tag lists. + + * cplus-decl.c (xref_tag): Set TREE_VEC_LENGTH (BINFOS) to the + number of basetypes that were actually accepted. + + * cplus-parse.y (datadef, fndef): Accept `extern "C"' as a storage + class specifier. + + * cplus-init.c (build_new): Handle allocating types whose TRUE_TYPEs + start off as ARRAY_TYPEs. + + * cplus-typeck.c (build_unary_op): We don't need to wrap + CURRENT_CLASS_DECL in a NON_LVALUE_EXPR when taking the address of + C_C_D. + + * cplus-init.c (resolve_offset_ref): Fix error message for + non-static member references. Also, don't crash if EXP is not a + TREE_LIST or an OFFSET_REF. + + * cplus-expr.c (cplus_expand_expr): Handle OFFSET_REFs. + + * cplus-typeck.c (build_binary_op_nodefault): If PEDANTIC, don't + permit comparisons between pointers and integers. + + * cplus-decl2.c (explicit_warn_return_type): New variable. + * cplus-decl.c (grokdeclarator): Test `explicit_warn_return_type' + instead of `warn_return_type'. + + * cplus-decl.c (grokdeclarator): Fix criterium for deciding whether + to turn a FUNCTION_TYPE declaration into a METHOD_TYPE declaration + based on FRIENDP and STATICP. + (implicitly_declare): If PEDANTIC, treat this as an error. + + * cplus-cvt.c (convert_to_integer): Make anachronisms errors if + PEDANTIC is nonzero. + + * cplus-typeck.c (convert_for_assignment): If PEDANTIC, don't let + void * convert to non-void* types. Similarly, don't let const* + pointers be assigned to non-const* pointers. Similarly for signed + vs. unsigned pointers. + (warn_for_assignment): Add new parameter SEVERE. + + * cplus-decl.c (push_overloaded_decl): If PEDANTIC, give error when + functions overload variables. + + * cplus-decl2.c (grokfield): If PEDANTIC, don't let fields have + initializers (conditionalized on PEDANTIC). + * cplus-class.c (finish_struct): Set TYPE_GETS_{ASSIGNMENT,INIT_REF} + for UNION_TYPE. + +Sat Oct 5 06:52:29 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * expr.c (expand_expr, case COND_EXPR): Case for X ? A + 1 : A can + also handle MINUS_EXPR and BIT_*_EXPR. + + * rtl.h (copy_rtx_if_shared): Declare here. + * emit-rtl.c (unshare_copies): Delete unused variable. + (copy_rtx_if_shared): No longer static. + (reset_used_flags): New function. + * combine.c (copy_substitutions): Deleted. + (try_combine): When making new insns, ensure that we do not have any + improper sharing by using copy_rtx_if_shared; no longer call + copy_substitutions. + + * combine.c (try_combine): If an insn that is a PARALLEL of two sets + isn't recognized and the result of the second SET is unused, ignore it. + +Fri Oct 4 15:25:33 1991 Michael Tiemann (tiemann at cygnus.com) + + * cplus-decl.c (set_identifier_type_value): New function. Change + all callers of macro SET_IDENTIFIER_TYPE_VALUE to call this function + instead. + + * cplus-decl.c (pushdecl): Back out Sep 26 change. ??? This problem + really has to be solved in a more global fashion. + (struct binding_level): New field `type_shadowed' for typenames that + get shadowed. All pop* routines that restore from shadowed lists + now restore IDENTIFIER_TYPE_VALUE from the `type_shadowed' field. + +Fri Oct 4 14:47:52 1991 Michael Meissner (meissner at osf.org) + + * sdbout.c (include of syms.h): Don't include <syms.h> on MIPS + systems, since the system does not provide the file, rather use + "gsyms.h". This is a problem for Silicon Graphics, and the System V + varient on RISC-OS, both of which define the USG macro. Patch from + jonathan@isor.vuw.ac.nz. + +Fri Oct 4 13:37:11 1991 Tom Wood (wood at dg-rtp.dg.com) + + * stor-layout.c (get_best_mode): Add a volatilep parameter + indicating that the smallest mode is desired. + * expmed.c, fold-const.c: All callers changed. + (optimize_bit_field_compare): Initialize {l,r}volatilep now that + they are used. + +Thu Oct 3 22:08:45 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) + + * objc-actions.h (CLASS_SUPER_NAME): Change type.basetypes to + type.binfo so that it will compile. + +Thu Oct 3 06:46:38 1991 Niklas Hallqvist (niklas at appli.se) + + * cplus-tree.h (PARANOID): Don't define if already defined. + ({SET,CLEAR}_CLASSTYPE_MARKED*): New macros needed to get through + C compilers who don't allow comma expressions as lvalues. + ({SET,CLEAR}_BINFO_*): Ditto. + + * cplus-init.c: Use new SET/CLEAR macros. + + * cplus-search.c: Ditto. + + * cplus-decl.c: Ditto. + (lookup_tag): Accept *_DECLs as nodes in the context chain. + (lookup_nested_type): Accept FUNCTION_DECLs not only as head of + the context chain, but at any place in it. + +Thu Oct 3 06:42:08 1991 Michael Meissner (meissner at osf.org) + + * c-decl.c (c_decode_option): Add new switch -Wparentheses and + -Wnoparentheses to control whether GCC warns about adding extra ()'s + around a subexpression. Make -Wparentheses default behavior. + (warn_parentheses): New global variable. + + * c-tree.h (warn_parentheses): New variable. + + * c-typeck.c (parser_build_binary_op): Check for warn_parentheses + before emitting warnings about adding (). + +Wed Oct 2 20:51:04 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) + + * gcc.texinfo: Correct documentation for CONSTANT_ADDRESS_P, + CONSTANT_P, and HIGH. + +Wed Oct 2 15:08:32 1991 Michael Tiemann (tiemann at cygnus.com) + + * cplus-class.c (modify_vtable_entries): Fix error in computing + offsets to use for virtual functions from virtual baseclasses. + * cplus-except.c (lookup_exception_type): Change local variable name + `binfo' to `link'. + * cplus-lex.c (yylex): Cast shorts to (long) when building longlong. + +Wed Oct 2 11:32:35 1991 Michael Meissner (meissner at osf.org) + + * tm-encrose.h (new file): New configuration file for Encore + Multimax running OSF/1, and using the OSF/rose object formats. + +Wed Oct 2 08:33:08 1991 Tom Wood (wood at dg-rtp.dg.com) + + * tree.h (TYPE_UID): Add this field to TYPE nodes. + * tree.c (make_node): Initialize it. + * dwarfout.c (TYPE_NAME_FMT): Use TYPE_UID rather than TREE_UID. + (equate_type_number_to_die_number): Discard type qualifiers. + (output_typedef_die): Don't use equate_type_number_to_die_number. + +Wed Oct 2 08:04:57 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * cse.c (cse_process_notes): Fix typo; missing arg in return. + +Wed Oct 2 06:56:13 1991 Ron Guilmette (rfg at ncd.com) + + * Makefile.in (ENQUIRE_CFLAGS): Remove duplicate use of GCC_CFLAGS. + + * Makefile.in (cplus-tab.c): Adjust number of expected conflicts. + + * Makefile.in (mostlyclean): Remove collect and collect2. + + * tm-svr4.h: Add new file; prototype for System V, Release 4. + +Tue Oct 1 23:00:13 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * reload.c (find_reloads_address): Fix error in previous change; + clean up REG case so it is easier to read. + +Tue Oct 1 14:05:46 1991 Michael Tiemann (tiemann at cygnus.com) + + * cplus-decl.c (finish_{decl,function}): Use new function + `note_debug_info_needed' instead of setting CLASSTYPE_ASM_WRITTEN. + * cplus-search.c (note_debug_info_needed): New function. + Recursively set CLASSTYPE_ASM_WRITTEN in a hierarchy when called. + + * cplus-class.c (finish_struct): If DECL_NAME of the BASE_FNDECL is + NULL_TREE, we know we're looking at a virtual destructor. + +Tue Oct 1 09:47:25 1991 Michael Meissner (meissner at osf.org) + + * tm-mips.h (OPTIMIZATION_OPTIONS): Enable scheduling insns now for + -O2 optimization. + + * Makefile.in (STAGESTUFF): Add $(EXTRA_PASSES), to allow moving any + extra passes into the stage[1234] directories, and to remove the + extra stuff when doing make clean. + +Tue Oct 1 08:35:11 1991 Tom Wood (wood at dg-rtp.dg.com) + + * dwarfout.c (FUNC_END_LABEL_FMT, TYPE_NAME_FMT): Undo this change. + + * c-decl.c (grokdeclarator): When making an unsigned bitfield + type from a typedef, preserve the size. A typedef of an + explicitly signed typedef is explicitly signed. + +Mon Sep 30 22:51:07 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) + + * out-sparc.c: Fix misc typos and indentation problems. + Delete all unnecessary extern declarations. + Include "recog.h". + Consistently use Pmode instead of SImode for addresses. + Use macros defined in tm-sparc.h instead of magic numbers. + (reg_or_0_operand): Accept CONST_DOUBLE zero. + (symbolic_operand): Accept CONST_DOUBLE. + (move_operand): Accept arith_double_operand ('H'), SMALL_INT + ('I'), and sethi operands ('K'). + (move_pic_label): Renamed from move_reg_or_immed_operand. If + flag_pic is true, accept a LABEL_REF, otherwise fail. + (arith_double_operand): Accept SMALL_INT ('I') CONST_INTs. Correct + computation of when a CONST_DOUBLE is a SMALL_INT ('H'). + (eligible_for_epilogue_delay): Accept arith_double_operands. + (emit_move_sequence): Handle arith_double_operands. Handle + loading of labels for pic, need to add a clobber of %o7 (reg 15). + (find_addr_reg): Don't return FRAME_POINTER_REGNUM. It is not + safe to play around with the frame pointer. + (hard_regno_mode_ok): Change from short to int array. + (output_pic_sequence, output_pic_sequence_2, fp_zero_hook): Delete + long obsolete routines. + (print_operand): Delete support for obsolete 'S' and 'H' cases. + (output_double_int): New function. Outputs assembler code for 64 + bit (DImode) values. + + * sparc.md: Fix misc typos and indentation problems. + Delete unnecessary (set_attr "type" "binary") lines. + Consistently use %a1 in sethi and ori output templates. + Consistently use Pmode not SImode for addresses. + Consistently use the same predicate for both operand 1 and + operand 2 in commutative patterns. Don't use same predicate in + non-commutative patterns. + Consistently use \; to separate multiple instuctions. + Change "r%" to "%r". + (define_attr length): Handle arith_double_operand predicate. + (movsi): Combine two movsi patterns into one, except for loading + of pic labels. New pattern to load pic labels, which clobbers %o7. + (movhi): Combine two movhi patterns into one. + (movqi): Combine two movqi patterns into one. + (movdi): Discourage the Q/f constraint option so that DImode + variables won't end up in floating pointer registers. + (floatsisf2, floatsidf2): Delete patterns accepting a const_int + operand. These should never be matched. In remaining patterns, + accept nonimmediate_operand instead of general_operand. + (adddi3, subdi3, anddi3, iordi3, xordi3, xnordi3, one_cmpldi2): + Accept arith_double_operand predicates and "HI" constraints. + (last peephole): Reg 0 should be CCmode not SImode. + + * tm-sparc.h: Fix misc typos. + (WORDS_BIG_ENDIAN): Indicate why it must be true. + (hard_regno_mode_ok): Change from short to int array. + (CONST_DOUBLE_OK_FOR_LETTER_P): Add new 'H' constraint, for DImode + constants that can fit in an immediate field. + (CONSTANT_ADDRESS_P): Accept any CONSTANT_P, including + CONST_DOUBLEs. + (LEGITIMATE_CONSTANT_P): Accept CONST_DOUBLEs if match 'H' + constaint. + (RTX_COSTS): Define cost for FLOAT to be more expensive than + CONST_DOUBLEs, so that cse will prefer the latter. + (ASM_OUTPUT_DOUBLE_INT): New macro to output DImode constants. + + * sched.c (schedule_block): When calculating register lifetime + info, handle CLOBBERs and USEs. The code that adds REG_DEAD notes + already handles them. + (update_n_sets): New function, subroutine of update_links. + Given a SET or CLOBBER, updates reg_n_sets as appropriate, + depending on whether this is in a deleted or a new insn. + (update_links): Call update_n_sets to subtract info for split + insn, and add info for insns resulting from the split. + +Mon Sep 30 19:06:50 1991 Michael Meissner (meissner at osf.org) + + * ecoff-cmp (TMP): Fix typo, from jonathan@isor.vuw.ac.nz. + + * mips-tfile.c (toplevel): Don't declare _flsbuf under Silicon + Graphics, from jonathan@isor.vuw.ac.nz. + +Mon Sep 30 15:54:02 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * cse.c (cse_process_notes): New function. + (cse_basic_block): Call it for each insn. + (count_reg_usage): Count usage in a REG_EQUAL note. + (delete_dead_from_cse): Call count_reg_usage with insn, not pattern. + * loop.c (scan_loop): Replace a register used in a REG_EQUAL note. + (find_single_use_in_loop): Two uses in single insn doesn't disqualify. + Allow argument to be REG_NOTES. + (count_loop_regs_set): Call find_single_us_in_loop on REG_NOTES. + +Mon Sep 30 15:47:03 1991 Michael Tiemann (tiemann at cygnus.com) + + * cplus-call.c (ideal_candidate): Return 0 if the top two candidates + have identical rankings but incompatible types. + + * cplus-lex.c (cons_up_default_function): Set DECL_NAME (FN) to + NULL_TREE in order to mark the function as being generated by the + compiler. + * cplus-init.c (emit_base_init): Change to use this interface. + * cplus-decl.c (duplicate_decls, redeclaration_error_message): Ditto. + (store_parm_decls): Ditto. + * cplus-decl2.c (grokclassfn): Ditto. + * cplus-dbxout.c (dbxout_type_methods): Ditto. + * cplus-class.c (finish_struct_methods): Ditto. + * cplus-method.c (fndecl_as_string): Ditto. + * cplus-search.c (lookup_fnfields_1): Ditto. + (compute_visibility): Ditto. + * cplus-typekc.c (build_function_call): Ditto. + * cplus-tree.c (lang_printable_name): Ditto. Also use + DECL_ASSEMBLER_NAME instead of DECL_NAME in DESTRUCTOR_NAME_P test. + * calls.c (expand_call): Change also needed here. + +Mon Sep 30 15:31:53 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) + + * dbxout.c: Include <param.h> before config.h, because it may define + MIN and MAX. + + * fold-const.c (const_binop): Delete incorrect short cut for + (0 - const). + + * expr.c (do_tablejump): Pass GET_MODE (index) instead of Pmode to + emit_cmp_insn, because the latter fails when integers and pointers + are different sizes. + + * combine.c (subst): When checking to see if associating helps + simplify rtl, make sure we pass the constant operand if any as the + second one if this is a commutative operation. + + * cccp.c (rescan): Save obufp_before_macroname as an offset from + the start of op->buf instead of as a pointer into the middle, in + case op->buf gets realloced. + +Mon Sep 30 14:07:20 1991 Tom Wood (wood at dg-rtp.dg.com) + + * dwarfout.c (FUNC_END_LABEL_FMT, TYPE_NAME_FMT): TREE_UID is + unique only if the node is TREE_PERMANENT. Augment the spelling + of labels using TREE_UID with the TREE_UID of the current function. + + Changes from Ron Guilmette: + * dwarfout.c (output_symbol): Deal with formal parameters with an + incomplete tagged type. + (output_bound_representation): Fix for arrays with dynamic bounds. + + Changes from Jim Wilson: + * dwarfout.c: Define strrchr to rindex for non USG systems. + Use DECL_BIT_FIELD_TYPE not DECL_BIT_FIELD to test for bitfields. + +Sun Sep 29 16:29:08 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * reload.h (indirect_symref_ok): New variable. + * reload.c (find_reloads_address): Remove shadowing decls of `tem'. + Only allow certain forms addresses as indirect; check + indirect_symref_ok to see if (mem (symbol_ref ...)) is a valid + address; if not that form or simple, not valid indirect address. + * reload1.c (indirect_symref_ok): Define here. + (init_reload): Initialize vars used to determine which addrs are valid. + (reload): Don't do it here. + Update comment to relect what `alter_regs' currently does. + + * tree.h (struct tree_decl): Add new from_inline_flag; delete + lang_flag_9 to make room. + (DECL_FROM_INLINE): New macro. + (DECL_LANG_FLAG_9): Deleted. + * c-decl.c, cplus-decl.c (pushdecl): Use DECL_FROM_INLINE instead of + TREE_INLINE where appropriate. + * cplus-decl.c (finish_decl): Likewise. + * integrate.c (integrate_parm_decls, integrate_decl_tree): Set + DECL_FROM_INLINE instead of TREE_INLINE. + * print-tree (print_node): Print DECL_FROM_INLINE. + Delete reference to DECL_LANG_FLAG_9. + +Sun Sep 29 12:49:47 1991 Michael Tiemann (tiemann at cygnus.com) + + * c-decl.c, c-typeck.c, cplus-decl.c, toplev.c: + Set/test TREE_ADDRESSABLE of DECL_ASSEMBLER_NAME, not DECL_NAME for + function decls. + + * cplus-class.c: Export `current_lang_stack' and + `current_lang_base'. + cplus-decl.c (push_overloaded_decl): Allow redeclaration of a + function that was previously given a linkage specification at + top-level (i.e., not in an explicit linkage arena). + + * cplus-typeck.c (convert_arguments): Strip the `&' from an + overloaded function passed as an argument into an ellipses. + +Sat Sep 28 15:37:26 1991 Michael Tiemann (tiemann at cygnus.com) + + * cplus-typeck.c (build_x_binary_op): We have to special-case the + failure of MEMBER_REF to be overloaded as an operator. + +Sat Sep 28 10:44:36 1991 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * reload1.c (reload): If we find at some point that we need + caller-saves, disable elimination of the frame pointer. + + * reload.c (subst_reloads): Re-enable code to prevent making + a SUBREG inside a SUBREG. + +Sat Sep 28 00:40:51 1991 Ken Raeburn (raeburn@cygnus.com) + + * cplus-pt.c (do_pending_expansions): Adjust "DECIDE" macro to avoid + compiler warning from Sun cc. + +Fri Sep 27 17:30:39 1991 Per Bothner (bothner at cygnus.com) + + * configure[.in]: Move most of the target_vendor switch + entries (e.g. next, sun, sony) from the m88k architecture to m68k, + where they belong. + +Fri Sep 27 16:21:04 1991 Michael Tiemann (tiemann at cygnus.com) + + * cplus-search.c (recursive_bounded_basetype_p): Add new parameter + UPDATE_CHAIN so that function now behaves as comment prescribes. + * cplus-search.c (compute_visibility): Fix error in conversion of + data structures from list-based to binfo-based nodes. + +Fri Sep 27 07:05:57 1991 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * c-decl.c (pushdecl): Fix typo: TREE_EXTERNAL misspelled. + +Thu Sep 26 17:36:14 1991 Michael Meissner (meissner at osf.org) + + * tm-mips.h (ASM_FINAL_SPEC): Handle gcc -c -o foo bar.c. + + * tm-decrose.h (ASM_FINAL_SPEC): Handle gcc -c -o foo bar.c. + + * make-decrose (cplus-lex rule): Remove hacks in compiling + cplus-lex, since bug in 1.39 inlining was fixed to allow us to + compile the module normally. + +Thu Sep 26 11:53:49 1991 Ken Raeburn (raeburn@cygnus.com) + + * cplus-tree.h (TEMPLATE_TYPE_*): Use slower versions that uses tree + structures more properly, so accessor macros don't lose. + + * cplus-pt.c (end_template_parm_list): For type parameters, make the + new decl be the name of the "type". + + * Makefile.in (cplus-tab.{c,h}): There are now 30 s/r conflicts. + + * cplus-class.c (resolves_to_fixed_type_p, case CALL_EXPR): Deleted + duplicate code. + + * cplus-decl.c (poplevel): Deleted duplicate code saving info on + accesses to external via non-global decls. + (pushdecl): For typedef of unnamed type, don't store new name for + type if not at global binding scope. Also, don't need to test for + TYPE_DECL when previous conditional guarantees it. + (start_decl): Clear TREE_PUBLIC flag of templates. + (finish_decl): For variables in static storage with constructors, + force it into data section (out of common storage) only if the name + is externally visible. + + * cplus-gc.c (type_needs_gc_entry): If the type has no base types, + don't check to see whether they need gc entries. + + * cplus-parse.y (yyprint): Handle SCSPEC and AGGR. + + * cplus-pt.c (end_template_decl): Clear IDENTIFIER_TYPE_VALUE slots + for type parameters, then call adjust_type_value. + (instantiate_class_template): Do nothing if classname is + error_mark_node. + (mangle_class_name_for_template): Make buf a static array, since + its address gets returned. + + * reload1.c (reload): Provide array size in cast, to avoid compiler + warnings. + + From Niklas Hallqvist: + * cplus-tree.h (struct template_info): Added new field "aggr", which + will be class_type_node or struct_type_node for class or struct + templates. + * cplus-parse.y (template_def): Pass current_aggr to + end_template_decl. + (template_instantiation): Use aggr field. + * cplus-pt.c (end_template_decl): Argument IS_CLASS is now a tree, + used to set the aggr field. + (overload_template_name): Use aggr field. + + Suggested by John Carr: + * cplus-dbxout.c (dbxout_tags): Don't omit argument to + dbxout_finish_symbol. + (dbxout_continue): Omit declaration and definition if + DBX_CONTIN_LENGTH is not greater than zero, like its calls. + (print_int_cst_octal): Ditto, based on defined(WINNING_GDB). + * cplus-decl.c (GNU_end_scope): Never used; deleted. + (pushdecl): Vars nglobals, len are used only in code under "#if 0"; + comment out decls as well. + * cplus-gc.c (expand_gc_prologue_and_epilogue): Variable "head" was + unused; deleted. + * cplus-init.c (expand_aggr_vbase_init_1): All args are type tree. + (expand_vec_init): Don't return without a value when "initializer + ends prematurely". + * cplus-method.c (build_overload_nested_name): Pass all necessary + arguments in recursive call. + * cplus-search.c (pop_type_level): Cast argument to pop_stack_level + to proper type. + (push_memoized_context): Ditto for push_type_level. + (my_copy_node): Unused; deleted. + (lookup_fnfields): Add missing arg to get_binfo. + (lookup_field): Ditto. + + From Niklas Hallqvist: + * cplus-decl.c (push_to_top_level): Handle case of function with + unnamed parms. + (pop_from_top_level): Ditto. + +Thu Sep 26 07:46:08 1991 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * loop.c (scan_loop): Don't eliminate register that is set by + consecutive insns. + +Wed Sep 25 18:53:52 1991 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * c-decl.c (pushdecl): Suppress warnings about mismatch of + extern decl when it comes from inlining a function. + + * emit-rtl.c (set_new_first_and_last_label_number): New function. + (max_label_num): Use last_label_num if valid. + * integrate.c (output_inline_function): Call set_new_... + +Wed Sep 25 18:37:36 1991 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * flow.c (find_auto_inc): Set BLOCK_NUM of new insns emitted while + making an auto-inc. + + * Makefile.in (getopt*.o): Each file depends on its .c file and on + the compiler executable files. + +Wed Sep 25 18:18:46 1991 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * toplev.c (debug_info_level): New variable. + * flags.h (debug_info_level, enum debug_info_level): New declarations. + * toplev.c (main): Rewrite handling of -g* and -G* options. + Now -G indicates use of GDB extensions. -g0 removed. + +Tue Sep 24 03:20:07 1991 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * alloca.c: Test __STDC__, not X3J11. + Do nothing if alloca is defined as a macro. + +Tue Sep 24 09:15:17 1991 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * global-alloc.c (eliminable_regset): New variable. + (global_alloc): Compute it and use to turn off conflicts. + Refine computation of no_global_alloc_regs when ELIMINABLE_REGS is + defined. + (mark_elimination): Don't do anything with allocnos and don't do + any allocation. + + * reload1.c (eliminate_regs_in_insn): Try to re-recognize insn if + we replaced a (set X (plus Y Z)). + +Tue Sep 24 06:34:04 1991 Michael Tiemann (tiemann at mole.gnu.ai.mit.edu) + + * cplus-tree.c (virtual_member): Change TREE_VALUE accessor macro to + BINFO_TYPE. + * tree.h (BINFO_TYPE): New name for BINFO_VALUE. + * All cplus-* files: Changed to reflect new name. + +Mon Sep 23 12:56:11 1991 Michael Meissner (meissner at osf.org) + + * tm-mips.h (ASM_SPEC): Fix typo, and close {}'s properly. + +Mon Sep 23 10:30:51 1991 Michael Tiemann (tiemann at cygnus.com) + + * cplus-tree.c (propagate_assoc_offsets): Keep relative offsets of + child_child correct when copying children. + + * cplus-class.c Use `BINFO_VALUE' instead of `TREE_VALUE' when + accessing the type value of a binfo node. + * cplus-decl.c (finish_function): Ditto. + * cplus-init.c (build_vbase_delete): Ditto. + +Mon Sep 23 06:11:56 1991 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * flow.c (reg_n_refs): Use int, not short. Short can overflow + if we have very deep loop nesting. + (allocate_for_life_analysis): Allocate reg_n_refs as int. + * regs.h (reg_n_refs): Now int. + * sched.c: Delete duplicate definitions of objects defined in regs.h. + + * combine.c (try_combine): Correctly check for independent insns + in a PARALLEL. + + * combine.c (distribute_note, case REG_DEAD): If we discover a register + is never used, see if we can delete the insn that set it. + +Sun Sep 22 19:24:52 1991 Michael Tiemann (tiemann at cygnus.com) + + * cplus-type2.c (build_functional_cast): Don't forget a valid + function call if we found one (and nothing more). + +Sun Sep 22 07:48:18 1991 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * rtlanal.c (rtx_varies_p, case REG): Correct typo; sense of comparison + was backwards. + + * global-alloc.c (mark_elimination): Don't use HARD_REG_SET macros + to access basic_block_live_at_start. + + * reload1.c (set_label_offsets): New function. + (offsets_known_at, offsets_at): New variables. + (reload): Allocate and initialize them. + Set each label in FORCED_LABELS to be at initial offsets. + Call set_label_offset on all insns that might involve labels. + Use GET_RTX_CLASS when appropriate. + (eliminate_regs, mark_not_eliminable): Ignore sets of FP when looking + for sets of a "to" register. + (eliminate_regs_in_insn): No longer suppress elimination for any + pair not at its initial offet at a jump. + + * combine.c (distribute_links): Correctly find the place to put a + link. Handle the case when we eliminate all uses of something that + we used to use; in that case, we must seach forward. + No longer need I3, I2, or ALL_ADJACENT arguments. + (try_combine): Change calls to distribute_links. + + * reload.c (find_equiv_reg): Use GET_RTX_CLASS when appropriate. + If GOAL is a MEM whose address varies, check whether registers + that are SET appear in the address rather than assuming they do. + Ensure REG_INC note is a REG; ignore it if not. + + * rtlanal.c (rtx_varies_p): Rework to use switch statement. + Check for {frame,arg}_pointer_rtx, not just register number. + (rtx_addr_can_trap_p): New function. + (may_trap_p): Use rtx_addr_can_trap_p instead of rtx_varies_p. + * genattrtab.c: Define {frame,arg,stack}_pointer_rtx for rtlanal.c. + + * combine.c (make_extraction): Make a ZERO_EXTRACT for something with + pos == 0 if it will be placed in a SET_DEST. + + * expmed.c (expand_shift): Rotate case was missing return statement. + extzv case had wrong arg to delete_insns_since. + Remove unneeded calls to delete_insns_since. + Allow BITS_BIG_ENDIAN to vary at run-time. + Use variable TEMP in a consistent manner. + Other miscellaneous changes and cleanups were made. + + * flow.c (max_uid_for_flow): New variable. + (flow_analysis): Compute maximum uid into max_uid_for_flow; if + we might have auto-inc, leave some space. + (find_auto_inc): Verify that the uid's of the insns we make are + within the allocated space of our per-insn tables. + Use get_insns instead of gen_sequence. + + * global-alloc.c (retry_global_alloc): When we allocate a register, + update regno_reg_rtx and mark the allocated register live. + (mark_elimination): New function. + * reload1.c (reload): Call mark_elimination for every elimination + we have been able to do. + (spill_hard_reg): No longer need to call mark_home_live. + +Sun Sep 22 02:07:55 1991 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * fixincludes: Redirect cmp output to /dev/null; don't close it. + + * varasm.c (assemble_function): Handle ASM_OUTPUT_FUNCTION_PREFIX. + + * final.c (final_scan_insn): No need to goto text section + for label on jump table. We're normally in the text section. + +Sat Sep 21 14:59:32 1991 (Eric Youngdale at youngdale@v6550c.nrl.navy.mil) + + * make-cc1.com: Fix typo in code that decides if bison needs to be + run. Also, display a message when building the compiler that informs + the user about the need to update the assembler. + +Sat Sep 21 17:23:07 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * loop.c (struct movable): Add field DEPENDENCIES. + (scan_loop): Remove mechanism based on REG_TO_FORCE and + MOVABLE_TO_FORCE. Replace with use of new field. + Optionally allocate and initialize reg_single_usage and pass it to + count_loop_regs_set. + If an invariant register is used exactly once and this is a loop + that has a CALL_INSN, try to substitute the definition of the register + into its use. + (record_excess_regs): Fix typo in sense of checking in NOT_IN_THIS; + only check pseudo-regs. + (libcall_other_reg): Always return the list of registers used, + no matter how many there are. + (combine_movable): Only combine two movables if they have the same + dependencies. + (move_movables): Can only move something if its dependencies have + already been moved. + (find_single_use_in_loop): New function. + (count_loop_regs_set): Delete code that prevents moving a reg that + is used as a function address. + Call find_single_use_in_loop when required. + +Sat Sep 21 16:28:34 1991 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * c-typeck.c (build_unary_op): + Handle const and volatile lvalues correctly in ADDR_EXPR. + + * output.h (current_function_contains_functions): + Just declare it, don't define it. + + * cse.c (exp_equiv_p): New arg EQUAL_VALUES. All callers changed. + +Sat Sep 21 12:59:15 1991 Michael Tiemann (tiemann at cygnus.com) + + * cplus-parse.y (object_star): New rule. + (POINTSAT_STAR): New token. + * cplus-lex.c (init_lex): Define entry for MEMBER_REF. + GNU C++ now overloads `operator->*' according to ARM semantics. It + no longer attempts to implement operator->* as two distinct + operations. + +Fri Sep 20 18:08:07 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * combine.c (subst): Don't replace a CC0 or a PC in a SET_DEST if + FROM is the same thing. + + * combine.c (simplify_shift_const): Compute SHIFT_MODE at start of + loop and use its width, rather than width of RESULT_MODE, when checking + shift count. + +Fri Sep 20 10:55:55 1991 Michael Tiemann (tiemann at cygnus.com) + + * cplus-pt.c (uses_template_parms): Handle COMPONENT_REF case. + +Fri Sep 20 00:27:43 1991 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * c-typeck.c (build_modify_expr): When assigning to a cast, + convert value first to the type being cast to. + (build_unary_expr): Disallow adress of a cast. + + * explow.c (allocate_dynamic_stack_space): + Handle SETJMP_VIA_SAVE_AREA before rounding to STACK_BOUNDARY. + +Thu Sep 19 21:13:17 1991 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * Makefile.in (dist, gcc-*.tar, gcc-*.tar.Z): New targets. + + * jump.c (jump_optimize): In handling `if (...) x = a; else x = b;', + don't crash if scan reaches start of insns. + + * Makefile.in (protoize): Link with getopt.o and getopt1.o. + (unprotoize): Likewise. + (protoize.o): Depend on getopt.h. Pass -D options for include dirs. + (unprotoize.o): Likewise. + (getopt.o, getopt1.o): New targets. + + * protoize.c: Major rewrite by RFG and RMS. + +Thu Sep 19 09:58:25 1991 Tom Wood (wood at dg-rtp.dg.com) + + Changes from Ron Guilmette: + * dwarfout.c: Keep track of next_block_number correctly. + * final.c (final_scan_insn): Don't invoke dwarfout_{begin,end}_block + for the outermost block of a function. + +Thu Sep 19 06:16:34 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * reload.c (copy_replacements): New function. + * optabs.c (gen_move_insn): Don't call gen_lowpart while reloading + is in progress; it calls change_address, which wants to make pseudos. + + * combine.c (subst, case SET): Fix typo in last change. + + * combine.c (distribute_notes): When searching back for a place that + uses a register marked REG_DEAD, check for set and reference separately + since reg_overlap_mentioned_p doesn't check SET_DEST. + + * combine.c (simplify_shift_const): Correct handling of shift counts + that become out-of-range. + + * combine.c (expand_field_assignment): Don't allow sharing the RTL + for the inner object. + + * combine.c (can_combine_p, try_combine, record_value_for_reg): Use + reg_overlap_mentioned_p instead in reg_mentioned_p in most places. + (distribute_notes, distribute_links): Likewise. + (combinable_i3pat): New function, from try_combine. + (try_combine): Default I1DEST and I1SRC to zero. + New var I1_FEEDS_I3. + Delete code to validate I3's pattern from here; call combinable_i3pat + instead. + If a substitution returns a (clobber (const_int 0)), stop immediately. + Don't abort if substitution made new regs; just don't do combine. + (subst): If IN_DEST, don't replace a matching object. + Don't look at a REG as a SET_DEST. + If substitution inside a PARALLEL fails, give up immediately. + Return (clobber (const_int 0)) even for a SET whose operand fails. + (subst, case SET): Correctly test for low-order SUBREG. + Don't use gen_lowpart_for_combine; make SUBREG explicitly since it + can't handle modes larger than a word. + + * combine.c (subst, case NOT): Code for (not (ashiftx ..)) was too + general; only handle (not (ashift 1 X)). + (subst, case NEG): Handle (neg (ashift ...)). + (merge_outer_ops): Support NEG. + (simplify_shift_const, case NEG): Handle (ashift (neg ...)). + + * cse.c (simplify_binary_operation, case ROTATE, ROTATERT): + Rotating all one bits is just all ones. + +Thu Sep 19 01:08:14 1991 Michael Tiemann (tiemann at cygint.cygnus.com) + + * cplus-parse.h, cplus-decl.h: Remove trailing comma after the last + enum value in enum declarations. + + * cplus-type2.c (digest_init): Set TREE_PURPOSE of union initializer + when initializing a union by the first field. + + * cplus-method.c (fndecl_as_string): Test whether DECL_CLASS_CONTEXT + is NULL before using it. + (dump_aggr_type): New function. Print aggr type's context when + appropriate. + (dump_type{_prefix}): Use `dump_aggr_type' to print ENUMERAL_TYPE, + UNION_TYPE, and STRUCT_TYPE types. + + * cplus-decl.c (start_decl): Don't use DECL_CLASS_CONTEXT if DECL + has no DECL_LANG_SPECIFIC. + +Wed Sep 18 21:46:32 1991 Michael Meissner (meissner at osf.org) + + * mips-tfile.c (cur_proc_value): New static to remember the starting + location of the current function. + (add_procedure): Save current procedure location. + (parse_begin, parse_bend): Subtract cur_proc_value from location. + (parse_bend): Correct error messages. + The above changes are from bothner@cygnus.com. + + * tm-mips.h (ASM_FINAL_SPEC): Use -mno-mips-tfile to suppress + invoking mips-tfile, instead of using -g0. If -save-temps, preserve + the original .o file before mips-tfile is called. Pass the correct + name for the assembler file. + (MASK_MIPS_TFILE): New mask for -mmips-tfile, -mno-mips-tfile, set + to 0, since that switch is handled entirely in ASM_FINAL_SPEC. + (TARGET_FLAGS): Add -mmips-tfile, -mno-mips-tfile switches. + (MUST_SAVE_REGISTER): Allow $30 to be saved, even if not being used + as the frame pointer. + + * tm-decrose.h (ASM_FINAL_SPEC): Use -mno-mips-tfile to suppress + invoking mips-tfile, instead of using -g0. If -save-temps, preserve + the original .o file before mips-tfile is called. Pass the correct + name for the assembler file. + +Wed Sep 18 18:54:15 1991 Michael Tiemann (tiemann at cygint.cygnus.com) + + * cplus-*.c: Use DECL_CLASS_CONTEXT to figure out where a (static or + non-static) member function is declared, rather than trying to + divine the info from TYPE_METHOD_BASETYPE of the function's type. + +Wed Sep 18 15:38:52 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * c-decl.c (grokdeclarator): Error if nested function is extern. + +Wed Sep 18 02:41:08 1991 Per Bothner (bothner at cygnus.com) + + * cplus-typeck.c (convert_arguments): Don't crash if the + formal parameter type is unknown (type==NULL) and the + actual is a function. Do the default instead. + +Tue Sep 17 22:33:30 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * c-typeck.c (check_format): + No warning if types match except for signedness. + +Tue Sep 17 10:56:46 1991 Michael Tiemann (tiemann at cygint.cygnus.com) + + * cplus-decl.c (pushtag): When creating a TYPE_DECL that's in class + scope, allocate the space needed for DECL_CLASS_CONTEXT. + + * cplus-search.c (get_abstract_virtuals): If the BASE is not on the + main spine, look at the virtuals that come from the most derived + class that has BASE on its main spine. + * cplus-tree.h (VF_*): New macros for dealing with VFIELDS. + +Mon Aug 16 12:09:32 1991 (Eric Youngdale at youngdale@v6550c.nrl.navy.mil) + + * make.com: Fix typo. + +Tue Sep 17 15:13:39 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * c-common.c (shorten_compare): Always compute args with side effects. + + * varasm.c (decode_addr_const): Use SYMBOL_REF unchanged in 1st switch. + + * varasm.c (output_addressed_constants): Handle a CONSTRUCTOR in + an ADDR_EXPR correctly. + + * cccp.c (rescan): For unterm string, mention lineno of first newline. + + * fold-const.c (fold): Call optimize_bit_field_compare in constant case + even if not optimizing. + + * c-decl.c (finish_function): Don't clear DECL_INITIAL if nested. + (pop_c_function_context): Do it here instead. + +Tue Sep 17 11:30:32 1991 Michael Meissner (meissner at osf.org) + + * collect-osf.c (scan_prog_file): Recognize alternate forms for the + constructor and destructor names. + + * osf-main.c (_entry): Provide an alternative function (_entry) to + start up the static constructors/destructors. + +Mon Sep 16 05:35:21 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * combine.c (simplify_shift_const): Correct errors involving modes + to use for shift. + +Sun Sep 15 19:13:58 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * reload1.c (reload_as_needed): Remove code that deletes insns that + create equivalences. + (reload): Put it here so it is executed even if reload_as_needed + isn't called. + +Sun Sep 15 17:13:09 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * Makefile.in (GNULIB2_CFLAGS): Include GCC_CFLAGS. + (ENQUIRE_CFLAGS): Likewise (in place of plain CFLAGS). + + * genattrtab.c (main): Don't index by id->insn_code if negative. + + * genrecog.c (write_tree_1): Avoid pos[depth-1] if depth is 0. + +Sun Sep 15 15:19:16 1991 (Eric Youngdale at youngdale@v6550c.nrl.navy.mil) + + * make.com: Modify to allow direct submission to a batch queue. + Also, add instructions to build GNU C++ as well as GNU CC. + + * cccp.c (hack_vms_include_specification): If [000000] is present in + (implying a physical device or a rooted logical) try to open it. + If the open fails, then remove the [000000] (making the name suitable + for use with a non-rooted logical name) and return that. + +Sun Sep 15 15:12:41 1991 Michael Meissner (meissner at osf.org) + + * make-mips (Makefile): Remove rule building Makefile, since + Makefile.in now has one. + + * make-decrose (Makefile): Remove rule building Makefile, since + Makefile.in now has one. + +Sun Sep 15 14:12:47 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * Makeflags (SYSCALLS.c.X): Use CPPFLAGS and INCLUDES. + +Sun Sep 15 12:03:35 1991 Michael Tiemann (tiemann at cygnus.com) + + * cplus-decl.c (poplevel): Match change made to c-decl.c on Oct 3, + 1989. + +Sun Sep 15 06:52:42 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * caller-save.c (save_call_clobbered_regs): Deaden registers mentioned + in REG_UNUSED notes. + (clear_reg_live): Verify that note refers to a REG. + (choose_hard_reg_mode): Rewrite to not use specific modes and to + handle the case where separate CCmode registers exist. + +Sat Sep 14 13:03:29 1991 Michael Tiemann (tiemann at cygnus.com) + + * all cplus-* files: Change {ASSOC,assoc} to {BINFO,binfo} where + appropriate. + cplus-tree.h, tree.h: Change name of CLASSTYPE_ASSOC to TYPE_BINFO. + Change names of CLASS_ASSOC_* to TYPE_BINFO_*. + all cplus-* files: FUNCTION_DECLs that are class methods now have + their DECL_VCONTEXT stored in the DECL_CONTEXT. + (lang_decl): The VCONTEXT field is now gone. + (lang_decl): _DECL nodes in class scope now record the class as a + context in the DECL_CLASS_CONTEXT field. + tree.h (TYPE_BINFO): Renamed TYPE_BASETYPES to this. + dbxout.c (dbxout_type): User of TYPE_BASETYPES changed. + (BINFO_{VALUE,OFFSET,VTABLE,VIRTUALS,BASETYPE{S}}): New macros + inherited from GNU C++. + (DECL_{VINDEX,FCONTEXT}): Ditto. + (TREE_VIA_{PUBLIC,VIRTUAL}): Ditto. + +Sat Sep 14 09:14:26 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * rtlanal.c (reg_set_p): Remove abort for MEM; reg_overlap_mentioned_p + now handles that case correctly. + REG is set if it is really a MEM and this is a CALL_INSN. + +Sat Sep 14 01:34:39 1991 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * configure (vax-ultrix*): New alternative. + + * reload1.c (choose_reload_regs): Always ignore cancelled reloads. + + * real.h (atof): Alternate declaration on MIPS. + +Thu Sep 12 18:55:06 1991 Torbjorn Granlund (tege at mole.gnu.ai.mit.edu) + + * optabs.c (expand_binop): Fix carry propagation code for multiple + words. + + * tm-*.h: Fix systematic typo in comment. + +Thu Sep 12 18:23:53 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * gvarargs.h, va-mips.h, va-sparc.h (_va___list): Was __va_list. + +Thu Sep 12 12:53:36 1991 Roland H. Pesch (pesch at cygint.cygnus.com) + + * cpp.texinfo: (titlepage) use @title/@subtitle/@author + (copyright page) add note re future C manual; add 1991 to copyrights + (general) prepare for easy @smallbook formatting; clarification on + strings; less passive; add AMD29K predefined macros; update -d refs, + add -dM; add examples; add -pedantic-errors; add -MD, -MMD, -H; fix + minor typos. + +Thu Sep 12 07:58:11 1991 Torbjorn Granlund (tege at mole.gnu.ai.mit.edu) + + * m68k.md (umulsidi3, mulsidi3): New DEFINE_EXPANDs and DEFINE_INSN + recognizers. + +Wed Sep 11 22:11:17 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * a29k.md, romp.md: Update calling sequence to emit_no_conflict_block. + +Wed Sep 11 21:06:32 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * fold-const.c (const_binop): Fix last change for ceil and round. + + * gvarargs.h, va-mips.h, va-sparc.h (va_list): Now a macro again. + (__va_list): This is the typedef. + +Wed Sep 11 16:52:20 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) + + * c-typeck.c (build_binary_op_nodefault, RSHIFT_EXPR): Change + "shift count" warnings changed to errors back to warnings. + + * cse.c (canon_hash): Also do not record global_regs if + SMALL_REGISTER_CLASSES. Makes the code match the comment. + + * cexp.y (yylex): Add sprintf call to create error message, + because yyerror does not call *printf itself. + + * gcc.c (default_compilers): Support new option -traditional-cpp, + which passes traditional to cpp, but not to cc1. + * gcc.texinfo: Document it. + + * sched.c (INSN_LUID): New variable. Give instructions logical + numbers, which can be used when sorting, to make the scheduling + algorithm more stable. + (sched_analyze): Initialize it. + (rank_for_schedule): Sort on it. + (schedule_insns): Alloca(te) it and (b)zero it. + (priority): New priority algorithm. Don't include latency of + current insn, and subtract one from total priority calculated. + Makes the scheduling algorithm more stable, and doesn't hurt + performance. + + * sched.c (swap_sort): Must pass &insn to rank_for_schedule, not a + pointer into the array being sorted. + + * cplus-lex.c (do_identifier): Put function return type on + preceeding line. + +Wed Sep 11 05:51:00 1991 Michael Tiemann (tiemann at cygint.cygnus.com) + + * cplus-typeck.c (build_binary_op_nodefault): If OP0 or OP1 is a + zero pointer, canonicalize it to NULL_POINTER_NODE. + + * expr.c (preexpand_calls): Don't preexpand calls inside a + WITH_CLEANUP_EXPR. The gestalt of a WITH_CLEANUP_EXPRs must be + understood at the top level. + + * cplus-tree.c (build_cplus_new): When building cleanup, make + the call to the cleanup nonvirtual. + +Tue Sep 10 20:28:56 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * fold-const.c (const_binop): Shortcut for dividing single-word + sizes + + * Makefile.in (varasm.o): Depend on insn-codes.h. + +Tue Sep 10 19:29:26 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * optabs.c (expand_binop): Try to open-code muldi3 if we have mulsi3 + and mulsidi3. Idea due to tege@sics.se. + + * cse.c (fold_rtx, case MEM): Don't call find_best_addr when insn == 0. + Pass 0 to recursive call that tries to fold the address. + +Tue Sep 10 18:16:16 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * m68k.md (fix_trunc*): Call CC_STATUS_INIT, since these patterns + do not leave the condition codes in the expected state. + + * tm-ultrix.h (CPP_PREDEFINES): Add __vax. + +Tue Sep 10 04:12:53 1991 Michael Tiemann (tiemann at cygint.cygnus.com) + + * cplus-decl.c (finish_decl): Fix bug where the conversion from + WITH_CLEANUP_EXPR -> init/cleanup pair was not setting bits of + CURRENT_BINDING_LEVEL. + (init_decl_processing): Set FLAGS_THIS_IS_VARIABLE before calling + `init_exception_processing'. + +Mon Sep 9 22:09:27 1991 Michael Tiemann (tiemann at cygint.cygnus.com) + + * cplus-tree.h (prev_class_type): Delete this bogus definition. + + * cplus-class.c (instantiate_type): Don't complain about no static + member functions being found until we have been through all the + baselinks. + + * cplus-dbxout.c (dbxout_type_methods): Don't write symbol + information about methods that were generated by the compiler. + (??? Is this really the right thing to do?) + + * cplus-decl2.c (lang_decode_option): Turn on warn_uninitialized if + -Wall is the argument. + +Mon Sep 9 19:05:01 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) + + * gcc.c (default_compilers): For .S files, pass -traditional not + -ftraditional to cpp. + +Mon Sep 9 15:01:58 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * fold-const.c (optimize_bit_field_compare): Distinguish NE from EQ. + + * explow.c (allocate_dynamic_stack_space): + Handle SETJMP_VIA_SAVE_AREA by allocating extra space. + + * cplus-parse.y (empty_parms): Change inline to __inline. + +Mon Sep 9 15:16:24 1991 Torbjorn Granlund (tege at zevs) + + * longlong.h (m68000 umul_ppmm): Clobber one register less by + slightly rearranging the code. + +Sun Sep 8 16:47:32 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * cccp.c (main, fatal): Delete the deps output file if error. + (deps_file): New variable. + + * expr.c (convert_move): Update call to emit_no_conflict_block. + + * expmed.c (CEIL): New macro. + + * optabs.c (expand_binop): Don't do add by words for more than 2 words. + + * c-typeck.c (build_modify_expr): Test TREE_READONLY of lhs. + +Sun Sep 8 01:17:47 1991 Torbjorn Granlund (tege at zevs) + + * sparc.md (sgtu, sleu): Test for SUBREG as well as REG. + +Sun Sep 8 07:04:33 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * optabs.c (emit_no_conflict_block, emit_libcall_block): Rework to + accept a list of insns rather than a SEQUENCE. + (expand_binop, expand_unop, expand_float, expand_fix): Change calls to + above functions. + * emit-rtl.c (add_insn): No longer static. + * calls.c (expand_call): Change call to emit_libcall_block. + + * cse.c (fold_rtx): Fix typo with parens in associative operation case. + +Sat Sep 7 21:49:46 1991 Jim Wilson (wilson at cygint.cygnus.com) + + * expmed.c (store_bit_field): In the code handling bitfields + larger than the word size: set fieldmode to size large enough + to hold bitfield; new variable orig_bitsize; don't let + bit_offset calculation for WORDS_BIG_ENDIAN hosts go negative. + (extract_bit_field): Likewise. + (store_split_bit_field): For second word, strip of SUBREG if any + before calling operand_subword. Offset for second word if in + memory is the next UNITS_PER_WORD aligned address. + (extract_split_bit_field): Likewise. + + * expr.c (emit_move_insn): When emitting multiple move insns in + the loop, remember last insn emitted so that it can be returned. + + * tree.c (enum tree_node_kind): Add new entry vec_kind to + represent TREE_VECs. + (tree_node_kind_names): Add name "vecs" for it. + (make_node): Handle TREE_VECs in the 'x' case. + (make_tree_vec): Use vec_kind instead of x_kind. + +Sat Sep 7 16:25:50 1991 Michael Tiemann (tiemann at cygint.cygnus.com) + + * cplus-call.c (ideal_candidate): Prefer non-const member functions + to const member functions when there is a choice. + * cplus-tree.c (propagate_assoc_offsets): Moved here from + cplus-class.c + (copy_nonvirtual_children): Deleted. + + * cplus-class.c, cplus-tree.c (layout_{v}basetypes, + propagate_assoc_offsets, finish_base_struct): New offset + computation/hierarchy implementation. Now the lattice contains + vbasetypes with zero-based offsets (and children from these types + assume they are zero-based). The CLASSTYPE_VBASETYPE list contains + vbasetypes with hierarchy-dependent offsets (and children from these + types have hierarchy-dependent offsets). Note that now, virtual + baseclasses are fully shared in the hierarchy. The still are not + shared at all in the CLASSTYPE_VBASETYPE list. + * cplus-decl.c (xref_tag): Share vbasetypes in the lattice. + * cplus-tree.h (lang_type): Add CLASSTYPE_VASSOC field so we can + share virtual basetypes in inheritance lattices. + +Sat Sep 7 13:07:12 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * c-parse.y (cast_expr): Supply OFWHAT arg to digest_init. + * c-typeck.c (error_init, pedwarn_init): New functions. + (digest_init, process_init_constructor): Use them. + + * out-m68k.c (output_function_prologue): Add a negative constant + to sp rather than adding a positive one, since this is faster. + + * out-m68k.c (output_function_prologue, output_function_epilogue): + Use word sized immediates when possible. + + * Makefile.in (install-dir): Don't die if can't create mandir. + (install-man): Don't put . in front of manext. + (manext): Add . to the value. + (mandir): Don't use manext. + + * genextract.c (main): Don't use __builtin_memcpy in GCC 1. + +Fri Sep 6 19:29:55 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * caller-save.c (emit_mult_save, emit_mult_restore): Copy constant to + TEMPREG and add integer, instead of the opposite order, which might + not work on some machines. + + * fold-const.c (fold): Ensure we always return an object of the + desired type. + + * reload1.c (reload, reload_as_needed): reload_in_progress must be + set during caller-save processing. + +Fri Sep 6 18:36:55 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) + + * out-sparc.c (leaf_reg_{remap,backmap}): Define mapping for + %o7/%i7, since user-defined registers might reference these. + (legitimize_pic_address): Set CURRENT_FUNCTION_USES_PIC_OFFSET_TABLE + if ORIG is a LABEL_REF. For CONST_INT case, don't call force_reg + during reload, use REG if available otherwise abort. + +Fri Sep 6 17:16:05 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * configure: Default $cpu_type properly. + +Fri Sep 6 05:50:58 1991 Ken Raeburn (raeburn at watch.com) + + * genextract.c: Generate one large function with a switch, instead + of a table of small functions to call. Use __builtin_memcpy under + GNU C. + + * genoutput.c: For "@" constructs, now generates a lookup table per + insn, instead of a switch. + +Fri Sep 6 15:40:54 1991 Tom Wood (wood at dg-rtp.dg.com) + + * cccp.c (skip_if_group): Deal with invalid directives the same + way handle_directive does. + +Fri Sep 6 16:37:04 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) + + * tm-sparc.h (RTX_COSTS): Define costs for MULT and various divides. + + * loop.c (move_movables): Call `gen_lowpart_common' instead of + building SUBREG manually. + + * local-alloc.c (block_alloc): When convert scratch to a reg, must + set regs_ever_live for all hard registers used by the new reg, not + just the first. + +Fri Sep 6 07:15:44 1991 Torbjorn Granlund (tege at mole.gnu.ai.mit.edu) + + * gnulib2.c (__negdi2): Change it to work like __subdi3. + * gnulib2.c (_udivmoddi4): Make faster special case for CPUs with + a udiv_qrnnd that can handle unnormalized (i.e. with less than + LONG_TYPE_SIZE significant bit) divisors. + + * gnulib2.c (__muldi3): Cast operands to unsigned. + + * gnulib2.c (__Xcmpdi): Use `long' for all variables for + consistency. + + * gnulib2.c (__udivmoddi4): New function with code from __udivdi3, + extended to give remaider. + * gnulib2.c (__divdi3, __moddi3, __udivdi3, __umoddi3): Use + __udivmoddi4. + * gnulib2.c: (__moddi3): Result sign is only dependent on U, not V. + +Fri Sep 6 05:44:07 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * cse.c (cse_insn): Accept new arg IN_LIBCALL_BLOCK. + If in libcall block, don't record destinations in hash table. + Remove explicit use of SFmode and DFmode when checking -ffloat-store. + (cse_basic_block): Pass new arg to cse_insn to indicate when we + are processing an insn surrounded with REG_LIBCALL/REG_RETVAL notes. + + * optabs.c (emit_libcall_block): New function. + (expand_binop, expand_unop): Remove kludge of referencing library + function SYMBOL_REF before libcall block. + Use emit_libcall_block. + (expand_float, expand_fix): Rework library calls to use + emit_libcall_block. + * calls.c (struct arg_data): Add new field, initial_value. + (expand_call): Don't make libcall block for calls that return + aggregates. + Remove kludge of referencing function SYMBOL_REF outside of block. + For constant calls, save RTL for arg in args[i].initial_value and + start a sequence. + When making REG_EQUAL note, use INITIAL_VALUE instead of VALUE. + Use emit_libcall_block for constant calls. + * expr.h (emit_libcall_block): Define it. + +Fri Sep 6 15:58:52 1991 Torbjorn Granlund (tege at zevs) + + * longlong.h (68020, i386): Don't define machine-dependent + __umulsidi3 (so the default definition is used). + * longlong.h (all machines): Cast all operands, sources and + destinations, to `unsigned long int'. + * longlong.h: Add gmicro support. + +Fri Sep 6 01:42:09 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * jump.c (jump_optimize): Delete duplicate line number notes. + +Thu Sep 5 19:23:24 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * configure (romp): Fix typo in name of xm_file. + + * rtlanal.c (dead_or_set_p): If INSN has a CLOBBER for X, X is + dead. + + * gnulib1.c (cmpdf2, cmpsf2): Delete unused functions. + * gnulib2.c (anddi3, iordi3, xordi3, one_cmpldi2, adddi3, subdi3): + Likewise. + * optabs.c (emit_cmp_insn): Clean up code now that integer and + float comparisons are done differently. + (init_optabs): Remove references to unused functions listed above. + * Makefile.in (LIB1FUNCS, LIB2FUNCS): Likewise. + +Thu Sep 5 18:32:27 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * m68k.md (zero_extend*): Don't allow memory-memory due to aliasing. + + * expr.c (do_jump): Don't lose if only 1 insn precedes new jump. + + * sparc.md (ashldi3): Fix dumb bug detecting constant 1. + + * out-sparc.c (output_move_double): Use split_double for constant. + Properly decrement addreg1. + +Thu Sep 5 15:20:25 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) + + * out-sparc.c: Include expr.h and delete extern declarations. + + * rtlanal.c (rtx_equal_p): Correct typo in comment or spacing. + * reload1.c (reload): Likewise. + * protoize.c: Likewise. + * longlong.h: Likewise. + * local-alloc.c (block_alloc): Likewise. + * jump.c: Likewise. + + * unroll.c (iteration_info): Don't calculate loop iterations based + on a giv iterator, since the current code often gives the wrong + result. This case is rare, so it does not seem worth handling at all. + + * sched.c (schedule_insns): When the only sched pass is after + reload, must clear unused_insn_list and unused_expr_list then, + instead of during the nonexistant pass before reload. + + * sched.c (schedule_block): When calculating estimated IPC, avoid + divide by zero. + + * sparc.md: Correct two define_splits for seq/sne patterns of the + form `x + (i == 0)', and add a missing `addx' pattern used by + these define_splits. + + * toplev.c (fatal_insn_not_found): Correct typo in error message. + (main): Include "gsdb" and "gdbx" in warning message when -g is not + supported. + + * expr.h (enum expand_modifier): Delete last vestige of + EXPAND_INTO_STACK. + +Thu Sep 5 13:50:21 1991 John Gilmore (gnu at cygint.cygnus.com) + + * c-typeck.c (digest_init, process_init_constructor): Include the + variable name, member name, and/or array indices in error messages. + This makes it tolerable to debug large data structure initializers. + Reword some messages to work with the name and/or function call + argument included. New arg OFWHAT. All callers changed except + one digest_init call in each of c-parse.y and objc-parse.y. + (warn_for_assignment): Reduce to a single message argument, + automatically handling formatting for function call arguments. + All callers changed. + (convert_for_assignment): If ERRTYPE is a null string, this is + parameter passing for a function, so output different error messages. + (convert_arguments): Pass null string to convert_for_assignment to + indicate parameter passing. + +Thu Sep 5 13:44:19 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) + + * sched.c: Correct typos in comments. + (sched_note_set): Don't try to calculate live info for global + register variables. + (attach_deaths): Don't add REG_DEAD notes for global register + variables. + + * tm-sparc.h (SELECT_SECTION): Can't put a variable in text section + if flag_pic and RELOC are both true, same test that varasm.c does. + +Thu Sep 5 13:15:43 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * rtlanal.c (reg_referenced_p): Handle USE and CALL. + Use switch instead of if-then-else. + +Thu Sep 5 08:03:58 1991 Michael Tiemann (tiemann at cygint.cygnus.com) + + * cplus-class.c (propagate_assoc_offsets): Don't fail to + propagate the offset to the rightmost basetype. + + * cplus-decl.c (xref_tag): Allocate nodes for basetype info on + permanent obstack, not temporary obstack. + +Wed Sep 4 18:53:16 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * fixincludes : Change `m68k' to `__m68k__' in all #if's. + + * Makefile.in (ALLOCA_FLAGS): Add -Demacs. + (ALLOCA_FINISH): Put option before input file name. + (alloca.o): Supply $(INCLUDES). + + * Makefile.in (GCC_CFLAGS): New parameter. + (protoize, protoize.o, unprotoize, unprotoize.o): Use GCC_CFLAGS. + (enquire, enquire.o, collect2, collect2.o, SYSCALLS.c.X): Likewise. + +Wed Sep 4 18:13:56 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * combine.c (make_extraction): When picking up low-order part, + ensure that we don't create a non-aligned object if alignment + is required. + + * expr.c (emit_push_insn): Ensure we only call force_const_mem on a + constant. + + * config.subr: Set `os' to be the last `-' and everything following it. + `romp' is the basic machine name for the rtpc. + `aos' is IBM's name for BSD. + * configure: Default `cpu_type' to the first field before an + optional `-'. + Add a29k, a29k-ultra, romp, and rs6000. + * xm-a29k-ultra.h: New file. + +Wed Sep 4 15:46:50 1991 Tom Wood (wood at dg-rtp.dg.com) + + Changes from Ron Guilmette: + * dwarfout.c (output_symbol): Move tests for omitting declarations + to dwarfout_file_scope_symbol. No need for `local' parameter. + Use TREE_PUBLIC and TREE_EXTERNAL to determine whether a variable + or function is global. + (finalizing, dwarfout_file_scope_delayed_symbol): Delete. + + * toplev.c (compile_file): Delete use of dwarfout_file_scope_symbol + for initialized VAR_DECLs. All global declarations are passed to + dwarfout_file_scope_symbol (except function definitions and types). + + (compile_file, rest_of_decl_compilation): Attribute time in + {dbxout,sdbout,dwarfout} functions to symout_time. + + * varasm.c (assemble_variable): Check and update TREE_ASM_WRITTEN + for a global register variable. + Delete use of dwarfout_file_scope_symbol for VAR_DECLs. + +Tue Sep 3 23:34:57 1991 Torbjorn Granlund (tege at zevs) + + * sparc.md (ashldi3 expander & recognizer): Make shift count have + SImode. Used to have DImode. + + * expmed.c (emit_store_flag): Declare arg UNSIGNEDP. + + * vax.md (adddi3): Make operands 2 and 3 commutative. + + * sparc.md (subtract constant then return): Peephole deleted. + +Tue Sep 3 22:23:52 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * Makefile.in (mostlyclean, clean, realclean): Some files were missing. + + * gvarargs.h (va_list): Make it typedef, not macro. + * va-mips.h, va-pyr.h: Likewise. + +Tue Sep 3 22:07:04 1991 Michael Tiemann (tiemann at cygint.cygnus.com) + + * cplus-init.c (build_vec_delete): Fix off-by-one error for arrays + of length 1. + +Tue Sep 3 19:30:45 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * combine.c (try_combine): Don't pass a STRICT_LOW_PART to + reg_overlap_mentioned_p. + + * cse.c (fold_rtx): If INSN is zero, copy X before we change + anything inside it. + When looking for associative operation, pass zero as missing arg to + recursive call. + (find_comparison_args): Add zero for missing arg to fold_rtx calls. + + * reload.c (find_reloads): Correct code that prevents replacing + a SET_DEST with a constant so that it correctly looks for an + operand being a SET_DEST. + +Tue Sep 3 19:17:34 1991 James Van Artsdalen (james at bigtex.cactus.org) + + * out-i386.c (split_di): Call split_double for CONSTANT_P. + (fix_op): Delete. + (float_op): Don't examine the mode of the FLOAT operand. + (output_float_compare): Don't make new %ax RTX: use scratch + operand from insn. + + * i386.md (float mode tstM,cmpM,fixuns_truncMN2,fix_truncMN2): Use + match_scratch. + (float mode tstM,fixuns_truncMN2,fix_truncMN2): Don't gen temp RTX: + use scratch operand. + (fix_truncMN2,floatMN2): Split pattern into a separate DFmode and + SFmode patterns so that operands[1] has a mode. + (sCOND patterns): Don't set cc_status to previous status. + (cmpstrsi): Don't explicitly reference reg 2. + +Tue Sep 3 16:28:56 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * optabs.c (expand_binop): Fix carry calculation. + + * varasm.c (decode_addr_const): Given a LABEL_DECL, Make a LABEL_REF. + (const_hash): Handle a LABEL_REF. + * expr.c (expand_expr): Use FUNCTION_MODE for memref to a LABEL_REF. + + * configure: Fix typo in last change. + + * cccp.c (handle_directive): Normally no error for line with `###'. + +Tue Sep 3 10:53:12 1991 Tom Wood (wood at dg-rtp.dg.com) + + * out-m88k.c, tm-m88k.h: Delete remnants of the fancy abort. + * tm-m88kdgux.h: No longer identify as version DG-*. + * m88k files: Update copyright dates. + +Tue Sep 3 03:18:54 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * expr.c (expand_expr): Get rid of EXPAND_INTO_STACK. + +Mon Sep 2 14:07:54 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * gcc.c (do_spec_1): In %X, terminate the arg after each option. + + * config.subr: If argument contains `local', always accept it. + * configure: If machine type contains `local', + construct file names from that machine type name. + + * configure: Make config.status a shellscript to redo the configure. + No need now to change / to - when storing $(target) in Makefile. + Store $(host_make_var_file) in Makefile also. + Set host_make_var_file to ../Makefile.in after creating Makefile + if no make-... file actually exists for this host. + * Makefile.in (host_make_var_file): Dummy definition to be filled in. + (Makefile): New rule to rerun `configure' + + * tm-sysv4.h (ASM_DECLARE_FUNCTION_SIZE): New macro. + + * tm-mips.h, tm-m88k.h (abort): Macro definition deleted. It is + not right for any machines description to specify use of fancy_abort. + + * protoize.c [v.4]: Include fcntl.h. + (execvp): Correct type for second arg. + (compile_params): Remove `const'; that loses when calling execvp. + + * cccp.c (directive_table): Typo in entry for do_ident. + + * xm-m68k.h (alloca): Define macro with arg. + + * emit-rtl.c (reorder_insns_with_line_notes): New function. + (find_line_note, emit_line_note_after): New functions. + + * jump.c (jump_optimize): When moving else clause before test, + only move the insn as far as needed, and use new function + reorder_insns_with_line_notes. + +Mon Sep 2 03:30:35 1991 James Van Artsdalen (james at bigtex.cactus.org) + + * Makefile.in (collect2): Compile with gcc. + +Sun Sep 1 9:03:46 1991 (Eric Youngdale at youngdale@v6550c.nrl.navy.mil) + + Define two macros to eliminate the need for a seperate collect pass. + + * tm-vms.h (ASSEMBLE_OUTPUT_CONSTRUCTOR): Define. + (ASSEMBLE_OUTPUT_DESTRUCTOR): Define. + +Sun Sep 1 08:14:22 1991 Michael Meissner (meissner at osf.org) + + * collect-osf.c (main): Print version number if -v. Also ignore all + arguments beginning with -c rather than just '-c'. + + * make-decrose (collect): Add version.o to link. + +Sat Aug 31 17:03:23 1991 Michael Meissner (meissner at osf.org) + + * cplus-input.c (inline macro definition): If inline is already + defined, don't redefine it. + + * collect-osf.c (main): Look for gld and gas instead of ld and as, + so collect-osf can be installed as ld. Use a default path of + /usr/ccs/gcc to find the linker and assember. Ignore the -c switch, + which GCC uses to say that collect is needed. + + * osf-main.c (__finis): Don't call descructors already called if one + of the destructors calls exit (which in turn calls __finis). + + * tm-mips.h (DBX_REGISTER_NUMBER): Use mips_dbx_regno to map + register number to debug register number. + (GP_DBX_FIRST, FP_DBX_FIRST): New macros, giving the first debug + register numbers for gp registers and fp registers. + + * out-mips.c (mips_dbx_regno): New global array to map GCC register + number to debug register number, to fix problem with OSF/1 stabs + using 38 for the first fp registers, rather than 32. + (override_options): Set up OSF/1 SIGINFO signal handler to notmake + the interruptable system calls read, write, and wait not return + error condition. Also initialize mips_dbx_regno. + + * make-decrose (CFLAGS): Add $(MSTATS) variable to set -mstats. + (CFLAGS_NODEBUG): Like CFLAGS, except no debugging or inlining. + (DEB_OPT): Define in terms of DEBUG, OPT, and PROFILE. + (cplus-lex rule): Build cplus-lex with no debug or inlinings. + +Sat Aug 31 12:52:17 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * cccp.c (handle_directive): Be more fussy detecting `# LINE' case. + + * cccp.c (directive_table): Pass through and ignore #ident. + (do_ident): New function. + (skip_if_group): Error if unrecognized directive seen. + + * jump.c (jump_optimize): In converting x=a; if (...) x=b; to + store flag, insert all the new code in just one line. + + * gcc.c (do_spec_1): Use xmalloc to make linker_options the first time. + + * expr.c (expand_expr): Make EXPAND_SUM and EXPAND_INITIALIZER + imply EXPAND_CONST_ADDRESS in all cases. + + * c-decl.c (c_decode_option): -Wall sets warn_uninitialized. + * flags.h (warn_uninitialized): Declared. + * toplev.c (warn_uninitialized): No longer static. + + * cccp.c (main): Make no assumptions about include_defaults + in calculation of max_include_len. Add fudge space if VMS. + + * reload.c (find_reloads_toplev): New arg IS_SET_DEST. + Don't replace reg with constant in destination of a SET. + (find_reloads): Pass that arg. Also don't replace here. + + * cplus-xref.c: Finish installing changes from Youngdale. + +Sat Aug 31 09:02:25 1991 Michael Tiemann (tiemann at cygint.cygnus.com) + + * cplus-decl2.c (finish_file): Call varasm routines to assemble ctor + and dtor lists. + + * cplus-dbxout.c (dbxout_type_methods): Fix error in printing symbol + info for classes that only define a destructor. + +Sat Aug 31 08:32:12 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * cse.c (cse_end_of_basic_block): Correctly handle the case of a basic + block where a conditional branch out of the block becomes unconditional + and a conditional branch to the end of the block becomes a noop. + + * combine.c (try_combine): In case where we have a PARALLEL + involving a load and sign extend, use reg_overlap_mentioned_p + instead of reg_mentioned_p. + If we have a PARALLEL of two independent SETs, try to split them + up into separate insns. + + * combine.c (move_deaths): Instead of placing the REG_DEAD notes + on TO_INSN, add them to a list whose address is given as an + operand. + (distribute_notes): Allow for the case when the death of an object + is between I2 and I3. + Set reg_last_death to corrspond to the location of the REG_DEAD + note being placed. + (try_combine): Call move_deaths in new way and pass returned list + to distribute_notes if it is non-empty. + + * local-alloc.c (requires_inout_p): Don't have cases for '[Q-U]' unless + EXTRA_CONSTRAINT is defined.. + + * local-alloc (block_alloc): Don't allocate SCRATCH on machines with + SMALL_REGISTER_CLASSES defined. + + * regclass.c (reg_class_record): Add missing case for 'V'. + +Fri Aug 30 04:42:19 1991 James Van Artsdalen (james at bigtex.cactus.org) + + * tm-i386.h (OUTPUT_JUMP): Use cc_prev_status. + +Fri Aug 30 17:08:52 1991 (Eric Youngdale at youngdale@v6550c.nrl.navy.mil) + + * xm-vms.h (LOCATE_START_OF_FILE_NAME): Remove. + (FILE_NAME_NONDIRECTORY): Fix typo. + (XREF_FILE_NAME): Use FILE_NAME_NONDIRECTORY instead of + LOCATE_START_OF_FILE_NAME, and omit the leading underscore in the + generated file name. + (FILE_NAME_ABSOLUTE_P): Define to use hook in cplus-xref.c. + (FILE_NAME_JOINER): Define to use hook in cplus-xref.c. + + * cplus-xref.c: Fix bug in default definition of FILE_NAME_ABSOLUTE_P. + (GNU_xref_open): Fix bug - wrong argument to XREF_FILE_NAME. + (FILE_NAME_JOINER): New macro. + (GNU_xref_file): Use it. + +Fri Aug 30 17:30:15 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * cplus-xref.c: Reinstall Aug 25 changes discarded by Tiemann. + + * expr.c (expand_expr): New modifier option EXPAND_INITIALIZER. + * varasm.c (output_constant): Use that. + * jump.c (forced_labels): New var records labels not to delete. + (jump_optimize): Don't delete those labels. + * flow.c (find_basic_blocks): Any computed goto goes to those labels. + * varasm.c (decode_addr_const): Deal with LABEL_DECL. + +Fri Aug 30 15:41:03 1991 Michael Meissner (meissner at osf.org) + + * mips.md (copyleft): Use separate copyright years. + (mov*): Use nonimmediate_operand instead of general_operand. + + * tm-mips.h (copyleft): Use separate copyright years. + + * xm-mips.h (copyleft): Use separate copyright years. + + * xm-umips.h (copyleft): Use separate copyright years. + +Fri Aug 30 08:47:30 1991 Michael Tiemann (tiemann at cygint.cygnus.com) + + * cplus-typeck.c (build_x_*): Try first calling `build_opfncall' + with FLAGS==0. If that succeeds, check protection. + (build_conditional_expr): `fold' does not preserve the type of it's + expressions, which is a problem for C++ when trying to keep ints and + enums distinct. + + * cplus-decl.c (lookup_name): When there is a choice between seeing + a name as a type and seeing as a decl, call `arbitrate_lookup' to + make the decision. + * cplus-lex.c (arbitrate_lookup): New function. Uses minute amounts + of syntactic context to decide whether to see a name as a type or + something else. + +Fri Aug 30 07:40:49 1991 Tom Wood (wood at dg-rtp.dg.com) + + * jump.c (delete_jump): When checking REG_DEAD notes, make sure they + have a legal value. + +Fri Aug 30 00:57:05 1991 James Van Artsdalen (james at bigtex.cactus.org) + + * local-alloc.c (alloc_qty_for_scratch): Treat Q - U as reg class if + EXTRA_CONSTRAINT is not defined. + * regclass.c (reg_class_record): Likewise. + +Thu Aug 29 21:39:07 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * c-typeck.c (build_binary_op_nodefault): Fix last change. + +Thu Aug 29 19:11:05 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * recog.c (general_operand, const_double_operand): Similar to + immediate_operand, don't accept a VOIDmode operand if the + caller wants floating. + * out-pyr.c (nonindexed_operand): Likewise. + +Thu Aug 29 09:53:27 1991 Michael Tiemann (tiemann at pogo.gnu.ai.mit.edu) + + * cplus-tree.h ({SET,CLEAR}_ASSOC_*): New macros needed because not + all C compilers support conditional expressions as lvalues. + (lang_type): Change type of MEMOIZED_TABLE_ENTRY and SEARCH_SLOT + from `void *' to `char *', to make braindead compilers at less of a + disadvantage. + +Thu Aug 29 08:07:40 1991 Tom Wood (wood at dg-rtp.dg.com) + + * m88k.md (define_function_unit): Update latencies. + + * out-m88k.c (output_function_profiler): Correct offsets for + register saves. + * tm-m88ksvr4.h (FUNCTION_PROFILER): Use the name _mcount and do + register saves. + + * tm-m88k.h (ASM_DWARF_POP_SECTION): Specify "previous". + + Changes from Ron Guilmette: + * dwarfout.c (lookup_filename): Only increment valid_ft_entries + once when adding a filename to the table. + (output_symbol): Do output DIEs for a global VAR_DECL definition. + +Thu Aug 29 06:15:32 1991 Michael Tiemann (tiemann at rtl.cygnus.com) + + * cplus-type2.c (build_functional_cast): If we have a valid value in + `expr_as_conversion' return that before returning error_mark_node. + + * cplus-init.c (expand_recursive_init): Fix typo is testing + TYPE_USES_VIRTUAL_BASECLASSES. + +Wed Aug 28 23:12:35 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * c-typeck.c (build_binary_op_nodefault): For shift and rotate ops, + if traditional, use the common type of the operands. + +Wed Aug 28 07:31:33 1991 Tom Wood (wood at dg-rtp.dg.com) + + * dwarfout.c, dwarf.h, README.DWARF: Replacement files from Ron + Guilmette that bring the dwarf implementation up to that defined by + draft 4 of the dwarf specification (dated 7/31/91). + +Wed Aug 28 06:24:30 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * all *.md files except a29k.md and romp.md: Don't allow CONST_INT + as operand for RTL operations that need a mode to be well-defined, + e.g., SIGN_EXTEND, ZERO_EXTEND, TRUNCATE, FLOAT. Similarly, don't + allow CONST_INT as first operand of a COMPARE. + + * machmode.h (MIN, MAX): Undefine these before our definition. + +Tue Aug 27 21:33:04 1991 Michael Tiemann (tiemann at pogo.gnu.ai.mit.edu) + + * version.c: Now 1.95. + +Tue Aug 27 18:05:25 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * reload1.c (possible_group_p): Use earliest class that needs a group. + + * gcc.c (do_spec_1): Handle %x and %X. + (link_command_spec): Use %X. If given -collect, pass -c. + (default_compilers c++): Use %x to pass -c to linker. + + * cse.c (find_comparison_code): Don't call fold_rtx, + because we don't know which insn to pass for its second argument. + + * cse.c (fold_rtx): Don't fold what we get from lookup_as_function. + +Tue Aug 27 17:46:59 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * cse.c (rtx_cost): A USE is free; it is likely being used as a marker. + + * cse.c (cse_insn): If we decided not to make a reg-reg copy between + equivalent regs into a no-op, see if there is an equivalent constant + that is cheaper than the register we decided to use. + + * cse.c (cse_insn): Fix arg in insert_regs call when making a + secondary equivalence due to a SUBREG; we are not modifying the + register. + + * cse.c (delete_dead_from_cse): Treat a SET that copies a register + to itself as if it were setting a dead register. + + * cse.c (find_comparison_args): Call fold_rtx on the args that we + are about to return. + (fold_rtx, case SUBREG): Copy code from equiv_constant that looks up + a SUBREG in the hash table. + If our our folded operand is equivalent to a constant, use that when + seeing if we can get a part of a constant. + (fold_rtx): Don't short-circuit recursive call for an operand that + is a SUBREG; add comment in REG case that we are doing equiv_constant. + When looking for associative operation, call fold_rtx on potential + constant as well as equiv_constant. + (equiv_constant): Just look up a constant quantity for a register; + fold_rtx will do the SUBREG operations. + + * fold-const.c ({neg,mul,lshift,rshift,lrotate,rrotate}_double): + No longer static. + * cse.c (simplify_{unary,binary}_operation): Fold some DImode + operations. + + * fold-const.c (fold, case EQ_EXPR, NE_EXPR, ...): Add code to handle + cases where we are comparing the result of a comparison. + +Tue Aug 27 14:35:59 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * flow.c (mark_used_regs): Set regs_ever_live for all hard regs. + Warning: this might break FUNCTION_PROLOGUE and FUNCTION_EPILOGUE + in some ports. But I've checked all the installed ones. + * tm-gmicro.h (FUNCTION_PROLOGUE): + Clear bit for fp reg if used as such. + * tm-mips.h (MUST_SAVE_REGISTER): Only frame_pointer_needed affects fp. + + * c-decl.c (store_parm_decls): No error if arglist contains type tag. + + * optabs.c (expand_fix): Really call emit_cmp_insn right. + + * floatlib.c: New file. + + * gnulib2.c (__clz_tab): Moved to _udivdi3. + +Tue Aug 27 06:44:12 1991 Michael Tiemann (tiemann at rtl.cygnus.com) + + * cplus-typeck.c (c_expand_return): Don't use the cleanup generated + by `build_functional_cast'. + + * cplus-class.c (resolves_to_fixed_type_p): Handle WITH_CLEANUP_EXPR. + +Mon Aug 26 20:55:58 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * c-parse.y (yylex): Cast shorts[n] to long before shifting. + * fold-const.c (decode): Likewise. + + * Makefile.in (INSTALL_DATA): Renamed from INSTALL_FILE. + + * cse.c (canon_hash): Don't crash if subexpression is 0. + + * cplus-lex.c (interface_strcmp): Put back variable s1. + +Mon Aug 26 18:14:33 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * function.c (instantiate_virtual_regs_1): Complete previous change; + had omitted arg on two returns. + +Mon Aug 26 15:16:39 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * optabs.c (expand_float, expand_fix): Pass new arg to emit_cmp_insn. + + * out-m68k.c (singlemove_string): Fix last change. + +Mon Aug 26 11:20:51 1991 Tom Wood (wood at dg-rtp.dg.com) + + * m88k.md (cmpsi insn): Don't provide an insn that compares two + constants. + +Mon Aug 26 08:34:48 1991 Michael Meissner (meissner at osf.org) + + * collect-osf.c (toplevel, read_file, end_file): Don't use mmap, + unless all defines needed are defined. + (various): If -debug turn on debugging code. Change all occurances + of #ifdef DEBUG sections to if (debug). + (main, add_to_list): Correctly cast xcalloc calls. + (scan_prog_file): Correct xcalloc to allocate enough space + (scan_prog_file): If -debug, don't dump entire symbol table, just + dump the constructors and destructors. + + * make-decrose (CFLAGS): Use DEB_OPT for default debug and optimize + options, use SHLIB for default shared library versions. + (DEB_OPT): Define to be -g -O2. + (SHLIB): Define to be -L${BUILD}/usr/ccs/lib, which forces static + libraries with both old and new 1.39 compilers. + (COFF_CFLAGS): Define to be -O2 -g0. + (collect): Add LIBDEPS dependency. + +Mon Aug 26 07:22:21 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * machmode.h (MIN, MAX): Define here. + * c-decl.c, calls.c, cplus-class.c, cplus-decl.c, cplus-tree.c: + Don't define here. + * expr.c, fold-const.c, function.c, integrate.c, recog.c: Likewise. + * rtl.c, sdbout.c, stmt.c, stor-layout.c, varasm.c: Likewise. + * c-typek.c, combine.c, cse.c, emit-rtl.c, expmed.c, final.c: + Delete definitions of "min" and "max"; use MIN and MAX now defined + in machmode.h. + * genemit.c, regclass.c, reload.c, reload1.c: Likewise. + * cccp.c (MIN, MAX): Define instead of min and max for consistency. + + * tm-rs6000.h (HARD_REGNO_MODE_OK): Don't put DImode in reg 31; + similarly for TImode. + + * cse.c (cse_skip_to_next_block): Variable deleted. + (cse_insn): Don't set it anymore. + (cse_basic_block): Don't use cse_skip_to_next_block; instead, look + for unconditional jumps explicitly; correctly handle unconditional + jumps to the end of the basic block by extending the basic block in + that case. + + * reload1.c (alter_reg): Ensure that stack slot is always the correct + mode. + +Mon Aug 26 06:20:43 1991 Michael Tiemann (tiemann at cygint.cygnus.com) + + * cplus-type2.c (build_functional_cast): Treat constructor casts as + having cleanups in this function. + * cplus-decl.c (finish_decl): Use cleanups created by functinal + casts used as initializers. + + * cplus-init.c (expand_member_init): Call error with + IDENTIFIER_POINTER, not DECL_NAME, of NAME. + + * cplus-method.c (fndecl_as_string): Don't skip `in_charge' + parameter twice. + + * cplus-init.c (build_new): Delete code which short-circuited + multiple indirections in ABSDCL and made everything look like just a + single level of indirection. + + * cplus-typeck.c (warn_for_assignment): Now takes a FUNCTION_DECL + instead of an IDENTIFIER_NODE as an argument. Also, print + reasonable message when ARGNUM < 0. + + * cplus-typeck.c (type_unknown_p): If TREE_CODE (EXP) == TREE_LIST, + it's type is unknown. + + * cplus-typeck.c (commonparms): Don't insert default parmeter values + into existing arg lists. Instead, unify them into new ones only. + + * cplus-typeck.c (convert_for_{initialization,assignment}): Pass + FNDECL instead of function name. Use `lang_printable_name' to pass + printable name to `warn_for_assignment'. + + * cplus-typeck.c (convert_arguments): Don't forcibly convert ptrs to + other things into ptrs to functions just to satisfy the conversion + of virtual functions. + +Sun Aug 25 22:44:57 1991 Michael Tiemann (tiemann at cygint.cygnus.com) + + * cplus-typeck.c (compparms): Deal with STRICT == 3. + * cplus-search.c (get_first_matching_virtual): Call `compparms' with + STRICT == 3. + + * cplus-lex.c (operator_name_string): Don't abort if we cannot find + a operator name for NAME. Instead, return identifier for + <invalid operator>. + +Sun Aug 25 15:42:59 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * cplus-xref.c (FILE_NAME_ABSOLUTE_P): New macro. + (GNU_xref_file): Use it. + (open_xref_file): Use new macro XREF_FILE_NAME if defined. + * cplus-lex.c (FILE_NAME_NONDIRECTORY): New macro. + Used frequently instead of strrchr. + * xm-vms.h: Define those three macros. + + * optabs.c (expand_binop): Use word mode for force_reg on op1 of shift. + + * out-m68k.c (singlemove_string): Use moveq when appropriate. + + * final.c (split_double): Handle all integer constants. + * out-m68k.c (output_move_double): Use split_double for all constants. + * ??? Most out-*.c need changing. + + * c-decl.c (finish_enum): Make some local vars unsigned. + * c-common.c (type_for_size): + * c-convert.c (convert_to_integer): + * tm-i860.h (ASM_OUTPUT_ASCII): + * c-parse.y (yylex): + * expr.c (get_pointer_alignment): + * stor-layout.c (layout_union, layout_record): + * tree.c (get_unwidened, get_narrower): + + * expr.c (emit_library_call): Don't declare va_list as register. + * final.c (asm_fprintf): Likewise. + * tree.c (build, build_nt, build_parse_node): Likewise. + + * expr.c (do_jump_for_compare): Don't assume the compare survives + when the branch is emitted. + + * expr.c (convert_move): Fix typo in prev change. + + * emit-rtl.c (fconst2_rtx, dconst2_rtx): New vars. + (init_emit_once): Initialize them. + + * expmed.c (extract_bit_field, store_bit_field): + For multi-word field, do words from least significant first. + + (extract_split_bit_field): OP0 is only the first word of the + source, so if this is a SUBREG, must call operand_subword on + SUBREG_REG (OP0) instead of OP0. + + * varasm.c (output_constructor): Correctly output constants for + bitfields which are greater than HOST_BITS_PER_INT. Use + TREE_INT_CST_HIGH for the high bits. + + * Makefile.in (ENQUIRE_CFLAGS, ENQUIRE_LDFLAGS): New parameters. + (enquire, enquire.o): Use them. + + * tm-sysv4.h: New file, cut out from tm-m88k.h. + * tm-m88k.h: Include that. + + * vax.md (sltu, sgeu): New patterns. + +Sat Aug 24 11:19:43 1991 Michael Tiemann (tiemann at cygint.cygnus.com) + + * cplus-init.c (build_offset_ref): Pass a TYPE_DECL node, not a + RECORD_TYPE node, to `build_component_type_expr'. + + * cplus-cvt.c (convert_to_integer): Warn about conversion from + integral type to enumeral type if FLAG_INT_ENUM_EQUIVALENCE is zero. + (convert_force): Set FLAG_INT_ENUM_EQUIVALENCE non-zero when calling + `convert'. + + * cplus-typeck.c (build_x_*_op): Don't try using built-in operators + if user-defined ones are not accessible. + + * cplus-init.c (expand_aggr_init_1): Use `expand_expr' to set the + DECL_RTL of the TARGET_EXPR. This is a generalization of code that + used to require that EXP be some sort of _DECL. + + * cplus-init.c (init_init_processing): Link global runtime functions + __builtin_new and __builtin_delete to their canonical operator + names (i.e., op$nw and op$dl). + + * cplus-lex.c (init_lex): Don't see `dynamic' as a reserved word if + SOS is not defined. + * cplus-decl2.c (flag_dynamic): Delete unused variable. + + * cplus-decl.c (define_case_label): Give error when case label cuts + into a binding contour with cleanups. + * stmt.c (last_cleanup_this_contour): Changed name from + `this_contour_has_cleanups_p'. Now returns last cleanup, if there + was one. + * tree.h: Declare `last_cleanup_this_contour'. + + * cplus-decl.c (grokdeclarator): Don't let member functions have + static linkage. + + * cplus-tree.c (layout_basetypes): Copy non-virtual basetypes of + virtual basetypes so that search routines can find ambiguities + arising in lattices where the same type appears as a non-virtual + basetype of different types in the lattice. + (copy_nonvirtual_children): Implement a recursive deep-copy of + nonvirtual types in an inheritance lattice. + + * cplus-search.c (lookup_fnfields): Correctly catch case where there + are multiple functions in an MI lattice. + * cplus-call.c (ideal_candidate): If we find a requested function is + ambiguous in an MI lattice, set CP->EVIL to 1. + (build_method_call): If CP->EVIL is set on return from + `ideal_candidate', return error_mark_node. + + * cplus-decl.c (lookup_name): Prefer finding typenames to overloaded + functions where there's a collision. + (pushdecl): Don't override the declaration of global functions with + a TYPE_DECL that has the same name. `lookup_name' now knows how to + find both. + (globalize_nested_type): Changed to look in IDENTIFIER_TYPE_VALUE + slot for global definitions that are not in IDENTIFIER_GLOBAL_VAL. + * cplus-type2.c (build_functional_cast): Deal with more ambiguities + and more cases where the syntactic form `NAME ( PARMS )' can have + meaning. + +Sat Aug 24 01:33:00 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * expr.c (convert_move): Make integer extension general. + + * optabs.c (init_extends, gen_extend_insn): Finish and turn on. + + * reload1.c (possible_group_p): Insist on regs in needed class. + + * SYSCALLS.c (alloca): Declare arg as size_t. + + * expr.c (store_constructor): Handle union constructor. + + * final.c (split_double): long long CONST_DOUBLE now has VOIDmode. + + * optabs.c (expand_binop): Fix carry propagation bugs. + Handle carry propagation for big-endian case. + +Fri Aug 23 21:29:46 1991 Michael Tiemann (tiemann at cygint.cygnus.com) + + * cplus-decl.c (finish_decl): More PIC fixes. Also, don't assign + any storage for static member variables except when they are being + defined. + + * cplus-init.c (build_virtual_init): Change interface to take + MAIN_ASSOC instead of FOR_TYPE. + (expand_aggr_init_1): Ditto. + (expand_recursive_init_1): Ditto. + (expand_aggr_vbase_init{_1}): Change interface to take an assoc + instead of a type. + (expand_recursive_init): Ditto. + + * cplus-pt.c (uses_template_parms): Handle PARM_DECL nodes. + + * cplus-search.c (get_base_assoc): Use ASSOC_MARKED instead of + ASSOC_BASETYPE_MARKED to mark visited nodes. + (lookup_field, loopup_fnfields): Use ASSOC_FIELDS_MARKED instead of + ASSOC_VBASE_MARKED when searching. + ({bfs_,un,bfs_un}marked2p): Deleted, unused. + (dfs_{un}mark2): Deleted, unused. + (dfs_unmark12): Deleted, unused. + (build_vbase_vtables_init): Change interface to take MAIN_ASSOC + instead of FOR_TYPE. + +Fri Aug 23 18:31:53 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * expr.c (do_store_flag): Give up if can't directly compare args. + +Fri Aug 23 18:00:58 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * function.c (instantiate_virtual_regs_1): Add new arg and now returns + int instead of void. + All callers changed. + + * expr.c (compare_constants): Deleted. + (compare_from_rtx): Use simplify_relational_operation instead of + compare_constants; abort is not needed since + simplify_relational_operation will return 0 if given VOIDmode. + + * cse.c (fold_rtx): Correctly compute mode of operands being + compared. + +Fri Aug 23 17:16:27 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * stmt.c (expand_end_case): + Avoid special cases for modes when widening. + Realize __builtin_classify_type reduces to int constant. + + * optabs.c (emit_cmp_insn): New arg, MODE. All callers changed. + If both args are const_int, copy one to a reg. + +Fri Aug 23 15:54:21 1991 (Eric Youngdale at youngdale@v6550c.nrl.navy.mil) + + * make-cc1.com: Fix bug where cplus-parse.y was always being passed + through bison, whether it needed it or not. + +Fri Aug 23 15:20:46 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * stmt.c (expand_end_case): Remove Aug 12 change. + Convert index to nominal_type for subtraction. + +Thu Aug 22 14:34:21 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * configure, config.gcc: Switch to all-dashes config names. + + * gnulib2.c [U_udivdi3, L_muldi3]: Define __clz_tab for longlong.h. + +Thu Aug 22 00:28:29 1991 Torbjorn Granlund (tege at zevs) + + * longlong.h: Rename BITS_PER_LONG to LONG_TYPE_SIZE. + * longlong.h (__ibm032__): Define count_leading_zeros and umul_ppmm. + * longlong.h: Define UMUL_TIME and UDIV_TIME for some CPUs. + * longlong.h (__sparc__ umul_ppmm): Move two insn from end to the + nops. (Saves two insn.) + * longlong.h (__sparc__ umul_ppmm): Rewrite in order to avoid + branch, and to permit input/output register overlap. + * longlong.h (__29k__): Remove duplicated udiv_qrnnd definition. + * longlong.h (__29k__ umul_ppmm): Split asm instructions into two + asm statements (gives better code if either the upper or lower + part of the product is unused. + * longlong.h: Mention UDIV_NEEDS_NORMALIZATION in description of + udiv_qrnnd. + * longlong.h (IBMR2): Add udiv_qrnnd. + * longlong.h (add_ssaaaa, sub_ddmmss [C default versions]): Make __x + `unsigned long int'. + * longlong.h: Add `int' after `unsigned' and `long' everywhere. + * longlong.h: Add ARM, i860 support. + * longlong.h (sparc umul_ppmm): Use __asm__, not asm. + * longlong.h (IBMR2 umul_ppmm): Refer to __m0 and __m1, not to m0 + and m1 (overlap between output and input operands did not work). + * longlong.h: Add VAX, ROMP and HP-PA support. + * longlong.h: Sort the machine dependent code in alphabetical order + on the CPU name. + * longlong.h: Hack comments. + * longlong.h: Define BITS_PER_LONG to 32 if it's not already + defined. + * Define __BITS4 to BITS_PER_LONG / 4. + * Don't assume 32 bit word size in "count_leading_zeros" C macro. + Use __BITS4 and BITS_PER_LONG instead. + * longlong.h (68k): Define add_ssaaaa sub_ddmmss, and umul_ppmm + even for plain mc68000. + * longlong.h: Clean up comments. + * longlong.h: Don't use #elif. + * longlong.h: Use __asm__ instead of asm. + * longlong.h (sparc udiv_qrnnd): Make it to one string over several + lines. + * longlong.h: Preend __ll_ to B, highpart, and lowpart. + * longlong.h: Move array t in count_leading_zeros to gnulib2.c + Rename the array __clz_tab. + * longlong.h (umul_ppmm [C variant]): Make __ul...__vh + `unsigned int', and cast the multiplications. This way + compilers more easily can choose cheaper multiplication + instructions. + +Thu Aug 22 07:36:40 1991 Tom Wood (wood at dg-rtp.dg.com) + + * rtl.h: Declare simplify_relational_operation. + + * out-m88k.c (output_file_start): Put the `gcc2_compiled.' symbol + in the data section. Eliminates symbol translation problems with + debuggers. + + Changes from Ron Guilmette: + * toplev.c (compile_file): Use dwarfout_finish when done. + * final.c (output_source_line): Use dwarfout_line. + * dwarfout.c (dwarfout_finish): Rename from dwarfout_finalize. + * tm-m88k.h (ASM_OUTPUT_DWARF_LINE, ASM_FILE_END): No need for + dwarf specific actions. + +Thu Aug 22 05:29:57 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * combine.c (can_combine_p): Don't combine if INSN has REG_RETVAL note. + (try_combine): Similarly, don't combine if I3 has REG_LIBCALL note. + + * flow.c (propagate_block): Don't use variable PREV in + nested blocks that shadows PREV at function level. + If we handle this insn normally, arrange to scan any insns that + were inserted in front of it for making auto-inc addressing. + + * integrate.c (save_for_inline_copying): Clear CONST_DOUBLE + memory chain. + + * toplev.c (fatal_insn_not_found): Now that it is called in final.c + when an insn doesn't match constraints, write different error + message in that case. + * genattrtab.c (write_attr_case): Call fatal_insn_not_found instead + of abort when constrain_operands fails. + +Thu Aug 22 05:29:09 1991 Matthew Self (mself at next.com) + + * rtl.c (add_dependence): Uses of RTX_UNCHANGING_P should now be + SCHED_GROUP_P. + +Thu Aug 22 00:34:20 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * recog.c (offsettable_address_p): Always pass QImode to addressp. + +Wed Aug 21 09:20:09 1991 Michael Meissner (meissner at osf.org) + + * tm-decrose.h (LINK_SPEC): Allow -pic-none, -glue, -noshrlib + switches. + (LIB_SPEC): Add -L/usr/ccs/lib to get new 1.1 linker to use static + libraries instead of shared libraries, since the shared library + support has not yet been added. + +Wed Aug 21 06:18:12 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * out-rs6000.c (print_operand, case 'Y', 'Z'): Fix typo in + auto-inc case. + * rs6000.md (movti): Add missing %U in memory cases. + + * tm-rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Indexed addresses are not + valid for DImode and TImode. + * out-rs6000.c (indexed_mem_operand): Deleted. + (print_operand, case 'X'): Don't use indexed_mem_operand; check + ourselves instead. + * rs6000.md (movdi, movti): Don't check for indexed memory operands. + +Tue Aug 20 16:02:41 1991 Tom Wood (wood at dg-rtp.dg.com) + + * sdbout.c (sdbout_parms): Handle parm passed in reg and living in + pseudo that was optimized away. + +Mon Aug 19 19:10:42 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * combine.c (simplify_comparision, case NEG): Can only convert + (-a) < C to a > C if C is zero. + + * expmed.c (store_bit_field, extract_bit_field): Use WORD_MODE for + mode of BITS_PER_WORD to avoid conflict with other use of variable + named MODE. + + * cse.c (cse_insn): Don't make a REG_EQUAL note whose contents + are a REG; the REG might have been eliminated. + + * reload1.c (reload_as_needed): Pass any CLOBBERs made when reloading + an insn to `forget_old_reloads_1'. + +Mon Aug 19 12:47:46 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * configure (m88k-luna): Rename alternative appropriately. + + * cse.c (simplify_relational_operation): Split out from ..._binary_... + (fold_rtx): Use that function for relationsals. + (simplify_binary_operation): Don't allow relationals. + * combine.c (subst, gen_binary): Use simplify_relation_operation. + * integrate.c (subst_constants): Likewise. + * jump.c (jump_optimize): Likewise. + + * c-common.c (shorten_compare): Warn about unsigned >= 0. + +Sun Aug 18 17:29:16 1991 (Eric Youngdale at youngdale@v6550c.nrl.navy.mil) + + * tm-vms.h (ASM_OUTPUT_EXTERNAL): Remove code to round the storage + size up to a multiple of 4 bytes. + +Sun Aug 18 15:35:27 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * dbxout.c (dbxout_parms): + Handle parm passed in reg and living in pseudo that was optimized away. + + * function.c (init_function_start): Give decl_printable_name both args. + + * expr.c (compare_from_rtx): + Don't change to unsigned if too wide for host int. + * cse.c (fold_rtx): Use mode_arg0 to simplify comparison ops. + Update mode_arg0 when we look at value of cc0. + + * cse.c (cse_insn): Really don't record bitfield destinations + unless source is constant which fits. + But pre-truncate other constants. + + * config.subr: Allow $os to be empty. + + * function.c (lookup_static_chain): Check for 0 before inline function. + + * config.subr (pc532, minix): New alternatives. + + * configure (editing Makefile): Use cross-make. + * Makefile.in (install-cross): Change dep to install-gnulib. + +Sat Aug 17 17:18:05 1991 Michael Tiemann (tiemann at cygint.cygnus.com) + + * All cplus-* files: Change the representation of the C++ + inheritance lattice for types. There is no longer such a thing as a + classtype_variant. Instead, types all have their own lattices + accessed via their CLASSTYPE_ASSOC field. + + * cplus-tree.h (lang_type): Delete fields OFFSET, + MAIN_CLASS_VARIANT, NEXT_CLASS_VARIANT, VIA_PUB_OR_VIRT. + Rename field AS_ID_LIST to ID_AS_LIST, since it's a list. + (CLASSTYPE_AS_ID_LIST): Renamed to CLASSTYPE_ID_AS_LIST. + Add field ASSOC_AS_LIST, which is a TREE_LIST whose TREE_VALUE is + the assoc for the type. + (CLASSTYPE_VIA_*, SET_CLASSTYPE_VIAS): Deleted. + (CLASSTYPE_OFFSET*): Deleted. + (CLASSTYPE_N_BASECLASSES): Now uses type's assoc. TYPE_BASETYPES + field is unused. Next change will make TYPE_BASETYPES hold the + assoc field. + (CLASSTYPE_VBASE_SIZE): Use slot in TYPE_LANG_SPECIFIC instead of + sneaking it into the TREE_TYPE field of the basetypes. + + (ASSOC_TYPE): Deleted. Now use ASSOC_VALUE everywhere. + (ASSOC_{BASETYPE,BASETYPES}): New macros. Both are operations on + assocs and return assocs. + (CLASS_ASSOC_BASETYPE): New macro. This performs roughly the same + function that CLASSTYPE_BASECLASS used to, but it retains no assoc + info in the type it returns. + (ASSOC_NEXT_ASSOC): New macro used for traversing assoc chains built + up by search routines. + (ASSOC_VIA_{PUBLIC,VIRTUAL}): New macros for accessing inheritance + information. CLASSTYPE_VIA_{PUBLIC,VIRTUAL} no longer used. + (ASSOC_CID): New macro. + + (DECL_ANON_UNION_ELEM): Deleted. Now anonymous union decls are + distinguished as FIELD_DECLs with NULL DECL_NAMEs and UNION_TYPE + types. + + (DERIVED_FROM_P): New macro. Change calls that testing inheritance + relationships (get_base_type and get_base_distance) to use this macro. + + * cplus-type2.c (basetype_or_else): Change interface to use/return an + assoc instead of a type. Change name to base_assoc_or_else. + + * cplus-tree.c (build_classtype_variant): Deleted. + (copy_type_lang_specific): Deleted. + * all cplus-* files: Everything that used to use CLASSTYPE_OFFSET on + types now uses ASSOC_OFFSET on assocs. + + * cplus-class.c (propagate_basetype_offsets): Change interface to use + assocs instead of types. Change name to propagate_assoc_offsets. + * cplus-search.c (get_base_type): Ditto; name changed to + get_base_assoc. + + * cplus-cvt.c (convert_pointer_to): Change interface to use an assoc + instead of a type. + (convert_pointer_to_vbase): Ditto. + * cplus-call.c (build_field_call): Ditto. + * cplus-class.c (get_vfield_offset): Ditto. + (build_method_call): Ditto. + (maybe_fixup_vptrs): Ditto. + * cplus-search.c (get_first_matching_virtual): Ditto. + (get_virtuals_named_this): Ditto. + (tree_needs_constructor_p): Ditto. + (get_virtual_destructor): Ditto. + (tree_has_any_destructor_p): Ditto. + (get_baselinks): Ditto. + (lookup_{field,fnfields}): Ditto. Also, use ASSOC_VBASE_MARKED + instead of CLASSTYPE_MARKED2 to mark virtual basetypes that have + been visited. + (build_vbase_vtables_init): Ditto. + ({build,free}_mi_matrix): Ditto. + * cplus-init.c (expand_aggr_init_1): Ditto. + (expand_aggr_vbase_init_1): Ditto. + (build_virtual_init): Ditto. + * cplus-class.c (build_class_init_list): Rewritten to build list with + assoc entries instead of types. Also, use new macro + ASSOC_BASEINIT_MARKED instead of CLASSTYPE_MARKED6. + (finish_base_struct): New argument ASSOCS is the list of assocs that + describe the basetypes of T. + + * cplus-tree.c (make_lang_type): Always initialize + CLASSTYPE_VBASE_SIZE to integer_zero_node. To test if a class has + virtual baseclasses, test CLASSTYPE_VBASECLASSES, not + CLASSTYPE_VBASE_SIZE. + + * cplus-class.c (finish_struct): Rewritten to use assocs instead of + types where appropriate. + + * cplus-search.c (get_base_distance): Change interface to use assocs + or types. Also, PATH_PTR argument is now an assoc chain, not a + TREE_LIST. Algorithm to find leftmost path is now more efficient. + (compute_visibility): Uses assoc chain instead of TREE_LIST of + types. + (recursive_bounded_basetype_p): New function. + (dfs_walk, dfs_* functions): Change to be called with assocs instead + of types. + (breadth_first_search, all bfs_*): Ditto. + cplus-tree.c (reverse_path): New function. Like nreverse, but works + on assoc chains. + + * cplus-class.c (build_vtable, prepare_fresh_vtable, + modify_vtable_{entries,entry},): Change interfaces to use assocs + instead of types. Use macro ASSOC_VTABLE_PATH_MARKED on the assocs + instead of CLASSTYPE_MARKED3. Use macro ASSOC_NEW_VTABLE_MARKED on + the assocs instead of CLASSTYPE_MARKED4. + + * cplus-dbxout.c: Now needs to know more about assocs. When assocs + are put in the TYPE_BASETYPEs field, it should not need to know + about lang_type. + + * cplus-decl.c (xref_tag): Rewritten to build proper assoc lists. No + longer builds basetype lists. + (finish_function): Make `flag_no_inline' really take effect. + + * cplus-tree.c (make_assoc): Changed for new assoc structure. The + fields in assocs are now: VALUE (pointer to TYPE that this assoc is + for), OFFSET (the byte offset of this basetype in the whole object), + VTABLE (the virtual function table that should be used to initialize + objects controlled by this assoc), VIRTUALS (the virtual functions + to use for initializing VTABLE), BASETYPES (a TREE_VEC of basetypes + that this assoc has, or NULL_TREE if none), NEXT_ASSOC (a temporary + slot used to point to the next assoc in an assoc chain), + VIA_{PUBLIC,VIRTUAL} bits saying whether this assoc is a basetype of + its parent via public or virtual inheritance. + + * cplus-ptree.c (print_lang_type): Modified as necessary to cope with + new inheritance structure. + + * cplus-search.c (get_base_type_1): This function was unused and + wrong. Deleted. + + * cplus-tree.c (layout_basetypes): Take new arg ASSOCS. Layout the + basetypes my modifying the assocs, not the types. + (layout_vbasetypes): Ditto. + + * all cplus-* files: Removed dead code, unused variables, and change + asserts where appropriate. + + * all cplus-* files: DECL_VIRTUAL_P is no longer used as a truth test + for whether or not a function is virtual. Use a test for non-NULL + DECL_VINDEX instead. + +Sat Aug 17 15:16:40 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * function.h (inline_function_decl): Declare it. + * integrate.c: Include function.h; don't declare var here. + + * rtl.h (regno_reg_rtx): Declare it. + + * stmt.c (expand_end_case): + When filling labelvec from case range, avoid overflow in i. + +Fri Aug 16 23:06:37 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * c-typeck.c (build_binary_op_nodefault): + Take out warning added by recent changes. + +Fri Aug 16 22:00:09 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * function.c (inline_function_decl): New var. + (lookup_static_chain): Decl is local if context is function being + inlined. + * integrate.c: Remove partially-completed previous change. + (expand_inline_function): Set inline_function_decl. + +Fri Aug 16 21:41:10 1991 Michael Tiemann (tiemann at pogo.gnu.ai.mit.edu) + + * a29k.md (insv,extv): Changed POS / SIZE to POS / 8, since high + order bit of BP selects half-word position for half-word ops. + +Fri Aug 16 18:52:35 1991 Jim Wilson (wilson at sphagnum.cygnus.com) + + * combine.c (distribute_links): Only put link on new insn if the + insn uses the register. If first find an insn that sets the + register but does not otherwise use it, then drop the link. + + * combine.c (distribute_links): Strip off SUBREG, ZERO_EXTRACT, + etc. from the destination of the set before passing it to + reg_mentioned_p and reg_referenced_p. + +Sat Aug 16 17:02:53 1991 Michael Tiemann (tiemann at cygint.cygnus.com) + + * cplus-pt.c (uses_template_parms): Run loop over _EXPR nodes from + TREE_CODE_LENGTH-1 to 0, not from TREE_CODE_LENGTH. + + * cplus-decl.c (grokfndecl): Change `==' to `=' in assignment to + `raises' + (finish_decl): If FLAG_PIC is nonzero, leave initialized data in + common space. + +Fri Aug 16 13:13:11 1991 James Van Artsdalen (james at bigtex.cactus.org) + + * reg-stack.c (current_function_returns_real): New variable. + (reg_to_stack): Set it. + (stack_reg_life_analysis): Use it. + (emit_pop_insn): Return the new insn. + (convert_regs): Pop any stack regs live at the end of the last basic + block. + +Fri Aug 16 16:16:45 1991 Michael Tiemann (tiemann at pogo.gnu.ai.mit.edu) + + * tm-sparc.h (SELECT_SECTION): Don't put relocatable values into + text space if generating position-independent code. + +Fri Aug 16 16:00:30 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * protoize.c (__flsbuf): Decl deleted; no need. + [ultrix]: Include string.h, not strings.h. + + * function.c (instantiate_virtual_regs_1): Bug adding NEW to addr of X. + +Fri Aug 16 08:51:25 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * expr.c (expand_expr, case ABS_EXPR, MIN_EXPR, MAX_EXPR): Don't + allow TARGET to be a hard reg because evaluating the comparison + might clobber it. + +Thu Aug 15 23:38:04 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * tm-m68k.h (PRINT_OPERAND): Use asm_fprintf to print immed prefix. + +Thu Aug 15 23:36:12 1991 Micheal Tiemann (tiemann at pogo.gnu.ai.mit.edu) + + * cplus-decl.c (finish_enum): Remove last traces of Wood's mistaken + changes for tag handling in C++. + * cplus-class.c (finish_struct): Ditto. + +Tue Aug 13 06:12:18 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * jump.c (find_cross_jump): When avoiding CALL_INSNs, don't + return a CODE_LABEL as a cross-jump point; use next_real_insn instead + of next_nonnote_insn. + + * fold-const.c (optimize_bit_field_compare, merge_component_reference): + Use mode_for_size to get mode for word; don't use SImode. + * tree.c (build_index_type, build_index_2_type): Don't use SImode; + get mode of SIZETYPE instead. + + * optabs.c (emit_cmp_insn): Use type of int instead of SImode for + return from memcmp and bcmp. + +Mon Aug 12 17:54:55 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * stmt.c: Include recog.h. + * stmt.c (expand_end_bindings): Expect abort to return void. + (expand_end_case): Give tablejump whatever mode it wants. + + * integrate.c (integrate_type): New function. + * c-typeck.c (build_binary_op_nodefault): Rewrite last change. + + * Makefile.in (install): Indirect through INSTALL_TARGET. + (install-native): New name for old install target. + (INSTALL_TARGET): New variable. + * cross-make (INSTALL_TARGET): Override it. + +Mon Aug 12 17:25:48 1991 Michael Meissner (meissner at osf.org) + + * out-mips.c (toplevel, override_options, siginfo): If the OSF/1 + SIGINFO signal is provided, invoke siginfo handler, which prints + which file is being compiled, and runs ps on the compiler and it's + parent. + + * make-decrose (CC, OLDCC): Define CC and OLDCC to be the same, so + that tests within Makefile.in work as expected. + (LIB2FUNCS_EXTRA): Put osf-main in the gnulib2 portion of the + library, instead of the gnulib1 portion. + +Mon Aug 12 16:31:47 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * explow.c (expr_size): Fix typo. + +Mon Aug 12 14:27:31 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) + + * expr.c (expand_expr, case COND_EXPR): Fix typo in comment. + In the singleton code, don't accept a hard register as a target if + we are going to store into it before testing the condition because + that evaluation may involve a subroutine call which might clobber it. + + * rtl.h (SCHED_GROUP_P): Fix typo in definition. + +Mon Aug 12 08:01:01 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * jump.c (find_cross_jump): Look at REG_EQUIV notes in addition to + REG_EQUAL notes. + (do_cross_jump): Remove REG_EQUAL or REG_EQUIV notes present on only + one branch of the cross-jump so we don't get confused by them if we + cross-jump again. + +Mon Aug 12 01:44:26 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) + + * unroll.c (unroll_loop): When naively unrolling loops, if the last + jump insn is an unconditional jump, and it does not jump to the loop + top, then it must be copied with the rest of the loop body. + + * rtl.h: Clean up documentation for uses of volatil and in_struct + fields of an rtx. + * gcc.texinfo: Document macros CONST_CALL_P, LABEL_PRESERVE_P, and + SCHED_GROUP_P. Clean up documentation for uses of used, in_struct, + and unchanging fields of an rtx. + + * final.c (final_scan_insn): In the ASM_OUTPUT_LOOP_ALIGN code, + must verify that next exists before checking whether it is a label. + +Sun Aug 11 16:46:17 1991 James Van Artsdalen (james at bigtex.cactus.org) + + * i386.md (cmpstrsi): Enable it. Now uses REG as output, not cc0. + Old cc0-output pattern remains for combining cmpstrsi & test pairs. + +Sun Aug 11 15:52:33 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * dbxout.c (dbxout_symbol): Handle var-length array with reference. + + * c-decl.c (xref_tag): Copy default mode from unsigned_type_node. + * explow.c (expr_size): Get it from size_type. + * reload1.c (allocate_reload_reg): No need to validate mode of + reload_in if that value is a const_int. + + * expr.c (expand_builtin): Get value mode properly, for memcmp. + +Sun Aug 11 15:52:33 1991 Jim Wilson (wilson at cygint.cygnus.com) + + * dbxout.c (dbxout_symbol): DECL_ASSEMBLER_NAME is a tree, not a + character string, so call IDENTIFIER_POINTER before printing it. + + * fold-const.c (fold): When converting foo++ == CONST to ++foo == + CONST + INCR, the plus must have the same TREE_TYPE as the + postincrement, not the comparison. + +Sat Aug 10 22:58:01 1991 Michael Meissner (meissner at osf.org) + + * mips.md (extendqihi2 define_split): Use SImode on shifts rather + than HImode, and turn result register into SImode as well. + +Sat Aug 10 21:00:59 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) + + * calls.c (emit_call_1): New argument is_const. Set CONST_CALL_P + true for the call_insn if is_const is true. + (expand_call): Pass is_const to emit_call_1. + * expr.c (emit_library_call): Pass no_queue to emit_call_1. + Document that no_queue means that the function call is const. + * local-alloc.c (validate_equiv_mem): Don't invalidate memory for + const calls. + * rtl.h: Update comments describing uses of rtl unchanging and + in_struct bits. + (CONST_CALL_P): New macro. True for a call_insn if it is calling + a const function. Uses the unchanging bit. + (SCHED_GROUP_P): New macro. True for an insn if it must be + scheduled together with the previous insn. Uses the in_struct bit. + * sched.c: Rewrite to use new SCHED_GROUP_P macro insead of + RTX_UNCHANGING_P. + (sched_analyze): Rewrite to use new CONST_CALL_P macro. + + * sched.c (schedule_block): Don't schedule a block with a volatile + or traditional asm insn. There is currently no code to correctly + handle dependencies for them. + + * combine.c (distribute_links): Fix typo in comment. + +Sat Aug 10 18:42:22 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * emit-rtl.c (operand_subword): Replace explicit SImode references + with mode for BITS_PER_WORD bits. + +Sat Aug 10 14:17:08 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * calls.c (expand_call): Handle ARGS_GROW_DOWNWARD. + + * ns32k.md (call_value): Consistently realize function is operand 1. + + * cccp.c (do_include): Get current dir from nominal_fname. + + * expr.c (expand_builtin): Give cmpstr* a target in the mode it wants. + * optabs.c (expand_cmp_insn): Likewise. + +Fri Aug 9 09:59:27 1991 Tom Wood (wood at dg-rtp.dg.com) + + * dwarfout.c (output_symbols_for_block): Fix typo in iterating over + subblocks. + + * make-m88k{,dgux,luna}: Eliminate m88k-trace.asm. + * tm-m88k.h, out-m88k.c: Make -mbig-pic a synonym for -fPIC. + Delete -mtrace-function. + + * Makefile.in (CROSS_TOOLS): New variable. + (gnulib1.null, gnulib2.ready): Depend on CROSS_TOOLS. + (gnulib1.null): Use $(AR) $(AR_FLAGS). + * cross-make (CROSS_TOOLS): Define as install-cross-tools. + +Fri Aug 9 15:21:16 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * optabs.c (emit_cmp_insn): Expect cmpstr* to have result operand. + Test the sign of the result we get. + i386.md needs to be changed. + +Fri Aug 9 11:09:22 1991 (Eric Youngdale at youngdale@v6550c.nrl.navy.mil) + + * make-cc1.com: Fix bug where the wrong program was being run to + generate insn-attrtab.c, and, add DEBUG option, so that images can be + linked to run under the debugger. + +Fri Aug 9 06:42:15 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * genemit.c (gen_split): Add "_fail:" label here too. + + * tree.h (STRIP_NOPS): Define macro here; add CONVERT_EXPR to list + of operations to possibly ignore. + * fold-const.c (STRIP_NOPS): Not here. + * expr.c (strip_nops): Delete function. + (string_constant): Use STRIP_NOPS macro instead of strip_nops function. + + * global-alloc.c (expand_preferences): New function. + (global_alloc): Call it. + +Fri Aug 9 01:19:26 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) + + * optabs.c (emit_cmp_insn): Correct typo in spacing. + + * unroll.c: Correct typo in comment. Document that unrolling a + loop by a multiple of the number of memory accesses is a win. + (unroll_loop): New variable last_loop_insn, points to the last + real insn in the loop, which will either be a jump or a barrier. + Use last_loop_insn instead of assuming that PREV_INSN (loop_end) + is that last real insn in the loop. + Standardize comments printed to loop dump file when we can't + unroll a loop, so that they all start with "Unrolling failure". + No longer assumes that the insn before the backward jump is a + compare unless HAVE_cc0. If not HAVE_cc0, then must copy this + insn, and for loop_iterations == 1 case, can not delete this insn. + If last_loop_insn is not a JUMP_INSN or BARRIER, then do not + unroll the loop. + (precondition_loop_p): Fail if loop_iteration_var is not live + before loop_start. + (copy_loop_body): Rewrite obsolete and misleading comment + concerning the splitting of address givs. + (back_branch_in_range_p): Correct typo in comment. No longer + assumes that PREV_INSN (loop_end) is the backward branch at the + end of the loop. + (fold_rtx_mult_add): Rewrite to use simplify_binary_operation. + (iteration_info): Fail if iteration variable is larger than + HOST_BITS_PER_LONG, or if it does not have an integer mode. + (find_splittable_givs): If an address giv was combined with + another address giv, then we can only split the first giv if the + second was actually reduced. + (loop_iterations): New variable last_loop_insn, use instead of + assuming that the last jump insn if PREV_INSN (loop_end). + Correct typo in comment. + +Thu Aug 8 17:57:41 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * Makefile.in (gnulib1.null): Use *_FOR_TARGET variables. + (TARGET_TOOLPREFIX): New variable. + (AR_FOR_TARGET, AR_FOR_TARGET_FLAGS): New variables. + (RANLIB_FOR_TARGET, RANLIB_TEST_FOR_TARGET): New variables. + * cross-make: New file. + * configure: Insert cross-make into Makefile. + + * tm-m68k.h (LEGITIMIZE_ADDRESS): Copy address before changing it. + (COPY_ONCE): New macro, subroutine for LEGITIMIZE_ADDRESS. + + * toplev.c (main): Accept -g with warning if not supported. + + * Makefile.in (install-cross-tools): Do nothing unless have gcc-cross. + (gnulib2.ready): Depend on install-cross-tools. + +Thu Aug 8 14:34:53 1991 Ken Raeburn (raeburn at watch.com) + + * expr.c (c_strlen): New function; determines strlen of string const. + (expand_builtin, cases BUILT_IN_STRCMP, BUILT_IN_STRCPY): Call it + instead of relying on TREE_STRING_LENGTH. For strcmp, optimize + cases where two lengths are available, if at least one of them is + constant. + (expand_builtin, case BUILT_IN_MEMCMP): If alignment test fails, and + function was really BUILT_IN_STRCMP, delete length parameter before + expanding call. + + * tree.h (enum built_in_function): Added BUILT_IN_STRLEN. + * c-decl.c (sizet_ftype_string): New variable, for strlen prototype. + (init_decl_processing): Set it, and declare strlen and + __builtin_strlen as built-in functions. Deleted variable `decl' + since it was only assigned to, never read. + * expr.c (expand_builtin, case BUILT_IN_STRLEN): Implement it. + + * cplus-decl.c (sizet_ftype_string, init_decl_processing): Copy + changes from c-decl.c. Also initialize const_string_type_node. + +Thu Aug 8 14:34:53 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * c-decl.c (pushdecl): Just warn if trad. extern type is temporary. + +Wed Aug 7 15:16:55 1991 Jim Wilson (wilson at sphagnum.cygnus.com) + + * local-alloc.c (block_alloc): When converting a SCRATCH rtx to a + REG rtx, must clear the `used' bit. + +Tue Aug 6 14:17:09 1991 Jim Wilson (wilson at wombat.gnu.ai.mit.edu) + + * stmt.c (expand_start_bindings): Fix typo in comment or spacing. + * rtlanal.c (reg_referenced_between_p): Likewise. + (reg_set_last): Likewise. + * loop.c (make_loop_jump): Likewise. + * longlong.h (UDIV_NEEDS_NORMALIZATION): Likewise. + * local-alloc.c (update_equiv_regs): Likewise. + * global-alloc.c (hard_reg_copy_preferences): Likewise. + * fixcpp: Likewise. + * tm-m68k.h (CONDITIONAL_REGISTER_USAGE): Likewise. + * combine.c (reg_significant): Likewise. + * calls.c (expand_call): Likewise. + * cplus-tree.c (build_cplus_new): Likewise. + + * function.c (fixup_var_refs_insns): When emitting a move insn, + don't put it between a CALL_INSN and its USE insns as this will + break sched and reorg. Instead, put it before the USE insns. + + * combine.c (subst): Convert (ior (ashift A CX) (lshift A CY)) where + CX+CY equals the mode size to (rotate A CX). + + * out-sparc.c (emit_move_sequence): For DImode constants, can not + create a temporary register to hold the high part. + (output_scc_insn): When in a delay slot, verify that NEXT_INSN (insn) + really is the next insn. + + * sparc.md: Fix support for DImode constants. Two new patterns + added, one for high:DI operators and one for lo_sum:DI operators. + (*extend*): Rework these patterns. Don't accept memory input + operands in the define_expands, as this gives better code. + Delete patterns for combining two loads into a load and move; + these are obsoleted by combiner improvements. + Delete define_splits for splitting these obsolete patterns. + (one_cmplsi2): Can not accept general_operand destinations, only + register destinations. + + * tm-sparc.h (STACK_POINTER_OFFSET): Explain how value is derived, + and compute in terms of another macro. + (STRUCT_VALUE_OFFSET): Explain how value is derived. + (FIRST_PARM_OFFSET): Fix typo in comment. + + * expr.c (MOVE_RATIO): Check for HAVE_movstrdi. + (emit_block_move): Add code to use HAVE_movstrdi if present. + (emit_push_insn): Likewise. + + * final.c (final_scan_insn): When insn fails constraint check, + call fatal_insn_not_found instead of just aborting to make + debugging easier. + + * tree.c (integer_all_onesp): Rewrite code to avoid shift by + HOST_BITS_PER_INT which is undefined according to ANSI. Also, + abort for precision values not handled, i.e. those greater than + twice times HOST_BITS_PER_INT. + +Tue Aug 6 14:05:42 1991 James Van Artsdalen (james at bigtex.cactus.org) + + * i386.md (seq,sne): Use setb/setnb mnemonics instead of setc/setnc: + GAS doesn't understand the latter yet. + +Tue Aug 6 13:01:53 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * Makefile.in (install-common): Use -d, not -f, for tooldir/bin. + +Tue Aug 6 10:37:02 1991 (Eric Youngdale at youngdale@v6550c.nrl.navy.mil) + + * make-cc1.com: Replacement file. This new version can build cc1plus + and cc1obj in addition to cc1 (known on VMS systems as gcc-cc1plus.exe, + gcc-cc1obj.exe and gcc-cc1.exe respectively). + +Tue Aug 6 06:30:09 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * cse.c (canon_hash): If a REG in an operand is equivalent to a + constant, hash as if we had the constant. + (exp_equiv_p): See if a REG and constant are equivalent. + +Tue Aug 6 03:59:16 1991 Ken Raeburn (raeburn at watch.com) + + * cplus-tree.c (make_deep_copy): Handle PARM_DECLs. + + * cplus-init.c (build_offset_ref): Use DECL_CHAIN, not TREE_CHAIN + when trying to determine if a function is unique. + + * cplus-decl.c (start_decl): When constructing a decl tree for a + function template, copy last_function_parms to permanent storage, + and save it as the function argument list. Call build_lang_decl + instead of build_decl, instead of duplicating the extra work it does. + Set `overloaded' flag to 1. Call dont_forget_overload, so the + template decl won't get discarded. + Also deleted some commented-out code. + + * cplus-pt.c (uses_template_parms, cases VAR_DECL, FUNCTION_DECL): + Give a warning if template parms are only used in places where they + can't be resolved (e.g., return types or global or fixed-class + variable types). + (tsubst): Preserve storage qualifiers on type field, and pass it to + layout_type if it has changed. + (tsubst, case TEMPLATE_TYPE_PARM): Preserve storage qualifiers. + (tsubst, case INTEGER_TYPE): Process min and max fields, if needed. + (tsubst, case FUNCTION_DECL): Process arguments and result fields. + (tsubst, case PARM_DECL): New branch. Handle parm list for + FUNCTION_DECL nodes. + (tsubst, case TREE_LIST): Copy TREE_PARMLIST flag from source. + Don't bother processing TREE_CHAIN field if it is void_type_node. + (tsubst, cases POINTER_TYPE, REFERENCE_TYPE): Preserve storage + qualifiers. + (tsubst, case FUNCTION_TYPE): Eliminate recursion for simple common + cases for values and context fields. Preserve storage qualifiers. + (tsubst, default case): Print node type of correct variable in error + message. + (instantiate_template): Set function_maybepermanent_obstack to + permanent, along with the others, and restore old value after tsubst + call. This permits the PARM_DECL case to work. + +Mon Aug 5 22:44:51 1991 Michael Tiemann (tiemann at cygint.cygnus.com) + + * cplus-tree.h (struct pending_inline): Add new field `deja_vu' to + mark if this pending_inline has already been seen. + * cplus-lex.c (do_pending_inlines): Set DEJA_VU when seen. + * cplus-lex.c (reinit_parse_for_method, cons_up_default_function): + Initialize DEJA_VU to 0. + * cplus-decl2.c (mark_inline_for_output): Don't add DECL to + PENDING_INLINES if it's already been seen. + * cplus-pt.c (instantiate_template): Initialize DEJA_VU to 0. + + * cplus-method.c (do_inline_function_hair): Change some assignments + to asserts, since they seem to be copying values that are already + there. + +Mon Aug 5 22:23:34 1991 Michael Meissner (meissner at osf.org) + + * genemit.c (gen_expand, main): Change FAIL macro to be a simple + goto _fail, and initialize the return value to 0 in the prologue. + This avoids a useless warning message that the MIPS C compiler + gives if a return is encountered inside of a do { ... } while (0). + +Mon Aug 5 21:28:06 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * cplus-xref.c (GNU_xref_file): Treat VMS like USG. + + * optabs.c (expand_binop): In libcall, use actual mode of op1. + + * c-typeck.c (build_binary_op_nodefault): + In signed versus unsigned compare warning, note promotions of unsigned. + + * c-parse.y (simple_if): Allow error instead of lineno_labeled_stmt. + (if_prefix): New subroutine of simple_if. + + * gnulib2.c (__ashldi3, __ashrdi3, __lshldi3, __lshrdi3): + Accept second arg as int, not long long. + +Sun Aug 4 22:31:53 1991 Michael Tiemann (tiemann at cygint.cygnus.com) + + * cplus-except.c (cplus_expand_start_except): Set up variables + `current_exception_name_as_rtx' and `current_exception_parms_as_rtx'. + These variables are used to factor out calls to `expand_assignment' + and allow instead calls to `emit_move_insn', which takes about 1/2x + the compilation time when called directly. + (various places): Use `store_expr' instead of `expand_assignment' + when reasonable. + (cplus_expand_reraise): Take advantage of above changes. + (setup_exception_throw_decl): This is where *_as_rtx variables are + initialized. + + * cplus-input.c (getch): Rewritten slightly to help GNU C optimizer. + * cplus-lex.c (yylex): In IDENTIFIER case, pre-test condition that + `getch' tests, and call `getc' directly when possible. This cuts + calls to `getch' by a factor of 4 for typical C++. + + * cplus-class.c (add_virtual_function): Memoize the first 256 + virtual function table index nodes (0x80000001, 0x80000002, etc.). + (finish_struct): Use `size_int' instead of `build_int_2' when we + know the int will not be changed in place (such as the size value of + virtual function tables). + * cplus-decl2.c (finish_table): Same change as for `finish_struct'. + * cplus-tree.c (layout_basetypes): Same change. + * cplus-decl.c (init_decl_processing): Use `size_int' to initialize + `size_zero_node' and `size_one_node'. + + * cplus-tree.h (TREE_OVERLOADS_ARROW): Define this. + * cplus-parse.y (operator_name): Set TREE_OVERLOADS_ARROW where + appropriate. + * cplus-type2.c (build_x_arrow): Use TREE_OVERLOADS_ARROW and + reorganize the logic for better speed. + * cplus-ptree.c (print_lang_type): Print when TREE_OVERLOADS_ARROW. + +Sun Aug 4 16:44:54 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * rtlanal.c (reg_referenced_p): Properly handle ASM_OPERANDS. + + * cse.c (cse_insn): When recording this_insn_cc0, build a COMPARE + rtl if SRC is a floating-point value. + +Sun Aug 4 16:16:11 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * fold-const.c (fold): Don't compute shift with negative count. + * cse.c (simplify_binary_operation): Likewise. + +Sat Aug 3 15:57:55 1991 (Eric Youngdale at youngdale@v6550c.nrl.navy.mil) + + * tm-vms.h (ASM_OUTPUT_EXTERNAL): Modify to always write the + correct size of the data object, if it is known. + (ASM_OUTPUT_COMMON): Modify to select the const or the data section + as appropriate. This definition shadows a definition in tm-vax.h + (const_section): Change data type to void. + +Sat Aug 3 15:02:40 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * integrate.c (save_for_inline_copying): Clear constant pool after + saving constants into the insns. + + * expr.c (expand_builtin, case BUILT_IN_MEMCPY): Ensure items + passed to emit_block_move are valid MEMs. + + * recog.c (offsettable_address_p): Don't change INTVAL of a CONST_INT + within an address; that CONST_INT is likely shared and may be used + elsewhere in the address. + + * stmt.c (expand_end_stmt_expr): Don't try to copy result to + REG; it might be BLKmode. + + * reload.c (MATCHES): Don't consider two things equal if they have + side effects. + + * combine.c (try_combine): When replacing SET_DEST inside a PARALLEL, + don't replace it with something that has a side effect. + +Sat Aug 3 13:17:53 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * c-decl.c (init_decl_processing): + If traditional, omit builtins with names that don't start with _. + Also omit if not optimizing. + + * Makefile.in (combine.o, emit-rtl.o, expr.o, final.o, tree.o): + Depend on gvarargs.h. + +Fri Aug 2 11:00:10 1991 (Eric Youngdale at youngdale@v6550c.nrl.navy.mil) + + Merge some VMS changes from 1.39 that did not make it to 2.0. + These changes will prohibit GCC from addressing external symbols with + indirect addressing modes, to be compatible with sharable + image libraries under VMS. + + * tm-vms.h: Define NO_EXTERNAL_INDIRECT_ADDRESS, define + ENCODE_SEGMENT_INFO to make use of hook in varasm.c + + * tm-vax.h: Provide alternative definitions of INDIRECTABLE_CONSTANT_P, + INDIRECTABLE_CONSTANT_ADDRESS_P, and INDIRECTABLE_ADDRESS_P, which + are used when NO_EXTERNAL_INDIRECT_ADDRESS is defined. Also, define + INDIRECTABLE_CONSTANT_ADDRESS_P. Modify definitions of + GO_IF_NONINDEXED_ADDRESS, and GO_IF_LEGITIMATE_ADDRESS to work with + either alternative. + +Fri Aug 2 21:54:55 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * loop.c (check_dbra_loop): Fix typo in arg to single_set. + + * reload1.c (choose_reload_regs): Verify that all registers in a + group still contain the desired value. + (emit_reload_insns): Set reg_reloaded_contents and reg_reloaded_insn + for all registers in a group. + + * combine.c (set_significant): Handle a complex SET_DEST correctly. + +Fri Aug 2 17:12:24 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * tree.c (build_array_type): Make pointer type before array type. + + * Makefile.in (install-common): Never install gcc if gcc-cross exists. + +Fri Aug 2 14:58:42 1991 Michael Meissner (meissner at osf.org) + + * make-mips (CC, OLDCC): Comment why we need to define CC and OLDCC + to get around fixed size table complaints in the MIPS compiler. + +Fri Aug 2 14:08:01 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * configure (writing VPATH definition): Avoid temp file. + + * tm-i860.h (MAX_PARM_BOUNDARY): Defined. + (GO_IF_LEGITIMATE_ADDRESS): Add parens around & operator. + (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Use sp, not r3 (that's fp). + * i860.md (movsf): Don't reload high address part if already loaded. + (cmplesf, cmpledf, cmpgesf, cmpgedf): Set CC_NEGATED; swap operands. + * out-i860.c (strict_single_insn_op_p): + Fix criterion for loading high half. + (output_load_address): #if 0 since not used. + +Fri Aug 2 01:46:39 1991 James Van Artsdalen (james at bigtex.cactus.org) + + * i386.md (swapdf): Don't condition on TARGET_387. + (bit set/complement/clear insns): Don't use if -m486. + (bit test insns): Don't allow a MEM operand. + +Thu Aug 1 19:05:31 1991 Matthew Self (mself at next.com) + + * local-alloc.c (block_alloc): Record regs_live_at for last insn + in basic block too. Otherwise REG_UNUSED regs may overlap hard + regs set in the last insn of the basic block. + +Thu Aug 1 19:02:57 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * emit-rtl.c (gen_rtx): Don't return frame_pointer_rtx (e.g.) if + mode is not Pmode. + + * emit-rtl.c (operand_subword): Don't write explicit divide by 0; + some (broken) compilers give errors for it. + + * m68k.md (udivhi3): One pattern had constraint of "d" with + const_int_operand. + (FPA insns): Operand 1's constraints allow memory and constants, but + the predicate is register_operand; change to general_operand. + +Thu Aug 1 13:41:47 1991 Michael Tiemann (tiemann at cygint.cygnus.com) + + * cplus-lex.c (do_pending_inlines, process_next_inline): Zero out + the DECL_PENDING_INLINE_INFO field after processing it. + (store_pending_inline): Don't delay processing a virtual function, + since it needs to be processed in case the virtual function table is + needed. + + * cplus-decl2.c (mark_inline_for_output): If DECL has pending inline + info, cause it to be processed. + + * cplus-pt.c: Removed extraneous declaration of `permanent_obstack'. + Also, added comment for `reinit_parse_for_template'. + + * cplus-typeck.c (mark_addressable): For FUNCTION_DECL case, also + test DECL_PENDING_INLINE_INFO. + +Thu Aug 1 13:26:12 1991 Michael Meissner (meissner at osf.org) + + * mips-tfile.c (main): If input file is not specified, use the same + file for both input and output. If renaming output file and rename + fails, copy the file. + (free_multiple_pages): New function. + + * tm-decrose.h (ASM_FINAL_SPEC): Add this to call mips-tfile if + using the MIPS assembler. + + * tm-mips.h (ASM_FINAL_SPEC): Add this to call mips-tfile unless + using gas. + (TARGET_VERSION): Do not put __DATE__ in the output. + + * make-mips (BISONFLAGS): Add -l to bison flags because the MIPS + based compilers have problems with #line. + (CC): Define in terms of $(OLDCC) so the USE_HOST macros work. + (EXTRA_PASSES): Build mips-tfile and mips-tdump. + (Makefile): Explicitly use sh to invoke configure. + + * make-decrose (EXTRA_PASSES): Build collect. + (Makefile): Explicitly use sh to invoke configure. + +Thu Aug 1 12:22:17 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * cccp.c (directive_table, node_type): Add #include_next. + (do_include): Support #include_next. + (finclude): New arg DIRPTR. All callers changed. + + * reload1.c (reload_as_needed): Check live_known before accessing + basic_block_head. + +Thu Aug 1 11:47:37 1991 Michael Meissner (meissner at osf.org) + + * gcc.c (compilers): Add new spec %A, which expands ASM_FINAL_SPEC. + This option is added after all other arguments to the assembler. It + is for the MIPS port to run a cleanup program after the assembler + finishes, by having ASM_FINAL_SPEC be "\n mips-tfile args..." + (set_spec): If name is 'asm_final', set the asm_final_spec. + (process_command): print out asm_final_spec for -dumpspecs. + (do_spec_1): Expand %A to be ASM_FINAL_SPEC. + (validate_all_switches): look at any switches handled in + ASM_FINAL_SPEC. + +Thu Aug 1 07:42:37 1991 Tom Wood (wood at dg-rtp.dg.com) + + * dwarfout.c (element_list_attribute): AT_element_list is a BLOCK4. + +Wed Jul 31 17:42:40 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * jump.c (jump_optimize): In "if (...) x = 1; else {...} if (x) ...": + Don't assume that SYMBOL_REFs are always non-zero. + Handle operations other than EQ and NE. + Handle conditional RETURN properly. + + * out-a29k.c (print_operand, case 'e'): When writing LXn, use number + of last label in function. + (output_prolog): Fix missing arg in ADD in a29k_first_epilogue_insn. + +Wed Jul 31 13:41:37 1991 Tom Wood (wood at dg-rtp.dg.com) + + * sdbout.c (sdbout_parms): Don't crash if MEM address is a MEM. + +Wed Jul 31 12:36:37 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * fixincludes: New variable INCLUDES specifies input dir. + + * Makefile.in (install-common): Add dummy elt to EXTRA_PASSES. + Fix typo in test. + + * Makefile.in (install-cross-tools): Use /. in args to test -d. + (cccp.o, dbxout.o, c-plus-*): Added missing dependencies. + + * c-common.c: Don't include rtl.h--that was unmodular. + + * make-i386v (INSTALL): Define this. + +Wed Jul 31 07:38:12 1991 Tom Wood (wood at dg-rtp.dg.com) + + * Makefile.in (LIB2FUNCS_EXTRA): Extra C and assembler files for + gnulib2. + * make-m88k*: Put the assembler files in gnulib2 and eliminate use + of gnulib1. + +Tue Jul 30 20:21:41 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * stddef.h (WCHAR_T): + Test _WCHAR_T_, __WCHAR_T, _T_WCHAR_ and ___int_wchar_t_h. + + * tm-i386isc.h (RETURN_POPS_ARGS): Caller pops the struct value addr. + + * cccp.c (default_include): Search local dir, system, then standard. + + * Makefile.in (USE_HOST_MALLOC, USE_HOST_OBSTACK): + Don't depend on which C compiler is in use. + + * reload1.c (reload): Use pseudoreg to compute spill_indirect_levels. + + * c-decl.c (start_function): Don't take arg types from builtin. + (duplicate_decls): Cancel builtin function if new arg types differ. + Don't take arg types from buiiltin. + +Tue Jul 30 18:45:39 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * reload.c (decompose): Don't blow up for constants; they are safe. + +Tue Jul 30 15:49:34 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * dbxout.c (dbxout_parms): Don't crash if MEM address is a MEM. + + * Makefile.in (install-common): Don't lose if EXTRA_PASSES is empty. + Don't install gcc if gcc-cross exists. + (install-cross-tools): Fix typos. + Avoid doing cd -- use absolute file names. + (gcc-cross.o): Rule deleted. + (gcc-cross): Build gcc, then copy it. + +Tue Jul 30 15:37:25 1991 Michael Tiemann (tiemann at cygint.cygnus.com) + + * cplus-init.c (build_vec_delete): Use `size_binop' when building up + the array end boundary. + +Tue Jul 30 10:03:54 1991 Michael Meissner (meissner at osf.org) + + * tm-mips.h (DOLLARS_IN_IDENTIFIERS): Define to be 1. + +Mon Jul 29 18:56:33 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * reload.c (refers_to_regno_for_reload_p): New function. + (push_reload, find_dummy_reload, immune_p): Use + refers_to_regno_for_reload_p instead of refers_to_regno_p. + + * cse.c (fold_rtx): Don't make shifts wider than object. + +Mon Jul 29 17:17:55 1991 Michael Collison (collison at osf.org) + + * configure: Added entry for mmax-osfrose (Multimax with ns32k + running OSF/1). + +Mon Jul 29 14:51:32 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * Makefile.in (SYMLINK): New variable. + (install-cross-tools): Make symlinks if possible. + Otherwise, for executables, indirect to tooldir with a shell script. + (install-native): Install gcc-cross as bin/gcc under tooldir. + + * Makefile.in (USE_HOST_ALLOCA): + Generate nothing if don't need separate alloca. + (USE_HOST_OBSTACK, USE_HOST_MALLOC): New variables. + (HOST_LIBS): Use them. + (HOST_PREFIX_1): Make a dummy file with this name, + for cross-compiling for a machine that needs no separate alloca, etc. + + * c-parse.y (stmts): Accept either labels or unlabeled statements. + (lineno_labeled_stmt): New nonterminals. + (stmt_or_label, lineno_stmt_or_label): New nonterminals. + (stmts): Use lineno_stmt_or_label. + (stmt): Don't allow labels at this level. + Use lineno_labeled_stmt in place of lineno_stmt. + + * cccp.c (default_include): Get rid of extra #endif. + Use CROSS_COMPILE, not CROSS. + + * make-i386mach: New file. + * configure (i386-mach): Use that file. + +Mon Jul 29 09:10:13 1991 Tom Wood (wood at dg-rtp.dg.com) + + * tm-m88kluna.h (SYSTEM_INCLUDE_DIR): Define (also MACH). + +Sun Jul 28 16:15:39 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * cccp.c (default_include): Use SYSTEM_INCLUDE_DIR. + Delete special cases for MACH, UNOS. + * tm-i386mach.h, tm-sun3mach.h, tm-crds.h (SYSTEM_INCLUDE_DIR): Define. + + * cccp.c (default_include): Use CROSS_INCLUDE_DIR if cross-compiler. + * Makefile.in (cccp.o): Pass a definition for CROSS_INCLUDE_DIR. + + * Makefile.in (gnulib1.null): New target. + (install-common, install-common-headers, install-cross-tools): + (install-cross-rest, install-float-h-cross): New targets. + (install-float-h): New target. + (install-cross, install-headers): Use them. + (tooldir): New variable. + (EXTRA_PASSES): New variable. + + * sdbout.c (plain_type_1): Don't record the size in sdb_type_size + unless a tag is output. + + * Makefile.in (install-cross): Install specs by copying. + Install either gcc or gcc-cross, whichever exists. + (native): Remove gcc from deps. + (start.encap): Add gcc to deps. + (all.cross): Add gcc-cross to deps. + (gcc-cross): Like gcc rule except different output file name. + (gcc-cross.o): Likewise. + + * Makefile.in (EXTRA_PASSES): New variable. + Used for machines which have extra passes to run. + (install-cross): Install those programs. + (native): Compile them. + + * c-parse.y: Support `foo:' before a close brace. + (label): New nonterminal. + (stmt): Use that. Treat a label as a statement in itself. + + * Makefile.in (gnulib*.portable): Rules deleted. + (GNULIB1, GNULIB2): Point directly at gnulib1, gnulib2. + (gnulib): Use GNULIB1, GNULIB2 directly both as deps + and to specify the input files. + (gnulib1.conv): Renamed from gnulib1.convert; no longer phony. + (gnulib*.target): Rules deleted. + make-hp9k320 (GNULIB1): Use gnulib1.conv. + (LIBCONVERT): Override. + + * move-if-change: Use -f with rm and mv. + + * Makefile.in (gnulib2.ready): No longer phony. + +Sat Jul 27 13:03:50 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * combine.c (can_combine_p): Don't use NEXT_INSN, in previous change. + + * Makefile.in (class-c, objective-c): New targets. + + * tm-i386.h (ASM_OUTPUT_ALIGN_CODE): Define it. + (ASM_OUTPUT_LOOP_ALIGN): Use ASM_OUTPUT_ALIGN_CODE. + * tm-i386gas.h, tm-i386vgas.h (ASM_OUTPUT_ALIGN_CODE): Override it. + (ASM_OUTPUT_LOOP_ALIGN): Definition deleted. + + * fixincludes (memvar.h): Make two defs of CAT, one ANSI and one trad. + + * expmed.c (emit_store_flag): Set ICODE only after CODE is right. + +Sat Jul 27 06:45:32 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * flow.c (insn_dead_p): Don't clobber NEEDED while ensuring that we + don't delete insns that set the frame or arg pointer. + + * flow.c (flow_analysis, find_basic_blocks, propagate_block): + Use GET_RTX_CLASS. + +Fri Jul 26 08:18:08 1991 Tom Wood (wood at dg-rtp.dg.com) + + * sdbout.c: Use <syms.h> for USG and provide a definition of + T_VOID if none existed. Use ./gsyms.h for non-USG systems. + * gsyms.h: Renamed from syms.h. + +Fri Jul 26 22:47:53 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * cccp.c (macroexpand): Fix error message syntax. + + * Makefile.in (gnulib2.target): Add semicolon. + +Fri Jul 26 18:17:36 1991 Michael Meissner (meissner at pogo.gnu.ai.mit.edu) + + * make-mips (CC): Bump -Wf,-XNg option to 1500 to allow the MIPS + compiler to compile cc1plus. + +Fri Jul 26 14:42:35 1991 Tom Wood (wood at dg-rtp.dg.com) + + * c-parse.y (yylex): Don't use mbtowc to translate L'\0'. + + * tm-m88ksvr4.h (CPP_SPEC): Specify SVR4 pre-assertions. + +Fri Jul 26 09:53:53 1991 Michael Meissner (meissner at pogo.gnu.ai.mit.edu) + + * Makefile.in (cplus_expr.o): Add missing dependencies, so cc1plus + can be built without first building cc1. + +Fri Jul 26 07:30:51 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * combine.c (can_combine_p): Can't combine if DEST is used in an + insn in the range (succ, i3). + + * expmed.c (store_bit_field): Don't use insv if the mode of its + input is narrower than the width of the field. + (store_fixed_bit_field): Handle value with MODE_FLOAT mode. + (extract_bit_field): Don't use extzv/extv if its output mode is + narrower that width of field. + (extract_bit_field): Handle returning MODE_FLOAT mode. + + * reorg.c (steal_delay_list_from_target): Add new arg PNEW_THREAD. + Instead of redirecting jump, return its target in *PNEW_THREAD. + (fill_slots_from_thread): Pass &NEW_THREAD to + steal_delay_list_from_target. + +Thu Jul 25 21:57:42 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) + + * sched.c: Correct tiemann's email address. + (schedule_block): Note that the values of leftover REG_DEAD notes + are meaningless. + (new_insn_dead_notes): If find an instruction that both uses and + sets dest, then no new REG_DEAD note is needed. + (update_links): When handling dest of last insn, no new REG_DEAD + note is needed if the last insn also uses its dest. + +Thu Jul 25 18:15:33 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * flow.c (regno_clobbered_at_setjmp): Don't blow up if no basic blocks. + +Thu Jul 25 16:55:57 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * cse.c (invalidate, cse_insn): Don't use HASHREG directly. + (HASH): Substitute HASHREG in. + (HASHREG): Deleted. + + * tm-i386mach.h: New file. + * configure (i386-mach): Use that. + + * tm-i386isc.h: New file, copied from 1.40. + + * i386.md (jump, indirect_jump, tablejump, return): + Use ASM_OUTPUT_ALIGN_CODE. + * tm-i386gas.h, tm-i386vgas.h (ASM_OUTPUT_LOOP_ALIGN): + Override the usual definition. + + * rtl.h (FUNCTION_FLAGS_USES_PIC_OFFSET_TABLE): Fix typo. + +Thu Jul 25 16:25:52 1991 Tom Wood (wood at dg-rtp.dg.com) + + * out-m88k.c (legitimize_address): Note use of addressing base. + (m88k_layout_frame): Establish PIC addressing base as needed. + + * tm-m88kdgux.h (GPLUSPLUS_INCLUDE_DIR): Specify. + +Thu Jul 25 07:54:36 1991 Michael Tiemann (tiemann at cygint.cygnus.com) + + * rtl.h (FUNCTION_FLAGS_USES_PIC_OFFSET_TABLE): Defined. + + * integrate.c (expand_inline_function): Propagate the value of + FUNCTION_FLAGS_USES_PIC_OFFSET_TABLE. + + * function.h (struct function): Add new field USES_PIC_OFFSET_TABLE + to structure. Leave it to md files to initialize this field. + * expr.h (current_function_uses_pic_offset_table): New declaration. + * function.c ({save,restore}_tree_status): Save and restore + CURRENT_FUNCTION_USES_PIC_OFFSET_TABLE to/from this slot. + * out-sparc.c (legitimize_pic_address): Set + CURRENT_FUNCTION_USES_PIC_OFFSET_TABLE when appropriate. + (finalize_pic): If the current function does not use the PIC offset + table, there's no need to emit the PIC prologue. + +Wed Jul 24 13:54:41 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * tm-m68k.h (NOTICE_UPDATE_CC): + Calls clear status even if value in address reg. + + * tm-i386gas.h, tm-i386vgas.h (ASM_OUTPUT_ALIGN_CODE): Align with NOPs. + + * i386.md (andsi3): Don't use movzbl if op1 can't support it. + +Wed Jul 24 07:47:59 1991 Michael Tiemann (tiemann at cygint.cygnus.com) + + * cplus-decl.c (finish_decl): Don't build a cleanup for an variable + that is TREE_EXTERNAL. + +Tue Jul 23 20:48:23 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * make-mips: Delete rules for saber C. + * Makefile.in (STAGESTUFF, gnulib2.ready): Undo last change. + + * tm-vax.h (LIB_SPEC): Supply missing close braces. + +Tue Jul 23 14:03:10 1991 Michael Meissner (meissner at osf.org) + + * protoize.c (toplevel): If FULL_PROTOTYPES is defined, assume that + the system provides full prototypes, and include stdlib.h and + unistd.h. + (toplevel): If _POSIX_SOURCE is defined, wait takes a pointer to an + int, even if the system is otherwise BSD. + (toplevel): If NO_CONST_IN_SYSCALL and __STDC__ is defined, assume + the system takes char *'s instead of const char *'s. + (process_aux_info_file, edit_file): Always pass 3 arguments to open, + to allow the NO_CONST_IN_SYSCALL macro to properly cast the + arguments. + + * make-decrose (ALL): Make sure Makefile is rebuilt if either + Makefile.in or make-decrose changes. + (BUILD, SYSTEM_INCLUDES, LDFLAGS): Add BUILD variable to retarget + which build is used. + (CPP_ABORT): Don't define abort=fancy_abort here, do it in + tm-mips.h. + (INSTALL): Use installbsd program, since install uses System V + semantics on OSF/1. + (LANGUAGES): Rename collect-osf to collect. + (CFLAGS, XCFLAGS): Make CFLAGS use standard args and use XCFLAGS to + add additional arguments. + (libdir, bindir, mandir): Define to current install values. + (cplus-lex.o): Work around problems with 1.39 bootstrap compiler + producing bad stabs for certain inlines. + (osf-main.c): Add a simple G++ constructor/destructor to gnulib. + + * make-mips (ALL): Make Makefile depend on Makefile.in and + make-mips. + (CFLAGS, XCFLAGS): Make CFLAGS use standard args and use XCFLAGS to + add additional arguments. + (CC): Add -Wf,-XNg500 switch to compile with due to the MIPS + compiler having fixed size tables. + (SABER_*): Add rules to run saber-C. + + * mips.md (movsi_ulw): Allow unaligned register->register moves, + which is caused by the optimizer, and generate the normal reg move + code. Also, turn loads from the stack into normal moves. + (movsi_usw): Turn stores into the stack into normal moves. + (call, call_value): Turn into a define_expand which takes three + arguments, to make Saber happier. + + * tm-mips.h (abort macro): Define abort to be saber_stop if running + under Saber C. + (__PTR_TO_INT, __INT_TO_PTR): Define as casts if running on a MIPS + machine instead of with subtraction, in an attempt to quiet Saber C. + (ASM_MODIFY_SPEC): Run mips-tfile after the assembler, needs + corresponding gcc.c change to enable. + + * tm-decrose.h (ASM_SPEC): Pass -v switch to gas as well as mips + assembler. + (ASM_MODIFY_SPEC): Run mips-tfile if -mmips-as. + (LINK_SPEC): Pass -v switch to linker. + (LIB_SPEC): Redefine as just -lc. + (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Undefine, use standard + libdir, bindir, and mandir in Makefile now. + (FULL_PROTOTYPES, NO_CONST_IN_SYSCALL): Define to get protoize + to compile cleanly. + + * osf-main.c (new file): Provide simple constructor, destructor + capability to be linked into gnulib. + + * collect-osf.c (various): General rewrite to improve speed and + portability. + + * Makefile.in (CPLUS_OBJS): If CPLUS_INPUT is defined to be + cplus-input.o, compile it separately to work around problems with + bootstraping when it is included in cplus-lex.c. + (STAGESTUFF): Use $(LANGUAGES) instead of hard coded list of + languages, so make-xxx file can override, and provide others. + (gnulib2.ready): Make gnulib2 depend on all LANGUAGES targets, so + that if a target needs something else built, such as mips-tfile, it + will be. + (mostlyclean): Add missing -f to rm. + (install-dir): Use test to see if the directory exists before trying + to create it, and fail if the mkdir fails. + (install-headers): ditto. + (stage?, risky-stage?): ditto. + (install-cross): Install collect and mips-tfile if they are present. + + * mips-tfile.c (toplevel, main): Add -I file option, which renames + the original output file to the given file. + + * cplus-lex.c (toplevel): Include <assert.h> instead of "assert.h" + in order to avoid problems when including cplus-input.c, which also + uses <assert.h>. + + * cplus-pt.c (toplevel): Move include of config.h before obstack.h + in case config.h defines some macros obstack.h uses such as + __PTR_TO_INT. + +Tue Jul 23 13:15:43 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * xm-i386.h, xm-i860.h, xm-spur.h, xm-tahoe.h: Use __builtin_alloca. + +Tue Jul 23 12:26:01 1991 Michael Tiemann (tiemann at cygint.cygnus.com) + + * function.c (instantiate_virtual_regs_1): Change dubious code that + used to assign NEW to XEXP (x, 1) regardless of whether + validate_change accepted it to instead set XEXP (x, 0) back to OLD. + I.e., if the rtx is out of range and OBJECT is NULL, don't make any + change at all. + + * out-sparc.c (compute_frame_size): If a function has any + stack-local objects, it's frame size is non-zero and space must be + reserved for the register window. + + * loop.c (loop_optimize): Use get_max_uid to compute max_uid_for_loop. + + * fold-const.c (size_int): Extend SIZE_TABLE's range from + 0..HOST_BITS_PER_INT-1 to 0..2*HOST_BITS_PER_INT. + + * integrate.c (expand_inline_function): Add minor efficiency + hack to not free all the temp slots as parameters are passed + from "caller" to "callee". + + * integrate.c (expand_inline_function): If the inline function + returns its value via a structure_value_addr, we must prepare for + this to take place, even if the value is ignored by the caller. + + * tm-decstatn.h (SIZE_TYPE): Define this to be "unsigned int". + + * emit-rtl.c (try_split): If `split_insns' actually returns a SEQ + which is isomorphic to PAT, return TRIAL. + + * out-sparc.c (eligible_for_epilogue_delay): FP register moves are + only eligible for leaf-function epilogue delay slots. + +Tue Jul 23 11:52:50 1991 Michael Meissner (meissner at geech.gnu.ai.mit.edu) + + * dbxout.c (dbxout_symbol): Correct typo in getting static member + names. The problem is DECL_ASSEMBLER_NAME returns a tree, and not a + char *. + +Tue Jul 23 07:10:41 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * varasm.c (immed_double_const): Use CONST_INT if MODE fits within + HOST_BITS_PER_INT, not BITS_PER_WORD. + +Mon Jul 22 21:37:03 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * fold-const.c (fold): Always preserve type after using const_binop. + +Mon Jul 22 18:34:55 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * reload1.c (reload): Fix typo in condition for reg_equiv_address + being set from reg_equiv_memory_loc; had X instead of XEXP (X, 0). + +Mon Jul 22 15:25:48 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * gcc.c (process_command): -xnone turns off any -x option. + + * tree.c (copy_chain): Deleted. + * integrate.c (copy_decl_tree): Use copy_list and copy_node. + +Mon Jul 22 11:35:47 1991 Michael Tiemann (tiemann at pogo.gnu.ai.mit.edu) + + * tree.c, tree.h: Fix typos in Jul 22 merge. + +Mon Jul 22 08:51:47 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * jump.c (thread_jumps): Don't set CHANGED if the jump's label isn't + changing. + +Mon Jul 22 02:37:23 1991 Michael Tiemann (tiemann at pogo.gnu.ai.mit.edu) + + * version.c: Bumped to 1.94 because of significant changes to + cplus-* files. + +Sun Jul 21 18:45:57 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * toplev.c (rest_of_compilation): + Save and restore DECL_INITIAL if we use save_for_inline_copying. + * integrate.c (save_for_inline_copying): Really copy DECL_INITIAL. + Calling integrate_decl_tree doesn't do it; deleted that call. + (copy_decl_tree): New function. + + * integrate.c (integrate_decl_tree): Renamed from copy_decl_tree. + (integrate_parm_decls): Renamed from copy_parm_decls. + + * tree.c (copy_chain): New function. + +Sun Jul 21 06:43:23 1991 James Van Artsdalen (james at bigtex.cactus.org) + + * i386.md (tstsi): Add comment noting potential -m486 enhancement. + (SImode push): With -m486, don't push from MEM. + (addsi3): Don't use lea for three operand add if -m486. + (ashlsi3): Don't use lea for shift of 1 if -m486. + (zero_extendhisi2,zero_extendqihi2,zero_extendqisi2): If dest is + %eax, or if -m486, AND is faster than MOVZX. + +Sun Jul 21 06:27:33 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + + * expmed.c (store_fixed_bit_field): Pass actual bit position (including + offset) to get_best_mode; also limit mode size to BITS_PER_WORD. + Use failure of get_best_mode to indicate that field spans word + boundary. + Pass actual bit position to store_split_bit_field. + (store_split_bit_field): Accept actual bit position, hence handing + bitpos > BITS_PER_WORD. + Abort if BITPOS and BITSIZE don't cross exactly one word boundary. + Pass offset to store_fixed_bit_field; if register, use operand_subword; + else adjust offset for second word. + (extract_{fixed,split}_bit_field): Likewise. + +Sun Jul 21 06:11:55 1991 Michael Tiemann (tiemann at cygint.cygnus.com) + + * All cplus-* files: DECL_VIRTUAL_P is no longer applied to + FUNCTION_DECLs. Instead, to test if a function is virtual or not, + it suffices to test whether its DECL_VINDEX is non-NULL. We use + ERROR_MARK_NODE as the placeholder for a FUNCTION_DECL we know will + be virtual, but for which we don't yet know the actual index. + + * cplus-decl.c (define_function): Don't set up DECL_ASSEMBLER_NAME + until after having the chance to call through PFN. Since `pushdecl' + now keys off of DECL_ASSEMBLER_NAME, we don't want to create + inadvertent aliases between builtin and library functions. + + * cplus-typeck.c (build_modify_expr): We don't need to build a + SAVE_EXPR for a WITH_CLEANUP_EXPR. + (unary_complex_lvalue): For good measure, know how to deal with a + WITH_CLEANUP_EXPR inside a SAVE_EXPR. + + * cplus-pt.c (uses_template_parms): Add handler for ARRAY_TYPE. + + * cplus-method.c (do_inline_function_hair): Use TYPE_METHODS instead + of CLASSTYPE_METHOD_VEC for traversing all methods when looking for + inline functions. + + * cplus-class.c (finish_struct_methods): Fix fencepost error if + there were no member functions except for ctors/dtors. + +Sun Jul 21 06:19:01 1991 James Van Artsdalen (james at bigtex.cactus.org) + + * tree.h, output.h (current_function_calls_longjmp): New variable. + * function.c (top level): Define it. + (push_function_context): Save it. + (pop_function_context): Restore it. + (init_function_start): Initialize it. + + * calls.c (expand_call): Set current_function_calls_longjmp if + this call is to `longjmp'. + + * flow.c, global-alloc.c: Include output.h so that + FRAME_POINTER_REQUIRED can use current_function_calls_*. + * Makefile.in (flow.o,global-alloc.o): Includes output.h. + + * rtl.h (FUNCTION_FLAGS_CALLS_LONGJMP): New macro. + + * integrate.c (initialize_for_inline): Record + current_function_calls_lonjmp in `function_flags'. + (output_inline_function): Set current_function_calls_longjmp if + the inline code calls longjmp. + + * function.h (struct function): New field `calls_longjmp'. + + * out-i386.c (simple_386_epilogue): Add function description. + Return 0 if NON_SAVING_SETJMP && `setjmp' is called in function. + + * tm-i386v.h (NON_SAVING_SETJMP): New macro. + (FRAME_POINTER_REQUIRED): New macro. + +Sat Jul 20 12:25:56 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * tm-m88k.h (OPTIMIZATION_OPTIONS): Don't change flag_signed_bitfields. + + * cccp.c (include_defaults) Use LOCAL_INCLUDE_DIR macro instead + of "/usr/local/include". Provide default definition. + + * cccp.c (include_defaults) Added INCLUDE_DEFAULTS macro to + provide complete control over default include directories. + Delete the special case for VMS. + * xm-vms.h (INCLUDE_DEFAULTS): Defined. + + * proto-man: Renamed from proto-unproto.1. + + * final.c (final_scan_insn): Do ASM_OUTPUT_LOOP_ALIGN only for real loop. + +Sat Jul 20 05:34:13 1991 Michael Tiemann (tiemann at cygint.cygnus.com) + + * tree.h (tree_type): Use the MAXVAL slot for TYPE_METHODS. + * cplus-class.c (finish_struct): Methods are now chained with + TREE_CHAIN and placed in the TYPE_METHODS of their _TYPE node. + * cplus-dbxout.c (dbxout_type_methods): Use this fact, instead of + using more C++-specific knowledge. + + * cplus-decl.c (init_decl_processing): Variable + `const_ptr_type_node' was not being initialized. Same with + `const_string_type_node'. + + * tree.h (DECL_PRINT_NAME): Marked for death. + (DECL_ASSEMBLER_NAME): Changed from a char* to a tree node. + All front-end files changed as necessary. + + * cplus-tree.h (DECL_ORIGINAL_NAME): Deleted. Now we use + DECL_NAME. + (DECL_NAME): No longer means the mangled name. Now we use + DECL_ASSEMBLER_NAME for that purpose. + All cplus-* files changed as necessary. + + * cplus-tree.c (lang_printable_name): Use a ring-buffer to hold + printable names instead of DECL_PRINT_NAME slot of a _DECL node. + + * collect2.c: #define COLLECT, and let config.h provide definition + of macros. + +See file ChangeLog.3. |