|
|
1.1.1.15! root 1: Wed Apr 26 02:44:59 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 2: ! 3: * Version 1.35 released. ! 4: ! 5: * c-decl.c (grokdeclarator): Use INT_CST_LT only on int constants. ! 6: ! 7: Tue Apr 25 15:47:11 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 8: ! 9: * reload.c (find_reloads_address_1): Always return a value. ! 10: ! 11: * flow.c (mark_set_1): Look inside zero_extract, sign_extract. ! 12: ! 13: * expr.c (emit_library_call) [STACK_ARGS_ADJUST]: ! 14: Fix typo for `struct args_size'. ! 15: ! 16: Mon Apr 24 00:12:18 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 17: ! 18: * flow.c (mark_set_1): Look inside strict_low_part. ! 19: ! 20: * c-typeck.c (decl_constant_value): Don't use var's init if volatile. ! 21: ! 22: * print-tree.c (dump): Don't call walk on rtx's. ! 23: ! 24: * integrate.c (expand_inline_function): Convert expanded arg from ! 25: passed mode to nominal mode. ! 26: ! 27: Sun Apr 23 13:14:47 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 28: ! 29: * fixincludes: fix _IO macros if split across two lines. ! 30: Fix typo: EOF was indented. ! 31: ! 32: * gnulib2.c: New file with DImode library routines. ! 33: * Makefile (gnulib2): Put them into gnulib. ! 34: Must be explicitly requested. ! 35: ! 36: Fri Apr 21 13:45:45 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 37: ! 38: * cccp.c (main): Don't turn on trigraphs for -Wtrigraphs or -Wall; ! 39: use -trigraphs for that. ! 40: ! 41: * cccp.c (main): Use -trigraphs to enable trigraphs. ! 42: * gcc.c: Pass -trigraphs to cpp; don't pass -T. ! 43: ! 44: * Makefile: Variable srcdir relates location of sources ! 45: to current directory. Default is `.'. ! 46: ! 47: * integrate.c (expand_inline_function): When copying expanded arg, ! 48: use mode it's passed in, not arg's nominal mode. ! 49: ! 50: * dbxout.c (dbxout_block): Print generated name with assemble_name. ! 51: ! 52: Thu Apr 20 12:36:09 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 53: ! 54: * stdarg.h: check __sparc__ instead of sparc. ! 55: ! 56: Tue Apr 18 18:58:03 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 57: ! 58: * tm-next.h (STARTFILE_SPEC): Define it. ! 59: ! 60: Mon Apr 17 19:56:05 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 61: ! 62: * dbxout.c (dbxout_block): Use ASM_GENERATE_INTERNAL_LABEL to format ! 63: the labels LBB... and LBE... ! 64: ! 65: Sun Apr 16 23:57:47 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 66: ! 67: * mips.md: Change MINUS to COMPARE where appropriate. ! 68: ! 69: Sat Apr 15 16:11:49 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 70: ! 71: * c-decl.c (finish_struct, redeclaration_error_message): ! 72: Rename variables named OLD and NEW. ! 73: ! 74: * sparc.md (cse'd mult pattern): Handle memory operands. ! 75: Optimize small integer operands. ! 76: ! 77: * stmt.c (expand_decl): On sparc, ensure dynamic arrays of doubles ! 78: are properly aligned, despite unaligned STACK_POINTER_OFFSET. ! 79: ! 80: Fri Apr 14 10:59:56 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 81: ! 82: * expr.c (expand_call): Bugs treating struct value address as param: ! 83: do so only if it's supposed to be pushed; ! 84: decode value of FUNCTION_ARG properly. ! 85: ! 86: * tm-altos3068.h (CPP_SPEC): Some braces were dropped. ! 87: ! 88: * gcc.c (pexecute): Print message when exec fails. ! 89: (perror_exec): New fn. ! 90: (perror_with_name,pfatal_with_name): Change message syntax. ! 91: ! 92: * tm-hp9k320.h (ASM_IDENTIFY_GCC): Define as no-op. ! 93: ! 94: Wed Apr 12 00:20:31 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 95: ! 96: * cse.c (cse_insn): Can record constant value being stored in ! 97: a bit field, if we can tell that truncation won't change it. ! 98: ! 99: * m68k.md (bfset, bfclr, bfchg insns): Do CC_STATUS_INIT ! 100: since the cc's are set from the old contents. ! 101: ! 102: * gcc.c (compilers): Running `as', put -o option before input file. ! 103: ! 104: * gcc.c: Delete output file only if that file's compilation fails. ! 105: * gcc.c (record_temp_file): Changed args: always_delete, fail_delete. ! 106: (store_arg): Likewise. Callers changed. ! 107: (clear_failure_queue): Called after each compilation. ! 108: ! 109: Tue Apr 11 01:18:53 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 110: ! 111: * combine.c (subst): (SET (ZERO_EXTRACT) (OR (ZERO_EXTRACT) const)) ! 112: optimization was sometimes invalid. ! 113: ! 114: * tm-m68k.h (NOTICE_UPDATE_CC): A doubleword move that requires 2 insns ! 115: does not set the cc's usefully. ! 116: ! 117: * Makefile (cleanlinks): Just do `clean', not `realclean'. ! 118: (realclean): Delete config links also. ! 119: ! 120: * expr.c (expand_call): Handle case where return value is in memory ! 121: but TARGET is a register. ! 122: ! 123: * c-typeck.c (build_binary_op_nodefault): New arg ERROR_CODE ! 124: is passed to binary_op_error instead of CODE. ! 125: All callers changed. ! 126: (binary_op_error): CODE = NOP_EXPR is new special case. ! 127: (truthvalue_conversion): Call build_binary_op_nodefault directly ! 128: and specify NOP_EXPR for the error code. ! 129: ! 130: * c-decl.c (xref_tag): If pedantic, warn on fwd ref to enum. ! 131: ! 132: Mon Apr 10 19:44:48 1989 Chris Smith (csmith at mozart) ! 133: ! 134: * tm-convex.h (PCC_BITFIELD_TYPE_MATTERS): It doesn't, ! 135: but set it anyway. It makes for better code on this ! 136: word machine. ! 137: ! 138: * convex.md (one_compl*): add not:QI and not:HI, which ! 139: do get used after all. ! 140: ! 141: * tm-convex.h (A_REG_P, S_REG_P): define new macros ! 142: convex.md: use them ! 143: ! 144: * convex.md (addsi3): tidy up constraints. ! 145: ! 146: * tm-convex.h (REG_OK_FOR_INDEX_P): stack pointer is not ok. ! 147: ! 148: * convex.md: add a pattern to push REG+CONST so we can ! 149: prefer an A reg. ! 150: ! 151: * tm-convex.h (tstqi): should sign extend, not zero extend. ! 152: ! 153: * expr.c (convert_move): Extending narrow to DI via SI, ! 154: operand of extendsidi2 was wrong. ! 155: ! 156: * emit-rtl.c (gen_lowpart): Handle CONST_DOUBLE. ! 157: ! 158: Mon Apr 10 05:19:39 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 159: ! 160: * recog.c (nonmemory_operand): Test constant operands ! 161: as general_operand does. ! 162: ! 163: * tm-m68k.h (PRINT_OPERAND): Limit effect of code `d' ! 164: to constant addresses. ! 165: ! 166: * loop.c (can_eliminate_biv_p, eliminate_biv): Don't rely on givs with ! 167: nonconstant coefficients, since the coeffs could be zero. ! 168: ! 169: * loop.c (can_eliminate_biv_p): Check each giv for ! ignore ! 170: before assuming it can be used. ! 171: (check_eliminate_biv): New fn, a piece of strength_reduce broken out. ! 172: ! 173: * cccp.c (error_from_errno): New fn, like error and perror_with_name. ! 174: (do_include): Call that if open fails. ! 175: (finclude): Print I/O error msg before closing desc. ! 176: ! 177: * c-decl.c (shadow_tag): If more than one tag or structure, ! 178: or anything other than a tag, warning. ! 179: ! 180: * c-parse.y (components): Just warn if memb decl has no member, ! 181: and only if pedantic. ! 182: ! 183: * loop.c (strength_reduce): Print uids, not luids, for dump. ! 184: (record_giv): giv_count field counts only DEST_REG givs. ! 185: (check_dbra_loop): src_two_before_end was set wrong. ! 186: ! 187: * loop.c (record_giv): New arg LOOP_END; all callers changed. ! 188: Don't mark giv replaceable if used past LOOP_END. ! 189: (find_mem_givs): New arg LOOP_END; all callers changed. ! 190: ! 191: * out-i386.c (FP_CALL): Make this a `return' stmt. ! 192: ! 193: Fri Apr 7 11:56:58 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 194: ! 195: * expr.c (expand_expr, case ..._DECL): Preserve mode thru ! 196: calling change_address. ! 197: ! 198: * expr.c (emit_library_call): Typo: ARGNUM => COUNT. ! 199: ! 200: * expr.c (preexpand_calls, expand_call): Take note of RETURN_IN_MEMORY. ! 201: * stmt.c (assign_parms): Likewise. ! 202: * integrate.c (function_cannot_inline_p): Likewise. ! 203: ! 204: * STACK_ARGS_ADJUST: Arg is now a `struct arg_data' and it should ! 205: be updated in place. ! 206: * tm-mips.h: Define it. ! 207: * expr.c (expand_call): Adapt to this. Assume padding comes after args ! 208: so turn off the feature of changing the args' offsets. ! 209: (emit_library_call): Adapt to this. ! 210: ! 211: * tm-mips.h (PRINT_OPERAND): Use CONST_DOUBLE_{LOW,HIGH}. ! 212: Truncate SFmode constants to single precision. ! 213: ! 214: * c-typeck.c (mark_addressable): Fix test for local vs global reg var. ! 215: ! 216: * config.gcc: Change `:-' to `-' in var refs. ! 217: Shell on convex doesn't handle `:-'. ! 218: ! 219: Thu Apr 6 00:09:01 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 220: ! 221: * integrate.c (expand_inline_function): Compare actual's mode ! 222: against formal's DECL_ARG_TYPE's mode, not TREE_TYPE's mode. ! 223: ! 224: * c-decl.c (implicitly_declare): Make the decl permanent if ! 225: in global binding level. (Can happen for certain invalid input.) ! 226: ! 227: * c-typeck.c (build_modify_expr): Block path that made a MODIFY_EXPR ! 228: containing an ERROR_MARK. ! 229: ! 230: * config/tm.h: New file. ! 231: ! 232: * loop.c (only_reg_use_p): Fix bugs in recursion, add some fast ! 233: special cases. Comment on return value was backwards. ! 234: (strength_reduce): Negate the value of only_reg_use_p. ! 235: ! 236: * genoutput.c (output_prologue): Output `#include hard-reg-set.h'. ! 237: * Makefile: insn-output.o depends on that. ! 238: ! 239: * toplev.c (main): Typo recognizing -Wswitch. ! 240: ! 241: * config.gcc (mips): New alternative. ! 242: * tm-mips.h, out-mips.c, mips.md, va-mips.h: New files. ! 243: * varargs.h: Include va-mips.h if on mips. ! 244: ! 245: Wed Apr 5 16:58:04 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 246: ! 247: * c-decl.c (duplicate_decls): Rename OLD, NEW to OLDDECL, NEWDECL. ! 248: ! 249: * stmt.c (expand_function_start): Ref subr instead of ! 250: current_function_decl; should make no difference. ! 251: ! 252: * stmt.c (assign_parms): Do extra padding for some parms, ! 253: controlled by MAX_PARM_BOUNDARY. ! 254: * expr.c (expand_call): Same thing for caller side. ! 255: Note this is implemented only for machines that lack push insns. ! 256: Also, in both cases, it doesn't handle variable-size args. ! 257: ! 258: Tue Apr 4 12:22:06 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 259: ! 260: * gcc.c (find_file): Try STANDARD_EXEC_PREFIX for startfiles too. ! 261: ! 262: * varasm.c (make_decl_rtl): Delete never-executed clause. ! 263: ! 264: * spur.md (movqi, loadhi, extend*, zero_extendhisi): ! 265: Make subregs with C code, not RTL patterns, so we can ! 266: avoid generating subreg of subreg. ! 267: ! 268: * optabs.c (emit_cmp_insn): Not all clauses always succeed, ! 269: so stop using `else' structure. ! 270: ! 271: * stmt.c (expand_return): Avoid moving void to void, in cleanups case. ! 272: ! 273: Mon Apr 3 18:04:33 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 274: ! 275: * m68k.md (cmphi): Don't allow a-reg vs a-reg, since that sign-extends. ! 276: If there is one a-reg, make sure it is not last. ! 277: ! 278: Sun Apr 2 13:02:26 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 279: ! 280: * stor-layout.c (agg_mode): Use highest mode that has desired size. ! 281: Allow all integer modes, but reject sizes > MAX_FIXED_MODE_SIZE. ! 282: (That defaults to the size of DImode.) ! 283: ! 284: * machmode.def: Add PSI, PDI and XF, CXF modes. ! 285: ! 286: Sat Apr 1 00:50:11 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 287: ! 288: * ns32k.md (ashd, lshd): Delete patterns that logand the count with 31. ! 289: The shift count is not truncated on this machine. ! 290: ! 291: * combine.c (subst): Simplify nested or's, nested xor's. ! 292: (try_distrib): XOR doesn't distribute through anything. ! 293: ! 294: * rtl.c (rtx_equal_p): Don't die on null pointers. ! 295: ! 296: * loop.c (eliminate_biv): Use COMPARE, not MINUS, in generated compare. ! 297: ! 298: * loop.c (invariant_p): Mem refs in constant pool are invariant. ! 299: ! 300: * c-decl.c (redeclaration_error_message): If -traditional, allow ! 301: redeclarations of typedef provided they agree. ! 302: ! 303: * c-decl.c (start_decl): Do expand_decl on the decl that pushdecl ! 304: returns. If there was a prev. decl with a different type, ! 305: we have changed its type and cleared its old rtl, so it need new rtl. ! 306: ! 307: Sat Apr 1 00:50:11 1989 Matthew Self (rms at sugar-bombs.ai.mit.edu) ! 308: ! 309: * expr.c (convert_move): Modified to use mode classes ! 310: instead of refering to specific machine modes. ! 311: ! 312: * expr.c (do_jump): Converted to use CONST0_RTX macro. ! 313: do_jmp no longer refers to any machine modes directly except ! 314: for VOIDmode! ! 315: ! 316: * expr.c (compare, compare1): Modified to use CONST0_RTX ! 317: macro. No longer refers to any machine modes directly ! 318: except VOIDmode and BLKmode! ! 319: ! 320: * machmode.def: Documented assumptions made about the order ! 321: of machine modes during mode widening. ! 322: ! 323: * optabs.c (expand_binop, expand_twoval_binop, expand_unop, ! 324: emit_cmp_insn): Added mode widening which is independent of ! 325: specific machine modes. It assumes that we may widen to any ! 326: higher numbered mode of the same mode class. ! 327: NOTE: the checks for VOIDmode ops which were present in ! 328: QI and HI to SI widening are now present in all widening. ! 329: I assume this is correct. Also, widening is now possible ! 330: from QI to HI. This may or may not be a good thing.... ! 331: ! 332: * rtl.h (CONST0_RTX): Added definition of new macro ! 333: CONST0_RTX (mode). ! 334: ! 335: * rtl.h (GET_NOTE_INSN_NAME, GET_REG_NOTE_NAME): New macros. ! 336: * rtl.c (note_insn_name, reg_note_name): New tables. ! 337: * rtl.def (NOTE): Change last field from `i' to `n'. ! 338: * rtl.c (print_rtx): Print mode of INSN_LIST or EXPR_LIST as reg-note. ! 339: Print operand code `n' as name of kind of note. ! 340: (read_rtx): treat `n' like `i'. ! 341: ! 342: * loop.c (struct induction): Add `mode' field. ! 343: (strength_reduce, record_giv): Set the `mode' field in V. ! 344: (can_eliminate_biv_p, eliminate_biv): Use that field. ! 345: ! 346: * loop.c (struct iv_class): `init_insn' records what inits the biv. ! 347: Replaces `init_val_set' flag. ! 348: (strength_reduce): Update and test `init_insn' instead. ! 349: Use of a biv between its init and the start of the loop ! 350: does not preclude its elimination from the loop. ! 351: Setting a giv is ok for eliminating a biv, even if giv is "ignore", ! 352: since that just means giv will be combined with another. ! 353: Handle some DEST_ADDR givs for that purpose. ! 354: Test for giv-setting before check can_eliminate_biv_p. ! 355: New error check for replaceable giv whose value needed after loop. ! 356: (only_reg_use_p): New fn. ! 357: ! 358: * expr.c (expand_expr): PLUS, MINUS with EXPAND_SUM: ! 359: Associate even harder. ! 360: ! 361: * loop.c (strength_reduce): Treat all constant biv init vals like ints. ! 362: ! 363: * loop.c (strength_reduce): Clear all_reduced when v->ignore is set; ! 364: the code to check this later didn't always do the job. ! 365: ! 366: * loop.c (verify_loop): Set loop_continue. ! 367: (scan_loop): mention its value. ! 368: * rtl.h: Define NOTE_INSN_LOOP_CONT. ! 369: * stmt.c (expand_loop_continue_here): Output one. ! 370: ! 371: Fri Mar 31 10:08:29 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 372: ! 373: * c-typeck.c (pointer_int_sum, pointer_diff): Treat const void * like ! 374: void *. ! 375: ! 376: * rtl.c (rtx_addr_varies_p): Don't die on null exp. ! 377: * cse.c (refers_to_mem_p, refers_to_p): Likewise. ! 378: ! 379: * gcc.c (validate_switches, validate_all_switches): New fns. ! 380: Mark a switch as valid if any compiler spec or the linker spec ! 381: matches it, even for languages not being used. ! 382: ! 383: Thu Mar 30 00:22:14 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 384: ! 385: * loop.c (loop_optimize, move_movables): when moving a `clr' insn used ! 386: in zero-extension, sometimes change it to an `and' so that the ! 387: significant low bits are not clobbered. ! 388: ! 389: * cccp.c: Implement __BASE_FILE__ and #once. ! 390: (savestring): New fn. ! 391: (struct file_name_list): new name for struct directory_stack. ! 392: (enum node_type): Add T_ONCE, T_BASE_FILE. ! 393: (directive_table): Add #pragma once. ! 394: (initialize_builtins): Add __BASE_FILE__. ! 395: (special_symbol): Handle __BASE_FILE__, together with __FILE__. ! 396: (do_include): Ignore the file if it's on the #pragma once list. ! 397: (do_once): New fn; add current file to #pragma once list. ! 398: ! 399: * cccp.c (do_include): Don't add non-ex files to list of deps. ! 400: ! 401: * config.gcc: Use {...:-...}, not {...=...}. ! 402: ! 403: * c-parse.y: Add precedence for IF/ELSE, and for parens; ! 404: avoids some conflicts. ! 405: ! 406: * tm-newsgas.h: Include tm-news.h and define USE_GAS. ! 407: ! 408: * tm-news.h: New name for tm-news800.h. ! 409: If not USE_GAS, define SONY_ASM. ! 410: Don't define USE_GAS by default. ! 411: (CPP_PREDEFINES): Various alternatives depending on processor type. ! 412: (ASM_FORMAT_PRIVATE_NAME): Override this. ! 413: (ASM_IDENTIFY_GCC): Override; output nothing. ! 414: (FUNCTION_PROLOGUE, FUNCTION_EPILOGUE): Round fsize up to % 4. ! 415: Max for halfword link insn is 32k, not 64k. ! 416: (FUNCTION_EPILOGUE): Don't output move.l if no regs to restore. ! 417: (PRINT_OPERAND_ADDRESS): Change handling of tableref pc-rel addresses. ! 418: * m68k.md (movhi): Add SONY_ASM conditional. ! 419: ! 420: * cse.c (cse_insn): If replacing a dest address, preserve MEM_IN_STRUCT ! 421: ! 422: * gcc.c (error, fatal): alternate varargs defns if HAVE_VPRINTF. ! 423: ! 424: Wed Mar 29 09:54:13 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 425: ! 426: * gcc.c (process_command): Check WORD_SWITCH_TAKES_ARG, so that ! 427: -Tdata can be handled right. ! 428: ! 429: * stmt.c (check_for_full_enumeration_handling): new fn, for warn_switch ! 430: (expand_end_case): Call it, if orig index was enum. ! 431: * toplev.c (main): Handle -Wswitch. ! 432: * c-parse.y (SWITCH stmt): Pass orig switch expr to expand_end_case. ! 433: ! 434: * tm-*.h, out-*.c: Uniformly use reg_names, not reg_name, and don't ! 435: define any duplicates. ! 436: * final.c: Delete reg_name. ! 437: ! 438: * c-parse.y (is_reserved_word): Add keywords __asm and __inline; ! 439: also __const and __volatile. ! 440: (yylex): Keywords that start with `__' are recognized regardless of ! 441: -traditional or -ansi. ! 442: ! 443: * c-parse.y (check_newline): Always recognize #ident. ! 444: Macro IDENT_DIRECTIVE is no more. ! 445: If ASM_OUTPUT_IDENT is undefined, don't output anything for #ident. ! 446: * tm-3b1.h: Don't define IDENT_DIRECTIVE or ASM_OUTPUT_IDENT. ! 447: * tm-encore.h, tm-i386gas.h, tm-i368v.h, tm-sun386i.h, tm-vaxv.h: ! 448: Don't define IDENT_DIRECTIVE; define ASM_OUTPUT_IDENT to output in ! 449: default way. ! 450: ! 451: * expr.h (RETURN_IN_MEMORY): New macro, default defn here. ! 452: * expr.c (expand_call): Use it to control where to return value. ! 453: * stmt.c (expand_function_start): Likewise. ! 454: ! 455: * out-sparc.c (find_addr_reg): Abort if none found. ! 456: Eliminate confusion; do only one change between tests for PLUSness. ! 457: (output_move_double): Arg to find_addr_reg is address, not mem ref. ! 458: * out-m68k.c, out-spur.c, out-i386.c, out-alliant.c: Likewise. ! 459: ! 460: * jump.c (find_cross_jump): Don't let either E1 or E2 be included ! 461: in the range of matching insns preceding the other (E2 or E1). ! 462: ! 463: * c-parse.y (check_newline): No error for `#pragma\n'. ! 464: ! 465: * Makefile (gcc.o): Control STANDARD_STARTFILE_PREFIX here. ! 466: ! 467: * stmt.c (walk_fixup_memory_subreg): handle null. ! 468: ! 469: * tm-sparc.h (FUNCTION_BLOCK_PROFILER): Change LPBnn to LPYnn, ! 470: to avoid conflict with final.c. ! 471: ! 472: Tue Mar 28 15:23:17 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 473: ! 474: * cccp.c (do_include): If fail, print system error message. ! 475: (perror_with_name): Use more standard error format. Inc. `errors'. ! 476: ! 477: * dbxout.c (dbxout_function): Output any temporary types ! 478: that were made by dbxout itself. ! 479: ! 480: * stmt.c: always use an epilogue if pcc-struct-return. ! 481: (expand_function_start): Compute return_label after testing that. ! 482: (expand_function_end): Output a return insn after pcc-struct-return ! 483: processing, if there is a return insn. ! 484: (expand_null_return): Don't output a return insn, in that case. ! 485: Simplify the conditions--depends entirely on HAVE_return. ! 486: ! 487: * tm-m68k.h (FUNCTION_BLOCK_PROFILER): Use jsr, not call. ! 488: ! 489: * reload.c (find_reloads): Certain mem addresses will be offsetable ! 490: after reloading; in particular, those where reg_equiv_address applies. ! 491: ! 492: * loop.c (check_dbra_loop): Change MINUS to COMPARE. ! 493: ! 494: * c-typeck.c (convert_for_assignment): Return THE standard error_mark. ! 495: ! 496: Thu Mar 23 09:39:02 1989 Richard M. Stallman (rms at watson) ! 497: ! 498: * c-parse.y (components): Error if empty. ! 499: ! 500: * dbxout.c (dbxout_symbol): Output const variables as N_STSYM. ! 501: ! 502: * varasm.c (force_const_mem): Use ASM_OUTPUT_DOUBLE_INT if defnd. ! 503: ! 504: * c-decl.c (grokdeclarator): Warn about `long long long'. ! 505: ! 506: * reload1.c (reload): When changing REG to MEM, clear REG_USERVAR_P. ! 507: * final.c (alter_subreg): Preserve volatile bit of MEM. ! 508: ! 509: * m68k.md (cmpsi, cmphi): Permit cmpm. ! 510: ! 511: * gcc.c (find_file): Use standard_startfile_prefix_2. ! 512: Now search /usr/local/lib/, /lib/ and /usr/lib/. ! 513: ! 514: * tm-m68k.h (PRINT_OPERAND): Support code `d'. ! 515: * m68k.md (cmpsi, cmphi, cmpqi): Use it for all mem addresses. ! 516: ! 517: * final.c (output_asm_insn): Don't allow %LETTER without an ! 518: operand number. ! 519: * tm-m68k.h, m68k.md, tm-hp9k320.h, tm-news*.h: Use %@ instead of %s. ! 520: * tm-alliant.h, alliant.md: Likewise. ! 521: * i386.md, out-i386.h: Put `0' after each %L, %W, %B, %S, %Q, %R. ! 522: ! 523: * stmt.c (expand_end_stmt_expr): Pop pending stack args. ! 524: ! 525: * varasm.c (assemble_variable): For 0-size common variable, ! 526: allocate at least 1 byte. ! 527: ! 528: * tm-encore.h (ASM_OUTPUT_DOUBLE, PRINT_OPERAND): Use 0f, not 0l, ! 529: for doubles. ! 530: ! 531: Mon Mar 13 10:24:56 1989 Richard M. Stallman (rms at ccvi) ! 532: ! 533: * out-i386.h (function_prologue, function_epilogue): ! 534: Use call_used_regs, not a copy, so -f options work. ! 535: Save regs in the opposite order. ! 536: Save regs even starting from 0 if they happen to be call-saved. ! 537: ! 538: * Bug fixes from Rob McMahon. ! 539: ! 540: * loop.c (strength_reduce): When inserting insn to set ! 541: nonreplaceable giv, put it after all the consecutive insns ! 542: that compute it. ! 543: ! 544: * reload.c (find_reloads): When forcing const to mem, ! 545: use the insn's operand mode, not the const's mode. ! 546: ! 547: * reload1.c (choose_reload_targets): Use wider of inmode and outmode ! 548: when determining have_groups. ! 549: ! 550: * reload1.c (choose_reload_targets): typo checked wrong insn with ! 551: constraint_accepts_reg_p. ! 552: ! 553: * reload1.c (choose_reload_targets): Enable #if-0'd code for ! 554: forgetting old reloads in case of output reload from a non-spill-reg. ! 555: ! 556: Sun Mar 12 00:04:49 1989 Richard M. Stallman (rms at ccvi) ! 557: ! 558: * c-parse.y (yyerror): Add forward-decl here. ! 559: * c-tree.h: Delete decl here. ! 560: ! 561: * New macro USE_C_ALLOCA. ! 562: * cse.c (cse_main): Do alloca (0) to clear out C alloca. ! 563: * flow.c (life_analysis): ! 564: * local-alloc.c (local_alloc): ! 565: * reload1.c (reload_as_needed): likewise. ! 566: ! 567: * loop.c (emit_iv_init_code, eliminate_biv): ! 568: Always put constant in a PLUS last. ! 569: ! 570: * gcc.c (make_switch): Unused function deleted. ! 571: ! 572: *gcc.c (switches): Each switch has a `used' field. ! 573: (process_command): Init it to 0 when making `switches'. ! 574: (do_spec_1, handle_braces, give_switch): Set to 1 when switch is used. ! 575: (main): If it remains 0 at the end, print error message. ! 576: ! 577: * expr.c (convert_move, convert_to_mode): Don't truncate a MEM in ! 578: place if it is volatile. ! 579: ! 580: * loop.c (strength_reduce): When reducing a giv, if the biv is ! 581: incremented between the giv's creation and its use, increment ! 582: the reduced giv var *after* its use. ! 583: ! 584: * c-decl.c (duplicate_decls): Warn about proto vs nonproto ! 585: only if no other errors apply. ! 586: ! 587: * jump.c (invert_exp): Don't crash if arg is null. ! 588: ! 589: * alliant.md (float*i*f2): Don't allow immediate ops. ! 590: (sne): Fix typo, fsne => fsneq. ! 591: ! 592: * expr.c (store_one_arg, expand_call): When size doesn't matter, ! 593: pass const0_rtx, not (rtx) 0. ! 594: ! 595: * expr.c (do_jump): Args to invert_exp were missing. ! 596: ! 597: * gcc.c (store_arg): Now 2 separate args for delete-on-success ! 598: and delete-on-failure. All calls changed. ! 599: (do_spec_1): DELETE_THIS_FILE is meaningful for output files. ! 600: ! 601: * config/xm-alliant.h (LINK_SPEC): Pass -X to linker. ! 602: ! 603: Sat Mar 11 10:30:41 1989 Richard M. Stallman (rms at ccvi) ! 604: ! 605: * tm-*.h, xm-*.h, *.md: Moved to subdir `config'. ! 606: * output-*.c: Moved to `config/out-*.c'. ! 607: * Makefile (.c.o): Define rule to use -Iconfig when compiling. ! 608: (various): Delete the commands from some compilation rules. ! 609: Put -Iconfig in other compilation commands. ! 610: Also some reordering of variable defs and comments for cleanliness. ! 611: (realclean): Change a shell comment to a Make comment. ! 612: ! 613: * fold-const.c (fold): Simplify and extend TRUTH_... operators ! 614: knowing that args must be ints and values will be 0 or 1. ! 615: ! 616: * gcc.hlp: New file (for VMS). ! 617: ! 618: * reload1.c (reload): Don't let two 2-groups overlap. ! 619: ! 620: * reload.c (push_reloads): When a plain reg matches a reload ! 621: for an increment, don't change the reload_in to a plain reg. ! 622: Leave the increment there. ! 623: ! 624: * integrate.c (expand_inline_function): Don't try to inline ! 625: unless the parm machine modes really match what's expected. ! 626: ! 627: * stmt.c (emit_case_nodes): default_label is an rtx, not tree. ! 628: ! 629: * tm-next.h (DOLLARS_IN_IDENTIFIERS): Define it as 1. ! 630: ! 631: * output-sparc.c (output_move_double): Don't trust random structs ! 632: to be double-word aligned. ! 633: ! 634: * gcc.c: Pass -Wcomments to cpp. ! 635: ! 636: * rtl.def (ASM_OPERANDS): New operands, source file and line. ! 637: * rtl.h (ASM_OPERANDS_*): New macros for components of ASM_OPERANDS. ! 638: * stmt.c (expand_asm_operands): Use new fields, not REG_ASM_* notes. ! 639: * toplev.c (error_for_asm): likewise. ! 640: * rtl.h (enum reg_note): Delete REG_ASM_FILE, REG_ASM_LINE. ! 641: ! 642: * combine.c (try_combine): Check explicitly for volatility in I2, I1. ! 643: ! 644: Fri Mar 10 19:30:10 1989 Richard M. Stallman (rms at ccvi) ! 645: ! 646: * c-parse.y (GOTO stmt): Set TREE_USED for the label. ! 647: * c-decl.c (poplevel): Warn about unused label. ! 648: ! 649: * c-decl.c (warn_pointer_arith, warn_strict_prototypes): New vars. ! 650: (lang_decode_options): Options to set them. ! 651: * c-typeck.c (pointer_int_sum, c_sizeof): Maybe warn if bad target. ! 652: * c-decl.c (grokparms): Maybe warn if nonprototype fn decl. ! 653: ! 654: * flags.h, toplev.c (warn_shadow): New flag. ! 655: * toplev.c (main): Decode it. ! 656: * c-decl.c (pushdecl): Maybe warn about any shadowing. ! 657: Existing parm-shadowing warning now disabled if shadowing decl ! 658: is also a parm. ! 659: ! 660: * flags.h, toplev.c (warn_id_clash, id_clash_len): New flags. ! 661: * toplev.c (main): Decode -Wid-clash-LEN. ! 662: * tree.c (get_identifier): Implement warning if two idents match. ! 663: ! 664: * toplev.c (compile_file): Warn about statics defined and unused. ! 665: ! 666: * rtl.h (CONST0_RTX): New macro. ! 667: ! 668: * recog.c (offsetable_address_p): New 1st arg says whether to demand ! 669: a strictly valid address. ! 670: (offsetable_memref_p): Pass nonzero. ! 671: * stmt.c (optimize_bit_field): Pass zero. ! 672: ! 673: * cccp.c (main): Allow -Wcomment like -Wcomments. ! 674: * c-decl.c (lang_decode_options): Likewise. ! 675: ! 676: Sun Mar 5 15:02:59 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) ! 677: ! 678: * m68k.md [tstdf, cmp[sd]f, truncdfsf2, floatsi[sd]f2, add[sd]f3, ! 679: sub[sd]f3, mul[sd]f3, div[sd]f3, neg[sd]f2, abs[sd]f2]: Made sure ! 680: that the test function's in the match_operands of the define_expand ! 681: and define_insn's matched, and made that test function ! 682: "register_operand" when both define_insn's really needed registers ! 683: in that spot. ! 684: ! 685: Sat Mar 4 00:25:37 1989 Richard M. Stallman (rms at c2v) ! 686: ! 687: * expr.c (emit_push_insn): Don't ever bypass the big-endian ! 688: padding at the end. ! 689: ! 690: * cccp.c (deps_output): Break line if would otherwise exceed 75 chars. ! 691: Make a name for that value 75. ! 692: ! 693: * combine.c (subst): Handle general case of (subreg (sign_extend X)). ! 694: ! 695: * tm-sun386i.h (CPP_PREDEFINES): Define `sun'. ! 696: ! 697: * fixincludes: change `find' calls to find dirs thru symlinks. ! 698: ! 699: * flow.c (mark_set_1): (set (subreg (reg N))...) ! 700: does make reg N significant for this basic block. ! 701: ! 702: Fri Mar 3 13:55:25 1989 Richard M. Stallman (rms at c2v) ! 703: ! 704: * c-decl.c (parmlist_tags_warning): Print an explanation ! 705: for the first such warning. ! 706: ! 707: * i386.md (extendsfdf): Let op 1 match op0 if that is an fp reg. ! 708: ! 709: * expr.c (expand_call): Fix stupid errors copying pcc struct value. ! 710: ! 711: * varasm.c (output_constructor): Discard NOP_EXPRs from build_c_cast. ! 712: 1.1.1.14 root 713: Thu Feb 23 05:55:57 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 714: 715: * Version 1.34 released. 716: 717: * c-typeck.c (build_c_cast): If EXPR is an error mark, return that. 718: 719: * fold-const.c (div_and_round_double): Abort if divisor is 0. 720: (combine): Likewise, for real constants. 721: (real_zerop): New subroutine. 722: (fold): Don't try to fold division if divisor is 0. 723: Don't try to fold reals if can't do arithmetic on them. 724: Don't try to compare reals for TRUTH_..._EXPR if can't do arith. 725: Use real_zerop to test reals for zeroness. 726: For TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR, can simplify based on 727: first operand alone. 728: 729: * c-typeck.c (store_init_value): Fix error msg text. 730: 731: * tm-sparc.h (FUNCTION_PROFILER): Use `mcount'. 732: * tm-sun4os3.h (FUNCTION_PROFILER): Override it; use `.mcount'. 733: 734: Wed Feb 22 04:33:22 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 735: 736: * tm-hp9k320.h (CPP_SPEC, CPP_PREDEFINES): Make handling of 737: -Dmc68000 depend on TARGET_DEFAULT. 738: 739: * tm-sparc.h (FUNCTION_PROFILER): Missing newline in fprintf. 740: 741: * integrate.c (expand_inline_function): Don't map struct-value-address 742: in memory if fn does not use it. 743: 744: * c-parse.y (check_newline): At skipline, detect eof. 745: 746: * stmt.c (uninitialized_vars_warning): Change text of warning. 747: 748: Tue Feb 21 03:58:50 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 749: 750: * output-sparc.c (output_mul_insn): Handle case of both args 751: in reg 8, or both in reg 9. 752: 753: * tm-sparc.h (ASM_SPEC): Define, to handle -pipe. 754: 755: * tm-sparc.h (FUNCTION_PROFILER): Add omitted fprintf args. 756: (BLOCK_PROFILER): Likewise. Use tempvar. 757: 758: * m68k.md (QImode btst): Allow nonoffsetable mem refs. 759: 760: Mon Feb 20 00:32:42 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 761: 762: * flow.c (mark_used_regs): Don't record about global reg vars. 763: 764: * config.gcc (convex-*): tm file names are tm-convex1.h, tm-convex2.h. 765: 766: * tm-vax.h, tm-ns32k.h, tm-alliant.h: Define PCC_STATIC_STRUCT_RETURN. 767: 768: * gcc.c (compilers): Pass `-a' to cc1. 769: * tm-sun3.h, tm-sparc.h (LIB_SPEC): Define, to handle `-a'. 770: 771: * expr.c (emit_push_insn): Copy stack addresses to be passed to bcopy; 772: old method of preadjustment is broken by changes in emit_library_call. 773: 774: * c-decl.c (finish_decl): New temp `temporary'; don't get confused 775: about whether allocation was temporary. 776: 777: Sun Feb 19 17:03:35 1989 Chris Smith (csmith at mozart) 778: 779: * tm-convex.h: define PCC_STATIC_STRUCT_RETURN 780: 781: * convex.md: 782: remove pshea patterns, movsi does it better. 783: add ashift:DI abs:DF abs:SF 784: (tstdi): use a clobbered register instead of a bogus DImode zero. 785: (trunchiqi2): delete noninstruction cvth.b 786: (udivsi3, udivhi3, udivqi3): deleted, expand_divmod does it now. 787: (call, call_value): delete stupid call/ret -> jump optimization. 788: (call, call_value): flush call_ap_check, use reg_mentioned_p instead. 789: 790: * convex.md: (movxx): swap constraint alternatives so that the 791: leftmost alternative is (set =g r). This makes (set mem const) 792: get combinable input reloads of const instead of uncombinable 793: output reloads to mem. They still do not combine, but wtf, 794: I'll inch up on it. 795: 796: * output-convex.c: (const_double_{high,low}_int): new routines 797: to pick apart const_doubles for assembler. 798: 799: Sun Feb 19 01:40:17 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 800: 801: * sparc.md (shift memory right 24 bits): Another `a1' typo. 802: 803: * config.gcc (convex-*): Delete troublesome whitespace. 804: 805: * c-decl.c (grokparms): Delete redundant `parm != 0' tests. 806: 807: * stmt.c (fixup_memory_subreg): Slight simplification. 808: 809: * tm-sparc.h (FUNCTION_PROFILER): Fill delay slot. 810: (FUNCTION_BLOCK_PROFILER): Use sethi. 811: (BLOCK_PROFILER): Use %g2, not %g0. Use sethi. 812: 813: Sat Feb 18 02:11:25 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 814: 815: * expr.c (expand_expr): Ignore const array's initial value 816: if it's an error_mark. 817: * c-decl.c (finish_decl): Set DECL_INITIAL to an error_mark 818: if the decl is a permanent node. 819: 820: * cccp.c (rescan): If traditional, if macro ends inside string, 821: keep scanning for the end of the string. 822: (handle_directive): A line of just `#' becomes blank. 823: (collect_expansion): \ in strings traditionally doesn't hide macro arg. 824: 825: * m68k.md, alliant.md (addsi3): New alternative a=r+a, in addition 826: to old a=a+r, needed since reload-insns are not commuted. 827: 828: Fri Feb 17 03:15:23 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 829: 830: * tm-m68k.h (PCC_STATIC_STRUCT_RETURN): Define it. 831: * toplev.c, flags.h: New var flag_pcc_struct_return. 832: * stmt.c (expand_function_start): Obey new flag and new variable. 833: * expr.c (expand_call): Obey new flag and new variable. 834: * varasm.c (assemble_static_space): New function. 835: 836: * stmt.c (expand_return): If we need cleanups, compute retval first 837: into pseudo reg, then do the cleanups, then copy it to return reg. 838: 839: Thu Feb 16 02:59:52 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 840: 841: * regclass.c (init_reg_sets_1): Win if STATIC_CHAIN_REGNUM undefined. 842: 843: * expr.c (expand_call): Handle conflict between two precomputed 844: args that are both function calls returning structures. 845: 846: * loop.c (move_movables): Bkwds test of m->partial, for a matching reg. 847: 848: * expr.c (emit_library_call, expand_call): Handle STACK_ARGS_ADJUST. 849: 850: Wed Feb 15 01:59:15 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 851: 852: * toplev.c (flag_caller_saves): New var, for -fcaller-saves. 853: DEFAULT_CALLER_SAVES controls initial value. 854: * global-alloc.c (find_reg): Do caller saves only if flag set. 855: * local-alloc.c (find_free_reg): Do caller saves only if flag set. 856: * tm-alliant.h, tm-convex.h: Define DEFAULT_CALLER_SAVES. 857: 858: Wed Feb 15 01:59:15 1989 Chris Smith (rms at sugar-bombs.ai.mit.edu) 859: 860: * caller-save.c: New file. 861: * regs.h (CALLER_SAVE_PROFITABLE): New macro. 862: (reg_n_calls_crossed): new int-vector replaces reg_crosses_calls. 863: * flow.c (allocate_for_life_analysis, propagate_block, dump_flow_info): 864: Use reg_n_calls_crossed. 865: * stupid.c (stupid_mark_refs, stupid_life_analysis): Likewise. 866: * global-alloc.c (find_reg): Sometimes allocate call-clobbered regs 867: for call-crossing pseudos. 868: New arg ACCEPT_CALL_CLOBBERED; callers changed. 869: * local-alloc.c (find_free_reg): Similar changes. 870: (qty_n_calls_crossed): New int-vector replaces qty_crosses_calls. 871: (alloc_qty, local_alloc, combine_regs, find_free_reg): change that var. 872: * regclass.c (call_fixed_regs, call_fixed_reg_set): new vars. 873: (init_reg_sets_1): Initialize them. 874: * reload1.c (reload): Call caller-saves processing if needed. 875: 876: Wed Feb 15 01:59:15 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 877: 878: * expr.c (expand_expr): INTEGER_CST for DImode: don't handle 879: endianness here. So CONST_DOUBLE_LOW is always the low word. 880: * varasm.c (force_const_mem): Handle it here. 881: 882: * expr.c (convert_move): widening followed by extendsidi2 had braino. 883: 884: * integrate.c: Don't include ctype.h; not needed and kills Sun cpp. 885: 886: * m68k.md (cmpsf, cmpdf and their recognizers): 887: Replace MINUS with COMPARE. 888: Also, use VOIDmode for COMPAREs, not SF or DF. 889: 890: * optabs.c (sign_expand_binop): Handle ops such as division where 891: an unsigned char could be widened and handled with signed int insns. 892: * expmed.c (expand_divmod): Use that. 893: 894: * c-typeck.c (digest_init): Allow for type variants in validating 895: initialization from a string constant. 896: 897: * c-typeck.c (decl_constant_value): Disable opt. if pedantic or 898: outside functions, so that validity of program is never affected. 899: 900: * fold-const.c (fold): Signedness-test for ABS_EXPR was backwards. 901: 902: Tue Feb 14 01:30:47 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 903: 904: * cccp.c (main): Don't omit normal output, if we want deps on 905: a separate stream. 906: 907: * c-decl.c (grokdeclarator): Don't record any arg types for functions 908: if -traditional. 909: 910: * print-tree.c (prtypeinfo): Mention permanent attribute. 911: 912: * tm-next.h: New file. 913: 914: * c-typeck.c (decl_constant_value): The DECL_INITIAL may be ERROR_MARK. 915: 916: * c-decl.c (duplicate_decls): For fns, new static decl overrides 917: old non-static one. 918: 919: * emit-rtl.c (gen_lowpar, gen_highpart): Use change_address, so we 920: preserve volatility, etc. 921: 922: * stmt.c (expand_expr_stmt): Use emit_filename, emit_lineno 923: as file and line for any warning. 924: * emit-rtl.c (emit_line_note): Set those vars. 925: 926: * c-decl.c (store_parm_decls): If -Wimplicit, warn of arg with no decl. 927: 928: * recog.c (offsetable_address_p): Use strict_memory_address_p, 929: since called from reload.c. 930: 931: Mon Feb 13 03:11:50 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 932: 933: * sparc.md (compare-to-reg patterns): Some still had MINUS. 934: 935: * toplev.c (main): Warn if `-a' on system that can't handle it. 936: 937: * stmt.c (expand_asm_operands): Delete unused local `val'. 938: (pushcase_range): Likewise for `value'. 939: (fixup_var_refs): Likewise for `insn'. 940: * emit-rtl.c (start_sequence): Likewise for `save'. 941: * loop.c (scan_loop): Likewise for `before_start'. 942: * expr.c (expand_expr): Delete label `binop1'. 943: 944: * reload1.c (constraint_accepts_reg_p): Handle SUBREGs of REGs. 945: 946: Sun Feb 12 05:37:46 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 947: 948: * gnulib.c (__bb_init_func): New function 949: 950: * tm-m68k.h (BLOCK_PROFILER, FUNCTION_BLOCK_PROFILER): Defined. 951: 952: Sat Feb 11 00:05:55 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 953: 954: * tm-sparc.h (FUNCTION_PROFILER): Make it really work. 955: (BLOCK_PROFILER, FUNCTION_BLOCK_PROFILER): New macros. 956: 957: * final.c (final): Use BLOCK_PROFILER at start of each basic block. 958: (final_start_function): Use FUNCTION_BLOCK_PROFILER if -a. 959: (end_final): New fn to output the block-profiling tables. 960: * toplev.c (profile_block_flag): Set if -a. 961: (compile_file): Call end_final. 962: 963: * combine.c (try_combine): Avoid combining in most cases if I3 964: has an inc or dec and I1 or I2 uses the same register. 965: 966: * tree.c (size_in_bytes, int_size_in_bytes): Use type's main variant. 967: 968: * c-typeck.c (actualparameterlist): Error if parm type is incomplete. 969: 970: * expr.c (expand_call): Ignore args that have incomplete type. 971: 972: Fri Feb 10 02:26:02 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 973: 974: * c-parse.y (case stmts): strip dummy NOP_EXPRs. 975: 976: * reload1.c (reload_as_needed): Clear reg_{has,is}_output_reload here, 977: (choose_reload_targets): not here. 978: 979: Thu Feb 9 01:35:55 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 980: 981: * output-sparc.c (output_mul_by_constant): Forget cc status. 982: 983: * stmt.c (assign_parms): Don't put volatile parms in regs. 984: 985: * vax.md (jlbs/jlbc recognizers): Move them before jbc/jbs recognizers. 986: 987: * cse.c (fold_rtx): Handle (EQ (COMPARE ...) (CONST_INT 0)). 988: 989: * c-typeck.c (default_conversion, digest_init): For static const 990: nonvolatile scalar variable, use its initial value if known. 991: 992: * expr.c (expand_expr: case COMPONENT_REF): If containing structure 993: comes out volatile, leave the component MEM volatile too. 994: 995: * hard-reg-set.h: Fix multi-word case macros to swallow semicolon. 996: 997: * c-typeck.c (default_conversion): In array=>ptr, volatility 998: of target type comes from TREE_THIS_VOLATILE, not TREE_VOLATILE. 999: 1000: * reload1.c (forget_old_reload_1, choose_reload_targets): 1001: New array reg_is_output_reload is converse of reg_has_output_reload. 1002: forget_old_reload_1 needs both. 1003: 1004: Wed Feb 8 01:26:24 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1005: 1006: * reload1.c (forget_old_reloads_1): New fn, guts of forget_old_reloads. 1007: Do process a spill reg if it isn't used for reloading in this insn. 1008: (forget_old_reloads): Deleted, replaced with note_stores. 1009: (reload_as_needed): Undo Feb 1 change. 1010: Call forget_old_reloads_1 on pseudos autoincremented and not reloaded. 1011: 1012: * c-typeck.c (convert_for_assignment): Handle variant types. 1013: 1014: * c-decl.c (lang_decode_option): -Wall implies -Wunused. 1015: 1016: Tue Feb 7 01:32:28 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1017: 1018: * combine.c (try_combine): Don't try adding outputs to an asm_operands. 1019: 1020: * cse.c (CHEAPER): Don't ever let a hard reg get ahead of a pseudo. 1021: 1022: * stmt.c (fixup_gotos): Don't crash on undef label if THISBLOCK is 0. 1023: 1024: * c-decl.c (parmlist_tags_warning): New fn. 1025: * c-parse.y (parmlist, parmlist_or_identifiers): Call it, 1026: to warn about any tags defined inside the parmlist. 1027: * c-decl.c (grokparms): Don't warn about ptr to incomplete type. 1028: The new warning is better. 1029: 1030: Mon Feb 6 01:11:36 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1031: 1032: * expr.c (store_constructor): Incorrect ALIGN arg in store_field calls. 1033: 1034: * c-parse.y (%union): Delete unused alternative. 1035: 1036: * c-decl.c (grokparms): Use main variant to test for ptr to incomplete. 1037: 1038: * c-decl.c (finish_enum): Delete superfluous init for `pair'. 1039: 1040: * cse.c (fold_rtx): Optimize X+0, X-0 in floating point. 1041: Fix typo in PLUS case; omitted value to compare GET_MODE_CLASS against. 1042: (equiv_constant): Allow CONST_DOUBLE. 1043: 1044: * cse.c: Optimize past if-statements that are known to fail. 1045: (cse_insn): If condjump becomes uncond to end of this block, 1046: set cse_skip_to_next_block. 1047: (cse_basic_block): If that happens, ignore rest of block, and maybe 1048: treat next block as part of this one (if tables have room). 1049: Resume insn that starts next basic block to be scanned. 1050: (cse_main): Make room for at least 500 qtys. 1051: (cse_end_of_basic_block): Subroutine broken out of cse_main. 1052: 1053: * c-parse.y (hash, is_reserved_word): Rewrite: new hash technique. 1054: 1055: * c-decl.c (duplicate_decls): Be smart about proto vs nonproto mismatch 1056: involving a function definition. 1057: 1058: Sun Feb 5 17:31:12 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1059: 1060: * alliant.md (movdi): Typo in `fmoved'. 1061: (ftruncsf2): Handle moving into fp reg. 1062: 1063: * jump.c (jump_optimize): Typo in testing PRESERVE_DEATH_INFO_REGNO_P. 1064: 1065: * reload1.c (choose_reload_targets): Move all death notes to the 1066: output reload insn. 1067: 1068: * m68k.md (fix_truncsfsi2,fix_truncdfsi2): Use accurate rtl pattern. 1069: 1070: * loop.c (delete_insn_forces): Use presence of REG_RETVAL to check 1071: for value-of-library-call insn. 1072: 1073: Sat Feb 4 18:17:56 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1074: 1075: * integrate.c (expand_inline_function): Make addresses of stack 1076: slots valid somehow. 1077: 1078: * tm-3b1.h (DIVSI3_LIBCALL, etc.): Define these macros; avoid gnulib. 1079: 1080: * expmed.c (store_bit_field): Avoid (subreg (mem)) when converting 1081: VALUE1 to SImode. 1082: 1083: * jump.c (jump_optimize): Do delete USE and CLOBBER insns. 1084: This is needed for proper jump optimization. 1085: 1086: * rtl.def (COMPARE): New code. 1087: * *.md (compare and related patterns): Use COMPARE, not MINUS:VOID. 1088: * loop.c (eliminate_biv, can_eliminate_biv_p): Likewise. 1089: * cse.c (fold_rtx, fold_cc0, cse_insn): 1090: * output-m88k.c (output_{f,}compare, output_store): 1091: * output-sparc.c (strict_single_insn_op_p, single_insn_src_p, safe_insn_src_p): 1092: * combine.c (subst): 1093: * jump.c (jump_back_p): 1094: 1095: Fri Feb 3 18:34:27 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1096: 1097: * output-i386.c (notice_update_cc): If arith insn sets the cc's, 1098: discard all remnants of previous cc value and flags. 1099: 1100: * sparc.md (ashiftrt mem by 24): Fix typo `a1'. 1101: 1102: Thu Feb 2 14:55:44 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1103: 1104: * output-sparc.c (output_mul_insn): Clear the CC status. 1105: 1.1.1.13 root 1106: Wed Feb 1 20:01:54 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1107: 1108: * Version 1.33 released. 1109: 1110: * reload1.c (reload_as_needed): On entering new basic block, 1111: if it didn't need reload regs, forget all inherited contents of those. 1112: 1113: * tm-alliant.h (NOTICE_UPDATE_CC): Floating moves don't set the cc's. 1114: Also delete the clauses and tests for FPA regs. 1115: 1116: Tue Jan 31 21:51:05 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1117: 1118: * config.gcc: Handle convex-c1, convex-c2. 1119: * tm-convex1.h, tm-convex2.h: New files that include tm-convex.h. 1120: * tm-convex.h: Define switches -mnoc1, -mnoc2. 1121: 1122: * config.gcc: rename `nofp' to `nfp', to match the file names. 1123: 1124: Mon Jan 30 22:12:15 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1125: 1126: * output-sparc.c (output_delay_insn): Extract the operands, 1127: call alter_subreg, constrain_operands and NOTICE_UPDATE_CC. 1128: So callers other than output_eager_then_insn don't lose. 1129: (output_eager_then_insn): No need to do that stuff. 1130: 1131: * symout.c (symout_block_symbols): Handle (MEM (REG)) for 1132: variable-sized arrays. 1133: 1134: * tm-encore.h (ASM_SPEC): Always pass -j; avoid jump-range lossage. 1135: 1136: Sun Jan 29 17:06:26 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1137: 1138: * alliant.md: Fix refs to CONST_DOUBLEs to use CONST_DOUBLE_{HIGH,LOW}. 1139: 1140: * combine.c (subst): (minus (zero_extend ...) (const_int ...)) opt. 1141: now limited to within the context of (set (cc0) ...). 1142: 1143: Sat Jan 28 14:26:08 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1144: 1145: * cse.c (fold_cc0): Missing `&' extracting CONST_DOUBLEs. 1146: (fold_rtx): Don't put CONST_DOUBLEs together into a (CONST (PLUS...)). 1147: 1148: * output-convex.c (gen_cmp): Recognize CONST_DOUBLE as a constant. 1149: 1150: * tree.c (build_real_from_int_cst): Typo in REAL_ARITHMETIC case. 1151: 1152: * Makefile (bootstrap2): Don't use bootstrap3 as subroutine. 1153: 1154: * varasm.c (force_const_mem): Put the CONST_DOUBLE on the chain 1155: if its MEM is stored in it; so it can be cleared at end of function. 1156: 1157: * stmt.c (emit_case_nodes): Put a compare before each cond-jump. 1158: Two cond-jumps after one cond is invalid and makes cse produce garbage. 1159: 1160: Fri Jan 27 01:05:01 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1161: 1162: * tm-sun2.h (CPP_SPEC): Define __HAVE_68881__ only if -m68881. 1163: 1164: * c-decl.c (start_decl): Don't expand_decl if DECL already has rtl. 1165: (grokparms): If just declaring fcn, incomplete parm type is just 1166: a warning, and don't discard the specified type. 1167: 1168: * expmed.c (expand_divmod): Be smarter about not clobbering args 1169: with intermediate results; one mem can clobber another, and a reg 1170: can clobber a mem. 1171: 1172: * tm-i386.h (FUNCTION_PROFILER): Use LPREFIX. May actually work now. 1173: * tm-i386gas.h: Include tm-bsd386.h, not tm-att386.h. 1174: This means changing asm syntax. 1175: #undef DBX_NO_XREFS and DBX_CONTIN_LENGTH. 1176: 1177: * sparc.md (eager branch peepholes): Don't forget 2nd arg to 1178: safe_insn_src_p. 1179: Don't print warnings. 1180: * output-sparc.c: (strict_single_insn_op_p): Return 0 for floating 1181: REG or MEM, since copying that may take 2 insns. 1182: (operands_satisfy_eager_branch_peephole): require delay insn to 1183: be strict_single_insn_op_p as well as safe_insn_src_p. 1184: (operand_clobbered_before_used_after): Don't print warnings. 1185: 1186: * varasm.c (decode_rtx_const): Clear entire structure incl. gaps. 1187: Avoids spurious hash mismatches. 1188: (force_const_mem): If CONST_DOUBLE, store its CONST_DOUBLE_MEM field. 1189: Also look in that field rather than hashing, to save time. 1190: 1191: * c-typeck.c (build_c_cast): If value is literal, mark NOP_EXPR as so. 1192: (store_init_value): Change error msg. 1193: 1194: * c-decl.c (duplicate_decls): Classify prototype vs nonprototype 1195: mismatches better. 1196: 1197: * tm-3b1.h: Fix comment. 1198: 1199: Wed Jan 25 12:46:50 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1200: 1201: * Makefile (cleanlinks): Use -f. 1202: 1203: Tue Jan 24 17:54:16 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1204: 1205: * cse.c (canon_hash): Fix paren error in last change. 1206: 1207: * varasm.c (immed_real_const_1): Missing arg to bcmp. 1208: 1209: Mon Jan 23 02:43:45 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1210: 1211: * stor-layout.c (layout_type): BLKmode elts force array to be BLKmode. 1212: 1213: * genpeep.c, genoutput.c, genemit.c: Put `#include "real.h"' in output. 1214: 1215: * stmt.c (expand_expr_stmt): No "no effect" warning for error-mark. 1216: 1217: * varargs.h: Rename implicit arg name to __builtin_va_alist 1218: which triggers code in assign_parms. Does this really matter? 1219: 1220: * sparc.md (sne): New define_expand. 1221: (seq recognizers): Handle sne as well. 1222: * output-sparc.c ({strict_,}single_insn_src_p): 1223: Some NEG and MINUS insns are actually 2 asm insns. 1224: (safe_insn_src_p): No floating arith is safe; they can trap. 1225: (eq_or_neq): New fn, for seq/sne recognizers. 1226: 1227: * c-decl.c (grokdeclarator, size of array type): 1228: Strip from SIZE any NOP_EXPRs that don't change anything. 1229: 1230: * reload.c, recog.c: Include real.h so constraint macros can examine 1231: CONST_DOUBLEs. 1232: 1233: Sun Jan 22 04:12:54 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1234: 1235: * c-decl.c (init_decl_processing): Define __builtin_saveregs. 1236: * tree.h: likewise. 1237: * expr.c (expand_builtin): Handle it. 1238: 1239: * tm-sparc.h: Define TARGET_EAGER and -meager. 1240: * sparc.md (eager branch peepholes): Reenable, but test TARGET_EAGER. 1241: Change fb insns to use %F. Delete `,a' from some of them. 1242: * jump.c (jump_optimize): Don't delete USE and CLOBBER insns. 1243: 1244: * xm-vms.h (const): Define it as empty. 1245: 1246: * make-cccp.com: Move the rename of cexp_tab.c. 1247: Compile cccp.c with no macro definitions. 1248: 1249: * cccp.c (main): VMS conditional for setting max_include_len. 1250: 1251: Sat Jan 21 12:53:00 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1252: 1253: * varargs.h (va_start): On sparc, call __builtin_saveregs. 1254: Delete the old conditional that used va-sparc.h. 1255: Rename macros and locals to start with two underscores. 1256: * va-sparc.h: File deleted. 1257: 1258: * c-decl.c (store_parm_decls): Initialize OTHERS. 1259: 1260: * stmt.c (assign_parms): Obey layout_decl. 1261: 1262: Fri Jan 20 02:19:32 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1263: 1264: * cse.c (fold_rtx): For SYMBOL_REF and LABEL_REF, mask address 1265: to 16 bits. 1266: 1267: * tree.h (NUM_TREE_CODES): NUM_TREE_CODE renamed. 1268: 1269: Thu Jan 19 13:53:24 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1270: 1271: * c-typeck.c (mark_addressable): For global reg var, report error. 1272: Now returns an int; value of 0 means caller should fail. 1273: All calls (in this file) changed. 1274: 1275: * stor-layout.c (layout_decl): Don't let an more than 1 word 1276: of any aggregate go in any 1 register. (Needed for machines whose 1277: integer regs are 64 bits). 1278: 1279: * tm-convex.h, xm-convex.h, convex.md, output-convex.c: new files. 1280: 1281: * expr.c (convert_move): Use extendqidi2, etc. for converting 1282: small ints to double ints. Use zero_extendsidi2 rather than 1283: clearing the high half. 1284: 1285: Wed Jan 18 01:20:52 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1286: 1287: * varasm.c (make_decl_rtl): If global `register' decl is invalid, 1288: make ordinary non-register rtl. 1289: 1290: * output-sparc.c (operand_clobbered_before_used_after): new fn. 1291: (reg_clobbered_p, safe_insn_src_p): New fns. 1292: (single_insn_src_p): Treat constants all as ok, even though not 1293: always literally so. Also accept some SIGN_EXTENDs and ZERO_EXTENDs. 1294: (strict_single_insn_src_p): New fn, like above but is strict 1295: about constants and constant memory addresses. 1296: (relop): New fn. 1297: (output_move_double): Don't make a MEM, and don't use %m. 1298: (output_delayed_branch): New name for output_delay_insn. 1299: Now handle non-small constant operands. 1300: Avoid duplicate loads of g1 for constant addresses. 1301: Use recog_operand directly for output of the delay insn. 1302: (output_delay_insn): Now a completely new fn. 1303: (output_eager_then_insn, next_real_insn_no_labels): New fns. 1304: (operands_satisfy_eager_branch_peephole): New fn. 1305: 1306: * sparc.md: New peepholes for testing a recently used operand. 1307: New peepholes for delayed branches, incl. conditional ones. 1308: ** Some of them commented out because they seem not to work. 1309: (andcc recognizer): Fix typo, missing %. 1310: (bgt): Change bgt to bg in output. 1311: (reversed jumps): Replace with one pattern using match_operand. 1312: It uses %F to output the condition. 1313: (movsi): For round-valued immed const, use just a sethi. 1314: For other immed, use explicit sethi and or. 1315: (movhi, movqi): use `move' for reg source or small int source. 1316: For other immed, use explicit sethi and or. 1317: (movsi, etc.): Handle all constant addresses like SYMBOL_REFs. 1318: (movsf): Delete never-used duplicate code for constant addresses. 1319: (addsi3, subsi3, cse'd multiply): Use sethi and or, rather than set. 1320: (andsi3, iorsi3, xorsi3): Likewise. 1321: (jump): Make an annulled branch. 1322: 1323: * tm-sparc.h (PROMOTE_PROTOTYPES): Define this. 1324: (GO_IF_LEGITIMATE_ADDRESS): Now accept all constant addresses; 1325: also cleaned up. 1326: (NOTICE_UPDATE_CC): Don't change the G1 status when storing in memory. 1327: Assume all PARALLEL insns are peepholes. 1328: (PRINT_OPERAND): New codes C and N for outputting conditions, 1329: either forward or reversed. Also F for reversed floating. 1330: 1331: * jump.c (delete_for_peephole): New function to delete range of insns. 1332: * genpeep.c (gen_peephole): Output code to use this. 1333: 1334: * Makefile (install): Fix typo, had $${name} for $${file}. 1335: 1336: Tue Jan 17 00:00:12 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1337: 1338: * i386.md (ashlsi3): Use addl or leal for special cases. 1339: 1340: * c-decl.c (grokdeclarator): Make a non-global VAR_DECL public 1341: if it is external. 1342: 1343: * masm386.c: Clean up formatting. 1344: 1345: * cse.c (fold_rtx): Typo simplifying x|0 or x^0 1346: when the 0 comes second. 1347: 1348: * expmed.c (store_fixed_bit_field): For halfwords, verify that 1349: the field fits in an *aligned* halfword. 1350: (extract_fixed_bit_field): likewise. 1351: 1352: * expmed.c (store_split_bit_field): New arg align, passed in from 1353: store_fixed_bit_field and passed back to it. 1354: (extract_split_bit_field): likewise. 1355: 1356: * expr.c: Reinsert changes from Jan 2, mysteriously deleted Jan 3. 1357: Also changes from Dec 23, Dec 28 and Dec 29. 1358: 1359: * tm-i386.h: Likewise for changes from Dec 30. 1360: 1361: * c-typeck.c (build_component_ref): If field's type is error-mark, 1362: return an error-mark. 1363: 1364: Mon Jan 16 14:16:54 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1365: 1366: * genpeep.c (main): Output code to exit early if insn is followed 1367: by a barrier. 1368: (gen_peephole): Reject barriers just like labels. 1369: 1370: * stmt.c (do_jump_if_equal): New arg UNSIGNEDP, for emit_cmp_insn. 1371: Caller changed. Now static. 1372: 1373: * final.c (final): Set INSN_DELETED_P in insns when output. 1374: 1375: * final.c (final): Re-set BODY if peephole does anything. 1376: 1377: * c-decl.c (grokparms): Ignore anything but PARM_DECLs in the list. 1378: (store_parm_decls): If we had a prototype, separate out anything other 1379: than a PARM_DECL declared in it, and pushdecl those at the end, 1380: after DECL_ARGUMENTS is set. 1381: 1382: * stmt.c (expand_end_case): Do stack adjusts after computing index. 1383: 1384: * expr.c (store_one_arg): Handle padding for case of BLKmode 1385: for which space was preallocated. 1386: 1387: * integrate.c (copy_rtx_and_substitute): When copying asm insn, 1388: preserve sharing of the input-operand vectors. 1389: (expand_inline_function): Clear {orig,copy}_asm_operands_vector 1390: to make that mechanism work. 1391: (save_for_inline, copy_for_inline): Likewise. 1392: 1393: * stmt.c (expand_asm_operands): Reject `+' in constraints. 1394: Every output constraint requires `='; inputs reject it. 1395: 1396: * stmt.c (expand_function_end): Arg to fixup_gotos was missing. 1397: 1398: Sun Jan 15 00:28:23 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1399: 1400: * cccp.c, gcc.c (main): Handle SIGPIPE. 1401: (pipe_closed): New fn; report suitable fatal error. 1402: 1403: * loop.c (loop_optimize): Initialize moved_once. 1404: 1405: * gcc.c (do_spec): Don't call `execute' if value != 0. 1406: Delete redundant second call to do_spec_1. 1407: 1408: * toplev.c (compile_file): Make declared-but-not-defined warnings 1409: only if -Wunused. 1410: 1411: * stmt.c (emit_case_nodes): Fix typo setting gen_ble_pat. 1412: 1413: * tm-sparc.h ({U,}MODSI3_LIBCALL): Name was wrong. 1414: 1415: * gcc.c (env_exec_prefix refs): Don't try to open via it if it's null. 1416: 1417: * output-sparc.c (output_store, output_load_{fixed,floating}): 1418: Fixed confusions between the mem ref and its address. 1419: 1420: * cse.c (canon_hash): global_regs has entries only for hard regs. 1421: * flow.c (insn_dead_p, mark_set_p, mark_used_regs): Likewise. 1422: 1423: * cse.c (fold_rtx): More simplifications for MULT, IOR, AND, XOR 1424: DIV and shifts with one arg 0 or 1. 1425: 1426: Sat Jan 14 11:41:11 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1427: 1428: * c-typeck.c (build_array_ref): If pedantic, check for regdecl arrays. 1429: 1430: * fixincludes: Make all subdirs in advance, so no need for `dirname'. 1431: 1432: * genpeep.c (gen_peephole): Delete code to increment LABEL_NUSES; 1433: instead, clear JUMP_LABEL for any jumps being deleted. 1434: No need to test INSN1 for being a label, since not called then. 1435: [If any of the matched insns is a JUMP_INSN, set want_jump, 1436: and in that case make the matched peephole a JUMP_INSN itself.] 1437: That's in an #if 0 now; it's good in jump, but not in final. 1438: 1439: * jump.c (jump_optimize): Don't do peepholes here. 1440: * final.c (final): Do them here. 1441: 1442: * jump.c (jump_optimize): In optimizing `if (foo) bar; else break;', 1443: don't try to invert anything but a standard-looking conditional jump. 1444: 1445: * jump.c (jump_optimize): Do peepholes on ALL BUT the first pass. 1446: 1447: * gcc.c (env_exec_prefix): New var used like user_exec_prefix 1448: but set from envvar GCC_EXEC_PREFIX. 1449: 1450: Fri Jan 13 13:21:59 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1451: 1452: * genpeep.c (gen_peephole): Test INSN1 for a label at the very start, 1453: then test following insns at the end of the loop. 1454: 1455: * sparc.md (call recognizers): do CC_STATUS_INIT, for %g1. 1456: 1457: Thu Jan 12 02:13:49 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1458: 1459: * varasm.c (make_decl_rtl): Recognize more error cases for reg vars: 1460: BLKmode, or initializer given. 1461: Distinguisn missing asm from invalid name. 1462: 1463: * expr.c (expand_call): Never return 0; return const0_rtx instead. 1464: This makes expand_expr more uniform. 1465: 1466: * c-decl.c (grokparms): For ptr to incomplete type, just warn; 1467: don't change the parm's type. 1468: 1469: * stmt.c (expand_return): Set RETVAL_RHS so as to recognize 1470: tail-recursive fcn returning void. 1471: Unconditionally test value of expand_expr for being a REG. 1472: 1473: * reload.c (find_reloads): Don't process insns that have 1474: no constraint alternatives. No more need for have_constraints. 1475: 1476: * recog.c (constrain_operands): New local var nalternatives. 1477: Don't bother checking the insn if nalternatives is 0. 1478: 1479: Wed Jan 11 01:27:48 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1480: 1481: * Implement global register decls. 1482: 1483: * varasm.c (make_decl_rtl): Handle global register vars. 1484: (make_function_rtl): Set function_defined: after 1st function dfn. 1485: (assemble_variable): Ignore global register vars. 1486: 1487: * c-decl.c (grokdeclarator): Don't reject global register decls. 1488: (builtin_function): Use make_decl_rtl, not make_function_rtl, 1489: to avoid setting function_defined. 1490: 1491: * regclass.c (init_reg_class{,_1}): Init and process global_regs. 1492: They are fixed, and call-clobbered. 1493: 1494: * flow.c (insn_dead_p): Storing one of global_regs is never dead. 1495: (mark_used_regs, mark_set_1): A global reg is never dead. 1496: 1497: * cse.c (canon_hash): Consider global regs volatile. 1498: 1499: 1500: * expr.c (do_jump): Know how to invert jumps which are sequences. 1501: 1502: * dbxout.c, symout.c, final.c: On USG, use our own stab.h. 1503: 1504: * tm-i386gas.h: New file for GAS on sysV (with DBX debugging info). 1505: 1506: * m68k.md (bfchg and bfins patterns): Make # alternatives uniform. 1507: * alliant.md: Likewise; also in movdf patterns. 1508: 1509: * genoutput.c (output_epilogue): Spurious `break' disabled 1510: error check for mismatched # of alternatives. 1511: (output_epilogue, scan_operands): Errors in input are not fatal. 1512: 1513: * flow.c (regno_uninitialized): Avoid crash if no basic blocks. 1514: 1515: * sparc.md (move insns): Delete special patterns that handled 1516: symbolic constant addresses. The main move patterns now do this. 1517: * output-sparc.c (output_store, output_load_{fixed,floating}): 1518: Subroutines to do the work for this; has the code from those 1519: special patterns. Also fixed bugs in testing against cc_status.mdep. 1520: 1521: * output-sparc.c (output_delay_insn): Clear the CC status. 1522: This is necessary for %g1 in the case of a call insn. 1523: 1524: * tm-i386.h (REG_CLASS_CONTENTS): INDEX_REGS is now all but ESP. 1525: (REGNO_REG_CLASS): Corresponding change. 1526: (REG_CLASS_FROM_LETTER): Eliminate `x' letter since not used. 1527: 1528: * optabs.c (emit_cmp_insn): New arg ALIGN, used for BLKmode. 1529: All callers changed. 1530: Pass alignment (as rtx) as 4th arg to cmpstr gen functions. 1531: Use cmpstrhi if available. 1532: * expr.c (compare): Only this call passes a nonzero ALIGN. 1533: 1534: * expr.c (emit_push_insn, emit_block_move): Pass alignment (as rtx) 1535: as 4th arg to movstr gen functions. 1536: 1537: Tue Jan 10 23:43:05 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1538: 1539: * stor-layout.c (layout_type): Use BLKmode, if a struct isn't 1540: aligned well enough for a scalar mode. 1541: 1542: * expr.c (expand_expr): For static CONSTRUCTOR, ensure memory 1543: address is made valid. 1544: 1545: * genpeep.c (match_rtx): For MATCH_OPERATOR, set max_opno, n_operands. 1546: 1547: Mon Jan 9 17:07:56 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1548: 1549: * varasm.c (output_constant): Split strings every 2000 chars. 1550: 1551: * stmt.c (expand_end_case): Test bkwds, handling constant switch arg. 1552: 1553: Fri Jan 6 09:11:20 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1554: 1555: * output-sparc.c (output_delay_insn): Add parens to first if test. 1556: (output_move_double): Turn addr for `sethi' into MEM for %m. 1557: 1558: * c-typeck.c (convert_for_assignment): move test for ERROR_MARK. 1559: 1560: * c-parse.y (unary_expr): Allow cast_expr as arg of unary op. 1561: 1562: * stmt.c (expand_decl): Don't abort if FUNCTION_DECL lacks rtl; 1563: assemble_variable is called after this. 1564: 1565: * c-parse.y (primary -> identifier): Separate case for undeclared 1566: identifier outside of functions; avoids confusing error msgs. 1567: 1568: Thu Jan 5 01:24:47 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1569: 1570: * Makefile (install): Ignore errors in all `if' commands. 1571: Create $(libdir) if nec. 1572: 1573: * Makefile (insn-*.[ch]): Put in empty commands. May help Ultrix Make. 1574: 1575: * stmt.c (emit_case_nodes): New arg UNSIGNEDP says do unsigned jumps. 1576: Arg INDEX is an rtx, not a tree. 1577: (expand_end_case): Pass that arg. 1578: (node_has_{low,high}_bound): check for overflow, avoid confusion. 1579: 1580: Wed Jan 4 02:24:21 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1581: 1582: * sparc.md (movdi, movdf): Use `&' constraint when loading reg from; 1583: otherwise can lose on (set (reg X) (mem (plus (reg X) (reg X+1)))). 1584: 1585: * expr.c (emit_push_insn): For memory scalar partially going in regs, 1586: copy each word to reg before pushing. Avoids memory-to-memory move. 1587: Make the displaced address valid. 1588: Also delete unfinished STACK_OFFSET variable. 1589: 1590: * c-parse.y (check_newline): Read just one #-directive and return. 1591: This prevents lossage when toplev.c calls it to get the main input file 1592: name, and it gets a following #ident as well. 1593: 1594: * c-decl.c (lang_decode_option): Set warn_cast_qual for -Wcast-qual. 1595: * c-typeck.c (build_c_cast): Issue some warnings if set. 1596: 1597: * tm-3b1.h (ASM_OUTPUT_CASE_LABEL): Missing `;'. 1598: 1599: Tue Jan 3 18:07:31 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1600: 1601: * expr.c (emit_library_call): Do force_operand on each operand 1602: if it isn't a REG, MEM or constant. 1603: Do this, or mode conversions, earlier, before loading any hard regs. 1604: 1605: * m68k.md (addsi3) [SGS]: Put a zero displacement in the `lea'. 1606: 1607: * c-typeck.c (default_conversion): Don't lose `const' or `volatile' 1608: when converting array type to pointer. 1609: 1610: Mon Jan 2 01:18:01 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1611: 1612: * expmed.c (store_bit_field, store_fixed_bit_field): New arg, 1613: alignment in bytes the structure is known to have. 1614: (store_fixed_bit_field): Handle working in halfwords, 1615: in case the pointer isn't known to have fullword alignment. 1616: * expmed.c (extract_bit_field, extract_fixed_bit_field): likewise. 1617: (extract_bit_field): fix unsignedp arg to extract_fixed_bit_field. 1618: * expr.c (store_field): New arg, passed to {store,extract}_bit_field 1619: (expand_assignment, store_constructor): Pass that arg. 1620: (expand_expr): Pass new arg to extract_bit_field. 1621: 1622: * m68k.md (casesi_2 recognizer): Offset always 6 for 3b1. 1623: 1624: * c-typeck.c (convert_for_assignment): Strip from rhs no-op NOP_EXPRs 1625: put on by build_c_cast (to make the result not an lvalue). 1626: (build_modify_expr, build_compound_expr): likewise. 1627: (build_conditional_expr): likewise. 1628: (actualparameterlist, build_function_call): likewise. 1629: (default_conversion, truthvalue_conversion): likewise. 1630: 1631: * loop.c (move_movables): If reg has moved out of one loop, 1632: divide `savings' by 2. 1633: 1634: Sun Jan 1 03:00:07 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1635: 1636: * c-typeck.c (truthvalue_conversion): Distribute the conversion 1637: into the arms of a COND_EXPR. 1638: 1639: * cse.c (fold_rtx): Don't fold a MINUS with VOIDmode 1640: into a symbolic constant--it's incorrect. 1641: 1642: * cse.c (cse_insn): If SRC is a subreg with known value, simplify it. 1643: 1644: * integrate.c (copy_rtx_and_substitute): Allow a ref to a part of 1645: MEM parm whose actual parm is a reg, provided it refs 1646: the low part of the MEM. 1647: (function_cannot_inline_p): Don't inline functions which have 1648: aggregate parameters and take their addresses. This could produce 1649: refs to non-low-parts, which copy_rtx_and_substitute can't handle. 1650: 1651: * c-typeck.c (build_modify_expr): If lhs is COND_EXPR, 1652: make a COMPOUND_EXPR to ensure the rhs is computed before the branch. 1653: 1654: * Implement -pipe. 1655: * gcc.c (do_spec_1): `|' is now a special delimiter 1656: which goes in the argbuf. 1657: When a newline is preceded by a `|', delete it if no -pipe. 1658: Otherwise, don't execute yet, and keep scanning. 1659: (do_spec): At end, if we have stuff with no newline, execute it. 1660: (handle_braces): Implement %{|foo:...}. 1661: (execute): If argbuf contains some `|'s, run several processes 1662: and pipe them together. 1663: (pexecute): new subroutine to make one of the processes. 1664: (find_exec_file): new fn to search for program to execute. 1665: (record_temp_file): new arg FAIL_ONLY. 1666: (store_arg): 2nd arg == 3 means delete file on failure. 1667: This is used for output files. 1668: (delete_temp_files): delete certain files only if fail. 1669: 1670: * cccp.c (include_defaults): /usr/include before /usr/local/include. 1671: 1672: * recog.c (asm_noperands): 1-off in loop checking CLOBBERS 1673: when no output operands and PARALLEL. 1674: 1675: * expmed.c (negate_rtx): Sign-extend the high bits rather than clear. 1676: 1677: * cse.c (fold_rtx): fold negation of real values. 1678: (fold_cc0): fold comparisons on real values. 1679: 1680: * Makefile (install): Use $(INSTALL) for gcc.1 and files in USER_H. 1681: 1682: * Handle floating-point problems for cross-compilation. 1683: 1684: * real.h (CONST_DOUBLE_LOW, etc.): new macros to access CONST_DOUBLE. 1685: * varasm.c (immed_double_const, decode_rtx_const): Use these. 1686: ({force,clear}_const_double_mem): Likewise. 1687: * output-*.c (output_move_double): Use these. 1688: * output-m68k.c (standard_{68881,sun_fpa}_constant_p): Likewise. 1689: * tm-*.h (PRINT_OPERAND): Use these. 1690: * output-i386.c (print_operand): Use these. 1691: * final.c (output_addr_const): Likewise. 1692: * emit-rtl.c (gen_rtx): Delete special code for CONST_DOUBLE. 1693: 1694: * real.h (union real_extract): Portable type for storing real as ints. 1695: * varasm.c (immed_double_const, decode_rtx_const): Use these. 1696: 1697: * varasm.c (immed_real_const_1, decode_rtx_const): 1698: Don't assume REAL_VALUE_TYPE is 2 ints long. 1699: * emit-rtl.c (init_emit_once): Likewise. 1700: 1701: * real.h (REAL_VALUE_TYPE): Define as `double' if not defined. 1702: (REAL_IS_NOT_DOUBLE): Define this if default REAL_VALUE_TYPE not used. 1703: (REAL_VALUES_EQUAL, REAL_VALUES_LESS): Define, if not already defined. 1704: (REAL_VALUE_LDEXP, REAL_VALUE_ATOF): Likewise. 1705: * tree.h (struct tree_real_cst): Use REAL_VALUE_TYPE for the value. 1706: 1707: * rtl.c (init_rtl): Increase length of CONST_DOUBLE if REAL_VALUE_TYPE 1708: needs more space. Change the rtx_format element to match. 1709: * varasm.c (immed_real_const_1): 1st arg now has REAL_VALUE_TYPE. 1710: (force_const_mem): Assume a CONST_DOUBLE contains REAL_VALUE_TYPE. 1711: * emit-rtl.c (init_emit_once): Likewise. 1712: And use REAL_VALUE_ATOF to get a floating zero. 1713: * optabs.c (expand_float): Use REAL_VALUE_TYPE, REAL_VALUE_LDEXP. 1714: * c-parse.y (yylex): Likewise, and use REAL_VALUE_ATOF. 1715: * fold-const.c (split_tree): Don't accept REAL_CSTs. 1716: (combine, fold_convert, fold): Use REAL_ARITHMETIC if defined; 1717: else don't fold reals if they are not doubles. 1718: * tree.c (build_real_from_int_cst): Likewise. 1719: * print-tree.c (dump) [REAL_IS_NOT_DOUBLE]: output float value 1720: in hex, since we don't know how to do it right. 1721: 1722: Sat Dec 31 14:15:13 1988 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1723: 1724: * optabs.c (init_optabs): Handle new macros {U,}MULSI3_LIBCALL, 1725: DIVSI3_LIBCALL, MODSI3_LIBCALL. 1726: * tm-sparc.h: Define {,U}{MUL,DIV,MOD}SI3 to call Sun's library direct. 1727: 1728: * tm-sun3-nfp.h, tm-sun3-fpa.h: New files. 1729: 1730: Fri Dec 30 00:14:36 1988 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1731: 1732: * cccp.c (main): Certain envvars specify a file to write deps info to. 1733: 1734: * toplev.c (compile_file): Warn about undefined fns declared static. 1735: 1736: * m68k.md (casesi_2 recognizer) [SGS] RTX_INTEGRATED_P test backwards. 1737: * tm-3b1.h (ASM_OUTPUT_CASE_LABEL): Likewise. Also missing `\'. 1738: 1739: * reload1.c (count_occurrences): New function. 1740: (choose_reload_targets): Don't delete a reload if the same reg 1741: is used elsewhere in the current insn. 1742: (delete_output_reload): code split out from choose_reload_targets. 1743: 1744: * c-typeck.c (build_c_cast): Always put on some operator, 1745: so the cast is never an lvalue for strict ANSI. 1746: 1747: * c-typeck.c (initializer_constant_valid_p): Don't depend on 1748: distinction between NOP_EXPR and CONVERT_EXPR. 1749: 1750: * c-convert.c: Fns reordered; new comments. 1751: 1752: * fold-const.c (fold): If simplifying a NOP_EXPR within a BIT_AND_EXPR, 1753: return a NOP_EXPR. 1754: New var TYPE holds type of expr. 1755: 1756: * c-parse.y (expr_no_commas): Split off cast_expr and unary_expr, 1757: to reject `sizeof (int) foo'. 1758: 1759: * toplev.c (main): Treat plain `-' as input filename. 1760: 1761: * final.c (final): If an insn's output routine returns 0, 1762: it means to output the deleted compare insn immediately preceding. 1763: 1764: * m68k.md (branch insns): Use 0 as 3rd arg for OUTPUT_JUMP 1765: rather than explicitly clearing the overflow flag. 1766: 1767: * tm-i386.h (OUTPUT_JUMP): Really use NO_OV; don't abort. 1768: * i386.md (branch insns): Put real data (sometimes 0) in 3rd arg 1769: of OUTPUT_JUMP. 0 means preceding test may not be deleted. 1770: (lea pattern): Clear the cc's. 1771: * output-i386.c (notice_update_cc): various arith insns set the cc's. 1772: 1773: Thu Dec 29 13:22:01 1988 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1774: 1775: * stmt.c (expand_decl_init): Do nothing for static decls. 1776: 1777: * reload.c (find_reloads_address{,_1}): Return 1 iff entire arg 1778: was reloaded as a whole, else 0. 1779: (find_reload): If find_reloads_address returns 1, don't let that MEM 1780: satisfy a `>' or `<' constraint. 1781: 1782: * m68k.md (cmpmb): Delete special pattern, make cmpqi handle it. 1783: The special pattern couldn't handle reloading the incremented register. 1784: 1785: * integrate.c (copy_rtx_and_substitute): Test BYTES_BIG_ENDIAN, 1786: not BITS... 1787: 1788: * combine.c (subst): Consider big-endian correction 1789: when simplifying (subreg (mem ...) ...). 1790: 1791: * reload.c (find_reloads): Don't crash if matching operands in `asm' 1792: are both read or both write. 1793: 1794: * expr.c (emit_push_insn): Address for movstr must be XINNER, not X. 1795: 1796: * toplev.c (main): Typo parsing `-fno...'. 1797: 1798: Wed Dec 28 13:07:21 1988 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1799: 1800: * toplev.c (rest_of_compilation): `volatile' fns need jump_optimize 1801: for warnings, as if -Wreturn-type. 1802: * c-typeck.c (c_expand_return): Warn about `return' in a `volatile' fn. 1803: * c-decl.c (finish_function): Warn if `volatile' fn can drop thru end. 1804: 1805: * cse.c (canon_reg): Handle nulls as subexpressions. 1806: (fold_rtx, canon_hash, mention_regs, exp_equiv_p): Likewise. 1807: * loop.c (invariant_p, replace_regs, replace_call_address, may_trap_p, 1808: {basic,general}_induction_var): Likewise. 1809: 1810: * expr.c (expand_call): Handle `const' functions: 1811: Local IS_CONST is 1 if function is const. 1812: Attach REG_RETVAL and REG_LIBCALL notes around the call. 1813: Copy fn address to register outside of those notes. 1814: Likewise precompute all parms outside them. 1815: 1816: * expr.c (expand_call): If fn is volatile, emit barrier after the call. 1817: 1818: * c-decl.c (grokdeclarator): Allow function declared const or volatile. 1819: 1820: Sat Dec 24 18:40:12 1988 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1821: 1822: * integrate.c (function_cannot_inline_p): If STRUCT_VALUE_INCOMING 1823: or STRUCT_VALUE is defined, can't inline functions returning BLKmode. 1824: 1825: Fri Dec 23 13:26:26 1988 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1826: 1827: * expr.c (store_constructor): Compute array's size 1828: with int_size_in_bytes. 1829: 1830: * varasm.c (assemble_variable): If shared data, go to data section 1831: before outputting an uninitialized symbol. 1832: 1833: * tm-sequent.h (ASM_OUTPUT_ALIGN_CODE): Missing backslash. 1834: (SHARED_SECTION_ASM_OP): Macro defined. 1835: * tm-seq386.h (SHARED_SECTION_ASM_OP): Macro defined. 1836: 1837: * c-typeck.c (c_expand_asm_operands): Warn if output op is `const'. 1838: 1839: * Fix problem where a stmt expr in an initialization 1840: refers to the variable it is initializing. 1841: * stmt.c (expand_decl_init): New fn split out from `expand_decl'. 1842: * c-decl.c (finish_decl): Call that. 1843: Don't call expand_decl if already done. 1844: (start_decl): Call expand_decl if type is complete already. 1845: 1846: * Makefile (install): Typo in ranlib command. 1847: 1848: Thu Dec 22 15:57:12 1988 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1849: 1850: * tree.h (tree_identifier): New field. 1851: (IDENTIFIER_ERROR_LOCUS): Accessor for it. 1852: * c-parse.y (primary => IDENTIFIER): 1853: Undeclared variable gets one err msg per function it appears in. 1854: 1855: * ns32k.md (andsi3): Delete extra brace. 1856: 1857: * alliant.md, xm-alliant.h, tm-alliant.h, output-alliant.c: New files. 1858: 1859: * combine.c (SUBST, SUBST_INT): Store new field `is_int'. 1860: (copy_substitutions): Don't copy an int as an rtx. 1861: 1862: * Makefile (INSTALL): Install gcc.1 properly. 1863: 1864: * tm-ns32k.h (FUNCTION_PROLOGUE, ASM_OUTPUT_ALIGN_CODE): 1865: Add missing backslashes. 1866: 1.1.1.9 root 1867: See file OChangeLog. 1.1 root 1868: 1869: Local Variables: 1870: mode: indented-text 1871: left-margin: 8 1872: fill-column: 76 1873: version-control: never 1874: End:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.