|
|
1.1 ! root 1: Mon Jan 13 19:12:18 1992 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) ! 2: ! 3: * unroll.c (find_splittable_givs): When completely unrolling loop, ! 4: use biv initial value stored in splittable_regs instead of ! 5: bl->initial_value, since the later may not be safe. ! 6: ! 7: * sched.c (schedule_block): When calculating whether a register ! 8: crosses a call, must do this after registers are killed and before ! 9: new registers are made live. ! 10: ! 11: * x-rs6000: Define INSTALL as /usr/ucb/install -c. /etc/install ! 12: (the SYS V version) does not handle -c option as Makefile.in ! 13: intends it. ! 14: ! 15: Mon Jan 13 11:21:24 1992 Michael Meissner (meissner at osf.org) ! 16: ! 17: * mips-tfile (parse_stabs_common): Don't relocate N_LBRAC and ! 18: N_RBRAC stabs for compatibility with other stabs implementations. ! 19: ! 20: Mon Jan 13 07:41:32 1992 Michael Tiemann (tiemann at cygnus.com) ! 21: ! 22: * cp-decl.c (grokdeclarator): Don't set TREE_PRIVATE here. ! 23: TREE_PRIVATE is only for visibility. ! 24: (start_function): Don't test TREE_PRIVATE here. #pragma ! 25: interface/implementation should properly handle the case of static ! 26: (i.e. non-public) defns in implementation section now. ! 27: ! 28: Mon Jan 13 07:31:38 1992 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 29: ! 30: * rs6000.c (output_ascii): The AIX assembler silently truncates ! 31: strings longer than 666 characters, so break them up well before that. ! 32: ! 33: Mon Jan 13 00:26:47 1992 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 34: ! 35: * c-decl.c (pushdecl): Warn about shadowing at top level any symbol ! 36: that was declared among the function parms. But don't warn for ! 37: parms in a nested function. ! 38: * tree.c (chain_member): New function. ! 39: ! 40: * sparc.c (output_return): Handle structure value in all the cases. ! 41: ! 42: * toplev.c (main): -gstabs+ means use stabs with gdb extensions. ! 43: ! 44: * fixincludes: Insert #undef NULL before #define NULL. ! 45: ! 46: * gvarargs.h (va_list): Check some macros to avoid redefinition. ! 47: ! 48: * tree.h (DECL_PACKED): New macro. ! 49: * c-common.c (decl_attribute): Handle `packed'. ! 50: * stor-layout.c (layout_record): Handle DECL_PACKED. ! 51: * c-parse.y (attrib): Accept `packed' with no arg. ! 52: ! 53: * c-decl.c (shadow_tag): For useless keyword, just warn. ! 54: (duplicate_decls): Don't preserve volatile bit from old decl ! 55: if that is just a default declaration for abort, exit, etc. ! 56: ! 57: * cccp.c (do_assert, do_unassert, check_assertion): ! 58: No pedantic warnings in system header files. ! 59: ! 60: * ultrix.h (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE): Defined. ! 61: (WCHAR_TYPE_SIZE): Defined. ! 62: ! 63: * i386.h (HI_REGISTER_NAMES): Add a name for dummy reg 16. ! 64: ! 65: * dbxout.c (flag_minimal_debug): Make it static. ! 66: ! 67: Sun Jan 12 18:10:46 1992 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 68: ! 69: * c-lex.c (check_newline): Check #line for `3' meaning system header. ! 70: * cccp.c (output_line_command): Output `3' if system header. ! 71: * c-tree.h (system_header_p): Declare it. ! 72: (ridpointers): Declaration deleted. ! 73: ! 74: * dwarfout.c (fundemental_type_code): Treat OFFSET_TYPE like integer. ! 75: (type_is_fundamental, output_type): Likewise. ! 76: ! 77: * optabs.c (expand_float): Abort if FROM has VOIDmode. ! 78: * expr.c (expand_expr, FLOAT_EXPR case): Don't pass a VOIDmode. ! 79: ! 80: Sun Jan 12 16:11:40 1992 Michael Meissner (meissner at osf.org) ! 81: ! 82: * mips.h (ASM_OUTPUT_SPACE): If assembler is gas, don't use the ! 83: .space directive, since the table PREDICATE_CODES generates tickles ! 84: a bug. ! 85: ! 86: Sun Jan 12 15:59:41 1992 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 87: ! 88: * expmed.c: Include real.h. ! 89: (make_tree): Properly handle CONST_INT and handle many more rtl codes. ! 90: (expand_mult_add): Don't do folding here; just call make_tree and fold. ! 91: * Makefile.in (expmed.o): Includes real.h. ! 92: ! 93: Sun Jan 12 12:26:20 1992 Michael Tiemann (tiemann at cygnus.com) ! 94: ! 95: * cp-decl.c (store_parm_decls): Finish change started 11 Jan 1992. ! 96: ! 97: * cp-decl.c (pushtag): Don't set CLASSTYPE_TAGS after ! 98: CURRENT_CLASS_TYPE has been defined. ! 99: ! 100: * cp-lex.c (check_newline): Set INTERFACE_UNKNOWN if we see a ! 101: #pragma implementation or if it's the toplevel file. ! 102: ! 103: Sat Jan 11 22:04:34 1992 Michael Meissner (meissner at osf.org) ! 104: ! 105: * mips.md (fix_truncsfsi2_opt): Delete, since the optimizer will ! 106: strip the clobbers when substituting a register for a cs'ed value, ! 107: unlike GCC 1. ! 108: (fix_truncdfsi2_opt): Likewise. ! 109: (long long shifts): Fix various typos. ! 110: ! 111: Sat Jan 11 15:26:24 1992 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 112: ! 113: * expr.h (GEN_FCN): Alternate definition if FUNCTION_CONVERSION_BUG. ! 114: * xm-romp.h (FUNCTION_CONVERSION_BUG): Define it. ! 115: ! 116: * i386.md (cmpstrsi recognizers): Change back to repz. ! 117: ! 118: Sat Jan 11 11:18:32 1992 Michael Tiemann (tiemann at cygnus.com) ! 119: ! 120: * cp-decl.c (store_parm_decls): Don't put non-PARM_DECL nodes in the ! 121: list that will become DECL_ARGUMENTS. ! 122: ! 123: * cp-decl2.c (grokfield): Convert () initialization to = ! 124: initialization in FIELD context. ! 125: * cp-decl.c (parmlist_is_exprlist): Now non-static. ! 126: ! 127: * cp-decl.c (grokdeclarator): Don't let static class members be ! 128: declared `static' at top-level. ! 129: ! 130: * cp-decl.c (pushdecl_class_level): Don't use DECL_ASSEMBLER_NAME. ! 131: ! 132: * cp-decl.c (grokdeclarator): Don't let language linkage interfere ! 133: with declarator grokking--the two are independent. ! 134: ! 135: * cp-call.c (compute_conversion_costs): Look for constructor or type ! 136: conversions regardless of whether we have CONTRAVARIANCE_HARSHNESS ! 137: or not. Also, `#if 0' some dead code. ! 138: ! 139: * cp-method.c (report_type_mismatch): Fix bugs in formatting error ! 140: messages. ! 141: ! 142: * cp-decl.c (grokvardecl): Verify that when static class members are ! 143: declared at toplevel, the types match their initial declaration. ! 144: ! 145: Sat Jan 11 08:41:24 1992 Fred Fish (fnf at fishpond) ! 146: ! 147: * config/m68kv4.h (NO_DOLLAR_IN_LABEL): Undefine so that the ! 148: default for m68k/SVR4 systems is to use '$', which is more ! 149: widely supported. ! 150: ! 151: Sat Jan 11 10:56:10 1992 Jeffrey A. Law (law at wombat.gnu.ai.mit.edu) ! 152: ! 153: * Finish PIC implementation on the 68k ! 154: * output.h (flag_pic): Declare here so that insn-*.c can see it. ! 155: ! 156: * reload1.c (reload): When compiling PIC ignore REG_EQUIV notes ! 157: which are CONSTANT_P, but are not LEGITIMATE_PIC_OPERAND_P. ! 158: ! 159: * m68k.md (call, call_value): Make these into define_expands. If ! 160: compiling PIC code, then load the address of the function into a ! 161: register so that we make indirect calls. ! 162: (Non-PIC call, call_value): New define_insns. These are ! 163: standard call insns. ! 164: (PIC call, call_value): New define_insns which output PIC calls. ! 165: (movsi): Make this into a define_expand. Legitimize PIC addresses ! 166: if necessary. Old movsi code is now an unnamed define_insn pattern. ! 167: ! 168: * m68k.h (GO_IF_LEGITIMATE_ADDRESS case INDIRECTABLE_1_ADDRESS_P): ! 169: Use LEGITIMATE_PIC_OPERAND_P to reject SYMBOL_REFS and LABEL_REFS ! 170: without PIC relocation when compiling PIC code. ! 171: ! 172: * m68k.c (legitimize_pic_address): New function. Given an address ! 173: return that address as "legitimized" PIC code. ! 174: (print_operand_address): When generating PIC code, handle PIC ! 175: relocated label_refs just like a PIC relocated symbol_ref. ! 176: (print_operand_address): If -fpic then add ":w" to displacement in ! 177: PIC relocated references. ! 178: (print_operand_address): If -fPIC then add ":l" to displacement in ! 179: PIC relocated references. ! 180: ! 181: Fri Jan 10 18:03:08 1992 Ken Raeburn ([email protected]) ! 182: ! 183: * cp-init.c (build_new): Don't allocate header for arrays if no ! 184: destructor is needed. Also fix broken calculation of array size. ! 185: (build_delete): Don't skip array header if no destructor is needed. ! 186: ! 187: Fri Jan 10 14:54:19 1992 Michael Tiemann (tiemann at cygnus.com) ! 188: ! 189: * cp-cvt.c cp-decl2.c cp-expr.c cp-gc.c cp-init.c cp-lex.c cp-parse.y ! 190: cp-pt.c cp-search.c cp-tree.c: Clean up problems found with -Wreturn ! 191: (from rfg). ! 192: ! 193: * cp-typeck.c cp-tree.c cp-cvt.c cp-lex.c cp-call.c cp-class.c: ! 194: Add (unsigned) casts to all places where native SVr4 compilers ! 195: expect to see unsigned values. ! 196: ! 197: Fri Jan 10 08:34:36 1992 Fred Fish (fnf at sunfish) ! 198: ! 199: * m68ksgs.h (REGISTER_NAMES): Provide separate versions for ! 200: SUPPORT_SUN_FPA defined and not defined. ! 201: ! 202: Fri Jan 10 22:36:41 1992 (Eric Youngdale at [email protected]) ! 203: ! 204: * Improve I/O performance of gcc on VMS. ! 205: * cccp.c (VMS_open, VMS_fopen, VMS_freopen): New functions. ! 206: (open, fopen, freopen): Define as macros on VMS. ! 207: * toplev.c (VMS_fopen): New function. ! 208: (fopen): Define as macro on VMS. ! 209: ! 210: Fri Jan 10 22:00:50 1992 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 211: ! 212: * genrecog.c (merge_trees): If two trees both have actions, but ! 213: one adds clobbers and one doesn't, ignore the one that does. ! 214: ! 215: * genemit.c (gen_split): Say that we are giving the definition number ! 216: in our error message. ! 217: * genrecog.c (fatal): Likewise. ! 218: * genoutput.c (scan_operands): Likewise. ! 219: ! 220: * caller-save.c: Include expr.h (for gen_move_insn). ! 221: (regno_save_elim): Deleted. ! 222: (init_save_areas): Don't initialize it. ! 223: (setup_save_areas): Don't set it. ! 224: (save_call_clobbered_regs, restore_referenced_regs): Accept mode, ! 225: not spill register. ! 226: (insert_save_restore): Don't do our own register elimination and ! 227: reloading; instead set the insns we make to the desired mode. ! 228: * reload1.c (struct elim_table): New field MAX_OFFSET. ! 229: (reload): Always call init_save_areas. ! 230: Initialize max_offset each pass. ! 231: At each CALL_INSN, create a need for a spill register that will ! 232: be used by caller-save. ! 233: Pass mode for insns to save_call_clobbered_regs instead of a ! 234: spill reg number. ! 235: Call reload_as_needed if we will have to reload the caller-save ! 236: insns, even if nothing else needs reload (unlikely). ! 237: (eliminate_regs_in_insn): Record maximum offset value. ! 238: * Makefile.in (caller-save.o): Includes expr.h. ! 239: ! 240: * reload.c (find_reloads): CALL_INSNs can't have output reloads. ! 241: * reload1.c (emit_reload_insns): Put any reloads for a CALL_INSN ! 242: in front of any immediately-preceeding USE insns. ! 243: ! 244: * flow.c (life_analysis): Mark all global regs as live at the end of ! 245: the function. ! 246: (propagate_block): Each call makes all global registers live. ! 247: (mark_used_regs): A RETURN may use the stack pointer and uses all ! 248: global regs. ! 249: * cse.c (cse_insn): A CALL_INSN clobbers any global regs. ! 250: * reorg.c (mark_referenced_resources): Calls used global regs. ! 251: (mark_set_resources): CALL_INSNs clobber global regs. ! 252: ! 253: Fri Jan 10 17:24:06 1992 Michael Meissner (meissner at osf.org) ! 254: ! 255: * collect2.c (whole file): Major rewrite to merge in collect3 ! 256: functionality which uses GCC to build up the constructor and ! 257: destructor tables, instead of using the assembler. Also improve ! 258: the support for cross compilers to find the tools. The old assembly ! 259: language support has been removed. ! 260: ! 261: * mips-tfile.c (CODE_MASK): Move to mips.h to use with mips-tdump ! 262: also. ! 263: (MIPS_IS_STAB): Likewise. ! 264: (MIPS_MARK_STAB): Likewise. ! 265: (MIPS_UNMARK_STAB): Likewise. ! 266: ! 267: * mips-tdump.c (various): Changes by Per Bothner to print ! 268: encapsulated stabs, and to shorten the output. ! 269: ! 270: * mips.h (MIPS_VERSION): Set Meissner version # to 7. ! 271: (cmp2_op): Make cmp2_op a real function instead of just a ! 272: macro to cmp_op. ! 273: (OPTIMIZATION_OPTIONS): -O now sets flag_caller_saves and ! 274: flag_schedule_insns_after_reload. ! 275: (CC1_SPEC): Fix typo preventing -mgpopt from being set if ! 276: optimization. ! 277: (PREDICATE_CODES): Define. ! 278: (USE_COLLECT, EXTENDED_COFF, NO_UNDERSCORES): Delete, not needed in ! 279: GCC 2.00. ! 280: (ASM_INT_OP, ASM_SHORT_OP, ASM_CHAR_OP): Likewise. ! 281: (CODE_MASK): Move from mips-tfile. ! 282: (MIPS_IS_STAB): Likewise. ! 283: (MIPS_MARK_STAB): Likewise. ! 284: (MIPS_UNMARK_STAB): Likewise. ! 285: ! 286: * mips.c (cmp2_op): Make this a real function, instead of a macro ! 287: pointing to cmp_op. ! 288: (volatile_buffer): New static variable to support .set volatile. ! 289: (mips_move_1word): Do .set volatile/.set novolatile around volatile ! 290: memory references. ! 291: (mips_move_2words): Likewise. ! 292: ! 293: * mips.md (sne define_split): Fix so that it generates a gtu 0. ! 294: (all set cc define_splits): Remove reload_completed tests. ! 295: (all set cc define_insns): Don't allow 0 as operand 1. ! 296: ! 297: Fri Jan 10 16:40:45 1992 Jeffrey A. Law (law at wombat.gnu.ai.mit.edu) ! 298: ! 299: * m68k.md (addsi3, addhi3, subsi3, stack adjustment peepholes): ! 300: Perform small (8 < N <= 16) constant additions and subractions to ! 301: address registers with two addqw (or subqw) instructions. ! 302: ! 303: Fri Jan 10 06:54:22 1992 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 304: ! 305: * calls.c (expand_call): Check for _longjmp as well as longjmp; ! 306: clean up code a bit and merge with check for setjmp-like names. ! 307: Emit a BARRIER if this is a call to longjmp in addition to ! 308: volatile calls. ! 309: ! 310: Fri Jan 10 02:25:54 1992 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 311: ! 312: * c-typeck.c (digest_init): Properly return error_mark_node ! 313: after invalid element in array initializer. ! 314: ! 315: * gcc.c (pexecute): Use `fork' in error message if don't have vfork. ! 316: ! 317: * Makefile.in: Add .NOEXPORT. ! 318: ! 319: Thu Jan 9 13:36:25 1992 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 320: ! 321: * expr.c (expand_expr): Handle OFFSET_REF. ! 322: ! 323: * cse.c (simplify_binary_operation): Never use associative law for ! 324: floating arithmetic. ! 325: ! 326: * fixinc.svr4: Renamed INCLUDES to INPUT. ! 327: ! 328: * i386.md (cmpstrsi recognizers): Output repe, not repz. ! 329: ! 330: Thu Jan 9 18:02:34 1992 Dennis P. Glatting (dennisg at tti) ! 331: ! 332: * tree.h (CONSTRUCTOR_NAME_FORMAT): Changed name format. Old format ! 333: was recognized as destructors not constructors. ! 334: * objc-actions.c (build_module_descriptor): ! 335: Null-terminate global_object_name. ! 336: ! 337: Thu Jan 9 10:35:58 1992 Tom Wood (wood at dg-rtp.dg.com) ! 338: ! 339: * sdbout.c (sdbout_syms): Don't attempt to output a LABEL_DECL. ! 340: ! 341: Thu Jan 9 08:17:44 1992 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 342: ! 343: * fold-const.c (merge_component_references): Treat constants as ! 344: unsigned, so we don't get extra sign bits where we don't want them. ! 345: ! 346: Wed Jan 8 19:12:59 1992 James Van Artsdalen (james at bigtex.cactus.org) ! 347: ! 348: * reload.c (combine_reloads): Don't use a fixed_reg as an reload ! 349: reg, even if it dies. ! 350: ! 351: * loop.c (record_giv): Fix typo extracting insn_uid. ! 352: ! 353: Wed Jan 8 15:41:10 1992 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 354: ! 355: * cpp.texi, gcc.texi: Files renamed. ! 356: * invoke.texi, extend.texi, md.texi, rtl.texi, tm.texi: New subfiles. ! 357: * Makefile.in: Corresponding changes. ! 358: ! 359: * fixincludes: Renamed INCLUDES to INPUT. ! 360: ! 361: * m68k.c (notice_update_cc, print_operand): Fix typos. ! 362: ! 363: * cp-decl.c (expand_static_init): Save and restore current obstacks. ! 364: ! 365: * c-decl.c (poplevel): Put labels in BLOCK_VARS of top-level block. ! 366: ! 367: Wed Jan 8 12:53:48 1992 Michael Tiemann (tiemann at cygnus.com) ! 368: ! 369: * cp-decl.c (expand_static_init): Switch to PERMANENT_OBSTACK during ! 370: expansion. ! 371: ! 372: Wed Jan 8 07:45:58 1992 Tom Wood (wood at dg-rtp.dg.com) ! 373: ! 374: * m88kv3.h (STARTFILE_SPEC): SVR3 has *crt0.o files. ! 375: ! 376: * configure (m88k-*sysv{3,4}): The files are named m88kv{3,4}. ! 377: ! 378: Wed Jan 8 06:01:44 1992 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 379: ! 380: * romp.md (mftbi): Allow memory in the contraints since there can't ! 381: be an input reload on an insn that uses cc0. ! 382: ! 383: * cse.c (FIXED_BASE_PLUS_P): Include virtual_incoming_args_rtx. ! 384: (NONZERO_BASE_PLUS_P): New macro. ! 385: (find_comparison, simplify_relational_operation_args): Use ! 386: NONZERO_BASE_PLUS_P instead of FIXED_BASE_PLUS_P when appropriate. ! 387: ! 388: * m68k.md (peepholes): Don't change around stack adjusts and pushes ! 389: when we are pushing something whose address involves sp. ! 390: ! 391: * cse.c (simplify_unary_operation): Check for operations on ! 392: integers by looking at mode of OP, not output mode, to avoid ! 393: confusion with FIX operations whose result is an integer. ! 394: ! 395: * rtl.h ([df]const[012]_rtx): Deleted. ! 396: (const_tiny_rtx): New declaration. ! 397: (CONST0_RTX): Use const_tiny_rtx instead of {d,f,}const0_rtx. ! 398: (CONST1_RTX, CONST2_RTX): New macros. ! 399: * emit-rtl.c ([df]const[012]_rtx): Deleted. ! 400: (const_tiny_rtx): New definition. ! 401: (init_emit_once): Initialize const_tiny_rtx instead of old vars. ! 402: * cse.c (simpify_binary_operation): Use CONST[01]_RTX. ! 403: * varasm.c (immed_real_const_1): Likewise. ! 404: * combine.c (subst): Likewise. ! 405: * reg-stack.c (record_reg_life, stack_reg_life_analysis): Likewise. ! 406: * convex.md, i860.md, m88k.c, spur.md, vax.h, ns32k.md: Likewise. ! 407: ! 408: Tue Jan 7 22:11:17 1992 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 409: ! 410: * x-i386isc (ENQUIRE_LDFLAGS): New defn: add -posix. ! 411: ! 412: * protoize.c (_POSIX_SOURCE): Define only if POSIX. ! 413: ! 414: * m68k.h (FPA_REG_P): Always define this somehow. ! 415: ! 416: * c-decl.c (c_decode_option): Handle -Wchar-subscripts. ! 417: * c-typeck.c (build_array_ref): Do the real work. ! 418: ! 419: Tue Jan 7 21:15:54 1992 Michael Meissner (meissner at osf.org) ! 420: ! 421: * mips.md (branch_zero_false): Use correct mode (CC_0) on ! 422: match_operator. ! 423: ! 424: Tue Jan 7 14:24:45 1992 James Van Artsdalen (james at bigtex.cactus.org) ! 425: ! 426: * reg-stack.c (replace_reg): get mode class from a mode, not a reg. ! 427: ! 428: Tue Jan 7 14:16:18 1992 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 429: ! 430: * reg-stack.c (emit_pop_insn): Fix typo FPmode_reg. ! 431: ! 432: * protoize.c (longjmp): Don't declare it. ! 433: ! 434: Tue Jan 7 09:47:47 1992 Michael Tiemann (tiemann at cygnus.com) ! 435: ! 436: * cp-lex.c (real_yylex): From John Hassey, allocate space for the ! 437: terminating null on wide character literals. ! 438: ! 439: Tue Jan 7 07:41:42 1992 Tom Wood (wood at dg-rtp.dg.com) ! 440: ! 441: * m88kv3.h (LIB_SPEC): Add -lg. ! 442: ! 443: Tue Jan 7 06:29:30 1992 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 444: ! 445: * stor-layout.c (layout_type): Don't over-align a structure ! 446: when strict alignment is not required. ! 447: ! 448: * rs6000.h (CALL_USED_REGISTERS): r31 should not be marked call-used. ! 449: ! 450: * rs6000.md (add-and-compare): Fix duplicate operand number. ! 451: ! 452: * a29k.md (inbyte, inhw): Correct duplicate operand number. ! 453: ! 454: * fold-const.c (fold, case MULT_EXPR): Simplify (a * (1 << b)). ! 455: * combine.c (subst, case MULT): Likewise. ! 456: (simplify_shift_const, shift cases): Similarly, associate A << B << C. ! 457: ! 458: * genoutput.c (seen): New array. ! 459: (scan_operands): Give error if an operand number was specified ! 460: twice. Include pattern number in error message. ! 461: (gen_insn, gen_expand, gen_split, gen_peephole): Initialize `seen'. ! 462: (gen_split, gen_peephole): Add initializations for arrays that ! 463: are copied. ! 464: ! 465: * optabs.c (expand_unop): Complete recent change; one TARGET was ! 466: not changed to TEMP. ! 467: ! 468: * expmed.c (expand_mult): Always try multiplication by value and ! 469: by negated value. Fix bug where we don't include the cost of the negate ! 470: when seeing which way is better. Write proper value in REG_EQUAL ! 471: note. ! 472: ! 473: * optabs.c (extendtab): Replacement for {zero,sign}_extend_codes. ! 474: (can_extend_p): Use new table and return type is not enum insn_code. ! 475: (gen_extend_insn): Deleted; not used. ! 476: (init_extends): Make like init_flottab: use new table and initialize ! 477: unused entries to CODE_FOR_nothing, not zero. ! 478: * expr.c (convert_move): can_extend_p fails if it returns ! 479: CODE_FOR_nothing, not zero. ! 480: * expr.h (can_extend_p): Add definition. ! 481: ! 482: * expr.h: Add "extern" to function definitions. ! 483: ! 484: Mon Jan 6 10:12:34 1992 Leonard Norrgard (vinsci at nic.funet.fi) ! 485: ! 486: * m68k.c (SUPPORT_SUN_FPA): Conditionalize references to the ! 487: optional Sun 3 Floating Point Accelerator with SUPPORT_SUN_FPA. ! 488: * m68k.h (SUPPORT_SUN_FPA): Likewise. ! 489: ! 490: * m68k.c (notice_update_cc): New function. ! 491: * m68k.h (NOTICE_UPDATE_CC): Just call notice_update_cc. ! 492: ! 493: * sun3.h (SUPPORT_SUN_FPA): New define. ! 494: ! 495: Mon Jan 6 16:42:43 1992 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 496: ! 497: * varasm.c (assemble_global, assemble_label): New functions. ! 498: * objc-actions.c (finish_objc): Call them to define and globalize. ! 499: Use output_constant to reference a class. ! 500: ! 501: * Makefile.in (install-limits-h): New target. ! 502: (install-headers): Depend on install-limits-h. ! 503: (USER_H): Deleted LIMITS_H. ! 504: (INSTALLED_H): Added limits.h. ! 505: (mostlyclean): Remove tmp-limits.h. ! 506: * limitx.h: New file. ! 507: ! 508: * x-isc: File deleted. ! 509: ! 510: * objc-actions.c (build_module_descriptor): Init global_object_name. ! 511: ! 512: * Makefile.in (collect2): Depend on version.o. ! 513: ! 514: * protoize.c (PATH_MAX): Definition deleted. Just test it ! 515: to see if param.h should be included. ! 516: ! 517: * cse.c (simplify_binary_operation, case MULT): Make a copy ! 518: of the operand when converting 2.0 * X to X+X. ! 519: ! 520: * reload.c (find_reloads): Refine when we set force_reload and ! 521: better document the cases. ! 522: ! 523: Mon Jan 6 08:22:19 1992 James Van Artsdalen (james at bigtex.cactus.org) ! 524: ! 525: * i386.c (output_float_compare): Output only single-pop compare ! 526: if both operands are the FP top of stack reg. ! 527: When comparing FP top of stack with itself, print `%st(0)' as the ! 528: reg name, not `%st'. ! 529: ! 530: Mon Jan 6 12:01:51 1992 Tiggr (rcpieter at mole.gnu.ai.mit.edu) ! 531: ! 532: * arm.md (mulsi3): Fixed contraints. ! 533: ! 534: Mon Jan 6 08:21:46 1992 Tom Wood (wood at dg-rtp.dg.com) ! 535: ! 536: * m88k-move.sh: Renamed from m88k-movstr.sh. Rename the generated ! 537: files move*.asm from movstr*.asm to be SVR3-legit. ! 538: * t-m88k, t-m88kluna, t-m88kv4: Use the new names. ! 539: ! 540: * c-aux-info.c, dbxout.c: Include errno.h as in protoize.c. ! 541: ! 542: * Makefile.in (BISONFLAGS): Don't use -v since *.output is big. ! 543: (cp-parse.c): Do use -d to create cp-parse.h. ! 544: (cp-parse.o): Don't define PARSE_OUTPUT. ! 545: * x-mips, x-m88kdgux (BISONFLAGS): No -v. ! 546: ! 547: Mon Jan 6 07:54:55 1992 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 548: ! 549: * genpeep.c (match_rtx): Loop over vectors (e.g., PARALLEL) in the ! 550: natural order so we see an operand before we see a MATCH_DUP referring ! 551: to it. ! 552: ! 553: * genrecog.c (write_tree_1): Simplify code that writes braces and ! 554: avoid writing them unnecessarily. ! 555: Don't write dead code when last test was unconditional. ! 556: ! 557: * optabs.c (expand_binop, expand_twoval_binop, expand_unop): ! 558: Standardize loop for wider mode. ! 559: (emit_cmp_insn, emit_float_lib_cmp): Likewise. ! 560: (expand_binop): Correct how extensions are done: use convert_to_mode, ! 561: don't use SUBREG for non-integer operations, and remove test ! 562: involving HOST_BITS_PER_INT. ! 563: (expand_unop): Similar changes; make code closer to expand_binop. ! 564: Handle failure of recursive call when expanding. Fix incorrect use ! 565: of TEMP when widening. Use SUBREG for NEG and NOT. ! 566: ! 567: * reload.c (find_reloads_address_part): New function. ! 568: (find_reloads_address): Call it instead of push_reload when we are ! 569: reloading a PLUS or a constant. ! 570: ! 571: Sun Jan 5 18:34:15 1992 (Eric Youngdale at [email protected]) ! 572: ! 573: * make-cc1.com: Change file names from cp-tab.* to cp-parse.*. ! 574: ! 575: Sun Jan 5 18:06:11 1992 Michael Tiemann (tiemann at cygnus.com) ! 576: ! 577: * cp-decl.c (grokdeclarator): Correctly grok REFERENCE_TYPE ! 578: parameters when TYPE_REFERENCE_TO is automagically converted. ! 579: ! 580: Sun Jan 5 05:19:19 1992 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 581: ! 582: * tree.h (CONSTRUCTOR_NAME_FORMAT): New macro. ! 583: * objc-actions.c (build_module_descriptor): Make constructor name ! 584: from name of file or of a global that it defines. ! 585: Return constructor name. ! 586: (finish_objc): Use name returned as name to call. ! 587: ! 588: * protoize.c (GUESSPATHLEN): New macro. ! 589: (main): Use that for initial buffer size for getcwd. ! 590: * dbxout.c (getwd, getcwd, GUESSPATHLEN): Define as in protoize.c. ! 591: (dbxout_init): Call getcwd in loop, as in protoize.c. ! 592: * c-aux-info.c (getwd, getcwd, GUESSPATHLEN): Define as in protoize.c. ! 593: (gen_aux_info_record): Call getcwd in loop. ! 594: * i386v.h, i386vgas.h (MAXPATHLEN): Don't define. ! 595: ! 596: * svr3.h (LINK_SPEC): Don't pass -K. ! 597: ! 598: * reload.c (find_reloads): Do record in non_reloaded_operands if no -O. ! 599: ! 600: * m68k.c (output_function_prologue, output_function_epilogue): ! 601: Add braces and adjust conditionals to fix balance and indentation. ! 602: ! 603: * objc-actions.c (build_module_descriptor): Mark __objc_file_init used. ! 604: ! 605: Sat Jan 4 13:27:40 1992 James Van Artsdalen (james at bigtex.cactus.org) ! 606: ! 607: * protoize.c: unprotoize getcwd & fork declarations. ! 608: (edit_fn_declaration): use "VOLATILE", not "volatile". ! 609: ! 610: Sat Jan 4 20:19:41 1992 Michael Meissner (meissner at osf.org) ! 611: ! 612: * mips.h (set_volatile): Add new global variable reference. ! 613: ! 614: * mips.c (set_volatile): New global variable to keep track of the ! 615: number of .set volatile's done. At present, no code actually turns ! 616: this on. ! 617: (mips_move_1word): Use %. instead of putting const0_rtx into an ! 618: unused operator and using %z to get to $0, which is hardwired to 0. ! 619: (mips_move_2words): Likewise. ! 620: (override_options): Allow %., %{, and %} punctuation. ! 621: (print_operands): Add support for %. to get the current name of ! 622: register 0, %{ to turn on .set volatile, and %} to turn on .set ! 623: novolatile. ! 624: (function_epilogue): Give an error if .set volatile was left on in ! 625: the epilogue. ! 626: (mips_asm_file_start): Don't emit .set nobopt unless we are filling ! 627: branch delay slots. ! 628: ! 629: * mips.md (set reg on comparison define_splits): Don't allow the ! 630: scheduler to split any set of a comparision insns, to work around a ! 631: bug in sched.c. ! 632: ! 633: Sat Jan 4 23:01:41 1992 Jeffrey A Law (law at planet.super.org) ! 634: ! 635: * m68k.c (output_function_prolog): Decrement (instead of ! 636: increment) num_saved_regs when a frame pointer is needed. ! 637: (the link/unlk will restore the frame pointer register) ! 638: ! 639: Sat Jan 4 11:11:24 1992 Dennis P. Glatting (dennisg at tti) ! 640: ! 641: * next.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): #undef before defining. ! 642: ! 643: Sat Jan 4 07:40:25 1992 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 644: ! 645: * expr.c (convert_to_mode): Correctly zero-extend a constant into ! 646: a mode whose size is twice the host int size. ! 647: ! 648: * machmode.h (enum mode_class): Add MAX_MODE_CLASS. ! 649: (GET_CLASS_NARROWEST_MODE): New macro. ! 650: (byte_mode, word_mode): Add declarations. ! 651: * caller-save.c (choose_hard_reg_mode): Use GET_CLASS_NARROWEST_MODE. ! 652: * combine.c (make_extraction): Don't use explicit QImode and SImode. ! 653: * cse.c (simplify_unary_operation): Integer CONST_DOUBLEs have ! 654: VOIDmode, not DImode. ! 655: (simplify_binary_operation): Remove explicit DFmode reference. ! 656: * expmed.c (init_expmed): Don't make our own copy of word_mode. ! 657: (store_bit_field, extract_bit_field): Remove explicit ! 658: QImode reference; don't recompute word_mode. ! 659: (store_fixed_bit_field, {store,extract}_split_bit_field): Don't ! 660: recompute word_mode. ! 661: (emit_store_flag): Likewise. ! 662: (extract_fixed_bit_field): Replace explicit mode references with a ! 663: loop on modes; don't recompute word_mode. ! 664: * expr.c (convert_mode, move_block_{to,from}_reg, use_regs): Don't ! 665: recompute word_mode. ! 666: (emit_push_insn, do_jump_by_parts*): Likewise. ! 667: (push_block): Remove explicit QImode reference. ! 668: (get_inner_reference): Use mode_for_size. ! 669: * emit-rtl.c (restore_reg_data): Make unused regs word_mode. ! 670: (operand_subword): Don't recompute word_mode. ! 671: * fold-const.c (optimize_bit_field_compare): Likewise. ! 672: (merge_component_references): Likewise. ! 673: * flow.c (mark_set_1, mark_used_regs): Likewise. ! 674: * loop.c (combine_movables): Use GET_CLASS_NARROWEST_MODE. ! 675: * optabs.c (expand_binop): Replace SImode references in multi-word ! 676: multiply with the mode used for each subpart. ! 677: (expand_binop, expand_unop): Don't recompute word_mode. ! 678: * reg-stack.c (reg_to_stack): Use GET_CLASS_NARROWEST_MODE. ! 679: * reload.c (find_equiv_reg): Check for MODE_FLOAT, not SFmode/ DFmode. ! 680: * rtl.c (class_narrowest_mode, byte_mode, word_mode): Define. ! 681: (init_rtl): Initialize them. ! 682: * sched.c (attach_deaths): Don't recompute word_mode. ! 683: * stor-layout.c (mode_for_size): Use GET_CLASS_NARROWEST_MODE. ! 684: (get_best_mode): Likewise. ! 685: Don't recompute word_mode. ! 686: * unroll.c (unroll_loop): Replace default of SImode with word_mode. ! 687: ! 688: * calls.c (calls_alloca): Don't recurse on BLOCK_SUPERCONTEXT. ! 689: ! 690: Sat Jan 4 03:42:09 1992 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 691: ! 692: * protoize.c (pointer_type): Use char * if non-ANSI. ! 693: (const_pointer_type): Likewise. ! 694: (malloc, realloc): Declare to return pointer_type. ! 695: (setjmp): Don't declare, to avoid trouble with macro defns. ! 696: (const): If not ANSI, define as empty macro. ! 697: ! 698: Sat Jan 4 00:59:53 1992 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) ! 699: ! 700: * sparc.c (legitimize_pic_address): When converting a symbol_ref, ! 701: use an extra temp reg when -fPIC, and add a REG_EQUAL note to the ! 702: insn referencing the global offset table. This allows loop to ! 703: optimize these PIC sequences. ! 704: ! 705: Fri Jan 3 20:29:57 1992 James Van Artsdalen (james at bigtex.cactus.org) ! 706: ! 707: * i386.md (return): Always output return insns. ! 708: ! 709: * i386.h (FUNCTION_PROLOGUE): If the last nonnote insn in a function ! 710: is a BARRIER, don't output a function epilogue. ! 711: ! 712: Fri Jan 3 12:43:09 1992 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 713: ! 714: * t-decrose, t-decstatn, t-encrose, t-i386rose, t-mips (ALL): ! 715: Use libgcc.a, not libgcc. ! 716: ! 717: * protoize.c (STRINGIFY): Provide non-ANSI alternative definition. ! 718: ! 719: * c-decl.c (get_parm_info): Keep non-parms in the parm list. ! 720: ! 721: * stmt.c (cost_table): Now short. ! 722: (estimate_case_costs): Handle that. ! 723: ! 724: * Makefile.in (float.h, *protoize.1, gcc.xtar.Z): ! 725: Make temp files, then rename. ! 726: (clean): Delete those temp files. ! 727: ! 728: * Makefile.in (c-parse.c): Don't use -d, since cp-parse.output is big. ! 729: ! 730: Fri Jan 3 10:32:31 1992 Michael Tiemann (tiemann at mole.gnu.ai.mit.edu) ! 731: ! 732: * Makefile.in (cp-parse.c): Add missing -o flag. ! 733: ! 734: Fri Jan 3 08:21:04 1992 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 735: ! 736: * reg-stack.c: Complete last change (renaming DFmode_reg). ! 737: ! 738: * expmed.c (init_expmed): Pass dummy pointer to number of clobbers to ! 739: recog so it can let us see patterns that need added clobbers. ! 740: ! 741: Fri Jan 3 07:54:32 1992 Tom Wood (wood at dg-rtp.dg.com) ! 742: ! 743: * c-decl.c (implicitly_declare): Record whether this is an implicit ! 744: declaration before setting IDENTIFIER_IMPLICIT_DECL. ! 745: ! 746: Thu Jan 2 21:17:12 1992 Michael Meissner (meissner at osf.org) ! 747: ! 748: * mips.c (compute_frame_size): Don't count FP registers twice. ! 749: ! 750: Thu Jan 2 14:59:55 1992 Michael Tiemann (tiemann at hal) ! 751: ! 752: * cp-lex.h: Renamed from cp-parse.h. Now cp-parse.h is the file ! 753: created by bison from cp-parse.y. ! 754: * Makefile.in: reflect this naming change. ! 755: ! 756: Thu Jan 2 12:37:32 1992 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 757: ! 758: * objc-actions.c (build_obj_method_call): Typo in NEXT case. ! 759: ! 760: * next.h (HAVE_ATEXIT): Defined. ! 761: ! 762: * c-decl.c (duplicate_decls): ! 763: No error if override decl that has DECL_BUILT_IN_NONANSI. ! 764: ! 765: * Makefile.in (c-parse.c): Don't use -o, since cp-parse.output is big. ! 766: ! 767: * Makefile.in (protoize, PROTOIZE): Delee these 2 new targets; ! 768: `protoize' was redundant. ! 769: ! 770: * c-typeck.c (build_function_call): If the fn is volatile, ! 771: make a pointer-to-volatile-function type pointer. ! 772: * calls.c (expand_call): Handle calls to such pointers as volatile. ! 773: ! 774: * expmed.c (init_expmed): Pass all 3 args to `recog'. ! 775: ! 776: * varasm.c (output_constant): For REAL_TYPE, mode_for_size arg is bits. ! 777: ! 778: * sparc.md (storing SF into mem at symb addr): Fix typos. ! 779: ! 780: * protoize.c (my_access, my_stat, my_execvp, my_link, my_unlink): ! 781: (my_open, my_chmod): Macros that run access, stat,... with casts. ! 782: Renamed from former POSIX-only macros and made unconditional. ! 783: All calls to these functions also renamed. ! 784: ! 785: * m68k.h (LEGITIMATE_PIC_OPERAND_P): Undo change below, ! 786: thus making the behavior really change to accept all CONST_DOUBLE. ! 787: ! 788: * libgcc1.c, libgcc2.c: Renamed from gnulib1.c, gnulib2.c. ! 789: * gcc.c (link_command_spec): Link with libgcc.a. ! 790: * Makefile.in (libgcc): Rename targets and variables from gnulib. ! 791: * *.h, t-*, x-*: Rename refs to those symbols and files. ! 792: * expr.c (LIBGCC_NEEDS_DOUBLE): Renamed from GNULIB_... ! 793: ! 794: * m68k.c (symbolic_operand): Reject all CONST_DOUBLE. ! 795: * m68k.h (SELECT_RTX_SECTION): Use LEGITIMATE_PIC_OPERAND_P. ! 796: (LEGITIMATE_PIC_OPERAND_P): Reject the CONST_DOUBLEs ! 797: that symbolic_operand used to accept. ! 798: ! 799: Thu Jan 2 21:06:13 1992 James Van Artsdalen (james at bigtex.cactus.org) ! 800: ! 801: * protoize.c (is_id_char,free_def_dec,check_aux_info): ! 802: Don't declare them `inline'. ! 803: (save_def_or_dec,munge_compile_params,find_extern_def,check_source, ! 804: scan_for_missed_items): Use alloca instead of variable length arrays. ! 805: ! 806: * Makefile.in (protoize,unprotoize): Get $(LIBS) for alloca. ! 807: ! 808: Thu Jan 2 21:40:52 1992 Jeffrey A Law (law at b115.super.org) ! 809: ! 810: * sparc.h (OPTIMIZATION_OPTIONS): Enable caller-saves for -O2 ! 811: and higher optimization levels. ! 812: ! 813: Thu Jan 2 06:46:56 1992 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 814: ! 815: * final.c (final_scan_insn): Compare debug_info_level with entries in ! 816: its enum, not with integers. ! 817: ! 818: * reg-stack.c ({SF,DF}mode_reg): Deleted. ! 819: (FP_mode_reg): New array, indexed by register and by mode. ! 820: (reg_to_stack): Replace initialization of old vars with initialization ! 821: of FP_mode_reg. ! 822: (replace_reg): Use new array. ! 823: ! 824: * romp.c, romp.h, romp.md: Rename symbolic_operand to ! 825: romp_symbolic_operand. ! 826: ! 827: * emit-rtl.c (init_emit_once): Create virtual registers before the ! 828: structure value regsisters, since the latter might use the former. ! 829: ! 830: * varasm.c (output_constant): Fix typo: missing arg to expand_expr. ! 831: ! 832: * vax.md (call_pop, call_pop_value): Use correct register number for ! 833: stack pointer. Add new patterns for case of zero args. ! 834: ! 835: Thu Jan 2 08:12:59 1992 Fred Fish (fnf at sunfish) ! 836: ! 837: * x-amix: Minor changes to some comments. ! 838: * x-amix (CCLIBFLAGS, GNULIB2_CFLAGS, XCFLAGS): Remove definitions. ! 839: * x-amix (manext): Add definition. ! 840: ! 841: Thu Jan 2 11:14:28 1991 Ken Raeburn ([email protected]) ! 842: ! 843: * fold-const.c (fold, case PLUS_EXPR): If association permits ! 844: reduction to var+0, convert var to the desired type before returning ! 845: it. ! 846: ! 847: Wed Jan 1 10:37:50 1992 Michael Tiemann (tiemann at cygnus.com) ! 848: ! 849: * expr.c (convert_move): When GET_MODE_BITSIZE (TO_MODE) > ! 850: BITS_PER_WORD, check that it's also > GET_MODE_BITSIZE (FROM_MODE). ! 851: ! 852: * expr.c (expand_expr): In CONSTRUCTOR case, preserve ! 853: MEM_IN_STRUCT_P when creating a new target when TARGET and EXP might ! 854: not be independent. ! 855: ! 856: Wed Jan 1 18:32:03 1992 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 857: ! 858: * c-parse.y (parmlist_1): Accept `PARMS; PARMS'. ! 859: (parmlist_or_identifiers_1): Likewise. Also use plain parmlist_2. ! 860: Delete the ([names] decls) syntax. ! 861: (defn_parms, defn_parmlist_2): Deleted. ! 862: * c-decl.c (get_parm_info): Put parm decls into original order. ! 863: Don't nreverse the original decls list. ! 864: (pushdecl, duplicate_decls): Avoid error for forward parm decl. ! 865: (clear_parm_order): New function. ! 866: (push_parm_decl): Record original order of parms. ! 867: ! 868: * c-decl.c (struct binding_level): New slot subblocks_tag_transparent. ! 869: (pushlevel): Use that, not ->parm_flag. ! 870: (start_function): Set that slot. ! 871: ! 872: * config.sub: Always distinguish between amix and sysv4. ! 873: Convert commodore to cbm and digital to dec. ! 874: ! 875: * m68k.md (stack adjust then push SI): New peephole. ! 876: ! 877: * m68k.h, fx80.h (WCHAR_TYPE): Use precisely "long int". ! 878: * sun3.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Undef before defining. ! 879: ! 880: * cexp.y (yylex): Use LONG_TYPE_SIZE, not INT_TYPE_SIZE. ! 881: (LONG_TYPE_SIZE): Add default definition. ! 882: ! 883: * objc-actions.c: Declare index and rindex. ! 884: (build_module_descriptor): Simplify last change. ! 885: Use a fixed name for the initialization function. ! 886: (init_objc): Don't do constructor here. ! 887: (finish_objc): Do it here, with proper name if not NEXT_OBJC_RUNTIME. ! 888: ! 889: * protoize.c: Unprotoized. ! 890: (edit_file): Improve message in -n case. ! 891: ! 892: * Makefile.in (LANGUAGES): Add proto. ! 893: (C, C++, OBJC, OBJECTIVE-C): Aliases for l.c. targets. ! 894: (PROTOIZE, protoize, PROTO): Aliases for proto. ! 895: (rest.encap): Delete dep `proto'. ! 896: ! 897: Wed Jan 1 15:07:41 1992 Michael Meissner (meissner at osf.org) ! 898: ! 899: * mips.md (extend*): Use gen_lowpart to make the SUBREG, rather than ! 900: doing it wrong by hand. If not optimizing, make sign extends from ! 901: memory not force the operand into a register first and do two ! 902: shifts -- combine already does this when optimizing. ! 903: (copyright): Add 1992 to list of years the file was modified. ! 904: ! 905: Wed Jan 1 06:10:01 1992 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 906: ! 907: * reload1.c (reload): When forcing an illegitimate constant into ! 908: memory, use mode of SET_DEST in case constant is VOIDmode. ! 909: ! 910: * stmt.c (expand_end_case): Pass index type to emit_case_nodes instead ! 911: of unsigned flag. ! 912: (node_has_{low,high}_bound): Accept INDEX_TYPE as an argument and see ! 913: if the a node value is at the limit of values of the type. ! 914: (node_is_bounded): Accept INDEX_TYPE and pass to above functions; ! 915: always call them. ! 916: (emit_case_nodes): Accept INDEX_TYPE instead of UNSIGNEDP as arg; ! 917: pass index type to recursive calls and to calls to bound checking ! 918: functions. ! 919: ! 920: * varasm.c (assemble_integer_zero): Deleted. ! 921: (assemble_integer, assemble_real): New functions. ! 922: (output_constant_pool, output_constant): Use new functions. ! 923: * final.c (end_final, profile_function): Likewise. ! 924: ! 925: * calls.c (calls_alloca): Don't interpret operands that are RTL as if ! 926: they were trees; check args of nested CALL_EXPR for alloca calls. ! 927: ! 928: Wed Jan 1 16:51:30 1992 Fred Fish (fnf at fishpond) ! 929: ! 930: * Makefile.in (manext): Include the '.' character. ! 931: (mandir): Don't use manext. ! 932: (install-man, uninstall): Change uses of manext. ! 933: ! 934: Wed Jan 1 21:31:01 1992 Ron Guilmette (rfg at ncd.com) ! 935: ! 936: * i860.md (cmpeqsi, cmpltsi, cmpgtsi): Made control flow more obvious. ! 937: (cmpnesi, cmplesi, cmpgesi): New patterns. ! 938: (cmpgeusi, cmpleusi): Fixed bug in compares against zero. ! 939: ! 940: Tue Dec 31 11:16:37 EST 1991 Dennis P. Glatting (...!uunet!tti!dennisg) ! 941: ! 942: * objc-actions.c (build_module_descriptor): Emit a constructor ! 943: function. Constructor function calls a ObjC run-time routine passing ! 944: a pointer to the module's module structure. ! 945: (init_objc): Call different constructor function if not Next. ! 946: (build_selector_translation_table): Don't give a selector global scope. ! 947: Changed in construction of decl_specs. ! 948: ! 949: Tue Dec 31 18:06:23 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 950: ! 951: * genrecog.c (add_to_sequence): Clear PREDS for "const_int_operand". ! 952: (same_modes): Properly check when we should ignore a mode test. ! 953: ! 954: * reload1.c (emit_reload_insns): Only change spill_reg_store for ! 955: output reloads. ! 956: Clear spill_reg_store when we did an input reload to a spill register. ! 957: (delete_output_reload): Use single_set. ! 958: (count_occurrences): Don't count use which is SET_DEST. ! 959: ! 960: Tue Dec 31 16:51:37 1991 Michael Meissner (meissner at osf.org) ! 961: ! 962: * mips.h (MIPS_VERSION): Change Meissner version # to 6. ! 963: (ASM_FINAL_SPEC): Don't pass -d and friends to mips-tfile. ! 964: (CONSTANT_ALIGNMENT): Align constructors on word boundaries. ! 965: ! 966: * mips.md (extend*): Replace sign extension insns with a ! 967: define_expand that converts the expansion into the appropriate ! 968: shifts. Add insns that do sign extension from memory, which the ! 969: optimizer will utilitize if the thing being sign extended really ! 970: comes from memory. This allows the shifts to compete for CSE, at a ! 971: potential cost of generating worse code if reload spills a HI or QI ! 972: register to the stack. ! 973: (sne define_split): Instead of using a constant 0 as the second ! 974: argument to the slti instruction, use a hard coded regisiter 0. ! 975: ! 976: * mips-sysv.h (MD_STARTFILE_PREFIX): Define to point into the ! 977: directory where the MIPS compilers live. ! 978: (LIB_SPEC): Add crtn.o after all libs. ! 979: (STARTFILE_SPEC): Use crt1.o, not crtn.o. ! 980: (MACHINE_TYPE): Correct typo, this is System V, not BSD. ! 981: Changes are from Ron Guilmette (rfg at ncd.com). ! 982: ! 983: * configure (mips-*-sysv): Correctly use mips-sysv.h instead of ! 984: mips.h. Change is from Ron Guilmette. ! 985: ! 986: Tue Dec 31 16:51:37 1991 Michael Stump (mrs at charlie.secs.csun.edu) ! 987: ! 988: * t-decrose, t-decstatn, t-encrose, t-i386rose, t-mips: Remove ! 989: collect2 from EXTRA_PASSES, as collect2 does not need installing as ! 990: collect2. Also, change the symlink back to a hard link. ! 991: ! 992: * Makefile.in: Add collect2 to STAGESTUFF as it is something that ! 993: needs removing or moving to stagen, but it should not be installed. ! 994: ! 995: Tue Dec 31 15:47:50 1991 Michael Tiemann (tiemann at hal) ! 996: ! 997: * combine.c (simplify_comparison): Swap evaluation of OP0 and OP1 so ! 998: the lattern can use the result of the former. ! 999: ! 1000: * conditions.h: In comments, refer to `tm.h', since `tm-' is no ! 1001: longer the form used for these files. ! 1002: ! 1003: Tue Dec 31 11:45:26 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 1004: ! 1005: * cp-lex.c (lineno, finput): Decls deleted. ! 1006: ! 1007: * global-alloc.c (find_reg): New arg RETRYING. ! 1008: (retry_global_alloc, global_alloc): Pass that arg. ! 1009: ! 1010: * Makefile.in (*protoize, *protoize.o): Compile with CC. ! 1011: * protoize.c: Include config.h, not tconfig.h. ! 1012: Always define _POSIX_SOURCE. ! 1013: ! 1014: * convex*.h (CPP_SPEC): !ansi controls _POSIX_SOURCE, _CONVEX_SOURCE. ! 1015: * conv1*.h, conv2*.h: Files deleted. ! 1016: ! 1017: * m68k.h, fx80.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Defined. ! 1018: ! 1019: Tue Dec 31 08:08:32 1991 Tom Wood (wood at dg-rtp.dg.com) ! 1020: ! 1021: * cexp.y (yylex): Record the parsed characters when dealing with ! 1022: multibyte characters. ! 1023: ! 1024: Mon Dec 30 17:13:30 1991 James Van Artsdalen (james at bigtex.cactus.org) ! 1025: ! 1026: * i386.md (mulhi3,mulsi3): If a multiply by constant 128, use the ! 1027: two operand multiply instead of three operand form: the AT&T ! 1028: assemblers generate incorrect object code for the latter. ! 1029: ! 1030: Mon Dec 30 17:39:36 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 1031: ! 1032: * jump.c (jump_optimize): Complete last change: use expand_and result. ! 1033: ! 1034: * reload1.c (emit_reload_insns): Check if reload_in needs a secondary ! 1035: reload if we have an in-out reload, since it might have been the ! 1036: output the needed the secondary reload. ! 1037: ! 1038: * cse.c (simplify_unary_operation): Mode of integer CONST_DOUBLE is ! 1039: VOIDmode, not DImode. ! 1040: ! 1041: * fold-const.c (fold, case COND_EXPR): Make an ABS_EXPR when the ! 1042: comparison is LE_EXPR or LT_EXPR. ! 1043: ! 1044: * calls.c (calls_alloca): New function. ! 1045: (expand_call): Preexpand any argument that contains a call to alloca ! 1046: if this call will use the stack. ! 1047: ! 1048: * rs6000.h (DATA_SECTION_OP): Make result a string to avoid compilation ! 1049: error. ! 1050: ! 1051: * rs6000.h, sparc.h, sun2o4.h, sun3.h (WCHAR_TYPE_SIZE): Fix ! 1052: incorrect definition. ! 1053: ! 1054: Mon Dec 30 16:10:46 1991 Michael Meissner (meissner at osf.org) ! 1055: ! 1056: * mips.h (CC1_SPEC): Complete change deleting -mnogpopt and -mngpopt ! 1057: in favor of -mno-gpopt. ! 1058: ! 1059: Mon Dec 30 11:32:05 1991 Michael Tiemann (tiemann at cygnus.com) ! 1060: ! 1061: * cp-class.c (build_vtable): If we're doing #pragma interface ! 1062: and the interface is known, set TREE_PUBLIC, regardless of ! 1063: TREE_EXTERNAL settings. ! 1064: ! 1065: * cp-decl.c (make_temporary_for_reference): Don't call ! 1066: `convert_pointer_to', since the type may not be an aggr type. ! 1067: ! 1068: * cp-decl.c (finish_decl): Now takes 4th arg NEED_POP. ! 1069: All callers changed. ! 1070: ! 1071: * cp-class.c (permanent_obstack): Declare it. ! 1072: (add_method): push and pop obstacks before changing out of/into ! 1073: temporary allocation. ! 1074: * cp-decl.c (implicitly_declare): Add ! 1075: push_obstacks_nochange/pop_obstacks around changes out of/into ! 1076: temporary allocation. ! 1077: (shadow_tag,xref_tag,start_decl,finish_decl): Ditto. ! 1078: * cp-decl2.c (grokfield,get_temp_name): Ditto. ! 1079: * cp-except.c ({ansi_}lookup_exception_object): Ditto. ! 1080: * cp-lex.c (get_time_identifier): Ditto. ! 1081: * cp-tree.c (build_exception_variant): Ditto. ! 1082: * cp-typeck.c (mark_addressable): Ditto. ! 1083: ! 1084: * cp-decl.c (grokdeclarator,maybe_build_cleanup): Delete calls to ! 1085: preserve allocation status. Now handled by callers. ! 1086: ! 1087: Mon Dec 30 01:44:21 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 1088: ! 1089: * c-lex.c (yyprint): Function moved here. ! 1090: * c-parse.y, objc-parse.y: Moved from here. ! 1091: ! 1092: * Makefile.in (c-parse.c, objc-parse.c, cp-tab.c, cexp.c): ! 1093: cd to srcdir to run Bison. ! 1094: ! 1095: * c-lex.c (check_newline): Get rid of #ident pedantic warning. ! 1096: * cccp.c (do_ident): Put it here. ! 1097: Don't warn if in system header file. ! 1098: ! 1099: * cccp.c (main, finclude): Warn if file ends in backslash-newline. ! 1100: ! 1101: * next.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): New definitions. ! 1102: ! 1103: * global-alloc.c (find_reg): Kick out local regs if that helps. ! 1104: (global_alloc): Set up vars local_regs_live_length, local_regs_n_refs. ! 1105: ! 1106: * protoize.c (do_processing): Fix setting syscalls_absolute_filename. ! 1107: ! 1108: * configure (m68k-*-sysv4*, m68k-*-amix*): New alternatives. ! 1109: * config.sub (*-commodore): Default OS to Amigados. ! 1110: (-amix*): Allow this as input. ! 1111: (amiga): New abbreviation. ! 1112: ! 1113: * sparc.c (output_function_epilogue): Skip unimp differently in leaf. ! 1114: Use jmp insn rather than separate add. ! 1115: (output_return): Skip unimp here too. ! 1116: * sparc.md (return "peepholes"). Handle skipping the unimp. ! 1117: ! 1118: * fold-const.c (fold, optimizing 2*EXPR): Use save_expr. ! 1119: ! 1120: * varasm.c (make_decl_rtl): Permit initializer for local explicit reg. ! 1121: ! 1122: * c-decl.c (kept_level_p): Changed to also return TRUE for binding ! 1123: levels which contain only tagged type declarations. ! 1124: ! 1125: * calls.c (expand_call): Cleaned up prev change. ! 1126: ! 1127: Mon Dec 30 11:29:47 1991 Michael Tiemann (tiemann at mole.gnu.ai.mit.edu) ! 1128: ! 1129: * cp-lex.c (real_yylex): Call REAL_VALUE_TRUNCATE with 2 args. ! 1130: ! 1131: * calls.c (expand_call): Handle allocating ARGBLOCK in the case ! 1132: that ACCUMULATE_OUTGOING_ARGS is not defined. ! 1133: ! 1134: Mon Dec 30 10:27:11 1991 James Van Artsdalen (james at bigtex.cactus.org) ! 1135: ! 1136: * protoize.c: fix typo in <sys/wait.h> inclusion. ! 1137: ! 1138: Mon Dec 30 06:16:16 1991 Leonard Norrgard (vinsci at nic.funet.fi) ! 1139: ! 1140: * c-decl.c (grokdeclarator): Changed erroneus error message. ! 1141: ! 1142: Sun Dec 29 16:16:55 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 1143: ! 1144: * toplev.c (main): Last -On option wins. ! 1145: * Makefile.in (ENQUIRE_CFLAGS): Add -O0. ! 1146: ! 1147: * Makefile.in (cp-tab.c): Change "expect" message. ! 1148: ! 1149: * final.c (leaf_renumber_regs): Renumber just the PATTERN. ! 1150: ! 1151: Sun Dec 29 14:20:15 1991 Per Bothner (bothner at cygnus.com) ! 1152: ! 1153: * dbxout.c (dbxout_type): Tiemann's DECL_IGNORED_P optimization (Nov ! 1154: 20) was a little too drastic: If it succeded, no type info was ! 1155: emitted at all, which made for syntactically invalid stabs. ! 1156: Instead, just set 'full=0', ! 1157: * dbxout.c (dbxout_symbol): Re-write code for TYPE_DECL to be a ! 1158: little cleaner. It *seems* to work ... ! 1159: ! 1160: Sun Dec 29 07:04:22 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 1161: ! 1162: * expr.c (convert_move): Add truncates from DImode to smaller modes. ! 1163: (move_by_pieces, move_by_pieces_ninsns): Rework to remove explicit ! 1164: references to integer modes. ! 1165: Never need to align greater than BIGGEST_ALIGNMENT. ! 1166: ! 1167: * optabs.c (init_extends, init_fixtab, init_floattab, init_optabs): ! 1168: Add TImode operations. ! 1169: ! 1170: * reload.c (find_reloads): Prefer alternatives that reload SCRATCH ! 1171: instead of something else. ! 1172: ! 1173: * rs6000.md (movti): Adjust constraints and alternative order so ! 1174: we actually get to use the stsi insn. ! 1175: ! 1176: * rs6000.h (REG_ALLOC_ORDER): Put r9 in front of r11 so we don't try to ! 1177: put a TImode value in r11 as often. ! 1178: ! 1179: * caller-save.c (setup_save_areas): New parameter pchanged; set when ! 1180: memory is allocated. ! 1181: * reload1.c (reload): Pass pointer to something_changed to ! 1182: setup_save_areas. ! 1183: ! 1184: * loop.c (scan_loop): Don't suppress moving insns that can trap just ! 1185: because we have passed a call inside a libcall/retval block. ! 1186: ! 1187: * jump.c (get_label_before): Don't separate a CALL_INSN from any USE ! 1188: insns immediately preceeding it. ! 1189: (get_label_after): Likewise, for following CLOBBERs. ! 1190: ! 1191: * cse.c (fold_rtx, case '<'): When seeing if we have seen this ! 1192: comparison before, use a constant equivalence. ! 1193: Add test for things like "(a | 1) != 0". ! 1194: (fold_rtx, case '2'): Move code to handle associative operations to ! 1195: here; add support for MINUS, SMAX, SMIN, UMAX, and UMIN. ! 1196: (record_jump_equiv): See if OP1 is equivalent to a constant. ! 1197: ! 1198: * jump.c (jump_optimize): Don't pass a SUBREG as a target to ! 1199: expand_and. ! 1200: ! 1201: * combine.c (subst): Never associate floating-point, even if not IEEE. ! 1202: Associate MAX and MIN operations. ! 1203: ! 1204: * output.h (output_asm_insn, asm_fprintf): Add "extern" to decls. ! 1205: (alter_subreg): Add declaration. ! 1206: * rs6000.md (movsf, movdf): Don't declare alter_subreg here. ! 1207: (trunc_call_rtl): Don't declare trunc_used; use rs6000_trunc_used. ! 1208: * rs6000.c (rs6000_trunc_used): New name of trunc_used. ! 1209: * rs6000.h (rs6000_trunc_used): Add declaration. ! 1210: ! 1211: Sat Dec 28 18:14:21 1991 Michael Tiemann (tiemann at cygnus.com) ! 1212: ! 1213: * cp-method.c (build_overload_name): Don't call OB_FINISH unless END ! 1214: is nonzero. ! 1215: ! 1216: Sat Dec 28 17:46:05 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) ! 1217: ! 1218: * gcc.c (default_compilers): Handle -ansi in the C++ entries ! 1219: exactly the same way as the C entries do. ! 1220: ! 1221: * rtl.c (add_dependence): Cast enums to int before doing an ! 1222: ordered comparison, since some compilers can't do this. ! 1223: ! 1224: * sparc.c (pic_address_needs_scratch): New function. Returns ! 1225: true if the pic address X needs a scratch register when loaded. ! 1226: (legitimize_pic_address): Clean up. New argument SCRATCH, which ! 1227: is a scratch register for those loads that need it. ! 1228: (emit_move_sequence): New argument SCRATCH_REG, which is a scratch ! 1229: register for those loads that need it. When loading a pic label, ! 1230: set %o7 instead of clobbering it so its value can be used later. ! 1231: (compute_frame_size): Leaf functions need to allocate space for ! 1232: register window in frame if size greater than 0. ! 1233: (print_operand): Delete obsolete %^ which added %o7 to addresses. ! 1234: All uses of %o7 are now explicit. ! 1235: * sparc.h: Fix callers of legitimize_pic_address. ! 1236: (REG_CLASS_FROM_LETTER): Add 'r' case. ! 1237: (SECONDARY_INPUT_RELOAD_CLASS): New macro, to force reload to ! 1238: allocate a scratch register for certain pic address reloads. ! 1239: (flag_pic): Define as extern so that it will be defined for ! 1240: insn-emit.c. ! 1241: * sparc.md: Fix all callers of legitimize_pic_address and ! 1242: emit_move_sequence. ! 1243: (reload_insi): New pattern. Used to force reload to allocate a ! 1244: scratch register for those pic address loads that need one. ! 1245: (reload_insi+2): When loading pic label, set %o7 instead of ! 1246: clobbering it. ! 1247: (movdf, movsf): Reject matches that would require reloading via ! 1248: use of a condition. ! 1249: (tablejump): Now a define_expand, so can generate different ! 1250: pattern when pic. ! 1251: (pic_tablejump): Explicitly mention in rtl that %o7 is used, ! 1252: instead of using %^. ! 1253: ! 1254: * m88k.h, sparc.h: Delete references to non-existent ! 1255: BLOCK_PROFILER_USED_REG_P macro. ! 1256: ! 1257: Sat Dec 28 14:31:36 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 1258: ! 1259: * c-lex.c (check_newline): Set ignore_escape_flag for reading filename. ! 1260: (yylex): Handle ignore_escape_flag in string constant. ! 1261: ! 1262: * gnulib2.c (__do_global_dtors): Count elements properly. ! 1263: ! 1264: * m68k.md (tsthi): Don't allow address register. ! 1265: ! 1266: Sat Dec 28 11:49:06 1991 James Van Artsdalen (james at bigtex.cactus.org) ! 1267: ! 1268: * final.c (final): Initialize elements of line_note_exists. ! 1269: ! 1270: * protoize.c: Don't include <sys/wait.h> on USG unless SVR4. ! 1271: ! 1272: Sat Dec 28 11:09:36 1991 Fred Fish (fnf at fishpond) ! 1273: ! 1274: * Makefile.in (includes): Pre-remove the tmp dir; fix INSTALLED_H ref. ! 1275: ! 1276: Sat Dec 28 06:31:16 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 1277: ! 1278: * sparc.md (movstrsi): Fix typo testing for more than 32 subunits. ! 1279: ! 1280: * genrecog.c: Major rework. ! 1281: We now check to see if pairs of comparison nodes can have anything ! 1282: that they both match. If not, they can be reordered. An efficient ! 1283: ordering is established that groups all nodes with identical rtl ! 1284: codes inside groups with identical modes. This allows us to generate ! 1285: a comparison tree that is a list of nested switch statements. ! 1286: Also, genrecog.c is now indented properly so that debugging is eased. ! 1287: (add_to_sequence): Enforce mode on the first arg of COMPARE, comparison ! 1288: operation, SIGN_EXTEND, and ZERO_EXTEND. ! 1289: ! 1290: * a29k.h, romp.h, rs6000.h (PREDICATE_CODES): Add definition. ! 1291: ! 1292: Fri Dec 27 17:31:48 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 1293: ! 1294: * a29k.h, decrose.h, encrose.h, m88kdgux.h (WCHAR_TYPE_SIZE): ! 1295: Add definition. ! 1296: * rs6000.h, sparc.h, sun2o4.h, sun3.h, svr3.h, svr4.h: Likewise. ! 1297: ! 1298: * expmed.c (expand_mult): For negative values, try multiplication by ! 1299: the original value as well as by negated value. ! 1300: ! 1301: Fri Dec 27 20:54:59 1991 Fred Fish (fnf at fishpond) ! 1302: ! 1303: * m68kv4.h: Include m68ksgs.h rather than m68k.h. ! 1304: ! 1305: * m68kv4.h: Define TARGET_DEFAULT to be 68020 + 68881. ! 1306: (CPP_SPEC): Define based on TARGET_DEFAULT ! 1307: ! 1308: * m68kv4.h (PCC_STATIC_STRUCT_RETURN): Undef this. ! 1309: (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Defs deleted. ! 1310: (ASCII_DATA_ASM_OP, ASM_OUTPUT_ASCII): Defs deleted. ! 1311: ! 1312: * m68kv4.h (ASM_OUTPUT_SKIP, FUNCTION_VALUE_REGNO_P): ! 1313: (FUNCTION_PROFILER, STRUCT_VALUE_REGNUM, BSS_ASM_OP): ! 1314: (FUNCTION_VALUE, FUNCTION_EXTRA_EPILOGUE, LIBCALL_VALUE): ! 1315: (STACK_BOUNDARY, EMPTY_FIELD_BOUNDARY, BIGGEST_ALIGNMENT): ! 1316: Redefined to match m68k/SVR4 conventions. ! 1317: ! 1318: * m68ksgs.h (ASM_OUTPUT_SKIP): Redefined to use `.space'. ! 1319: (ASM_NO_SKIP_IN_TEXT): Defined. ! 1320: ! 1321: * amix.h, xm-amix.h, x-amix: New files. ! 1322: ! 1323: Fri Dec 27 20:43:11 1991 Michael Tiemann (tiemann at cygnus.com) ! 1324: ! 1325: * cp-tree.h (build_overload_name): Declare this function. ! 1326: * cp-decl2.c, cp-method.c: Delete random `extern' declarations. ! 1327: ! 1328: * cp-lex.c (get_directive_line): Declare it extern. ! 1329: (lineno,yychar,yylval,lastiddecl,finput): Ditto. ! 1330: (ridpointers): Don't need to declare it here. ! 1331: (check_newline): Handle new #pragmas. ! 1332: ! 1333: * cp-class.c (add_method): Add a cast in call to `obstack_base'. ! 1334: ! 1335: Fri Dec 27 20:22:05 1991 Michael Tiemann (tiemann at cygnus.com) ! 1336: ! 1337: * cp-decl.c (push_overloaded_decl): Now returns a value. ! 1338: All callers changed. ! 1339: ! 1340: * cp-decl.c (duplicate_decls): Give better error message when user ! 1341: declaration conflicts with built-in one. Also, when we decide to ! 1342: keep a builtin function builtin, copy the DECL_RTL from OLDDECL to ! 1343: NEWDECL. ! 1344: ! 1345: Fri Dec 27 17:18:15 1991 Michael Meissner (meissner at osf.org) ! 1346: ! 1347: * mips.h (TRAMPOLINE_TEMPLATE): Define correctly for MIPS. ! 1348: (TRAMPOLINE_SIZE): Define to be 9 words. ! 1349: (INITIALIZE_TRAMPOLINE): Define correctly for MIPS. ! 1350: (TRANSFER_FROM_TRAMPOLINE): Define to do a mprotect of the ! 1351: trampoline, so that we can jump to it. I suspect the mprotect may ! 1352: fail on some MIPS based systems, because the trampoline is on the ! 1353: stack, and not in the data section. ! 1354: ! 1355: * mips.c (mips_output_filename): Don't warn about ECOFF not ! 1356: handling #line's within functions if we are using the OSF/rose ! 1357: object format. ! 1358: ! 1359: Fri Dec 27 15:35:38 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 1360: ! 1361: * c-typeck.c (build_array_ref): Special warning about `register' array. ! 1362: ! 1363: * gnulib2.c (L_trampoline): Don't create a function here. ! 1364: The definition of TRANSFER_FROM_TRAMPOLINE can do that if nec. ! 1365: * m68k.h (TRANSFER_FROM_TRAMPOLINE): Make the function here. ! 1366: ! 1367: * fx80.*: Renamed from alliant.*. ! 1368: * configure: Alternative renamed to fx80-alliant-*. ! 1369: * config.sub: Corresponding changes. ! 1370: ! 1371: * cccp.c (traditional): No longer static. ! 1372: * cexp.y (yylex): Handle full variety of character constants. ! 1373: Include stdlib.h and locale.h if needed. ! 1374: ! 1375: * c-decl.c (shadow_tag): Change warnings to error or pedwarn. ! 1376: ! 1377: * gnulib2.c (__do_global_dtors): If length not given, count it. ! 1378: * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Ignore length; scan till null. ! 1379: (__CTOR_END__, __DTOR_END__): Declarations deleted. ! 1380: ! 1381: * cp-decl2.c (finish_file): Always change $ to _ ! 1382: regardless of NO_DOLLAR_IN_LABEL. ! 1383: ! 1384: Fri Dec 27 15:04:40 1991 Tom Wood (wood at dg-rtp.dg.com) ! 1385: ! 1386: * svr4.h (ASM_OUTPUT_ALIGNED_COMMON): Fix typo. ! 1387: ! 1388: * m88k.c: Move extern decls. ! 1389: (output_ascii): Use ASCII_DATA_ASM_OP. ! 1390: * m88k.h (HAVE_ATEXIT): Delete. ! 1391: (ASM_OUTPUT_ALIGNED_COMMON, ASM_OUTPUT_ALIGNED_LOCAL, ! 1392: ASCII_DATA_ASM_OP): Override svr4.h. ! 1393: (EXTRA_SECTIONS): No ctors/dtors for m88k-luna. ! 1394: * m88kdgux.h (STANDARD_STARTFILE_PREFIX): No need to override svr4.h. ! 1395: ! 1396: Fri Dec 27 11:34:59 1991 Ken Raeburn ([email protected]) ! 1397: ! 1398: * cp-pt.c (mangle_class_name_for_template): Use a local obstack ! 1399: rather than fixed-size buffers. ! 1400: ! 1401: * cp-class.c (add_method): Case obstack_base value to desired type ! 1402: when reallocating vector node. ! 1403: ! 1404: Fri Dec 27 09:16:50 1991 Ron Guilmette (rfg at ncd.com) ! 1405: ! 1406: * sort-protos: New file. ! 1407: ! 1408: * i386.c: Remove decls of frame_pointer_needed; include flags.h. ! 1409: * i386.c (output_387_binary_op, output_float_compare): ! 1410: Moved declarations of strcat to top level. ! 1411: ! 1412: * i860.md (cmpnesf, cmpnedf): New patterns. ! 1413: * i860.md (cmplesf, cmpgesf): Corrected to allow for IEEE conformance. ! 1414: ! 1415: Thu Dec 26 11:20:07 1991 Michael Tiemann (tiemann at cygnus.com) ! 1416: ! 1417: * cp-class.c: Declare N_* variables here. ! 1418: * cp-class.h: Declare N_* variables extern here. ! 1419: ! 1420: * cp-gc.c (build_static_gc_entry): Call `assemble_gc_entry' instead ! 1421: of implementing it directly. ! 1422: * varasm.c (assemble_gc_entry): New function. ! 1423: ! 1424: * calls.c (expand_call): Don't crash if somebody declared a void ! 1425: function `const'. ! 1426: ! 1427: * cp-cvt.c (convert): Handle case when two equal array types are ! 1428: distinct (in memory). ! 1429: * tree.c (build_index_2_type): Don't set TREE_TYPE of lower bound. ! 1430: (index_type_equal): New function. ! 1431: ! 1432: * cp-spew.c (yylex): Extend special-case ptr-to-func ((*)()) parsing ! 1433: to handle (*)[] and (&)[] declarations as well. ! 1434: ! 1435: * cp-decl2.c (finish_file): Unconditionally call ! 1436: assemble_{constructor,destructor}. Also, delete code for writing ! 1437: _init and _fini sections that was #if 0'd. These actions belong in ! 1438: varasm if anywhere. ! 1439: ! 1440: * cp-class.c (add_method): Fix handling of obstacks to correctly ! 1441: extend TREE_VECs. ! 1442: ! 1443: Thu Dec 26 15:24:45 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 1444: ! 1445: * cccp.c (main): Add new option -include. Rename -i to -imacros. ! 1446: * gcc.c (SWITCH_TAKES_ARG): Remove -i. ! 1447: (WORD_SWITCH_TAKES_ARG): Add -include, -imacros. ! 1448: * hp800.h (WORD_SWITCH_TAKES_ARG): Add all the standard alternatives. ! 1449: * mips.h (SWITCH_TAKES_ARG): Remove -Y and -i. ! 1450: * next.h, sparc.h (WORD_SWITCH_TAKES_ARG): Add -include, -imacros. ! 1451: * sun2.h, sun3.h (WORD_SWITCH_TAKES_ARG): Copy from sparc.h. ! 1452: * svr4.h (SWITCH_TAKES_ARG): Remove -i, -f. ! 1453: (WORD_SWITCH_TAKES_ARG): Add -include, -imacros. ! 1454: ! 1455: * toplev.c (flag_gnu_linker): New variable. -fgnu-linker. ! 1456: * flags.h (flag_gnu_linker): Declare it. ! 1457: * varasm.c (assemble_constructor, assemble_destructor): ! 1458: Handle flag_gnu_linker. ! 1459: ! 1460: * sparc.md (structure values): Separate unimp pattern deleted. ! 1461: New pattern for combined call and unimp. `call' pattern changed. ! 1462: (type): Deleted type marker, added call_no_delay_slot. ! 1463: ! 1464: Thu Dec 26 05:04:28 1991 James Van Artsdalen (james at bigtex.cactus.org) ! 1465: ! 1466: * reg-stack.c (move_for_stack_reg): If a SET_DEST is REG_UNUSED, ! 1467: just pop the SET_SRC. ! 1468: ! 1469: Wed Dec 25 17:23:25 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 1470: ! 1471: * c-decl.c (init_decl_processing): Fix type of exit, _exit. ! 1472: ! 1473: * jump.c (cross_jump_death_matters): Move def to front, make static. ! 1474: ! 1475: Tue Dec 24 20:41:32 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 1476: ! 1477: * hard-reg-set.h (reg_names): Declare here. ! 1478: * stmt.c (expand_asm_operands): Not here. ! 1479: ! 1480: * gcc.c (handle_braces, do_spec_1, give_switch): Clear up %*. ! 1481: ! 1482: * expr.c (expand_expr): Delete decl of lang_expand_expr. ! 1483: ! 1484: * final.c (final_scan_insn): Delete line number followed by another ! 1485: line number, if numbers are effectively consecutive. ! 1486: ! 1487: * jump.c (jump_optimize): Set cross_jump_death_matters from cross_jump. ! 1488: * reg-stack.c (reg_to_stack): Pass 2 for cross_jump to jump_optimize. ! 1489: Don't set cross_jump_death_matters here. ! 1490: (record_reg_life): Delete decl of call_used_reg_set. ! 1491: ! 1492: * c-decl.c (init_decl_processing): ! 1493: Declare abort, exit, and _exit as volatile. ! 1494: ! 1495: * c-decl.c (implicitly_declare): Set IDENTIFIER_IMPLICIT_DECL earlier. ! 1496: (pushdecl): Test that and avoid nested extern warning. ! 1497: ! 1498: * c-decl.c (init_decl_processing): Don't handle EXPAND_BUILTIN_VARARGS. ! 1499: ! 1500: Tue Dec 24 15:42:34 1991 Michael Tiemann (tiemann at cygnus.com) ! 1501: ! 1502: * cp-init.c (add_friends): Add missing IDENTIFIER_POINTER macro ! 1503: application to strncmp argument. ! 1504: ! 1505: * cp-method.c (build_overload_*): Now uses SCRATCH_OBSTACK instead ! 1506: of relying on fixed buffers of finite length. ! 1507: (fndecl_as_string): Ditto. ! 1508: All callers changed. ! 1509: * cp-except.c (cplus_exception_name): Definition moved to ! 1510: cp-method.c. ! 1511: ! 1512: Tue Dec 24 10:38:49 1991 Michael Collison (collison at osf.org) ! 1513: ! 1514: * ns32k.c (hard_regno_mode_ok): Define this as a function now. ! 1515: Also change the way it work so that we don't allow moves between ! 1516: the general registers and the floating point registers. ! 1517: ! 1518: * ns32k.h (HARD_REGNO_MODE_OK): Turn it into a function call. ! 1519: ! 1520: * ns32k.md (call_value): fix to correct a bug where the compiler thinks ! 1521: the return value of a function call is in f0 instead of r0. Fix ! 1522: courtesy of vince russo. ! 1523: (movqi, movhi): Fix up these patterns because they could return ! 1524: undefined instruction templates. Fix courtesy of vince russo. ! 1525: ! 1526: Tue Dec 24 10:14:20 1991 Ron Guilmette (rfg at ncd.com) ! 1527: ! 1528: * mips-tfile.c (main): Move nested extern decl of version_string to ! 1529: file-scope. ! 1530: (catch_signal): Move nested extern decl of sys_siglist to ! 1531: file-scope. ! 1532: ! 1533: * varasm.c (assemble_variable): Handle ASM_OUTPUT_ALIGNED_COMMON. ! 1534: * svr4.h (ASM_OUTPUT_ALIGNED_COMMON, ASM_OUTPUT_ALIGNED_LOCAL): New. ! 1535: (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Deleted. ! 1536: ! 1537: * gcc.c (SWITCH_TAKES_ARG, default_compilers): Eliminated -Y* option. ! 1538: (execute): Moved decls of execv and execvp to top level. ! 1539: (do_spec, do_spec1, handle_braces, give_switch): Support new %* spec. ! 1540: ! 1541: * c-lang.c (recognize_objc_keyword): Added explicit return. ! 1542: ! 1543: * svr4.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): New definitions. ! 1544: (ASM_SPEC, LINK_SPEC): Support more standard svr4 options. ! 1545: (LIB_SPEC): Fixed to link crtend.o *after* libc.a. ! 1546: ! 1547: * svr4.h (CONST_SECTION_FUNCTION): Moved decl of `text_section' to ! 1548: top level. ! 1549: ! 1550: * cexp.y (main): Add explicit return type and explicit value. ! 1551: Move decl of yydebug to top level. ! 1552: ! 1553: * gnulib2.c (__bb_init_func): Moved decl of ___tcov_init to top level. ! 1554: ! 1555: * toplev.c (main): Deleted obsolete checks for -opt and -noreg. ! 1556: Moved decls of environ, version_string, language string to file-scope. ! 1557: Compile-time error if PREFERRED_DEBUGGING_TYPE is missing. ! 1558: ! 1559: * tree.c (dump_tree_statistics): Deleted decl of class_obstack. ! 1560: (object_permanent_p): Added explicit return type. ! 1561: ! 1562: Tue Dec 24 09:29:24 1991 Charles Hannum (mycroft at hal.gnu.ai.mit.edu) ! 1563: ! 1564: * expr.h (lang_expand_expr): Fix typo. ! 1565: ! 1566: Tue Dec 24 06:52:45 1991 Michael Meissner (meissner at osf.org) ! 1567: ! 1568: * gnulib2.c (__main): Make sure the exit module is pulled in if we ! 1569: have atexit, since that module defines constructor/destructor ! 1570: variables as bss symbols rather than as references. ! 1571: ! 1572: * decrose.h (HAVE_ATEXIT): Define. ! 1573: * encrose.h (HAVE_ATEXIT): Define. ! 1574: * i386rose.h (HAVE_ATEXIT): Define. ! 1575: * decstatn.h (HAVE_ATEXIT): Define. ! 1576: ! 1577: * gcc.texinfo (HAVE_ATEXIT): Expand documentation. ! 1578: (EXIT_BODY): Document. ! 1579: ! 1580: * protoize.c (POSIX): Make protoize accept TARGET_POSIX as a synonym ! 1581: for POSIX to make the code and documentation agree. Also, if the ! 1582: user defined _POSIX_SOURCE explicitly, turn on POSIX support in ! 1583: protoize. ! 1584: ! 1585: Tue Dec 24 00:14:38 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 1586: ! 1587: * calls.c (emit_call_1): Additional arg STRUCT_VALUE_SIZE. ! 1588: Use as arg in call and call_value insns. ! 1589: (expand_call): Record the size, to pass it. ! 1590: * expr.c (emit_library_call): Pass 0 for STRUCT_VALUE_SIZE. ! 1591: * sparc.md (call, call_value): Make use of new arg. ! 1592: Generate an unimp instruction to use sparc calling convention. ! 1593: Add nameless pattern to recognize it. ! 1594: * sparc.c (output_function_epilogue): Skip the caller's unimp insn. ! 1595: ! 1596: * Makefile.in (INSTALLED_H): New variable. ! 1597: (includes): Preserve just those specific files. ! 1598: ! 1599: * expr.h (lang_expand_expr): Declare it. ! 1600: * expr.c: Don't declare it. ! 1601: * cp-expr.c (init_cplus_expand): Set up lang_expand_expr here. ! 1602: * cp-lex.c (init_lex): Call init_cplus_expand. ! 1603: ! 1604: Mon Dec 23 15:17:59 1991 Tom Wood (wood at dg-rtp.dg.com) ! 1605: ! 1606: * configure: Delete m88k-v88r32 (this is supported by m88k-svr3) ! 1607: and add m88k. ! 1608: * config.sub: Delete v88r as a system type. ! 1609: ! 1610: Mon Dec 23 19:50:48 1991 Fred Fish (fnf at fishpond) ! 1611: ! 1612: * 3b1.h, crds.h, hp320.h, m68k.md, m68ksgs.h, mot3300.h, news.h, ! 1613: tower-as.h: Replace port oriented macros SGS_3B1, HPUX_ASM, and ! 1614: SONY_ASM, with configuration oriented macros SGS_SWITCH_TABLES, ! 1615: SGS_SWAP_W, SGS_CMP_ORDER, and SGS_NO_LI. ! 1616: ! 1617: * m68ksgs.h: New file. ! 1618: ! 1619: * m68k.c (print_operand_address): Change switch labels for MOTOROLA. ! 1620: Don't use a `%'. Add missing `L' to some labels. ! 1621: For SGS assembler, use one symbol for the offset. ! 1622: ! 1623: Mon Dec 23 17:03:13 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 1624: ! 1625: * recog.h (insn_name): New declaration. ! 1626: * final.c (output_asm_insn): Don't declare insn_name here. ! 1627: ! 1628: * dbxout.c (dbxout_function, dbxout_begin_function): ! 1629: Pass missing arg to dbxout_really_begin_function. ! 1630: ! 1631: * jump.c (jump_optimize): Set new var can_reach_end. ! 1632: * c-decl.c, cp-decl.c (finish_function): ! 1633: Merge that into current_function_returns_null. ! 1634: ! 1635: * config.sub (fx2800): New machine alias. ! 1636: ! 1637: * va-m88k.h (va_start): Test __GNUC__, not __CLASSIFY_TYPE__. ! 1638: ! 1639: * m88kv4.h: New version from Wood. ! 1640: (CPP_PREDEFINES): Put -A options here. Remove __CLASSIFY_TYPE__. ! 1641: ! 1642: * cccp.c (initialize_builtins): Define __GNUC__ as 2. ! 1643: ! 1644: * rtl.h (read_rtx): New declaration. ! 1645: ! 1646: * c-lex.c: Don't include output.h. ! 1647: (asm_out_file): Declare it. ! 1648: (ridpointers): Allocate storage here. ! 1649: ! 1650: * c-lex.h (lastiddecl, token_buffer): Declare here. ! 1651: (yylex, make_pointer_declarator, reinit_parse_for_function): Likewise. ! 1652: * c-parse.y, objc-parse.y: Not here. ! 1653: ! 1654: * objc-actions.c (error_with_ivar, error_with_method): ! 1655: (warn_with_method): Use count_error, not errorcount. ! 1656: ! 1657: Mon Dec 23 11:50:37 1991 Ron Guilmette (rfg at ncd.com) ! 1658: ! 1659: * sdbout.c: Fixed typo. ! 1660: * stmt.c (init_stmt, init_stmt_for_function): Explict return type. ! 1661: * gnulib2.c (__fixunsdfdi, __fixunssfdi): Move extern decls. ! 1662: * recog.c (init_recog): Added explicit return type. ! 1663: * longlong.h (count_leading_zeros): Moved decl of `__clz_tab'. ! 1664: * print-rtl.c (insn_name_ptr): Make decl `extern'. ! 1665: ! 1666: * objc-actions.h, objc-actions.c (doing_objc_thang): Make extern. ! 1667: * objc-actions.h, objc-actions.c (finish_class): Return void. ! 1668: * objc-actions.c (continue_class): Added default error return value. ! 1669: ! 1670: * fixinc.svr4: Map assertion tests to equivalent ANSI macro tests. ! 1671: ! 1672: * i860.c (output_block_move): Disabled code to move by words or ! 1673: halfwords until it can be made to work right. ! 1674: ! 1675: * i860.c (output_block_move): Moved a sequence of common ! 1676: `output_asm_insn' calls out of (and before) conditionals. ! 1677: ! 1678: * i860.c (output_block_move): Corrected bugs in move loop. ! 1679: ! 1680: Mon Dec 23 15:25:01 1991 Tom Wood (wood at dg-rtp.dg.com) ! 1681: ! 1682: * m88kv4.h (CPP_PREDEFINES): Fix for varargs/stdarg. ! 1683: (includes): Include svr4.h before m88k.h so the overrides in m88k.h ! 1684: will take effect. ! 1685: ! 1686: Mon Dec 23 07:06:27 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 1687: ! 1688: * i860.c (output_delayed_branch): Call insn_extract and ! 1689: constrain_operands so that `which_alternative' is set properly. ! 1690: ! 1691: * stor-layout.c (layout_type, case ARRAY_TYPE): Handle ! 1692: TYPE_NO_FORCE_BLK similar to RECORD_TYPE. ! 1693: ! 1694: * encrose.h, i386rose.h, mips.h (LIBG_SPEC): Deleted; unused. ! 1695: ! 1696: Sun Dec 22 12:02:03 1991 James Van Artsdalen (james at bigtex.cactus.org) ! 1697: ! 1698: * i386.c (function_epilogue): Use correct operand for insn mode. ! 1699: ! 1700: Sun Dec 22 12:20:16 1991 Michael Tiemann (tiemann at cygnus.com) ! 1701: ! 1702: * cp-decl.c (grokdeclarator): Don't set TREE_PUBLIC for member ! 1703: functions that are really declared as inline methods. ! 1704: ! 1705: * cp-init.c (build_virtual_init): Add missing call to ! 1706: `assemble_external' when we use a virtual function table. ! 1707: ! 1708: * cp-decl.c (implicitly_declare): Don't allocate a decl if at the ! 1709: global binding level. ! 1710: ! 1711: * vax.h (PRINT_OPERAND): Handle new 'R' case. ! 1712: * vax.md: Change all patterns which passed a negated operand for ! 1713: `rotl' to use 'R' as the negator, since rotl cannot acctually handle ! 1714: negative arguments. ! 1715: ! 1716: Sun Dec 22 12:31:46 1991 Ron Guilmette (rfg at ncd.com) ! 1717: ! 1718: * i386v4.h (TARGET_VERSION): Added definition. ! 1719: * i860v4.h (TARGET_VERSION): Added definition. ! 1720: ! 1721: * m68kv4.h: New file. ! 1722: * fx2800.h: New file. ! 1723: ! 1724: * m88kv4.h (DWARF_DEBUGGING_INFO): Deleted redundant definition. ! 1725: (It's defined already in svr4.h.) ! 1726: ! 1727: * m88kv4.h (CPP_PREDEFINES): Added definition. ! 1728: ! 1729: * m88kv4.h (CPP_SPEC, LIB_SPEC, LINK_SPEC, STARTFILE_SPEC): ! 1730: Deleted redundant definitions. (These are defined in svr4.h.) ! 1731: ! 1732: * cccp.c (errno, sys_nerr, sys_errlist): Moved extern decls to top lev. ! 1733: * function.c (round_down): Likewise. ! 1734: * calls.c, c-convert.c: Delete block-level extern decls. ! 1735: * c-convert.c: Include flags.h. ! 1736: ! 1737: * configure (i386-*-sysv*): Fixed tmake_file value. ! 1738: (i860-*-sysv3*): Fixed xmake_file and tmake_file value. ! 1739: (i860-alliant-*): New configuration. ! 1740: ! 1741: * i860.c (recog_operand, call_used_regs, insn_template, ! 1742: insn_n_operands, insn_outfun, alter_subreg): Moved extern ! 1743: declarations out of local contexts and put them at file-scope. ! 1744: ! 1745: * i860.c (zero_operand): Deleted useless function. ! 1746: ! 1747: * i860.c (singlemove_string): Added code to optimize moving halfword ! 1748: constants. ! 1749: ! 1750: * i860.c (output_block_move): Don't do CC_STATUS_INIT until it is ! 1751: definitely necessary & appropriate. ! 1752: ! 1753: * i860.c (output_block_move): Create up to 16 sequential load/store ! 1754: pairs for constant length moves regardless of operand sizes (e.g. ! 1755: byte, halfword, word). ! 1756: ! 1757: * i860.c (output_block_move): Try to generate widest kind of ! 1758: sequential load/store pairs for constant length moves before trying ! 1759: the less efficient (narrower) ones. ! 1760: ! 1761: * i860.c (output_block_move): Don't do sequential load/store pairs ! 1762: for constant length moves unless the size is a multiple of the ! 1763: size of the operands moved each time (i.e. word, halfword, byte). ! 1764: ! 1765: * i860.c (output_block_move): Re-wrote code to do inline variable ! 1766: length block moves to correct fatal errors (e.g. no check for zero ! 1767: or neagtive start count) and to make it more efficient (saved 1 cycle ! 1768: per iteration). ! 1769: ! 1770: * i860.c (output_block_move): Make variable length moves with starting ! 1771: alignment of 4 or 2 `#if 0' for now, until they can be fixed to work ! 1772: right. Also reordered all three cases so that longer alignments are ! 1773: checked for first. ! 1774: ! 1775: Sun Dec 22 01:25:07 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 1776: ! 1777: * i386v4.h: Include svr4.h just once. ! 1778: ! 1779: * protoize.c (fprintf, printf): Decls put in #if 0. ! 1780: ! 1781: * emit-rtl.c (stack_slot_list): Delete superfluous extern decl. ! 1782: (emit): Abort if arg isn't recognized. ! 1783: ! 1784: * c-parse.y (current_declspecs, declspec_stack): Declare static. ! 1785: (undeclared_variable_notice): Likewise. ! 1786: (lastiddecl): Declare extern. ! 1787: * objc-parse.y: Same changes as c-parse.y. ! 1788: (token_buffer): Declare extern. ! 1789: ! 1790: * c-lex.c: Include output.h. ! 1791: (check_newline): Decl of asm_out_file deleted. ! 1792: ! 1793: * c-lex.h (ridpointers, NORID): Declare/define here. ! 1794: * c-lex.c, c-parse.y, objc-parse.y: Not here. ! 1795: ! 1796: * sun3.h (WORD_SWITCH_TAKES_ARG): Add `-assert'. ! 1797: (LINK_SPEC): Pass -assert to linker. ! 1798: ! 1799: * gbl-ctors.h (__CTOR_END__, __DTOR_END__): Remove `extern'. ! 1800: ! 1801: * sparc.h (RTX_COSTS): Increase multiply cost to 20. ! 1802: (MULSI3_LIBCALL): Use .umul. ! 1803: (UMULSI3_LIBCALL): Deleted. ! 1804: ! 1805: Sat Dec 21 18:34:27 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 1806: ! 1807: * combine.c (simplify_comparison): Allow OP0 to be VOIDmode if it ! 1808: is a COMPARE or a comparison operation. ! 1809: ! 1810: * i860.md (bte): Remove now unneeded patterns. ! 1811: Correct mode mismatch errors in patterns that will now be used. ! 1812: ! 1813: Sat Dec 21 00:14:25 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 1814: ! 1815: * ns32k.h (TRAMPOLINE_TEMPLATE, TRAMPOLINE_SIZE): Dummies deleted. ! 1816: (INITIALIZE_TRAMPOLINE): Likewise. #error inserted. ! 1817: ! 1818: * ns32k.c (print_operand_address): For invalid address, just abort. ! 1819: ! 1820: * Makefile.in (FIXINCLUDES): New variable. ! 1821: (includes, maketest): Use that. ! 1822: * x-i386v4 (FIXINCLUDES): Override here. ! 1823: ! 1824: Fri Dec 20 18:28:54 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 1825: ! 1826: * dbxout.c (dbxout_really_begin_function): New subroutine. ! 1827: (dbxout_function): Use that, but only if not DBX_FUNCTION_FIRST. ! 1828: (dbxout_begin_function): New function. ! 1829: * varasm.c (assemble_start_function): Call dbxout_begin_function. ! 1830: ! 1831: * dbxout.c (dbxout_function): Implement DBX_OUTPUT_FUNCTION_END. ! 1832: ! 1833: * sparc.md (movstrsi): Add missing double quote. ! 1834: ! 1835: * gcc.c (process_command): Handle -Xlinker. ! 1836: ! 1837: * calls.c (expand_call): Treat vfork like setjmp. ! 1838: ! 1839: * c-decl.c (implicitly_declare): Use push_obstacks_nochange. ! 1840: ! 1841: * sparc.h (WORD_SWITCH_TAKES_ARG): Add -assert. ! 1842: (LINK_SPEC): Pass -assert to linker. ! 1843: ! 1844: * svr4.h (ASM_OUTPUT_LOCAL): Fix typo. ! 1845: ! 1846: Fri Dec 20 07:52:19 1991 Michael Tiemann (tiemann at cygnus.com) ! 1847: ! 1848: * cp-decl2.c (lang_decode_option): Recognize more -fno-OPTION ! 1849: options which need special treatment (in the turning off of the ! 1850: option). ! 1851: ! 1852: * cp-parse.y (named_class_head_sans_basetype_either): Rule deleted. ! 1853: (identifier_either): Rule deleted. ! 1854: (delete): Don't call `build_x_delete'' if the type does not have a ! 1855: destructor. We may still need to adjust the address passed to ! 1856: `operator delete'. ! 1857: ! 1858: * cp-init.c (build_delete): New argument MAYBE_ADJUST. All callers ! 1859: changed. Also, add #if 0/#endif around code dealing with ALIGNMENT. ! 1860: It's dead code, and that's unclear otherwise. ! 1861: (maybe_adjust_addr_for_delete): New function. ! 1862: (build_new): Initialize special header for arrays allocated with ! 1863: `operator new[]'. This is a rewrite of Ken's code. ! 1864: (init_init_processing): New built-in type BI_header_type. ! 1865: ! 1866: * cp-init.c (build_{new,delete}): Call `build_builtin_call' for BIN, ! 1867: BID. ! 1868: (build_builtin_call): New function. ! 1869: ! 1870: * cp-decl.c (grokvardecl): Set TREE_EXTERNAL. ! 1871: (grokdeclarator): Set TREE_PUBLIC for all member functions. They ! 1872: are effectively global. Do the same for static members. ! 1873: (start_function): Don't clear TREE_EXTERNAL in case the function ! 1874: belongs to another file's implementation. Other fixes to ! 1875: TREE_PUBLIC/TREE_EXTERNAL logic based on interface/implementation. ! 1876: ! 1877: * cp-method.c (hack_identifier): Call `assemble_external' if ! 1878: necessary. ! 1879: ! 1880: Fri Dec 20 06:27:38 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 1881: ! 1882: * reload1.c (emit_reload_insns): Always record first insn emitted ! 1883: for a reload, including any insns for a secondary reload. ! 1884: (gen_input_reload): Correct documentation of function. ! 1885: ! 1886: Thu Dec 19 22:01:51 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 1887: ! 1888: * gnulib1.c (perform_fixdfsi): New customization macro. ! 1889: ! 1890: * svr4.h (SELECT_RTX_SECTION): Undef before defining. ! 1891: ! 1892: Thu Dec 19 16:59:12 1991 (Eric Youngdale at [email protected]) ! 1893: ! 1894: * cccp.c (hack_vms_include_specification): Make conversion of ! 1895: filenames more versatile for user specified include directories. ! 1896: ! 1897: Thu Dec 19 17:38:18 1991 Michael Meissner (meissner at osf.org) ! 1898: ! 1899: * mips.h (#error's): Put tab in front of all #error's, so that ! 1900: ancient pre-ANSI compilers will not complain about unknown ! 1901: directives, even if the #error is #ifdef'ed out. ! 1902: ! 1903: * mips.md (fix_trunc*): Reorder constraints so that 'd' comes before ! 1904: 'f', and put a '*' in front of 'f' constraints to keep integer in ! 1905: the GP registers. ! 1906: (define_splits): Add reload_completed check for all define_splits ! 1907: that use subreg on the arguments to work around bug in sched.c. ! 1908: ! 1909: * cccp.c (lang_asm): New static variable to indicate we are ! 1910: processing an assembly file and to ignore unknown directives in case ! 1911: they are comments, like they are on the MIPS systems. ! 1912: (main): Set lang_asm if -lang-asm switch. ! 1913: (handle_directive, skip_if_group): Don't report about unknown ! 1914: directives if lang_asm is set. ! 1915: ! 1916: * gcc.c (default_compilers array): Pass -lang-asm to cpp when ! 1917: processing .S files instead of -lang-c. ! 1918: ! 1919: Thu Dec 19 15:06:09 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 1920: ! 1921: * c-decl.c (c_decode_option): Handle -fno-ident. ! 1922: * c-lex.c (check_newline): Ignore #ident for -fno-ident. ! 1923: ! 1924: * svr4.h (ASM_OUTPUT_LOCAL): Use assemble_name. ! 1925: ! 1926: * mips.h: Use #error, not #include, for error messages. ! 1927: ! 1928: * cccp.c (warning, main): Implement -Werror. ! 1929: ! 1930: * i386sco.h (CPP_SPEC): Move non-fixed option here. ! 1931: (CPP_PREDEFINES): From here. ! 1932: ! 1933: * gcc.c (do_spec_1): For %p, just pass -D options. ! 1934: For %P, pass all -A options. Put in whitespace, fix typos. ! 1935: ! 1936: * c-parse.y (parmlist_2, defn_parmlist_2): Warn about (...). ! 1937: * c-decl.c (get_parm_info): Don't warn here. ! 1938: ! 1939: Thu Dec 19 06:15:46 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 1940: ! 1941: * toplev.c (compile_file): Avoid ordered comparison of debug_info_level ! 1942: since it is an enum. ! 1943: ! 1944: * mips.c: Include gstab.h. ! 1945: ! 1946: * sparc.md: Fix typo. ! 1947: ! 1948: * caller-save.c (save_call_clobbered_regs): Don't save regs that ! 1949: die in a CALL_INSN or that are born there. ! 1950: ! 1951: Thu Dec 19 04:28:23 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 1952: ! 1953: * c-aux-info.c (gen_aux_info_record): Don't write space at line beg. ! 1954: ! 1955: Wed Dec 18 11:46:13 1991 Tom Wood (wood at dg-rtp.dg.com) ! 1956: ! 1957: * cse.c (cse_main): Use get_max_uid rather than computing it. ! 1958: ! 1959: Wed Dec 18 18:13:06 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 1960: ! 1961: * loop.c (scan_loop): Ensure replacement made by single-use code ! 1962: is not modified in the life of the register being replaced. ! 1963: ! 1964: Wed Dec 18 15:37:52 1991 Ron Guilmette (rfg at ncd.com) ! 1965: ! 1966: * rtl.h (fconst2_rtx, dconst2_rtx): Added extern declarations. ! 1967: ! 1968: * flags.h (flag_inhibit_size_directive): Declared. ! 1969: ! 1970: * svr4.h (INT_ASM_OP, INIT_SECTION_ASM_OP): Moved around. ! 1971: (ASCII_DATA_ASM_OP): Definition added. ! 1972: (flag_inhibit_size_directive): Deleted superfluous extern decls. ! 1973: ! 1974: * Makefile.in: Correct number of expected shift/reduce conflicts ! 1975: reported by bison for cp-parse.y. ! 1976: ! 1977: * sparcv4.h: New file. ! 1978: ! 1979: * i860.h (FUNCTION_ARG_BOUNDARY): Added definition. ! 1980: (sfmode_constant_to_ulong): Added extern declaration. ! 1981: ! 1982: * i860.md (BTE/BTNE patterns): Changed all instances of ! 1983: `(match_operand:SI 2 "zero_operand" "J")' to `(const_int 0)'. ! 1984: ! 1985: * i860.md (load then BTE/BTNE patterns): Added 8 new patterns, ! 1986: for cond branch on EQ/NE of a zero-extended memref with small integer. ! 1987: ! 1988: * i860.md: 20 new patterns (involving BTE/BTNE) like existing 20 ! 1989: but simplified so that the combiner will find them. ! 1990: ! 1991: * i860.md (sfmode_constant_to_ulong, fconst2_rtx): Removed ! 1992: superfluous nested extern declarations. ! 1993: ! 1994: Wed Dec 18 15:39:46 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 1995: ! 1996: * va-i860.h (va_start for stdarg.h): Divide reg counts by 4. ! 1997: ! 1998: * stmt.c (emit_case_nodes): Fix typo, near testing cost_table. ! 1999: ! 2000: * i860.h (CUMULATIVE_ARGS): Define a named struct, then use it. ! 2001: ! 2002: * function.c (expand_function_start): Compute sizes in proper order. ! 2003: ! 2004: * svr4.h (MD_STARTFILE_PREFIX): Defined. ! 2005: (STANDARD_STARTFILE_PREFIX): Deleted. ! 2006: ! 2007: * sparc.md (movstrsi): Disable if needs more than 32 insns. ! 2008: ! 2009: * expr.c (store_expr): Handle copying too-short STRING_CST. ! 2010: ! 2011: * gstdarg.h (_VA_LIST): Handle this like _VA_LIST_. ! 2012: ! 2013: * m68k.h (LOCAL_LABEL_PREFIX): Remove the `L'. ! 2014: Fix uses of %L by adding `L'. ! 2015: * m68k.c (print_operand_address): Fix use of %L. ! 2016: * m68k.md (movhi): Fix use of %L. They were inconsistent. ! 2017: ! 2018: Wed Dec 18 14:59:26 1991 Michael Meissner (meissner at osf.org) ! 2019: ! 2020: * limits.h (whole file): Protect against inclusion. ! 2021: ! 2022: * t-decrose (LIMITS_H): Don't install limits.h on OSF/1. ! 2023: * t-encrose (LIMITS_H): Don't install limits.h on OSF/1. ! 2024: * t-i386rose (LIMITS_H): Don't install limits.h on OSF/1. ! 2025: ! 2026: * x-decrose (SYSTEM_INCLUDES): Don't do -I/usr/include. ! 2027: * x-encrose (SYSTEM_INCLUDES): Don't do -I/usr/include. ! 2028: * x-i386rose (SYSTEM_INCLUDES): Don't do -I/usr/include. ! 2029: ! 2030: Wed Dec 18 04:53:23 1991 Ken Raeburn ([email protected]) ! 2031: ! 2032: * cp-init.c (build_new): Rewrote some of the array-handling code. ! 2033: Now stores the number of elements (after stripping off all outer ! 2034: ARRAY_TYPE nodes) at the start of allocated storage, just before the ! 2035: pointer the user's program sees. We also store the 2s compliment ! 2036: value of the pointer returned so we can distinguish when deleting a ! 2037: pointer whether it was "adjusted" or not. ! 2038: (expand_vec_init): Added a type conversion for cases when the ! 2039: address of an array gets passed in and we want to deal with the ! 2040: elements. ! 2041: (build_delete): Catch a case where deletion of arrays could slip ! 2042: through. ! 2043: (build_vec_delete): More array-handling rewrites. Extract the ! 2044: stored value and use it as the number of objects to destroy; ignore ! 2045: any value supplied by the user. ! 2046: ! 2047: * cp-init.c (init_vfields): Now static. ! 2048: ! 2049: * cp-tree.h (struct lang_decl_flags): Merged "dummy" fields. ! 2050: ! 2051: * cp-tree.h (DECL_TEMPLATE_INSTANTIATIONS): New macro for finding a ! 2052: list of instantiations already made of a template. (Only ! 2053: implemented for functions currently.) ! 2054: * cp-tree.def (DECL_TEMPLATE_INSTANTIATIONS): Describe it. ! 2055: * cp-pt.c (instantiate_template): Maintain and make use of it. ! 2056: ! 2057: * cp-pt.c (tsubst, case REFERENCE_TYPE): Call build_reference_type ! 2058: instead of constructing the type here. ! 2059: ! 2060: Wed Dec 18 03:37:46 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 2061: ! 2062: * c-parse.y (label_decl): Use identifiers_or_typenames. ! 2063: ! 2064: * c-parse.y: Support FUNCTION ([ARGNAMES] DECLS) {...}. ! 2065: (defn_parmlist_2, defn_parms): New nonterminals. ! 2066: (identifiers_or_typenames): New nonterminal. ! 2067: (parmlist_or_identifiers_1): Changed. ! 2068: * c-decl.c (combine_parm_decls): New function. ! 2069: ! 2070: Tue Dec 17 22:18:43 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 2071: ! 2072: * function.c (expand_main_function): Build SYMBOL_REF with Pmode, ! 2073: not VOIDmode. ! 2074: ! 2075: * rs6000.h (HARD_REGNO_NREGS, CLASS_MAX_NREGS): FP regs can only hold ! 2076: 64 bits, not any size FP value. ! 2077: ! 2078: * reload1.c (reload): Remove variable old_caller_save_needed. ! 2079: Call init_save_areas and setup_save_areas instead of ! 2080: allocate_save_areas and elim_save_addrs. ! 2081: * caller-save.c (init_caller_save): New function, from part of ! 2082: allocate_save_areas. ! 2083: (setup_save_areas): New function, from rest of allocate_save_areas ! 2084: and elim_save_addrs. ! 2085: When scanning pseudos to find hard regs that might need caller-save, ! 2086: look at all parts of multi-word registers. ! 2087: ! 2088: * flow.c (elim_reg_set): New variable. ! 2089: (flow_analysis): Set it to contain those regs that we can eliminate. ! 2090: (mark_used_regs): Don't set eliminable regs as live when they are used. ! 2091: ! 2092: * global-alloc.c (global_alloc): Clear preferences with eliminable ! 2093: regs, in addition to clearing conflicts. ! 2094: ! 2095: * reload.c (find_reloads_toplev): Abort instead of making ! 2096: a SUBREG of a VOIDmode constant. ! 2097: ! 2098: * emit-rtl.c (copy_rtx_if_shared): SCRATCH may always be shared. ! 2099: ! 2100: Tue Dec 17 21:06:03 1991 Michael Meissner (meissner at osf.org) ! 2101: ! 2102: * mips.h (MIPS_VERSION): Bump MM version number to 5. ! 2103: (processor_type): New enum to hold which type of ! 2104: processor to schedule for. ! 2105: (mips_cpu): New global to hold processor type. ! 2106: (MASK_*, TARGET_*): Rearrange target bits, add bits to select ! 2107: processor type, r4000 int/long/long long sizes. ! 2108: (TARGET_SWITCHES): Delete redunant no options, only leave no- ! 2109: version. ! 2110: (CUMULATIVE_ARGS): Make this a structure, not a pointer to a ! 2111: structure. ! 2112: (INIT_CUMULATIVE_ARGS): CUMULATIVE_ARGS changes. ! 2113: (FUNCTION_ARG_ADVANCE): Ditto. ! 2114: (FUNCTION_ARG): Ditto. ! 2115: (FUNCTION_ARG_PARTIAL_NREGS): Ditto. ! 2116: (RTX_COSTS): Count simple memory refs as one instruction. ! 2117: (REGISTER_MOVE_COST): Define as 4, to make sure constraints are ! 2118: checked. ! 2119: ! 2120: * mips.md (hilo type attribute): Add hilo type attribute to ! 2121: separate moves to/from the hi/lo registers with other register ! 2122: transfers. ! 2123: (move patterns): Set hilo attribute as appropriate. ! 2124: (define_function_units): Update the integer and memory functional ! 2125: units to include R4000 and R6000 processors, keyed off of the ! 2126: -mr[46]000 switches. Add a new functional unit for transfering ! 2127: stuff between register sets. ! 2128: (mov{sf,df}_xfer*): Remove these patterns, as they are no longer ! 2129: needed in GCC 2.00 to move between the different register sets, ! 2130: and generate insn not found messages if used. ! 2131: (movsi_ulw, movsi_usw): Correct test to see if stack loads are ! 2132: aligned. Use UNITS_PER_WORD-1 instead of a hard coded 3. ! 2133: (move define_expands): Delete move define_expands, since they are ! 2134: illegal according to the documentation, and the bug they guard ! 2135: against has long ago been fixed. ! 2136: ! 2137: * mips.c (mips_cpu): New global to hold processor type. ! 2138: (override_options): Set mips_cpu, check for 64 bit r4000 switches ! 2139: if processor not a r4000. ! 2140: (init_cumulative_args): CUMULATIVE_ARGS changes. ! 2141: (function_arg_advance): Ditto. ! 2142: (function_arg): Ditto. ! 2143: (function_arg_partial_nregs): Ditto. ! 2144: (mips_output_filename): Except for first .file, don't emit any other ! 2145: .file if encapsulating stabs in ECOFF, just put out stabs. This ! 2146: confuses gdb. ! 2147: (mips_output_lineno): Don't put out .loc's if encapulating stabs in ! 2148: ECOFF. ! 2149: (mips_asm_file_start): Put a .set nobopt for MIPS assembler to ! 2150: work around bug where the assembler goes bonkers if a branch ! 2151: inside of a .set noreorder section jumps to a label outside of a ! 2152: .set noreorder section. This is supposed to be fixed in 2.20 of ! 2153: the assembler. ! 2154: (function_epilogue): Correctly emit nops with tabs and newlines if ! 2155: needed. ! 2156: ! 2157: * decrose.h (OBJECT_FORMAT_ROSE): Define, to tell collect to ! 2158: enable OSF/rose support, rather than use nm. ! 2159: ! 2160: * encrose.h (OBJECT_FORMAT_ROSE): Define, to tell collect to ! 2161: enable OSF/rose support, rather than use nm. ! 2162: ! 2163: * i386rose.h (OBJECT_FORMAT_ROSE): Define, to tell collect to ! 2164: enable OSF/rose support, rather than use nm. ! 2165: ! 2166: * t-decrose (EXTRA_PASSES): Build collect2 instead of collect-osf, ! 2167: and link it to ld. ! 2168: ! 2169: * t-encrose (EXTRA_PASSES): Build collect2 instead of collect-osf, ! 2170: and link it to ld. ! 2171: ! 2172: * t-i386rose (EXTRA_PASSES): Build collect2 instead of collect-osf, ! 2173: and link it to ld. ! 2174: ! 2175: * x-decrose (DEBUG): Delete -g, since CFLAGS already passes it. ! 2176: (GCC_CFLAGS): Define POSIX so we can build protoize. ! 2177: ! 2178: * x-encrose (DEBUG): Delete -g, since CFLAGS already passes it. ! 2179: (GCC_CFLAGS): Define POSIX so we can build protoize. ! 2180: ! 2181: * x-i386rose (DEBUG): Delete -g, since CFLAGS already passes it. ! 2182: (GCC_CFLAGS): Define POSIX so we can build protoize. ! 2183: ! 2184: * t-decstatn (EXTRA_PASSES): Explicitly mention collect2. ! 2185: (ld): Use $(SYMLINK) rather than just ln. ! 2186: ! 2187: * t-mips (EXTRA_PASSES): Explicitly mention collect2. ! 2188: ! 2189: * collect2.c (whole file): Rewrite file based on collect-osf, to ! 2190: make it more portable. Highlights include: running ld only once if ! 2191: there are no constructors; OSF/rose support; not assuming that the ! 2192: linker, assembler, nm live in /bin; -v support to trace the commands ! 2193: being executed and print a version number; loops instead of ! 2194: recursion used to write out the tables; support for user using -r; ! 2195: checking all error returns; not using the shell to start processes. ! 2196: ! 2197: * collect-osf.c (whole file): Deleted, merged into collect2.c. ! 2198: ! 2199: Tue Dec 17 15:49:06 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) ! 2200: ! 2201: * sched.c (schedule_insns): Don't update value of reg_live_length ! 2202: when it is negative, because negative values are special. ! 2203: ! 2204: * sched.c (schedule_block): Make new_needs an int not an enum, since ! 2205: some compilers won't accept using `|' and `&' with enums. ! 2206: ! 2207: * sparc.md: Don't emit nop after floating point compare; this is ! 2208: no longer needed. ! 2209: ! 2210: From Tom Wood: ! 2211: * sched.c (memrefs_conflict_p): Exchange xsize and ysize when x ! 2212: and y are exchanged. ! 2213: ! 2214: Tue Dec 17 15:01:04 1991 Mark Eichin (eichin at cygnus.com) ! 2215: ! 2216: * cp-decl.c (set_nested_typename): use SET_IDENTIFIER_TYPE_VALUE, ! 2217: not set_identifier_type_value, so that the binding doesn't get ! 2218: unwound by leaving class scope. ! 2219: ! 2220: Tue Dec 17 10:57:12 1991 Tom Wood (wood at dg-rtp.dg.com) ! 2221: ! 2222: * toplev.c (main): Make -g0 produce no debugging information. ! 2223: ! 2224: Tue Dec 17 15:15:20 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 2225: ! 2226: * gcc.c (do_spec_1): In %P, duplicate the names with __ just in front. ! 2227: ! 2228: * gstab.h: Renamed from stab.h. ! 2229: * collect2.c, dbxout.c, final.c, mips-tfile.c: #include changed. ! 2230: * dbxout.c (N_CATCH): Define this if stab.h does not. ! 2231: * Makefile.in: Depend on gstab.h where appropriate. ! 2232: ! 2233: * Makefile.in (STAGESTUFF): Remove collect and collect2. ! 2234: ! 2235: * c-parse.y (parmlist_2): Allow just `...' with no named args. ! 2236: * c-decl.c (get_parm_info): Pedantic warning for that usage. ! 2237: ! 2238: * final.c (final_scan_insn): Don't output blocks for -g1. ! 2239: ! 2240: * Makefile.in (crtbegin.o, crtend.o): Use -g0. ! 2241: ! 2242: * function.c (expand_main_function): Do nothing if INIT_SECTION_ASM_OP. ! 2243: ! 2244: * varasm.c (assemble_asm): Handle ADDR_EXPR of a STRING_CST. ! 2245: * stmt.c (expand_asm): Likewise. ! 2246: * c-parse.y (extdef, stmt): Accept STRING_CST or ADDR_EXPR in asm. ! 2247: ! 2248: Tue Dec 17 15:01:11 1991 Tom Wood (wood at dg-rtp.dg.com) ! 2249: ! 2250: * m88k.h (INIT_SECTION_ASM_OP): Override svr[34].h. ! 2251: * m88kv4.h (INIT_SECTION_ASM_OP): Override svr4.h and m88k.h. ! 2252: * m88kdgux.h ({INIT,CTORS,DTORS}_SECTION_ASM_OP): Override m88k.h ! 2253: except when compiling crtstuff.c. ! 2254: ! 2255: Mon Dec 16 21:50:42 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 2256: ! 2257: * stmt.c (struct case_node): Remove unused field `test_label'. ! 2258: (pushcase, pushcase_range): Don't initialize it. ! 2259: ! 2260: * stmt.c (check_for_full_enumeration_handling): Only print warnings ! 2261: if -Wswitch is specified. ! 2262: (expand_end_case): Call check_for_full_enumeration_handling even if ! 2263: -Wswitch is not specified. ! 2264: ! 2265: * expr.c (convert_move): Add missing arg to call to force_reg. ! 2266: (convert_to_mode): Likewise, for protect_from_queue. ! 2267: ! 2268: Mon Dec 16 20:33:10 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 2269: ! 2270: * expr.c (expand_builtin): Check number and types of args. ! 2271: ! 2272: * c-parse.y (stmt, extdef): Allow constant expression inside plain asm. ! 2273: ! 2274: * m68k.md (movhi): Use asm_fprintf to print .set or equivalent. ! 2275: * m68k.c (print_operand_address): Use %R when printing pc register. ! 2276: * m68k.h (ASM_OUTPUT_INTERNAL_LABEL, ASM_GENERATE_INTERNAL_LABEL): ! 2277: Use %L. ! 2278: ! 2279: * c-typeck.c, cp-typeck.c (c_sizeof): Give error for incomplete type. ! 2280: ! 2281: Mon Dec 16 11:14:28 1991 Ken Raeburn ([email protected]) ! 2282: ! 2283: * cp-decl.c (init_decl_processing): Don't declare unused function ! 2284: __builtin_vec_delete. ! 2285: ! 2286: Mon Dec 16 08:35:04 1991 Torbjorn Granlund (tege at hal.gnu.ai.mit.edu) ! 2287: ! 2288: * gnulib2.c (__udivmoddi4): Add comment. ! 2289: ! 2290: Mon Dec 16 07:47:13 1991 Michael Tiemann (tiemann at cygnus.com) ! 2291: ! 2292: * cp-call.c (ideal_candidate): Always set BEST before using it. ! 2293: Also, call `build_component_ref_1' with 3 args everywhere, and ! 2294: `build_indirect_ref' with 2 args everywhere. ! 2295: ! 2296: Mon Dec 16 07:17:46 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 2297: ! 2298: * reload.h: Add `extern' to function declarations. ! 2299: (gen_input_reload): Add declaration. ! 2300: * reload1.c (reload): Allocate save area if caller-saves are needed; ! 2301: check for case when it becomes needed after some spill registers are ! 2302: obtained. ! 2303: Can now eliminate frame pointer even when caller-saves are needed. ! 2304: Perform register elimination of save area and see if caller-save needs ! 2305: a spill register. ! 2306: If required, find a spill register and pass it to caller-save code. ! 2307: (gen_input_reload): No longer static. ! 2308: * Makefile.in (caller-save.o): Now includes reload.h (again). ! 2309: * global-alloc.c (global_alloc): Can eliminate frame pointer even if ! 2310: we have caller-saves. ! 2311: * toplev.c (compile_file): Call init_caller_saves. ! 2312: ! 2313: * caller-save.c: Major rewrite; almost entirely new code. ! 2314: Integrate caller-saving with frame pointer elimination. ! 2315: Don't try to save and restore registers that cannot be directly ! 2316: copied to memory (such as MQ). ! 2317: Correctly place save and restore insns. ! 2318: Don't restore a saved register until end of block or if it is needed. ! 2319: ! 2320: * cse.c (mention_regs): Now returns int to indicate that the hash code ! 2321: may have changed. ! 2322: For COMPARE and comparison op, ensure that any register operand has ! 2323: a quantity number. ! 2324: (insert_regs): Return value from mention_regs. ! 2325: (rehash_using_reg): New function. ! 2326: (record_jump_equiv, mention_regs): Call rehash_using_reg if an operand ! 2327: of a compare is a REG whose hash code is changing. ! 2328: ! 2329: Mon Dec 16 07:09:21 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 2330: ! 2331: * function.c (expand_main_function): New subroutine. Call __main. ! 2332: * c-decl.c, cp-decl.c (store_parm_decls): Use that. ! 2333: * cp-decl.c (init_decl_processing): Don't declare __main. ! 2334: ! 2335: * objc-actions.c (init_objc): Call __objcInit as a constructor. ! 2336: ! 2337: * toplev.c (compile_file): Reenable SDB code #if 0'd before. ! 2338: ! 2339: * protoize.c (version_string): Make it extern. ! 2340: * Makefile.in (protoize, unprotoize): Link with version.o. ! 2341: ! 2342: Sun Dec 15 23:31:47 1991 Michael Tiemann (tiemann at cygnus.com) ! 2343: ! 2344: * cp-tree.c (virtual_member): When recurring, don't dive into ! 2345: nonexistent baseclasses. ! 2346: ! 2347: * cp-decl.c (grokdeclarator): Set TREE_STATIC for initialized const ! 2348: arrays. ! 2349: * cp-typeck.c (mark_addressable): A decl that was TREE_STATIC might ! 2350: be chagned to TREE_EXTERNAL due to #pragma interface/implementation. ! 2351: ! 2352: Sun Dec 15 14:57:23 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 2353: ! 2354: * Makefile.in (SYSCALLS.c.X): Fix typo. ! 2355: (INTERNAL_CFLAGS): Delete -DMERGED. ! 2356: ! 2357: * dbxout.c (dbxout_init): Pass proper args to ASM_OUTPUT_MAIN_*. ! 2358: * newpbb.h (ASM_OUTPUT_MAIN_SOURCE_FILENAME): Add proper arguments. ! 2359: ! 2360: * stmt.c (emit_case_nodes): Rewrite to change induction conditions. ! 2361: Handle boundedness in the bounded node itself. ! 2362: Handle branching entirely at the parent level. ! 2363: ! 2364: * gstdarg.h: Use va-i860.h. ! 2365: * va-i860.h (va_start for ANSI): Fix typo. Call __builtin_next_arg. ! 2366: ! 2367: Sat Dec 14 20:45:30 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 2368: ! 2369: * Makefile.in (USER_H): va-hp9k8.h should be va-hp800.h. ! 2370: ! 2371: * loop.c (invariant_p): Call-clobbered register is not invariant if ! 2372: loop has calls. ! 2373: (count_loop_regs_set): Count a CLOBBER as a setting of a register. ! 2374: ! 2375: * stmt.c: Move include of ctype.h and definition of cost variables to ! 2376: front of file. ! 2377: (expand_end_case): Always set use_cost_table. Check type here instead ! 2378: of in estimate_case_costs. Don't suppress use of cost table when ! 2379: not optimizing. ! 2380: (estimate_case_costs): Now returns int. Check for any case tag ! 2381: that is an unusual control character here and reject use of table ! 2382: if so. Always do comparisons signed, since that's how we access the ! 2383: cost table. ! 2384: (balance_case_nodes): Don't check for strange control characters here. ! 2385: (node_has_low_bound): Do checking if we don't have a left branch, ! 2386: instead of if we do. ! 2387: (node_has_{low,high}_bound): Remove spurious checks on branches. ! 2388: (emit_case_nodes): Ensure operation passed to emit_cmp_insn matches ! 2389: the branch we actually emit. ! 2390: Fix case of a range node with no left or right branch; use of case ! 2391: and default label were backward for the high test. ! 2392: Remove unused variables defaulted_{left,right}. ! 2393: ! 2394: Sat Dec 14 16:10:11 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 2395: ! 2396: * protoize.c: Don't include limits.h. ! 2397: Rename `pathname' to `filename' everywhere. ! 2398: Clean up indentation of fprintf calls. ! 2399: Use standard GNU format for file name/line in error messages. ! 2400: (n_base_source_files): Renamed from base_source_files. ! 2401: (convert_filename, invocation_filename, base_source_filenames): ! 2402: `path' renamed to `filename'. ! 2403: (syscalls_absolute_filename): Renamed from syscalls_pathname. ! 2404: (find_file): Arg FILENAME no longer const. ! 2405: (main): Fix getcwd error-checking logic. ! 2406: (varargs_style_indicator): Delete `const'. ! 2407: (savestring): Declare arg `input' const. ! 2408: ! 2409: * Makefile.in (protoize, protoize.o, unprotoize, unprotoize.o): ! 2410: Use GCC_FOR_TARGET. ! 2411: (getopt.o, getopt1.o): Likewise. ! 2412: (GCC_FOR_TARGET): Delete -B./. ! 2413: (GCC_CFLAGS): Add -B./. Copy ALL_CFLAGS's definition, less XCFLAGS. ! 2414: ! 2415: * cp-init.c (add_friends): Pass proper args to strncmp. ! 2416: ! 2417: * toplev.c (compile_file): Clear DECL_RTL for vars not really output. ! 2418: #if 0 possibly redundant code for SDB output. ! 2419: ! 2420: * sys-types.h: Include gstddef.h to get size_t and wchar_t. ! 2421: ! 2422: * ultrix.h (CPP_PREDEFINED): Add __unix, __ultrix, __bsd4_2. ! 2423: ! 2424: * Makefile.in (STAGESTUFF): Add collect, collect2. ! 2425: ! 2426: Sat Dec 14 12:16:12 1991 Michael Tiemann (tiemann at cygnus.com) ! 2427: ! 2428: * cp-search.c (get_baselinks): Use obstacks right, instead of ! 2429: aborting when we know we're using them wrong. ! 2430: ! 2431: * cp-parse.y (structsp): Fix typo in exception declaration rule. ! 2432: ! 2433: * cp-typeck.c (build_modify_expr_1): Recursive call to ! 2434: `build_modify_expr_1' used pre-BINFO representation for ! 2435: BASETYPE_PATH argument. ! 2436: ! 2437: * cp-decl.c (start_decl): Don't switch to temporary allocation for ! 2438: decls of type REFERENCE_TYPE, as their initializers may live a long ! 2439: time, too. ! 2440: ! 2441: Sat Dec 14 07:11:03 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 2442: ! 2443: * reload.c (find_reloads_toplev): If we have a SUBREG of a multi-word ! 2444: constant, try to extract just the word we want. ! 2445: ! 2446: * global-alloc.c (global_alloc): Correct reference to ELIMINABLES. ! 2447: ! 2448: Fri Dec 13 15:28:38 1991 Michael Meissner (meissner at osf.org) ! 2449: ! 2450: * configure (mips-mips-sysv): On MIPS System V, use xm-umips.h, not ! 2451: xm-mips.h. ! 2452: ! 2453: * gstddef.h (__PTRDIFF_TYPE__): Provide default definition in case ! 2454: non-GCC 2.00 compiler is used. ! 2455: (__SIZE_TYPE__): Ditto. ! 2456: (__WCHAR_TYPE__): Ditto. ! 2457: ! 2458: Fri Dec 13 14:49:54 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 2459: ! 2460: * config.sub: Renamed from config.subr. ! 2461: Support os -sym1. ! 2462: Convert -svr3, -svr4 to -sysv3, -sysv4. ! 2463: * configure: Used new name. ! 2464: ! 2465: * Makefile.in (includes): Preserve files from GCC already in dir. ! 2466: ! 2467: Fri Dec 13 11:01:12 1991 Fred Fish (fnf at fishpond) ! 2468: ! 2469: * att386.h: Fix unparenthesized macro arguments in ! 2470: ASM_OUTPUT_ASCII macro. ! 2471: ! 2472: * i386v4.h: Select an assembly language syntax file and include ! 2473: it. Supply missing macros from ones in i386v.h (TARGET_DEFAULT, ! 2474: VALUE_REGNO, FUNCTION_VALUE_REGNO_P). ! 2475: ! 2476: * svr4.h: Fix misspelled variable name labelno (was labeno). ! 2477: ! 2478: Fri Dec 13 09:07:22 1991 Michael Tiemann (tiemann at cygnus.com) ! 2479: ! 2480: * cp-typeck.c (build_component_ref): Call `assemble_external' as ! 2481: nec. ! 2482: (build_function_call_real): Call `assemble_external' as nec. for ! 2483: function calls we build. Code slightly rearranged for clarity. ! 2484: * cp-call.c (build_method_call): Call `assemble_external' as nec. ! 2485: ! 2486: Thu Dec 12 22:03:52 1991 Eric Youngdale (youngdale at v6550c.nrl.navy.mil) ! 2487: ! 2488: * make-cc1.com: Change message given to user. Change c-parse_tab.* ! 2489: to c-parse.* ! 2490: ! 2491: * config-gcc.com: Purge excess versions of version.opt. ! 2492: ! 2493: Thu Dec 12 20:25:20 1991 Michael Meissner (meissner at osf.org) ! 2494: ! 2495: * Makefile.in (BOOT_CFLAGS): Remove quotes around the argument, ! 2496: since this causes a syntax error when it is later expanded. ! 2497: ! 2498: Thu Dec 12 17:53:55 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 2499: ! 2500: * config.subr: Add many new machines and some OS's. ! 2501: ! 2502: * va-i860.h: Rewrite from rfg. ! 2503: ! 2504: * toplev.c (main): Handle -dm on USG systems. ! 2505: ! 2506: * m68k.c (print_operand, print_operand_address): New functions. ! 2507: * m68k.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS): Just call them. ! 2508: ! 2509: * m68k.c (S_*, D_*): Delete the #undefs at the end. ! 2510: ! 2511: * stmt.c (expand_return): Special case if fcn returns void. ! 2512: ! 2513: * objc-actions.c (build_objc_method_call): Fix typo in NeXT case. ! 2514: ! 2515: * expr.c (expand_builtin, BUILT_IN_ARGS_INFO): Cast init of word_ptr. ! 2516: ! 2517: * protoize.c: Delete the `extern "C"' for C++ compilation. ! 2518: ! 2519: Thu Dec 12 10:01:13 1991 Michael Meissner (meissner at osf.org) ! 2520: ! 2521: * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Fix off by one error in ! 2522: handling the constructor list when a valid count is supplied. ! 2523: ! 2524: * collect2.c (write_hooks): Emit a count before the list of ! 2525: constructors, to go back to the old format. ! 2526: ! 2527: * collect-osf.c (write_s_file): Emit a count before the list of ! 2528: constructors, to go back to the old format. ! 2529: ! 2530: * gnulib2.c (exit): Provide default defintions as bss symbols for ! 2531: all of the constructor/destructor related symbols if the macro ! 2532: INIT_SECTION_ASM_OP is not defined. The second link that collect ! 2533: does and/or gld will provide the right values. ! 2534: ! 2535: * decrose.h (HAVE_ATEXIT): Nuke macro, no longer used. ! 2536: * encrose.h (HAVE_ATEXIT): Nuke macro, no longer used. ! 2537: * i386rose.h (HAVE_ATEXIT): Nuke macro, no longer used. ! 2538: ! 2539: Thu Dec 12 07:27:05 1991 Tom Wood (wood at dg-rtp.dg.com) ! 2540: ! 2541: * gbl-ctors.h (__CTOR_LIST__, __DTOR_LIST__): Renamed from *_BEGIN__. ! 2542: * collect-osf.c collect2.c: Rename here as well. ! 2543: ! 2544: Thu Dec 12 04:15:22 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 2545: ! 2546: * c-parse.y (stmt): Make asm alternatives allow expr. ! 2547: * c-typeck.c (c_expand_asm_operands): Get the STRING_CST from the expr. ! 2548: ! 2549: * c-parse.y (datadecl, datadecls, lineno_datadecl): New rules. ! 2550: (xdecls): Use them. ! 2551: ! 2552: Wed Dec 11 18:36:53 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 2553: ! 2554: * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Just one definition; use ON_EXIT. ! 2555: Test for -1 and handle both kinds of table format. ! 2556: * gnulib2.c (__do_global_dtors): Check for -1... ! 2557: (__do_global_ctors): Dummy defn of ON_EXIT if no other defined. ! 2558: (__main): Do nothing if called again. ! 2559: (exit): Use EXIT_BODY if defined. ! 2560: * crtstuff.c (__CTOR_LIST__, __DTOR_LIST__): ! 2561: Renamed from *_BEGIN__. Add -1 as first elt. ! 2562: (__CTOR_END__, __DTOR_END__): Add 0 as last elt. ! 2563: (ON_EXIT): Dummy defn if no other is defined. ! 2564: ! 2565: Wed Dec 11 18:08:36 1991 Mark Eichin (eichin at cygnus.com) ! 2566: ! 2567: * cp-parse.y (template_parm): removed some reduce/reduce conflicts ! 2568: by noting which of identifier or identifier_defn would actually be ! 2569: passed up in this context. ! 2570: ! 2571: Wed Dec 11 17:52:46 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 2572: ! 2573: * flow.c (propagate_block): Adjust loop depth if it is changed in ! 2574: notes at the end of a block. ! 2575: Abort if loop depth ever reaches zero. ! 2576: ! 2577: Wed Dec 11 16:30:09 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 2578: ! 2579: * cccp.c (do_endif): Don't call record_control_macro at top level. ! 2580: ! 2581: Wed Dec 11 14:45:42 1991 Mark Eichin (eichin at cygnus.com) ! 2582: ! 2583: * cp-decl.c (set_identifier_type_value): If we're in a ! 2584: class_binding_level, shadow the type there. ! 2585: (xref_defn_tag): New function. Calls xref_tag with special flag set ! 2586: to indicate that we know we're defining something. ! 2587: (pushdecl_top_level): if class_binding_level is set, search from it ! 2588: instead of only from current_binding_level when trying to find ! 2589: shadowed values. This is in support of tests m5.cc through m8.cc, ! 2590: which broke after the changes for m9.cc were installed. ! 2591: ! 2592: * cp-spew.c (do_aggr): New function. Looks ahead from AGGR to see if ! 2593: we have AGGR identifier { or AGGR identifier : which are both ! 2594: definitions, and passes up identifier_DEFN instead. This is in ! 2595: support of test m9.cc. ! 2596: (yylex): add SPEW_DEBUG case after EMPTY, so we don't have gaps in ! 2597: the displayed stream. ! 2598: (yylex, case AGGR): added call to do_aggr. ! 2599: (debug_yychar): added call to debug_yytranslate for proper ! 2600: translations. ! 2601: ! 2602: * cp-parse.y (debug_yytranslate): New function to support SPEW_DEBUG ! 2603: translations. ! 2604: (TYPENAME_DEFN): new token, TYPENAME seen by do_aggr. ! 2605: (IDENTIFIER_DEFN): new token, ditto. ! 2606: (PTYPENAME_DEFN): new token, ditto. ! 2607: (identifier_defn): corresponds to identifier, but when the ! 2608: identifier has been seen by do_aggr. ! 2609: (named_class_head_sans_basetype_defn): specially recognize aggr ! 2610: identifier_defn. ! 2611: (named_class_head): add parallel clauses calling xref_tag_defn when ! 2612: we know we're defining this aggr. ! 2613: (named_class_head_sans_basetype_defn_either): for when we don't care ! 2614: if it is a defn or not (such as templates) ! 2615: (identifier_either): ditto. ! 2616: ! 2617: * cp-tree.h (xref_defn_tag): New declaration. ! 2618: ! 2619: Wed Dec 11 12:37:51 1991 Ken Raeburn ([email protected]) ! 2620: ! 2621: * cp-parse.y (label_colon): New nonterminal, with all label prefixes ! 2622: from "stmt" moved here. ! 2623: (stmt): Use it. Also provide useful message for label followed by ! 2624: end of block (close-brace). ! 2625: ! 2626: * cp-init.c (BIVN): Deleted unused variable. ! 2627: * cp-decl.c (init_decl_processing): Don't declare function ! 2628: __builtin_vec_new; it's never used. ! 2629: ! 2630: Wed Dec 11 10:59:48 1991 Michael Meissner (meissner at osf.org) ! 2631: ! 2632: * toplev.c (main): Complete last change from RMS, use variable ! 2633: 'level' which used to be named 'arg'. ! 2634: ! 2635: * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Don't reference ON_EXIT for ! 2636: those poor systems without atexit or on_exit. ! 2637: ! 2638: Wed Dec 11 09:06:52 1991 Jeffrey A. Law (law at wombat.gnu.ai.mit.edu) ! 2639: ! 2640: * m68k.c (output_function_prologue, output_function_epilogue): ! 2641: When saving/restoring only 2 registers, do so with two "movel" ! 2642: instructions instead of a single "moveml". This results in ! 2643: faster code for the 68020 and later machines. ! 2644: ! 2645: Wed Dec 11 06:45:08 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 2646: ! 2647: * x-romp (MAKE): Add definition; the supplied `make' doesn't define it. ! 2648: ! 2649: Tue Dec 10 22:17:50 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 2650: ! 2651: * combine.c (try_combine): Always make a copy of I2's pattern if ! 2652: it will be used in a PARALLEL (`added_sets_2' nonzero). ! 2653: ! 2654: * Makefile.in (BOOT_CFLAGS): New parameter. ! 2655: (bootstrap*): Use it. ! 2656: ! 2657: * flow.c (find_basic_blocks): Set depth of last insn, not first, ! 2658: into basic_block_loop_depth. ! 2659: (propagate_blocks): Use consistently with new definition. ! 2660: ! 2661: * cse.c (cse_end_of_basic_block, cse_basic_block): Remove previous ! 2662: change; it can cause loops following around branches. ! 2663: ! 2664: * Makefile.in (USER_H): Add va-hp9k8.h. ! 2665: ! 2666: Tue Dec 10 17:22:01 1991 Tom Wood (wood at dg-rtp.dg.com) ! 2667: ! 2668: * m88k*.h: Include svr3.h as the default. m88kv4.h and m88kdgux.h ! 2669: include svr4.h. Override svr[34].h as needed. ! 2670: * t-m88k, t-m88kv4: Specify EXTRA_PARTS. ! 2671: ! 2672: * m88k.c (uses_arg_area_p): Check current_function_varargs. ! 2673: ! 2674: Tue Dec 10 15:41:03 1991 Michael Meissner (meissner at osf.org) ! 2675: ! 2676: * osf-main.c (whole file): Delete, since the constructor stuff was ! 2677: moved to gnulib2.c. ! 2678: ! 2679: * Makefile.in (collect2, collect2.o): Change to use the default ! 2680: compiler to build collect2, instead of the newly built GCC, since ! 2681: otherwise, collect2 will create a circular dependency. Also, pass ! 2682: LDFLAGS when linking. ! 2683: ! 2684: * collect-osf.c (write_s_file): Change to the new way of doing ! 2685: constructors and destructors of having an end marker instead of a ! 2686: count. ! 2687: ! 2688: * collect.c (REAL_AS_PATH, REAL_LD_PATH, REAL_NM_PATH): New macros ! 2689: to allow cross compilers to specify where the real linker, ! 2690: assembler, and nm live. ! 2691: (NM_FLAGS): New macro to allow a configuration to change what flags ! 2692: get passed to nm. ! 2693: (alloca defines): Remove alloca defines, since config.h provides ! 2694: them. ! 2695: (write_hooks): Change to the new way of doing constructors and ! 2696: destructors of having an end marker instead of a count. Cast all ! 2697: alloca calls to be the appropriate pointer type. Put both ! 2698: constructors and destructors into the data section, because the MIPS ! 2699: tools do not like non-instructions in the .text section. ! 2700: ! 2701: * decrose.h (HAVE_ATEXIT): Define, OSF/1 has atexit. ! 2702: (FULL_PROTOTYPES, NO_CONST_IN_SYSCALL): Remove, no longer used. ! 2703: ! 2704: * encrose.h (HAVE_ATEXIT): Define, OSF/1 has atexit. ! 2705: (FULL_PROTOTYPES): Remove, no longer used. ! 2706: ! 2707: * i386rose.h (HAVE_ATEXIT): Define, OSF/1 has atexit. ! 2708: ! 2709: * t-decrose (LIB2FUNCS_EXTRA): Remove, osf-main.c is no longer ! 2710: needed, since constructor/destructor support moved into gnulib2.c. ! 2711: ! 2712: * t-encrose (LIB2FUNCS_EXTRA): Remove, osf-main.c is no longer ! 2713: needed, since constructor/destructor support moved into gnulib2.c. ! 2714: ! 2715: * t-i386rose (LIB2FUNCS_EXTRA): Remove, osf-main.c is no longer ! 2716: needed, since constructor/destructor support moved into gnulib2.c. ! 2717: ! 2718: * t-decstatn (CCLIBFLAGS, GNULIB2_CFLAGS): Define so that gnulib1 ! 2719: and gnulib2 are both compiled with -G 0, in case the users compiles ! 2720: and links this way. It also fixes a bug where the constructors and ! 2721: destructors that collect2 produces are in the big data section, but ! 2722: gnulib2 thinks they are in the small data section, because it only ! 2723: sees a pointer. ! 2724: (ld): Add -f to remove old ld link to collect2, if it exists. ! 2725: ! 2726: * t-mips (CCLIBFLAGS, GNULIB2_CFLAGS): Define so that gnulib1 ! 2727: and gnulib2 are both compiled with -G 0, in case the users compiles ! 2728: and links this way. It also fixes a bug where the constructors and ! 2729: destructors that collect2 produces are in the big data section, but ! 2730: gnulib2 thinks they are in the small data section, because it only ! 2731: sees a pointer. ! 2732: (ld): Add rule to link collect2 to ld. ! 2733: (EXTRA_PASSES): Build collect2 (aka ld). ! 2734: ! 2735: * xm-mips.h (alloca): If not GNU C, declare alloca to be char *. ! 2736: ! 2737: * mips-tfile.c (add_aux_sym_tir): Move code to record bitfield size, ! 2738: so that it agrees with MIPS ECOFF practice, rather than the ! 2739: documentation, which affects enum bitfields. Changes from Per ! 2740: Bothner. ! 2741: ! 2742: Tue Dec 10 14:10:10 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 2743: ! 2744: * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Get rid of __reverse_order, etc. ! 2745: * gnulib2.c (__do_global_dtors): Remove & before arrays. ! 2746: ! 2747: * configure: Set a default value for xm_file. ! 2748: Remove redundant defaulting of cpu_type. ! 2749: ! 2750: * svr4.h (ASM_DECLARE_FUNCTION_SIZE): Output internal label properly. ! 2751: ! 2752: * function.c (assign_parms): Set current_function_args_info. ! 2753: * output.h: Declare that var. ! 2754: * tree.h (BUILTIN_ARGS_INFO): Renamed from BUILT_IN_VARARGS. ! 2755: * expr.c (expand_builtin): Implement __builtin_args_info. ! 2756: * c-decl.c (init_decl_processing): Declare it. ! 2757: * va-i860.h: Use it. ! 2758: Also update order of elements in struct __va_ctl. ! 2759: ! 2760: * toplev.c (main): Eliminate -gsdb and -gdbx. ! 2761: Clean up setting of use_gdb_dbx_extensions. ! 2762: ! 2763: Tue Dec 10 10:33:58 1991 Tom Wood (wood at gen-rtx) ! 2764: ! 2765: * svr4.h (ASM_DECLARE_FUNCTION_SIZE): Use an internal label. ! 2766: ! 2767: Tue Dec 10 07:12:28 1991 James Van Artsdalen (james@raid) ! 2768: ! 2769: * Makefile.in (crtbegin.o, crtend.o): crstuff.c is in $(srcdir). ! 2770: ! 2771: Tue Dec 10 06:56:26 1991 Michael Tiemann (tiemann at cygnus.com) ! 2772: ! 2773: * cp-decl.c (kept_level_p): New function, borrowed from c-decl.c. ! 2774: * cp-parse.y (compstmt): Call it. ! 2775: ! 2776: Mon Dec 9 18:37:32 1991 Ken Raeburn ([email protected]) ! 2777: ! 2778: * cp-decl.c (grok_enum_decls): Don't give warning for class-local ! 2779: enum types; this is a perfectly reasonable usage. ! 2780: ! 2781: Mon Dec 9 12:23:48 1991 Ron Guilmette (rfg at ncd.com) ! 2782: ! 2783: * toplev.c (main): Check that no extra chars follow the level # ! 2784: in a -gNNN option. Also check that the debugging level requested ! 2785: is between 0 and 3 (inclusive). ! 2786: ! 2787: Mon Dec 9 20:34:48 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) ! 2788: ! 2789: * sched.c (schedule_block): Don't crash if `line' is zero. ! 2790: (schedule_insns): Initialize line_note_head. ! 2791: ! 2792: Mon Dec 9 15:31:46 1991 Michael Meissner (meissner at osf.org) ! 2793: ! 2794: * mips-tfile.c (pseudo_ops array): Correctly size the .stabs and ! 2795: .stabn elements. ! 2796: ! 2797: * mips.c (function_prologue, function_epilogue): Use assemble_name ! 2798: to print the current function, instead of fprintf, in case there is ! 2799: a leading '*'. ! 2800: ! 2801: * mips-news.h (CPP_PREDEFINES): Define news3700, not news7300. ! 2802: ! 2803: * mips.md (ashldi3_internal3): Fix typos. ! 2804: (ashrdi3_internal3): Ditto. ! 2805: (lshldi3_internal3): Ditto. ! 2806: ! 2807: Mon Dec 9 11:49:52 1991 Torbjorn Granlund (tege at hal.gnu.ai.mit.edu) ! 2808: ! 2809: * longlong.h (__a29k__ udiv_qrnnd): Change "q" to "1" for operand ! 2810: 2 constraint. ! 2811: ! 2812: Mon Dec 9 11:22:58 1991 Ken Raeburn ([email protected]) ! 2813: ! 2814: * cp-typeck.c (build_x_function_call): A method might have type ! 2815: pointer-to-method as well. Don't build an OFFSET_REF for any ! 2816: "function" that already has pointer type. Only use ! 2817: DECL_CLASS_CONTEXT to find type of `this' for FUNCTION_DECLs; for ! 2818: method pointer expressions, look up the basetype of the method type. ! 2819: (build_unary_op): Fix comment in typo. ! 2820: ! 2821: * cp-tree.c: Fix typo in comment at start of file. ! 2822: ! 2823: Mon Dec 9 07:17:13 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 2824: ! 2825: * cse.c (cse_insn): When a jump is converted to unconditional, ! 2826: delete the dead code, but leave the notes. ! 2827: (cse_basic_block, cse_end_of_basic_block): Some unconditional jumps are ! 2828: part of the basic block. ! 2829: (cse_basic_block): Add missing arg to cse_end_of_basic_block call. ! 2830: ! 2831: Mon Dec 9 07:16:15 1991 Ron Guilmette (rfg at ncd.com) ! 2832: ! 2833: * sys-types.h: New file. ! 2834: * sys-protos.h: New file. ! 2835: * SYSCALLS.c: Just include those files. ! 2836: ! 2837: * protoize.c (VOLATILE): Define this symbol conditionally so that ! 2838: it can be used to declare GNU `volatile' functions. ! 2839: (abort): Added VOLATILE extern declaration (but not if it's a macro). ! 2840: (kill, fork): Added extern declaration. ! 2841: (substr): Declare c as int. ! 2842: ! 2843: * gbl-ctors.h: New file. ! 2844: * crtstuff.c: Include gbl-ctors.h. ! 2845: (INIT_SECTION_ASM_OP): Delete default definition. ! 2846: Only compile .init section code if INIT_SECTION_ASM_OP is defined. ! 2847: (pointer): Globally changed to `func_ptr'. ! 2848: * Makefile.in (crtbegin.o, crtend.o, gnulib2): Depend on gbl-ctors.h. ! 2849: * gnulib2.c: Added definition of __builtin_saveregs for i860/svr4 ! 2850: and fixed up definition of __builtin_saveregs for i860/non-svr4. ! 2851: (__bb_avoid_warning): Added explicit return type. ! 2852: (__builtin_new, __builtin_vec_new, __builtin_delete, ! 2853: __builtin_vec_delete): Use `void*' where appropriate. ! 2854: (exit): Change conditional to ON_EXIT. Make dummy if no real exit. ! 2855: Include gbl-ctors.h. ! 2856: (__main): Change conditional to INIT_SECTION_ASM_OP. ! 2857: (__do_global_ctors): Conditional on INIT_SECTION_ASM_OP. ! 2858: Use DO_GLOBAL_CTORS_BODY for the guts. ! 2859: Include gbl-ctors.h. ! 2860: ! 2861: Mon Dec 9 01:07:56 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 2862: ! 2863: * fixinc.svr4: Don't change #ident or assertion tests. ! 2864: Don't install inline.h. ! 2865: ! 2866: * c-common.c (get_directive_line): Declare c as int. ! 2867: ! 2868: * configure: Create additional file tconfig.h. ! 2869: * protoize.c: Include that, not tm.h. ! 2870: * Makefile.in (protoize.o, unprotoize.o): Depend on tconfig.h. ! 2871: ! 2872: * svr4.h (HAVE_ATEXIT): Defined. ! 2873: * gnulib2.c (_main, exit): Use HAVE_ATEXIT to control use of atexit. ! 2874: ! 2875: * final.c (final_scan_insn): Output first and last note in a series. ! 2876: ! 2877: * objc-actions.c (build_objc_method_call): ! 2878: New arg LOOKUP_OBJECT. ! 2879: (build_message_expr): Pass RECEIVER for LOOKUP_OBJECT. ! 2880: Pass RECEIVER or self_decl as OBJECT. ! 2881: ! 2882: * unx386.h (PRINT_IMMED_PREFIX, PRINT_OFFSET_PREFIX): Deleted. ! 2883: ! 2884: * rtl.h: Undef FLOAT. ! 2885: ! 2886: * svr4.h (ASM_DECLARE_OBJECT_NAME, ASM_DECLARE_FUNCTION_SIZE): ! 2887: Fix typo. ! 2888: ! 2889: Sun Dec 8 21:46:51 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 2890: ! 2891: * protoize.c (main): Declare `value'. ! 2892: (abspath): Declare endp. Declare and set outp and inp. ! 2893: ! 2894: * cp-decl.c (sigsegv): Function deleted. ! 2895: (init_decl_processing): Don't use it. ! 2896: Also don't include signal.h. ! 2897: ! 2898: * t-svr4: New file. ! 2899: * configure (i386-*-sysv4*, i860-*-sysv4*): Use that file. ! 2900: ! 2901: Sun Dec 8 12:01:36 1991 Ron Guilmette (rfg at ncd.com) ! 2902: ! 2903: * fixinc.svr4: New file. ! 2904: ! 2905: * final.c (profile_function): Specify return type. ! 2906: (get_attr_length): Added a return statement to prevent warnings. ! 2907: ! 2908: * final.c (final_scan_insn): Switch to .text section before output ! 2909: of jumptable lable (if requested by JUMP_TABLES_IN_TEXT_SECTION). ! 2910: Don't switch sections again after the label. ! 2911: ! 2912: * configure (i386-*-sysv*): Configuration deleted. ! 2913: (i386-*-sysv3, i386-*-sysv4, i860-*-sysv3, i860-*-sysv4): ! 2914: Added assignment to `tmake_file' (to pick up def of EXTRA_PARTS). ! 2915: (i860-*-sysv3, i860-*-sysv4): Added assignment to `xmake-file'. ! 2916: (i860-*-sysv3): Deleted bogus GAS related stuff. ! 2917: ! 2918: * combine.c (combinable_i3pat): Added explicit return type. ! 2919: ! 2920: * i860.h (TARGET_FPU): Deleted this target flag. i860 fpu is on chip. ! 2921: (TARGET_XP): New target flag for XR and XP models. ! 2922: (TARGET_FLAGS, HARD_REGNO_MODE_OK): Adjusted for above changes. ! 2923: (REG_ALLOC_ORDER): Use first the regs less likely for other purposes. ! 2924: (LITERAL_COMPARE_BETTER_UNSIGNED): Defined. ! 2925: (BRANCH_COST): Defined. ! 2926: (CC_ONLY_*): Deleted these obsolete defines. ! 2927: (CC_NEGATED): Added for IEEE behavior with cmpgesf and cmplesf. ! 2928: (ASM_OUTPUT_CASE_LABEL): ! 2929: Added .align so assembler doesn't barf on subsequent .long(s). ! 2930: (FLOAT_TYPE_VALUE, INTIFY, FLOATIFY, FLOAT_ARG_TYPE): ! 2931: Added definitions needed to build a useable gnulib1 library. ! 2932: ! 2933: * i860.md: Removed all references to CC_ONLY_* symbols. ! 2934: (cmpledf, cmpgedf): Adjusted assembler code as suggested ! 2935: by i860 manuals, for IEEE results. ! 2936: (cbranch, flipped_cbranch, inverse_cbranch, flipped_inverse_cbranch): ! 2937: Check for CC_NEGATED. ! 2938: (bte, btne patterns): Complete rewrite. ! 2939: (anonymous sign-extend patterns): Moved before the named patterns. ! 2940: ! 2941: * i860.md (addsi3, subsi3): Disparaged alternatives with a floating- ! 2942: pointer input register to avoid complicated reloading problem. ! 2943: (negsi2): Deleted bogus `I' constraint on operand 1. ! 2944: (divdf3, divsf3): Added additional continuation characters ! 2945: needed to make lines acceptable to `read_rtx' in the gen* programs. ! 2946: ! 2947: * i860.c: Include "flags.h" to get access to `optimize' flag. ! 2948: (leaf_function_p): Added extern declaration. ! 2949: (zero_operand): New function. ! 2950: (must_preserve_r1, must_preserve_bytes): New variables. ! 2951: (function_prologue, function_epilogue): ! 2952: Support treatment of return-address reg (r1) in leaf functions. ! 2953: ! 2954: * i860v4.h (CPP_PREDEFINES): Add pre-assertions for i860/svr4. ! 2955: (CPP_SPEC): Deleted definition. ! 2956: (TYPE_OPERAND_FMT): New definition. ! 2957: (ASM_OUTPUT_FUNCTION_PREFIX): #undef before defining. ! 2958: (ASM_OUTPUT_EPILOGUE_SUFFIX): Deleted obsolete macro. ! 2959: (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP, ! 2960: TDESC_SECTION_ASM_OP, EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS, ! 2961: TDESC_SECTION_FUNCTION): Definitions added. ! 2962: ! 2963: * i860v3.h: Complete rewrite. Uses svr3.h. ! 2964: ! 2965: * i386v4.h: Don't include i386v.h. Include i386.h instead. ! 2966: (SDB_DEBUGGING_INFO): #undef deleted. ! 2967: (ASM_OUTPUT_DWARF_STRING): Added definition. ! 2968: ! 2969: * gcc.c (default_compilers): Pass -g* options to cpp. ! 2970: ! 2971: * gcc.c (do_spec_1): Don't duplicate -A options in CPP_PREDEFINES. ! 2972: ! 2973: * gnulib2.c (exit, __main, __do_global_dtors, __do_global_ctors): ! 2974: New functions. ! 2975: ! 2976: * i386.h (PRINT_IMMED_PREFIX, PRINT_OFFSET_PREFIX): ! 2977: Define here, and use IP. ! 2978: ! 2979: * i386.h: Don't include syms.h or define FILNMLEN. ! 2980: ! 2981: * x-i860v3, x-i860v4: New files. ! 2982: * x-i386v4 (CCLIBFLAGS, GCC_CFLAGS): Added definitions. ! 2983: ! 2984: * xm-svr3.h: New file. ! 2985: * xm-i86v3.h, xm-i86v4.h, xm-i386v.h: Rewritten. ! 2986: * xm-i38v4.h: New file. ! 2987: ! 2988: * svr4.h (LIB_SPEC): Make crtend.o come before any *crtn.o ! 2989: file (to avoid hitting return without standard epilogue in .init code). ! 2990: (INIT_SECTION_ASM_OP): Added definition for crtstuff.c (and friends). ! 2991: (CTORS_SECTION_FUNCTION, DTORS_SECTION_FUNCTION): ! 2992: Adjusted indentation of continuations to match those in rest of file. ! 2993: ! 2994: * svr3.h (CPP_PREDEFINES): Don't define this here. ! 2995: (ASM_FILE_START_1): Provide no-op default definition. ! 2996: (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Undef these before defining. ! 2997: (INT_ASM_OP, USE_CONST_SECTION, INIT_SECTION_ASM_OP, ! 2998: CONST_SECTION_ASM_OP, CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP, ! 2999: EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS, READONLY_DATA_SECTION, ! 3000: CONST_SECTION_FUNCTION, CTORS_SECTION_FUNCTION, DTORS_SECTION_FUNCTION, ! 3001: ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR, SELECT_SECTION, ! 3002: SELECT_RTX_SECTION): Definitions added. ! 3003: ! 3004: Sun Dec 8 15:27:56 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 3005: ! 3006: * next.c (handle_pragma): Use get_directive_line. ! 3007: ! 3008: * gnulib2.c (__do_global_dtors, __do_global_ctors): ! 3009: Remove the feature to control the order of execution. ! 3010: This is not a clean solution to the overall problem. ! 3011: ! 3012: Sun Dec 8 14:47:44 1991 Michael Meissner (meissner at osf.org) ! 3013: ! 3014: * mips-tfile.c (toplevel, add_local_symbol, parse_stabs_common): ! 3015: More changes for smuggling stabs through from [email protected] and ! 3016: [email protected]. ! 3017: ! 3018: * mips.h (ignore_line_number): New global, set when we must avoid ! 3019: putting out a MIPS ECOFF .loc because the file changed inside of a ! 3020: function, and we are also putting out stabs, which can handle this. ! 3021: (ASM_STABS_OP, ASM_STABN_OP, ASM_STABD_OP): Define to put a comment ! 3022: in front of the pseudo op, if we are encapsulating stabs in MIPS ! 3023: ECOFF. ! 3024: (ASM_OUTPUT_SOURCE_FILENAME): Change to call mips_output_filename. ! 3025: (ASM_OUTPUT_SOURCE_LINE): change to call mips_output_lineno. ! 3026: ! 3027: * mips.c (toplevel): Include stab.h for encapsulating stabs. ! 3028: (ignore_line_number): New global variable. ! 3029: (reg_or_0_operand): Call register_operand for REG's as well as ! 3030: SUBREG's. ! 3031: (override_option): Don't allow ints in FP registers unless -mdebugh. ! 3032: (mips_output_filename): New function to write the filename to the ! 3033: assembler output. Add special support for encapsulating .stabs in ! 3034: MIPS ECOFF. ! 3035: (mips_output_lineno): New function to write the line number to the ! 3036: assembler output. Add special support for encapsulating .stabs in ! 3037: MIPS ECOFF. ! 3038: (function_epilogue): Clear ignore_line_number. ! 3039: ! 3040: * mips.md (fix_trunc??si_opt, mov??_internal): Change '!' constraint ! 3041: back to '*'. ! 3042: ! 3043: Sat Dec 7 16:58:57 1991 Ken Raeburn ([email protected]) ! 3044: ! 3045: * cp-spew.c (scan_tokens): Stop scanning at semi-colon. ! 3046: ! 3047: * cp-spew.c: Made SPEW_DEBUG code useable: ! 3048: (yylex): Use stderr in SPEW_DEBUG code. ! 3049: (yytags): Deleted table. ! 3050: (debug_yychar): Print to stderr, and don't try finding translations ! 3051: for values over 256. ! 3052: ! 3053: * cp-class.c (push_lang_context): Fix typo in comment. ! 3054: ! 3055: * cp-decl.c (finish_decl): Undo `pushclass' done in start_decl for ! 3056: top-level decls of methods. ! 3057: ! 3058: * cp-lex.c (restore_pending_input): Cast 0 to pointer type for ! 3059: obstack_free. ! 3060: ! 3061: * cp-pt.c (do_pending_expansions): Use TREE_USED instead of ! 3062: TREE_ADDRESSABLE for functions. Put in comments explaining why we ! 3063: compile unused methods of classes that are interface-unknown: the ! 3064: file initializer/cleanup functions might need them. ! 3065: (mumblefrotz): Delete unused function; this code is in cp-parse.y. ! 3066: ! 3067: Sat Dec 7 15:46:55 1991 Timothy Moore ([email protected]) ! 3068: ! 3069: * function.c: Handle ARGS_GROW_DOWNWARD. ! 3070: (pad_below, pad_to_arg_alignment, round_down): New subroutines. ! 3071: (locate_and_pad_parm): Use them, for the existing case. ! 3072: Also handle the ARGS_GROW_DOWNWARD case, using them. ! 3073: ! 3074: Sat Dec 7 15:46:55 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 3075: ! 3076: * tree.h (DECL_ARG_TYPE_AS_WRITTEN): New macro. ! 3077: * c-decl.c (grokdeclarator): Store value there. ! 3078: ! 3079: * m68k.c (output_function_prologue, output_function_epilogue): ! 3080: Support MOTOROLA syntax. ! 3081: ! 3082: * toplev.c (main): Testing for -ggdb catches -g also. ! 3083: Default use_gdb_dbx_extensions to 1 for -gstabs, 0 for -gdbx. ! 3084: Specified default is for -g. ! 3085: ! 3086: * cccp.c (handle_directive): Store start address in directive_start. ! 3087: (do_xifdef): Use that, checking if at start of file. ! 3088: (do_endif): Compute ep properly. ! 3089: ! 3090: * protoize.c (abspath): Fix errors referencing argument cwd. ! 3091: (main): Allocate big enough buffer for getcwd. ! 3092: Don't clobber varargs_style_indicator, copy it. ! 3093: (savestring): New function. ! 3094: ! 3095: Sat Dec 7 00:53:16 1991 Ron Guilmette (rfg at ncd.com) ! 3096: ! 3097: * c-decl.c (warn_redundant_decls, warn_nested_externs): New vars. ! 3098: (c_decode_option): Support -Wredundant-decls and -Wnested-externs. ! 3099: (pushdecl): Print those warnings. ! 3100: * c-tree.h (warn_redundant_decls, warn_nested_externs): Declared. ! 3101: ! 3102: * c-decl.c (pending_xref_error, c_mark_varargs): Added return type. ! 3103: ! 3104: * cccp.c (main): Added code to support the presence of -A (assertion) ! 3105: options within CPP_PREDEFINES. ! 3106: ! 3107: * c-lang.c: Minor cleanups. ! 3108: ! 3109: * c-lex.c (check_newline): Added support for the -g3 option. ! 3110: ! 3111: * dwarfout.c (type_tag): Fixed bug in gcc Dwarf generation for ! 3112: tagged types. ! 3113: ! 3114: * dwarfout.c (output_decl): Added two pre-checks to see if nodes ! 3115: are ERROR_MARK nodes before using them. ! 3116: ! 3117: * dwarfout.c (generate_new_sfname_entry): Function added. ! 3118: ! 3119: * dwarfout.c (lookup_filename): Call generate_new_sfname_entry ! 3120: as soon as each new source filename is added to the list of ! 3121: known filenames (thus avoiding an m68k forward-ref assembler bug). ! 3122: ! 3123: * dwarfout.c (dwarfout_line): Initialize prev_file_entry_num to ! 3124: (unsigned) -1 rather than zero to avoid bogus suppression of ! 3125: first .debug_sfnames section entry. ! 3126: ! 3127: * dwarfout.c (compare_filename_entries): Function deleted. (It's ! 3128: no longer needed.) ! 3129: ! 3130: * dwarfout.c (dwarfout_finish): Don't generate .debug_sfnames ! 3131: section entries here anymore. (See lookup_filename.) ! 3132: ! 3133: * Makefile.in (realclean): Delete c-parse.h. ! 3134: Delete objc-parse.output just once. ! 3135: ! 3136: Fri Dec 6 17:49:28 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 3137: ! 3138: * cse.c (FIXED_BASE_PLUS_P): The frame or argument pointer itself is ! 3139: a fixed address. ! 3140: (find_comparison_args): If we find something equivalent to a ! 3141: fixed address, return the fixed address. ! 3142: ! 3143: * combine.c (try_combine): Don't access new_i2_notes if it hasn't been ! 3144: defined (it isn't defined unless newi2pat != 0). ! 3145: ! 3146: Fri Dec 6 16:01:02 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) ! 3147: ! 3148: * rtl.h (enum reg_note): Define two new values REG_DEP_ANTI, ! 3149: REG_DEP_OUTPUT, which are used to mark LOG_LINKS. ! 3150: * rtl.c (reg_note_name): Likewise. ! 3151: (add_dependence): Return void. New parameter DEP_TYPE to indicate ! 3152: type of dependence. ! 3153: ! 3154: * sched.c: Major rewrite to delete much obsolete code, correct many ! 3155: comments, delete unused variables, etc. Modify all callers of ! 3156: add_dependence to pass new argument. Significant changes are: ! 3157: (reassign_dependence): Deleted, was unnecessary. ! 3158: (priority): Account for type of dependence when calculating ! 3159: priority. ! 3160: (flush_pending_lists): New function. Encapsulate code which makes ! 3161: dependencies between an INSN and every insn on the ! 3162: pending_read_insns and pending_write_insns lists. ! 3163: (rank_for_schedule): Account for type of dependence with last ! 3164: scheduled insn when deciding which ready insn to schedule next. ! 3165: (launch_link): Give all birthing insns the same priority. ! 3166: (schedule_block): Only sort the ready list once, after all ready ! 3167: insns have been added to it. ! 3168: (schedule_block): When deciding what REG_DEAD notes are needed on a ! 3169: just scheduled insns, process all sets first (sched_note_set) then ! 3170: process all uses (attach_deaths_insn). ! 3171: (attach_deaths): Simplified by above change. ! 3172: (sched_note_set): Likewise. ! 3173: (update_flow_info): Renamed from update_links, since it no longer ! 3174: does anything with LOG_LINKS. Sched_analyze_insn creates all ! 3175: necessary new LOG_LINKS already. ! 3176: (schedule_insn): Delete no op move insns after reload. ! 3177: ! 3178: Fri Dec 6 13:33:48 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 3179: ! 3180: * crtstuff.c: Give permission to link with non-free programs. ! 3181: ! 3182: * toplev.c (flag_inhibit_size_directive): New var and -f option. ! 3183: * svr4.h (ASM_DECLARE_OBJECT_NAME, ASM_DECLARE_FUNCTION_SIZE): Use it. ! 3184: * Makefile.in (crtbegin.o, crtend.o): Use that option. Use -g1. ! 3185: ! 3186: Fri Dec 6 08:42:53 1991 Ron Guilmette (rfg at ncd.com) ! 3187: ! 3188: * Makefile.in (STAGESTUFF): Added __main and _exit to support g++. ! 3189: ! 3190: * c-common.c (c_expand_expr_stmt): Made return type explicit. ! 3191: ! 3192: * c-common.c: (get_directive_line): Function added to support -g3. ! 3193: ! 3194: Fri Dec 6 04:50:39 1991 Michael Tiemann (tiemann at cygnus.com) ! 3195: ! 3196: * cp-tree.h (OPERATOR_ASSIGN_CHARS_P): Flushed. ! 3197: * cp-decl.c (grok_op_properties): Flush OPERATOR_ASSIGN_CHARS_P. ! 3198: * cp-init.c (add_{friend,friends}): Ditto. ! 3199: ! 3200: Thu Dec 5 22:31:12 1991 Jeffrey A Law (law at super.super.org) ! 3201: ! 3202: * m68k.h (CONST_COSTS): Show that constants which can be easily ! 3203: generated are less expensive than most. ! 3204: ! 3205: * m68k.md (movsi): Use two instruction sequences to load constants ! 3206: which are just outside moveq's range (within 8 of moveq's range). ! 3207: Likewise for positive even constants within twice moveq's range. ! 3208: ! 3209: Thu Dec 5 20:17:13 1991 Eric Youngdale (youngdale at v6550c.nrl.navy.mil) ! 3210: ! 3211: * config-gcc.com: Generate a file 'version.opt' which will be given ! 3212: to the VMS linker to put the gcc version number in the image ! 3213: header version number field. ! 3214: ! 3215: * make-cc1.com: Compile c-lex.c when building gcc and objc, and ! 3216: add c-lex.obj to the list of files given to the linker. ! 3217: Add version.opt to the list of files given to the linker. ! 3218: ! 3219: * make-cccp.com: Add version.opt to the list of files given to the ! 3220: linker. ! 3221: ! 3222: Thu Dec 5 23:04:20 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 3223: ! 3224: * combine.c (make_extraction): Don't make a STRICT_LOW_PART of a MEM; ! 3225: clean up comments so they agree with the code. ! 3226: ! 3227: * combine.c (try_combine): Correct test for when we can safely change ! 3228: the mode of a pseudo; can't if it doesn't die in I3. ! 3229: ! 3230: * c-decl.c (WCHAR_TYPE_SIZE): Deleted; never used. ! 3231: * c-common.c (WCHAR_TYPE_SIZE, WCHAR_BYTES): Deleted, no longer needed. ! 3232: (combine_strings): Use size of `wchar_type_node' to get number of ! 3233: bytes in wchar_t. ! 3234: * next.h (WCHAR_TYPE_SIZE): Delete; no longer used. ! 3235: ! 3236: * cse.c (cse_main): Add new argument to cse_basic_block_call. ! 3237: Don't call cse_around_loop here. ! 3238: (cse_basic_block): Call cse_around_loop from here while we still ! 3239: have our arrays allocated. ! 3240: ! 3241: * combine.c (simplify_comparison): Fix error in last change; don't ! 3242: reference TEM before it is set. ! 3243: ! 3244: * toplev.c (fatal_insn_not_found): Flush all files before aborting. ! 3245: ! 3246: Thu Dec 5 21:42:29 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 3247: ! 3248: * objc-actions.c (build_objc_method_call): Eval OBJECT and SELECTOR ! 3249: only once. Always pass self_decl as self to the method. ! 3250: ! 3251: Thu Dec 5 14:52:16 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) ! 3252: ! 3253: * ccrtstuff.c, gnulib2.c, protoize.c: Include tm.h not config.h, ! 3254: since these are complied for the target, host defines do not apply. ! 3255: ! 3256: Thu Dec 5 14:52:24 1991 Michael Meissner (meissner at osf.org) ! 3257: ! 3258: * dbxout.c (ASM_STABS_OP, ASM_STABN_OP, ASM_STABD_OP): If ! 3259: not defined, define as .stabs/.stabn/.stabd respectively. Change ! 3260: all places emitting stabs to use the macros. ! 3261: * cp-decl2.c: Ditto. ! 3262: * cp-gc.c: Ditto. ! 3263: * final.c: Ditto. ! 3264: * varasm.c: Ditto. ! 3265: * gcc.texinfo: Document ASM_STAB[DNS]_OP macros. ! 3266: ! 3267: Thu Dec 5 12:03:40 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 3268: ! 3269: * gcc.c (process_command): Don't put `.' on startfile_prefix. ! 3270: Cast result of alloca. ! 3271: ! 3272: * config/*.h (ASM_OUTPUT_ASCII): Put parens around all uses of args. ! 3273: ! 3274: * hp800.h, hp800.c, hp800.md, xm-hp800.h: New files. ! 3275: * va-hp800.h: New file. ! 3276: * gvarargs.h: Use va-hp800.h if needed. ! 3277: * config.subr, configure: Add alternatives for hp800, hp700. ! 3278: ! 3279: Thu Dec 5 09:35:15 1991 Michael Tiemann (tiemann at cygnus.com) ! 3280: ! 3281: * cp-search.c (note_debug_info_needed): Do the right thing for ! 3282: static member functions. ! 3283: ! 3284: Thu Dec 5 01:25:13 1991 Michael Tiemann (tiemann at mole.gnu.ai.mit.edu) ! 3285: ! 3286: * version.c: Now 1.96. ! 3287: ! 3288: Wed Dec 4 23:17:23 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 3289: ! 3290: * reorg.c (try_merge_delay_insns, fill_simple_delay_slots): Correctly ! 3291: update NEXT_TRIAL after possibly splitting an insn. ! 3292: ! 3293: Wed Dec 4 17:03:11 1991 Jim Wilson (wilson at sphagnum.cygnus.com) ! 3294: ! 3295: * gplus.gperf: Add throw and template keywords. Update private, ! 3296: protected, and public definitions. ! 3297: ! 3298: * print-tree.c (print_node): Add missing indentation argument to ! 3299: print_node call for values field. ! 3300: ! 3301: Wed Dec 4 18:39:33 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 3302: ! 3303: * objc-actions.c (build_objc_method_call): Define as static. ! 3304: ! 3305: Wed Dec 4 17:04:49 1991 Michael Meissner (meissner at osf.org) ! 3306: ! 3307: * mips-tfile.c (add_varray_page, alloc_type enum): Keep track of how ! 3308: many pages we allocated for varrays as well as the small stuff. ! 3309: (stabs_filename): New static to hold the special filename used for ! 3310: passing stabs through. ! 3311: (parse_stabs_common, parse_stabs, parse_stabn): New functions to ! 3312: smuggle stabs through to the debugger. Stabs must be commented out, ! 3313: just like the other debug directives. ! 3314: (add_local_symbol): Check hash_ptr to see if it's null before ! 3315: storing into it, in case no name is passed. ! 3316: (add_file): Add support for the special stabs file. ! 3317: (copy_object): Before copying the external symbols, figure out the ! 3318: file indexes of each of the files, and then explicitly remap the ! 3319: original file indexes of the external symbol to be the new file ! 3320: index. If this isn't done, then bad file numbers can get generated ! 3321: if a filename is repeated. ! 3322: (various): Change the name of small_alloc to alloc_counts, since we ! 3323: now track large memory allocations as well. ! 3324: ! 3325: * mips-tdump.c (toplevel): Delete unnecessary include file stamp.h. ! 3326: ! 3327: Wed Dec 4 11:05:04 1991 Michael Collison (collison at osf.org) ! 3328: ! 3329: * encore.h (ASM_OUTPUT_LABELREF_AS_INT): add definition ! 3330: * ns32k.h: ditto ! 3331: ! 3332: * ns32k.h (ASM_OUTPUT_LABEL, ASM_GLOBALIZE_LABEL): If COLLECT is ! 3333: defined provide alternate definitions ! 3334: ! 3335: * encrose.h (ASM_OUTPUT_INT): If COLLECT is defined provide ! 3336: alternate definition ! 3337: ! 3338: Wed Dec 4 01:39:07 1991 Ken Raeburn ([email protected]) ! 3339: ! 3340: * cp-pt.c (end_template_decl): For method templates, pop the class ! 3341: binding level before the others rather than after. ! 3342: ! 3343: * cp-class.c: Added DEBUG_CP_BINDING_LEVELS code. Include cp-decl.h ! 3344: if that symbol is defined, but don't list it in Makefile.in since ! 3345: that's not the normal mode. ! 3346: (pushclass): Print messages and frob indentation level. ! 3347: (popclass): Likewise. ! 3348: ! 3349: * cp-spew.c (yylex): If identifier_type says PTYPENAME, and ! 3350: following token is "<", force looking_for_typename to be ! 3351: non-negative. ! 3352: ! 3353: * cp-pt.c (mangle_class_name_for_template): Drop extra spaces ! 3354: between last parm and closing ">". Print a message before aborting ! 3355: if a parm type isn't handled. ! 3356: ! 3357: * cp-decl.c (maybe_globalize_type): Don't do it if the identifier ! 3358: that names the type doesn't currently have a type value. ! 3359: ! 3360: Wed Dec 4 01:06:28 1991 Michael Tiemann (tiemann at cygnus.com) ! 3361: ! 3362: * cp-decl.c (finish_enum): Call `rest_of_type_compilation' for ! 3363: ENUMTYPE. ! 3364: * cp-class.c (finish_struct): Ditto. ! 3365: * cp-decl.c (pushtag): Set TYPE_STUB_DECL. ! 3366: * cp-search.c (note_debug_info_needed): Call ! 3367: `rest_of_type_compilation' if we notice we need debug info for TYPE. ! 3368: * dbxout.c (dbxout_init): Fix typo in comment. ! 3369: ! 3370: * cp-parse.y (DOT_STAR): New token. ! 3371: (expr_no_commas): Handle DOT_STAR expressions. ! 3372: * cp-lex.c (real_yylex): Recognize DOT_STAR. Also, rearrange ! 3373: scanner to make it more efficient. ! 3374: ! 3375: * cp-decl.c (maybe_build_cleanup): When building cleanups, pass ! 3376: TYPE_MAIN_VARIANT to `build_delete'. ! 3377: ! 3378: Tue Dec 3 22:52:33 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) ! 3379: ! 3380: * flow.c (mark_set_1): Make a REG_UNUSED note not a REG_DEAD note ! 3381: for the part of multi-word hard registers not needed. ! 3382: ! 3383: Tue Dec 3 22:34:13 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 3384: ! 3385: * configure: Support --objdir. ! 3386: ! 3387: * objc-parse.y: Get rid of many static decls. ! 3388: Reorder all token definitions to match c-parse.y. ! 3389: (recognize_objc_keyword): New function. ! 3390: * c-lex.c (token_buffer): No longer static. ! 3391: (yylex): For @, call recognize_objc_keyword. Don't use keyword table. ! 3392: * c-lang.c (recognize_objc_keyword): Dummy definition. ! 3393: ! 3394: * objc-actions.c (build_objc_method_call) [!NEXT_OBJC_RUNTIME]: ! 3395: Pass selector as arg to the method. ! 3396: Always cast the method to a function type. ! 3397: ! 3398: * xm-sparc.h (alloca): If using Sun CC, include alloca.h. ! 3399: If using GCC, define as __builtin_alloca the way other machines do. ! 3400: ! 3401: * cccp.c (print_containing_files): Print the nominal file names. ! 3402: ! 3403: Tue Dec 3 16:54:04 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 3404: ! 3405: * jump.c (jump_optimize): If branches are expensive, convert jumps ! 3406: around increments or decrements by one into an increment by the ! 3407: conditional expression. ! 3408: ! 3409: * combine.c (simplify_comparison): Don't remove a SUBREG unless ! 3410: it doesn't affect either operand. ! 3411: ! 3412: * cse.c (find_comparison_args): Rework so that we can correctly ! 3413: fold comparisons on machines that set CC0 to the result of a ! 3414: condition test, not just a COMPARE. ! 3415: (cse_insn): Don't set THIS_INSN_CC0 to a constant if we don't know ! 3416: its mode. ! 3417: ! 3418: Tue Dec 3 12:01:12 1991 Jim Wilson (wilson at sphagnum.cygnus.com) ! 3419: ! 3420: * mips.md: Use AND not IOR in define_function_unit definitions. ! 3421: Correct setting of MODE attribute in various insn patterns. ! 3422: ! 3423: Tue Dec 3 08:31:18 1991 Michael Tiemann (tiemann at cygnus.com) ! 3424: ! 3425: * cp-spew.c (scan_tokens): Delete Dec 2 change. ! 3426: (yylex): Instead, copy TMP_TOKEN.YYLVAL.TTYPE if it was allocated on ! 3427: the wrong obstack. ! 3428: (probe_obstack): New function to support the above change. ! 3429: ! 3430: * cp-tree.h (CLASSTYPE_DEBUG_REQUESTED): New flag. ! 3431: (CLASSTYPE_ASM_WRITTEN): Deleted. ! 3432: cp-class.c (finish_struct): Now almost always assume that classes ! 3433: with methods are to ignored for debugging purposes. ! 3434: cp-search.c (dfs_debug_{mark,unmarkedp}): Rewritten to handle new ! 3435: algorithm for minimizing debug output. ! 3436: ! 3437: * cp-decl2.c (constructor_name): Handle case when THING is a ! 3438: UNION_TYPE. ! 3439: ! 3440: Tue Dec 3 06:35:38 1991 Michael Tiemann (tiemann at cygnus.com) ! 3441: ! 3442: * jump.c (duplicate_look_exit_test): If REG_MAP is non-zero, call ! 3443: replace_regs on the REG_NOTES of COPY. ! 3444: ! 3445: * cp-spew.c (scan_tokens): Don't read past '='. ! 3446: ! 3447: * cp-call.c (compute_conversion_costs): For now, treat ! 3448: CONTRAVARIANCE_HARSHNESS as EVIL_HARSNESS, since we cannot tell the ! 3449: difference between when we should accept it (pointers to the right ! 3450: sort of methods) and when we shouldn't (base* to derived* ! 3451: conversions). ! 3452: ! 3453: Mon Dec 2 18:53:42 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) ! 3454: ! 3455: * cse.c (cse_around_loop): Fix typo in comment. ! 3456: * dbxout.c (dbxout_type_fields): Likewise. ! 3457: ! 3458: * sched.c (sched_analyze_1): Pass the second and third args of a ! 3459: ZERO_EXTRACT or SIGN_EXTRACT in the SET_DEST to sched_analyze_2. ! 3460: ! 3461: * combine.c (make_compound_operation): Change (lshiftrt (ashift ...)) ! 3462: to a ZERO_EXTRACT, not a SIGN_EXTRACT. ! 3463: ! 3464: Mon Dec 2 15:09:13 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 3465: ! 3466: * jump.c (jump_optimize): New arg AFTER_REGSCAN. ! 3467: If not set, don't use duplicate_loop_exit_test. ! 3468: * toplev.c (compile_file): Pass new arg to jump_optimize. ! 3469: ! 3470: * next.h (SELECT_SECTION): Test TREE_CONSTANT as well as TREE_READONLY. ! 3471: ! 3472: * xm-i86v[34].h: Renamed from xm-i860v[34].h. ! 3473: * configure: Corresponding changes. ! 3474: ! 3475: * m68k.c (output_function_epilogue): Put %R on all regs in asm_fprintf. ! 3476: ! 3477: * t-decstatn (ld): Just copy collect2. ! 3478: (collect): Target deleted. ! 3479: (EXTRA_PASSES): Deleted collect. ! 3480: (mips-tfile, mips-tdump): Depend on LIBDEPS. ! 3481: * t-mips (mips-tfile, mips-tdump): Depend on LIBDEPS. ! 3482: * collect2.c (main): Run /bin/ld. ! 3483: Use fatal_perror where appropriate. ! 3484: ! 3485: * objc-actions.c (build_message_expr): Fix typo. ! 3486: ! 3487: * configure: Add missing fi to finish last change. ! 3488: ! 3489: * cse.c (simplify_binary_operation): Restore missing break in case DIV. ! 3490: ! 3491: * sdbout.c (sdbout_init): Explicitly do nothing. ! 3492: (sdbout_typedefs): Function deleted. ! 3493: ! 3494: Mon Dec 2 12:504:35 1991 Eric Youngdale (youngdale at v6550c.nrl.navy.mil) ! 3495: ! 3496: * config-gcc.com: Finish changeover from tm-*.h to *.h. ! 3497: ! 3498: Sun Dec 1 05:18:32 1991 Michael Tiemann (tiemann at cygnus.com) ! 3499: ! 3500: * cp-search.c (lookup_{field,fnfields}): If PROTECT is 0, don't ! 3501: memoize the entry we find. ! 3502: ! 3503: * cp-decl.c (grokvardecl): Call `build_lang_field_decl' instead of ! 3504: `build_decl' if we retroactively allocate a VAR_DECL. ! 3505: ! 3506: Sun Dec 1 00:10:18 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 3507: ! 3508: * configure: Convert option syntax from + to --. ! 3509: Support --target. ! 3510: ! 3511: * i386v4.h (ASM_OUTPUT_LOCAL, ASM_OUTPUT_GLOBAL): Deleted. ! 3512: (ASM_FILE_START): Deleted. ! 3513: (STARTFILE_SPEC, LIB_SPEC, STANDARD_STARTFILE_PREFIX): Deleted. ! 3514: (STDC_VALUE): Deleted. ! 3515: ! 3516: * real.h (REAL_VALUE_TRUNCATE): Check for same size as SFmode. ! 3517: ! 3518: * config/*.h: Renamed from tm-*.h. #includes and comments changed. ! 3519: * configure: Changed accordingly. ! 3520: * t-*: tm-*.h file names changed. ! 3521: ! 3522: * gnulib2.c (__enable_execute_stack): Renamed function. ! 3523: * convex.h (INITIALIZE_TRAMPOLINE): Use new name. ! 3524: ! 3525: Sun Dec 1 08:57:45 1991 Michael Meissner (meissner at osf.org) ! 3526: ! 3527: * cccp.c (main): Add cast in front of alloca for non GCC compilers. ! 3528: ! 3529: Sat Nov 30 22:33:24 1991 Chris Smith ([email protected]) ! 3530: ! 3531: * config.subr: Recognize -c3*. ! 3532: New alternatives for convex-c3*. ! 3533: * configure: Alternatives for convex rewritten. ! 3534: ! 3535: * gnulib2.c (__execute_enable_stack): New function for Convex only. ! 3536: ! 3537: * gcc.c (do_spec_1): Use \ as quoting char. ! 3538: ! 3539: * convex.h (TARGET_SWITCHES): Add new machine types c32, c34, c38. ! 3540: Add flag TARGET_INDIRECTS, true for c1 and c2, false for c3. ! 3541: * convex.h (GO_IF_LEGITIMATE_ADDRESS): Avoid indirect ! 3542: addressing if ! TARGET_INDIRECTS. ! 3543: ! 3544: * convex.h: (BITS_PER_WORD, UNITS_PER_WORD, WORDS_BIG_ENDIAN): ! 3545: It now works to describe machine correctly. ! 3546: ! 3547: * convex.h (SIZE_TYPE, PTRDIFF_TYPE): Make them ints rather ! 3548: than longs to match usage in /usr/include. ! 3549: ! 3550: * convex.h (enum reg_class): Add classes SP_REGS, the stack ! 3551: pointer, and INDEX_REGS, the remaining A_REGS. ! 3552: (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS): Adjust ! 3553: for new classes. ! 3554: (INDEX_REG_CLASS, BASE_REG_CLASS): Use INDEX_REGS so gcc will ! 3555: not index off the stack pointer (register 0). ! 3556: ! 3557: * convex.h (TRAMPOLINE_TEMPLATE, TRAMPOLINE_SIZE, ! 3558: INITIALIZE_TRAMPOLINE): Define. ! 3559: ! 3560: * convex.h (INITIAL_FRAME_POINTER_OFFSET): Define. ! 3561: ! 3562: * convex.h (RTX_COSTS): Specify costs to prevent multiply ! 3563: from being synthesized from shifts (which aren't faster). ! 3564: ! 3565: * convex.h (NOTICE_UPDATE_CC): No need to do CC_STATUS_INIT, ! 3566: cc is never looked at. ! 3567: ! 3568: * convex.h (VTABLE_USES_MASK, VINDEX_MASK, SET_DECL_VINDEX): ! 3569: define so g++ works. ! 3570: ! 3571: * convex.h: If COLLECT is defined, define output macros for ! 3572: collect to call. ! 3573: ! 3574: * convex*.h: If !traditional, define _LONGLONG and 64-bit ! 3575: typedefs to prevent types.h from murdering ansi compilations. ! 3576: ! 3577: * convex.md (movsi): split into define_expand and two ! 3578: anonymous define_insns, one that uses indirection and ! 3579: one that doesn't. TARGET_INDIRECTS selects which. ! 3580: ! 3581: * convex.c (output_call): New routine. Scan forward from call ! 3582: to decide if AP is live, omit AP reload if not. ! 3583: * convex.md (call, call_value): use output_call. ! 3584: ! 3585: * convex.md (bit manipulation peepholes): remove, now done in ! 3586: combine. ! 3587: ! 3588: * convex.md (indirect_jump): Define. ! 3589: ! 3590: * convex.c (const_double_{high,low}_int): Just return the ! 3591: appropriate word, remove slow float computations. ! 3592: ! 3593: * math-convex: New file to use builtin instructions. ! 3594: ! 3595: * x-convex: Use cc -pcc to bootstrap gcc. ! 3596: ! 3597: Sat Nov 30 10:21:26 1991 Ron Guilmette (rfg at ncd.com) ! 3598: ! 3599: * tm-i386v4.h (DBX_REGISTER_NUMBER): Different renumbering. ! 3600: ! 3601: * tm-svr4.h (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Changed ! 3602: so that the progbits parameter actually appears in the definitions. ! 3603: ! 3604: * tm-svr4.h (CTORS_SECTION_FUNCTION, DTORS_SECTION_FUNCTION): Adapted ! 3605: for change in CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP. ! 3606: ! 3607: Sat Nov 30 07:05:06 1991 Michael Tiemann (tiemann at cygnus.com) ! 3608: ! 3609: * cp-spew.c (follows_{identifier,typename}): New arrays. ! 3610: * cp-spew.c (init_spew): Initialize new arrays. ! 3611: * cp-decl.c (lookup_name): takes new parameter PREFER_TYPE. ! 3612: All callers changed. ! 3613: * cp-spew.c (yylex): Set LOOKING_FOR_TYPENAME every time we see an ! 3614: AGGR or ENUM. ! 3615: ! 3616: * cp-lex.c (real_yylex): When composing EXTERN_LANG_STRING, call ! 3617: `real_yylex', not `yylex'. Changed other places that depended on ! 3618: calling `real_yylex' for their input. ! 3619: ! 3620: * cp-spew.c (scan_tokens): Never read past '{' or ':'. Fill the ! 3621: token buffer with EMPTY tokens in that case. ! 3622: (yylex): Handle EMPTY tokens. ! 3623: ! 3624: * cp-parse.y (structsp): Avoid using `yyungetc' to push a ';' back ! 3625: on the input stream. ! 3626: (START_DECLARATOR): New token. ! 3627: (absdcl): Handle START_DECLARATOR. ! 3628: * cp-spew.c (consume_token): Renamed from `discard_token'. ! 3629: (struct token): Changed structure to make it smaller. ! 3630: (spew_init): Renamed from init_spew. Now called from init_lex. ! 3631: (scan_tokens): Renamed from slurp_next_token. ! 3632: Many functions reformatted to match GCC indentation style. ! 3633: ! 3634: * cp-lex.c (arbitrate_lookup): Don't guess in favor of type if ! 3635: yychar is ')'. ! 3636: ! 3637: * cp-decl.c (lookup_name): Fixed so that all binding levels use ! 3638: `looking_for_typename' consistently. ! 3639: * cp-type2.c (build_functional_cast): Handle new case that we are ! 3640: called in a context where a method is appropriate (but we parsed it ! 3641: as a ctor call). ! 3642: ! 3643: * cp-call.c (CONST_HARSHNESS): Change bit that we test. ! 3644: (convert_harshness,compute_conversion_costs): Call CONST_HARSHNESS ! 3645: consisently when needed. ! 3646: ! 3647: * cp-init.c (decl_constant_value): Keep enabled even when ! 3648: CURRENT_FUNCTION_DECL is null. ! 3649: ! 3650: Sat Nov 30 01:23:38 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 3651: ! 3652: * sdbout.c (sdbout_init): Just call sdbout_one_type on each type. ! 3653: ! 3654: * tm-att386.h (ASM_OUTPUT_ASCII): Output a space after ASM_BYTE_OP. ! 3655: * tm-sun386.h: Likewise. ! 3656: * tm-i386.h (ASM_OUTPUT_BYTE, ASM_OUTPUT_CHAR): Likewise. ! 3657: (ASM_OUTPUT_SHORT, ASM_OUTPUT_LONG, ASM_OUTPUT_DOUBLE): Likewise. ! 3658: (ASM_OUTPUT_FLOAT, ASM_OUTPUT_ADDR_VEC_ELT): Likewise. ! 3659: * tm-att386.h (ASM_BYTE_OP, ASM_SHORT, ASM_LONG, ASM_DOUBLE): ! 3660: Don't end with space. ! 3661: * tm-sun386.h, tm-bsd386.h: Likewise. ! 3662: ! 3663: * c-lex.h: Renamed from c-parse.h. All #includes changed. ! 3664: * c-parse.c, c-parse.h: Renamed from c-parse.tab.*. ! 3665: * Makefile.in: Changed accordingly. ! 3666: (C_OJBS, realclean, TAGS): These changed too. ! 3667: ! 3668: * tm-svr4.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): ! 3669: Undef before defining. ! 3670: ! 3671: * tm-i386v4.h: Include tm-svr4.h. ! 3672: (CPP_PREDEFINES): Define SVR4, and several assertions. ! 3673: (LIB_SPEC): Delete -Qy. LINK_SPEC handles this. ! 3674: (DBX_REGISTER_NUMBER): New macro. ! 3675: ! 3676: Fri Nov 29 22:16:06 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 3677: ! 3678: * rs6000.md: Cannot use "muls" and "muli" to do widening multiply ! 3679: from HImode to SImode; delete the 12 patterns that try to do this. ! 3680: ! 3681: Fri Nov 29 21:32:52 1991 Michael Tiemann (tiemann at cygnus.com) ! 3682: ! 3683: * cp-cvt.c (build_type_conversion): Don't assume that if ! 3684: TYPE_HAS_{INT,REAL}_CONVERSION implies that CLASSTYPE_CONVERSION for ! 3685: the given type combination is non-NULL. ! 3686: ! 3687: Fri Nov 29 16:08:22 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 3688: ! 3689: * crtstuff.c: New file. Needs papers from rfg. ! 3690: * Makefile.in (crtbegin.o, crtend.o): New targets. ! 3691: ! 3692: * objc-actions.c (build_message_expr): Lots of cleanups. ! 3693: (build_objc_method_call): New subroutine. ! 3694: Handles new option NEXT_OBJC_RUNTIME. ! 3695: ! 3696: * expr.c (do_jump): Any LABEL_REF is nonzero. ! 3697: (expand_expr): Construct LABEL_REFs with Pmode. ! 3698: ! 3699: Fri Nov 29 14:43:32 1991 Michael Meissner (meissner at osf.org) ! 3700: ! 3701: * mips-tfile.c (parse_def): Change an error into a warning. ! 3702: ! 3703: * mips.md (fix_trunc??si_opt, mov??_internal): Change '*' constraint ! 3704: to '!' to keep reload from allocating FP registers from holding ! 3705: excess integer values. ! 3706: (ashift right define_splits): Fix typo, so that the long long ! 3707: arithmetic right shifts are recognized. ! 3708: (all define_splits): dummy out constraints, since they are not used. ! 3709: ! 3710: * mips.c (override_options): Allow int's in FP registers again, now ! 3711: that ! constraints are used. ! 3712: ! 3713: Fri Nov 29 13:20:13 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 3714: ! 3715: * dwarfout.c (output_compile_unit_die): Don't include the name ! 3716: of the compiler which compiled the compiler in the AT_producer ! 3717: string. It goofs up comparisons of stage2 & stage3 object files. ! 3718: ! 3719: * c-parse.y, objc-parse.y: Don't declare position_after_white_space ! 3720: as static; it is now in c-lex.c. ! 3721: ! 3722: Fri Nov 29 05:15:26 1991 Michael Tiemann (tiemann at cygnus.com) ! 3723: ! 3724: * cp-decl.c (xref_tag): Check that TREE_CODE (ref) is aggr type ! 3725: before storing into CLASSTYPE_DECLARED_CLASS (ref). ! 3726: ! 3727: * cp-decl2.c (build_push_scope): Don't let non-aggr types appear in ! 3728: `cname::fname' expressions. ! 3729: ! 3730: * cp-class.c (resolves_to_fixed_type_p): VAR_DECL and FIELD_DECL ! 3731: nodes of ARRAY_TYPE may resolved to fixed type. Also handle other ! 3732: cases of WITH_CLEANUP_EXPR. ! 3733: ! 3734: * cp-spew.c (frob_identifier): Handle case of a type conversion ! 3735: operator that converts to a nested type. ! 3736: ! 3737: * cp-expr.c (cplus_expand_expr): In NEW_EXPR case, if ARGS is ! 3738: permanent, build a new arglist instead of modifying it in place. ! 3739: ! 3740: * cp-typeck.c (convert_arguments): Add ??? to comment about virtual ! 3741: function conversions. ??? I don't understand what that code is ! 3742: supposed to do anymore. ! 3743: (comp_target_parms): If STRICT <= 0, accept types whose ! 3744: TYPE_MAIN_VARIANTs are equal. ! 3745: ! 3746: * cp-call.c (convert_harshness): Revamped to handle contravariance ! 3747: better. ! 3748: * cp-class.h (struct candidate): Declaration moved from cp-tree.h. ! 3749: ! 3750: * cp-class.c (duplicate_tag_error): New function. ! 3751: * cp-parse.y (LC): Call it if we're redefining a tag. ! 3752: * cp-decl.c (duplicate_decls): Only copy DECL_ARGUMENTS from OLDDECL ! 3753: if non-NULL. Otherwise we get nonsense when we try to parse ! 3754: inline function bodies of classes that have already been redefined. ! 3755: * cp-lex.c (reinit_parse_for_method): If we get some text for a ! 3756: class that's been redefined, flush the text. ! 3757: * cp-tree.h (TYPE_REDEFINED): New field in `struct lang_type'. ! 3758: ! 3759: * cp-cvt.c (convert_to_integer): Only warn about anachronistic ! 3760: conversion from int to enum if PEDANTIC is nonzero. ! 3761: ! 3762: * cp-typeck.c (convert_for_initialization): No longer give warning ! 3763: messages about bitwise copy: this is currently how the default X(X&) ! 3764: constructor is implemented. ! 3765: * cp-init.c (expand_aggr_init_1): Ditto. ! 3766: ! 3767: * cp-method.c (dump_init): Handle WITH_CLEANUP_EXPR and TARGET_EXPR. ! 3768: * tree.c (simple_cst_equal): Handle WITH_CLEANUP_EXPR. Correct ! 3769: handling of TARGET_EXPR case. ! 3770: ! 3771: * cp-decl.c (grok_reference_init): If DECL is permanent, make it's ! 3772: DECL_REFERENCE_SLOT permanent as well. ! 3773: ! 3774: * cp-cvt.c (build_type_conversion): If PEDANTIC, give message about ! 3775: conversions which cast away const. ! 3776: ! 3777: * cp-decl.c (store_return_init): If PEDANTIC, give error about named ! 3778: return values. ! 3779: ! 3780: * cp-init.c (decl_constant_value): Don't return DECL_INITIAL if ! 3781: CURRENT_FUNCTION_DECL is null or if the initializer is a ! 3782: CONSTRUCTOR. ! 3783: ! 3784: Thu Nov 28 05:29:52 1991 Michael Tiemann (tiemann at cygnus.com) ! 3785: ! 3786: * integrate.c (expand_inline_function): When passing objects by ! 3787: invisible reference, correctly compute the amount of space to be ! 3788: allocated in the pseudo-frame we create for the inline function. ! 3789: ! 3790: * cp-typeck.c (mark_addressable): Add call to ! 3791: `mark_inline_for_output' that got lost in Nov 25 change. ! 3792: ! 3793: * cp-decl.c (push_overloaded_decl): If the value of a name is an ! 3794: ADDR_EXPR, look inside to get the _DECL node. ! 3795: ! 3796: * cp-decl.c (grokdeclarator): Don't convert type of operators new ! 3797: and delete to METHOD_TYPE; they remain FUNCTION_TYPEs. ! 3798: ! 3799: * function.c (expand_function_start): Set TREE_REGDECL bit on ! 3800: RESULT_DECL if result starts life in a register. ! 3801: ! 3802: * c-common.c (truthvalue_conversion): Don't treat a CONVERT_EXPR as ! 3803: a NOP when it or the expression inside it is of REFERENCE_TYPE. ! 3804: ! 3805: * cp-class.c (finish_struct): Test DESTRUCTOR_NAME_P on ! 3806: DECL_ASSMBLER_NAME, not DECL_NAME. ! 3807: ! 3808: Wed Nov 27 13:49:10 1991 Jim Wilson (wilson at sphagnum.cygnus.com) ! 3809: ! 3810: * cse.c (simplify_relational_operation): Correct handling of ! 3811: COMPARE as first argument. Always strip it off. Don't invert ! 3812: return value for EQ when !HAVE_cc0. ! 3813: ! 3814: Thu Nov 28 20:08:15 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 3815: ! 3816: * gmon.c: New file. ! 3817: ! 3818: Thu Nov 28 15:02:24 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 3819: ! 3820: * combine.c (subst, case SET): Never make a paradoxical SUBREG of ! 3821: a REG unless the SUBREG and REG occupy the same number of words. ! 3822: ! 3823: * emit-rtl.c: Include flags.h. ! 3824: (operand_subword): Always look inside floating if -fpretend-float. ! 3825: * final.c (split_double): Likewise. ! 3826: * Makefile.in (emit-rtl.o): Includes flags.h. ! 3827: ! 3828: * c-lex.c (yylex): Add goto to `L' case. ! 3829: ! 3830: Thu Nov 28 08:37:02 1991 Michael Tiemann (tiemann at mole.gnu.ai.mit.edu) ! 3831: ! 3832: * tm-mips.h (ASM_OUTPUT_INT): Use `do {...} while (0)' so it can be ! 3833: used in if/else constructs. ! 3834: ! 3835: Thu Nov 28 00:23:26 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 3836: ! 3837: * tree.h (BUILT_IN_FRAME_ADDRESS, BUILT_IN_RETURN_ADDRESS): ! 3838: New function codes. ! 3839: * c-decl.c (init_decl_processing): Declare the functions. ! 3840: * expr.c (expand_builtin): Implement them. ! 3841: ! 3842: * gcc.c: Pass to ld all the dirs in LIBRARY_PATH: ! 3843: (library_prefix): New list of prefixes. ! 3844: (process_command): Put dirs from LIBRARY_PATH on that list. ! 3845: (do_spec_1): %D outputs those dirs. ! 3846: (link_command_spec): Use %D after passing -L options. ! 3847: ! 3848: * gcc.c (process_command): Don't require machine suffix ! 3849: for dirs from COMPILER_PATH or LIBRARY_PATH. ! 3850: ! 3851: * cccp.c (main): C_INCLUDE_PATH, etc., add dirs rather than replacing. ! 3852: ! 3853: * Use the TYPE_DECLs to drive dbx and sdb output of type tags. ! 3854: * toplev.c (rest_of_type_compilation): New function. ! 3855: (compile_file): Pass list of initial decls to dbxout_init, sdbout_init. ! 3856: (various): Don't call get_*_types. ! 3857: * dbxout.c (dbxout_init): Get initial types from that list. ! 3858: * sdbout.c (sdbout_init): Likewise. ! 3859: * sdbout.c, dbxout.c: Don't call get_*_types. ! 3860: (*out_typedefs): New subroutines. ! 3861: * c-decl.c (finish_struct, finish_enum): Call rest_of_type_compilation. ! 3862: (pushtags): Record TYPE_STUB_DECL. ! 3863: * tree.h (TYPE_STUB_DECL): New macro. ! 3864: * stor-layout.c (chain_type, get_permanent_types, get_temporary_types): ! 3865: Deleted. ! 3866: (save_storage_status, restore_storage_status): Don't frob chains. ! 3867: (layout_type): Don't call chain_type. ! 3868: ! 3869: * dbxout.c (dbxout_type_fields): Output `/'-spec after type tag ! 3870: only if really needed. ! 3871: ! 3872: Wed Nov 27 18:52:55 1991 Michael Tiemann (tiemann at cygnus.com) ! 3873: ! 3874: * expr.c (expand_expr): Typo in expand_end_bindings, in BIND_EXPR case. ! 3875: ! 3876: Wed Nov 27 23:10:48 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 3877: ! 3878: * cccp.c (main): Use savestring, not strdup. ! 3879: ! 3880: Wed Nov 27 17:10:17 1991 Michael Meissner (meissner at osf.org) ! 3881: ! 3882: * mips.c (mips_load_reg3, mips_load_reg4): New global variables to ! 3883: enable scheduling the second nop for the mfhi and mflo instructions. ! 3884: (mips_hard_regno_mode_ok): New global array to give the results ! 3885: of HARD_REGNO_MODE_OK for each register and mode. ! 3886: (mips_fill_delay_slot): Instead of taking the number of nops as a ! 3887: parameter, take an enumeration, giving what kind of delay this is. ! 3888: If the next instruction is a label, put nops before label, not ! 3889: after. Add support for mflo/mfhi, which need 2 nops if the next ! 3890: instruction would modify the hi/lo registers. ! 3891: (mips_move_1word, mips_move_2words): mips_fill_delay_slot calling ! 3892: sequence changes. Pass mflo/mfhi to schedule nops. ! 3893: (mips_move_2words): Move DImode to/from hi and lo registers is now ! 3894: supported. ! 3895: (function_arg): Correctly align long long parameters, just like ! 3896: doubles. Also correct typo in debug code. Bug report from ! 3897: [email protected]. ! 3898: (override_options): Initialize mips_hard_regno_mode_ok. Restrict ! 3899: int's from going in the FP registers, to limit the register ! 3900: allocator from allocating them instead of using memory. Also, make ! 3901: the special registers (HI, LO, FPSW) only accept full sized ints, or ! 3902: a double int for the HI:LO combination. ! 3903: (compute_frame_size): Don't set the initialized member until reload ! 3904: has completed, since otherwise the information may change. ! 3905: ! 3906: * mips.md (various): Add 64 bit integer operations for addition, ! 3907: subtraction, negation, and, inclusive or, exclusive or, one's ! 3908: complement, shifts, and nor. Add 32x32->64 bit support for ! 3909: multiply, which the compiler then uses to construct 64 bit ! 3910: multiplies. ! 3911: (mulsi3): Break mul into it's two instructions, and schedule the ! 3912: two nops needed for the mflo instruction. Don't allow an integer ! 3913: multiplier anymore. ! 3914: (ffssi2): Delete define_expand, and use a second clobber'ed register ! 3915: to preserve the original input, instead of (clobber (match_dup 1)). ! 3916: (movsi_ulw): Change mips_fill_delay_slot calling sequence. ! 3917: (movdi_internal): Allow DImode move from HI/LO to/from GP registers. ! 3918: (movdi define_split): Add a define_split to separate the two parts ! 3919: of DImode register pairs when using GP registers. ! 3920: (movdf define_split): Add a define_split to separate the two parts ! 3921: of DFmode register pairs when using GP registers. ! 3922: (mov??_internal): Change condition to call memory_operand, instead ! 3923: of just checking for MEM, which disallows (subreg (MEM)) during ! 3924: the intermediate parts of the compilation. Reported by ! 3925: [email protected]. ! 3926: (negsi2): Turn back into a real insn instead of just a ! 3927: define_expand for subsi3. ! 3928: (one_cmplsi2): Turn back into a real insn instead of just a ! 3929: define_expand for norsi3. ! 3930: (andsi3, iorsi3, xorsi3): Be more liberal than the real machine, and ! 3931: allow 32 bit constants to improve the code generated for bitfields, ! 3932: at the expense of potentially not moving the constant out of loops. ! 3933: (various): Add = constraint to all clobbers. ! 3934: (fix_trunc*): Go back to old method of using two clobbers, since ! 3935: unoptimized compiles call abort otherwise, when returning the result ! 3936: of truncating a float as a function result. ! 3937: ! 3938: * tm-mips.h (delay_type): New enum to express different types of ! 3939: delay slots. ! 3940: (mips_load_reg3, mips_load_reg4): Declarations for more registers ! 3941: to check for needing nops. Used by multiply/divide to schedule ! 3942: the two nops needed after mfhi/mflo if the next instruction would ! 3943: clobber the register. ! 3944: (CONDITIONAL_REGISTER_USAGE): If -msoft-float, disable all FP ! 3945: registers. ! 3946: (MASK_DEBUG_G): Add comment saying -mdebugg turns of new DImode ! 3947: patterns, in case the code is wrong. ! 3948: (HARD_REGNO_NREGS): All FP registers use register pairs, so that ! 3949: SF in a GP register takes only one register, and SI in a FP ! 3950: register takes 2. ! 3951: (HARD_REGNO_MODE_OK): Change macro to reference the array ! 3952: mips_hard_regno_mode_ok, which is now built in override_options. ! 3953: (CONST_OK_FOR_LETTER_P): 'N' is now for negative numbers, 'O' is ! 3954: an exact power of 2, and 'P' is now for positive numbers. ! 3955: (PREFERRED_RELOAD_CLASS): If -msoft-float, never prefer a FP ! 3956: register. ! 3957: (PREFERRED_RELOAD_CLASS_FM): Delete, since nobody uses it. ! 3958: (FINAL_PRESCAN_INSN): Check for mips_load_reg3 and mips_load_reg4 ! 3959: being mentioned. Also add a missing tab when more than one delay ! 3960: slot. ! 3961: (CONST_COSTS): Make all constant ints cost 0 to lower register ! 3962: pressure according to Richard Kenner. ! 3963: (RTX_COSTS): Adjust costs for DI, SF, and DF modes, and add ABS/FFS ! 3964: costs as well. ! 3965: (REGISTER_MOVE_COSTS): Bump costs for moving between register ! 3966: classes, so that reload doesn't try to store int type values in the ! 3967: floating point registers. ! 3968: ! 3969: Wed Nov 27 15:01:52 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 3970: ! 3971: * config-gcc.com: Renaming of out-vax.c. ! 3972: * make-cc1.com: Link dbxout with all languages. Add cp-spew. ! 3973: ! 3974: * cccp.c (include_defaults_array): Fix typo. ! 3975: ! 3976: * gstddef.h: Handle _STDDEF_H_. ! 3977: ! 3978: * configure.bat, Makefile.dos: New files. ! 3979: ! 3980: * c-lex.c: New file. All subroutines moved here. ! 3981: (yylex): Small diffs between C and OBJC merged. ! 3982: * c-parse.y, objc-parse.y: Deleted from here. ! 3983: * c-lang.c (lookup_interface): New stub. ! 3984: * Makefile.in (c-lex.o): New rule. ! 3985: (OBJC_OBJS, C_OBJS): Changed for new files. ! 3986: ! 3987: Wed Nov 27 13:34:15 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) ! 3988: ! 3989: * c-parse.y (yylex): Don't assume that long is 32 bits and long ! 3990: long is 64 bits when warning for out of range integer constants, ! 3991: and when creating a tree to represent integer constants. ! 3992: * cp-lex.c (real_yylex): Likewise. ! 3993: * objc-parse.y (yylex): Likewise. ! 3994: ! 3995: * combine.c (simplify_comparison, ASHIFT case): Prevent shift by ! 3996: HOST_BITS_PER_INT for inequality comparisons. ! 3997: ! 3998: * fold-const.c (operand_equal_p): Arguments are not equal if ! 3999: signedness differs. Conversions don't match if signedness differs. ! 4000: ! 4001: * sparc.md (movsi, movhi, movqi, movdi): Prohibit matches that ! 4002: would require reloading by the use of conditions. ! 4003: ! 4004: * alloca.c (alloca): Add parens to make precedence clearer. ! 4005: ! 4006: * tm-news.h (PRINT_OPERAND): Add 68040 support so that the compiler ! 4007: will bootstrap. ! 4008: ! 4009: Wed Nov 27 09:41:13 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 4010: ! 4011: * expr.c (expand_expr, case MIN_EXPR): Fix typo in operand number ! 4012: in safe_from_p call. ! 4013: ! 4014: * recog.c (indirect_operand): Correctly handle case where we have ! 4015: a (subreg (mem X) C) after reload. ! 4016: ! 4017: Tue Nov 26 16:24:03 1991 Ron Guilmette (rfg at ncd.com) ! 4018: ! 4019: * dwarfout.c (output_enumeration_type_die): Handle a GNU C ! 4020: language extension: incomplete enum types. ! 4021: ! 4022: * dwarfout.c (output_type): Fixed bug which causes DIEs for ! 4023: file-scope tagged types to be generated in a local-scope ! 4024: under some conditions. ! 4025: ! 4026: * dwarfout.c (dwarfout_init, dwarfout_finish): Moved code which ! 4027: generates most of the .debug_aranges entries from dwarfout_init ! 4028: into dwarfout_finish to avoid m68k assembler bug. ! 4029: ! 4030: * Makefile.in (EXTRA_PARTS): New parameter. ! 4031: (install-common): Compile the things in EXTRA_PARTS. ! 4032: (GCC_PASSES, GCC_PARTS): New variables. ! 4033: (STAGESTUFF, native, enquire, enquire.o): Use them. ! 4034: (protoize, protoize.o, unprotoize, unprotoize.o, SYSCALLS.c.X): ! 4035: (gnulib2.ready, collect2, collect2.o, getopt.o, getopt1.o): Likewise. ! 4036: ! 4037: * tm-svr4.h (CPP_PREDEFINES): Don't define this here. Undef it ! 4038: so that other files which include this one will be forced to ! 4039: define it appropriately for the specific target and OS. ! 4040: (CPP_SPEC): Deleted. ! 4041: (LIB_SPEC): Add crtend.o as last thing linked in on each link-step. ! 4042: (STARTFILE_SPEC): Add crtbegin.o as the first thing linked in. ! 4043: (NO_DOLLAR_IN_LABEL): Added define. Most svr4's don't support $. ! 4044: ! 4045: * tm-svr4.h: Added support for the .ctors and .dtors sections ! 4046: (as for the m88k). ! 4047: (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): New macros. ! 4048: * tm-svr4.h (HERE_ASM_OP, ASM_DECLARE_FUNCTION_SIZE): Deleted ! 4049: define of HERE_ASM_OP and made ASM_DECLARE_FUNCTION_SIZE not ! 4050: try to use a dot when computing a function's size in a .size ! 4051: directive (because Tom Wood says that 88open doesn't approve ! 4052: of dot as an asm operand). ! 4053: ! 4054: * x-genix, x-i386sco, x-xenix (INSTALL): Define as cp. ! 4055: ! 4056: Tue Nov 26 16:24:03 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 4057: ! 4058: * gcc.c (default_compilers): Pass -A* to cpp. ! 4059: ! 4060: * Make names unique if unpacked on MSDOG. ! 4061: * config/*.c: `out-' removed from all file names out-*.c. ! 4062: * x-hp*: Renamed from x-hp9k*. ! 4063: * tm-conv1.h, tm-conv2.h: Renamed from tm-convex*.h. ! 4064: * tm-hp*.h: `9k' removed from these names. ! 4065: * tm-isi*.h: `68' removed from these names. ! 4066: * tm-i860b.h, tm-i860bg.h: `sd' removed. ! 4067: * tm-i860g3.h: Renamed from tm-i860v3g.h. ! 4068: * tm-i386sun.h: Renamed from tm-sun386i.h. ! 4069: * tm-sun3o3.h, tm-sun4o3.h: Were tm-sun*os3.h. ! 4070: * tm-sun3n3.h: Was tm-sun3os3nf.h. ! 4071: * tm-sun3n.h: Was tm-sun3-nfp.h. ! 4072: * tm-sun2o4.h: Was tm-sun2os4.h. ! 4073: * xm-hp320.h: Was xm-hp9k320.h. ! 4074: * xm-i386sun.h: Was xm-sun386i.h. ! 4075: * configure: Adjust for those renamings. ! 4076: ! 4077: * configure (m68000-hp-hpux*): Use xm-hp320.h. ! 4078: ! 4079: * stmt.c (expand_value_return): New subroutine. ! 4080: (expand_return): Use that. ! 4081: ! 4082: * make-gcc.com: New name for make.com. ! 4083: ! 4084: * stor-layout.c (layout_record): Return list of static members. ! 4085: (layout_type): Lay them out here. ! 4086: ! 4087: * expmed.c (init_expmed): Use 3 as shift count for shift_cost. ! 4088: ! 4089: * x-sco: File deleted. ! 4090: ! 4091: * print-tree.c (print_node): Always be brief for vector elts. ! 4092: ! 4093: Tue Nov 26 07:42:41 1991 Michael Tiemann (tiemann at rtl.cygnus.com) ! 4094: ! 4095: * cp-decl.c (grokdeclarator): Fix typo involving ~RID_STATIC. ! 4096: ! 4097: Mon Nov 25 21:51:09 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 4098: ! 4099: * optabs.c (emit_cmp_insn): If both operands are VOIDmode, ! 4100: put first operand into register, not second. ! 4101: ! 4102: * alliant.md, gmicro.md, i386.md, m68k.md, ns32k.md, pyr.md: ! 4103: Don't allow a constant as the first operand to tstxx insns. ! 4104: * tahoe.md, vax.md: Likewise. ! 4105: * convex.md: Remove erroneous comment on tstsi. ! 4106: ! 4107: Mon Nov 25 20:51:00 1991 DJ Delorie ([email protected]) ! 4108: ! 4109: * cccp.c (main): Look in env vars to override header dir list. ! 4110: * gcc.c (process_command): Likewise. ! 4111: ! 4112: * gcc.c (execute): Alternate way to get status on MSDOS. ! 4113: Error for -pipe on MSDOS. ! 4114: (pexecute): Alternate definition for MSDOS. ! 4115: (find_a_file): Handle new hook EXECUTABLE_SUFFIX. ! 4116: (EXECUTABLE_SUFFIX): Add default definition, and alternate for MSDOS. ! 4117: (P_tmpdir): Add default definition for MSDOS. ! 4118: ! 4119: Mon Nov 25 17:18:52 1991 Michael Collison (collison at osf.org) ! 4120: ! 4121: * x-encrose: New file for mmax running OSF/1. ! 4122: * t-encrose: ditto. ! 4123: ! 4124: * ns32k.md (movsi): Use new constraint letters 'x' and 'y' ! 4125: representing the frame and stack pointer. ! 4126: (movhi,movqi): Add constraints and template code to allow moves ! 4127: between the floating point and general purpose registers. ! 4128: ! 4129: * tm-ns32k.h (REGISTER_MOVE_COST): Use this macro to discourage ! 4130: moves between the floating point registers and the frame and stack ! 4131: pointer. Also discourage moves between the fp and general registers. ! 4132: (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS, ! 4133: REG_CLASS_FROM_LETTER): Add two new register classes representing ! 4134: the frame pointer and stack pointer respectively. ! 4135: (GO_IF_NONINDEXED_ADDRESS): Add check to see if register is also a ! 4136: base register. This causes reload to reject pseudo registers when ! 4137: REG_OK_STRICT is defined. ! 4138: ! 4139: * tm-i386rose.h: New file for 386 running on OSF/1. ! 4140: * x-i386rose: ditto ! 4141: * t-i386rose: ditto ! 4142: ! 4143: * config.subr: Added case for 'osf-'. ! 4144: * configure: Added case for i386-osfrose ! 4145: ! 4146: * tm-encrose.h (CC1_SPEC): Simplified so by default it passes nothing. ! 4147: (ASM_SPEC): Changed so that under OSF/1 with NO_J_SWITCH defined ! 4148: nothing is passed to the assembler. ! 4149: (TARGET_DEFAULT): Changed so that, by default, no code is generated ! 4150: using the static base (sb) register. ! 4151: (OVERRIDE_OPTIONS): Removed in lieu of the new debug macros ! 4152: PREFERRED_DEBUGGING_TYPE and DEFAULT_GDB_EXTENSION. ! 4153: (DEFAULT_GDB_EXTENSIONS): Define it ! 4154: (PREFERRED_DEBUGGING_TYPE): Use it. ! 4155: ! 4156: Mon Nov 25 17:18:52 1991 Jyrki Kuoppala (jkp at batman.hut.fi) ! 4157: ! 4158: * ns32k.md (ashlhi3): use addw also on 32532 if shiftcount is 1. ! 4159: (ashlqi3): likewise. ! 4160: (addsi3): don't use addr instead of addd on the 32532. ! 4161: ! 4162: * out-ns32k.c (calc_address_cost): don't assume unknown RTX codes ! 4163: have XEXP's which are rtx's. ! 4164: ! 4165: * ns32k.md (movsi): don't use addr for the 32532 immed displacements. ! 4166: (shift patterns): fixed a typo with %$%n. ! 4167: ! 4168: * out-ns32.c (calc_address_cost) new function. ! 4169: tm-ns32k.h (ADDRESS_COST): call calc_address_cost. ! 4170: ! 4171: * out-ns32k.c (print_operand_address): use error & debug_rtx if error. ! 4172: ! 4173: * tm-ns32k.h (CONST_OK_FOR_LETTER_P): constraint 'I' shouldn't ! 4174: match anything on the 32532 to make negative arithmetic left ! 4175: shifts behave consistently. ! 4176: ! 4177: * ns32k.md (subsf+1): don't use ajdspb on the 32532. ! 4178: ! 4179: * tm-ns32k.h (CONST_OK_FOR_LETTER_P): positive values not OK for ! 4180: constraint 'I' if on 32532. ! 4181: ! 4182: * ns32k.md (ashl??): if TARGET_32532, use lsh{d,w,b}. ! 4183: ! 4184: * ns32k.md (adjusting stack pointer): don't use ajdp{b,w} if not 32532. ! 4185: ! 4186: * ns32k.md (isv,insv-1,insv-2,extzv): use constraint K instead of ! 4187: n for offset. ! 4188: ! 4189: * ns32k.md (insv-1): use only register_operand with constraint ! 4190: "r" for operand 2, insd can't take constant offsets >= 8. ! 4191: (pattern insv-2): added another insv-like pattern, for ! 4192: offsettable operand. ! 4193: (insv): constraint should be "+g". ! 4194: (pattern before insv): installed an insv-like pattern ! 4195: with operand 0 having register_operand and SImode. ! 4196: ! 4197: * out-ns32k.c (print_operand): define as a void function. ! 4198: ! 4199: * ns32k.md (call_value): use operands[1], not operands[0] to check ! 4200: for CONSTANT_ADDRESS_P. ! 4201: ! 4202: * out-ns32k.c (print_operand): eliminate ! 4203: PRINT_OPERAND_EXTRACT_FLOAT, don't depend on HOST_WORDS_BIG_ENDIAN. ! 4204: ! 4205: * tm-ns32.h (INDIRECTABLE_1_ADDRESS_P): use CONSTANT_ADDRESS_P, ! 4206: not CONSTANT_P. ! 4207: ! 4208: * tm-ns32k.h (GO_IF_LEGITIMATE_ADDRESS): checking for CONST_INT ! 4209: is not right because displacements are not 32-bit. Use ! 4210: CONSTANT_ADDRESS_NO_LABEL_P instead. ! 4211: ! 4212: * tm-ns32k.h (output_move_double, output_shift_insn): New declarations. ! 4213: ! 4214: * out-ns32k.c (print_operand_address): Use fatal for errors. ! 4215: ! 4216: * ns32k.md (insv, extzv): Replaced with the pattern near insv in 1.40. ! 4217: ! 4218: * out-ns32k.c (print_operand): function moved from tm-ns32k.h. ! 4219: Modified to use PUT_IMMEDIATE_PREFIX, PUT_EXTERNAL_PREFIX; added ! 4220: macro PRINT_OPERAND_EXTRACT_FLOAT. ! 4221: ! 4222: * out-ns32k.c (print_operand_address): replaced the function with ! 4223: a more clean version, written for gas syntax. ! 4224: ! 4225: * ns32k.md (call): #if 0 code which was used when GAS_SYNTAX was not ! 4226: defined. ! 4227: (call_value): likewise. ! 4228: ! 4229: * ns32k.md (pattern after ashrsi3): added % before $ so the ! 4230: pattern works also for gas syntax. ! 4231: (pattern after ashrhi3): likewise. ! 4232: (pattern after ashrqi3): likewise. ! 4233: (pattern after lshrsi3): likewise. ! 4234: (pattern after lshrhi3): likewise. ! 4235: (pattern after lshrqi3): likewise. ! 4236: (pattern after rotrsi3): likewise. ! 4237: (pattern after rotrhi3): likewise. ! 4238: (pattern after rotrqi3): likewise. ! 4239: ! 4240: * ns32k.md (movsf): put #ifndef GAS_SYNTAX part inside #if 0 since ! 4241: for now we only use GAS syntax. ! 4242: ! 4243: * tm-ns32k.h (INDIRECTABLE_2_ADDRESS_P): add TARGET_SB as a ! 4244: condition in addition to CONSTANT_ADDRESS_P. ! 4245: ! 4246: * tm-ns32k.h (MEM_REG): use CONSTANT_ADDRESS_P instead of GET_CODE ! 4247: == SYMBOL_REG, add TARGET_SB to the second-part condition. ! 4248: ! 4249: * ns32k.md (rotrsi3): fixed a typo NEGATE->NEG ! 4250: ! 4251: * tm-ns32k.h: added a comment about CONSTANT_ADDRESS_P; it's not ! 4252: strictly according to the spec. ! 4253: ! 4254: * tm-ns32k.h: added defaults for ABSOLUTE_PREFIX,IMMEDIATE_PREFIX ! 4255: etc, using gas syntax. ! 4256: ! 4257: * out-ns32k.c: removed macro FP_REG_P. ! 4258: ! 4259: * tm-ns32k.h: (ASM_OUTPUT_ALIGN_CODE): changed alignment from 4 to ! 4260: 2 since GAS syntax is the default assembler syntax now. ! 4261: (PRINT_OPERAND, PRINT_OPERAND_ADDRESS): defined to call ! 4262: print_operand and print_operand_address in out-ns32k.c, ! 4263: respectively. ! 4264: ! 4265: * tm-ns32k.h: New macros TARGET_SB, TARGET_PIC. ! 4266: Dummy code for trampolines, calls fatal(). ! 4267: Macro FP_REG_P moved here from out-ns32k.c. ! 4268: Some reorganizations of blocks. ! 4269: 68000 -> ns32k. ! 4270: ! 4271: * tm-ns32k.h (TARGET_VERSION) says GAS syntax. ! 4272: (TARGET_*) added some empty lines for clarity. ! 4273: ! 4274: Mon Nov 25 14:29:39 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 4275: ! 4276: * Makefile.in (aux-output.o): Depend on insn-codes.h. ! 4277: ! 4278: * make-cc1.com: Handle print-rtl.c. ! 4279: ! 4280: * toplev.c (warn_aggregate_return): New variable. ! 4281: (W_options): Define option to set it. ! 4282: * flags.h: Declare it. ! 4283: * calls.c (expand_call): Print warning if value is aggregate. ! 4284: * function.c (init_function_start): Likewise. ! 4285: ! 4286: Mon Nov 25 13:29:50 1991 Per Bothner (bothner at cygnus.com) ! 4287: ! 4288: * cp-except.c (init_exception_processing): Fix return type of ! 4289: longjmp (from int to void). ! 4290: ! 4291: Mon Nov 25 13:11:51 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) ! 4292: ! 4293: * rtlanal.c (refers_to_regno_p): Check for `x == 0' on repeat. ! 4294: ! 4295: * x-mips, xm-vms.h: Change cplus-* to cp-* in comments. ! 4296: * x-tower (X_CFLAGS): Add missing `-'. ! 4297: ! 4298: * unroll.c (unroll_loop): When simplifying loops executed only once, ! 4299: use last_loop_insn not copy_end. ! 4300: ! 4301: Mon Nov 25 07:45:46 1991 Michael Tiemann (tiemann at rtl.cygnus.com) ! 4302: ! 4303: * cp-except.c (init_exception_processing): Mark `ExceptionHandler' ! 4304: constructor and destructor as being TREE_EXTERNAL, and mark the ! 4305: `ExceptionHandler' type as being interface-only. ! 4306: ! 4307: * cp-decl.c (maybe_globalize_type): Don't test TYPE_BEING_DEFINED ! 4308: for ENUMERAL_TYPE. ! 4309: ! 4310: * cp-class.c (modify_vtable_entry): Disable code which attempts to ! 4311: encode in a vtable an indirection to another vtable entry. ! 4312: ! 4313: * cp-call.c (build_method_call): Convert FUNCTION to ! 4314: DECL_MAIN_VARIANT (FUNCTION) once we are going to use it for real. ! 4315: * cp-init.c (build_delete): Use DECL_MAIN_VARIANT (DTOR). * ! 4316: * cp-typeck.c (mark_addressable): Use DECL_MAIN_VARIANT (X). ! 4317: ! 4318: Mon Nov 25 00:41:14 1991 Per Bothner (bothner at cygnus.com) ! 4319: ! 4320: * dbxout.c (dbxout_type): Tiemann's DECL_IGNORED_P optimization (Nov ! 4321: 20) was a little too drastic: If it succeded, no type info was ! 4322: emitted at all, which made for syntactically invalid stabs. ! 4323: Instead, just set 'full=0', ! 4324: * dbxout.c (dbxout_symbol): Re-write code for TYPE_DECL to be a ! 4325: little cleaner. It *seems* to work ... ! 4326: ! 4327: Sun Nov 24 19:32:07 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) ! 4328: ! 4329: * sched.c (update_links): Use PUT_REG_NOTE_KIND to change REG_NOTE. ! 4330: ! 4331: Sun Nov 24 14:53:37 1991 Ron Guilmette (rfg at ncd.com) ! 4332: ! 4333: * cccp.c: Add `return 0;' statements to all do_* functions which ! 4334: needed them to prevent spurious warnings. Also change plain ! 4335: `return;' statements to `return 0;' statements where appropriate. ! 4336: ! 4337: Sun Nov 24 07:37:17 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 4338: ! 4339: * cse.c (cse_insn): When making equivalences of subparts of ! 4340: a SET, avoid putting a (hard) register in the hash table twice, ! 4341: each time with different modes. ! 4342: ! 4343: * genrecog.c (write_tree_1,change_state): Don't check for a position ! 4344: containing a '*' since we don't set it to that. ! 4345: (main): Don't define recog_addr_dummy; no longer used. ! 4346: * recog.c (recog_addr_dummy): No longer needed; wasn't actually used. ! 4347: (init_recog_no_volatile, init_recog): Don't set recog_addr_dummy. ! 4348: ! 4349: * expmed.c (store_split_bit_field, extract_bit_field): Abort if ! 4350: operand_subword of target returns 0. ! 4351: * expr.c (convert_move, move_block_from_reg, emit_move_insn): Likewise. ! 4352: ! 4353: * combine.c (subst, case SUBREG): Don't allow making a SUBREG of ! 4354: a hard reg in a mode not valid for that hard reg. ! 4355: * emit-rtl.c (gen_lowpart_common, operand_subword): Likewise. ! 4356: ! 4357: * expmed.c (extract_split_bit_field): Use operand_subword_force. ! 4358: * expr.c (emit_move_insn): If operand_subword fails for non-const, ! 4359: use operand_subword_force. ! 4360: ! 4361: * expmed.c (expand_mult): Pass OP0 through protect_from_queue so we can ! 4362: use it in a REG_EQUAL note and check it for being a MEM. ! 4363: ! 4364: * rtl.def (SMIN, SMAX, UMIN, UMAX): New RTL codes. ! 4365: * fold-const.c (const_binop, case MIN_EXPR, MAX_EXPR): Use MIN and MAX. ! 4366: (fold, case MIN_EXPR, MAX_EXPR): Check for operands equal; check for ! 4367: min (x, lowest-value-for-type) and max (x, highest-value-for-type). ! 4368: (fold, case COND_EXPR): Look for conditionals that are equivalent ! 4369: to ABS_EXPR, MIN_EXPR, or MAX_EXPR and convert them to the appropriate ! 4370: expression. ! 4371: * expr.h (smin_optab, smax_optab, umin_optab, umax_optab): New vars. ! 4372: * gcc.texinfo (smin, smax, umin, umax): Add documentation. ! 4373: * expr.c (expand_expr, case ABS_EXPR): Ignore ABS on unsigned types. ! 4374: If jumps are expensive, we can do ABS with shifts and xors. ! 4375: (expand_expr, case MIN_EXPR, MAX_EXPR): Try to do using new optabs. ! 4376: * optabs.c (smin_optab, smax_optab, umin_optab, umax_optab): ! 4377: Initialize new optabs. ! 4378: * cse.c (simplify_binary_operation): New cases SMIN, SMAX, UMIN, UMAX. ! 4379: * rs6000.md (sminsi3, smaxsi3, uminsi3, umaxsi3): New patterns. ! 4380: * m88k.md (abssi2): Delete pattern; now done in expr.c. ! 4381: ! 4382: * rs6000.md (scc): Correct typos in last change. ! 4383: ! 4384: * expmed.c (expand_mult): TARGET will only be written once, so ! 4385: function return register is OK. ! 4386: Write a REG_EQUAL note so multiplications can be cse'ed. ! 4387: ! 4388: * expmed.c (emit_store_flag): Skip trying most sequences of insns ! 4389: if branches are very cheap (BRANCH_COST == 0). ! 4390: * expr.c (expand_expr, case COND_EXPR): Check for BRANCH_COST <= 1, ! 4391: not equal to 1. ! 4392: Know that emit_store_flag won't do most sequence if branches are very ! 4393: cheap. ! 4394: ! 4395: * tm-vax.h (BRANCH_COST): Define to be equal to zero. ! 4396: ! 4397: Sun Nov 24 07:07:31 1991 Michael Tiemann (tiemann at cygnus.com) ! 4398: ! 4399: * cp-decl.c (maybe_globalize_type): Don't globalize a type that's ! 4400: being defined. ! 4401: ! 4402: Sun Nov 24 05:08:57 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 4403: ! 4404: * c-decl.c (finish_struct): Use main variant checking ANSI bitfields. ! 4405: ! 4406: * tm-tower-as.h (ASM_FILE_START): Use output_file_directive. ! 4407: ! 4408: * gcc.c (process_command): Treat `-' as file name, not option. ! 4409: ! 4410: Sat Nov 23 20:28:58 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 4411: ! 4412: * cse.c (simplify_binary_operation): Remove duplicate code for SFmode ! 4413: and DFmode; use of REAL_VALUE_TRUNCATE means that all modes can be ! 4414: handled with the same code. ! 4415: Truncate result as well as inputs to computations. ! 4416: ! 4417: * cse.c (cse_basic_block): Allow recording of destinations in the ! 4418: final insn of a LIBCALL block. ! 4419: ! 4420: * flow.c (insn_dead_p): Add new argument CALL_OK. ! 4421: (propagate_block): Pass new arg. ! 4422: (libcall_dead_p): Indicate that we can accept a CALL when we use ! 4423: insn_dead_p to see if the destination of the CALL is dead. ! 4424: ! 4425: * genrecog.c (struct decision): Remove fields `dupcount' ! 4426: and `reg_class' and all references; they were being set but never ! 4427: used and are now obsolete. ! 4428: ! 4429: * emit-rtl.c (gen_lowpart_common, operand_subword): Don't make ! 4430: a new REG for the function return value until we after the RTL ! 4431: is copied for possible inlining; use a SUBREG instead. ! 4432: ! 4433: * combine.c (can_combine_p): Don't move insn past a volatile ref if ! 4434: it is an `asm', even if non-volatile. ! 4435: ! 4436: * gmicro.md: Fix punctuation problem causing syntax error. ! 4437: ! 4438: * tm-rs6000.h (CONST_OK_FOR_LETTER_P): Add `O' and `P'. ! 4439: * out-rs6000.c (reg_or_neg_short_operand): New function. ! 4440: ! 4441: * rs6000.md (attribute "type"): New type `delayed_compare'. ! 4442: Add define_function_unit for delayed comparisons. ! 4443: Mark comparison results of certain insns as being delayed for ! 4444: longer that normal comparison results; add a new missing types ! 4445: of `compare'. ! 4446: (seq, sle): Remove special-cases for (const_int 0) operands; use ! 4447: alternative with constraint of `O' instead. ! 4448: (sltu, sgeu): Support most constants in second operand. ! 4449: ! 4450: * cse.c (prev_insn_cc0_mode): New variable. ! 4451: (fold_rtx): When folding CC0, get the mode from prev_insn_cc0_mode. ! 4452: (cse_insn): Save mode of SET of CC0 in prev_insn_cc0_mode. ! 4453: ! 4454: Sat Nov 23 17:01:47 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 4455: ! 4456: * expmed.c (init_expmed): Make REG a pseudo, not a hard reg. ! 4457: ! 4458: * tm-m68k.h (RTX_COSTS): New macro. ! 4459: ! 4460: * varasm.c (make_decl_rtl): Get rid of pedantic warning. ! 4461: ! 4462: * gcc.c (link_command_spec): Delete code for handling -collect. ! 4463: (default_compilers): Get rid of the %x for g++. ! 4464: This is because now collect is always supposed to be run. ! 4465: ! 4466: * tm-vms.h (ASM_OUTPUT_COMMON): Avoid void as type in :? operator. ! 4467: * tm-sun3.h (ASM_OUTPUT_FLOAT_OPERAND, ASM_OUTPUT_DOUBLE_OPERAND): ! 4468: Likewise. ! 4469: * tm-vaxv.h (ASM_OUTPUT_ASCII): Declare `s' as unsigned char *. ! 4470: * tm-crds.h (FUNCTION_EPILOGUE): Don't call FUNCTION_EXTRA_EPILOGUE. ! 4471: ! 4472: * configure (i386-dontknow-*, ns32k-*-*): Alternatives deleted. ! 4473: (m68k-tti2-*): Deleted. ! 4474: (m68k-tti-*): Renamed from m68k-tti1-*. ! 4475: ! 4476: * i860.md (floatsidf2): Escape the doublequotes. ! 4477: ! 4478: * Makefile.in (final.o): Add insn-codes.h as dep. ! 4479: (OBJS): Add dbxout.o. ! 4480: (C_OBJS, OBJC_OBJS): Deleted here. ! 4481: (CPLUS_OBJS): Deleted cp-dbxout.o. ! 4482: (cp-dbxout.o): Target deleted. ! 4483: ! 4484: Sat Nov 23 06:33:24 1991 Michael Tiemann (tiemann at cygnus.com) ! 4485: ! 4486: * cp-spew.c (yylex): Don't see TYPENAME if LOOKING_FOR_TYPENAME ! 4487: is < 0. Definitely see TYPENAME if LOOKING_FOR_TYPENAME > 0. ! 4488: ! 4489: * cp-decl.c (grokdeclarator): Any type construction that uses a ! 4490: struct/union/enum type that is not yet defines pushes that type into ! 4491: the global namespace. ! 4492: ! 4493: * cp-spew.c (discard_token): Renamed from `eat_token'. ! 4494: Also, make all local functions static. Some day we'll use inlining. ! 4495: ! 4496: Thu Nov 21 16:06:14 1991 Mark Eichin (eichin at cygnus.com) ! 4497: ! 4498: * Makefile.in: added rule for cp-spew.o ! 4499: ! 4500: * cp-parse.y (TYPENAME_SCOPE): added an action, since it is no ! 4501: longer done in the lexer. ! 4502: (yyprint): Took out case for TYPENAME_SCOPE. ! 4503: ! 4504: * cp-lex.c (real_yylex): renamed from yylex. Also all of the code ! 4505: dealing with nested classes has been #if 0'd in favor of the code in ! 4506: cp-spew.c. ! 4507: ! 4508: * cp-spew.c (New File): This calls yylex (which is now real_yylex) ! 4509: and looks ahead as far as possible to bind up nested classes and ! 4510: pass them on to the parser. ! 4511: ! 4512: Thu Nov 21 18:14:11 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) ! 4513: ! 4514: * out-sparc.c (output_function_epilogue): Correct parameters in ! 4515: call to final_scan_insn, write_symbols parameter no longer exists. ! 4516: ! 4517: * integrate.c (save_for_inline_copying): Use GET_RTX_CLASS. ! 4518: ! 4519: Thu Nov 21 17:44:46 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 4520: ! 4521: * gcc.texinfo (PCC_BITFIELD_TYPE_MATTERS): Clarify that macro ! 4522: must always be non-zero unless MEM extv/extzv/insv exist. ! 4523: ! 4524: * romp.md (movdi): Disable define_split when we are moving ! 4525: between overlapping registers prior to reload to work ! 4526: around hard-to-fix sched.c bug. ! 4527: ! 4528: Thu Nov 21 17:14:54 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) ! 4529: ! 4530: * jump.c (invert_exp): Correct typo in comment. ! 4531: ! 4532: Thu Nov 21 15:34:27 1991 Michael Meissner (meissner at osf.org) ! 4533: ! 4534: * gcc.texinfo (warning options): Make the documentation agree with ! 4535: the code, -Wstrict-prototypes and -Wmissing-prototypes are not ! 4536: turned on via -Wall; -Wnoparenthesis is now spelled ! 4537: -Wno-parenthesis. ! 4538: (option header): Mention that -W options take the no- prefix as well ! 4539: as -f options. ! 4540: ! 4541: Thu Nov 21 08:12:51 1991 Tom Wood (wood at dg-rtp.dg.com) ! 4542: ! 4543: * out-m88k.c (check_float_value): Change use of REAL_VALUE_TRUNCATE. ! 4544: * tm-m88k.h (FLOAT_TO_INT_INTERNAL): Ditto. ! 4545: (AS_BUG_POUND_TYPE): Simplify. ! 4546: * tm-m88kdgux.h: Don't need AS_BUG_DOT_LABELS or AS_BUG_POUND_TYPE. ! 4547: ! 4548: Thu Nov 21 06:47:11 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 4549: ! 4550: * rs6000.md (scc): Add missing '&' in some alternatives of constraints. ! 4551: ! 4552: * a29k.md (negdf2): Fix typo in constraints for SCRATCH in 29050 case. ! 4553: ! 4554: * real.h (REAL_VALUE_TRUNCATE): Default is to truncate to float if ! 4555: mode size is BITS_PER_WORD instead of when mode if SFmode. ! 4556: ! 4557: Thu Nov 21 01:58:27 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 4558: ! 4559: * dbxout.c (dbxout_type): Test TYPE_BINFO before TYPE_BINFO_BASETYPES. ! 4560: ! 4561: Thu Nov 21 01:45:53 1991 Ken Raeburn ([email protected]) ! 4562: ! 4563: * cp-parse.y (unary_expr): Break out `new' expressions with ! 4564: parenthesized types into more basic forms, and handle trailing array ! 4565: dimensions with an appropriate warning message. ! 4566: ! 4567: * cp-class.c (pushclass): For UPType, overload the template name. ! 4568: (popclass): For UPType, undo the overload. ! 4569: ! 4570: * cp-decl.c (pop_decl_level): Don't look up DECL_NAME slot of a ! 4571: null pointer. ! 4572: (pushdecl_top_level): Reworked handling of shadow lists to be ! 4573: correct. ! 4574: (lookup_tag): Bypass redefinition error message for UPT as well as ! 4575: for TEMPLATE_DECL. ! 4576: (start_decl): Add template decls only to top level. Print message ! 4577: for non-function, non-class templates. ! 4578: (finish_decl): Disable code that renames anonymous types; leave it ! 4579: disabled until we figure out why it was being done in the first ! 4580: place. ! 4581: (grokdeclarator): Eliminate hack to deal with destructor templates. ! 4582: Extend some code handling constructors to handle destructors as ! 4583: well. Deleted some unnecessary code dealing with function ! 4584: templates. ! 4585: ! 4586: * cp-decl2.c (constructor_name): Treat class template decl like ! 4587: type decl. ! 4588: ! 4589: * cp-lex.c (store_pending_inline): If a function is not to be ! 4590: compiled, discard its text only if can_free flag is set. ! 4591: ! 4592: * cp-decl.c (start_function): For `pre-parsed' functions, only ! 4593: set extern-inline flag if inline flag is set. ! 4594: * cp-lex.c (do_pending_inlines): Don't set inline flag for method ! 4595: templates, regardless of default-inline flag setting. ! 4596: (process_next_inline): Ditto. ! 4597: ! 4598: * cp-method.c (dump_type): Do something semi-useful with UPT ! 4599: nodes, instead of crashing. ! 4600: (fndecl_as_string): For constructor and destructor, use name of ! 4601: function rather than looking up class constructor name; should be ! 4602: the same, and it's cheaper this way. ! 4603: (build_overload_name): Make template-related names unique, as well ! 4604: as unlikely to be accepted by the assembler. ! 4605: ! 4606: * cp-parse.y (yyprint): Handle PRE_PARSED_CLASS_DECL. ! 4607: (template_def): In case handling destructors, pass new decl to ! 4608: end_template_decl, rather than ungrokked call_expr node. Rewrote ! 4609: last derivation. ! 4610: (scoped_typename): Don't try building from template type; it doesn't ! 4611: work. ! 4612: (try_for_typename): Treat typename using template parms like any ! 4613: other typename. ! 4614: ! 4615: * cp-pt.c: New comment at start lists some known problems. ! 4616: (end_template_decl): Do nothing for error_mark_node. Check ! 4617: DECL_CLASS_CONTEXT and DECL_EXTERNAL when setting TREE_EXTERNAL ! 4618: field of template decl. Don't need to pop extra class level for ! 4619: non-operators any more, but do need to assign class context field. ! 4620: (instantiate_member_templates): Now returns void. ! 4621: (tsubst, case FUNCTION_DECL): Process flag fields of method as for ! 4622: other functions. Handle class context field. Push decl at top ! 4623: level only if decl context is null. ! 4624: (tsubst, case TREE_LIST): Use via-public and via-virtual fields. ! 4625: (do_pending_expansions): Correct handling of methods. ! 4626: ! 4627: * cp-pt.c (overload_template_name): If not class-level, push ! 4628: extra binding level. Disable check that overload hasn't already ! 4629: been done; for now, it's needed. ! 4630: (undo_template_name_overload): Pop it. ! 4631: ! 4632: Thu Nov 21 00:15:33 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) ! 4633: ! 4634: * dbxout.c (dbxout_type_methods): Don't dereference TYPE_NAME and ! 4635: ctor_name until after checking for non-null methods. ! 4636: ! 4637: * sched.c (create_reg_dead_note): New function. Add a REG_DEAD note ! 4638: for REG to INSN, reusing a REG_DEAD note from the dead_notes line. ! 4639: (attach_deaths): Add quick exit for many rtx that can't contain a ! 4640: register. Rewrite REG_DEAD note code to use the new scheme (see ! 4641: the Nov 1 ChangeLog entry). ! 4642: (new_insn_dead_notes): Don't add a REG_DEAD note to an insn that ! 4643: already has one. ! 4644: (update_links): Must convert REG_UNUSED notes to REG_DEAD when a ! 4645: register formerly just clobbered is now explicitly set and used in ! 4646: the new split insns. ! 4647: ! 4648: Wed Nov 20 18:02:38 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) ! 4649: ! 4650: * c-decl.c, cccp.c: Change all -Wno options to ! 4651: -Wno- options so as to be consistent with toplev.c, and so as ! 4652: to also be consistent with the -fno- options. ! 4653: * objc-actions.c: Add a -Wno-selector option to match the ! 4654: -Wselector option. ! 4655: ! 4656: * gcc.c (default_compilers): Pass all -W options to cpp, so that ! 4657: -Wno options will be passed along with the -W options that it ! 4658: understands. ! 4659: * cccp.c (main): Accept -Wno option counterparts for every ! 4660: existing option. ! 4661: ! 4662: Wed Nov 20 00:03:41 1991 Michael Tiemann (tiemann at cygnus.com) ! 4663: ! 4664: * cp-tree.c (lang_output_debug_info): Deleted. ! 4665: * cp-class.c (finish_struct): Set DECL_IGNORED_P on the TYPE_DECL ! 4666: nodes for types that should not have their debugging info written ! 4667: out. ! 4668: * dbxout.c (dbxout_{symbol,type}): Check DECL_IGNORED_P for ! 4669: TYPE_DECLs of RECORD_TYPE nodes. ! 4670: ! 4671: * cp-decl.c (grok_op_properties): Fix bug in grokking NEW_EXPR ! 4672: and DELETE_EXPR operators. ! 4673: * cp-method.c (hack_operator): Deleted. ! 4674: * cp-init.c (init_init_processing): Use `ansi_opname' for ! 4675: {NEW,DELETE}_EXPR instead of calling hack_operator and build_opid. ! 4676: * cp-decl2.c (grokopexpr): Deleted. ! 4677: * cp-lex.c (build_opid): Deleted. ! 4678: * cp-class.c (build_instantiated_decl): Deleted. ! 4679: * All cp-* files: OP_IDENTIFIER is no longer used. ! 4680: ! 4681: * cp-parse.y (operator_name): For most cases, Use `ansi_opname' ! 4682: directly instead of calling `build_opid'. ! 4683: ! 4684: Tue Nov 19 16:02:51 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 4685: ! 4686: * c-decl.c (xref_tag): If we find wrong kind of type, return it. ! 4687: (lookup_tag): Fill in pending_invalid_xref_file, ..._line. ! 4688: ! 4689: * real.h (REAL_VALUE_TRUNCATE): New argument MODE. ! 4690: * cse.c (simplify_unary_operation, simplify_binary_operation): ! 4691: Pass that arg. ! 4692: * c-parse.y, objc-parse.y, cp-lex.c (yylex): Likewise. ! 4693: * fold-const.c (combine): Truncate floating result to fit mode. ! 4694: (fold): Don't add 1 to float constant if that doesn't change the value. ! 4695: ! 4696: Tue Nov 19 09:37:36 1991 Michael Meissner (meissner at osf.org) ! 4697: ! 4698: * configure (ns32k-encore-osf): Restore Encore Multimax using the ! 4699: OSF/rose object format, since the necessary files, such as ! 4700: tm-encrose.h, are present in the distribution. ! 4701: ! 4702: Mon Nov 18 21:38:13 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) ! 4703: ! 4704: * out-sparc.c (output_cbranch): Always emit a nop before a FP branch ! 4705: to avoid illegal assembly output. ! 4706: * sparc.md: Don't define delay slot for FP compare insns. This was ! 4707: meant to solve the above problem, but fails with insn scheduling. ! 4708: ! 4709: * sparc.md (movsi): Must accept 'f' in addition to 'r' because ! 4710: combine can convert FP hard registers to SImode. ! 4711: ! 4712: Mon Nov 18 13:43:12 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 4713: ! 4714: * rtlanal.c (replace_regs): Correct code that prevents nested SUBREGs. ! 4715: ! 4716: Mon Nov 18 13:43:12 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 4717: ! 4718: * c-decl.c (finish_decl): Reinstall lost end_temporary_allocation. ! 4719: ! 4720: * tree.h (DECL_LANG_FLAG_8): Deleted. ! 4721: * print-tree.c (print_node): Don't use it. Do print DECL_IGNORED_P. ! 4722: ! 4723: Mon Nov 18 06:59:37 1991 Michael Tiemann (tiemann at cygnus.com) ! 4724: ! 4725: * cp-decl.c (value_identifier): Gone, following c-decl.c. Now use ! 4726: zero DECL_NAME for this purpose. ! 4727: * cp-typeck.c: Also affected by this change. ! 4728: ! 4729: * c-lang.c, objc-lang.c (lang_output_debug_info): New function. ! 4730: * dbxout.c (dbxout_type_methods): Fix minor problems arising from ! 4731: assuming all RECORD_TYPE are C++ RECORD_TYPE nodes. ! 4732: (dbxout_type): Ditto. ! 4733: ! 4734: Sun Nov 17 17:33:58 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 4735: ! 4736: * tree.c (struct obstack_stack): New slots expression and rtl. ! 4737: (push_obstacks, push_obstacks_nochange, pop_obstacks): ! 4738: Save and restore all 4 obstack vars individually. ! 4739: ! 4740: * c-decl.c (start_decl): Call push_obstacks_nochange here. ! 4741: (push_parm_decl, grokfield): Also here. ! 4742: (finish_decl): Not here. ! 4743: Also clean up test for whether to replace DECL_INITIAL with error mark. ! 4744: ! 4745: Sun Nov 17 14:25:15 1991 Michael Tiemann (tiemann at cygnus.com) ! 4746: ! 4747: * cp-typeck.c (c_expand_return): Be more careful about throwing ! 4748: away only cleanup generated by 'build_functional_cast'. ! 4749: ! 4750: * cp-init.c (build_new): Use TRUE_TYPE instead of TYPE more ! 4751: consistently, in case TYPE is really an ARRAY_TYPE on its own. ! 4752: ! 4753: * cp-dbxout.c: Gone. Now G++ uses dbxout.c. ! 4754: * cp-tree.h (OPERATOR_NAME_P): Changed to IDENTIFIER_OPNAME_P. ! 4755: (OPERATOR_TYPENAME_P): Changed to IDENTIFIER_TYPENAME_P. ! 4756: (OPERATOR_{NEW,DELETE}_FORMAT): Deleted. ! 4757: * cp-lex.c (ansi_{opname,assopname}): New variables. All cp-* files ! 4758: changed to use these where comparisons against *_FORMAT were made. ! 4759: (init_lex): Initialize `ansi_{opname,assopname}' arrays. ! 4760: Also, update {opname,assignop}_tab grok new ANSI equivalences. ! 4761: (build_operator_fnname): Changed to build ANSI-style overloaded ! 4762: names. ! 4763: * cp-dem.c (optable): Add new ANSI equivalences. ! 4764: (cplus_demangle): Fixed to recognize new ANSI demangling. Note that ! 4765: old-style destructors, and possibly other codes were broken by the ! 4766: (undocumented) 27 Oct changes. ! 4767: ! 4768: * cp-decl2.c (grokclassfn): Set DECL_CLASS_CONTEXT here. ! 4769: * cp-class.c (finish_struct): Don't skip over FUNCTION_DECL that ! 4770: already has a DECL_CLASS_CONTEXT. ! 4771: ! 4772: * cp-except.c (cplus_expand_end_try): Set BLOCK_HANDLER_BLOCK for ! 4773: blocks that handle exceptions. ! 4774: (EXCEPTION_NAME_PREFIX): Shorted to "__ex" (from "__exception"). ! 4775: (EXCEPTION_NAME_LENGTH): Reduced to 4 from 12. ! 4776: ! 4777: * dbxout.c (flag_minimal_debug): Define new variable that is ! 4778: non-zero when symtab output routines can output abbreviated. ! 4779: (dbxout_type_fields): Move code that writes out debugging info about ! 4780: fields of RECORD_TYPE and UNION_TYPE nodes from `dbxout_type' into ! 4781: this function. ! 4782: (dbxout_type_{method,method_1}): Move code from `dbxout_type' into ! 4783: these new functions. ! 4784: (dbxout_type): Now writes out info about basetypes. Also, no longer ! 4785: need to record info about types having ctors, dtors, or both. GDB ! 4786: now figures out what it needs to, when it needs to. ! 4787: (dbxout_symbol): Implement special abbreviated form for C++ classes, ! 4788: which place their names in both the struct and decl namespaces. ! 4789: (dbxout_block): Write out special debugging stabs for exception ! 4790: handler blocks. ! 4791: ! 4792: * tree.h (BLOCK_HANDLER_BLOCK): Define new flag to indicate that a ! 4793: BLOCK is an exception handler block (a `catch' block for C++). ! 4794: (TREE_VFIELD, DECL_IGNORED_P): New macros. ! 4795: ! 4796: Sat Nov 16 22:21:56 1991 Jeffrey A Law (law at super.super.org) ! 4797: ! 4798: * tm-m68k.h (CONST_COSTS): Integer values between -128 and 127 ! 4799: inclusive are very cheap because of moveq. ! 4800: ! 4801: Sat Nov 16 00:40:04 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 4802: ! 4803: * Makefile.in (install-cross-tools): Avoid clobbering symlinks already ! 4804: made. Double the $ before the @ in the indirection script. ! 4805: ! 4806: * t-decstatn: New file. ! 4807: * configure: (mips-dec-ultrix*): Use t-decstatn. ! 4808: ! 4809: * collect-ld: Always run collect if collect is installed. ! 4810: ! 4811: * collect-osf.c, enquire.c, gnulib2.c: Use gstddef.h, not stddef.h. ! 4812: ! 4813: * gnulib2.c (__eprintf): Undef NULL. ! 4814: ! 4815: * c-typeck.c (build_array_ref): Ref is volatile if array is volatile. ! 4816: ! 4817: Fri Nov 15 19:53:41 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) ! 4818: ! 4819: * c-typeck.c (build_binary_op_nodefault): Delete ERROR_CODE ! 4820: argument because it is always the same as CODE. Add new argument ! 4821: CONVERT_P, and call default_conversion on the operand trees if ! 4822: true. Rename to build_binary_op. ! 4823: (old build_binary_op): Deleted because it is now unnecessary. ! 4824: * c-common.c, c-convert.c, c-decl.c, c-tree.h, c-typeck.c: All ! 4825: callers and other references to build_binary_op* fixed. ! 4826: * c-typeck.c (new build_binary_op): Add warning message for ! 4827: comparisons of signed and unsigned variables that won't give the ! 4828: expected result due to unexpected sign extension. ! 4829: ! 4830: * expr.c (convert_move): Add TFmode support and clean up code. ! 4831: * optabs.c (init_fixtab): Add TFmode support. ! 4832: (init_floattab): Likewise. ! 4833: (expand_float): Likewise. ! 4834: (expand_fix): Likewise. ! 4835: (init_optabs): Likewise. ! 4836: ! 4837: From Per Bothner: ! 4838: * collect2.c: Define vfork as fork for USG. Rewrite to not use ! 4839: prototypes, so it doesn't need gcc for compilation. ! 4840: (main): No longer uses static sized array for ld arguments, so ! 4841: that long command lines will work. Vfork ld instead of running ! 4842: via popen with nm. ! 4843: (write_hooks): Use type names not variable names in sizeof calls. ! 4844: ! 4845: Fri Nov 15 15:01:41 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 4846: ! 4847: * fold-const.c (size_int): Properly preserve old obstack settings. ! 4848: * c-decl.c (finish_decl, grokdeclarator, xref_tag): Likewise. ! 4849: * stor-layout.c (layout_type): Likewise. ! 4850: * varasm.c (output_constant_def): Likewise. ! 4851: * tree.c (push_obstacks_nochange): New function. ! 4852: ! 4853: * stor-layout.c (layout_type): Make size of temp type saveable. ! 4854: * tree.c (saveable_allocation): New function. ! 4855: ! 4856: * configure: Comment out certain alternatives not yet updated. ! 4857: (sparc-unicom-*, m68k-tti1-*, m68-tti2-*): New alternatives. ! 4858: (m88k-*-v88r32*): New alternative. ! 4859: (i386-alternate-sysv): New alternative, not sure why. ! 4860: (sparc-*-sysv*): Commented out--not really supported. ! 4861: ! 4862: Fri Nov 15 22:22:32 PDT 1991 Mike Stump (mrs at csun.edu) ! 4863: ! 4864: * configure: Recognize only canonical names. Added missing entries ! 4865: for some configurations that obviously have not been tested in a ! 4866: while. ! 4867: ! 4868: * config.subr: Massive overhaul. It claimed to canonicalize ! 4869: the machine specification, but it never really did. Now it ! 4870: does. In general, it is not necessary to specify the os for ! 4871: popular machines that have a popular os, or given the os, it ! 4872: can sometimes figure out the vendor. Added in all the old ! 4873: ways of specifying machines from configure. Also added ! 4874: support for all (before it was missing a few) of the tm-*.h ! 4875: files. It now supports the concept of guessing the vendor for ! 4876: a given CPU type. It now supports the concept of guessing the ! 4877: os version given the vendor and/or the CPU type. Changed the ! 4878: default os for vax to ultrix, changed the default os for i386 ! 4879: to sco. ! 4880: ! 4881: * collect-ld: New file. It is useful when compiling C++ programs ! 4882: on machines that use collect. This includes the decstation. ! 4883: ! 4884: Fri Nov 15 14:19:29 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) ! 4885: ! 4886: * out-sparc.c: Singlemove_string no longer static. ! 4887: (emit_move_sequence): Emit sethi/low_sum insn pair for values which ! 4888: are not arith_double_operands, was missing not. ! 4889: * sparc.md: DImode sethi pattern now uses singlemove_string to load ! 4890: a constant into a reg. ! 4891: * tm-sparc.h (LEGITIMATE_CONSTANT_P): Accept anything except a ! 4892: floating point constant. ! 4893: Declare singlemove_string so it can be used in sparc.md. ! 4894: ! 4895: * jump.c (jump_optimize): Correct typos in comments. ! 4896: ! 4897: Fri Nov 15 08:05:26 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 4898: ! 4899: * out-rs6000.c (scc_comparison_operator): Allow non-FP EQ. ! 4900: ! 4901: * combine.c (subst, case NEG): Correct shift count in code that ! 4902: negates ZERO_EXTRACT to SIGN_EXTRACT. ! 4903: ! 4904: Thu Nov 14 23:03:46 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 4905: ! 4906: * genrecog.c (try_merge_1): Add big new comment. ! 4907: ! 4908: Thu Nov 14 19:28:57 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 4909: ! 4910: * m68k.md: Fix peephole that merges a stack adjust with a push to ! 4911: use addqw instead of addql since we know we are incrementing an ! 4912: address register (sp). ! 4913: ! 4914: * loop.c (scan_loop): Rework code that looks for loops starting at the ! 4915: exit test; don't skip non-jump insns at start of loop and modernize ! 4916: and clean up code. ! 4917: ! 4918: * gcc.texinfo (SECONDARY_RELOAD_CLASS): Update description to ! 4919: show uses for both intermediate and scratch registers. ! 4920: * reload.h (SECONDARY_{INPUT,OUTPUT}_RELOAD_CLASS): Default from ! 4921: SECONDARY_RELOAD_CLASS, if defined. ! 4922: (HAVE_SECONDARY_RELOADS): Defined if any of the secondary reload ! 4923: macros are defined. ! 4924: (reload_secondary_icode, reload_{in,out}_optab): New vars. ! 4925: * reload.c: Include insn-codes.h. ! 4926: (find_secondary_reload): New function. ! 4927: (push_reload): Call find_secondary_reload to process input and ! 4928: output reloads. Create both secondary and tertiary reloads, ! 4929: as required. ! 4930: * reload1.c: Include insn-codes.h. ! 4931: (init_reload): Initialize reload_{in,out}_optab. ! 4932: (emit_reload_insns): Handle cases where a secondary reload ! 4933: is a scratch register and where tertiary reloads are required. ! 4934: * Makefile.in (reload.o, reload1.o): Now include insn-codes.h. ! 4935: ! 4936: * tm-romp.h (SECONDARY_OUTPUT_RELOAD_CLASS): Define to use a BASE_REGS ! 4937: for symbolic memory locations. ! 4938: * romp.md (reload_outsi, reload_outhi, reload_outqi): New patterns. ! 4939: ! 4940: * expr.c (expand_expr): Pass BRANCH_COST to do_store_flag. ! 4941: (do_store_flag): Canonicalizations done in emit_store_flag ! 4942: need to be done here as well. ! 4943: Test for ffs as well as abs when seeing if scc is expensive. ! 4944: * expmed.c (emit_store_flag): Correct cases that are open-coded: ! 4945: Add a few missing cases and correct handling of normalizep. ! 4946: * combine.c (simplify_shift_const, case IOR): Convert sequence ! 4947: open-coded by emit_store_flag into LE or (neg (le ..)), as ! 4948: appropriate. ! 4949: (simplify_shift_const, case MINUS): Similarly, for GT. ! 4950: (simplify_comparison): sign_bit_comparison_p now true only if ! 4951: also comparing against constant zero. ! 4952: (simplify_comparison, case NOT): If sign bit comparison, just ! 4953: reverse comparison. ! 4954: (simplify_comparison, case MINUS): Move case where we subtract ! 4955: one from the absolute value of something to PLUS, since we ! 4956: subtract one using a PLUS operation. ! 4957: (simplify_comparison, case MINUS): Handle GT case done by ! 4958: emit_store_flag. ! 4959: (simplify_comparison, cae IOR): Similarly, for IOR. ! 4960: ! 4961: * tm-rs6000.h (BRANCH_COST): Define as 2. ! 4962: * rs6000.md (scc): Allow some more cases. ! 4963: (new scc patterns): Add numerous patterns to reflect superoptimizer ! 4964: results for scc insns on RS/6000. ! 4965: ! 4966: Thu Nov 14 16:42:19 1991 Michael Meissner (meissner at osf.org) ! 4967: ! 4968: * mips-tfile.c (all): Change small allocation requests to use ! 4969: separate allocation and free functions, instead of using the word8 ! 4970: union to hold each request. In order to support this easily, a free ! 4971: field was added to each small structure that is released. ! 4972: (main): If debugging, print a summary of the number of small ! 4973: allocations, frees, and the number of pages used. ! 4974: (add_procedure, copy_objects): Stuff the pointer to the end symbol ! 4975: into the shash chain, and use it's value to generate the new value ! 4976: for the computed end block. This is much safer than trying to ! 4977: calculate this on the fly. ! 4978: (main): Don't try to avoid using malloc by setvbuf'ing the streams ! 4979: we use. ! 4980: ! 4981: Wed Nov 13 23:47:10 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) ! 4982: ! 4983: From [email protected]: ! 4984: * sparc.md: In DF load peephole, use operands not xoperands, so ! 4985: that output_asm_insn will use the right values. ! 4986: ! 4987: * tm-sun3.h, tm-sun2os4.h: Define PTRDIFF_TYPE, SIZE_TYPE, ! 4988: WCHAR_TYPE same as tm-sparc.h. ! 4989: ! 4990: * c-decl.c (finish_function): Don't clear current_function_decl ! 4991: for nested functions. ! 4992: ! 4993: * dbxout.c: Include insn-config.h and reload.h. ! 4994: (dbxout_symbol): Pass DECL_RTL (decl) through eliminate_regs before ! 4995: using. ! 4996: (dbxout_parms): Pass DECL_RTL and DECL_INCOMING_RTL of parms through ! 4997: eliminate_regs before using. ! 4998: * sdbout.c: Include insn-config.h and reload.h. ! 4999: (sdbout_symbol): Pass DECL_RTL (decl) through eliminate_regs before ! 5000: using. ! 5001: (sdbout_parms): Pass DECL_RTL and DECL_INCOMING_RTL of parms through ! 5002: eliminate_regs before using. ! 5003: * Makefile.in: Update dependency lists for dbxout.c and sdbout.c. ! 5004: ! 5005: * combine.c (try_combine): Don't pass sets with (USE (MEM ...)) ! 5006: dests to reg_referenced_p. ! 5007: ! 5008: Wed Nov 13 21:38:03 1991 John Bunda (bunda at cs.utexas.edu) ! 5009: ! 5010: * reload1.c (gen_input_reload): If IN is a PLUS whose second arg ! 5011: is the same as the reload register, swap the args of the PLUS. ! 5012: ! 5013: Wed Nov 13 14:43:09 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) ! 5014: ! 5015: * tm-sparc.h (OPTIMIZATION_OPTIONS): Don't redefine options set in ! 5016: toplev.c, only effect flag_omit_frame_pointer. ! 5017: ! 5018: * sparc.md: Delete obsolete sign_extract and zero_extract patterns. ! 5019: We get better code without them. ! 5020: (indirect_jump, tablejump): Extend indirect_jump pattern to accept ! 5021: any address, not just a register. Add tablejump like pattern which ! 5022: also accepts any address. ! 5023: ! 5024: * unroll.c (final_biv_value): Make sure the initial value of the biv ! 5025: is invariant if it is used after the loop. ! 5026: ! 5027: Tue Nov 12 23:16:51 1991 Michael Meissner (meissner at osf.org) ! 5028: ! 5029: * tm-mips.h (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Correct so ! 5030: ASM_OUTPUT_REG_PUSH actually does a push instead of pop, and vica ! 5031: versa. Also make ASM_OUTPUT_REG_POP turn on .set noreorder, and ! 5032: increment the appropriate -mstats load delay counters. ! 5033: ! 5034: Tue Nov 12 22:53:45 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 5035: ! 5036: * expr.h (BRANCH_COST): Supply default value here. ! 5037: * jump.c (BRANCH_COST): Don't default BRANCH_COST here. ! 5038: ! 5039: * global-alloc.c (global_alloc): Use proper entry in eliminables ! 5040: when searching for the frame pointer. ! 5041: ! 5042: Tue Nov 12 22:23:36 1991 Jim Wilson (wilson at sphagnum.cygnus.com) ! 5043: ! 5044: * expr.c: (expand_expr, MIN_EXPR case): Check for const_true_rtx ! 5045: not const1_rtx as return value from compare_from_rtx. ! 5046: (do_jumps_by_part_greater): Handle const0_rtx and const_true_rtx ! 5047: return values from compare_from_rtx. ! 5048: (do_jumps_by_part_equality, do_jumps_by_part_equality_rtx): Likewise. ! 5049: ! 5050: * sched.c (sched_analyze_2): Correctly handle ASM_OPERAND and ! 5051: ASM_INPUT rtx. Volatile and traditional asm statements are ! 5052: assumed to use and clobber all hard registers and all memory. ! 5053: (schedule_block): Delete code that incorrectly handles ASM_OPERAND ! 5054: and ASM_INPUT rtx by exiting early. ! 5055: ! 5056: Tue Nov 12 15:38:56 1991 Tom Wood (wood at dg-rtp.dg.com) ! 5057: ! 5058: * sched.c: Introduce names for various priority values. Reduce ! 5059: LAUNCH_PRIORITY to avioid wrap-around in launch_link. ! 5060: ! 5061: Tue Nov 12 14:21:52 1991 Per Bothner (bothner at cygnus.com) ! 5062: ! 5063: * cp-lex.c (init_lex): Exception-handling fixes. ! 5064: * cp-tree.h: Add new OPERATOR_CHARS_P that is like ! 5065: OPERATOR_NAME_P, except if takes a (char*), not a tree. ! 5066: * cp-dbxout.c (dbxout_type_methods): Handle operators ! 5067: specially when chopping prefix for minimal_debug. ! 5068: ! 5069: * config/tm-news.h: In PRINT_OPERAND, recognize new 68040 ! 5070: operand types. Add definition of CPP_DEFINES for cross-compiling. ! 5071: ! 5072: Tue Nov 12 13:11:01 1991 Michael Meissner (meissner at osf.org) ! 5073: ! 5074: * protoize.c (__OSF1__ ifdef): Remove OSF/1 specific ifdefs, since ! 5075: the problem they address has been fixed, and the ifdefs now cause ! 5076: spurious warnings. ! 5077: ! 5078: * tm-mips.h (INT_TYPE_SIZE): Define. ! 5079: (SHORT_TYPE_SIZE): Define. ! 5080: (LONG_TYPE_SIZE): Define. ! 5081: (LONG_LONG_TYPE_SIZE): Define. ! 5082: (CHAR_TYPE_SIZE): Define. ! 5083: (FLOAT_TYPE_SIZE): Define. ! 5084: (DOUBLE_TYPE_SIZE): Define. ! 5085: (LONG_DOUBLE_TYPE_SIZE): Define. ! 5086: ! 5087: * out-mips.c (block_move_load_store): New commn function to create ! 5088: one load and store for the block move functions. The load is ! 5089: emitted directly, and the store is returned, to be emitted later. ! 5090: (block_move_sequence): Call block_move_load_store. For straight ! 5091: line moves, have two outstanding loads before a store, for newer ! 5092: machines that want two delay slots. ! 5093: (block_move_loop): Call block_move_load_store. Move 4 words per ! 5094: loop, for a loop that moves 16 bytes in 11 cycles if aligned, and 16 ! 5095: bytes in 19 cycles if not aligned. ! 5096: (block_move_memcpy): Change argument names for consistancy. ! 5097: (expand_block_move): Always move address into a register, even for ! 5098: one byte moves. Fix bugs in calling memcpy. If moving a large ! 5099: constant amount of unaligned data, emit a runtime check to see if ! 5100: the data is really aligned, and if so do an aligned move, otherwise ! 5101: an unaligned move loop. ! 5102: ! 5103: * mips-tfile.c (toplevel): Make some changes, so that mips-tfile can ! 5104: be debugged on OSF/1. ! 5105: (efdr structure): Align identifiers in declaration. ! 5106: (cur_proc_value): Delete variable. ! 5107: (cur_oproc_begin): New global to record original proc .ent symbol. ! 5108: (cur_oproc_end): New global to record original proc .end symbol. ! 5109: (add_procedure): Set cur_oproc_begin, cur_oproc_end variables ! 5110: instead of cur_proc_value. ! 5111: (parse_begin, parse_end): Add check for cur_oproc_begin being set. ! 5112: (parse_end): Use cur_oproc_end's value node for new value node. ! 5113: (main): Add cast to free_multiple_pages call. ! 5114: ! 5115: Tue Nov 12 08:57:39 1991 Tom Wood (wood at dg-rtp.dg.com) ! 5116: ! 5117: * jump.c (jump_optimize): Merge the "if (...) x = 0;" case with ! 5118: the "x = a; if (...) x = b;" case. ! 5119: ! 5120: Mon Nov 11 19:27:03 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 5121: ! 5122: * cp-cvt.c (convert_pointer_to): Correctly get type of a TREE_VEC ! 5123: object. (This patch is from someone at Cygnus.) ! 5124: ! 5125: * combine.c (try_combine): Add missing parens. ! 5126: ! 5127: Mon Nov 11 19:26:24 1991 Ron Guilmette (rfg at ncd.com) ! 5128: ! 5129: * c-typeck.c (build_binary_op_nodefault, convert_for_assignment): ! 5130: A (void *) object is compatible with a function pointer if it is ! 5131: the constant zero. ! 5132: (build_conditional_expr): Properly check for pointers to functions. ! 5133: ! 5134: Sun Nov 10 19:59:12 1991 Michael Meissner (meissner at osf.org) ! 5135: ! 5136: * cccp.c (make_undef): Fix by off by one error. ! 5137: (MIN, MAX): Add #undef, in case some system include file defined ! 5138: these macros. ! 5139: ! 5140: Sun Nov 10 10:34:17 1991 Michael Tiemann (tiemann at cygnus.com) ! 5141: ! 5142: * cp-decl2.c (grokfield): Set TREE_EXTERNAL on static const ! 5143: decls that are either uninitialized in their initial declaration, ! 5144: or initialized by something we cannot evaluate at initial ! 5145: declaration time. ! 5146: ! 5147: * cp-init.c (build_new): Make `operator new' with placement cast ! 5148: its return type to the type of the object being allocated. ! 5149: ! 5150: * cp-typeck.c (commonparms): If the last element of P1 is ! 5151: VOID_LIST_NODE, use that. ! 5152: ! 5153: * stor-layout.c (layout_record): Return PENDING_STATICS. ! 5154: (layout_type): Don't commit static members to a particular mode ! 5155: until REC has been laid out completely. ! 5156: ! 5157: Sat Nov 9 23:16:51 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 5158: ! 5159: * cccp.c (fancy_abort): Don't declare as static. ! 5160: ! 5161: Sat Nov 9 20:38:30 1991 Michael Tiemann (tiemann at cygnus.com) ! 5162: ! 5163: * cp-decl.c (push_overloaded_decl): Don't cons new decl to ! 5164: existing ERROR_MARK_NODE. If the old decl was erroneous, just ! 5165: ignore it. ! 5166: ! 5167: * cp-call.c (ideal_candidate): Fix typo in error message. ! 5168: ! 5169: Sat Nov 9 14:13:46 1991 Jeffrey A Law (law at super.super.org) ! 5170: ! 5171: * tm-hp9k2bsd.h (MULSI3_LIBCALL): New define which avoids ! 5172: the use of __mulsi3 for signed integer multiplication. ! 5173: (UMULSI3_LIBCALL, DIVSI3_LIBCALL, UDIVSI3_LIBCALL): Likewise. ! 5174: (MODSI3_LIBCALL, UMODSI3_LIBCALL): Likewise. ! 5175: ! 5176: Fri Nov 8 12:05:39 1991 Per Bothner (bothner at cygnus.com) ! 5177: ! 5178: First cut at ANSI-style exception handling (using ! 5179: syntax and semantics of Stroustrup 2nd ed). ! 5180: THIS IS WORK IN PROGRESS! ! 5181: * cp-tree.h: Declare flag_ansi_exceptions. ! 5182: * gplus.gperf: Add 'throw' (for ANSI exception handling), ! 5183: and update private/protected/public from (old) cp-lex.c. ! 5184: * cp-hash.h: New file, generated from gplus.gperf. ! 5185: * cp-lex.c: #include cp-hash.h, instead of requiring ! 5186: manual cut-and-paste when keywords are changed. ! 5187: * cp-lex.c: Commented out some extern declarations that ! 5188: were conflicting with inlines in cp-input.c. ! 5189: Hooks for ANSI-style exception handling. ! 5190: * cp-parse.y: Parse ANSI-style exception stuff. ! 5191: * cp-decl2.c: Define new flag flag_ansi_exceptions. ! 5192: * cp-decl2.c (finish_table): Off-by-one error in ! 5193: calculating index type. ! 5194: * clus-decl2.c (finish_vtable_vardecl): Add missing ! 5195: TREE_OPERAND to get dossier decl. ! 5196: * cp-except (cplus_expand_start_except): Allow NULL name, ! 5197: since there is no distinguished name for ANSI exceptions. ! 5198: * cp-except (cplus_expand_raise): Too few ! 5199: parameters to expand_expr; add them. ! 5200: * cp-except.c: New functions for ANSI exceptions: ! 5201: cplus_exception_name, ansi_exception_object_lookup, ! 5202: cplus_expand_throw, ansi_expand_start_catch. ! 5203: These are heavily hacked from similar old functions. ! 5204: ! 5205: Try to make -fdossier work better (but more work is needed). ! 5206: (Especially, generate fewer unneeded descriptors.) ! 5207: * cp-class.c (add_virtual_function, finish_struct): Do not ! 5208: create a vtable just because of -fdossier. ! 5209: * cp-gc.c: Each type points to an array of fields, ! 5210: instead of an array of pointers to fields. Ditto for methods. ! 5211: This saves one pointer per field or method by removing ! 5212: unneded extra indirection. Also other tweaks to save space. ! 5213: * cp-decl.c (init_decl_processing): Add length of ! 5214: field and method arrays to descriptors, instead of ! 5215: relying on NULL-termination (since we no longer have ! 5216: the extra pointer array). ! 5217: Make the parameter count and required count of ! 5218: method descriptors be shorts. ! 5219: * cp-method.c: Remove no-longer-needed functions ! 5220: build_i_desc_overload and build_m_desc_overload. ! 5221: ! 5222: Other C++ fixes: ! 5223: * cp-dbxout.c (dbxout_symbol): Class types were ! 5224: emitting only a "t" spec which made gdb unhappy. ! 5225: Kludged it so that it once more emits "Tt". ! 5226: * cp-tree.c (lang_output_debug_info): Do emit debugging ! 5227: info if this implementation file corresponds the the ! 5228: type's interface, even if nothing is written. ! 5229: ! 5230: Fri Nov 8 08:18:55 1991 Tom Wood (wood at dg-rtp.dg.com) ! 5231: ! 5232: * tm-m88k*.h: Fix comments, minor cleanups. ! 5233: ! 5234: Thu Nov 7 16:21:05 1991 Torbjorn Granlund (tege at mole.gnu.ai.mit.edu) ! 5235: ! 5236: * longlong.h (__ibm032__): Fix operand order for add_ssaaaa and ! 5237: sub_ddmmss. ! 5238: ! 5239: Thu Nov 7 12:47:14 1991 Michael Meissner (meissner at osf.org) ! 5240: ! 5241: * tm-mips.h (MIPS_VERSION): Bump meissner version number to 3.3. ! 5242: (PCC_BITFIELD_TYPE_MATTERS): Define this to be 1. ! 5243: ! 5244: * out-mips.c (block_move_loop): New function to generate a loop to ! 5245: do a block move. ! 5246: (block_move_call): Pass the source, destination, size as separate ! 5247: arguments, rather than a pointer to an array of operands. ! 5248: (expand_block_move): Change block_move_call calling sequence. ! 5249: (expand_block_move): If moving big aligned items, generate a loop to ! 5250: do it, rather than calling memcpy/bcopy. ! 5251: (override_options): If -msoft-float, 'f' constraint picks GP ! 5252: registers. ! 5253: ! 5254: * t-decrose (collect): Use ALL_CFLAGS instead of CFLAGS, since this ! 5255: gets the shared library flags in x-decrose. ! 5256: ! 5257: Thu Nov 7 07:57:36 1991 Tom Wood (wood at dg-rtp.dg.com) ! 5258: ! 5259: * tm-m88k.h (MEMORY_MOVE_COST): Define. ! 5260: (TARGET_88*): Fix. ! 5261: ! 5262: Wed Nov 6 19:07:42 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 5263: ! 5264: * a29k.md (negsf2, negdf2): Add missing CLOBBER in 29050 case. ! 5265: ! 5266: * jump.c (jump_optimize): When looking for a conditional jump ! 5267: skipping an unconditional jump, be sure the conditional jump is ! 5268: not an unconditional jump. ! 5269: ! 5270: * combine.c (try_combine): If we make an unconditional jump, ! 5271: be sure it is followed by a BARRIER. ! 5272: (subst, case SET): Convert (set (pc) (return)) to (return). ! 5273: ! 5274: Wed Nov 6 13:41:55 1991 Tom Wood (wood at dg-rtp.dg.com) ! 5275: ! 5276: * tm-m88kv3.h, xm-m88kv3.h: Renamed from *m88ksysv3*. ! 5277: ! 5278: Wed Nov 6 09:27:16 1991 Michael Meissner (meissner at osf.org) ! 5279: ! 5280: * tm-mips.h (MIPS_VERSION): Bump meissner version number to 3.2. ! 5281: (TARGET_SWITCHES): Add -msoft-float and -mhard-float. ! 5282: (GP_RETURN): Use GP_REG_FIRST as base of GP registers. ! 5283: (FP_RETURN): Use FP_REG_FIRST as base of FP registers. If ! 5284: -msoft-float, make $2 be the return register. ! 5285: (GP_ARG_FIRST, GP_ARG_LAST): Use GP_REG_FIRST as 1st GP reg. ! 5286: (FP_ARG_FIRST, FP_ARG_LAST): Use FP_REG_FIRST as 1st FP reg. ! 5287: ! 5288: * mips.md (ffssi2, ffssi2_internal): Fix ffs builtin so that it ! 5289: doesn't clobber the input argument by turning it into a ! 5290: define_expand, and using a parallel operation including the ! 5291: necessary clobber's. ! 5292: (abssi2, ffssi2, ffssi2_internal): Use the 'd' constraint which only ! 5293: matches the integer registers, rather than 'r' which can match ! 5294: floating point registers as well. ! 5295: ! 5296: * tm-mips-news.h (CPP_SPEC): Add -Dnews7300, -Dsony_news, -Dmips, ! 5297: and -Dhost_mips. ! 5298: ! 5299: Wed Nov 6 08:46:54 1991 Mark Eichin (eichin at cygnus.com) ! 5300: ! 5301: * cp-class.c (add_method): when adding a new constructor or ! 5302: destructor, actually chain onto method_vec[0] rather than replacing ! 5303: the list with the current entry. ! 5304: ! 5305: Wed Nov 6 07:04:55 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 5306: ! 5307: * expr.c (store_field): Handle case where we are storing into a BLKmode ! 5308: field of an object that is in a register. ! 5309: (expand_expr, case COMPONENT_REF): Handle case where we are extracting ! 5310: a BLKmode field from an object in a register. ! 5311: ! 5312: Tue Nov 5 22:16:39 1991 Michael Meissner (meissner at osf.org) ! 5313: ! 5314: * tm-mips.h (target_flags): Delete second declaration. ! 5315: (MASK_G0, MASK_G1, MASK_G2): Delete, since -G xx now works to set ! 5316: the size of the small data/bss area cutoff. ! 5317: (MASK_G012_USED, MASK_G012_NUSED): ditto. ! 5318: (TARGET_GVALUE): ditto. ! 5319: (TARGET_G012_USED): ditto. ! 5320: (TARGET_SWITCHES): Delete -mGx, -mno-Gx switches. ! 5321: (TARGET_DEFAULT): Set to 0 instead of MASK_G012_NUSED. ! 5322: ! 5323: * tm-decrose.h (TARGET_DEFAULT): Eliminate MASK_G012_NUSED. ! 5324: ! 5325: * out-mips.c (override_options): Remove support for -mGx and -mno-Gx ! 5326: switches to set the cutoff size for small data/bss. ! 5327: ! 5328: * mips.md (abssi2): Add new pattern. ! 5329: (ffssi2): Add new pattern. ! 5330: ! 5331: Tue Nov 5 18:36:29 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 5332: ! 5333: * gcc.texinfo (MEMORY_MOVE_COST): Document new macro. ! 5334: * regclass.c (MEMORY_MOVE_COST): Default it to 2. ! 5335: (regclass, reg_class_record): Use MEMORY_MOVE_COST, not constant 2. ! 5336: (regclass): Look at result of single_set instead of checking again if ! 5337: pattern is a SET. ! 5338: * tm-rs6000.h (MEMORY_MOVE_COST): Add definition. ! 5339: ! 5340: Tue Nov 5 17:01:05 1991 Ken Raeburn (raeburn at cygnus.com) ! 5341: ! 5342: * cp-pt.c (tsubst): For char_type_node, just build variant and ! 5343: return it. ! 5344: (tsubst, case FUNCTION_DECL): Walk methods more efficiently. ! 5345: ! 5346: * cp-pt.c (overload_template_name): Push a binding level, to ! 5347: separate template name binding from method parameters. Check ! 5348: identifier value slots for TYPE_DECLs, not RECORD_TYPEs. Don't need ! 5349: to do extra push of TYPE_DECL for template name. ! 5350: (undo_template_name_overload): Pop it. Don't need to explicitly ! 5351: clear template name binding. ! 5352: ! 5353: * cp-ptree.c (print_lang_decl): For FIELD_DECL, don't try to ! 5354: print fields that go off the end of the lang_decl_flags structure. ! 5355: ! 5356: * cp-pt.c (pop_template_decls): Don't explicitly clear out value ! 5357: slots of identifier; let poplevel/poplevel_class do it. ! 5358: ! 5359: * cp-pt.c: Use build_lang_decl insteaed of build_decl for ! 5360: all TEMPLATE_DECL and TYPE_DECL nodes. ! 5361: ! 5362: * cp-tree.h (make_anon_name): Declare it. ! 5363: ! 5364: * cp-pt.c (unify): Deleted unreachable code. ! 5365: ! 5366: * cp-decl.c (push_overloaded_decl): Fixed typo from merge. ! 5367: (start_decl): Ditto. ! 5368: (grokdeclarator, case CALL_EXPR): Remove debug_tree call ! 5369: accidentally left in. Handle constructor templates specially, like ! 5370: destructor templates. Removed some commented-out code. ! 5371: (grokdeclarator, case SCOPE_REF): If the type is uninstantiated, ! 5372: treat it like any other aggregate type code. ! 5373: ! 5374: * cp-lex.c (identifier_typedecl_value): If no binding slot from ! 5375: the identifier is the right type decl, use the type name if it is ! 5376: non-null, even if the name doesn't match. ! 5377: (build_lang_decl): If new decl node is TREE_PERMANENT, make sure the ! 5378: lang-specific info gets allocated that way too; don't assume that ! 5379: the current obstack is permanent. ! 5380: (copy_decl_lang_specific): If decl is TREE_PERMANENT, assert that ! 5381: the current obstack is permanent. ! 5382: ! 5383: * cp-parse.y (template_def): Delete derivations that were ! 5384: purportedly for constructors; they didn't work. ! 5385: (notype_declarator): Deal with them here. ! 5386: (template_instantiate_once): Copy decl node with permanent obstacks, ! 5387: thereby clearing the chain pointer, before pushing it into top ! 5388: level. ! 5389: (structsp): Don't need to undo template name overload here. ! 5390: (scoped_typename): Want TYPENAME with template type, not PTYPENAME. ! 5391: ! 5392: Tue Nov 5 13:46:06 1991 Tom Wood (wood at dg-rtp.dg.com) ! 5393: ! 5394: * sdbout.c (sdbout_init, sdbout_symbol): Don't reverse the ! 5395: permanent types. ! 5396: ! 5397: * cccp.c (make_definition): Eliminate previous change associated ! 5398: with pretty-printing strings passed to do_define. ! 5399: (pass_thru_directive): Move pretty-printing here. ! 5400: ! 5401: Tue Nov 5 11:21:34 1991 Michael Meissner (meissner at osf.org) ! 5402: ! 5403: * tm-mips-news.h (ASM_SPEC, LINK_SPEC): Correctly pass -EB instead ! 5404: of -EL, since the Sony News system is big endian not little endian. ! 5405: ! 5406: Tue Nov 5 09:54:08 1991 Tom Wood (wood at dg-rtp.dg.com) ! 5407: ! 5408: * tm-m88kv4.h, t-m88kv4, x-m88kv4: Renamed from *m88ksysv4*. ! 5409: ! 5410: Tue Nov 5 06:36:07 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 5411: ! 5412: * cse.c (simplify_relational_operation, unsigned comparisons): Don't ! 5413: simplify unless mode of operand is a MODE_INT mode. ! 5414: ! 5415: * Makefile.in (*CFLAGS): More clearly document the purposes of each ! 5416: of the flags. Add X_CFLAGS and T_CFLAGS for x-* and t-* to override. ! 5417: * x-decrose, x-hp9k320g, x-i386isc, x-m88ksysv4, x-mips, x-tower: ! 5418: Override X_CFLAGS instead of CFLAGS or INTERNAL_CFLAGS. ! 5419: * x-vax: Likewise. ! 5420: * x-sco: Don't include XCFLAGS in definition of CFLAGS. ! 5421: ! 5422: * gstddef.h: Renamed from stddef.h. ! 5423: * Makefile.in (USER_H, install-common-headers): Install gstddef.h as ! 5424: stddef.h. ! 5425: ! 5426: Mon Nov 4 17:54:04 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 5427: ! 5428: * integrate.c (save_constants): If we are referencing a constant in ! 5429: the constant pool in a different mode than its normal mode, make ! 5430: a SUBREG so that we can record both modes. ! 5431: (copy_for_inline, restore_constants): Handle these SUBREG's. ! 5432: (copy_for_inline): Must copy a MEM if it's address contains an ! 5433: ADDRESS (i.e., the address of a constant pool entry). ! 5434: ! 5435: * expr.c (expand_expr, case PLUS_EXPR): If adding constant, FP, and ! 5436: something else, add FP to the constant and then add the other operand. ! 5437: ! 5438: * global-alloc.c (find_reg): If all_regs_p, use ALL_REGS, not ! 5439: GENERAL_REGS. ! 5440: * local-alloc.c (block_alloc): Likewise. ! 5441: ! 5442: * genoutput.c (gen_expand): Record all the same information as ! 5443: for a DEFINE_INSN. ! 5444: ! 5445: * cse.c (simplify_binary_operation, case PLUS): Simplify expressions ! 5446: like (a +/- b) - (a +/- c). ! 5447: (simplify_binary_operation, case MULT): For X * (-1), try to simplify ! 5448: the NEG before we make it. ! 5449: ! 5450: Mon Nov 4 16:29:01 1991 Mark Eichin (eichin at cygnus.com) ! 5451: ! 5452: * cp-pt.c (overload_template_name): use build_lang_decl so that ! 5453: lang_specific gets initialized properly. ! 5454: ! 5455: * cp-parse.y (LC): use make_lang_type to produce complete node, ! 5456: not just make_node. ! 5457: ! 5458: * cp-ptree.c (print_lang_type): return if TYPE_LANG_SPECIFIC is ! 5459: null, since everything printed here is in lang_specific. ! 5460: ! 5461: Mon Nov 4 16:17:48 1991 James Van Artsdalen (james at raid.dell.com) ! 5462: ! 5463: * x-i386v4: New file. ! 5464: * configure (i386-sysv4): Use it. ! 5465: ! 5466: Mon Nov 4 12:36:09 1991 Michael Meissner (meissner at osf.org) ! 5467: ! 5468: * gcc.texinfo (BRANCH_COST): Move so BRANCH_COST formats correctly. ! 5469: ! 5470: Mon Nov 4 08:03:44 1991 Tom Wood (wood at dg-rtp.dg.com) ! 5471: ! 5472: * x-m88kdgux, x-m88ksysv4: Don't set XCFLAGS. ! 5473: ! 5474: * jump.c (jump_optimize): Change "if (...) x = 0;" to use a ! 5475: store-flag insn if jumps are expensive (BRANCH_COST). ! 5476: ! 5477: * tm-m88k.h (BRANCH_COST): Branches are cheap on the m88100. ! 5478: (OVERRIDE_OPTIONS): Make m88100 the default. ! 5479: (STORE_FLAG_VALUE): Use -1. ! 5480: (.ctors and .dtors sections): Change section flags. ! 5481: * m88k.md (sxx, negate sxx): Use ext and extu. Eliminate extendsxx. ! 5482: ! 5483: Mon Nov 4 07:19:36 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 5484: ! 5485: * romp.md (movdf, movdi): When splitting, ensure we put in a CLOBBER ! 5486: for a scratch register, when needed. ! 5487: ! 5488: * tm-a29k.h (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE): Define to be ! 5489: compatible with those chosen by EPI. ! 5490: ! 5491: * tm-rs6000.h (REG_ALLOC_ORDER): Put CR registers before integer regs. ! 5492: ! 5493: * cse.c (simplify_relational_operation): Fix error in last change. ! 5494: ! 5495: Sun Nov 3 12:22:41 1991 Torbjorn Granlund (tege at sics.se) ! 5496: ! 5497: * longlong.h (m68020 count_leading_zeros): Fix typo in previous ! 5498: change. ! 5499: ! 5500: Sun Nov 3 09:25:39 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 5501: ! 5502: * cse.c (simplify_relational_operation, cases GEU, LTU, GTU, LEU): ! 5503: Simplify comparisons that have known values such as (unsigned) x < 0. ! 5504: ! 5505: * final.c (final_scan_insn): If we've just made a branch unconditional, ! 5506: convert (set (pc) (return)) to (return). ! 5507: Use const_true_rtx instead of calling gen_rtx to make it again. ! 5508: ! 5509: * x-romp (CC): Pass -Hnocpp to hc so it will use builtin preprocessor. ! 5510: (INTERNAL_CFLAGS): Don't define BSTRING here. ! 5511: * xm-romp.h (alloca): Add definition to allow use of hc's builtin. ! 5512: (BSTRING): Define here. ! 5513: ! 5514: * reload1.c (spill_hard_reg): Correct typo in previous change; had ! 5515: test backwards. ! 5516: ! 5517: * function.c (instantiate_virtual_regs_1, case PLUS): If can't ! 5518: replace operand with register, try to replace all copies of operand ! 5519: with the register in case of MATCH_DUP. ! 5520: ! 5521: * recog.c (validate_replace_rtx_1): Use rtx_equal_p to see if ! 5522: things are equal. ! 5523: ! 5524: * genconfig.c (max_recog_operands, max_dup_operands): Remove `_flag' ! 5525: in name since these aren't flags. ! 5526: (max_clobbers_per_insn): Likewise. ! 5527: (main): Default to at least 10 operands (for asm) and 1 dup operand. ! 5528: ! 5529: Sun Nov 3 07:26:57 1991 Ron Guilmette (rfg at ncd.com) ! 5530: ! 5531: * Makefile.in (gnulib1.null): Use $(GCC_FLAGS) instead ! 5532: of $(CCLIBFLAGS). ! 5533: (gnulib1): Don't copy gnulib1.c into a temporary .c file before ! 5534: compiling. That messes up the source file names in the debug info, ! 5535: which makes it harder to debug gnulib1 problems. ! 5536: ! 5537: * Makefile.in (install-*): Force removal of previously installed files ! 5538: before installing new ones (in case they got set to read-only somehow). ! 5539: ! 5540: * Makefile.in (uninstall): Remove protoize.1 and unprotoize.1 man ! 5541: page files. ! 5542: ! 5543: Sat Nov 2 22:42:06 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 5544: ! 5545: * out-a29k.c (output_epilog): Remove write_symbols from parameter list ! 5546: of call to final_scan_insn. ! 5547: * out-m88k.c (preserve_registers): Likewise. ! 5548: * out-mips.c (function_epilogue): Likewise. ! 5549: * out-sparc.c (output_function_epilogue, output_tail_call): Likewise. ! 5550: ! 5551: Sat Nov 2 22:02:45 1991 Ken Raeburn (raeburn at cygnus.com) ! 5552: ! 5553: * cp-search.c (push_class_decls): Added missing argument to ! 5554: overload_template_name. ! 5555: ! 5556: * cp-ptree.c (print_lang_decl): Don't print lang-specific fields ! 5557: for FIELD_DECL, since it has only the shorter flags structure. ! 5558: ! 5559: * cp-class.c (finish_struct_method): Fixed comment typo. ! 5560: ! 5561: * cp-decl.c: Add some code for debugging binding level ! 5562: manipulations, conditionalized on DEBUG_CP_BINDING_LEVELS. ! 5563: (debug_bindings_indentation): New var, used to maintain indentation ! 5564: to indicate which changes are on the behalf of other routines. ! 5565: (push_binding_level): Print debugging messages to track binding ! 5566: level changes and call/nesting sequences. ! 5567: (pushlevel, poplevel): Ditto. ! 5568: (pushlevel_class): Ditto. ! 5569: (pop_binding_level): Ditto. Also scribble over freed binding level, ! 5570: and don't store it for re-use. ! 5571: (poplevel_class): Ditto. ! 5572: * cp-decl.h (debug_bindings_indentation): Declare it. ! 5573: * cp-pt.c (push_template_decls, pop_template_decls): Added ! 5574: debugging fprintf calls here too. ! 5575: ! 5576: Sat Nov 2 17:00:22 1991 Ron Guilmette (rfg at ncd.com) ! 5577: ! 5578: * cp-except.c (finish_exception_decl): Change `enum debugger' to ! 5579: `enum debug_info_type'. ! 5580: * final.c (final_start_function, final, final_end_function, ! 5581: output_source_line): Delete the `write_symbols' parameter. ! 5582: Instead use the global `write_symbols' declared in flags.h. ! 5583: * sched.c (unlink_notes, schedule_block, schedule_insns): Compare ! 5584: `write_symbols' with NO_DEBUG rather than with zero. ! 5585: * toplev.c (rest_of_decl_compilation, rest_of_compilation): Don't ! 5586: pass `write_symbols' to assemble_variable, final_start_function, ! 5587: final, final_end_function. ! 5588: * varasm.c (assemble_variable): Delete the `write_symbols' parameter. ! 5589: Instead use the global`write_symbols' declared in flags.h ! 5590: ! 5591: Sat Nov 2 09:48:47 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 5592: ! 5593: * caller-save.c: Don't include reload.h; not used. ! 5594: * Makefile.in (caller-save.o): Likewise. ! 5595: ! 5596: * final.c (final_start_function, final_end_function, final): Change ! 5597: enum debugger to enum debug info to finish previous change. ! 5598: (final_scan_insn, output_source_line): Likewise. ! 5599: * varasm.c (assemble_variable): Likewise. ! 5600: ! 5601: * rtlanal.c (modified_between_p, find_last_value): New functions; not ! 5602: yet used. ! 5603: * rtl.h (find_last_value): Declare. ! 5604: ! 5605: * cse.c (simplify_binary_operation): Remove comparison cases from ! 5606: here; now in simplify_relational_operation. ! 5607: ! 5608: Fri Nov 1 19:04:50 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 5609: ! 5610: * rtl.h (REG_DEAD): More precisely describe when a REG_DEAD note ! 5611: should be present. ! 5612: * rtlanal.c (dead_or_set_regno_p): New function. ! 5613: (dead_or_set_p): A value is dead or set only if each register in it ! 5614: is dead or set. ! 5615: * combine.c (reg_bitfield_target): New function. ! 5616: (distribute_notes, case REG_DEAD): Place REG_DEAD note only if both ! 5617: dead_or_set_p and reg_bitfield_target are false. ! 5618: * flow.c (cc0_live): New variable; replaces following_insn_dead. ! 5619: (propagate_block): Initialize cc0_live instead of following_insn_dead. ! 5620: Track CC0's life just like other regs instead of using special ! 5621: mechanism involving following_insn_dead. ! 5622: Clear last_mem_set even when not final pass. ! 5623: Don't call mark_used_regs on dead insns. ! 5624: (insn_dead_p): Use cc0_live to see if a set of CC0 is dead. ! 5625: Correctly test if set of multi-word value is needed; set if dead only ! 5626: if none of the words are needed. ! 5627: (libcall_dead_p): Allow CALL to be in any part of PARALLEL. ! 5628: Use insn_dead_p to see if SET of return register is dead; old code ! 5629: incorrectly tested multi-word registers. ! 5630: (mark_set_1): Track whether all or only some words of a value are ! 5631: needed; write partial REG_UNUSED note if only some words won't be ! 5632: needed. ! 5633: (mark_used_regs): Likewise for REG_DEAD notes. ! 5634: Set cc0_live for a reference to CC0. ! 5635: Don't write REG_DEAD note if register is already dead or set in INSN. ! 5636: No longer check for unused SET_DEST since it won't be called for dead ! 5637: insns; if a single SET's result was unneeded but the insn can't be ! 5638: deleted, the source of the SET is live. ! 5639: Clear last_mem_set even if not final pass. ! 5640: ! 5641: * reload1.c (gen_input_reload): Handle REG+MEM the same as REG+INT. ! 5642: ! 5643: * gcc.c (xmalloc, xrealloc): Use unsigned instead of size_t for `size'. ! 5644: ! 5645: * cccp.c (bcopy, bzero, bcmp): No longer static. Only declare at ! 5646: front of file if we are going to define them later. ! 5647: ! 5648: Fri Nov 1 18:57:25 1991 Ron Guilmette (rfg at ncd.com) ! 5649: ! 5650: * cccp.c (timebuf): Declaration moved out of `special_symbol' and ! 5651: made global (and "static") to get values of __DATE__ and __TIME__ ! 5652: to remain constant throughout compilation. ! 5653: (debug_output): New variable. ! 5654: (main): Accept -g3 option and set debug_output when seen. ! 5655: (main): Moved initializations of `outbuf' and `fp' to before call ! 5656: to `initialize_builtins'. ! 5657: Pass fp and &output to initialize_builtins so that it can write out ! 5658: artificial #define lines for builtin symbols. ! 5659: Call `output_line_directive' before doing each make_define or ! 5660: make_undef so that when `debug_output' is in effect, we'll ! 5661: get #line 0 directives before each artificial #define or #undef. ! 5662: (special_symbol): Initialization of `timebuf' deleted from here. ! 5663: (initialize_builtins): Initialize timebuf here. ! 5664: (pass_thru_directive): New function. ! 5665: (do_define, do_undef): Use `pass_thru_directive' for "precompilation" ! 5666: of header files. ! 5667: Call `pass_thru_directive' when -g3 option used. ! 5668: (initialize_builtins): Generate artificial #define directives (in the ! 5669: output) to represent the values of all builtin symbols whose defs ! 5670: can't change during compilation. ! 5671: (make_undef): Added output buffer param so that make_undef could let ! 5672: do_undef do output to stdout. ! 5673: Call do_undef with a real output buffer. ! 5674: (make_definition): Likewise. ! 5675: Many minor changes to get strings passed to do_define to always look ! 5676: like correctly formed #define directives. ! 5677: ! 5678: * c-decl.c (store_parm_decls): Remove non-params from the list before ! 5679: checking to see if the type of any element of the list is complete. ! 5680: (pushlevel): Fixed bug which caused scope of tagged types to be ! 5681: incorrectly assigned to the outermost {} block of functions rather ! 5682: than to the outermost binding contours of functions. ! 5683: (pushtag): Revised to clarify code used to find applicable ! 5684: binding level for a tagname. ! 5685: Set TYPE_CONTEXT of new tagged type so that dwarfout.c can tell ! 5686: file-scope tagged types from non-file-scope tagged types. ! 5687: Create a NULL-named TYPE_DECL node for each new tagged type ! 5688: (even incomplete ones). ! 5689: (finish_struct, finish_enum): Don't create NULL-named ! 5690: TYPE_DECL nodes for complete tagged types. (This is now done in ! 5691: `pushtag' for *all* new tagged type declarations and definitions.) ! 5692: ! 5693: * toplev.c (compile_file): Adjust conditions under which ! 5694: `dwarfout_file_scope_decl' is called during final traversal of ! 5695: the chain of file-scope decls so that it is called also for ! 5696: file-scope TYPE_DECLs. ! 5697: (rest_of_decl_compilation): Deleted call to `dwarfout_file_scope_decl' ! 5698: for file-scope TYPE_DECLs; call `dwarfout_file_scope_decl' instead of ! 5699: `dwarfout_file_scope_symbol'. ! 5700: ! 5701: * dbxout.c, sdbout.c, flags.h, toplev.c: Change DEBUG_LEVEL_* to ! 5702: DINFO_LEVEL_* to prevent possible confusion about meaning. ! 5703: ! 5704: * flags.h, toplev.c: (enum debug_info_type): Renamed type from ! 5705: `debugger' and cleaned up definition of type (including deletion ! 5706: of useless EXTENDED_DBX_DEBUG code). ! 5707: (use_gdb_dbx_extensions): Make declarations conditional on ! 5708: DBX_DEBUGGING_INFO being defined. ! 5709: ! 5710: * out-i860.c (output_fp_move_double, find_addr_reg): Add return stmts ! 5711: to avoid warnings when compiling with -Wreturn-type. ! 5712: (output_delayed_branch): Fix test for CONST_INT values which must be ! 5713: loaded in two instructions (as two halves). ! 5714: (function_epilogue): Remove ASM_OUTPUT_EPILOGUE_SUFFIX. (Superceeded ! 5715: by ASM_DECLARE_FUNCTION_SIZE in varasm.c.) ! 5716: ! 5717: * xm-i386.h (i386): Define in case the native host compiler doesn't. ! 5718: ! 5719: * tm-svr4.h (SVR4): Define this rather than SVR4_target. ! 5720: (ASM_FINAL_SPEC): Support the -pipe option. ! 5721: (ASM_DECLARE_FUNCTION_NAME, ASM_DECLARE_OBJECT_NAME): Allow easy ! 5722: redefinition of the syntax for second operand of .type. ! 5723: (ASM_DECLARE_FUNCTION_SIZE): Fix line continuations. ! 5724: ! 5725: Fri Nov 1 14:14:14 1991 Michael Meissner (meissner at osf.org) ! 5726: ! 5727: * out-mips.c (mips_asm_file_end): Generate correct code if the user ! 5728: uses asm("name"). Patch from [email protected]. ! 5729: ! 5730: * mips-tfile.c (init_file initialization): Fix #ifdef ! 5731: BYTES_BIG_ENDIAN to be #if BYTES_BIG_ENDIAN, to allow the DECstation ! 5732: to work again. ! 5733: (toplevel): Remove declarations of internal library functions, ! 5734: _flsbuf, _filbuf. ! 5735: ! 5736: Thu Oct 31 14:59:11 1991 Torbjorn Granlund (tege at mole.gnu.ai.mit.edu) ! 5737: ! 5738: * longlong.h (m68020 count_leading_zeros): Use %b for offset and ! 5739: width syntax for bfffo instruction. ! 5740: ! 5741: Thu Oct 31 05:45:54 1991 Ken Raeburn ([email protected]) ! 5742: ! 5743: * cp-decl.c (PUSH_BINDING_LEVEL, POP_BINDING_LEVEL): Replaced ! 5744: uses of macros with their expansions, and deleted the macros. ! 5745: ! 5746: Wed Oct 30 12:45:33 1991 Ron Guilmette (rfg at ncd.com) ! 5747: ! 5748: * dwarfout.c, dwarf.h, README.DWARF: Replacement files that bring ! 5749: the Dwarf implementation up to that defined by draft 5 of the ! 5750: UI/PLSIG Dwarf specification. ! 5751: ! 5752: Wed Oct 30 10:50:07 1991 Michael Meissner (meissner at osf.org) ! 5753: ! 5754: * objc-parse.y (yylex): Cast short types to int before shifting, to ! 5755: avoid bogus warnings from the MIPS C compiler. ! 5756: ! 5757: * cccp.c (fancy_abort): Make this global again, so that ! 5758: -Dabort=fancy_abort will not cause a link error, because obstack.c ! 5759: contains a reference to abort. ! 5760: ! 5761: Wed Oct 30 07:38:08 1991 Tom Wood (wood at dg-rtp.dg.com) ! 5762: ! 5763: * SYSCALLS.c (abort): Undefine first. ! 5764: ! 5765: * xm-m88k.h (HOST_WORDS_BIG_ENDIAN): Define it. ! 5766: * out-m88k.c (output_and): Choose "clr" last. ! 5767: ! 5768: Tue Oct 29 22:49:47 1991 Michael Meissner (meissner at osf.org) ! 5769: ! 5770: * tm-mips.h (num_refs): New global array. ! 5771: (mips_count_memory_refs): New function decl. ! 5772: ! 5773: * out-mips.h (num_refs): New global array to count number of 1, 2, ! 5774: or 3 instruction data references with -mstats. ! 5775: (mips_count_memory_refs): New function decl to determine whether a ! 5776: data memory reference uses 1, 2, or 3 instructions. ! 5777: (mips_move_1word, mips_move_2words): Call mips_count_memory_refs ! 5778: as appropriate. ! 5779: (function_epilogue): Print number of 1, 2, and 3 instruction ! 5780: memory references if -mstats. ! 5781: ! 5782: * mips.md (movsi_ulw, movsi_usw): Call mips_count_memory_refs if ! 5783: needed. ! 5784: ! 5785: Tue Oct 29 05:14:27 1991 Ken Raeburn (raeburn at cygnus.com) ! 5786: ! 5787: * cp-parse.y (template_def): Don't pass bogus declspecs to ! 5788: start_decl. ! 5789: ! 5790: * cp-pt.c (tsubst, case FUNCTION_DECL): Build new argument list ! 5791: from method template, instead of retaining the old one. ! 5792: ! 5793: Tue Oct 29 00:44:51 1991 Ken Raeburn (raeburn at cygnus.com) ! 5794: ! 5795: * cp-class.c (finish_struct): Skip type fields if they are ! 5796: template names bound to their expansions. ! 5797: ! 5798: * cp-decl.c (binding_levels_sane): Define only if PARANOID; use a ! 5799: macro returning 1 otherwise. Check class_binding_level stack for ! 5800: consistency also. ! 5801: (pushdecl): Verify that bindings pushed at global scope are in ! 5802: permanent obstack storage. ! 5803: (start_decl): While processing_template_decl, don't also need to ! 5804: verify that the decl uses the template parameters. For method ! 5805: templates, construct proper method type for result. TREE_EXTERNAL ! 5806: flag for methods should be cleared if DECL_EXTERNAL is clear. ! 5807: (grokdeclarator, case CALL_EXPR): Intercept destructor templates, ! 5808: which have a different internal form, and convert them to a form ! 5809: that can be recognized. ! 5810: ! 5811: * cp-decl2.c (grokclassfn): Include length of class name when ! 5812: creating assembler name for destructor; otherwise ambiguities ! 5813: result. ! 5814: ! 5815: * cp-lex.c (identifier_typedecl_value): New fn; scans bindings of ! 5816: identifier for a given type decl; falls back to name of type. ! 5817: * cp-tree.h (IDENTIFIER_TYPEDECL_VALUE): Call it. ! 5818: ! 5819: * cp-method.c (fndecl_as_string): Print constructor_name of type ! 5820: for constructor and destructor, not type name. ! 5821: ! 5822: * cp-parse.y (template_def): Don't output warning about missing ! 5823: type and storage class, since this gets printed for destructor ! 5824: templates. ! 5825: (notype_declarator): Accept '~' PTYPENAME. ! 5826: (scoped_typename): Want a PTYPENAME, not TYPENAME. Build a ! 5827: SCOPE_REF node instead of calling resolve_scope_to_name. ! 5828: ! 5829: * cp-pt.c (instantiate_member_templates): New fn. Instantiates ! 5830: members associated with template for a given template class. ! 5831: * cp-method.c (template_instantiate_once): Call it. ! 5832: ! 5833: * cp-pt.c (end_template_decl): Catch destructor templates that ! 5834: are being passed through without being converted to TEMPLATE_DECL ! 5835: nodes; convert them now. Copy argument list for function template ! 5836: into permanent storage. ! 5837: (lookup_template_class): Supply IDENTIFIER_TEMPLATE data for new ! 5838: anonymous type name. ! 5839: (tsubst, case FUNCTION_DECL): Improve method lookup code. ! 5840: (tsubst): Use hash table and build_cplus_* functions for building ! 5841: new nodes when possible, so equality tests are easier. Extend ! 5842: FUNCTION_TYPE case to handle METHOD_TYPE as well. ! 5843: (instantiate_template): Don't do anything for error_mark_node. ! 5844: (do_pending_expansions): Keep expansions not used in queue to check ! 5845: again later. ! 5846: ! 5847: * cp-tree.def: Fix up some comments relating to PT-related types. ! 5848: ! 5849: * tree.c (init_tree_codes): Now void, in agreement with decl ! 5850: elsewhere. ! 5851: ! 5852: Mon Oct 28 22:07:44 1991 Jeffrey A Law (law at b117.super.org) ! 5853: ! 5854: * output.h (current_function_uses_pic_offset_table): Declare here ! 5855: so that out-*.c can see it. ! 5856: ! 5857: * tm-m68k.h (FINALIZE_PIC): New macro. ! 5858: (PIC_OFFSET_TABLE_REGNUM): New macro. Defines which address ! 5859: register is used to hold the offset table for PIC. ! 5860: (CONDITIONAL_REGISTER_USAGE): Make PIC_OFFSET_TABLE_REGNUM be ! 5861: fixed when generating position independent code. ! 5862: ! 5863: * out-m68k.c (finalize_pic): New function. ! 5864: (output_function_prologue): If generating position independent ! 5865: code output assembler text to load the pic_offset_table register. ! 5866: ! 5867: Mon Oct 28 10:02:36 1991 Michael Meissner (meissner at osf.org) ! 5868: ! 5869: * toplev.c (main): If -G is used, set g_switch_set to true, and set ! 5870: g_switch_value to be the integer value of it's argument, for use in ! 5871: the MIPS port to determine whether a static or global item goes into ! 5872: the normal data area, or into the small data area. ! 5873: ! 5874: * out-mips.c (g_switch_set, g_switch_value): Delete these global ! 5875: variables, since toplev.c now defines them. ! 5876: ! 5877: * tm-mips.h (EXTRA_INT_OPTIONS): Delete macro which is no longer ! 5878: used in internal OSF patches to provide -G xx support. ! 5879: (ASM_SPEC, CC1_SPEC, LINK_SPEC): Remove -G32, since the new -G ! 5880: patches take care of it now. ! 5881: ! 5882: * tm-decrose.h (ASM_SPEC, LINK_SPEC): Remove -G32. ! 5883: ! 5884: * tm-decstatn.h (ASM_SPEC, LINK_SPEC): Remove -G32. ! 5885: ! 5886: * tm-iris.h (ASM_SPEC, LINK_SPEC): Remove -G32. ! 5887: ! 5888: * tm-mips-bsd.h (LINK_SPEC): Remove -G32. ! 5889: ! 5890: * tm-mips-news.h (ASM_SPEC, LINK_SPEC): Remove -G32. ! 5891: ! 5892: * tm-mips-sysv.h (LINK_SPEC): Remove -G32. ! 5893: ! 5894: Mon Oct 28 07:11:28 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 5895: ! 5896: * combine.c (try_combine): Don't delete unused SETs if they have ! 5897: side-effects. ! 5898: ! 5899: * Makefile.in, t-i386sco: Had both LIMIT_H and LIMITS_H; latter ! 5900: is correct. ! 5901: ! 5902: * combine.c (subst): New argument `unique_copy'; if non-zero ensure ! 5903: each copy of `from' replaced gets a unique copy of `to'. ! 5904: Pass arg to recursive callers. ! 5905: (try_combine): Pass new arg to subst. ! 5906: ! 5907: * Makefile.in (LANGUAGES): Use `objective-c' instead of `class-c' ! 5908: to avoid confusion. ! 5909: ! 5910: * gcc.c (xmalloc, xrealloc): Really make non-static. ! 5911: ! 5912: Mon Oct 28 00:21:56 1991 Michael Meissner (meissner at osf.org) ! 5913: ! 5914: * tm-mips.h (CC1_SPEC): Convert -gline into -g1. ! 5915: ! 5916: Sun Oct 27 17:15:48 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 5917: ! 5918: * reload1.c (spill_hard_reg): Rework code that relies on the fact that ! 5919: reg_class_superclasses[i][0] == i, since it isn't true! ! 5920: ! 5921: Sun Oct 27 06:15:24 1991 Ron Guilmette (rfg at ncd.com) ! 5922: ! 5923: * configure: Always remove any files before we write them in case ! 5924: the old copy was read-only. ! 5925: ! 5926: * Makefile.in (manext): Now just extension without the period. ! 5927: (mandir): Default to include manext. ! 5928: (install-man): Adjust to new definition of manext. ! 5929: (uninstall): Remove protoize.1 and unprotoize.1 from mandir. ! 5930: ! 5931: * genemit.c (gen_exp): Write integer using %u instead of %d to ! 5932: avoid warnings from some compilers when most negative int is written. ! 5933: ! 5934: * cccp.c: Make variables not used outside this file static. ! 5935: (main, line_to_error, xmalloc, xrealloc, xcalloc): Add missing return ! 5936: statements (in unreachable paths). ! 5937: (xmalloc, xrealloc, xcalloc, savestring): Make SIZE arg unsigned. ! 5938: ! 5939: Sun Oct 27 06:14:45 1991 Jeffrey A Law (law at b115.super.org) ! 5940: ! 5941: * tm-m68k.h (SELECT_RTX_SECTION): New macro. Used to force ! 5942: symbolic objects in the constant pool into the read-write data ! 5943: section when generating position independent code. ! 5944: ! 5945: * recog.c (general_operand, immediate_operand, nonmemory_operand): ! 5946: Use LEGITIMATE_PIC_OPERAND_P to reject constants which are not ! 5947: valid when generating position independent code. ! 5948: ! 5949: * reload.c (find_reloads): Do not win in 's', 'i', or 'g' cases ! 5950: if the constant does not satisfy LEGITIMATE_PIC_OPERAND_P. ! 5951: ! 5952: * tm-m68k.h (LEGITIMATE_PIC_OPERAND_P): New macro. ! 5953: ! 5954: * out-m68k.c (symbolic_operand): New function. Copied from ! 5955: tm-sparc.h. ! 5956: ! 5957: * gcc.texinfo: Document LEGITIMATE_PIC_OPERAND_P. ! 5958: ! 5959: Sat Oct 26 07:51:40 1991 Michael Meissner (meissner at osf.org) ! 5960: ! 5961: * mips.md (movsi_usw): Remove invalid '&' constraint on a memory ! 5962: address. ! 5963: ! 5964: Sat Oct 26 07:16:15 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 5965: ! 5966: * flow.c (find_basic_blocks): Build label_value_list as list of ! 5967: CODE_LABELs, not LABEL_REFs. ! 5968: ! 5969: * fold-const.c (optimize_bit_field_compare): Call fold on result ! 5970: of build1 call that converts integer to proper mode. ! 5971: ! 5972: * rtl.h (unsigned_condition, signed_condition): Add definition; ! 5973: functions were previously added to jump.c. ! 5974: * combine.c (simplify_comparison): Use unsigned_condition to simplify ! 5975: last change. ! 5976: ! 5977: Sat Oct 26 06:48:59 1991 Jeffrey A Law (law at b115.super.org) ! 5978: ! 5979: * tm-sun2.h, tm-sun3.h (ASM_SPEC): Pass "-k" to the assembler if ! 5980: -fpic or -fPIC. ! 5981: ! 5982: Fri Oct 25 20:43:54 1991 Michael Meissner (meissner at osf.org) ! 5983: ! 5984: * tm-mips.h (CC1_SPEC): Remove special rules for -g0, -g1, etc., now ! 5985: that GCC supports these directly. ! 5986: ! 5987: * configure (dec-mips-osf): DECstation running OSF/rose uses ! 5988: t-decrose, not t-mips. ! 5989: ! 5990: * x-decrose (COFF_CC, COFF_CFLAGS, WARNINGS): Delete. ! 5991: (libdir, bindir, mandir): Put GCC 2 in the /usr/ccs/gcc tree. ! 5992: ! 5993: * x-mips (comment): Delete a comment about cross compilers that is ! 5994: no longer true. ! 5995: ! 5996: * t-decrose (coff-obstack.o): Delete rule that is no longer used. ! 5997: ! 5998: Fri Oct 25 18:46:51 1991 Mark Eichin (eichin at cygnus.com) ! 5999: ! 6000: * cp-dem.c (cp-demangle): added support for templates, static ! 6001: data, and the new (correct) mangling for destructors. ! 6002: ! 6003: Fri Oct 25 16:18:18 1991 Mark Eichin (eichin at tweedledumber.cygnus.com) ! 6004: ! 6005: * cp-decl2.c: (grokclassfn): destructor names *should* contain ! 6006: the length; otherwise, we can't tell the difference between a ! 6007: destructor for a class whose name begins with 't' and a destructor ! 6008: for an instance of a template class. ! 6009: ! 6010: Fri Oct 25 02:15:12 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 6011: ! 6012: * SYSCALLS.c, protoize.c: Changes from rfg. ! 6013: waiting for real changelog entries from rfg. ! 6014: ! 6015: * gcc.c (xmalloc, xrealloc): No longer static. ! 6016: ! 6017: Thu Oct 24 19:21:04 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 6018: ! 6019: * fold-const.c (optimize_bit_field_compare): ! 6020: Use build1 rather than convert, to avoid warnings. ! 6021: ! 6022: * final.c (output_source_line): Fix if-scope for DBX fmt. ! 6023: ! 6024: Thu Oct 24 13:29:34 1991 Tom Wood (wood at dg-rtp.dg.com) ! 6025: ! 6026: * gcc.c gen*.c: Don't make fancy_abort static. ! 6027: ! 6028: Thu Oct 24 12:07:23 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 6029: ! 6030: * combine.c (simplify_comparison): When narrowing a comparison ! 6031: and removing ANDs, make it unsigned. ! 6032: ! 6033: Thu Oct 24 08:02:04 1991 Ken Raeburn (raeburn at cygnus.com) ! 6034: ! 6035: * cp-decl.c (binding_levels_sane): New function, tests that stack ! 6036: of binding levels is consistent. Argument provides extra ! 6037: identification for call site, in case compiler optimizes too well. ! 6038: If PARANOID is not set, does nothing. ! 6039: (push_binding_level, pop_binding_level): Now functions, for easier ! 6040: debugging. Inlined under GNU C if not PARANOID. ! 6041: (PUSH_BINDING_LEVEL, POP_BINDING_LEVEL): Invoke functions. ! 6042: (push_to_top_level): Use type-shadowed slots to unwind ! 6043: IDENTIFIER_TYPE_VALUE back to top level. ! 6044: (start_decl): When processing a template decl, shouldn't need to ! 6045: check uses_template_parms. For methods, modify arg list to include ! 6046: `this'. Don't set context of template. Use perm_tree_cons when ! 6047: building members list for class template. ! 6048: (grokdeclarator): Check "friend" flag before calling ! 6049: globalize_nested_type. Build a method type for a function that has ! 6050: a context. ! 6051: ! 6052: * cp-pt.c (end_template_decl): If template has non-null context, ! 6053: chain it off of the containing class, rather than using pushdecl. ! 6054: (instantiate_class_template): Instantiate all the member templates ! 6055: hanging off the class template. Also, simplify some code in the ! 6056: case where setup_parse is 0. ! 6057: (tsubst): Check for several common values that won't be modified by ! 6058: substitutions. ! 6059: (tsubst, case FUNCTION_DECL): Don't return type passed if it has a ! 6060: non-null context that might need fixing. Process that context while ! 6061: building up the new decl node; use it to notify build_decl_overload ! 6062: that we've got a method rather than a function. ! 6063: (tsubst, case METHOD_TYPE): Handle like FUNCTION_TYPE; enhance that ! 6064: case to handle TYPE_METHOD_BASETYPE when set. ! 6065: (unify): Increment value pointed to by nsubsts, not the pointer ! 6066: itself. ! 6067: (do_pending_expansions): Method context is in DECL_CONTEXT, not ! 6068: DECL_CLASS_CONTEXT. ! 6069: ! 6070: * cp-lex.c (do_identifier): Don't try looking up fields in base ! 6071: classes of UNINSTANTIATED_P_TYPE. ! 6072: ! 6073: * cp-parse.y (primary): Call require_complete_type only for ! 6074: CALL_EXPR nodes of types other than void. ! 6075: (template_type): Don't call IDENTIFIER_TYPE_VALUE on ! 6076: error_mark_node. ! 6077: ! 6078: * cp-ptree.c (print_lang_decl): For UNINSTANTIATED_P_TYPE, show ! 6079: template as well as parameters. ! 6080: ! 6081: * cp-tree.h (DECL_TEMPLATE_*, UPT_*): New accessor macros for ! 6082: TEMPLATE_DECL and UNINSTANTIATED_P_TYPE nodes. All (most?) uses ! 6083: except for node creation changed to use these. ! 6084: * cp-tree.def: Updated comments for these node types. ! 6085: ! 6086: * cp-pt.c (uses_template_parms): Handle ADDR_EXPR. ! 6087: (end_template_decl): For function with non-null context, pop class ! 6088: binding level. ! 6089: ! 6090: Thu Oct 24 06:57:28 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 6091: ! 6092: * a29k.md, romp.md, rs6000.md (movdi, movdf, movti): Handle case of ! 6093: reg-reg copy with overlapping registers correctly. ! 6094: ! 6095: * out-rs6000.c (ccr_bit, case NE): Fix typo in bit number. ! 6096: (output_epilog): Must restore stack using backchain if alloca called. ! 6097: ! 6098: * romp.md, rs6000.md (extendxxyy2, zero_extendxxyy2): Use DEFINE_EXPAND ! 6099: to force operand to register; DEFINE_INSN allows memory (better cse). ! 6100: ! 6101: * rs6000.md (ffssi2): New patterns. ! 6102: (maskir): Add patterns to use maskir instructions. ! 6103: ! 6104: * tm-a29kunix.h (TARGET_DEFAULT, CPP_SPEC): Default to 29050. ! 6105: ! 6106: * tm-rs6000.h (LINK_SPEC): Add -bnodelcsect. ! 6107: (HARD_REGNO_MODE_OK): Delete kludge that didn't allow DImode in reg 31 ! 6108: and TImode in 29-31; the bug was fixed elsewhere. ! 6109: ! 6110: Wed Oct 23 17:48:43 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 6111: ! 6112: * combine.c (try_combine): If an insn doesn't match, check for case ! 6113: where first SET's result isn't used; previously only checked second. ! 6114: ! 6115: * combine.c (try_combine): When we substitute into a COMPARE, check ! 6116: SELECT_CC_MODE to see if we should try to change the mode of the ! 6117: COMPARE and its result. ! 6118: ! 6119: Wed Oct 23 16:38:26 1991 Torbjorn Granlund (tege at hal.gnu.ai.mit.edu) ! 6120: ! 6121: * gnulib2.c (__ashrdi3): Compute sign extension shift count from ! 6122: machine word size instead of using 31. ! 6123: ! 6124: Wed Oct 23 14:25:04 1991 Michael Meissner (meissner at osf.org) ! 6125: ! 6126: * tm-mips.h (PREFERRED_DEBUGGING_TYPE): Unless otherwise defined, ! 6127: set to SDB_DEBUG. ! 6128: ! 6129: * tm-decrose.h (PREFERRED_DEBUGGING_TYPE): Define to DBX_DEBUG. ! 6130: ! 6131: * out-mips.c (override_options): Don't override debugger choice now ! 6132: that PREFERRED_DEBUGGING_TYPE is provided. ! 6133: ! 6134: Wed Oct 23 07:25:32 1991 Tom Wood (wood at dg-rtp.dg.com) ! 6135: ! 6136: * sdbout.c (sdbout_symbol/FUNCTION_DECL, sdbout_toplevel_data, ! 6137: sdbout_end_epilogue): Use DECL_ASSEMBLER_NAME to avoid link-time ! 6138: multiple definitions. ! 6139: ! 6140: Tue Oct 22 15:06:31 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 6141: ! 6142: * reload1.c (reload): For now, we must always have a frame pointer ! 6143: if a function calls alloca and EXIT_IGNORE_STACK is non-zero. ! 6144: ! 6145: * cse.c (insert_regs): Don't make new quantity for the register in ! 6146: a SUBREG. ! 6147: (merge_equiv_classes): Don't invalidate the register inside a SUBREG. ! 6148: (canon_hash, case SUBREG): Remove code to treat SUBREGs like REGs. ! 6149: ! 6150: Tue Oct 22 10:25:29 1991 Tom Wood (wood at dg-rtp.dg.com) ! 6151: ! 6152: * tm-m88kdgux.h (PREFERRED_DEBUGGING_TYPE): Use it. ! 6153: * tm-m88k.h (OVERRIDE_OPTIONS): Don't override write_symbols. ! 6154: ! 6155: * out-m88k.c (m88k_output_{prologue,epilogue}): Renamed. ! 6156: ! 6157: Tue Oct 22 00:51:48 1991 Richard Stallman ([email protected]) ! 6158: ! 6159: * c++: New shell script. ! 6160: ! 6161: * gcc.c (default_compilers): Treat .ii files as cpp'd C++. ! 6162: ! 6163: * varasm.c (make_function_rtl): Don't alter DECL_ASSEMBLER_NAME. ! 6164: ! 6165: * toplev.c (main): Use PREFERRED_DEBUGGING_TYPE if support ! 6166: more than one format. ! 6167: ! 6168: Mon Oct 21 23:08:02 1991 Richard Stallman ([email protected]) ! 6169: ! 6170: * c-decl.c (grokdeclarator): Fix error message for long float. ! 6171: ! 6172: Mon Oct 21 16:55:31 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 6173: ! 6174: * optabs.c (add_equal_note): New function. ! 6175: (expand_binop): Delete some obsolete, turned-off code. ! 6176: Use GET_RTX_CLASS to see if operator is commutative. ! 6177: Call add_equal_note if we make a multi-insn sequence; if it fails, ! 6178: redo the operation without our target. ! 6179: In multi-word cases, don't allow TARGET to be the same as an input. ! 6180: (expand_unop): Allow operation to fail. ! 6181: Call add_equal_note and allow failure, like in expand_binop. ! 6182: In multi-word case, don't allow TARGET to be OP0. ! 6183: (emit_unop_insn): Use add_equal_note; ignore its failure here. ! 6184: ! 6185: * optabs.c (expand_float, expand_fix): In cases when we will jump, ! 6186: ensure we call emit_queue before protect_from_queue. ! 6187: Eliminate redundant calls to protect_from_queue and force_non_mem. ! 6188: ! 6189: * reorg.c (steal_delay_list_from_target): Don't take an insn from ! 6190: the fallthrough thread of an annulled branch insn. ! 6191: ! 6192: Mon Oct 21 16:55:08 1991 Tom Wood (wood at dg-rtp.dg.com) ! 6193: ! 6194: * configure (m88k targets): Complete last change. ! 6195: ! 6196: Mon Oct 21 16:06:25 1991 Richard Stallman ([email protected]) ! 6197: ! 6198: * integrate.c (copy_rtx_and_substitute): When making copy of frame, ! 6199: round size to keep substituted frame pointer aligned. ! 6200: (CEIL_ROUND): New macro. ! 6201: ! 6202: Mon Oct 21 15:16:17 1991 Michael Meissner (meissner at osf.org) ! 6203: ! 6204: * tm-mips.h (GP_REG_OR_PSEUDO_NONSTRICT_P): New macro for ! 6205: REG_OK_FOR_{BASE,INDEX}_P in non strict mode. Fix typos in the ! 6206: previous change. ! 6207: (GP_REG_OR_PSEUDO_P): Rename to GP_REG_OR_PSEUDO_STRICT_P. ! 6208: (REG_OK_FOR_BASE_P): Use GP_REG_OR_PSEUDO_NONSTRICT_P if non strict. ! 6209: (REG_OK_FOR_INDEX_P): Use GP_REG_OR_PSEUDO_NONSTRICT_P if non strict. ! 6210: (GO_IF_LEGITIMATE_ADDRESS): Indicate if strict checking is being ! 6211: used if -mdebugb tracing. ! 6212: ! 6213: Mon Oct 21 15:08:15 1991 Tom Wood (wood at dg-rtp.dg.com) ! 6214: ! 6215: * Makefile.in (*.o): Add insn-codes.h to all lists using expr.h. ! 6216: (dwarfout.o): Add dwarf.h, reload.h, output.h, and insn-config.h. ! 6217: ! 6218: * c-tree.h (TYPE_ACTUAL_ARG_TYPES): New macro for list of actual ! 6219: types. ! 6220: * c-decl.c (store_parm_decls): Compute TYPE_ACTUAL_ARG_TYPES if a ! 6221: prototype is not present. Delete old method. ! 6222: (duplicate_decls): Provide better diagnostics if a prototype ! 6223: follows a function definition. ! 6224: ! 6225: * m88k.md (gen_divsi3): Delete REG_EQUAL workaround. ! 6226: * t-m88k{,luna,sysv4}: Target makefile portion (from Mike Stump). ! 6227: * x-m88k{,dgux,luna,sysv4}: Corresponding deletions. ! 6228: * {tm,t,x}-m88ksysv4: Renamed from m88ksvr4. Deleted xm-m88ksvr4. ! 6229: * {tm,xm}-m88ksysv3: Renamed from v88r32. ! 6230: * configure: Corresponding changes. ! 6231: ! 6232: * tm-m88k.h (ASM_OUTPUT_{CONSTRUCTOR,DESTRUCTOR}): Output to ! 6233: .ctors/.dtors sections. ! 6234: (TARGET_SWITCHES): Add -m88000, -m88100, and -m88110. Replace ! 6235: DG/UX MXDB options with SUBTARGET_SWITCHES macro. ! 6236: * tm-m88kdgux.h (SUBTARGET_SWITCHES, ASM_SPEC, ASM_FIRST_LINE): ! 6237: Put MXDB options here changing -mdwarf to -mstandard. ! 6238: ! 6239: Sun Oct 20 06:39:54 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 6240: ! 6241: * combine.c (simplify_comparison, case PLUS): Only do simplification ! 6242: for equality comparison due to overflow problems. ! 6243: ! 6244: * gen*.c: Remove "void *" and uses of size_t added by recent change. ! 6245: ! 6246: * reload.c (find_reloads): If "&" given without any registers, ! 6247: turn off earlyclobber, in addition to giving error. ! 6248: ! 6249: * Makefile.in (STAGE_GCC): Deleted. ! 6250: (STAGESTUFF): Add gcc (from STAGE_GCC) and gcc-cross. ! 6251: ! 6252: Sun Oct 20 04:37:21 1991 Michael Tiemann (tiemann at cygnus.com) ! 6253: ! 6254: * cp-decl.c (grokfndecl): Use DECL_NAME, not DECLARATOR at end of ! 6255: function, since DECL_NAME may be different if it's an operator name. ! 6256: ! 6257: * cp-cvt.c (convert_pointer_to): Test if PARENT is TREE_VEC ! 6258: before testing IS_AGGR_TYPE. ! 6259: ! 6260: Sun Oct 20 00:40:47 1991 Richard Stallman ([email protected]) ! 6261: ! 6262: * gcc.c (link_command_spec): -collect converts to -c. ! 6263: ! 6264: * toplev.c (main): Support -gstabs and -gcoff. Fix args to strncmp. ! 6265: ! 6266: Sat Oct 19 21:51:03 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 6267: ! 6268: * reorg.c: Use const_true_rtx instead of const1_rtx. ! 6269: (delete_scheduled_jump): Don't delete an insn that sets CC0 if it ! 6270: has a side-effect. ! 6271: (update_block): Add missing declaration for parameter WHERE. ! 6272: (fill_slots_from_thread): Stop search if we find an insn that we ! 6273: can't put into the delay slot unless we own the thread. ! 6274: ! 6275: Sat Oct 19 17:30:23 1991 Michael Meissner (meissner at osf.org) ! 6276: ! 6277: * tm-mips.h (GP_REG_OR_PSEUDO_P): New macro to make sure a reg or ! 6278: pseudo reg during reload will eventually be a GP register for use as ! 6279: a base or index register. This fixes a bug where a FP register ! 6280: could be used as a base or index register in some cases after ! 6281: convert from floating point to integer was done. ! 6282: (REGNO_OK_FOR_BASE_P, REGNO_OK_FOR_INDEX_P): Use GP_REG_OR_PSEUDO_P. ! 6283: (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): In the non strict version, ! 6284: don't allow hard FP registers ever. ! 6285: ! 6286: Sat Oct 19 11:59:55 1991 Richard Stallman ([email protected]) ! 6287: ! 6288: * tm-sun3.h, tm-sparc.h (WORD_SWITCH_TAKES_ARG): ! 6289: Check for Tdata as well as target. ! 6290: ! 6291: * c-decl.c (grokdeclarator): Don't warn for array of incomplete elt. ! 6292: ! 6293: * expr.c (expand_expr): For INDIRECT_REF, don't set unchanging bit. ! 6294: * c-typeck.c (build_indirect_ref): Do set TREE_UNCHANGING if nec. ! 6295: ! 6296: * reload.c (find_reloads): Warning or error for misuse of `&'. ! 6297: * toplev.c (warning_for_asm): New function. ! 6298: ! 6299: * t-i386sco: New file. ! 6300: * x-i386sco: Add -Di286 to CC, OLDCC. ! 6301: (LIMIT_H): Moved to t-i386sco. ! 6302: ! 6303: Sat Oct 19 09:08:11 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 6304: ! 6305: * gcc.c: Add missing extern declarations deleted by last change. ! 6306: (xrealloc, xmalloc): Don't declare as void *; non-ANSI compilers ! 6307: can't handle it. ! 6308: ! 6309: Sat Oct 19 08:26:13 1991 Ron Guilmette (rfg at ncd.com) ! 6310: ! 6311: * tree.h: Fix spelling error in comment. ! 6312: ! 6313: * tree.def, cp-parse.y: Change comments that refer to LET_STMT nodes to ! 6314: refer to BLOCK nodes. ! 6315: ! 6316: * gcc.c, gen*.c: Declare as static objects that aren't referenced ! 6317: outside the file they are in. ! 6318: (xrealloc, xmalloc): Functions return char *, not int. ! 6319: (main): Add missing returns (in unreachable code) to avoid warnings ! 6320: when compiled with -Wreturn-type. ! 6321: * gcc.c (pexecute): Likewise. ! 6322: * genattrtab.c (operate_exp): Likewise. ! 6323: ! 6324: Fri Oct 18 16:58:12 1991 Eric Youngdale (youngdale at v6550c.nrl.navy.mil) ! 6325: ! 6326: * make-cc1.com: Finish changeover from cplus-* to cp-*. ! 6327: ! 6328: Fri Oct 18 16:57:37 1991 Ron Guilmette (rfg at ncd.com) ! 6329: ! 6330: * tm-svr4.h: Delete lines duplicated due to transmission problems. ! 6331: ! 6332: Fri Oct 18 16:55:53 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 6333: ! 6334: * jump.c (unsigned_condition, signed_condition): New functions. ! 6335: ! 6336: * configure (vax): Set tm_file to tm-vax.h so "configure vax-dec-bsd" ! 6337: works. ! 6338: ! 6339: * combine.c (subst, case PLUS, MINUS): Remove some simplifications ! 6340: from here. ! 6341: * cse.c (simplify_binary_operation, case PLUS, MINUS): Put these ! 6342: simplifications here. ! 6343: Strip off CONST when looking for some simplifications. ! 6344: Add code to simplify (a - (a - b)). ! 6345: ! 6346: * combine.c (expand_compound_operation): Correctly handle case where ! 6347: we have a ZERO_EXTRACT that extends beyond the bounds of the object. ! 6348: ! 6349: * global-alloc.c (mark_elimination): No longer have FORBIDDEN_REGS as ! 6350: argument. ! 6351: * reload1.c (reload): Don't pass FORBIDDEN_REGS to mark_elimination. ! 6352: ! 6353: * cse.c (simplify_{unary,binary,relational}_operation): Complete ! 6354: change that removes warnings from floating-point traps when constant ! 6355: folding (some cases had been omitted). ! 6356: ! 6357: Fri Oct 18 16:41:29 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) ! 6358: ! 6359: * stmt.c (expand_anon_union_decl): When creating new mem, copy the ! 6360: RTX_UNCHANGING_P and MEM_IN_STRUCT_P bits from the old one. ! 6361: ! 6362: * sparc.md: Add new scc addx/subx patterns. ! 6363: ! 6364: Fri Oct 18 09:10:43 1991 Michael Tiemann (tiemann at cygnus.com) ! 6365: ! 6366: * cp-parse.y (stmts): Fix parsing rules to match C++ semantics ! 6367: better (and hence give the compiler better error recovery). ! 6368: ! 6369: Thu Oct 17 19:31:15 1991 Ken Raeburn (raeburn at cygnus.com) ! 6370: ! 6371: * cp-pt.c (tsubst): For NEGATE_EXPR, call build1, not build. ! 6372: Handle NOP_EXPR likewise. ! 6373: (unify, case TEMPLATE_CONST_PARM): Copy value to permanent obstack. ! 6374: ! 6375: * cp-method.c (PARM_CAN_BE_ARRAY_TYPE): If not already defined, ! 6376: define it to be 1. ! 6377: (build_overload_name): Test to see if it's nonzero, rather than ! 6378: whether it's defined; this permits compilation options to disable ! 6379: it, but leave it enabled by default. Add one to the array size, ! 6380: since the value retrieved appears to be the maximum index, not the ! 6381: true array size. ! 6382: ! 6383: Thu Oct 17 19:15:37 1991 Mark Eichin (eichin at tweedledumber.cygnus.com) ! 6384: ! 6385: * cp-pt.c (instantiate_class_template): has an argument to ! 6386: indicate whether to setup for parsing or not. (All existing cases ! 6387: did a feed input, but if we are trying to set up intermediate nodes ! 6388: while waiting for the parser to return to a template_instantiate ! 6389: site we need to suppress the parsing part of it, which will get ! 6390: redone later.) ! 6391: (tsubst): under case UNINSTANTIATED_P_TYPE, actually instantiate any ! 6392: class templates that are needed for function return values, and set ! 6393: them up as pending templates to be run later. ! 6394: ! 6395: * cp-parse.y (primary): since build_x_function_call doesn't ! 6396: require a complete type any more in certain cases, we instantiate ! 6397: any pending templates and then require_complete_type on the ! 6398: remainder. ! 6399: ! 6400: * cp-typeck.c (build_function_call_real): added an argument to ! 6401: optionally skip the require_complete_type... implicit template ! 6402: instantiation has to be postponed, so we won't get a complete type ! 6403: until the parser can grab it. ! 6404: ! 6405: * cp-call.c (build_overload_call_real): added an argument do ! 6406: allow choice of build_function_call_maybe or build_function_call ! 6407: based on whether we thought we would require a complete type out of ! 6408: build_function_call. ! 6409: ! 6410: Wed Oct 16 09:06:57 1991 Tom Wood (wood at dg-rtp.dg.com) ! 6411: ! 6412: * c-decl.c (store_parm_decls): Fix and disable recording the arg ! 6413: type list for the function indicating the number of arguments. ! 6414: * c-typeck.c (self_promoting_args_p): Allow the arg type to be null. ! 6415: ! 6416: * expmed.c (store_bit_field, extract_bit_field): Add checks for ! 6417: MEM_IN_STRUCT_P if the structure reference is a MEM. ! 6418: ! 6419: Tue Oct 15 18:37:50 1991 Ken Raeburn (raeburn at cygnus.com) ! 6420: ! 6421: * cp-call.c (build_overload_call): If template match fails, still ! 6422: set function field of candidate structure, and set bad_arg field to ! 6423: new magic number -4 to indicate failed type unificiation. ! 6424: ! 6425: * cp-class.c (add_method): Call make_function_rtl only if not ! 6426: processing a template declaration. ! 6427: ! 6428: * cp-tree.def: New node type, UNINSTANTIATED_P_TYPE, for ! 6429: parameterized types that haven't had parameters filled in yet. ! 6430: Looks like a type node. ! 6431: ! 6432: * cp-decl.c (struct binding_level): New flag indicating any name ! 6433: should be accepted when looked up at this level. This is a kludge ! 6434: to try to deal with methods of parameterized types. ! 6435: (declare_uninstantiated_type_level): Set it. ! 6436: (uninstantiated_type_level_p): Return it. ! 6437: * cp-class.c (pushclass): If the "class" type is ! 6438: UNINSTANTIATED_P_TYPE, flag it in the new binding level. ! 6439: ! 6440: * cp-decl.c (push_overloaded_decl): New argument to indicate ! 6441: whether the decl should be forgotten when the current level is ! 6442: exited. Callers changed. ! 6443: (push_overloaded_decl_top_level): Ditto. ! 6444: (dont_forget_overload): Deleted. ! 6445: (push_overloaded_decl_1): New fn; like push_overloaded_decl, but ! 6446: never forgets. Intended only for use by auto_function macro. ! 6447: (auto_function): Use it. ! 6448: ! 6449: * cp-decl.c (print_binding_level): Print type-shadowed field at ! 6450: each level. Skip fields with no values. ! 6451: ! 6452: * cp-decl.c (adjust_type_value): Use SET_IDENTIFIER_TYPE_VALUE, ! 6453: not set_identifier_type_value. ! 6454: ! 6455: * cp-decl.c (pushdecl): Undo Oct 4 back-out of previous change. ! 6456: Set type value of name of passed decl, instead of name of type in ! 6457: passed decl. ! 6458: (pushdecl_top_level): Search type-shadowed fields of outer binding ! 6459: levels, munging outermost one if found to cause it to "restore" the ! 6460: new global value. ! 6461: ! 6462: * cp-decl.c (push_overloaded_decl): Don't punt second or later ! 6463: templates of a given name. ! 6464: ! 6465: * cp-decl.c (start_decl): Template-handling code moved up, to ! 6466: cope better with variable declarations. Don't check for incomplete ! 6467: type or constructor requirements when processing template. ! 6468: ! 6469: * cp-decl2.c (build_push_scope): If passed error mark node, just ! 6470: return it. ! 6471: (constructor_name): Handle UNINSTANTIATED_P_TYPE. ! 6472: ! 6473: * cp-lex.c (identifier_type): Don't return PTYPENAME for function ! 6474: template name. ! 6475: ! 6476: * cp-method.c (report_type_mismatch): New magic bad-arg value -4 ! 6477: indicates type unification failure. ! 6478: (build_overload_name, case UNINSTANTIATED_P_TYPE): Handle like other ! 6479: template-related types that shouldn't get visibility outside the ! 6480: compiler. ! 6481: ! 6482: * cp-parse.y (template_type): Use IDENTIFIER_TYPE_VALUE from ! 6483: name, if expansion doesn't happen. ! 6484: (tmpl.1, tmpl.2): Now type <ttype>. Value is null or return value ! 6485: from instantiate_class_template. ! 6486: (template_instantiation): Always put copy of decl in global scope. ! 6487: Use pushdecl_top_level instead of setting IDENTIFIER_GLOBAL_VALUE ! 6488: slot. ! 6489: (LC): If type has been or is being defined, push a new type with the ! 6490: same name, to avoid conflict. ! 6491: (try_for_typename): New type <itype>. Value is non-zero iff type to ! 6492: be pushed uses no template parms and isn't error_mark_node. ! 6493: (scoped_id): Return error_mark_node for template parameter uses, and ! 6494: leave error_mark_node alone. Only pop class if try_for_typename ! 6495: value is non-zero. ! 6496: (scoped_typename): Ditto. ! 6497: ! 6498: * cp-pt.c (end_template_decl): If template decl/class head arg is ! 6499: null, punt. For non-type templates that didn't come in as template ! 6500: decls, clear public flag. Such cases shouldn't arise any more; just ! 6501: put in abort call for now until we're sure. Comment out code for ! 6502: forcibly removing temporary values of template type parms; Michael ! 6503: broke the code and fixed the original problem. Handle error case ! 6504: where decl to be pushed might be null. ! 6505: (coerce_template_parms): Handle arg list as TREE_VEC as well as ! 6506: TREE_LIST. If arg list uses template parms, return ! 6507: UNINSTANTIATED_P_TYPE node. ! 6508: (uses_template_parms, case UNINSTANTIATED_P_TYPE): Return 1. ! 6509: (instantiate_class_template): Now returns tree -- error_mark_node or ! 6510: NULL_TREE or class type; callers and decls changed. Assign ! 6511: TYPE_NAME field when building new RECORD_TYPE and TYPE_DECL nodes. ! 6512: Don't need to do extra poplevel any more. ! 6513: (tsubst): Handle UNINSTANTIATED_P_TYPE, MINUS_EXPR, PLUS_EXPR, ! 6514: NEGATE_EXPR. ! 6515: (undo_template_name_overload): Don't need to explicitly clear type ! 6516: field any more. ! 6517: (overload_template_name): Push a TYPE_DECL, instead of explicitly ! 6518: setting type value field. ! 6519: (end_template_instantiation): Don't need to pop a level any more. ! 6520: (reinit_parse_for_template): Throw away saved block for null or ! 6521: error template node. ! 6522: (type_unification): Handle variadic functions, and functions with ! 6523: default values for arguments. ! 6524: (unify): Handle TREE_VEC and UNINSTANTIATED_P_TYPE. ! 6525: ! 6526: * cp-ptree.c (print_lang_type): Handle UNINSTANTIATED_P_TYPE. ! 6527: ! 6528: * cp-tree.h (push_overload_decl): Declare here, not in ! 6529: cp-decl.c. ! 6530: (TEMPLATE_TYPE_* macros): Delete unused (and now incorrect) ! 6531: versions. ! 6532: ! 6533: Mon Oct 14 14:30:32 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) ! 6534: ! 6535: * integrate.c (expand_inline_function): Fix typo from last edit, ! 6536: where TYPE_MODE was applied to an argument, not the type of an ! 6537: argument. ! 6538: ! 6539: * cse.c (canon_hash, SUBREG case): Add cast which is needed by some ! 6540: compilers. ! 6541: ! 6542: Mon Oct 14 07:59:50 1991 Tom Wood (wood at dg-rtp.dg.com) ! 6543: ! 6544: * toplev.c (rest_of_compilation): Compute the function's name and ! 6545: pass it to assemble_{start,end}_function. ! 6546: * varasm.c (assemble_start_function): New parameter. ! 6547: (assemble_end_function): New function for ASM_DECLARE_FUNCTION_SIZE. ! 6548: * final.c, sdbout.c: Correct comments. ! 6549: * tm-svr4.h, tm-sysv4.h (ASM_DECLARE_FUNCTION_SIZE): Add and use a ! 6550: NAME parameter. ! 6551: * tm-m88k.h (ASM_DECLARE_FUNCTION_SIZE): Override svr4 definition. ! 6552: * out-m88k.c (output_prologue): Delete previous method. ! 6553: ! 6554: * m88k.md: Use trap_if. ! 6555: (divsi3): Store into output operand only once to aviod problems ! 6556: with REG_EQUAL note. ! 6557: * out-m88k.c (output_call): Accomodate assembler range ! 6558: restriction. ! 6559: * tm-m88kdgux.h (AS_BUG_IMMEDIATE_LABEL): Specify the restriction. ! 6560: (ASM_SPEC): Pass -KV3 to the assembler in some cases. ! 6561: * tm-m88k.h (CONDITIONAL_REGISTER_USAGE): Mark the addressing base ! 6562: register global. ! 6563: ! 6564: Sat Oct 12 00:30:23 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 6565: ! 6566: * Makefile.in (.SUFFIXES): Rule added. ! 6567: ! 6568: * dbxout.c (dbxout_block): Handle debug_info_level. ! 6569: * sdbout.c (sdbout_begin_block): Likewise. ! 6570: * toplev.c (compile_file): Likewise, when calling init_emit_once. ! 6571: * emit-rtl.c (init_emit_once): Cosmetic change. ! 6572: * Makefile.in (sdbout.o): Include flags.h. ! 6573: ! 6574: * configure: Default srcdir from dir in which configure is found. ! 6575: ! 6576: * i860.md (floatsidf2): Rewrite to be independant of host machine. ! 6577: (divdf3, divsf3): New patterns. ! 6578: ! 6579: * tm-i860.h (ASM_DECLARE_FUNCTION_NAME): Macro deleted. ! 6580: (ASM_OUTPUT_FUNCTION_PREFIX): Macro added. ! 6581: ! 6582: * stmt.c (pushcase, pushcase_range, expand_end_case): ! 6583: Don't give "unreachable code" warning for a USE. ! 6584: ! 6585: * tm-i386.h (HARD_REGNO_MODE_OK): Fp regs reject TFmode. ! 6586: ! 6587: Fri Oct 11 16:43:37 1991 Tom Wood (wood at dg-rtp.dg.com) ! 6588: ! 6589: * cse.c (find_comparison_args): Reject VOIDmode to avoid invalid ! 6590: shift. ! 6591: ! 6592: Fri Oct 11 14:30:31 1991 Richard Stallman ([email protected]) ! 6593: ! 6594: * c-typeck.c (function_types_compatible_p): ! 6595: NULL as arg type matches self-promoting type. ! 6596: (self_promoting_type_p): New function. ! 6597: (common_type): NULL for arg in one fcn type means use arg from other. ! 6598: * c-decl.c (store_parm_decls): Record arg type list for the fn, ! 6599: just to indicate how many args there are. ! 6600: ! 6601: * i860.md, out-i860.c, tm-i860.h: Merge many changes by rfg. ! 6602: * tm-i860bsd.h, xm-i860.h: Likewise. ! 6603: * tm-i860v3.h, tm-i860v4.h: New files. ! 6604: * xm-i860v3.h, xm-i860v4.h: New files. ! 6605: * tm-i860v3g.h: Renamed from tm-i860g.h. ! 6606: * configure (i860-sysv3*): Renamed from i860-sysv*. New filenames. ! 6607: (i860-sysv4*): New alternative. ! 6608: ! 6609: * print-rtl.c: New file, split from rtl.c. ! 6610: * Makefile.in (print-rtl.o): New target. ! 6611: (OBJS): Add that target. ! 6612: ! 6613: * toplev.c (DEFAULT_GDB_EXTENSIONS): Provide default definition. ! 6614: (main): Use that for -g with dbx format. ! 6615: Don't support -G. ! 6616: * gcc.c (default_compilers): Get rid of -G. ! 6617: ! 6618: Fri Oct 11 14:30:43 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) ! 6619: ! 6620: * stmt.c (expand_anon_union_decl): Correctly handle anonymous ! 6621: unions, whether in memory or registers. ! 6622: ! 6623: These were written by Michael Tiemann. ! 6624: The following changes net a 16% speedup compiling some ! 6625: machine-generated CAD synthesis code. ! 6626: * c-decl.c (field_decl_cmp): New function, use as comparison ! 6627: function for qsort. ! 6628: (finish_struct): If there are more than 15 fields, allocate a ! 6629: LANG_TYPE for the FIELD_DECLs, and sort them according to ! 6630: `field_decl_cmp'. ! 6631: * c-tree.h (lang_type): Define a LANG_TYPE for RECORD_TYPEs. ! 6632: * c-typeck.c (build_component_ref): If LANG_TYPE set, then use ! 6633: binary search to find the field, otherwise use linear search as ! 6634: before. ! 6635: ! 6636: * tree.h: Declare savealloc. ! 6637: * c-common.c: Delete now unnecessary cast of savealloc result. ! 6638: ! 6639: Fri Oct 11 10:06:09 1991 Tom Wood (wood at dg-rtp.dg.com) ! 6640: ! 6641: * cse.c (simplify_binary_operation): Fix typo in last change. ! 6642: ! 6643: * cp-*, gcc.texinfo, make-cc1.com, tree.c, undocumented: Change ! 6644: cplus- to cp-. Rename cplus-parse.y to cp-parse.y. ! 6645: ! 6646: Fri Oct 11 07:48:40 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 6647: ! 6648: * recog.c (find_single_use_1): Ignore appearances of DEST in ! 6649: contexts where it is being set, not referenced. ! 6650: (find_single_use): Use dead_or_set_p instead of looking for REG_DEAD ! 6651: notes. ! 6652: ! 6653: Fri Oct 11 07:29:33 1991 Ron Guilmette (rfg at ncd.com) ! 6654: ! 6655: * c-parse.y, cp-lex.c, objc-parse.y (check_newline): Use `pedwarn' ! 6656: instead of `error' when we see an #ident if -pedantic. ! 6657: * cccp.c (do_assert, do_unassert, check_assertion, do_sccs): Warn ! 6658: if -pedantic. ! 6659: ! 6660: Thu Oct 10 18:30:28 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) ! 6661: ! 6662: * gcc.c (default_compilers): Correctly handle new debugging ! 6663: options, pass all -g* and -G* options. ! 6664: ! 6665: * Makefile.in, c-decl.c, cp-decl.c, final.c, flags.h, gcc.1, ! 6666: gcc.c, print-tree.c, toplev.c, tree.def, tree.h: Delete support ! 6667: for obsolete GDB_DEBUG format, -gg option, symout.c, etc. ! 6668: * gdbfiles.h, symseg.h, symout.c: Delete obsolete files. ! 6669: ! 6670: Thu Oct 10 17:56:16 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 6671: ! 6672: * expr.c (convert_move): When widening FROM to multi-word, ensure that ! 6673: we only reference each piece of TO once so that emit_no_conflict_block ! 6674: can be safely used. ! 6675: ! 6676: * toplev.c (float_signal): Re-enable the signal after we catch it. ! 6677: ! 6678: * cse.c (simplify_binary_operation): Add missing fp error handler ! 6679: setup in DFmode case. ! 6680: ! 6681: * combine.c (subst, case XOR): Fix typo in checking for ! 6682: STORE_FLAG_VALUE equal to just the sign bit. ! 6683: (simplify_comparison): Fix typo in computing maximum signed number in ! 6684: a mode; also, use GET_MODE_MASK rather than trying to compute it. ! 6685: ! 6686: Thu Oct 10 17:52:44 1991 Richard Stallman ([email protected]) ! 6687: ! 6688: * c-decl.c (init_decl_processing): Turn off `alloca' for -ansi. ! 6689: (c_decode_option): Handle -fbuiltin, -fno-builtin. ! 6690: ! 6691: Thu Oct 10 17:42:03 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) ! 6692: ! 6693: * caller-save.c (emit_mult_restore): Initialize MAYBE_TEMPREG. ! 6694: ! 6695: * function.c (assign_parms): Set MEM_IN_STRUCT_P when creating a ! 6696: MEM for a aggregate passed by reference. ! 6697: * expr.c (expand_expr, INDIRECT_REF case): Set MEM_IN_STRUCT_P ! 6698: when dereferencing an aggregate. ! 6699: ! 6700: * sched.c (sched_note_set): Add missing parens. ! 6701: ! 6702: * sparc.md: Delete unnecessary clobbers from all SCC patterns. ! 6703: ! 6704: * integrate.c (expand_inline_function): Correct handling of arguments ! 6705: passed by invisible reference. ! 6706: ! 6707: * cse.c (canon_hash): Compute hash code for SUBREG same as we do ! 6708: for REG. Otherwise, SUBREG hash codes can change when qty_const ! 6709: changes, which results in duplicate SUBREG entries, which can ! 6710: cause a crash. ! 6711: ! 6712: Wed Oct 9 15:55:42 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) ! 6713: ! 6714: * cccp.c (main): Update MAX_INCLUDE_LEN if GCC_EXEC_PREFIX gets into ! 6715: the act. ! 6716: ! 6717: * xm-a29k.h: Change copyright message back to GPL version 2. ! 6718: * xm-a29k-ultra.h: Use GPL version 2 copyright. ! 6719: ! 6720: * reload1.c (reload): Put array size in cast, to prevent compiler ! 6721: warning. ! 6722: ! 6723: * dwarfout.c (type_attribute): Check for ERROR_MARK nodes. ! 6724: ! 6725: Wed Oct 9 13:59:22 1991 Richard Stallman ([email protected]) ! 6726: ! 6727: * toplev.c (float_signal): Reenable handler. ! 6728: ! 6729: * configure: Comment out various options not yet updated. ! 6730: ! 6731: * cp-*.c, cp-*.h: Renamed from cplus-*.[ch]. ! 6732: * Makefile.in: Renaming here also. ! 6733: ! 6734: * x-*: Renamed from make-*. ! 6735: * Makefile.in (tmake_file, xmake_file): New vars. ! 6736: (Makefile): Depend on them. ! 6737: * configure: Replace host_make_var_file with host_xmake_file. ! 6738: Handle tmake_file also, for target machine. ! 6739: Form file names from x- and t-. ! 6740: Rearrange use of temporary files during editing of Makefile. ! 6741: ! 6742: * t-mips: Most of x-mips moved here. ! 6743: * t-decrose: Likewise from x-decrose. ! 6744: ! 6745: * xm-a29k-ult.h: Renamed from xm-a29k-ultra.h. ! 6746: ! 6747: * Makefile. in (install-common): Don't handle `collect' specially. ! 6748: It should be in EXTRA_PASSES if it is needed. ! 6749: ! 6750: * cse.c (simplify_binary_expression): Use float handler for DF like SF. ! 6751: Don't warn about traps; leave them for run time. ! 6752: ! 6753: * tm-hp9k320.h (SIZE_TYPE): New definition. ! 6754: Note: this affects tm-3b1.h by inheritance. Not sure that's right. ! 6755: ! 6756: Wed Oct 9 12:15:40 1991 Tom Wood (wood at dg-rtp.dg.com) ! 6757: ! 6758: * rtl.def (TRAP_IF): Make TRAP into a conditional trap. ! 6759: * rtl.h (TRAP_CONDITION): Define. ! 6760: * rtlanal.c (reg_referenced_p may_trap_p): Deal with TRAP_IF properly. ! 6761: (volatile_refs_p side_effects_p): Not currently true for TRAP_IF. ! 6762: ! 6763: Wed Oct 9 03:55:21 1991 Richard Stallman ([email protected]) ! 6764: ! 6765: * make-mips (BISONFLAGS): Assignment deleted. ! 6766: ! 6767: * real.h (REAL_VALUE_MINUS_ZERO): New macro. ! 6768: * fold-const.c (target_minus_zero): New function. ! 6769: * tm-sun2os4.h (ASM_OUTPUT_FLOAT, ASM_OUTPUT_FLOAT_OPERAND): ! 6770: (ASM_OUTPUT_DOUBLE, ASM_OUTPUT_DOUBLE_OPERAND): ! 6771: Use REAL_VALUE_ISINF, REAL_VALUE_MINUS_ZERO. ! 6772: ! 6773: Tue Oct 8 17:56:13 1991 Richard Stallman ([email protected]) ! 6774: ! 6775: * c-decl.c (duplicate_decls): If redeclaring builtin as static, ! 6776: replace the old decl. ! 6777: ! 6778: * tm-seq386.h (HARD_REGNO_MODE_OK): Copy usual def into override def. ! 6779: ! 6780: * tm-news.h (CPP_PREDEFINES): Get rid of invalid conditionals. ! 6781: * tm-tower.h: Likewise. ! 6782: ! 6783: * tm-gmicro.h (MODES_TIEABLE_P): Fix typo. ! 6784: ! 6785: * ns32k.md (rotrsi3): Fix typo `NEGATE' for `NEG'. ! 6786: ! 6787: * c-typeck.c (mark_addressable): Handle CONSTRUCTOR. ! 6788: * expr.c (expand_expr): Handle addressable contructors. ! 6789: ! 6790: Tue Oct 8 14:42:56 1991 Tom Wood (wood at dg-rtp.dg.com) ! 6791: ! 6792: * expmed.c (lshift_value): Ensure the shift amount is in range. ! 6793: ! 6794: Mon Oct 7 20:45:35 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) ! 6795: ! 6796: * integrate.c (function_cannot_inline_p, save_for_inline_copying, ! 6797: save_for_inline_nocopy, expand_inline_function, ! 6798: output_inline_function): Use GET_RTX_CLASS. ! 6799: ! 6800: * listing: Remove RCS Author and Log fields. ! 6801: ! 6802: * cse.c (exp_equiv_p): Fix typos in comments/spacing. ! 6803: * emit-rtl.c: Likewise. ! 6804: * expmed.c (store_fixed_bit_field): Likewise. ! 6805: * integrate.c (subst_constants): Likewise. ! 6806: ! 6807: * longlong.h: Again fix same typo previously fixed Sept 5. ! 6808: ! 6809: Mon Oct 7 17:28:23 1991 Michael Meissner (meissner at osf.org) ! 6810: ! 6811: * xm-mips.h (MIPS): Define MIPS to 1 instead of nothing, so ! 6812: mips-tfile will compile once again. ! 6813: ! 6814: Mon Oct 7 17:10:32 1991 Richard Stallman ([email protected]) ! 6815: ! 6816: * cccp.c (main): Pedantically warn if no newline at end of file. ! 6817: (finclude): Likewise. ! 6818: ! 6819: * c-decl.c (grokdeclarator): funcdef_flag overrides parm level. ! 6820: ! 6821: Sun Oct 6 16:37:31 1991 Richard Stallman ([email protected]) ! 6822: ! 6823: * sparc.md (peephole for lo-sum and load df): Use output_move_double. ! 6824: ! 6825: * tree.h (DECL_BUILT_IN_NONANSI): New flag. ! 6826: * c-decl.c (init_decl_processing): Set flag for `alloca'. ! 6827: ! 6828: * c-decl.c (duplicate_decls): Rearranged to reduce conditionals. ! 6829: Allow redefining built-in functions as static even if new decl ! 6830: is not a function. Also allow if built-in is not ANSI. ! 6831: ! 6832: * out-sparc.c (output_move_double): Fix typo in test for using ldd. ! 6833: ! 6834: Sun Oct 6 12:56:19 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 6835: ! 6836: * expr.c (expand_expr, case COND_EXPR): Rename var added in last ! 6837: change; some C compilers don't like "optab optab;". ! 6838: ! 6839: Sun Oct 6 09:26:55 1991 Michael Tiemann (tiemann at cygnus.com) ! 6840: ! 6841: * cplus-method.c (build_overload_name): When walking up contexts, if ! 6842: CONTEXT becomes a _TYPE node, point it at the _DECL node for the ! 6843: type. ! 6844: ! 6845: * cplus-decl2.c (grokclassfn): Paremeter COMPLAIN deleted. No ! 6846: longer performs sanity check by itself. ! 6847: (check_classfn): New function. Performs sanity check that ! 6848: `grokclassfn' used to do. All callers changed. ! 6849: ! 6850: * tree.h (struct tree_decl): Add new ignored_flag; delete ! 6851: lang_flag_8 to make room. ! 6852: (DECL_IGNORED_P): New macro. ! 6853: (DECL_LANG_FLAG_8): Deleted. ! 6854: * cplus-dbxout.c (dbxout_type): Use this macro instead of ! 6855: ANON_AGGRNAME_P. ! 6856: * cplus-decl.c (pushtag): Set DECL_IGNORED_P when appropriate. ! 6857: * cplus-decl.c (duplicate_decls): Ensure DECL_IGNORED_P remains ! 6858: consistent. ! 6859: ! 6860: * cplus-decl.c (grokfndecl): If we have an overloaded operator, set ! 6861: the DECL_NAME to something that dbxout.c can handle. ! 6862: * cplus-method.c (hack_operator): Change this function to handle ! 6863: this new behavior. ! 6864: * cplus-init.c (do_friend): Ditto. ! 6865: ! 6866: Sat Oct 5 14:32:01 1991 Richard Stallman ([email protected]) ! 6867: ! 6868: * expmed.c (expand_mult): Avoid fetching memory more than once. ! 6869: ! 6870: * tm-ultrix.h (DOLLARS_IN_IDENTIFIERS): Define as 1. ! 6871: ! 6872: * expr.c (expand_builtin): Clarify error message for BUILT_IN_NEXT_ARG. ! 6873: ! 6874: Sat Oct 5 08:42:02 1991 Michael Tiemann (tiemann at cygnus.com) ! 6875: ! 6876: * cplus-decl.c (clear_anon_tags): New function. ! 6877: (make_anon_name): Moved here from cplus-method.c. ! 6878: * cplus-lex.c (check_for_missing_semicolon, note_list_got_semicolon): ! 6879: call `clear_anon_tags' when done. ! 6880: * cplus-dbxout.c (dbxout_type): No longer test ANON_AGGRNAME_P for ! 6881: TYPE_NAMEs that are IDENTIFIER_NODES. They no longer appear in GNU ! 6882: C++. Also, we can rely on the fact that there are no anon aggrnames ! 6883: in tag lists. ! 6884: ! 6885: * cplus-decl.c (xref_tag): Set TREE_VEC_LENGTH (BINFOS) to the ! 6886: number of basetypes that were actually accepted. ! 6887: ! 6888: * cplus-parse.y (datadef, fndef): Accept `extern "C"' as a storage ! 6889: class specifier. ! 6890: ! 6891: * cplus-init.c (build_new): Handle allocating types whose TRUE_TYPEs ! 6892: start off as ARRAY_TYPEs. ! 6893: ! 6894: * cplus-typeck.c (build_unary_op): We don't need to wrap ! 6895: CURRENT_CLASS_DECL in a NON_LVALUE_EXPR when taking the address of ! 6896: C_C_D. ! 6897: ! 6898: * cplus-init.c (resolve_offset_ref): Fix error message for ! 6899: non-static member references. Also, don't crash if EXP is not a ! 6900: TREE_LIST or an OFFSET_REF. ! 6901: ! 6902: * cplus-expr.c (cplus_expand_expr): Handle OFFSET_REFs. ! 6903: ! 6904: * cplus-typeck.c (build_binary_op_nodefault): If PEDANTIC, don't ! 6905: permit comparisons between pointers and integers. ! 6906: ! 6907: * cplus-decl2.c (explicit_warn_return_type): New variable. ! 6908: * cplus-decl.c (grokdeclarator): Test `explicit_warn_return_type' ! 6909: instead of `warn_return_type'. ! 6910: ! 6911: * cplus-decl.c (grokdeclarator): Fix criterium for deciding whether ! 6912: to turn a FUNCTION_TYPE declaration into a METHOD_TYPE declaration ! 6913: based on FRIENDP and STATICP. ! 6914: (implicitly_declare): If PEDANTIC, treat this as an error. ! 6915: ! 6916: * cplus-cvt.c (convert_to_integer): Make anachronisms errors if ! 6917: PEDANTIC is nonzero. ! 6918: ! 6919: * cplus-typeck.c (convert_for_assignment): If PEDANTIC, don't let ! 6920: void * convert to non-void* types. Similarly, don't let const* ! 6921: pointers be assigned to non-const* pointers. Similarly for signed ! 6922: vs. unsigned pointers. ! 6923: (warn_for_assignment): Add new parameter SEVERE. ! 6924: ! 6925: * cplus-decl.c (push_overloaded_decl): If PEDANTIC, give error when ! 6926: functions overload variables. ! 6927: ! 6928: * cplus-decl2.c (grokfield): If PEDANTIC, don't let fields have ! 6929: initializers (conditionalized on PEDANTIC). ! 6930: * cplus-class.c (finish_struct): Set TYPE_GETS_{ASSIGNMENT,INIT_REF} ! 6931: for UNION_TYPE. ! 6932: ! 6933: Sat Oct 5 06:52:29 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 6934: ! 6935: * expr.c (expand_expr, case COND_EXPR): Case for X ? A + 1 : A can ! 6936: also handle MINUS_EXPR and BIT_*_EXPR. ! 6937: ! 6938: * rtl.h (copy_rtx_if_shared): Declare here. ! 6939: * emit-rtl.c (unshare_copies): Delete unused variable. ! 6940: (copy_rtx_if_shared): No longer static. ! 6941: (reset_used_flags): New function. ! 6942: * combine.c (copy_substitutions): Deleted. ! 6943: (try_combine): When making new insns, ensure that we do not have any ! 6944: improper sharing by using copy_rtx_if_shared; no longer call ! 6945: copy_substitutions. ! 6946: ! 6947: * combine.c (try_combine): If an insn that is a PARALLEL of two sets ! 6948: isn't recognized and the result of the second SET is unused, ignore it. ! 6949: ! 6950: Fri Oct 4 15:25:33 1991 Michael Tiemann (tiemann at cygnus.com) ! 6951: ! 6952: * cplus-decl.c (set_identifier_type_value): New function. Change ! 6953: all callers of macro SET_IDENTIFIER_TYPE_VALUE to call this function ! 6954: instead. ! 6955: ! 6956: * cplus-decl.c (pushdecl): Back out Sep 26 change. ??? This problem ! 6957: really has to be solved in a more global fashion. ! 6958: (struct binding_level): New field `type_shadowed' for typenames that ! 6959: get shadowed. All pop* routines that restore from shadowed lists ! 6960: now restore IDENTIFIER_TYPE_VALUE from the `type_shadowed' field. ! 6961: ! 6962: Fri Oct 4 14:47:52 1991 Michael Meissner (meissner at osf.org) ! 6963: ! 6964: * sdbout.c (include of syms.h): Don't include <syms.h> on MIPS ! 6965: systems, since the system does not provide the file, rather use ! 6966: "gsyms.h". This is a problem for Silicon Graphics, and the System V ! 6967: varient on RISC-OS, both of which define the USG macro. Patch from ! 6968: [email protected]. ! 6969: ! 6970: Fri Oct 4 13:37:11 1991 Tom Wood (wood at dg-rtp.dg.com) ! 6971: ! 6972: * stor-layout.c (get_best_mode): Add a volatilep parameter ! 6973: indicating that the smallest mode is desired. ! 6974: * expmed.c, fold-const.c: All callers changed. ! 6975: (optimize_bit_field_compare): Initialize {l,r}volatilep now that ! 6976: they are used. ! 6977: ! 6978: Thu Oct 3 22:08:45 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) ! 6979: ! 6980: * objc-actions.h (CLASS_SUPER_NAME): Change type.basetypes to ! 6981: type.binfo so that it will compile. ! 6982: ! 6983: Thu Oct 3 06:46:38 1991 Niklas Hallqvist (niklas at appli.se) ! 6984: ! 6985: * cplus-tree.h (PARANOID): Don't define if already defined. ! 6986: ({SET,CLEAR}_CLASSTYPE_MARKED*): New macros needed to get through ! 6987: C compilers who don't allow comma expressions as lvalues. ! 6988: ({SET,CLEAR}_BINFO_*): Ditto. ! 6989: ! 6990: * cplus-init.c: Use new SET/CLEAR macros. ! 6991: ! 6992: * cplus-search.c: Ditto. ! 6993: ! 6994: * cplus-decl.c: Ditto. ! 6995: (lookup_tag): Accept *_DECLs as nodes in the context chain. ! 6996: (lookup_nested_type): Accept FUNCTION_DECLs not only as head of ! 6997: the context chain, but at any place in it. ! 6998: ! 6999: Thu Oct 3 06:42:08 1991 Michael Meissner (meissner at osf.org) ! 7000: ! 7001: * c-decl.c (c_decode_option): Add new switch -Wparentheses and ! 7002: -Wnoparentheses to control whether GCC warns about adding extra ()'s ! 7003: around a subexpression. Make -Wparentheses default behavior. ! 7004: (warn_parentheses): New global variable. ! 7005: ! 7006: * c-tree.h (warn_parentheses): New variable. ! 7007: ! 7008: * c-typeck.c (parser_build_binary_op): Check for warn_parentheses ! 7009: before emitting warnings about adding (). ! 7010: ! 7011: Wed Oct 2 20:51:04 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) ! 7012: ! 7013: * gcc.texinfo: Correct documentation for CONSTANT_ADDRESS_P, ! 7014: CONSTANT_P, and HIGH. ! 7015: ! 7016: Wed Oct 2 15:08:32 1991 Michael Tiemann (tiemann at cygnus.com) ! 7017: ! 7018: * cplus-class.c (modify_vtable_entries): Fix error in computing ! 7019: offsets to use for virtual functions from virtual baseclasses. ! 7020: * cplus-except.c (lookup_exception_type): Change local variable name ! 7021: `binfo' to `link'. ! 7022: * cplus-lex.c (yylex): Cast shorts to (long) when building longlong. ! 7023: ! 7024: Wed Oct 2 11:32:35 1991 Michael Meissner (meissner at osf.org) ! 7025: ! 7026: * tm-encrose.h (new file): New configuration file for Encore ! 7027: Multimax running OSF/1, and using the OSF/rose object formats. ! 7028: ! 7029: Wed Oct 2 08:33:08 1991 Tom Wood (wood at dg-rtp.dg.com) ! 7030: ! 7031: * tree.h (TYPE_UID): Add this field to TYPE nodes. ! 7032: * tree.c (make_node): Initialize it. ! 7033: * dwarfout.c (TYPE_NAME_FMT): Use TYPE_UID rather than TREE_UID. ! 7034: (equate_type_number_to_die_number): Discard type qualifiers. ! 7035: (output_typedef_die): Don't use equate_type_number_to_die_number. ! 7036: ! 7037: Wed Oct 2 08:04:57 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 7038: ! 7039: * cse.c (cse_process_notes): Fix typo; missing arg in return. ! 7040: ! 7041: Wed Oct 2 06:56:13 1991 Ron Guilmette (rfg at ncd.com) ! 7042: ! 7043: * Makefile.in (ENQUIRE_CFLAGS): Remove duplicate use of GCC_CFLAGS. ! 7044: ! 7045: * Makefile.in (cplus-tab.c): Adjust number of expected conflicts. ! 7046: ! 7047: * Makefile.in (mostlyclean): Remove collect and collect2. ! 7048: ! 7049: * tm-svr4.h: Add new file; prototype for System V, Release 4. ! 7050: ! 7051: Tue Oct 1 23:00:13 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 7052: ! 7053: * reload.c (find_reloads_address): Fix error in previous change; ! 7054: clean up REG case so it is easier to read. ! 7055: ! 7056: Tue Oct 1 14:05:46 1991 Michael Tiemann (tiemann at cygnus.com) ! 7057: ! 7058: * cplus-decl.c (finish_{decl,function}): Use new function ! 7059: `note_debug_info_needed' instead of setting CLASSTYPE_ASM_WRITTEN. ! 7060: * cplus-search.c (note_debug_info_needed): New function. ! 7061: Recursively set CLASSTYPE_ASM_WRITTEN in a hierarchy when called. ! 7062: ! 7063: * cplus-class.c (finish_struct): If DECL_NAME of the BASE_FNDECL is ! 7064: NULL_TREE, we know we're looking at a virtual destructor. ! 7065: ! 7066: Tue Oct 1 09:47:25 1991 Michael Meissner (meissner at osf.org) ! 7067: ! 7068: * tm-mips.h (OPTIMIZATION_OPTIONS): Enable scheduling insns now for ! 7069: -O2 optimization. ! 7070: ! 7071: * Makefile.in (STAGESTUFF): Add $(EXTRA_PASSES), to allow moving any ! 7072: extra passes into the stage[1234] directories, and to remove the ! 7073: extra stuff when doing make clean. ! 7074: ! 7075: Tue Oct 1 08:35:11 1991 Tom Wood (wood at dg-rtp.dg.com) ! 7076: ! 7077: * dwarfout.c (FUNC_END_LABEL_FMT, TYPE_NAME_FMT): Undo this change. ! 7078: ! 7079: * c-decl.c (grokdeclarator): When making an unsigned bitfield ! 7080: type from a typedef, preserve the size. A typedef of an ! 7081: explicitly signed typedef is explicitly signed. ! 7082: ! 7083: Mon Sep 30 22:51:07 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) ! 7084: ! 7085: * out-sparc.c: Fix misc typos and indentation problems. ! 7086: Delete all unnecessary extern declarations. ! 7087: Include "recog.h". ! 7088: Consistently use Pmode instead of SImode for addresses. ! 7089: Use macros defined in tm-sparc.h instead of magic numbers. ! 7090: (reg_or_0_operand): Accept CONST_DOUBLE zero. ! 7091: (symbolic_operand): Accept CONST_DOUBLE. ! 7092: (move_operand): Accept arith_double_operand ('H'), SMALL_INT ! 7093: ('I'), and sethi operands ('K'). ! 7094: (move_pic_label): Renamed from move_reg_or_immed_operand. If ! 7095: flag_pic is true, accept a LABEL_REF, otherwise fail. ! 7096: (arith_double_operand): Accept SMALL_INT ('I') CONST_INTs. Correct ! 7097: computation of when a CONST_DOUBLE is a SMALL_INT ('H'). ! 7098: (eligible_for_epilogue_delay): Accept arith_double_operands. ! 7099: (emit_move_sequence): Handle arith_double_operands. Handle ! 7100: loading of labels for pic, need to add a clobber of %o7 (reg 15). ! 7101: (find_addr_reg): Don't return FRAME_POINTER_REGNUM. It is not ! 7102: safe to play around with the frame pointer. ! 7103: (hard_regno_mode_ok): Change from short to int array. ! 7104: (output_pic_sequence, output_pic_sequence_2, fp_zero_hook): Delete ! 7105: long obsolete routines. ! 7106: (print_operand): Delete support for obsolete 'S' and 'H' cases. ! 7107: (output_double_int): New function. Outputs assembler code for 64 ! 7108: bit (DImode) values. ! 7109: ! 7110: * sparc.md: Fix misc typos and indentation problems. ! 7111: Delete unnecessary (set_attr "type" "binary") lines. ! 7112: Consistently use %a1 in sethi and ori output templates. ! 7113: Consistently use Pmode not SImode for addresses. ! 7114: Consistently use the same predicate for both operand 1 and ! 7115: operand 2 in commutative patterns. Don't use same predicate in ! 7116: non-commutative patterns. ! 7117: Consistently use \; to separate multiple instuctions. ! 7118: Change "r%" to "%r". ! 7119: (define_attr length): Handle arith_double_operand predicate. ! 7120: (movsi): Combine two movsi patterns into one, except for loading ! 7121: of pic labels. New pattern to load pic labels, which clobbers %o7. ! 7122: (movhi): Combine two movhi patterns into one. ! 7123: (movqi): Combine two movqi patterns into one. ! 7124: (movdi): Discourage the Q/f constraint option so that DImode ! 7125: variables won't end up in floating pointer registers. ! 7126: (floatsisf2, floatsidf2): Delete patterns accepting a const_int ! 7127: operand. These should never be matched. In remaining patterns, ! 7128: accept nonimmediate_operand instead of general_operand. ! 7129: (adddi3, subdi3, anddi3, iordi3, xordi3, xnordi3, one_cmpldi2): ! 7130: Accept arith_double_operand predicates and "HI" constraints. ! 7131: (last peephole): Reg 0 should be CCmode not SImode. ! 7132: ! 7133: * tm-sparc.h: Fix misc typos. ! 7134: (WORDS_BIG_ENDIAN): Indicate why it must be true. ! 7135: (hard_regno_mode_ok): Change from short to int array. ! 7136: (CONST_DOUBLE_OK_FOR_LETTER_P): Add new 'H' constraint, for DImode ! 7137: constants that can fit in an immediate field. ! 7138: (CONSTANT_ADDRESS_P): Accept any CONSTANT_P, including ! 7139: CONST_DOUBLEs. ! 7140: (LEGITIMATE_CONSTANT_P): Accept CONST_DOUBLEs if match 'H' ! 7141: constaint. ! 7142: (RTX_COSTS): Define cost for FLOAT to be more expensive than ! 7143: CONST_DOUBLEs, so that cse will prefer the latter. ! 7144: (ASM_OUTPUT_DOUBLE_INT): New macro to output DImode constants. ! 7145: ! 7146: * sched.c (schedule_block): When calculating register lifetime ! 7147: info, handle CLOBBERs and USEs. The code that adds REG_DEAD notes ! 7148: already handles them. ! 7149: (update_n_sets): New function, subroutine of update_links. ! 7150: Given a SET or CLOBBER, updates reg_n_sets as appropriate, ! 7151: depending on whether this is in a deleted or a new insn. ! 7152: (update_links): Call update_n_sets to subtract info for split ! 7153: insn, and add info for insns resulting from the split. ! 7154: ! 7155: Mon Sep 30 19:06:50 1991 Michael Meissner (meissner at osf.org) ! 7156: ! 7157: * ecoff-cmp (TMP): Fix typo, from [email protected]. ! 7158: ! 7159: * mips-tfile.c (toplevel): Don't declare _flsbuf under Silicon ! 7160: Graphics, from [email protected]. ! 7161: ! 7162: Mon Sep 30 15:54:02 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 7163: ! 7164: * cse.c (cse_process_notes): New function. ! 7165: (cse_basic_block): Call it for each insn. ! 7166: (count_reg_usage): Count usage in a REG_EQUAL note. ! 7167: (delete_dead_from_cse): Call count_reg_usage with insn, not pattern. ! 7168: * loop.c (scan_loop): Replace a register used in a REG_EQUAL note. ! 7169: (find_single_use_in_loop): Two uses in single insn doesn't disqualify. ! 7170: Allow argument to be REG_NOTES. ! 7171: (count_loop_regs_set): Call find_single_us_in_loop on REG_NOTES. ! 7172: ! 7173: Mon Sep 30 15:47:03 1991 Michael Tiemann (tiemann at cygnus.com) ! 7174: ! 7175: * cplus-call.c (ideal_candidate): Return 0 if the top two candidates ! 7176: have identical rankings but incompatible types. ! 7177: ! 7178: * cplus-lex.c (cons_up_default_function): Set DECL_NAME (FN) to ! 7179: NULL_TREE in order to mark the function as being generated by the ! 7180: compiler. ! 7181: * cplus-init.c (emit_base_init): Change to use this interface. ! 7182: * cplus-decl.c (duplicate_decls, redeclaration_error_message): Ditto. ! 7183: (store_parm_decls): Ditto. ! 7184: * cplus-decl2.c (grokclassfn): Ditto. ! 7185: * cplus-dbxout.c (dbxout_type_methods): Ditto. ! 7186: * cplus-class.c (finish_struct_methods): Ditto. ! 7187: * cplus-method.c (fndecl_as_string): Ditto. ! 7188: * cplus-search.c (lookup_fnfields_1): Ditto. ! 7189: (compute_visibility): Ditto. ! 7190: * cplus-typekc.c (build_function_call): Ditto. ! 7191: * cplus-tree.c (lang_printable_name): Ditto. Also use ! 7192: DECL_ASSEMBLER_NAME instead of DECL_NAME in DESTRUCTOR_NAME_P test. ! 7193: * calls.c (expand_call): Change also needed here. ! 7194: ! 7195: Mon Sep 30 15:31:53 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) ! 7196: ! 7197: * dbxout.c: Include <param.h> before config.h, because it may define ! 7198: MIN and MAX. ! 7199: ! 7200: * fold-const.c (const_binop): Delete incorrect short cut for ! 7201: (0 - const). ! 7202: ! 7203: * expr.c (do_tablejump): Pass GET_MODE (index) instead of Pmode to ! 7204: emit_cmp_insn, because the latter fails when integers and pointers ! 7205: are different sizes. ! 7206: ! 7207: * combine.c (subst): When checking to see if associating helps ! 7208: simplify rtl, make sure we pass the constant operand if any as the ! 7209: second one if this is a commutative operation. ! 7210: ! 7211: * cccp.c (rescan): Save obufp_before_macroname as an offset from ! 7212: the start of op->buf instead of as a pointer into the middle, in ! 7213: case op->buf gets realloced. ! 7214: ! 7215: Mon Sep 30 14:07:20 1991 Tom Wood (wood at dg-rtp.dg.com) ! 7216: ! 7217: * dwarfout.c (FUNC_END_LABEL_FMT, TYPE_NAME_FMT): TREE_UID is ! 7218: unique only if the node is TREE_PERMANENT. Augment the spelling ! 7219: of labels using TREE_UID with the TREE_UID of the current function. ! 7220: ! 7221: Changes from Ron Guilmette: ! 7222: * dwarfout.c (output_symbol): Deal with formal parameters with an ! 7223: incomplete tagged type. ! 7224: (output_bound_representation): Fix for arrays with dynamic bounds. ! 7225: ! 7226: Changes from Jim Wilson: ! 7227: * dwarfout.c: Define strrchr to rindex for non USG systems. ! 7228: Use DECL_BIT_FIELD_TYPE not DECL_BIT_FIELD to test for bitfields. ! 7229: ! 7230: Sun Sep 29 16:29:08 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 7231: ! 7232: * reload.h (indirect_symref_ok): New variable. ! 7233: * reload.c (find_reloads_address): Remove shadowing decls of `tem'. ! 7234: Only allow certain forms addresses as indirect; check ! 7235: indirect_symref_ok to see if (mem (symbol_ref ...)) is a valid ! 7236: address; if not that form or simple, not valid indirect address. ! 7237: * reload1.c (indirect_symref_ok): Define here. ! 7238: (init_reload): Initialize vars used to determine which addrs are valid. ! 7239: (reload): Don't do it here. ! 7240: Update comment to relect what `alter_regs' currently does. ! 7241: ! 7242: * tree.h (struct tree_decl): Add new from_inline_flag; delete ! 7243: lang_flag_9 to make room. ! 7244: (DECL_FROM_INLINE): New macro. ! 7245: (DECL_LANG_FLAG_9): Deleted. ! 7246: * c-decl.c, cplus-decl.c (pushdecl): Use DECL_FROM_INLINE instead of ! 7247: TREE_INLINE where appropriate. ! 7248: * cplus-decl.c (finish_decl): Likewise. ! 7249: * integrate.c (integrate_parm_decls, integrate_decl_tree): Set ! 7250: DECL_FROM_INLINE instead of TREE_INLINE. ! 7251: * print-tree (print_node): Print DECL_FROM_INLINE. ! 7252: Delete reference to DECL_LANG_FLAG_9. ! 7253: ! 7254: Sun Sep 29 12:49:47 1991 Michael Tiemann (tiemann at cygnus.com) ! 7255: ! 7256: * c-decl.c, c-typeck.c, cplus-decl.c, toplev.c: ! 7257: Set/test TREE_ADDRESSABLE of DECL_ASSEMBLER_NAME, not DECL_NAME for ! 7258: function decls. ! 7259: ! 7260: * cplus-class.c: Export `current_lang_stack' and ! 7261: `current_lang_base'. ! 7262: cplus-decl.c (push_overloaded_decl): Allow redeclaration of a ! 7263: function that was previously given a linkage specification at ! 7264: top-level (i.e., not in an explicit linkage arena). ! 7265: ! 7266: * cplus-typeck.c (convert_arguments): Strip the `&' from an ! 7267: overloaded function passed as an argument into an ellipses. ! 7268: ! 7269: Sat Sep 28 15:37:26 1991 Michael Tiemann (tiemann at cygnus.com) ! 7270: ! 7271: * cplus-typeck.c (build_x_binary_op): We have to special-case the ! 7272: failure of MEMBER_REF to be overloaded as an operator. ! 7273: ! 7274: Sat Sep 28 10:44:36 1991 Richard Kenner ([email protected]) ! 7275: ! 7276: * reload1.c (reload): If we find at some point that we need ! 7277: caller-saves, disable elimination of the frame pointer. ! 7278: ! 7279: * reload.c (subst_reloads): Re-enable code to prevent making ! 7280: a SUBREG inside a SUBREG. ! 7281: ! 7282: Sat Sep 28 00:40:51 1991 Ken Raeburn ([email protected]) ! 7283: ! 7284: * cplus-pt.c (do_pending_expansions): Adjust "DECIDE" macro to avoid ! 7285: compiler warning from Sun cc. ! 7286: ! 7287: Fri Sep 27 17:30:39 1991 Per Bothner (bothner at cygnus.com) ! 7288: ! 7289: * configure[.in]: Move most of the target_vendor switch ! 7290: entries (e.g. next, sun, sony) from the m88k architecture to m68k, ! 7291: where they belong. ! 7292: ! 7293: Fri Sep 27 16:21:04 1991 Michael Tiemann (tiemann at cygnus.com) ! 7294: ! 7295: * cplus-search.c (recursive_bounded_basetype_p): Add new parameter ! 7296: UPDATE_CHAIN so that function now behaves as comment prescribes. ! 7297: * cplus-search.c (compute_visibility): Fix error in conversion of ! 7298: data structures from list-based to binfo-based nodes. ! 7299: ! 7300: Fri Sep 27 07:05:57 1991 Richard Kenner ([email protected]) ! 7301: ! 7302: * c-decl.c (pushdecl): Fix typo: TREE_EXTERNAL misspelled. ! 7303: ! 7304: Thu Sep 26 17:36:14 1991 Michael Meissner (meissner at osf.org) ! 7305: ! 7306: * tm-mips.h (ASM_FINAL_SPEC): Handle gcc -c -o foo bar.c. ! 7307: ! 7308: * tm-decrose.h (ASM_FINAL_SPEC): Handle gcc -c -o foo bar.c. ! 7309: ! 7310: * make-decrose (cplus-lex rule): Remove hacks in compiling ! 7311: cplus-lex, since bug in 1.39 inlining was fixed to allow us to ! 7312: compile the module normally. ! 7313: ! 7314: Thu Sep 26 11:53:49 1991 Ken Raeburn ([email protected]) ! 7315: ! 7316: * cplus-tree.h (TEMPLATE_TYPE_*): Use slower versions that uses tree ! 7317: structures more properly, so accessor macros don't lose. ! 7318: ! 7319: * cplus-pt.c (end_template_parm_list): For type parameters, make the ! 7320: new decl be the name of the "type". ! 7321: ! 7322: * Makefile.in (cplus-tab.{c,h}): There are now 30 s/r conflicts. ! 7323: ! 7324: * cplus-class.c (resolves_to_fixed_type_p, case CALL_EXPR): Deleted ! 7325: duplicate code. ! 7326: ! 7327: * cplus-decl.c (poplevel): Deleted duplicate code saving info on ! 7328: accesses to external via non-global decls. ! 7329: (pushdecl): For typedef of unnamed type, don't store new name for ! 7330: type if not at global binding scope. Also, don't need to test for ! 7331: TYPE_DECL when previous conditional guarantees it. ! 7332: (start_decl): Clear TREE_PUBLIC flag of templates. ! 7333: (finish_decl): For variables in static storage with constructors, ! 7334: force it into data section (out of common storage) only if the name ! 7335: is externally visible. ! 7336: ! 7337: * cplus-gc.c (type_needs_gc_entry): If the type has no base types, ! 7338: don't check to see whether they need gc entries. ! 7339: ! 7340: * cplus-parse.y (yyprint): Handle SCSPEC and AGGR. ! 7341: ! 7342: * cplus-pt.c (end_template_decl): Clear IDENTIFIER_TYPE_VALUE slots ! 7343: for type parameters, then call adjust_type_value. ! 7344: (instantiate_class_template): Do nothing if classname is ! 7345: error_mark_node. ! 7346: (mangle_class_name_for_template): Make buf a static array, since ! 7347: its address gets returned. ! 7348: ! 7349: * reload1.c (reload): Provide array size in cast, to avoid compiler ! 7350: warnings. ! 7351: ! 7352: From Niklas Hallqvist: ! 7353: * cplus-tree.h (struct template_info): Added new field "aggr", which ! 7354: will be class_type_node or struct_type_node for class or struct ! 7355: templates. ! 7356: * cplus-parse.y (template_def): Pass current_aggr to ! 7357: end_template_decl. ! 7358: (template_instantiation): Use aggr field. ! 7359: * cplus-pt.c (end_template_decl): Argument IS_CLASS is now a tree, ! 7360: used to set the aggr field. ! 7361: (overload_template_name): Use aggr field. ! 7362: ! 7363: Suggested by John Carr: ! 7364: * cplus-dbxout.c (dbxout_tags): Don't omit argument to ! 7365: dbxout_finish_symbol. ! 7366: (dbxout_continue): Omit declaration and definition if ! 7367: DBX_CONTIN_LENGTH is not greater than zero, like its calls. ! 7368: (print_int_cst_octal): Ditto, based on defined(WINNING_GDB). ! 7369: * cplus-decl.c (GNU_end_scope): Never used; deleted. ! 7370: (pushdecl): Vars nglobals, len are used only in code under "#if 0"; ! 7371: comment out decls as well. ! 7372: * cplus-gc.c (expand_gc_prologue_and_epilogue): Variable "head" was ! 7373: unused; deleted. ! 7374: * cplus-init.c (expand_aggr_vbase_init_1): All args are type tree. ! 7375: (expand_vec_init): Don't return without a value when "initializer ! 7376: ends prematurely". ! 7377: * cplus-method.c (build_overload_nested_name): Pass all necessary ! 7378: arguments in recursive call. ! 7379: * cplus-search.c (pop_type_level): Cast argument to pop_stack_level ! 7380: to proper type. ! 7381: (push_memoized_context): Ditto for push_type_level. ! 7382: (my_copy_node): Unused; deleted. ! 7383: (lookup_fnfields): Add missing arg to get_binfo. ! 7384: (lookup_field): Ditto. ! 7385: ! 7386: From Niklas Hallqvist: ! 7387: * cplus-decl.c (push_to_top_level): Handle case of function with ! 7388: unnamed parms. ! 7389: (pop_from_top_level): Ditto. ! 7390: ! 7391: Thu Sep 26 07:46:08 1991 Richard Kenner ([email protected]) ! 7392: ! 7393: * loop.c (scan_loop): Don't eliminate register that is set by ! 7394: consecutive insns. ! 7395: ! 7396: Wed Sep 25 18:53:52 1991 Richard Stallman ([email protected]) ! 7397: ! 7398: * c-decl.c (pushdecl): Suppress warnings about mismatch of ! 7399: extern decl when it comes from inlining a function. ! 7400: ! 7401: * emit-rtl.c (set_new_first_and_last_label_number): New function. ! 7402: (max_label_num): Use last_label_num if valid. ! 7403: * integrate.c (output_inline_function): Call set_new_... ! 7404: ! 7405: Wed Sep 25 18:37:36 1991 Richard Kenner ([email protected]) ! 7406: ! 7407: * flow.c (find_auto_inc): Set BLOCK_NUM of new insns emitted while ! 7408: making an auto-inc. ! 7409: ! 7410: * Makefile.in (getopt*.o): Each file depends on its .c file and on ! 7411: the compiler executable files. ! 7412: ! 7413: Wed Sep 25 18:18:46 1991 Richard Stallman ([email protected]) ! 7414: ! 7415: * toplev.c (debug_info_level): New variable. ! 7416: * flags.h (debug_info_level, enum debug_info_level): New declarations. ! 7417: * toplev.c (main): Rewrite handling of -g* and -G* options. ! 7418: Now -G indicates use of GDB extensions. -g0 removed. ! 7419: ! 7420: Tue Sep 24 03:20:07 1991 Richard Stallman ([email protected]) ! 7421: ! 7422: * alloca.c: Test __STDC__, not X3J11. ! 7423: Do nothing if alloca is defined as a macro. ! 7424: ! 7425: Tue Sep 24 09:15:17 1991 Richard Kenner ([email protected]) ! 7426: ! 7427: * global-alloc.c (eliminable_regset): New variable. ! 7428: (global_alloc): Compute it and use to turn off conflicts. ! 7429: Refine computation of no_global_alloc_regs when ELIMINABLE_REGS is ! 7430: defined. ! 7431: (mark_elimination): Don't do anything with allocnos and don't do ! 7432: any allocation. ! 7433: ! 7434: * reload1.c (eliminate_regs_in_insn): Try to re-recognize insn if ! 7435: we replaced a (set X (plus Y Z)). ! 7436: ! 7437: Tue Sep 24 06:34:04 1991 Michael Tiemann (tiemann at mole.gnu.ai.mit.edu) ! 7438: ! 7439: * cplus-tree.c (virtual_member): Change TREE_VALUE accessor macro to ! 7440: BINFO_TYPE. ! 7441: * tree.h (BINFO_TYPE): New name for BINFO_VALUE. ! 7442: * All cplus-* files: Changed to reflect new name. ! 7443: ! 7444: Mon Sep 23 12:56:11 1991 Michael Meissner (meissner at osf.org) ! 7445: ! 7446: * tm-mips.h (ASM_SPEC): Fix typo, and close {}'s properly. ! 7447: ! 7448: Mon Sep 23 10:30:51 1991 Michael Tiemann (tiemann at cygnus.com) ! 7449: ! 7450: * cplus-tree.c (propagate_assoc_offsets): Keep relative offsets of ! 7451: child_child correct when copying children. ! 7452: ! 7453: * cplus-class.c Use `BINFO_VALUE' instead of `TREE_VALUE' when ! 7454: accessing the type value of a binfo node. ! 7455: * cplus-decl.c (finish_function): Ditto. ! 7456: * cplus-init.c (build_vbase_delete): Ditto. ! 7457: ! 7458: Mon Sep 23 06:11:56 1991 Richard Kenner ([email protected]) ! 7459: ! 7460: * flow.c (reg_n_refs): Use int, not short. Short can overflow ! 7461: if we have very deep loop nesting. ! 7462: (allocate_for_life_analysis): Allocate reg_n_refs as int. ! 7463: * regs.h (reg_n_refs): Now int. ! 7464: * sched.c: Delete duplicate definitions of objects defined in regs.h. ! 7465: ! 7466: * combine.c (try_combine): Correctly check for independent insns ! 7467: in a PARALLEL. ! 7468: ! 7469: * combine.c (distribute_note, case REG_DEAD): If we discover a register ! 7470: is never used, see if we can delete the insn that set it. ! 7471: ! 7472: Sun Sep 22 19:24:52 1991 Michael Tiemann (tiemann at cygnus.com) ! 7473: ! 7474: * cplus-type2.c (build_functional_cast): Don't forget a valid ! 7475: function call if we found one (and nothing more). ! 7476: ! 7477: Sun Sep 22 07:48:18 1991 Richard Kenner ([email protected]) ! 7478: ! 7479: * rtlanal.c (rtx_varies_p, case REG): Correct typo; sense of comparison ! 7480: was backwards. ! 7481: ! 7482: * global-alloc.c (mark_elimination): Don't use HARD_REG_SET macros ! 7483: to access basic_block_live_at_start. ! 7484: ! 7485: * reload1.c (set_label_offsets): New function. ! 7486: (offsets_known_at, offsets_at): New variables. ! 7487: (reload): Allocate and initialize them. ! 7488: Set each label in FORCED_LABELS to be at initial offsets. ! 7489: Call set_label_offset on all insns that might involve labels. ! 7490: Use GET_RTX_CLASS when appropriate. ! 7491: (eliminate_regs, mark_not_eliminable): Ignore sets of FP when looking ! 7492: for sets of a "to" register. ! 7493: (eliminate_regs_in_insn): No longer suppress elimination for any ! 7494: pair not at its initial offet at a jump. ! 7495: ! 7496: * combine.c (distribute_links): Correctly find the place to put a ! 7497: link. Handle the case when we eliminate all uses of something that ! 7498: we used to use; in that case, we must seach forward. ! 7499: No longer need I3, I2, or ALL_ADJACENT arguments. ! 7500: (try_combine): Change calls to distribute_links. ! 7501: ! 7502: * reload.c (find_equiv_reg): Use GET_RTX_CLASS when appropriate. ! 7503: If GOAL is a MEM whose address varies, check whether registers ! 7504: that are SET appear in the address rather than assuming they do. ! 7505: Ensure REG_INC note is a REG; ignore it if not. ! 7506: ! 7507: * rtlanal.c (rtx_varies_p): Rework to use switch statement. ! 7508: Check for {frame,arg}_pointer_rtx, not just register number. ! 7509: (rtx_addr_can_trap_p): New function. ! 7510: (may_trap_p): Use rtx_addr_can_trap_p instead of rtx_varies_p. ! 7511: * genattrtab.c: Define {frame,arg,stack}_pointer_rtx for rtlanal.c. ! 7512: ! 7513: * combine.c (make_extraction): Make a ZERO_EXTRACT for something with ! 7514: pos == 0 if it will be placed in a SET_DEST. ! 7515: ! 7516: * expmed.c (expand_shift): Rotate case was missing return statement. ! 7517: extzv case had wrong arg to delete_insns_since. ! 7518: Remove unneeded calls to delete_insns_since. ! 7519: Allow BITS_BIG_ENDIAN to vary at run-time. ! 7520: Use variable TEMP in a consistent manner. ! 7521: Other miscellaneous changes and cleanups were made. ! 7522: ! 7523: * flow.c (max_uid_for_flow): New variable. ! 7524: (flow_analysis): Compute maximum uid into max_uid_for_flow; if ! 7525: we might have auto-inc, leave some space. ! 7526: (find_auto_inc): Verify that the uid's of the insns we make are ! 7527: within the allocated space of our per-insn tables. ! 7528: Use get_insns instead of gen_sequence. ! 7529: ! 7530: * global-alloc.c (retry_global_alloc): When we allocate a register, ! 7531: update regno_reg_rtx and mark the allocated register live. ! 7532: (mark_elimination): New function. ! 7533: * reload1.c (reload): Call mark_elimination for every elimination ! 7534: we have been able to do. ! 7535: (spill_hard_reg): No longer need to call mark_home_live. ! 7536: ! 7537: Sun Sep 22 02:07:55 1991 Richard Stallman ([email protected]) ! 7538: ! 7539: * fixincludes: Redirect cmp output to /dev/null; don't close it. ! 7540: ! 7541: * varasm.c (assemble_function): Handle ASM_OUTPUT_FUNCTION_PREFIX. ! 7542: ! 7543: * final.c (final_scan_insn): No need to goto text section ! 7544: for label on jump table. We're normally in the text section. ! 7545: ! 7546: Sat Sep 21 14:59:32 1991 (Eric Youngdale at [email protected]) ! 7547: ! 7548: * make-cc1.com: Fix typo in code that decides if bison needs to be ! 7549: run. Also, display a message when building the compiler that informs ! 7550: the user about the need to update the assembler. ! 7551: ! 7552: Sat Sep 21 17:23:07 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 7553: ! 7554: * loop.c (struct movable): Add field DEPENDENCIES. ! 7555: (scan_loop): Remove mechanism based on REG_TO_FORCE and ! 7556: MOVABLE_TO_FORCE. Replace with use of new field. ! 7557: Optionally allocate and initialize reg_single_usage and pass it to ! 7558: count_loop_regs_set. ! 7559: If an invariant register is used exactly once and this is a loop ! 7560: that has a CALL_INSN, try to substitute the definition of the register ! 7561: into its use. ! 7562: (record_excess_regs): Fix typo in sense of checking in NOT_IN_THIS; ! 7563: only check pseudo-regs. ! 7564: (libcall_other_reg): Always return the list of registers used, ! 7565: no matter how many there are. ! 7566: (combine_movable): Only combine two movables if they have the same ! 7567: dependencies. ! 7568: (move_movables): Can only move something if its dependencies have ! 7569: already been moved. ! 7570: (find_single_use_in_loop): New function. ! 7571: (count_loop_regs_set): Delete code that prevents moving a reg that ! 7572: is used as a function address. ! 7573: Call find_single_use_in_loop when required. ! 7574: ! 7575: Sat Sep 21 16:28:34 1991 Richard Stallman ([email protected]) ! 7576: ! 7577: * c-typeck.c (build_unary_op): ! 7578: Handle const and volatile lvalues correctly in ADDR_EXPR. ! 7579: ! 7580: * output.h (current_function_contains_functions): ! 7581: Just declare it, don't define it. ! 7582: ! 7583: * cse.c (exp_equiv_p): New arg EQUAL_VALUES. All callers changed. ! 7584: ! 7585: Sat Sep 21 12:59:15 1991 Michael Tiemann (tiemann at cygnus.com) ! 7586: ! 7587: * cplus-parse.y (object_star): New rule. ! 7588: (POINTSAT_STAR): New token. ! 7589: * cplus-lex.c (init_lex): Define entry for MEMBER_REF. ! 7590: GNU C++ now overloads `operator->*' according to ARM semantics. It ! 7591: no longer attempts to implement operator->* as two distinct ! 7592: operations. ! 7593: ! 7594: Fri Sep 20 18:08:07 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 7595: ! 7596: * combine.c (subst): Don't replace a CC0 or a PC in a SET_DEST if ! 7597: FROM is the same thing. ! 7598: ! 7599: * combine.c (simplify_shift_const): Compute SHIFT_MODE at start of ! 7600: loop and use its width, rather than width of RESULT_MODE, when checking ! 7601: shift count. ! 7602: ! 7603: Fri Sep 20 10:55:55 1991 Michael Tiemann (tiemann at cygnus.com) ! 7604: ! 7605: * cplus-pt.c (uses_template_parms): Handle COMPONENT_REF case. ! 7606: ! 7607: Fri Sep 20 00:27:43 1991 Richard Stallman ([email protected]) ! 7608: ! 7609: * c-typeck.c (build_modify_expr): When assigning to a cast, ! 7610: convert value first to the type being cast to. ! 7611: (build_unary_expr): Disallow adress of a cast. ! 7612: ! 7613: * explow.c (allocate_dynamic_stack_space): ! 7614: Handle SETJMP_VIA_SAVE_AREA before rounding to STACK_BOUNDARY. ! 7615: ! 7616: Thu Sep 19 21:13:17 1991 Richard Stallman ([email protected]) ! 7617: ! 7618: * Makefile.in (dist, gcc-*.tar, gcc-*.tar.Z): New targets. ! 7619: ! 7620: * jump.c (jump_optimize): In handling `if (...) x = a; else x = b;', ! 7621: don't crash if scan reaches start of insns. ! 7622: ! 7623: * Makefile.in (protoize): Link with getopt.o and getopt1.o. ! 7624: (unprotoize): Likewise. ! 7625: (protoize.o): Depend on getopt.h. Pass -D options for include dirs. ! 7626: (unprotoize.o): Likewise. ! 7627: (getopt.o, getopt1.o): New targets. ! 7628: ! 7629: * protoize.c: Major rewrite by RFG and RMS. ! 7630: ! 7631: Thu Sep 19 09:58:25 1991 Tom Wood (wood at dg-rtp.dg.com) ! 7632: ! 7633: Changes from Ron Guilmette: ! 7634: * dwarfout.c: Keep track of next_block_number correctly. ! 7635: * final.c (final_scan_insn): Don't invoke dwarfout_{begin,end}_block ! 7636: for the outermost block of a function. ! 7637: ! 7638: Thu Sep 19 06:16:34 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 7639: ! 7640: * reload.c (copy_replacements): New function. ! 7641: * optabs.c (gen_move_insn): Don't call gen_lowpart while reloading ! 7642: is in progress; it calls change_address, which wants to make pseudos. ! 7643: ! 7644: * combine.c (subst, case SET): Fix typo in last change. ! 7645: ! 7646: * combine.c (distribute_notes): When searching back for a place that ! 7647: uses a register marked REG_DEAD, check for set and reference separately ! 7648: since reg_overlap_mentioned_p doesn't check SET_DEST. ! 7649: ! 7650: * combine.c (simplify_shift_const): Correct handling of shift counts ! 7651: that become out-of-range. ! 7652: ! 7653: * combine.c (expand_field_assignment): Don't allow sharing the RTL ! 7654: for the inner object. ! 7655: ! 7656: * combine.c (can_combine_p, try_combine, record_value_for_reg): Use ! 7657: reg_overlap_mentioned_p instead in reg_mentioned_p in most places. ! 7658: (distribute_notes, distribute_links): Likewise. ! 7659: (combinable_i3pat): New function, from try_combine. ! 7660: (try_combine): Default I1DEST and I1SRC to zero. ! 7661: New var I1_FEEDS_I3. ! 7662: Delete code to validate I3's pattern from here; call combinable_i3pat ! 7663: instead. ! 7664: If a substitution returns a (clobber (const_int 0)), stop immediately. ! 7665: Don't abort if substitution made new regs; just don't do combine. ! 7666: (subst): If IN_DEST, don't replace a matching object. ! 7667: Don't look at a REG as a SET_DEST. ! 7668: If substitution inside a PARALLEL fails, give up immediately. ! 7669: Return (clobber (const_int 0)) even for a SET whose operand fails. ! 7670: (subst, case SET): Correctly test for low-order SUBREG. ! 7671: Don't use gen_lowpart_for_combine; make SUBREG explicitly since it ! 7672: can't handle modes larger than a word. ! 7673: ! 7674: * combine.c (subst, case NOT): Code for (not (ashiftx ..)) was too ! 7675: general; only handle (not (ashift 1 X)). ! 7676: (subst, case NEG): Handle (neg (ashift ...)). ! 7677: (merge_outer_ops): Support NEG. ! 7678: (simplify_shift_const, case NEG): Handle (ashift (neg ...)). ! 7679: ! 7680: * cse.c (simplify_binary_operation, case ROTATE, ROTATERT): ! 7681: Rotating all one bits is just all ones. ! 7682: ! 7683: Thu Sep 19 01:08:14 1991 Michael Tiemann (tiemann at cygint.cygnus.com) ! 7684: ! 7685: * cplus-parse.h, cplus-decl.h: Remove trailing comma after the last ! 7686: enum value in enum declarations. ! 7687: ! 7688: * cplus-type2.c (digest_init): Set TREE_PURPOSE of union initializer ! 7689: when initializing a union by the first field. ! 7690: ! 7691: * cplus-method.c (fndecl_as_string): Test whether DECL_CLASS_CONTEXT ! 7692: is NULL before using it. ! 7693: (dump_aggr_type): New function. Print aggr type's context when ! 7694: appropriate. ! 7695: (dump_type{_prefix}): Use `dump_aggr_type' to print ENUMERAL_TYPE, ! 7696: UNION_TYPE, and STRUCT_TYPE types. ! 7697: ! 7698: * cplus-decl.c (start_decl): Don't use DECL_CLASS_CONTEXT if DECL ! 7699: has no DECL_LANG_SPECIFIC. ! 7700: ! 7701: Wed Sep 18 21:46:32 1991 Michael Meissner (meissner at osf.org) ! 7702: ! 7703: * mips-tfile.c (cur_proc_value): New static to remember the starting ! 7704: location of the current function. ! 7705: (add_procedure): Save current procedure location. ! 7706: (parse_begin, parse_bend): Subtract cur_proc_value from location. ! 7707: (parse_bend): Correct error messages. ! 7708: The above changes are from [email protected]. ! 7709: ! 7710: * tm-mips.h (ASM_FINAL_SPEC): Use -mno-mips-tfile to suppress ! 7711: invoking mips-tfile, instead of using -g0. If -save-temps, preserve ! 7712: the original .o file before mips-tfile is called. Pass the correct ! 7713: name for the assembler file. ! 7714: (MASK_MIPS_TFILE): New mask for -mmips-tfile, -mno-mips-tfile, set ! 7715: to 0, since that switch is handled entirely in ASM_FINAL_SPEC. ! 7716: (TARGET_FLAGS): Add -mmips-tfile, -mno-mips-tfile switches. ! 7717: (MUST_SAVE_REGISTER): Allow $30 to be saved, even if not being used ! 7718: as the frame pointer. ! 7719: ! 7720: * tm-decrose.h (ASM_FINAL_SPEC): Use -mno-mips-tfile to suppress ! 7721: invoking mips-tfile, instead of using -g0. If -save-temps, preserve ! 7722: the original .o file before mips-tfile is called. Pass the correct ! 7723: name for the assembler file. ! 7724: ! 7725: Wed Sep 18 18:54:15 1991 Michael Tiemann (tiemann at cygint.cygnus.com) ! 7726: ! 7727: * cplus-*.c: Use DECL_CLASS_CONTEXT to figure out where a (static or ! 7728: non-static) member function is declared, rather than trying to ! 7729: divine the info from TYPE_METHOD_BASETYPE of the function's type. ! 7730: ! 7731: Wed Sep 18 15:38:52 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 7732: ! 7733: * c-decl.c (grokdeclarator): Error if nested function is extern. ! 7734: ! 7735: Wed Sep 18 02:41:08 1991 Per Bothner (bothner at cygnus.com) ! 7736: ! 7737: * cplus-typeck.c (convert_arguments): Don't crash if the ! 7738: formal parameter type is unknown (type==NULL) and the ! 7739: actual is a function. Do the default instead. ! 7740: ! 7741: Tue Sep 17 22:33:30 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 7742: ! 7743: * c-typeck.c (check_format): ! 7744: No warning if types match except for signedness. ! 7745: ! 7746: Tue Sep 17 10:56:46 1991 Michael Tiemann (tiemann at cygint.cygnus.com) ! 7747: ! 7748: * cplus-decl.c (pushtag): When creating a TYPE_DECL that's in class ! 7749: scope, allocate the space needed for DECL_CLASS_CONTEXT. ! 7750: ! 7751: * cplus-search.c (get_abstract_virtuals): If the BASE is not on the ! 7752: main spine, look at the virtuals that come from the most derived ! 7753: class that has BASE on its main spine. ! 7754: * cplus-tree.h (VF_*): New macros for dealing with VFIELDS. ! 7755: ! 7756: Mon Aug 16 12:09:32 1991 (Eric Youngdale at [email protected]) ! 7757: ! 7758: * make.com: Fix typo. ! 7759: ! 7760: Tue Sep 17 15:13:39 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 7761: ! 7762: * c-common.c (shorten_compare): Always compute args with side effects. ! 7763: ! 7764: * varasm.c (decode_addr_const): Use SYMBOL_REF unchanged in 1st switch. ! 7765: ! 7766: * varasm.c (output_addressed_constants): Handle a CONSTRUCTOR in ! 7767: an ADDR_EXPR correctly. ! 7768: ! 7769: * cccp.c (rescan): For unterm string, mention lineno of first newline. ! 7770: ! 7771: * fold-const.c (fold): Call optimize_bit_field_compare in constant case ! 7772: even if not optimizing. ! 7773: ! 7774: * c-decl.c (finish_function): Don't clear DECL_INITIAL if nested. ! 7775: (pop_c_function_context): Do it here instead. ! 7776: ! 7777: Tue Sep 17 11:30:32 1991 Michael Meissner (meissner at osf.org) ! 7778: ! 7779: * collect-osf.c (scan_prog_file): Recognize alternate forms for the ! 7780: constructor and destructor names. ! 7781: ! 7782: * osf-main.c (_entry): Provide an alternative function (_entry) to ! 7783: start up the static constructors/destructors. ! 7784: ! 7785: Mon Sep 16 05:35:21 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 7786: ! 7787: * combine.c (simplify_shift_const): Correct errors involving modes ! 7788: to use for shift. ! 7789: ! 7790: Sun Sep 15 19:13:58 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 7791: ! 7792: * reload1.c (reload_as_needed): Remove code that deletes insns that ! 7793: create equivalences. ! 7794: (reload): Put it here so it is executed even if reload_as_needed ! 7795: isn't called. ! 7796: ! 7797: Sun Sep 15 17:13:09 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 7798: ! 7799: * Makefile.in (GNULIB2_CFLAGS): Include GCC_CFLAGS. ! 7800: (ENQUIRE_CFLAGS): Likewise (in place of plain CFLAGS). ! 7801: ! 7802: * genattrtab.c (main): Don't index by id->insn_code if negative. ! 7803: ! 7804: * genrecog.c (write_tree_1): Avoid pos[depth-1] if depth is 0. ! 7805: ! 7806: Sun Sep 15 15:19:16 1991 (Eric Youngdale at [email protected]) ! 7807: ! 7808: * make.com: Modify to allow direct submission to a batch queue. ! 7809: Also, add instructions to build GNU C++ as well as GNU CC. ! 7810: ! 7811: * cccp.c (hack_vms_include_specification): If [000000] is present in ! 7812: (implying a physical device or a rooted logical) try to open it. ! 7813: If the open fails, then remove the [000000] (making the name suitable ! 7814: for use with a non-rooted logical name) and return that. ! 7815: ! 7816: Sun Sep 15 15:12:41 1991 Michael Meissner (meissner at osf.org) ! 7817: ! 7818: * make-mips (Makefile): Remove rule building Makefile, since ! 7819: Makefile.in now has one. ! 7820: ! 7821: * make-decrose (Makefile): Remove rule building Makefile, since ! 7822: Makefile.in now has one. ! 7823: ! 7824: Sun Sep 15 14:12:47 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 7825: ! 7826: * Makeflags (SYSCALLS.c.X): Use CPPFLAGS and INCLUDES. ! 7827: ! 7828: Sun Sep 15 12:03:35 1991 Michael Tiemann (tiemann at cygnus.com) ! 7829: ! 7830: * cplus-decl.c (poplevel): Match change made to c-decl.c on Oct 3, ! 7831: 1989. ! 7832: ! 7833: Sun Sep 15 06:52:42 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 7834: ! 7835: * caller-save.c (save_call_clobbered_regs): Deaden registers mentioned ! 7836: in REG_UNUSED notes. ! 7837: (clear_reg_live): Verify that note refers to a REG. ! 7838: (choose_hard_reg_mode): Rewrite to not use specific modes and to ! 7839: handle the case where separate CCmode registers exist. ! 7840: ! 7841: Sat Sep 14 13:03:29 1991 Michael Tiemann (tiemann at cygnus.com) ! 7842: ! 7843: * all cplus-* files: Change {ASSOC,assoc} to {BINFO,binfo} where ! 7844: appropriate. ! 7845: cplus-tree.h, tree.h: Change name of CLASSTYPE_ASSOC to TYPE_BINFO. ! 7846: Change names of CLASS_ASSOC_* to TYPE_BINFO_*. ! 7847: all cplus-* files: FUNCTION_DECLs that are class methods now have ! 7848: their DECL_VCONTEXT stored in the DECL_CONTEXT. ! 7849: (lang_decl): The VCONTEXT field is now gone. ! 7850: (lang_decl): _DECL nodes in class scope now record the class as a ! 7851: context in the DECL_CLASS_CONTEXT field. ! 7852: tree.h (TYPE_BINFO): Renamed TYPE_BASETYPES to this. ! 7853: dbxout.c (dbxout_type): User of TYPE_BASETYPES changed. ! 7854: (BINFO_{VALUE,OFFSET,VTABLE,VIRTUALS,BASETYPE{S}}): New macros ! 7855: inherited from GNU C++. ! 7856: (DECL_{VINDEX,FCONTEXT}): Ditto. ! 7857: (TREE_VIA_{PUBLIC,VIRTUAL}): Ditto. ! 7858: ! 7859: Sat Sep 14 09:14:26 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 7860: ! 7861: * rtlanal.c (reg_set_p): Remove abort for MEM; reg_overlap_mentioned_p ! 7862: now handles that case correctly. ! 7863: REG is set if it is really a MEM and this is a CALL_INSN. ! 7864: ! 7865: Sat Sep 14 01:34:39 1991 Richard Stallman ([email protected]) ! 7866: ! 7867: * configure (vax-ultrix*): New alternative. ! 7868: ! 7869: * reload1.c (choose_reload_regs): Always ignore cancelled reloads. ! 7870: ! 7871: * real.h (atof): Alternate declaration on MIPS. ! 7872: ! 7873: Thu Sep 12 18:55:06 1991 Torbjorn Granlund (tege at mole.gnu.ai.mit.edu) ! 7874: ! 7875: * optabs.c (expand_binop): Fix carry propagation code for multiple ! 7876: words. ! 7877: ! 7878: * tm-*.h: Fix systematic typo in comment. ! 7879: ! 7880: Thu Sep 12 18:23:53 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 7881: ! 7882: * gvarargs.h, va-mips.h, va-sparc.h (_va___list): Was __va_list. ! 7883: ! 7884: Thu Sep 12 12:53:36 1991 Roland H. Pesch (pesch at cygint.cygnus.com) ! 7885: ! 7886: * cpp.texinfo: (titlepage) use @title/@subtitle/@author ! 7887: (copyright page) add note re future C manual; add 1991 to copyrights ! 7888: (general) prepare for easy @smallbook formatting; clarification on ! 7889: strings; less passive; add AMD29K predefined macros; update -d refs, ! 7890: add -dM; add examples; add -pedantic-errors; add -MD, -MMD, -H; fix ! 7891: minor typos. ! 7892: ! 7893: Thu Sep 12 07:58:11 1991 Torbjorn Granlund (tege at mole.gnu.ai.mit.edu) ! 7894: ! 7895: * m68k.md (umulsidi3, mulsidi3): New DEFINE_EXPANDs and DEFINE_INSN ! 7896: recognizers. ! 7897: ! 7898: Wed Sep 11 22:11:17 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 7899: ! 7900: * a29k.md, romp.md: Update calling sequence to emit_no_conflict_block. ! 7901: ! 7902: Wed Sep 11 21:06:32 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 7903: ! 7904: * fold-const.c (const_binop): Fix last change for ceil and round. ! 7905: ! 7906: * gvarargs.h, va-mips.h, va-sparc.h (va_list): Now a macro again. ! 7907: (__va_list): This is the typedef. ! 7908: ! 7909: Wed Sep 11 16:52:20 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) ! 7910: ! 7911: * c-typeck.c (build_binary_op_nodefault, RSHIFT_EXPR): Change ! 7912: "shift count" warnings changed to errors back to warnings. ! 7913: ! 7914: * cse.c (canon_hash): Also do not record global_regs if ! 7915: SMALL_REGISTER_CLASSES. Makes the code match the comment. ! 7916: ! 7917: * cexp.y (yylex): Add sprintf call to create error message, ! 7918: because yyerror does not call *printf itself. ! 7919: ! 7920: * gcc.c (default_compilers): Support new option -traditional-cpp, ! 7921: which passes traditional to cpp, but not to cc1. ! 7922: * gcc.texinfo: Document it. ! 7923: ! 7924: * sched.c (INSN_LUID): New variable. Give instructions logical ! 7925: numbers, which can be used when sorting, to make the scheduling ! 7926: algorithm more stable. ! 7927: (sched_analyze): Initialize it. ! 7928: (rank_for_schedule): Sort on it. ! 7929: (schedule_insns): Alloca(te) it and (b)zero it. ! 7930: (priority): New priority algorithm. Don't include latency of ! 7931: current insn, and subtract one from total priority calculated. ! 7932: Makes the scheduling algorithm more stable, and doesn't hurt ! 7933: performance. ! 7934: ! 7935: * sched.c (swap_sort): Must pass &insn to rank_for_schedule, not a ! 7936: pointer into the array being sorted. ! 7937: ! 7938: * cplus-lex.c (do_identifier): Put function return type on ! 7939: preceeding line. ! 7940: ! 7941: Wed Sep 11 05:51:00 1991 Michael Tiemann (tiemann at cygint.cygnus.com) ! 7942: ! 7943: * cplus-typeck.c (build_binary_op_nodefault): If OP0 or OP1 is a ! 7944: zero pointer, canonicalize it to NULL_POINTER_NODE. ! 7945: ! 7946: * expr.c (preexpand_calls): Don't preexpand calls inside a ! 7947: WITH_CLEANUP_EXPR. The gestalt of a WITH_CLEANUP_EXPRs must be ! 7948: understood at the top level. ! 7949: ! 7950: * cplus-tree.c (build_cplus_new): When building cleanup, make ! 7951: the call to the cleanup nonvirtual. ! 7952: ! 7953: Tue Sep 10 20:28:56 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 7954: ! 7955: * fold-const.c (const_binop): Shortcut for dividing single-word ! 7956: sizes ! 7957: ! 7958: * Makefile.in (varasm.o): Depend on insn-codes.h. ! 7959: ! 7960: Tue Sep 10 19:29:26 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 7961: ! 7962: * optabs.c (expand_binop): Try to open-code muldi3 if we have mulsi3 ! 7963: and mulsidi3. Idea due to [email protected]. ! 7964: ! 7965: * cse.c (fold_rtx, case MEM): Don't call find_best_addr when insn == 0. ! 7966: Pass 0 to recursive call that tries to fold the address. ! 7967: ! 7968: Tue Sep 10 18:16:16 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 7969: ! 7970: * m68k.md (fix_trunc*): Call CC_STATUS_INIT, since these patterns ! 7971: do not leave the condition codes in the expected state. ! 7972: ! 7973: * tm-ultrix.h (CPP_PREDEFINES): Add __vax. ! 7974: ! 7975: Tue Sep 10 04:12:53 1991 Michael Tiemann (tiemann at cygint.cygnus.com) ! 7976: ! 7977: * cplus-decl.c (finish_decl): Fix bug where the conversion from ! 7978: WITH_CLEANUP_EXPR -> init/cleanup pair was not setting bits of ! 7979: CURRENT_BINDING_LEVEL. ! 7980: (init_decl_processing): Set FLAGS_THIS_IS_VARIABLE before calling ! 7981: `init_exception_processing'. ! 7982: ! 7983: Mon Sep 9 22:09:27 1991 Michael Tiemann (tiemann at cygint.cygnus.com) ! 7984: ! 7985: * cplus-tree.h (prev_class_type): Delete this bogus definition. ! 7986: ! 7987: * cplus-class.c (instantiate_type): Don't complain about no static ! 7988: member functions being found until we have been through all the ! 7989: baselinks. ! 7990: ! 7991: * cplus-dbxout.c (dbxout_type_methods): Don't write symbol ! 7992: information about methods that were generated by the compiler. ! 7993: (??? Is this really the right thing to do?) ! 7994: ! 7995: * cplus-decl2.c (lang_decode_option): Turn on warn_uninitialized if ! 7996: -Wall is the argument. ! 7997: ! 7998: Mon Sep 9 19:05:01 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) ! 7999: ! 8000: * gcc.c (default_compilers): For .S files, pass -traditional not ! 8001: -ftraditional to cpp. ! 8002: ! 8003: Mon Sep 9 15:01:58 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 8004: ! 8005: * fold-const.c (optimize_bit_field_compare): Distinguish NE from EQ. ! 8006: ! 8007: * explow.c (allocate_dynamic_stack_space): ! 8008: Handle SETJMP_VIA_SAVE_AREA by allocating extra space. ! 8009: ! 8010: * cplus-parse.y (empty_parms): Change inline to __inline. ! 8011: ! 8012: Mon Sep 9 15:16:24 1991 Torbjorn Granlund (tege at zevs) ! 8013: ! 8014: * longlong.h (m68000 umul_ppmm): Clobber one register less by ! 8015: slightly rearranging the code. ! 8016: ! 8017: Sun Sep 8 16:47:32 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 8018: ! 8019: * cccp.c (main, fatal): Delete the deps output file if error. ! 8020: (deps_file): New variable. ! 8021: ! 8022: * expr.c (convert_move): Update call to emit_no_conflict_block. ! 8023: ! 8024: * expmed.c (CEIL): New macro. ! 8025: ! 8026: * optabs.c (expand_binop): Don't do add by words for more than 2 words. ! 8027: ! 8028: * c-typeck.c (build_modify_expr): Test TREE_READONLY of lhs. ! 8029: ! 8030: Sun Sep 8 01:17:47 1991 Torbjorn Granlund (tege at zevs) ! 8031: ! 8032: * sparc.md (sgtu, sleu): Test for SUBREG as well as REG. ! 8033: ! 8034: Sun Sep 8 07:04:33 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 8035: ! 8036: * optabs.c (emit_no_conflict_block, emit_libcall_block): Rework to ! 8037: accept a list of insns rather than a SEQUENCE. ! 8038: (expand_binop, expand_unop, expand_float, expand_fix): Change calls to ! 8039: above functions. ! 8040: * emit-rtl.c (add_insn): No longer static. ! 8041: * calls.c (expand_call): Change call to emit_libcall_block. ! 8042: ! 8043: * cse.c (fold_rtx): Fix typo with parens in associative operation case. ! 8044: ! 8045: Sat Sep 7 21:49:46 1991 Jim Wilson (wilson at cygint.cygnus.com) ! 8046: ! 8047: * expmed.c (store_bit_field): In the code handling bitfields ! 8048: larger than the word size: set fieldmode to size large enough ! 8049: to hold bitfield; new variable orig_bitsize; don't let ! 8050: bit_offset calculation for WORDS_BIG_ENDIAN hosts go negative. ! 8051: (extract_bit_field): Likewise. ! 8052: (store_split_bit_field): For second word, strip of SUBREG if any ! 8053: before calling operand_subword. Offset for second word if in ! 8054: memory is the next UNITS_PER_WORD aligned address. ! 8055: (extract_split_bit_field): Likewise. ! 8056: ! 8057: * expr.c (emit_move_insn): When emitting multiple move insns in ! 8058: the loop, remember last insn emitted so that it can be returned. ! 8059: ! 8060: * tree.c (enum tree_node_kind): Add new entry vec_kind to ! 8061: represent TREE_VECs. ! 8062: (tree_node_kind_names): Add name "vecs" for it. ! 8063: (make_node): Handle TREE_VECs in the 'x' case. ! 8064: (make_tree_vec): Use vec_kind instead of x_kind. ! 8065: ! 8066: Sat Sep 7 16:25:50 1991 Michael Tiemann (tiemann at cygint.cygnus.com) ! 8067: ! 8068: * cplus-call.c (ideal_candidate): Prefer non-const member functions ! 8069: to const member functions when there is a choice. ! 8070: * cplus-tree.c (propagate_assoc_offsets): Moved here from ! 8071: cplus-class.c ! 8072: (copy_nonvirtual_children): Deleted. ! 8073: ! 8074: * cplus-class.c, cplus-tree.c (layout_{v}basetypes, ! 8075: propagate_assoc_offsets, finish_base_struct): New offset ! 8076: computation/hierarchy implementation. Now the lattice contains ! 8077: vbasetypes with zero-based offsets (and children from these types ! 8078: assume they are zero-based). The CLASSTYPE_VBASETYPE list contains ! 8079: vbasetypes with hierarchy-dependent offsets (and children from these ! 8080: types have hierarchy-dependent offsets). Note that now, virtual ! 8081: baseclasses are fully shared in the hierarchy. The still are not ! 8082: shared at all in the CLASSTYPE_VBASETYPE list. ! 8083: * cplus-decl.c (xref_tag): Share vbasetypes in the lattice. ! 8084: * cplus-tree.h (lang_type): Add CLASSTYPE_VASSOC field so we can ! 8085: share virtual basetypes in inheritance lattices. ! 8086: ! 8087: Sat Sep 7 13:07:12 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 8088: ! 8089: * c-parse.y (cast_expr): Supply OFWHAT arg to digest_init. ! 8090: * c-typeck.c (error_init, pedwarn_init): New functions. ! 8091: (digest_init, process_init_constructor): Use them. ! 8092: ! 8093: * out-m68k.c (output_function_prologue): Add a negative constant ! 8094: to sp rather than adding a positive one, since this is faster. ! 8095: ! 8096: * out-m68k.c (output_function_prologue, output_function_epilogue): ! 8097: Use word sized immediates when possible. ! 8098: ! 8099: * Makefile.in (install-dir): Don't die if can't create mandir. ! 8100: (install-man): Don't put . in front of manext. ! 8101: (manext): Add . to the value. ! 8102: (mandir): Don't use manext. ! 8103: ! 8104: * genextract.c (main): Don't use __builtin_memcpy in GCC 1. ! 8105: ! 8106: Fri Sep 6 19:29:55 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 8107: ! 8108: * caller-save.c (emit_mult_save, emit_mult_restore): Copy constant to ! 8109: TEMPREG and add integer, instead of the opposite order, which might ! 8110: not work on some machines. ! 8111: ! 8112: * fold-const.c (fold): Ensure we always return an object of the ! 8113: desired type. ! 8114: ! 8115: * reload1.c (reload, reload_as_needed): reload_in_progress must be ! 8116: set during caller-save processing. ! 8117: ! 8118: Fri Sep 6 18:36:55 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) ! 8119: ! 8120: * out-sparc.c (leaf_reg_{remap,backmap}): Define mapping for ! 8121: %o7/%i7, since user-defined registers might reference these. ! 8122: (legitimize_pic_address): Set CURRENT_FUNCTION_USES_PIC_OFFSET_TABLE ! 8123: if ORIG is a LABEL_REF. For CONST_INT case, don't call force_reg ! 8124: during reload, use REG if available otherwise abort. ! 8125: ! 8126: Fri Sep 6 17:16:05 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 8127: ! 8128: * configure: Default $cpu_type properly. ! 8129: ! 8130: Fri Sep 6 05:50:58 1991 Ken Raeburn (raeburn at watch.com) ! 8131: ! 8132: * genextract.c: Generate one large function with a switch, instead ! 8133: of a table of small functions to call. Use __builtin_memcpy under ! 8134: GNU C. ! 8135: ! 8136: * genoutput.c: For "@" constructs, now generates a lookup table per ! 8137: insn, instead of a switch. ! 8138: ! 8139: Fri Sep 6 15:40:54 1991 Tom Wood (wood at dg-rtp.dg.com) ! 8140: ! 8141: * cccp.c (skip_if_group): Deal with invalid directives the same ! 8142: way handle_directive does. ! 8143: ! 8144: Fri Sep 6 16:37:04 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) ! 8145: ! 8146: * tm-sparc.h (RTX_COSTS): Define costs for MULT and various divides. ! 8147: ! 8148: * loop.c (move_movables): Call `gen_lowpart_common' instead of ! 8149: building SUBREG manually. ! 8150: ! 8151: * local-alloc.c (block_alloc): When convert scratch to a reg, must ! 8152: set regs_ever_live for all hard registers used by the new reg, not ! 8153: just the first. ! 8154: ! 8155: Fri Sep 6 07:15:44 1991 Torbjorn Granlund (tege at mole.gnu.ai.mit.edu) ! 8156: ! 8157: * gnulib2.c (__negdi2): Change it to work like __subdi3. ! 8158: * gnulib2.c (_udivmoddi4): Make faster special case for CPUs with ! 8159: a udiv_qrnnd that can handle unnormalized (i.e. with less than ! 8160: LONG_TYPE_SIZE significant bit) divisors. ! 8161: ! 8162: * gnulib2.c (__muldi3): Cast operands to unsigned. ! 8163: ! 8164: * gnulib2.c (__Xcmpdi): Use `long' for all variables for ! 8165: consistency. ! 8166: ! 8167: * gnulib2.c (__udivmoddi4): New function with code from __udivdi3, ! 8168: extended to give remaider. ! 8169: * gnulib2.c (__divdi3, __moddi3, __udivdi3, __umoddi3): Use ! 8170: __udivmoddi4. ! 8171: * gnulib2.c: (__moddi3): Result sign is only dependent on U, not V. ! 8172: ! 8173: Fri Sep 6 05:44:07 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 8174: ! 8175: * cse.c (cse_insn): Accept new arg IN_LIBCALL_BLOCK. ! 8176: If in libcall block, don't record destinations in hash table. ! 8177: Remove explicit use of SFmode and DFmode when checking -ffloat-store. ! 8178: (cse_basic_block): Pass new arg to cse_insn to indicate when we ! 8179: are processing an insn surrounded with REG_LIBCALL/REG_RETVAL notes. ! 8180: ! 8181: * optabs.c (emit_libcall_block): New function. ! 8182: (expand_binop, expand_unop): Remove kludge of referencing library ! 8183: function SYMBOL_REF before libcall block. ! 8184: Use emit_libcall_block. ! 8185: (expand_float, expand_fix): Rework library calls to use ! 8186: emit_libcall_block. ! 8187: * calls.c (struct arg_data): Add new field, initial_value. ! 8188: (expand_call): Don't make libcall block for calls that return ! 8189: aggregates. ! 8190: Remove kludge of referencing function SYMBOL_REF outside of block. ! 8191: For constant calls, save RTL for arg in args[i].initial_value and ! 8192: start a sequence. ! 8193: When making REG_EQUAL note, use INITIAL_VALUE instead of VALUE. ! 8194: Use emit_libcall_block for constant calls. ! 8195: * expr.h (emit_libcall_block): Define it. ! 8196: ! 8197: Fri Sep 6 15:58:52 1991 Torbjorn Granlund (tege at zevs) ! 8198: ! 8199: * longlong.h (68020, i386): Don't define machine-dependent ! 8200: __umulsidi3 (so the default definition is used). ! 8201: * longlong.h (all machines): Cast all operands, sources and ! 8202: destinations, to `unsigned long int'. ! 8203: * longlong.h: Add gmicro support. ! 8204: ! 8205: Fri Sep 6 01:42:09 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 8206: ! 8207: * jump.c (jump_optimize): Delete duplicate line number notes. ! 8208: ! 8209: Thu Sep 5 19:23:24 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 8210: ! 8211: * configure (romp): Fix typo in name of xm_file. ! 8212: ! 8213: * rtlanal.c (dead_or_set_p): If INSN has a CLOBBER for X, X is ! 8214: dead. ! 8215: ! 8216: * gnulib1.c (cmpdf2, cmpsf2): Delete unused functions. ! 8217: * gnulib2.c (anddi3, iordi3, xordi3, one_cmpldi2, adddi3, subdi3): ! 8218: Likewise. ! 8219: * optabs.c (emit_cmp_insn): Clean up code now that integer and ! 8220: float comparisons are done differently. ! 8221: (init_optabs): Remove references to unused functions listed above. ! 8222: * Makefile.in (LIB1FUNCS, LIB2FUNCS): Likewise. ! 8223: ! 8224: Thu Sep 5 18:32:27 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 8225: ! 8226: * m68k.md (zero_extend*): Don't allow memory-memory due to aliasing. ! 8227: ! 8228: * expr.c (do_jump): Don't lose if only 1 insn precedes new jump. ! 8229: ! 8230: * sparc.md (ashldi3): Fix dumb bug detecting constant 1. ! 8231: ! 8232: * out-sparc.c (output_move_double): Use split_double for constant. ! 8233: Properly decrement addreg1. ! 8234: ! 8235: Thu Sep 5 15:20:25 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) ! 8236: ! 8237: * out-sparc.c: Include expr.h and delete extern declarations. ! 8238: ! 8239: * rtlanal.c (rtx_equal_p): Correct typo in comment or spacing. ! 8240: * reload1.c (reload): Likewise. ! 8241: * protoize.c: Likewise. ! 8242: * longlong.h: Likewise. ! 8243: * local-alloc.c (block_alloc): Likewise. ! 8244: * jump.c: Likewise. ! 8245: ! 8246: * unroll.c (iteration_info): Don't calculate loop iterations based ! 8247: on a giv iterator, since the current code often gives the wrong ! 8248: result. This case is rare, so it does not seem worth handling at all. ! 8249: ! 8250: * sched.c (schedule_insns): When the only sched pass is after ! 8251: reload, must clear unused_insn_list and unused_expr_list then, ! 8252: instead of during the nonexistant pass before reload. ! 8253: ! 8254: * sched.c (schedule_block): When calculating estimated IPC, avoid ! 8255: divide by zero. ! 8256: ! 8257: * sparc.md: Correct two define_splits for seq/sne patterns of the ! 8258: form `x + (i == 0)', and add a missing `addx' pattern used by ! 8259: these define_splits. ! 8260: ! 8261: * toplev.c (fatal_insn_not_found): Correct typo in error message. ! 8262: (main): Include "gsdb" and "gdbx" in warning message when -g is not ! 8263: supported. ! 8264: ! 8265: * expr.h (enum expand_modifier): Delete last vestige of ! 8266: EXPAND_INTO_STACK. ! 8267: ! 8268: Thu Sep 5 13:50:21 1991 John Gilmore (gnu at cygint.cygnus.com) ! 8269: ! 8270: * c-typeck.c (digest_init, process_init_constructor): Include the ! 8271: variable name, member name, and/or array indices in error messages. ! 8272: This makes it tolerable to debug large data structure initializers. ! 8273: Reword some messages to work with the name and/or function call ! 8274: argument included. New arg OFWHAT. All callers changed except ! 8275: one digest_init call in each of c-parse.y and objc-parse.y. ! 8276: (warn_for_assignment): Reduce to a single message argument, ! 8277: automatically handling formatting for function call arguments. ! 8278: All callers changed. ! 8279: (convert_for_assignment): If ERRTYPE is a null string, this is ! 8280: parameter passing for a function, so output different error messages. ! 8281: (convert_arguments): Pass null string to convert_for_assignment to ! 8282: indicate parameter passing. ! 8283: ! 8284: Thu Sep 5 13:44:19 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) ! 8285: ! 8286: * sched.c: Correct typos in comments. ! 8287: (sched_note_set): Don't try to calculate live info for global ! 8288: register variables. ! 8289: (attach_deaths): Don't add REG_DEAD notes for global register ! 8290: variables. ! 8291: ! 8292: * tm-sparc.h (SELECT_SECTION): Can't put a variable in text section ! 8293: if flag_pic and RELOC are both true, same test that varasm.c does. ! 8294: ! 8295: Thu Sep 5 13:15:43 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 8296: ! 8297: * rtlanal.c (reg_referenced_p): Handle USE and CALL. ! 8298: Use switch instead of if-then-else. ! 8299: ! 8300: Thu Sep 5 08:03:58 1991 Michael Tiemann (tiemann at cygint.cygnus.com) ! 8301: ! 8302: * cplus-class.c (propagate_assoc_offsets): Don't fail to ! 8303: propagate the offset to the rightmost basetype. ! 8304: ! 8305: * cplus-decl.c (xref_tag): Allocate nodes for basetype info on ! 8306: permanent obstack, not temporary obstack. ! 8307: ! 8308: Wed Sep 4 18:53:16 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 8309: ! 8310: * fixincludes : Change `m68k' to `__m68k__' in all #if's. ! 8311: ! 8312: * Makefile.in (ALLOCA_FLAGS): Add -Demacs. ! 8313: (ALLOCA_FINISH): Put option before input file name. ! 8314: (alloca.o): Supply $(INCLUDES). ! 8315: ! 8316: * Makefile.in (GCC_CFLAGS): New parameter. ! 8317: (protoize, protoize.o, unprotoize, unprotoize.o): Use GCC_CFLAGS. ! 8318: (enquire, enquire.o, collect2, collect2.o, SYSCALLS.c.X): Likewise. ! 8319: ! 8320: Wed Sep 4 18:13:56 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 8321: ! 8322: * combine.c (make_extraction): When picking up low-order part, ! 8323: ensure that we don't create a non-aligned object if alignment ! 8324: is required. ! 8325: ! 8326: * expr.c (emit_push_insn): Ensure we only call force_const_mem on a ! 8327: constant. ! 8328: ! 8329: * config.subr: Set `os' to be the last `-' and everything following it. ! 8330: `romp' is the basic machine name for the rtpc. ! 8331: `aos' is IBM's name for BSD. ! 8332: * configure: Default `cpu_type' to the first field before an ! 8333: optional `-'. ! 8334: Add a29k, a29k-ultra, romp, and rs6000. ! 8335: * xm-a29k-ultra.h: New file. ! 8336: ! 8337: Wed Sep 4 15:46:50 1991 Tom Wood (wood at dg-rtp.dg.com) ! 8338: ! 8339: Changes from Ron Guilmette: ! 8340: * dwarfout.c (output_symbol): Move tests for omitting declarations ! 8341: to dwarfout_file_scope_symbol. No need for `local' parameter. ! 8342: Use TREE_PUBLIC and TREE_EXTERNAL to determine whether a variable ! 8343: or function is global. ! 8344: (finalizing, dwarfout_file_scope_delayed_symbol): Delete. ! 8345: ! 8346: * toplev.c (compile_file): Delete use of dwarfout_file_scope_symbol ! 8347: for initialized VAR_DECLs. All global declarations are passed to ! 8348: dwarfout_file_scope_symbol (except function definitions and types). ! 8349: ! 8350: (compile_file, rest_of_decl_compilation): Attribute time in ! 8351: {dbxout,sdbout,dwarfout} functions to symout_time. ! 8352: ! 8353: * varasm.c (assemble_variable): Check and update TREE_ASM_WRITTEN ! 8354: for a global register variable. ! 8355: Delete use of dwarfout_file_scope_symbol for VAR_DECLs. ! 8356: ! 8357: Tue Sep 3 23:34:57 1991 Torbjorn Granlund (tege at zevs) ! 8358: ! 8359: * sparc.md (ashldi3 expander & recognizer): Make shift count have ! 8360: SImode. Used to have DImode. ! 8361: ! 8362: * expmed.c (emit_store_flag): Declare arg UNSIGNEDP. ! 8363: ! 8364: * vax.md (adddi3): Make operands 2 and 3 commutative. ! 8365: ! 8366: * sparc.md (subtract constant then return): Peephole deleted. ! 8367: ! 8368: Tue Sep 3 22:23:52 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 8369: ! 8370: * Makefile.in (mostlyclean, clean, realclean): Some files were missing. ! 8371: ! 8372: * gvarargs.h (va_list): Make it typedef, not macro. ! 8373: * va-mips.h, va-pyr.h: Likewise. ! 8374: ! 8375: Tue Sep 3 22:07:04 1991 Michael Tiemann (tiemann at cygint.cygnus.com) ! 8376: ! 8377: * cplus-init.c (build_vec_delete): Fix off-by-one error for arrays ! 8378: of length 1. ! 8379: ! 8380: Tue Sep 3 19:30:45 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 8381: ! 8382: * combine.c (try_combine): Don't pass a STRICT_LOW_PART to ! 8383: reg_overlap_mentioned_p. ! 8384: ! 8385: * cse.c (fold_rtx): If INSN is zero, copy X before we change ! 8386: anything inside it. ! 8387: When looking for associative operation, pass zero as missing arg to ! 8388: recursive call. ! 8389: (find_comparison_args): Add zero for missing arg to fold_rtx calls. ! 8390: ! 8391: * reload.c (find_reloads): Correct code that prevents replacing ! 8392: a SET_DEST with a constant so that it correctly looks for an ! 8393: operand being a SET_DEST. ! 8394: ! 8395: Tue Sep 3 19:17:34 1991 James Van Artsdalen (james at bigtex.cactus.org) ! 8396: ! 8397: * out-i386.c (split_di): Call split_double for CONSTANT_P. ! 8398: (fix_op): Delete. ! 8399: (float_op): Don't examine the mode of the FLOAT operand. ! 8400: (output_float_compare): Don't make new %ax RTX: use scratch ! 8401: operand from insn. ! 8402: ! 8403: * i386.md (float mode tstM,cmpM,fixuns_truncMN2,fix_truncMN2): Use ! 8404: match_scratch. ! 8405: (float mode tstM,fixuns_truncMN2,fix_truncMN2): Don't gen temp RTX: ! 8406: use scratch operand. ! 8407: (fix_truncMN2,floatMN2): Split pattern into a separate DFmode and ! 8408: SFmode patterns so that operands[1] has a mode. ! 8409: (sCOND patterns): Don't set cc_status to previous status. ! 8410: (cmpstrsi): Don't explicitly reference reg 2. ! 8411: ! 8412: Tue Sep 3 16:28:56 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 8413: ! 8414: * optabs.c (expand_binop): Fix carry calculation. ! 8415: ! 8416: * varasm.c (decode_addr_const): Given a LABEL_DECL, Make a LABEL_REF. ! 8417: (const_hash): Handle a LABEL_REF. ! 8418: * expr.c (expand_expr): Use FUNCTION_MODE for memref to a LABEL_REF. ! 8419: ! 8420: * configure: Fix typo in last change. ! 8421: ! 8422: * cccp.c (handle_directive): Normally no error for line with `###'. ! 8423: ! 8424: Tue Sep 3 10:53:12 1991 Tom Wood (wood at dg-rtp.dg.com) ! 8425: ! 8426: * out-m88k.c, tm-m88k.h: Delete remnants of the fancy abort. ! 8427: * tm-m88kdgux.h: No longer identify as version DG-*. ! 8428: * m88k files: Update copyright dates. ! 8429: ! 8430: Tue Sep 3 03:18:54 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 8431: ! 8432: * expr.c (expand_expr): Get rid of EXPAND_INTO_STACK. ! 8433: ! 8434: Mon Sep 2 14:07:54 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 8435: ! 8436: * gcc.c (do_spec_1): In %X, terminate the arg after each option. ! 8437: ! 8438: * config.subr: If argument contains `local', always accept it. ! 8439: * configure: If machine type contains `local', ! 8440: construct file names from that machine type name. ! 8441: ! 8442: * configure: Make config.status a shellscript to redo the configure. ! 8443: No need now to change / to - when storing $(target) in Makefile. ! 8444: Store $(host_make_var_file) in Makefile also. ! 8445: Set host_make_var_file to ../Makefile.in after creating Makefile ! 8446: if no make-... file actually exists for this host. ! 8447: * Makefile.in (host_make_var_file): Dummy definition to be filled in. ! 8448: (Makefile): New rule to rerun `configure' ! 8449: ! 8450: * tm-sysv4.h (ASM_DECLARE_FUNCTION_SIZE): New macro. ! 8451: ! 8452: * tm-mips.h, tm-m88k.h (abort): Macro definition deleted. It is ! 8453: not right for any machines description to specify use of fancy_abort. ! 8454: ! 8455: * protoize.c [v.4]: Include fcntl.h. ! 8456: (execvp): Correct type for second arg. ! 8457: (compile_params): Remove `const'; that loses when calling execvp. ! 8458: ! 8459: * cccp.c (directive_table): Typo in entry for do_ident. ! 8460: ! 8461: * xm-m68k.h (alloca): Define macro with arg. ! 8462: ! 8463: * emit-rtl.c (reorder_insns_with_line_notes): New function. ! 8464: (find_line_note, emit_line_note_after): New functions. ! 8465: ! 8466: * jump.c (jump_optimize): When moving else clause before test, ! 8467: only move the insn as far as needed, and use new function ! 8468: reorder_insns_with_line_notes. ! 8469: ! 8470: Mon Sep 2 03:30:35 1991 James Van Artsdalen (james at bigtex.cactus.org) ! 8471: ! 8472: * Makefile.in (collect2): Compile with gcc. ! 8473: ! 8474: Sun Sep 1 9:03:46 1991 (Eric Youngdale at [email protected]) ! 8475: ! 8476: Define two macros to eliminate the need for a seperate collect pass. ! 8477: ! 8478: * tm-vms.h (ASSEMBLE_OUTPUT_CONSTRUCTOR): Define. ! 8479: (ASSEMBLE_OUTPUT_DESTRUCTOR): Define. ! 8480: ! 8481: Sun Sep 1 08:14:22 1991 Michael Meissner (meissner at osf.org) ! 8482: ! 8483: * collect-osf.c (main): Print version number if -v. Also ignore all ! 8484: arguments beginning with -c rather than just '-c'. ! 8485: ! 8486: * make-decrose (collect): Add version.o to link. ! 8487: ! 8488: Sat Aug 31 17:03:23 1991 Michael Meissner (meissner at osf.org) ! 8489: ! 8490: * cplus-input.c (inline macro definition): If inline is already ! 8491: defined, don't redefine it. ! 8492: ! 8493: * collect-osf.c (main): Look for gld and gas instead of ld and as, ! 8494: so collect-osf can be installed as ld. Use a default path of ! 8495: /usr/ccs/gcc to find the linker and assember. Ignore the -c switch, ! 8496: which GCC uses to say that collect is needed. ! 8497: ! 8498: * osf-main.c (__finis): Don't call descructors already called if one ! 8499: of the destructors calls exit (which in turn calls __finis). ! 8500: ! 8501: * tm-mips.h (DBX_REGISTER_NUMBER): Use mips_dbx_regno to map ! 8502: register number to debug register number. ! 8503: (GP_DBX_FIRST, FP_DBX_FIRST): New macros, giving the first debug ! 8504: register numbers for gp registers and fp registers. ! 8505: ! 8506: * out-mips.c (mips_dbx_regno): New global array to map GCC register ! 8507: number to debug register number, to fix problem with OSF/1 stabs ! 8508: using 38 for the first fp registers, rather than 32. ! 8509: (override_options): Set up OSF/1 SIGINFO signal handler to notmake ! 8510: the interruptable system calls read, write, and wait not return ! 8511: error condition. Also initialize mips_dbx_regno. ! 8512: ! 8513: * make-decrose (CFLAGS): Add $(MSTATS) variable to set -mstats. ! 8514: (CFLAGS_NODEBUG): Like CFLAGS, except no debugging or inlining. ! 8515: (DEB_OPT): Define in terms of DEBUG, OPT, and PROFILE. ! 8516: (cplus-lex rule): Build cplus-lex with no debug or inlinings. ! 8517: ! 8518: Sat Aug 31 12:52:17 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 8519: ! 8520: * cccp.c (handle_directive): Be more fussy detecting `# LINE' case. ! 8521: ! 8522: * cccp.c (directive_table): Pass through and ignore #ident. ! 8523: (do_ident): New function. ! 8524: (skip_if_group): Error if unrecognized directive seen. ! 8525: ! 8526: * jump.c (jump_optimize): In converting x=a; if (...) x=b; to ! 8527: store flag, insert all the new code in just one line. ! 8528: ! 8529: * gcc.c (do_spec_1): Use xmalloc to make linker_options the first time. ! 8530: ! 8531: * expr.c (expand_expr): Make EXPAND_SUM and EXPAND_INITIALIZER ! 8532: imply EXPAND_CONST_ADDRESS in all cases. ! 8533: ! 8534: * c-decl.c (c_decode_option): -Wall sets warn_uninitialized. ! 8535: * flags.h (warn_uninitialized): Declared. ! 8536: * toplev.c (warn_uninitialized): No longer static. ! 8537: ! 8538: * cccp.c (main): Make no assumptions about include_defaults ! 8539: in calculation of max_include_len. Add fudge space if VMS. ! 8540: ! 8541: * reload.c (find_reloads_toplev): New arg IS_SET_DEST. ! 8542: Don't replace reg with constant in destination of a SET. ! 8543: (find_reloads): Pass that arg. Also don't replace here. ! 8544: ! 8545: * cplus-xref.c: Finish installing changes from Youngdale. ! 8546: ! 8547: Sat Aug 31 09:02:25 1991 Michael Tiemann (tiemann at cygint.cygnus.com) ! 8548: ! 8549: * cplus-decl2.c (finish_file): Call varasm routines to assemble ctor ! 8550: and dtor lists. ! 8551: ! 8552: * cplus-dbxout.c (dbxout_type_methods): Fix error in printing symbol ! 8553: info for classes that only define a destructor. ! 8554: ! 8555: Sat Aug 31 08:32:12 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 8556: ! 8557: * cse.c (cse_end_of_basic_block): Correctly handle the case of a basic ! 8558: block where a conditional branch out of the block becomes unconditional ! 8559: and a conditional branch to the end of the block becomes a noop. ! 8560: ! 8561: * combine.c (try_combine): In case where we have a PARALLEL ! 8562: involving a load and sign extend, use reg_overlap_mentioned_p ! 8563: instead of reg_mentioned_p. ! 8564: If we have a PARALLEL of two independent SETs, try to split them ! 8565: up into separate insns. ! 8566: ! 8567: * combine.c (move_deaths): Instead of placing the REG_DEAD notes ! 8568: on TO_INSN, add them to a list whose address is given as an ! 8569: operand. ! 8570: (distribute_notes): Allow for the case when the death of an object ! 8571: is between I2 and I3. ! 8572: Set reg_last_death to corrspond to the location of the REG_DEAD ! 8573: note being placed. ! 8574: (try_combine): Call move_deaths in new way and pass returned list ! 8575: to distribute_notes if it is non-empty. ! 8576: ! 8577: * local-alloc.c (requires_inout_p): Don't have cases for '[Q-U]' unless ! 8578: EXTRA_CONSTRAINT is defined.. ! 8579: ! 8580: * local-alloc (block_alloc): Don't allocate SCRATCH on machines with ! 8581: SMALL_REGISTER_CLASSES defined. ! 8582: ! 8583: * regclass.c (reg_class_record): Add missing case for 'V'. ! 8584: ! 8585: Fri Aug 30 04:42:19 1991 James Van Artsdalen (james at bigtex.cactus.org) ! 8586: ! 8587: * tm-i386.h (OUTPUT_JUMP): Use cc_prev_status. ! 8588: ! 8589: Fri Aug 30 17:08:52 1991 (Eric Youngdale at [email protected]) ! 8590: ! 8591: * xm-vms.h (LOCATE_START_OF_FILE_NAME): Remove. ! 8592: (FILE_NAME_NONDIRECTORY): Fix typo. ! 8593: (XREF_FILE_NAME): Use FILE_NAME_NONDIRECTORY instead of ! 8594: LOCATE_START_OF_FILE_NAME, and omit the leading underscore in the ! 8595: generated file name. ! 8596: (FILE_NAME_ABSOLUTE_P): Define to use hook in cplus-xref.c. ! 8597: (FILE_NAME_JOINER): Define to use hook in cplus-xref.c. ! 8598: ! 8599: * cplus-xref.c: Fix bug in default definition of FILE_NAME_ABSOLUTE_P. ! 8600: (GNU_xref_open): Fix bug - wrong argument to XREF_FILE_NAME. ! 8601: (FILE_NAME_JOINER): New macro. ! 8602: (GNU_xref_file): Use it. ! 8603: ! 8604: Fri Aug 30 17:30:15 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 8605: ! 8606: * cplus-xref.c: Reinstall Aug 25 changes discarded by Tiemann. ! 8607: ! 8608: * expr.c (expand_expr): New modifier option EXPAND_INITIALIZER. ! 8609: * varasm.c (output_constant): Use that. ! 8610: * jump.c (forced_labels): New var records labels not to delete. ! 8611: (jump_optimize): Don't delete those labels. ! 8612: * flow.c (find_basic_blocks): Any computed goto goes to those labels. ! 8613: * varasm.c (decode_addr_const): Deal with LABEL_DECL. ! 8614: ! 8615: Fri Aug 30 15:41:03 1991 Michael Meissner (meissner at osf.org) ! 8616: ! 8617: * mips.md (copyleft): Use separate copyright years. ! 8618: (mov*): Use nonimmediate_operand instead of general_operand. ! 8619: ! 8620: * tm-mips.h (copyleft): Use separate copyright years. ! 8621: ! 8622: * xm-mips.h (copyleft): Use separate copyright years. ! 8623: ! 8624: * xm-umips.h (copyleft): Use separate copyright years. ! 8625: ! 8626: Fri Aug 30 08:47:30 1991 Michael Tiemann (tiemann at cygint.cygnus.com) ! 8627: ! 8628: * cplus-typeck.c (build_x_*): Try first calling `build_opfncall' ! 8629: with FLAGS==0. If that succeeds, check protection. ! 8630: (build_conditional_expr): `fold' does not preserve the type of it's ! 8631: expressions, which is a problem for C++ when trying to keep ints and ! 8632: enums distinct. ! 8633: ! 8634: * cplus-decl.c (lookup_name): When there is a choice between seeing ! 8635: a name as a type and seeing as a decl, call `arbitrate_lookup' to ! 8636: make the decision. ! 8637: * cplus-lex.c (arbitrate_lookup): New function. Uses minute amounts ! 8638: of syntactic context to decide whether to see a name as a type or ! 8639: something else. ! 8640: ! 8641: Fri Aug 30 07:40:49 1991 Tom Wood (wood at dg-rtp.dg.com) ! 8642: ! 8643: * jump.c (delete_jump): When checking REG_DEAD notes, make sure they ! 8644: have a legal value. ! 8645: ! 8646: Fri Aug 30 00:57:05 1991 James Van Artsdalen (james at bigtex.cactus.org) ! 8647: ! 8648: * local-alloc.c (alloc_qty_for_scratch): Treat Q - U as reg class if ! 8649: EXTRA_CONSTRAINT is not defined. ! 8650: * regclass.c (reg_class_record): Likewise. ! 8651: ! 8652: Thu Aug 29 21:39:07 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 8653: ! 8654: * c-typeck.c (build_binary_op_nodefault): Fix last change. ! 8655: ! 8656: Thu Aug 29 19:11:05 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 8657: ! 8658: * recog.c (general_operand, const_double_operand): Similar to ! 8659: immediate_operand, don't accept a VOIDmode operand if the ! 8660: caller wants floating. ! 8661: * out-pyr.c (nonindexed_operand): Likewise. ! 8662: ! 8663: Thu Aug 29 09:53:27 1991 Michael Tiemann (tiemann at pogo.gnu.ai.mit.edu) ! 8664: ! 8665: * cplus-tree.h ({SET,CLEAR}_ASSOC_*): New macros needed because not ! 8666: all C compilers support conditional expressions as lvalues. ! 8667: (lang_type): Change type of MEMOIZED_TABLE_ENTRY and SEARCH_SLOT ! 8668: from `void *' to `char *', to make braindead compilers at less of a ! 8669: disadvantage. ! 8670: ! 8671: Thu Aug 29 08:07:40 1991 Tom Wood (wood at dg-rtp.dg.com) ! 8672: ! 8673: * m88k.md (define_function_unit): Update latencies. ! 8674: ! 8675: * out-m88k.c (output_function_profiler): Correct offsets for ! 8676: register saves. ! 8677: * tm-m88ksvr4.h (FUNCTION_PROFILER): Use the name _mcount and do ! 8678: register saves. ! 8679: ! 8680: * tm-m88k.h (ASM_DWARF_POP_SECTION): Specify "previous". ! 8681: ! 8682: Changes from Ron Guilmette: ! 8683: * dwarfout.c (lookup_filename): Only increment valid_ft_entries ! 8684: once when adding a filename to the table. ! 8685: (output_symbol): Do output DIEs for a global VAR_DECL definition. ! 8686: ! 8687: Thu Aug 29 06:15:32 1991 Michael Tiemann (tiemann at rtl.cygnus.com) ! 8688: ! 8689: * cplus-type2.c (build_functional_cast): If we have a valid value in ! 8690: `expr_as_conversion' return that before returning error_mark_node. ! 8691: ! 8692: * cplus-init.c (expand_recursive_init): Fix typo is testing ! 8693: TYPE_USES_VIRTUAL_BASECLASSES. ! 8694: ! 8695: Wed Aug 28 23:12:35 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 8696: ! 8697: * c-typeck.c (build_binary_op_nodefault): For shift and rotate ops, ! 8698: if traditional, use the common type of the operands. ! 8699: ! 8700: Wed Aug 28 07:31:33 1991 Tom Wood (wood at dg-rtp.dg.com) ! 8701: ! 8702: * dwarfout.c, dwarf.h, README.DWARF: Replacement files from Ron ! 8703: Guilmette that bring the dwarf implementation up to that defined by ! 8704: draft 4 of the dwarf specification (dated 7/31/91). ! 8705: ! 8706: Wed Aug 28 06:24:30 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 8707: ! 8708: * all *.md files except a29k.md and romp.md: Don't allow CONST_INT ! 8709: as operand for RTL operations that need a mode to be well-defined, ! 8710: e.g., SIGN_EXTEND, ZERO_EXTEND, TRUNCATE, FLOAT. Similarly, don't ! 8711: allow CONST_INT as first operand of a COMPARE. ! 8712: ! 8713: * machmode.h (MIN, MAX): Undefine these before our definition. ! 8714: ! 8715: Tue Aug 27 21:33:04 1991 Michael Tiemann (tiemann at pogo.gnu.ai.mit.edu) ! 8716: ! 8717: * version.c: Now 1.95. ! 8718: ! 8719: Tue Aug 27 18:05:25 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 8720: ! 8721: * reload1.c (possible_group_p): Use earliest class that needs a group. ! 8722: ! 8723: * gcc.c (do_spec_1): Handle %x and %X. ! 8724: (link_command_spec): Use %X. If given -collect, pass -c. ! 8725: (default_compilers c++): Use %x to pass -c to linker. ! 8726: ! 8727: * cse.c (find_comparison_code): Don't call fold_rtx, ! 8728: because we don't know which insn to pass for its second argument. ! 8729: ! 8730: * cse.c (fold_rtx): Don't fold what we get from lookup_as_function. ! 8731: ! 8732: Tue Aug 27 17:46:59 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 8733: ! 8734: * cse.c (rtx_cost): A USE is free; it is likely being used as a marker. ! 8735: ! 8736: * cse.c (cse_insn): If we decided not to make a reg-reg copy between ! 8737: equivalent regs into a no-op, see if there is an equivalent constant ! 8738: that is cheaper than the register we decided to use. ! 8739: ! 8740: * cse.c (cse_insn): Fix arg in insert_regs call when making a ! 8741: secondary equivalence due to a SUBREG; we are not modifying the ! 8742: register. ! 8743: ! 8744: * cse.c (delete_dead_from_cse): Treat a SET that copies a register ! 8745: to itself as if it were setting a dead register. ! 8746: ! 8747: * cse.c (find_comparison_args): Call fold_rtx on the args that we ! 8748: are about to return. ! 8749: (fold_rtx, case SUBREG): Copy code from equiv_constant that looks up ! 8750: a SUBREG in the hash table. ! 8751: If our our folded operand is equivalent to a constant, use that when ! 8752: seeing if we can get a part of a constant. ! 8753: (fold_rtx): Don't short-circuit recursive call for an operand that ! 8754: is a SUBREG; add comment in REG case that we are doing equiv_constant. ! 8755: When looking for associative operation, call fold_rtx on potential ! 8756: constant as well as equiv_constant. ! 8757: (equiv_constant): Just look up a constant quantity for a register; ! 8758: fold_rtx will do the SUBREG operations. ! 8759: ! 8760: * fold-const.c ({neg,mul,lshift,rshift,lrotate,rrotate}_double): ! 8761: No longer static. ! 8762: * cse.c (simplify_{unary,binary}_operation): Fold some DImode ! 8763: operations. ! 8764: ! 8765: * fold-const.c (fold, case EQ_EXPR, NE_EXPR, ...): Add code to handle ! 8766: cases where we are comparing the result of a comparison. ! 8767: ! 8768: Tue Aug 27 14:35:59 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 8769: ! 8770: * flow.c (mark_used_regs): Set regs_ever_live for all hard regs. ! 8771: Warning: this might break FUNCTION_PROLOGUE and FUNCTION_EPILOGUE ! 8772: in some ports. But I've checked all the installed ones. ! 8773: * tm-gmicro.h (FUNCTION_PROLOGUE): ! 8774: Clear bit for fp reg if used as such. ! 8775: * tm-mips.h (MUST_SAVE_REGISTER): Only frame_pointer_needed affects fp. ! 8776: ! 8777: * c-decl.c (store_parm_decls): No error if arglist contains type tag. ! 8778: ! 8779: * optabs.c (expand_fix): Really call emit_cmp_insn right. ! 8780: ! 8781: * floatlib.c: New file. ! 8782: ! 8783: * gnulib2.c (__clz_tab): Moved to _udivdi3. ! 8784: ! 8785: Tue Aug 27 06:44:12 1991 Michael Tiemann (tiemann at rtl.cygnus.com) ! 8786: ! 8787: * cplus-typeck.c (c_expand_return): Don't use the cleanup generated ! 8788: by `build_functional_cast'. ! 8789: ! 8790: * cplus-class.c (resolves_to_fixed_type_p): Handle WITH_CLEANUP_EXPR. ! 8791: ! 8792: Mon Aug 26 20:55:58 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 8793: ! 8794: * c-parse.y (yylex): Cast shorts[n] to long before shifting. ! 8795: * fold-const.c (decode): Likewise. ! 8796: ! 8797: * Makefile.in (INSTALL_DATA): Renamed from INSTALL_FILE. ! 8798: ! 8799: * cse.c (canon_hash): Don't crash if subexpression is 0. ! 8800: ! 8801: * cplus-lex.c (interface_strcmp): Put back variable s1. ! 8802: ! 8803: Mon Aug 26 18:14:33 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 8804: ! 8805: * function.c (instantiate_virtual_regs_1): Complete previous change; ! 8806: had omitted arg on two returns. ! 8807: ! 8808: Mon Aug 26 15:16:39 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 8809: ! 8810: * optabs.c (expand_float, expand_fix): Pass new arg to emit_cmp_insn. ! 8811: ! 8812: * out-m68k.c (singlemove_string): Fix last change. ! 8813: ! 8814: Mon Aug 26 11:20:51 1991 Tom Wood (wood at dg-rtp.dg.com) ! 8815: ! 8816: * m88k.md (cmpsi insn): Don't provide an insn that compares two ! 8817: constants. ! 8818: ! 8819: Mon Aug 26 08:34:48 1991 Michael Meissner (meissner at osf.org) ! 8820: ! 8821: * collect-osf.c (toplevel, read_file, end_file): Don't use mmap, ! 8822: unless all defines needed are defined. ! 8823: (various): If -debug turn on debugging code. Change all occurances ! 8824: of #ifdef DEBUG sections to if (debug). ! 8825: (main, add_to_list): Correctly cast xcalloc calls. ! 8826: (scan_prog_file): Correct xcalloc to allocate enough space ! 8827: (scan_prog_file): If -debug, don't dump entire symbol table, just ! 8828: dump the constructors and destructors. ! 8829: ! 8830: * make-decrose (CFLAGS): Use DEB_OPT for default debug and optimize ! 8831: options, use SHLIB for default shared library versions. ! 8832: (DEB_OPT): Define to be -g -O2. ! 8833: (SHLIB): Define to be -L${BUILD}/usr/ccs/lib, which forces static ! 8834: libraries with both old and new 1.39 compilers. ! 8835: (COFF_CFLAGS): Define to be -O2 -g0. ! 8836: (collect): Add LIBDEPS dependency. ! 8837: ! 8838: Mon Aug 26 07:22:21 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 8839: ! 8840: * machmode.h (MIN, MAX): Define here. ! 8841: * c-decl.c, calls.c, cplus-class.c, cplus-decl.c, cplus-tree.c: ! 8842: Don't define here. ! 8843: * expr.c, fold-const.c, function.c, integrate.c, recog.c: Likewise. ! 8844: * rtl.c, sdbout.c, stmt.c, stor-layout.c, varasm.c: Likewise. ! 8845: * c-typek.c, combine.c, cse.c, emit-rtl.c, expmed.c, final.c: ! 8846: Delete definitions of "min" and "max"; use MIN and MAX now defined ! 8847: in machmode.h. ! 8848: * genemit.c, regclass.c, reload.c, reload1.c: Likewise. ! 8849: * cccp.c (MIN, MAX): Define instead of min and max for consistency. ! 8850: ! 8851: * tm-rs6000.h (HARD_REGNO_MODE_OK): Don't put DImode in reg 31; ! 8852: similarly for TImode. ! 8853: ! 8854: * cse.c (cse_skip_to_next_block): Variable deleted. ! 8855: (cse_insn): Don't set it anymore. ! 8856: (cse_basic_block): Don't use cse_skip_to_next_block; instead, look ! 8857: for unconditional jumps explicitly; correctly handle unconditional ! 8858: jumps to the end of the basic block by extending the basic block in ! 8859: that case. ! 8860: ! 8861: * reload1.c (alter_reg): Ensure that stack slot is always the correct ! 8862: mode. ! 8863: ! 8864: Mon Aug 26 06:20:43 1991 Michael Tiemann (tiemann at cygint.cygnus.com) ! 8865: ! 8866: * cplus-type2.c (build_functional_cast): Treat constructor casts as ! 8867: having cleanups in this function. ! 8868: * cplus-decl.c (finish_decl): Use cleanups created by functinal ! 8869: casts used as initializers. ! 8870: ! 8871: * cplus-init.c (expand_member_init): Call error with ! 8872: IDENTIFIER_POINTER, not DECL_NAME, of NAME. ! 8873: ! 8874: * cplus-method.c (fndecl_as_string): Don't skip `in_charge' ! 8875: parameter twice. ! 8876: ! 8877: * cplus-init.c (build_new): Delete code which short-circuited ! 8878: multiple indirections in ABSDCL and made everything look like just a ! 8879: single level of indirection. ! 8880: ! 8881: * cplus-typeck.c (warn_for_assignment): Now takes a FUNCTION_DECL ! 8882: instead of an IDENTIFIER_NODE as an argument. Also, print ! 8883: reasonable message when ARGNUM < 0. ! 8884: ! 8885: * cplus-typeck.c (type_unknown_p): If TREE_CODE (EXP) == TREE_LIST, ! 8886: it's type is unknown. ! 8887: ! 8888: * cplus-typeck.c (commonparms): Don't insert default parmeter values ! 8889: into existing arg lists. Instead, unify them into new ones only. ! 8890: ! 8891: * cplus-typeck.c (convert_for_{initialization,assignment}): Pass ! 8892: FNDECL instead of function name. Use `lang_printable_name' to pass ! 8893: printable name to `warn_for_assignment'. ! 8894: ! 8895: * cplus-typeck.c (convert_arguments): Don't forcibly convert ptrs to ! 8896: other things into ptrs to functions just to satisfy the conversion ! 8897: of virtual functions. ! 8898: ! 8899: Sun Aug 25 22:44:57 1991 Michael Tiemann (tiemann at cygint.cygnus.com) ! 8900: ! 8901: * cplus-typeck.c (compparms): Deal with STRICT == 3. ! 8902: * cplus-search.c (get_first_matching_virtual): Call `compparms' with ! 8903: STRICT == 3. ! 8904: ! 8905: * cplus-lex.c (operator_name_string): Don't abort if we cannot find ! 8906: a operator name for NAME. Instead, return identifier for ! 8907: <invalid operator>. ! 8908: ! 8909: Sun Aug 25 15:42:59 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 8910: ! 8911: * cplus-xref.c (FILE_NAME_ABSOLUTE_P): New macro. ! 8912: (GNU_xref_file): Use it. ! 8913: (open_xref_file): Use new macro XREF_FILE_NAME if defined. ! 8914: * cplus-lex.c (FILE_NAME_NONDIRECTORY): New macro. ! 8915: Used frequently instead of strrchr. ! 8916: * xm-vms.h: Define those three macros. ! 8917: ! 8918: * optabs.c (expand_binop): Use word mode for force_reg on op1 of shift. ! 8919: ! 8920: * out-m68k.c (singlemove_string): Use moveq when appropriate. ! 8921: ! 8922: * final.c (split_double): Handle all integer constants. ! 8923: * out-m68k.c (output_move_double): Use split_double for all constants. ! 8924: * ??? Most out-*.c need changing. ! 8925: ! 8926: * c-decl.c (finish_enum): Make some local vars unsigned. ! 8927: * c-common.c (type_for_size): ! 8928: * c-convert.c (convert_to_integer): ! 8929: * tm-i860.h (ASM_OUTPUT_ASCII): ! 8930: * c-parse.y (yylex): ! 8931: * expr.c (get_pointer_alignment): ! 8932: * stor-layout.c (layout_union, layout_record): ! 8933: * tree.c (get_unwidened, get_narrower): ! 8934: ! 8935: * expr.c (emit_library_call): Don't declare va_list as register. ! 8936: * final.c (asm_fprintf): Likewise. ! 8937: * tree.c (build, build_nt, build_parse_node): Likewise. ! 8938: ! 8939: * expr.c (do_jump_for_compare): Don't assume the compare survives ! 8940: when the branch is emitted. ! 8941: ! 8942: * expr.c (convert_move): Fix typo in prev change. ! 8943: ! 8944: * emit-rtl.c (fconst2_rtx, dconst2_rtx): New vars. ! 8945: (init_emit_once): Initialize them. ! 8946: ! 8947: * expmed.c (extract_bit_field, store_bit_field): ! 8948: For multi-word field, do words from least significant first. ! 8949: ! 8950: (extract_split_bit_field): OP0 is only the first word of the ! 8951: source, so if this is a SUBREG, must call operand_subword on ! 8952: SUBREG_REG (OP0) instead of OP0. ! 8953: ! 8954: * varasm.c (output_constructor): Correctly output constants for ! 8955: bitfields which are greater than HOST_BITS_PER_INT. Use ! 8956: TREE_INT_CST_HIGH for the high bits. ! 8957: ! 8958: * Makefile.in (ENQUIRE_CFLAGS, ENQUIRE_LDFLAGS): New parameters. ! 8959: (enquire, enquire.o): Use them. ! 8960: ! 8961: * tm-sysv4.h: New file, cut out from tm-m88k.h. ! 8962: * tm-m88k.h: Include that. ! 8963: ! 8964: * vax.md (sltu, sgeu): New patterns. ! 8965: ! 8966: Sat Aug 24 11:19:43 1991 Michael Tiemann (tiemann at cygint.cygnus.com) ! 8967: ! 8968: * cplus-init.c (build_offset_ref): Pass a TYPE_DECL node, not a ! 8969: RECORD_TYPE node, to `build_component_type_expr'. ! 8970: ! 8971: * cplus-cvt.c (convert_to_integer): Warn about conversion from ! 8972: integral type to enumeral type if FLAG_INT_ENUM_EQUIVALENCE is zero. ! 8973: (convert_force): Set FLAG_INT_ENUM_EQUIVALENCE non-zero when calling ! 8974: `convert'. ! 8975: ! 8976: * cplus-typeck.c (build_x_*_op): Don't try using built-in operators ! 8977: if user-defined ones are not accessible. ! 8978: ! 8979: * cplus-init.c (expand_aggr_init_1): Use `expand_expr' to set the ! 8980: DECL_RTL of the TARGET_EXPR. This is a generalization of code that ! 8981: used to require that EXP be some sort of _DECL. ! 8982: ! 8983: * cplus-init.c (init_init_processing): Link global runtime functions ! 8984: __builtin_new and __builtin_delete to their canonical operator ! 8985: names (i.e., op$nw and op$dl). ! 8986: ! 8987: * cplus-lex.c (init_lex): Don't see `dynamic' as a reserved word if ! 8988: SOS is not defined. ! 8989: * cplus-decl2.c (flag_dynamic): Delete unused variable. ! 8990: ! 8991: * cplus-decl.c (define_case_label): Give error when case label cuts ! 8992: into a binding contour with cleanups. ! 8993: * stmt.c (last_cleanup_this_contour): Changed name from ! 8994: `this_contour_has_cleanups_p'. Now returns last cleanup, if there ! 8995: was one. ! 8996: * tree.h: Declare `last_cleanup_this_contour'. ! 8997: ! 8998: * cplus-decl.c (grokdeclarator): Don't let member functions have ! 8999: static linkage. ! 9000: ! 9001: * cplus-tree.c (layout_basetypes): Copy non-virtual basetypes of ! 9002: virtual basetypes so that search routines can find ambiguities ! 9003: arising in lattices where the same type appears as a non-virtual ! 9004: basetype of different types in the lattice. ! 9005: (copy_nonvirtual_children): Implement a recursive deep-copy of ! 9006: nonvirtual types in an inheritance lattice. ! 9007: ! 9008: * cplus-search.c (lookup_fnfields): Correctly catch case where there ! 9009: are multiple functions in an MI lattice. ! 9010: * cplus-call.c (ideal_candidate): If we find a requested function is ! 9011: ambiguous in an MI lattice, set CP->EVIL to 1. ! 9012: (build_method_call): If CP->EVIL is set on return from ! 9013: `ideal_candidate', return error_mark_node. ! 9014: ! 9015: * cplus-decl.c (lookup_name): Prefer finding typenames to overloaded ! 9016: functions where there's a collision. ! 9017: (pushdecl): Don't override the declaration of global functions with ! 9018: a TYPE_DECL that has the same name. `lookup_name' now knows how to ! 9019: find both. ! 9020: (globalize_nested_type): Changed to look in IDENTIFIER_TYPE_VALUE ! 9021: slot for global definitions that are not in IDENTIFIER_GLOBAL_VAL. ! 9022: * cplus-type2.c (build_functional_cast): Deal with more ambiguities ! 9023: and more cases where the syntactic form `NAME ( PARMS )' can have ! 9024: meaning. ! 9025: ! 9026: Sat Aug 24 01:33:00 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 9027: ! 9028: * expr.c (convert_move): Make integer extension general. ! 9029: ! 9030: * optabs.c (init_extends, gen_extend_insn): Finish and turn on. ! 9031: ! 9032: * reload1.c (possible_group_p): Insist on regs in needed class. ! 9033: ! 9034: * SYSCALLS.c (alloca): Declare arg as size_t. ! 9035: ! 9036: * expr.c (store_constructor): Handle union constructor. ! 9037: ! 9038: * final.c (split_double): long long CONST_DOUBLE now has VOIDmode. ! 9039: ! 9040: * optabs.c (expand_binop): Fix carry propagation bugs. ! 9041: Handle carry propagation for big-endian case. ! 9042: ! 9043: Fri Aug 23 21:29:46 1991 Michael Tiemann (tiemann at cygint.cygnus.com) ! 9044: ! 9045: * cplus-decl.c (finish_decl): More PIC fixes. Also, don't assign ! 9046: any storage for static member variables except when they are being ! 9047: defined. ! 9048: ! 9049: * cplus-init.c (build_virtual_init): Change interface to take ! 9050: MAIN_ASSOC instead of FOR_TYPE. ! 9051: (expand_aggr_init_1): Ditto. ! 9052: (expand_recursive_init_1): Ditto. ! 9053: (expand_aggr_vbase_init{_1}): Change interface to take an assoc ! 9054: instead of a type. ! 9055: (expand_recursive_init): Ditto. ! 9056: ! 9057: * cplus-pt.c (uses_template_parms): Handle PARM_DECL nodes. ! 9058: ! 9059: * cplus-search.c (get_base_assoc): Use ASSOC_MARKED instead of ! 9060: ASSOC_BASETYPE_MARKED to mark visited nodes. ! 9061: (lookup_field, loopup_fnfields): Use ASSOC_FIELDS_MARKED instead of ! 9062: ASSOC_VBASE_MARKED when searching. ! 9063: ({bfs_,un,bfs_un}marked2p): Deleted, unused. ! 9064: (dfs_{un}mark2): Deleted, unused. ! 9065: (dfs_unmark12): Deleted, unused. ! 9066: (build_vbase_vtables_init): Change interface to take MAIN_ASSOC ! 9067: instead of FOR_TYPE. ! 9068: ! 9069: Fri Aug 23 18:31:53 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 9070: ! 9071: * expr.c (do_store_flag): Give up if can't directly compare args. ! 9072: ! 9073: Fri Aug 23 18:00:58 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 9074: ! 9075: * function.c (instantiate_virtual_regs_1): Add new arg and now returns ! 9076: int instead of void. ! 9077: All callers changed. ! 9078: ! 9079: * expr.c (compare_constants): Deleted. ! 9080: (compare_from_rtx): Use simplify_relational_operation instead of ! 9081: compare_constants; abort is not needed since ! 9082: simplify_relational_operation will return 0 if given VOIDmode. ! 9083: ! 9084: * cse.c (fold_rtx): Correctly compute mode of operands being ! 9085: compared. ! 9086: ! 9087: Fri Aug 23 17:16:27 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 9088: ! 9089: * stmt.c (expand_end_case): ! 9090: Avoid special cases for modes when widening. ! 9091: Realize __builtin_classify_type reduces to int constant. ! 9092: ! 9093: * optabs.c (emit_cmp_insn): New arg, MODE. All callers changed. ! 9094: If both args are const_int, copy one to a reg. ! 9095: ! 9096: Fri Aug 23 15:54:21 1991 (Eric Youngdale at [email protected]) ! 9097: ! 9098: * make-cc1.com: Fix bug where cplus-parse.y was always being passed ! 9099: through bison, whether it needed it or not. ! 9100: ! 9101: Fri Aug 23 15:20:46 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 9102: ! 9103: * stmt.c (expand_end_case): Remove Aug 12 change. ! 9104: Convert index to nominal_type for subtraction. ! 9105: ! 9106: Thu Aug 22 14:34:21 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 9107: ! 9108: * configure, config.gcc: Switch to all-dashes config names. ! 9109: ! 9110: * gnulib2.c [U_udivdi3, L_muldi3]: Define __clz_tab for longlong.h. ! 9111: ! 9112: Thu Aug 22 00:28:29 1991 Torbjorn Granlund (tege at zevs) ! 9113: ! 9114: * longlong.h: Rename BITS_PER_LONG to LONG_TYPE_SIZE. ! 9115: * longlong.h (__ibm032__): Define count_leading_zeros and umul_ppmm. ! 9116: * longlong.h: Define UMUL_TIME and UDIV_TIME for some CPUs. ! 9117: * longlong.h (__sparc__ umul_ppmm): Move two insn from end to the ! 9118: nops. (Saves two insn.) ! 9119: * longlong.h (__sparc__ umul_ppmm): Rewrite in order to avoid ! 9120: branch, and to permit input/output register overlap. ! 9121: * longlong.h (__29k__): Remove duplicated udiv_qrnnd definition. ! 9122: * longlong.h (__29k__ umul_ppmm): Split asm instructions into two ! 9123: asm statements (gives better code if either the upper or lower ! 9124: part of the product is unused. ! 9125: * longlong.h: Mention UDIV_NEEDS_NORMALIZATION in description of ! 9126: udiv_qrnnd. ! 9127: * longlong.h (IBMR2): Add udiv_qrnnd. ! 9128: * longlong.h (add_ssaaaa, sub_ddmmss [C default versions]): Make __x ! 9129: `unsigned long int'. ! 9130: * longlong.h: Add `int' after `unsigned' and `long' everywhere. ! 9131: * longlong.h: Add ARM, i860 support. ! 9132: * longlong.h (sparc umul_ppmm): Use __asm__, not asm. ! 9133: * longlong.h (IBMR2 umul_ppmm): Refer to __m0 and __m1, not to m0 ! 9134: and m1 (overlap between output and input operands did not work). ! 9135: * longlong.h: Add VAX, ROMP and HP-PA support. ! 9136: * longlong.h: Sort the machine dependent code in alphabetical order ! 9137: on the CPU name. ! 9138: * longlong.h: Hack comments. ! 9139: * longlong.h: Define BITS_PER_LONG to 32 if it's not already ! 9140: defined. ! 9141: * Define __BITS4 to BITS_PER_LONG / 4. ! 9142: * Don't assume 32 bit word size in "count_leading_zeros" C macro. ! 9143: Use __BITS4 and BITS_PER_LONG instead. ! 9144: * longlong.h (68k): Define add_ssaaaa sub_ddmmss, and umul_ppmm ! 9145: even for plain mc68000. ! 9146: * longlong.h: Clean up comments. ! 9147: * longlong.h: Don't use #elif. ! 9148: * longlong.h: Use __asm__ instead of asm. ! 9149: * longlong.h (sparc udiv_qrnnd): Make it to one string over several ! 9150: lines. ! 9151: * longlong.h: Preend __ll_ to B, highpart, and lowpart. ! 9152: * longlong.h: Move array t in count_leading_zeros to gnulib2.c ! 9153: Rename the array __clz_tab. ! 9154: * longlong.h (umul_ppmm [C variant]): Make __ul...__vh ! 9155: `unsigned int', and cast the multiplications. This way ! 9156: compilers more easily can choose cheaper multiplication ! 9157: instructions. ! 9158: ! 9159: Thu Aug 22 07:36:40 1991 Tom Wood (wood at dg-rtp.dg.com) ! 9160: ! 9161: * rtl.h: Declare simplify_relational_operation. ! 9162: ! 9163: * out-m88k.c (output_file_start): Put the `gcc2_compiled.' symbol ! 9164: in the data section. Eliminates symbol translation problems with ! 9165: debuggers. ! 9166: ! 9167: Changes from Ron Guilmette: ! 9168: * toplev.c (compile_file): Use dwarfout_finish when done. ! 9169: * final.c (output_source_line): Use dwarfout_line. ! 9170: * dwarfout.c (dwarfout_finish): Rename from dwarfout_finalize. ! 9171: * tm-m88k.h (ASM_OUTPUT_DWARF_LINE, ASM_FILE_END): No need for ! 9172: dwarf specific actions. ! 9173: ! 9174: Thu Aug 22 05:29:57 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 9175: ! 9176: * combine.c (can_combine_p): Don't combine if INSN has REG_RETVAL note. ! 9177: (try_combine): Similarly, don't combine if I3 has REG_LIBCALL note. ! 9178: ! 9179: * flow.c (propagate_block): Don't use variable PREV in ! 9180: nested blocks that shadows PREV at function level. ! 9181: If we handle this insn normally, arrange to scan any insns that ! 9182: were inserted in front of it for making auto-inc addressing. ! 9183: ! 9184: * integrate.c (save_for_inline_copying): Clear CONST_DOUBLE ! 9185: memory chain. ! 9186: ! 9187: * toplev.c (fatal_insn_not_found): Now that it is called in final.c ! 9188: when an insn doesn't match constraints, write different error ! 9189: message in that case. ! 9190: * genattrtab.c (write_attr_case): Call fatal_insn_not_found instead ! 9191: of abort when constrain_operands fails. ! 9192: ! 9193: Thu Aug 22 05:29:09 1991 Matthew Self (mself at next.com) ! 9194: ! 9195: * rtl.c (add_dependence): Uses of RTX_UNCHANGING_P should now be ! 9196: SCHED_GROUP_P. ! 9197: ! 9198: Thu Aug 22 00:34:20 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 9199: ! 9200: * recog.c (offsettable_address_p): Always pass QImode to addressp. ! 9201: ! 9202: Wed Aug 21 09:20:09 1991 Michael Meissner (meissner at osf.org) ! 9203: ! 9204: * tm-decrose.h (LINK_SPEC): Allow -pic-none, -glue, -noshrlib ! 9205: switches. ! 9206: (LIB_SPEC): Add -L/usr/ccs/lib to get new 1.1 linker to use static ! 9207: libraries instead of shared libraries, since the shared library ! 9208: support has not yet been added. ! 9209: ! 9210: Wed Aug 21 06:18:12 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 9211: ! 9212: * out-rs6000.c (print_operand, case 'Y', 'Z'): Fix typo in ! 9213: auto-inc case. ! 9214: * rs6000.md (movti): Add missing %U in memory cases. ! 9215: ! 9216: * tm-rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Indexed addresses are not ! 9217: valid for DImode and TImode. ! 9218: * out-rs6000.c (indexed_mem_operand): Deleted. ! 9219: (print_operand, case 'X'): Don't use indexed_mem_operand; check ! 9220: ourselves instead. ! 9221: * rs6000.md (movdi, movti): Don't check for indexed memory operands. ! 9222: ! 9223: Tue Aug 20 16:02:41 1991 Tom Wood (wood at dg-rtp.dg.com) ! 9224: ! 9225: * sdbout.c (sdbout_parms): Handle parm passed in reg and living in ! 9226: pseudo that was optimized away. ! 9227: ! 9228: Mon Aug 19 19:10:42 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 9229: ! 9230: * combine.c (simplify_comparision, case NEG): Can only convert ! 9231: (-a) < C to a > C if C is zero. ! 9232: ! 9233: * expmed.c (store_bit_field, extract_bit_field): Use WORD_MODE for ! 9234: mode of BITS_PER_WORD to avoid conflict with other use of variable ! 9235: named MODE. ! 9236: ! 9237: * cse.c (cse_insn): Don't make a REG_EQUAL note whose contents ! 9238: are a REG; the REG might have been eliminated. ! 9239: ! 9240: * reload1.c (reload_as_needed): Pass any CLOBBERs made when reloading ! 9241: an insn to `forget_old_reloads_1'. ! 9242: ! 9243: Mon Aug 19 12:47:46 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 9244: ! 9245: * configure (m88k-luna): Rename alternative appropriately. ! 9246: ! 9247: * cse.c (simplify_relational_operation): Split out from ..._binary_... ! 9248: (fold_rtx): Use that function for relationsals. ! 9249: (simplify_binary_operation): Don't allow relationals. ! 9250: * combine.c (subst, gen_binary): Use simplify_relation_operation. ! 9251: * integrate.c (subst_constants): Likewise. ! 9252: * jump.c (jump_optimize): Likewise. ! 9253: ! 9254: * c-common.c (shorten_compare): Warn about unsigned >= 0. ! 9255: ! 9256: Sun Aug 18 17:29:16 1991 (Eric Youngdale at [email protected]) ! 9257: ! 9258: * tm-vms.h (ASM_OUTPUT_EXTERNAL): Remove code to round the storage ! 9259: size up to a multiple of 4 bytes. ! 9260: ! 9261: Sun Aug 18 15:35:27 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 9262: ! 9263: * dbxout.c (dbxout_parms): ! 9264: Handle parm passed in reg and living in pseudo that was optimized away. ! 9265: ! 9266: * function.c (init_function_start): Give decl_printable_name both args. ! 9267: ! 9268: * expr.c (compare_from_rtx): ! 9269: Don't change to unsigned if too wide for host int. ! 9270: * cse.c (fold_rtx): Use mode_arg0 to simplify comparison ops. ! 9271: Update mode_arg0 when we look at value of cc0. ! 9272: ! 9273: * cse.c (cse_insn): Really don't record bitfield destinations ! 9274: unless source is constant which fits. ! 9275: But pre-truncate other constants. ! 9276: ! 9277: * config.subr: Allow $os to be empty. ! 9278: ! 9279: * function.c (lookup_static_chain): Check for 0 before inline function. ! 9280: ! 9281: * config.subr (pc532, minix): New alternatives. ! 9282: ! 9283: * configure (editing Makefile): Use cross-make. ! 9284: * Makefile.in (install-cross): Change dep to install-gnulib. ! 9285: ! 9286: Sat Aug 17 17:18:05 1991 Michael Tiemann (tiemann at cygint.cygnus.com) ! 9287: ! 9288: * All cplus-* files: Change the representation of the C++ ! 9289: inheritance lattice for types. There is no longer such a thing as a ! 9290: classtype_variant. Instead, types all have their own lattices ! 9291: accessed via their CLASSTYPE_ASSOC field. ! 9292: ! 9293: * cplus-tree.h (lang_type): Delete fields OFFSET, ! 9294: MAIN_CLASS_VARIANT, NEXT_CLASS_VARIANT, VIA_PUB_OR_VIRT. ! 9295: Rename field AS_ID_LIST to ID_AS_LIST, since it's a list. ! 9296: (CLASSTYPE_AS_ID_LIST): Renamed to CLASSTYPE_ID_AS_LIST. ! 9297: Add field ASSOC_AS_LIST, which is a TREE_LIST whose TREE_VALUE is ! 9298: the assoc for the type. ! 9299: (CLASSTYPE_VIA_*, SET_CLASSTYPE_VIAS): Deleted. ! 9300: (CLASSTYPE_OFFSET*): Deleted. ! 9301: (CLASSTYPE_N_BASECLASSES): Now uses type's assoc. TYPE_BASETYPES ! 9302: field is unused. Next change will make TYPE_BASETYPES hold the ! 9303: assoc field. ! 9304: (CLASSTYPE_VBASE_SIZE): Use slot in TYPE_LANG_SPECIFIC instead of ! 9305: sneaking it into the TREE_TYPE field of the basetypes. ! 9306: ! 9307: (ASSOC_TYPE): Deleted. Now use ASSOC_VALUE everywhere. ! 9308: (ASSOC_{BASETYPE,BASETYPES}): New macros. Both are operations on ! 9309: assocs and return assocs. ! 9310: (CLASS_ASSOC_BASETYPE): New macro. This performs roughly the same ! 9311: function that CLASSTYPE_BASECLASS used to, but it retains no assoc ! 9312: info in the type it returns. ! 9313: (ASSOC_NEXT_ASSOC): New macro used for traversing assoc chains built ! 9314: up by search routines. ! 9315: (ASSOC_VIA_{PUBLIC,VIRTUAL}): New macros for accessing inheritance ! 9316: information. CLASSTYPE_VIA_{PUBLIC,VIRTUAL} no longer used. ! 9317: (ASSOC_CID): New macro. ! 9318: ! 9319: (DECL_ANON_UNION_ELEM): Deleted. Now anonymous union decls are ! 9320: distinguished as FIELD_DECLs with NULL DECL_NAMEs and UNION_TYPE ! 9321: types. ! 9322: ! 9323: (DERIVED_FROM_P): New macro. Change calls that testing inheritance ! 9324: relationships (get_base_type and get_base_distance) to use this macro. ! 9325: ! 9326: * cplus-type2.c (basetype_or_else): Change interface to use/return an ! 9327: assoc instead of a type. Change name to base_assoc_or_else. ! 9328: ! 9329: * cplus-tree.c (build_classtype_variant): Deleted. ! 9330: (copy_type_lang_specific): Deleted. ! 9331: * all cplus-* files: Everything that used to use CLASSTYPE_OFFSET on ! 9332: types now uses ASSOC_OFFSET on assocs. ! 9333: ! 9334: * cplus-class.c (propagate_basetype_offsets): Change interface to use ! 9335: assocs instead of types. Change name to propagate_assoc_offsets. ! 9336: * cplus-search.c (get_base_type): Ditto; name changed to ! 9337: get_base_assoc. ! 9338: ! 9339: * cplus-cvt.c (convert_pointer_to): Change interface to use an assoc ! 9340: instead of a type. ! 9341: (convert_pointer_to_vbase): Ditto. ! 9342: * cplus-call.c (build_field_call): Ditto. ! 9343: * cplus-class.c (get_vfield_offset): Ditto. ! 9344: (build_method_call): Ditto. ! 9345: (maybe_fixup_vptrs): Ditto. ! 9346: * cplus-search.c (get_first_matching_virtual): Ditto. ! 9347: (get_virtuals_named_this): Ditto. ! 9348: (tree_needs_constructor_p): Ditto. ! 9349: (get_virtual_destructor): Ditto. ! 9350: (tree_has_any_destructor_p): Ditto. ! 9351: (get_baselinks): Ditto. ! 9352: (lookup_{field,fnfields}): Ditto. Also, use ASSOC_VBASE_MARKED ! 9353: instead of CLASSTYPE_MARKED2 to mark virtual basetypes that have ! 9354: been visited. ! 9355: (build_vbase_vtables_init): Ditto. ! 9356: ({build,free}_mi_matrix): Ditto. ! 9357: * cplus-init.c (expand_aggr_init_1): Ditto. ! 9358: (expand_aggr_vbase_init_1): Ditto. ! 9359: (build_virtual_init): Ditto. ! 9360: * cplus-class.c (build_class_init_list): Rewritten to build list with ! 9361: assoc entries instead of types. Also, use new macro ! 9362: ASSOC_BASEINIT_MARKED instead of CLASSTYPE_MARKED6. ! 9363: (finish_base_struct): New argument ASSOCS is the list of assocs that ! 9364: describe the basetypes of T. ! 9365: ! 9366: * cplus-tree.c (make_lang_type): Always initialize ! 9367: CLASSTYPE_VBASE_SIZE to integer_zero_node. To test if a class has ! 9368: virtual baseclasses, test CLASSTYPE_VBASECLASSES, not ! 9369: CLASSTYPE_VBASE_SIZE. ! 9370: ! 9371: * cplus-class.c (finish_struct): Rewritten to use assocs instead of ! 9372: types where appropriate. ! 9373: ! 9374: * cplus-search.c (get_base_distance): Change interface to use assocs ! 9375: or types. Also, PATH_PTR argument is now an assoc chain, not a ! 9376: TREE_LIST. Algorithm to find leftmost path is now more efficient. ! 9377: (compute_visibility): Uses assoc chain instead of TREE_LIST of ! 9378: types. ! 9379: (recursive_bounded_basetype_p): New function. ! 9380: (dfs_walk, dfs_* functions): Change to be called with assocs instead ! 9381: of types. ! 9382: (breadth_first_search, all bfs_*): Ditto. ! 9383: cplus-tree.c (reverse_path): New function. Like nreverse, but works ! 9384: on assoc chains. ! 9385: ! 9386: * cplus-class.c (build_vtable, prepare_fresh_vtable, ! 9387: modify_vtable_{entries,entry},): Change interfaces to use assocs ! 9388: instead of types. Use macro ASSOC_VTABLE_PATH_MARKED on the assocs ! 9389: instead of CLASSTYPE_MARKED3. Use macro ASSOC_NEW_VTABLE_MARKED on ! 9390: the assocs instead of CLASSTYPE_MARKED4. ! 9391: ! 9392: * cplus-dbxout.c: Now needs to know more about assocs. When assocs ! 9393: are put in the TYPE_BASETYPEs field, it should not need to know ! 9394: about lang_type. ! 9395: ! 9396: * cplus-decl.c (xref_tag): Rewritten to build proper assoc lists. No ! 9397: longer builds basetype lists. ! 9398: (finish_function): Make `flag_no_inline' really take effect. ! 9399: ! 9400: * cplus-tree.c (make_assoc): Changed for new assoc structure. The ! 9401: fields in assocs are now: VALUE (pointer to TYPE that this assoc is ! 9402: for), OFFSET (the byte offset of this basetype in the whole object), ! 9403: VTABLE (the virtual function table that should be used to initialize ! 9404: objects controlled by this assoc), VIRTUALS (the virtual functions ! 9405: to use for initializing VTABLE), BASETYPES (a TREE_VEC of basetypes ! 9406: that this assoc has, or NULL_TREE if none), NEXT_ASSOC (a temporary ! 9407: slot used to point to the next assoc in an assoc chain), ! 9408: VIA_{PUBLIC,VIRTUAL} bits saying whether this assoc is a basetype of ! 9409: its parent via public or virtual inheritance. ! 9410: ! 9411: * cplus-ptree.c (print_lang_type): Modified as necessary to cope with ! 9412: new inheritance structure. ! 9413: ! 9414: * cplus-search.c (get_base_type_1): This function was unused and ! 9415: wrong. Deleted. ! 9416: ! 9417: * cplus-tree.c (layout_basetypes): Take new arg ASSOCS. Layout the ! 9418: basetypes my modifying the assocs, not the types. ! 9419: (layout_vbasetypes): Ditto. ! 9420: ! 9421: * all cplus-* files: Removed dead code, unused variables, and change ! 9422: asserts where appropriate. ! 9423: ! 9424: * all cplus-* files: DECL_VIRTUAL_P is no longer used as a truth test ! 9425: for whether or not a function is virtual. Use a test for non-NULL ! 9426: DECL_VINDEX instead. ! 9427: ! 9428: Sat Aug 17 15:16:40 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 9429: ! 9430: * function.h (inline_function_decl): Declare it. ! 9431: * integrate.c: Include function.h; don't declare var here. ! 9432: ! 9433: * rtl.h (regno_reg_rtx): Declare it. ! 9434: ! 9435: * stmt.c (expand_end_case): ! 9436: When filling labelvec from case range, avoid overflow in i. ! 9437: ! 9438: Fri Aug 16 23:06:37 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 9439: ! 9440: * c-typeck.c (build_binary_op_nodefault): ! 9441: Take out warning added by recent changes. ! 9442: ! 9443: Fri Aug 16 22:00:09 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 9444: ! 9445: * function.c (inline_function_decl): New var. ! 9446: (lookup_static_chain): Decl is local if context is function being ! 9447: inlined. ! 9448: * integrate.c: Remove partially-completed previous change. ! 9449: (expand_inline_function): Set inline_function_decl. ! 9450: ! 9451: Fri Aug 16 21:41:10 1991 Michael Tiemann (tiemann at pogo.gnu.ai.mit.edu) ! 9452: ! 9453: * a29k.md (insv,extv): Changed POS / SIZE to POS / 8, since high ! 9454: order bit of BP selects half-word position for half-word ops. ! 9455: ! 9456: Fri Aug 16 18:52:35 1991 Jim Wilson (wilson at sphagnum.cygnus.com) ! 9457: ! 9458: * combine.c (distribute_links): Only put link on new insn if the ! 9459: insn uses the register. If first find an insn that sets the ! 9460: register but does not otherwise use it, then drop the link. ! 9461: ! 9462: * combine.c (distribute_links): Strip off SUBREG, ZERO_EXTRACT, ! 9463: etc. from the destination of the set before passing it to ! 9464: reg_mentioned_p and reg_referenced_p. ! 9465: ! 9466: Sat Aug 16 17:02:53 1991 Michael Tiemann (tiemann at cygint.cygnus.com) ! 9467: ! 9468: * cplus-pt.c (uses_template_parms): Run loop over _EXPR nodes from ! 9469: TREE_CODE_LENGTH-1 to 0, not from TREE_CODE_LENGTH. ! 9470: ! 9471: * cplus-decl.c (grokfndecl): Change `==' to `=' in assignment to ! 9472: `raises' ! 9473: (finish_decl): If FLAG_PIC is nonzero, leave initialized data in ! 9474: common space. ! 9475: ! 9476: Fri Aug 16 13:13:11 1991 James Van Artsdalen (james at bigtex.cactus.org) ! 9477: ! 9478: * reg-stack.c (current_function_returns_real): New variable. ! 9479: (reg_to_stack): Set it. ! 9480: (stack_reg_life_analysis): Use it. ! 9481: (emit_pop_insn): Return the new insn. ! 9482: (convert_regs): Pop any stack regs live at the end of the last basic ! 9483: block. ! 9484: ! 9485: Fri Aug 16 16:16:45 1991 Michael Tiemann (tiemann at pogo.gnu.ai.mit.edu) ! 9486: ! 9487: * tm-sparc.h (SELECT_SECTION): Don't put relocatable values into ! 9488: text space if generating position-independent code. ! 9489: ! 9490: Fri Aug 16 16:00:30 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 9491: ! 9492: * protoize.c (__flsbuf): Decl deleted; no need. ! 9493: [ultrix]: Include string.h, not strings.h. ! 9494: ! 9495: * function.c (instantiate_virtual_regs_1): Bug adding NEW to addr of X. ! 9496: ! 9497: Fri Aug 16 08:51:25 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 9498: ! 9499: * expr.c (expand_expr, case ABS_EXPR, MIN_EXPR, MAX_EXPR): Don't ! 9500: allow TARGET to be a hard reg because evaluating the comparison ! 9501: might clobber it. ! 9502: ! 9503: Thu Aug 15 23:38:04 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 9504: ! 9505: * tm-m68k.h (PRINT_OPERAND): Use asm_fprintf to print immed prefix. ! 9506: ! 9507: Thu Aug 15 23:36:12 1991 Micheal Tiemann (tiemann at pogo.gnu.ai.mit.edu) ! 9508: ! 9509: * cplus-decl.c (finish_enum): Remove last traces of Wood's mistaken ! 9510: changes for tag handling in C++. ! 9511: * cplus-class.c (finish_struct): Ditto. ! 9512: ! 9513: Tue Aug 13 06:12:18 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 9514: ! 9515: * jump.c (find_cross_jump): When avoiding CALL_INSNs, don't ! 9516: return a CODE_LABEL as a cross-jump point; use next_real_insn instead ! 9517: of next_nonnote_insn. ! 9518: ! 9519: * fold-const.c (optimize_bit_field_compare, merge_component_reference): ! 9520: Use mode_for_size to get mode for word; don't use SImode. ! 9521: * tree.c (build_index_type, build_index_2_type): Don't use SImode; ! 9522: get mode of SIZETYPE instead. ! 9523: ! 9524: * optabs.c (emit_cmp_insn): Use type of int instead of SImode for ! 9525: return from memcmp and bcmp. ! 9526: ! 9527: Mon Aug 12 17:54:55 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 9528: ! 9529: * stmt.c: Include recog.h. ! 9530: * stmt.c (expand_end_bindings): Expect abort to return void. ! 9531: (expand_end_case): Give tablejump whatever mode it wants. ! 9532: ! 9533: * integrate.c (integrate_type): New function. ! 9534: * c-typeck.c (build_binary_op_nodefault): Rewrite last change. ! 9535: ! 9536: * Makefile.in (install): Indirect through INSTALL_TARGET. ! 9537: (install-native): New name for old install target. ! 9538: (INSTALL_TARGET): New variable. ! 9539: * cross-make (INSTALL_TARGET): Override it. ! 9540: ! 9541: Mon Aug 12 17:25:48 1991 Michael Meissner (meissner at osf.org) ! 9542: ! 9543: * out-mips.c (toplevel, override_options, siginfo): If the OSF/1 ! 9544: SIGINFO signal is provided, invoke siginfo handler, which prints ! 9545: which file is being compiled, and runs ps on the compiler and it's ! 9546: parent. ! 9547: ! 9548: * make-decrose (CC, OLDCC): Define CC and OLDCC to be the same, so ! 9549: that tests within Makefile.in work as expected. ! 9550: (LIB2FUNCS_EXTRA): Put osf-main in the gnulib2 portion of the ! 9551: library, instead of the gnulib1 portion. ! 9552: ! 9553: Mon Aug 12 16:31:47 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 9554: ! 9555: * explow.c (expr_size): Fix typo. ! 9556: ! 9557: Mon Aug 12 14:27:31 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) ! 9558: ! 9559: * expr.c (expand_expr, case COND_EXPR): Fix typo in comment. ! 9560: In the singleton code, don't accept a hard register as a target if ! 9561: we are going to store into it before testing the condition because ! 9562: that evaluation may involve a subroutine call which might clobber it. ! 9563: ! 9564: * rtl.h (SCHED_GROUP_P): Fix typo in definition. ! 9565: ! 9566: Mon Aug 12 08:01:01 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 9567: ! 9568: * jump.c (find_cross_jump): Look at REG_EQUIV notes in addition to ! 9569: REG_EQUAL notes. ! 9570: (do_cross_jump): Remove REG_EQUAL or REG_EQUIV notes present on only ! 9571: one branch of the cross-jump so we don't get confused by them if we ! 9572: cross-jump again. ! 9573: ! 9574: Mon Aug 12 01:44:26 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) ! 9575: ! 9576: * unroll.c (unroll_loop): When naively unrolling loops, if the last ! 9577: jump insn is an unconditional jump, and it does not jump to the loop ! 9578: top, then it must be copied with the rest of the loop body. ! 9579: ! 9580: * rtl.h: Clean up documentation for uses of volatil and in_struct ! 9581: fields of an rtx. ! 9582: * gcc.texinfo: Document macros CONST_CALL_P, LABEL_PRESERVE_P, and ! 9583: SCHED_GROUP_P. Clean up documentation for uses of used, in_struct, ! 9584: and unchanging fields of an rtx. ! 9585: ! 9586: * final.c (final_scan_insn): In the ASM_OUTPUT_LOOP_ALIGN code, ! 9587: must verify that next exists before checking whether it is a label. ! 9588: ! 9589: Sun Aug 11 16:46:17 1991 James Van Artsdalen (james at bigtex.cactus.org) ! 9590: ! 9591: * i386.md (cmpstrsi): Enable it. Now uses REG as output, not cc0. ! 9592: Old cc0-output pattern remains for combining cmpstrsi & test pairs. ! 9593: ! 9594: Sun Aug 11 15:52:33 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 9595: ! 9596: * dbxout.c (dbxout_symbol): Handle var-length array with reference. ! 9597: ! 9598: * c-decl.c (xref_tag): Copy default mode from unsigned_type_node. ! 9599: * explow.c (expr_size): Get it from size_type. ! 9600: * reload1.c (allocate_reload_reg): No need to validate mode of ! 9601: reload_in if that value is a const_int. ! 9602: ! 9603: * expr.c (expand_builtin): Get value mode properly, for memcmp. ! 9604: ! 9605: Sun Aug 11 15:52:33 1991 Jim Wilson (wilson at cygint.cygnus.com) ! 9606: ! 9607: * dbxout.c (dbxout_symbol): DECL_ASSEMBLER_NAME is a tree, not a ! 9608: character string, so call IDENTIFIER_POINTER before printing it. ! 9609: ! 9610: * fold-const.c (fold): When converting foo++ == CONST to ++foo == ! 9611: CONST + INCR, the plus must have the same TREE_TYPE as the ! 9612: postincrement, not the comparison. ! 9613: ! 9614: Sat Aug 10 22:58:01 1991 Michael Meissner (meissner at osf.org) ! 9615: ! 9616: * mips.md (extendqihi2 define_split): Use SImode on shifts rather ! 9617: than HImode, and turn result register into SImode as well. ! 9618: ! 9619: Sat Aug 10 21:00:59 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) ! 9620: ! 9621: * calls.c (emit_call_1): New argument is_const. Set CONST_CALL_P ! 9622: true for the call_insn if is_const is true. ! 9623: (expand_call): Pass is_const to emit_call_1. ! 9624: * expr.c (emit_library_call): Pass no_queue to emit_call_1. ! 9625: Document that no_queue means that the function call is const. ! 9626: * local-alloc.c (validate_equiv_mem): Don't invalidate memory for ! 9627: const calls. ! 9628: * rtl.h: Update comments describing uses of rtl unchanging and ! 9629: in_struct bits. ! 9630: (CONST_CALL_P): New macro. True for a call_insn if it is calling ! 9631: a const function. Uses the unchanging bit. ! 9632: (SCHED_GROUP_P): New macro. True for an insn if it must be ! 9633: scheduled together with the previous insn. Uses the in_struct bit. ! 9634: * sched.c: Rewrite to use new SCHED_GROUP_P macro insead of ! 9635: RTX_UNCHANGING_P. ! 9636: (sched_analyze): Rewrite to use new CONST_CALL_P macro. ! 9637: ! 9638: * sched.c (schedule_block): Don't schedule a block with a volatile ! 9639: or traditional asm insn. There is currently no code to correctly ! 9640: handle dependencies for them. ! 9641: ! 9642: * combine.c (distribute_links): Fix typo in comment. ! 9643: ! 9644: Sat Aug 10 18:42:22 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 9645: ! 9646: * emit-rtl.c (operand_subword): Replace explicit SImode references ! 9647: with mode for BITS_PER_WORD bits. ! 9648: ! 9649: Sat Aug 10 14:17:08 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 9650: ! 9651: * calls.c (expand_call): Handle ARGS_GROW_DOWNWARD. ! 9652: ! 9653: * ns32k.md (call_value): Consistently realize function is operand 1. ! 9654: ! 9655: * cccp.c (do_include): Get current dir from nominal_fname. ! 9656: ! 9657: * expr.c (expand_builtin): Give cmpstr* a target in the mode it wants. ! 9658: * optabs.c (expand_cmp_insn): Likewise. ! 9659: ! 9660: Fri Aug 9 09:59:27 1991 Tom Wood (wood at dg-rtp.dg.com) ! 9661: ! 9662: * dwarfout.c (output_symbols_for_block): Fix typo in iterating over ! 9663: subblocks. ! 9664: ! 9665: * make-m88k{,dgux,luna}: Eliminate m88k-trace.asm. ! 9666: * tm-m88k.h, out-m88k.c: Make -mbig-pic a synonym for -fPIC. ! 9667: Delete -mtrace-function. ! 9668: ! 9669: * Makefile.in (CROSS_TOOLS): New variable. ! 9670: (gnulib1.null, gnulib2.ready): Depend on CROSS_TOOLS. ! 9671: (gnulib1.null): Use $(AR) $(AR_FLAGS). ! 9672: * cross-make (CROSS_TOOLS): Define as install-cross-tools. ! 9673: ! 9674: Fri Aug 9 15:21:16 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 9675: ! 9676: * optabs.c (emit_cmp_insn): Expect cmpstr* to have result operand. ! 9677: Test the sign of the result we get. ! 9678: i386.md needs to be changed. ! 9679: ! 9680: Fri Aug 9 11:09:22 1991 (Eric Youngdale at [email protected]) ! 9681: ! 9682: * make-cc1.com: Fix bug where the wrong program was being run to ! 9683: generate insn-attrtab.c, and, add DEBUG option, so that images can be ! 9684: linked to run under the debugger. ! 9685: ! 9686: Fri Aug 9 06:42:15 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 9687: ! 9688: * genemit.c (gen_split): Add "_fail:" label here too. ! 9689: ! 9690: * tree.h (STRIP_NOPS): Define macro here; add CONVERT_EXPR to list ! 9691: of operations to possibly ignore. ! 9692: * fold-const.c (STRIP_NOPS): Not here. ! 9693: * expr.c (strip_nops): Delete function. ! 9694: (string_constant): Use STRIP_NOPS macro instead of strip_nops function. ! 9695: ! 9696: * global-alloc.c (expand_preferences): New function. ! 9697: (global_alloc): Call it. ! 9698: ! 9699: Fri Aug 9 01:19:26 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) ! 9700: ! 9701: * optabs.c (emit_cmp_insn): Correct typo in spacing. ! 9702: ! 9703: * unroll.c: Correct typo in comment. Document that unrolling a ! 9704: loop by a multiple of the number of memory accesses is a win. ! 9705: (unroll_loop): New variable last_loop_insn, points to the last ! 9706: real insn in the loop, which will either be a jump or a barrier. ! 9707: Use last_loop_insn instead of assuming that PREV_INSN (loop_end) ! 9708: is that last real insn in the loop. ! 9709: Standardize comments printed to loop dump file when we can't ! 9710: unroll a loop, so that they all start with "Unrolling failure". ! 9711: No longer assumes that the insn before the backward jump is a ! 9712: compare unless HAVE_cc0. If not HAVE_cc0, then must copy this ! 9713: insn, and for loop_iterations == 1 case, can not delete this insn. ! 9714: If last_loop_insn is not a JUMP_INSN or BARRIER, then do not ! 9715: unroll the loop. ! 9716: (precondition_loop_p): Fail if loop_iteration_var is not live ! 9717: before loop_start. ! 9718: (copy_loop_body): Rewrite obsolete and misleading comment ! 9719: concerning the splitting of address givs. ! 9720: (back_branch_in_range_p): Correct typo in comment. No longer ! 9721: assumes that PREV_INSN (loop_end) is the backward branch at the ! 9722: end of the loop. ! 9723: (fold_rtx_mult_add): Rewrite to use simplify_binary_operation. ! 9724: (iteration_info): Fail if iteration variable is larger than ! 9725: HOST_BITS_PER_LONG, or if it does not have an integer mode. ! 9726: (find_splittable_givs): If an address giv was combined with ! 9727: another address giv, then we can only split the first giv if the ! 9728: second was actually reduced. ! 9729: (loop_iterations): New variable last_loop_insn, use instead of ! 9730: assuming that the last jump insn if PREV_INSN (loop_end). ! 9731: Correct typo in comment. ! 9732: ! 9733: Thu Aug 8 17:57:41 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 9734: ! 9735: * Makefile.in (gnulib1.null): Use *_FOR_TARGET variables. ! 9736: (TARGET_TOOLPREFIX): New variable. ! 9737: (AR_FOR_TARGET, AR_FOR_TARGET_FLAGS): New variables. ! 9738: (RANLIB_FOR_TARGET, RANLIB_TEST_FOR_TARGET): New variables. ! 9739: * cross-make: New file. ! 9740: * configure: Insert cross-make into Makefile. ! 9741: ! 9742: * tm-m68k.h (LEGITIMIZE_ADDRESS): Copy address before changing it. ! 9743: (COPY_ONCE): New macro, subroutine for LEGITIMIZE_ADDRESS. ! 9744: ! 9745: * toplev.c (main): Accept -g with warning if not supported. ! 9746: ! 9747: * Makefile.in (install-cross-tools): Do nothing unless have gcc-cross. ! 9748: (gnulib2.ready): Depend on install-cross-tools. ! 9749: ! 9750: Thu Aug 8 14:34:53 1991 Ken Raeburn (raeburn at watch.com) ! 9751: ! 9752: * expr.c (c_strlen): New function; determines strlen of string const. ! 9753: (expand_builtin, cases BUILT_IN_STRCMP, BUILT_IN_STRCPY): Call it ! 9754: instead of relying on TREE_STRING_LENGTH. For strcmp, optimize ! 9755: cases where two lengths are available, if at least one of them is ! 9756: constant. ! 9757: (expand_builtin, case BUILT_IN_MEMCMP): If alignment test fails, and ! 9758: function was really BUILT_IN_STRCMP, delete length parameter before ! 9759: expanding call. ! 9760: ! 9761: * tree.h (enum built_in_function): Added BUILT_IN_STRLEN. ! 9762: * c-decl.c (sizet_ftype_string): New variable, for strlen prototype. ! 9763: (init_decl_processing): Set it, and declare strlen and ! 9764: __builtin_strlen as built-in functions. Deleted variable `decl' ! 9765: since it was only assigned to, never read. ! 9766: * expr.c (expand_builtin, case BUILT_IN_STRLEN): Implement it. ! 9767: ! 9768: * cplus-decl.c (sizet_ftype_string, init_decl_processing): Copy ! 9769: changes from c-decl.c. Also initialize const_string_type_node. ! 9770: ! 9771: Thu Aug 8 14:34:53 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 9772: ! 9773: * c-decl.c (pushdecl): Just warn if trad. extern type is temporary. ! 9774: ! 9775: Wed Aug 7 15:16:55 1991 Jim Wilson (wilson at sphagnum.cygnus.com) ! 9776: ! 9777: * local-alloc.c (block_alloc): When converting a SCRATCH rtx to a ! 9778: REG rtx, must clear the `used' bit. ! 9779: ! 9780: Tue Aug 6 14:17:09 1991 Jim Wilson (wilson at wombat.gnu.ai.mit.edu) ! 9781: ! 9782: * stmt.c (expand_start_bindings): Fix typo in comment or spacing. ! 9783: * rtlanal.c (reg_referenced_between_p): Likewise. ! 9784: (reg_set_last): Likewise. ! 9785: * loop.c (make_loop_jump): Likewise. ! 9786: * longlong.h (UDIV_NEEDS_NORMALIZATION): Likewise. ! 9787: * local-alloc.c (update_equiv_regs): Likewise. ! 9788: * global-alloc.c (hard_reg_copy_preferences): Likewise. ! 9789: * fixcpp: Likewise. ! 9790: * tm-m68k.h (CONDITIONAL_REGISTER_USAGE): Likewise. ! 9791: * combine.c (reg_significant): Likewise. ! 9792: * calls.c (expand_call): Likewise. ! 9793: * cplus-tree.c (build_cplus_new): Likewise. ! 9794: ! 9795: * function.c (fixup_var_refs_insns): When emitting a move insn, ! 9796: don't put it between a CALL_INSN and its USE insns as this will ! 9797: break sched and reorg. Instead, put it before the USE insns. ! 9798: ! 9799: * combine.c (subst): Convert (ior (ashift A CX) (lshift A CY)) where ! 9800: CX+CY equals the mode size to (rotate A CX). ! 9801: ! 9802: * out-sparc.c (emit_move_sequence): For DImode constants, can not ! 9803: create a temporary register to hold the high part. ! 9804: (output_scc_insn): When in a delay slot, verify that NEXT_INSN (insn) ! 9805: really is the next insn. ! 9806: ! 9807: * sparc.md: Fix support for DImode constants. Two new patterns ! 9808: added, one for high:DI operators and one for lo_sum:DI operators. ! 9809: (*extend*): Rework these patterns. Don't accept memory input ! 9810: operands in the define_expands, as this gives better code. ! 9811: Delete patterns for combining two loads into a load and move; ! 9812: these are obsoleted by combiner improvements. ! 9813: Delete define_splits for splitting these obsolete patterns. ! 9814: (one_cmplsi2): Can not accept general_operand destinations, only ! 9815: register destinations. ! 9816: ! 9817: * tm-sparc.h (STACK_POINTER_OFFSET): Explain how value is derived, ! 9818: and compute in terms of another macro. ! 9819: (STRUCT_VALUE_OFFSET): Explain how value is derived. ! 9820: (FIRST_PARM_OFFSET): Fix typo in comment. ! 9821: ! 9822: * expr.c (MOVE_RATIO): Check for HAVE_movstrdi. ! 9823: (emit_block_move): Add code to use HAVE_movstrdi if present. ! 9824: (emit_push_insn): Likewise. ! 9825: ! 9826: * final.c (final_scan_insn): When insn fails constraint check, ! 9827: call fatal_insn_not_found instead of just aborting to make ! 9828: debugging easier. ! 9829: ! 9830: * tree.c (integer_all_onesp): Rewrite code to avoid shift by ! 9831: HOST_BITS_PER_INT which is undefined according to ANSI. Also, ! 9832: abort for precision values not handled, i.e. those greater than ! 9833: twice times HOST_BITS_PER_INT. ! 9834: ! 9835: Tue Aug 6 14:05:42 1991 James Van Artsdalen (james at bigtex.cactus.org) ! 9836: ! 9837: * i386.md (seq,sne): Use setb/setnb mnemonics instead of setc/setnc: ! 9838: GAS doesn't understand the latter yet. ! 9839: ! 9840: Tue Aug 6 13:01:53 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 9841: ! 9842: * Makefile.in (install-common): Use -d, not -f, for tooldir/bin. ! 9843: ! 9844: Tue Aug 6 10:37:02 1991 (Eric Youngdale at [email protected]) ! 9845: ! 9846: * make-cc1.com: Replacement file. This new version can build cc1plus ! 9847: and cc1obj in addition to cc1 (known on VMS systems as gcc-cc1plus.exe, ! 9848: gcc-cc1obj.exe and gcc-cc1.exe respectively). ! 9849: ! 9850: Tue Aug 6 06:30:09 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 9851: ! 9852: * cse.c (canon_hash): If a REG in an operand is equivalent to a ! 9853: constant, hash as if we had the constant. ! 9854: (exp_equiv_p): See if a REG and constant are equivalent. ! 9855: ! 9856: Tue Aug 6 03:59:16 1991 Ken Raeburn (raeburn at watch.com) ! 9857: ! 9858: * cplus-tree.c (make_deep_copy): Handle PARM_DECLs. ! 9859: ! 9860: * cplus-init.c (build_offset_ref): Use DECL_CHAIN, not TREE_CHAIN ! 9861: when trying to determine if a function is unique. ! 9862: ! 9863: * cplus-decl.c (start_decl): When constructing a decl tree for a ! 9864: function template, copy last_function_parms to permanent storage, ! 9865: and save it as the function argument list. Call build_lang_decl ! 9866: instead of build_decl, instead of duplicating the extra work it does. ! 9867: Set `overloaded' flag to 1. Call dont_forget_overload, so the ! 9868: template decl won't get discarded. ! 9869: Also deleted some commented-out code. ! 9870: ! 9871: * cplus-pt.c (uses_template_parms, cases VAR_DECL, FUNCTION_DECL): ! 9872: Give a warning if template parms are only used in places where they ! 9873: can't be resolved (e.g., return types or global or fixed-class ! 9874: variable types). ! 9875: (tsubst): Preserve storage qualifiers on type field, and pass it to ! 9876: layout_type if it has changed. ! 9877: (tsubst, case TEMPLATE_TYPE_PARM): Preserve storage qualifiers. ! 9878: (tsubst, case INTEGER_TYPE): Process min and max fields, if needed. ! 9879: (tsubst, case FUNCTION_DECL): Process arguments and result fields. ! 9880: (tsubst, case PARM_DECL): New branch. Handle parm list for ! 9881: FUNCTION_DECL nodes. ! 9882: (tsubst, case TREE_LIST): Copy TREE_PARMLIST flag from source. ! 9883: Don't bother processing TREE_CHAIN field if it is void_type_node. ! 9884: (tsubst, cases POINTER_TYPE, REFERENCE_TYPE): Preserve storage ! 9885: qualifiers. ! 9886: (tsubst, case FUNCTION_TYPE): Eliminate recursion for simple common ! 9887: cases for values and context fields. Preserve storage qualifiers. ! 9888: (tsubst, default case): Print node type of correct variable in error ! 9889: message. ! 9890: (instantiate_template): Set function_maybepermanent_obstack to ! 9891: permanent, along with the others, and restore old value after tsubst ! 9892: call. This permits the PARM_DECL case to work. ! 9893: ! 9894: Mon Aug 5 22:44:51 1991 Michael Tiemann (tiemann at cygint.cygnus.com) ! 9895: ! 9896: * cplus-tree.h (struct pending_inline): Add new field `deja_vu' to ! 9897: mark if this pending_inline has already been seen. ! 9898: * cplus-lex.c (do_pending_inlines): Set DEJA_VU when seen. ! 9899: * cplus-lex.c (reinit_parse_for_method, cons_up_default_function): ! 9900: Initialize DEJA_VU to 0. ! 9901: * cplus-decl2.c (mark_inline_for_output): Don't add DECL to ! 9902: PENDING_INLINES if it's already been seen. ! 9903: * cplus-pt.c (instantiate_template): Initialize DEJA_VU to 0. ! 9904: ! 9905: * cplus-method.c (do_inline_function_hair): Change some assignments ! 9906: to asserts, since they seem to be copying values that are already ! 9907: there. ! 9908: ! 9909: Mon Aug 5 22:23:34 1991 Michael Meissner (meissner at osf.org) ! 9910: ! 9911: * genemit.c (gen_expand, main): Change FAIL macro to be a simple ! 9912: goto _fail, and initialize the return value to 0 in the prologue. ! 9913: This avoids a useless warning message that the MIPS C compiler ! 9914: gives if a return is encountered inside of a do { ... } while (0). ! 9915: ! 9916: Mon Aug 5 21:28:06 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 9917: ! 9918: * cplus-xref.c (GNU_xref_file): Treat VMS like USG. ! 9919: ! 9920: * optabs.c (expand_binop): In libcall, use actual mode of op1. ! 9921: ! 9922: * c-typeck.c (build_binary_op_nodefault): ! 9923: In signed versus unsigned compare warning, note promotions of unsigned. ! 9924: ! 9925: * c-parse.y (simple_if): Allow error instead of lineno_labeled_stmt. ! 9926: (if_prefix): New subroutine of simple_if. ! 9927: ! 9928: * gnulib2.c (__ashldi3, __ashrdi3, __lshldi3, __lshrdi3): ! 9929: Accept second arg as int, not long long. ! 9930: ! 9931: Sun Aug 4 22:31:53 1991 Michael Tiemann (tiemann at cygint.cygnus.com) ! 9932: ! 9933: * cplus-except.c (cplus_expand_start_except): Set up variables ! 9934: `current_exception_name_as_rtx' and `current_exception_parms_as_rtx'. ! 9935: These variables are used to factor out calls to `expand_assignment' ! 9936: and allow instead calls to `emit_move_insn', which takes about 1/2x ! 9937: the compilation time when called directly. ! 9938: (various places): Use `store_expr' instead of `expand_assignment' ! 9939: when reasonable. ! 9940: (cplus_expand_reraise): Take advantage of above changes. ! 9941: (setup_exception_throw_decl): This is where *_as_rtx variables are ! 9942: initialized. ! 9943: ! 9944: * cplus-input.c (getch): Rewritten slightly to help GNU C optimizer. ! 9945: * cplus-lex.c (yylex): In IDENTIFIER case, pre-test condition that ! 9946: `getch' tests, and call `getc' directly when possible. This cuts ! 9947: calls to `getch' by a factor of 4 for typical C++. ! 9948: ! 9949: * cplus-class.c (add_virtual_function): Memoize the first 256 ! 9950: virtual function table index nodes (0x80000001, 0x80000002, etc.). ! 9951: (finish_struct): Use `size_int' instead of `build_int_2' when we ! 9952: know the int will not be changed in place (such as the size value of ! 9953: virtual function tables). ! 9954: * cplus-decl2.c (finish_table): Same change as for `finish_struct'. ! 9955: * cplus-tree.c (layout_basetypes): Same change. ! 9956: * cplus-decl.c (init_decl_processing): Use `size_int' to initialize ! 9957: `size_zero_node' and `size_one_node'. ! 9958: ! 9959: * cplus-tree.h (TREE_OVERLOADS_ARROW): Define this. ! 9960: * cplus-parse.y (operator_name): Set TREE_OVERLOADS_ARROW where ! 9961: appropriate. ! 9962: * cplus-type2.c (build_x_arrow): Use TREE_OVERLOADS_ARROW and ! 9963: reorganize the logic for better speed. ! 9964: * cplus-ptree.c (print_lang_type): Print when TREE_OVERLOADS_ARROW. ! 9965: ! 9966: Sun Aug 4 16:44:54 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 9967: ! 9968: * rtlanal.c (reg_referenced_p): Properly handle ASM_OPERANDS. ! 9969: ! 9970: * cse.c (cse_insn): When recording this_insn_cc0, build a COMPARE ! 9971: rtl if SRC is a floating-point value. ! 9972: ! 9973: Sun Aug 4 16:16:11 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 9974: ! 9975: * fold-const.c (fold): Don't compute shift with negative count. ! 9976: * cse.c (simplify_binary_operation): Likewise. ! 9977: ! 9978: Sat Aug 3 15:57:55 1991 (Eric Youngdale at [email protected]) ! 9979: ! 9980: * tm-vms.h (ASM_OUTPUT_EXTERNAL): Modify to always write the ! 9981: correct size of the data object, if it is known. ! 9982: (ASM_OUTPUT_COMMON): Modify to select the const or the data section ! 9983: as appropriate. This definition shadows a definition in tm-vax.h ! 9984: (const_section): Change data type to void. ! 9985: ! 9986: Sat Aug 3 15:02:40 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 9987: ! 9988: * integrate.c (save_for_inline_copying): Clear constant pool after ! 9989: saving constants into the insns. ! 9990: ! 9991: * expr.c (expand_builtin, case BUILT_IN_MEMCPY): Ensure items ! 9992: passed to emit_block_move are valid MEMs. ! 9993: ! 9994: * recog.c (offsettable_address_p): Don't change INTVAL of a CONST_INT ! 9995: within an address; that CONST_INT is likely shared and may be used ! 9996: elsewhere in the address. ! 9997: ! 9998: * stmt.c (expand_end_stmt_expr): Don't try to copy result to ! 9999: REG; it might be BLKmode. ! 10000: ! 10001: * reload.c (MATCHES): Don't consider two things equal if they have ! 10002: side effects. ! 10003: ! 10004: * combine.c (try_combine): When replacing SET_DEST inside a PARALLEL, ! 10005: don't replace it with something that has a side effect. ! 10006: ! 10007: Sat Aug 3 13:17:53 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 10008: ! 10009: * c-decl.c (init_decl_processing): ! 10010: If traditional, omit builtins with names that don't start with _. ! 10011: Also omit if not optimizing. ! 10012: ! 10013: * Makefile.in (combine.o, emit-rtl.o, expr.o, final.o, tree.o): ! 10014: Depend on gvarargs.h. ! 10015: ! 10016: Fri Aug 2 11:00:10 1991 (Eric Youngdale at [email protected]) ! 10017: ! 10018: Merge some VMS changes from 1.39 that did not make it to 2.0. ! 10019: These changes will prohibit GCC from addressing external symbols with ! 10020: indirect addressing modes, to be compatible with sharable ! 10021: image libraries under VMS. ! 10022: ! 10023: * tm-vms.h: Define NO_EXTERNAL_INDIRECT_ADDRESS, define ! 10024: ENCODE_SEGMENT_INFO to make use of hook in varasm.c ! 10025: ! 10026: * tm-vax.h: Provide alternative definitions of INDIRECTABLE_CONSTANT_P, ! 10027: INDIRECTABLE_CONSTANT_ADDRESS_P, and INDIRECTABLE_ADDRESS_P, which ! 10028: are used when NO_EXTERNAL_INDIRECT_ADDRESS is defined. Also, define ! 10029: INDIRECTABLE_CONSTANT_ADDRESS_P. Modify definitions of ! 10030: GO_IF_NONINDEXED_ADDRESS, and GO_IF_LEGITIMATE_ADDRESS to work with ! 10031: either alternative. ! 10032: ! 10033: Fri Aug 2 21:54:55 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 10034: ! 10035: * loop.c (check_dbra_loop): Fix typo in arg to single_set. ! 10036: ! 10037: * reload1.c (choose_reload_regs): Verify that all registers in a ! 10038: group still contain the desired value. ! 10039: (emit_reload_insns): Set reg_reloaded_contents and reg_reloaded_insn ! 10040: for all registers in a group. ! 10041: ! 10042: * combine.c (set_significant): Handle a complex SET_DEST correctly. ! 10043: ! 10044: Fri Aug 2 17:12:24 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 10045: ! 10046: * tree.c (build_array_type): Make pointer type before array type. ! 10047: ! 10048: * Makefile.in (install-common): Never install gcc if gcc-cross exists. ! 10049: ! 10050: Fri Aug 2 14:58:42 1991 Michael Meissner (meissner at osf.org) ! 10051: ! 10052: * make-mips (CC, OLDCC): Comment why we need to define CC and OLDCC ! 10053: to get around fixed size table complaints in the MIPS compiler. ! 10054: ! 10055: Fri Aug 2 14:08:01 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 10056: ! 10057: * configure (writing VPATH definition): Avoid temp file. ! 10058: ! 10059: * tm-i860.h (MAX_PARM_BOUNDARY): Defined. ! 10060: (GO_IF_LEGITIMATE_ADDRESS): Add parens around & operator. ! 10061: (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Use sp, not r3 (that's fp). ! 10062: * i860.md (movsf): Don't reload high address part if already loaded. ! 10063: (cmplesf, cmpledf, cmpgesf, cmpgedf): Set CC_NEGATED; swap operands. ! 10064: * out-i860.c (strict_single_insn_op_p): ! 10065: Fix criterion for loading high half. ! 10066: (output_load_address): #if 0 since not used. ! 10067: ! 10068: Fri Aug 2 01:46:39 1991 James Van Artsdalen (james at bigtex.cactus.org) ! 10069: ! 10070: * i386.md (swapdf): Don't condition on TARGET_387. ! 10071: (bit set/complement/clear insns): Don't use if -m486. ! 10072: (bit test insns): Don't allow a MEM operand. ! 10073: ! 10074: Thu Aug 1 19:05:31 1991 Matthew Self (mself at next.com) ! 10075: ! 10076: * local-alloc.c (block_alloc): Record regs_live_at for last insn ! 10077: in basic block too. Otherwise REG_UNUSED regs may overlap hard ! 10078: regs set in the last insn of the basic block. ! 10079: ! 10080: Thu Aug 1 19:02:57 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 10081: ! 10082: * emit-rtl.c (gen_rtx): Don't return frame_pointer_rtx (e.g.) if ! 10083: mode is not Pmode. ! 10084: ! 10085: * emit-rtl.c (operand_subword): Don't write explicit divide by 0; ! 10086: some (broken) compilers give errors for it. ! 10087: ! 10088: * m68k.md (udivhi3): One pattern had constraint of "d" with ! 10089: const_int_operand. ! 10090: (FPA insns): Operand 1's constraints allow memory and constants, but ! 10091: the predicate is register_operand; change to general_operand. ! 10092: ! 10093: Thu Aug 1 13:41:47 1991 Michael Tiemann (tiemann at cygint.cygnus.com) ! 10094: ! 10095: * cplus-lex.c (do_pending_inlines, process_next_inline): Zero out ! 10096: the DECL_PENDING_INLINE_INFO field after processing it. ! 10097: (store_pending_inline): Don't delay processing a virtual function, ! 10098: since it needs to be processed in case the virtual function table is ! 10099: needed. ! 10100: ! 10101: * cplus-decl2.c (mark_inline_for_output): If DECL has pending inline ! 10102: info, cause it to be processed. ! 10103: ! 10104: * cplus-pt.c: Removed extraneous declaration of `permanent_obstack'. ! 10105: Also, added comment for `reinit_parse_for_template'. ! 10106: ! 10107: * cplus-typeck.c (mark_addressable): For FUNCTION_DECL case, also ! 10108: test DECL_PENDING_INLINE_INFO. ! 10109: ! 10110: Thu Aug 1 13:26:12 1991 Michael Meissner (meissner at osf.org) ! 10111: ! 10112: * mips-tfile.c (main): If input file is not specified, use the same ! 10113: file for both input and output. If renaming output file and rename ! 10114: fails, copy the file. ! 10115: (free_multiple_pages): New function. ! 10116: ! 10117: * tm-decrose.h (ASM_FINAL_SPEC): Add this to call mips-tfile if ! 10118: using the MIPS assembler. ! 10119: ! 10120: * tm-mips.h (ASM_FINAL_SPEC): Add this to call mips-tfile unless ! 10121: using gas. ! 10122: (TARGET_VERSION): Do not put __DATE__ in the output. ! 10123: ! 10124: * make-mips (BISONFLAGS): Add -l to bison flags because the MIPS ! 10125: based compilers have problems with #line. ! 10126: (CC): Define in terms of $(OLDCC) so the USE_HOST macros work. ! 10127: (EXTRA_PASSES): Build mips-tfile and mips-tdump. ! 10128: (Makefile): Explicitly use sh to invoke configure. ! 10129: ! 10130: * make-decrose (EXTRA_PASSES): Build collect. ! 10131: (Makefile): Explicitly use sh to invoke configure. ! 10132: ! 10133: Thu Aug 1 12:22:17 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 10134: ! 10135: * cccp.c (directive_table, node_type): Add #include_next. ! 10136: (do_include): Support #include_next. ! 10137: (finclude): New arg DIRPTR. All callers changed. ! 10138: ! 10139: * reload1.c (reload_as_needed): Check live_known before accessing ! 10140: basic_block_head. ! 10141: ! 10142: Thu Aug 1 11:47:37 1991 Michael Meissner (meissner at osf.org) ! 10143: ! 10144: * gcc.c (compilers): Add new spec %A, which expands ASM_FINAL_SPEC. ! 10145: This option is added after all other arguments to the assembler. It ! 10146: is for the MIPS port to run a cleanup program after the assembler ! 10147: finishes, by having ASM_FINAL_SPEC be "\n mips-tfile args..." ! 10148: (set_spec): If name is 'asm_final', set the asm_final_spec. ! 10149: (process_command): print out asm_final_spec for -dumpspecs. ! 10150: (do_spec_1): Expand %A to be ASM_FINAL_SPEC. ! 10151: (validate_all_switches): look at any switches handled in ! 10152: ASM_FINAL_SPEC. ! 10153: ! 10154: Thu Aug 1 07:42:37 1991 Tom Wood (wood at dg-rtp.dg.com) ! 10155: ! 10156: * dwarfout.c (element_list_attribute): AT_element_list is a BLOCK4. ! 10157: ! 10158: Wed Jul 31 17:42:40 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 10159: ! 10160: * jump.c (jump_optimize): In "if (...) x = 1; else {...} if (x) ...": ! 10161: Don't assume that SYMBOL_REFs are always non-zero. ! 10162: Handle operations other than EQ and NE. ! 10163: Handle conditional RETURN properly. ! 10164: ! 10165: * out-a29k.c (print_operand, case 'e'): When writing LXn, use number ! 10166: of last label in function. ! 10167: (output_prolog): Fix missing arg in ADD in a29k_first_epilogue_insn. ! 10168: ! 10169: Wed Jul 31 13:41:37 1991 Tom Wood (wood at dg-rtp.dg.com) ! 10170: ! 10171: * sdbout.c (sdbout_parms): Don't crash if MEM address is a MEM. ! 10172: ! 10173: Wed Jul 31 12:36:37 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 10174: ! 10175: * fixincludes: New variable INCLUDES specifies input dir. ! 10176: ! 10177: * Makefile.in (install-common): Add dummy elt to EXTRA_PASSES. ! 10178: Fix typo in test. ! 10179: ! 10180: * Makefile.in (install-cross-tools): Use /. in args to test -d. ! 10181: (cccp.o, dbxout.o, c-plus-*): Added missing dependencies. ! 10182: ! 10183: * c-common.c: Don't include rtl.h--that was unmodular. ! 10184: ! 10185: * make-i386v (INSTALL): Define this. ! 10186: ! 10187: Wed Jul 31 07:38:12 1991 Tom Wood (wood at dg-rtp.dg.com) ! 10188: ! 10189: * Makefile.in (LIB2FUNCS_EXTRA): Extra C and assembler files for ! 10190: gnulib2. ! 10191: * make-m88k*: Put the assembler files in gnulib2 and eliminate use ! 10192: of gnulib1. ! 10193: ! 10194: Tue Jul 30 20:21:41 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 10195: ! 10196: * stddef.h (WCHAR_T): ! 10197: Test _WCHAR_T_, __WCHAR_T, _T_WCHAR_ and ___int_wchar_t_h. ! 10198: ! 10199: * tm-i386isc.h (RETURN_POPS_ARGS): Caller pops the struct value addr. ! 10200: ! 10201: * cccp.c (default_include): Search local dir, system, then standard. ! 10202: ! 10203: * Makefile.in (USE_HOST_MALLOC, USE_HOST_OBSTACK): ! 10204: Don't depend on which C compiler is in use. ! 10205: ! 10206: * reload1.c (reload): Use pseudoreg to compute spill_indirect_levels. ! 10207: ! 10208: * c-decl.c (start_function): Don't take arg types from builtin. ! 10209: (duplicate_decls): Cancel builtin function if new arg types differ. ! 10210: Don't take arg types from buiiltin. ! 10211: ! 10212: Tue Jul 30 18:45:39 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 10213: ! 10214: * reload.c (decompose): Don't blow up for constants; they are safe. ! 10215: ! 10216: Tue Jul 30 15:49:34 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 10217: ! 10218: * dbxout.c (dbxout_parms): Don't crash if MEM address is a MEM. ! 10219: ! 10220: * Makefile.in (install-common): Don't lose if EXTRA_PASSES is empty. ! 10221: Don't install gcc if gcc-cross exists. ! 10222: (install-cross-tools): Fix typos. ! 10223: Avoid doing cd -- use absolute file names. ! 10224: (gcc-cross.o): Rule deleted. ! 10225: (gcc-cross): Build gcc, then copy it. ! 10226: ! 10227: Tue Jul 30 15:37:25 1991 Michael Tiemann (tiemann at cygint.cygnus.com) ! 10228: ! 10229: * cplus-init.c (build_vec_delete): Use `size_binop' when building up ! 10230: the array end boundary. ! 10231: ! 10232: Tue Jul 30 10:03:54 1991 Michael Meissner (meissner at osf.org) ! 10233: ! 10234: * tm-mips.h (DOLLARS_IN_IDENTIFIERS): Define to be 1. ! 10235: ! 10236: Mon Jul 29 18:56:33 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 10237: ! 10238: * reload.c (refers_to_regno_for_reload_p): New function. ! 10239: (push_reload, find_dummy_reload, immune_p): Use ! 10240: refers_to_regno_for_reload_p instead of refers_to_regno_p. ! 10241: ! 10242: * cse.c (fold_rtx): Don't make shifts wider than object. ! 10243: ! 10244: Mon Jul 29 17:17:55 1991 Michael Collison (collison at osf.org) ! 10245: ! 10246: * configure: Added entry for mmax-osfrose (Multimax with ns32k ! 10247: running OSF/1). ! 10248: ! 10249: Mon Jul 29 14:51:32 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 10250: ! 10251: * Makefile.in (SYMLINK): New variable. ! 10252: (install-cross-tools): Make symlinks if possible. ! 10253: Otherwise, for executables, indirect to tooldir with a shell script. ! 10254: (install-native): Install gcc-cross as bin/gcc under tooldir. ! 10255: ! 10256: * Makefile.in (USE_HOST_ALLOCA): ! 10257: Generate nothing if don't need separate alloca. ! 10258: (USE_HOST_OBSTACK, USE_HOST_MALLOC): New variables. ! 10259: (HOST_LIBS): Use them. ! 10260: (HOST_PREFIX_1): Make a dummy file with this name, ! 10261: for cross-compiling for a machine that needs no separate alloca, etc. ! 10262: ! 10263: * c-parse.y (stmts): Accept either labels or unlabeled statements. ! 10264: (lineno_labeled_stmt): New nonterminals. ! 10265: (stmt_or_label, lineno_stmt_or_label): New nonterminals. ! 10266: (stmts): Use lineno_stmt_or_label. ! 10267: (stmt): Don't allow labels at this level. ! 10268: Use lineno_labeled_stmt in place of lineno_stmt. ! 10269: ! 10270: * cccp.c (default_include): Get rid of extra #endif. ! 10271: Use CROSS_COMPILE, not CROSS. ! 10272: ! 10273: * make-i386mach: New file. ! 10274: * configure (i386-mach): Use that file. ! 10275: ! 10276: Mon Jul 29 09:10:13 1991 Tom Wood (wood at dg-rtp.dg.com) ! 10277: ! 10278: * tm-m88kluna.h (SYSTEM_INCLUDE_DIR): Define (also MACH). ! 10279: ! 10280: Sun Jul 28 16:15:39 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 10281: ! 10282: * cccp.c (default_include): Use SYSTEM_INCLUDE_DIR. ! 10283: Delete special cases for MACH, UNOS. ! 10284: * tm-i386mach.h, tm-sun3mach.h, tm-crds.h (SYSTEM_INCLUDE_DIR): Define. ! 10285: ! 10286: * cccp.c (default_include): Use CROSS_INCLUDE_DIR if cross-compiler. ! 10287: * Makefile.in (cccp.o): Pass a definition for CROSS_INCLUDE_DIR. ! 10288: ! 10289: * Makefile.in (gnulib1.null): New target. ! 10290: (install-common, install-common-headers, install-cross-tools): ! 10291: (install-cross-rest, install-float-h-cross): New targets. ! 10292: (install-float-h): New target. ! 10293: (install-cross, install-headers): Use them. ! 10294: (tooldir): New variable. ! 10295: (EXTRA_PASSES): New variable. ! 10296: ! 10297: * sdbout.c (plain_type_1): Don't record the size in sdb_type_size ! 10298: unless a tag is output. ! 10299: ! 10300: * Makefile.in (install-cross): Install specs by copying. ! 10301: Install either gcc or gcc-cross, whichever exists. ! 10302: (native): Remove gcc from deps. ! 10303: (start.encap): Add gcc to deps. ! 10304: (all.cross): Add gcc-cross to deps. ! 10305: (gcc-cross): Like gcc rule except different output file name. ! 10306: (gcc-cross.o): Likewise. ! 10307: ! 10308: * Makefile.in (EXTRA_PASSES): New variable. ! 10309: Used for machines which have extra passes to run. ! 10310: (install-cross): Install those programs. ! 10311: (native): Compile them. ! 10312: ! 10313: * c-parse.y: Support `foo:' before a close brace. ! 10314: (label): New nonterminal. ! 10315: (stmt): Use that. Treat a label as a statement in itself. ! 10316: ! 10317: * Makefile.in (gnulib*.portable): Rules deleted. ! 10318: (GNULIB1, GNULIB2): Point directly at gnulib1, gnulib2. ! 10319: (gnulib): Use GNULIB1, GNULIB2 directly both as deps ! 10320: and to specify the input files. ! 10321: (gnulib1.conv): Renamed from gnulib1.convert; no longer phony. ! 10322: (gnulib*.target): Rules deleted. ! 10323: make-hp9k320 (GNULIB1): Use gnulib1.conv. ! 10324: (LIBCONVERT): Override. ! 10325: ! 10326: * move-if-change: Use -f with rm and mv. ! 10327: ! 10328: * Makefile.in (gnulib2.ready): No longer phony. ! 10329: ! 10330: Sat Jul 27 13:03:50 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 10331: ! 10332: * combine.c (can_combine_p): Don't use NEXT_INSN, in previous change. ! 10333: ! 10334: * Makefile.in (class-c, objective-c): New targets. ! 10335: ! 10336: * tm-i386.h (ASM_OUTPUT_ALIGN_CODE): Define it. ! 10337: (ASM_OUTPUT_LOOP_ALIGN): Use ASM_OUTPUT_ALIGN_CODE. ! 10338: * tm-i386gas.h, tm-i386vgas.h (ASM_OUTPUT_ALIGN_CODE): Override it. ! 10339: (ASM_OUTPUT_LOOP_ALIGN): Definition deleted. ! 10340: ! 10341: * fixincludes (memvar.h): Make two defs of CAT, one ANSI and one trad. ! 10342: ! 10343: * expmed.c (emit_store_flag): Set ICODE only after CODE is right. ! 10344: ! 10345: Sat Jul 27 06:45:32 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 10346: ! 10347: * flow.c (insn_dead_p): Don't clobber NEEDED while ensuring that we ! 10348: don't delete insns that set the frame or arg pointer. ! 10349: ! 10350: * flow.c (flow_analysis, find_basic_blocks, propagate_block): ! 10351: Use GET_RTX_CLASS. ! 10352: ! 10353: Fri Jul 26 08:18:08 1991 Tom Wood (wood at dg-rtp.dg.com) ! 10354: ! 10355: * sdbout.c: Use <syms.h> for USG and provide a definition of ! 10356: T_VOID if none existed. Use ./gsyms.h for non-USG systems. ! 10357: * gsyms.h: Renamed from syms.h. ! 10358: ! 10359: Fri Jul 26 22:47:53 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 10360: ! 10361: * cccp.c (macroexpand): Fix error message syntax. ! 10362: ! 10363: * Makefile.in (gnulib2.target): Add semicolon. ! 10364: ! 10365: Fri Jul 26 18:17:36 1991 Michael Meissner (meissner at pogo.gnu.ai.mit.edu) ! 10366: ! 10367: * make-mips (CC): Bump -Wf,-XNg option to 1500 to allow the MIPS ! 10368: compiler to compile cc1plus. ! 10369: ! 10370: Fri Jul 26 14:42:35 1991 Tom Wood (wood at dg-rtp.dg.com) ! 10371: ! 10372: * c-parse.y (yylex): Don't use mbtowc to translate L'\0'. ! 10373: ! 10374: * tm-m88ksvr4.h (CPP_SPEC): Specify SVR4 pre-assertions. ! 10375: ! 10376: Fri Jul 26 09:53:53 1991 Michael Meissner (meissner at pogo.gnu.ai.mit.edu) ! 10377: ! 10378: * Makefile.in (cplus_expr.o): Add missing dependencies, so cc1plus ! 10379: can be built without first building cc1. ! 10380: ! 10381: Fri Jul 26 07:30:51 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 10382: ! 10383: * combine.c (can_combine_p): Can't combine if DEST is used in an ! 10384: insn in the range (succ, i3). ! 10385: ! 10386: * expmed.c (store_bit_field): Don't use insv if the mode of its ! 10387: input is narrower than the width of the field. ! 10388: (store_fixed_bit_field): Handle value with MODE_FLOAT mode. ! 10389: (extract_bit_field): Don't use extzv/extv if its output mode is ! 10390: narrower that width of field. ! 10391: (extract_bit_field): Handle returning MODE_FLOAT mode. ! 10392: ! 10393: * reorg.c (steal_delay_list_from_target): Add new arg PNEW_THREAD. ! 10394: Instead of redirecting jump, return its target in *PNEW_THREAD. ! 10395: (fill_slots_from_thread): Pass &NEW_THREAD to ! 10396: steal_delay_list_from_target. ! 10397: ! 10398: Thu Jul 25 21:57:42 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) ! 10399: ! 10400: * sched.c: Correct tiemann's email address. ! 10401: (schedule_block): Note that the values of leftover REG_DEAD notes ! 10402: are meaningless. ! 10403: (new_insn_dead_notes): If find an instruction that both uses and ! 10404: sets dest, then no new REG_DEAD note is needed. ! 10405: (update_links): When handling dest of last insn, no new REG_DEAD ! 10406: note is needed if the last insn also uses its dest. ! 10407: ! 10408: Thu Jul 25 18:15:33 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 10409: ! 10410: * flow.c (regno_clobbered_at_setjmp): Don't blow up if no basic blocks. ! 10411: ! 10412: Thu Jul 25 16:55:57 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 10413: ! 10414: * cse.c (invalidate, cse_insn): Don't use HASHREG directly. ! 10415: (HASH): Substitute HASHREG in. ! 10416: (HASHREG): Deleted. ! 10417: ! 10418: * tm-i386mach.h: New file. ! 10419: * configure (i386-mach): Use that. ! 10420: ! 10421: * tm-i386isc.h: New file, copied from 1.40. ! 10422: ! 10423: * i386.md (jump, indirect_jump, tablejump, return): ! 10424: Use ASM_OUTPUT_ALIGN_CODE. ! 10425: * tm-i386gas.h, tm-i386vgas.h (ASM_OUTPUT_LOOP_ALIGN): ! 10426: Override the usual definition. ! 10427: ! 10428: * rtl.h (FUNCTION_FLAGS_USES_PIC_OFFSET_TABLE): Fix typo. ! 10429: ! 10430: Thu Jul 25 16:25:52 1991 Tom Wood (wood at dg-rtp.dg.com) ! 10431: ! 10432: * out-m88k.c (legitimize_address): Note use of addressing base. ! 10433: (m88k_layout_frame): Establish PIC addressing base as needed. ! 10434: ! 10435: * tm-m88kdgux.h (GPLUSPLUS_INCLUDE_DIR): Specify. ! 10436: ! 10437: Thu Jul 25 07:54:36 1991 Michael Tiemann (tiemann at cygint.cygnus.com) ! 10438: ! 10439: * rtl.h (FUNCTION_FLAGS_USES_PIC_OFFSET_TABLE): Defined. ! 10440: ! 10441: * integrate.c (expand_inline_function): Propagate the value of ! 10442: FUNCTION_FLAGS_USES_PIC_OFFSET_TABLE. ! 10443: ! 10444: * function.h (struct function): Add new field USES_PIC_OFFSET_TABLE ! 10445: to structure. Leave it to md files to initialize this field. ! 10446: * expr.h (current_function_uses_pic_offset_table): New declaration. ! 10447: * function.c ({save,restore}_tree_status): Save and restore ! 10448: CURRENT_FUNCTION_USES_PIC_OFFSET_TABLE to/from this slot. ! 10449: * out-sparc.c (legitimize_pic_address): Set ! 10450: CURRENT_FUNCTION_USES_PIC_OFFSET_TABLE when appropriate. ! 10451: (finalize_pic): If the current function does not use the PIC offset ! 10452: table, there's no need to emit the PIC prologue. ! 10453: ! 10454: Wed Jul 24 13:54:41 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 10455: ! 10456: * tm-m68k.h (NOTICE_UPDATE_CC): ! 10457: Calls clear status even if value in address reg. ! 10458: ! 10459: * tm-i386gas.h, tm-i386vgas.h (ASM_OUTPUT_ALIGN_CODE): Align with NOPs. ! 10460: ! 10461: * i386.md (andsi3): Don't use movzbl if op1 can't support it. ! 10462: ! 10463: Wed Jul 24 07:47:59 1991 Michael Tiemann (tiemann at cygint.cygnus.com) ! 10464: ! 10465: * cplus-decl.c (finish_decl): Don't build a cleanup for an variable ! 10466: that is TREE_EXTERNAL. ! 10467: ! 10468: Tue Jul 23 20:48:23 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 10469: ! 10470: * make-mips: Delete rules for saber C. ! 10471: * Makefile.in (STAGESTUFF, gnulib2.ready): Undo last change. ! 10472: ! 10473: * tm-vax.h (LIB_SPEC): Supply missing close braces. ! 10474: ! 10475: Tue Jul 23 14:03:10 1991 Michael Meissner (meissner at osf.org) ! 10476: ! 10477: * protoize.c (toplevel): If FULL_PROTOTYPES is defined, assume that ! 10478: the system provides full prototypes, and include stdlib.h and ! 10479: unistd.h. ! 10480: (toplevel): If _POSIX_SOURCE is defined, wait takes a pointer to an ! 10481: int, even if the system is otherwise BSD. ! 10482: (toplevel): If NO_CONST_IN_SYSCALL and __STDC__ is defined, assume ! 10483: the system takes char *'s instead of const char *'s. ! 10484: (process_aux_info_file, edit_file): Always pass 3 arguments to open, ! 10485: to allow the NO_CONST_IN_SYSCALL macro to properly cast the ! 10486: arguments. ! 10487: ! 10488: * make-decrose (ALL): Make sure Makefile is rebuilt if either ! 10489: Makefile.in or make-decrose changes. ! 10490: (BUILD, SYSTEM_INCLUDES, LDFLAGS): Add BUILD variable to retarget ! 10491: which build is used. ! 10492: (CPP_ABORT): Don't define abort=fancy_abort here, do it in ! 10493: tm-mips.h. ! 10494: (INSTALL): Use installbsd program, since install uses System V ! 10495: semantics on OSF/1. ! 10496: (LANGUAGES): Rename collect-osf to collect. ! 10497: (CFLAGS, XCFLAGS): Make CFLAGS use standard args and use XCFLAGS to ! 10498: add additional arguments. ! 10499: (libdir, bindir, mandir): Define to current install values. ! 10500: (cplus-lex.o): Work around problems with 1.39 bootstrap compiler ! 10501: producing bad stabs for certain inlines. ! 10502: (osf-main.c): Add a simple G++ constructor/destructor to gnulib. ! 10503: ! 10504: * make-mips (ALL): Make Makefile depend on Makefile.in and ! 10505: make-mips. ! 10506: (CFLAGS, XCFLAGS): Make CFLAGS use standard args and use XCFLAGS to ! 10507: add additional arguments. ! 10508: (CC): Add -Wf,-XNg500 switch to compile with due to the MIPS ! 10509: compiler having fixed size tables. ! 10510: (SABER_*): Add rules to run saber-C. ! 10511: ! 10512: * mips.md (movsi_ulw): Allow unaligned register->register moves, ! 10513: which is caused by the optimizer, and generate the normal reg move ! 10514: code. Also, turn loads from the stack into normal moves. ! 10515: (movsi_usw): Turn stores into the stack into normal moves. ! 10516: (call, call_value): Turn into a define_expand which takes three ! 10517: arguments, to make Saber happier. ! 10518: ! 10519: * tm-mips.h (abort macro): Define abort to be saber_stop if running ! 10520: under Saber C. ! 10521: (__PTR_TO_INT, __INT_TO_PTR): Define as casts if running on a MIPS ! 10522: machine instead of with subtraction, in an attempt to quiet Saber C. ! 10523: (ASM_MODIFY_SPEC): Run mips-tfile after the assembler, needs ! 10524: corresponding gcc.c change to enable. ! 10525: ! 10526: * tm-decrose.h (ASM_SPEC): Pass -v switch to gas as well as mips ! 10527: assembler. ! 10528: (ASM_MODIFY_SPEC): Run mips-tfile if -mmips-as. ! 10529: (LINK_SPEC): Pass -v switch to linker. ! 10530: (LIB_SPEC): Redefine as just -lc. ! 10531: (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Undefine, use standard ! 10532: libdir, bindir, and mandir in Makefile now. ! 10533: (FULL_PROTOTYPES, NO_CONST_IN_SYSCALL): Define to get protoize ! 10534: to compile cleanly. ! 10535: ! 10536: * osf-main.c (new file): Provide simple constructor, destructor ! 10537: capability to be linked into gnulib. ! 10538: ! 10539: * collect-osf.c (various): General rewrite to improve speed and ! 10540: portability. ! 10541: ! 10542: * Makefile.in (CPLUS_OBJS): If CPLUS_INPUT is defined to be ! 10543: cplus-input.o, compile it separately to work around problems with ! 10544: bootstraping when it is included in cplus-lex.c. ! 10545: (STAGESTUFF): Use $(LANGUAGES) instead of hard coded list of ! 10546: languages, so make-xxx file can override, and provide others. ! 10547: (gnulib2.ready): Make gnulib2 depend on all LANGUAGES targets, so ! 10548: that if a target needs something else built, such as mips-tfile, it ! 10549: will be. ! 10550: (mostlyclean): Add missing -f to rm. ! 10551: (install-dir): Use test to see if the directory exists before trying ! 10552: to create it, and fail if the mkdir fails. ! 10553: (install-headers): ditto. ! 10554: (stage?, risky-stage?): ditto. ! 10555: (install-cross): Install collect and mips-tfile if they are present. ! 10556: ! 10557: * mips-tfile.c (toplevel, main): Add -I file option, which renames ! 10558: the original output file to the given file. ! 10559: ! 10560: * cplus-lex.c (toplevel): Include <assert.h> instead of "assert.h" ! 10561: in order to avoid problems when including cplus-input.c, which also ! 10562: uses <assert.h>. ! 10563: ! 10564: * cplus-pt.c (toplevel): Move include of config.h before obstack.h ! 10565: in case config.h defines some macros obstack.h uses such as ! 10566: __PTR_TO_INT. ! 10567: ! 10568: Tue Jul 23 13:15:43 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 10569: ! 10570: * xm-i386.h, xm-i860.h, xm-spur.h, xm-tahoe.h: Use __builtin_alloca. ! 10571: ! 10572: Tue Jul 23 12:26:01 1991 Michael Tiemann (tiemann at cygint.cygnus.com) ! 10573: ! 10574: * function.c (instantiate_virtual_regs_1): Change dubious code that ! 10575: used to assign NEW to XEXP (x, 1) regardless of whether ! 10576: validate_change accepted it to instead set XEXP (x, 0) back to OLD. ! 10577: I.e., if the rtx is out of range and OBJECT is NULL, don't make any ! 10578: change at all. ! 10579: ! 10580: * out-sparc.c (compute_frame_size): If a function has any ! 10581: stack-local objects, it's frame size is non-zero and space must be ! 10582: reserved for the register window. ! 10583: ! 10584: * loop.c (loop_optimize): Use get_max_uid to compute max_uid_for_loop. ! 10585: ! 10586: * fold-const.c (size_int): Extend SIZE_TABLE's range from ! 10587: 0..HOST_BITS_PER_INT-1 to 0..2*HOST_BITS_PER_INT. ! 10588: ! 10589: * integrate.c (expand_inline_function): Add minor efficiency ! 10590: hack to not free all the temp slots as parameters are passed ! 10591: from "caller" to "callee". ! 10592: ! 10593: * integrate.c (expand_inline_function): If the inline function ! 10594: returns its value via a structure_value_addr, we must prepare for ! 10595: this to take place, even if the value is ignored by the caller. ! 10596: ! 10597: * tm-decstatn.h (SIZE_TYPE): Define this to be "unsigned int". ! 10598: ! 10599: * emit-rtl.c (try_split): If `split_insns' actually returns a SEQ ! 10600: which is isomorphic to PAT, return TRIAL. ! 10601: ! 10602: * out-sparc.c (eligible_for_epilogue_delay): FP register moves are ! 10603: only eligible for leaf-function epilogue delay slots. ! 10604: ! 10605: Tue Jul 23 11:52:50 1991 Michael Meissner (meissner at geech.gnu.ai.mit.edu) ! 10606: ! 10607: * dbxout.c (dbxout_symbol): Correct typo in getting static member ! 10608: names. The problem is DECL_ASSEMBLER_NAME returns a tree, and not a ! 10609: char *. ! 10610: ! 10611: Tue Jul 23 07:10:41 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 10612: ! 10613: * varasm.c (immed_double_const): Use CONST_INT if MODE fits within ! 10614: HOST_BITS_PER_INT, not BITS_PER_WORD. ! 10615: ! 10616: Mon Jul 22 21:37:03 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 10617: ! 10618: * fold-const.c (fold): Always preserve type after using const_binop. ! 10619: ! 10620: Mon Jul 22 18:34:55 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 10621: ! 10622: * reload1.c (reload): Fix typo in condition for reg_equiv_address ! 10623: being set from reg_equiv_memory_loc; had X instead of XEXP (X, 0). ! 10624: ! 10625: Mon Jul 22 15:25:48 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 10626: ! 10627: * gcc.c (process_command): -xnone turns off any -x option. ! 10628: ! 10629: * tree.c (copy_chain): Deleted. ! 10630: * integrate.c (copy_decl_tree): Use copy_list and copy_node. ! 10631: ! 10632: Mon Jul 22 11:35:47 1991 Michael Tiemann (tiemann at pogo.gnu.ai.mit.edu) ! 10633: ! 10634: * tree.c, tree.h: Fix typos in Jul 22 merge. ! 10635: ! 10636: Mon Jul 22 08:51:47 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 10637: ! 10638: * jump.c (thread_jumps): Don't set CHANGED if the jump's label isn't ! 10639: changing. ! 10640: ! 10641: Mon Jul 22 02:37:23 1991 Michael Tiemann (tiemann at pogo.gnu.ai.mit.edu) ! 10642: ! 10643: * version.c: Bumped to 1.94 because of significant changes to ! 10644: cplus-* files. ! 10645: ! 10646: Sun Jul 21 18:45:57 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 10647: ! 10648: * toplev.c (rest_of_compilation): ! 10649: Save and restore DECL_INITIAL if we use save_for_inline_copying. ! 10650: * integrate.c (save_for_inline_copying): Really copy DECL_INITIAL. ! 10651: Calling integrate_decl_tree doesn't do it; deleted that call. ! 10652: (copy_decl_tree): New function. ! 10653: ! 10654: * integrate.c (integrate_decl_tree): Renamed from copy_decl_tree. ! 10655: (integrate_parm_decls): Renamed from copy_parm_decls. ! 10656: ! 10657: * tree.c (copy_chain): New function. ! 10658: ! 10659: Sun Jul 21 06:43:23 1991 James Van Artsdalen (james at bigtex.cactus.org) ! 10660: ! 10661: * i386.md (tstsi): Add comment noting potential -m486 enhancement. ! 10662: (SImode push): With -m486, don't push from MEM. ! 10663: (addsi3): Don't use lea for three operand add if -m486. ! 10664: (ashlsi3): Don't use lea for shift of 1 if -m486. ! 10665: (zero_extendhisi2,zero_extendqihi2,zero_extendqisi2): If dest is ! 10666: %eax, or if -m486, AND is faster than MOVZX. ! 10667: ! 10668: Sun Jul 21 06:27:33 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 10669: ! 10670: * expmed.c (store_fixed_bit_field): Pass actual bit position (including ! 10671: offset) to get_best_mode; also limit mode size to BITS_PER_WORD. ! 10672: Use failure of get_best_mode to indicate that field spans word ! 10673: boundary. ! 10674: Pass actual bit position to store_split_bit_field. ! 10675: (store_split_bit_field): Accept actual bit position, hence handing ! 10676: bitpos > BITS_PER_WORD. ! 10677: Abort if BITPOS and BITSIZE don't cross exactly one word boundary. ! 10678: Pass offset to store_fixed_bit_field; if register, use operand_subword; ! 10679: else adjust offset for second word. ! 10680: (extract_{fixed,split}_bit_field): Likewise. ! 10681: ! 10682: Sun Jul 21 06:11:55 1991 Michael Tiemann (tiemann at cygint.cygnus.com) ! 10683: ! 10684: * All cplus-* files: DECL_VIRTUAL_P is no longer applied to ! 10685: FUNCTION_DECLs. Instead, to test if a function is virtual or not, ! 10686: it suffices to test whether its DECL_VINDEX is non-NULL. We use ! 10687: ERROR_MARK_NODE as the placeholder for a FUNCTION_DECL we know will ! 10688: be virtual, but for which we don't yet know the actual index. ! 10689: ! 10690: * cplus-decl.c (define_function): Don't set up DECL_ASSEMBLER_NAME ! 10691: until after having the chance to call through PFN. Since `pushdecl' ! 10692: now keys off of DECL_ASSEMBLER_NAME, we don't want to create ! 10693: inadvertent aliases between builtin and library functions. ! 10694: ! 10695: * cplus-typeck.c (build_modify_expr): We don't need to build a ! 10696: SAVE_EXPR for a WITH_CLEANUP_EXPR. ! 10697: (unary_complex_lvalue): For good measure, know how to deal with a ! 10698: WITH_CLEANUP_EXPR inside a SAVE_EXPR. ! 10699: ! 10700: * cplus-pt.c (uses_template_parms): Add handler for ARRAY_TYPE. ! 10701: ! 10702: * cplus-method.c (do_inline_function_hair): Use TYPE_METHODS instead ! 10703: of CLASSTYPE_METHOD_VEC for traversing all methods when looking for ! 10704: inline functions. ! 10705: ! 10706: * cplus-class.c (finish_struct_methods): Fix fencepost error if ! 10707: there were no member functions except for ctors/dtors. ! 10708: ! 10709: Sun Jul 21 06:19:01 1991 James Van Artsdalen (james at bigtex.cactus.org) ! 10710: ! 10711: * tree.h, output.h (current_function_calls_longjmp): New variable. ! 10712: * function.c (top level): Define it. ! 10713: (push_function_context): Save it. ! 10714: (pop_function_context): Restore it. ! 10715: (init_function_start): Initialize it. ! 10716: ! 10717: * calls.c (expand_call): Set current_function_calls_longjmp if ! 10718: this call is to `longjmp'. ! 10719: ! 10720: * flow.c, global-alloc.c: Include output.h so that ! 10721: FRAME_POINTER_REQUIRED can use current_function_calls_*. ! 10722: * Makefile.in (flow.o,global-alloc.o): Includes output.h. ! 10723: ! 10724: * rtl.h (FUNCTION_FLAGS_CALLS_LONGJMP): New macro. ! 10725: ! 10726: * integrate.c (initialize_for_inline): Record ! 10727: current_function_calls_lonjmp in `function_flags'. ! 10728: (output_inline_function): Set current_function_calls_longjmp if ! 10729: the inline code calls longjmp. ! 10730: ! 10731: * function.h (struct function): New field `calls_longjmp'. ! 10732: ! 10733: * out-i386.c (simple_386_epilogue): Add function description. ! 10734: Return 0 if NON_SAVING_SETJMP && `setjmp' is called in function. ! 10735: ! 10736: * tm-i386v.h (NON_SAVING_SETJMP): New macro. ! 10737: (FRAME_POINTER_REQUIRED): New macro. ! 10738: ! 10739: Sat Jul 20 12:25:56 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 10740: ! 10741: * tm-m88k.h (OPTIMIZATION_OPTIONS): Don't change flag_signed_bitfields. ! 10742: ! 10743: * cccp.c (include_defaults) Use LOCAL_INCLUDE_DIR macro instead ! 10744: of "/usr/local/include". Provide default definition. ! 10745: ! 10746: * cccp.c (include_defaults) Added INCLUDE_DEFAULTS macro to ! 10747: provide complete control over default include directories. ! 10748: Delete the special case for VMS. ! 10749: * xm-vms.h (INCLUDE_DEFAULTS): Defined. ! 10750: ! 10751: * proto-man: Renamed from proto-unproto.1. ! 10752: ! 10753: * final.c (final_scan_insn): Do ASM_OUTPUT_LOOP_ALIGN only for real loop. ! 10754: ! 10755: Sat Jul 20 05:34:13 1991 Michael Tiemann (tiemann at cygint.cygnus.com) ! 10756: ! 10757: * tree.h (tree_type): Use the MAXVAL slot for TYPE_METHODS. ! 10758: * cplus-class.c (finish_struct): Methods are now chained with ! 10759: TREE_CHAIN and placed in the TYPE_METHODS of their _TYPE node. ! 10760: * cplus-dbxout.c (dbxout_type_methods): Use this fact, instead of ! 10761: using more C++-specific knowledge. ! 10762: ! 10763: * cplus-decl.c (init_decl_processing): Variable ! 10764: `const_ptr_type_node' was not being initialized. Same with ! 10765: `const_string_type_node'. ! 10766: ! 10767: * tree.h (DECL_PRINT_NAME): Marked for death. ! 10768: (DECL_ASSEMBLER_NAME): Changed from a char* to a tree node. ! 10769: All front-end files changed as necessary. ! 10770: ! 10771: * cplus-tree.h (DECL_ORIGINAL_NAME): Deleted. Now we use ! 10772: DECL_NAME. ! 10773: (DECL_NAME): No longer means the mangled name. Now we use ! 10774: DECL_ASSEMBLER_NAME for that purpose. ! 10775: All cplus-* files changed as necessary. ! 10776: ! 10777: * cplus-tree.c (lang_printable_name): Use a ring-buffer to hold ! 10778: printable names instead of DECL_PRINT_NAME slot of a _DECL node. ! 10779: ! 10780: * collect2.c: #define COLLECT, and let config.h provide definition ! 10781: of macros. ! 10782: ! 10783: See file ChangeLog.3.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.