|
|
1.1.1.17! root 1: Wed Feb 21 00:25:39 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 2: ! 3: * Version 1.37.1 released. ! 4: ! 5: * tm-mips.h (ASM_OUTPUT_ADDR_VEC_ELT and ASM_OUTPUT_ADDR_DIFF_ELT): ! 6: Start label names with $. ! 7: ! 8: Sun Feb 18 13:58:04 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 9: ! 10: * tm-mips.h (ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL): ! 11: Start name with $. ! 12: ! 13: * integrate.c (expand_inline_function): Round up size of parm_map. ! 14: ! 15: Sat Feb 17 20:56:05 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 16: ! 17: * tm-hp9k320.h (CPP_SPEC): Remove _INCLUDE__STDC__. ! 18: ! 19: Sun Feb 11 20:11:25 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 20: ! 21: * Version 1.37 released. ! 22: ! 23: * c-decl.c (complete_array_type): In permanent type, add perm nodes. ! 24: ! 25: * out-i386.c (print_operand_address): Handle a MULT by itself. ! 26: ! 27: Sat Feb 10 14:35:03 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 28: ! 29: * ns32k.md (movsf): Convert double constant to float. ! 30: ! 31: Fri Feb 9 00:02:43 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 32: ! 33: * c-decl.c (duplicate_decls): Don't lose alignment of OLDDECL. ! 34: ! 35: * cccp.c (handle_directive): Keep comments by copying them explicitly. ! 36: ! 37: * cccp.c (rescan): When scanning for open-paren after macro name, ! 38: discard comments if appropriate. ! 39: ! 40: Thu Feb 8 14:19:41 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 41: ! 42: * c-decl.c (build_enumerator): Error if value outside range of int. ! 43: ! 44: * tm-hp9k320.h (CPP_SPEC): Define _INCLUDE__STDC__ if not traditional. ! 45: * tm-hp9k310.h: Missing file brought back. ! 46: ! 47: Mon Feb 5 12:49:36 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 48: ! 49: * reload1.c (spill_hard_reg): Return 1 if reg is explicitly used. ! 50: (reload): Cancel dummy reloads using regs subject to spill. ! 51: ! 52: Sun Feb 4 12:37:00 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 53: ! 54: * tm-3b1g.h: New file. ! 55: * config.gcc (3b1g, 3b1-gas): New alternative. ! 56: ! 57: * tm-att386.h (ASM_OUTPUT_COMMON): Don't use rounded size. ! 58: ! 59: Fri Feb 2 17:04:37 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 60: ! 61: * integrate.c (copy_for_inline): Use real width of rtunion in bcopy. ! 62: * emit-rtl.c (copy_rtx_if_shared): Likewise. ! 63: ! 64: * assert.h (assert) [__STDC__]: Use comma operator to avoid warning. ! 65: ! 66: * c-decl.c (grokdeclarator): Traditionally change return type float ! 67: to double. ! 68: ! 69: * cse.c (predecide_loop_entry): Give up unless simple jump enters loop. ! 70: ! 71: Thu Feb 1 02:02:21 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 72: ! 73: * tm-convex.h (FASCIST_ASSEMBLER, VTABLE_USES_MASK, VINDEX_MAX): ! 74: New definitions to control c++ files. ! 75: ! 76: * reload1.c (inc_for_reload): Forget reg_last_reload_reg ! 77: for the reg being inc'd. ! 78: ! 79: * limits.h (INT_MIN): Define so it has type `int', not unsigned. ! 80: (CHAR_MIN, SCHAR_MIN, SHRT_MIN): Put arens around value. ! 81: ! 82: Wed Jan 31 12:54:07 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 83: ! 84: * tm-mips.h (FUNCTION_PROLOGUE): Use CONST_OK_FOR_LETTER_P to see ! 85: if can update fp in one addiu insn. ! 86: ! 87: * reload1.c (reload): Reject fixed regs when finding groups to spill. ! 88: ! 89: * assert.h (assert) [NDEBUG]: Make value nonempty. ! 90: (assert) [no NDEBUG]: Split into a version for __STDC__ and one not. ! 91: (_assert) [__STDC__]: Pass expression and file separately to _eprintf. ! 92: (_assert) [not __STDC__]: Likewise, but implemented differently. ! 93: * gnulib.c (__eprintf): Handle 3 args plus format string. ! 94: ! 95: * tm-i386.h (STACK_BOUNDARY): Define it. ! 96: ! 97: Sat Jan 27 17:58:30 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 98: ! 99: * hard-params.c: Use explicit file name to include self. ! 100: ! 101: Fri Jan 26 01:38:29 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 102: ! 103: * cccp.c (rescan): Set beg_of_line when string ends at newline. ! 104: (skip_quoted_string): Don't swallow newline that ends a string. ! 105: (handle_directive): No need to back up here. ! 106: Pass LIMIT as second arg to skip_quoted_string. ! 107: ! 108: * cccp.c (rescan): If traditional, end preproc number after expt sign. ! 109: ! 110: Thu Jan 25 01:57:34 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 111: ! 112: * loop.c (general_induction_var): Reject widening multiply. ! 113: ! 114: * i860.md (andsi3): Truncate xop2 constant to 16 bits. ! 115: ! 116: Wed Jan 17 12:33:52 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 117: ! 118: * tm-mips.h (CC1_SPEC): Don't complain about -g. ! 119: ! 120: * c-typeck.c (build_compound_expr): Delete special case ! 121: that ignores expressions without side effects. ! 122: ! 123: * stor-layout.c (layout_type): Struct requires BLKmode if any field ! 124: crosses a word boundary. ! 125: ! 126: * reload1.c (choose_reload_regs): Refix Sequent problem correctly. ! 127: ! 128: Tue Jan 16 12:03:42 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 129: ! 130: * c-parse.y (unary_expr): If sizeof or alignof gets a comma expr ! 131: which has array or function type, coerce it to pointer. ! 132: ! 133: * fold-const.c (combine): Propagate carry when subtracting from 0. ! 134: ! 135: * fold-const.c (fold): For x++==const, do arith in type of const. ! 136: ! 137: Mon Jan 15 19:24:04 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 138: ! 139: * cexp.y (exp): Accept unary +. ! 140: ! 141: Sun Jan 14 12:18:49 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 142: ! 143: * fold-const.c (lshift_double, rshift_double, lrotate_double): ! 144: (rrotate_double): Don't shift more than width of operand. ! 145: ! 146: Fri Jan 12 18:50:43 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 147: ! 148: * recog.c (next_insns_test_no_inequality): Return 1 at end of rtl. ! 149: ! 150: Thu Jan 11 14:09:47 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 151: ! 152: * cccp.c (skip_if_group): Skip strings even if -traditional. ! 153: (handle_directive): Likewise, when handling copy_command. ! 154: ! 155: * i860.md (movsf): Ensure F to f is reloaded via r. ! 156: ! 157: Wed Jan 10 15:03:08 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 158: ! 159: * Makefile [3b1]: Propose redefinition of CCLIBFLAGS. ! 160: ! 161: * reload1.c (choose_reload_regs): Break down hairy if expression. ! 162: ! 163: * loop.c (loop_skip_over): Do nothing if don't find expected compare. ! 164: ! 165: Sun Jan 7 00:58:06 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 166: ! 167: * config.gcc: Add i386-mach. ! 168: * xm-i386.h: Use built-in alloca if compiling with GCC. ! 169: ! 170: * optabs.c (emit_cmp_insn): Set CLASS after MODE. ! 171: ! 172: Sat Jan 6 15:33:32 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 173: ! 174: * out-mips.c (function_arg, function_arg_advance): ! 175: Define typedef for CUMULATIVE_ARGS, and use it here. ! 176: ! 177: * cccp.c (main): Recognize `.C' for -M. ! 178: ! 179: * c-parse.y (yylex): Put 0 at end of wide string. ! 180: ! 181: * tm-mips.h (CC1_SPEC): Don't distort meaning of -O. ! 182: ! 183: Fri Jan 5 12:12:31 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 184: ! 185: * gcc.c (link_command_spec): If LIBS_COMPILED_WITH_GCC, gnulib is last. ! 186: ! 187: Thu Jan 4 23:58:59 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 188: ! 189: * Makefile (c-parse.tab.o): Add explicit compilation cmd. ! 190: ! 191: Wed Jan 3 00:27:53 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 192: ! 193: * Makefile (install): Use nested foreach-loop to expand va*.h. ! 194: ! 195: Mon Jan 1 19:36:49 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 196: ! 197: * expr.c (store_one_arg): Round size up for move_block_to_reg. ! 198: (expand_call): Round up when emitting USE insns. ! 199: * stmt.c (assign_parms): Round size up for move_block_from_reg. ! 200: ! 201: * reload1.c (alter_reg): Undo big-endian conversion from ! 202: assign_stack_local. ! 203: ! 204: Sun Dec 31 20:10:52 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 205: ! 206: * tree.h (struct tree_common): Declare `code' as char, not int. ! 207: ! 208: Thu Dec 28 13:49:43 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 209: ! 210: * gnulib.c (__fixunsdfsi): Turn large numbers to small for conversion. ! 211: ! 212: * Makefile (includes): Set variable LIB. Run from `./'. ! 213: ! 214: Wed Dec 27 18:54:25 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 215: ! 216: * Makefile (CCLIBFLAGS): Add -O. ! 217: (gnulib): Remove -O here. ! 218: (HARD_PARAMS_FLAGS): Like CCLIBFLAGS but no -O. ! 219: (hard-params, hard-params.o): Use that. ! 220: ! 221: * loop.c (can_eliminate_biv_p, eliminate_biv): If add_val non zero, ! 222: it must be a constant or register. ! 223: ! 224: Mon Dec 25 00:02:31 1989 Torbj|rn Granlund (tege at zevs.sics.se) ! 225: ! 226: * tm-pyr.h (FIXUNS_TRUNC_LIKE_FIX_TRUNC): Should not be defined. ! 227: The cvtdw instruction causes a trap for floating point values ! 228: that are out-of-range for a signed int. ! 229: ! 230: * out-pyr.c (has_direct_base): Don't accept 0 as a base, if there ! 231: is a register displacement. This is a workaround of a bug in ! 232: /bin/as. (/bin/as changes things like "cmpw 8(reg),0(reg)" into ! 233: "cmpw 8(reg),(reg)", which is invalid assembler.) ! 234: ! 235: Sun Dec 24 11:51:52 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 236: ! 237: * expr.c (emit_move_insn): Lossage validating mem addr of constant. ! 238: ! 239: * varasm.c (record_constant_1): Missing `return' in ADDR_EXPR case. ! 240: ! 241: Sat Dec 23 10:54:22 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 242: ! 243: * ns32k.md (extract byte from register): Delete #if conditionals. ! 244: Assume 32532 always. ! 245: (adjust stack): Likewise. ! 246: ! 247: Thu Dec 21 10:24:05 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 248: ! 249: * i860.md (load DF constant to reg): Typo: extra percent sign. ! 250: (floatsidf2): Two words of a double were backwards. ! 251: ! 252: * reload1.c (alter_reg): ! 253: Always do big-endian correction on slot address. ! 254: ! 255: * gnulib.c (__fixunsdfsi): Don't rely on host compiler for unsigned. ! 256: ! 257: * i386.md (float push recognizers): Don't pop fpreg if not dead. ! 258: ! 259: Sun Dec 17 12:13:37 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 260: ! 261: * tm-hp9k320.h (CPP_PREDEFINES): Add __hp9000s300, _HPUX_SOURCE. ! 262: ! 263: Sat Dec 16 17:49:30 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 264: ! 265: * loop.c (strength_reduce): When writing insn to init a biv, ! 266: update life range of reg used to init it. ! 267: ! 268: * combine.c (try_combine): Do combine (y = x, x = y). ! 269: ! 270: * loop.c (strength_reduce): When finding initial value of a biv, ! 271: notice assignments to subregs of it, etc. ! 272: ! 273: Fri Dec 15 00:42:31 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 274: ! 275: * m68k.md (fpa float and float-trunc): Accept general_operand. ! 276: ! 277: * integrate.c (expand_inline_function): ! 278: Put caller's line number after inline stuff. ! 279: Put callee's line number before parm manipulation. ! 280: ! 281: * If local-alloc assumes a reg does not conflict, ! 282: don't use it as dummy reload. ! 283: * local-alloc.c (wipe_dead_reg): Add REG_UNSET note. ! 284: * reload.c (find_dummy_reload): Check for that note. ! 285: ! 286: * vax.md (casesi): New pattern for super-trivial cse case. ! 287: ! 288: * jump.c (jump_optimize): Realize that more things can follow ! 289: the NOTE_INSN_FUNCTION_END note. Change in two places, ! 290: for optimized and one for unoptimized. ! 291: ! 292: Sat Dec 9 15:21:07 1989 Richard M. Stallman (rms at ccvi) ! 293: ! 294: * expr.c (expand_expr): For conversion ops, copy CONST_INT to reg ! 295: to avoid lossage on VOIDmode in convert_move or expand_float. ! 296: * optabs.c (expand_float): Abort if FROM has VOIDmode. ! 297: ! 298: * final.c (final_scan_insn): Delete unused label. ! 299: ! 300: Thu Dec 7 01:42:30 1989 Richard M. Stallman (rms at ccvi) ! 301: ! 302: * sdbout.c (MAKE_LINE_SAFE): Ensure arg is > sdb_begin_function_line. ! 303: (sdbout_begin_block, sdbout_end_block, sdbout_end_function): Use it. ! 304: ! 305: * jump.c (jump_optimize): Leave block-beg, block-end notes ! 306: in old context when swapping two ranges of insns. ! 307: (squeeze_block_notes): New function. ! 308: ! 309: * expr.c (expand_call): For pcc struct, return reg mode is Pmode. ! 310: ! 311: * c-typeck.c (build_conditional_expr): ! 312: Only explicit ints allow predetermined choice. ! 313: ! 314: Wed Dec 6 19:02:07 1989 Richard M. Stallman (rms at ccvi) ! 315: ! 316: * toplev.c: Undef FFS after including param.h. ! 317: ! 318: Tue Dec 5 16:01:18 1989 Richard M. Stallman (rms at ccvi) ! 319: ! 320: * mips.md (movsf): Use mtc1 where needed. ! 321: ! 322: * reload1.c (choose_reload_regs): If run out of spill regs, ! 323: set must_reuse and try again. ! 324: ! 325: Mon Dec 4 00:18:24 1989 Richard M. Stallman (rms at ambroise) ! 326: ! 327: * reload1.c (alter_reg): ! 328: Don't set spill_stack_slot_width if from_reg is -1. ! 329: ! 330: * cse.c (cse_end_of_basic_block): Typos checking NOTE insns. ! 331: ! 332: * math-68881.h (pow): Add parens around `&'. ! 333: ! 334: * loop.c (can_eliminate_biv_p, eliminate_biv): ! 335: In COMPARE, verify the biv is one of the arguments. ! 336: (strength_reduce): When eliminating biv, check for use ! 337: in a giv in an address, just as in check_eliminate_biv. ! 338: ! 339: * stupid.c (reg_order): Make it int, in case reg # is large. ! 340: (stupid_reg_compare, stupid_life_analysis): Implement this. ! 341: ! 342: Sun Dec 3 14:17:36 1989 Richard M. Stallman (rms at ambroise) ! 343: ! 344: * tm-att386.h (ASM_OUTPUT_LOCAL): Don't generate .lcomm. ! 345: Go back to putting the variable in the data section. ! 346: ! 347: * expr.c (do_jump): Cast XVECLEN to int for subtracting 1. ! 348: ! 349: * reload.c (decompose): Handle SUBREGs. ! 350: ! 351: * c-typeck.c (build_modify_expr): Prevent -Wall warning ! 352: when we generate a COMPOUND_EXPR for (?:)=. ! 353: ! 354: Mon Nov 27 15:39:40 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 355: ! 356: * Makefile [pyramid]: Use CLIB, not ALLOCA, to access libPW.a. ! 357: Use -lc explicitly first. ! 358: ! 359: * pyr.md (SI test recognizer): Fix syntax error, ! 360: ! 361: * c-decl.c (grokdeclarator): Don't test size of error_mark_node ! 362: as type of a field. ! 363: ! 364: Sun Nov 26 12:36:01 1989 Richard Stallman (rms at apple-gunkies.ai.mit.edu) ! 365: ! 366: * tm-mips.h (CONST_OK_FOR_LETTER_P): Delete extra paren. ! 367: ! 368: Wed Nov 22 12:56:41 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 369: ! 370: * pyr.md (mode conversion peepholes): Set CC_NO_OVERFLOW. ! 371: * out-pyr.c (consecutive_operands): Don't expect wrap from reg15 to 16. ! 372: ! 373: * Makefile: Fix directions for pyramid. ! 374: ! 375: * tm-mips.h (CONST_OK_FOR_LETTER_P): Define `K'. ! 376: (SMALL_INT): Range is 16 bits, not 17. ! 377: (SMALL_INT_UNSIGNED): New macro. ! 378: * mips.md (andsi3, iorsi3, xorsi3): Use `K', not `I'. ! 379: ! 380: * mips.md (negsi2): Accept general_operand as input. ! 381: ! 382: Tue Nov 21 10:57:45 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 383: ! 384: * mips.md (one_cmpl*): Accept general_operand as input. ! 385: ! 386: Mon Nov 20 11:18:58 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 387: ! 388: * expr.c (expand_expr): For MINUS_EXPR, don't explicitly negate int ! 389: constant if it is in a mode too wide for host machine int. ! 390: ! 391: * cse.c (fold_rtx): Simulate negative shift counts. ! 392: ! 393: Sun Nov 19 14:36:18 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 394: ! 395: * out-pyr.c (notice_update_cc): Set CC_NO_OVERFLOW in many cases. ! 396: ! 397: * cse.c (fold_rtx, fold_cc0): Handle float trap. ! 398: ! 399: Sat Nov 18 00:17:47 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 400: ! 401: * varasm.c (output_constant): Handle float trap in fprintf. ! 402: * toplev.c (float_signal): Don't print message. ! 403: * fold-const.c (combine): Print it here. ! 404: ! 405: * sparc.md (extend patterns): Handle CONST_INT as operand. ! 406: ! 407: * out-i386.c (singlemove_string): Fix paren error. ! 408: ! 409: Fri Nov 17 12:19:56 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 410: ! 411: * expr.c (expand_increment): For pre-increment, copy the rtx to return. ! 412: ! 413: * c-parse.y (compstmt): There may be implicit decls, so check ! 414: and maybe keep the level. ! 415: ! 416: * tm-mips.h (FUNCTION_PROLOGUE, FUNCTION_EPILOGUE): ! 417: Use call_used_regs, not a private copy. ! 418: ! 419: Thu Nov 16 00:28:29 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 420: ! 421: * reload1.c: Keep track of paradoxical subregs of each pseudo, ! 422: and make extra stack space for their sake. ! 423: (reload): Record max size paradoxical subreg for each pseudo. ! 424: (scan_paradoxical_subreg): New subroutine for that. ! 425: (reload): Make stack slots big enough for that size. ! 426: ! 427: * tm-i860.h (ASM_DECLARE_FUNCTION_NAME): Define it, ! 428: so we can output a no-op before each function. ! 429: ! 430: * tm-pyr.h (INIT_CUMULATIVE_ARGS): Simplify. ! 431: Pass function type to aggregate_value_p. ! 432: ! 433: * fold-const.c (fold): ! 434: For foo++ > const, don't change if foo++ could overflow. ! 435: ! 436: * loop.c (eliminate_biv): ! 437: Fix typo; check both coeffs when comparing givs. ! 438: ! 439: Wed Nov 15 00:12:59 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 440: ! 441: * integrate.c (copy_for_inline): Correctly handle RTL type "u". ! 442: ! 443: * jump.c (delete_insn): Extra test for PREV != 0. ! 444: ! 445: Tue Nov 14 17:31:08 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 446: ! 447: * tm-sun3.h (LINK_SPEC): Specify -L to control choice of -lm. ! 448: ! 449: * tm-pyr.h (INIT_CUMULATIVE_ARGS): ! 450: If -fpcc-struct-return, always do the scalar thing. ! 451: ! 452: * function.c (expand_function_end): Use FUNCTION_OUTGOING_VALUE. ! 453: ! 454: Sat Nov 11 00:18:54 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 455: ! 456: * tm-sun386.h (ASM_OUTPUT_COMMON): Use ROUNDED, not SIZE. ! 457: (ASM_OUTPUT_LOCAL): Likewise. Also, generate .lcomm ! 458: rather than a .data area symbol. ! 459: * tm-att386.h: Likewise. ! 460: ! 461: Fri Nov 10 15:04:15 1989 Richard Stallman (rms at rice-chex) ! 462: ! 463: * caller-save.c (emit_mult_restore, emit_mult_save): ! 464: Improve arithmetic for address to save at. ! 465: ! 466: Thu Nov 9 00:14:19 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 467: ! 468: * tm-pyr.h (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): ! 469: Don't use obsolete pushw and popw insns. ! 470: (ASM_OUTPUT_ALIGN): Ensure arg in range 2 to 5. ! 471: * pyr.md (tstdi): Pattern deleted. ! 472: (SImode test recognizer): Output ucmpw if jump is unsigned. ! 473: ! 474: * out-sparc.c (operands_satisfy_eager_branch_peephole): ! 475: Check for moves between FP and non-FP regs; they take two insns. ! 476: * sparc.md (eager branch peepholes): Likewise. ! 477: (Ordinary delayed branch peepholes): Similar check. ! 478: * out-sparc.c (single_insn_extra_test): New subroutine. ! 479: ! 480: Wed Nov 8 18:19:51 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 481: ! 482: * combine.c (subst): In (sign_extend:M (subreg:N (and:M .. <const>) 0)) ! 483: insist that constant be positive in mode N. ! 484: ! 485: Tue Nov 7 23:25:20 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 486: ! 487: * rtl.h: Undefine FFS in case it was defined by the system. ! 488: ! 489: Mon Nov 6 14:43:55 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 490: ! 491: * tm-i860.h, tm-m88k.h, tm-pyr.h, tm-spur.h (INIT_CUMULATIVE_ARGS): ! 492: Test aggregate_value_p, not just BLKmode. ! 493: ! 494: * gnulib2.c (__builtin_saveregs): Moved from gnulib.c. ! 495: Code added for mips. ! 496: ! 497: * pyr.md (conditional branch recognizers): Don't simplify if not -O. ! 498: ! 499: * out-pyr.c (extend_and_branch): Handle two constant operands. ! 500: ! 501: * integrate.c (function_cannot_inline_p): Don't inline if alloca used. ! 502: ! 503: Sun Nov 5 02:59:23 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 504: ! 505: * Always make a LET_STMT and notes for the top level of a function ! 506: if it has any subblocks. ! 507: * c-decl.c (struct binding_level): New field keep_if_subblocks. ! 508: (poplevel): Obey the new field. ! 509: (keep_next_if_subblocks): New variable. ! 510: (pushlevel): Use that variable. ! 511: (store_parm_decls): Set that variable. ! 512: (compstmt): Pass nonzero to expand_end_bindings ! 513: for the new kept binding levels. ! 514: (kept_level_p): New function. ! 515: ! 516: * xm-mips.h: Define USE_C_ALLOCA if compiling with CC. ! 517: ! 518: * tm-alliant.h (CHECK_FLOAT_VALUE): Define this. ! 519: ! 520: * expr.c (expand_call): Make valreg 0 if passing structure address. ! 521: ! 522: Sat Nov 4 23:27:02 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 523: ! 524: * caller-save.c (emit_mult_save, emit_mult_restore): ! 525: Test regs for suitability as address before using as temps. ! 526: ! 527: * cccp.c (make_definition, do_define): Better error checks for name. ! 528: ! 529: Fri Nov 3 01:05:04 1989 Torbj|rn Granlund (tege at echnaton) ! 530: ! 531: * pyr.md (tstdi): New pattern. Use 64-bit shift with count zero. ! 532: ! 533: * pyr-tm.h: -mretd pops args with the retd insn. ! 534: ! 535: * pyr.md (peep-holes for loop optimizations): Use the R output ! 536: format in PRINT_OPERAND, don't use output_branch. ! 537: * out-pyr.c: No need for functions output_branch, output_inv_branch. ! 538: ! 539: * tm-pyr.h (ASM_OUTPUT_ALIGN): Don't truncate alignment to two. ! 540: ! 541: Wed Nov 1 00:38:27 1989 Torbj|rn Granlund (tege at echnaton.sics.se) ! 542: ! 543: * out-pyr.c (output_inv_branch): When reversing test operands, ne ! 544: remains ne, and eq eq eq. ! 545: ! 546: * pyr.md: Cleanup output code for compare patterns. ! 547: ! 548: * pyr.md (return): Adjust frame pointer if ! 549: current_function_pretend_args_size != 0. ! 550: ! 551: * pyr.md (extendsidi2): Use general_operand for the input operand. ! 552: ! 553: * pyr.md, out-pyr.c: Output shift insns with output_shift. ! 554: ! 555: * tm-pyr.h, out-pyr.c: Make NOTICE_UPDATE_CC understand how ! 556: condition codes are really set. Define flag CC_VALID_FOR_UNSIGNED ! 557: with to make it possible not to reset cc after each compare or ! 558: test. ! 559: * pyr.md: Don't use CC_STATUS_INIT for most patterns. ! 560: ! 561: * out-pyr.c (already_sign_extended): Cleanup, correct, optimize. ! 562: ! 563: * out-pyr.c: rename radr_diff to constant_diff. ! 564: ! 565: * out-pyr.c (movdi_possible): Don't combine moves from memory to ! 566: memory, because of possible address aliasing. Don't combine moves ! 567: with register destination if the source operands are depending on ! 568: the destination of the first move, as in ! 569: ! 570: movw (pr3),pr3 ! 571: movw 4(pr3),pr4. ! 572: ! 573: * out-pyr.c (consecutive_operands): Handle SUBREG in addition to REG. ! 574: ! 575: * out-pyr.c (output_move_double): movl of immediate *sign* extends. ! 576: ! 577: Tue Oct 31 22:51:39 1989 Torbj|rn Granlund (tege at echnaton.sics.se) ! 578: ! 579: * pyr.md (cmpsi): Don't expand this. It's just slower. ! 580: ! 581: * out-pyr.c (extend_and_branch): Handle only QImode and HImode. ! 582: Flush code specific for SImode. ! 583: ! 584: * out-pyr.c (extend_and_branch): To make zero extensions to HImode ! 585: of constants not crash: ! 586: * out-pyr.c (ensure_extended): Call extend_const if it's a ! 587: CONST_INT. Don't call extend_const from extend_and_branch. ! 588: * pyr.md, out-pyr.md: Use global variable test_mode to determine the ! 589: mode of tests and compares. Set in define_expands for tests and ! 590: compares. Used in extend_and_branch. ! 591: * out-pyr.c: Pass mode between extend_and_branch and ensure_extended. ! 592: ! 593: * out-pyr.c (extend_and_branch): Accept SUBREG whereever REG is ! 594: accepted. ! 595: * out-pyr.c (weird_memory_memory): Accept SUBREG whereever REG is ! 596: accepted. ! 597: ! 598: Thu Nov 2 13:02:15 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 599: ! 600: * gnulib2.c (lshrdi2, and other shifts): Take second arg as long long. ! 601: ! 602: * out-i386.c (fp_pop_int): Use %L0 in fistp insn. ! 603: ! 604: Wed Nov 1 00:05:59 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 605: ! 606: * stmt.c (init_function_start): Init max_parm_reg. ! 607: ! 608: * varasm.c (compare_constant_1): For ADDR_EXPR, compare symbol name. ! 609: (record_constant_1): Likewise. ! 610: ! 611: * out-sparc.c (output_mul_by_constant): Constant zero is legitimate. ! 612: ! 613: * caller-save.c (emit_mult_restore, emit_mult_save): ! 614: Handle stack addresses which are invalid. ! 615: ! 616: * cse.c (use_related_value): Don't abort if offset is 0. ! 617: ! 618: Tue Oct 31 15:08:58 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 619: ! 620: * config.gcc (pyramid): Set $machine to pyr. ! 621: ! 622: * Makefile: Change temp file names from tmp-insn-* to tmp-*. ! 623: ! 624: * expr.c (expand_call): OK_DEFER_POP for is_const was once too many. ! 625: ! 626: Sun Oct 29 00:53:46 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 627: ! 628: * c-parse.y (yylex): Prevent warning for numbers that underflow. ! 629: ! 630: * stmt.c (assign_parms): Convert stack addresses to valid addresses. ! 631: (validize_mem): New subroutine. ! 632: ! 633: * stmt.c (check_for_full_enumeration_handling): Accept enum type ! 634: as argument (since was finding it incorrectly). ! 635: Delete special case for constant index. ! 636: (expand_end_case): Pass enum type; check for constant index. ! 637: ! 638: * cexp.y (initialize_random_junk): Test DOLLARS_IN_IDENTIFIERS ! 639: for nonzeroness. ! 640: ! 641: Fri Oct 27 16:25:19 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 642: ! 643: * tm-next.h (__inline): define as macro for old 1.34 Next uses. ! 644: ! 645: Wed Oct 25 17:59:33 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 646: * stmt.c: Include recog.h. ! 647: ! 648: Tue Oct 24 19:23:11 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 649: ! 650: * combine.c (try_combine): Don't move a volatile asm. ! 651: ! 652: Mon Oct 23 01:45:34 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 653: ! 654: * combine.c (try_combine): Don't install a subreg relating two modes ! 655: that aren't tieable. ! 656: ! 657: * gnulib2.c (__fixdfdi): Declare __fixunsdfdi. ! 658: ! 659: * combine.c: Make uid_cuid an int *. ! 660: (combine_instructions): Allocate as such. ! 661: * loop.c: Make uid_luid an int *. ! 662: (loop_optimize): Allocate as such. ! 663: ! 664: Sun Oct 22 16:34:28 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 665: ! 666: * stmt.c (fixup_var_refs_1): New insn before a CALL goes before ! 667: the preceding USEs. ! 668: ! 669: Sat Oct 21 00:51:49 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 670: ! 671: * out-pyr.c (extend_and_branch): Allow SUBREG like REG. ! 672: * pyr.md (mem-reg and reg-mem HI, QI patterns): ! 673: Don't match unless one arg is MEM. ! 674: ! 675: * out-sparc.c (output_fp_move_double): Use ldd only when safe, ! 676: on same conditions used for std. ! 677: ! 678: * Makefile (gnulib): Fix comments for editing for hpux. ! 679: ! 680: Fri Oct 20 00:27:00 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 681: ! 682: * out-i386.c (singlemove_string): Handle ordinary constants as input. ! 683: ! 684: * reload1.c (choose_reload_regs): Arg of HARD_REGNO_MODE_OK ! 685: was the pseudo; should be the reload reg. ! 686: ! 687: * tm-decstatn.h (CPP_PREDEFINES): Add bsd4_2, ultrix, MIPSEL, ! 688: host_mips, R3000, LANGUAGE_C, SYSTYPE_BSD. ! 689: * tm-mips.h (CPP_PREDEFINES): Add host_mips, R3000, MIPSEB, LANGUAGE_C. ! 690: (CPP_SPEC): Remove those from here. ! 691: Define __SYSTYPE_*__ always. Define SYSTYPE_* only if not -ansi. ! 692: No CPP_SPEC needed for decstation. ! 693: Correct typos in option tests. ! 694: ! 695: Thu Oct 19 18:16:40 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 696: ! 697: * tm-m68k.h, tm-alliant.h (PRINT_OPERAND): ! 698: Don't print :l for address if :w was already printed. ! 699: ! 700: Wed Oct 18 13:03:52 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 701: ! 702: * tm-mips.h (FUNCTION_PROLOGUE): Get rid of __0__gcc macro. ! 703: Store that value in frame_stack_difference. ! 704: (FUNCTION_EPILOGUE): Get rid of __0__gcc macro. ! 705: (FIX_FRAME_POINTER_ADDRESS): Use frame_stack_difference. ! 706: * out-mips.c (frame_stack_difference): Define here. ! 707: ! 708: * gcc.c (compilers): Define __GNUG__ if g++. ! 709: ! 710: Tue Oct 17 01:17:07 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 711: ! 712: * tm-i860.h (HAVE_PRE_INCREMENT): Undefine this. ! 713: ! 714: * mips.md (movsf): New alternatives for r registers. ! 715: * tm-mips.h (FUNCTION_PROLOGUE): Handle big stack frames. ! 716: * out-mips.c (function_arg): Handle mode distinction for floating args. ! 717: ! 718: * pyr.md (mtstsw pattern): Accept general_operand. ! 719: ! 720: * i860.md (movsf): New alternatives: allow loading r from F. ! 721: Prefer f-reg as reload when moving m from F. ! 722: * tm-i860.h (PRINT_OPERAND): Handle CONST_DOUBLE if SFmode. ! 723: ! 724: Sun Oct 15 19:45:56 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 725: ! 726: * i860.md (movhi, movqi): Support moves to/from fp regs. ! 727: ! 728: * sparc.md (cse'd multiply): New pattern for mult. by -1. ! 729: ! 730: * out-i860.c (load_opcode, store_opcode): Handle DImode and fp reg. ! 731: ! 732: * expr.c (emit_library_call, expand_call): Make a SEQUENCE for ! 733: any needed USE insns and pass them to emit_call_1. ! 734: (emit_call_1): Place the passed SEQUENCE immediately before the ! 735: generated CALL_INSN even if gen_call made more than one insn. ! 736: ! 737: Fri Oct 13 00:12:46 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 738: ! 739: * recog.c (constrain_operands): Add case for `&'. ! 740: ! 741: * expmed.c (extract_bit_field): With structure reg fetched from mem, ! 742: don't put in subreg if mode already correct. ! 743: (store_bit_field): Typo: had extzv, wanted insv. ! 744: ! 745: * stmt.c (expand_function_start): Call init_recog. ! 746: ! 747: Thu Oct 12 01:48:30 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 748: ! 749: * cccp.c (macarg1): Count newlines even after backslash. ! 750: ! 751: * c-decl.c (pushdecl): Don't warn for explicit extern ! 752: followed by static. That case is useful for incomplete arrays. ! 753: ! 754: * tm-sparc.h (SELECT_RTX_SECTION): Test was backwards. ! 755: ! 756: Wed Oct 11 00:35:25 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 757: ! 758: * tm-seq386.h (DBX_DEBUGGING_INFO): Override this. ! 759: (HARD_REGNO_MODE_OK): Override this. ! 760: ! 761: Mon Oct 9 01:09:25 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 762: ! 763: * i860.md (movdi): accept F source in 2nd alternative. ! 764: Accept G source in 3rd. ! 765: (adddi3, subdi3): Typo in opcode of output. ! 766: ! 767: Sun Oct 8 01:38:27 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 768: ! 769: * tm-mips.h (ASM_SPEC): Pass -nocpp to as. ! 770: ! 771: * c-decl.c (grokdeclarator): Ignore variant differences ! 772: when preserving typedef types from being altered. ! 773: ! 774: Sat Oct 7 00:46:18 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 775: ! 776: * xm-mips.h: Use __builtin_alloca. ! 777: ! 778: Fri Oct 6 00:30:42 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 779: ! 780: * reload.c (find_equiv_reg): Do let xregno be a pseudo reg, ! 781: but don't call HARD_REGNO_NREGS in that case. ! 782: ! 783: Thu Oct 5 00:30:39 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 784: ! 785: * reload.c (find_equiv_reg): Don't let xregno be a non-hard reg. ! 786: Don't do OVERLAPPING_REGNO_P on a pseudo reg number. ! 787: ! 788: * i386.md (trunchiqi2, etc.): Output %1 with size of destination. ! 789: * out-i386.c (PRINT_REG): Support 'b' as CODE. ! 790: ! 791: * combine.c (try_distrib): Make sure we don't move a reg use ! 792: across a store into that reg. ! 793: ! 794: * reload1.c (order_regs_for_reload): Rate fixed regs at LARGE+2, ! 795: and explicitly used regs at LARGE+1. ! 796: ! 797: * stor-layout.c (build_int): When memoizing, make permanent nodes. ! 798: ! 799: Wed Oct 4 19:40:37 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 800: ! 801: * xm-i860.h: Missing file added. ! 802: ! 803: Mon Oct 2 16:26:33 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 804: ! 805: * reload1.c (emit_reload_insns): Reject any OLDEQUIV that is ! 806: in use in any other reload of this insn. ! 807: ! 808: * expr.c (expand_call): Don't put on notes for const functions ! 809: if there aren't real insns to hold them. ! 810: ! 811: Sun Oct 1 19:50:59 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 812: ! 813: * integrate.c (expand_inline_function): Handle PARALLEL in CALL_INSNs ! 814: when setting follows_call. ! 815: ! 816: * i860.md (pfeq, pfgt and pfle patterns): Add f0 as 3rd arg. ! 817: ! 818: * integrate.c (save_for_inline): Don't delete NOTE_INSN_FUNCTION_END. ! 819: ! 820: Fri Sep 29 08:56:30 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 821: ! 822: * tm-next.h (LINK_SPEC): Typo for -Z option. ! 823: ! 824: Thu Sep 28 12:57:11 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 825: ! 826: * reload.c (decompose): Handle case of pseudo with no hard reg. ! 827: ! 828: Wed Sep 27 01:20:36 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 829: ! 830: * explow.c (round_push): Fix typo: return fast if ALIGN is 1. ! 831: ! 832: * varasm.c (in_text_section): New function. ! 833: * tm-3b1.h (ASM_OUTPUT_SKIP): Use that. ! 834: ! 835: Tue Sep 26 02:40:23 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 836: ! 837: * c-typeck.c (commontype): If one arg is error_mark_node, return other. ! 838: 1.1.1.16 root 839: Sun Sep 24 00:21:24 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 840: 1.1.1.17! root 841: * c-decl.c (poplevel): When popping a local extern decl, ! 842: save the TREE_USED bit in the identifier. ! 843: * toplev.c (compile_file): Check that, printing "not used" warnings. ! 844: ! 845: * tree.c (make_node): Always put PARM_DECL in saveable_obstack. ! 846: 1.1.1.16 root 847: * Version 1.36 released. 848: 849: * genextract.c (main): Pass `insn' as arg to `fatal_insn_not_found'. 850: 851: * tahoe.md (casel patterns): Use %@ for operand of .align. 852: * tm-tahoe.h (PRINT_OPERAND): %@ prints `1'. 853: * tm-harris.h (PRINT_OPERAND): Redefine it; %@ prints `2'. 854: 855: * config.gcc (decstation): New entry. 856: 857: * tm-harris.h: New file, using tm-tahoe.h. 858: 859: * tm-decstatn.h, tm-mips-bsd.h, tm-mips-sysv.h: New files. 860: 861: Sat Sep 23 00:28:14 1989 Alain Lichnewsky (lich at glenlivet) 862: 863: * added -Zxxx flag in tm-mips.h. (-Z stands for systype) 864: 865: used as -ZSYSV or -ZBSD43 on RISC_OS. I suppose 866: that at somepoint -ZPOSIX might be required for Ultrix. 867: 868: * changed command issued to loader to set -systype and to get 869: crt1 crtn instead of crt0. 870: 871: * changed predefines for cpp to agree with RISC-OS 872: 873: * tm-mips.h checks for machine type ( defined(ultrix) == DECSTATION) 874: so that user does not have to go in and change tm-mips.h anymore 875: 876: * cpp defines mips host_mips unix and SYSTYPE_SYSV 877: or SYSTYPE_BSD43. 878: 879: Fri Sep 22 00:31:29 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 880: 881: * pyr.md (andsi3): Flush spurious paren. 882: 883: * Makefile (hard-params): Don't use LIBS or LIBDEPS. 884: 885: * rtl.c (init_rtl): 886: Use malloc to allocate the string for format of CONST_DOUBLE. 887: Don't fail to store in rtx_format. 888: 889: Thu Sep 21 00:33:13 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 890: 891: * print-tree.c (dump): Move decl of P in REAL_CST case. 892: 893: * fold-const.c (fold): For ABS_EXPR, handle REAL_IS_NOT_DOUBLE. 894: 895: * c-convert.c (convert_to_real): Use REAL_VALUE_ATOF to make 0. 896: 897: * mips.md (movdi): Handle constant with or without WORDS_BIG_ENDIAN. 898: For alternative 2, output just 2 store insns, not 3. 899: 900: * dbxout.c (dbxout_symbol): Optionally go to .data for 901: a static file-scope variable. 902: * tm-vax.h: Define DBX_STATIC_STAB_DATA_SECTION to request this. 903: 904: * varasm.c (output_constant, force_const_mem): 905: ASM_OUTPUT_DOUBLE_INT now takes rtx as argument. 906: 907: * gvarargs.h [__NeXT__]: Undefine macros defined by stdardg.h. 908: Define _VARARGS_H. 909: 910: * stddef.h (size_t): Don't define it if _SIZE_T macro is defined. 911: (NULL): Undef any previous defn. 912: 913: * cexp.y (NULL): Don't define if already defined. 914: 915: * emit-rtl.c (force_next_line_note): New function. 916: * stmt.c (expand_function_start): Call that just before returning. 917: 918: Wed Sep 20 01:22:16 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 919: 920: * c-parse.y (asm_clobbers): 921: Allow string concatenation: call combine_strings. 922: 923: Mon Sep 18 00:04:06 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 924: 925: * expr.c (expand_call): If calling const function, don't defer 926: pops for this call. 927: 928: * c-parse.y (yylex): When float constant ends in `f', 929: actually truncate to a single-float. 930: 931: Sun Sep 17 01:36:43 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 932: 933: * gcc.c (SWITCH_TAKES_ARG): -A takes an arg. 934: (link_spec): Inhibit start files when -A. 935: 936: * convex.md (call, call_value): Supply dummy arg to RETURN_POPS_ARGS. 937: 938: * gnulib2.c (__fixunsdfdi): After removing top half, A can be neg. 939: (__cmpdi2, __ucmpdi2): Was misusing macros HIGH and LOW-- 940: use .s.high and .s.low to extract words from long_long. 941: 942: * Makefile (gnulib2): Run `./gcc'. 943: 944: * Makefile (float.h): Use `make', not `$(MAKE)'. 945: (hard-params.o): Use `$(srcdir)' in deps as in commands. 946: 947: * out-tahoe.c (output_move_double): Handle constant operand 1. 948: 949: Sat Sep 16 01:15:24 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 950: 951: * reload1.c (emit_reload_insns): Put death note for input reload reg 952: even if reload was inherited. 953: 954: * out-i860.c (output_block_move): Typo loading size of block. 955: 956: * m68k.md (dbra patterns): Do CC_STATUS_INIT. 957: 958: * cse.c (fold_rtx): Check GET_MODE_CLASS before floating negate. 959: 960: Fri Sep 15 00:39:44 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 961: 962: * combine.c (subst): Don't combine (subreg (mem)) 963: if subreg's mode is wider than mem's mode. 964: 965: Thu Sep 14 04:33:51 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 966: 967: * Makefile (clean): Delete temp files used in making gnulib. 968: 969: * tm-next.h (LINK_SPEC): Pass -Z and -seglinkedit options. 970: 971: Tue Sep 12 01:06:39 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 972: 973: * stor-layout.c (layout_type): Ignore MAX_FIXED_MODE_SIZE for ints. 974: 975: * mips.md (cmpsi + bleu peephole): Should output unsigned insn. 976: 977: * expmed.c (store_bit_field, extract_bit_field): If loading mem 978: into reg for bit field insn, don't use a larger mode than insn wants. 979: 980: * Makefile (stamp-gnulib2): Depend on gcc, cc1, cpp to avoid 981: wrong order of making when parallel. 982: 983: * Makefile (float.h): Do use $(MAKE) to run recursive make. 984: 985: Mon Sep 11 00:49:11 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 986: 987: * cccp.c (main): Test for missing arg after -o, etc. 988: 989: * tm-next.h: Nearly completely new. 990: 991: * gcc.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move after config.h. 992: 993: * cccp.c: Cast some args to strcpy and strcat. 994: 995: * genoutput.c (error): Declare arg S. 996: 997: * tm-pyr.h, pyr.md, out-pyr.c, xm-pyr.h: New files. 998: * config.gcc: New item for pyr. 999: 1000: * gvarargs.h: If __pyr__, use va-pyr.h. 1001: 1002: Sun Sep 10 00:48:43 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1003: 1004: * reload1.c (inc_for_reload): Really return the first of the insns. 1005: 1006: * stor-layout.c (build_int): Memoize size nodes for sizes <= 32. 1007: 1008: * loop.c (check_dbra_loop): Don't reverse a biv that is used 1009: in between its update and the loop endtest insn. 1010: 1011: Sat Sep 9 02:10:49 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1012: 1013: * stor-layout.c (genop): Don't use `combine' for nonexplicit constants. 1014: Handle some identity elements, etc., directly. 1015: (layout_basetypes): Function deleted. 1016: (layout_record): Ignore any TYPE_DECLs in the fieldlist. 1017: Don't do PCC_BUTFIELD_TYPE_MATTERS hack on field with ERROR_MARK type. 1018: (layout_union): Delete error check for base types. 1019: Ignore any TYPE_DECLs in the fieldlist. 1020: (layout_type): Copy layout info directly into all variants of type. 1021: Delete unused local `x'. 1022: 1023: * mips.md (movdi): Handle constant source operand. 1024: (movsi): Some output code moved to output_load_immediate. 1025: * out-mips.c (output_load_immediate): New function. 1026: 1027: * config.gcc (iris): Use tm-iris.h and xm-iris.h. 1028: 1029: * integrate.c (copy_for_inline): Copy all nonconstant MEM addresses. 1030: 1031: * tm-3b1.h (ASM_OUTPUT_SPACE): New override defn, to output explicit 1032: bytes of 0 if in text segment. 1033: 1034: Fri Sep 8 19:15:08 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1035: 1036: * combine.c (try_combine): Don't do i3dest stuff if i3 isn't a SET. 1037: 1038: Thu Sep 7 00:16:32 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1039: 1040: * integrate.c (function_cannot_inline_p): Fn is "not even close" 1041: only if > 3 * max_insns. 1042: 1043: * toplev.c (fatal_insn_not_found): New fn. 1044: * genextract.c (main): Make insn_extract call that fn. 1045: 1046: * integrate.c (expand_inline_function): Don't abort about bad offset 1047: in a parm whose type is error_mark_node. 1048: Make another syntax level to hold parm destructors. 1049: 1050: * tm-mips.h (FUNCTION_PROLOGUE, FUNCTION_EPILOGUE): 1051: Increment push_loc after, not before, each reg save or restore. 1052: When storing reg 9 or 29, use offset tsize-4. 1053: Make tsize larger by 4 initially. 1054: (STARTING_FRAME_OFFSET): -8, not -4. 1055: 1056: * gcc.c (choose_temp_base): Make use of TMPDIR and P_tmpdir 1057: if they exist. 1058: 1059: * toplev.c, gcc.c, cccp.c, gen*.c (fancy_abort): 1060: New function which can be used to replace `abort'. 1061: 1062: * toplev.c (main): Save argv, argc in save_argv, save_argc. 1063: 1064: * jump.c (delete_insn): Always advance NEXT across deleted insns, 1065: in case not optimizing. Fixes setting current_function_returns_null. 1066: 1067: * symout.c: Include stddef.h with <...>. 1068: 1069: Wed Sep 6 00:39:35 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1070: 1071: * gcc.c (find_exec_file): Was using `argbuf[0]' where wanted `prog'. 1072: 1073: * combine.c (combine_instructions): Dont call record_dead_and_set_regs 1074: if insn has become a NOTE. 1075: 1076: * reload.c (combine_reloads): Update reload_when_needed. 1077: 1078: * jump.c (delete_insn): If delete label on ADDR_VEC, delete table too. 1079: (jump_optimize): If ADDR_DIFF_VEC label has 1 ref, delete it and table. 1080: 1081: * gunlib2.c (__fixunsdfdi, __floatdfdi): Make the long long, 1082: and/or its two halves, unsigned. 1083: 1084: * reload1.c (reload): When setting double_reg_address_ok, 1085: require it to be offsettable. 1086: * out-sparc.c (output_fp_move_double): Now safe to use std 1087: for all reg+reg addresses. 1088: 1089: * vax.md: Add another simplified-casesi pattern for operand 0 constant. 1090: 1091: * cse.c (fold_rtx): Don't truncate VAL at end if WIDTH is 0. 1092: Don't alter WIDTH for that purpose based on the operands. 1093: 1094: * stmt.c (warn_if_unused_value): && or || is ok if 2nd op has effect. 1095: 1096: * c-parse.y (ALIGNOF unary_expr): Find a larger value if possible. 1097: 1098: * reload.c (combine_reloads): Don't combine an output address reload. 1099: (find_reloads): Call combine_reloads after setting reload_when_needed. 1100: (find_reloads_address): Update OPERAND if copy the operand. 1101: 1102: * cccp.c (macroexpand): Missing arg no error in 1-arg macro if -trad. 1103: 1104: Tue Sep 5 14:12:23 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1105: 1106: * reload.c (find_dummy_reload): Don't use the output reg if it is 1107: a fixed reg which can overlap with other regs. 1108: 1109: * cse.c (exp_equiv_p): Two vectors must have same length. 1110: 1111: * tree.def (WITH_CLEANUP_EXPR): Print-name string was wrong. 1112: 1113: * optabs.c (expand_fix): Undo previous change (unsigned conversion). 1114: It doesn't work. 1115: 1116: * gcc.c: Pass -i option to cpp. It takes an arg. 1117: 1118: * cccp.c (cplusplus_include_defaults) [VMS]: Typo in array indices. 1119: 1120: * Makefile (gnulib): Create it in tmpgnulib, then rename at the end. 1121: 1122: * i860.md (movdi from constant pattern): Fix `st' opcode typos. 1123: 1124: * Makefile (hard-params*): Use CCLIBFLAGS, not CFLAGS. 1125: 1126: Fri Sep 1 03:43:50 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1127: 1128: * tm-i386gas.h (ASM_OUTPUT_ALIGN): .align arg isn't a log, in gas. 1129: (ASM_OUTPUT_ALIGN_CODE): Align labels, etc. to 4-byte boundary. 1130: 1131: * integrate.c (save_for_inline): Delete NOTE_INSN_DELETED notes. 1132: 1133: * Makefile (clean): Delete dbr and jump2 dumps. 1134: 1135: * Makefile (gnulib, gnulib2): Compile in main dir, not libtemp subdir. 1136: This avoids trouble with -I options, etc. 1137: 1138: Thu Aug 31 15:07:19 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1139: 1140: * reload1.c (emit_reload_insns): 1141: Be specific moving REG_DEAD notes to an output reload. 1142: Sometimes move them to output-operand-address reloads. 1143: 1144: * out-sparc.c (output_fp_move_double): Very cautious about std. 1145: Use it only for something visibly aligned, or for an array element. 1146: 1147: * cccp.c (main) [VMS]: Remove dirs and extension from PROGNAME. 1148: (pfatal_with_name) [VMS]: Return VMS system call error code as status. 1149: (cplusplus_include_defaults) [VMS]: Add GNU_GXX_INCLUDE. 1150: 1151: * xm-vms.h (FATAL_EXIT_CODE): Now (44 | 0x10000000). 1152: 1153: * expr.c (do_store_flag): Allow more values of STORE_FLAG_VALUE. 1154: 1155: * gnulib2.c (__fixunsdfdi): Explicitly cast doubles to `long int' 1156: to avoid infinite recursion. 1157: 1158: Wed Aug 30 13:28:54 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1159: 1160: * loop.c (skip_consec_insns): Skip NOTEs. 1161: 1162: * loop.c (general_induction_var): If G or V is a nonreplaceable giv, 1163: give up. If G is allocated here, consider it replaceable. 1164: 1165: * stupid.c: Make uid_suid, reg_where_born and reg_where_dead 1166: vectors of ints, not short. 1167: 1168: Tue Aug 29 00:21:13 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1169: 1170: * tm-iris.h: Fix typo in formfeed char. 1171: 1172: * out-i860.c (singlemove_string): Add missing `.l' to `st', `ld'. 1173: 1174: * loop.c (general_induction_var): Don't set G from 2nd op. of MINUS, 1175: since that would negate the result. 1176: 1177: Mon Aug 28 00:16:36 1989 Richard Stallman (rms at apple-gunkies.ai.mit.edu) 1178: 1179: * dbxout.c (dbxout_symbol): When we need a pointer type, don't 1180: record it in TYPE_POINTER_TO, lest it not live as long as its target. 1181: 1182: * tm-hp9k320.h (CPP_PREDEFINES): Delete __hp9000s300 and _HPUX_SOURCE. 1183: 1184: * Makefile (gnulib): Deleted stamp-gnulib2 in wrong dir. 1185: (hard-params.o): Copy it into current dir before compiling. 1186: (STAGESTUFF): Include the stamp-*.[ch] files. 1187: 1188: Sun Aug 27 13:59:39 1989 Richard Stallman (rms at apple-gunkies.ai.mit.edu) 1189: 1190: * out-i860.c (output_size_for_block_move): Typo in CC_KNOW_HI_R31. 1191: 1192: * integrate.c (expand_inline_function): Ignore insns to set value reg 1193: if we don't want the value. 1194: 1195: * varasm.c (make_function_rtl, make_decl_rtl): Use DECL_ASSEMBLER_NAME. 1196: 1197: * Makefile (stamp-gnulib2): Don't explicitly delete old members, 1198: just replace them. 1199: 1200: * m68k.md, alliant.md (trunchiqi): Use movew if moving from memory 1201: or from a const_int. 1202: 1203: * integrate.c (expand_inline_function): Set first_parm_offset 1204: later on, after computing the args, in case those args 1205: contain inline function calls. 1206: 1207: * alliant.md (movqi): Like recent change in m68k.md. 1208: 1209: Sat Aug 26 00:26:03 1989 Richard Stallman (rms at apple-gunkies.ai.mit.edu) 1210: 1211: * tm-hp9k320.h (CPP_PREDEFINES): Take out m68k and mc68000. 1212: * tm-news.h (CPP_PREDEFINES): Add mc68000. 1213: 1214: Fri Aug 25 15:37:35 1989 Richard Stallman (rms at apple-gunkies.ai.mit.edu) 1215: 1216: * optabs.c (expand_fix): Can convert to unsigned int 1217: by subtracting 2**(N-1), converting to signed, and adding 2**(N-1). 1218: 1219: * reload.c (find_reloads_address): For out-of-range stack slot, 1220: reload the displacement into a reg. 1221: (find_reloads_toplev): For subreg of a reg with a reg_equiv_address, 1222: turn the whole thing into a memref. 1223: 1224: Thu Aug 24 14:07:03 1989 Richard Stallman (rms at apple-gunkies.ai.mit.edu) 1225: 1226: * c-decl.c (grokdeclarator): If function is declared `extern inline', 1227: set current_extern_inline. 1228: (start_function): In that case, set TREE_EXTERN in function decl. 1229: * toplev.c (rest_of_compilation): In that case, don't really compile. 1230: (compile_file): Don't output such functions at the end either. 1231: 1232: * c-typeck.c (build_function_call): Do set NAME if we have one. 1233: 1234: * Prevent any variability in results of qsort. 1235: * stupid.c (stupid_reg_compare): Compare by regno as last resort. 1236: * global-alloc.c (allocno_compare): Same idea. 1237: * local-alloc.c (qty_compare_1): Same idea. 1238: * reload1.c (hard_reg_use_compare, reload_reg_class_lower): Same idea. 1239: 1240: * cccp.c (macroexpand): If read one arg, but it's whitespace, 1241: consider that 0 args for checking number of args. 1242: Improve plurals in error messages. 1243: 1244: * expr.h (inhibit_defer_pop): New name for current_args_size, 1245: now declared here. 1246: (NO_DEFER_POP, OK_DEFER_POP): Moved here. 1247: * expr.c: Names related to current_args_size renamed. 1248: (clear_current_args_size): Deleted. 1249: * stmt.c (expand_function_start): Init inhibit_defer_pop here. 1250: 1251: * stmt.c (expand_start_stmt_expr): Do NO_DEFER_POP. 1252: (expand_end_stmt_expr): Do OK_DEFER_POP, and don't do deferred pops. 1253: 1254: * Makefile (c-parse.tab.c): Pass -o option to Bison. 1255: 1256: Wed Aug 23 23:14:06 1989 Richard Stallman (rms at apple-gunkies.ai.mit.edu) 1257: 1258: * expmed.c (store_bit_field, extract_bit_field): 1259: Use GET_MODE_WIDER_MODE to scan possible modes for bestmode. 1260: 1261: * Makefile (stamp-gnulib2): Discard error messages from `ar d'. 1262: 1263: Tue Aug 22 00:31:51 1989 Richard Stallman (rms at apple-gunkies.ai.mit.edu) 1264: 1265: * final.c (output_source_line): In COFF, don't output `.ln 0'. 1266: 1267: * Makefile (stamp-gnulib2): Depend on gnulib. For parallel make. 1268: 1269: * stmt.c (uninitialized_vars_warning): Don't crash if DECL_RTL is 0. 1270: 1271: * i386.md (truncdfsf2): Pay attention whether stack top is dead. 1272: 1273: Mon Aug 21 22:02:40 1989 Richard Stallman (rms at apple-gunkies.ai.mit.edu) 1274: 1275: * reload1.c (choose_reload_regs): Don't use regno uninitialized, 1276: in the code that does find_equiv_reg. 1277: 1278: Sun Aug 20 00:06:47 1989 Richard Stallman (rms at apple-gunkies.ai.mit.edu) 1279: 1280: * m68k.md (movqi): Was outputting bad code for areg->mem and mem->areg. 1281: 1282: * explow.c (memory_address): Handle a hard reg in wrong reg class. 1283: 1284: * stmt.c (expand_function_end): Set REG_FUNCTION_VALUE_P in return 1285: reg when returning address of structure value block. 1286: 1287: * integrate.c (save_for_inline): Preserve integrated bit on insns. 1288: 1289: Sat Aug 19 14:20:07 1989 Richard Stallman (rms at apple-gunkies.ai.mit.edu) 1290: 1291: * combine.c (subst): Don't change (subreg:M (mem:N ...)) to 1292: (mem:M ...) if address is mode-dependent. 1293: 1294: * config.gcc: Copy and alter Makefile for any srcdir except `.'. 1295: In that case, make a .gdbinit as well. 1296: 1297: * sparc.md (andcbsi3, iorcbsi3, xorcbsi3): These are not commutative. 1298: 1299: * vax.md (cmpv and cmpzv patterns): Use COMPARE, not MINUS. 1300: 1301: Fri Aug 18 12:24:52 1989 Richard Stallman (rms at hobbes.ai.mit.edu) 1302: 1303: * alliant.md (movqi): Change move to mov in assembler code. 1304: 1305: * integrate.c (expand_inline_function): 1306: Handle args passed in regs and copied to slots reached via arg ptr. 1307: 1308: * out-sparc.c (output_delayed_branch): 1309: Do alter_subreg on operands of delay insn. 1310: 1311: * reload1.c (choose_reload_regs): Look for a reg to share 1312: before one that we won't share. 1313: 1314: * expr.h: Define OPTAB_MUST_WIDEN. 1315: * optabs.c (expand_binop): Handle that case. 1316: * expmed.c (expand_shift): Use that when widening lshift to ashift. 1317: 1318: * optabs.c (emit_cmp_insn): Use CONST0_RTX, not individual vars. 1319: 1320: * gnulib2.c (lsh*di3, ash*di3): Return right away if count is zero. 1321: Otherwise tried to shift by 32. 1322: Also replace constant 32 by something symbolic. 1323: 1324: * final.c (output_source_line): Output line number in COFF 1325: even if wrong file. 1326: 1327: Thu Aug 17 15:16:34 1989 Richard Stallman (rms at hobbes.ai.mit.edu) 1328: 1329: * Makefile (version.o): Make this a target; specify source file. 1330: (obstack.o): Likewise. 1331: 1332: * config.gcc (i860): New alternative. 1333: 1334: * i860.md (movstrsi): Record the alignment as operand 3. 1335: Renumber following (internal) operands. 1336: * out-i860.c (output_block_move): Rewrite as in out-sparc.c. 1337: (output_size_for_block_move): Likewise. And don't 1338: subtract alignment from the size. 1339: 1340: Wed Aug 16 13:27:12 1989 Richard Stallman (rms at hobbes.ai.mit.edu) 1341: 1342: * loop.c (combine_movables): Don't combine zero-extend 1343: registers that live outside the loop. 1344: 1345: * integrate.c (expand_inline_function): Use copy_to_mode_reg 1346: to set up this_struct_value_rtx, to handle sums right. 1347: 1348: * Makefile: Use $(srcdir) in bison output files used as deps. 1349: Supply some missing deps. 1350: (*.info, doc): *.info files go in srcdir. 1351: 1352: Tue Aug 15 00:11:12 1989 Richard Stallman (rms at hobbes.ai.mit.edu) 1353: 1354: * i860.md, tm-i860.h, out-i860.c: New files. 1355: 1356: * c-decl.c (duplicate_decls): Fix bug determining whether NEWDECL 1357: is a definition or just a decl. 1358: Combine code to preserve various things from old definition 1359: through a declaration. 1360: 1361: * config.gcc: Scan all args at beginning, setting variables. 1362: Arg of form -srcdir=... sets srcdir explicitly. 1363: srcdir now doesn't contain a slash, and is used with a slash. 1364: 1365: * Makefile (install): Copy header files and gcc.1 from srcdir. 1366: But copy float.h from current dir. (Remove that from USER_H.) 1367: (various): Use new variable INCLUDES to get the -I options. 1368: Add -I. at the beginning of these. 1369: (gnulib, gnulib2): Likewise, use SUBDIR_INCLUDES. 1370: Also, get source file from srcdir. 1371: Also, depend on $(CONFIG_H). 1372: (alloca.o): Get alloca.c from srcdir. 1373: 1374: * reload1.c (emit_reload_insns): Bug in last change: 1375: don't fail to set this_reload_insn. 1376: 1377: * Makefile (Bison rules): Specify $(srcdir) for target and source. 1378: (Explicit C rules): Specify $(srcdir)/ for source in commands. 1379: Use sed to eliminate `./' in normal case. 1380: (insn-*.c): Use $(srcdir) to run move-if-change. 1381: 1382: * config.gcc: Check . and .. for the sources. 1383: If in .., use that when making links. 1384: Also, copy Makefile, alter srcdir in it, and add a VPATH. 1385: 1386: * stmt.c (expand_end_case): When converting CONST_INT index 1387: to an INTEGER_CST, sign-extend if signed type. 1388: 1389: Mon Aug 14 13:51:08 1989 Richard Stallman (rms at hobbes.ai.mit.edu) 1390: 1391: * c-decl.c (duplicate_decls): Warn for qualifier mismatch 1392: only if pedantic; don't consider it a type mismatch. 1393: Merge the qualifiers of the two decls if the types match. 1394: 1395: * expmed.c (store_bit_field): For insv, memref displacement 1396: always counts in bytes, regardless of unit fetched. 1397: When checking predicate of op0, accept any mode. 1398: 1399: * optabs.c (expand_float): One call to can_float_p had args backwards. 1400: 1401: * loop.c (check_dbra_loop): Set the JUMP_LABEL of the new jump insn. 1402: Increment label's use count rather than storing 2. 1403: 1404: * Makefile: Instead of $<, which fails in certain makes, 1405: use $@ and then substitute in the name with sed. 1406: 1407: * out-sparc.c (output_scc_insn): Handle CC_REVERSED for ordered tests. 1408: Use orcc insns to store the result and set cc's for it. 1409: 1410: * sparc.md (scc combination patterns): 1411: Use operands[0] as basis for recorded cc value. 1412: 1413: * gnulib2.c (floatdidf, fixdfdi, fixunsdfdi): New functions. 1414: 1415: * gnulib.c (floatdidf, fixdfdi, fixunsdfdi): Deleted. 1416: (union longlong, union double_di): Deleted. 1417: (HIGH, LOW): Deleted. 1418: These were deleted because most did not handle full range of DI 1419: and they didn't use the right calling convention for DI. 1420: 1421: Sun Aug 13 13:06:45 1989 Richard Stallman (rms at hobbes.ai.mit.edu) 1422: 1423: * c-typeck.c (comptypes): Qualifiers must match. 1424: (Was already true for scalars.) 1425: Also, array elt qualifiers must match. 1426: 1427: * tm-apollo68.h (STRUCT_VALUE): Make it 0. 1428: (This was done before and lost.) 1429: * out-i386.c (function_epilogue): Use ret $4 to pop structure address. 1430: (This was done before and lost.) 1431: 1432: * out-i386.c (call_top_dead_p): Don't fail to check 1433: the rtx code of the insns themselves. 1434: (This was done before and lost.) 1435: 1436: * out-sparc.c (output_block_move): If align is 8, make it 4. 1437: 1438: * typeclass.h: New file. 1439: * expr.c: Include it. 1440: (expand_builtin): Use those codes in __builtin_classify_type. 1441: 1442: * Makefile (all, lang-c): Reinstall gnulib2. 1443: 1444: * Makefile (gnulib2): Don't give up if `ar d' fails. 1445: 1446: * expr.c (emit_library_call): New 2nd arg NO_QUEUE. 1447: All callers changed to pass it. 1448: * optabs.c (expand_binop, expand_unop): Don't call emit_queue. 1449: Instead, pass 1 for NO_QUEUE to emit_library_call. 1450: 1451: Sat Aug 12 12:05:22 1989 Richard Stallman (rms at hobbes.ai.mit.edu) 1452: 1453: * reload1.c (emit_reload_insns): Decision for where to put input 1454: reload insn is now common to ordinary case and auto-increment. 1455: Likewise, updating these positions afterward. 1456: 1457: * stmt.c (assign_parms): Treat last named arg as nameless. 1458: * expr.c (expand_call): Likewise. 1459: 1460: * explow.c (copy_to_mode_reg): Use force_operand for PLUS or MULT. 1461: (copy_addr_to_reg): Use copy_to_mode_reg. 1462: 1463: * expmed.c (store_bit_field): Handle case where insv rejects memrefs. 1464: 1465: * tm-convex.h (ASM_OUTPUT_ALIGN): Magic to handle the fact 1466: that this is not called when LOG is 0. 1467: 1468: Fri Aug 11 16:39:51 1989 Richard Stallman (rms at hobbes.ai.mit.edu) 1469: 1470: * emit-rtl.c (get_lowpart): For multi-word, in error check, 1471: test the unit size of the containing mode. 1472: 1473: * cccp.c (macroexpand, dump_all_macros): Return void. 1474: (macroexpand): Cast sprintf arg to char*. 1475: (error, warning, error_with_line): Declare first arg char*. 1476: 1477: Thu Aug 10 21:42:13 1989 Richard Stallman (rms at hobbes.ai.mit.edu) 1478: 1479: * expr.c (expand_call): 1480: Use force_operand to copy arithmetic to register. 1481: 1482: * dbxout.c (dbxout_symbol): Go back to N_FUN for const variable. 1483: 1484: * integrate.c (expand_inline_function): Use proper machine mode 1485: for a structure value in memory at address passed by caller. 1486: 1487: Wed Aug 9 15:21:36 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1488: 1489: * config.gcc: Delete unnecessary variable assignments in case stmt. 1490: (isi68-nfp): New alternative. 1491: 1492: * combine.c (try_combine): Don't substitute for a register 1493: which is being explicitly clobbered. 1494: 1495: * This change was requested for C++. 1496: * varasm.c (decode_reg_name, make_decl_rtl): Arg ASMSPEC now char *. 1497: * toplev.c (rest_of_decl_compilation): Likewise. 1498: * c-decl.c (finish_decl): Change call to rest_of_decl_compilation. 1499: 1500: * tree.h (struct tree_decl): Pack machine_mode into 8 bits. 1501: 1502: * explow.c (memory_address, copy_to_reg): 1503: Use force_operand to copy arithmetic to register. 1504: 1505: * tm-isi68-nfp.h: New file. 1506: * tm-isi68.h: Allow overriding TARGET_DEFAULT, and let that 1507: change CPP_SPEC and LINK_SPEC. 1508: (ASM_FILE_START): No `.globl fltused' if soft-float. 1509: 1510: Tue Aug 8 21:50:52 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1511: 1512: * varasm.c (const_hash): For constructor, mask TREE_TYPE to HASHBITS 1513: bits and take modulo, so we don't get negative numbers. 1514: 1515: * varasm.c (record_constant_1, compare_constant_1): 1516: Record and compare the width of an integer. 1517: 1518: * varasm.c (assemble_function, assemble_variable, get_or_assign_label): 1519: (force_const_mem): Don't call ASM_OUTPUT_ALIGN if boundary is 1. 1520: 1521: * c-decl.c (duplicate_decls): Consider const and volatile as part of 1522: type when checking for match and when installing new type into OLDDECL. 1523: 1524: * expr.c (do_store_flag): Make sure target fits operand predicate. 1525: Also, omit the AND insn when true-value is 1 1526: and the mode we get is wider than the one we want. 1527: 1528: * genrecog.c (main): Make insn-recog.c include real.h. 1529: 1530: Mon Aug 7 16:58:56 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1531: 1532: * genemit.c (main): Define `operands' as `emit_operands', 1533: not `recog_operands'. 1534: 1535: * reload1.c (emit_reload_insns): Don't copy back a dead output reg. 1536: 1537: Sun Aug 6 13:56:53 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1538: 1539: * sdbout.c (plain_type_1, sdbout_one_type): Use the main variant. 1540: (sdbout_type_fields): No need to check TREE_ASM_WRITTEN here, 1541: since sdbout_one_type does that. 1542: 1543: * expr.c (do_store_flag): Ensure the CLOBBER doesn't clobber an input. 1544: 1545: * fold-const.c (fold_convert): Attempt to avoid overflow 1546: when converting real to integer. Use unsigned conversion for 1547: low part; always convert as positive and then change sign; 1548: subtract high part before converting low part. 1549: Also, check for real values out of range for chosen int type; 1550: warn and do not convert. 1551: 1552: * tm-hp9k320.h (CPP_SPEC) [not HPUX_ASM]: Don't define mc68000 here. 1553: (CPP_PREDEFINES): Remove mc68k, add m68k and mc68000. 1554: [HPUX_ASM]: Define CPP_SPEC here as in the other case, 1555: but add __HPUX_ASM__ to each alternative. 1556: 1557: * tm-m68k.h (FUNCTION_EPILOGUE): Call new hook FUNCTION_EXTRA_EPILOGUE. 1558: * tm-altos3068.h (FUNCTION_EXTRA_EPILOGUE): Define it. 1559: 1560: * Makefile: Use $< wherever appropriate. 1561: Also put definitions of customization vars before the comments 1562: saying how to override them. 1563: 1564: Sat Aug 5 14:15:39 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1565: 1566: * i386.md (sne): Typo in opcode name. 1567: 1568: * tree.h (struct tree_identifier): Delete redundant/unused error_locus. 1569: 1570: Fri Aug 4 00:04:10 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1571: 1572: * varasm.c (const_hash, compare_constant_1, record_constant_1): 1573: Compare types only for record constructors, not for array constructors. 1574: 1575: * dbxout.c (dbxout_parms): When outputing parm from home in local slot, 1576: with address from the RTL, don't do big-endian correction on it. 1577: 1578: * c-typeck.c (build_unary_op): Do default conversion for unary +. 1579: 1580: * cccp.c (rescan): Accept comments between macro and its args. 1581: 1582: * c-decl.c (lang_decode_option): -traditional implies writable strings. 1583: 1584: * cccp.c (trigraph_pcp): Make warning msg more accurate. 1585: 1586: * c-typeck.c (c_expand_asm_operands): Delete the default promotion 1587: which was inserted mysteriously since 1.35. 1588: 1589: * global-alloc.c (global_conflicts): Allocate regs_set only once. 1590: Make it twice as big since clobbers are stored twice. 1591: 1592: * sparc.md (block move patterns): Record and use alignment operand. 1593: * out-sparc.c (output_block_move): Get alignment from there. 1594: (output_size_for_block_move): Greatly simplified. 1595: 1596: * tm-i386v.h (PCC_BITFIELD_TYPE_MATTERS): Define it. 1597: 1598: * stor-layout.c (layout_record): Anonymous bitfields don't affect 1599: overall structure alignment, in PCC_BITFIELD_TYPE_MATTERS case. 1600: 1601: * loop.c (strength_reduce): Prevent hard reg from becoming biv or giv. 1602: 1603: * combine.c (subst): Simplify (eq (neg ...) (const_int 0)). 1604: 1605: Thu Aug 3 13:08:05 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1606: 1607: * cse.c (fold_rtx): For (op var const) special cases, also check 1608: for constant as first argument. 1609: 1610: * c-decl.c (pushtag): For global_binding_level, make permanent nodes. 1611: 1612: * expr.c (do_store_flag): Put the CLOBBER before the comparison. 1613: 1614: * expr.c (emit_push_insn): Conditionalize recent changes 1615: on no FIRST_PARM_CALLER_OFFSET, so they don't happen on sparc. 1616: 1617: * out-sparc.c (gen_scc_insn): 1618: Don't be confused by CLOBBER emitted by do_store_flag. 1619: Skip past such insns looking for last_insn. 1620: Don't alter last_insn; instead, patch it to a NOTE and emit new insn. 1621: 1622: * varasm.c (const_hash, compare_constant_1, record_constant_1): 1623: For a CONSTRUCTOR, hash/compare/record type as well as elts. 1624: 1625: * cse.c (cse_insn): July 18 change was wrong. 1626: Now, invalidate at the beginning any regs explicitly clobbered 1627: so they will not be substituted for if they appear as inputs. 1628: * sparc.md (movstrsi): Copy addresses to temp regs, then use them. 1629: 1630: * loop.c (record_giv): When comparing life spans for setting 1631: ->forces, use luids consistently, not uids. 1632: 1633: * sparc.md (ashlsi3, ashrsi3, lshrsi3): Truncate constants mod 32. 1634: 1635: Wed Aug 2 17:50:30 1989 Richard Stallman (rms at sugar-bombs) 1636: 1637: * mips.md (patterns to move a subreg): Deleted. 1638: 1639: Sun Jul 30 19:23:13 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1640: 1641: * gcc.c (process_command): Skip `-b' like `-B', in 2nd scan. 1642: 1643: * xm-sunos4.h: Deleted. 1644: * tm-sparc.h, tm-sun3.h: Define LINK_SPEC here instead. 1645: * tm-sun4os3.h: Undef it here. 1646: * tm-sun3os3.h, tm-sun3os3nf.h: New files to undef LINK_SPEC. 1647: * config.gcc: Use those new files where needed. 1648: 1649: * config.gcc: Delete sun3-fpa and sun3-os4-fpa. 1650: * tm-sun3-fpa.h: Deleted. 1651: 1652: * cccp.c (do_include): Mention even non-ex files for -M. 1653: 1654: * out-mips.c (addr_compensate): Handle HImode. 1655: * mips.md (Set HI from subreg of SI rule): 1656: Allow operand in memory. 1657: 1658: * mips.md (cmpqi, cmphi): Patterns deleted. 1659: (cmpsi, cmpsf, cmpdf): Change predicates to register_operand. 1660: 1661: * cexp.y (rule for ?:): Result is unsigned if either operand is. 1662: 1663: * expr.c (emit_push_insn): If PARTIAL > 0, load the partial regs 1664: at the end, in case the rest of the push does a function call. 1665: 1666: * reload1.c (alter_frame_pointer_addresses): 1667: After altering a PLUS, re-fetch CODE before scanning subexps. 1668: 1669: * stmt.c (assign_parms): Don't copy the arg pointer value 1670: if it is also the frame pointer. If we do copy it, 1671: inhibit REG_EQUIV notes for parms copied into pseudo regs 1672: 1673: * integrate.c (copy_for_inline, copy_rtx_and_substitute): 1674: Set up filename and lineno fields of copy of ASM_OPERANDS. 1675: 1676: Sat Jul 29 18:58:49 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1677: 1678: * integrate.c (expand_inline_function): Handle struct-value-addr 1679: passed in memory just like that passed in reg: 1680: in either case, translate the pseudo-reg made in 1681: expand_function_start. 1682: (function_cannot_inline_p): Permit inlining in that case. 1683: But reject it if using pcc-style return convention. 1684: 1685: * stor-layout.c (layout_type): Consider STRICT_ALIGNMENT 1686: for ARRAY_TYPE just as for RECORD_TYPE. 1687: 1688: Wed Jul 26 12:54:59 1989 Richard M. Stallman (rms at mipos3) 1689: 1690: * cse.c (fold_rtx): If WIDTH is zero for binary operator, 1691: look at the modes of the original operands. 1692: 1693: * cse.c (cse_insn): Set prev_insn_explicit_cc0, for (set (cc0) INT). 1694: (predecide_loop_entry): Likewise. 1695: (fold_rtx): Look at it, for (if_then_else (cc0) ...). 1696: 1697: * expr.c (expand_builtin): Pass back return value from 1698: __builtin_saveregs. 1699: 1700: * stmt.c (assign_parms): Allow arg pointer reg not to be fixed. 1701: If it is not, copy it to a pseudo reg and use that later on. 1702: 1703: Tue Jul 25 15:42:04 1989 Richard M. Stallman (rms at mipos3) 1704: 1705: * expr.c (expand_builtin): New builtin __builtin_classify_type. 1706: * tree.h, c-decl.c: Additional support. 1707: 1708: * flow.c (mark_used_regs): Treat arg pointer like stack pointer. 1709: 1710: * expr.c (emit_library_call): 1711: Pass (tree)0 as TYPE arg to FUNCTION_ARG, etc. 1712: 1713: Mon Jul 24 11:18:10 1989 Richard M. Stallman (rms at mipos3) 1714: 1715: * loop.c (regs_match_p): Fix braino. 1716: 1717: * integrate.c (copy_for_inline, copy_rtx_and_substitute): 1718: Make ASM_OPERANDS constraint vector be shared like operand vector. 1719: 1720: * xm-iris.h: New file. 1721: 1722: * Makefile (stage4): New target. 1723: 1724: * gnulib2.c (badd, bsub, bmul, bdiv): If want long value from 1725: arithmetic, widen the operands first. 1726: (__div_internal aka bdiv): Rename to __bdiv. 1727: 1728: * sparc.md (seq combination patterns): Fully initialize cc_status. 1729: 1730: * expr.c (emit_push_insn): Like July 19 change, for BLKmode. 1731: 1732: * stmt.c (expand_function_end): Stack-restore for alloca 1733: is now done after the return_label. 1734: 1735: * loop.c (scan_loop): Set MAYBE_NEVER for conditional jump to loopbeg. 1736: 1737: * integrate.c (copy_rtx_and_substitute): Allow mapping of hard regs. 1738: (expand_inline_function): Always create parm_map. 1739: Handle structure value that way if nec. even if no parms. 1740: Otherwise, find the pseudo used in the function to hold the 1741: structure address, and map it to a new pseudo. 1742: 1743: * expr.c (expand_call): 1744: Use mark_addressable to make FNDECL addressable. 1745: * c-typeck.c (mark_addressable): No longer static. 1746: 1747: * cse.c (cse_insn): Modify last change: don't canon_reg 1748: for hard regs inside clobbers. 1749: 1750: * expr.c (expand_assignment): ALIGN arg to store_field comes from 1751: the structure, not from the value stored. 1752: 1753: Fri Jul 21 16:23:45 1989 Richard M. Stallman (rms at mipos3) 1754: 1755: * stmt.c (warn_if_unused_value): Don't warn for a cast 1756: around a MODIFY_EXPR. 1757: 1758: * tm-hp9k320.h (PCC_STATIC_STRUCT_RETURN): Undefine it. 1759: (CPP_PREDEFINES): Add some. 1760: 1761: * combine.c (simplify_and_const_int): 1762: Simplify (and (ashiftrt (zero_extend FOO) N) M). 1763: 1764: * optabs.c (expand_binop): When widening, 1765: for some operations we need not actually extend. 1766: 1767: Thu Jul 20 16:16:35 1989 Richard M. Stallman (rms at mipos3) 1768: 1769: * Makefile (insn-emit.o): Depend on insn-codes.h. 1770: 1771: * stmt.c (check_for_full_enumeration_handling): 1772: Handle all cases for TYPE_NAME of enum type. 1773: 1774: Wed Jul 19 17:00:39 1989 Richard M. Stallman (rms at mipos3) 1775: 1776: * fold-const.c (fold_convert): Don't fail to force_fit_type. 1777: 1778: * expr.c (emit_push_insn): When pushing only part of scalar on stack, 1779: adjust stack offset not to count the words not pushed. 1780: 1781: * stmt.c (expand_function_end): Always put return structure address 1782: in return register. 1783: 1784: * c-typeck.c (process_init_constructor): Assume 0 for nameless field. 1785: 1786: * recog.c (general_operand, memory_operand): 1787: Check validity of mem address using the mode of the MEM. 1788: 1789: * fixincludes: When calling egrep, use redirect, not -s. 1790: 1791: Tue Jul 18 11:18:55 1989 Richard M. Stallman (rms at mipos3) 1792: 1793: * Makefile (bootstrap*): Pass value of libdir down. 1794: 1795: * cse.c (cse_insn): Do canon_reg on any CLOBBERs and USEs. 1796: 1797: * cse.c (cse_insn): Don't use no_labels_between_p to check 1798: for jump to following label; find following label and compare. 1799: 1800: * combine.c (try_combine): Don't substitute into subreg(x)=y 1801: if modes of x and y are not tieable. 1802: 1803: * out-i386.c (call_top_dead_p): Don't fail to check 1804: the rtx code of the insns themselves. 1805: 1806: * i386.md (tstsf, tstdf): Don't discard TOS if not dead. 1807: 1808: * stupid.c: Don't use regs with PRESERVE_DEATH_INFO_REGNO_P 1809: for pseudos which live across jumps or labels. 1810: (stupid_life_analysis): Update last_jump_suid, last_label_suid. 1811: (stupid_mark_refs): Use those to set reg_crosses_blocks. 1812: (stupid_find_reg): Check that data, passed from stupid_life_analysis. 1813: 1814: * toplev.c (main): Avoid using caddr_t. 1815: 1816: * mips.md (inverted bgeu peephole): Typo in opcode. 1817: 1818: Mon Jul 17 12:29:45 1989 Richard M. Stallman (rms at mipos3) 1819: 1820: * i386.md (mulb patterns): Turned off due to assembler bug. 1821: 1822: * rtl.c (read_name): Use 0, not NULL, for character. 1823: 1824: * alliant.md (movqi): Typos in mov opcodes. 1825: 1826: * tm-sparc.h, tm-spur.h (CONST_DOUBLE_OK_FOR_LETTER_P): 1827: Use CONST_DOUBLE_LOW, etc. 1828: 1829: * stmt.c (expand_function_end): Check value of EXIT_IGNORE_STACK, 1830: not just whether defined. 1831: 1832: * i386.md (seq, etc.): New patterns. 1833: * expr.c (do_store_flags): If result is wrong mode, 1834: ensure rest of bits are cleared. 1835: Before storing low part of TARGET, emit a CLOBBER for it. 1836: 1837: * i386.md (load address): Use an immediate add if possible. 1838: 1839: * i386.md (ashlsi3): Don't generate leal; shift is faster. 1840: 1841: * Now struct_value_rtx is 0 to treat it as a parm. 1842: * expr.c (expand_call): Implement that. 1843: * integrate.c (expand_inline_function): Don't freak out. 1844: * tm-apollo68.h (STRUCT_VALUE): Make it 0. 1845: 1846: * On 386, called function must pop the structure value address. 1847: * tm-i386.h (STRUCT_VALUE): Don't change this. 1848: Address is now pushed but not counted as a parm. 1849: * out-i386.c (function_epilogue): Use ret $4 to pop that address. 1850: * output.h: Declare the current_function_... variables. 1851: * final.c: Include output.h. 1852: 1853: * varasm.c (make_decl_rtl): Insert missing `else', validating reg decl. 1854: 1855: Fri Jul 14 14:12:17 1989 Richard M. Stallman (rms at mipos3) 1856: 1857: * out-sparc.c, out-spur.c (output_move_double): 1858: Fixed typo, addreg0 => addreg1. 1859: 1860: * c-decl.c (lang_decode_option): Handle -fshort-enums. 1861: (finish_enum): In that case, give enum minimum number of bytes. 1862: * toplev.c (main): Default flag_short_enums. 1863: * toplev.c, flags.h (flag_short_enums, flag_signed_char): 1864: Define those flags here, not in c-decl.c and c-tree.h. 1865: 1866: * i386.md (mulqi3, umulqi3): New patterns. 1867: 1868: * c-convert.c (convert_to_integer): Tighter restrictions on 1869: distributing truncation through max, min, and multiplication. 1870: If operands were extended from unsigned, make the operation 1871: unsigned. 1872: 1873: * cccp.c (main): Fix bug where #include <...>, when -I- was used, 1874: failed to search standard dirs and/or searched some dirs 1875: intended only for #include "...". 1876: 1877: * tm-mips.h (FUNCTION_PROLOGUE,FUNCTION_EPILOGUE): 1878: Increment push_loc after store or load, not before. 1879: 1880: Thu Jul 13 11:24:30 1989 Richard M. Stallman (rms at mipos3) 1881: 1882: * emit-rtl.c (add_insn_after): Don't update last_insn 1883: if insn is in a sequence. Instead, update end of sequence. 1884: 1885: * stmt.c (fixup_var_refs): Update end of stacked sequence. 1886: 1887: * stmt.c (expand_function_start): Set result rtl before assign_parms. 1888: 1889: * optabs.c (emit_unop_insn): Set PREV_INSN after preliminaries. 1890: 1891: * stmt.c (warn_if_unused_value): Do CONVERT_EXPR like NOP_EXPR. 1892: 1893: * stmt.c (expand_function_start): Make sure parm_birth_insn 1894: is a NOTE. 1895: 1896: * Makefile (clean): Delete tmp-insn-*. 1897: 1898: Wed Jul 12 14:24:12 1989 Richard M. Stallman (rms at mipos3) 1899: 1900: * i386.md (mulqi3): Restrict operand 2 to `q' reg. 1901: 1902: * reload1.c (choose_reload_regs): Check HARD_REGNO_MODE_OK 1903: for regs to be inherited. 1904: Also check HARD_REGNO_MODE_OK at end for modes of both 1905: reload_in and reload_out as well as reload_mode. 1906: 1907: * Makefile (maketest): Update for config subdir. 1908: 1909: Tue Jul 11 16:29:57 1989 Richard M. Stallman (rms at mipos3) 1910: 1911: * integrate.c (copy_decl_tree): Copy TREE_USED of each LET_STMT. 1912: 1913: * make-cc1.com: Changes by Angel Li. 1914: Define variables CC, CFLAGS, LDFLAGS, LIBS. 1915: Use LIBR library, not LIB. Specify a /INC in CFLAGS. 1916: Use MCR to run the gen* files. Add some comments. 1917: * make-cccp.com: Similar. 1918: * config-gcc.com: New file. 1919: 1920: * stmt.c (assign_parms): Compute parm alignment from passed type. 1921: 1922: * c-typeck.c (actualparameterlist): Instead of truncating 1923: and then promoting for PROMOTE_PROTOTYPES, go straight to int. 1924: 1925: * c-parse.y (setspecs): Save old current_declspecs on a stack. 1926: (decl, component_decl): Restore from that stack. 1927: 1928: Wed Jul 5 15:01:00 1989 Richard Stallman (tiemann at yahi) 1929: 1930: * tm-aix386.h, xm-aix386.h: New files. 1931: 1932: * loop.c (check_dbra_loop): Handle either test or compare 1933: for insn two before loop end; detect and reject anything else. 1934: 1935: * expr.c (expand_call, expand_builtin): If alloca is done, 1936: set current_function_calls_alloca. 1937: * stmt.c (expand_function_end): If so, generate code to save and 1938: restore the stack pointer, if not EXIT_IGNORE_STACK. 1939: 1940: * ns32k.md (movsi): Fixes for moving from fp or sp. 1941: 1942: * tm-mips.h (ASM_OUTPUT_ASCII): Start new .ascii every 256 chars. 1943: 1944: Tue Jul 4 11:01:00 1989 Richard Stallman (tiemann at yahi) 1945: 1946: * reload1.c (choose_reload_targets): Don't depend on 1947: reload_spill_index when cancelling invalid inheritance. 1948: Also, abort if trying to preserve death info 1949: on a spill reg used in operand addressing. 1950: 1951: * fold-const.c (fold): Don't fold "foo"[n] here. 1952: * expr.c (expand_expr): Do it here. 1953: Handle wide strings correctly. 1954: 1955: * i386.md (movsf,movdf): Disallow mem-mem moves. 1956: Enable mem-to-reg moves. 1957: 1958: * c-decl.c (finish_{struct,enum}): Warn if inside parm decls. 1959: (in_parm_level_p, declare_parm_level): Record when inside. 1960: * c-parse.y (parmlist, parmlist_or_identifiers): Call 1961: declare_parm_level. 1962: 1963: * c-decl.c (parmlist_tags_warning): Revise warning message text. 1964: 1965: * tm-hp9k320.h (ASM_SPEC): Pass -V switch to assembler. 1966: 1967: * tm-sun386.h (ASM_START_FILE): Truncate filename to 14 chars. 1968: 1969: * c-typeck.c (decl_constant_value): Use only literal values. 1970: 1971: Sat Jul 1 17:29:54 1989 Richard Stallman (tiemann at yahi) 1972: 1973: * integrate.c (copy_rtx_and_substitute): Don't make nested SUBREGs. 1974: 1975: * stmt.c (expand_function_start): Set new global 1976: current_function_returns_pointer. 1977: 1978: * stmt.c (get_frame_size): Return the size, not the offset. 1979: * integrate.c (expand_inline_function): When setting FP_DELTA, 1980: compensate for this change. 1981: * tm-alliant.h,tm-mips.h,tm-sparc.h,tm-tahoe.h 1982: (FUNCTION_PROLOGUE,FUNCTION_EPILOGUE): Compensate. 1983: 1984: * out-mips.c (function_arg): Return 0 for BLKmode. 1985: 1986: * tm-mips.h (FUNCTION_INCOMING_ARG): Delete; no register windows. 1987: * out-mips.c (function_inarg): Delete; no longer used. 1988: 1989: * mips.md (addsi3): Use register_operand for operands 0,1. 1990: (load address): New pattern, following movsi. 1991: (fix_trunc*): Use trunc insn, not cvt. 1992: (cmpfs + bgt peephole): Operands were backwards in template. 1993: 1994: * gcc.c (main): Record in explicit_link_files which input files go 1995: straight to linker. If linker is not run, complain about them. 1996: (execute): Increment execution_count, to show we were called. 1997: 1998: * gcc.c (validate_all_switches): Check ASM_SPEC, CC1_SPEC, etc., 1999: so we find all switches that could be valid. 2000: 2001: * varasm.c (output_constructor): Position fields according to 2002: DECL_OFFSET; don't try to compute alignment here. 2003: 2004: * tm-sparc.h (PCC_BITFIELD_TYPE_MATTERS): Define this. 2005: 2006: * reload1.c (emit_reload_insns): Fix stupid error in last change. 2007: 2008: * c-decl.c (duplicate_decls): If redeclaring builtin, give error is 2009: type mismatched; otherwise warn only if -W. 2010: 2011: * jump.c (jump_back_p): Verify that PREV is not null. 2012: 2013: Mon Jun 26 13:50:28 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 2014: 2015: * reload1.c (choose_reload_regs): If number of reloads needing 2016: spill regs exceeds n_spills, don't inherit any reloads. 2017: 2018: * sdbout.c (sdbout_record_type_name): Dumb error in last change. 2019: 2020: * reload1.c (emit_reload_insns): Extend last change: don't use 2021: equiv reg if reg is in use at same stage of insn, either. 2022: 2023: Sun Jun 25 00:00:56 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 2024: 2025: * reload1.c (emit_reload_insns): Don't use an equivalent register 2026: to reload from, if that register was used for reloading 2027: earlier in this insn. 2028: 2029: * sdbout.c (sdbout_record_type_name): Handle a TYPE_DECL as the 2030: type name. Get rid of TYPE_TAG_NAME as separate macro. 2031: 2032: * optabs.c (emit_cmp_insn): Args to memcmp are addresses, not blocks. 2033: 2034: * reload1.c (choose_reload_regs): Typo, clearing reload_override_in. 2035: 2036: * tm-i386.h: Add register classes SIREG and DIREG. 2037: (enum reg_class, REG_CLASS_NAMES): Define class names. 2038: (REGNO_REG_CLASS, REG_CLASS_CONTENTS): Define their contents. 2039: (REG_CLASS_FROM_LETTER): Define letters `S' and `D'. 2040: 2041: Sat Jun 24 00:17:16 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 2042: 2043: * c-decl.c (keep_next_level): New function. 2044: (struct binding): New slot `keep' says make a LET_STMT for this level. 2045: (pushlevel, poplevel): Implement that. 2046: * c-parse.y (stmt exprs): Call keep_next_level. 2047: 2048: * sdbout.c (plain_type_1): Handle REFERENCE_TYPE, METHOD_TYPE. 2049: Correct for size less than 0. 2050: (plain_type): Correct for size less than 0. 2051: 2052: * global-alloc.c (mark_reg_set): For CLOBBERs, call mark_reg_clobber. 2053: 2054: * reload1.c (order_regs_for_reload): Among regs explicitly used, 2055: prefer those used less often. 2056: 2057: * reload1.c (choose_reload_regs): If we find alternate place 2058: to reload from, verify it after all reloads assigned. 2059: New variable reload_override_in used for this. 2060: 2061: * combine.c (record_dead_and_set_regs): Look inside SIGN_EXTEND and 2062: STRICT_LOW_PART for place being set. 2063: (subst): When using reg_last_set to find what a register contains, 2064: verify the entire register was set. 2065: 2066: * toplev.c (rest_of_decl_compilation): Report invalid register name. 2067: 2068: Fri Jun 23 13:19:41 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 2069: 2070: * tm-hp9k3bsd.h: New file. 2071: * config.gcc: New target hp9k320-bsd. 2072: 2073: * gcc.c (record_temp_file): Don't add a name twice to one queue. 2074: 2075: * stmt.c (expand_expr_stmt): Call warn_if_unused_value. 2076: (warn_if_unused_value): Code extracted from expand_expr_stmt. 2077: Recurse to handle COMPOUND_EXPR. Don't warn about COND_EXPR. 2078: 2079: * tm-encore.h (DBX_REGISTER_NUMBER): Override tm-ns32k.h; 2080: return operand unchanged. 2081: 2082: * reload1.c (emit_reload_insns): Don't use recog_memoized 2083: on an asm. 2084: 2085: * jump.c (delete_insn): Update last_insn. 2086: * emit-rtl.c (set_last_insn): New function. 2087: 2088: * reload1.c (reload): Put a note at end of insn chain. 2089: 2090: * gcc.c: Put cpp output of .S file into a .s file. 2091: 2092: Thu Jun 22 22:14:35 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 2093: 2094: * optabs.c (expand_binop, expand_unop): Emit queue before library call. 2095: It is done within emit_library_call, and cse screws up if there is a 2096: queued insn in the middle of a cse-able sequence. 2097: 2098: Wed Jun 21 11:57:22 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 2099: 2100: * tm-mips.h (CPP_PREDEFINES): Define -Dunix. 2101: 2102: * reload.c (combine_reloads): Combined reload needed for entire insn. 2103: 2104: * c-parse.y (yylex): Braino checking for out-of-range escape seq. 2105: 2106: * stor-layout.c (layout_union): Handle PCC_BITFIELD_TYPE_MATTERS. 2107: (layout_struct): Don't let a bitfield cross the storage unit 2108: of its type, if PCC_BITFIELD_TYPE_MATTERS. 2109: 2110: Tue Jun 20 00:03:48 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 2111: 2112: * varasm.c (get_or_assign_label): Let CONSTANT_ALIGNMENT specify 2113: alignment of the constant. 2114: CONSTANT_ALIGNMENT is a new optional macro. 2115: 2116: * varasm.c (force_const_mem, get_or_assign_label): 2117: Make buffer bigger. 2118: 2119: * toplev.c (print_target_switch_defaults): New fn called for -version. 2120: 2121: * toplev.c (compile_file): Detect error closing output file. 2122: 2123: * stor-layout.c (fixup_unsigned_type): Don't shift by 32. 2124: 2125: * stmt.c (emit_case_nodes): Pass UNSIGNEDP along to emit_cmp_insn. 2126: 2127: * stmt.c (expand_end_case): If index is narrow and cannot be 2128: directly compared, widen it just once. 2129: 2130: * c-parse.y (yylex): Support multi-character constants. 2131: Thorough rewrite of char constant parsing. 2132: 2133: * c-decl.c (pushdecl): Replace local extern function decl with 2134: previous global decl if latter is inline, or builtin, or has 2135: more arg type info. 2136: 2137: * hard-params.c (xmalloc): Define it, for alloca.c. 2138: 2139: * tm-hp9k320.h (STANDARD_STARTFILE_PREFIX): Override -D in Makefile. 2140: 2141: * expmed.c (store_fixed_bit_field): Avoid shift by 32. 2142: 2143: * stmt.c (expand_function_start): Emit a NOTE_INSN_FUNCTION_BEG. 2144: * final.c (final_scan_insn): For SDB output, do the 2145: sdbout_begin_function at that note. 2146: 2147: * reload1.c (choose_reload_regs): If a reload reg inherits 2148: from a previous reload, verify safety after all reloads are assigned. 2149: 2150: * c-decl.c (build_enumerator): Remove no-op casts. 2151: 2152: * reload.c (find_reloads): If an earlyclobber operand matches 2153: an input operand it is constrained to match, that's not a problem. 2154: If an earlyclobber operand loses due to earlyclobber, its matching 2155: input operand also loses. 2156: 2157: * reload1.c (choose_reload_regs): Don't use result of find_equiv_reg 2158: if that reg is used for reloading in an earlier part of the insn. 2159: 2160: * cse.c (fold_rtx): If WIDTH is 0, don't try sign-extending ARG0, ARG1. 2161: 2162: * Makefile (hard-params*): Use $(OLDCC). 2163: 2164: * c-typeck.c (c_alignof): No warning for -pedantic. 2165: 2166: * c-parse.y (readescape): Don't have both error and warning 2167: on one hex escape. 2168: 2169: * c-parse.y (yylex): Treat vertical tab as white space. 2170: (skip_white_space): Likewise. 2171: 2172: * c-parse.y (datadef): If pedantic, warn for stray semicolon. 2173: 2174: * expr.c (expand_increment): Pass accurate unsignedp arg 2175: to expand_binary_op. 2176: 2177: Mon Jun 19 13:36:20 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 2178: 2179: * config.gcc (news, news-gas): Use xm-m68k.h. 2180: 2181: * final.c (output_asm_label, output_addr_const): Make buf bigger. 2182: 2183: * cexp.y (main): Handle EOF on input. 2184: (lookup, warning): Provide as a dummy. 2185: (is_idchar, is_idstart): Declare as unsigned char. 2186: 2187: * cexp.y (parse_escape): Use TARGET_NEWLINE, etc., as values. 2188: Support hex escapes. Warn if octal or hex escape doesn't fit in char. 2189: 2190: * cexp.y (yylex): Sign-extend char constants if appropriate. 2191: 2192: * genemit.c: Make insn-emit.c include insn-flags.h. 2193: 2194: * gcc.c: Move record_temp_file past page which declares vflag. 2195: 2196: * integrate.c (expand_inline_function): If copying an insn with 2197: a REG_EQUIV note, make a similar note. 2198: 2199: * Allow reload regs to be reused for parts of an insn. 2200: * reload.c (find_reloads): Classify each reload for which part 2201: of the insn it is needed in. 2202: (find_reloads_address, etc.): Pass down the overall operand 2203: that this is part of, to record it on address reloads. 2204: (push_reload): Record that for each reload. 2205: * reload1.c (reload): Compute maximum needs of any part of the insn. 2206: (choose_reload_regs): Part of old choose_reload_targets. 2207: Hairier criteria for inheriting reloads and for which ones are 2208: available for the next insn to inherit. 2209: (emit_reload_insns): The rest of old choose_reload_targets. 2210: Emit reload insns in proper order according to where they are needed. 2211: * Record `reload_reg_in_use' separately for each part of the insn. 2212: (mark_reload_reg_in_use): New function. 2213: (reload_reg_free_p, reload_reg_free_before_p): New functions. 2214: (reload_reg_reaches_end_p): New function. 2215: 2216: * expr.c (expand_expr): Emit queue in X+=(Y?Z:A) optimization. 2217: 2218: * rtlanal.c (rtx_equal_p): Check vectors have same length. 2219: 2220: Sun Jun 18 12:16:14 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 2221: 2222: * stmt.c (expand_expr_stmt): Maybe warn if top-level operator 2223: makes an unused result. 2224: 2225: * gcc.c (delete_temp_files, delete_failure_queue): 2226: If -v, report failures in unlink. 2227: 2228: * Makefile (includes): New target to run fixincludes. 2229: (install): Swap arms of if-statement. 2230: 2231: Sat Jun 17 12:41:53 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 2232: 2233: * stor-layout.c (layout_union): Arg to error_with_decl was missing. 2234: 2235: * ns32k.md (movsf): Use CONST_DOUBLE_LOW to extract from CONST_DOUBLE. 2236: 2237: * loop.c (consec_sets_giv): Change type of force, force2. 2238: 2239: * combine.c (dump*): Declare arg as FILE*. 2240: 2241: * Makefile (clean): Delete hard-params. 2242: 2243: * flow.c (life_analysis): Use a special obstack for the temporary 2244: regsets. 2245: 2246: * m68k.md (clr pattern): On 68000, use moveq to clear data reg. 2247: 2248: * gvarargs.h: File varargs.h renamed. 2249: The old name conflicted with <varargs.h>, now that -I. is used. 2250: * tree.c, expr.c, emit-rtl.c: Change #include commands. 2251: * Makefile (install): Install gvarargs.h under name varargs.h. 2252: * gcc.c: Include gvarargs.h, not system's varargs.h. 2253: 2254: * Makefile: Use -I$(srcdir) before -I$(srcdir)/config. 2255: * config/tm.h: Deleted; didn't work if config was a symlink. 2256: 2257: * cse.c (cse_insn): Record location of inner_dest 2258: so it can be replaced properly if a new MEM rtx is made. 2259: 2260: Fri Jun 16 14:17:20 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 2261: 2262: * make-cc1.com: Compile and link rtlanal.c. 2263: 2264: * c-typeck.c (build_array_ref): Call fold on the array ref. 2265: * fold-const.c (fold): Simplify array ref of string constant. 2266: 2267: * stmt.c (expand_asm_operands): Fix error message. 2268: 2269: * Makefile (gnulib2): Remove old members before compiling new. 2270: Fix stupid errors. 2271: * gnulib2.c (__cmpdi2, __ucmpdi2): Typos in names of interface unions. 2272: 2273: * genconfig.c (main): Don't write MAX_CLOBBERS_PER_INSN; obsolete. 2274: Add 3 to MAX_RECOG_OPERANDS. 2275: 2276: * cse.c (fold_cc0): Extra arg specifies machine mode. 2277: Callers changed. 2278: (cse_insn): Record original mode of each src for this purpose. 2279: 2280: Thu Jun 15 12:35:18 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 2281: 2282: * gnulib2.c (_cmpdi2, _ucmpdi2): Moved here from gnulib.c. 2283: Use long long for argument type. 2284: 2285: * rtlanal.c (may_trap_p): Moved here from loop.c. 2286: Return 1 for division by explicit zero. 2287: 2288: * reload1.c (eliminate_frame_pointer, alter_frame_pointer_addresses): 2289: Rerecognize insns which are changed by this. 2290: 2291: * i386.md (call_value): Don't return prematurely. 2292: 2293: * alliant.md (movqi): Handle moving Aregs to mem and vice versa. 2294: (bftst -> btst): Restrict to bitpos less than 8 2295: so operand may be non-offsettable. 2296: (nop): New pattern. 2297: (return): Was disabled; now deleted. 2298: * tm-alliant.h (PRINT_OPERAND_PUNCT_VALID_P): Define it. 2299: * out-alliant.c (output_btst): Same change as in out-m68k.c 2300: 2301: * alliant.md, out-alliant.c: Offsetable -> offsettable. 2302: 2303: * c-parse.y (rule for stmt_exprs): Make the LET_STMT volatile. 2304: 2305: * c-decl.c (duplicate_decls): Don't save inline function data 2306: from previous definition if a new *definition* is seen. 2307: 2308: * integrate.c (access_parm_map): Handle subregs and constants. 2309: 2310: * stmt.c (expand_return): Don't crash if DECL_RTL (DECL_RESULT()) is 0. 2311: 2312: * tm-tahoe.h (LONGJMP_RESTORE_FROM_STACK): Define it. 2313: 2314: * tm-mips.h (CONSTANT_P): Deleted; duplicates rtl.h. 2315: 2316: Fri Jun 9 01:39:30 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 2317: 2318: * Makefile (float.h): Avoid using $(MAKE). 2319: 2320: * Don't cram two things into STMT_BODY of a LET_STMT. 2321: * tree.h (struct bind_stmt): New field, subblocks. 2322: (STMT_SUBBLOCKS): New macro to access it. 2323: * print-tree.c (walk): Print new field. 2324: * tree.c (build_let_stmt): Store the old BODY arg into subblocks field. 2325: * c-parse.y (stmt expr rule): Put rtl expr alone into body field. 2326: * dbxout.c (dbxout_block): Recurse on subblocks, not body. 2327: * sdbout.c, symout.c: Likewise. 2328: * integrate.c (copy_decl_tree): Likewise. 2329: * stmt.c (setjmp_protect, uninitialized_vars_warning): Likewise. 2330: * expr.c (expand_expr): For LET_STMT, simply use its body. 2331: 2332: * machmode.def: Add sixth arg to each entry. 2333: * tree.h, rtl.h, rtl.c: Add arg to DEF_MACHMODE. 2334: * rtl.h (GET_WIDER_MODE): New macro; table in rtl.c. 2335: * expr.c (expand_expr): Use that for widening multiply. 2336: 2337: * stmt.c (fixup_var_refs_1): When converting MEM to QImode for 2338: bit field, adjust the address if possible to make bitpos 2339: less than 8. 2340: * m68k.md (bftst -> btst): Restrict to bitpos less than 8 2341: so operand may be non-offsettable. 2342: 2343: * cccp.c (do_line): Accept and pass on 3rd arg for enter or leave file. 2344: 2345: * out-m68k.c (output_btst): Handle COUNT bigger than size of unit. 2346: 2347: * cccp.c (CHECK_DEPTH): Macro to detect instack overflow. 2348: (finclude, macroexpand, expand_to_temp_buffer): Use that. 2349: 2350: * cccp.c (rescan): Don't check for disabled macro if traditional. 2351: (macroexpand): Don't disable macro if traditional. 2352: 2353: * sdbout.c (sdbout_one_type): Take out last change; assembler barfs. 2354: 2355: * c-parse.y (maybe_attribute): Eliminate #-syntaxes. 2356: Make ATTRIBUTE the name for __attribute. 2357: 2358: * c-parse.gperf: Add __attribute{,__} and __signed{,__}. 2359: * c-parse.y: Install results of that change. 2360: 2361: * Fix bug in sizeof ({...}). 2362: * c-decl.c (poplevel): Set TREE_USED. Return the LET_STMT. 2363: * c-parse.y (stmt-expr rule): Put the RTL_EXPR in the LET_STMT, 2364: clear its TREE_USED, and use it as the result. 2365: * expr.c (expand_expr): Allow LET_STMT as an expr. 2366: Set its TREE_USED and expand the TREE_VALUE of its body. 2367: * dbxout.c (dbxout_block): Ignore LET_STMT if TREE_USED not set. 2368: * sdbout.c, symout.c: Likewise. 2369: 2370: Thu Jun 8 00:06:36 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 2371: 2372: * c-parse.y (yylex): Extend ERANGE-inhibitor for 0.0 2373: to 0.0e0 as well. 2374: 2375: * flow.c (life_analysis): Prevent allocation of regs live at setjmp 2376: on certain machines. Controlled by LONGJMP_RESTORE_FROM_STACK. 2377: Sets reg_live_length to -1. 2378: * local-alloc.c (block_alloc): Be prepared for that. 2379: * tm-vax.h (LONGJMP_RESTORE_FROM_STACK): Define it. 2380: 2381: * gnulib2.c (all interfaces): Declare args and values as long long, 2382: and split them using unions. 2383: 2384: * loop.c (check_dbra_loop): Don't reverse loop if there are two 2385: refs to varying addresses. Consider foo[i] = foo[i-1]. 2386: (count_nonfixed_refs): Subroutine to count them. 2387: 2388: * cexp.y: Distinguish signed and unsigned. 2389: An integer value is now represented by a struct. 2390: All rules for arithmetic changed. 2391: (yylex): Adapt to change in yylval data type. 2392: 2393: * limits.h (LONG_MIN): Make sure it's a signed long. 2394: 2395: * sdbout.c (sdbout_one_type): Output types of fields first, 2396: if they are structs. Don't go through pointers. 2397: (sdbout_field_types): Subroutine for that 2398: 2399: Wed Jun 7 13:00:44 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 2400: 2401: * fixincludes: Switch to /usr/include before doing vuid_event.h. 2402: Use $2 as output directory for sed. 2403: 2404: * tm-i386.h (FUNCTION_PROFILER): Put counter address in %edx. 2405: * tm-i386v.h (LIB_SPEC): Use -L/usr/lib/libp if profiling. 2406: 2407: * expr.c (expand_increment): Typo testing for BImode component. 2408: 2409: * convex changes from csmith: 2410: * tm-convex.h: use EXTRA_SECTIONS to do .bss. 2411: out-convex.c: set_section, align_section are now unused. 2412: * convex.md: add pattern to pick an A-reg destination for sums 2413: whose source involves a dedicated A reg (frame or arg pointer) 2414: * convex.md: immediate and, or, xor instructions store a 32-bit 2415: result. Fix instructions that assumed it was 64. 2416: 2417: * mips.md (probe): New pattern to create stack space. 2418: 2419: * Makefile (float.h): Ignore errors from hard-params. 2420: Specify ./ to run it. 2421: 2422: Tue Jun 6 15:45:27 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 2423: 2424: * out-tahoe.c: Rename `offsetable' to `offsettable'. 2425: 2426: * tahoe.md (nop): New pattern. 2427: 2428: * i386.md (umul...): Constrain operand 1 as `0', not `a'. 2429: `a' sometimes wanted two a-regs for operands 0 and 1. 2430: 2431: * cccp.c: Forward-declare some structs. 2432: 2433: * c-decl.c: Rearrange fcn fwd decls and struct decls. 2434: 2435: * expr.c: Move some fcn fwd decls after structs their args use. 2436: * genpeep.c, genextract.c: Likewise. 2437: 2438: * loop.c: Forward-declare some structs. 2439: 2440: * stmt.c: Move decls of structs before those of static functions. 2441: 2442: * loop.c (strength_reduce): Delete extra arg to check_eliminate_biv. 2443: 2444: * integrate.c (expand_inline_function): Supply missing arg 2445: to convert_to_mode. 2446: 2447: * gcc.c (handle_braces): Supply missing arg to do_spec_1. 2448: 2449: * explow.c (lookup_static_chain): Accept a context arg. 2450: 2451: * expmed.c (store_split_bit_field): Pass ALIGN arg 2452: to extract_fixed_bit_field. 2453: 2454: * expr.c (expand_assignment): Convert TYPE_ALIGN to bytes. 2455: (store_constructor, expand_expr): Likewise. 2456: 2457: * m68k.h: NO_ADDSUB_Q conditionals turn off all addq, subq insns. 2458: (Fully supported only with MOTOROLA and HPUX_ASM flags.) 2459: 2460: * jump.c (do_cross_jump): Don't die if LABEL is 0. 2461: 2462: * tm-mips.h (PRINT_OPERAND_PUNCT_VALID_P): New macro. 2463: * tm-iris.h: New file. Unsplit lines accidentally split. 2464: 2465: Mon Jun 5 15:39:30 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 2466: 2467: * integrate.c (output_inline_function): Call init_function_start, 2468: not expand_function_start. 2469: * emit-rtl.c (restore_reg_data): No need to init reg_rtx_no. 2470: 2471: * stmt.c (init_function_start): Set current_function_returns_struct. 2472: 2473: * rtlanal.c (reg_set_between_p): New fn analogous to reg_used_between_p 2474: * loop.c (strength_reduce): Reject biv initial value which is altered 2475: subsequently before actual loop start. 2476: 2477: * rtlanal.c: New file split out from rtl.c. 2478: Has things not used in the gen files. 2479: 2480: * loop.c (strength_reduce): Reject biv initial value in a hard reg 2481: clobbered by an intervening function call. 2482: 2483: * tree.c (get_identifier): New flag needed to enable id-clash warnings. 2484: (start_identifier_warnings): Set that flag. 2485: * c-decl.c (init_decl_processing): Call that, after making built-ins. 2486: 2487: Sat Jun 3 14:41:34 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 2488: 2489: * final.c (final_scan_insn): No basic block profiling at jump tables. 2490: 2491: * stmt.c (expand_decl): Probe the stack to make pages exist. 2492: * expr.c (expand_builtin): Likewise, for alloca. 2493: 2494: * move-if-change: Specify /bin/sh. 2495: 2496: * tm-ns32k.h (INDIRECTABLE_2_ADDRESS_P): Don't accept PLUS 2497: with constant operands but not inside CONST. 2498: 2499: * integrate.c (output_inline_function, save_for_inline): 2500: Save stack_slot_list, and restore it for actual output. 2501: * emit-rtl.c (gen_inline_header_rtx): New arg for this. 2502: 2503: * emit-rtl.c (restore_reg_data): Initialize reg_rtx_no. 2504: (restore_reg_data_1): Handle reg_rtx_no jumping past 2505: reg_pointer_flag_length. 2506: 2507: * reload1.c (alter_reg): Do nothing if regno_reg_rtx has 0. 2508: 2509: * integrate.c (copy_rtx_and_substitute): Typos for stack parm 2510: addresses in PLUS case. 2511: 2512: * genoutput.c (gen_insn, gen_peephole): Make output_n fns static. 2513: (output_prologue): Use new macro DEFAULT_MACHINE_INFO if defined. 2514: 2515: * tree.h (enum machine_mode): Define MAX_MACHINE_MODE as in rtl.h. 2516: 2517: Fri Jun 2 15:40:47 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 2518: 2519: * cccp.c (do_include): A file included via a system header file 2520: counts as a system header file for -M. 2521: 2522: * gnulib2.c: Support boolean ops and shifts. 2523: 2524: * loop.c (emit_iv_inc): Use emit_iv_init_code. 2525: 2526: * rtl.h (CONST0_RTX): Don't try to cast abort. 2527: 2528: * tm-news.h (PRINT_OPERAND_ADDRESS): Fix typo `reg_name'. 2529: Delete two garbage lines. 2530: 2531: * loop.c (eliminate_biv): Use emit_iv_init_code to compute comparison 2532: value. If value is constant, recognize the insn, and if that fails, 2533: put the value in a register. 2534: 2535: Thu Jun 1 16:56:39 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 2536: 2537: * print-tree.c (dump): Don't die if rtx components are null. 2538: 2539: * expmed.c (expand_mult_add): New fn to do A * X + B. 2540: (make_tree): New subroutine. 2541: * loop.c (emit_iv_init_code): Use that. Much simpler now. 2542: 2543: Tue May 30 17:20:40 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 2544: 2545: * fold-const.c (fold): Use TREE_SET_CODE to store in tree codes. 2546: 2547: * tree.h (struct tree_common): Make `code' an unsigned int. 2548: (TREE_CODE, TREE_SET_CODE): Put in casts. 2549: 2550: * optabs.c (emit_cmp_insn): Supply all the args in recursive calls. 2551: 2552: * toplev.c (report_error_function): Fix typo; METHOD_TYPE missing. 2553: 2554: * fixincludes: Add code to make internal non-directory links. 2555: 2556: Mon May 29 21:36:28 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 2557: 2558: * gcc.c (find_exec_file): Try both with and without machine_suffix. 2559: (find_file): Use machine_suffix here too. 2560: 2561: Sat May 27 00:02:26 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 2562: 2563: * reload.c (decompose): OFFSET wasn't initialized. 2564: 2565: * cse.c (cse_main): Assign monotonic cuids. 2566: (make_regs_eqv, CHEAPER): Use cuids, not uids. 2567: (cse_end_of_basic_block): Return a cuid, not a uid. 2568: 2569: * expr.c (expand_builtin): For BUILTIN_SAVEREGS, range of regs 2570: moved included one extra previous insn. 2571: 2572: * emit-rtl.c (emit_line_note): Don't check -g here. 2573: (emit_note): For line number when no -g, increment cur_insn_uid anyway. 2574: * stmt.c (expand_start_case): Always output a NOTE_INSN_DELETED. 2575: 2576: * loop.c (loop_optimize): Don't count line-number NOTEs for luids. 2577: Prevents -g from affecting optimization decisions. 2578: 2579: Fri May 26 17:31:15 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 2580: 2581: * local-alloc.c (block_alloc): Don't count notes in insn_number. 2582: Prevents -g from affecting order of allocation. 2583: 2584: Thu May 25 14:12:19 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 2585: 2586: * local-alloc.c (block_alloc): Clear full length of regs_live_at. 2587: 2588: * ns32k.md (cmpsi): Make this the first cmp pattern. 2589: 2590: * jump.c (do_cross_jump): Skip NOTEs while checking for existing label. 2591: 2592: * cse.c (cse_insn): When no-oping a jump, decrement use count of label. 2593: (cse_basic_block): If label use count is 0, go past it. 2594: 2595: * integrate.c (access_parm_map): New fn, broken out of 2596: copy_rtx_and_substitute, handles case of mem ref to stack arg. 2597: (copy_rtx_and_substitute): Call it. 2598: Also use it for address of a stack arg. 2599: 2600: * gen*.c (fatal): Declare 1st arg as string. 2601: 2602: Wed May 24 00:13:36 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 2603: 2604: * optabs.c (init_optabs): Handle movdi and movdf insns. 2605: 2606: * final.c (end_final): Realign locn ctr after outputting string. 2607: 2608: * tm-sparc.h (LINK_SPEC): Link bb_link.o before standard lib. 2609: 2610: * tm-sun386i.h (LINK_SPEC): Accept and ignore -sun386. 2611: 2612: * gcc.c (find_exec_file): Use machine_suffix. 2613: (process_command): Set that for -b option. 2614: 2615: * integrate.c (function_cannot_inline_p): No size limit 2616: for functions declared inline. 2617: 2618: * loop.c (skip_consec_insns): New fn, skip several insns or libcalls. 2619: (force_movables): New fn, part of scan_loop broken out. 2620: (ignore_some_movables): New fn, ignore a movable whose insn 2621: is within another movable's libcall. 2622: (scan_loop): Call those three. 2623: Don't handle m->consec for zero-extend movables, since always 0. 2624: 2625: Tue May 23 12:58:24 1989 Joe Weening (weening at gang-of-four.stanford.edu) 2626: 2627: * config/alliant.md: 2628: Removed operand classes 'x', 'y', 'G', 'H'. 2629: Added "%." to many opcodes to simplify comparison with m68k.md. 2630: Changed TARGET_68881 to TARGET_CE. 2631: Changed floating-point insns to better describe the Alliant CE. 2632: Most args to floating-point insns are now nonimmediate_operand. 2633: Removed special insns for pushing doublewords onto stack. 2634: Added non-CE versions of movsf and movdf to avoid using FP 2635: registers in this case. 2636: (float*i*f2): Don't allow immediate ops. 2637: (sne): Fix typo, fsne => fsneq. 2638: (call, call_value): Changed to always pop args from stack 2639: upon return; this gives better code than before and conforms 2640: to Alliant calling standard. 2641: Incorporated some recent changes to m68k.md. 2642: 2643: * config/out-alliant.c: 2644: (regno_reg_class): Removed FPA reg classes. 2645: (output_move_const_double): Function not needed, removed. 2646: 2647: * config/tm-alliant.h: 2648: Removed FPA registers and reg classes. 2649: Target flags: changed TARGET_68881 to TARGET_CE, removed 2650: TARGET_RTD, TARGET_REGPARM, TARGET_FPA. 2651: Removed TARGET_CE test in several places since we need to 2652: use FP regs even for non-CE programs. 2653: (TARGET_VERSION, CPP_SPEC): Define for Alliant. 2654: (CONDITIONAL_REGISTER_USAGE): Removed, not needed. 2655: (FRAME_POINTER_REQUIRED): Defined. 2656: (RETURN_POPS_ARGS): Defined. 2657: (FUNCTION_VALUE, LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): 2658: Use fp0 to return floating-point values. 2659: (FUNCTION_ARG): Remove TARGET_REGPARM code. 2660: (FUNCTION_ARG_PARTIAL_NREGS): Always 0. 2661: (FUNCTION_PROFILER): Define for Alliant. 2662: (FUNCTION_EPILOGUE): Remove use of rtd instruction. 2663: Renamed CC_IN_68881 to CC_IN_FP. 2664: (NOTICE_UPDATE_CC): Incorporate changes that were made 2665: in tm-m68k.h. 2666: 2667: * config/xm-alliant.h (LINK_SPEC): Pass -X to linker. 2668: 2669: Tue May 23 12:58:24 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 2670: 2671: * sdbout.c: Don't include c-tree.h. 2672: 2673: * tree.c (build_index_type): Use sizetype for min and max values. 2674: Convert maxval rather than clobbering it. 2675: 2676: * tm-hp9k320.h: Finish unterminated comment. 2677: 2678: * sdbout.c (sdbout_parms): Use gen_fake_label for anonymous parm. 2679: 2680: Sun May 21 12:58:06 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 2681: 2682: * stmt.c (aggregate_value_p): New fn says whether expression is a type 2683: that functions cannot return as a scalar. 2684: (assign_parms, expand_function_start): Use that. 2685: * expr.c (expand_call): Likewise. 2686: 2687: * gcc.c (delete_failure_queue): New subroutine. 2688: (delete_temp_files): No longer delete the failure queue. 2689: (main): Delete failure queue after each failing compilation. 2690: 2691: Sat May 20 13:16:23 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 2692: 2693: * varasm.c (force_const_mem): New optional macro SELECT_RTX_SECTION. 2694: 2695: * mips.md: Change %u0 to %:. 2696: (movsi): Add constraint alternative accepting address arg. 2697: 2698: * fold-const.c (mul_double): Special case for 2nd arg 2, 4, 8. 2699: (combine): Special case shortcuts for plus, minus, mult, div. 2700: 2701: * stmt.c (expand_function_start): Simplify hairy statement for 3B1. 2702: * expr.c (expand_call): Likewise. 2703: 2704: * math-68881.h: New file. 2705: 2706: * m68k.md (movqi): Handle moving aregs to mem and vice versa. 2707: 2708: * dbxout.c (dbxout_type): Don't test use_gdb_dbx_extensions 2709: in cases that occur in C. 2710: 2711: * stmt.c (expand_function_{start,end}): Make DECL_RESULT's rtl 0 2712: when function returns no value. 2713: 2714: * tree.c (build_decl): Initialize DECL_PRINT_NAME, DECL_ASSEMBLER_NAME. 2715: 2716: * c-decl.c (store_parm_decls): Call init_function_start. 2717: 2718: Thu May 18 00:41:37 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 2719: 2720: * stmt.c (expand_null_return_1): New arg USE_GOTO says jump to 2721: return_label even if could otherwise use a return insn. 2722: Make a return_label if we need one and don't have one already. 2723: If have parm cleanups, always jump to cleanup_label. 2724: (expand_null_return): Pass 1 for USE_GOTO if cleanups pending. 2725: (expand_return): Set LAST_INSN if have local cleanups or parm cleanups. 2726: Use that if jumping to tail-recursion label. 2727: Optimization for returning a comparison is safe for local cleanups 2728: but don't do it if there are parm cleanups. 2729: Calling expand_null_return_1, pass 1 for USE_GOTO if local cleanups. 2730: (this_contour_has_cleanups_p): New function. 2731: 2732: * stmt.c (init_function_start): New function, beginning of 2733: expand_function_start broken out. 2734: Use DECL_PRINT_NAME to get function's name. 2735: (expand_function_start): Now two args, function and PARMS_HAVE_CLEANUPS 2736: Compute RETURN_LABEL sooner; make one if parm cleanups. 2737: If parms have cleanups, put scalar return value in pseudo-reg. 2738: Don't mark that pseudo with REG_FUNCTION_VALUE_P. 2739: (expand_function_end): Simplify decisions about output of return_label 2740: and return insn. 2741: If DECL_RESULT is pseudo-reg, copy it to real return reg. 2742: 2743: * stmt.c (expand_function_end): Handle ordinary struct values 2744: like pcc, but only if unoptimized. 2745: (expand_function_start): Make a return_label for ordinary struct value. 2746: 2747: * stor-layout.c (layout_type): Handle METHOD_TYPE like FUNCTION_TYPE. 2748: (layout_decl): Allow TYPE_DECL. 2749: 2750: * stor-layout.c (layout_basetypes): Code for basetypes broken 2751: out of layout_record. Sets the type size tentatively. 2752: (layout_record): Start with that tentative size. 2753: Also, don't do anything with CONST_DECL members. 2754: 2755: * stor-layout.c (layout_union): Simpler error report for static memb. 2756: 2757: * reload1.c (eliminate_frame_pointer): Reduce PUSH_ROUNDING 2758: conditional to apply only to push instructions. 2759: 2760: * expr.c (expand_call): Fix stupid errors handling MAX_PARM_BOUNDARY. 2761: * stmt.c (assign_parms): Likewise. 2762: 2763: * toplev.c (announce_function, report_error_function): 2764: (error_with_decl, warning_with_decl): Use DECL_PRINT_NAME. 2765: 2766: * toplev.c (compile_file): Subtract integration_time from parse_time. 2767: 2768: * toplev.c (compile_file): Don't output read-only static variables 2769: at end of compilation if address was not used. 2770: 2771: * toplev.c (rest_of_compilation): Handle flag_syntax_only. 2772: 2773: * toplev.c (main): Handle -g0 and -G0 options. 2774: For -g and -G, set use_gdb_dbx_extensions. 2775: 2776: * toplev.c (main): Set `progname'. 2777: (pfatal_with_name, fatal_io_error, {error,warning}_with_file_and_line): 2778: (sorry): Print value of `progname', not "cc1". 2779: 2780: * tree.def: Delete FRIEND_DECL. Add PUSH_EXPR and POP_EXPR. 2781: 2782: * tree.c (simple_cst_equal): Handle INDIRECT_REF. 2783: 2784: * tree.c (lvalue_p): Handle METHOD_TYPE. Handle NEW_EXPR. 2785: 2786: * tree.c (copy_list): New function. 2787: 2788: * tree.h (struct tree_decl): New fields print_name and assembler_name. 2789: (DECL_PRINT_NAME, DECL_ASSEMBLER_NAME): New accessors. 2790: 2791: * c-decl.c (LONG_DOUBLE_TYPE_SIZE): New compilation parameter. 2792: 2793: Wed May 17 22:07:17 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) 2794: 2795: * dbranch.c (emit_delay_sequence): Reset insn code to -1 when 2796: turning insn into a sequence so that it won't think that it matches 2797: something in the md file. 2798: 2799: * dbranch.c (insn_eligible_p): Call refers_to_regno_p with a 2800: non-zero range. 2801: 2802: * dbranch.c (pnote): Modified to make sure instruction clobbered 2803: register is a set, rather than, say, a clobber. 2804: 2805: Wed May 17 14:01:20 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 2806: 2807: * sdbout.c (sdbout_parms): Handle parm with no name. 2808: 2809: * loop.c (combine_movables): Test for overlap of zero-extend regs 2810: was screwed up. 2811: 2812: * c-typeck.c (c_sizeof{,_nowarn}): Convert from bytes to chars, 2813: since c defines sizeof (char) as 1. 2814: (pointer_int_sum, pointer_diff): Use c_sizeof{,_nowarn}. 2815: 2816: Tue May 16 16:27:32 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 2817: 2818: * reload1.c (choose_reload_targets): Don't reuse regs 2819: mentioned in reload_reg_rtx. 2820: 2821: * tm-tahoe.h, tahoe.md, out-tahoe.c, xm-tahoe.h: New files. 2822: 2823: Mon May 15 16:25:12 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 2824: 2825: * fixincludes: Exit with explicit status 0 at end. 2826: cd to /usr/include before cd to subtree root in case of relative link. 2827: Create dir $LIB earlier. 2828: When checking for a link, treat .. like an absolute target. 2829: 2830: * symout.c (symout_block_symbols): Give every local decl a typespec. 2831: * cexp.y (parse_number): 2832: * flow.c (life_analysis, dump_flow_info): 2833: 2834: * loop.c (consec_sets_invariant_p): Logic error accepted consec sets 2835: of which only one was invariant. 2836: 2837: * expr.c (expand_expr): Use no subtargets inside loops. 2838: * stmt.c (inside_loop): New function. 2839: 2840: Sun May 14 00:11:07 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 2841: 2842: * tree.h: Declare long long types. 2843: 2844: * c-parse.y (combine_strings): Make string contents saveable. 2845: 2846: * tree.c (savealloc): New function. 2847: 2848: * m68k.md (movdi): % missing in fmove%.d. 2849: 2850: * c-parse.y (yylex): Detect overflow past 64-bits. 2851: Detect specially numbers not fitting in signed long long. 2852: 2853: Sat May 13 13:16:05 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 2854: 2855: * reload1.c (alter_frame_pointer_addresses): Preserve volatility. 2856: 2857: * varasm.c (output_constructor): Die if BITS_PER_UNIT is too big 2858: for this function to work. 2859: 2860: * genpeep.c (match_rtx): For match_operator, match the operands, too. 2861: 2862: * varasm.c (output_constant): Use ASM_OUTPUT_DOUBLE_INT for DImode. 2863: 2864: * stor-layout.c (make_signed_type, make_unsigned_type): 2865: (fixup_unsigned_type): Use HOST_BITS_PER_INT. 2866: 2867: * stor-layout.c (layout_type): Use TFmode if appro. 2868: 2869: * optabs.c (emit_cmp_insn): Use mode sizes to check cmpstrqi, cmpstrhi. 2870: 2871: * c-typeck.c (get_floating_type): Compare MODE against modes of types. 2872: (signed_type, unsigned_type, signed_or_unsigned_type, type_for_size): 2873: Handle long long types. 2874: (digest_init): Don't assume width of `char' is BITS_PER_UNIT. 2875: 2876: * c-parse.y (yylex): For truncating chars, use width of `char' type. 2877: Allow `ll' in int constants and make long long. 2878: Also make long long if constant won't fit in an int. 2879: 2880: * c-decl.c (SHORT_TYPE_SIZE): Round up when dividing. 2881: 2882: Fri May 12 22:36:21 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 2883: 2884: * real.h: Allow multiple inclusion. 2885: 2886: * tm-sun386i.h (DBX_REGISTER_NUMBER): Bizarre renumbering. 2887: 2888: Thu May 11 00:36:21 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 2889: 2890: * fixincludes: Fix non-ansi declaration of sprintf in X11/Xmu.h 2891: 2892: * c-parse.y (stmt from expr): Do default conversion if useful 2893: for sake of ({...}). 2894: 2895: * sparc.md (andcc recognizer): Operand missing in subreg. 2896: 2897: Wed May 10 17:20:38 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 2898: 2899: * rtl.c (read_name): Error if name is missing. 2900: (dump_and_abort): Don't print char args if -1. 2901: 2902: * i386.md (umulqihi3): Operand numbers were missing. 2903: 2904: * reload1.c (choose_reload_targets): Allow spill reg in find_equiv_reg 2905: if it's free and correct class. 2906: 2907: * cse.c (canon_hash): Handle empty strings. 2908: 2909: * cccp.c (macroexpand): Newline newline treated like real white space 2910: when stringifying. 2911: 2912: * Rename *offsetable* to *offsettable*. 2913: 2914: Tue May 9 22:54:58 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 2915: 2916: * c-decl.c (finish_type): Layout any variants of the type. 2917: 2918: Tue May 9 12:30:28 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) 2919: 2920: * final.c (final_scan_insn, final): Added an argument to 2921: final_scan_insn to disallow peephole processing (to turn it off 2922: during delayed branch scheduling). 2923: 2924: * final.c (final_scan_insn): Made insn not matching any MD rtl a 2925: criteria for delayed branch case. Moved delayed branch case to just 2926: before real insn recognition to reduce the number of insns on which 2927: recog_memoized is called. 2928: 2929: Mon May 8 15:02:42 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 2930: 2931: * fixincludes (LIB): Allow overriding. 2932: 2933: * cccp.c: Don't search /usr/include/CC by default. 2934: 2935: Mon May 8 13:09:21 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) 2936: 2937: * print-tree.c (dump): Fixed typo; IDENTIFIER ==> IDENTIFIER_NODE. 2938: 2939: Sun May 7 12:44:53 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 2940: 2941: * print-tree.c (dump): TYPE_NAME may be IDENTIFIER or TYPE_DECL. 2942: 2943: Sat May 6 00:13:47 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 2944: 2945: * tree.def: Define EXACT_DIV_EXPR, for when remainder known as 0. 2946: * fold-const.c (combine, fold, div_and_round_double): Handle new code. 2947: * expr.c (expand_expr): Likewise. 2948: * c-typeck.c (pointer_diff): Use EXACT_DIV_EXPR. 2949: 2950: * integrate.c (expand_inline_function): Use size of passed type 2951: for allocating stack slot with that type. 2952: 2953: * c-parse.y (maybe_attribute, attribute*): New syntax for Apollos. 2954: These tokens currently not generated. 2955: 2956: Fri May 5 18:43:01 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 2957: 2958: * toplev.c [USG]: Undefine FLOAT for sake of sys/param.h on hpux. 2959: 2960: * optabs.c (expand_binop): If backtracking, don't delete insns made 2961: for -fforce-mem. 2962: 2963: Thu May 4 01:57:23 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 2964: 2965: * reload.c (find_reloads): Don't compare an earlyclobber operand 2966: with itself. 2967: 2968: * reload.c (immune_p): Constants and stack slots don't overlap. 2969: 2970: * Put no-ops in front of loops and labels, 2971: to prevent confusion in the debugger. 2972: * c-parse.y (loops and labels): Call emit_nop. 2973: * stmt.c (emit_nop): New function--sometimes emit a no-op. 2974: * *.md (nop): New insn. 2975: 2976: * expr.c (expand_call): Typo in arg to FIRST_PARM_CALLER_OFFSET. 2977: 2978: Wed May 3 01:34:58 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 2979: 2980: * loop.c (scan_loop): Scanning around end of loop 2981: should not set maybe_never. 2982: 2983: * Rename SELECT_VARIABLE_SECTION to SELECT_SECTION. 2984: * varasm.c (get_or_assign_label): Use SELECT_SECTION if defined. 2985: * varasm.c: Use EXTRA_SECTION_FUNCTIONS if defined (new macro). 2986: 2987: * mips.md: Change %u to %u0 to avoid error check. 2988: 2989: * tm-mips.h (TARGET_VERSNUM): Inc. to 1 08. 2990: (TARGET_VERSION): Change strings. 2991: (AL_DEBUG): Don't define it. 2992: (HARD_REGNO_MODE_OK): Add some casts to int. 2993: (STACK_ARGS_ADJUST): Name was misspelled. 2994: (PRINT_OPERAND_ADDRESS): Just abort for MEM, POST_INC, etc. 2995: (EXTRA_SECTIONS, SELECT_VARIABLE_SECTION, SELECTORS_EXTRA_SECTIONS, 2996: SELECT_VARIABLE_CONST_SECTION): New macros. 2997: (ASM_FILE_END): Change function name. 2998: * out-mips.c (function_arg_advance): Delete debugging printfs. 2999: (function_inarg, function_arg): Likewise. 3000: (compare_collect, compare_restore): Add some. 3001: 3002: * reload1.c (reload): Fix handling of caller_save_needed. 3003: 3004: * stmt.c (expand_function_start): Clear caller_save_needed. 3005: 3006: * stmt.c (emit_case_nodes): Some compiler has trouble with calling 3007: a function pointer. 3008: * gnulib.c: likewise. 3009: 3010: Tue May 2 15:32:25 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 3011: 3012: * loop.c (combine_movables): For zero extend, 3013: do each from-mode separately. 3014: 3015: Mon May 1 00:18:47 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 3016: 3017: * tm-apollo68.h: New file. 3018: 3019: * c-parse.y (is_reserved_word, hash): Add keywords `__asm__', etc. 3020: * c-parse.gperf: Corresponding changes. 3021: 3022: * c-parse.y (check_newline): Set main_input_filename before 3023: considering optional arguments. 3024: 3025: * final.c (final_scan_function): Return next insn to process. 3026: Usually that's the following insn; occasionally, previous compare. 3027: 3028: * c-decl.c (DOUBLE_TYPE_SIZE): Wrong value. 3029: 3030: * reload.c (decompose): Failed to return value. 3031: 3032: * Support local specified-register variables. 3033: * varasm.c (decode_reg_name): New function, cvt asmspec to regnum. 3034: (make_decl_rtl): Call that. 3035: * toplev.c (rest_of_decl_compilation): Handle local specified-register 3036: declarations. 3037: 3038: * i386.md (tstqi, trunc*qi): Constrain to `q' regs. 3039: 3040: * loop.c (scan_loop, move_movables): ->global for zero-extend register 3041: now means register is used outside range from where it is set 3042: to the following label. Non-global zero-extend regs 3043: may be entirely cleared. 3044: 3045: * loop.c (combine_movables): Loop that combines matching movables 3046: broken out from scan_loop. 3047: Now also combine non-global zero-extend registers with each other 3048: if their lifespans don't overlap. 3049: 3050: * c-typeck.c (build_unary_op, ADDR_EXPR of a COMPONENT_REF): 3051: Always convert to desired result type. 3052: 3053: Sun Apr 30 12:58:58 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 3054: 3055: * c-decl.c (init_decl_processing): New macros parameterize int types. 3056: CHAR_TYPE_SIZE, SHORT_TYPE_SIZE, LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE, 3057: FLOAT_TYPE_SIZE, DOUBLE_TYPE_SIZE. 3058: 3059: * fixincludes: Use sed instead of ex. No problem with split lines. 3060: 3061: * print-tree.c (dump): Print type's name, if any. 3062: 3063: * c-parse.y: Use __inline, not plain inline. 3064: 3065: * toplev.c: New option -fdelayed-branch. 3066: (compile_file): Open and close dbranch dump file. 3067: Collect and print dbranch time. 3068: (rest_of_compilation): Optionally do dbranch scheduling, 3069: only if HAVE_DELAYED_BRANCH. 3070: (main): Handle -dd. 3071: 3072: * rtl.c (copy_rtx): Handle null pointers as code `e'. 3073: 3074: * final.c (dbr_sequence_length): New function. 3075: (final_scan_insn): Most of `final' broken out. 3076: Add support for SEQUENCE insns. 3077: last_ignored_compare and new_block now top-level static. 3078: 3079: * c-parse.y (MAX_WORD_LENGTH): Long enough for __volatile. 3080: 3081: Sat Apr 29 13:03:20 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 3082: 3083: * c-parse.y (asm statements): Output line numbers. 3084: 3085: * loop.c (emit_iv_init_code, emit_iv_inc, eliminate_biv): Copy 3086: additive term rtx's to prevent sharing between insns. 3087: 3088: * c-parse.y (check_newline): Increment input_file_stack_tick. 3089: * toplev.c (report_error_function): Describe input stack only if 3090: changed. 3091: 3092: * c-decl.c (finish_struct): Reject zero width for named field. 3093: 3094: * tm-sun3.h (CC1_SPEC): Prevent error on `-sun3'. 3095: * tm-sparc.h (CC1_SPEC): Prevent error on `-sun4'. 3096: 3097: * Makefile (cleanconfig): cleanlinks renamed; also delete gnulib. 3098: (gnulib): Delete stamp-gnulib2 since gnulib2 should be redone after. 3099: 3100: Fri Apr 28 00:38:32 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 3101: 3102: * config.gcc (genix): Correct xm file name. 3103: 3104: * tm-genix.h: Undefine ASM_SPEC inherited from tm-encore.h. 3105: 3106: * Makefile: Make float.h using hard-params. 3107: (clean): Delete float.h. 3108: 3109: * hard-params.c: New program. 3110: 3111: * varasm.c (assemble_variable): Use SELECT_VARIABLE_SECTION if defined. 3112: (in_section): Use EXTRA_SECTIONS if defined. 3113: 3114: * toplev.c (compile_file): Call ASM_FILE_END if defined. 3115: 3116: * gcc.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Let config override. 3117: 3118: * loop.c (emit_iv_init_code): Force A to a reg if it isn't. 3119: 3120: Thu Apr 27 12:51:14 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 3121: 3122: * tm-mips.h (ASM_START_FILES): Don't call print_options. 3123: Don't call the funny abort-functions. 3124: * out-mips.c: Delete funny debugging functions and aborts. 3125: (print_options): #if 0. 3126: (compare_restore): Test for COMPARE, not MINUS. 3127: (mips_section_get, mips_output_external, mips_asm_final): New fns. 3128: 3129: * input.h: New file with *input_filename, lineno and input_file_stack. 3130: Included in toplev.c and c-parse.y. 3131: * c-decl.c (finish_function): LINENO is now arg. 3132: * c-parse.y: Calls changed. 3133: 3134: * c-parse.y (check_newline): Handle `1' or `2' from cpp 3135: by pushing or popping input_file_stack. 3136: * toplev.c (compile_file): Push main input file on input_file_stack. 3137: (report_error_function): If in include file, print the chain 3138: of include-locations. 3139: 3140: * cccp.c (output_line_command): New arg says whether entering or 3141: leaving a file. Output `1' or `2' on #-line if so. Callers changed. 3142: 3143: * gnulib2.c: Little-endian fixes from [email protected]. 3144: 3145: * fixincludes: Wrong quoting in `echo' command. 3146: 3147: * tm-mips.h (REG_P): Duplicate defn deleted. 3148: (PRINT_OPERAND): `\' was missing. 3149: 1.1.1.15 root 3150: Wed Apr 26 02:44:59 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 3151: 1.1.1.16 root 3152: * cccp.c (handle_directive): Preprocess even #pragma, but copy 3153: to output file afterward. 3154: (do_pragma): Use standard calling convention. 3155: (install_builtins, special_symbol): Define __INCLUDE_LEVEL__. 3156: 3157: * cccp.c (do_include): Don't forget to close file. 3158: 3159: * final.c (output_asm_insn): Use PRINT_OPERAND_PUNCT_VALID_P 3160: to validate punctuation after percent. 3161: * tm-m68k.h, tm-alliant.h, tm-ns32k.h, tm-vax.h, tm-i386.h: 3162: Define PRINT_OPERAND_PUNCT_VALID_P. 3163: 1.1.1.15 root 3164: * Version 1.35 released. 3165: 3166: * c-decl.c (grokdeclarator): Use INT_CST_LT only on int constants. 3167: 3168: Tue Apr 25 15:47:11 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 3169: 3170: * reload.c (find_reloads_address_1): Always return a value. 3171: 3172: * flow.c (mark_set_1): Look inside zero_extract, sign_extract. 3173: 3174: * expr.c (emit_library_call) [STACK_ARGS_ADJUST]: 3175: Fix typo for `struct args_size'. 3176: 3177: Mon Apr 24 00:12:18 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 3178: 3179: * flow.c (mark_set_1): Look inside strict_low_part. 3180: 3181: * c-typeck.c (decl_constant_value): Don't use var's init if volatile. 3182: 3183: * print-tree.c (dump): Don't call walk on rtx's. 3184: 3185: * integrate.c (expand_inline_function): Convert expanded arg from 3186: passed mode to nominal mode. 3187: 3188: Sun Apr 23 13:14:47 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 3189: 3190: * fixincludes: fix _IO macros if split across two lines. 3191: Fix typo: EOF was indented. 3192: 3193: * gnulib2.c: New file with DImode library routines. 3194: * Makefile (gnulib2): Put them into gnulib. 3195: Must be explicitly requested. 3196: 3197: Fri Apr 21 13:45:45 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 3198: 3199: * cccp.c (main): Don't turn on trigraphs for -Wtrigraphs or -Wall; 3200: use -trigraphs for that. 3201: 3202: * cccp.c (main): Use -trigraphs to enable trigraphs. 3203: * gcc.c: Pass -trigraphs to cpp; don't pass -T. 3204: 3205: * Makefile: Variable srcdir relates location of sources 3206: to current directory. Default is `.'. 3207: 3208: * integrate.c (expand_inline_function): When copying expanded arg, 3209: use mode it's passed in, not arg's nominal mode. 3210: 3211: * dbxout.c (dbxout_block): Print generated name with assemble_name. 3212: 3213: Thu Apr 20 12:36:09 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 3214: 3215: * stdarg.h: check __sparc__ instead of sparc. 3216: 3217: Tue Apr 18 18:58:03 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 3218: 3219: * tm-next.h (STARTFILE_SPEC): Define it. 3220: 3221: Mon Apr 17 19:56:05 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 3222: 3223: * dbxout.c (dbxout_block): Use ASM_GENERATE_INTERNAL_LABEL to format 3224: the labels LBB... and LBE... 3225: 3226: Sun Apr 16 23:57:47 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 3227: 3228: * mips.md: Change MINUS to COMPARE where appropriate. 3229: 3230: Sat Apr 15 16:11:49 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 3231: 3232: * c-decl.c (finish_struct, redeclaration_error_message): 3233: Rename variables named OLD and NEW. 3234: 3235: * sparc.md (cse'd mult pattern): Handle memory operands. 3236: Optimize small integer operands. 3237: 3238: * stmt.c (expand_decl): On sparc, ensure dynamic arrays of doubles 3239: are properly aligned, despite unaligned STACK_POINTER_OFFSET. 3240: 3241: Fri Apr 14 10:59:56 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 3242: 3243: * expr.c (expand_call): Bugs treating struct value address as param: 3244: do so only if it's supposed to be pushed; 3245: decode value of FUNCTION_ARG properly. 3246: 3247: * tm-altos3068.h (CPP_SPEC): Some braces were dropped. 3248: 3249: * gcc.c (pexecute): Print message when exec fails. 3250: (perror_exec): New fn. 3251: (perror_with_name,pfatal_with_name): Change message syntax. 3252: 3253: * tm-hp9k320.h (ASM_IDENTIFY_GCC): Define as no-op. 3254: 3255: Wed Apr 12 00:20:31 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 3256: 3257: * cse.c (cse_insn): Can record constant value being stored in 3258: a bit field, if we can tell that truncation won't change it. 3259: 3260: * m68k.md (bfset, bfclr, bfchg insns): Do CC_STATUS_INIT 3261: since the cc's are set from the old contents. 3262: 3263: * gcc.c (compilers): Running `as', put -o option before input file. 3264: 3265: * gcc.c: Delete output file only if that file's compilation fails. 3266: * gcc.c (record_temp_file): Changed args: always_delete, fail_delete. 3267: (store_arg): Likewise. Callers changed. 3268: (clear_failure_queue): Called after each compilation. 3269: 3270: Tue Apr 11 01:18:53 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 3271: 3272: * combine.c (subst): (SET (ZERO_EXTRACT) (OR (ZERO_EXTRACT) const)) 3273: optimization was sometimes invalid. 3274: 3275: * tm-m68k.h (NOTICE_UPDATE_CC): A doubleword move that requires 2 insns 3276: does not set the cc's usefully. 3277: 3278: * Makefile (cleanlinks): Just do `clean', not `realclean'. 3279: (realclean): Delete config links also. 3280: 3281: * expr.c (expand_call): Handle case where return value is in memory 3282: but TARGET is a register. 3283: 3284: * c-typeck.c (build_binary_op_nodefault): New arg ERROR_CODE 3285: is passed to binary_op_error instead of CODE. 3286: All callers changed. 3287: (binary_op_error): CODE = NOP_EXPR is new special case. 3288: (truthvalue_conversion): Call build_binary_op_nodefault directly 3289: and specify NOP_EXPR for the error code. 3290: 3291: * c-decl.c (xref_tag): If pedantic, warn on fwd ref to enum. 3292: 3293: Mon Apr 10 19:44:48 1989 Chris Smith (csmith at mozart) 3294: 3295: * tm-convex.h (PCC_BITFIELD_TYPE_MATTERS): It doesn't, 3296: but set it anyway. It makes for better code on this 3297: word machine. 3298: 3299: * convex.md (one_compl*): add not:QI and not:HI, which 3300: do get used after all. 3301: 3302: * tm-convex.h (A_REG_P, S_REG_P): define new macros 3303: convex.md: use them 3304: 3305: * convex.md (addsi3): tidy up constraints. 3306: 3307: * tm-convex.h (REG_OK_FOR_INDEX_P): stack pointer is not ok. 3308: 3309: * convex.md: add a pattern to push REG+CONST so we can 3310: prefer an A reg. 3311: 3312: * tm-convex.h (tstqi): should sign extend, not zero extend. 3313: 3314: * expr.c (convert_move): Extending narrow to DI via SI, 3315: operand of extendsidi2 was wrong. 3316: 3317: * emit-rtl.c (gen_lowpart): Handle CONST_DOUBLE. 3318: 3319: Mon Apr 10 05:19:39 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 3320: 3321: * recog.c (nonmemory_operand): Test constant operands 3322: as general_operand does. 3323: 3324: * tm-m68k.h (PRINT_OPERAND): Limit effect of code `d' 3325: to constant addresses. 3326: 3327: * loop.c (can_eliminate_biv_p, eliminate_biv): Don't rely on givs with 3328: nonconstant coefficients, since the coeffs could be zero. 3329: 3330: * loop.c (can_eliminate_biv_p): Check each giv for ! ignore 3331: before assuming it can be used. 3332: (check_eliminate_biv): New fn, a piece of strength_reduce broken out. 3333: 3334: * cccp.c (error_from_errno): New fn, like error and perror_with_name. 3335: (do_include): Call that if open fails. 3336: (finclude): Print I/O error msg before closing desc. 3337: 3338: * c-decl.c (shadow_tag): If more than one tag or structure, 3339: or anything other than a tag, warning. 3340: 3341: * c-parse.y (components): Just warn if memb decl has no member, 3342: and only if pedantic. 3343: 3344: * loop.c (strength_reduce): Print uids, not luids, for dump. 3345: (record_giv): giv_count field counts only DEST_REG givs. 3346: (check_dbra_loop): src_two_before_end was set wrong. 3347: 3348: * loop.c (record_giv): New arg LOOP_END; all callers changed. 3349: Don't mark giv replaceable if used past LOOP_END. 3350: (find_mem_givs): New arg LOOP_END; all callers changed. 3351: 3352: * out-i386.c (FP_CALL): Make this a `return' stmt. 3353: 3354: Fri Apr 7 11:56:58 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 3355: 3356: * expr.c (expand_expr, case ..._DECL): Preserve mode thru 3357: calling change_address. 3358: 3359: * expr.c (emit_library_call): Typo: ARGNUM => COUNT. 3360: 3361: * expr.c (preexpand_calls, expand_call): Take note of RETURN_IN_MEMORY. 3362: * stmt.c (assign_parms): Likewise. 3363: * integrate.c (function_cannot_inline_p): Likewise. 3364: 3365: * STACK_ARGS_ADJUST: Arg is now a `struct arg_data' and it should 3366: be updated in place. 3367: * tm-mips.h: Define it. 3368: * expr.c (expand_call): Adapt to this. Assume padding comes after args 3369: so turn off the feature of changing the args' offsets. 3370: (emit_library_call): Adapt to this. 3371: 3372: * tm-mips.h (PRINT_OPERAND): Use CONST_DOUBLE_{LOW,HIGH}. 3373: Truncate SFmode constants to single precision. 3374: 3375: * c-typeck.c (mark_addressable): Fix test for local vs global reg var. 3376: 3377: * config.gcc: Change `:-' to `-' in var refs. 3378: Shell on convex doesn't handle `:-'. 3379: 3380: Thu Apr 6 00:09:01 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 3381: 3382: * integrate.c (expand_inline_function): Compare actual's mode 3383: against formal's DECL_ARG_TYPE's mode, not TREE_TYPE's mode. 3384: 3385: * c-decl.c (implicitly_declare): Make the decl permanent if 3386: in global binding level. (Can happen for certain invalid input.) 3387: 3388: * c-typeck.c (build_modify_expr): Block path that made a MODIFY_EXPR 3389: containing an ERROR_MARK. 3390: 3391: * config/tm.h: New file. 3392: 3393: * loop.c (only_reg_use_p): Fix bugs in recursion, add some fast 3394: special cases. Comment on return value was backwards. 3395: (strength_reduce): Negate the value of only_reg_use_p. 3396: 3397: * genoutput.c (output_prologue): Output `#include hard-reg-set.h'. 3398: * Makefile: insn-output.o depends on that. 3399: 3400: * toplev.c (main): Typo recognizing -Wswitch. 3401: 3402: * config.gcc (mips): New alternative. 3403: * tm-mips.h, out-mips.c, mips.md, va-mips.h: New files. 3404: * varargs.h: Include va-mips.h if on mips. 3405: 3406: Wed Apr 5 16:58:04 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 3407: 3408: * c-decl.c (duplicate_decls): Rename OLD, NEW to OLDDECL, NEWDECL. 3409: 3410: * stmt.c (expand_function_start): Ref subr instead of 3411: current_function_decl; should make no difference. 3412: 3413: * stmt.c (assign_parms): Do extra padding for some parms, 3414: controlled by MAX_PARM_BOUNDARY. 3415: * expr.c (expand_call): Same thing for caller side. 3416: Note this is implemented only for machines that lack push insns. 3417: Also, in both cases, it doesn't handle variable-size args. 3418: 3419: Tue Apr 4 12:22:06 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 3420: 3421: * gcc.c (find_file): Try STANDARD_EXEC_PREFIX for startfiles too. 3422: 3423: * varasm.c (make_decl_rtl): Delete never-executed clause. 3424: 3425: * spur.md (movqi, loadhi, extend*, zero_extendhisi): 3426: Make subregs with C code, not RTL patterns, so we can 3427: avoid generating subreg of subreg. 3428: 3429: * optabs.c (emit_cmp_insn): Not all clauses always succeed, 3430: so stop using `else' structure. 3431: 3432: * stmt.c (expand_return): Avoid moving void to void, in cleanups case. 3433: 3434: Mon Apr 3 18:04:33 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 3435: 3436: * m68k.md (cmphi): Don't allow a-reg vs a-reg, since that sign-extends. 3437: If there is one a-reg, make sure it is not last. 3438: 3439: Sun Apr 2 13:02:26 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 3440: 3441: * stor-layout.c (agg_mode): Use highest mode that has desired size. 3442: Allow all integer modes, but reject sizes > MAX_FIXED_MODE_SIZE. 3443: (That defaults to the size of DImode.) 3444: 3445: * machmode.def: Add PSI, PDI and XF, CXF modes. 3446: 3447: Sat Apr 1 00:50:11 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 3448: 3449: * ns32k.md (ashd, lshd): Delete patterns that logand the count with 31. 3450: The shift count is not truncated on this machine. 3451: 3452: * combine.c (subst): Simplify nested or's, nested xor's. 3453: (try_distrib): XOR doesn't distribute through anything. 3454: 3455: * rtl.c (rtx_equal_p): Don't die on null pointers. 3456: 3457: * loop.c (eliminate_biv): Use COMPARE, not MINUS, in generated compare. 3458: 3459: * loop.c (invariant_p): Mem refs in constant pool are invariant. 3460: 3461: * c-decl.c (redeclaration_error_message): If -traditional, allow 3462: redeclarations of typedef provided they agree. 3463: 3464: * c-decl.c (start_decl): Do expand_decl on the decl that pushdecl 3465: returns. If there was a prev. decl with a different type, 3466: we have changed its type and cleared its old rtl, so it need new rtl. 3467: 3468: Sat Apr 1 00:50:11 1989 Matthew Self (rms at sugar-bombs.ai.mit.edu) 3469: 3470: * expr.c (convert_move): Modified to use mode classes 3471: instead of refering to specific machine modes. 3472: 3473: * expr.c (do_jump): Converted to use CONST0_RTX macro. 3474: do_jmp no longer refers to any machine modes directly except 3475: for VOIDmode! 3476: 3477: * expr.c (compare, compare1): Modified to use CONST0_RTX 3478: macro. No longer refers to any machine modes directly 3479: except VOIDmode and BLKmode! 3480: 3481: * machmode.def: Documented assumptions made about the order 3482: of machine modes during mode widening. 3483: 3484: * optabs.c (expand_binop, expand_twoval_binop, expand_unop, 3485: emit_cmp_insn): Added mode widening which is independent of 3486: specific machine modes. It assumes that we may widen to any 3487: higher numbered mode of the same mode class. 3488: NOTE: the checks for VOIDmode ops which were present in 3489: QI and HI to SI widening are now present in all widening. 3490: I assume this is correct. Also, widening is now possible 3491: from QI to HI. This may or may not be a good thing.... 3492: 3493: * rtl.h (CONST0_RTX): Added definition of new macro 3494: CONST0_RTX (mode). 3495: 3496: * rtl.h (GET_NOTE_INSN_NAME, GET_REG_NOTE_NAME): New macros. 3497: * rtl.c (note_insn_name, reg_note_name): New tables. 3498: * rtl.def (NOTE): Change last field from `i' to `n'. 3499: * rtl.c (print_rtx): Print mode of INSN_LIST or EXPR_LIST as reg-note. 3500: Print operand code `n' as name of kind of note. 3501: (read_rtx): treat `n' like `i'. 3502: 3503: * loop.c (struct induction): Add `mode' field. 3504: (strength_reduce, record_giv): Set the `mode' field in V. 3505: (can_eliminate_biv_p, eliminate_biv): Use that field. 3506: 3507: * loop.c (struct iv_class): `init_insn' records what inits the biv. 3508: Replaces `init_val_set' flag. 3509: (strength_reduce): Update and test `init_insn' instead. 3510: Use of a biv between its init and the start of the loop 3511: does not preclude its elimination from the loop. 3512: Setting a giv is ok for eliminating a biv, even if giv is "ignore", 3513: since that just means giv will be combined with another. 3514: Handle some DEST_ADDR givs for that purpose. 3515: Test for giv-setting before check can_eliminate_biv_p. 3516: New error check for replaceable giv whose value needed after loop. 3517: (only_reg_use_p): New fn. 3518: 3519: * expr.c (expand_expr): PLUS, MINUS with EXPAND_SUM: 3520: Associate even harder. 3521: 3522: * loop.c (strength_reduce): Treat all constant biv init vals like ints. 3523: 3524: * loop.c (strength_reduce): Clear all_reduced when v->ignore is set; 3525: the code to check this later didn't always do the job. 3526: 3527: * loop.c (verify_loop): Set loop_continue. 3528: (scan_loop): mention its value. 3529: * rtl.h: Define NOTE_INSN_LOOP_CONT. 3530: * stmt.c (expand_loop_continue_here): Output one. 3531: 3532: Fri Mar 31 10:08:29 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 3533: 3534: * c-typeck.c (pointer_int_sum, pointer_diff): Treat const void * like 3535: void *. 3536: 3537: * rtl.c (rtx_addr_varies_p): Don't die on null exp. 3538: * cse.c (refers_to_mem_p, refers_to_p): Likewise. 3539: 3540: * gcc.c (validate_switches, validate_all_switches): New fns. 3541: Mark a switch as valid if any compiler spec or the linker spec 3542: matches it, even for languages not being used. 3543: 3544: Thu Mar 30 00:22:14 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 3545: 3546: * loop.c (loop_optimize, move_movables): when moving a `clr' insn used 3547: in zero-extension, sometimes change it to an `and' so that the 3548: significant low bits are not clobbered. 3549: 3550: * cccp.c: Implement __BASE_FILE__ and #once. 3551: (savestring): New fn. 3552: (struct file_name_list): new name for struct directory_stack. 3553: (enum node_type): Add T_ONCE, T_BASE_FILE. 3554: (directive_table): Add #pragma once. 3555: (initialize_builtins): Add __BASE_FILE__. 3556: (special_symbol): Handle __BASE_FILE__, together with __FILE__. 3557: (do_include): Ignore the file if it's on the #pragma once list. 3558: (do_once): New fn; add current file to #pragma once list. 3559: 3560: * cccp.c (do_include): Don't add non-ex files to list of deps. 3561: 3562: * config.gcc: Use {...:-...}, not {...=...}. 3563: 3564: * c-parse.y: Add precedence for IF/ELSE, and for parens; 3565: avoids some conflicts. 3566: 3567: * tm-newsgas.h: Include tm-news.h and define USE_GAS. 3568: 3569: * tm-news.h: New name for tm-news800.h. 3570: If not USE_GAS, define SONY_ASM. 3571: Don't define USE_GAS by default. 3572: (CPP_PREDEFINES): Various alternatives depending on processor type. 3573: (ASM_FORMAT_PRIVATE_NAME): Override this. 3574: (ASM_IDENTIFY_GCC): Override; output nothing. 3575: (FUNCTION_PROLOGUE, FUNCTION_EPILOGUE): Round fsize up to % 4. 3576: Max for halfword link insn is 32k, not 64k. 3577: (FUNCTION_EPILOGUE): Don't output move.l if no regs to restore. 3578: (PRINT_OPERAND_ADDRESS): Change handling of tableref pc-rel addresses. 3579: * m68k.md (movhi): Add SONY_ASM conditional. 3580: 3581: * cse.c (cse_insn): If replacing a dest address, preserve MEM_IN_STRUCT 3582: 3583: * gcc.c (error, fatal): alternate varargs defns if HAVE_VPRINTF. 3584: 3585: Wed Mar 29 09:54:13 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 3586: 3587: * gcc.c (process_command): Check WORD_SWITCH_TAKES_ARG, so that 3588: -Tdata can be handled right. 3589: 3590: * stmt.c (check_for_full_enumeration_handling): new fn, for warn_switch 3591: (expand_end_case): Call it, if orig index was enum. 3592: * toplev.c (main): Handle -Wswitch. 3593: * c-parse.y (SWITCH stmt): Pass orig switch expr to expand_end_case. 3594: 3595: * tm-*.h, out-*.c: Uniformly use reg_names, not reg_name, and don't 3596: define any duplicates. 3597: * final.c: Delete reg_name. 3598: 3599: * c-parse.y (is_reserved_word): Add keywords __asm and __inline; 3600: also __const and __volatile. 3601: (yylex): Keywords that start with `__' are recognized regardless of 3602: -traditional or -ansi. 3603: 3604: * c-parse.y (check_newline): Always recognize #ident. 3605: Macro IDENT_DIRECTIVE is no more. 3606: If ASM_OUTPUT_IDENT is undefined, don't output anything for #ident. 3607: * tm-3b1.h: Don't define IDENT_DIRECTIVE or ASM_OUTPUT_IDENT. 3608: * tm-encore.h, tm-i386gas.h, tm-i368v.h, tm-sun386i.h, tm-vaxv.h: 3609: Don't define IDENT_DIRECTIVE; define ASM_OUTPUT_IDENT to output in 3610: default way. 3611: 3612: * expr.h (RETURN_IN_MEMORY): New macro, default defn here. 3613: * expr.c (expand_call): Use it to control where to return value. 3614: * stmt.c (expand_function_start): Likewise. 3615: 3616: * out-sparc.c (find_addr_reg): Abort if none found. 3617: Eliminate confusion; do only one change between tests for PLUSness. 3618: (output_move_double): Arg to find_addr_reg is address, not mem ref. 3619: * out-m68k.c, out-spur.c, out-i386.c, out-alliant.c: Likewise. 3620: 3621: * jump.c (find_cross_jump): Don't let either E1 or E2 be included 3622: in the range of matching insns preceding the other (E2 or E1). 3623: 3624: * c-parse.y (check_newline): No error for `#pragma\n'. 3625: 3626: * Makefile (gcc.o): Control STANDARD_STARTFILE_PREFIX here. 3627: 3628: * stmt.c (walk_fixup_memory_subreg): handle null. 3629: 3630: * tm-sparc.h (FUNCTION_BLOCK_PROFILER): Change LPBnn to LPYnn, 3631: to avoid conflict with final.c. 3632: 3633: Tue Mar 28 15:23:17 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 3634: 3635: * cccp.c (do_include): If fail, print system error message. 3636: (perror_with_name): Use more standard error format. Inc. `errors'. 3637: 3638: * dbxout.c (dbxout_function): Output any temporary types 3639: that were made by dbxout itself. 3640: 3641: * stmt.c: always use an epilogue if pcc-struct-return. 3642: (expand_function_start): Compute return_label after testing that. 3643: (expand_function_end): Output a return insn after pcc-struct-return 3644: processing, if there is a return insn. 3645: (expand_null_return): Don't output a return insn, in that case. 3646: Simplify the conditions--depends entirely on HAVE_return. 3647: 3648: * tm-m68k.h (FUNCTION_BLOCK_PROFILER): Use jsr, not call. 3649: 3650: * reload.c (find_reloads): Certain mem addresses will be offsetable 3651: after reloading; in particular, those where reg_equiv_address applies. 3652: 3653: * loop.c (check_dbra_loop): Change MINUS to COMPARE. 3654: 3655: * c-typeck.c (convert_for_assignment): Return THE standard error_mark. 3656: 3657: Thu Mar 23 09:39:02 1989 Richard M. Stallman (rms at watson) 3658: 3659: * c-parse.y (components): Error if empty. 3660: 3661: * dbxout.c (dbxout_symbol): Output const variables as N_STSYM. 3662: 3663: * varasm.c (force_const_mem): Use ASM_OUTPUT_DOUBLE_INT if defnd. 3664: 3665: * c-decl.c (grokdeclarator): Warn about `long long long'. 3666: 3667: * reload1.c (reload): When changing REG to MEM, clear REG_USERVAR_P. 3668: * final.c (alter_subreg): Preserve volatile bit of MEM. 3669: 3670: * m68k.md (cmpsi, cmphi): Permit cmpm. 3671: 3672: * gcc.c (find_file): Use standard_startfile_prefix_2. 3673: Now search /usr/local/lib/, /lib/ and /usr/lib/. 3674: 3675: * tm-m68k.h (PRINT_OPERAND): Support code `d'. 3676: * m68k.md (cmpsi, cmphi, cmpqi): Use it for all mem addresses. 3677: 3678: * final.c (output_asm_insn): Don't allow %LETTER without an 3679: operand number. 3680: * tm-m68k.h, m68k.md, tm-hp9k320.h, tm-news*.h: Use %@ instead of %s. 3681: * tm-alliant.h, alliant.md: Likewise. 3682: * i386.md, out-i386.h: Put `0' after each %L, %W, %B, %S, %Q, %R. 3683: 3684: * stmt.c (expand_end_stmt_expr): Pop pending stack args. 3685: 3686: * varasm.c (assemble_variable): For 0-size common variable, 3687: allocate at least 1 byte. 3688: 3689: * tm-encore.h (ASM_OUTPUT_DOUBLE, PRINT_OPERAND): Use 0f, not 0l, 3690: for doubles. 3691: 3692: Mon Mar 13 10:24:56 1989 Richard M. Stallman (rms at ccvi) 3693: 3694: * out-i386.h (function_prologue, function_epilogue): 3695: Use call_used_regs, not a copy, so -f options work. 3696: Save regs in the opposite order. 3697: Save regs even starting from 0 if they happen to be call-saved. 3698: 3699: * Bug fixes from Rob McMahon. 3700: 3701: * loop.c (strength_reduce): When inserting insn to set 3702: nonreplaceable giv, put it after all the consecutive insns 3703: that compute it. 3704: 3705: * reload.c (find_reloads): When forcing const to mem, 3706: use the insn's operand mode, not the const's mode. 3707: 3708: * reload1.c (choose_reload_targets): Use wider of inmode and outmode 3709: when determining have_groups. 3710: 3711: * reload1.c (choose_reload_targets): typo checked wrong insn with 3712: constraint_accepts_reg_p. 3713: 3714: * reload1.c (choose_reload_targets): Enable #if-0'd code for 3715: forgetting old reloads in case of output reload from a non-spill-reg. 3716: 3717: Sun Mar 12 00:04:49 1989 Richard M. Stallman (rms at ccvi) 3718: 3719: * c-parse.y (yyerror): Add forward-decl here. 3720: * c-tree.h: Delete decl here. 3721: 3722: * New macro USE_C_ALLOCA. 3723: * cse.c (cse_main): Do alloca (0) to clear out C alloca. 3724: * flow.c (life_analysis): 3725: * local-alloc.c (local_alloc): 3726: * reload1.c (reload_as_needed): likewise. 3727: 3728: * loop.c (emit_iv_init_code, eliminate_biv): 3729: Always put constant in a PLUS last. 3730: 3731: * gcc.c (make_switch): Unused function deleted. 3732: 3733: *gcc.c (switches): Each switch has a `used' field. 3734: (process_command): Init it to 0 when making `switches'. 3735: (do_spec_1, handle_braces, give_switch): Set to 1 when switch is used. 3736: (main): If it remains 0 at the end, print error message. 3737: 3738: * expr.c (convert_move, convert_to_mode): Don't truncate a MEM in 3739: place if it is volatile. 3740: 3741: * loop.c (strength_reduce): When reducing a giv, if the biv is 3742: incremented between the giv's creation and its use, increment 3743: the reduced giv var *after* its use. 3744: 3745: * c-decl.c (duplicate_decls): Warn about proto vs nonproto 3746: only if no other errors apply. 3747: 3748: * jump.c (invert_exp): Don't crash if arg is null. 3749: 3750: * alliant.md (float*i*f2): Don't allow immediate ops. 3751: (sne): Fix typo, fsne => fsneq. 3752: 3753: * expr.c (store_one_arg, expand_call): When size doesn't matter, 3754: pass const0_rtx, not (rtx) 0. 3755: 3756: * expr.c (do_jump): Args to invert_exp were missing. 3757: 3758: * gcc.c (store_arg): Now 2 separate args for delete-on-success 3759: and delete-on-failure. All calls changed. 3760: (do_spec_1): DELETE_THIS_FILE is meaningful for output files. 3761: 3762: * config/xm-alliant.h (LINK_SPEC): Pass -X to linker. 3763: 3764: Sat Mar 11 10:30:41 1989 Richard M. Stallman (rms at ccvi) 3765: 3766: * tm-*.h, xm-*.h, *.md: Moved to subdir `config'. 3767: * output-*.c: Moved to `config/out-*.c'. 3768: * Makefile (.c.o): Define rule to use -Iconfig when compiling. 3769: (various): Delete the commands from some compilation rules. 3770: Put -Iconfig in other compilation commands. 3771: Also some reordering of variable defs and comments for cleanliness. 3772: (realclean): Change a shell comment to a Make comment. 3773: 3774: * fold-const.c (fold): Simplify and extend TRUTH_... operators 3775: knowing that args must be ints and values will be 0 or 1. 3776: 3777: * gcc.hlp: New file (for VMS). 3778: 3779: * reload1.c (reload): Don't let two 2-groups overlap. 3780: 3781: * reload.c (push_reloads): When a plain reg matches a reload 3782: for an increment, don't change the reload_in to a plain reg. 3783: Leave the increment there. 3784: 3785: * integrate.c (expand_inline_function): Don't try to inline 3786: unless the parm machine modes really match what's expected. 3787: 3788: * stmt.c (emit_case_nodes): default_label is an rtx, not tree. 3789: 3790: * tm-next.h (DOLLARS_IN_IDENTIFIERS): Define it as 1. 3791: 3792: * output-sparc.c (output_move_double): Don't trust random structs 3793: to be double-word aligned. 3794: 3795: * gcc.c: Pass -Wcomments to cpp. 3796: 3797: * rtl.def (ASM_OPERANDS): New operands, source file and line. 3798: * rtl.h (ASM_OPERANDS_*): New macros for components of ASM_OPERANDS. 3799: * stmt.c (expand_asm_operands): Use new fields, not REG_ASM_* notes. 3800: * toplev.c (error_for_asm): likewise. 3801: * rtl.h (enum reg_note): Delete REG_ASM_FILE, REG_ASM_LINE. 3802: 3803: * combine.c (try_combine): Check explicitly for volatility in I2, I1. 3804: 3805: Fri Mar 10 19:30:10 1989 Richard M. Stallman (rms at ccvi) 3806: 3807: * c-parse.y (GOTO stmt): Set TREE_USED for the label. 3808: * c-decl.c (poplevel): Warn about unused label. 3809: 3810: * c-decl.c (warn_pointer_arith, warn_strict_prototypes): New vars. 3811: (lang_decode_options): Options to set them. 3812: * c-typeck.c (pointer_int_sum, c_sizeof): Maybe warn if bad target. 3813: * c-decl.c (grokparms): Maybe warn if nonprototype fn decl. 3814: 3815: * flags.h, toplev.c (warn_shadow): New flag. 3816: * toplev.c (main): Decode it. 3817: * c-decl.c (pushdecl): Maybe warn about any shadowing. 3818: Existing parm-shadowing warning now disabled if shadowing decl 3819: is also a parm. 3820: 3821: * flags.h, toplev.c (warn_id_clash, id_clash_len): New flags. 3822: * toplev.c (main): Decode -Wid-clash-LEN. 3823: * tree.c (get_identifier): Implement warning if two idents match. 3824: 3825: * toplev.c (compile_file): Warn about statics defined and unused. 3826: 3827: * rtl.h (CONST0_RTX): New macro. 3828: 3829: * recog.c (offsetable_address_p): New 1st arg says whether to demand 3830: a strictly valid address. 3831: (offsetable_memref_p): Pass nonzero. 3832: * stmt.c (optimize_bit_field): Pass zero. 3833: 3834: * cccp.c (main): Allow -Wcomment like -Wcomments. 3835: * c-decl.c (lang_decode_options): Likewise. 3836: 3837: Sun Mar 5 15:02:59 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) 3838: 3839: * m68k.md [tstdf, cmp[sd]f, truncdfsf2, floatsi[sd]f2, add[sd]f3, 3840: sub[sd]f3, mul[sd]f3, div[sd]f3, neg[sd]f2, abs[sd]f2]: Made sure 3841: that the test function's in the match_operands of the define_expand 3842: and define_insn's matched, and made that test function 3843: "register_operand" when both define_insn's really needed registers 3844: in that spot. 3845: 3846: Sat Mar 4 00:25:37 1989 Richard M. Stallman (rms at c2v) 3847: 3848: * expr.c (emit_push_insn): Don't ever bypass the big-endian 3849: padding at the end. 3850: 3851: * cccp.c (deps_output): Break line if would otherwise exceed 75 chars. 3852: Make a name for that value 75. 3853: 3854: * combine.c (subst): Handle general case of (subreg (sign_extend X)). 3855: 3856: * tm-sun386i.h (CPP_PREDEFINES): Define `sun'. 3857: 3858: * fixincludes: change `find' calls to find dirs thru symlinks. 3859: 3860: * flow.c (mark_set_1): (set (subreg (reg N))...) 3861: does make reg N significant for this basic block. 3862: 3863: Fri Mar 3 13:55:25 1989 Richard M. Stallman (rms at c2v) 3864: 3865: * c-decl.c (parmlist_tags_warning): Print an explanation 3866: for the first such warning. 3867: 3868: * i386.md (extendsfdf): Let op 1 match op0 if that is an fp reg. 3869: 3870: * expr.c (expand_call): Fix stupid errors copying pcc struct value. 3871: 3872: * varasm.c (output_constructor): Discard NOP_EXPRs from build_c_cast. 3873: 1.1.1.14 root 3874: Thu Feb 23 05:55:57 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 3875: 3876: * Version 1.34 released. 3877: 3878: * c-typeck.c (build_c_cast): If EXPR is an error mark, return that. 3879: 3880: * fold-const.c (div_and_round_double): Abort if divisor is 0. 3881: (combine): Likewise, for real constants. 3882: (real_zerop): New subroutine. 3883: (fold): Don't try to fold division if divisor is 0. 3884: Don't try to fold reals if can't do arithmetic on them. 3885: Don't try to compare reals for TRUTH_..._EXPR if can't do arith. 3886: Use real_zerop to test reals for zeroness. 3887: For TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR, can simplify based on 3888: first operand alone. 3889: 3890: * c-typeck.c (store_init_value): Fix error msg text. 3891: 3892: * tm-sparc.h (FUNCTION_PROFILER): Use `mcount'. 3893: * tm-sun4os3.h (FUNCTION_PROFILER): Override it; use `.mcount'. 3894: 3895: Wed Feb 22 04:33:22 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 3896: 3897: * tm-hp9k320.h (CPP_SPEC, CPP_PREDEFINES): Make handling of 3898: -Dmc68000 depend on TARGET_DEFAULT. 3899: 3900: * tm-sparc.h (FUNCTION_PROFILER): Missing newline in fprintf. 3901: 3902: * integrate.c (expand_inline_function): Don't map struct-value-address 3903: in memory if fn does not use it. 3904: 3905: * c-parse.y (check_newline): At skipline, detect eof. 3906: 3907: * stmt.c (uninitialized_vars_warning): Change text of warning. 3908: 3909: Tue Feb 21 03:58:50 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 3910: 3911: * output-sparc.c (output_mul_insn): Handle case of both args 3912: in reg 8, or both in reg 9. 3913: 3914: * tm-sparc.h (ASM_SPEC): Define, to handle -pipe. 3915: 3916: * tm-sparc.h (FUNCTION_PROFILER): Add omitted fprintf args. 3917: (BLOCK_PROFILER): Likewise. Use tempvar. 3918: 3919: * m68k.md (QImode btst): Allow nonoffsetable mem refs. 3920: 3921: Mon Feb 20 00:32:42 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 3922: 3923: * flow.c (mark_used_regs): Don't record about global reg vars. 3924: 3925: * config.gcc (convex-*): tm file names are tm-convex1.h, tm-convex2.h. 3926: 3927: * tm-vax.h, tm-ns32k.h, tm-alliant.h: Define PCC_STATIC_STRUCT_RETURN. 3928: 3929: * gcc.c (compilers): Pass `-a' to cc1. 3930: * tm-sun3.h, tm-sparc.h (LIB_SPEC): Define, to handle `-a'. 3931: 3932: * expr.c (emit_push_insn): Copy stack addresses to be passed to bcopy; 3933: old method of preadjustment is broken by changes in emit_library_call. 3934: 3935: * c-decl.c (finish_decl): New temp `temporary'; don't get confused 3936: about whether allocation was temporary. 3937: 3938: Sun Feb 19 17:03:35 1989 Chris Smith (csmith at mozart) 3939: 3940: * tm-convex.h: define PCC_STATIC_STRUCT_RETURN 3941: 3942: * convex.md: 3943: remove pshea patterns, movsi does it better. 3944: add ashift:DI abs:DF abs:SF 3945: (tstdi): use a clobbered register instead of a bogus DImode zero. 3946: (trunchiqi2): delete noninstruction cvth.b 3947: (udivsi3, udivhi3, udivqi3): deleted, expand_divmod does it now. 3948: (call, call_value): delete stupid call/ret -> jump optimization. 3949: (call, call_value): flush call_ap_check, use reg_mentioned_p instead. 3950: 3951: * convex.md: (movxx): swap constraint alternatives so that the 3952: leftmost alternative is (set =g r). This makes (set mem const) 3953: get combinable input reloads of const instead of uncombinable 3954: output reloads to mem. They still do not combine, but wtf, 3955: I'll inch up on it. 3956: 3957: * output-convex.c: (const_double_{high,low}_int): new routines 3958: to pick apart const_doubles for assembler. 3959: 3960: Sun Feb 19 01:40:17 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 3961: 3962: * sparc.md (shift memory right 24 bits): Another `a1' typo. 3963: 3964: * config.gcc (convex-*): Delete troublesome whitespace. 3965: 3966: * c-decl.c (grokparms): Delete redundant `parm != 0' tests. 3967: 3968: * stmt.c (fixup_memory_subreg): Slight simplification. 3969: 3970: * tm-sparc.h (FUNCTION_PROFILER): Fill delay slot. 3971: (FUNCTION_BLOCK_PROFILER): Use sethi. 3972: (BLOCK_PROFILER): Use %g2, not %g0. Use sethi. 3973: 3974: Sat Feb 18 02:11:25 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 3975: 3976: * expr.c (expand_expr): Ignore const array's initial value 3977: if it's an error_mark. 3978: * c-decl.c (finish_decl): Set DECL_INITIAL to an error_mark 3979: if the decl is a permanent node. 3980: 3981: * cccp.c (rescan): If traditional, if macro ends inside string, 3982: keep scanning for the end of the string. 3983: (handle_directive): A line of just `#' becomes blank. 3984: (collect_expansion): \ in strings traditionally doesn't hide macro arg. 3985: 3986: * m68k.md, alliant.md (addsi3): New alternative a=r+a, in addition 3987: to old a=a+r, needed since reload-insns are not commuted. 3988: 3989: Fri Feb 17 03:15:23 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 3990: 3991: * tm-m68k.h (PCC_STATIC_STRUCT_RETURN): Define it. 3992: * toplev.c, flags.h: New var flag_pcc_struct_return. 3993: * stmt.c (expand_function_start): Obey new flag and new variable. 3994: * expr.c (expand_call): Obey new flag and new variable. 3995: * varasm.c (assemble_static_space): New function. 3996: 3997: * stmt.c (expand_return): If we need cleanups, compute retval first 3998: into pseudo reg, then do the cleanups, then copy it to return reg. 3999: 4000: Thu Feb 16 02:59:52 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 4001: 4002: * regclass.c (init_reg_sets_1): Win if STATIC_CHAIN_REGNUM undefined. 4003: 4004: * expr.c (expand_call): Handle conflict between two precomputed 4005: args that are both function calls returning structures. 4006: 4007: * loop.c (move_movables): Bkwds test of m->partial, for a matching reg. 4008: 4009: * expr.c (emit_library_call, expand_call): Handle STACK_ARGS_ADJUST. 4010: 4011: Wed Feb 15 01:59:15 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 4012: 4013: * toplev.c (flag_caller_saves): New var, for -fcaller-saves. 4014: DEFAULT_CALLER_SAVES controls initial value. 4015: * global-alloc.c (find_reg): Do caller saves only if flag set. 4016: * local-alloc.c (find_free_reg): Do caller saves only if flag set. 4017: * tm-alliant.h, tm-convex.h: Define DEFAULT_CALLER_SAVES. 4018: 4019: Wed Feb 15 01:59:15 1989 Chris Smith (rms at sugar-bombs.ai.mit.edu) 4020: 4021: * caller-save.c: New file. 4022: * regs.h (CALLER_SAVE_PROFITABLE): New macro. 4023: (reg_n_calls_crossed): new int-vector replaces reg_crosses_calls. 4024: * flow.c (allocate_for_life_analysis, propagate_block, dump_flow_info): 4025: Use reg_n_calls_crossed. 4026: * stupid.c (stupid_mark_refs, stupid_life_analysis): Likewise. 4027: * global-alloc.c (find_reg): Sometimes allocate call-clobbered regs 4028: for call-crossing pseudos. 4029: New arg ACCEPT_CALL_CLOBBERED; callers changed. 4030: * local-alloc.c (find_free_reg): Similar changes. 4031: (qty_n_calls_crossed): New int-vector replaces qty_crosses_calls. 4032: (alloc_qty, local_alloc, combine_regs, find_free_reg): change that var. 4033: * regclass.c (call_fixed_regs, call_fixed_reg_set): new vars. 4034: (init_reg_sets_1): Initialize them. 4035: * reload1.c (reload): Call caller-saves processing if needed. 4036: 4037: Wed Feb 15 01:59:15 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 4038: 4039: * expr.c (expand_expr): INTEGER_CST for DImode: don't handle 4040: endianness here. So CONST_DOUBLE_LOW is always the low word. 4041: * varasm.c (force_const_mem): Handle it here. 4042: 4043: * expr.c (convert_move): widening followed by extendsidi2 had braino. 4044: 4045: * integrate.c: Don't include ctype.h; not needed and kills Sun cpp. 4046: 4047: * m68k.md (cmpsf, cmpdf and their recognizers): 4048: Replace MINUS with COMPARE. 4049: Also, use VOIDmode for COMPAREs, not SF or DF. 4050: 4051: * optabs.c (sign_expand_binop): Handle ops such as division where 4052: an unsigned char could be widened and handled with signed int insns. 4053: * expmed.c (expand_divmod): Use that. 4054: 4055: * c-typeck.c (digest_init): Allow for type variants in validating 4056: initialization from a string constant. 4057: 4058: * c-typeck.c (decl_constant_value): Disable opt. if pedantic or 4059: outside functions, so that validity of program is never affected. 4060: 4061: * fold-const.c (fold): Signedness-test for ABS_EXPR was backwards. 4062: 4063: Tue Feb 14 01:30:47 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 4064: 4065: * cccp.c (main): Don't omit normal output, if we want deps on 4066: a separate stream. 4067: 4068: * c-decl.c (grokdeclarator): Don't record any arg types for functions 4069: if -traditional. 4070: 4071: * print-tree.c (prtypeinfo): Mention permanent attribute. 4072: 4073: * tm-next.h: New file. 4074: 4075: * c-typeck.c (decl_constant_value): The DECL_INITIAL may be ERROR_MARK. 4076: 4077: * c-decl.c (duplicate_decls): For fns, new static decl overrides 4078: old non-static one. 4079: 4080: * emit-rtl.c (gen_lowpar, gen_highpart): Use change_address, so we 4081: preserve volatility, etc. 4082: 4083: * stmt.c (expand_expr_stmt): Use emit_filename, emit_lineno 4084: as file and line for any warning. 4085: * emit-rtl.c (emit_line_note): Set those vars. 4086: 4087: * c-decl.c (store_parm_decls): If -Wimplicit, warn of arg with no decl. 4088: 4089: * recog.c (offsetable_address_p): Use strict_memory_address_p, 4090: since called from reload.c. 4091: 4092: Mon Feb 13 03:11:50 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 4093: 4094: * sparc.md (compare-to-reg patterns): Some still had MINUS. 4095: 4096: * toplev.c (main): Warn if `-a' on system that can't handle it. 4097: 4098: * stmt.c (expand_asm_operands): Delete unused local `val'. 4099: (pushcase_range): Likewise for `value'. 4100: (fixup_var_refs): Likewise for `insn'. 4101: * emit-rtl.c (start_sequence): Likewise for `save'. 4102: * loop.c (scan_loop): Likewise for `before_start'. 4103: * expr.c (expand_expr): Delete label `binop1'. 4104: 4105: * reload1.c (constraint_accepts_reg_p): Handle SUBREGs of REGs. 4106: 4107: Sun Feb 12 05:37:46 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 4108: 4109: * gnulib.c (__bb_init_func): New function 4110: 4111: * tm-m68k.h (BLOCK_PROFILER, FUNCTION_BLOCK_PROFILER): Defined. 4112: 4113: Sat Feb 11 00:05:55 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 4114: 4115: * tm-sparc.h (FUNCTION_PROFILER): Make it really work. 4116: (BLOCK_PROFILER, FUNCTION_BLOCK_PROFILER): New macros. 4117: 4118: * final.c (final): Use BLOCK_PROFILER at start of each basic block. 4119: (final_start_function): Use FUNCTION_BLOCK_PROFILER if -a. 4120: (end_final): New fn to output the block-profiling tables. 4121: * toplev.c (profile_block_flag): Set if -a. 4122: (compile_file): Call end_final. 4123: 4124: * combine.c (try_combine): Avoid combining in most cases if I3 4125: has an inc or dec and I1 or I2 uses the same register. 4126: 4127: * tree.c (size_in_bytes, int_size_in_bytes): Use type's main variant. 4128: 4129: * c-typeck.c (actualparameterlist): Error if parm type is incomplete. 4130: 4131: * expr.c (expand_call): Ignore args that have incomplete type. 4132: 4133: Fri Feb 10 02:26:02 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 4134: 4135: * c-parse.y (case stmts): strip dummy NOP_EXPRs. 4136: 4137: * reload1.c (reload_as_needed): Clear reg_{has,is}_output_reload here, 4138: (choose_reload_targets): not here. 4139: 4140: Thu Feb 9 01:35:55 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 4141: 4142: * output-sparc.c (output_mul_by_constant): Forget cc status. 4143: 4144: * stmt.c (assign_parms): Don't put volatile parms in regs. 4145: 4146: * vax.md (jlbs/jlbc recognizers): Move them before jbc/jbs recognizers. 4147: 4148: * cse.c (fold_rtx): Handle (EQ (COMPARE ...) (CONST_INT 0)). 4149: 4150: * c-typeck.c (default_conversion, digest_init): For static const 4151: nonvolatile scalar variable, use its initial value if known. 4152: 4153: * expr.c (expand_expr: case COMPONENT_REF): If containing structure 4154: comes out volatile, leave the component MEM volatile too. 4155: 4156: * hard-reg-set.h: Fix multi-word case macros to swallow semicolon. 4157: 4158: * c-typeck.c (default_conversion): In array=>ptr, volatility 4159: of target type comes from TREE_THIS_VOLATILE, not TREE_VOLATILE. 4160: 4161: * reload1.c (forget_old_reload_1, choose_reload_targets): 4162: New array reg_is_output_reload is converse of reg_has_output_reload. 4163: forget_old_reload_1 needs both. 4164: 4165: Wed Feb 8 01:26:24 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 4166: 4167: * reload1.c (forget_old_reloads_1): New fn, guts of forget_old_reloads. 4168: Do process a spill reg if it isn't used for reloading in this insn. 4169: (forget_old_reloads): Deleted, replaced with note_stores. 4170: (reload_as_needed): Undo Feb 1 change. 4171: Call forget_old_reloads_1 on pseudos autoincremented and not reloaded. 4172: 4173: * c-typeck.c (convert_for_assignment): Handle variant types. 4174: 4175: * c-decl.c (lang_decode_option): -Wall implies -Wunused. 4176: 4177: Tue Feb 7 01:32:28 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 4178: 4179: * combine.c (try_combine): Don't try adding outputs to an asm_operands. 4180: 4181: * cse.c (CHEAPER): Don't ever let a hard reg get ahead of a pseudo. 4182: 4183: * stmt.c (fixup_gotos): Don't crash on undef label if THISBLOCK is 0. 4184: 4185: * c-decl.c (parmlist_tags_warning): New fn. 4186: * c-parse.y (parmlist, parmlist_or_identifiers): Call it, 4187: to warn about any tags defined inside the parmlist. 4188: * c-decl.c (grokparms): Don't warn about ptr to incomplete type. 4189: The new warning is better. 4190: 4191: Mon Feb 6 01:11:36 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 4192: 4193: * expr.c (store_constructor): Incorrect ALIGN arg in store_field calls. 4194: 4195: * c-parse.y (%union): Delete unused alternative. 4196: 4197: * c-decl.c (grokparms): Use main variant to test for ptr to incomplete. 4198: 4199: * c-decl.c (finish_enum): Delete superfluous init for `pair'. 4200: 4201: * cse.c (fold_rtx): Optimize X+0, X-0 in floating point. 4202: Fix typo in PLUS case; omitted value to compare GET_MODE_CLASS against. 4203: (equiv_constant): Allow CONST_DOUBLE. 4204: 4205: * cse.c: Optimize past if-statements that are known to fail. 4206: (cse_insn): If condjump becomes uncond to end of this block, 4207: set cse_skip_to_next_block. 4208: (cse_basic_block): If that happens, ignore rest of block, and maybe 4209: treat next block as part of this one (if tables have room). 4210: Resume insn that starts next basic block to be scanned. 4211: (cse_main): Make room for at least 500 qtys. 4212: (cse_end_of_basic_block): Subroutine broken out of cse_main. 4213: 4214: * c-parse.y (hash, is_reserved_word): Rewrite: new hash technique. 4215: 4216: * c-decl.c (duplicate_decls): Be smart about proto vs nonproto mismatch 4217: involving a function definition. 4218: 4219: Sun Feb 5 17:31:12 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 4220: 4221: * alliant.md (movdi): Typo in `fmoved'. 4222: (ftruncsf2): Handle moving into fp reg. 4223: 4224: * jump.c (jump_optimize): Typo in testing PRESERVE_DEATH_INFO_REGNO_P. 4225: 4226: * reload1.c (choose_reload_targets): Move all death notes to the 4227: output reload insn. 4228: 4229: * m68k.md (fix_truncsfsi2,fix_truncdfsi2): Use accurate rtl pattern. 4230: 4231: * loop.c (delete_insn_forces): Use presence of REG_RETVAL to check 4232: for value-of-library-call insn. 4233: 4234: Sat Feb 4 18:17:56 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 4235: 4236: * integrate.c (expand_inline_function): Make addresses of stack 4237: slots valid somehow. 4238: 4239: * tm-3b1.h (DIVSI3_LIBCALL, etc.): Define these macros; avoid gnulib. 4240: 4241: * expmed.c (store_bit_field): Avoid (subreg (mem)) when converting 4242: VALUE1 to SImode. 4243: 4244: * jump.c (jump_optimize): Do delete USE and CLOBBER insns. 4245: This is needed for proper jump optimization. 4246: 4247: * rtl.def (COMPARE): New code. 4248: * *.md (compare and related patterns): Use COMPARE, not MINUS:VOID. 4249: * loop.c (eliminate_biv, can_eliminate_biv_p): Likewise. 4250: * cse.c (fold_rtx, fold_cc0, cse_insn): 4251: * output-m88k.c (output_{f,}compare, output_store): 4252: * output-sparc.c (strict_single_insn_op_p, single_insn_src_p, safe_insn_src_p): 4253: * combine.c (subst): 4254: * jump.c (jump_back_p): 4255: 4256: Fri Feb 3 18:34:27 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 4257: 4258: * output-i386.c (notice_update_cc): If arith insn sets the cc's, 4259: discard all remnants of previous cc value and flags. 4260: 4261: * sparc.md (ashiftrt mem by 24): Fix typo `a1'. 4262: 4263: Thu Feb 2 14:55:44 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 4264: 4265: * output-sparc.c (output_mul_insn): Clear the CC status. 4266: 1.1.1.13 root 4267: Wed Feb 1 20:01:54 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 4268: 4269: * Version 1.33 released. 4270: 4271: * reload1.c (reload_as_needed): On entering new basic block, 4272: if it didn't need reload regs, forget all inherited contents of those. 4273: 4274: * tm-alliant.h (NOTICE_UPDATE_CC): Floating moves don't set the cc's. 4275: Also delete the clauses and tests for FPA regs. 4276: 4277: Tue Jan 31 21:51:05 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 4278: 4279: * config.gcc: Handle convex-c1, convex-c2. 4280: * tm-convex1.h, tm-convex2.h: New files that include tm-convex.h. 4281: * tm-convex.h: Define switches -mnoc1, -mnoc2. 4282: 4283: * config.gcc: rename `nofp' to `nfp', to match the file names. 4284: 4285: Mon Jan 30 22:12:15 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 4286: 4287: * output-sparc.c (output_delay_insn): Extract the operands, 4288: call alter_subreg, constrain_operands and NOTICE_UPDATE_CC. 4289: So callers other than output_eager_then_insn don't lose. 4290: (output_eager_then_insn): No need to do that stuff. 4291: 4292: * symout.c (symout_block_symbols): Handle (MEM (REG)) for 4293: variable-sized arrays. 4294: 4295: * tm-encore.h (ASM_SPEC): Always pass -j; avoid jump-range lossage. 4296: 4297: Sun Jan 29 17:06:26 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 4298: 4299: * alliant.md: Fix refs to CONST_DOUBLEs to use CONST_DOUBLE_{HIGH,LOW}. 4300: 4301: * combine.c (subst): (minus (zero_extend ...) (const_int ...)) opt. 4302: now limited to within the context of (set (cc0) ...). 4303: 4304: Sat Jan 28 14:26:08 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 4305: 4306: * cse.c (fold_cc0): Missing `&' extracting CONST_DOUBLEs. 4307: (fold_rtx): Don't put CONST_DOUBLEs together into a (CONST (PLUS...)). 4308: 4309: * output-convex.c (gen_cmp): Recognize CONST_DOUBLE as a constant. 4310: 4311: * tree.c (build_real_from_int_cst): Typo in REAL_ARITHMETIC case. 4312: 4313: * Makefile (bootstrap2): Don't use bootstrap3 as subroutine. 4314: 4315: * varasm.c (force_const_mem): Put the CONST_DOUBLE on the chain 4316: if its MEM is stored in it; so it can be cleared at end of function. 4317: 4318: * stmt.c (emit_case_nodes): Put a compare before each cond-jump. 4319: Two cond-jumps after one cond is invalid and makes cse produce garbage. 4320: 4321: Fri Jan 27 01:05:01 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 4322: 4323: * tm-sun2.h (CPP_SPEC): Define __HAVE_68881__ only if -m68881. 4324: 4325: * c-decl.c (start_decl): Don't expand_decl if DECL already has rtl. 4326: (grokparms): If just declaring fcn, incomplete parm type is just 4327: a warning, and don't discard the specified type. 4328: 4329: * expmed.c (expand_divmod): Be smarter about not clobbering args 4330: with intermediate results; one mem can clobber another, and a reg 4331: can clobber a mem. 4332: 4333: * tm-i386.h (FUNCTION_PROFILER): Use LPREFIX. May actually work now. 4334: * tm-i386gas.h: Include tm-bsd386.h, not tm-att386.h. 4335: This means changing asm syntax. 4336: #undef DBX_NO_XREFS and DBX_CONTIN_LENGTH. 4337: 4338: * sparc.md (eager branch peepholes): Don't forget 2nd arg to 4339: safe_insn_src_p. 4340: Don't print warnings. 4341: * output-sparc.c: (strict_single_insn_op_p): Return 0 for floating 4342: REG or MEM, since copying that may take 2 insns. 4343: (operands_satisfy_eager_branch_peephole): require delay insn to 4344: be strict_single_insn_op_p as well as safe_insn_src_p. 4345: (operand_clobbered_before_used_after): Don't print warnings. 4346: 4347: * varasm.c (decode_rtx_const): Clear entire structure incl. gaps. 4348: Avoids spurious hash mismatches. 4349: (force_const_mem): If CONST_DOUBLE, store its CONST_DOUBLE_MEM field. 4350: Also look in that field rather than hashing, to save time. 4351: 4352: * c-typeck.c (build_c_cast): If value is literal, mark NOP_EXPR as so. 4353: (store_init_value): Change error msg. 4354: 4355: * c-decl.c (duplicate_decls): Classify prototype vs nonprototype 4356: mismatches better. 4357: 4358: * tm-3b1.h: Fix comment. 4359: 4360: Wed Jan 25 12:46:50 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 4361: 4362: * Makefile (cleanlinks): Use -f. 4363: 4364: Tue Jan 24 17:54:16 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 4365: 4366: * cse.c (canon_hash): Fix paren error in last change. 4367: 4368: * varasm.c (immed_real_const_1): Missing arg to bcmp. 4369: 4370: Mon Jan 23 02:43:45 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 4371: 4372: * stor-layout.c (layout_type): BLKmode elts force array to be BLKmode. 4373: 4374: * genpeep.c, genoutput.c, genemit.c: Put `#include "real.h"' in output. 4375: 4376: * stmt.c (expand_expr_stmt): No "no effect" warning for error-mark. 4377: 4378: * varargs.h: Rename implicit arg name to __builtin_va_alist 4379: which triggers code in assign_parms. Does this really matter? 4380: 4381: * sparc.md (sne): New define_expand. 4382: (seq recognizers): Handle sne as well. 4383: * output-sparc.c ({strict_,}single_insn_src_p): 4384: Some NEG and MINUS insns are actually 2 asm insns. 4385: (safe_insn_src_p): No floating arith is safe; they can trap. 4386: (eq_or_neq): New fn, for seq/sne recognizers. 4387: 4388: * c-decl.c (grokdeclarator, size of array type): 4389: Strip from SIZE any NOP_EXPRs that don't change anything. 4390: 4391: * reload.c, recog.c: Include real.h so constraint macros can examine 4392: CONST_DOUBLEs. 4393: 4394: Sun Jan 22 04:12:54 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 4395: 4396: * c-decl.c (init_decl_processing): Define __builtin_saveregs. 4397: * tree.h: likewise. 4398: * expr.c (expand_builtin): Handle it. 4399: 4400: * tm-sparc.h: Define TARGET_EAGER and -meager. 4401: * sparc.md (eager branch peepholes): Reenable, but test TARGET_EAGER. 4402: Change fb insns to use %F. Delete `,a' from some of them. 4403: * jump.c (jump_optimize): Don't delete USE and CLOBBER insns. 4404: 4405: * xm-vms.h (const): Define it as empty. 4406: 4407: * make-cccp.com: Move the rename of cexp_tab.c. 4408: Compile cccp.c with no macro definitions. 4409: 4410: * cccp.c (main): VMS conditional for setting max_include_len. 4411: 4412: Sat Jan 21 12:53:00 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 4413: 4414: * varargs.h (va_start): On sparc, call __builtin_saveregs. 4415: Delete the old conditional that used va-sparc.h. 4416: Rename macros and locals to start with two underscores. 4417: * va-sparc.h: File deleted. 4418: 4419: * c-decl.c (store_parm_decls): Initialize OTHERS. 4420: 4421: * stmt.c (assign_parms): Obey layout_decl. 4422: 4423: Fri Jan 20 02:19:32 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 4424: 4425: * cse.c (fold_rtx): For SYMBOL_REF and LABEL_REF, mask address 4426: to 16 bits. 4427: 4428: * tree.h (NUM_TREE_CODES): NUM_TREE_CODE renamed. 4429: 4430: Thu Jan 19 13:53:24 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 4431: 4432: * c-typeck.c (mark_addressable): For global reg var, report error. 4433: Now returns an int; value of 0 means caller should fail. 4434: All calls (in this file) changed. 4435: 4436: * stor-layout.c (layout_decl): Don't let an more than 1 word 4437: of any aggregate go in any 1 register. (Needed for machines whose 4438: integer regs are 64 bits). 4439: 4440: * tm-convex.h, xm-convex.h, convex.md, output-convex.c: new files. 4441: 4442: * expr.c (convert_move): Use extendqidi2, etc. for converting 4443: small ints to double ints. Use zero_extendsidi2 rather than 4444: clearing the high half. 4445: 4446: Wed Jan 18 01:20:52 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 4447: 4448: * varasm.c (make_decl_rtl): If global `register' decl is invalid, 4449: make ordinary non-register rtl. 4450: 4451: * output-sparc.c (operand_clobbered_before_used_after): new fn. 4452: (reg_clobbered_p, safe_insn_src_p): New fns. 4453: (single_insn_src_p): Treat constants all as ok, even though not 4454: always literally so. Also accept some SIGN_EXTENDs and ZERO_EXTENDs. 4455: (strict_single_insn_src_p): New fn, like above but is strict 4456: about constants and constant memory addresses. 4457: (relop): New fn. 4458: (output_move_double): Don't make a MEM, and don't use %m. 4459: (output_delayed_branch): New name for output_delay_insn. 4460: Now handle non-small constant operands. 4461: Avoid duplicate loads of g1 for constant addresses. 4462: Use recog_operand directly for output of the delay insn. 4463: (output_delay_insn): Now a completely new fn. 4464: (output_eager_then_insn, next_real_insn_no_labels): New fns. 4465: (operands_satisfy_eager_branch_peephole): New fn. 4466: 4467: * sparc.md: New peepholes for testing a recently used operand. 4468: New peepholes for delayed branches, incl. conditional ones. 4469: ** Some of them commented out because they seem not to work. 4470: (andcc recognizer): Fix typo, missing %. 4471: (bgt): Change bgt to bg in output. 4472: (reversed jumps): Replace with one pattern using match_operand. 4473: It uses %F to output the condition. 4474: (movsi): For round-valued immed const, use just a sethi. 4475: For other immed, use explicit sethi and or. 4476: (movhi, movqi): use `move' for reg source or small int source. 4477: For other immed, use explicit sethi and or. 4478: (movsi, etc.): Handle all constant addresses like SYMBOL_REFs. 4479: (movsf): Delete never-used duplicate code for constant addresses. 4480: (addsi3, subsi3, cse'd multiply): Use sethi and or, rather than set. 4481: (andsi3, iorsi3, xorsi3): Likewise. 4482: (jump): Make an annulled branch. 4483: 4484: * tm-sparc.h (PROMOTE_PROTOTYPES): Define this. 4485: (GO_IF_LEGITIMATE_ADDRESS): Now accept all constant addresses; 4486: also cleaned up. 4487: (NOTICE_UPDATE_CC): Don't change the G1 status when storing in memory. 4488: Assume all PARALLEL insns are peepholes. 4489: (PRINT_OPERAND): New codes C and N for outputting conditions, 4490: either forward or reversed. Also F for reversed floating. 4491: 4492: * jump.c (delete_for_peephole): New function to delete range of insns. 4493: * genpeep.c (gen_peephole): Output code to use this. 4494: 4495: * Makefile (install): Fix typo, had $${name} for $${file}. 4496: 4497: Tue Jan 17 00:00:12 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 4498: 4499: * i386.md (ashlsi3): Use addl or leal for special cases. 4500: 4501: * c-decl.c (grokdeclarator): Make a non-global VAR_DECL public 4502: if it is external. 4503: 4504: * masm386.c: Clean up formatting. 4505: 4506: * cse.c (fold_rtx): Typo simplifying x|0 or x^0 4507: when the 0 comes second. 4508: 4509: * expmed.c (store_fixed_bit_field): For halfwords, verify that 4510: the field fits in an *aligned* halfword. 4511: (extract_fixed_bit_field): likewise. 4512: 4513: * expmed.c (store_split_bit_field): New arg align, passed in from 4514: store_fixed_bit_field and passed back to it. 4515: (extract_split_bit_field): likewise. 4516: 4517: * expr.c: Reinsert changes from Jan 2, mysteriously deleted Jan 3. 4518: Also changes from Dec 23, Dec 28 and Dec 29. 4519: 4520: * tm-i386.h: Likewise for changes from Dec 30. 4521: 4522: * c-typeck.c (build_component_ref): If field's type is error-mark, 4523: return an error-mark. 4524: 4525: Mon Jan 16 14:16:54 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 4526: 4527: * genpeep.c (main): Output code to exit early if insn is followed 4528: by a barrier. 4529: (gen_peephole): Reject barriers just like labels. 4530: 4531: * stmt.c (do_jump_if_equal): New arg UNSIGNEDP, for emit_cmp_insn. 4532: Caller changed. Now static. 4533: 4534: * final.c (final): Set INSN_DELETED_P in insns when output. 4535: 4536: * final.c (final): Re-set BODY if peephole does anything. 4537: 4538: * c-decl.c (grokparms): Ignore anything but PARM_DECLs in the list. 4539: (store_parm_decls): If we had a prototype, separate out anything other 4540: than a PARM_DECL declared in it, and pushdecl those at the end, 4541: after DECL_ARGUMENTS is set. 4542: 4543: * stmt.c (expand_end_case): Do stack adjusts after computing index. 4544: 4545: * expr.c (store_one_arg): Handle padding for case of BLKmode 4546: for which space was preallocated. 4547: 4548: * integrate.c (copy_rtx_and_substitute): When copying asm insn, 4549: preserve sharing of the input-operand vectors. 4550: (expand_inline_function): Clear {orig,copy}_asm_operands_vector 4551: to make that mechanism work. 4552: (save_for_inline, copy_for_inline): Likewise. 4553: 4554: * stmt.c (expand_asm_operands): Reject `+' in constraints. 4555: Every output constraint requires `='; inputs reject it. 4556: 4557: * stmt.c (expand_function_end): Arg to fixup_gotos was missing. 4558: 4559: Sun Jan 15 00:28:23 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 4560: 4561: * cccp.c, gcc.c (main): Handle SIGPIPE. 4562: (pipe_closed): New fn; report suitable fatal error. 4563: 4564: * loop.c (loop_optimize): Initialize moved_once. 4565: 4566: * gcc.c (do_spec): Don't call `execute' if value != 0. 4567: Delete redundant second call to do_spec_1. 4568: 4569: * toplev.c (compile_file): Make declared-but-not-defined warnings 4570: only if -Wunused. 4571: 4572: * stmt.c (emit_case_nodes): Fix typo setting gen_ble_pat. 4573: 4574: * tm-sparc.h ({U,}MODSI3_LIBCALL): Name was wrong. 4575: 4576: * gcc.c (env_exec_prefix refs): Don't try to open via it if it's null. 4577: 4578: * output-sparc.c (output_store, output_load_{fixed,floating}): 4579: Fixed confusions between the mem ref and its address. 4580: 4581: * cse.c (canon_hash): global_regs has entries only for hard regs. 4582: * flow.c (insn_dead_p, mark_set_p, mark_used_regs): Likewise. 4583: 4584: * cse.c (fold_rtx): More simplifications for MULT, IOR, AND, XOR 4585: DIV and shifts with one arg 0 or 1. 4586: 4587: Sat Jan 14 11:41:11 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 4588: 4589: * c-typeck.c (build_array_ref): If pedantic, check for regdecl arrays. 4590: 4591: * fixincludes: Make all subdirs in advance, so no need for `dirname'. 4592: 4593: * genpeep.c (gen_peephole): Delete code to increment LABEL_NUSES; 4594: instead, clear JUMP_LABEL for any jumps being deleted. 4595: No need to test INSN1 for being a label, since not called then. 4596: [If any of the matched insns is a JUMP_INSN, set want_jump, 4597: and in that case make the matched peephole a JUMP_INSN itself.] 4598: That's in an #if 0 now; it's good in jump, but not in final. 4599: 4600: * jump.c (jump_optimize): Don't do peepholes here. 4601: * final.c (final): Do them here. 4602: 4603: * jump.c (jump_optimize): In optimizing `if (foo) bar; else break;', 4604: don't try to invert anything but a standard-looking conditional jump. 4605: 4606: * jump.c (jump_optimize): Do peepholes on ALL BUT the first pass. 4607: 4608: * gcc.c (env_exec_prefix): New var used like user_exec_prefix 4609: but set from envvar GCC_EXEC_PREFIX. 4610: 4611: Fri Jan 13 13:21:59 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 4612: 4613: * genpeep.c (gen_peephole): Test INSN1 for a label at the very start, 4614: then test following insns at the end of the loop. 4615: 4616: * sparc.md (call recognizers): do CC_STATUS_INIT, for %g1. 4617: 4618: Thu Jan 12 02:13:49 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 4619: 4620: * varasm.c (make_decl_rtl): Recognize more error cases for reg vars: 4621: BLKmode, or initializer given. 4622: Distinguisn missing asm from invalid name. 4623: 4624: * expr.c (expand_call): Never return 0; return const0_rtx instead. 4625: This makes expand_expr more uniform. 4626: 4627: * c-decl.c (grokparms): For ptr to incomplete type, just warn; 4628: don't change the parm's type. 4629: 4630: * stmt.c (expand_return): Set RETVAL_RHS so as to recognize 4631: tail-recursive fcn returning void. 4632: Unconditionally test value of expand_expr for being a REG. 4633: 4634: * reload.c (find_reloads): Don't process insns that have 4635: no constraint alternatives. No more need for have_constraints. 4636: 4637: * recog.c (constrain_operands): New local var nalternatives. 4638: Don't bother checking the insn if nalternatives is 0. 4639: 4640: Wed Jan 11 01:27:48 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 4641: 4642: * Implement global register decls. 4643: 4644: * varasm.c (make_decl_rtl): Handle global register vars. 4645: (make_function_rtl): Set function_defined: after 1st function dfn. 4646: (assemble_variable): Ignore global register vars. 4647: 4648: * c-decl.c (grokdeclarator): Don't reject global register decls. 4649: (builtin_function): Use make_decl_rtl, not make_function_rtl, 4650: to avoid setting function_defined. 4651: 4652: * regclass.c (init_reg_class{,_1}): Init and process global_regs. 4653: They are fixed, and call-clobbered. 4654: 4655: * flow.c (insn_dead_p): Storing one of global_regs is never dead. 4656: (mark_used_regs, mark_set_1): A global reg is never dead. 4657: 4658: * cse.c (canon_hash): Consider global regs volatile. 4659: 4660: 4661: * expr.c (do_jump): Know how to invert jumps which are sequences. 4662: 4663: * dbxout.c, symout.c, final.c: On USG, use our own stab.h. 4664: 4665: * tm-i386gas.h: New file for GAS on sysV (with DBX debugging info). 4666: 4667: * m68k.md (bfchg and bfins patterns): Make # alternatives uniform. 4668: * alliant.md: Likewise; also in movdf patterns. 4669: 4670: * genoutput.c (output_epilogue): Spurious `break' disabled 4671: error check for mismatched # of alternatives. 4672: (output_epilogue, scan_operands): Errors in input are not fatal. 4673: 4674: * flow.c (regno_uninitialized): Avoid crash if no basic blocks. 4675: 4676: * sparc.md (move insns): Delete special patterns that handled 4677: symbolic constant addresses. The main move patterns now do this. 4678: * output-sparc.c (output_store, output_load_{fixed,floating}): 4679: Subroutines to do the work for this; has the code from those 4680: special patterns. Also fixed bugs in testing against cc_status.mdep. 4681: 4682: * output-sparc.c (output_delay_insn): Clear the CC status. 4683: This is necessary for %g1 in the case of a call insn. 4684: 4685: * tm-i386.h (REG_CLASS_CONTENTS): INDEX_REGS is now all but ESP. 4686: (REGNO_REG_CLASS): Corresponding change. 4687: (REG_CLASS_FROM_LETTER): Eliminate `x' letter since not used. 4688: 4689: * optabs.c (emit_cmp_insn): New arg ALIGN, used for BLKmode. 4690: All callers changed. 4691: Pass alignment (as rtx) as 4th arg to cmpstr gen functions. 4692: Use cmpstrhi if available. 4693: * expr.c (compare): Only this call passes a nonzero ALIGN. 4694: 4695: * expr.c (emit_push_insn, emit_block_move): Pass alignment (as rtx) 4696: as 4th arg to movstr gen functions. 4697: 4698: Tue Jan 10 23:43:05 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 4699: 4700: * stor-layout.c (layout_type): Use BLKmode, if a struct isn't 4701: aligned well enough for a scalar mode. 4702: 4703: * expr.c (expand_expr): For static CONSTRUCTOR, ensure memory 4704: address is made valid. 4705: 4706: * genpeep.c (match_rtx): For MATCH_OPERATOR, set max_opno, n_operands. 4707: 4708: Mon Jan 9 17:07:56 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 4709: 4710: * varasm.c (output_constant): Split strings every 2000 chars. 4711: 4712: * stmt.c (expand_end_case): Test bkwds, handling constant switch arg. 4713: 4714: Fri Jan 6 09:11:20 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 4715: 4716: * output-sparc.c (output_delay_insn): Add parens to first if test. 4717: (output_move_double): Turn addr for `sethi' into MEM for %m. 4718: 4719: * c-typeck.c (convert_for_assignment): move test for ERROR_MARK. 4720: 4721: * c-parse.y (unary_expr): Allow cast_expr as arg of unary op. 4722: 4723: * stmt.c (expand_decl): Don't abort if FUNCTION_DECL lacks rtl; 4724: assemble_variable is called after this. 4725: 4726: * c-parse.y (primary -> identifier): Separate case for undeclared 4727: identifier outside of functions; avoids confusing error msgs. 4728: 4729: Thu Jan 5 01:24:47 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 4730: 4731: * Makefile (install): Ignore errors in all `if' commands. 4732: Create $(libdir) if nec. 4733: 4734: * Makefile (insn-*.[ch]): Put in empty commands. May help Ultrix Make. 4735: 4736: * stmt.c (emit_case_nodes): New arg UNSIGNEDP says do unsigned jumps. 4737: Arg INDEX is an rtx, not a tree. 4738: (expand_end_case): Pass that arg. 4739: (node_has_{low,high}_bound): check for overflow, avoid confusion. 4740: 4741: Wed Jan 4 02:24:21 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 4742: 4743: * sparc.md (movdi, movdf): Use `&' constraint when loading reg from; 4744: otherwise can lose on (set (reg X) (mem (plus (reg X) (reg X+1)))). 4745: 4746: * expr.c (emit_push_insn): For memory scalar partially going in regs, 4747: copy each word to reg before pushing. Avoids memory-to-memory move. 4748: Make the displaced address valid. 4749: Also delete unfinished STACK_OFFSET variable. 4750: 4751: * c-parse.y (check_newline): Read just one #-directive and return. 4752: This prevents lossage when toplev.c calls it to get the main input file 4753: name, and it gets a following #ident as well. 4754: 4755: * c-decl.c (lang_decode_option): Set warn_cast_qual for -Wcast-qual. 4756: * c-typeck.c (build_c_cast): Issue some warnings if set. 4757: 4758: * tm-3b1.h (ASM_OUTPUT_CASE_LABEL): Missing `;'. 4759: 4760: Tue Jan 3 18:07:31 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 4761: 4762: * expr.c (emit_library_call): Do force_operand on each operand 4763: if it isn't a REG, MEM or constant. 4764: Do this, or mode conversions, earlier, before loading any hard regs. 4765: 4766: * m68k.md (addsi3) [SGS]: Put a zero displacement in the `lea'. 4767: 4768: * c-typeck.c (default_conversion): Don't lose `const' or `volatile' 4769: when converting array type to pointer. 4770: 4771: Mon Jan 2 01:18:01 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 4772: 4773: * expmed.c (store_bit_field, store_fixed_bit_field): New arg, 4774: alignment in bytes the structure is known to have. 4775: (store_fixed_bit_field): Handle working in halfwords, 4776: in case the pointer isn't known to have fullword alignment. 4777: * expmed.c (extract_bit_field, extract_fixed_bit_field): likewise. 4778: (extract_bit_field): fix unsignedp arg to extract_fixed_bit_field. 4779: * expr.c (store_field): New arg, passed to {store,extract}_bit_field 4780: (expand_assignment, store_constructor): Pass that arg. 4781: (expand_expr): Pass new arg to extract_bit_field. 4782: 4783: * m68k.md (casesi_2 recognizer): Offset always 6 for 3b1. 4784: 4785: * c-typeck.c (convert_for_assignment): Strip from rhs no-op NOP_EXPRs 4786: put on by build_c_cast (to make the result not an lvalue). 4787: (build_modify_expr, build_compound_expr): likewise. 4788: (build_conditional_expr): likewise. 4789: (actualparameterlist, build_function_call): likewise. 4790: (default_conversion, truthvalue_conversion): likewise. 4791: 4792: * loop.c (move_movables): If reg has moved out of one loop, 4793: divide `savings' by 2. 4794: 4795: Sun Jan 1 03:00:07 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 4796: 4797: * c-typeck.c (truthvalue_conversion): Distribute the conversion 4798: into the arms of a COND_EXPR. 4799: 4800: * cse.c (fold_rtx): Don't fold a MINUS with VOIDmode 4801: into a symbolic constant--it's incorrect. 4802: 4803: * cse.c (cse_insn): If SRC is a subreg with known value, simplify it. 4804: 4805: * integrate.c (copy_rtx_and_substitute): Allow a ref to a part of 4806: MEM parm whose actual parm is a reg, provided it refs 4807: the low part of the MEM. 4808: (function_cannot_inline_p): Don't inline functions which have 4809: aggregate parameters and take their addresses. This could produce 4810: refs to non-low-parts, which copy_rtx_and_substitute can't handle. 4811: 4812: * c-typeck.c (build_modify_expr): If lhs is COND_EXPR, 4813: make a COMPOUND_EXPR to ensure the rhs is computed before the branch. 4814: 4815: * Implement -pipe. 4816: * gcc.c (do_spec_1): `|' is now a special delimiter 4817: which goes in the argbuf. 4818: When a newline is preceded by a `|', delete it if no -pipe. 4819: Otherwise, don't execute yet, and keep scanning. 4820: (do_spec): At end, if we have stuff with no newline, execute it. 4821: (handle_braces): Implement %{|foo:...}. 4822: (execute): If argbuf contains some `|'s, run several processes 4823: and pipe them together. 4824: (pexecute): new subroutine to make one of the processes. 4825: (find_exec_file): new fn to search for program to execute. 4826: (record_temp_file): new arg FAIL_ONLY. 4827: (store_arg): 2nd arg == 3 means delete file on failure. 4828: This is used for output files. 4829: (delete_temp_files): delete certain files only if fail. 4830: 4831: * cccp.c (include_defaults): /usr/include before /usr/local/include. 4832: 4833: * recog.c (asm_noperands): 1-off in loop checking CLOBBERS 4834: when no output operands and PARALLEL. 4835: 4836: * expmed.c (negate_rtx): Sign-extend the high bits rather than clear. 4837: 4838: * cse.c (fold_rtx): fold negation of real values. 4839: (fold_cc0): fold comparisons on real values. 4840: 4841: * Makefile (install): Use $(INSTALL) for gcc.1 and files in USER_H. 4842: 4843: * Handle floating-point problems for cross-compilation. 4844: 4845: * real.h (CONST_DOUBLE_LOW, etc.): new macros to access CONST_DOUBLE. 4846: * varasm.c (immed_double_const, decode_rtx_const): Use these. 4847: ({force,clear}_const_double_mem): Likewise. 4848: * output-*.c (output_move_double): Use these. 4849: * output-m68k.c (standard_{68881,sun_fpa}_constant_p): Likewise. 4850: * tm-*.h (PRINT_OPERAND): Use these. 4851: * output-i386.c (print_operand): Use these. 4852: * final.c (output_addr_const): Likewise. 4853: * emit-rtl.c (gen_rtx): Delete special code for CONST_DOUBLE. 4854: 4855: * real.h (union real_extract): Portable type for storing real as ints. 4856: * varasm.c (immed_double_const, decode_rtx_const): Use these. 4857: 4858: * varasm.c (immed_real_const_1, decode_rtx_const): 4859: Don't assume REAL_VALUE_TYPE is 2 ints long. 4860: * emit-rtl.c (init_emit_once): Likewise. 4861: 4862: * real.h (REAL_VALUE_TYPE): Define as `double' if not defined. 4863: (REAL_IS_NOT_DOUBLE): Define this if default REAL_VALUE_TYPE not used. 4864: (REAL_VALUES_EQUAL, REAL_VALUES_LESS): Define, if not already defined. 4865: (REAL_VALUE_LDEXP, REAL_VALUE_ATOF): Likewise. 4866: * tree.h (struct tree_real_cst): Use REAL_VALUE_TYPE for the value. 4867: 4868: * rtl.c (init_rtl): Increase length of CONST_DOUBLE if REAL_VALUE_TYPE 4869: needs more space. Change the rtx_format element to match. 4870: * varasm.c (immed_real_const_1): 1st arg now has REAL_VALUE_TYPE. 4871: (force_const_mem): Assume a CONST_DOUBLE contains REAL_VALUE_TYPE. 4872: * emit-rtl.c (init_emit_once): Likewise. 4873: And use REAL_VALUE_ATOF to get a floating zero. 4874: * optabs.c (expand_float): Use REAL_VALUE_TYPE, REAL_VALUE_LDEXP. 4875: * c-parse.y (yylex): Likewise, and use REAL_VALUE_ATOF. 4876: * fold-const.c (split_tree): Don't accept REAL_CSTs. 4877: (combine, fold_convert, fold): Use REAL_ARITHMETIC if defined; 4878: else don't fold reals if they are not doubles. 4879: * tree.c (build_real_from_int_cst): Likewise. 4880: * print-tree.c (dump) [REAL_IS_NOT_DOUBLE]: output float value 4881: in hex, since we don't know how to do it right. 4882: 4883: Sat Dec 31 14:15:13 1988 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 4884: 4885: * optabs.c (init_optabs): Handle new macros {U,}MULSI3_LIBCALL, 4886: DIVSI3_LIBCALL, MODSI3_LIBCALL. 4887: * tm-sparc.h: Define {,U}{MUL,DIV,MOD}SI3 to call Sun's library direct. 4888: 4889: * tm-sun3-nfp.h, tm-sun3-fpa.h: New files. 4890: 4891: Fri Dec 30 00:14:36 1988 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 4892: 4893: * cccp.c (main): Certain envvars specify a file to write deps info to. 4894: 4895: * toplev.c (compile_file): Warn about undefined fns declared static. 4896: 4897: * m68k.md (casesi_2 recognizer) [SGS] RTX_INTEGRATED_P test backwards. 4898: * tm-3b1.h (ASM_OUTPUT_CASE_LABEL): Likewise. Also missing `\'. 4899: 4900: * reload1.c (count_occurrences): New function. 4901: (choose_reload_targets): Don't delete a reload if the same reg 4902: is used elsewhere in the current insn. 4903: (delete_output_reload): code split out from choose_reload_targets. 4904: 4905: * c-typeck.c (build_c_cast): Always put on some operator, 4906: so the cast is never an lvalue for strict ANSI. 4907: 4908: * c-typeck.c (initializer_constant_valid_p): Don't depend on 4909: distinction between NOP_EXPR and CONVERT_EXPR. 4910: 4911: * c-convert.c: Fns reordered; new comments. 4912: 4913: * fold-const.c (fold): If simplifying a NOP_EXPR within a BIT_AND_EXPR, 4914: return a NOP_EXPR. 4915: New var TYPE holds type of expr. 4916: 4917: * c-parse.y (expr_no_commas): Split off cast_expr and unary_expr, 4918: to reject `sizeof (int) foo'. 4919: 4920: * toplev.c (main): Treat plain `-' as input filename. 4921: 4922: * final.c (final): If an insn's output routine returns 0, 4923: it means to output the deleted compare insn immediately preceding. 4924: 4925: * m68k.md (branch insns): Use 0 as 3rd arg for OUTPUT_JUMP 4926: rather than explicitly clearing the overflow flag. 4927: 4928: * tm-i386.h (OUTPUT_JUMP): Really use NO_OV; don't abort. 4929: * i386.md (branch insns): Put real data (sometimes 0) in 3rd arg 4930: of OUTPUT_JUMP. 0 means preceding test may not be deleted. 4931: (lea pattern): Clear the cc's. 4932: * output-i386.c (notice_update_cc): various arith insns set the cc's. 4933: 4934: Thu Dec 29 13:22:01 1988 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 4935: 4936: * stmt.c (expand_decl_init): Do nothing for static decls. 4937: 4938: * reload.c (find_reloads_address{,_1}): Return 1 iff entire arg 4939: was reloaded as a whole, else 0. 4940: (find_reload): If find_reloads_address returns 1, don't let that MEM 4941: satisfy a `>' or `<' constraint. 4942: 4943: * m68k.md (cmpmb): Delete special pattern, make cmpqi handle it. 4944: The special pattern couldn't handle reloading the incremented register. 4945: 4946: * integrate.c (copy_rtx_and_substitute): Test BYTES_BIG_ENDIAN, 4947: not BITS... 4948: 4949: * combine.c (subst): Consider big-endian correction 4950: when simplifying (subreg (mem ...) ...). 4951: 4952: * reload.c (find_reloads): Don't crash if matching operands in `asm' 4953: are both read or both write. 4954: 4955: * expr.c (emit_push_insn): Address for movstr must be XINNER, not X. 4956: 4957: * toplev.c (main): Typo parsing `-fno...'. 4958: 4959: Wed Dec 28 13:07:21 1988 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 4960: 4961: * toplev.c (rest_of_compilation): `volatile' fns need jump_optimize 4962: for warnings, as if -Wreturn-type. 4963: * c-typeck.c (c_expand_return): Warn about `return' in a `volatile' fn. 4964: * c-decl.c (finish_function): Warn if `volatile' fn can drop thru end. 4965: 4966: * cse.c (canon_reg): Handle nulls as subexpressions. 4967: (fold_rtx, canon_hash, mention_regs, exp_equiv_p): Likewise. 4968: * loop.c (invariant_p, replace_regs, replace_call_address, may_trap_p, 4969: {basic,general}_induction_var): Likewise. 4970: 4971: * expr.c (expand_call): Handle `const' functions: 4972: Local IS_CONST is 1 if function is const. 4973: Attach REG_RETVAL and REG_LIBCALL notes around the call. 4974: Copy fn address to register outside of those notes. 4975: Likewise precompute all parms outside them. 4976: 4977: * expr.c (expand_call): If fn is volatile, emit barrier after the call. 4978: 4979: * c-decl.c (grokdeclarator): Allow function declared const or volatile. 4980: 4981: Sat Dec 24 18:40:12 1988 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 4982: 4983: * integrate.c (function_cannot_inline_p): If STRUCT_VALUE_INCOMING 4984: or STRUCT_VALUE is defined, can't inline functions returning BLKmode. 4985: 4986: Fri Dec 23 13:26:26 1988 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 4987: 4988: * expr.c (store_constructor): Compute array's size 4989: with int_size_in_bytes. 4990: 4991: * varasm.c (assemble_variable): If shared data, go to data section 4992: before outputting an uninitialized symbol. 4993: 4994: * tm-sequent.h (ASM_OUTPUT_ALIGN_CODE): Missing backslash. 4995: (SHARED_SECTION_ASM_OP): Macro defined. 4996: * tm-seq386.h (SHARED_SECTION_ASM_OP): Macro defined. 4997: 4998: * c-typeck.c (c_expand_asm_operands): Warn if output op is `const'. 4999: 5000: * Fix problem where a stmt expr in an initialization 5001: refers to the variable it is initializing. 5002: * stmt.c (expand_decl_init): New fn split out from `expand_decl'. 5003: * c-decl.c (finish_decl): Call that. 5004: Don't call expand_decl if already done. 5005: (start_decl): Call expand_decl if type is complete already. 5006: 5007: * Makefile (install): Typo in ranlib command. 5008: 5009: Thu Dec 22 15:57:12 1988 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 5010: 5011: * tree.h (tree_identifier): New field. 5012: (IDENTIFIER_ERROR_LOCUS): Accessor for it. 5013: * c-parse.y (primary => IDENTIFIER): 5014: Undeclared variable gets one err msg per function it appears in. 5015: 5016: * ns32k.md (andsi3): Delete extra brace. 5017: 5018: * alliant.md, xm-alliant.h, tm-alliant.h, output-alliant.c: New files. 5019: 5020: * combine.c (SUBST, SUBST_INT): Store new field `is_int'. 5021: (copy_substitutions): Don't copy an int as an rtx. 5022: 5023: * Makefile (INSTALL): Install gcc.1 properly. 5024: 5025: * tm-ns32k.h (FUNCTION_PROLOGUE, ASM_OUTPUT_ALIGN_CODE): 5026: Add missing backslashes. 5027: 1.1.1.9 root 5028: See file OChangeLog. 1.1 root 5029: 5030: Local Variables: 5031: mode: indented-text 5032: left-margin: 8 5033: fill-column: 76 5034: version-control: never 5035: End:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.