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