|
|
1.1 root 1: Mon Jan 13 19:12:18 1992 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu)
2:
3: * unroll.c (find_splittable_givs): When completely unrolling loop,
4: use biv initial value stored in splittable_regs instead of
5: bl->initial_value, since the later may not be safe.
6:
7: * sched.c (schedule_block): When calculating whether a register
8: crosses a call, must do this after registers are killed and before
9: new registers are made live.
10:
11: * x-rs6000: Define INSTALL as /usr/ucb/install -c. /etc/install
12: (the SYS V version) does not handle -c option as Makefile.in
13: intends it.
14:
15: Mon Jan 13 11:21:24 1992 Michael Meissner (meissner at osf.org)
16:
17: * mips-tfile (parse_stabs_common): Don't relocate N_LBRAC and
18: N_RBRAC stabs for compatibility with other stabs implementations.
19:
20: Mon Jan 13 07:41:32 1992 Michael Tiemann (tiemann at cygnus.com)
21:
22: * cp-decl.c (grokdeclarator): Don't set TREE_PRIVATE here.
23: TREE_PRIVATE is only for visibility.
24: (start_function): Don't test TREE_PRIVATE here. #pragma
25: interface/implementation should properly handle the case of static
26: (i.e. non-public) defns in implementation section now.
27:
28: Mon Jan 13 07:31:38 1992 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
29:
30: * rs6000.c (output_ascii): The AIX assembler silently truncates
31: strings longer than 666 characters, so break them up well before that.
32:
33: Mon Jan 13 00:26:47 1992 Richard Stallman (rms at mole.gnu.ai.mit.edu)
34:
35: * c-decl.c (pushdecl): Warn about shadowing at top level any symbol
36: that was declared among the function parms. But don't warn for
37: parms in a nested function.
38: * tree.c (chain_member): New function.
39:
40: * sparc.c (output_return): Handle structure value in all the cases.
41:
42: * toplev.c (main): -gstabs+ means use stabs with gdb extensions.
43:
44: * fixincludes: Insert #undef NULL before #define NULL.
45:
46: * gvarargs.h (va_list): Check some macros to avoid redefinition.
47:
48: * tree.h (DECL_PACKED): New macro.
49: * c-common.c (decl_attribute): Handle `packed'.
50: * stor-layout.c (layout_record): Handle DECL_PACKED.
51: * c-parse.y (attrib): Accept `packed' with no arg.
52:
53: * c-decl.c (shadow_tag): For useless keyword, just warn.
54: (duplicate_decls): Don't preserve volatile bit from old decl
55: if that is just a default declaration for abort, exit, etc.
56:
57: * cccp.c (do_assert, do_unassert, check_assertion):
58: No pedantic warnings in system header files.
59:
60: * ultrix.h (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE): Defined.
61: (WCHAR_TYPE_SIZE): Defined.
62:
63: * i386.h (HI_REGISTER_NAMES): Add a name for dummy reg 16.
64:
65: * dbxout.c (flag_minimal_debug): Make it static.
66:
67: Sun Jan 12 18:10:46 1992 Richard Stallman (rms at mole.gnu.ai.mit.edu)
68:
69: * c-lex.c (check_newline): Check #line for `3' meaning system header.
70: * cccp.c (output_line_command): Output `3' if system header.
71: * c-tree.h (system_header_p): Declare it.
72: (ridpointers): Declaration deleted.
73:
74: * dwarfout.c (fundemental_type_code): Treat OFFSET_TYPE like integer.
75: (type_is_fundamental, output_type): Likewise.
76:
77: * optabs.c (expand_float): Abort if FROM has VOIDmode.
78: * expr.c (expand_expr, FLOAT_EXPR case): Don't pass a VOIDmode.
79:
80: Sun Jan 12 16:11:40 1992 Michael Meissner (meissner at osf.org)
81:
82: * mips.h (ASM_OUTPUT_SPACE): If assembler is gas, don't use the
83: .space directive, since the table PREDICATE_CODES generates tickles
84: a bug.
85:
86: Sun Jan 12 15:59:41 1992 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
87:
88: * expmed.c: Include real.h.
89: (make_tree): Properly handle CONST_INT and handle many more rtl codes.
90: (expand_mult_add): Don't do folding here; just call make_tree and fold.
91: * Makefile.in (expmed.o): Includes real.h.
92:
93: Sun Jan 12 12:26:20 1992 Michael Tiemann (tiemann at cygnus.com)
94:
95: * cp-decl.c (store_parm_decls): Finish change started 11 Jan 1992.
96:
97: * cp-decl.c (pushtag): Don't set CLASSTYPE_TAGS after
98: CURRENT_CLASS_TYPE has been defined.
99:
100: * cp-lex.c (check_newline): Set INTERFACE_UNKNOWN if we see a
101: #pragma implementation or if it's the toplevel file.
102:
103: Sat Jan 11 22:04:34 1992 Michael Meissner (meissner at osf.org)
104:
105: * mips.md (fix_truncsfsi2_opt): Delete, since the optimizer will
106: strip the clobbers when substituting a register for a cs'ed value,
107: unlike GCC 1.
108: (fix_truncdfsi2_opt): Likewise.
109: (long long shifts): Fix various typos.
110:
111: Sat Jan 11 15:26:24 1992 Richard Stallman (rms at mole.gnu.ai.mit.edu)
112:
113: * expr.h (GEN_FCN): Alternate definition if FUNCTION_CONVERSION_BUG.
114: * xm-romp.h (FUNCTION_CONVERSION_BUG): Define it.
115:
116: * i386.md (cmpstrsi recognizers): Change back to repz.
117:
118: Sat Jan 11 11:18:32 1992 Michael Tiemann (tiemann at cygnus.com)
119:
120: * cp-decl.c (store_parm_decls): Don't put non-PARM_DECL nodes in the
121: list that will become DECL_ARGUMENTS.
122:
123: * cp-decl2.c (grokfield): Convert () initialization to =
124: initialization in FIELD context.
125: * cp-decl.c (parmlist_is_exprlist): Now non-static.
126:
127: * cp-decl.c (grokdeclarator): Don't let static class members be
128: declared `static' at top-level.
129:
130: * cp-decl.c (pushdecl_class_level): Don't use DECL_ASSEMBLER_NAME.
131:
132: * cp-decl.c (grokdeclarator): Don't let language linkage interfere
133: with declarator grokking--the two are independent.
134:
135: * cp-call.c (compute_conversion_costs): Look for constructor or type
136: conversions regardless of whether we have CONTRAVARIANCE_HARSHNESS
137: or not. Also, `#if 0' some dead code.
138:
139: * cp-method.c (report_type_mismatch): Fix bugs in formatting error
140: messages.
141:
142: * cp-decl.c (grokvardecl): Verify that when static class members are
143: declared at toplevel, the types match their initial declaration.
144:
145: Sat Jan 11 08:41:24 1992 Fred Fish (fnf at fishpond)
146:
147: * config/m68kv4.h (NO_DOLLAR_IN_LABEL): Undefine so that the
148: default for m68k/SVR4 systems is to use '$', which is more
149: widely supported.
150:
151: Sat Jan 11 10:56:10 1992 Jeffrey A. Law (law at wombat.gnu.ai.mit.edu)
152:
153: * Finish PIC implementation on the 68k
154: * output.h (flag_pic): Declare here so that insn-*.c can see it.
155:
156: * reload1.c (reload): When compiling PIC ignore REG_EQUIV notes
157: which are CONSTANT_P, but are not LEGITIMATE_PIC_OPERAND_P.
158:
159: * m68k.md (call, call_value): Make these into define_expands. If
160: compiling PIC code, then load the address of the function into a
161: register so that we make indirect calls.
162: (Non-PIC call, call_value): New define_insns. These are
163: standard call insns.
164: (PIC call, call_value): New define_insns which output PIC calls.
165: (movsi): Make this into a define_expand. Legitimize PIC addresses
166: if necessary. Old movsi code is now an unnamed define_insn pattern.
167:
168: * m68k.h (GO_IF_LEGITIMATE_ADDRESS case INDIRECTABLE_1_ADDRESS_P):
169: Use LEGITIMATE_PIC_OPERAND_P to reject SYMBOL_REFS and LABEL_REFS
170: without PIC relocation when compiling PIC code.
171:
172: * m68k.c (legitimize_pic_address): New function. Given an address
173: return that address as "legitimized" PIC code.
174: (print_operand_address): When generating PIC code, handle PIC
175: relocated label_refs just like a PIC relocated symbol_ref.
176: (print_operand_address): If -fpic then add ":w" to displacement in
177: PIC relocated references.
178: (print_operand_address): If -fPIC then add ":l" to displacement in
179: PIC relocated references.
180:
181: Fri Jan 10 18:03:08 1992 Ken Raeburn ([email protected])
182:
183: * cp-init.c (build_new): Don't allocate header for arrays if no
184: destructor is needed. Also fix broken calculation of array size.
185: (build_delete): Don't skip array header if no destructor is needed.
186:
187: Fri Jan 10 14:54:19 1992 Michael Tiemann (tiemann at cygnus.com)
188:
189: * cp-cvt.c cp-decl2.c cp-expr.c cp-gc.c cp-init.c cp-lex.c cp-parse.y
190: cp-pt.c cp-search.c cp-tree.c: Clean up problems found with -Wreturn
191: (from rfg).
192:
193: * cp-typeck.c cp-tree.c cp-cvt.c cp-lex.c cp-call.c cp-class.c:
194: Add (unsigned) casts to all places where native SVr4 compilers
195: expect to see unsigned values.
196:
197: Fri Jan 10 08:34:36 1992 Fred Fish (fnf at sunfish)
198:
199: * m68ksgs.h (REGISTER_NAMES): Provide separate versions for
200: SUPPORT_SUN_FPA defined and not defined.
201:
202: Fri Jan 10 22:36:41 1992 (Eric Youngdale at [email protected])
203:
204: * Improve I/O performance of gcc on VMS.
205: * cccp.c (VMS_open, VMS_fopen, VMS_freopen): New functions.
206: (open, fopen, freopen): Define as macros on VMS.
207: * toplev.c (VMS_fopen): New function.
208: (fopen): Define as macro on VMS.
209:
210: Fri Jan 10 22:00:50 1992 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
211:
212: * genrecog.c (merge_trees): If two trees both have actions, but
213: one adds clobbers and one doesn't, ignore the one that does.
214:
215: * genemit.c (gen_split): Say that we are giving the definition number
216: in our error message.
217: * genrecog.c (fatal): Likewise.
218: * genoutput.c (scan_operands): Likewise.
219:
220: * caller-save.c: Include expr.h (for gen_move_insn).
221: (regno_save_elim): Deleted.
222: (init_save_areas): Don't initialize it.
223: (setup_save_areas): Don't set it.
224: (save_call_clobbered_regs, restore_referenced_regs): Accept mode,
225: not spill register.
226: (insert_save_restore): Don't do our own register elimination and
227: reloading; instead set the insns we make to the desired mode.
228: * reload1.c (struct elim_table): New field MAX_OFFSET.
229: (reload): Always call init_save_areas.
230: Initialize max_offset each pass.
231: At each CALL_INSN, create a need for a spill register that will
232: be used by caller-save.
233: Pass mode for insns to save_call_clobbered_regs instead of a
234: spill reg number.
235: Call reload_as_needed if we will have to reload the caller-save
236: insns, even if nothing else needs reload (unlikely).
237: (eliminate_regs_in_insn): Record maximum offset value.
238: * Makefile.in (caller-save.o): Includes expr.h.
239:
240: * reload.c (find_reloads): CALL_INSNs can't have output reloads.
241: * reload1.c (emit_reload_insns): Put any reloads for a CALL_INSN
242: in front of any immediately-preceeding USE insns.
243:
244: * flow.c (life_analysis): Mark all global regs as live at the end of
245: the function.
246: (propagate_block): Each call makes all global registers live.
247: (mark_used_regs): A RETURN may use the stack pointer and uses all
248: global regs.
249: * cse.c (cse_insn): A CALL_INSN clobbers any global regs.
250: * reorg.c (mark_referenced_resources): Calls used global regs.
251: (mark_set_resources): CALL_INSNs clobber global regs.
252:
253: Fri Jan 10 17:24:06 1992 Michael Meissner (meissner at osf.org)
254:
255: * collect2.c (whole file): Major rewrite to merge in collect3
256: functionality which uses GCC to build up the constructor and
257: destructor tables, instead of using the assembler. Also improve
258: the support for cross compilers to find the tools. The old assembly
259: language support has been removed.
260:
261: * mips-tfile.c (CODE_MASK): Move to mips.h to use with mips-tdump
262: also.
263: (MIPS_IS_STAB): Likewise.
264: (MIPS_MARK_STAB): Likewise.
265: (MIPS_UNMARK_STAB): Likewise.
266:
267: * mips-tdump.c (various): Changes by Per Bothner to print
268: encapsulated stabs, and to shorten the output.
269:
270: * mips.h (MIPS_VERSION): Set Meissner version # to 7.
271: (cmp2_op): Make cmp2_op a real function instead of just a
272: macro to cmp_op.
273: (OPTIMIZATION_OPTIONS): -O now sets flag_caller_saves and
274: flag_schedule_insns_after_reload.
275: (CC1_SPEC): Fix typo preventing -mgpopt from being set if
276: optimization.
277: (PREDICATE_CODES): Define.
278: (USE_COLLECT, EXTENDED_COFF, NO_UNDERSCORES): Delete, not needed in
279: GCC 2.00.
280: (ASM_INT_OP, ASM_SHORT_OP, ASM_CHAR_OP): Likewise.
281: (CODE_MASK): Move from mips-tfile.
282: (MIPS_IS_STAB): Likewise.
283: (MIPS_MARK_STAB): Likewise.
284: (MIPS_UNMARK_STAB): Likewise.
285:
286: * mips.c (cmp2_op): Make this a real function, instead of a macro
287: pointing to cmp_op.
288: (volatile_buffer): New static variable to support .set volatile.
289: (mips_move_1word): Do .set volatile/.set novolatile around volatile
290: memory references.
291: (mips_move_2words): Likewise.
292:
293: * mips.md (sne define_split): Fix so that it generates a gtu 0.
294: (all set cc define_splits): Remove reload_completed tests.
295: (all set cc define_insns): Don't allow 0 as operand 1.
296:
297: Fri Jan 10 16:40:45 1992 Jeffrey A. Law (law at wombat.gnu.ai.mit.edu)
298:
299: * m68k.md (addsi3, addhi3, subsi3, stack adjustment peepholes):
300: Perform small (8 < N <= 16) constant additions and subractions to
301: address registers with two addqw (or subqw) instructions.
302:
303: Fri Jan 10 06:54:22 1992 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
304:
305: * calls.c (expand_call): Check for _longjmp as well as longjmp;
306: clean up code a bit and merge with check for setjmp-like names.
307: Emit a BARRIER if this is a call to longjmp in addition to
308: volatile calls.
309:
310: Fri Jan 10 02:25:54 1992 Richard Stallman (rms at mole.gnu.ai.mit.edu)
311:
312: * c-typeck.c (digest_init): Properly return error_mark_node
313: after invalid element in array initializer.
314:
315: * gcc.c (pexecute): Use `fork' in error message if don't have vfork.
316:
317: * Makefile.in: Add .NOEXPORT.
318:
319: Thu Jan 9 13:36:25 1992 Richard Stallman (rms at mole.gnu.ai.mit.edu)
320:
321: * expr.c (expand_expr): Handle OFFSET_REF.
322:
323: * cse.c (simplify_binary_operation): Never use associative law for
324: floating arithmetic.
325:
326: * fixinc.svr4: Renamed INCLUDES to INPUT.
327:
328: * i386.md (cmpstrsi recognizers): Output repe, not repz.
329:
330: Thu Jan 9 18:02:34 1992 Dennis P. Glatting (dennisg at tti)
331:
332: * tree.h (CONSTRUCTOR_NAME_FORMAT): Changed name format. Old format
333: was recognized as destructors not constructors.
334: * objc-actions.c (build_module_descriptor):
335: Null-terminate global_object_name.
336:
337: Thu Jan 9 10:35:58 1992 Tom Wood (wood at dg-rtp.dg.com)
338:
339: * sdbout.c (sdbout_syms): Don't attempt to output a LABEL_DECL.
340:
341: Thu Jan 9 08:17:44 1992 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
342:
343: * fold-const.c (merge_component_references): Treat constants as
344: unsigned, so we don't get extra sign bits where we don't want them.
345:
346: Wed Jan 8 19:12:59 1992 James Van Artsdalen (james at bigtex.cactus.org)
347:
348: * reload.c (combine_reloads): Don't use a fixed_reg as an reload
349: reg, even if it dies.
350:
351: * loop.c (record_giv): Fix typo extracting insn_uid.
352:
353: Wed Jan 8 15:41:10 1992 Richard Stallman (rms at mole.gnu.ai.mit.edu)
354:
355: * cpp.texi, gcc.texi: Files renamed.
356: * invoke.texi, extend.texi, md.texi, rtl.texi, tm.texi: New subfiles.
357: * Makefile.in: Corresponding changes.
358:
359: * fixincludes: Renamed INCLUDES to INPUT.
360:
361: * m68k.c (notice_update_cc, print_operand): Fix typos.
362:
363: * cp-decl.c (expand_static_init): Save and restore current obstacks.
364:
365: * c-decl.c (poplevel): Put labels in BLOCK_VARS of top-level block.
366:
367: Wed Jan 8 12:53:48 1992 Michael Tiemann (tiemann at cygnus.com)
368:
369: * cp-decl.c (expand_static_init): Switch to PERMANENT_OBSTACK during
370: expansion.
371:
372: Wed Jan 8 07:45:58 1992 Tom Wood (wood at dg-rtp.dg.com)
373:
374: * m88kv3.h (STARTFILE_SPEC): SVR3 has *crt0.o files.
375:
376: * configure (m88k-*sysv{3,4}): The files are named m88kv{3,4}.
377:
378: Wed Jan 8 06:01:44 1992 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
379:
380: * romp.md (mftbi): Allow memory in the contraints since there can't
381: be an input reload on an insn that uses cc0.
382:
383: * cse.c (FIXED_BASE_PLUS_P): Include virtual_incoming_args_rtx.
384: (NONZERO_BASE_PLUS_P): New macro.
385: (find_comparison, simplify_relational_operation_args): Use
386: NONZERO_BASE_PLUS_P instead of FIXED_BASE_PLUS_P when appropriate.
387:
388: * m68k.md (peepholes): Don't change around stack adjusts and pushes
389: when we are pushing something whose address involves sp.
390:
391: * cse.c (simplify_unary_operation): Check for operations on
392: integers by looking at mode of OP, not output mode, to avoid
393: confusion with FIX operations whose result is an integer.
394:
395: * rtl.h ([df]const[012]_rtx): Deleted.
396: (const_tiny_rtx): New declaration.
397: (CONST0_RTX): Use const_tiny_rtx instead of {d,f,}const0_rtx.
398: (CONST1_RTX, CONST2_RTX): New macros.
399: * emit-rtl.c ([df]const[012]_rtx): Deleted.
400: (const_tiny_rtx): New definition.
401: (init_emit_once): Initialize const_tiny_rtx instead of old vars.
402: * cse.c (simpify_binary_operation): Use CONST[01]_RTX.
403: * varasm.c (immed_real_const_1): Likewise.
404: * combine.c (subst): Likewise.
405: * reg-stack.c (record_reg_life, stack_reg_life_analysis): Likewise.
406: * convex.md, i860.md, m88k.c, spur.md, vax.h, ns32k.md: Likewise.
407:
408: Tue Jan 7 22:11:17 1992 Richard Stallman (rms at mole.gnu.ai.mit.edu)
409:
410: * x-i386isc (ENQUIRE_LDFLAGS): New defn: add -posix.
411:
412: * protoize.c (_POSIX_SOURCE): Define only if POSIX.
413:
414: * m68k.h (FPA_REG_P): Always define this somehow.
415:
416: * c-decl.c (c_decode_option): Handle -Wchar-subscripts.
417: * c-typeck.c (build_array_ref): Do the real work.
418:
419: Tue Jan 7 21:15:54 1992 Michael Meissner (meissner at osf.org)
420:
421: * mips.md (branch_zero_false): Use correct mode (CC_0) on
422: match_operator.
423:
424: Tue Jan 7 14:24:45 1992 James Van Artsdalen (james at bigtex.cactus.org)
425:
426: * reg-stack.c (replace_reg): get mode class from a mode, not a reg.
427:
428: Tue Jan 7 14:16:18 1992 Richard Stallman (rms at mole.gnu.ai.mit.edu)
429:
430: * reg-stack.c (emit_pop_insn): Fix typo FPmode_reg.
431:
432: * protoize.c (longjmp): Don't declare it.
433:
434: Tue Jan 7 09:47:47 1992 Michael Tiemann (tiemann at cygnus.com)
435:
436: * cp-lex.c (real_yylex): From John Hassey, allocate space for the
437: terminating null on wide character literals.
438:
439: Tue Jan 7 07:41:42 1992 Tom Wood (wood at dg-rtp.dg.com)
440:
441: * m88kv3.h (LIB_SPEC): Add -lg.
442:
443: Tue Jan 7 06:29:30 1992 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
444:
445: * stor-layout.c (layout_type): Don't over-align a structure
446: when strict alignment is not required.
447:
448: * rs6000.h (CALL_USED_REGISTERS): r31 should not be marked call-used.
449:
450: * rs6000.md (add-and-compare): Fix duplicate operand number.
451:
452: * a29k.md (inbyte, inhw): Correct duplicate operand number.
453:
454: * fold-const.c (fold, case MULT_EXPR): Simplify (a * (1 << b)).
455: * combine.c (subst, case MULT): Likewise.
456: (simplify_shift_const, shift cases): Similarly, associate A << B << C.
457:
458: * genoutput.c (seen): New array.
459: (scan_operands): Give error if an operand number was specified
460: twice. Include pattern number in error message.
461: (gen_insn, gen_expand, gen_split, gen_peephole): Initialize `seen'.
462: (gen_split, gen_peephole): Add initializations for arrays that
463: are copied.
464:
465: * optabs.c (expand_unop): Complete recent change; one TARGET was
466: not changed to TEMP.
467:
468: * expmed.c (expand_mult): Always try multiplication by value and
469: by negated value. Fix bug where we don't include the cost of the negate
470: when seeing which way is better. Write proper value in REG_EQUAL
471: note.
472:
473: * optabs.c (extendtab): Replacement for {zero,sign}_extend_codes.
474: (can_extend_p): Use new table and return type is not enum insn_code.
475: (gen_extend_insn): Deleted; not used.
476: (init_extends): Make like init_flottab: use new table and initialize
477: unused entries to CODE_FOR_nothing, not zero.
478: * expr.c (convert_move): can_extend_p fails if it returns
479: CODE_FOR_nothing, not zero.
480: * expr.h (can_extend_p): Add definition.
481:
482: * expr.h: Add "extern" to function definitions.
483:
484: Mon Jan 6 10:12:34 1992 Leonard Norrgard (vinsci at nic.funet.fi)
485:
486: * m68k.c (SUPPORT_SUN_FPA): Conditionalize references to the
487: optional Sun 3 Floating Point Accelerator with SUPPORT_SUN_FPA.
488: * m68k.h (SUPPORT_SUN_FPA): Likewise.
489:
490: * m68k.c (notice_update_cc): New function.
491: * m68k.h (NOTICE_UPDATE_CC): Just call notice_update_cc.
492:
493: * sun3.h (SUPPORT_SUN_FPA): New define.
494:
495: Mon Jan 6 16:42:43 1992 Richard Stallman (rms at mole.gnu.ai.mit.edu)
496:
497: * varasm.c (assemble_global, assemble_label): New functions.
498: * objc-actions.c (finish_objc): Call them to define and globalize.
499: Use output_constant to reference a class.
500:
501: * Makefile.in (install-limits-h): New target.
502: (install-headers): Depend on install-limits-h.
503: (USER_H): Deleted LIMITS_H.
504: (INSTALLED_H): Added limits.h.
505: (mostlyclean): Remove tmp-limits.h.
506: * limitx.h: New file.
507:
508: * x-isc: File deleted.
509:
510: * objc-actions.c (build_module_descriptor): Init global_object_name.
511:
512: * Makefile.in (collect2): Depend on version.o.
513:
514: * protoize.c (PATH_MAX): Definition deleted. Just test it
515: to see if param.h should be included.
516:
517: * cse.c (simplify_binary_operation, case MULT): Make a copy
518: of the operand when converting 2.0 * X to X+X.
519:
520: * reload.c (find_reloads): Refine when we set force_reload and
521: better document the cases.
522:
523: Mon Jan 6 08:22:19 1992 James Van Artsdalen (james at bigtex.cactus.org)
524:
525: * i386.c (output_float_compare): Output only single-pop compare
526: if both operands are the FP top of stack reg.
527: When comparing FP top of stack with itself, print `%st(0)' as the
528: reg name, not `%st'.
529:
530: Mon Jan 6 12:01:51 1992 Tiggr (rcpieter at mole.gnu.ai.mit.edu)
531:
532: * arm.md (mulsi3): Fixed contraints.
533:
534: Mon Jan 6 08:21:46 1992 Tom Wood (wood at dg-rtp.dg.com)
535:
536: * m88k-move.sh: Renamed from m88k-movstr.sh. Rename the generated
537: files move*.asm from movstr*.asm to be SVR3-legit.
538: * t-m88k, t-m88kluna, t-m88kv4: Use the new names.
539:
540: * c-aux-info.c, dbxout.c: Include errno.h as in protoize.c.
541:
542: * Makefile.in (BISONFLAGS): Don't use -v since *.output is big.
543: (cp-parse.c): Do use -d to create cp-parse.h.
544: (cp-parse.o): Don't define PARSE_OUTPUT.
545: * x-mips, x-m88kdgux (BISONFLAGS): No -v.
546:
547: Mon Jan 6 07:54:55 1992 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
548:
549: * genpeep.c (match_rtx): Loop over vectors (e.g., PARALLEL) in the
550: natural order so we see an operand before we see a MATCH_DUP referring
551: to it.
552:
553: * genrecog.c (write_tree_1): Simplify code that writes braces and
554: avoid writing them unnecessarily.
555: Don't write dead code when last test was unconditional.
556:
557: * optabs.c (expand_binop, expand_twoval_binop, expand_unop):
558: Standardize loop for wider mode.
559: (emit_cmp_insn, emit_float_lib_cmp): Likewise.
560: (expand_binop): Correct how extensions are done: use convert_to_mode,
561: don't use SUBREG for non-integer operations, and remove test
562: involving HOST_BITS_PER_INT.
563: (expand_unop): Similar changes; make code closer to expand_binop.
564: Handle failure of recursive call when expanding. Fix incorrect use
565: of TEMP when widening. Use SUBREG for NEG and NOT.
566:
567: * reload.c (find_reloads_address_part): New function.
568: (find_reloads_address): Call it instead of push_reload when we are
569: reloading a PLUS or a constant.
570:
571: Sun Jan 5 18:34:15 1992 (Eric Youngdale at [email protected])
572:
573: * make-cc1.com: Change file names from cp-tab.* to cp-parse.*.
574:
575: Sun Jan 5 18:06:11 1992 Michael Tiemann (tiemann at cygnus.com)
576:
577: * cp-decl.c (grokdeclarator): Correctly grok REFERENCE_TYPE
578: parameters when TYPE_REFERENCE_TO is automagically converted.
579:
580: Sun Jan 5 05:19:19 1992 Richard Stallman (rms at mole.gnu.ai.mit.edu)
581:
582: * tree.h (CONSTRUCTOR_NAME_FORMAT): New macro.
583: * objc-actions.c (build_module_descriptor): Make constructor name
584: from name of file or of a global that it defines.
585: Return constructor name.
586: (finish_objc): Use name returned as name to call.
587:
588: * protoize.c (GUESSPATHLEN): New macro.
589: (main): Use that for initial buffer size for getcwd.
590: * dbxout.c (getwd, getcwd, GUESSPATHLEN): Define as in protoize.c.
591: (dbxout_init): Call getcwd in loop, as in protoize.c.
592: * c-aux-info.c (getwd, getcwd, GUESSPATHLEN): Define as in protoize.c.
593: (gen_aux_info_record): Call getcwd in loop.
594: * i386v.h, i386vgas.h (MAXPATHLEN): Don't define.
595:
596: * svr3.h (LINK_SPEC): Don't pass -K.
597:
598: * reload.c (find_reloads): Do record in non_reloaded_operands if no -O.
599:
600: * m68k.c (output_function_prologue, output_function_epilogue):
601: Add braces and adjust conditionals to fix balance and indentation.
602:
603: * objc-actions.c (build_module_descriptor): Mark __objc_file_init used.
604:
605: Sat Jan 4 13:27:40 1992 James Van Artsdalen (james at bigtex.cactus.org)
606:
607: * protoize.c: unprotoize getcwd & fork declarations.
608: (edit_fn_declaration): use "VOLATILE", not "volatile".
609:
610: Sat Jan 4 20:19:41 1992 Michael Meissner (meissner at osf.org)
611:
612: * mips.h (set_volatile): Add new global variable reference.
613:
614: * mips.c (set_volatile): New global variable to keep track of the
615: number of .set volatile's done. At present, no code actually turns
616: this on.
617: (mips_move_1word): Use %. instead of putting const0_rtx into an
618: unused operator and using %z to get to $0, which is hardwired to 0.
619: (mips_move_2words): Likewise.
620: (override_options): Allow %., %{, and %} punctuation.
621: (print_operands): Add support for %. to get the current name of
622: register 0, %{ to turn on .set volatile, and %} to turn on .set
623: novolatile.
624: (function_epilogue): Give an error if .set volatile was left on in
625: the epilogue.
626: (mips_asm_file_start): Don't emit .set nobopt unless we are filling
627: branch delay slots.
628:
629: * mips.md (set reg on comparison define_splits): Don't allow the
630: scheduler to split any set of a comparision insns, to work around a
631: bug in sched.c.
632:
633: Sat Jan 4 23:01:41 1992 Jeffrey A Law (law at planet.super.org)
634:
635: * m68k.c (output_function_prolog): Decrement (instead of
636: increment) num_saved_regs when a frame pointer is needed.
637: (the link/unlk will restore the frame pointer register)
638:
639: Sat Jan 4 11:11:24 1992 Dennis P. Glatting (dennisg at tti)
640:
641: * next.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): #undef before defining.
642:
643: Sat Jan 4 07:40:25 1992 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
644:
645: * expr.c (convert_to_mode): Correctly zero-extend a constant into
646: a mode whose size is twice the host int size.
647:
648: * machmode.h (enum mode_class): Add MAX_MODE_CLASS.
649: (GET_CLASS_NARROWEST_MODE): New macro.
650: (byte_mode, word_mode): Add declarations.
651: * caller-save.c (choose_hard_reg_mode): Use GET_CLASS_NARROWEST_MODE.
652: * combine.c (make_extraction): Don't use explicit QImode and SImode.
653: * cse.c (simplify_unary_operation): Integer CONST_DOUBLEs have
654: VOIDmode, not DImode.
655: (simplify_binary_operation): Remove explicit DFmode reference.
656: * expmed.c (init_expmed): Don't make our own copy of word_mode.
657: (store_bit_field, extract_bit_field): Remove explicit
658: QImode reference; don't recompute word_mode.
659: (store_fixed_bit_field, {store,extract}_split_bit_field): Don't
660: recompute word_mode.
661: (emit_store_flag): Likewise.
662: (extract_fixed_bit_field): Replace explicit mode references with a
663: loop on modes; don't recompute word_mode.
664: * expr.c (convert_mode, move_block_{to,from}_reg, use_regs): Don't
665: recompute word_mode.
666: (emit_push_insn, do_jump_by_parts*): Likewise.
667: (push_block): Remove explicit QImode reference.
668: (get_inner_reference): Use mode_for_size.
669: * emit-rtl.c (restore_reg_data): Make unused regs word_mode.
670: (operand_subword): Don't recompute word_mode.
671: * fold-const.c (optimize_bit_field_compare): Likewise.
672: (merge_component_references): Likewise.
673: * flow.c (mark_set_1, mark_used_regs): Likewise.
674: * loop.c (combine_movables): Use GET_CLASS_NARROWEST_MODE.
675: * optabs.c (expand_binop): Replace SImode references in multi-word
676: multiply with the mode used for each subpart.
677: (expand_binop, expand_unop): Don't recompute word_mode.
678: * reg-stack.c (reg_to_stack): Use GET_CLASS_NARROWEST_MODE.
679: * reload.c (find_equiv_reg): Check for MODE_FLOAT, not SFmode/ DFmode.
680: * rtl.c (class_narrowest_mode, byte_mode, word_mode): Define.
681: (init_rtl): Initialize them.
682: * sched.c (attach_deaths): Don't recompute word_mode.
683: * stor-layout.c (mode_for_size): Use GET_CLASS_NARROWEST_MODE.
684: (get_best_mode): Likewise.
685: Don't recompute word_mode.
686: * unroll.c (unroll_loop): Replace default of SImode with word_mode.
687:
688: * calls.c (calls_alloca): Don't recurse on BLOCK_SUPERCONTEXT.
689:
690: Sat Jan 4 03:42:09 1992 Richard Stallman (rms at mole.gnu.ai.mit.edu)
691:
692: * protoize.c (pointer_type): Use char * if non-ANSI.
693: (const_pointer_type): Likewise.
694: (malloc, realloc): Declare to return pointer_type.
695: (setjmp): Don't declare, to avoid trouble with macro defns.
696: (const): If not ANSI, define as empty macro.
697:
698: Sat Jan 4 00:59:53 1992 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu)
699:
700: * sparc.c (legitimize_pic_address): When converting a symbol_ref,
701: use an extra temp reg when -fPIC, and add a REG_EQUAL note to the
702: insn referencing the global offset table. This allows loop to
703: optimize these PIC sequences.
704:
705: Fri Jan 3 20:29:57 1992 James Van Artsdalen (james at bigtex.cactus.org)
706:
707: * i386.md (return): Always output return insns.
708:
709: * i386.h (FUNCTION_PROLOGUE): If the last nonnote insn in a function
710: is a BARRIER, don't output a function epilogue.
711:
712: Fri Jan 3 12:43:09 1992 Richard Stallman (rms at mole.gnu.ai.mit.edu)
713:
714: * t-decrose, t-decstatn, t-encrose, t-i386rose, t-mips (ALL):
715: Use libgcc.a, not libgcc.
716:
717: * protoize.c (STRINGIFY): Provide non-ANSI alternative definition.
718:
719: * c-decl.c (get_parm_info): Keep non-parms in the parm list.
720:
721: * stmt.c (cost_table): Now short.
722: (estimate_case_costs): Handle that.
723:
724: * Makefile.in (float.h, *protoize.1, gcc.xtar.Z):
725: Make temp files, then rename.
726: (clean): Delete those temp files.
727:
728: * Makefile.in (c-parse.c): Don't use -d, since cp-parse.output is big.
729:
730: Fri Jan 3 10:32:31 1992 Michael Tiemann (tiemann at mole.gnu.ai.mit.edu)
731:
732: * Makefile.in (cp-parse.c): Add missing -o flag.
733:
734: Fri Jan 3 08:21:04 1992 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
735:
736: * reg-stack.c: Complete last change (renaming DFmode_reg).
737:
738: * expmed.c (init_expmed): Pass dummy pointer to number of clobbers to
739: recog so it can let us see patterns that need added clobbers.
740:
741: Fri Jan 3 07:54:32 1992 Tom Wood (wood at dg-rtp.dg.com)
742:
743: * c-decl.c (implicitly_declare): Record whether this is an implicit
744: declaration before setting IDENTIFIER_IMPLICIT_DECL.
745:
746: Thu Jan 2 21:17:12 1992 Michael Meissner (meissner at osf.org)
747:
748: * mips.c (compute_frame_size): Don't count FP registers twice.
749:
750: Thu Jan 2 14:59:55 1992 Michael Tiemann (tiemann at hal)
751:
752: * cp-lex.h: Renamed from cp-parse.h. Now cp-parse.h is the file
753: created by bison from cp-parse.y.
754: * Makefile.in: reflect this naming change.
755:
756: Thu Jan 2 12:37:32 1992 Richard Stallman (rms at mole.gnu.ai.mit.edu)
757:
758: * objc-actions.c (build_obj_method_call): Typo in NEXT case.
759:
760: * next.h (HAVE_ATEXIT): Defined.
761:
762: * c-decl.c (duplicate_decls):
763: No error if override decl that has DECL_BUILT_IN_NONANSI.
764:
765: * Makefile.in (c-parse.c): Don't use -o, since cp-parse.output is big.
766:
767: * Makefile.in (protoize, PROTOIZE): Delee these 2 new targets;
768: `protoize' was redundant.
769:
770: * c-typeck.c (build_function_call): If the fn is volatile,
771: make a pointer-to-volatile-function type pointer.
772: * calls.c (expand_call): Handle calls to such pointers as volatile.
773:
774: * expmed.c (init_expmed): Pass all 3 args to `recog'.
775:
776: * varasm.c (output_constant): For REAL_TYPE, mode_for_size arg is bits.
777:
778: * sparc.md (storing SF into mem at symb addr): Fix typos.
779:
780: * protoize.c (my_access, my_stat, my_execvp, my_link, my_unlink):
781: (my_open, my_chmod): Macros that run access, stat,... with casts.
782: Renamed from former POSIX-only macros and made unconditional.
783: All calls to these functions also renamed.
784:
785: * m68k.h (LEGITIMATE_PIC_OPERAND_P): Undo change below,
786: thus making the behavior really change to accept all CONST_DOUBLE.
787:
788: * libgcc1.c, libgcc2.c: Renamed from gnulib1.c, gnulib2.c.
789: * gcc.c (link_command_spec): Link with libgcc.a.
790: * Makefile.in (libgcc): Rename targets and variables from gnulib.
791: * *.h, t-*, x-*: Rename refs to those symbols and files.
792: * expr.c (LIBGCC_NEEDS_DOUBLE): Renamed from GNULIB_...
793:
794: * m68k.c (symbolic_operand): Reject all CONST_DOUBLE.
795: * m68k.h (SELECT_RTX_SECTION): Use LEGITIMATE_PIC_OPERAND_P.
796: (LEGITIMATE_PIC_OPERAND_P): Reject the CONST_DOUBLEs
797: that symbolic_operand used to accept.
798:
799: Thu Jan 2 21:06:13 1992 James Van Artsdalen (james at bigtex.cactus.org)
800:
801: * protoize.c (is_id_char,free_def_dec,check_aux_info):
802: Don't declare them `inline'.
803: (save_def_or_dec,munge_compile_params,find_extern_def,check_source,
804: scan_for_missed_items): Use alloca instead of variable length arrays.
805:
806: * Makefile.in (protoize,unprotoize): Get $(LIBS) for alloca.
807:
808: Thu Jan 2 21:40:52 1992 Jeffrey A Law (law at b115.super.org)
809:
810: * sparc.h (OPTIMIZATION_OPTIONS): Enable caller-saves for -O2
811: and higher optimization levels.
812:
813: Thu Jan 2 06:46:56 1992 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
814:
815: * final.c (final_scan_insn): Compare debug_info_level with entries in
816: its enum, not with integers.
817:
818: * reg-stack.c ({SF,DF}mode_reg): Deleted.
819: (FP_mode_reg): New array, indexed by register and by mode.
820: (reg_to_stack): Replace initialization of old vars with initialization
821: of FP_mode_reg.
822: (replace_reg): Use new array.
823:
824: * romp.c, romp.h, romp.md: Rename symbolic_operand to
825: romp_symbolic_operand.
826:
827: * emit-rtl.c (init_emit_once): Create virtual registers before the
828: structure value regsisters, since the latter might use the former.
829:
830: * varasm.c (output_constant): Fix typo: missing arg to expand_expr.
831:
832: * vax.md (call_pop, call_pop_value): Use correct register number for
833: stack pointer. Add new patterns for case of zero args.
834:
835: Thu Jan 2 08:12:59 1992 Fred Fish (fnf at sunfish)
836:
837: * x-amix: Minor changes to some comments.
838: * x-amix (CCLIBFLAGS, GNULIB2_CFLAGS, XCFLAGS): Remove definitions.
839: * x-amix (manext): Add definition.
840:
841: Thu Jan 2 11:14:28 1991 Ken Raeburn ([email protected])
842:
843: * fold-const.c (fold, case PLUS_EXPR): If association permits
844: reduction to var+0, convert var to the desired type before returning
845: it.
846:
847: Wed Jan 1 10:37:50 1992 Michael Tiemann (tiemann at cygnus.com)
848:
849: * expr.c (convert_move): When GET_MODE_BITSIZE (TO_MODE) >
850: BITS_PER_WORD, check that it's also > GET_MODE_BITSIZE (FROM_MODE).
851:
852: * expr.c (expand_expr): In CONSTRUCTOR case, preserve
853: MEM_IN_STRUCT_P when creating a new target when TARGET and EXP might
854: not be independent.
855:
856: Wed Jan 1 18:32:03 1992 Richard Stallman (rms at mole.gnu.ai.mit.edu)
857:
858: * c-parse.y (parmlist_1): Accept `PARMS; PARMS'.
859: (parmlist_or_identifiers_1): Likewise. Also use plain parmlist_2.
860: Delete the ([names] decls) syntax.
861: (defn_parms, defn_parmlist_2): Deleted.
862: * c-decl.c (get_parm_info): Put parm decls into original order.
863: Don't nreverse the original decls list.
864: (pushdecl, duplicate_decls): Avoid error for forward parm decl.
865: (clear_parm_order): New function.
866: (push_parm_decl): Record original order of parms.
867:
868: * c-decl.c (struct binding_level): New slot subblocks_tag_transparent.
869: (pushlevel): Use that, not ->parm_flag.
870: (start_function): Set that slot.
871:
872: * config.sub: Always distinguish between amix and sysv4.
873: Convert commodore to cbm and digital to dec.
874:
875: * m68k.md (stack adjust then push SI): New peephole.
876:
877: * m68k.h, fx80.h (WCHAR_TYPE): Use precisely "long int".
878: * sun3.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Undef before defining.
879:
880: * cexp.y (yylex): Use LONG_TYPE_SIZE, not INT_TYPE_SIZE.
881: (LONG_TYPE_SIZE): Add default definition.
882:
883: * objc-actions.c: Declare index and rindex.
884: (build_module_descriptor): Simplify last change.
885: Use a fixed name for the initialization function.
886: (init_objc): Don't do constructor here.
887: (finish_objc): Do it here, with proper name if not NEXT_OBJC_RUNTIME.
888:
889: * protoize.c: Unprotoized.
890: (edit_file): Improve message in -n case.
891:
892: * Makefile.in (LANGUAGES): Add proto.
893: (C, C++, OBJC, OBJECTIVE-C): Aliases for l.c. targets.
894: (PROTOIZE, protoize, PROTO): Aliases for proto.
895: (rest.encap): Delete dep `proto'.
896:
897: Wed Jan 1 15:07:41 1992 Michael Meissner (meissner at osf.org)
898:
899: * mips.md (extend*): Use gen_lowpart to make the SUBREG, rather than
900: doing it wrong by hand. If not optimizing, make sign extends from
901: memory not force the operand into a register first and do two
902: shifts -- combine already does this when optimizing.
903: (copyright): Add 1992 to list of years the file was modified.
904:
905: Wed Jan 1 06:10:01 1992 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
906:
907: * reload1.c (reload): When forcing an illegitimate constant into
908: memory, use mode of SET_DEST in case constant is VOIDmode.
909:
910: * stmt.c (expand_end_case): Pass index type to emit_case_nodes instead
911: of unsigned flag.
912: (node_has_{low,high}_bound): Accept INDEX_TYPE as an argument and see
913: if the a node value is at the limit of values of the type.
914: (node_is_bounded): Accept INDEX_TYPE and pass to above functions;
915: always call them.
916: (emit_case_nodes): Accept INDEX_TYPE instead of UNSIGNEDP as arg;
917: pass index type to recursive calls and to calls to bound checking
918: functions.
919:
920: * varasm.c (assemble_integer_zero): Deleted.
921: (assemble_integer, assemble_real): New functions.
922: (output_constant_pool, output_constant): Use new functions.
923: * final.c (end_final, profile_function): Likewise.
924:
925: * calls.c (calls_alloca): Don't interpret operands that are RTL as if
926: they were trees; check args of nested CALL_EXPR for alloca calls.
927:
928: Wed Jan 1 16:51:30 1992 Fred Fish (fnf at fishpond)
929:
930: * Makefile.in (manext): Include the '.' character.
931: (mandir): Don't use manext.
932: (install-man, uninstall): Change uses of manext.
933:
934: Wed Jan 1 21:31:01 1992 Ron Guilmette (rfg at ncd.com)
935:
936: * i860.md (cmpeqsi, cmpltsi, cmpgtsi): Made control flow more obvious.
937: (cmpnesi, cmplesi, cmpgesi): New patterns.
938: (cmpgeusi, cmpleusi): Fixed bug in compares against zero.
939:
940: Tue Dec 31 11:16:37 EST 1991 Dennis P. Glatting (...!uunet!tti!dennisg)
941:
942: * objc-actions.c (build_module_descriptor): Emit a constructor
943: function. Constructor function calls a ObjC run-time routine passing
944: a pointer to the module's module structure.
945: (init_objc): Call different constructor function if not Next.
946: (build_selector_translation_table): Don't give a selector global scope.
947: Changed in construction of decl_specs.
948:
949: Tue Dec 31 18:06:23 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
950:
951: * genrecog.c (add_to_sequence): Clear PREDS for "const_int_operand".
952: (same_modes): Properly check when we should ignore a mode test.
953:
954: * reload1.c (emit_reload_insns): Only change spill_reg_store for
955: output reloads.
956: Clear spill_reg_store when we did an input reload to a spill register.
957: (delete_output_reload): Use single_set.
958: (count_occurrences): Don't count use which is SET_DEST.
959:
960: Tue Dec 31 16:51:37 1991 Michael Meissner (meissner at osf.org)
961:
962: * mips.h (MIPS_VERSION): Change Meissner version # to 6.
963: (ASM_FINAL_SPEC): Don't pass -d and friends to mips-tfile.
964: (CONSTANT_ALIGNMENT): Align constructors on word boundaries.
965:
966: * mips.md (extend*): Replace sign extension insns with a
967: define_expand that converts the expansion into the appropriate
968: shifts. Add insns that do sign extension from memory, which the
969: optimizer will utilitize if the thing being sign extended really
970: comes from memory. This allows the shifts to compete for CSE, at a
971: potential cost of generating worse code if reload spills a HI or QI
972: register to the stack.
973: (sne define_split): Instead of using a constant 0 as the second
974: argument to the slti instruction, use a hard coded regisiter 0.
975:
976: * mips-sysv.h (MD_STARTFILE_PREFIX): Define to point into the
977: directory where the MIPS compilers live.
978: (LIB_SPEC): Add crtn.o after all libs.
979: (STARTFILE_SPEC): Use crt1.o, not crtn.o.
980: (MACHINE_TYPE): Correct typo, this is System V, not BSD.
981: Changes are from Ron Guilmette (rfg at ncd.com).
982:
983: * configure (mips-*-sysv): Correctly use mips-sysv.h instead of
984: mips.h. Change is from Ron Guilmette.
985:
986: Tue Dec 31 16:51:37 1991 Michael Stump (mrs at charlie.secs.csun.edu)
987:
988: * t-decrose, t-decstatn, t-encrose, t-i386rose, t-mips: Remove
989: collect2 from EXTRA_PASSES, as collect2 does not need installing as
990: collect2. Also, change the symlink back to a hard link.
991:
992: * Makefile.in: Add collect2 to STAGESTUFF as it is something that
993: needs removing or moving to stagen, but it should not be installed.
994:
995: Tue Dec 31 15:47:50 1991 Michael Tiemann (tiemann at hal)
996:
997: * combine.c (simplify_comparison): Swap evaluation of OP0 and OP1 so
998: the lattern can use the result of the former.
999:
1000: * conditions.h: In comments, refer to `tm.h', since `tm-' is no
1001: longer the form used for these files.
1002:
1003: Tue Dec 31 11:45:26 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
1004:
1005: * cp-lex.c (lineno, finput): Decls deleted.
1006:
1007: * global-alloc.c (find_reg): New arg RETRYING.
1008: (retry_global_alloc, global_alloc): Pass that arg.
1009:
1010: * Makefile.in (*protoize, *protoize.o): Compile with CC.
1011: * protoize.c: Include config.h, not tconfig.h.
1012: Always define _POSIX_SOURCE.
1013:
1014: * convex*.h (CPP_SPEC): !ansi controls _POSIX_SOURCE, _CONVEX_SOURCE.
1015: * conv1*.h, conv2*.h: Files deleted.
1016:
1017: * m68k.h, fx80.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Defined.
1018:
1019: Tue Dec 31 08:08:32 1991 Tom Wood (wood at dg-rtp.dg.com)
1020:
1021: * cexp.y (yylex): Record the parsed characters when dealing with
1022: multibyte characters.
1023:
1024: Mon Dec 30 17:13:30 1991 James Van Artsdalen (james at bigtex.cactus.org)
1025:
1026: * i386.md (mulhi3,mulsi3): If a multiply by constant 128, use the
1027: two operand multiply instead of three operand form: the AT&T
1028: assemblers generate incorrect object code for the latter.
1029:
1030: Mon Dec 30 17:39:36 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
1031:
1032: * jump.c (jump_optimize): Complete last change: use expand_and result.
1033:
1034: * reload1.c (emit_reload_insns): Check if reload_in needs a secondary
1035: reload if we have an in-out reload, since it might have been the
1036: output the needed the secondary reload.
1037:
1038: * cse.c (simplify_unary_operation): Mode of integer CONST_DOUBLE is
1039: VOIDmode, not DImode.
1040:
1041: * fold-const.c (fold, case COND_EXPR): Make an ABS_EXPR when the
1042: comparison is LE_EXPR or LT_EXPR.
1043:
1044: * calls.c (calls_alloca): New function.
1045: (expand_call): Preexpand any argument that contains a call to alloca
1046: if this call will use the stack.
1047:
1048: * rs6000.h (DATA_SECTION_OP): Make result a string to avoid compilation
1049: error.
1050:
1051: * rs6000.h, sparc.h, sun2o4.h, sun3.h (WCHAR_TYPE_SIZE): Fix
1052: incorrect definition.
1053:
1054: Mon Dec 30 16:10:46 1991 Michael Meissner (meissner at osf.org)
1055:
1056: * mips.h (CC1_SPEC): Complete change deleting -mnogpopt and -mngpopt
1057: in favor of -mno-gpopt.
1058:
1059: Mon Dec 30 11:32:05 1991 Michael Tiemann (tiemann at cygnus.com)
1060:
1061: * cp-class.c (build_vtable): If we're doing #pragma interface
1062: and the interface is known, set TREE_PUBLIC, regardless of
1063: TREE_EXTERNAL settings.
1064:
1065: * cp-decl.c (make_temporary_for_reference): Don't call
1066: `convert_pointer_to', since the type may not be an aggr type.
1067:
1068: * cp-decl.c (finish_decl): Now takes 4th arg NEED_POP.
1069: All callers changed.
1070:
1071: * cp-class.c (permanent_obstack): Declare it.
1072: (add_method): push and pop obstacks before changing out of/into
1073: temporary allocation.
1074: * cp-decl.c (implicitly_declare): Add
1075: push_obstacks_nochange/pop_obstacks around changes out of/into
1076: temporary allocation.
1077: (shadow_tag,xref_tag,start_decl,finish_decl): Ditto.
1078: * cp-decl2.c (grokfield,get_temp_name): Ditto.
1079: * cp-except.c ({ansi_}lookup_exception_object): Ditto.
1080: * cp-lex.c (get_time_identifier): Ditto.
1081: * cp-tree.c (build_exception_variant): Ditto.
1082: * cp-typeck.c (mark_addressable): Ditto.
1083:
1084: * cp-decl.c (grokdeclarator,maybe_build_cleanup): Delete calls to
1085: preserve allocation status. Now handled by callers.
1086:
1087: Mon Dec 30 01:44:21 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
1088:
1089: * c-lex.c (yyprint): Function moved here.
1090: * c-parse.y, objc-parse.y: Moved from here.
1091:
1092: * Makefile.in (c-parse.c, objc-parse.c, cp-tab.c, cexp.c):
1093: cd to srcdir to run Bison.
1094:
1095: * c-lex.c (check_newline): Get rid of #ident pedantic warning.
1096: * cccp.c (do_ident): Put it here.
1097: Don't warn if in system header file.
1098:
1099: * cccp.c (main, finclude): Warn if file ends in backslash-newline.
1100:
1101: * next.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): New definitions.
1102:
1103: * global-alloc.c (find_reg): Kick out local regs if that helps.
1104: (global_alloc): Set up vars local_regs_live_length, local_regs_n_refs.
1105:
1106: * protoize.c (do_processing): Fix setting syscalls_absolute_filename.
1107:
1108: * configure (m68k-*-sysv4*, m68k-*-amix*): New alternatives.
1109: * config.sub (*-commodore): Default OS to Amigados.
1110: (-amix*): Allow this as input.
1111: (amiga): New abbreviation.
1112:
1113: * sparc.c (output_function_epilogue): Skip unimp differently in leaf.
1114: Use jmp insn rather than separate add.
1115: (output_return): Skip unimp here too.
1116: * sparc.md (return "peepholes"). Handle skipping the unimp.
1117:
1118: * fold-const.c (fold, optimizing 2*EXPR): Use save_expr.
1119:
1120: * varasm.c (make_decl_rtl): Permit initializer for local explicit reg.
1121:
1122: * c-decl.c (kept_level_p): Changed to also return TRUE for binding
1123: levels which contain only tagged type declarations.
1124:
1125: * calls.c (expand_call): Cleaned up prev change.
1126:
1127: Mon Dec 30 11:29:47 1991 Michael Tiemann (tiemann at mole.gnu.ai.mit.edu)
1128:
1129: * cp-lex.c (real_yylex): Call REAL_VALUE_TRUNCATE with 2 args.
1130:
1131: * calls.c (expand_call): Handle allocating ARGBLOCK in the case
1132: that ACCUMULATE_OUTGOING_ARGS is not defined.
1133:
1134: Mon Dec 30 10:27:11 1991 James Van Artsdalen (james at bigtex.cactus.org)
1135:
1136: * protoize.c: fix typo in <sys/wait.h> inclusion.
1137:
1138: Mon Dec 30 06:16:16 1991 Leonard Norrgard (vinsci at nic.funet.fi)
1139:
1140: * c-decl.c (grokdeclarator): Changed erroneus error message.
1141:
1142: Sun Dec 29 16:16:55 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
1143:
1144: * toplev.c (main): Last -On option wins.
1145: * Makefile.in (ENQUIRE_CFLAGS): Add -O0.
1146:
1147: * Makefile.in (cp-tab.c): Change "expect" message.
1148:
1149: * final.c (leaf_renumber_regs): Renumber just the PATTERN.
1150:
1151: Sun Dec 29 14:20:15 1991 Per Bothner (bothner at cygnus.com)
1152:
1153: * dbxout.c (dbxout_type): Tiemann's DECL_IGNORED_P optimization (Nov
1154: 20) was a little too drastic: If it succeded, no type info was
1155: emitted at all, which made for syntactically invalid stabs.
1156: Instead, just set 'full=0',
1157: * dbxout.c (dbxout_symbol): Re-write code for TYPE_DECL to be a
1158: little cleaner. It *seems* to work ...
1159:
1160: Sun Dec 29 07:04:22 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
1161:
1162: * expr.c (convert_move): Add truncates from DImode to smaller modes.
1163: (move_by_pieces, move_by_pieces_ninsns): Rework to remove explicit
1164: references to integer modes.
1165: Never need to align greater than BIGGEST_ALIGNMENT.
1166:
1167: * optabs.c (init_extends, init_fixtab, init_floattab, init_optabs):
1168: Add TImode operations.
1169:
1170: * reload.c (find_reloads): Prefer alternatives that reload SCRATCH
1171: instead of something else.
1172:
1173: * rs6000.md (movti): Adjust constraints and alternative order so
1174: we actually get to use the stsi insn.
1175:
1176: * rs6000.h (REG_ALLOC_ORDER): Put r9 in front of r11 so we don't try to
1177: put a TImode value in r11 as often.
1178:
1179: * caller-save.c (setup_save_areas): New parameter pchanged; set when
1180: memory is allocated.
1181: * reload1.c (reload): Pass pointer to something_changed to
1182: setup_save_areas.
1183:
1184: * loop.c (scan_loop): Don't suppress moving insns that can trap just
1185: because we have passed a call inside a libcall/retval block.
1186:
1187: * jump.c (get_label_before): Don't separate a CALL_INSN from any USE
1188: insns immediately preceeding it.
1189: (get_label_after): Likewise, for following CLOBBERs.
1190:
1191: * cse.c (fold_rtx, case '<'): When seeing if we have seen this
1192: comparison before, use a constant equivalence.
1193: Add test for things like "(a | 1) != 0".
1194: (fold_rtx, case '2'): Move code to handle associative operations to
1195: here; add support for MINUS, SMAX, SMIN, UMAX, and UMIN.
1196: (record_jump_equiv): See if OP1 is equivalent to a constant.
1197:
1198: * jump.c (jump_optimize): Don't pass a SUBREG as a target to
1199: expand_and.
1200:
1201: * combine.c (subst): Never associate floating-point, even if not IEEE.
1202: Associate MAX and MIN operations.
1203:
1204: * output.h (output_asm_insn, asm_fprintf): Add "extern" to decls.
1205: (alter_subreg): Add declaration.
1206: * rs6000.md (movsf, movdf): Don't declare alter_subreg here.
1207: (trunc_call_rtl): Don't declare trunc_used; use rs6000_trunc_used.
1208: * rs6000.c (rs6000_trunc_used): New name of trunc_used.
1209: * rs6000.h (rs6000_trunc_used): Add declaration.
1210:
1211: Sat Dec 28 18:14:21 1991 Michael Tiemann (tiemann at cygnus.com)
1212:
1213: * cp-method.c (build_overload_name): Don't call OB_FINISH unless END
1214: is nonzero.
1215:
1216: Sat Dec 28 17:46:05 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu)
1217:
1218: * gcc.c (default_compilers): Handle -ansi in the C++ entries
1219: exactly the same way as the C entries do.
1220:
1221: * rtl.c (add_dependence): Cast enums to int before doing an
1222: ordered comparison, since some compilers can't do this.
1223:
1224: * sparc.c (pic_address_needs_scratch): New function. Returns
1225: true if the pic address X needs a scratch register when loaded.
1226: (legitimize_pic_address): Clean up. New argument SCRATCH, which
1227: is a scratch register for those loads that need it.
1228: (emit_move_sequence): New argument SCRATCH_REG, which is a scratch
1229: register for those loads that need it. When loading a pic label,
1230: set %o7 instead of clobbering it so its value can be used later.
1231: (compute_frame_size): Leaf functions need to allocate space for
1232: register window in frame if size greater than 0.
1233: (print_operand): Delete obsolete %^ which added %o7 to addresses.
1234: All uses of %o7 are now explicit.
1235: * sparc.h: Fix callers of legitimize_pic_address.
1236: (REG_CLASS_FROM_LETTER): Add 'r' case.
1237: (SECONDARY_INPUT_RELOAD_CLASS): New macro, to force reload to
1238: allocate a scratch register for certain pic address reloads.
1239: (flag_pic): Define as extern so that it will be defined for
1240: insn-emit.c.
1241: * sparc.md: Fix all callers of legitimize_pic_address and
1242: emit_move_sequence.
1243: (reload_insi): New pattern. Used to force reload to allocate a
1244: scratch register for those pic address loads that need one.
1245: (reload_insi+2): When loading pic label, set %o7 instead of
1246: clobbering it.
1247: (movdf, movsf): Reject matches that would require reloading via
1248: use of a condition.
1249: (tablejump): Now a define_expand, so can generate different
1250: pattern when pic.
1251: (pic_tablejump): Explicitly mention in rtl that %o7 is used,
1252: instead of using %^.
1253:
1254: * m88k.h, sparc.h: Delete references to non-existent
1255: BLOCK_PROFILER_USED_REG_P macro.
1256:
1257: Sat Dec 28 14:31:36 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
1258:
1259: * c-lex.c (check_newline): Set ignore_escape_flag for reading filename.
1260: (yylex): Handle ignore_escape_flag in string constant.
1261:
1262: * gnulib2.c (__do_global_dtors): Count elements properly.
1263:
1264: * m68k.md (tsthi): Don't allow address register.
1265:
1266: Sat Dec 28 11:49:06 1991 James Van Artsdalen (james at bigtex.cactus.org)
1267:
1268: * final.c (final): Initialize elements of line_note_exists.
1269:
1270: * protoize.c: Don't include <sys/wait.h> on USG unless SVR4.
1271:
1272: Sat Dec 28 11:09:36 1991 Fred Fish (fnf at fishpond)
1273:
1274: * Makefile.in (includes): Pre-remove the tmp dir; fix INSTALLED_H ref.
1275:
1276: Sat Dec 28 06:31:16 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
1277:
1278: * sparc.md (movstrsi): Fix typo testing for more than 32 subunits.
1279:
1280: * genrecog.c: Major rework.
1281: We now check to see if pairs of comparison nodes can have anything
1282: that they both match. If not, they can be reordered. An efficient
1283: ordering is established that groups all nodes with identical rtl
1284: codes inside groups with identical modes. This allows us to generate
1285: a comparison tree that is a list of nested switch statements.
1286: Also, genrecog.c is now indented properly so that debugging is eased.
1287: (add_to_sequence): Enforce mode on the first arg of COMPARE, comparison
1288: operation, SIGN_EXTEND, and ZERO_EXTEND.
1289:
1290: * a29k.h, romp.h, rs6000.h (PREDICATE_CODES): Add definition.
1291:
1292: Fri Dec 27 17:31:48 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
1293:
1294: * a29k.h, decrose.h, encrose.h, m88kdgux.h (WCHAR_TYPE_SIZE):
1295: Add definition.
1296: * rs6000.h, sparc.h, sun2o4.h, sun3.h, svr3.h, svr4.h: Likewise.
1297:
1298: * expmed.c (expand_mult): For negative values, try multiplication by
1299: the original value as well as by negated value.
1300:
1301: Fri Dec 27 20:54:59 1991 Fred Fish (fnf at fishpond)
1302:
1303: * m68kv4.h: Include m68ksgs.h rather than m68k.h.
1304:
1305: * m68kv4.h: Define TARGET_DEFAULT to be 68020 + 68881.
1306: (CPP_SPEC): Define based on TARGET_DEFAULT
1307:
1308: * m68kv4.h (PCC_STATIC_STRUCT_RETURN): Undef this.
1309: (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Defs deleted.
1310: (ASCII_DATA_ASM_OP, ASM_OUTPUT_ASCII): Defs deleted.
1311:
1312: * m68kv4.h (ASM_OUTPUT_SKIP, FUNCTION_VALUE_REGNO_P):
1313: (FUNCTION_PROFILER, STRUCT_VALUE_REGNUM, BSS_ASM_OP):
1314: (FUNCTION_VALUE, FUNCTION_EXTRA_EPILOGUE, LIBCALL_VALUE):
1315: (STACK_BOUNDARY, EMPTY_FIELD_BOUNDARY, BIGGEST_ALIGNMENT):
1316: Redefined to match m68k/SVR4 conventions.
1317:
1318: * m68ksgs.h (ASM_OUTPUT_SKIP): Redefined to use `.space'.
1319: (ASM_NO_SKIP_IN_TEXT): Defined.
1320:
1321: * amix.h, xm-amix.h, x-amix: New files.
1322:
1323: Fri Dec 27 20:43:11 1991 Michael Tiemann (tiemann at cygnus.com)
1324:
1325: * cp-tree.h (build_overload_name): Declare this function.
1326: * cp-decl2.c, cp-method.c: Delete random `extern' declarations.
1327:
1328: * cp-lex.c (get_directive_line): Declare it extern.
1329: (lineno,yychar,yylval,lastiddecl,finput): Ditto.
1330: (ridpointers): Don't need to declare it here.
1331: (check_newline): Handle new #pragmas.
1332:
1333: * cp-class.c (add_method): Add a cast in call to `obstack_base'.
1334:
1335: Fri Dec 27 20:22:05 1991 Michael Tiemann (tiemann at cygnus.com)
1336:
1337: * cp-decl.c (push_overloaded_decl): Now returns a value.
1338: All callers changed.
1339:
1340: * cp-decl.c (duplicate_decls): Give better error message when user
1341: declaration conflicts with built-in one. Also, when we decide to
1342: keep a builtin function builtin, copy the DECL_RTL from OLDDECL to
1343: NEWDECL.
1344:
1345: Fri Dec 27 17:18:15 1991 Michael Meissner (meissner at osf.org)
1346:
1347: * mips.h (TRAMPOLINE_TEMPLATE): Define correctly for MIPS.
1348: (TRAMPOLINE_SIZE): Define to be 9 words.
1349: (INITIALIZE_TRAMPOLINE): Define correctly for MIPS.
1350: (TRANSFER_FROM_TRAMPOLINE): Define to do a mprotect of the
1351: trampoline, so that we can jump to it. I suspect the mprotect may
1352: fail on some MIPS based systems, because the trampoline is on the
1353: stack, and not in the data section.
1354:
1355: * mips.c (mips_output_filename): Don't warn about ECOFF not
1356: handling #line's within functions if we are using the OSF/rose
1357: object format.
1358:
1359: Fri Dec 27 15:35:38 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
1360:
1361: * c-typeck.c (build_array_ref): Special warning about `register' array.
1362:
1363: * gnulib2.c (L_trampoline): Don't create a function here.
1364: The definition of TRANSFER_FROM_TRAMPOLINE can do that if nec.
1365: * m68k.h (TRANSFER_FROM_TRAMPOLINE): Make the function here.
1366:
1367: * fx80.*: Renamed from alliant.*.
1368: * configure: Alternative renamed to fx80-alliant-*.
1369: * config.sub: Corresponding changes.
1370:
1371: * cccp.c (traditional): No longer static.
1372: * cexp.y (yylex): Handle full variety of character constants.
1373: Include stdlib.h and locale.h if needed.
1374:
1375: * c-decl.c (shadow_tag): Change warnings to error or pedwarn.
1376:
1377: * gnulib2.c (__do_global_dtors): If length not given, count it.
1378: * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Ignore length; scan till null.
1379: (__CTOR_END__, __DTOR_END__): Declarations deleted.
1380:
1381: * cp-decl2.c (finish_file): Always change $ to _
1382: regardless of NO_DOLLAR_IN_LABEL.
1383:
1384: Fri Dec 27 15:04:40 1991 Tom Wood (wood at dg-rtp.dg.com)
1385:
1386: * svr4.h (ASM_OUTPUT_ALIGNED_COMMON): Fix typo.
1387:
1388: * m88k.c: Move extern decls.
1389: (output_ascii): Use ASCII_DATA_ASM_OP.
1390: * m88k.h (HAVE_ATEXIT): Delete.
1391: (ASM_OUTPUT_ALIGNED_COMMON, ASM_OUTPUT_ALIGNED_LOCAL,
1392: ASCII_DATA_ASM_OP): Override svr4.h.
1393: (EXTRA_SECTIONS): No ctors/dtors for m88k-luna.
1394: * m88kdgux.h (STANDARD_STARTFILE_PREFIX): No need to override svr4.h.
1395:
1396: Fri Dec 27 11:34:59 1991 Ken Raeburn ([email protected])
1397:
1398: * cp-pt.c (mangle_class_name_for_template): Use a local obstack
1399: rather than fixed-size buffers.
1400:
1401: * cp-class.c (add_method): Case obstack_base value to desired type
1402: when reallocating vector node.
1403:
1404: Fri Dec 27 09:16:50 1991 Ron Guilmette (rfg at ncd.com)
1405:
1406: * sort-protos: New file.
1407:
1408: * i386.c: Remove decls of frame_pointer_needed; include flags.h.
1409: * i386.c (output_387_binary_op, output_float_compare):
1410: Moved declarations of strcat to top level.
1411:
1412: * i860.md (cmpnesf, cmpnedf): New patterns.
1413: * i860.md (cmplesf, cmpgesf): Corrected to allow for IEEE conformance.
1414:
1415: Thu Dec 26 11:20:07 1991 Michael Tiemann (tiemann at cygnus.com)
1416:
1417: * cp-class.c: Declare N_* variables here.
1418: * cp-class.h: Declare N_* variables extern here.
1419:
1420: * cp-gc.c (build_static_gc_entry): Call `assemble_gc_entry' instead
1421: of implementing it directly.
1422: * varasm.c (assemble_gc_entry): New function.
1423:
1424: * calls.c (expand_call): Don't crash if somebody declared a void
1425: function `const'.
1426:
1427: * cp-cvt.c (convert): Handle case when two equal array types are
1428: distinct (in memory).
1429: * tree.c (build_index_2_type): Don't set TREE_TYPE of lower bound.
1430: (index_type_equal): New function.
1431:
1432: * cp-spew.c (yylex): Extend special-case ptr-to-func ((*)()) parsing
1433: to handle (*)[] and (&)[] declarations as well.
1434:
1435: * cp-decl2.c (finish_file): Unconditionally call
1436: assemble_{constructor,destructor}. Also, delete code for writing
1437: _init and _fini sections that was #if 0'd. These actions belong in
1438: varasm if anywhere.
1439:
1440: * cp-class.c (add_method): Fix handling of obstacks to correctly
1441: extend TREE_VECs.
1442:
1443: Thu Dec 26 15:24:45 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
1444:
1445: * cccp.c (main): Add new option -include. Rename -i to -imacros.
1446: * gcc.c (SWITCH_TAKES_ARG): Remove -i.
1447: (WORD_SWITCH_TAKES_ARG): Add -include, -imacros.
1448: * hp800.h (WORD_SWITCH_TAKES_ARG): Add all the standard alternatives.
1449: * mips.h (SWITCH_TAKES_ARG): Remove -Y and -i.
1450: * next.h, sparc.h (WORD_SWITCH_TAKES_ARG): Add -include, -imacros.
1451: * sun2.h, sun3.h (WORD_SWITCH_TAKES_ARG): Copy from sparc.h.
1452: * svr4.h (SWITCH_TAKES_ARG): Remove -i, -f.
1453: (WORD_SWITCH_TAKES_ARG): Add -include, -imacros.
1454:
1455: * toplev.c (flag_gnu_linker): New variable. -fgnu-linker.
1456: * flags.h (flag_gnu_linker): Declare it.
1457: * varasm.c (assemble_constructor, assemble_destructor):
1458: Handle flag_gnu_linker.
1459:
1460: * sparc.md (structure values): Separate unimp pattern deleted.
1461: New pattern for combined call and unimp. `call' pattern changed.
1462: (type): Deleted type marker, added call_no_delay_slot.
1463:
1464: Thu Dec 26 05:04:28 1991 James Van Artsdalen (james at bigtex.cactus.org)
1465:
1466: * reg-stack.c (move_for_stack_reg): If a SET_DEST is REG_UNUSED,
1467: just pop the SET_SRC.
1468:
1469: Wed Dec 25 17:23:25 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
1470:
1471: * c-decl.c (init_decl_processing): Fix type of exit, _exit.
1472:
1473: * jump.c (cross_jump_death_matters): Move def to front, make static.
1474:
1475: Tue Dec 24 20:41:32 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
1476:
1477: * hard-reg-set.h (reg_names): Declare here.
1478: * stmt.c (expand_asm_operands): Not here.
1479:
1480: * gcc.c (handle_braces, do_spec_1, give_switch): Clear up %*.
1481:
1482: * expr.c (expand_expr): Delete decl of lang_expand_expr.
1483:
1484: * final.c (final_scan_insn): Delete line number followed by another
1485: line number, if numbers are effectively consecutive.
1486:
1487: * jump.c (jump_optimize): Set cross_jump_death_matters from cross_jump.
1488: * reg-stack.c (reg_to_stack): Pass 2 for cross_jump to jump_optimize.
1489: Don't set cross_jump_death_matters here.
1490: (record_reg_life): Delete decl of call_used_reg_set.
1491:
1492: * c-decl.c (init_decl_processing):
1493: Declare abort, exit, and _exit as volatile.
1494:
1495: * c-decl.c (implicitly_declare): Set IDENTIFIER_IMPLICIT_DECL earlier.
1496: (pushdecl): Test that and avoid nested extern warning.
1497:
1498: * c-decl.c (init_decl_processing): Don't handle EXPAND_BUILTIN_VARARGS.
1499:
1500: Tue Dec 24 15:42:34 1991 Michael Tiemann (tiemann at cygnus.com)
1501:
1502: * cp-init.c (add_friends): Add missing IDENTIFIER_POINTER macro
1503: application to strncmp argument.
1504:
1505: * cp-method.c (build_overload_*): Now uses SCRATCH_OBSTACK instead
1506: of relying on fixed buffers of finite length.
1507: (fndecl_as_string): Ditto.
1508: All callers changed.
1509: * cp-except.c (cplus_exception_name): Definition moved to
1510: cp-method.c.
1511:
1512: Tue Dec 24 10:38:49 1991 Michael Collison (collison at osf.org)
1513:
1514: * ns32k.c (hard_regno_mode_ok): Define this as a function now.
1515: Also change the way it work so that we don't allow moves between
1516: the general registers and the floating point registers.
1517:
1518: * ns32k.h (HARD_REGNO_MODE_OK): Turn it into a function call.
1519:
1520: * ns32k.md (call_value): fix to correct a bug where the compiler thinks
1521: the return value of a function call is in f0 instead of r0. Fix
1522: courtesy of vince russo.
1523: (movqi, movhi): Fix up these patterns because they could return
1524: undefined instruction templates. Fix courtesy of vince russo.
1525:
1526: Tue Dec 24 10:14:20 1991 Ron Guilmette (rfg at ncd.com)
1527:
1528: * mips-tfile.c (main): Move nested extern decl of version_string to
1529: file-scope.
1530: (catch_signal): Move nested extern decl of sys_siglist to
1531: file-scope.
1532:
1533: * varasm.c (assemble_variable): Handle ASM_OUTPUT_ALIGNED_COMMON.
1534: * svr4.h (ASM_OUTPUT_ALIGNED_COMMON, ASM_OUTPUT_ALIGNED_LOCAL): New.
1535: (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Deleted.
1536:
1537: * gcc.c (SWITCH_TAKES_ARG, default_compilers): Eliminated -Y* option.
1538: (execute): Moved decls of execv and execvp to top level.
1539: (do_spec, do_spec1, handle_braces, give_switch): Support new %* spec.
1540:
1541: * c-lang.c (recognize_objc_keyword): Added explicit return.
1542:
1543: * svr4.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): New definitions.
1544: (ASM_SPEC, LINK_SPEC): Support more standard svr4 options.
1545: (LIB_SPEC): Fixed to link crtend.o *after* libc.a.
1546:
1547: * svr4.h (CONST_SECTION_FUNCTION): Moved decl of `text_section' to
1548: top level.
1549:
1550: * cexp.y (main): Add explicit return type and explicit value.
1551: Move decl of yydebug to top level.
1552:
1553: * gnulib2.c (__bb_init_func): Moved decl of ___tcov_init to top level.
1554:
1555: * toplev.c (main): Deleted obsolete checks for -opt and -noreg.
1556: Moved decls of environ, version_string, language string to file-scope.
1557: Compile-time error if PREFERRED_DEBUGGING_TYPE is missing.
1558:
1559: * tree.c (dump_tree_statistics): Deleted decl of class_obstack.
1560: (object_permanent_p): Added explicit return type.
1561:
1562: Tue Dec 24 09:29:24 1991 Charles Hannum (mycroft at hal.gnu.ai.mit.edu)
1563:
1564: * expr.h (lang_expand_expr): Fix typo.
1565:
1566: Tue Dec 24 06:52:45 1991 Michael Meissner (meissner at osf.org)
1567:
1568: * gnulib2.c (__main): Make sure the exit module is pulled in if we
1569: have atexit, since that module defines constructor/destructor
1570: variables as bss symbols rather than as references.
1571:
1572: * decrose.h (HAVE_ATEXIT): Define.
1573: * encrose.h (HAVE_ATEXIT): Define.
1574: * i386rose.h (HAVE_ATEXIT): Define.
1575: * decstatn.h (HAVE_ATEXIT): Define.
1576:
1577: * gcc.texinfo (HAVE_ATEXIT): Expand documentation.
1578: (EXIT_BODY): Document.
1579:
1580: * protoize.c (POSIX): Make protoize accept TARGET_POSIX as a synonym
1581: for POSIX to make the code and documentation agree. Also, if the
1582: user defined _POSIX_SOURCE explicitly, turn on POSIX support in
1583: protoize.
1584:
1585: Tue Dec 24 00:14:38 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
1586:
1587: * calls.c (emit_call_1): Additional arg STRUCT_VALUE_SIZE.
1588: Use as arg in call and call_value insns.
1589: (expand_call): Record the size, to pass it.
1590: * expr.c (emit_library_call): Pass 0 for STRUCT_VALUE_SIZE.
1591: * sparc.md (call, call_value): Make use of new arg.
1592: Generate an unimp instruction to use sparc calling convention.
1593: Add nameless pattern to recognize it.
1594: * sparc.c (output_function_epilogue): Skip the caller's unimp insn.
1595:
1596: * Makefile.in (INSTALLED_H): New variable.
1597: (includes): Preserve just those specific files.
1598:
1599: * expr.h (lang_expand_expr): Declare it.
1600: * expr.c: Don't declare it.
1601: * cp-expr.c (init_cplus_expand): Set up lang_expand_expr here.
1602: * cp-lex.c (init_lex): Call init_cplus_expand.
1603:
1604: Mon Dec 23 15:17:59 1991 Tom Wood (wood at dg-rtp.dg.com)
1605:
1606: * configure: Delete m88k-v88r32 (this is supported by m88k-svr3)
1607: and add m88k.
1608: * config.sub: Delete v88r as a system type.
1609:
1610: Mon Dec 23 19:50:48 1991 Fred Fish (fnf at fishpond)
1611:
1612: * 3b1.h, crds.h, hp320.h, m68k.md, m68ksgs.h, mot3300.h, news.h,
1613: tower-as.h: Replace port oriented macros SGS_3B1, HPUX_ASM, and
1614: SONY_ASM, with configuration oriented macros SGS_SWITCH_TABLES,
1615: SGS_SWAP_W, SGS_CMP_ORDER, and SGS_NO_LI.
1616:
1617: * m68ksgs.h: New file.
1618:
1619: * m68k.c (print_operand_address): Change switch labels for MOTOROLA.
1620: Don't use a `%'. Add missing `L' to some labels.
1621: For SGS assembler, use one symbol for the offset.
1622:
1623: Mon Dec 23 17:03:13 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
1624:
1625: * recog.h (insn_name): New declaration.
1626: * final.c (output_asm_insn): Don't declare insn_name here.
1627:
1628: * dbxout.c (dbxout_function, dbxout_begin_function):
1629: Pass missing arg to dbxout_really_begin_function.
1630:
1631: * jump.c (jump_optimize): Set new var can_reach_end.
1632: * c-decl.c, cp-decl.c (finish_function):
1633: Merge that into current_function_returns_null.
1634:
1635: * config.sub (fx2800): New machine alias.
1636:
1637: * va-m88k.h (va_start): Test __GNUC__, not __CLASSIFY_TYPE__.
1638:
1639: * m88kv4.h: New version from Wood.
1640: (CPP_PREDEFINES): Put -A options here. Remove __CLASSIFY_TYPE__.
1641:
1642: * cccp.c (initialize_builtins): Define __GNUC__ as 2.
1643:
1644: * rtl.h (read_rtx): New declaration.
1645:
1646: * c-lex.c: Don't include output.h.
1647: (asm_out_file): Declare it.
1648: (ridpointers): Allocate storage here.
1649:
1650: * c-lex.h (lastiddecl, token_buffer): Declare here.
1651: (yylex, make_pointer_declarator, reinit_parse_for_function): Likewise.
1652: * c-parse.y, objc-parse.y: Not here.
1653:
1654: * objc-actions.c (error_with_ivar, error_with_method):
1655: (warn_with_method): Use count_error, not errorcount.
1656:
1657: Mon Dec 23 11:50:37 1991 Ron Guilmette (rfg at ncd.com)
1658:
1659: * sdbout.c: Fixed typo.
1660: * stmt.c (init_stmt, init_stmt_for_function): Explict return type.
1661: * gnulib2.c (__fixunsdfdi, __fixunssfdi): Move extern decls.
1662: * recog.c (init_recog): Added explicit return type.
1663: * longlong.h (count_leading_zeros): Moved decl of `__clz_tab'.
1664: * print-rtl.c (insn_name_ptr): Make decl `extern'.
1665:
1666: * objc-actions.h, objc-actions.c (doing_objc_thang): Make extern.
1667: * objc-actions.h, objc-actions.c (finish_class): Return void.
1668: * objc-actions.c (continue_class): Added default error return value.
1669:
1670: * fixinc.svr4: Map assertion tests to equivalent ANSI macro tests.
1671:
1672: * i860.c (output_block_move): Disabled code to move by words or
1673: halfwords until it can be made to work right.
1674:
1675: * i860.c (output_block_move): Moved a sequence of common
1676: `output_asm_insn' calls out of (and before) conditionals.
1677:
1678: * i860.c (output_block_move): Corrected bugs in move loop.
1679:
1680: Mon Dec 23 15:25:01 1991 Tom Wood (wood at dg-rtp.dg.com)
1681:
1682: * m88kv4.h (CPP_PREDEFINES): Fix for varargs/stdarg.
1683: (includes): Include svr4.h before m88k.h so the overrides in m88k.h
1684: will take effect.
1685:
1686: Mon Dec 23 07:06:27 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
1687:
1688: * i860.c (output_delayed_branch): Call insn_extract and
1689: constrain_operands so that `which_alternative' is set properly.
1690:
1691: * stor-layout.c (layout_type, case ARRAY_TYPE): Handle
1692: TYPE_NO_FORCE_BLK similar to RECORD_TYPE.
1693:
1694: * encrose.h, i386rose.h, mips.h (LIBG_SPEC): Deleted; unused.
1695:
1696: Sun Dec 22 12:02:03 1991 James Van Artsdalen (james at bigtex.cactus.org)
1697:
1698: * i386.c (function_epilogue): Use correct operand for insn mode.
1699:
1700: Sun Dec 22 12:20:16 1991 Michael Tiemann (tiemann at cygnus.com)
1701:
1702: * cp-decl.c (grokdeclarator): Don't set TREE_PUBLIC for member
1703: functions that are really declared as inline methods.
1704:
1705: * cp-init.c (build_virtual_init): Add missing call to
1706: `assemble_external' when we use a virtual function table.
1707:
1708: * cp-decl.c (implicitly_declare): Don't allocate a decl if at the
1709: global binding level.
1710:
1711: * vax.h (PRINT_OPERAND): Handle new 'R' case.
1712: * vax.md: Change all patterns which passed a negated operand for
1713: `rotl' to use 'R' as the negator, since rotl cannot acctually handle
1714: negative arguments.
1715:
1716: Sun Dec 22 12:31:46 1991 Ron Guilmette (rfg at ncd.com)
1717:
1718: * i386v4.h (TARGET_VERSION): Added definition.
1719: * i860v4.h (TARGET_VERSION): Added definition.
1720:
1721: * m68kv4.h: New file.
1722: * fx2800.h: New file.
1723:
1724: * m88kv4.h (DWARF_DEBUGGING_INFO): Deleted redundant definition.
1725: (It's defined already in svr4.h.)
1726:
1727: * m88kv4.h (CPP_PREDEFINES): Added definition.
1728:
1729: * m88kv4.h (CPP_SPEC, LIB_SPEC, LINK_SPEC, STARTFILE_SPEC):
1730: Deleted redundant definitions. (These are defined in svr4.h.)
1731:
1732: * cccp.c (errno, sys_nerr, sys_errlist): Moved extern decls to top lev.
1733: * function.c (round_down): Likewise.
1734: * calls.c, c-convert.c: Delete block-level extern decls.
1735: * c-convert.c: Include flags.h.
1736:
1737: * configure (i386-*-sysv*): Fixed tmake_file value.
1738: (i860-*-sysv3*): Fixed xmake_file and tmake_file value.
1739: (i860-alliant-*): New configuration.
1740:
1741: * i860.c (recog_operand, call_used_regs, insn_template,
1742: insn_n_operands, insn_outfun, alter_subreg): Moved extern
1743: declarations out of local contexts and put them at file-scope.
1744:
1745: * i860.c (zero_operand): Deleted useless function.
1746:
1747: * i860.c (singlemove_string): Added code to optimize moving halfword
1748: constants.
1749:
1750: * i860.c (output_block_move): Don't do CC_STATUS_INIT until it is
1751: definitely necessary & appropriate.
1752:
1753: * i860.c (output_block_move): Create up to 16 sequential load/store
1754: pairs for constant length moves regardless of operand sizes (e.g.
1755: byte, halfword, word).
1756:
1757: * i860.c (output_block_move): Try to generate widest kind of
1758: sequential load/store pairs for constant length moves before trying
1759: the less efficient (narrower) ones.
1760:
1761: * i860.c (output_block_move): Don't do sequential load/store pairs
1762: for constant length moves unless the size is a multiple of the
1763: size of the operands moved each time (i.e. word, halfword, byte).
1764:
1765: * i860.c (output_block_move): Re-wrote code to do inline variable
1766: length block moves to correct fatal errors (e.g. no check for zero
1767: or neagtive start count) and to make it more efficient (saved 1 cycle
1768: per iteration).
1769:
1770: * i860.c (output_block_move): Make variable length moves with starting
1771: alignment of 4 or 2 `#if 0' for now, until they can be fixed to work
1772: right. Also reordered all three cases so that longer alignments are
1773: checked for first.
1774:
1775: Sun Dec 22 01:25:07 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
1776:
1777: * i386v4.h: Include svr4.h just once.
1778:
1779: * protoize.c (fprintf, printf): Decls put in #if 0.
1780:
1781: * emit-rtl.c (stack_slot_list): Delete superfluous extern decl.
1782: (emit): Abort if arg isn't recognized.
1783:
1784: * c-parse.y (current_declspecs, declspec_stack): Declare static.
1785: (undeclared_variable_notice): Likewise.
1786: (lastiddecl): Declare extern.
1787: * objc-parse.y: Same changes as c-parse.y.
1788: (token_buffer): Declare extern.
1789:
1790: * c-lex.c: Include output.h.
1791: (check_newline): Decl of asm_out_file deleted.
1792:
1793: * c-lex.h (ridpointers, NORID): Declare/define here.
1794: * c-lex.c, c-parse.y, objc-parse.y: Not here.
1795:
1796: * sun3.h (WORD_SWITCH_TAKES_ARG): Add `-assert'.
1797: (LINK_SPEC): Pass -assert to linker.
1798:
1799: * gbl-ctors.h (__CTOR_END__, __DTOR_END__): Remove `extern'.
1800:
1801: * sparc.h (RTX_COSTS): Increase multiply cost to 20.
1802: (MULSI3_LIBCALL): Use .umul.
1803: (UMULSI3_LIBCALL): Deleted.
1804:
1805: Sat Dec 21 18:34:27 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
1806:
1807: * combine.c (simplify_comparison): Allow OP0 to be VOIDmode if it
1808: is a COMPARE or a comparison operation.
1809:
1810: * i860.md (bte): Remove now unneeded patterns.
1811: Correct mode mismatch errors in patterns that will now be used.
1812:
1813: Sat Dec 21 00:14:25 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
1814:
1815: * ns32k.h (TRAMPOLINE_TEMPLATE, TRAMPOLINE_SIZE): Dummies deleted.
1816: (INITIALIZE_TRAMPOLINE): Likewise. #error inserted.
1817:
1818: * ns32k.c (print_operand_address): For invalid address, just abort.
1819:
1820: * Makefile.in (FIXINCLUDES): New variable.
1821: (includes, maketest): Use that.
1822: * x-i386v4 (FIXINCLUDES): Override here.
1823:
1824: Fri Dec 20 18:28:54 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
1825:
1826: * dbxout.c (dbxout_really_begin_function): New subroutine.
1827: (dbxout_function): Use that, but only if not DBX_FUNCTION_FIRST.
1828: (dbxout_begin_function): New function.
1829: * varasm.c (assemble_start_function): Call dbxout_begin_function.
1830:
1831: * dbxout.c (dbxout_function): Implement DBX_OUTPUT_FUNCTION_END.
1832:
1833: * sparc.md (movstrsi): Add missing double quote.
1834:
1835: * gcc.c (process_command): Handle -Xlinker.
1836:
1837: * calls.c (expand_call): Treat vfork like setjmp.
1838:
1839: * c-decl.c (implicitly_declare): Use push_obstacks_nochange.
1840:
1841: * sparc.h (WORD_SWITCH_TAKES_ARG): Add -assert.
1842: (LINK_SPEC): Pass -assert to linker.
1843:
1844: * svr4.h (ASM_OUTPUT_LOCAL): Fix typo.
1845:
1846: Fri Dec 20 07:52:19 1991 Michael Tiemann (tiemann at cygnus.com)
1847:
1848: * cp-decl2.c (lang_decode_option): Recognize more -fno-OPTION
1849: options which need special treatment (in the turning off of the
1850: option).
1851:
1852: * cp-parse.y (named_class_head_sans_basetype_either): Rule deleted.
1853: (identifier_either): Rule deleted.
1854: (delete): Don't call `build_x_delete'' if the type does not have a
1855: destructor. We may still need to adjust the address passed to
1856: `operator delete'.
1857:
1858: * cp-init.c (build_delete): New argument MAYBE_ADJUST. All callers
1859: changed. Also, add #if 0/#endif around code dealing with ALIGNMENT.
1860: It's dead code, and that's unclear otherwise.
1861: (maybe_adjust_addr_for_delete): New function.
1862: (build_new): Initialize special header for arrays allocated with
1863: `operator new[]'. This is a rewrite of Ken's code.
1864: (init_init_processing): New built-in type BI_header_type.
1865:
1866: * cp-init.c (build_{new,delete}): Call `build_builtin_call' for BIN,
1867: BID.
1868: (build_builtin_call): New function.
1869:
1870: * cp-decl.c (grokvardecl): Set TREE_EXTERNAL.
1871: (grokdeclarator): Set TREE_PUBLIC for all member functions. They
1872: are effectively global. Do the same for static members.
1873: (start_function): Don't clear TREE_EXTERNAL in case the function
1874: belongs to another file's implementation. Other fixes to
1875: TREE_PUBLIC/TREE_EXTERNAL logic based on interface/implementation.
1876:
1877: * cp-method.c (hack_identifier): Call `assemble_external' if
1878: necessary.
1879:
1880: Fri Dec 20 06:27:38 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
1881:
1882: * reload1.c (emit_reload_insns): Always record first insn emitted
1883: for a reload, including any insns for a secondary reload.
1884: (gen_input_reload): Correct documentation of function.
1885:
1886: Thu Dec 19 22:01:51 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
1887:
1888: * gnulib1.c (perform_fixdfsi): New customization macro.
1889:
1890: * svr4.h (SELECT_RTX_SECTION): Undef before defining.
1891:
1892: Thu Dec 19 16:59:12 1991 (Eric Youngdale at [email protected])
1893:
1894: * cccp.c (hack_vms_include_specification): Make conversion of
1895: filenames more versatile for user specified include directories.
1896:
1897: Thu Dec 19 17:38:18 1991 Michael Meissner (meissner at osf.org)
1898:
1899: * mips.h (#error's): Put tab in front of all #error's, so that
1900: ancient pre-ANSI compilers will not complain about unknown
1901: directives, even if the #error is #ifdef'ed out.
1902:
1903: * mips.md (fix_trunc*): Reorder constraints so that 'd' comes before
1904: 'f', and put a '*' in front of 'f' constraints to keep integer in
1905: the GP registers.
1906: (define_splits): Add reload_completed check for all define_splits
1907: that use subreg on the arguments to work around bug in sched.c.
1908:
1909: * cccp.c (lang_asm): New static variable to indicate we are
1910: processing an assembly file and to ignore unknown directives in case
1911: they are comments, like they are on the MIPS systems.
1912: (main): Set lang_asm if -lang-asm switch.
1913: (handle_directive, skip_if_group): Don't report about unknown
1914: directives if lang_asm is set.
1915:
1916: * gcc.c (default_compilers array): Pass -lang-asm to cpp when
1917: processing .S files instead of -lang-c.
1918:
1919: Thu Dec 19 15:06:09 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
1920:
1921: * c-decl.c (c_decode_option): Handle -fno-ident.
1922: * c-lex.c (check_newline): Ignore #ident for -fno-ident.
1923:
1924: * svr4.h (ASM_OUTPUT_LOCAL): Use assemble_name.
1925:
1926: * mips.h: Use #error, not #include, for error messages.
1927:
1928: * cccp.c (warning, main): Implement -Werror.
1929:
1930: * i386sco.h (CPP_SPEC): Move non-fixed option here.
1931: (CPP_PREDEFINES): From here.
1932:
1933: * gcc.c (do_spec_1): For %p, just pass -D options.
1934: For %P, pass all -A options. Put in whitespace, fix typos.
1935:
1936: * c-parse.y (parmlist_2, defn_parmlist_2): Warn about (...).
1937: * c-decl.c (get_parm_info): Don't warn here.
1938:
1939: Thu Dec 19 06:15:46 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
1940:
1941: * toplev.c (compile_file): Avoid ordered comparison of debug_info_level
1942: since it is an enum.
1943:
1944: * mips.c: Include gstab.h.
1945:
1946: * sparc.md: Fix typo.
1947:
1948: * caller-save.c (save_call_clobbered_regs): Don't save regs that
1949: die in a CALL_INSN or that are born there.
1950:
1951: Thu Dec 19 04:28:23 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
1952:
1953: * c-aux-info.c (gen_aux_info_record): Don't write space at line beg.
1954:
1955: Wed Dec 18 11:46:13 1991 Tom Wood (wood at dg-rtp.dg.com)
1956:
1957: * cse.c (cse_main): Use get_max_uid rather than computing it.
1958:
1959: Wed Dec 18 18:13:06 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
1960:
1961: * loop.c (scan_loop): Ensure replacement made by single-use code
1962: is not modified in the life of the register being replaced.
1963:
1964: Wed Dec 18 15:37:52 1991 Ron Guilmette (rfg at ncd.com)
1965:
1966: * rtl.h (fconst2_rtx, dconst2_rtx): Added extern declarations.
1967:
1968: * flags.h (flag_inhibit_size_directive): Declared.
1969:
1970: * svr4.h (INT_ASM_OP, INIT_SECTION_ASM_OP): Moved around.
1971: (ASCII_DATA_ASM_OP): Definition added.
1972: (flag_inhibit_size_directive): Deleted superfluous extern decls.
1973:
1974: * Makefile.in: Correct number of expected shift/reduce conflicts
1975: reported by bison for cp-parse.y.
1976:
1977: * sparcv4.h: New file.
1978:
1979: * i860.h (FUNCTION_ARG_BOUNDARY): Added definition.
1980: (sfmode_constant_to_ulong): Added extern declaration.
1981:
1982: * i860.md (BTE/BTNE patterns): Changed all instances of
1983: `(match_operand:SI 2 "zero_operand" "J")' to `(const_int 0)'.
1984:
1985: * i860.md (load then BTE/BTNE patterns): Added 8 new patterns,
1986: for cond branch on EQ/NE of a zero-extended memref with small integer.
1987:
1988: * i860.md: 20 new patterns (involving BTE/BTNE) like existing 20
1989: but simplified so that the combiner will find them.
1990:
1991: * i860.md (sfmode_constant_to_ulong, fconst2_rtx): Removed
1992: superfluous nested extern declarations.
1993:
1994: Wed Dec 18 15:39:46 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
1995:
1996: * va-i860.h (va_start for stdarg.h): Divide reg counts by 4.
1997:
1998: * stmt.c (emit_case_nodes): Fix typo, near testing cost_table.
1999:
2000: * i860.h (CUMULATIVE_ARGS): Define a named struct, then use it.
2001:
2002: * function.c (expand_function_start): Compute sizes in proper order.
2003:
2004: * svr4.h (MD_STARTFILE_PREFIX): Defined.
2005: (STANDARD_STARTFILE_PREFIX): Deleted.
2006:
2007: * sparc.md (movstrsi): Disable if needs more than 32 insns.
2008:
2009: * expr.c (store_expr): Handle copying too-short STRING_CST.
2010:
2011: * gstdarg.h (_VA_LIST): Handle this like _VA_LIST_.
2012:
2013: * m68k.h (LOCAL_LABEL_PREFIX): Remove the `L'.
2014: Fix uses of %L by adding `L'.
2015: * m68k.c (print_operand_address): Fix use of %L.
2016: * m68k.md (movhi): Fix use of %L. They were inconsistent.
2017:
2018: Wed Dec 18 14:59:26 1991 Michael Meissner (meissner at osf.org)
2019:
2020: * limits.h (whole file): Protect against inclusion.
2021:
2022: * t-decrose (LIMITS_H): Don't install limits.h on OSF/1.
2023: * t-encrose (LIMITS_H): Don't install limits.h on OSF/1.
2024: * t-i386rose (LIMITS_H): Don't install limits.h on OSF/1.
2025:
2026: * x-decrose (SYSTEM_INCLUDES): Don't do -I/usr/include.
2027: * x-encrose (SYSTEM_INCLUDES): Don't do -I/usr/include.
2028: * x-i386rose (SYSTEM_INCLUDES): Don't do -I/usr/include.
2029:
2030: Wed Dec 18 04:53:23 1991 Ken Raeburn ([email protected])
2031:
2032: * cp-init.c (build_new): Rewrote some of the array-handling code.
2033: Now stores the number of elements (after stripping off all outer
2034: ARRAY_TYPE nodes) at the start of allocated storage, just before the
2035: pointer the user's program sees. We also store the 2s compliment
2036: value of the pointer returned so we can distinguish when deleting a
2037: pointer whether it was "adjusted" or not.
2038: (expand_vec_init): Added a type conversion for cases when the
2039: address of an array gets passed in and we want to deal with the
2040: elements.
2041: (build_delete): Catch a case where deletion of arrays could slip
2042: through.
2043: (build_vec_delete): More array-handling rewrites. Extract the
2044: stored value and use it as the number of objects to destroy; ignore
2045: any value supplied by the user.
2046:
2047: * cp-init.c (init_vfields): Now static.
2048:
2049: * cp-tree.h (struct lang_decl_flags): Merged "dummy" fields.
2050:
2051: * cp-tree.h (DECL_TEMPLATE_INSTANTIATIONS): New macro for finding a
2052: list of instantiations already made of a template. (Only
2053: implemented for functions currently.)
2054: * cp-tree.def (DECL_TEMPLATE_INSTANTIATIONS): Describe it.
2055: * cp-pt.c (instantiate_template): Maintain and make use of it.
2056:
2057: * cp-pt.c (tsubst, case REFERENCE_TYPE): Call build_reference_type
2058: instead of constructing the type here.
2059:
2060: Wed Dec 18 03:37:46 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
2061:
2062: * c-parse.y (label_decl): Use identifiers_or_typenames.
2063:
2064: * c-parse.y: Support FUNCTION ([ARGNAMES] DECLS) {...}.
2065: (defn_parmlist_2, defn_parms): New nonterminals.
2066: (identifiers_or_typenames): New nonterminal.
2067: (parmlist_or_identifiers_1): Changed.
2068: * c-decl.c (combine_parm_decls): New function.
2069:
2070: Tue Dec 17 22:18:43 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
2071:
2072: * function.c (expand_main_function): Build SYMBOL_REF with Pmode,
2073: not VOIDmode.
2074:
2075: * rs6000.h (HARD_REGNO_NREGS, CLASS_MAX_NREGS): FP regs can only hold
2076: 64 bits, not any size FP value.
2077:
2078: * reload1.c (reload): Remove variable old_caller_save_needed.
2079: Call init_save_areas and setup_save_areas instead of
2080: allocate_save_areas and elim_save_addrs.
2081: * caller-save.c (init_caller_save): New function, from part of
2082: allocate_save_areas.
2083: (setup_save_areas): New function, from rest of allocate_save_areas
2084: and elim_save_addrs.
2085: When scanning pseudos to find hard regs that might need caller-save,
2086: look at all parts of multi-word registers.
2087:
2088: * flow.c (elim_reg_set): New variable.
2089: (flow_analysis): Set it to contain those regs that we can eliminate.
2090: (mark_used_regs): Don't set eliminable regs as live when they are used.
2091:
2092: * global-alloc.c (global_alloc): Clear preferences with eliminable
2093: regs, in addition to clearing conflicts.
2094:
2095: * reload.c (find_reloads_toplev): Abort instead of making
2096: a SUBREG of a VOIDmode constant.
2097:
2098: * emit-rtl.c (copy_rtx_if_shared): SCRATCH may always be shared.
2099:
2100: Tue Dec 17 21:06:03 1991 Michael Meissner (meissner at osf.org)
2101:
2102: * mips.h (MIPS_VERSION): Bump MM version number to 5.
2103: (processor_type): New enum to hold which type of
2104: processor to schedule for.
2105: (mips_cpu): New global to hold processor type.
2106: (MASK_*, TARGET_*): Rearrange target bits, add bits to select
2107: processor type, r4000 int/long/long long sizes.
2108: (TARGET_SWITCHES): Delete redunant no options, only leave no-
2109: version.
2110: (CUMULATIVE_ARGS): Make this a structure, not a pointer to a
2111: structure.
2112: (INIT_CUMULATIVE_ARGS): CUMULATIVE_ARGS changes.
2113: (FUNCTION_ARG_ADVANCE): Ditto.
2114: (FUNCTION_ARG): Ditto.
2115: (FUNCTION_ARG_PARTIAL_NREGS): Ditto.
2116: (RTX_COSTS): Count simple memory refs as one instruction.
2117: (REGISTER_MOVE_COST): Define as 4, to make sure constraints are
2118: checked.
2119:
2120: * mips.md (hilo type attribute): Add hilo type attribute to
2121: separate moves to/from the hi/lo registers with other register
2122: transfers.
2123: (move patterns): Set hilo attribute as appropriate.
2124: (define_function_units): Update the integer and memory functional
2125: units to include R4000 and R6000 processors, keyed off of the
2126: -mr[46]000 switches. Add a new functional unit for transfering
2127: stuff between register sets.
2128: (mov{sf,df}_xfer*): Remove these patterns, as they are no longer
2129: needed in GCC 2.00 to move between the different register sets,
2130: and generate insn not found messages if used.
2131: (movsi_ulw, movsi_usw): Correct test to see if stack loads are
2132: aligned. Use UNITS_PER_WORD-1 instead of a hard coded 3.
2133: (move define_expands): Delete move define_expands, since they are
2134: illegal according to the documentation, and the bug they guard
2135: against has long ago been fixed.
2136:
2137: * mips.c (mips_cpu): New global to hold processor type.
2138: (override_options): Set mips_cpu, check for 64 bit r4000 switches
2139: if processor not a r4000.
2140: (init_cumulative_args): CUMULATIVE_ARGS changes.
2141: (function_arg_advance): Ditto.
2142: (function_arg): Ditto.
2143: (function_arg_partial_nregs): Ditto.
2144: (mips_output_filename): Except for first .file, don't emit any other
2145: .file if encapsulating stabs in ECOFF, just put out stabs. This
2146: confuses gdb.
2147: (mips_output_lineno): Don't put out .loc's if encapulating stabs in
2148: ECOFF.
2149: (mips_asm_file_start): Put a .set nobopt for MIPS assembler to
2150: work around bug where the assembler goes bonkers if a branch
2151: inside of a .set noreorder section jumps to a label outside of a
2152: .set noreorder section. This is supposed to be fixed in 2.20 of
2153: the assembler.
2154: (function_epilogue): Correctly emit nops with tabs and newlines if
2155: needed.
2156:
2157: * decrose.h (OBJECT_FORMAT_ROSE): Define, to tell collect to
2158: enable OSF/rose support, rather than use nm.
2159:
2160: * encrose.h (OBJECT_FORMAT_ROSE): Define, to tell collect to
2161: enable OSF/rose support, rather than use nm.
2162:
2163: * i386rose.h (OBJECT_FORMAT_ROSE): Define, to tell collect to
2164: enable OSF/rose support, rather than use nm.
2165:
2166: * t-decrose (EXTRA_PASSES): Build collect2 instead of collect-osf,
2167: and link it to ld.
2168:
2169: * t-encrose (EXTRA_PASSES): Build collect2 instead of collect-osf,
2170: and link it to ld.
2171:
2172: * t-i386rose (EXTRA_PASSES): Build collect2 instead of collect-osf,
2173: and link it to ld.
2174:
2175: * x-decrose (DEBUG): Delete -g, since CFLAGS already passes it.
2176: (GCC_CFLAGS): Define POSIX so we can build protoize.
2177:
2178: * x-encrose (DEBUG): Delete -g, since CFLAGS already passes it.
2179: (GCC_CFLAGS): Define POSIX so we can build protoize.
2180:
2181: * x-i386rose (DEBUG): Delete -g, since CFLAGS already passes it.
2182: (GCC_CFLAGS): Define POSIX so we can build protoize.
2183:
2184: * t-decstatn (EXTRA_PASSES): Explicitly mention collect2.
2185: (ld): Use $(SYMLINK) rather than just ln.
2186:
2187: * t-mips (EXTRA_PASSES): Explicitly mention collect2.
2188:
2189: * collect2.c (whole file): Rewrite file based on collect-osf, to
2190: make it more portable. Highlights include: running ld only once if
2191: there are no constructors; OSF/rose support; not assuming that the
2192: linker, assembler, nm live in /bin; -v support to trace the commands
2193: being executed and print a version number; loops instead of
2194: recursion used to write out the tables; support for user using -r;
2195: checking all error returns; not using the shell to start processes.
2196:
2197: * collect-osf.c (whole file): Deleted, merged into collect2.c.
2198:
2199: Tue Dec 17 15:49:06 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu)
2200:
2201: * sched.c (schedule_insns): Don't update value of reg_live_length
2202: when it is negative, because negative values are special.
2203:
2204: * sched.c (schedule_block): Make new_needs an int not an enum, since
2205: some compilers won't accept using `|' and `&' with enums.
2206:
2207: * sparc.md: Don't emit nop after floating point compare; this is
2208: no longer needed.
2209:
2210: From Tom Wood:
2211: * sched.c (memrefs_conflict_p): Exchange xsize and ysize when x
2212: and y are exchanged.
2213:
2214: Tue Dec 17 15:01:04 1991 Mark Eichin (eichin at cygnus.com)
2215:
2216: * cp-decl.c (set_nested_typename): use SET_IDENTIFIER_TYPE_VALUE,
2217: not set_identifier_type_value, so that the binding doesn't get
2218: unwound by leaving class scope.
2219:
2220: Tue Dec 17 10:57:12 1991 Tom Wood (wood at dg-rtp.dg.com)
2221:
2222: * toplev.c (main): Make -g0 produce no debugging information.
2223:
2224: Tue Dec 17 15:15:20 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
2225:
2226: * gcc.c (do_spec_1): In %P, duplicate the names with __ just in front.
2227:
2228: * gstab.h: Renamed from stab.h.
2229: * collect2.c, dbxout.c, final.c, mips-tfile.c: #include changed.
2230: * dbxout.c (N_CATCH): Define this if stab.h does not.
2231: * Makefile.in: Depend on gstab.h where appropriate.
2232:
2233: * Makefile.in (STAGESTUFF): Remove collect and collect2.
2234:
2235: * c-parse.y (parmlist_2): Allow just `...' with no named args.
2236: * c-decl.c (get_parm_info): Pedantic warning for that usage.
2237:
2238: * final.c (final_scan_insn): Don't output blocks for -g1.
2239:
2240: * Makefile.in (crtbegin.o, crtend.o): Use -g0.
2241:
2242: * function.c (expand_main_function): Do nothing if INIT_SECTION_ASM_OP.
2243:
2244: * varasm.c (assemble_asm): Handle ADDR_EXPR of a STRING_CST.
2245: * stmt.c (expand_asm): Likewise.
2246: * c-parse.y (extdef, stmt): Accept STRING_CST or ADDR_EXPR in asm.
2247:
2248: Tue Dec 17 15:01:11 1991 Tom Wood (wood at dg-rtp.dg.com)
2249:
2250: * m88k.h (INIT_SECTION_ASM_OP): Override svr[34].h.
2251: * m88kv4.h (INIT_SECTION_ASM_OP): Override svr4.h and m88k.h.
2252: * m88kdgux.h ({INIT,CTORS,DTORS}_SECTION_ASM_OP): Override m88k.h
2253: except when compiling crtstuff.c.
2254:
2255: Mon Dec 16 21:50:42 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
2256:
2257: * stmt.c (struct case_node): Remove unused field `test_label'.
2258: (pushcase, pushcase_range): Don't initialize it.
2259:
2260: * stmt.c (check_for_full_enumeration_handling): Only print warnings
2261: if -Wswitch is specified.
2262: (expand_end_case): Call check_for_full_enumeration_handling even if
2263: -Wswitch is not specified.
2264:
2265: * expr.c (convert_move): Add missing arg to call to force_reg.
2266: (convert_to_mode): Likewise, for protect_from_queue.
2267:
2268: Mon Dec 16 20:33:10 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
2269:
2270: * expr.c (expand_builtin): Check number and types of args.
2271:
2272: * c-parse.y (stmt, extdef): Allow constant expression inside plain asm.
2273:
2274: * m68k.md (movhi): Use asm_fprintf to print .set or equivalent.
2275: * m68k.c (print_operand_address): Use %R when printing pc register.
2276: * m68k.h (ASM_OUTPUT_INTERNAL_LABEL, ASM_GENERATE_INTERNAL_LABEL):
2277: Use %L.
2278:
2279: * c-typeck.c, cp-typeck.c (c_sizeof): Give error for incomplete type.
2280:
2281: Mon Dec 16 11:14:28 1991 Ken Raeburn ([email protected])
2282:
2283: * cp-decl.c (init_decl_processing): Don't declare unused function
2284: __builtin_vec_delete.
2285:
2286: Mon Dec 16 08:35:04 1991 Torbjorn Granlund (tege at hal.gnu.ai.mit.edu)
2287:
2288: * gnulib2.c (__udivmoddi4): Add comment.
2289:
2290: Mon Dec 16 07:47:13 1991 Michael Tiemann (tiemann at cygnus.com)
2291:
2292: * cp-call.c (ideal_candidate): Always set BEST before using it.
2293: Also, call `build_component_ref_1' with 3 args everywhere, and
2294: `build_indirect_ref' with 2 args everywhere.
2295:
2296: Mon Dec 16 07:17:46 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
2297:
2298: * reload.h: Add `extern' to function declarations.
2299: (gen_input_reload): Add declaration.
2300: * reload1.c (reload): Allocate save area if caller-saves are needed;
2301: check for case when it becomes needed after some spill registers are
2302: obtained.
2303: Can now eliminate frame pointer even when caller-saves are needed.
2304: Perform register elimination of save area and see if caller-save needs
2305: a spill register.
2306: If required, find a spill register and pass it to caller-save code.
2307: (gen_input_reload): No longer static.
2308: * Makefile.in (caller-save.o): Now includes reload.h (again).
2309: * global-alloc.c (global_alloc): Can eliminate frame pointer even if
2310: we have caller-saves.
2311: * toplev.c (compile_file): Call init_caller_saves.
2312:
2313: * caller-save.c: Major rewrite; almost entirely new code.
2314: Integrate caller-saving with frame pointer elimination.
2315: Don't try to save and restore registers that cannot be directly
2316: copied to memory (such as MQ).
2317: Correctly place save and restore insns.
2318: Don't restore a saved register until end of block or if it is needed.
2319:
2320: * cse.c (mention_regs): Now returns int to indicate that the hash code
2321: may have changed.
2322: For COMPARE and comparison op, ensure that any register operand has
2323: a quantity number.
2324: (insert_regs): Return value from mention_regs.
2325: (rehash_using_reg): New function.
2326: (record_jump_equiv, mention_regs): Call rehash_using_reg if an operand
2327: of a compare is a REG whose hash code is changing.
2328:
2329: Mon Dec 16 07:09:21 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
2330:
2331: * function.c (expand_main_function): New subroutine. Call __main.
2332: * c-decl.c, cp-decl.c (store_parm_decls): Use that.
2333: * cp-decl.c (init_decl_processing): Don't declare __main.
2334:
2335: * objc-actions.c (init_objc): Call __objcInit as a constructor.
2336:
2337: * toplev.c (compile_file): Reenable SDB code #if 0'd before.
2338:
2339: * protoize.c (version_string): Make it extern.
2340: * Makefile.in (protoize, unprotoize): Link with version.o.
2341:
2342: Sun Dec 15 23:31:47 1991 Michael Tiemann (tiemann at cygnus.com)
2343:
2344: * cp-tree.c (virtual_member): When recurring, don't dive into
2345: nonexistent baseclasses.
2346:
2347: * cp-decl.c (grokdeclarator): Set TREE_STATIC for initialized const
2348: arrays.
2349: * cp-typeck.c (mark_addressable): A decl that was TREE_STATIC might
2350: be chagned to TREE_EXTERNAL due to #pragma interface/implementation.
2351:
2352: Sun Dec 15 14:57:23 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
2353:
2354: * Makefile.in (SYSCALLS.c.X): Fix typo.
2355: (INTERNAL_CFLAGS): Delete -DMERGED.
2356:
2357: * dbxout.c (dbxout_init): Pass proper args to ASM_OUTPUT_MAIN_*.
2358: * newpbb.h (ASM_OUTPUT_MAIN_SOURCE_FILENAME): Add proper arguments.
2359:
2360: * stmt.c (emit_case_nodes): Rewrite to change induction conditions.
2361: Handle boundedness in the bounded node itself.
2362: Handle branching entirely at the parent level.
2363:
2364: * gstdarg.h: Use va-i860.h.
2365: * va-i860.h (va_start for ANSI): Fix typo. Call __builtin_next_arg.
2366:
2367: Sat Dec 14 20:45:30 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
2368:
2369: * Makefile.in (USER_H): va-hp9k8.h should be va-hp800.h.
2370:
2371: * loop.c (invariant_p): Call-clobbered register is not invariant if
2372: loop has calls.
2373: (count_loop_regs_set): Count a CLOBBER as a setting of a register.
2374:
2375: * stmt.c: Move include of ctype.h and definition of cost variables to
2376: front of file.
2377: (expand_end_case): Always set use_cost_table. Check type here instead
2378: of in estimate_case_costs. Don't suppress use of cost table when
2379: not optimizing.
2380: (estimate_case_costs): Now returns int. Check for any case tag
2381: that is an unusual control character here and reject use of table
2382: if so. Always do comparisons signed, since that's how we access the
2383: cost table.
2384: (balance_case_nodes): Don't check for strange control characters here.
2385: (node_has_low_bound): Do checking if we don't have a left branch,
2386: instead of if we do.
2387: (node_has_{low,high}_bound): Remove spurious checks on branches.
2388: (emit_case_nodes): Ensure operation passed to emit_cmp_insn matches
2389: the branch we actually emit.
2390: Fix case of a range node with no left or right branch; use of case
2391: and default label were backward for the high test.
2392: Remove unused variables defaulted_{left,right}.
2393:
2394: Sat Dec 14 16:10:11 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
2395:
2396: * protoize.c: Don't include limits.h.
2397: Rename `pathname' to `filename' everywhere.
2398: Clean up indentation of fprintf calls.
2399: Use standard GNU format for file name/line in error messages.
2400: (n_base_source_files): Renamed from base_source_files.
2401: (convert_filename, invocation_filename, base_source_filenames):
2402: `path' renamed to `filename'.
2403: (syscalls_absolute_filename): Renamed from syscalls_pathname.
2404: (find_file): Arg FILENAME no longer const.
2405: (main): Fix getcwd error-checking logic.
2406: (varargs_style_indicator): Delete `const'.
2407: (savestring): Declare arg `input' const.
2408:
2409: * Makefile.in (protoize, protoize.o, unprotoize, unprotoize.o):
2410: Use GCC_FOR_TARGET.
2411: (getopt.o, getopt1.o): Likewise.
2412: (GCC_FOR_TARGET): Delete -B./.
2413: (GCC_CFLAGS): Add -B./. Copy ALL_CFLAGS's definition, less XCFLAGS.
2414:
2415: * cp-init.c (add_friends): Pass proper args to strncmp.
2416:
2417: * toplev.c (compile_file): Clear DECL_RTL for vars not really output.
2418: #if 0 possibly redundant code for SDB output.
2419:
2420: * sys-types.h: Include gstddef.h to get size_t and wchar_t.
2421:
2422: * ultrix.h (CPP_PREDEFINED): Add __unix, __ultrix, __bsd4_2.
2423:
2424: * Makefile.in (STAGESTUFF): Add collect, collect2.
2425:
2426: Sat Dec 14 12:16:12 1991 Michael Tiemann (tiemann at cygnus.com)
2427:
2428: * cp-search.c (get_baselinks): Use obstacks right, instead of
2429: aborting when we know we're using them wrong.
2430:
2431: * cp-parse.y (structsp): Fix typo in exception declaration rule.
2432:
2433: * cp-typeck.c (build_modify_expr_1): Recursive call to
2434: `build_modify_expr_1' used pre-BINFO representation for
2435: BASETYPE_PATH argument.
2436:
2437: * cp-decl.c (start_decl): Don't switch to temporary allocation for
2438: decls of type REFERENCE_TYPE, as their initializers may live a long
2439: time, too.
2440:
2441: Sat Dec 14 07:11:03 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
2442:
2443: * reload.c (find_reloads_toplev): If we have a SUBREG of a multi-word
2444: constant, try to extract just the word we want.
2445:
2446: * global-alloc.c (global_alloc): Correct reference to ELIMINABLES.
2447:
2448: Fri Dec 13 15:28:38 1991 Michael Meissner (meissner at osf.org)
2449:
2450: * configure (mips-mips-sysv): On MIPS System V, use xm-umips.h, not
2451: xm-mips.h.
2452:
2453: * gstddef.h (__PTRDIFF_TYPE__): Provide default definition in case
2454: non-GCC 2.00 compiler is used.
2455: (__SIZE_TYPE__): Ditto.
2456: (__WCHAR_TYPE__): Ditto.
2457:
2458: Fri Dec 13 14:49:54 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
2459:
2460: * config.sub: Renamed from config.subr.
2461: Support os -sym1.
2462: Convert -svr3, -svr4 to -sysv3, -sysv4.
2463: * configure: Used new name.
2464:
2465: * Makefile.in (includes): Preserve files from GCC already in dir.
2466:
2467: Fri Dec 13 11:01:12 1991 Fred Fish (fnf at fishpond)
2468:
2469: * att386.h: Fix unparenthesized macro arguments in
2470: ASM_OUTPUT_ASCII macro.
2471:
2472: * i386v4.h: Select an assembly language syntax file and include
2473: it. Supply missing macros from ones in i386v.h (TARGET_DEFAULT,
2474: VALUE_REGNO, FUNCTION_VALUE_REGNO_P).
2475:
2476: * svr4.h: Fix misspelled variable name labelno (was labeno).
2477:
2478: Fri Dec 13 09:07:22 1991 Michael Tiemann (tiemann at cygnus.com)
2479:
2480: * cp-typeck.c (build_component_ref): Call `assemble_external' as
2481: nec.
2482: (build_function_call_real): Call `assemble_external' as nec. for
2483: function calls we build. Code slightly rearranged for clarity.
2484: * cp-call.c (build_method_call): Call `assemble_external' as nec.
2485:
2486: Thu Dec 12 22:03:52 1991 Eric Youngdale (youngdale at v6550c.nrl.navy.mil)
2487:
2488: * make-cc1.com: Change message given to user. Change c-parse_tab.*
2489: to c-parse.*
2490:
2491: * config-gcc.com: Purge excess versions of version.opt.
2492:
2493: Thu Dec 12 20:25:20 1991 Michael Meissner (meissner at osf.org)
2494:
2495: * Makefile.in (BOOT_CFLAGS): Remove quotes around the argument,
2496: since this causes a syntax error when it is later expanded.
2497:
2498: Thu Dec 12 17:53:55 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
2499:
2500: * config.subr: Add many new machines and some OS's.
2501:
2502: * va-i860.h: Rewrite from rfg.
2503:
2504: * toplev.c (main): Handle -dm on USG systems.
2505:
2506: * m68k.c (print_operand, print_operand_address): New functions.
2507: * m68k.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS): Just call them.
2508:
2509: * m68k.c (S_*, D_*): Delete the #undefs at the end.
2510:
2511: * stmt.c (expand_return): Special case if fcn returns void.
2512:
2513: * objc-actions.c (build_objc_method_call): Fix typo in NeXT case.
2514:
2515: * expr.c (expand_builtin, BUILT_IN_ARGS_INFO): Cast init of word_ptr.
2516:
2517: * protoize.c: Delete the `extern "C"' for C++ compilation.
2518:
2519: Thu Dec 12 10:01:13 1991 Michael Meissner (meissner at osf.org)
2520:
2521: * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Fix off by one error in
2522: handling the constructor list when a valid count is supplied.
2523:
2524: * collect2.c (write_hooks): Emit a count before the list of
2525: constructors, to go back to the old format.
2526:
2527: * collect-osf.c (write_s_file): Emit a count before the list of
2528: constructors, to go back to the old format.
2529:
2530: * gnulib2.c (exit): Provide default defintions as bss symbols for
2531: all of the constructor/destructor related symbols if the macro
2532: INIT_SECTION_ASM_OP is not defined. The second link that collect
2533: does and/or gld will provide the right values.
2534:
2535: * decrose.h (HAVE_ATEXIT): Nuke macro, no longer used.
2536: * encrose.h (HAVE_ATEXIT): Nuke macro, no longer used.
2537: * i386rose.h (HAVE_ATEXIT): Nuke macro, no longer used.
2538:
2539: Thu Dec 12 07:27:05 1991 Tom Wood (wood at dg-rtp.dg.com)
2540:
2541: * gbl-ctors.h (__CTOR_LIST__, __DTOR_LIST__): Renamed from *_BEGIN__.
2542: * collect-osf.c collect2.c: Rename here as well.
2543:
2544: Thu Dec 12 04:15:22 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
2545:
2546: * c-parse.y (stmt): Make asm alternatives allow expr.
2547: * c-typeck.c (c_expand_asm_operands): Get the STRING_CST from the expr.
2548:
2549: * c-parse.y (datadecl, datadecls, lineno_datadecl): New rules.
2550: (xdecls): Use them.
2551:
2552: Wed Dec 11 18:36:53 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
2553:
2554: * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Just one definition; use ON_EXIT.
2555: Test for -1 and handle both kinds of table format.
2556: * gnulib2.c (__do_global_dtors): Check for -1...
2557: (__do_global_ctors): Dummy defn of ON_EXIT if no other defined.
2558: (__main): Do nothing if called again.
2559: (exit): Use EXIT_BODY if defined.
2560: * crtstuff.c (__CTOR_LIST__, __DTOR_LIST__):
2561: Renamed from *_BEGIN__. Add -1 as first elt.
2562: (__CTOR_END__, __DTOR_END__): Add 0 as last elt.
2563: (ON_EXIT): Dummy defn if no other is defined.
2564:
2565: Wed Dec 11 18:08:36 1991 Mark Eichin (eichin at cygnus.com)
2566:
2567: * cp-parse.y (template_parm): removed some reduce/reduce conflicts
2568: by noting which of identifier or identifier_defn would actually be
2569: passed up in this context.
2570:
2571: Wed Dec 11 17:52:46 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
2572:
2573: * flow.c (propagate_block): Adjust loop depth if it is changed in
2574: notes at the end of a block.
2575: Abort if loop depth ever reaches zero.
2576:
2577: Wed Dec 11 16:30:09 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
2578:
2579: * cccp.c (do_endif): Don't call record_control_macro at top level.
2580:
2581: Wed Dec 11 14:45:42 1991 Mark Eichin (eichin at cygnus.com)
2582:
2583: * cp-decl.c (set_identifier_type_value): If we're in a
2584: class_binding_level, shadow the type there.
2585: (xref_defn_tag): New function. Calls xref_tag with special flag set
2586: to indicate that we know we're defining something.
2587: (pushdecl_top_level): if class_binding_level is set, search from it
2588: instead of only from current_binding_level when trying to find
2589: shadowed values. This is in support of tests m5.cc through m8.cc,
2590: which broke after the changes for m9.cc were installed.
2591:
2592: * cp-spew.c (do_aggr): New function. Looks ahead from AGGR to see if
2593: we have AGGR identifier { or AGGR identifier : which are both
2594: definitions, and passes up identifier_DEFN instead. This is in
2595: support of test m9.cc.
2596: (yylex): add SPEW_DEBUG case after EMPTY, so we don't have gaps in
2597: the displayed stream.
2598: (yylex, case AGGR): added call to do_aggr.
2599: (debug_yychar): added call to debug_yytranslate for proper
2600: translations.
2601:
2602: * cp-parse.y (debug_yytranslate): New function to support SPEW_DEBUG
2603: translations.
2604: (TYPENAME_DEFN): new token, TYPENAME seen by do_aggr.
2605: (IDENTIFIER_DEFN): new token, ditto.
2606: (PTYPENAME_DEFN): new token, ditto.
2607: (identifier_defn): corresponds to identifier, but when the
2608: identifier has been seen by do_aggr.
2609: (named_class_head_sans_basetype_defn): specially recognize aggr
2610: identifier_defn.
2611: (named_class_head): add parallel clauses calling xref_tag_defn when
2612: we know we're defining this aggr.
2613: (named_class_head_sans_basetype_defn_either): for when we don't care
2614: if it is a defn or not (such as templates)
2615: (identifier_either): ditto.
2616:
2617: * cp-tree.h (xref_defn_tag): New declaration.
2618:
2619: Wed Dec 11 12:37:51 1991 Ken Raeburn ([email protected])
2620:
2621: * cp-parse.y (label_colon): New nonterminal, with all label prefixes
2622: from "stmt" moved here.
2623: (stmt): Use it. Also provide useful message for label followed by
2624: end of block (close-brace).
2625:
2626: * cp-init.c (BIVN): Deleted unused variable.
2627: * cp-decl.c (init_decl_processing): Don't declare function
2628: __builtin_vec_new; it's never used.
2629:
2630: Wed Dec 11 10:59:48 1991 Michael Meissner (meissner at osf.org)
2631:
2632: * toplev.c (main): Complete last change from RMS, use variable
2633: 'level' which used to be named 'arg'.
2634:
2635: * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Don't reference ON_EXIT for
2636: those poor systems without atexit or on_exit.
2637:
2638: Wed Dec 11 09:06:52 1991 Jeffrey A. Law (law at wombat.gnu.ai.mit.edu)
2639:
2640: * m68k.c (output_function_prologue, output_function_epilogue):
2641: When saving/restoring only 2 registers, do so with two "movel"
2642: instructions instead of a single "moveml". This results in
2643: faster code for the 68020 and later machines.
2644:
2645: Wed Dec 11 06:45:08 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
2646:
2647: * x-romp (MAKE): Add definition; the supplied `make' doesn't define it.
2648:
2649: Tue Dec 10 22:17:50 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
2650:
2651: * combine.c (try_combine): Always make a copy of I2's pattern if
2652: it will be used in a PARALLEL (`added_sets_2' nonzero).
2653:
2654: * Makefile.in (BOOT_CFLAGS): New parameter.
2655: (bootstrap*): Use it.
2656:
2657: * flow.c (find_basic_blocks): Set depth of last insn, not first,
2658: into basic_block_loop_depth.
2659: (propagate_blocks): Use consistently with new definition.
2660:
2661: * cse.c (cse_end_of_basic_block, cse_basic_block): Remove previous
2662: change; it can cause loops following around branches.
2663:
2664: * Makefile.in (USER_H): Add va-hp9k8.h.
2665:
2666: Tue Dec 10 17:22:01 1991 Tom Wood (wood at dg-rtp.dg.com)
2667:
2668: * m88k*.h: Include svr3.h as the default. m88kv4.h and m88kdgux.h
2669: include svr4.h. Override svr[34].h as needed.
2670: * t-m88k, t-m88kv4: Specify EXTRA_PARTS.
2671:
2672: * m88k.c (uses_arg_area_p): Check current_function_varargs.
2673:
2674: Tue Dec 10 15:41:03 1991 Michael Meissner (meissner at osf.org)
2675:
2676: * osf-main.c (whole file): Delete, since the constructor stuff was
2677: moved to gnulib2.c.
2678:
2679: * Makefile.in (collect2, collect2.o): Change to use the default
2680: compiler to build collect2, instead of the newly built GCC, since
2681: otherwise, collect2 will create a circular dependency. Also, pass
2682: LDFLAGS when linking.
2683:
2684: * collect-osf.c (write_s_file): Change to the new way of doing
2685: constructors and destructors of having an end marker instead of a
2686: count.
2687:
2688: * collect.c (REAL_AS_PATH, REAL_LD_PATH, REAL_NM_PATH): New macros
2689: to allow cross compilers to specify where the real linker,
2690: assembler, and nm live.
2691: (NM_FLAGS): New macro to allow a configuration to change what flags
2692: get passed to nm.
2693: (alloca defines): Remove alloca defines, since config.h provides
2694: them.
2695: (write_hooks): Change to the new way of doing constructors and
2696: destructors of having an end marker instead of a count. Cast all
2697: alloca calls to be the appropriate pointer type. Put both
2698: constructors and destructors into the data section, because the MIPS
2699: tools do not like non-instructions in the .text section.
2700:
2701: * decrose.h (HAVE_ATEXIT): Define, OSF/1 has atexit.
2702: (FULL_PROTOTYPES, NO_CONST_IN_SYSCALL): Remove, no longer used.
2703:
2704: * encrose.h (HAVE_ATEXIT): Define, OSF/1 has atexit.
2705: (FULL_PROTOTYPES): Remove, no longer used.
2706:
2707: * i386rose.h (HAVE_ATEXIT): Define, OSF/1 has atexit.
2708:
2709: * t-decrose (LIB2FUNCS_EXTRA): Remove, osf-main.c is no longer
2710: needed, since constructor/destructor support moved into gnulib2.c.
2711:
2712: * t-encrose (LIB2FUNCS_EXTRA): Remove, osf-main.c is no longer
2713: needed, since constructor/destructor support moved into gnulib2.c.
2714:
2715: * t-i386rose (LIB2FUNCS_EXTRA): Remove, osf-main.c is no longer
2716: needed, since constructor/destructor support moved into gnulib2.c.
2717:
2718: * t-decstatn (CCLIBFLAGS, GNULIB2_CFLAGS): Define so that gnulib1
2719: and gnulib2 are both compiled with -G 0, in case the users compiles
2720: and links this way. It also fixes a bug where the constructors and
2721: destructors that collect2 produces are in the big data section, but
2722: gnulib2 thinks they are in the small data section, because it only
2723: sees a pointer.
2724: (ld): Add -f to remove old ld link to collect2, if it exists.
2725:
2726: * t-mips (CCLIBFLAGS, GNULIB2_CFLAGS): Define so that gnulib1
2727: and gnulib2 are both compiled with -G 0, in case the users compiles
2728: and links this way. It also fixes a bug where the constructors and
2729: destructors that collect2 produces are in the big data section, but
2730: gnulib2 thinks they are in the small data section, because it only
2731: sees a pointer.
2732: (ld): Add rule to link collect2 to ld.
2733: (EXTRA_PASSES): Build collect2 (aka ld).
2734:
2735: * xm-mips.h (alloca): If not GNU C, declare alloca to be char *.
2736:
2737: * mips-tfile.c (add_aux_sym_tir): Move code to record bitfield size,
2738: so that it agrees with MIPS ECOFF practice, rather than the
2739: documentation, which affects enum bitfields. Changes from Per
2740: Bothner.
2741:
2742: Tue Dec 10 14:10:10 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
2743:
2744: * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Get rid of __reverse_order, etc.
2745: * gnulib2.c (__do_global_dtors): Remove & before arrays.
2746:
2747: * configure: Set a default value for xm_file.
2748: Remove redundant defaulting of cpu_type.
2749:
2750: * svr4.h (ASM_DECLARE_FUNCTION_SIZE): Output internal label properly.
2751:
2752: * function.c (assign_parms): Set current_function_args_info.
2753: * output.h: Declare that var.
2754: * tree.h (BUILTIN_ARGS_INFO): Renamed from BUILT_IN_VARARGS.
2755: * expr.c (expand_builtin): Implement __builtin_args_info.
2756: * c-decl.c (init_decl_processing): Declare it.
2757: * va-i860.h: Use it.
2758: Also update order of elements in struct __va_ctl.
2759:
2760: * toplev.c (main): Eliminate -gsdb and -gdbx.
2761: Clean up setting of use_gdb_dbx_extensions.
2762:
2763: Tue Dec 10 10:33:58 1991 Tom Wood (wood at gen-rtx)
2764:
2765: * svr4.h (ASM_DECLARE_FUNCTION_SIZE): Use an internal label.
2766:
2767: Tue Dec 10 07:12:28 1991 James Van Artsdalen (james@raid)
2768:
2769: * Makefile.in (crtbegin.o, crtend.o): crstuff.c is in $(srcdir).
2770:
2771: Tue Dec 10 06:56:26 1991 Michael Tiemann (tiemann at cygnus.com)
2772:
2773: * cp-decl.c (kept_level_p): New function, borrowed from c-decl.c.
2774: * cp-parse.y (compstmt): Call it.
2775:
2776: Mon Dec 9 18:37:32 1991 Ken Raeburn ([email protected])
2777:
2778: * cp-decl.c (grok_enum_decls): Don't give warning for class-local
2779: enum types; this is a perfectly reasonable usage.
2780:
2781: Mon Dec 9 12:23:48 1991 Ron Guilmette (rfg at ncd.com)
2782:
2783: * toplev.c (main): Check that no extra chars follow the level #
2784: in a -gNNN option. Also check that the debugging level requested
2785: is between 0 and 3 (inclusive).
2786:
2787: Mon Dec 9 20:34:48 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu)
2788:
2789: * sched.c (schedule_block): Don't crash if `line' is zero.
2790: (schedule_insns): Initialize line_note_head.
2791:
2792: Mon Dec 9 15:31:46 1991 Michael Meissner (meissner at osf.org)
2793:
2794: * mips-tfile.c (pseudo_ops array): Correctly size the .stabs and
2795: .stabn elements.
2796:
2797: * mips.c (function_prologue, function_epilogue): Use assemble_name
2798: to print the current function, instead of fprintf, in case there is
2799: a leading '*'.
2800:
2801: * mips-news.h (CPP_PREDEFINES): Define news3700, not news7300.
2802:
2803: * mips.md (ashldi3_internal3): Fix typos.
2804: (ashrdi3_internal3): Ditto.
2805: (lshldi3_internal3): Ditto.
2806:
2807: Mon Dec 9 11:49:52 1991 Torbjorn Granlund (tege at hal.gnu.ai.mit.edu)
2808:
2809: * longlong.h (__a29k__ udiv_qrnnd): Change "q" to "1" for operand
2810: 2 constraint.
2811:
2812: Mon Dec 9 11:22:58 1991 Ken Raeburn ([email protected])
2813:
2814: * cp-typeck.c (build_x_function_call): A method might have type
2815: pointer-to-method as well. Don't build an OFFSET_REF for any
2816: "function" that already has pointer type. Only use
2817: DECL_CLASS_CONTEXT to find type of `this' for FUNCTION_DECLs; for
2818: method pointer expressions, look up the basetype of the method type.
2819: (build_unary_op): Fix comment in typo.
2820:
2821: * cp-tree.c: Fix typo in comment at start of file.
2822:
2823: Mon Dec 9 07:17:13 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
2824:
2825: * cse.c (cse_insn): When a jump is converted to unconditional,
2826: delete the dead code, but leave the notes.
2827: (cse_basic_block, cse_end_of_basic_block): Some unconditional jumps are
2828: part of the basic block.
2829: (cse_basic_block): Add missing arg to cse_end_of_basic_block call.
2830:
2831: Mon Dec 9 07:16:15 1991 Ron Guilmette (rfg at ncd.com)
2832:
2833: * sys-types.h: New file.
2834: * sys-protos.h: New file.
2835: * SYSCALLS.c: Just include those files.
2836:
2837: * protoize.c (VOLATILE): Define this symbol conditionally so that
2838: it can be used to declare GNU `volatile' functions.
2839: (abort): Added VOLATILE extern declaration (but not if it's a macro).
2840: (kill, fork): Added extern declaration.
2841: (substr): Declare c as int.
2842:
2843: * gbl-ctors.h: New file.
2844: * crtstuff.c: Include gbl-ctors.h.
2845: (INIT_SECTION_ASM_OP): Delete default definition.
2846: Only compile .init section code if INIT_SECTION_ASM_OP is defined.
2847: (pointer): Globally changed to `func_ptr'.
2848: * Makefile.in (crtbegin.o, crtend.o, gnulib2): Depend on gbl-ctors.h.
2849: * gnulib2.c: Added definition of __builtin_saveregs for i860/svr4
2850: and fixed up definition of __builtin_saveregs for i860/non-svr4.
2851: (__bb_avoid_warning): Added explicit return type.
2852: (__builtin_new, __builtin_vec_new, __builtin_delete,
2853: __builtin_vec_delete): Use `void*' where appropriate.
2854: (exit): Change conditional to ON_EXIT. Make dummy if no real exit.
2855: Include gbl-ctors.h.
2856: (__main): Change conditional to INIT_SECTION_ASM_OP.
2857: (__do_global_ctors): Conditional on INIT_SECTION_ASM_OP.
2858: Use DO_GLOBAL_CTORS_BODY for the guts.
2859: Include gbl-ctors.h.
2860:
2861: Mon Dec 9 01:07:56 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
2862:
2863: * fixinc.svr4: Don't change #ident or assertion tests.
2864: Don't install inline.h.
2865:
2866: * c-common.c (get_directive_line): Declare c as int.
2867:
2868: * configure: Create additional file tconfig.h.
2869: * protoize.c: Include that, not tm.h.
2870: * Makefile.in (protoize.o, unprotoize.o): Depend on tconfig.h.
2871:
2872: * svr4.h (HAVE_ATEXIT): Defined.
2873: * gnulib2.c (_main, exit): Use HAVE_ATEXIT to control use of atexit.
2874:
2875: * final.c (final_scan_insn): Output first and last note in a series.
2876:
2877: * objc-actions.c (build_objc_method_call):
2878: New arg LOOKUP_OBJECT.
2879: (build_message_expr): Pass RECEIVER for LOOKUP_OBJECT.
2880: Pass RECEIVER or self_decl as OBJECT.
2881:
2882: * unx386.h (PRINT_IMMED_PREFIX, PRINT_OFFSET_PREFIX): Deleted.
2883:
2884: * rtl.h: Undef FLOAT.
2885:
2886: * svr4.h (ASM_DECLARE_OBJECT_NAME, ASM_DECLARE_FUNCTION_SIZE):
2887: Fix typo.
2888:
2889: Sun Dec 8 21:46:51 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
2890:
2891: * protoize.c (main): Declare `value'.
2892: (abspath): Declare endp. Declare and set outp and inp.
2893:
2894: * cp-decl.c (sigsegv): Function deleted.
2895: (init_decl_processing): Don't use it.
2896: Also don't include signal.h.
2897:
2898: * t-svr4: New file.
2899: * configure (i386-*-sysv4*, i860-*-sysv4*): Use that file.
2900:
2901: Sun Dec 8 12:01:36 1991 Ron Guilmette (rfg at ncd.com)
2902:
2903: * fixinc.svr4: New file.
2904:
2905: * final.c (profile_function): Specify return type.
2906: (get_attr_length): Added a return statement to prevent warnings.
2907:
2908: * final.c (final_scan_insn): Switch to .text section before output
2909: of jumptable lable (if requested by JUMP_TABLES_IN_TEXT_SECTION).
2910: Don't switch sections again after the label.
2911:
2912: * configure (i386-*-sysv*): Configuration deleted.
2913: (i386-*-sysv3, i386-*-sysv4, i860-*-sysv3, i860-*-sysv4):
2914: Added assignment to `tmake_file' (to pick up def of EXTRA_PARTS).
2915: (i860-*-sysv3, i860-*-sysv4): Added assignment to `xmake-file'.
2916: (i860-*-sysv3): Deleted bogus GAS related stuff.
2917:
2918: * combine.c (combinable_i3pat): Added explicit return type.
2919:
2920: * i860.h (TARGET_FPU): Deleted this target flag. i860 fpu is on chip.
2921: (TARGET_XP): New target flag for XR and XP models.
2922: (TARGET_FLAGS, HARD_REGNO_MODE_OK): Adjusted for above changes.
2923: (REG_ALLOC_ORDER): Use first the regs less likely for other purposes.
2924: (LITERAL_COMPARE_BETTER_UNSIGNED): Defined.
2925: (BRANCH_COST): Defined.
2926: (CC_ONLY_*): Deleted these obsolete defines.
2927: (CC_NEGATED): Added for IEEE behavior with cmpgesf and cmplesf.
2928: (ASM_OUTPUT_CASE_LABEL):
2929: Added .align so assembler doesn't barf on subsequent .long(s).
2930: (FLOAT_TYPE_VALUE, INTIFY, FLOATIFY, FLOAT_ARG_TYPE):
2931: Added definitions needed to build a useable gnulib1 library.
2932:
2933: * i860.md: Removed all references to CC_ONLY_* symbols.
2934: (cmpledf, cmpgedf): Adjusted assembler code as suggested
2935: by i860 manuals, for IEEE results.
2936: (cbranch, flipped_cbranch, inverse_cbranch, flipped_inverse_cbranch):
2937: Check for CC_NEGATED.
2938: (bte, btne patterns): Complete rewrite.
2939: (anonymous sign-extend patterns): Moved before the named patterns.
2940:
2941: * i860.md (addsi3, subsi3): Disparaged alternatives with a floating-
2942: pointer input register to avoid complicated reloading problem.
2943: (negsi2): Deleted bogus `I' constraint on operand 1.
2944: (divdf3, divsf3): Added additional continuation characters
2945: needed to make lines acceptable to `read_rtx' in the gen* programs.
2946:
2947: * i860.c: Include "flags.h" to get access to `optimize' flag.
2948: (leaf_function_p): Added extern declaration.
2949: (zero_operand): New function.
2950: (must_preserve_r1, must_preserve_bytes): New variables.
2951: (function_prologue, function_epilogue):
2952: Support treatment of return-address reg (r1) in leaf functions.
2953:
2954: * i860v4.h (CPP_PREDEFINES): Add pre-assertions for i860/svr4.
2955: (CPP_SPEC): Deleted definition.
2956: (TYPE_OPERAND_FMT): New definition.
2957: (ASM_OUTPUT_FUNCTION_PREFIX): #undef before defining.
2958: (ASM_OUTPUT_EPILOGUE_SUFFIX): Deleted obsolete macro.
2959: (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP,
2960: TDESC_SECTION_ASM_OP, EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS,
2961: TDESC_SECTION_FUNCTION): Definitions added.
2962:
2963: * i860v3.h: Complete rewrite. Uses svr3.h.
2964:
2965: * i386v4.h: Don't include i386v.h. Include i386.h instead.
2966: (SDB_DEBUGGING_INFO): #undef deleted.
2967: (ASM_OUTPUT_DWARF_STRING): Added definition.
2968:
2969: * gcc.c (default_compilers): Pass -g* options to cpp.
2970:
2971: * gcc.c (do_spec_1): Don't duplicate -A options in CPP_PREDEFINES.
2972:
2973: * gnulib2.c (exit, __main, __do_global_dtors, __do_global_ctors):
2974: New functions.
2975:
2976: * i386.h (PRINT_IMMED_PREFIX, PRINT_OFFSET_PREFIX):
2977: Define here, and use IP.
2978:
2979: * i386.h: Don't include syms.h or define FILNMLEN.
2980:
2981: * x-i860v3, x-i860v4: New files.
2982: * x-i386v4 (CCLIBFLAGS, GCC_CFLAGS): Added definitions.
2983:
2984: * xm-svr3.h: New file.
2985: * xm-i86v3.h, xm-i86v4.h, xm-i386v.h: Rewritten.
2986: * xm-i38v4.h: New file.
2987:
2988: * svr4.h (LIB_SPEC): Make crtend.o come before any *crtn.o
2989: file (to avoid hitting return without standard epilogue in .init code).
2990: (INIT_SECTION_ASM_OP): Added definition for crtstuff.c (and friends).
2991: (CTORS_SECTION_FUNCTION, DTORS_SECTION_FUNCTION):
2992: Adjusted indentation of continuations to match those in rest of file.
2993:
2994: * svr3.h (CPP_PREDEFINES): Don't define this here.
2995: (ASM_FILE_START_1): Provide no-op default definition.
2996: (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Undef these before defining.
2997: (INT_ASM_OP, USE_CONST_SECTION, INIT_SECTION_ASM_OP,
2998: CONST_SECTION_ASM_OP, CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP,
2999: EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS, READONLY_DATA_SECTION,
3000: CONST_SECTION_FUNCTION, CTORS_SECTION_FUNCTION, DTORS_SECTION_FUNCTION,
3001: ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR, SELECT_SECTION,
3002: SELECT_RTX_SECTION): Definitions added.
3003:
3004: Sun Dec 8 15:27:56 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
3005:
3006: * next.c (handle_pragma): Use get_directive_line.
3007:
3008: * gnulib2.c (__do_global_dtors, __do_global_ctors):
3009: Remove the feature to control the order of execution.
3010: This is not a clean solution to the overall problem.
3011:
3012: Sun Dec 8 14:47:44 1991 Michael Meissner (meissner at osf.org)
3013:
3014: * mips-tfile.c (toplevel, add_local_symbol, parse_stabs_common):
3015: More changes for smuggling stabs through from [email protected] and
3016: [email protected].
3017:
3018: * mips.h (ignore_line_number): New global, set when we must avoid
3019: putting out a MIPS ECOFF .loc because the file changed inside of a
3020: function, and we are also putting out stabs, which can handle this.
3021: (ASM_STABS_OP, ASM_STABN_OP, ASM_STABD_OP): Define to put a comment
3022: in front of the pseudo op, if we are encapsulating stabs in MIPS
3023: ECOFF.
3024: (ASM_OUTPUT_SOURCE_FILENAME): Change to call mips_output_filename.
3025: (ASM_OUTPUT_SOURCE_LINE): change to call mips_output_lineno.
3026:
3027: * mips.c (toplevel): Include stab.h for encapsulating stabs.
3028: (ignore_line_number): New global variable.
3029: (reg_or_0_operand): Call register_operand for REG's as well as
3030: SUBREG's.
3031: (override_option): Don't allow ints in FP registers unless -mdebugh.
3032: (mips_output_filename): New function to write the filename to the
3033: assembler output. Add special support for encapsulating .stabs in
3034: MIPS ECOFF.
3035: (mips_output_lineno): New function to write the line number to the
3036: assembler output. Add special support for encapsulating .stabs in
3037: MIPS ECOFF.
3038: (function_epilogue): Clear ignore_line_number.
3039:
3040: * mips.md (fix_trunc??si_opt, mov??_internal): Change '!' constraint
3041: back to '*'.
3042:
3043: Sat Dec 7 16:58:57 1991 Ken Raeburn ([email protected])
3044:
3045: * cp-spew.c (scan_tokens): Stop scanning at semi-colon.
3046:
3047: * cp-spew.c: Made SPEW_DEBUG code useable:
3048: (yylex): Use stderr in SPEW_DEBUG code.
3049: (yytags): Deleted table.
3050: (debug_yychar): Print to stderr, and don't try finding translations
3051: for values over 256.
3052:
3053: * cp-class.c (push_lang_context): Fix typo in comment.
3054:
3055: * cp-decl.c (finish_decl): Undo `pushclass' done in start_decl for
3056: top-level decls of methods.
3057:
3058: * cp-lex.c (restore_pending_input): Cast 0 to pointer type for
3059: obstack_free.
3060:
3061: * cp-pt.c (do_pending_expansions): Use TREE_USED instead of
3062: TREE_ADDRESSABLE for functions. Put in comments explaining why we
3063: compile unused methods of classes that are interface-unknown: the
3064: file initializer/cleanup functions might need them.
3065: (mumblefrotz): Delete unused function; this code is in cp-parse.y.
3066:
3067: Sat Dec 7 15:46:55 1991 Timothy Moore ([email protected])
3068:
3069: * function.c: Handle ARGS_GROW_DOWNWARD.
3070: (pad_below, pad_to_arg_alignment, round_down): New subroutines.
3071: (locate_and_pad_parm): Use them, for the existing case.
3072: Also handle the ARGS_GROW_DOWNWARD case, using them.
3073:
3074: Sat Dec 7 15:46:55 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
3075:
3076: * tree.h (DECL_ARG_TYPE_AS_WRITTEN): New macro.
3077: * c-decl.c (grokdeclarator): Store value there.
3078:
3079: * m68k.c (output_function_prologue, output_function_epilogue):
3080: Support MOTOROLA syntax.
3081:
3082: * toplev.c (main): Testing for -ggdb catches -g also.
3083: Default use_gdb_dbx_extensions to 1 for -gstabs, 0 for -gdbx.
3084: Specified default is for -g.
3085:
3086: * cccp.c (handle_directive): Store start address in directive_start.
3087: (do_xifdef): Use that, checking if at start of file.
3088: (do_endif): Compute ep properly.
3089:
3090: * protoize.c (abspath): Fix errors referencing argument cwd.
3091: (main): Allocate big enough buffer for getcwd.
3092: Don't clobber varargs_style_indicator, copy it.
3093: (savestring): New function.
3094:
3095: Sat Dec 7 00:53:16 1991 Ron Guilmette (rfg at ncd.com)
3096:
3097: * c-decl.c (warn_redundant_decls, warn_nested_externs): New vars.
3098: (c_decode_option): Support -Wredundant-decls and -Wnested-externs.
3099: (pushdecl): Print those warnings.
3100: * c-tree.h (warn_redundant_decls, warn_nested_externs): Declared.
3101:
3102: * c-decl.c (pending_xref_error, c_mark_varargs): Added return type.
3103:
3104: * cccp.c (main): Added code to support the presence of -A (assertion)
3105: options within CPP_PREDEFINES.
3106:
3107: * c-lang.c: Minor cleanups.
3108:
3109: * c-lex.c (check_newline): Added support for the -g3 option.
3110:
3111: * dwarfout.c (type_tag): Fixed bug in gcc Dwarf generation for
3112: tagged types.
3113:
3114: * dwarfout.c (output_decl): Added two pre-checks to see if nodes
3115: are ERROR_MARK nodes before using them.
3116:
3117: * dwarfout.c (generate_new_sfname_entry): Function added.
3118:
3119: * dwarfout.c (lookup_filename): Call generate_new_sfname_entry
3120: as soon as each new source filename is added to the list of
3121: known filenames (thus avoiding an m68k forward-ref assembler bug).
3122:
3123: * dwarfout.c (dwarfout_line): Initialize prev_file_entry_num to
3124: (unsigned) -1 rather than zero to avoid bogus suppression of
3125: first .debug_sfnames section entry.
3126:
3127: * dwarfout.c (compare_filename_entries): Function deleted. (It's
3128: no longer needed.)
3129:
3130: * dwarfout.c (dwarfout_finish): Don't generate .debug_sfnames
3131: section entries here anymore. (See lookup_filename.)
3132:
3133: * Makefile.in (realclean): Delete c-parse.h.
3134: Delete objc-parse.output just once.
3135:
3136: Fri Dec 6 17:49:28 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
3137:
3138: * cse.c (FIXED_BASE_PLUS_P): The frame or argument pointer itself is
3139: a fixed address.
3140: (find_comparison_args): If we find something equivalent to a
3141: fixed address, return the fixed address.
3142:
3143: * combine.c (try_combine): Don't access new_i2_notes if it hasn't been
3144: defined (it isn't defined unless newi2pat != 0).
3145:
3146: Fri Dec 6 16:01:02 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu)
3147:
3148: * rtl.h (enum reg_note): Define two new values REG_DEP_ANTI,
3149: REG_DEP_OUTPUT, which are used to mark LOG_LINKS.
3150: * rtl.c (reg_note_name): Likewise.
3151: (add_dependence): Return void. New parameter DEP_TYPE to indicate
3152: type of dependence.
3153:
3154: * sched.c: Major rewrite to delete much obsolete code, correct many
3155: comments, delete unused variables, etc. Modify all callers of
3156: add_dependence to pass new argument. Significant changes are:
3157: (reassign_dependence): Deleted, was unnecessary.
3158: (priority): Account for type of dependence when calculating
3159: priority.
3160: (flush_pending_lists): New function. Encapsulate code which makes
3161: dependencies between an INSN and every insn on the
3162: pending_read_insns and pending_write_insns lists.
3163: (rank_for_schedule): Account for type of dependence with last
3164: scheduled insn when deciding which ready insn to schedule next.
3165: (launch_link): Give all birthing insns the same priority.
3166: (schedule_block): Only sort the ready list once, after all ready
3167: insns have been added to it.
3168: (schedule_block): When deciding what REG_DEAD notes are needed on a
3169: just scheduled insns, process all sets first (sched_note_set) then
3170: process all uses (attach_deaths_insn).
3171: (attach_deaths): Simplified by above change.
3172: (sched_note_set): Likewise.
3173: (update_flow_info): Renamed from update_links, since it no longer
3174: does anything with LOG_LINKS. Sched_analyze_insn creates all
3175: necessary new LOG_LINKS already.
3176: (schedule_insn): Delete no op move insns after reload.
3177:
3178: Fri Dec 6 13:33:48 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
3179:
3180: * crtstuff.c: Give permission to link with non-free programs.
3181:
3182: * toplev.c (flag_inhibit_size_directive): New var and -f option.
3183: * svr4.h (ASM_DECLARE_OBJECT_NAME, ASM_DECLARE_FUNCTION_SIZE): Use it.
3184: * Makefile.in (crtbegin.o, crtend.o): Use that option. Use -g1.
3185:
3186: Fri Dec 6 08:42:53 1991 Ron Guilmette (rfg at ncd.com)
3187:
3188: * Makefile.in (STAGESTUFF): Added __main and _exit to support g++.
3189:
3190: * c-common.c (c_expand_expr_stmt): Made return type explicit.
3191:
3192: * c-common.c: (get_directive_line): Function added to support -g3.
3193:
3194: Fri Dec 6 04:50:39 1991 Michael Tiemann (tiemann at cygnus.com)
3195:
3196: * cp-tree.h (OPERATOR_ASSIGN_CHARS_P): Flushed.
3197: * cp-decl.c (grok_op_properties): Flush OPERATOR_ASSIGN_CHARS_P.
3198: * cp-init.c (add_{friend,friends}): Ditto.
3199:
3200: Thu Dec 5 22:31:12 1991 Jeffrey A Law (law at super.super.org)
3201:
3202: * m68k.h (CONST_COSTS): Show that constants which can be easily
3203: generated are less expensive than most.
3204:
3205: * m68k.md (movsi): Use two instruction sequences to load constants
3206: which are just outside moveq's range (within 8 of moveq's range).
3207: Likewise for positive even constants within twice moveq's range.
3208:
3209: Thu Dec 5 20:17:13 1991 Eric Youngdale (youngdale at v6550c.nrl.navy.mil)
3210:
3211: * config-gcc.com: Generate a file 'version.opt' which will be given
3212: to the VMS linker to put the gcc version number in the image
3213: header version number field.
3214:
3215: * make-cc1.com: Compile c-lex.c when building gcc and objc, and
3216: add c-lex.obj to the list of files given to the linker.
3217: Add version.opt to the list of files given to the linker.
3218:
3219: * make-cccp.com: Add version.opt to the list of files given to the
3220: linker.
3221:
3222: Thu Dec 5 23:04:20 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
3223:
3224: * combine.c (make_extraction): Don't make a STRICT_LOW_PART of a MEM;
3225: clean up comments so they agree with the code.
3226:
3227: * combine.c (try_combine): Correct test for when we can safely change
3228: the mode of a pseudo; can't if it doesn't die in I3.
3229:
3230: * c-decl.c (WCHAR_TYPE_SIZE): Deleted; never used.
3231: * c-common.c (WCHAR_TYPE_SIZE, WCHAR_BYTES): Deleted, no longer needed.
3232: (combine_strings): Use size of `wchar_type_node' to get number of
3233: bytes in wchar_t.
3234: * next.h (WCHAR_TYPE_SIZE): Delete; no longer used.
3235:
3236: * cse.c (cse_main): Add new argument to cse_basic_block_call.
3237: Don't call cse_around_loop here.
3238: (cse_basic_block): Call cse_around_loop from here while we still
3239: have our arrays allocated.
3240:
3241: * combine.c (simplify_comparison): Fix error in last change; don't
3242: reference TEM before it is set.
3243:
3244: * toplev.c (fatal_insn_not_found): Flush all files before aborting.
3245:
3246: Thu Dec 5 21:42:29 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
3247:
3248: * objc-actions.c (build_objc_method_call): Eval OBJECT and SELECTOR
3249: only once. Always pass self_decl as self to the method.
3250:
3251: Thu Dec 5 14:52:16 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu)
3252:
3253: * ccrtstuff.c, gnulib2.c, protoize.c: Include tm.h not config.h,
3254: since these are complied for the target, host defines do not apply.
3255:
3256: Thu Dec 5 14:52:24 1991 Michael Meissner (meissner at osf.org)
3257:
3258: * dbxout.c (ASM_STABS_OP, ASM_STABN_OP, ASM_STABD_OP): If
3259: not defined, define as .stabs/.stabn/.stabd respectively. Change
3260: all places emitting stabs to use the macros.
3261: * cp-decl2.c: Ditto.
3262: * cp-gc.c: Ditto.
3263: * final.c: Ditto.
3264: * varasm.c: Ditto.
3265: * gcc.texinfo: Document ASM_STAB[DNS]_OP macros.
3266:
3267: Thu Dec 5 12:03:40 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
3268:
3269: * gcc.c (process_command): Don't put `.' on startfile_prefix.
3270: Cast result of alloca.
3271:
3272: * config/*.h (ASM_OUTPUT_ASCII): Put parens around all uses of args.
3273:
3274: * hp800.h, hp800.c, hp800.md, xm-hp800.h: New files.
3275: * va-hp800.h: New file.
3276: * gvarargs.h: Use va-hp800.h if needed.
3277: * config.subr, configure: Add alternatives for hp800, hp700.
3278:
3279: Thu Dec 5 09:35:15 1991 Michael Tiemann (tiemann at cygnus.com)
3280:
3281: * cp-search.c (note_debug_info_needed): Do the right thing for
3282: static member functions.
3283:
3284: Thu Dec 5 01:25:13 1991 Michael Tiemann (tiemann at mole.gnu.ai.mit.edu)
3285:
3286: * version.c: Now 1.96.
3287:
3288: Wed Dec 4 23:17:23 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
3289:
3290: * reorg.c (try_merge_delay_insns, fill_simple_delay_slots): Correctly
3291: update NEXT_TRIAL after possibly splitting an insn.
3292:
3293: Wed Dec 4 17:03:11 1991 Jim Wilson (wilson at sphagnum.cygnus.com)
3294:
3295: * gplus.gperf: Add throw and template keywords. Update private,
3296: protected, and public definitions.
3297:
3298: * print-tree.c (print_node): Add missing indentation argument to
3299: print_node call for values field.
3300:
3301: Wed Dec 4 18:39:33 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
3302:
3303: * objc-actions.c (build_objc_method_call): Define as static.
3304:
3305: Wed Dec 4 17:04:49 1991 Michael Meissner (meissner at osf.org)
3306:
3307: * mips-tfile.c (add_varray_page, alloc_type enum): Keep track of how
3308: many pages we allocated for varrays as well as the small stuff.
3309: (stabs_filename): New static to hold the special filename used for
3310: passing stabs through.
3311: (parse_stabs_common, parse_stabs, parse_stabn): New functions to
3312: smuggle stabs through to the debugger. Stabs must be commented out,
3313: just like the other debug directives.
3314: (add_local_symbol): Check hash_ptr to see if it's null before
3315: storing into it, in case no name is passed.
3316: (add_file): Add support for the special stabs file.
3317: (copy_object): Before copying the external symbols, figure out the
3318: file indexes of each of the files, and then explicitly remap the
3319: original file indexes of the external symbol to be the new file
3320: index. If this isn't done, then bad file numbers can get generated
3321: if a filename is repeated.
3322: (various): Change the name of small_alloc to alloc_counts, since we
3323: now track large memory allocations as well.
3324:
3325: * mips-tdump.c (toplevel): Delete unnecessary include file stamp.h.
3326:
3327: Wed Dec 4 11:05:04 1991 Michael Collison (collison at osf.org)
3328:
3329: * encore.h (ASM_OUTPUT_LABELREF_AS_INT): add definition
3330: * ns32k.h: ditto
3331:
3332: * ns32k.h (ASM_OUTPUT_LABEL, ASM_GLOBALIZE_LABEL): If COLLECT is
3333: defined provide alternate definitions
3334:
3335: * encrose.h (ASM_OUTPUT_INT): If COLLECT is defined provide
3336: alternate definition
3337:
3338: Wed Dec 4 01:39:07 1991 Ken Raeburn ([email protected])
3339:
3340: * cp-pt.c (end_template_decl): For method templates, pop the class
3341: binding level before the others rather than after.
3342:
3343: * cp-class.c: Added DEBUG_CP_BINDING_LEVELS code. Include cp-decl.h
3344: if that symbol is defined, but don't list it in Makefile.in since
3345: that's not the normal mode.
3346: (pushclass): Print messages and frob indentation level.
3347: (popclass): Likewise.
3348:
3349: * cp-spew.c (yylex): If identifier_type says PTYPENAME, and
3350: following token is "<", force looking_for_typename to be
3351: non-negative.
3352:
3353: * cp-pt.c (mangle_class_name_for_template): Drop extra spaces
3354: between last parm and closing ">". Print a message before aborting
3355: if a parm type isn't handled.
3356:
3357: * cp-decl.c (maybe_globalize_type): Don't do it if the identifier
3358: that names the type doesn't currently have a type value.
3359:
3360: Wed Dec 4 01:06:28 1991 Michael Tiemann (tiemann at cygnus.com)
3361:
3362: * cp-decl.c (finish_enum): Call `rest_of_type_compilation' for
3363: ENUMTYPE.
3364: * cp-class.c (finish_struct): Ditto.
3365: * cp-decl.c (pushtag): Set TYPE_STUB_DECL.
3366: * cp-search.c (note_debug_info_needed): Call
3367: `rest_of_type_compilation' if we notice we need debug info for TYPE.
3368: * dbxout.c (dbxout_init): Fix typo in comment.
3369:
3370: * cp-parse.y (DOT_STAR): New token.
3371: (expr_no_commas): Handle DOT_STAR expressions.
3372: * cp-lex.c (real_yylex): Recognize DOT_STAR. Also, rearrange
3373: scanner to make it more efficient.
3374:
3375: * cp-decl.c (maybe_build_cleanup): When building cleanups, pass
3376: TYPE_MAIN_VARIANT to `build_delete'.
3377:
3378: Tue Dec 3 22:52:33 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu)
3379:
3380: * flow.c (mark_set_1): Make a REG_UNUSED note not a REG_DEAD note
3381: for the part of multi-word hard registers not needed.
3382:
3383: Tue Dec 3 22:34:13 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
3384:
3385: * configure: Support --objdir.
3386:
3387: * objc-parse.y: Get rid of many static decls.
3388: Reorder all token definitions to match c-parse.y.
3389: (recognize_objc_keyword): New function.
3390: * c-lex.c (token_buffer): No longer static.
3391: (yylex): For @, call recognize_objc_keyword. Don't use keyword table.
3392: * c-lang.c (recognize_objc_keyword): Dummy definition.
3393:
3394: * objc-actions.c (build_objc_method_call) [!NEXT_OBJC_RUNTIME]:
3395: Pass selector as arg to the method.
3396: Always cast the method to a function type.
3397:
3398: * xm-sparc.h (alloca): If using Sun CC, include alloca.h.
3399: If using GCC, define as __builtin_alloca the way other machines do.
3400:
3401: * cccp.c (print_containing_files): Print the nominal file names.
3402:
3403: Tue Dec 3 16:54:04 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
3404:
3405: * jump.c (jump_optimize): If branches are expensive, convert jumps
3406: around increments or decrements by one into an increment by the
3407: conditional expression.
3408:
3409: * combine.c (simplify_comparison): Don't remove a SUBREG unless
3410: it doesn't affect either operand.
3411:
3412: * cse.c (find_comparison_args): Rework so that we can correctly
3413: fold comparisons on machines that set CC0 to the result of a
3414: condition test, not just a COMPARE.
3415: (cse_insn): Don't set THIS_INSN_CC0 to a constant if we don't know
3416: its mode.
3417:
3418: Tue Dec 3 12:01:12 1991 Jim Wilson (wilson at sphagnum.cygnus.com)
3419:
3420: * mips.md: Use AND not IOR in define_function_unit definitions.
3421: Correct setting of MODE attribute in various insn patterns.
3422:
3423: Tue Dec 3 08:31:18 1991 Michael Tiemann (tiemann at cygnus.com)
3424:
3425: * cp-spew.c (scan_tokens): Delete Dec 2 change.
3426: (yylex): Instead, copy TMP_TOKEN.YYLVAL.TTYPE if it was allocated on
3427: the wrong obstack.
3428: (probe_obstack): New function to support the above change.
3429:
3430: * cp-tree.h (CLASSTYPE_DEBUG_REQUESTED): New flag.
3431: (CLASSTYPE_ASM_WRITTEN): Deleted.
3432: cp-class.c (finish_struct): Now almost always assume that classes
3433: with methods are to ignored for debugging purposes.
3434: cp-search.c (dfs_debug_{mark,unmarkedp}): Rewritten to handle new
3435: algorithm for minimizing debug output.
3436:
3437: * cp-decl2.c (constructor_name): Handle case when THING is a
3438: UNION_TYPE.
3439:
3440: Tue Dec 3 06:35:38 1991 Michael Tiemann (tiemann at cygnus.com)
3441:
3442: * jump.c (duplicate_look_exit_test): If REG_MAP is non-zero, call
3443: replace_regs on the REG_NOTES of COPY.
3444:
3445: * cp-spew.c (scan_tokens): Don't read past '='.
3446:
3447: * cp-call.c (compute_conversion_costs): For now, treat
3448: CONTRAVARIANCE_HARSHNESS as EVIL_HARSNESS, since we cannot tell the
3449: difference between when we should accept it (pointers to the right
3450: sort of methods) and when we shouldn't (base* to derived*
3451: conversions).
3452:
3453: Mon Dec 2 18:53:42 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu)
3454:
3455: * cse.c (cse_around_loop): Fix typo in comment.
3456: * dbxout.c (dbxout_type_fields): Likewise.
3457:
3458: * sched.c (sched_analyze_1): Pass the second and third args of a
3459: ZERO_EXTRACT or SIGN_EXTRACT in the SET_DEST to sched_analyze_2.
3460:
3461: * combine.c (make_compound_operation): Change (lshiftrt (ashift ...))
3462: to a ZERO_EXTRACT, not a SIGN_EXTRACT.
3463:
3464: Mon Dec 2 15:09:13 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
3465:
3466: * jump.c (jump_optimize): New arg AFTER_REGSCAN.
3467: If not set, don't use duplicate_loop_exit_test.
3468: * toplev.c (compile_file): Pass new arg to jump_optimize.
3469:
3470: * next.h (SELECT_SECTION): Test TREE_CONSTANT as well as TREE_READONLY.
3471:
3472: * xm-i86v[34].h: Renamed from xm-i860v[34].h.
3473: * configure: Corresponding changes.
3474:
3475: * m68k.c (output_function_epilogue): Put %R on all regs in asm_fprintf.
3476:
3477: * t-decstatn (ld): Just copy collect2.
3478: (collect): Target deleted.
3479: (EXTRA_PASSES): Deleted collect.
3480: (mips-tfile, mips-tdump): Depend on LIBDEPS.
3481: * t-mips (mips-tfile, mips-tdump): Depend on LIBDEPS.
3482: * collect2.c (main): Run /bin/ld.
3483: Use fatal_perror where appropriate.
3484:
3485: * objc-actions.c (build_message_expr): Fix typo.
3486:
3487: * configure: Add missing fi to finish last change.
3488:
3489: * cse.c (simplify_binary_operation): Restore missing break in case DIV.
3490:
3491: * sdbout.c (sdbout_init): Explicitly do nothing.
3492: (sdbout_typedefs): Function deleted.
3493:
3494: Mon Dec 2 12:504:35 1991 Eric Youngdale (youngdale at v6550c.nrl.navy.mil)
3495:
3496: * config-gcc.com: Finish changeover from tm-*.h to *.h.
3497:
3498: Sun Dec 1 05:18:32 1991 Michael Tiemann (tiemann at cygnus.com)
3499:
3500: * cp-search.c (lookup_{field,fnfields}): If PROTECT is 0, don't
3501: memoize the entry we find.
3502:
3503: * cp-decl.c (grokvardecl): Call `build_lang_field_decl' instead of
3504: `build_decl' if we retroactively allocate a VAR_DECL.
3505:
3506: Sun Dec 1 00:10:18 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
3507:
3508: * configure: Convert option syntax from + to --.
3509: Support --target.
3510:
3511: * i386v4.h (ASM_OUTPUT_LOCAL, ASM_OUTPUT_GLOBAL): Deleted.
3512: (ASM_FILE_START): Deleted.
3513: (STARTFILE_SPEC, LIB_SPEC, STANDARD_STARTFILE_PREFIX): Deleted.
3514: (STDC_VALUE): Deleted.
3515:
3516: * real.h (REAL_VALUE_TRUNCATE): Check for same size as SFmode.
3517:
3518: * config/*.h: Renamed from tm-*.h. #includes and comments changed.
3519: * configure: Changed accordingly.
3520: * t-*: tm-*.h file names changed.
3521:
3522: * gnulib2.c (__enable_execute_stack): Renamed function.
3523: * convex.h (INITIALIZE_TRAMPOLINE): Use new name.
3524:
3525: Sun Dec 1 08:57:45 1991 Michael Meissner (meissner at osf.org)
3526:
3527: * cccp.c (main): Add cast in front of alloca for non GCC compilers.
3528:
3529: Sat Nov 30 22:33:24 1991 Chris Smith ([email protected])
3530:
3531: * config.subr: Recognize -c3*.
3532: New alternatives for convex-c3*.
3533: * configure: Alternatives for convex rewritten.
3534:
3535: * gnulib2.c (__execute_enable_stack): New function for Convex only.
3536:
3537: * gcc.c (do_spec_1): Use \ as quoting char.
3538:
3539: * convex.h (TARGET_SWITCHES): Add new machine types c32, c34, c38.
3540: Add flag TARGET_INDIRECTS, true for c1 and c2, false for c3.
3541: * convex.h (GO_IF_LEGITIMATE_ADDRESS): Avoid indirect
3542: addressing if ! TARGET_INDIRECTS.
3543:
3544: * convex.h: (BITS_PER_WORD, UNITS_PER_WORD, WORDS_BIG_ENDIAN):
3545: It now works to describe machine correctly.
3546:
3547: * convex.h (SIZE_TYPE, PTRDIFF_TYPE): Make them ints rather
3548: than longs to match usage in /usr/include.
3549:
3550: * convex.h (enum reg_class): Add classes SP_REGS, the stack
3551: pointer, and INDEX_REGS, the remaining A_REGS.
3552: (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS): Adjust
3553: for new classes.
3554: (INDEX_REG_CLASS, BASE_REG_CLASS): Use INDEX_REGS so gcc will
3555: not index off the stack pointer (register 0).
3556:
3557: * convex.h (TRAMPOLINE_TEMPLATE, TRAMPOLINE_SIZE,
3558: INITIALIZE_TRAMPOLINE): Define.
3559:
3560: * convex.h (INITIAL_FRAME_POINTER_OFFSET): Define.
3561:
3562: * convex.h (RTX_COSTS): Specify costs to prevent multiply
3563: from being synthesized from shifts (which aren't faster).
3564:
3565: * convex.h (NOTICE_UPDATE_CC): No need to do CC_STATUS_INIT,
3566: cc is never looked at.
3567:
3568: * convex.h (VTABLE_USES_MASK, VINDEX_MASK, SET_DECL_VINDEX):
3569: define so g++ works.
3570:
3571: * convex.h: If COLLECT is defined, define output macros for
3572: collect to call.
3573:
3574: * convex*.h: If !traditional, define _LONGLONG and 64-bit
3575: typedefs to prevent types.h from murdering ansi compilations.
3576:
3577: * convex.md (movsi): split into define_expand and two
3578: anonymous define_insns, one that uses indirection and
3579: one that doesn't. TARGET_INDIRECTS selects which.
3580:
3581: * convex.c (output_call): New routine. Scan forward from call
3582: to decide if AP is live, omit AP reload if not.
3583: * convex.md (call, call_value): use output_call.
3584:
3585: * convex.md (bit manipulation peepholes): remove, now done in
3586: combine.
3587:
3588: * convex.md (indirect_jump): Define.
3589:
3590: * convex.c (const_double_{high,low}_int): Just return the
3591: appropriate word, remove slow float computations.
3592:
3593: * math-convex: New file to use builtin instructions.
3594:
3595: * x-convex: Use cc -pcc to bootstrap gcc.
3596:
3597: Sat Nov 30 10:21:26 1991 Ron Guilmette (rfg at ncd.com)
3598:
3599: * tm-i386v4.h (DBX_REGISTER_NUMBER): Different renumbering.
3600:
3601: * tm-svr4.h (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Changed
3602: so that the progbits parameter actually appears in the definitions.
3603:
3604: * tm-svr4.h (CTORS_SECTION_FUNCTION, DTORS_SECTION_FUNCTION): Adapted
3605: for change in CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP.
3606:
3607: Sat Nov 30 07:05:06 1991 Michael Tiemann (tiemann at cygnus.com)
3608:
3609: * cp-spew.c (follows_{identifier,typename}): New arrays.
3610: * cp-spew.c (init_spew): Initialize new arrays.
3611: * cp-decl.c (lookup_name): takes new parameter PREFER_TYPE.
3612: All callers changed.
3613: * cp-spew.c (yylex): Set LOOKING_FOR_TYPENAME every time we see an
3614: AGGR or ENUM.
3615:
3616: * cp-lex.c (real_yylex): When composing EXTERN_LANG_STRING, call
3617: `real_yylex', not `yylex'. Changed other places that depended on
3618: calling `real_yylex' for their input.
3619:
3620: * cp-spew.c (scan_tokens): Never read past '{' or ':'. Fill the
3621: token buffer with EMPTY tokens in that case.
3622: (yylex): Handle EMPTY tokens.
3623:
3624: * cp-parse.y (structsp): Avoid using `yyungetc' to push a ';' back
3625: on the input stream.
3626: (START_DECLARATOR): New token.
3627: (absdcl): Handle START_DECLARATOR.
3628: * cp-spew.c (consume_token): Renamed from `discard_token'.
3629: (struct token): Changed structure to make it smaller.
3630: (spew_init): Renamed from init_spew. Now called from init_lex.
3631: (scan_tokens): Renamed from slurp_next_token.
3632: Many functions reformatted to match GCC indentation style.
3633:
3634: * cp-lex.c (arbitrate_lookup): Don't guess in favor of type if
3635: yychar is ')'.
3636:
3637: * cp-decl.c (lookup_name): Fixed so that all binding levels use
3638: `looking_for_typename' consistently.
3639: * cp-type2.c (build_functional_cast): Handle new case that we are
3640: called in a context where a method is appropriate (but we parsed it
3641: as a ctor call).
3642:
3643: * cp-call.c (CONST_HARSHNESS): Change bit that we test.
3644: (convert_harshness,compute_conversion_costs): Call CONST_HARSHNESS
3645: consisently when needed.
3646:
3647: * cp-init.c (decl_constant_value): Keep enabled even when
3648: CURRENT_FUNCTION_DECL is null.
3649:
3650: Sat Nov 30 01:23:38 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
3651:
3652: * sdbout.c (sdbout_init): Just call sdbout_one_type on each type.
3653:
3654: * tm-att386.h (ASM_OUTPUT_ASCII): Output a space after ASM_BYTE_OP.
3655: * tm-sun386.h: Likewise.
3656: * tm-i386.h (ASM_OUTPUT_BYTE, ASM_OUTPUT_CHAR): Likewise.
3657: (ASM_OUTPUT_SHORT, ASM_OUTPUT_LONG, ASM_OUTPUT_DOUBLE): Likewise.
3658: (ASM_OUTPUT_FLOAT, ASM_OUTPUT_ADDR_VEC_ELT): Likewise.
3659: * tm-att386.h (ASM_BYTE_OP, ASM_SHORT, ASM_LONG, ASM_DOUBLE):
3660: Don't end with space.
3661: * tm-sun386.h, tm-bsd386.h: Likewise.
3662:
3663: * c-lex.h: Renamed from c-parse.h. All #includes changed.
3664: * c-parse.c, c-parse.h: Renamed from c-parse.tab.*.
3665: * Makefile.in: Changed accordingly.
3666: (C_OJBS, realclean, TAGS): These changed too.
3667:
3668: * tm-svr4.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS):
3669: Undef before defining.
3670:
3671: * tm-i386v4.h: Include tm-svr4.h.
3672: (CPP_PREDEFINES): Define SVR4, and several assertions.
3673: (LIB_SPEC): Delete -Qy. LINK_SPEC handles this.
3674: (DBX_REGISTER_NUMBER): New macro.
3675:
3676: Fri Nov 29 22:16:06 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
3677:
3678: * rs6000.md: Cannot use "muls" and "muli" to do widening multiply
3679: from HImode to SImode; delete the 12 patterns that try to do this.
3680:
3681: Fri Nov 29 21:32:52 1991 Michael Tiemann (tiemann at cygnus.com)
3682:
3683: * cp-cvt.c (build_type_conversion): Don't assume that if
3684: TYPE_HAS_{INT,REAL}_CONVERSION implies that CLASSTYPE_CONVERSION for
3685: the given type combination is non-NULL.
3686:
3687: Fri Nov 29 16:08:22 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
3688:
3689: * crtstuff.c: New file. Needs papers from rfg.
3690: * Makefile.in (crtbegin.o, crtend.o): New targets.
3691:
3692: * objc-actions.c (build_message_expr): Lots of cleanups.
3693: (build_objc_method_call): New subroutine.
3694: Handles new option NEXT_OBJC_RUNTIME.
3695:
3696: * expr.c (do_jump): Any LABEL_REF is nonzero.
3697: (expand_expr): Construct LABEL_REFs with Pmode.
3698:
3699: Fri Nov 29 14:43:32 1991 Michael Meissner (meissner at osf.org)
3700:
3701: * mips-tfile.c (parse_def): Change an error into a warning.
3702:
3703: * mips.md (fix_trunc??si_opt, mov??_internal): Change '*' constraint
3704: to '!' to keep reload from allocating FP registers from holding
3705: excess integer values.
3706: (ashift right define_splits): Fix typo, so that the long long
3707: arithmetic right shifts are recognized.
3708: (all define_splits): dummy out constraints, since they are not used.
3709:
3710: * mips.c (override_options): Allow int's in FP registers again, now
3711: that ! constraints are used.
3712:
3713: Fri Nov 29 13:20:13 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
3714:
3715: * dwarfout.c (output_compile_unit_die): Don't include the name
3716: of the compiler which compiled the compiler in the AT_producer
3717: string. It goofs up comparisons of stage2 & stage3 object files.
3718:
3719: * c-parse.y, objc-parse.y: Don't declare position_after_white_space
3720: as static; it is now in c-lex.c.
3721:
3722: Fri Nov 29 05:15:26 1991 Michael Tiemann (tiemann at cygnus.com)
3723:
3724: * cp-decl.c (xref_tag): Check that TREE_CODE (ref) is aggr type
3725: before storing into CLASSTYPE_DECLARED_CLASS (ref).
3726:
3727: * cp-decl2.c (build_push_scope): Don't let non-aggr types appear in
3728: `cname::fname' expressions.
3729:
3730: * cp-class.c (resolves_to_fixed_type_p): VAR_DECL and FIELD_DECL
3731: nodes of ARRAY_TYPE may resolved to fixed type. Also handle other
3732: cases of WITH_CLEANUP_EXPR.
3733:
3734: * cp-spew.c (frob_identifier): Handle case of a type conversion
3735: operator that converts to a nested type.
3736:
3737: * cp-expr.c (cplus_expand_expr): In NEW_EXPR case, if ARGS is
3738: permanent, build a new arglist instead of modifying it in place.
3739:
3740: * cp-typeck.c (convert_arguments): Add ??? to comment about virtual
3741: function conversions. ??? I don't understand what that code is
3742: supposed to do anymore.
3743: (comp_target_parms): If STRICT <= 0, accept types whose
3744: TYPE_MAIN_VARIANTs are equal.
3745:
3746: * cp-call.c (convert_harshness): Revamped to handle contravariance
3747: better.
3748: * cp-class.h (struct candidate): Declaration moved from cp-tree.h.
3749:
3750: * cp-class.c (duplicate_tag_error): New function.
3751: * cp-parse.y (LC): Call it if we're redefining a tag.
3752: * cp-decl.c (duplicate_decls): Only copy DECL_ARGUMENTS from OLDDECL
3753: if non-NULL. Otherwise we get nonsense when we try to parse
3754: inline function bodies of classes that have already been redefined.
3755: * cp-lex.c (reinit_parse_for_method): If we get some text for a
3756: class that's been redefined, flush the text.
3757: * cp-tree.h (TYPE_REDEFINED): New field in `struct lang_type'.
3758:
3759: * cp-cvt.c (convert_to_integer): Only warn about anachronistic
3760: conversion from int to enum if PEDANTIC is nonzero.
3761:
3762: * cp-typeck.c (convert_for_initialization): No longer give warning
3763: messages about bitwise copy: this is currently how the default X(X&)
3764: constructor is implemented.
3765: * cp-init.c (expand_aggr_init_1): Ditto.
3766:
3767: * cp-method.c (dump_init): Handle WITH_CLEANUP_EXPR and TARGET_EXPR.
3768: * tree.c (simple_cst_equal): Handle WITH_CLEANUP_EXPR. Correct
3769: handling of TARGET_EXPR case.
3770:
3771: * cp-decl.c (grok_reference_init): If DECL is permanent, make it's
3772: DECL_REFERENCE_SLOT permanent as well.
3773:
3774: * cp-cvt.c (build_type_conversion): If PEDANTIC, give message about
3775: conversions which cast away const.
3776:
3777: * cp-decl.c (store_return_init): If PEDANTIC, give error about named
3778: return values.
3779:
3780: * cp-init.c (decl_constant_value): Don't return DECL_INITIAL if
3781: CURRENT_FUNCTION_DECL is null or if the initializer is a
3782: CONSTRUCTOR.
3783:
3784: Thu Nov 28 05:29:52 1991 Michael Tiemann (tiemann at cygnus.com)
3785:
3786: * integrate.c (expand_inline_function): When passing objects by
3787: invisible reference, correctly compute the amount of space to be
3788: allocated in the pseudo-frame we create for the inline function.
3789:
3790: * cp-typeck.c (mark_addressable): Add call to
3791: `mark_inline_for_output' that got lost in Nov 25 change.
3792:
3793: * cp-decl.c (push_overloaded_decl): If the value of a name is an
3794: ADDR_EXPR, look inside to get the _DECL node.
3795:
3796: * cp-decl.c (grokdeclarator): Don't convert type of operators new
3797: and delete to METHOD_TYPE; they remain FUNCTION_TYPEs.
3798:
3799: * function.c (expand_function_start): Set TREE_REGDECL bit on
3800: RESULT_DECL if result starts life in a register.
3801:
3802: * c-common.c (truthvalue_conversion): Don't treat a CONVERT_EXPR as
3803: a NOP when it or the expression inside it is of REFERENCE_TYPE.
3804:
3805: * cp-class.c (finish_struct): Test DESTRUCTOR_NAME_P on
3806: DECL_ASSMBLER_NAME, not DECL_NAME.
3807:
3808: Wed Nov 27 13:49:10 1991 Jim Wilson (wilson at sphagnum.cygnus.com)
3809:
3810: * cse.c (simplify_relational_operation): Correct handling of
3811: COMPARE as first argument. Always strip it off. Don't invert
3812: return value for EQ when !HAVE_cc0.
3813:
3814: Thu Nov 28 20:08:15 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
3815:
3816: * gmon.c: New file.
3817:
3818: Thu Nov 28 15:02:24 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
3819:
3820: * combine.c (subst, case SET): Never make a paradoxical SUBREG of
3821: a REG unless the SUBREG and REG occupy the same number of words.
3822:
3823: * emit-rtl.c: Include flags.h.
3824: (operand_subword): Always look inside floating if -fpretend-float.
3825: * final.c (split_double): Likewise.
3826: * Makefile.in (emit-rtl.o): Includes flags.h.
3827:
3828: * c-lex.c (yylex): Add goto to `L' case.
3829:
3830: Thu Nov 28 08:37:02 1991 Michael Tiemann (tiemann at mole.gnu.ai.mit.edu)
3831:
3832: * tm-mips.h (ASM_OUTPUT_INT): Use `do {...} while (0)' so it can be
3833: used in if/else constructs.
3834:
3835: Thu Nov 28 00:23:26 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
3836:
3837: * tree.h (BUILT_IN_FRAME_ADDRESS, BUILT_IN_RETURN_ADDRESS):
3838: New function codes.
3839: * c-decl.c (init_decl_processing): Declare the functions.
3840: * expr.c (expand_builtin): Implement them.
3841:
3842: * gcc.c: Pass to ld all the dirs in LIBRARY_PATH:
3843: (library_prefix): New list of prefixes.
3844: (process_command): Put dirs from LIBRARY_PATH on that list.
3845: (do_spec_1): %D outputs those dirs.
3846: (link_command_spec): Use %D after passing -L options.
3847:
3848: * gcc.c (process_command): Don't require machine suffix
3849: for dirs from COMPILER_PATH or LIBRARY_PATH.
3850:
3851: * cccp.c (main): C_INCLUDE_PATH, etc., add dirs rather than replacing.
3852:
3853: * Use the TYPE_DECLs to drive dbx and sdb output of type tags.
3854: * toplev.c (rest_of_type_compilation): New function.
3855: (compile_file): Pass list of initial decls to dbxout_init, sdbout_init.
3856: (various): Don't call get_*_types.
3857: * dbxout.c (dbxout_init): Get initial types from that list.
3858: * sdbout.c (sdbout_init): Likewise.
3859: * sdbout.c, dbxout.c: Don't call get_*_types.
3860: (*out_typedefs): New subroutines.
3861: * c-decl.c (finish_struct, finish_enum): Call rest_of_type_compilation.
3862: (pushtags): Record TYPE_STUB_DECL.
3863: * tree.h (TYPE_STUB_DECL): New macro.
3864: * stor-layout.c (chain_type, get_permanent_types, get_temporary_types):
3865: Deleted.
3866: (save_storage_status, restore_storage_status): Don't frob chains.
3867: (layout_type): Don't call chain_type.
3868:
3869: * dbxout.c (dbxout_type_fields): Output `/'-spec after type tag
3870: only if really needed.
3871:
3872: Wed Nov 27 18:52:55 1991 Michael Tiemann (tiemann at cygnus.com)
3873:
3874: * expr.c (expand_expr): Typo in expand_end_bindings, in BIND_EXPR case.
3875:
3876: Wed Nov 27 23:10:48 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
3877:
3878: * cccp.c (main): Use savestring, not strdup.
3879:
3880: Wed Nov 27 17:10:17 1991 Michael Meissner (meissner at osf.org)
3881:
3882: * mips.c (mips_load_reg3, mips_load_reg4): New global variables to
3883: enable scheduling the second nop for the mfhi and mflo instructions.
3884: (mips_hard_regno_mode_ok): New global array to give the results
3885: of HARD_REGNO_MODE_OK for each register and mode.
3886: (mips_fill_delay_slot): Instead of taking the number of nops as a
3887: parameter, take an enumeration, giving what kind of delay this is.
3888: If the next instruction is a label, put nops before label, not
3889: after. Add support for mflo/mfhi, which need 2 nops if the next
3890: instruction would modify the hi/lo registers.
3891: (mips_move_1word, mips_move_2words): mips_fill_delay_slot calling
3892: sequence changes. Pass mflo/mfhi to schedule nops.
3893: (mips_move_2words): Move DImode to/from hi and lo registers is now
3894: supported.
3895: (function_arg): Correctly align long long parameters, just like
3896: doubles. Also correct typo in debug code. Bug report from
3897: [email protected].
3898: (override_options): Initialize mips_hard_regno_mode_ok. Restrict
3899: int's from going in the FP registers, to limit the register
3900: allocator from allocating them instead of using memory. Also, make
3901: the special registers (HI, LO, FPSW) only accept full sized ints, or
3902: a double int for the HI:LO combination.
3903: (compute_frame_size): Don't set the initialized member until reload
3904: has completed, since otherwise the information may change.
3905:
3906: * mips.md (various): Add 64 bit integer operations for addition,
3907: subtraction, negation, and, inclusive or, exclusive or, one's
3908: complement, shifts, and nor. Add 32x32->64 bit support for
3909: multiply, which the compiler then uses to construct 64 bit
3910: multiplies.
3911: (mulsi3): Break mul into it's two instructions, and schedule the
3912: two nops needed for the mflo instruction. Don't allow an integer
3913: multiplier anymore.
3914: (ffssi2): Delete define_expand, and use a second clobber'ed register
3915: to preserve the original input, instead of (clobber (match_dup 1)).
3916: (movsi_ulw): Change mips_fill_delay_slot calling sequence.
3917: (movdi_internal): Allow DImode move from HI/LO to/from GP registers.
3918: (movdi define_split): Add a define_split to separate the two parts
3919: of DImode register pairs when using GP registers.
3920: (movdf define_split): Add a define_split to separate the two parts
3921: of DFmode register pairs when using GP registers.
3922: (mov??_internal): Change condition to call memory_operand, instead
3923: of just checking for MEM, which disallows (subreg (MEM)) during
3924: the intermediate parts of the compilation. Reported by
3925: [email protected].
3926: (negsi2): Turn back into a real insn instead of just a
3927: define_expand for subsi3.
3928: (one_cmplsi2): Turn back into a real insn instead of just a
3929: define_expand for norsi3.
3930: (andsi3, iorsi3, xorsi3): Be more liberal than the real machine, and
3931: allow 32 bit constants to improve the code generated for bitfields,
3932: at the expense of potentially not moving the constant out of loops.
3933: (various): Add = constraint to all clobbers.
3934: (fix_trunc*): Go back to old method of using two clobbers, since
3935: unoptimized compiles call abort otherwise, when returning the result
3936: of truncating a float as a function result.
3937:
3938: * tm-mips.h (delay_type): New enum to express different types of
3939: delay slots.
3940: (mips_load_reg3, mips_load_reg4): Declarations for more registers
3941: to check for needing nops. Used by multiply/divide to schedule
3942: the two nops needed after mfhi/mflo if the next instruction would
3943: clobber the register.
3944: (CONDITIONAL_REGISTER_USAGE): If -msoft-float, disable all FP
3945: registers.
3946: (MASK_DEBUG_G): Add comment saying -mdebugg turns of new DImode
3947: patterns, in case the code is wrong.
3948: (HARD_REGNO_NREGS): All FP registers use register pairs, so that
3949: SF in a GP register takes only one register, and SI in a FP
3950: register takes 2.
3951: (HARD_REGNO_MODE_OK): Change macro to reference the array
3952: mips_hard_regno_mode_ok, which is now built in override_options.
3953: (CONST_OK_FOR_LETTER_P): 'N' is now for negative numbers, 'O' is
3954: an exact power of 2, and 'P' is now for positive numbers.
3955: (PREFERRED_RELOAD_CLASS): If -msoft-float, never prefer a FP
3956: register.
3957: (PREFERRED_RELOAD_CLASS_FM): Delete, since nobody uses it.
3958: (FINAL_PRESCAN_INSN): Check for mips_load_reg3 and mips_load_reg4
3959: being mentioned. Also add a missing tab when more than one delay
3960: slot.
3961: (CONST_COSTS): Make all constant ints cost 0 to lower register
3962: pressure according to Richard Kenner.
3963: (RTX_COSTS): Adjust costs for DI, SF, and DF modes, and add ABS/FFS
3964: costs as well.
3965: (REGISTER_MOVE_COSTS): Bump costs for moving between register
3966: classes, so that reload doesn't try to store int type values in the
3967: floating point registers.
3968:
3969: Wed Nov 27 15:01:52 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
3970:
3971: * config-gcc.com: Renaming of out-vax.c.
3972: * make-cc1.com: Link dbxout with all languages. Add cp-spew.
3973:
3974: * cccp.c (include_defaults_array): Fix typo.
3975:
3976: * gstddef.h: Handle _STDDEF_H_.
3977:
3978: * configure.bat, Makefile.dos: New files.
3979:
3980: * c-lex.c: New file. All subroutines moved here.
3981: (yylex): Small diffs between C and OBJC merged.
3982: * c-parse.y, objc-parse.y: Deleted from here.
3983: * c-lang.c (lookup_interface): New stub.
3984: * Makefile.in (c-lex.o): New rule.
3985: (OBJC_OBJS, C_OBJS): Changed for new files.
3986:
3987: Wed Nov 27 13:34:15 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu)
3988:
3989: * c-parse.y (yylex): Don't assume that long is 32 bits and long
3990: long is 64 bits when warning for out of range integer constants,
3991: and when creating a tree to represent integer constants.
3992: * cp-lex.c (real_yylex): Likewise.
3993: * objc-parse.y (yylex): Likewise.
3994:
3995: * combine.c (simplify_comparison, ASHIFT case): Prevent shift by
3996: HOST_BITS_PER_INT for inequality comparisons.
3997:
3998: * fold-const.c (operand_equal_p): Arguments are not equal if
3999: signedness differs. Conversions don't match if signedness differs.
4000:
4001: * sparc.md (movsi, movhi, movqi, movdi): Prohibit matches that
4002: would require reloading by the use of conditions.
4003:
4004: * alloca.c (alloca): Add parens to make precedence clearer.
4005:
4006: * tm-news.h (PRINT_OPERAND): Add 68040 support so that the compiler
4007: will bootstrap.
4008:
4009: Wed Nov 27 09:41:13 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
4010:
4011: * expr.c (expand_expr, case MIN_EXPR): Fix typo in operand number
4012: in safe_from_p call.
4013:
4014: * recog.c (indirect_operand): Correctly handle case where we have
4015: a (subreg (mem X) C) after reload.
4016:
4017: Tue Nov 26 16:24:03 1991 Ron Guilmette (rfg at ncd.com)
4018:
4019: * dwarfout.c (output_enumeration_type_die): Handle a GNU C
4020: language extension: incomplete enum types.
4021:
4022: * dwarfout.c (output_type): Fixed bug which causes DIEs for
4023: file-scope tagged types to be generated in a local-scope
4024: under some conditions.
4025:
4026: * dwarfout.c (dwarfout_init, dwarfout_finish): Moved code which
4027: generates most of the .debug_aranges entries from dwarfout_init
4028: into dwarfout_finish to avoid m68k assembler bug.
4029:
4030: * Makefile.in (EXTRA_PARTS): New parameter.
4031: (install-common): Compile the things in EXTRA_PARTS.
4032: (GCC_PASSES, GCC_PARTS): New variables.
4033: (STAGESTUFF, native, enquire, enquire.o): Use them.
4034: (protoize, protoize.o, unprotoize, unprotoize.o, SYSCALLS.c.X):
4035: (gnulib2.ready, collect2, collect2.o, getopt.o, getopt1.o): Likewise.
4036:
4037: * tm-svr4.h (CPP_PREDEFINES): Don't define this here. Undef it
4038: so that other files which include this one will be forced to
4039: define it appropriately for the specific target and OS.
4040: (CPP_SPEC): Deleted.
4041: (LIB_SPEC): Add crtend.o as last thing linked in on each link-step.
4042: (STARTFILE_SPEC): Add crtbegin.o as the first thing linked in.
4043: (NO_DOLLAR_IN_LABEL): Added define. Most svr4's don't support $.
4044:
4045: * tm-svr4.h: Added support for the .ctors and .dtors sections
4046: (as for the m88k).
4047: (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): New macros.
4048: * tm-svr4.h (HERE_ASM_OP, ASM_DECLARE_FUNCTION_SIZE): Deleted
4049: define of HERE_ASM_OP and made ASM_DECLARE_FUNCTION_SIZE not
4050: try to use a dot when computing a function's size in a .size
4051: directive (because Tom Wood says that 88open doesn't approve
4052: of dot as an asm operand).
4053:
4054: * x-genix, x-i386sco, x-xenix (INSTALL): Define as cp.
4055:
4056: Tue Nov 26 16:24:03 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
4057:
4058: * gcc.c (default_compilers): Pass -A* to cpp.
4059:
4060: * Make names unique if unpacked on MSDOG.
4061: * config/*.c: `out-' removed from all file names out-*.c.
4062: * x-hp*: Renamed from x-hp9k*.
4063: * tm-conv1.h, tm-conv2.h: Renamed from tm-convex*.h.
4064: * tm-hp*.h: `9k' removed from these names.
4065: * tm-isi*.h: `68' removed from these names.
4066: * tm-i860b.h, tm-i860bg.h: `sd' removed.
4067: * tm-i860g3.h: Renamed from tm-i860v3g.h.
4068: * tm-i386sun.h: Renamed from tm-sun386i.h.
4069: * tm-sun3o3.h, tm-sun4o3.h: Were tm-sun*os3.h.
4070: * tm-sun3n3.h: Was tm-sun3os3nf.h.
4071: * tm-sun3n.h: Was tm-sun3-nfp.h.
4072: * tm-sun2o4.h: Was tm-sun2os4.h.
4073: * xm-hp320.h: Was xm-hp9k320.h.
4074: * xm-i386sun.h: Was xm-sun386i.h.
4075: * configure: Adjust for those renamings.
4076:
4077: * configure (m68000-hp-hpux*): Use xm-hp320.h.
4078:
4079: * stmt.c (expand_value_return): New subroutine.
4080: (expand_return): Use that.
4081:
4082: * make-gcc.com: New name for make.com.
4083:
4084: * stor-layout.c (layout_record): Return list of static members.
4085: (layout_type): Lay them out here.
4086:
4087: * expmed.c (init_expmed): Use 3 as shift count for shift_cost.
4088:
4089: * x-sco: File deleted.
4090:
4091: * print-tree.c (print_node): Always be brief for vector elts.
4092:
4093: Tue Nov 26 07:42:41 1991 Michael Tiemann (tiemann at rtl.cygnus.com)
4094:
4095: * cp-decl.c (grokdeclarator): Fix typo involving ~RID_STATIC.
4096:
4097: Mon Nov 25 21:51:09 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
4098:
4099: * optabs.c (emit_cmp_insn): If both operands are VOIDmode,
4100: put first operand into register, not second.
4101:
4102: * alliant.md, gmicro.md, i386.md, m68k.md, ns32k.md, pyr.md:
4103: Don't allow a constant as the first operand to tstxx insns.
4104: * tahoe.md, vax.md: Likewise.
4105: * convex.md: Remove erroneous comment on tstsi.
4106:
4107: Mon Nov 25 20:51:00 1991 DJ Delorie ([email protected])
4108:
4109: * cccp.c (main): Look in env vars to override header dir list.
4110: * gcc.c (process_command): Likewise.
4111:
4112: * gcc.c (execute): Alternate way to get status on MSDOS.
4113: Error for -pipe on MSDOS.
4114: (pexecute): Alternate definition for MSDOS.
4115: (find_a_file): Handle new hook EXECUTABLE_SUFFIX.
4116: (EXECUTABLE_SUFFIX): Add default definition, and alternate for MSDOS.
4117: (P_tmpdir): Add default definition for MSDOS.
4118:
4119: Mon Nov 25 17:18:52 1991 Michael Collison (collison at osf.org)
4120:
4121: * x-encrose: New file for mmax running OSF/1.
4122: * t-encrose: ditto.
4123:
4124: * ns32k.md (movsi): Use new constraint letters 'x' and 'y'
4125: representing the frame and stack pointer.
4126: (movhi,movqi): Add constraints and template code to allow moves
4127: between the floating point and general purpose registers.
4128:
4129: * tm-ns32k.h (REGISTER_MOVE_COST): Use this macro to discourage
4130: moves between the floating point registers and the frame and stack
4131: pointer. Also discourage moves between the fp and general registers.
4132: (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS,
4133: REG_CLASS_FROM_LETTER): Add two new register classes representing
4134: the frame pointer and stack pointer respectively.
4135: (GO_IF_NONINDEXED_ADDRESS): Add check to see if register is also a
4136: base register. This causes reload to reject pseudo registers when
4137: REG_OK_STRICT is defined.
4138:
4139: * tm-i386rose.h: New file for 386 running on OSF/1.
4140: * x-i386rose: ditto
4141: * t-i386rose: ditto
4142:
4143: * config.subr: Added case for 'osf-'.
4144: * configure: Added case for i386-osfrose
4145:
4146: * tm-encrose.h (CC1_SPEC): Simplified so by default it passes nothing.
4147: (ASM_SPEC): Changed so that under OSF/1 with NO_J_SWITCH defined
4148: nothing is passed to the assembler.
4149: (TARGET_DEFAULT): Changed so that, by default, no code is generated
4150: using the static base (sb) register.
4151: (OVERRIDE_OPTIONS): Removed in lieu of the new debug macros
4152: PREFERRED_DEBUGGING_TYPE and DEFAULT_GDB_EXTENSION.
4153: (DEFAULT_GDB_EXTENSIONS): Define it
4154: (PREFERRED_DEBUGGING_TYPE): Use it.
4155:
4156: Mon Nov 25 17:18:52 1991 Jyrki Kuoppala (jkp at batman.hut.fi)
4157:
4158: * ns32k.md (ashlhi3): use addw also on 32532 if shiftcount is 1.
4159: (ashlqi3): likewise.
4160: (addsi3): don't use addr instead of addd on the 32532.
4161:
4162: * out-ns32k.c (calc_address_cost): don't assume unknown RTX codes
4163: have XEXP's which are rtx's.
4164:
4165: * ns32k.md (movsi): don't use addr for the 32532 immed displacements.
4166: (shift patterns): fixed a typo with %$%n.
4167:
4168: * out-ns32.c (calc_address_cost) new function.
4169: tm-ns32k.h (ADDRESS_COST): call calc_address_cost.
4170:
4171: * out-ns32k.c (print_operand_address): use error & debug_rtx if error.
4172:
4173: * tm-ns32k.h (CONST_OK_FOR_LETTER_P): constraint 'I' shouldn't
4174: match anything on the 32532 to make negative arithmetic left
4175: shifts behave consistently.
4176:
4177: * ns32k.md (subsf+1): don't use ajdspb on the 32532.
4178:
4179: * tm-ns32k.h (CONST_OK_FOR_LETTER_P): positive values not OK for
4180: constraint 'I' if on 32532.
4181:
4182: * ns32k.md (ashl??): if TARGET_32532, use lsh{d,w,b}.
4183:
4184: * ns32k.md (adjusting stack pointer): don't use ajdp{b,w} if not 32532.
4185:
4186: * ns32k.md (isv,insv-1,insv-2,extzv): use constraint K instead of
4187: n for offset.
4188:
4189: * ns32k.md (insv-1): use only register_operand with constraint
4190: "r" for operand 2, insd can't take constant offsets >= 8.
4191: (pattern insv-2): added another insv-like pattern, for
4192: offsettable operand.
4193: (insv): constraint should be "+g".
4194: (pattern before insv): installed an insv-like pattern
4195: with operand 0 having register_operand and SImode.
4196:
4197: * out-ns32k.c (print_operand): define as a void function.
4198:
4199: * ns32k.md (call_value): use operands[1], not operands[0] to check
4200: for CONSTANT_ADDRESS_P.
4201:
4202: * out-ns32k.c (print_operand): eliminate
4203: PRINT_OPERAND_EXTRACT_FLOAT, don't depend on HOST_WORDS_BIG_ENDIAN.
4204:
4205: * tm-ns32.h (INDIRECTABLE_1_ADDRESS_P): use CONSTANT_ADDRESS_P,
4206: not CONSTANT_P.
4207:
4208: * tm-ns32k.h (GO_IF_LEGITIMATE_ADDRESS): checking for CONST_INT
4209: is not right because displacements are not 32-bit. Use
4210: CONSTANT_ADDRESS_NO_LABEL_P instead.
4211:
4212: * tm-ns32k.h (output_move_double, output_shift_insn): New declarations.
4213:
4214: * out-ns32k.c (print_operand_address): Use fatal for errors.
4215:
4216: * ns32k.md (insv, extzv): Replaced with the pattern near insv in 1.40.
4217:
4218: * out-ns32k.c (print_operand): function moved from tm-ns32k.h.
4219: Modified to use PUT_IMMEDIATE_PREFIX, PUT_EXTERNAL_PREFIX; added
4220: macro PRINT_OPERAND_EXTRACT_FLOAT.
4221:
4222: * out-ns32k.c (print_operand_address): replaced the function with
4223: a more clean version, written for gas syntax.
4224:
4225: * ns32k.md (call): #if 0 code which was used when GAS_SYNTAX was not
4226: defined.
4227: (call_value): likewise.
4228:
4229: * ns32k.md (pattern after ashrsi3): added % before $ so the
4230: pattern works also for gas syntax.
4231: (pattern after ashrhi3): likewise.
4232: (pattern after ashrqi3): likewise.
4233: (pattern after lshrsi3): likewise.
4234: (pattern after lshrhi3): likewise.
4235: (pattern after lshrqi3): likewise.
4236: (pattern after rotrsi3): likewise.
4237: (pattern after rotrhi3): likewise.
4238: (pattern after rotrqi3): likewise.
4239:
4240: * ns32k.md (movsf): put #ifndef GAS_SYNTAX part inside #if 0 since
4241: for now we only use GAS syntax.
4242:
4243: * tm-ns32k.h (INDIRECTABLE_2_ADDRESS_P): add TARGET_SB as a
4244: condition in addition to CONSTANT_ADDRESS_P.
4245:
4246: * tm-ns32k.h (MEM_REG): use CONSTANT_ADDRESS_P instead of GET_CODE
4247: == SYMBOL_REG, add TARGET_SB to the second-part condition.
4248:
4249: * ns32k.md (rotrsi3): fixed a typo NEGATE->NEG
4250:
4251: * tm-ns32k.h: added a comment about CONSTANT_ADDRESS_P; it's not
4252: strictly according to the spec.
4253:
4254: * tm-ns32k.h: added defaults for ABSOLUTE_PREFIX,IMMEDIATE_PREFIX
4255: etc, using gas syntax.
4256:
4257: * out-ns32k.c: removed macro FP_REG_P.
4258:
4259: * tm-ns32k.h: (ASM_OUTPUT_ALIGN_CODE): changed alignment from 4 to
4260: 2 since GAS syntax is the default assembler syntax now.
4261: (PRINT_OPERAND, PRINT_OPERAND_ADDRESS): defined to call
4262: print_operand and print_operand_address in out-ns32k.c,
4263: respectively.
4264:
4265: * tm-ns32k.h: New macros TARGET_SB, TARGET_PIC.
4266: Dummy code for trampolines, calls fatal().
4267: Macro FP_REG_P moved here from out-ns32k.c.
4268: Some reorganizations of blocks.
4269: 68000 -> ns32k.
4270:
4271: * tm-ns32k.h (TARGET_VERSION) says GAS syntax.
4272: (TARGET_*) added some empty lines for clarity.
4273:
4274: Mon Nov 25 14:29:39 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
4275:
4276: * Makefile.in (aux-output.o): Depend on insn-codes.h.
4277:
4278: * make-cc1.com: Handle print-rtl.c.
4279:
4280: * toplev.c (warn_aggregate_return): New variable.
4281: (W_options): Define option to set it.
4282: * flags.h: Declare it.
4283: * calls.c (expand_call): Print warning if value is aggregate.
4284: * function.c (init_function_start): Likewise.
4285:
4286: Mon Nov 25 13:29:50 1991 Per Bothner (bothner at cygnus.com)
4287:
4288: * cp-except.c (init_exception_processing): Fix return type of
4289: longjmp (from int to void).
4290:
4291: Mon Nov 25 13:11:51 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu)
4292:
4293: * rtlanal.c (refers_to_regno_p): Check for `x == 0' on repeat.
4294:
4295: * x-mips, xm-vms.h: Change cplus-* to cp-* in comments.
4296: * x-tower (X_CFLAGS): Add missing `-'.
4297:
4298: * unroll.c (unroll_loop): When simplifying loops executed only once,
4299: use last_loop_insn not copy_end.
4300:
4301: Mon Nov 25 07:45:46 1991 Michael Tiemann (tiemann at rtl.cygnus.com)
4302:
4303: * cp-except.c (init_exception_processing): Mark `ExceptionHandler'
4304: constructor and destructor as being TREE_EXTERNAL, and mark the
4305: `ExceptionHandler' type as being interface-only.
4306:
4307: * cp-decl.c (maybe_globalize_type): Don't test TYPE_BEING_DEFINED
4308: for ENUMERAL_TYPE.
4309:
4310: * cp-class.c (modify_vtable_entry): Disable code which attempts to
4311: encode in a vtable an indirection to another vtable entry.
4312:
4313: * cp-call.c (build_method_call): Convert FUNCTION to
4314: DECL_MAIN_VARIANT (FUNCTION) once we are going to use it for real.
4315: * cp-init.c (build_delete): Use DECL_MAIN_VARIANT (DTOR). *
4316: * cp-typeck.c (mark_addressable): Use DECL_MAIN_VARIANT (X).
4317:
4318: Mon Nov 25 00:41:14 1991 Per Bothner (bothner at cygnus.com)
4319:
4320: * dbxout.c (dbxout_type): Tiemann's DECL_IGNORED_P optimization (Nov
4321: 20) was a little too drastic: If it succeded, no type info was
4322: emitted at all, which made for syntactically invalid stabs.
4323: Instead, just set 'full=0',
4324: * dbxout.c (dbxout_symbol): Re-write code for TYPE_DECL to be a
4325: little cleaner. It *seems* to work ...
4326:
4327: Sun Nov 24 19:32:07 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu)
4328:
4329: * sched.c (update_links): Use PUT_REG_NOTE_KIND to change REG_NOTE.
4330:
4331: Sun Nov 24 14:53:37 1991 Ron Guilmette (rfg at ncd.com)
4332:
4333: * cccp.c: Add `return 0;' statements to all do_* functions which
4334: needed them to prevent spurious warnings. Also change plain
4335: `return;' statements to `return 0;' statements where appropriate.
4336:
4337: Sun Nov 24 07:37:17 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
4338:
4339: * cse.c (cse_insn): When making equivalences of subparts of
4340: a SET, avoid putting a (hard) register in the hash table twice,
4341: each time with different modes.
4342:
4343: * genrecog.c (write_tree_1,change_state): Don't check for a position
4344: containing a '*' since we don't set it to that.
4345: (main): Don't define recog_addr_dummy; no longer used.
4346: * recog.c (recog_addr_dummy): No longer needed; wasn't actually used.
4347: (init_recog_no_volatile, init_recog): Don't set recog_addr_dummy.
4348:
4349: * expmed.c (store_split_bit_field, extract_bit_field): Abort if
4350: operand_subword of target returns 0.
4351: * expr.c (convert_move, move_block_from_reg, emit_move_insn): Likewise.
4352:
4353: * combine.c (subst, case SUBREG): Don't allow making a SUBREG of
4354: a hard reg in a mode not valid for that hard reg.
4355: * emit-rtl.c (gen_lowpart_common, operand_subword): Likewise.
4356:
4357: * expmed.c (extract_split_bit_field): Use operand_subword_force.
4358: * expr.c (emit_move_insn): If operand_subword fails for non-const,
4359: use operand_subword_force.
4360:
4361: * expmed.c (expand_mult): Pass OP0 through protect_from_queue so we can
4362: use it in a REG_EQUAL note and check it for being a MEM.
4363:
4364: * rtl.def (SMIN, SMAX, UMIN, UMAX): New RTL codes.
4365: * fold-const.c (const_binop, case MIN_EXPR, MAX_EXPR): Use MIN and MAX.
4366: (fold, case MIN_EXPR, MAX_EXPR): Check for operands equal; check for
4367: min (x, lowest-value-for-type) and max (x, highest-value-for-type).
4368: (fold, case COND_EXPR): Look for conditionals that are equivalent
4369: to ABS_EXPR, MIN_EXPR, or MAX_EXPR and convert them to the appropriate
4370: expression.
4371: * expr.h (smin_optab, smax_optab, umin_optab, umax_optab): New vars.
4372: * gcc.texinfo (smin, smax, umin, umax): Add documentation.
4373: * expr.c (expand_expr, case ABS_EXPR): Ignore ABS on unsigned types.
4374: If jumps are expensive, we can do ABS with shifts and xors.
4375: (expand_expr, case MIN_EXPR, MAX_EXPR): Try to do using new optabs.
4376: * optabs.c (smin_optab, smax_optab, umin_optab, umax_optab):
4377: Initialize new optabs.
4378: * cse.c (simplify_binary_operation): New cases SMIN, SMAX, UMIN, UMAX.
4379: * rs6000.md (sminsi3, smaxsi3, uminsi3, umaxsi3): New patterns.
4380: * m88k.md (abssi2): Delete pattern; now done in expr.c.
4381:
4382: * rs6000.md (scc): Correct typos in last change.
4383:
4384: * expmed.c (expand_mult): TARGET will only be written once, so
4385: function return register is OK.
4386: Write a REG_EQUAL note so multiplications can be cse'ed.
4387:
4388: * expmed.c (emit_store_flag): Skip trying most sequences of insns
4389: if branches are very cheap (BRANCH_COST == 0).
4390: * expr.c (expand_expr, case COND_EXPR): Check for BRANCH_COST <= 1,
4391: not equal to 1.
4392: Know that emit_store_flag won't do most sequence if branches are very
4393: cheap.
4394:
4395: * tm-vax.h (BRANCH_COST): Define to be equal to zero.
4396:
4397: Sun Nov 24 07:07:31 1991 Michael Tiemann (tiemann at cygnus.com)
4398:
4399: * cp-decl.c (maybe_globalize_type): Don't globalize a type that's
4400: being defined.
4401:
4402: Sun Nov 24 05:08:57 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
4403:
4404: * c-decl.c (finish_struct): Use main variant checking ANSI bitfields.
4405:
4406: * tm-tower-as.h (ASM_FILE_START): Use output_file_directive.
4407:
4408: * gcc.c (process_command): Treat `-' as file name, not option.
4409:
4410: Sat Nov 23 20:28:58 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
4411:
4412: * cse.c (simplify_binary_operation): Remove duplicate code for SFmode
4413: and DFmode; use of REAL_VALUE_TRUNCATE means that all modes can be
4414: handled with the same code.
4415: Truncate result as well as inputs to computations.
4416:
4417: * cse.c (cse_basic_block): Allow recording of destinations in the
4418: final insn of a LIBCALL block.
4419:
4420: * flow.c (insn_dead_p): Add new argument CALL_OK.
4421: (propagate_block): Pass new arg.
4422: (libcall_dead_p): Indicate that we can accept a CALL when we use
4423: insn_dead_p to see if the destination of the CALL is dead.
4424:
4425: * genrecog.c (struct decision): Remove fields `dupcount'
4426: and `reg_class' and all references; they were being set but never
4427: used and are now obsolete.
4428:
4429: * emit-rtl.c (gen_lowpart_common, operand_subword): Don't make
4430: a new REG for the function return value until we after the RTL
4431: is copied for possible inlining; use a SUBREG instead.
4432:
4433: * combine.c (can_combine_p): Don't move insn past a volatile ref if
4434: it is an `asm', even if non-volatile.
4435:
4436: * gmicro.md: Fix punctuation problem causing syntax error.
4437:
4438: * tm-rs6000.h (CONST_OK_FOR_LETTER_P): Add `O' and `P'.
4439: * out-rs6000.c (reg_or_neg_short_operand): New function.
4440:
4441: * rs6000.md (attribute "type"): New type `delayed_compare'.
4442: Add define_function_unit for delayed comparisons.
4443: Mark comparison results of certain insns as being delayed for
4444: longer that normal comparison results; add a new missing types
4445: of `compare'.
4446: (seq, sle): Remove special-cases for (const_int 0) operands; use
4447: alternative with constraint of `O' instead.
4448: (sltu, sgeu): Support most constants in second operand.
4449:
4450: * cse.c (prev_insn_cc0_mode): New variable.
4451: (fold_rtx): When folding CC0, get the mode from prev_insn_cc0_mode.
4452: (cse_insn): Save mode of SET of CC0 in prev_insn_cc0_mode.
4453:
4454: Sat Nov 23 17:01:47 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
4455:
4456: * expmed.c (init_expmed): Make REG a pseudo, not a hard reg.
4457:
4458: * tm-m68k.h (RTX_COSTS): New macro.
4459:
4460: * varasm.c (make_decl_rtl): Get rid of pedantic warning.
4461:
4462: * gcc.c (link_command_spec): Delete code for handling -collect.
4463: (default_compilers): Get rid of the %x for g++.
4464: This is because now collect is always supposed to be run.
4465:
4466: * tm-vms.h (ASM_OUTPUT_COMMON): Avoid void as type in :? operator.
4467: * tm-sun3.h (ASM_OUTPUT_FLOAT_OPERAND, ASM_OUTPUT_DOUBLE_OPERAND):
4468: Likewise.
4469: * tm-vaxv.h (ASM_OUTPUT_ASCII): Declare `s' as unsigned char *.
4470: * tm-crds.h (FUNCTION_EPILOGUE): Don't call FUNCTION_EXTRA_EPILOGUE.
4471:
4472: * configure (i386-dontknow-*, ns32k-*-*): Alternatives deleted.
4473: (m68k-tti2-*): Deleted.
4474: (m68k-tti-*): Renamed from m68k-tti1-*.
4475:
4476: * i860.md (floatsidf2): Escape the doublequotes.
4477:
4478: * Makefile.in (final.o): Add insn-codes.h as dep.
4479: (OBJS): Add dbxout.o.
4480: (C_OBJS, OBJC_OBJS): Deleted here.
4481: (CPLUS_OBJS): Deleted cp-dbxout.o.
4482: (cp-dbxout.o): Target deleted.
4483:
4484: Sat Nov 23 06:33:24 1991 Michael Tiemann (tiemann at cygnus.com)
4485:
4486: * cp-spew.c (yylex): Don't see TYPENAME if LOOKING_FOR_TYPENAME
4487: is < 0. Definitely see TYPENAME if LOOKING_FOR_TYPENAME > 0.
4488:
4489: * cp-decl.c (grokdeclarator): Any type construction that uses a
4490: struct/union/enum type that is not yet defines pushes that type into
4491: the global namespace.
4492:
4493: * cp-spew.c (discard_token): Renamed from `eat_token'.
4494: Also, make all local functions static. Some day we'll use inlining.
4495:
4496: Thu Nov 21 16:06:14 1991 Mark Eichin (eichin at cygnus.com)
4497:
4498: * Makefile.in: added rule for cp-spew.o
4499:
4500: * cp-parse.y (TYPENAME_SCOPE): added an action, since it is no
4501: longer done in the lexer.
4502: (yyprint): Took out case for TYPENAME_SCOPE.
4503:
4504: * cp-lex.c (real_yylex): renamed from yylex. Also all of the code
4505: dealing with nested classes has been #if 0'd in favor of the code in
4506: cp-spew.c.
4507:
4508: * cp-spew.c (New File): This calls yylex (which is now real_yylex)
4509: and looks ahead as far as possible to bind up nested classes and
4510: pass them on to the parser.
4511:
4512: Thu Nov 21 18:14:11 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu)
4513:
4514: * out-sparc.c (output_function_epilogue): Correct parameters in
4515: call to final_scan_insn, write_symbols parameter no longer exists.
4516:
4517: * integrate.c (save_for_inline_copying): Use GET_RTX_CLASS.
4518:
4519: Thu Nov 21 17:44:46 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
4520:
4521: * gcc.texinfo (PCC_BITFIELD_TYPE_MATTERS): Clarify that macro
4522: must always be non-zero unless MEM extv/extzv/insv exist.
4523:
4524: * romp.md (movdi): Disable define_split when we are moving
4525: between overlapping registers prior to reload to work
4526: around hard-to-fix sched.c bug.
4527:
4528: Thu Nov 21 17:14:54 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu)
4529:
4530: * jump.c (invert_exp): Correct typo in comment.
4531:
4532: Thu Nov 21 15:34:27 1991 Michael Meissner (meissner at osf.org)
4533:
4534: * gcc.texinfo (warning options): Make the documentation agree with
4535: the code, -Wstrict-prototypes and -Wmissing-prototypes are not
4536: turned on via -Wall; -Wnoparenthesis is now spelled
4537: -Wno-parenthesis.
4538: (option header): Mention that -W options take the no- prefix as well
4539: as -f options.
4540:
4541: Thu Nov 21 08:12:51 1991 Tom Wood (wood at dg-rtp.dg.com)
4542:
4543: * out-m88k.c (check_float_value): Change use of REAL_VALUE_TRUNCATE.
4544: * tm-m88k.h (FLOAT_TO_INT_INTERNAL): Ditto.
4545: (AS_BUG_POUND_TYPE): Simplify.
4546: * tm-m88kdgux.h: Don't need AS_BUG_DOT_LABELS or AS_BUG_POUND_TYPE.
4547:
4548: Thu Nov 21 06:47:11 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
4549:
4550: * rs6000.md (scc): Add missing '&' in some alternatives of constraints.
4551:
4552: * a29k.md (negdf2): Fix typo in constraints for SCRATCH in 29050 case.
4553:
4554: * real.h (REAL_VALUE_TRUNCATE): Default is to truncate to float if
4555: mode size is BITS_PER_WORD instead of when mode if SFmode.
4556:
4557: Thu Nov 21 01:58:27 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
4558:
4559: * dbxout.c (dbxout_type): Test TYPE_BINFO before TYPE_BINFO_BASETYPES.
4560:
4561: Thu Nov 21 01:45:53 1991 Ken Raeburn ([email protected])
4562:
4563: * cp-parse.y (unary_expr): Break out `new' expressions with
4564: parenthesized types into more basic forms, and handle trailing array
4565: dimensions with an appropriate warning message.
4566:
4567: * cp-class.c (pushclass): For UPType, overload the template name.
4568: (popclass): For UPType, undo the overload.
4569:
4570: * cp-decl.c (pop_decl_level): Don't look up DECL_NAME slot of a
4571: null pointer.
4572: (pushdecl_top_level): Reworked handling of shadow lists to be
4573: correct.
4574: (lookup_tag): Bypass redefinition error message for UPT as well as
4575: for TEMPLATE_DECL.
4576: (start_decl): Add template decls only to top level. Print message
4577: for non-function, non-class templates.
4578: (finish_decl): Disable code that renames anonymous types; leave it
4579: disabled until we figure out why it was being done in the first
4580: place.
4581: (grokdeclarator): Eliminate hack to deal with destructor templates.
4582: Extend some code handling constructors to handle destructors as
4583: well. Deleted some unnecessary code dealing with function
4584: templates.
4585:
4586: * cp-decl2.c (constructor_name): Treat class template decl like
4587: type decl.
4588:
4589: * cp-lex.c (store_pending_inline): If a function is not to be
4590: compiled, discard its text only if can_free flag is set.
4591:
4592: * cp-decl.c (start_function): For `pre-parsed' functions, only
4593: set extern-inline flag if inline flag is set.
4594: * cp-lex.c (do_pending_inlines): Don't set inline flag for method
4595: templates, regardless of default-inline flag setting.
4596: (process_next_inline): Ditto.
4597:
4598: * cp-method.c (dump_type): Do something semi-useful with UPT
4599: nodes, instead of crashing.
4600: (fndecl_as_string): For constructor and destructor, use name of
4601: function rather than looking up class constructor name; should be
4602: the same, and it's cheaper this way.
4603: (build_overload_name): Make template-related names unique, as well
4604: as unlikely to be accepted by the assembler.
4605:
4606: * cp-parse.y (yyprint): Handle PRE_PARSED_CLASS_DECL.
4607: (template_def): In case handling destructors, pass new decl to
4608: end_template_decl, rather than ungrokked call_expr node. Rewrote
4609: last derivation.
4610: (scoped_typename): Don't try building from template type; it doesn't
4611: work.
4612: (try_for_typename): Treat typename using template parms like any
4613: other typename.
4614:
4615: * cp-pt.c: New comment at start lists some known problems.
4616: (end_template_decl): Do nothing for error_mark_node. Check
4617: DECL_CLASS_CONTEXT and DECL_EXTERNAL when setting TREE_EXTERNAL
4618: field of template decl. Don't need to pop extra class level for
4619: non-operators any more, but do need to assign class context field.
4620: (instantiate_member_templates): Now returns void.
4621: (tsubst, case FUNCTION_DECL): Process flag fields of method as for
4622: other functions. Handle class context field. Push decl at top
4623: level only if decl context is null.
4624: (tsubst, case TREE_LIST): Use via-public and via-virtual fields.
4625: (do_pending_expansions): Correct handling of methods.
4626:
4627: * cp-pt.c (overload_template_name): If not class-level, push
4628: extra binding level. Disable check that overload hasn't already
4629: been done; for now, it's needed.
4630: (undo_template_name_overload): Pop it.
4631:
4632: Thu Nov 21 00:15:33 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu)
4633:
4634: * dbxout.c (dbxout_type_methods): Don't dereference TYPE_NAME and
4635: ctor_name until after checking for non-null methods.
4636:
4637: * sched.c (create_reg_dead_note): New function. Add a REG_DEAD note
4638: for REG to INSN, reusing a REG_DEAD note from the dead_notes line.
4639: (attach_deaths): Add quick exit for many rtx that can't contain a
4640: register. Rewrite REG_DEAD note code to use the new scheme (see
4641: the Nov 1 ChangeLog entry).
4642: (new_insn_dead_notes): Don't add a REG_DEAD note to an insn that
4643: already has one.
4644: (update_links): Must convert REG_UNUSED notes to REG_DEAD when a
4645: register formerly just clobbered is now explicitly set and used in
4646: the new split insns.
4647:
4648: Wed Nov 20 18:02:38 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu)
4649:
4650: * c-decl.c, cccp.c: Change all -Wno options to
4651: -Wno- options so as to be consistent with toplev.c, and so as
4652: to also be consistent with the -fno- options.
4653: * objc-actions.c: Add a -Wno-selector option to match the
4654: -Wselector option.
4655:
4656: * gcc.c (default_compilers): Pass all -W options to cpp, so that
4657: -Wno options will be passed along with the -W options that it
4658: understands.
4659: * cccp.c (main): Accept -Wno option counterparts for every
4660: existing option.
4661:
4662: Wed Nov 20 00:03:41 1991 Michael Tiemann (tiemann at cygnus.com)
4663:
4664: * cp-tree.c (lang_output_debug_info): Deleted.
4665: * cp-class.c (finish_struct): Set DECL_IGNORED_P on the TYPE_DECL
4666: nodes for types that should not have their debugging info written
4667: out.
4668: * dbxout.c (dbxout_{symbol,type}): Check DECL_IGNORED_P for
4669: TYPE_DECLs of RECORD_TYPE nodes.
4670:
4671: * cp-decl.c (grok_op_properties): Fix bug in grokking NEW_EXPR
4672: and DELETE_EXPR operators.
4673: * cp-method.c (hack_operator): Deleted.
4674: * cp-init.c (init_init_processing): Use `ansi_opname' for
4675: {NEW,DELETE}_EXPR instead of calling hack_operator and build_opid.
4676: * cp-decl2.c (grokopexpr): Deleted.
4677: * cp-lex.c (build_opid): Deleted.
4678: * cp-class.c (build_instantiated_decl): Deleted.
4679: * All cp-* files: OP_IDENTIFIER is no longer used.
4680:
4681: * cp-parse.y (operator_name): For most cases, Use `ansi_opname'
4682: directly instead of calling `build_opid'.
4683:
4684: Tue Nov 19 16:02:51 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
4685:
4686: * c-decl.c (xref_tag): If we find wrong kind of type, return it.
4687: (lookup_tag): Fill in pending_invalid_xref_file, ..._line.
4688:
4689: * real.h (REAL_VALUE_TRUNCATE): New argument MODE.
4690: * cse.c (simplify_unary_operation, simplify_binary_operation):
4691: Pass that arg.
4692: * c-parse.y, objc-parse.y, cp-lex.c (yylex): Likewise.
4693: * fold-const.c (combine): Truncate floating result to fit mode.
4694: (fold): Don't add 1 to float constant if that doesn't change the value.
4695:
4696: Tue Nov 19 09:37:36 1991 Michael Meissner (meissner at osf.org)
4697:
4698: * configure (ns32k-encore-osf): Restore Encore Multimax using the
4699: OSF/rose object format, since the necessary files, such as
4700: tm-encrose.h, are present in the distribution.
4701:
4702: Mon Nov 18 21:38:13 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu)
4703:
4704: * out-sparc.c (output_cbranch): Always emit a nop before a FP branch
4705: to avoid illegal assembly output.
4706: * sparc.md: Don't define delay slot for FP compare insns. This was
4707: meant to solve the above problem, but fails with insn scheduling.
4708:
4709: * sparc.md (movsi): Must accept 'f' in addition to 'r' because
4710: combine can convert FP hard registers to SImode.
4711:
4712: Mon Nov 18 13:43:12 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
4713:
4714: * rtlanal.c (replace_regs): Correct code that prevents nested SUBREGs.
4715:
4716: Mon Nov 18 13:43:12 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
4717:
4718: * c-decl.c (finish_decl): Reinstall lost end_temporary_allocation.
4719:
4720: * tree.h (DECL_LANG_FLAG_8): Deleted.
4721: * print-tree.c (print_node): Don't use it. Do print DECL_IGNORED_P.
4722:
4723: Mon Nov 18 06:59:37 1991 Michael Tiemann (tiemann at cygnus.com)
4724:
4725: * cp-decl.c (value_identifier): Gone, following c-decl.c. Now use
4726: zero DECL_NAME for this purpose.
4727: * cp-typeck.c: Also affected by this change.
4728:
4729: * c-lang.c, objc-lang.c (lang_output_debug_info): New function.
4730: * dbxout.c (dbxout_type_methods): Fix minor problems arising from
4731: assuming all RECORD_TYPE are C++ RECORD_TYPE nodes.
4732: (dbxout_type): Ditto.
4733:
4734: Sun Nov 17 17:33:58 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
4735:
4736: * tree.c (struct obstack_stack): New slots expression and rtl.
4737: (push_obstacks, push_obstacks_nochange, pop_obstacks):
4738: Save and restore all 4 obstack vars individually.
4739:
4740: * c-decl.c (start_decl): Call push_obstacks_nochange here.
4741: (push_parm_decl, grokfield): Also here.
4742: (finish_decl): Not here.
4743: Also clean up test for whether to replace DECL_INITIAL with error mark.
4744:
4745: Sun Nov 17 14:25:15 1991 Michael Tiemann (tiemann at cygnus.com)
4746:
4747: * cp-typeck.c (c_expand_return): Be more careful about throwing
4748: away only cleanup generated by 'build_functional_cast'.
4749:
4750: * cp-init.c (build_new): Use TRUE_TYPE instead of TYPE more
4751: consistently, in case TYPE is really an ARRAY_TYPE on its own.
4752:
4753: * cp-dbxout.c: Gone. Now G++ uses dbxout.c.
4754: * cp-tree.h (OPERATOR_NAME_P): Changed to IDENTIFIER_OPNAME_P.
4755: (OPERATOR_TYPENAME_P): Changed to IDENTIFIER_TYPENAME_P.
4756: (OPERATOR_{NEW,DELETE}_FORMAT): Deleted.
4757: * cp-lex.c (ansi_{opname,assopname}): New variables. All cp-* files
4758: changed to use these where comparisons against *_FORMAT were made.
4759: (init_lex): Initialize `ansi_{opname,assopname}' arrays.
4760: Also, update {opname,assignop}_tab grok new ANSI equivalences.
4761: (build_operator_fnname): Changed to build ANSI-style overloaded
4762: names.
4763: * cp-dem.c (optable): Add new ANSI equivalences.
4764: (cplus_demangle): Fixed to recognize new ANSI demangling. Note that
4765: old-style destructors, and possibly other codes were broken by the
4766: (undocumented) 27 Oct changes.
4767:
4768: * cp-decl2.c (grokclassfn): Set DECL_CLASS_CONTEXT here.
4769: * cp-class.c (finish_struct): Don't skip over FUNCTION_DECL that
4770: already has a DECL_CLASS_CONTEXT.
4771:
4772: * cp-except.c (cplus_expand_end_try): Set BLOCK_HANDLER_BLOCK for
4773: blocks that handle exceptions.
4774: (EXCEPTION_NAME_PREFIX): Shorted to "__ex" (from "__exception").
4775: (EXCEPTION_NAME_LENGTH): Reduced to 4 from 12.
4776:
4777: * dbxout.c (flag_minimal_debug): Define new variable that is
4778: non-zero when symtab output routines can output abbreviated.
4779: (dbxout_type_fields): Move code that writes out debugging info about
4780: fields of RECORD_TYPE and UNION_TYPE nodes from `dbxout_type' into
4781: this function.
4782: (dbxout_type_{method,method_1}): Move code from `dbxout_type' into
4783: these new functions.
4784: (dbxout_type): Now writes out info about basetypes. Also, no longer
4785: need to record info about types having ctors, dtors, or both. GDB
4786: now figures out what it needs to, when it needs to.
4787: (dbxout_symbol): Implement special abbreviated form for C++ classes,
4788: which place their names in both the struct and decl namespaces.
4789: (dbxout_block): Write out special debugging stabs for exception
4790: handler blocks.
4791:
4792: * tree.h (BLOCK_HANDLER_BLOCK): Define new flag to indicate that a
4793: BLOCK is an exception handler block (a `catch' block for C++).
4794: (TREE_VFIELD, DECL_IGNORED_P): New macros.
4795:
4796: Sat Nov 16 22:21:56 1991 Jeffrey A Law (law at super.super.org)
4797:
4798: * tm-m68k.h (CONST_COSTS): Integer values between -128 and 127
4799: inclusive are very cheap because of moveq.
4800:
4801: Sat Nov 16 00:40:04 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
4802:
4803: * Makefile.in (install-cross-tools): Avoid clobbering symlinks already
4804: made. Double the $ before the @ in the indirection script.
4805:
4806: * t-decstatn: New file.
4807: * configure: (mips-dec-ultrix*): Use t-decstatn.
4808:
4809: * collect-ld: Always run collect if collect is installed.
4810:
4811: * collect-osf.c, enquire.c, gnulib2.c: Use gstddef.h, not stddef.h.
4812:
4813: * gnulib2.c (__eprintf): Undef NULL.
4814:
4815: * c-typeck.c (build_array_ref): Ref is volatile if array is volatile.
4816:
4817: Fri Nov 15 19:53:41 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu)
4818:
4819: * c-typeck.c (build_binary_op_nodefault): Delete ERROR_CODE
4820: argument because it is always the same as CODE. Add new argument
4821: CONVERT_P, and call default_conversion on the operand trees if
4822: true. Rename to build_binary_op.
4823: (old build_binary_op): Deleted because it is now unnecessary.
4824: * c-common.c, c-convert.c, c-decl.c, c-tree.h, c-typeck.c: All
4825: callers and other references to build_binary_op* fixed.
4826: * c-typeck.c (new build_binary_op): Add warning message for
4827: comparisons of signed and unsigned variables that won't give the
4828: expected result due to unexpected sign extension.
4829:
4830: * expr.c (convert_move): Add TFmode support and clean up code.
4831: * optabs.c (init_fixtab): Add TFmode support.
4832: (init_floattab): Likewise.
4833: (expand_float): Likewise.
4834: (expand_fix): Likewise.
4835: (init_optabs): Likewise.
4836:
4837: From Per Bothner:
4838: * collect2.c: Define vfork as fork for USG. Rewrite to not use
4839: prototypes, so it doesn't need gcc for compilation.
4840: (main): No longer uses static sized array for ld arguments, so
4841: that long command lines will work. Vfork ld instead of running
4842: via popen with nm.
4843: (write_hooks): Use type names not variable names in sizeof calls.
4844:
4845: Fri Nov 15 15:01:41 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
4846:
4847: * fold-const.c (size_int): Properly preserve old obstack settings.
4848: * c-decl.c (finish_decl, grokdeclarator, xref_tag): Likewise.
4849: * stor-layout.c (layout_type): Likewise.
4850: * varasm.c (output_constant_def): Likewise.
4851: * tree.c (push_obstacks_nochange): New function.
4852:
4853: * stor-layout.c (layout_type): Make size of temp type saveable.
4854: * tree.c (saveable_allocation): New function.
4855:
4856: * configure: Comment out certain alternatives not yet updated.
4857: (sparc-unicom-*, m68k-tti1-*, m68-tti2-*): New alternatives.
4858: (m88k-*-v88r32*): New alternative.
4859: (i386-alternate-sysv): New alternative, not sure why.
4860: (sparc-*-sysv*): Commented out--not really supported.
4861:
4862: Fri Nov 15 22:22:32 PDT 1991 Mike Stump (mrs at csun.edu)
4863:
4864: * configure: Recognize only canonical names. Added missing entries
4865: for some configurations that obviously have not been tested in a
4866: while.
4867:
4868: * config.subr: Massive overhaul. It claimed to canonicalize
4869: the machine specification, but it never really did. Now it
4870: does. In general, it is not necessary to specify the os for
4871: popular machines that have a popular os, or given the os, it
4872: can sometimes figure out the vendor. Added in all the old
4873: ways of specifying machines from configure. Also added
4874: support for all (before it was missing a few) of the tm-*.h
4875: files. It now supports the concept of guessing the vendor for
4876: a given CPU type. It now supports the concept of guessing the
4877: os version given the vendor and/or the CPU type. Changed the
4878: default os for vax to ultrix, changed the default os for i386
4879: to sco.
4880:
4881: * collect-ld: New file. It is useful when compiling C++ programs
4882: on machines that use collect. This includes the decstation.
4883:
4884: Fri Nov 15 14:19:29 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu)
4885:
4886: * out-sparc.c: Singlemove_string no longer static.
4887: (emit_move_sequence): Emit sethi/low_sum insn pair for values which
4888: are not arith_double_operands, was missing not.
4889: * sparc.md: DImode sethi pattern now uses singlemove_string to load
4890: a constant into a reg.
4891: * tm-sparc.h (LEGITIMATE_CONSTANT_P): Accept anything except a
4892: floating point constant.
4893: Declare singlemove_string so it can be used in sparc.md.
4894:
4895: * jump.c (jump_optimize): Correct typos in comments.
4896:
4897: Fri Nov 15 08:05:26 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
4898:
4899: * out-rs6000.c (scc_comparison_operator): Allow non-FP EQ.
4900:
4901: * combine.c (subst, case NEG): Correct shift count in code that
4902: negates ZERO_EXTRACT to SIGN_EXTRACT.
4903:
4904: Thu Nov 14 23:03:46 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
4905:
4906: * genrecog.c (try_merge_1): Add big new comment.
4907:
4908: Thu Nov 14 19:28:57 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
4909:
4910: * m68k.md: Fix peephole that merges a stack adjust with a push to
4911: use addqw instead of addql since we know we are incrementing an
4912: address register (sp).
4913:
4914: * loop.c (scan_loop): Rework code that looks for loops starting at the
4915: exit test; don't skip non-jump insns at start of loop and modernize
4916: and clean up code.
4917:
4918: * gcc.texinfo (SECONDARY_RELOAD_CLASS): Update description to
4919: show uses for both intermediate and scratch registers.
4920: * reload.h (SECONDARY_{INPUT,OUTPUT}_RELOAD_CLASS): Default from
4921: SECONDARY_RELOAD_CLASS, if defined.
4922: (HAVE_SECONDARY_RELOADS): Defined if any of the secondary reload
4923: macros are defined.
4924: (reload_secondary_icode, reload_{in,out}_optab): New vars.
4925: * reload.c: Include insn-codes.h.
4926: (find_secondary_reload): New function.
4927: (push_reload): Call find_secondary_reload to process input and
4928: output reloads. Create both secondary and tertiary reloads,
4929: as required.
4930: * reload1.c: Include insn-codes.h.
4931: (init_reload): Initialize reload_{in,out}_optab.
4932: (emit_reload_insns): Handle cases where a secondary reload
4933: is a scratch register and where tertiary reloads are required.
4934: * Makefile.in (reload.o, reload1.o): Now include insn-codes.h.
4935:
4936: * tm-romp.h (SECONDARY_OUTPUT_RELOAD_CLASS): Define to use a BASE_REGS
4937: for symbolic memory locations.
4938: * romp.md (reload_outsi, reload_outhi, reload_outqi): New patterns.
4939:
4940: * expr.c (expand_expr): Pass BRANCH_COST to do_store_flag.
4941: (do_store_flag): Canonicalizations done in emit_store_flag
4942: need to be done here as well.
4943: Test for ffs as well as abs when seeing if scc is expensive.
4944: * expmed.c (emit_store_flag): Correct cases that are open-coded:
4945: Add a few missing cases and correct handling of normalizep.
4946: * combine.c (simplify_shift_const, case IOR): Convert sequence
4947: open-coded by emit_store_flag into LE or (neg (le ..)), as
4948: appropriate.
4949: (simplify_shift_const, case MINUS): Similarly, for GT.
4950: (simplify_comparison): sign_bit_comparison_p now true only if
4951: also comparing against constant zero.
4952: (simplify_comparison, case NOT): If sign bit comparison, just
4953: reverse comparison.
4954: (simplify_comparison, case MINUS): Move case where we subtract
4955: one from the absolute value of something to PLUS, since we
4956: subtract one using a PLUS operation.
4957: (simplify_comparison, case MINUS): Handle GT case done by
4958: emit_store_flag.
4959: (simplify_comparison, cae IOR): Similarly, for IOR.
4960:
4961: * tm-rs6000.h (BRANCH_COST): Define as 2.
4962: * rs6000.md (scc): Allow some more cases.
4963: (new scc patterns): Add numerous patterns to reflect superoptimizer
4964: results for scc insns on RS/6000.
4965:
4966: Thu Nov 14 16:42:19 1991 Michael Meissner (meissner at osf.org)
4967:
4968: * mips-tfile.c (all): Change small allocation requests to use
4969: separate allocation and free functions, instead of using the word8
4970: union to hold each request. In order to support this easily, a free
4971: field was added to each small structure that is released.
4972: (main): If debugging, print a summary of the number of small
4973: allocations, frees, and the number of pages used.
4974: (add_procedure, copy_objects): Stuff the pointer to the end symbol
4975: into the shash chain, and use it's value to generate the new value
4976: for the computed end block. This is much safer than trying to
4977: calculate this on the fly.
4978: (main): Don't try to avoid using malloc by setvbuf'ing the streams
4979: we use.
4980:
4981: Wed Nov 13 23:47:10 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu)
4982:
4983: From [email protected]:
4984: * sparc.md: In DF load peephole, use operands not xoperands, so
4985: that output_asm_insn will use the right values.
4986:
4987: * tm-sun3.h, tm-sun2os4.h: Define PTRDIFF_TYPE, SIZE_TYPE,
4988: WCHAR_TYPE same as tm-sparc.h.
4989:
4990: * c-decl.c (finish_function): Don't clear current_function_decl
4991: for nested functions.
4992:
4993: * dbxout.c: Include insn-config.h and reload.h.
4994: (dbxout_symbol): Pass DECL_RTL (decl) through eliminate_regs before
4995: using.
4996: (dbxout_parms): Pass DECL_RTL and DECL_INCOMING_RTL of parms through
4997: eliminate_regs before using.
4998: * sdbout.c: Include insn-config.h and reload.h.
4999: (sdbout_symbol): Pass DECL_RTL (decl) through eliminate_regs before
5000: using.
5001: (sdbout_parms): Pass DECL_RTL and DECL_INCOMING_RTL of parms through
5002: eliminate_regs before using.
5003: * Makefile.in: Update dependency lists for dbxout.c and sdbout.c.
5004:
5005: * combine.c (try_combine): Don't pass sets with (USE (MEM ...))
5006: dests to reg_referenced_p.
5007:
5008: Wed Nov 13 21:38:03 1991 John Bunda (bunda at cs.utexas.edu)
5009:
5010: * reload1.c (gen_input_reload): If IN is a PLUS whose second arg
5011: is the same as the reload register, swap the args of the PLUS.
5012:
5013: Wed Nov 13 14:43:09 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu)
5014:
5015: * tm-sparc.h (OPTIMIZATION_OPTIONS): Don't redefine options set in
5016: toplev.c, only effect flag_omit_frame_pointer.
5017:
5018: * sparc.md: Delete obsolete sign_extract and zero_extract patterns.
5019: We get better code without them.
5020: (indirect_jump, tablejump): Extend indirect_jump pattern to accept
5021: any address, not just a register. Add tablejump like pattern which
5022: also accepts any address.
5023:
5024: * unroll.c (final_biv_value): Make sure the initial value of the biv
5025: is invariant if it is used after the loop.
5026:
5027: Tue Nov 12 23:16:51 1991 Michael Meissner (meissner at osf.org)
5028:
5029: * tm-mips.h (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Correct so
5030: ASM_OUTPUT_REG_PUSH actually does a push instead of pop, and vica
5031: versa. Also make ASM_OUTPUT_REG_POP turn on .set noreorder, and
5032: increment the appropriate -mstats load delay counters.
5033:
5034: Tue Nov 12 22:53:45 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
5035:
5036: * expr.h (BRANCH_COST): Supply default value here.
5037: * jump.c (BRANCH_COST): Don't default BRANCH_COST here.
5038:
5039: * global-alloc.c (global_alloc): Use proper entry in eliminables
5040: when searching for the frame pointer.
5041:
5042: Tue Nov 12 22:23:36 1991 Jim Wilson (wilson at sphagnum.cygnus.com)
5043:
5044: * expr.c: (expand_expr, MIN_EXPR case): Check for const_true_rtx
5045: not const1_rtx as return value from compare_from_rtx.
5046: (do_jumps_by_part_greater): Handle const0_rtx and const_true_rtx
5047: return values from compare_from_rtx.
5048: (do_jumps_by_part_equality, do_jumps_by_part_equality_rtx): Likewise.
5049:
5050: * sched.c (sched_analyze_2): Correctly handle ASM_OPERAND and
5051: ASM_INPUT rtx. Volatile and traditional asm statements are
5052: assumed to use and clobber all hard registers and all memory.
5053: (schedule_block): Delete code that incorrectly handles ASM_OPERAND
5054: and ASM_INPUT rtx by exiting early.
5055:
5056: Tue Nov 12 15:38:56 1991 Tom Wood (wood at dg-rtp.dg.com)
5057:
5058: * sched.c: Introduce names for various priority values. Reduce
5059: LAUNCH_PRIORITY to avioid wrap-around in launch_link.
5060:
5061: Tue Nov 12 14:21:52 1991 Per Bothner (bothner at cygnus.com)
5062:
5063: * cp-lex.c (init_lex): Exception-handling fixes.
5064: * cp-tree.h: Add new OPERATOR_CHARS_P that is like
5065: OPERATOR_NAME_P, except if takes a (char*), not a tree.
5066: * cp-dbxout.c (dbxout_type_methods): Handle operators
5067: specially when chopping prefix for minimal_debug.
5068:
5069: * config/tm-news.h: In PRINT_OPERAND, recognize new 68040
5070: operand types. Add definition of CPP_DEFINES for cross-compiling.
5071:
5072: Tue Nov 12 13:11:01 1991 Michael Meissner (meissner at osf.org)
5073:
5074: * protoize.c (__OSF1__ ifdef): Remove OSF/1 specific ifdefs, since
5075: the problem they address has been fixed, and the ifdefs now cause
5076: spurious warnings.
5077:
5078: * tm-mips.h (INT_TYPE_SIZE): Define.
5079: (SHORT_TYPE_SIZE): Define.
5080: (LONG_TYPE_SIZE): Define.
5081: (LONG_LONG_TYPE_SIZE): Define.
5082: (CHAR_TYPE_SIZE): Define.
5083: (FLOAT_TYPE_SIZE): Define.
5084: (DOUBLE_TYPE_SIZE): Define.
5085: (LONG_DOUBLE_TYPE_SIZE): Define.
5086:
5087: * out-mips.c (block_move_load_store): New commn function to create
5088: one load and store for the block move functions. The load is
5089: emitted directly, and the store is returned, to be emitted later.
5090: (block_move_sequence): Call block_move_load_store. For straight
5091: line moves, have two outstanding loads before a store, for newer
5092: machines that want two delay slots.
5093: (block_move_loop): Call block_move_load_store. Move 4 words per
5094: loop, for a loop that moves 16 bytes in 11 cycles if aligned, and 16
5095: bytes in 19 cycles if not aligned.
5096: (block_move_memcpy): Change argument names for consistancy.
5097: (expand_block_move): Always move address into a register, even for
5098: one byte moves. Fix bugs in calling memcpy. If moving a large
5099: constant amount of unaligned data, emit a runtime check to see if
5100: the data is really aligned, and if so do an aligned move, otherwise
5101: an unaligned move loop.
5102:
5103: * mips-tfile.c (toplevel): Make some changes, so that mips-tfile can
5104: be debugged on OSF/1.
5105: (efdr structure): Align identifiers in declaration.
5106: (cur_proc_value): Delete variable.
5107: (cur_oproc_begin): New global to record original proc .ent symbol.
5108: (cur_oproc_end): New global to record original proc .end symbol.
5109: (add_procedure): Set cur_oproc_begin, cur_oproc_end variables
5110: instead of cur_proc_value.
5111: (parse_begin, parse_end): Add check for cur_oproc_begin being set.
5112: (parse_end): Use cur_oproc_end's value node for new value node.
5113: (main): Add cast to free_multiple_pages call.
5114:
5115: Tue Nov 12 08:57:39 1991 Tom Wood (wood at dg-rtp.dg.com)
5116:
5117: * jump.c (jump_optimize): Merge the "if (...) x = 0;" case with
5118: the "x = a; if (...) x = b;" case.
5119:
5120: Mon Nov 11 19:27:03 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
5121:
5122: * cp-cvt.c (convert_pointer_to): Correctly get type of a TREE_VEC
5123: object. (This patch is from someone at Cygnus.)
5124:
5125: * combine.c (try_combine): Add missing parens.
5126:
5127: Mon Nov 11 19:26:24 1991 Ron Guilmette (rfg at ncd.com)
5128:
5129: * c-typeck.c (build_binary_op_nodefault, convert_for_assignment):
5130: A (void *) object is compatible with a function pointer if it is
5131: the constant zero.
5132: (build_conditional_expr): Properly check for pointers to functions.
5133:
5134: Sun Nov 10 19:59:12 1991 Michael Meissner (meissner at osf.org)
5135:
5136: * cccp.c (make_undef): Fix by off by one error.
5137: (MIN, MAX): Add #undef, in case some system include file defined
5138: these macros.
5139:
5140: Sun Nov 10 10:34:17 1991 Michael Tiemann (tiemann at cygnus.com)
5141:
5142: * cp-decl2.c (grokfield): Set TREE_EXTERNAL on static const
5143: decls that are either uninitialized in their initial declaration,
5144: or initialized by something we cannot evaluate at initial
5145: declaration time.
5146:
5147: * cp-init.c (build_new): Make `operator new' with placement cast
5148: its return type to the type of the object being allocated.
5149:
5150: * cp-typeck.c (commonparms): If the last element of P1 is
5151: VOID_LIST_NODE, use that.
5152:
5153: * stor-layout.c (layout_record): Return PENDING_STATICS.
5154: (layout_type): Don't commit static members to a particular mode
5155: until REC has been laid out completely.
5156:
5157: Sat Nov 9 23:16:51 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
5158:
5159: * cccp.c (fancy_abort): Don't declare as static.
5160:
5161: Sat Nov 9 20:38:30 1991 Michael Tiemann (tiemann at cygnus.com)
5162:
5163: * cp-decl.c (push_overloaded_decl): Don't cons new decl to
5164: existing ERROR_MARK_NODE. If the old decl was erroneous, just
5165: ignore it.
5166:
5167: * cp-call.c (ideal_candidate): Fix typo in error message.
5168:
5169: Sat Nov 9 14:13:46 1991 Jeffrey A Law (law at super.super.org)
5170:
5171: * tm-hp9k2bsd.h (MULSI3_LIBCALL): New define which avoids
5172: the use of __mulsi3 for signed integer multiplication.
5173: (UMULSI3_LIBCALL, DIVSI3_LIBCALL, UDIVSI3_LIBCALL): Likewise.
5174: (MODSI3_LIBCALL, UMODSI3_LIBCALL): Likewise.
5175:
5176: Fri Nov 8 12:05:39 1991 Per Bothner (bothner at cygnus.com)
5177:
5178: First cut at ANSI-style exception handling (using
5179: syntax and semantics of Stroustrup 2nd ed).
5180: THIS IS WORK IN PROGRESS!
5181: * cp-tree.h: Declare flag_ansi_exceptions.
5182: * gplus.gperf: Add 'throw' (for ANSI exception handling),
5183: and update private/protected/public from (old) cp-lex.c.
5184: * cp-hash.h: New file, generated from gplus.gperf.
5185: * cp-lex.c: #include cp-hash.h, instead of requiring
5186: manual cut-and-paste when keywords are changed.
5187: * cp-lex.c: Commented out some extern declarations that
5188: were conflicting with inlines in cp-input.c.
5189: Hooks for ANSI-style exception handling.
5190: * cp-parse.y: Parse ANSI-style exception stuff.
5191: * cp-decl2.c: Define new flag flag_ansi_exceptions.
5192: * cp-decl2.c (finish_table): Off-by-one error in
5193: calculating index type.
5194: * clus-decl2.c (finish_vtable_vardecl): Add missing
5195: TREE_OPERAND to get dossier decl.
5196: * cp-except (cplus_expand_start_except): Allow NULL name,
5197: since there is no distinguished name for ANSI exceptions.
5198: * cp-except (cplus_expand_raise): Too few
5199: parameters to expand_expr; add them.
5200: * cp-except.c: New functions for ANSI exceptions:
5201: cplus_exception_name, ansi_exception_object_lookup,
5202: cplus_expand_throw, ansi_expand_start_catch.
5203: These are heavily hacked from similar old functions.
5204:
5205: Try to make -fdossier work better (but more work is needed).
5206: (Especially, generate fewer unneeded descriptors.)
5207: * cp-class.c (add_virtual_function, finish_struct): Do not
5208: create a vtable just because of -fdossier.
5209: * cp-gc.c: Each type points to an array of fields,
5210: instead of an array of pointers to fields. Ditto for methods.
5211: This saves one pointer per field or method by removing
5212: unneded extra indirection. Also other tweaks to save space.
5213: * cp-decl.c (init_decl_processing): Add length of
5214: field and method arrays to descriptors, instead of
5215: relying on NULL-termination (since we no longer have
5216: the extra pointer array).
5217: Make the parameter count and required count of
5218: method descriptors be shorts.
5219: * cp-method.c: Remove no-longer-needed functions
5220: build_i_desc_overload and build_m_desc_overload.
5221:
5222: Other C++ fixes:
5223: * cp-dbxout.c (dbxout_symbol): Class types were
5224: emitting only a "t" spec which made gdb unhappy.
5225: Kludged it so that it once more emits "Tt".
5226: * cp-tree.c (lang_output_debug_info): Do emit debugging
5227: info if this implementation file corresponds the the
5228: type's interface, even if nothing is written.
5229:
5230: Fri Nov 8 08:18:55 1991 Tom Wood (wood at dg-rtp.dg.com)
5231:
5232: * tm-m88k*.h: Fix comments, minor cleanups.
5233:
5234: Thu Nov 7 16:21:05 1991 Torbjorn Granlund (tege at mole.gnu.ai.mit.edu)
5235:
5236: * longlong.h (__ibm032__): Fix operand order for add_ssaaaa and
5237: sub_ddmmss.
5238:
5239: Thu Nov 7 12:47:14 1991 Michael Meissner (meissner at osf.org)
5240:
5241: * tm-mips.h (MIPS_VERSION): Bump meissner version number to 3.3.
5242: (PCC_BITFIELD_TYPE_MATTERS): Define this to be 1.
5243:
5244: * out-mips.c (block_move_loop): New function to generate a loop to
5245: do a block move.
5246: (block_move_call): Pass the source, destination, size as separate
5247: arguments, rather than a pointer to an array of operands.
5248: (expand_block_move): Change block_move_call calling sequence.
5249: (expand_block_move): If moving big aligned items, generate a loop to
5250: do it, rather than calling memcpy/bcopy.
5251: (override_options): If -msoft-float, 'f' constraint picks GP
5252: registers.
5253:
5254: * t-decrose (collect): Use ALL_CFLAGS instead of CFLAGS, since this
5255: gets the shared library flags in x-decrose.
5256:
5257: Thu Nov 7 07:57:36 1991 Tom Wood (wood at dg-rtp.dg.com)
5258:
5259: * tm-m88k.h (MEMORY_MOVE_COST): Define.
5260: (TARGET_88*): Fix.
5261:
5262: Wed Nov 6 19:07:42 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
5263:
5264: * a29k.md (negsf2, negdf2): Add missing CLOBBER in 29050 case.
5265:
5266: * jump.c (jump_optimize): When looking for a conditional jump
5267: skipping an unconditional jump, be sure the conditional jump is
5268: not an unconditional jump.
5269:
5270: * combine.c (try_combine): If we make an unconditional jump,
5271: be sure it is followed by a BARRIER.
5272: (subst, case SET): Convert (set (pc) (return)) to (return).
5273:
5274: Wed Nov 6 13:41:55 1991 Tom Wood (wood at dg-rtp.dg.com)
5275:
5276: * tm-m88kv3.h, xm-m88kv3.h: Renamed from *m88ksysv3*.
5277:
5278: Wed Nov 6 09:27:16 1991 Michael Meissner (meissner at osf.org)
5279:
5280: * tm-mips.h (MIPS_VERSION): Bump meissner version number to 3.2.
5281: (TARGET_SWITCHES): Add -msoft-float and -mhard-float.
5282: (GP_RETURN): Use GP_REG_FIRST as base of GP registers.
5283: (FP_RETURN): Use FP_REG_FIRST as base of FP registers. If
5284: -msoft-float, make $2 be the return register.
5285: (GP_ARG_FIRST, GP_ARG_LAST): Use GP_REG_FIRST as 1st GP reg.
5286: (FP_ARG_FIRST, FP_ARG_LAST): Use FP_REG_FIRST as 1st FP reg.
5287:
5288: * mips.md (ffssi2, ffssi2_internal): Fix ffs builtin so that it
5289: doesn't clobber the input argument by turning it into a
5290: define_expand, and using a parallel operation including the
5291: necessary clobber's.
5292: (abssi2, ffssi2, ffssi2_internal): Use the 'd' constraint which only
5293: matches the integer registers, rather than 'r' which can match
5294: floating point registers as well.
5295:
5296: * tm-mips-news.h (CPP_SPEC): Add -Dnews7300, -Dsony_news, -Dmips,
5297: and -Dhost_mips.
5298:
5299: Wed Nov 6 08:46:54 1991 Mark Eichin (eichin at cygnus.com)
5300:
5301: * cp-class.c (add_method): when adding a new constructor or
5302: destructor, actually chain onto method_vec[0] rather than replacing
5303: the list with the current entry.
5304:
5305: Wed Nov 6 07:04:55 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
5306:
5307: * expr.c (store_field): Handle case where we are storing into a BLKmode
5308: field of an object that is in a register.
5309: (expand_expr, case COMPONENT_REF): Handle case where we are extracting
5310: a BLKmode field from an object in a register.
5311:
5312: Tue Nov 5 22:16:39 1991 Michael Meissner (meissner at osf.org)
5313:
5314: * tm-mips.h (target_flags): Delete second declaration.
5315: (MASK_G0, MASK_G1, MASK_G2): Delete, since -G xx now works to set
5316: the size of the small data/bss area cutoff.
5317: (MASK_G012_USED, MASK_G012_NUSED): ditto.
5318: (TARGET_GVALUE): ditto.
5319: (TARGET_G012_USED): ditto.
5320: (TARGET_SWITCHES): Delete -mGx, -mno-Gx switches.
5321: (TARGET_DEFAULT): Set to 0 instead of MASK_G012_NUSED.
5322:
5323: * tm-decrose.h (TARGET_DEFAULT): Eliminate MASK_G012_NUSED.
5324:
5325: * out-mips.c (override_options): Remove support for -mGx and -mno-Gx
5326: switches to set the cutoff size for small data/bss.
5327:
5328: * mips.md (abssi2): Add new pattern.
5329: (ffssi2): Add new pattern.
5330:
5331: Tue Nov 5 18:36:29 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
5332:
5333: * gcc.texinfo (MEMORY_MOVE_COST): Document new macro.
5334: * regclass.c (MEMORY_MOVE_COST): Default it to 2.
5335: (regclass, reg_class_record): Use MEMORY_MOVE_COST, not constant 2.
5336: (regclass): Look at result of single_set instead of checking again if
5337: pattern is a SET.
5338: * tm-rs6000.h (MEMORY_MOVE_COST): Add definition.
5339:
5340: Tue Nov 5 17:01:05 1991 Ken Raeburn (raeburn at cygnus.com)
5341:
5342: * cp-pt.c (tsubst): For char_type_node, just build variant and
5343: return it.
5344: (tsubst, case FUNCTION_DECL): Walk methods more efficiently.
5345:
5346: * cp-pt.c (overload_template_name): Push a binding level, to
5347: separate template name binding from method parameters. Check
5348: identifier value slots for TYPE_DECLs, not RECORD_TYPEs. Don't need
5349: to do extra push of TYPE_DECL for template name.
5350: (undo_template_name_overload): Pop it. Don't need to explicitly
5351: clear template name binding.
5352:
5353: * cp-ptree.c (print_lang_decl): For FIELD_DECL, don't try to
5354: print fields that go off the end of the lang_decl_flags structure.
5355:
5356: * cp-pt.c (pop_template_decls): Don't explicitly clear out value
5357: slots of identifier; let poplevel/poplevel_class do it.
5358:
5359: * cp-pt.c: Use build_lang_decl insteaed of build_decl for
5360: all TEMPLATE_DECL and TYPE_DECL nodes.
5361:
5362: * cp-tree.h (make_anon_name): Declare it.
5363:
5364: * cp-pt.c (unify): Deleted unreachable code.
5365:
5366: * cp-decl.c (push_overloaded_decl): Fixed typo from merge.
5367: (start_decl): Ditto.
5368: (grokdeclarator, case CALL_EXPR): Remove debug_tree call
5369: accidentally left in. Handle constructor templates specially, like
5370: destructor templates. Removed some commented-out code.
5371: (grokdeclarator, case SCOPE_REF): If the type is uninstantiated,
5372: treat it like any other aggregate type code.
5373:
5374: * cp-lex.c (identifier_typedecl_value): If no binding slot from
5375: the identifier is the right type decl, use the type name if it is
5376: non-null, even if the name doesn't match.
5377: (build_lang_decl): If new decl node is TREE_PERMANENT, make sure the
5378: lang-specific info gets allocated that way too; don't assume that
5379: the current obstack is permanent.
5380: (copy_decl_lang_specific): If decl is TREE_PERMANENT, assert that
5381: the current obstack is permanent.
5382:
5383: * cp-parse.y (template_def): Delete derivations that were
5384: purportedly for constructors; they didn't work.
5385: (notype_declarator): Deal with them here.
5386: (template_instantiate_once): Copy decl node with permanent obstacks,
5387: thereby clearing the chain pointer, before pushing it into top
5388: level.
5389: (structsp): Don't need to undo template name overload here.
5390: (scoped_typename): Want TYPENAME with template type, not PTYPENAME.
5391:
5392: Tue Nov 5 13:46:06 1991 Tom Wood (wood at dg-rtp.dg.com)
5393:
5394: * sdbout.c (sdbout_init, sdbout_symbol): Don't reverse the
5395: permanent types.
5396:
5397: * cccp.c (make_definition): Eliminate previous change associated
5398: with pretty-printing strings passed to do_define.
5399: (pass_thru_directive): Move pretty-printing here.
5400:
5401: Tue Nov 5 11:21:34 1991 Michael Meissner (meissner at osf.org)
5402:
5403: * tm-mips-news.h (ASM_SPEC, LINK_SPEC): Correctly pass -EB instead
5404: of -EL, since the Sony News system is big endian not little endian.
5405:
5406: Tue Nov 5 09:54:08 1991 Tom Wood (wood at dg-rtp.dg.com)
5407:
5408: * tm-m88kv4.h, t-m88kv4, x-m88kv4: Renamed from *m88ksysv4*.
5409:
5410: Tue Nov 5 06:36:07 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
5411:
5412: * cse.c (simplify_relational_operation, unsigned comparisons): Don't
5413: simplify unless mode of operand is a MODE_INT mode.
5414:
5415: * Makefile.in (*CFLAGS): More clearly document the purposes of each
5416: of the flags. Add X_CFLAGS and T_CFLAGS for x-* and t-* to override.
5417: * x-decrose, x-hp9k320g, x-i386isc, x-m88ksysv4, x-mips, x-tower:
5418: Override X_CFLAGS instead of CFLAGS or INTERNAL_CFLAGS.
5419: * x-vax: Likewise.
5420: * x-sco: Don't include XCFLAGS in definition of CFLAGS.
5421:
5422: * gstddef.h: Renamed from stddef.h.
5423: * Makefile.in (USER_H, install-common-headers): Install gstddef.h as
5424: stddef.h.
5425:
5426: Mon Nov 4 17:54:04 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
5427:
5428: * integrate.c (save_constants): If we are referencing a constant in
5429: the constant pool in a different mode than its normal mode, make
5430: a SUBREG so that we can record both modes.
5431: (copy_for_inline, restore_constants): Handle these SUBREG's.
5432: (copy_for_inline): Must copy a MEM if it's address contains an
5433: ADDRESS (i.e., the address of a constant pool entry).
5434:
5435: * expr.c (expand_expr, case PLUS_EXPR): If adding constant, FP, and
5436: something else, add FP to the constant and then add the other operand.
5437:
5438: * global-alloc.c (find_reg): If all_regs_p, use ALL_REGS, not
5439: GENERAL_REGS.
5440: * local-alloc.c (block_alloc): Likewise.
5441:
5442: * genoutput.c (gen_expand): Record all the same information as
5443: for a DEFINE_INSN.
5444:
5445: * cse.c (simplify_binary_operation, case PLUS): Simplify expressions
5446: like (a +/- b) - (a +/- c).
5447: (simplify_binary_operation, case MULT): For X * (-1), try to simplify
5448: the NEG before we make it.
5449:
5450: Mon Nov 4 16:29:01 1991 Mark Eichin (eichin at cygnus.com)
5451:
5452: * cp-pt.c (overload_template_name): use build_lang_decl so that
5453: lang_specific gets initialized properly.
5454:
5455: * cp-parse.y (LC): use make_lang_type to produce complete node,
5456: not just make_node.
5457:
5458: * cp-ptree.c (print_lang_type): return if TYPE_LANG_SPECIFIC is
5459: null, since everything printed here is in lang_specific.
5460:
5461: Mon Nov 4 16:17:48 1991 James Van Artsdalen (james at raid.dell.com)
5462:
5463: * x-i386v4: New file.
5464: * configure (i386-sysv4): Use it.
5465:
5466: Mon Nov 4 12:36:09 1991 Michael Meissner (meissner at osf.org)
5467:
5468: * gcc.texinfo (BRANCH_COST): Move so BRANCH_COST formats correctly.
5469:
5470: Mon Nov 4 08:03:44 1991 Tom Wood (wood at dg-rtp.dg.com)
5471:
5472: * x-m88kdgux, x-m88ksysv4: Don't set XCFLAGS.
5473:
5474: * jump.c (jump_optimize): Change "if (...) x = 0;" to use a
5475: store-flag insn if jumps are expensive (BRANCH_COST).
5476:
5477: * tm-m88k.h (BRANCH_COST): Branches are cheap on the m88100.
5478: (OVERRIDE_OPTIONS): Make m88100 the default.
5479: (STORE_FLAG_VALUE): Use -1.
5480: (.ctors and .dtors sections): Change section flags.
5481: * m88k.md (sxx, negate sxx): Use ext and extu. Eliminate extendsxx.
5482:
5483: Mon Nov 4 07:19:36 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
5484:
5485: * romp.md (movdf, movdi): When splitting, ensure we put in a CLOBBER
5486: for a scratch register, when needed.
5487:
5488: * tm-a29k.h (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE): Define to be
5489: compatible with those chosen by EPI.
5490:
5491: * tm-rs6000.h (REG_ALLOC_ORDER): Put CR registers before integer regs.
5492:
5493: * cse.c (simplify_relational_operation): Fix error in last change.
5494:
5495: Sun Nov 3 12:22:41 1991 Torbjorn Granlund (tege at sics.se)
5496:
5497: * longlong.h (m68020 count_leading_zeros): Fix typo in previous
5498: change.
5499:
5500: Sun Nov 3 09:25:39 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
5501:
5502: * cse.c (simplify_relational_operation, cases GEU, LTU, GTU, LEU):
5503: Simplify comparisons that have known values such as (unsigned) x < 0.
5504:
5505: * final.c (final_scan_insn): If we've just made a branch unconditional,
5506: convert (set (pc) (return)) to (return).
5507: Use const_true_rtx instead of calling gen_rtx to make it again.
5508:
5509: * x-romp (CC): Pass -Hnocpp to hc so it will use builtin preprocessor.
5510: (INTERNAL_CFLAGS): Don't define BSTRING here.
5511: * xm-romp.h (alloca): Add definition to allow use of hc's builtin.
5512: (BSTRING): Define here.
5513:
5514: * reload1.c (spill_hard_reg): Correct typo in previous change; had
5515: test backwards.
5516:
5517: * function.c (instantiate_virtual_regs_1, case PLUS): If can't
5518: replace operand with register, try to replace all copies of operand
5519: with the register in case of MATCH_DUP.
5520:
5521: * recog.c (validate_replace_rtx_1): Use rtx_equal_p to see if
5522: things are equal.
5523:
5524: * genconfig.c (max_recog_operands, max_dup_operands): Remove `_flag'
5525: in name since these aren't flags.
5526: (max_clobbers_per_insn): Likewise.
5527: (main): Default to at least 10 operands (for asm) and 1 dup operand.
5528:
5529: Sun Nov 3 07:26:57 1991 Ron Guilmette (rfg at ncd.com)
5530:
5531: * Makefile.in (gnulib1.null): Use $(GCC_FLAGS) instead
5532: of $(CCLIBFLAGS).
5533: (gnulib1): Don't copy gnulib1.c into a temporary .c file before
5534: compiling. That messes up the source file names in the debug info,
5535: which makes it harder to debug gnulib1 problems.
5536:
5537: * Makefile.in (install-*): Force removal of previously installed files
5538: before installing new ones (in case they got set to read-only somehow).
5539:
5540: * Makefile.in (uninstall): Remove protoize.1 and unprotoize.1 man
5541: page files.
5542:
5543: Sat Nov 2 22:42:06 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
5544:
5545: * out-a29k.c (output_epilog): Remove write_symbols from parameter list
5546: of call to final_scan_insn.
5547: * out-m88k.c (preserve_registers): Likewise.
5548: * out-mips.c (function_epilogue): Likewise.
5549: * out-sparc.c (output_function_epilogue, output_tail_call): Likewise.
5550:
5551: Sat Nov 2 22:02:45 1991 Ken Raeburn (raeburn at cygnus.com)
5552:
5553: * cp-search.c (push_class_decls): Added missing argument to
5554: overload_template_name.
5555:
5556: * cp-ptree.c (print_lang_decl): Don't print lang-specific fields
5557: for FIELD_DECL, since it has only the shorter flags structure.
5558:
5559: * cp-class.c (finish_struct_method): Fixed comment typo.
5560:
5561: * cp-decl.c: Add some code for debugging binding level
5562: manipulations, conditionalized on DEBUG_CP_BINDING_LEVELS.
5563: (debug_bindings_indentation): New var, used to maintain indentation
5564: to indicate which changes are on the behalf of other routines.
5565: (push_binding_level): Print debugging messages to track binding
5566: level changes and call/nesting sequences.
5567: (pushlevel, poplevel): Ditto.
5568: (pushlevel_class): Ditto.
5569: (pop_binding_level): Ditto. Also scribble over freed binding level,
5570: and don't store it for re-use.
5571: (poplevel_class): Ditto.
5572: * cp-decl.h (debug_bindings_indentation): Declare it.
5573: * cp-pt.c (push_template_decls, pop_template_decls): Added
5574: debugging fprintf calls here too.
5575:
5576: Sat Nov 2 17:00:22 1991 Ron Guilmette (rfg at ncd.com)
5577:
5578: * cp-except.c (finish_exception_decl): Change `enum debugger' to
5579: `enum debug_info_type'.
5580: * final.c (final_start_function, final, final_end_function,
5581: output_source_line): Delete the `write_symbols' parameter.
5582: Instead use the global `write_symbols' declared in flags.h.
5583: * sched.c (unlink_notes, schedule_block, schedule_insns): Compare
5584: `write_symbols' with NO_DEBUG rather than with zero.
5585: * toplev.c (rest_of_decl_compilation, rest_of_compilation): Don't
5586: pass `write_symbols' to assemble_variable, final_start_function,
5587: final, final_end_function.
5588: * varasm.c (assemble_variable): Delete the `write_symbols' parameter.
5589: Instead use the global`write_symbols' declared in flags.h
5590:
5591: Sat Nov 2 09:48:47 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
5592:
5593: * caller-save.c: Don't include reload.h; not used.
5594: * Makefile.in (caller-save.o): Likewise.
5595:
5596: * final.c (final_start_function, final_end_function, final): Change
5597: enum debugger to enum debug info to finish previous change.
5598: (final_scan_insn, output_source_line): Likewise.
5599: * varasm.c (assemble_variable): Likewise.
5600:
5601: * rtlanal.c (modified_between_p, find_last_value): New functions; not
5602: yet used.
5603: * rtl.h (find_last_value): Declare.
5604:
5605: * cse.c (simplify_binary_operation): Remove comparison cases from
5606: here; now in simplify_relational_operation.
5607:
5608: Fri Nov 1 19:04:50 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
5609:
5610: * rtl.h (REG_DEAD): More precisely describe when a REG_DEAD note
5611: should be present.
5612: * rtlanal.c (dead_or_set_regno_p): New function.
5613: (dead_or_set_p): A value is dead or set only if each register in it
5614: is dead or set.
5615: * combine.c (reg_bitfield_target): New function.
5616: (distribute_notes, case REG_DEAD): Place REG_DEAD note only if both
5617: dead_or_set_p and reg_bitfield_target are false.
5618: * flow.c (cc0_live): New variable; replaces following_insn_dead.
5619: (propagate_block): Initialize cc0_live instead of following_insn_dead.
5620: Track CC0's life just like other regs instead of using special
5621: mechanism involving following_insn_dead.
5622: Clear last_mem_set even when not final pass.
5623: Don't call mark_used_regs on dead insns.
5624: (insn_dead_p): Use cc0_live to see if a set of CC0 is dead.
5625: Correctly test if set of multi-word value is needed; set if dead only
5626: if none of the words are needed.
5627: (libcall_dead_p): Allow CALL to be in any part of PARALLEL.
5628: Use insn_dead_p to see if SET of return register is dead; old code
5629: incorrectly tested multi-word registers.
5630: (mark_set_1): Track whether all or only some words of a value are
5631: needed; write partial REG_UNUSED note if only some words won't be
5632: needed.
5633: (mark_used_regs): Likewise for REG_DEAD notes.
5634: Set cc0_live for a reference to CC0.
5635: Don't write REG_DEAD note if register is already dead or set in INSN.
5636: No longer check for unused SET_DEST since it won't be called for dead
5637: insns; if a single SET's result was unneeded but the insn can't be
5638: deleted, the source of the SET is live.
5639: Clear last_mem_set even if not final pass.
5640:
5641: * reload1.c (gen_input_reload): Handle REG+MEM the same as REG+INT.
5642:
5643: * gcc.c (xmalloc, xrealloc): Use unsigned instead of size_t for `size'.
5644:
5645: * cccp.c (bcopy, bzero, bcmp): No longer static. Only declare at
5646: front of file if we are going to define them later.
5647:
5648: Fri Nov 1 18:57:25 1991 Ron Guilmette (rfg at ncd.com)
5649:
5650: * cccp.c (timebuf): Declaration moved out of `special_symbol' and
5651: made global (and "static") to get values of __DATE__ and __TIME__
5652: to remain constant throughout compilation.
5653: (debug_output): New variable.
5654: (main): Accept -g3 option and set debug_output when seen.
5655: (main): Moved initializations of `outbuf' and `fp' to before call
5656: to `initialize_builtins'.
5657: Pass fp and &output to initialize_builtins so that it can write out
5658: artificial #define lines for builtin symbols.
5659: Call `output_line_directive' before doing each make_define or
5660: make_undef so that when `debug_output' is in effect, we'll
5661: get #line 0 directives before each artificial #define or #undef.
5662: (special_symbol): Initialization of `timebuf' deleted from here.
5663: (initialize_builtins): Initialize timebuf here.
5664: (pass_thru_directive): New function.
5665: (do_define, do_undef): Use `pass_thru_directive' for "precompilation"
5666: of header files.
5667: Call `pass_thru_directive' when -g3 option used.
5668: (initialize_builtins): Generate artificial #define directives (in the
5669: output) to represent the values of all builtin symbols whose defs
5670: can't change during compilation.
5671: (make_undef): Added output buffer param so that make_undef could let
5672: do_undef do output to stdout.
5673: Call do_undef with a real output buffer.
5674: (make_definition): Likewise.
5675: Many minor changes to get strings passed to do_define to always look
5676: like correctly formed #define directives.
5677:
5678: * c-decl.c (store_parm_decls): Remove non-params from the list before
5679: checking to see if the type of any element of the list is complete.
5680: (pushlevel): Fixed bug which caused scope of tagged types to be
5681: incorrectly assigned to the outermost {} block of functions rather
5682: than to the outermost binding contours of functions.
5683: (pushtag): Revised to clarify code used to find applicable
5684: binding level for a tagname.
5685: Set TYPE_CONTEXT of new tagged type so that dwarfout.c can tell
5686: file-scope tagged types from non-file-scope tagged types.
5687: Create a NULL-named TYPE_DECL node for each new tagged type
5688: (even incomplete ones).
5689: (finish_struct, finish_enum): Don't create NULL-named
5690: TYPE_DECL nodes for complete tagged types. (This is now done in
5691: `pushtag' for *all* new tagged type declarations and definitions.)
5692:
5693: * toplev.c (compile_file): Adjust conditions under which
5694: `dwarfout_file_scope_decl' is called during final traversal of
5695: the chain of file-scope decls so that it is called also for
5696: file-scope TYPE_DECLs.
5697: (rest_of_decl_compilation): Deleted call to `dwarfout_file_scope_decl'
5698: for file-scope TYPE_DECLs; call `dwarfout_file_scope_decl' instead of
5699: `dwarfout_file_scope_symbol'.
5700:
5701: * dbxout.c, sdbout.c, flags.h, toplev.c: Change DEBUG_LEVEL_* to
5702: DINFO_LEVEL_* to prevent possible confusion about meaning.
5703:
5704: * flags.h, toplev.c: (enum debug_info_type): Renamed type from
5705: `debugger' and cleaned up definition of type (including deletion
5706: of useless EXTENDED_DBX_DEBUG code).
5707: (use_gdb_dbx_extensions): Make declarations conditional on
5708: DBX_DEBUGGING_INFO being defined.
5709:
5710: * out-i860.c (output_fp_move_double, find_addr_reg): Add return stmts
5711: to avoid warnings when compiling with -Wreturn-type.
5712: (output_delayed_branch): Fix test for CONST_INT values which must be
5713: loaded in two instructions (as two halves).
5714: (function_epilogue): Remove ASM_OUTPUT_EPILOGUE_SUFFIX. (Superceeded
5715: by ASM_DECLARE_FUNCTION_SIZE in varasm.c.)
5716:
5717: * xm-i386.h (i386): Define in case the native host compiler doesn't.
5718:
5719: * tm-svr4.h (SVR4): Define this rather than SVR4_target.
5720: (ASM_FINAL_SPEC): Support the -pipe option.
5721: (ASM_DECLARE_FUNCTION_NAME, ASM_DECLARE_OBJECT_NAME): Allow easy
5722: redefinition of the syntax for second operand of .type.
5723: (ASM_DECLARE_FUNCTION_SIZE): Fix line continuations.
5724:
5725: Fri Nov 1 14:14:14 1991 Michael Meissner (meissner at osf.org)
5726:
5727: * out-mips.c (mips_asm_file_end): Generate correct code if the user
5728: uses asm("name"). Patch from [email protected].
5729:
5730: * mips-tfile.c (init_file initialization): Fix #ifdef
5731: BYTES_BIG_ENDIAN to be #if BYTES_BIG_ENDIAN, to allow the DECstation
5732: to work again.
5733: (toplevel): Remove declarations of internal library functions,
5734: _flsbuf, _filbuf.
5735:
5736: Thu Oct 31 14:59:11 1991 Torbjorn Granlund (tege at mole.gnu.ai.mit.edu)
5737:
5738: * longlong.h (m68020 count_leading_zeros): Use %b for offset and
5739: width syntax for bfffo instruction.
5740:
5741: Thu Oct 31 05:45:54 1991 Ken Raeburn ([email protected])
5742:
5743: * cp-decl.c (PUSH_BINDING_LEVEL, POP_BINDING_LEVEL): Replaced
5744: uses of macros with their expansions, and deleted the macros.
5745:
5746: Wed Oct 30 12:45:33 1991 Ron Guilmette (rfg at ncd.com)
5747:
5748: * dwarfout.c, dwarf.h, README.DWARF: Replacement files that bring
5749: the Dwarf implementation up to that defined by draft 5 of the
5750: UI/PLSIG Dwarf specification.
5751:
5752: Wed Oct 30 10:50:07 1991 Michael Meissner (meissner at osf.org)
5753:
5754: * objc-parse.y (yylex): Cast short types to int before shifting, to
5755: avoid bogus warnings from the MIPS C compiler.
5756:
5757: * cccp.c (fancy_abort): Make this global again, so that
5758: -Dabort=fancy_abort will not cause a link error, because obstack.c
5759: contains a reference to abort.
5760:
5761: Wed Oct 30 07:38:08 1991 Tom Wood (wood at dg-rtp.dg.com)
5762:
5763: * SYSCALLS.c (abort): Undefine first.
5764:
5765: * xm-m88k.h (HOST_WORDS_BIG_ENDIAN): Define it.
5766: * out-m88k.c (output_and): Choose "clr" last.
5767:
5768: Tue Oct 29 22:49:47 1991 Michael Meissner (meissner at osf.org)
5769:
5770: * tm-mips.h (num_refs): New global array.
5771: (mips_count_memory_refs): New function decl.
5772:
5773: * out-mips.h (num_refs): New global array to count number of 1, 2,
5774: or 3 instruction data references with -mstats.
5775: (mips_count_memory_refs): New function decl to determine whether a
5776: data memory reference uses 1, 2, or 3 instructions.
5777: (mips_move_1word, mips_move_2words): Call mips_count_memory_refs
5778: as appropriate.
5779: (function_epilogue): Print number of 1, 2, and 3 instruction
5780: memory references if -mstats.
5781:
5782: * mips.md (movsi_ulw, movsi_usw): Call mips_count_memory_refs if
5783: needed.
5784:
5785: Tue Oct 29 05:14:27 1991 Ken Raeburn (raeburn at cygnus.com)
5786:
5787: * cp-parse.y (template_def): Don't pass bogus declspecs to
5788: start_decl.
5789:
5790: * cp-pt.c (tsubst, case FUNCTION_DECL): Build new argument list
5791: from method template, instead of retaining the old one.
5792:
5793: Tue Oct 29 00:44:51 1991 Ken Raeburn (raeburn at cygnus.com)
5794:
5795: * cp-class.c (finish_struct): Skip type fields if they are
5796: template names bound to their expansions.
5797:
5798: * cp-decl.c (binding_levels_sane): Define only if PARANOID; use a
5799: macro returning 1 otherwise. Check class_binding_level stack for
5800: consistency also.
5801: (pushdecl): Verify that bindings pushed at global scope are in
5802: permanent obstack storage.
5803: (start_decl): While processing_template_decl, don't also need to
5804: verify that the decl uses the template parameters. For method
5805: templates, construct proper method type for result. TREE_EXTERNAL
5806: flag for methods should be cleared if DECL_EXTERNAL is clear.
5807: (grokdeclarator, case CALL_EXPR): Intercept destructor templates,
5808: which have a different internal form, and convert them to a form
5809: that can be recognized.
5810:
5811: * cp-decl2.c (grokclassfn): Include length of class name when
5812: creating assembler name for destructor; otherwise ambiguities
5813: result.
5814:
5815: * cp-lex.c (identifier_typedecl_value): New fn; scans bindings of
5816: identifier for a given type decl; falls back to name of type.
5817: * cp-tree.h (IDENTIFIER_TYPEDECL_VALUE): Call it.
5818:
5819: * cp-method.c (fndecl_as_string): Print constructor_name of type
5820: for constructor and destructor, not type name.
5821:
5822: * cp-parse.y (template_def): Don't output warning about missing
5823: type and storage class, since this gets printed for destructor
5824: templates.
5825: (notype_declarator): Accept '~' PTYPENAME.
5826: (scoped_typename): Want a PTYPENAME, not TYPENAME. Build a
5827: SCOPE_REF node instead of calling resolve_scope_to_name.
5828:
5829: * cp-pt.c (instantiate_member_templates): New fn. Instantiates
5830: members associated with template for a given template class.
5831: * cp-method.c (template_instantiate_once): Call it.
5832:
5833: * cp-pt.c (end_template_decl): Catch destructor templates that
5834: are being passed through without being converted to TEMPLATE_DECL
5835: nodes; convert them now. Copy argument list for function template
5836: into permanent storage.
5837: (lookup_template_class): Supply IDENTIFIER_TEMPLATE data for new
5838: anonymous type name.
5839: (tsubst, case FUNCTION_DECL): Improve method lookup code.
5840: (tsubst): Use hash table and build_cplus_* functions for building
5841: new nodes when possible, so equality tests are easier. Extend
5842: FUNCTION_TYPE case to handle METHOD_TYPE as well.
5843: (instantiate_template): Don't do anything for error_mark_node.
5844: (do_pending_expansions): Keep expansions not used in queue to check
5845: again later.
5846:
5847: * cp-tree.def: Fix up some comments relating to PT-related types.
5848:
5849: * tree.c (init_tree_codes): Now void, in agreement with decl
5850: elsewhere.
5851:
5852: Mon Oct 28 22:07:44 1991 Jeffrey A Law (law at b117.super.org)
5853:
5854: * output.h (current_function_uses_pic_offset_table): Declare here
5855: so that out-*.c can see it.
5856:
5857: * tm-m68k.h (FINALIZE_PIC): New macro.
5858: (PIC_OFFSET_TABLE_REGNUM): New macro. Defines which address
5859: register is used to hold the offset table for PIC.
5860: (CONDITIONAL_REGISTER_USAGE): Make PIC_OFFSET_TABLE_REGNUM be
5861: fixed when generating position independent code.
5862:
5863: * out-m68k.c (finalize_pic): New function.
5864: (output_function_prologue): If generating position independent
5865: code output assembler text to load the pic_offset_table register.
5866:
5867: Mon Oct 28 10:02:36 1991 Michael Meissner (meissner at osf.org)
5868:
5869: * toplev.c (main): If -G is used, set g_switch_set to true, and set
5870: g_switch_value to be the integer value of it's argument, for use in
5871: the MIPS port to determine whether a static or global item goes into
5872: the normal data area, or into the small data area.
5873:
5874: * out-mips.c (g_switch_set, g_switch_value): Delete these global
5875: variables, since toplev.c now defines them.
5876:
5877: * tm-mips.h (EXTRA_INT_OPTIONS): Delete macro which is no longer
5878: used in internal OSF patches to provide -G xx support.
5879: (ASM_SPEC, CC1_SPEC, LINK_SPEC): Remove -G32, since the new -G
5880: patches take care of it now.
5881:
5882: * tm-decrose.h (ASM_SPEC, LINK_SPEC): Remove -G32.
5883:
5884: * tm-decstatn.h (ASM_SPEC, LINK_SPEC): Remove -G32.
5885:
5886: * tm-iris.h (ASM_SPEC, LINK_SPEC): Remove -G32.
5887:
5888: * tm-mips-bsd.h (LINK_SPEC): Remove -G32.
5889:
5890: * tm-mips-news.h (ASM_SPEC, LINK_SPEC): Remove -G32.
5891:
5892: * tm-mips-sysv.h (LINK_SPEC): Remove -G32.
5893:
5894: Mon Oct 28 07:11:28 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
5895:
5896: * combine.c (try_combine): Don't delete unused SETs if they have
5897: side-effects.
5898:
5899: * Makefile.in, t-i386sco: Had both LIMIT_H and LIMITS_H; latter
5900: is correct.
5901:
5902: * combine.c (subst): New argument `unique_copy'; if non-zero ensure
5903: each copy of `from' replaced gets a unique copy of `to'.
5904: Pass arg to recursive callers.
5905: (try_combine): Pass new arg to subst.
5906:
5907: * Makefile.in (LANGUAGES): Use `objective-c' instead of `class-c'
5908: to avoid confusion.
5909:
5910: * gcc.c (xmalloc, xrealloc): Really make non-static.
5911:
5912: Mon Oct 28 00:21:56 1991 Michael Meissner (meissner at osf.org)
5913:
5914: * tm-mips.h (CC1_SPEC): Convert -gline into -g1.
5915:
5916: Sun Oct 27 17:15:48 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
5917:
5918: * reload1.c (spill_hard_reg): Rework code that relies on the fact that
5919: reg_class_superclasses[i][0] == i, since it isn't true!
5920:
5921: Sun Oct 27 06:15:24 1991 Ron Guilmette (rfg at ncd.com)
5922:
5923: * configure: Always remove any files before we write them in case
5924: the old copy was read-only.
5925:
5926: * Makefile.in (manext): Now just extension without the period.
5927: (mandir): Default to include manext.
5928: (install-man): Adjust to new definition of manext.
5929: (uninstall): Remove protoize.1 and unprotoize.1 from mandir.
5930:
5931: * genemit.c (gen_exp): Write integer using %u instead of %d to
5932: avoid warnings from some compilers when most negative int is written.
5933:
5934: * cccp.c: Make variables not used outside this file static.
5935: (main, line_to_error, xmalloc, xrealloc, xcalloc): Add missing return
5936: statements (in unreachable paths).
5937: (xmalloc, xrealloc, xcalloc, savestring): Make SIZE arg unsigned.
5938:
5939: Sun Oct 27 06:14:45 1991 Jeffrey A Law (law at b115.super.org)
5940:
5941: * tm-m68k.h (SELECT_RTX_SECTION): New macro. Used to force
5942: symbolic objects in the constant pool into the read-write data
5943: section when generating position independent code.
5944:
5945: * recog.c (general_operand, immediate_operand, nonmemory_operand):
5946: Use LEGITIMATE_PIC_OPERAND_P to reject constants which are not
5947: valid when generating position independent code.
5948:
5949: * reload.c (find_reloads): Do not win in 's', 'i', or 'g' cases
5950: if the constant does not satisfy LEGITIMATE_PIC_OPERAND_P.
5951:
5952: * tm-m68k.h (LEGITIMATE_PIC_OPERAND_P): New macro.
5953:
5954: * out-m68k.c (symbolic_operand): New function. Copied from
5955: tm-sparc.h.
5956:
5957: * gcc.texinfo: Document LEGITIMATE_PIC_OPERAND_P.
5958:
5959: Sat Oct 26 07:51:40 1991 Michael Meissner (meissner at osf.org)
5960:
5961: * mips.md (movsi_usw): Remove invalid '&' constraint on a memory
5962: address.
5963:
5964: Sat Oct 26 07:16:15 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
5965:
5966: * flow.c (find_basic_blocks): Build label_value_list as list of
5967: CODE_LABELs, not LABEL_REFs.
5968:
5969: * fold-const.c (optimize_bit_field_compare): Call fold on result
5970: of build1 call that converts integer to proper mode.
5971:
5972: * rtl.h (unsigned_condition, signed_condition): Add definition;
5973: functions were previously added to jump.c.
5974: * combine.c (simplify_comparison): Use unsigned_condition to simplify
5975: last change.
5976:
5977: Sat Oct 26 06:48:59 1991 Jeffrey A Law (law at b115.super.org)
5978:
5979: * tm-sun2.h, tm-sun3.h (ASM_SPEC): Pass "-k" to the assembler if
5980: -fpic or -fPIC.
5981:
5982: Fri Oct 25 20:43:54 1991 Michael Meissner (meissner at osf.org)
5983:
5984: * tm-mips.h (CC1_SPEC): Remove special rules for -g0, -g1, etc., now
5985: that GCC supports these directly.
5986:
5987: * configure (dec-mips-osf): DECstation running OSF/rose uses
5988: t-decrose, not t-mips.
5989:
5990: * x-decrose (COFF_CC, COFF_CFLAGS, WARNINGS): Delete.
5991: (libdir, bindir, mandir): Put GCC 2 in the /usr/ccs/gcc tree.
5992:
5993: * x-mips (comment): Delete a comment about cross compilers that is
5994: no longer true.
5995:
5996: * t-decrose (coff-obstack.o): Delete rule that is no longer used.
5997:
5998: Fri Oct 25 18:46:51 1991 Mark Eichin (eichin at cygnus.com)
5999:
6000: * cp-dem.c (cp-demangle): added support for templates, static
6001: data, and the new (correct) mangling for destructors.
6002:
6003: Fri Oct 25 16:18:18 1991 Mark Eichin (eichin at tweedledumber.cygnus.com)
6004:
6005: * cp-decl2.c: (grokclassfn): destructor names *should* contain
6006: the length; otherwise, we can't tell the difference between a
6007: destructor for a class whose name begins with 't' and a destructor
6008: for an instance of a template class.
6009:
6010: Fri Oct 25 02:15:12 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
6011:
6012: * SYSCALLS.c, protoize.c: Changes from rfg.
6013: waiting for real changelog entries from rfg.
6014:
6015: * gcc.c (xmalloc, xrealloc): No longer static.
6016:
6017: Thu Oct 24 19:21:04 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
6018:
6019: * fold-const.c (optimize_bit_field_compare):
6020: Use build1 rather than convert, to avoid warnings.
6021:
6022: * final.c (output_source_line): Fix if-scope for DBX fmt.
6023:
6024: Thu Oct 24 13:29:34 1991 Tom Wood (wood at dg-rtp.dg.com)
6025:
6026: * gcc.c gen*.c: Don't make fancy_abort static.
6027:
6028: Thu Oct 24 12:07:23 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
6029:
6030: * combine.c (simplify_comparison): When narrowing a comparison
6031: and removing ANDs, make it unsigned.
6032:
6033: Thu Oct 24 08:02:04 1991 Ken Raeburn (raeburn at cygnus.com)
6034:
6035: * cp-decl.c (binding_levels_sane): New function, tests that stack
6036: of binding levels is consistent. Argument provides extra
6037: identification for call site, in case compiler optimizes too well.
6038: If PARANOID is not set, does nothing.
6039: (push_binding_level, pop_binding_level): Now functions, for easier
6040: debugging. Inlined under GNU C if not PARANOID.
6041: (PUSH_BINDING_LEVEL, POP_BINDING_LEVEL): Invoke functions.
6042: (push_to_top_level): Use type-shadowed slots to unwind
6043: IDENTIFIER_TYPE_VALUE back to top level.
6044: (start_decl): When processing a template decl, shouldn't need to
6045: check uses_template_parms. For methods, modify arg list to include
6046: `this'. Don't set context of template. Use perm_tree_cons when
6047: building members list for class template.
6048: (grokdeclarator): Check "friend" flag before calling
6049: globalize_nested_type. Build a method type for a function that has
6050: a context.
6051:
6052: * cp-pt.c (end_template_decl): If template has non-null context,
6053: chain it off of the containing class, rather than using pushdecl.
6054: (instantiate_class_template): Instantiate all the member templates
6055: hanging off the class template. Also, simplify some code in the
6056: case where setup_parse is 0.
6057: (tsubst): Check for several common values that won't be modified by
6058: substitutions.
6059: (tsubst, case FUNCTION_DECL): Don't return type passed if it has a
6060: non-null context that might need fixing. Process that context while
6061: building up the new decl node; use it to notify build_decl_overload
6062: that we've got a method rather than a function.
6063: (tsubst, case METHOD_TYPE): Handle like FUNCTION_TYPE; enhance that
6064: case to handle TYPE_METHOD_BASETYPE when set.
6065: (unify): Increment value pointed to by nsubsts, not the pointer
6066: itself.
6067: (do_pending_expansions): Method context is in DECL_CONTEXT, not
6068: DECL_CLASS_CONTEXT.
6069:
6070: * cp-lex.c (do_identifier): Don't try looking up fields in base
6071: classes of UNINSTANTIATED_P_TYPE.
6072:
6073: * cp-parse.y (primary): Call require_complete_type only for
6074: CALL_EXPR nodes of types other than void.
6075: (template_type): Don't call IDENTIFIER_TYPE_VALUE on
6076: error_mark_node.
6077:
6078: * cp-ptree.c (print_lang_decl): For UNINSTANTIATED_P_TYPE, show
6079: template as well as parameters.
6080:
6081: * cp-tree.h (DECL_TEMPLATE_*, UPT_*): New accessor macros for
6082: TEMPLATE_DECL and UNINSTANTIATED_P_TYPE nodes. All (most?) uses
6083: except for node creation changed to use these.
6084: * cp-tree.def: Updated comments for these node types.
6085:
6086: * cp-pt.c (uses_template_parms): Handle ADDR_EXPR.
6087: (end_template_decl): For function with non-null context, pop class
6088: binding level.
6089:
6090: Thu Oct 24 06:57:28 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
6091:
6092: * a29k.md, romp.md, rs6000.md (movdi, movdf, movti): Handle case of
6093: reg-reg copy with overlapping registers correctly.
6094:
6095: * out-rs6000.c (ccr_bit, case NE): Fix typo in bit number.
6096: (output_epilog): Must restore stack using backchain if alloca called.
6097:
6098: * romp.md, rs6000.md (extendxxyy2, zero_extendxxyy2): Use DEFINE_EXPAND
6099: to force operand to register; DEFINE_INSN allows memory (better cse).
6100:
6101: * rs6000.md (ffssi2): New patterns.
6102: (maskir): Add patterns to use maskir instructions.
6103:
6104: * tm-a29kunix.h (TARGET_DEFAULT, CPP_SPEC): Default to 29050.
6105:
6106: * tm-rs6000.h (LINK_SPEC): Add -bnodelcsect.
6107: (HARD_REGNO_MODE_OK): Delete kludge that didn't allow DImode in reg 31
6108: and TImode in 29-31; the bug was fixed elsewhere.
6109:
6110: Wed Oct 23 17:48:43 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
6111:
6112: * combine.c (try_combine): If an insn doesn't match, check for case
6113: where first SET's result isn't used; previously only checked second.
6114:
6115: * combine.c (try_combine): When we substitute into a COMPARE, check
6116: SELECT_CC_MODE to see if we should try to change the mode of the
6117: COMPARE and its result.
6118:
6119: Wed Oct 23 16:38:26 1991 Torbjorn Granlund (tege at hal.gnu.ai.mit.edu)
6120:
6121: * gnulib2.c (__ashrdi3): Compute sign extension shift count from
6122: machine word size instead of using 31.
6123:
6124: Wed Oct 23 14:25:04 1991 Michael Meissner (meissner at osf.org)
6125:
6126: * tm-mips.h (PREFERRED_DEBUGGING_TYPE): Unless otherwise defined,
6127: set to SDB_DEBUG.
6128:
6129: * tm-decrose.h (PREFERRED_DEBUGGING_TYPE): Define to DBX_DEBUG.
6130:
6131: * out-mips.c (override_options): Don't override debugger choice now
6132: that PREFERRED_DEBUGGING_TYPE is provided.
6133:
6134: Wed Oct 23 07:25:32 1991 Tom Wood (wood at dg-rtp.dg.com)
6135:
6136: * sdbout.c (sdbout_symbol/FUNCTION_DECL, sdbout_toplevel_data,
6137: sdbout_end_epilogue): Use DECL_ASSEMBLER_NAME to avoid link-time
6138: multiple definitions.
6139:
6140: Tue Oct 22 15:06:31 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
6141:
6142: * reload1.c (reload): For now, we must always have a frame pointer
6143: if a function calls alloca and EXIT_IGNORE_STACK is non-zero.
6144:
6145: * cse.c (insert_regs): Don't make new quantity for the register in
6146: a SUBREG.
6147: (merge_equiv_classes): Don't invalidate the register inside a SUBREG.
6148: (canon_hash, case SUBREG): Remove code to treat SUBREGs like REGs.
6149:
6150: Tue Oct 22 10:25:29 1991 Tom Wood (wood at dg-rtp.dg.com)
6151:
6152: * tm-m88kdgux.h (PREFERRED_DEBUGGING_TYPE): Use it.
6153: * tm-m88k.h (OVERRIDE_OPTIONS): Don't override write_symbols.
6154:
6155: * out-m88k.c (m88k_output_{prologue,epilogue}): Renamed.
6156:
6157: Tue Oct 22 00:51:48 1991 Richard Stallman ([email protected])
6158:
6159: * c++: New shell script.
6160:
6161: * gcc.c (default_compilers): Treat .ii files as cpp'd C++.
6162:
6163: * varasm.c (make_function_rtl): Don't alter DECL_ASSEMBLER_NAME.
6164:
6165: * toplev.c (main): Use PREFERRED_DEBUGGING_TYPE if support
6166: more than one format.
6167:
6168: Mon Oct 21 23:08:02 1991 Richard Stallman ([email protected])
6169:
6170: * c-decl.c (grokdeclarator): Fix error message for long float.
6171:
6172: Mon Oct 21 16:55:31 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
6173:
6174: * optabs.c (add_equal_note): New function.
6175: (expand_binop): Delete some obsolete, turned-off code.
6176: Use GET_RTX_CLASS to see if operator is commutative.
6177: Call add_equal_note if we make a multi-insn sequence; if it fails,
6178: redo the operation without our target.
6179: In multi-word cases, don't allow TARGET to be the same as an input.
6180: (expand_unop): Allow operation to fail.
6181: Call add_equal_note and allow failure, like in expand_binop.
6182: In multi-word case, don't allow TARGET to be OP0.
6183: (emit_unop_insn): Use add_equal_note; ignore its failure here.
6184:
6185: * optabs.c (expand_float, expand_fix): In cases when we will jump,
6186: ensure we call emit_queue before protect_from_queue.
6187: Eliminate redundant calls to protect_from_queue and force_non_mem.
6188:
6189: * reorg.c (steal_delay_list_from_target): Don't take an insn from
6190: the fallthrough thread of an annulled branch insn.
6191:
6192: Mon Oct 21 16:55:08 1991 Tom Wood (wood at dg-rtp.dg.com)
6193:
6194: * configure (m88k targets): Complete last change.
6195:
6196: Mon Oct 21 16:06:25 1991 Richard Stallman ([email protected])
6197:
6198: * integrate.c (copy_rtx_and_substitute): When making copy of frame,
6199: round size to keep substituted frame pointer aligned.
6200: (CEIL_ROUND): New macro.
6201:
6202: Mon Oct 21 15:16:17 1991 Michael Meissner (meissner at osf.org)
6203:
6204: * tm-mips.h (GP_REG_OR_PSEUDO_NONSTRICT_P): New macro for
6205: REG_OK_FOR_{BASE,INDEX}_P in non strict mode. Fix typos in the
6206: previous change.
6207: (GP_REG_OR_PSEUDO_P): Rename to GP_REG_OR_PSEUDO_STRICT_P.
6208: (REG_OK_FOR_BASE_P): Use GP_REG_OR_PSEUDO_NONSTRICT_P if non strict.
6209: (REG_OK_FOR_INDEX_P): Use GP_REG_OR_PSEUDO_NONSTRICT_P if non strict.
6210: (GO_IF_LEGITIMATE_ADDRESS): Indicate if strict checking is being
6211: used if -mdebugb tracing.
6212:
6213: Mon Oct 21 15:08:15 1991 Tom Wood (wood at dg-rtp.dg.com)
6214:
6215: * Makefile.in (*.o): Add insn-codes.h to all lists using expr.h.
6216: (dwarfout.o): Add dwarf.h, reload.h, output.h, and insn-config.h.
6217:
6218: * c-tree.h (TYPE_ACTUAL_ARG_TYPES): New macro for list of actual
6219: types.
6220: * c-decl.c (store_parm_decls): Compute TYPE_ACTUAL_ARG_TYPES if a
6221: prototype is not present. Delete old method.
6222: (duplicate_decls): Provide better diagnostics if a prototype
6223: follows a function definition.
6224:
6225: * m88k.md (gen_divsi3): Delete REG_EQUAL workaround.
6226: * t-m88k{,luna,sysv4}: Target makefile portion (from Mike Stump).
6227: * x-m88k{,dgux,luna,sysv4}: Corresponding deletions.
6228: * {tm,t,x}-m88ksysv4: Renamed from m88ksvr4. Deleted xm-m88ksvr4.
6229: * {tm,xm}-m88ksysv3: Renamed from v88r32.
6230: * configure: Corresponding changes.
6231:
6232: * tm-m88k.h (ASM_OUTPUT_{CONSTRUCTOR,DESTRUCTOR}): Output to
6233: .ctors/.dtors sections.
6234: (TARGET_SWITCHES): Add -m88000, -m88100, and -m88110. Replace
6235: DG/UX MXDB options with SUBTARGET_SWITCHES macro.
6236: * tm-m88kdgux.h (SUBTARGET_SWITCHES, ASM_SPEC, ASM_FIRST_LINE):
6237: Put MXDB options here changing -mdwarf to -mstandard.
6238:
6239: Sun Oct 20 06:39:54 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
6240:
6241: * combine.c (simplify_comparison, case PLUS): Only do simplification
6242: for equality comparison due to overflow problems.
6243:
6244: * gen*.c: Remove "void *" and uses of size_t added by recent change.
6245:
6246: * reload.c (find_reloads): If "&" given without any registers,
6247: turn off earlyclobber, in addition to giving error.
6248:
6249: * Makefile.in (STAGE_GCC): Deleted.
6250: (STAGESTUFF): Add gcc (from STAGE_GCC) and gcc-cross.
6251:
6252: Sun Oct 20 04:37:21 1991 Michael Tiemann (tiemann at cygnus.com)
6253:
6254: * cp-decl.c (grokfndecl): Use DECL_NAME, not DECLARATOR at end of
6255: function, since DECL_NAME may be different if it's an operator name.
6256:
6257: * cp-cvt.c (convert_pointer_to): Test if PARENT is TREE_VEC
6258: before testing IS_AGGR_TYPE.
6259:
6260: Sun Oct 20 00:40:47 1991 Richard Stallman ([email protected])
6261:
6262: * gcc.c (link_command_spec): -collect converts to -c.
6263:
6264: * toplev.c (main): Support -gstabs and -gcoff. Fix args to strncmp.
6265:
6266: Sat Oct 19 21:51:03 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
6267:
6268: * reorg.c: Use const_true_rtx instead of const1_rtx.
6269: (delete_scheduled_jump): Don't delete an insn that sets CC0 if it
6270: has a side-effect.
6271: (update_block): Add missing declaration for parameter WHERE.
6272: (fill_slots_from_thread): Stop search if we find an insn that we
6273: can't put into the delay slot unless we own the thread.
6274:
6275: Sat Oct 19 17:30:23 1991 Michael Meissner (meissner at osf.org)
6276:
6277: * tm-mips.h (GP_REG_OR_PSEUDO_P): New macro to make sure a reg or
6278: pseudo reg during reload will eventually be a GP register for use as
6279: a base or index register. This fixes a bug where a FP register
6280: could be used as a base or index register in some cases after
6281: convert from floating point to integer was done.
6282: (REGNO_OK_FOR_BASE_P, REGNO_OK_FOR_INDEX_P): Use GP_REG_OR_PSEUDO_P.
6283: (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): In the non strict version,
6284: don't allow hard FP registers ever.
6285:
6286: Sat Oct 19 11:59:55 1991 Richard Stallman ([email protected])
6287:
6288: * tm-sun3.h, tm-sparc.h (WORD_SWITCH_TAKES_ARG):
6289: Check for Tdata as well as target.
6290:
6291: * c-decl.c (grokdeclarator): Don't warn for array of incomplete elt.
6292:
6293: * expr.c (expand_expr): For INDIRECT_REF, don't set unchanging bit.
6294: * c-typeck.c (build_indirect_ref): Do set TREE_UNCHANGING if nec.
6295:
6296: * reload.c (find_reloads): Warning or error for misuse of `&'.
6297: * toplev.c (warning_for_asm): New function.
6298:
6299: * t-i386sco: New file.
6300: * x-i386sco: Add -Di286 to CC, OLDCC.
6301: (LIMIT_H): Moved to t-i386sco.
6302:
6303: Sat Oct 19 09:08:11 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
6304:
6305: * gcc.c: Add missing extern declarations deleted by last change.
6306: (xrealloc, xmalloc): Don't declare as void *; non-ANSI compilers
6307: can't handle it.
6308:
6309: Sat Oct 19 08:26:13 1991 Ron Guilmette (rfg at ncd.com)
6310:
6311: * tree.h: Fix spelling error in comment.
6312:
6313: * tree.def, cp-parse.y: Change comments that refer to LET_STMT nodes to
6314: refer to BLOCK nodes.
6315:
6316: * gcc.c, gen*.c: Declare as static objects that aren't referenced
6317: outside the file they are in.
6318: (xrealloc, xmalloc): Functions return char *, not int.
6319: (main): Add missing returns (in unreachable code) to avoid warnings
6320: when compiled with -Wreturn-type.
6321: * gcc.c (pexecute): Likewise.
6322: * genattrtab.c (operate_exp): Likewise.
6323:
6324: Fri Oct 18 16:58:12 1991 Eric Youngdale (youngdale at v6550c.nrl.navy.mil)
6325:
6326: * make-cc1.com: Finish changeover from cplus-* to cp-*.
6327:
6328: Fri Oct 18 16:57:37 1991 Ron Guilmette (rfg at ncd.com)
6329:
6330: * tm-svr4.h: Delete lines duplicated due to transmission problems.
6331:
6332: Fri Oct 18 16:55:53 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
6333:
6334: * jump.c (unsigned_condition, signed_condition): New functions.
6335:
6336: * configure (vax): Set tm_file to tm-vax.h so "configure vax-dec-bsd"
6337: works.
6338:
6339: * combine.c (subst, case PLUS, MINUS): Remove some simplifications
6340: from here.
6341: * cse.c (simplify_binary_operation, case PLUS, MINUS): Put these
6342: simplifications here.
6343: Strip off CONST when looking for some simplifications.
6344: Add code to simplify (a - (a - b)).
6345:
6346: * combine.c (expand_compound_operation): Correctly handle case where
6347: we have a ZERO_EXTRACT that extends beyond the bounds of the object.
6348:
6349: * global-alloc.c (mark_elimination): No longer have FORBIDDEN_REGS as
6350: argument.
6351: * reload1.c (reload): Don't pass FORBIDDEN_REGS to mark_elimination.
6352:
6353: * cse.c (simplify_{unary,binary,relational}_operation): Complete
6354: change that removes warnings from floating-point traps when constant
6355: folding (some cases had been omitted).
6356:
6357: Fri Oct 18 16:41:29 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu)
6358:
6359: * stmt.c (expand_anon_union_decl): When creating new mem, copy the
6360: RTX_UNCHANGING_P and MEM_IN_STRUCT_P bits from the old one.
6361:
6362: * sparc.md: Add new scc addx/subx patterns.
6363:
6364: Fri Oct 18 09:10:43 1991 Michael Tiemann (tiemann at cygnus.com)
6365:
6366: * cp-parse.y (stmts): Fix parsing rules to match C++ semantics
6367: better (and hence give the compiler better error recovery).
6368:
6369: Thu Oct 17 19:31:15 1991 Ken Raeburn (raeburn at cygnus.com)
6370:
6371: * cp-pt.c (tsubst): For NEGATE_EXPR, call build1, not build.
6372: Handle NOP_EXPR likewise.
6373: (unify, case TEMPLATE_CONST_PARM): Copy value to permanent obstack.
6374:
6375: * cp-method.c (PARM_CAN_BE_ARRAY_TYPE): If not already defined,
6376: define it to be 1.
6377: (build_overload_name): Test to see if it's nonzero, rather than
6378: whether it's defined; this permits compilation options to disable
6379: it, but leave it enabled by default. Add one to the array size,
6380: since the value retrieved appears to be the maximum index, not the
6381: true array size.
6382:
6383: Thu Oct 17 19:15:37 1991 Mark Eichin (eichin at tweedledumber.cygnus.com)
6384:
6385: * cp-pt.c (instantiate_class_template): has an argument to
6386: indicate whether to setup for parsing or not. (All existing cases
6387: did a feed input, but if we are trying to set up intermediate nodes
6388: while waiting for the parser to return to a template_instantiate
6389: site we need to suppress the parsing part of it, which will get
6390: redone later.)
6391: (tsubst): under case UNINSTANTIATED_P_TYPE, actually instantiate any
6392: class templates that are needed for function return values, and set
6393: them up as pending templates to be run later.
6394:
6395: * cp-parse.y (primary): since build_x_function_call doesn't
6396: require a complete type any more in certain cases, we instantiate
6397: any pending templates and then require_complete_type on the
6398: remainder.
6399:
6400: * cp-typeck.c (build_function_call_real): added an argument to
6401: optionally skip the require_complete_type... implicit template
6402: instantiation has to be postponed, so we won't get a complete type
6403: until the parser can grab it.
6404:
6405: * cp-call.c (build_overload_call_real): added an argument do
6406: allow choice of build_function_call_maybe or build_function_call
6407: based on whether we thought we would require a complete type out of
6408: build_function_call.
6409:
6410: Wed Oct 16 09:06:57 1991 Tom Wood (wood at dg-rtp.dg.com)
6411:
6412: * c-decl.c (store_parm_decls): Fix and disable recording the arg
6413: type list for the function indicating the number of arguments.
6414: * c-typeck.c (self_promoting_args_p): Allow the arg type to be null.
6415:
6416: * expmed.c (store_bit_field, extract_bit_field): Add checks for
6417: MEM_IN_STRUCT_P if the structure reference is a MEM.
6418:
6419: Tue Oct 15 18:37:50 1991 Ken Raeburn (raeburn at cygnus.com)
6420:
6421: * cp-call.c (build_overload_call): If template match fails, still
6422: set function field of candidate structure, and set bad_arg field to
6423: new magic number -4 to indicate failed type unificiation.
6424:
6425: * cp-class.c (add_method): Call make_function_rtl only if not
6426: processing a template declaration.
6427:
6428: * cp-tree.def: New node type, UNINSTANTIATED_P_TYPE, for
6429: parameterized types that haven't had parameters filled in yet.
6430: Looks like a type node.
6431:
6432: * cp-decl.c (struct binding_level): New flag indicating any name
6433: should be accepted when looked up at this level. This is a kludge
6434: to try to deal with methods of parameterized types.
6435: (declare_uninstantiated_type_level): Set it.
6436: (uninstantiated_type_level_p): Return it.
6437: * cp-class.c (pushclass): If the "class" type is
6438: UNINSTANTIATED_P_TYPE, flag it in the new binding level.
6439:
6440: * cp-decl.c (push_overloaded_decl): New argument to indicate
6441: whether the decl should be forgotten when the current level is
6442: exited. Callers changed.
6443: (push_overloaded_decl_top_level): Ditto.
6444: (dont_forget_overload): Deleted.
6445: (push_overloaded_decl_1): New fn; like push_overloaded_decl, but
6446: never forgets. Intended only for use by auto_function macro.
6447: (auto_function): Use it.
6448:
6449: * cp-decl.c (print_binding_level): Print type-shadowed field at
6450: each level. Skip fields with no values.
6451:
6452: * cp-decl.c (adjust_type_value): Use SET_IDENTIFIER_TYPE_VALUE,
6453: not set_identifier_type_value.
6454:
6455: * cp-decl.c (pushdecl): Undo Oct 4 back-out of previous change.
6456: Set type value of name of passed decl, instead of name of type in
6457: passed decl.
6458: (pushdecl_top_level): Search type-shadowed fields of outer binding
6459: levels, munging outermost one if found to cause it to "restore" the
6460: new global value.
6461:
6462: * cp-decl.c (push_overloaded_decl): Don't punt second or later
6463: templates of a given name.
6464:
6465: * cp-decl.c (start_decl): Template-handling code moved up, to
6466: cope better with variable declarations. Don't check for incomplete
6467: type or constructor requirements when processing template.
6468:
6469: * cp-decl2.c (build_push_scope): If passed error mark node, just
6470: return it.
6471: (constructor_name): Handle UNINSTANTIATED_P_TYPE.
6472:
6473: * cp-lex.c (identifier_type): Don't return PTYPENAME for function
6474: template name.
6475:
6476: * cp-method.c (report_type_mismatch): New magic bad-arg value -4
6477: indicates type unification failure.
6478: (build_overload_name, case UNINSTANTIATED_P_TYPE): Handle like other
6479: template-related types that shouldn't get visibility outside the
6480: compiler.
6481:
6482: * cp-parse.y (template_type): Use IDENTIFIER_TYPE_VALUE from
6483: name, if expansion doesn't happen.
6484: (tmpl.1, tmpl.2): Now type <ttype>. Value is null or return value
6485: from instantiate_class_template.
6486: (template_instantiation): Always put copy of decl in global scope.
6487: Use pushdecl_top_level instead of setting IDENTIFIER_GLOBAL_VALUE
6488: slot.
6489: (LC): If type has been or is being defined, push a new type with the
6490: same name, to avoid conflict.
6491: (try_for_typename): New type <itype>. Value is non-zero iff type to
6492: be pushed uses no template parms and isn't error_mark_node.
6493: (scoped_id): Return error_mark_node for template parameter uses, and
6494: leave error_mark_node alone. Only pop class if try_for_typename
6495: value is non-zero.
6496: (scoped_typename): Ditto.
6497:
6498: * cp-pt.c (end_template_decl): If template decl/class head arg is
6499: null, punt. For non-type templates that didn't come in as template
6500: decls, clear public flag. Such cases shouldn't arise any more; just
6501: put in abort call for now until we're sure. Comment out code for
6502: forcibly removing temporary values of template type parms; Michael
6503: broke the code and fixed the original problem. Handle error case
6504: where decl to be pushed might be null.
6505: (coerce_template_parms): Handle arg list as TREE_VEC as well as
6506: TREE_LIST. If arg list uses template parms, return
6507: UNINSTANTIATED_P_TYPE node.
6508: (uses_template_parms, case UNINSTANTIATED_P_TYPE): Return 1.
6509: (instantiate_class_template): Now returns tree -- error_mark_node or
6510: NULL_TREE or class type; callers and decls changed. Assign
6511: TYPE_NAME field when building new RECORD_TYPE and TYPE_DECL nodes.
6512: Don't need to do extra poplevel any more.
6513: (tsubst): Handle UNINSTANTIATED_P_TYPE, MINUS_EXPR, PLUS_EXPR,
6514: NEGATE_EXPR.
6515: (undo_template_name_overload): Don't need to explicitly clear type
6516: field any more.
6517: (overload_template_name): Push a TYPE_DECL, instead of explicitly
6518: setting type value field.
6519: (end_template_instantiation): Don't need to pop a level any more.
6520: (reinit_parse_for_template): Throw away saved block for null or
6521: error template node.
6522: (type_unification): Handle variadic functions, and functions with
6523: default values for arguments.
6524: (unify): Handle TREE_VEC and UNINSTANTIATED_P_TYPE.
6525:
6526: * cp-ptree.c (print_lang_type): Handle UNINSTANTIATED_P_TYPE.
6527:
6528: * cp-tree.h (push_overload_decl): Declare here, not in
6529: cp-decl.c.
6530: (TEMPLATE_TYPE_* macros): Delete unused (and now incorrect)
6531: versions.
6532:
6533: Mon Oct 14 14:30:32 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu)
6534:
6535: * integrate.c (expand_inline_function): Fix typo from last edit,
6536: where TYPE_MODE was applied to an argument, not the type of an
6537: argument.
6538:
6539: * cse.c (canon_hash, SUBREG case): Add cast which is needed by some
6540: compilers.
6541:
6542: Mon Oct 14 07:59:50 1991 Tom Wood (wood at dg-rtp.dg.com)
6543:
6544: * toplev.c (rest_of_compilation): Compute the function's name and
6545: pass it to assemble_{start,end}_function.
6546: * varasm.c (assemble_start_function): New parameter.
6547: (assemble_end_function): New function for ASM_DECLARE_FUNCTION_SIZE.
6548: * final.c, sdbout.c: Correct comments.
6549: * tm-svr4.h, tm-sysv4.h (ASM_DECLARE_FUNCTION_SIZE): Add and use a
6550: NAME parameter.
6551: * tm-m88k.h (ASM_DECLARE_FUNCTION_SIZE): Override svr4 definition.
6552: * out-m88k.c (output_prologue): Delete previous method.
6553:
6554: * m88k.md: Use trap_if.
6555: (divsi3): Store into output operand only once to aviod problems
6556: with REG_EQUAL note.
6557: * out-m88k.c (output_call): Accomodate assembler range
6558: restriction.
6559: * tm-m88kdgux.h (AS_BUG_IMMEDIATE_LABEL): Specify the restriction.
6560: (ASM_SPEC): Pass -KV3 to the assembler in some cases.
6561: * tm-m88k.h (CONDITIONAL_REGISTER_USAGE): Mark the addressing base
6562: register global.
6563:
6564: Sat Oct 12 00:30:23 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
6565:
6566: * Makefile.in (.SUFFIXES): Rule added.
6567:
6568: * dbxout.c (dbxout_block): Handle debug_info_level.
6569: * sdbout.c (sdbout_begin_block): Likewise.
6570: * toplev.c (compile_file): Likewise, when calling init_emit_once.
6571: * emit-rtl.c (init_emit_once): Cosmetic change.
6572: * Makefile.in (sdbout.o): Include flags.h.
6573:
6574: * configure: Default srcdir from dir in which configure is found.
6575:
6576: * i860.md (floatsidf2): Rewrite to be independant of host machine.
6577: (divdf3, divsf3): New patterns.
6578:
6579: * tm-i860.h (ASM_DECLARE_FUNCTION_NAME): Macro deleted.
6580: (ASM_OUTPUT_FUNCTION_PREFIX): Macro added.
6581:
6582: * stmt.c (pushcase, pushcase_range, expand_end_case):
6583: Don't give "unreachable code" warning for a USE.
6584:
6585: * tm-i386.h (HARD_REGNO_MODE_OK): Fp regs reject TFmode.
6586:
6587: Fri Oct 11 16:43:37 1991 Tom Wood (wood at dg-rtp.dg.com)
6588:
6589: * cse.c (find_comparison_args): Reject VOIDmode to avoid invalid
6590: shift.
6591:
6592: Fri Oct 11 14:30:31 1991 Richard Stallman ([email protected])
6593:
6594: * c-typeck.c (function_types_compatible_p):
6595: NULL as arg type matches self-promoting type.
6596: (self_promoting_type_p): New function.
6597: (common_type): NULL for arg in one fcn type means use arg from other.
6598: * c-decl.c (store_parm_decls): Record arg type list for the fn,
6599: just to indicate how many args there are.
6600:
6601: * i860.md, out-i860.c, tm-i860.h: Merge many changes by rfg.
6602: * tm-i860bsd.h, xm-i860.h: Likewise.
6603: * tm-i860v3.h, tm-i860v4.h: New files.
6604: * xm-i860v3.h, xm-i860v4.h: New files.
6605: * tm-i860v3g.h: Renamed from tm-i860g.h.
6606: * configure (i860-sysv3*): Renamed from i860-sysv*. New filenames.
6607: (i860-sysv4*): New alternative.
6608:
6609: * print-rtl.c: New file, split from rtl.c.
6610: * Makefile.in (print-rtl.o): New target.
6611: (OBJS): Add that target.
6612:
6613: * toplev.c (DEFAULT_GDB_EXTENSIONS): Provide default definition.
6614: (main): Use that for -g with dbx format.
6615: Don't support -G.
6616: * gcc.c (default_compilers): Get rid of -G.
6617:
6618: Fri Oct 11 14:30:43 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu)
6619:
6620: * stmt.c (expand_anon_union_decl): Correctly handle anonymous
6621: unions, whether in memory or registers.
6622:
6623: These were written by Michael Tiemann.
6624: The following changes net a 16% speedup compiling some
6625: machine-generated CAD synthesis code.
6626: * c-decl.c (field_decl_cmp): New function, use as comparison
6627: function for qsort.
6628: (finish_struct): If there are more than 15 fields, allocate a
6629: LANG_TYPE for the FIELD_DECLs, and sort them according to
6630: `field_decl_cmp'.
6631: * c-tree.h (lang_type): Define a LANG_TYPE for RECORD_TYPEs.
6632: * c-typeck.c (build_component_ref): If LANG_TYPE set, then use
6633: binary search to find the field, otherwise use linear search as
6634: before.
6635:
6636: * tree.h: Declare savealloc.
6637: * c-common.c: Delete now unnecessary cast of savealloc result.
6638:
6639: Fri Oct 11 10:06:09 1991 Tom Wood (wood at dg-rtp.dg.com)
6640:
6641: * cse.c (simplify_binary_operation): Fix typo in last change.
6642:
6643: * cp-*, gcc.texinfo, make-cc1.com, tree.c, undocumented: Change
6644: cplus- to cp-. Rename cplus-parse.y to cp-parse.y.
6645:
6646: Fri Oct 11 07:48:40 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
6647:
6648: * recog.c (find_single_use_1): Ignore appearances of DEST in
6649: contexts where it is being set, not referenced.
6650: (find_single_use): Use dead_or_set_p instead of looking for REG_DEAD
6651: notes.
6652:
6653: Fri Oct 11 07:29:33 1991 Ron Guilmette (rfg at ncd.com)
6654:
6655: * c-parse.y, cp-lex.c, objc-parse.y (check_newline): Use `pedwarn'
6656: instead of `error' when we see an #ident if -pedantic.
6657: * cccp.c (do_assert, do_unassert, check_assertion, do_sccs): Warn
6658: if -pedantic.
6659:
6660: Thu Oct 10 18:30:28 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu)
6661:
6662: * gcc.c (default_compilers): Correctly handle new debugging
6663: options, pass all -g* and -G* options.
6664:
6665: * Makefile.in, c-decl.c, cp-decl.c, final.c, flags.h, gcc.1,
6666: gcc.c, print-tree.c, toplev.c, tree.def, tree.h: Delete support
6667: for obsolete GDB_DEBUG format, -gg option, symout.c, etc.
6668: * gdbfiles.h, symseg.h, symout.c: Delete obsolete files.
6669:
6670: Thu Oct 10 17:56:16 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
6671:
6672: * expr.c (convert_move): When widening FROM to multi-word, ensure that
6673: we only reference each piece of TO once so that emit_no_conflict_block
6674: can be safely used.
6675:
6676: * toplev.c (float_signal): Re-enable the signal after we catch it.
6677:
6678: * cse.c (simplify_binary_operation): Add missing fp error handler
6679: setup in DFmode case.
6680:
6681: * combine.c (subst, case XOR): Fix typo in checking for
6682: STORE_FLAG_VALUE equal to just the sign bit.
6683: (simplify_comparison): Fix typo in computing maximum signed number in
6684: a mode; also, use GET_MODE_MASK rather than trying to compute it.
6685:
6686: Thu Oct 10 17:52:44 1991 Richard Stallman ([email protected])
6687:
6688: * c-decl.c (init_decl_processing): Turn off `alloca' for -ansi.
6689: (c_decode_option): Handle -fbuiltin, -fno-builtin.
6690:
6691: Thu Oct 10 17:42:03 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu)
6692:
6693: * caller-save.c (emit_mult_restore): Initialize MAYBE_TEMPREG.
6694:
6695: * function.c (assign_parms): Set MEM_IN_STRUCT_P when creating a
6696: MEM for a aggregate passed by reference.
6697: * expr.c (expand_expr, INDIRECT_REF case): Set MEM_IN_STRUCT_P
6698: when dereferencing an aggregate.
6699:
6700: * sched.c (sched_note_set): Add missing parens.
6701:
6702: * sparc.md: Delete unnecessary clobbers from all SCC patterns.
6703:
6704: * integrate.c (expand_inline_function): Correct handling of arguments
6705: passed by invisible reference.
6706:
6707: * cse.c (canon_hash): Compute hash code for SUBREG same as we do
6708: for REG. Otherwise, SUBREG hash codes can change when qty_const
6709: changes, which results in duplicate SUBREG entries, which can
6710: cause a crash.
6711:
6712: Wed Oct 9 15:55:42 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu)
6713:
6714: * cccp.c (main): Update MAX_INCLUDE_LEN if GCC_EXEC_PREFIX gets into
6715: the act.
6716:
6717: * xm-a29k.h: Change copyright message back to GPL version 2.
6718: * xm-a29k-ultra.h: Use GPL version 2 copyright.
6719:
6720: * reload1.c (reload): Put array size in cast, to prevent compiler
6721: warning.
6722:
6723: * dwarfout.c (type_attribute): Check for ERROR_MARK nodes.
6724:
6725: Wed Oct 9 13:59:22 1991 Richard Stallman ([email protected])
6726:
6727: * toplev.c (float_signal): Reenable handler.
6728:
6729: * configure: Comment out various options not yet updated.
6730:
6731: * cp-*.c, cp-*.h: Renamed from cplus-*.[ch].
6732: * Makefile.in: Renaming here also.
6733:
6734: * x-*: Renamed from make-*.
6735: * Makefile.in (tmake_file, xmake_file): New vars.
6736: (Makefile): Depend on them.
6737: * configure: Replace host_make_var_file with host_xmake_file.
6738: Handle tmake_file also, for target machine.
6739: Form file names from x- and t-.
6740: Rearrange use of temporary files during editing of Makefile.
6741:
6742: * t-mips: Most of x-mips moved here.
6743: * t-decrose: Likewise from x-decrose.
6744:
6745: * xm-a29k-ult.h: Renamed from xm-a29k-ultra.h.
6746:
6747: * Makefile. in (install-common): Don't handle `collect' specially.
6748: It should be in EXTRA_PASSES if it is needed.
6749:
6750: * cse.c (simplify_binary_expression): Use float handler for DF like SF.
6751: Don't warn about traps; leave them for run time.
6752:
6753: * tm-hp9k320.h (SIZE_TYPE): New definition.
6754: Note: this affects tm-3b1.h by inheritance. Not sure that's right.
6755:
6756: Wed Oct 9 12:15:40 1991 Tom Wood (wood at dg-rtp.dg.com)
6757:
6758: * rtl.def (TRAP_IF): Make TRAP into a conditional trap.
6759: * rtl.h (TRAP_CONDITION): Define.
6760: * rtlanal.c (reg_referenced_p may_trap_p): Deal with TRAP_IF properly.
6761: (volatile_refs_p side_effects_p): Not currently true for TRAP_IF.
6762:
6763: Wed Oct 9 03:55:21 1991 Richard Stallman ([email protected])
6764:
6765: * make-mips (BISONFLAGS): Assignment deleted.
6766:
6767: * real.h (REAL_VALUE_MINUS_ZERO): New macro.
6768: * fold-const.c (target_minus_zero): New function.
6769: * tm-sun2os4.h (ASM_OUTPUT_FLOAT, ASM_OUTPUT_FLOAT_OPERAND):
6770: (ASM_OUTPUT_DOUBLE, ASM_OUTPUT_DOUBLE_OPERAND):
6771: Use REAL_VALUE_ISINF, REAL_VALUE_MINUS_ZERO.
6772:
6773: Tue Oct 8 17:56:13 1991 Richard Stallman ([email protected])
6774:
6775: * c-decl.c (duplicate_decls): If redeclaring builtin as static,
6776: replace the old decl.
6777:
6778: * tm-seq386.h (HARD_REGNO_MODE_OK): Copy usual def into override def.
6779:
6780: * tm-news.h (CPP_PREDEFINES): Get rid of invalid conditionals.
6781: * tm-tower.h: Likewise.
6782:
6783: * tm-gmicro.h (MODES_TIEABLE_P): Fix typo.
6784:
6785: * ns32k.md (rotrsi3): Fix typo `NEGATE' for `NEG'.
6786:
6787: * c-typeck.c (mark_addressable): Handle CONSTRUCTOR.
6788: * expr.c (expand_expr): Handle addressable contructors.
6789:
6790: Tue Oct 8 14:42:56 1991 Tom Wood (wood at dg-rtp.dg.com)
6791:
6792: * expmed.c (lshift_value): Ensure the shift amount is in range.
6793:
6794: Mon Oct 7 20:45:35 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu)
6795:
6796: * integrate.c (function_cannot_inline_p, save_for_inline_copying,
6797: save_for_inline_nocopy, expand_inline_function,
6798: output_inline_function): Use GET_RTX_CLASS.
6799:
6800: * listing: Remove RCS Author and Log fields.
6801:
6802: * cse.c (exp_equiv_p): Fix typos in comments/spacing.
6803: * emit-rtl.c: Likewise.
6804: * expmed.c (store_fixed_bit_field): Likewise.
6805: * integrate.c (subst_constants): Likewise.
6806:
6807: * longlong.h: Again fix same typo previously fixed Sept 5.
6808:
6809: Mon Oct 7 17:28:23 1991 Michael Meissner (meissner at osf.org)
6810:
6811: * xm-mips.h (MIPS): Define MIPS to 1 instead of nothing, so
6812: mips-tfile will compile once again.
6813:
6814: Mon Oct 7 17:10:32 1991 Richard Stallman ([email protected])
6815:
6816: * cccp.c (main): Pedantically warn if no newline at end of file.
6817: (finclude): Likewise.
6818:
6819: * c-decl.c (grokdeclarator): funcdef_flag overrides parm level.
6820:
6821: Sun Oct 6 16:37:31 1991 Richard Stallman ([email protected])
6822:
6823: * sparc.md (peephole for lo-sum and load df): Use output_move_double.
6824:
6825: * tree.h (DECL_BUILT_IN_NONANSI): New flag.
6826: * c-decl.c (init_decl_processing): Set flag for `alloca'.
6827:
6828: * c-decl.c (duplicate_decls): Rearranged to reduce conditionals.
6829: Allow redefining built-in functions as static even if new decl
6830: is not a function. Also allow if built-in is not ANSI.
6831:
6832: * out-sparc.c (output_move_double): Fix typo in test for using ldd.
6833:
6834: Sun Oct 6 12:56:19 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
6835:
6836: * expr.c (expand_expr, case COND_EXPR): Rename var added in last
6837: change; some C compilers don't like "optab optab;".
6838:
6839: Sun Oct 6 09:26:55 1991 Michael Tiemann (tiemann at cygnus.com)
6840:
6841: * cplus-method.c (build_overload_name): When walking up contexts, if
6842: CONTEXT becomes a _TYPE node, point it at the _DECL node for the
6843: type.
6844:
6845: * cplus-decl2.c (grokclassfn): Paremeter COMPLAIN deleted. No
6846: longer performs sanity check by itself.
6847: (check_classfn): New function. Performs sanity check that
6848: `grokclassfn' used to do. All callers changed.
6849:
6850: * tree.h (struct tree_decl): Add new ignored_flag; delete
6851: lang_flag_8 to make room.
6852: (DECL_IGNORED_P): New macro.
6853: (DECL_LANG_FLAG_8): Deleted.
6854: * cplus-dbxout.c (dbxout_type): Use this macro instead of
6855: ANON_AGGRNAME_P.
6856: * cplus-decl.c (pushtag): Set DECL_IGNORED_P when appropriate.
6857: * cplus-decl.c (duplicate_decls): Ensure DECL_IGNORED_P remains
6858: consistent.
6859:
6860: * cplus-decl.c (grokfndecl): If we have an overloaded operator, set
6861: the DECL_NAME to something that dbxout.c can handle.
6862: * cplus-method.c (hack_operator): Change this function to handle
6863: this new behavior.
6864: * cplus-init.c (do_friend): Ditto.
6865:
6866: Sat Oct 5 14:32:01 1991 Richard Stallman ([email protected])
6867:
6868: * expmed.c (expand_mult): Avoid fetching memory more than once.
6869:
6870: * tm-ultrix.h (DOLLARS_IN_IDENTIFIERS): Define as 1.
6871:
6872: * expr.c (expand_builtin): Clarify error message for BUILT_IN_NEXT_ARG.
6873:
6874: Sat Oct 5 08:42:02 1991 Michael Tiemann (tiemann at cygnus.com)
6875:
6876: * cplus-decl.c (clear_anon_tags): New function.
6877: (make_anon_name): Moved here from cplus-method.c.
6878: * cplus-lex.c (check_for_missing_semicolon, note_list_got_semicolon):
6879: call `clear_anon_tags' when done.
6880: * cplus-dbxout.c (dbxout_type): No longer test ANON_AGGRNAME_P for
6881: TYPE_NAMEs that are IDENTIFIER_NODES. They no longer appear in GNU
6882: C++. Also, we can rely on the fact that there are no anon aggrnames
6883: in tag lists.
6884:
6885: * cplus-decl.c (xref_tag): Set TREE_VEC_LENGTH (BINFOS) to the
6886: number of basetypes that were actually accepted.
6887:
6888: * cplus-parse.y (datadef, fndef): Accept `extern "C"' as a storage
6889: class specifier.
6890:
6891: * cplus-init.c (build_new): Handle allocating types whose TRUE_TYPEs
6892: start off as ARRAY_TYPEs.
6893:
6894: * cplus-typeck.c (build_unary_op): We don't need to wrap
6895: CURRENT_CLASS_DECL in a NON_LVALUE_EXPR when taking the address of
6896: C_C_D.
6897:
6898: * cplus-init.c (resolve_offset_ref): Fix error message for
6899: non-static member references. Also, don't crash if EXP is not a
6900: TREE_LIST or an OFFSET_REF.
6901:
6902: * cplus-expr.c (cplus_expand_expr): Handle OFFSET_REFs.
6903:
6904: * cplus-typeck.c (build_binary_op_nodefault): If PEDANTIC, don't
6905: permit comparisons between pointers and integers.
6906:
6907: * cplus-decl2.c (explicit_warn_return_type): New variable.
6908: * cplus-decl.c (grokdeclarator): Test `explicit_warn_return_type'
6909: instead of `warn_return_type'.
6910:
6911: * cplus-decl.c (grokdeclarator): Fix criterium for deciding whether
6912: to turn a FUNCTION_TYPE declaration into a METHOD_TYPE declaration
6913: based on FRIENDP and STATICP.
6914: (implicitly_declare): If PEDANTIC, treat this as an error.
6915:
6916: * cplus-cvt.c (convert_to_integer): Make anachronisms errors if
6917: PEDANTIC is nonzero.
6918:
6919: * cplus-typeck.c (convert_for_assignment): If PEDANTIC, don't let
6920: void * convert to non-void* types. Similarly, don't let const*
6921: pointers be assigned to non-const* pointers. Similarly for signed
6922: vs. unsigned pointers.
6923: (warn_for_assignment): Add new parameter SEVERE.
6924:
6925: * cplus-decl.c (push_overloaded_decl): If PEDANTIC, give error when
6926: functions overload variables.
6927:
6928: * cplus-decl2.c (grokfield): If PEDANTIC, don't let fields have
6929: initializers (conditionalized on PEDANTIC).
6930: * cplus-class.c (finish_struct): Set TYPE_GETS_{ASSIGNMENT,INIT_REF}
6931: for UNION_TYPE.
6932:
6933: Sat Oct 5 06:52:29 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
6934:
6935: * expr.c (expand_expr, case COND_EXPR): Case for X ? A + 1 : A can
6936: also handle MINUS_EXPR and BIT_*_EXPR.
6937:
6938: * rtl.h (copy_rtx_if_shared): Declare here.
6939: * emit-rtl.c (unshare_copies): Delete unused variable.
6940: (copy_rtx_if_shared): No longer static.
6941: (reset_used_flags): New function.
6942: * combine.c (copy_substitutions): Deleted.
6943: (try_combine): When making new insns, ensure that we do not have any
6944: improper sharing by using copy_rtx_if_shared; no longer call
6945: copy_substitutions.
6946:
6947: * combine.c (try_combine): If an insn that is a PARALLEL of two sets
6948: isn't recognized and the result of the second SET is unused, ignore it.
6949:
6950: Fri Oct 4 15:25:33 1991 Michael Tiemann (tiemann at cygnus.com)
6951:
6952: * cplus-decl.c (set_identifier_type_value): New function. Change
6953: all callers of macro SET_IDENTIFIER_TYPE_VALUE to call this function
6954: instead.
6955:
6956: * cplus-decl.c (pushdecl): Back out Sep 26 change. ??? This problem
6957: really has to be solved in a more global fashion.
6958: (struct binding_level): New field `type_shadowed' for typenames that
6959: get shadowed. All pop* routines that restore from shadowed lists
6960: now restore IDENTIFIER_TYPE_VALUE from the `type_shadowed' field.
6961:
6962: Fri Oct 4 14:47:52 1991 Michael Meissner (meissner at osf.org)
6963:
6964: * sdbout.c (include of syms.h): Don't include <syms.h> on MIPS
6965: systems, since the system does not provide the file, rather use
6966: "gsyms.h". This is a problem for Silicon Graphics, and the System V
6967: varient on RISC-OS, both of which define the USG macro. Patch from
6968: [email protected].
6969:
6970: Fri Oct 4 13:37:11 1991 Tom Wood (wood at dg-rtp.dg.com)
6971:
6972: * stor-layout.c (get_best_mode): Add a volatilep parameter
6973: indicating that the smallest mode is desired.
6974: * expmed.c, fold-const.c: All callers changed.
6975: (optimize_bit_field_compare): Initialize {l,r}volatilep now that
6976: they are used.
6977:
6978: Thu Oct 3 22:08:45 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu)
6979:
6980: * objc-actions.h (CLASS_SUPER_NAME): Change type.basetypes to
6981: type.binfo so that it will compile.
6982:
6983: Thu Oct 3 06:46:38 1991 Niklas Hallqvist (niklas at appli.se)
6984:
6985: * cplus-tree.h (PARANOID): Don't define if already defined.
6986: ({SET,CLEAR}_CLASSTYPE_MARKED*): New macros needed to get through
6987: C compilers who don't allow comma expressions as lvalues.
6988: ({SET,CLEAR}_BINFO_*): Ditto.
6989:
6990: * cplus-init.c: Use new SET/CLEAR macros.
6991:
6992: * cplus-search.c: Ditto.
6993:
6994: * cplus-decl.c: Ditto.
6995: (lookup_tag): Accept *_DECLs as nodes in the context chain.
6996: (lookup_nested_type): Accept FUNCTION_DECLs not only as head of
6997: the context chain, but at any place in it.
6998:
6999: Thu Oct 3 06:42:08 1991 Michael Meissner (meissner at osf.org)
7000:
7001: * c-decl.c (c_decode_option): Add new switch -Wparentheses and
7002: -Wnoparentheses to control whether GCC warns about adding extra ()'s
7003: around a subexpression. Make -Wparentheses default behavior.
7004: (warn_parentheses): New global variable.
7005:
7006: * c-tree.h (warn_parentheses): New variable.
7007:
7008: * c-typeck.c (parser_build_binary_op): Check for warn_parentheses
7009: before emitting warnings about adding ().
7010:
7011: Wed Oct 2 20:51:04 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu)
7012:
7013: * gcc.texinfo: Correct documentation for CONSTANT_ADDRESS_P,
7014: CONSTANT_P, and HIGH.
7015:
7016: Wed Oct 2 15:08:32 1991 Michael Tiemann (tiemann at cygnus.com)
7017:
7018: * cplus-class.c (modify_vtable_entries): Fix error in computing
7019: offsets to use for virtual functions from virtual baseclasses.
7020: * cplus-except.c (lookup_exception_type): Change local variable name
7021: `binfo' to `link'.
7022: * cplus-lex.c (yylex): Cast shorts to (long) when building longlong.
7023:
7024: Wed Oct 2 11:32:35 1991 Michael Meissner (meissner at osf.org)
7025:
7026: * tm-encrose.h (new file): New configuration file for Encore
7027: Multimax running OSF/1, and using the OSF/rose object formats.
7028:
7029: Wed Oct 2 08:33:08 1991 Tom Wood (wood at dg-rtp.dg.com)
7030:
7031: * tree.h (TYPE_UID): Add this field to TYPE nodes.
7032: * tree.c (make_node): Initialize it.
7033: * dwarfout.c (TYPE_NAME_FMT): Use TYPE_UID rather than TREE_UID.
7034: (equate_type_number_to_die_number): Discard type qualifiers.
7035: (output_typedef_die): Don't use equate_type_number_to_die_number.
7036:
7037: Wed Oct 2 08:04:57 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
7038:
7039: * cse.c (cse_process_notes): Fix typo; missing arg in return.
7040:
7041: Wed Oct 2 06:56:13 1991 Ron Guilmette (rfg at ncd.com)
7042:
7043: * Makefile.in (ENQUIRE_CFLAGS): Remove duplicate use of GCC_CFLAGS.
7044:
7045: * Makefile.in (cplus-tab.c): Adjust number of expected conflicts.
7046:
7047: * Makefile.in (mostlyclean): Remove collect and collect2.
7048:
7049: * tm-svr4.h: Add new file; prototype for System V, Release 4.
7050:
7051: Tue Oct 1 23:00:13 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
7052:
7053: * reload.c (find_reloads_address): Fix error in previous change;
7054: clean up REG case so it is easier to read.
7055:
7056: Tue Oct 1 14:05:46 1991 Michael Tiemann (tiemann at cygnus.com)
7057:
7058: * cplus-decl.c (finish_{decl,function}): Use new function
7059: `note_debug_info_needed' instead of setting CLASSTYPE_ASM_WRITTEN.
7060: * cplus-search.c (note_debug_info_needed): New function.
7061: Recursively set CLASSTYPE_ASM_WRITTEN in a hierarchy when called.
7062:
7063: * cplus-class.c (finish_struct): If DECL_NAME of the BASE_FNDECL is
7064: NULL_TREE, we know we're looking at a virtual destructor.
7065:
7066: Tue Oct 1 09:47:25 1991 Michael Meissner (meissner at osf.org)
7067:
7068: * tm-mips.h (OPTIMIZATION_OPTIONS): Enable scheduling insns now for
7069: -O2 optimization.
7070:
7071: * Makefile.in (STAGESTUFF): Add $(EXTRA_PASSES), to allow moving any
7072: extra passes into the stage[1234] directories, and to remove the
7073: extra stuff when doing make clean.
7074:
7075: Tue Oct 1 08:35:11 1991 Tom Wood (wood at dg-rtp.dg.com)
7076:
7077: * dwarfout.c (FUNC_END_LABEL_FMT, TYPE_NAME_FMT): Undo this change.
7078:
7079: * c-decl.c (grokdeclarator): When making an unsigned bitfield
7080: type from a typedef, preserve the size. A typedef of an
7081: explicitly signed typedef is explicitly signed.
7082:
7083: Mon Sep 30 22:51:07 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu)
7084:
7085: * out-sparc.c: Fix misc typos and indentation problems.
7086: Delete all unnecessary extern declarations.
7087: Include "recog.h".
7088: Consistently use Pmode instead of SImode for addresses.
7089: Use macros defined in tm-sparc.h instead of magic numbers.
7090: (reg_or_0_operand): Accept CONST_DOUBLE zero.
7091: (symbolic_operand): Accept CONST_DOUBLE.
7092: (move_operand): Accept arith_double_operand ('H'), SMALL_INT
7093: ('I'), and sethi operands ('K').
7094: (move_pic_label): Renamed from move_reg_or_immed_operand. If
7095: flag_pic is true, accept a LABEL_REF, otherwise fail.
7096: (arith_double_operand): Accept SMALL_INT ('I') CONST_INTs. Correct
7097: computation of when a CONST_DOUBLE is a SMALL_INT ('H').
7098: (eligible_for_epilogue_delay): Accept arith_double_operands.
7099: (emit_move_sequence): Handle arith_double_operands. Handle
7100: loading of labels for pic, need to add a clobber of %o7 (reg 15).
7101: (find_addr_reg): Don't return FRAME_POINTER_REGNUM. It is not
7102: safe to play around with the frame pointer.
7103: (hard_regno_mode_ok): Change from short to int array.
7104: (output_pic_sequence, output_pic_sequence_2, fp_zero_hook): Delete
7105: long obsolete routines.
7106: (print_operand): Delete support for obsolete 'S' and 'H' cases.
7107: (output_double_int): New function. Outputs assembler code for 64
7108: bit (DImode) values.
7109:
7110: * sparc.md: Fix misc typos and indentation problems.
7111: Delete unnecessary (set_attr "type" "binary") lines.
7112: Consistently use %a1 in sethi and ori output templates.
7113: Consistently use Pmode not SImode for addresses.
7114: Consistently use the same predicate for both operand 1 and
7115: operand 2 in commutative patterns. Don't use same predicate in
7116: non-commutative patterns.
7117: Consistently use \; to separate multiple instuctions.
7118: Change "r%" to "%r".
7119: (define_attr length): Handle arith_double_operand predicate.
7120: (movsi): Combine two movsi patterns into one, except for loading
7121: of pic labels. New pattern to load pic labels, which clobbers %o7.
7122: (movhi): Combine two movhi patterns into one.
7123: (movqi): Combine two movqi patterns into one.
7124: (movdi): Discourage the Q/f constraint option so that DImode
7125: variables won't end up in floating pointer registers.
7126: (floatsisf2, floatsidf2): Delete patterns accepting a const_int
7127: operand. These should never be matched. In remaining patterns,
7128: accept nonimmediate_operand instead of general_operand.
7129: (adddi3, subdi3, anddi3, iordi3, xordi3, xnordi3, one_cmpldi2):
7130: Accept arith_double_operand predicates and "HI" constraints.
7131: (last peephole): Reg 0 should be CCmode not SImode.
7132:
7133: * tm-sparc.h: Fix misc typos.
7134: (WORDS_BIG_ENDIAN): Indicate why it must be true.
7135: (hard_regno_mode_ok): Change from short to int array.
7136: (CONST_DOUBLE_OK_FOR_LETTER_P): Add new 'H' constraint, for DImode
7137: constants that can fit in an immediate field.
7138: (CONSTANT_ADDRESS_P): Accept any CONSTANT_P, including
7139: CONST_DOUBLEs.
7140: (LEGITIMATE_CONSTANT_P): Accept CONST_DOUBLEs if match 'H'
7141: constaint.
7142: (RTX_COSTS): Define cost for FLOAT to be more expensive than
7143: CONST_DOUBLEs, so that cse will prefer the latter.
7144: (ASM_OUTPUT_DOUBLE_INT): New macro to output DImode constants.
7145:
7146: * sched.c (schedule_block): When calculating register lifetime
7147: info, handle CLOBBERs and USEs. The code that adds REG_DEAD notes
7148: already handles them.
7149: (update_n_sets): New function, subroutine of update_links.
7150: Given a SET or CLOBBER, updates reg_n_sets as appropriate,
7151: depending on whether this is in a deleted or a new insn.
7152: (update_links): Call update_n_sets to subtract info for split
7153: insn, and add info for insns resulting from the split.
7154:
7155: Mon Sep 30 19:06:50 1991 Michael Meissner (meissner at osf.org)
7156:
7157: * ecoff-cmp (TMP): Fix typo, from [email protected].
7158:
7159: * mips-tfile.c (toplevel): Don't declare _flsbuf under Silicon
7160: Graphics, from [email protected].
7161:
7162: Mon Sep 30 15:54:02 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
7163:
7164: * cse.c (cse_process_notes): New function.
7165: (cse_basic_block): Call it for each insn.
7166: (count_reg_usage): Count usage in a REG_EQUAL note.
7167: (delete_dead_from_cse): Call count_reg_usage with insn, not pattern.
7168: * loop.c (scan_loop): Replace a register used in a REG_EQUAL note.
7169: (find_single_use_in_loop): Two uses in single insn doesn't disqualify.
7170: Allow argument to be REG_NOTES.
7171: (count_loop_regs_set): Call find_single_us_in_loop on REG_NOTES.
7172:
7173: Mon Sep 30 15:47:03 1991 Michael Tiemann (tiemann at cygnus.com)
7174:
7175: * cplus-call.c (ideal_candidate): Return 0 if the top two candidates
7176: have identical rankings but incompatible types.
7177:
7178: * cplus-lex.c (cons_up_default_function): Set DECL_NAME (FN) to
7179: NULL_TREE in order to mark the function as being generated by the
7180: compiler.
7181: * cplus-init.c (emit_base_init): Change to use this interface.
7182: * cplus-decl.c (duplicate_decls, redeclaration_error_message): Ditto.
7183: (store_parm_decls): Ditto.
7184: * cplus-decl2.c (grokclassfn): Ditto.
7185: * cplus-dbxout.c (dbxout_type_methods): Ditto.
7186: * cplus-class.c (finish_struct_methods): Ditto.
7187: * cplus-method.c (fndecl_as_string): Ditto.
7188: * cplus-search.c (lookup_fnfields_1): Ditto.
7189: (compute_visibility): Ditto.
7190: * cplus-typekc.c (build_function_call): Ditto.
7191: * cplus-tree.c (lang_printable_name): Ditto. Also use
7192: DECL_ASSEMBLER_NAME instead of DECL_NAME in DESTRUCTOR_NAME_P test.
7193: * calls.c (expand_call): Change also needed here.
7194:
7195: Mon Sep 30 15:31:53 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu)
7196:
7197: * dbxout.c: Include <param.h> before config.h, because it may define
7198: MIN and MAX.
7199:
7200: * fold-const.c (const_binop): Delete incorrect short cut for
7201: (0 - const).
7202:
7203: * expr.c (do_tablejump): Pass GET_MODE (index) instead of Pmode to
7204: emit_cmp_insn, because the latter fails when integers and pointers
7205: are different sizes.
7206:
7207: * combine.c (subst): When checking to see if associating helps
7208: simplify rtl, make sure we pass the constant operand if any as the
7209: second one if this is a commutative operation.
7210:
7211: * cccp.c (rescan): Save obufp_before_macroname as an offset from
7212: the start of op->buf instead of as a pointer into the middle, in
7213: case op->buf gets realloced.
7214:
7215: Mon Sep 30 14:07:20 1991 Tom Wood (wood at dg-rtp.dg.com)
7216:
7217: * dwarfout.c (FUNC_END_LABEL_FMT, TYPE_NAME_FMT): TREE_UID is
7218: unique only if the node is TREE_PERMANENT. Augment the spelling
7219: of labels using TREE_UID with the TREE_UID of the current function.
7220:
7221: Changes from Ron Guilmette:
7222: * dwarfout.c (output_symbol): Deal with formal parameters with an
7223: incomplete tagged type.
7224: (output_bound_representation): Fix for arrays with dynamic bounds.
7225:
7226: Changes from Jim Wilson:
7227: * dwarfout.c: Define strrchr to rindex for non USG systems.
7228: Use DECL_BIT_FIELD_TYPE not DECL_BIT_FIELD to test for bitfields.
7229:
7230: Sun Sep 29 16:29:08 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
7231:
7232: * reload.h (indirect_symref_ok): New variable.
7233: * reload.c (find_reloads_address): Remove shadowing decls of `tem'.
7234: Only allow certain forms addresses as indirect; check
7235: indirect_symref_ok to see if (mem (symbol_ref ...)) is a valid
7236: address; if not that form or simple, not valid indirect address.
7237: * reload1.c (indirect_symref_ok): Define here.
7238: (init_reload): Initialize vars used to determine which addrs are valid.
7239: (reload): Don't do it here.
7240: Update comment to relect what `alter_regs' currently does.
7241:
7242: * tree.h (struct tree_decl): Add new from_inline_flag; delete
7243: lang_flag_9 to make room.
7244: (DECL_FROM_INLINE): New macro.
7245: (DECL_LANG_FLAG_9): Deleted.
7246: * c-decl.c, cplus-decl.c (pushdecl): Use DECL_FROM_INLINE instead of
7247: TREE_INLINE where appropriate.
7248: * cplus-decl.c (finish_decl): Likewise.
7249: * integrate.c (integrate_parm_decls, integrate_decl_tree): Set
7250: DECL_FROM_INLINE instead of TREE_INLINE.
7251: * print-tree (print_node): Print DECL_FROM_INLINE.
7252: Delete reference to DECL_LANG_FLAG_9.
7253:
7254: Sun Sep 29 12:49:47 1991 Michael Tiemann (tiemann at cygnus.com)
7255:
7256: * c-decl.c, c-typeck.c, cplus-decl.c, toplev.c:
7257: Set/test TREE_ADDRESSABLE of DECL_ASSEMBLER_NAME, not DECL_NAME for
7258: function decls.
7259:
7260: * cplus-class.c: Export `current_lang_stack' and
7261: `current_lang_base'.
7262: cplus-decl.c (push_overloaded_decl): Allow redeclaration of a
7263: function that was previously given a linkage specification at
7264: top-level (i.e., not in an explicit linkage arena).
7265:
7266: * cplus-typeck.c (convert_arguments): Strip the `&' from an
7267: overloaded function passed as an argument into an ellipses.
7268:
7269: Sat Sep 28 15:37:26 1991 Michael Tiemann (tiemann at cygnus.com)
7270:
7271: * cplus-typeck.c (build_x_binary_op): We have to special-case the
7272: failure of MEMBER_REF to be overloaded as an operator.
7273:
7274: Sat Sep 28 10:44:36 1991 Richard Kenner ([email protected])
7275:
7276: * reload1.c (reload): If we find at some point that we need
7277: caller-saves, disable elimination of the frame pointer.
7278:
7279: * reload.c (subst_reloads): Re-enable code to prevent making
7280: a SUBREG inside a SUBREG.
7281:
7282: Sat Sep 28 00:40:51 1991 Ken Raeburn ([email protected])
7283:
7284: * cplus-pt.c (do_pending_expansions): Adjust "DECIDE" macro to avoid
7285: compiler warning from Sun cc.
7286:
7287: Fri Sep 27 17:30:39 1991 Per Bothner (bothner at cygnus.com)
7288:
7289: * configure[.in]: Move most of the target_vendor switch
7290: entries (e.g. next, sun, sony) from the m88k architecture to m68k,
7291: where they belong.
7292:
7293: Fri Sep 27 16:21:04 1991 Michael Tiemann (tiemann at cygnus.com)
7294:
7295: * cplus-search.c (recursive_bounded_basetype_p): Add new parameter
7296: UPDATE_CHAIN so that function now behaves as comment prescribes.
7297: * cplus-search.c (compute_visibility): Fix error in conversion of
7298: data structures from list-based to binfo-based nodes.
7299:
7300: Fri Sep 27 07:05:57 1991 Richard Kenner ([email protected])
7301:
7302: * c-decl.c (pushdecl): Fix typo: TREE_EXTERNAL misspelled.
7303:
7304: Thu Sep 26 17:36:14 1991 Michael Meissner (meissner at osf.org)
7305:
7306: * tm-mips.h (ASM_FINAL_SPEC): Handle gcc -c -o foo bar.c.
7307:
7308: * tm-decrose.h (ASM_FINAL_SPEC): Handle gcc -c -o foo bar.c.
7309:
7310: * make-decrose (cplus-lex rule): Remove hacks in compiling
7311: cplus-lex, since bug in 1.39 inlining was fixed to allow us to
7312: compile the module normally.
7313:
7314: Thu Sep 26 11:53:49 1991 Ken Raeburn ([email protected])
7315:
7316: * cplus-tree.h (TEMPLATE_TYPE_*): Use slower versions that uses tree
7317: structures more properly, so accessor macros don't lose.
7318:
7319: * cplus-pt.c (end_template_parm_list): For type parameters, make the
7320: new decl be the name of the "type".
7321:
7322: * Makefile.in (cplus-tab.{c,h}): There are now 30 s/r conflicts.
7323:
7324: * cplus-class.c (resolves_to_fixed_type_p, case CALL_EXPR): Deleted
7325: duplicate code.
7326:
7327: * cplus-decl.c (poplevel): Deleted duplicate code saving info on
7328: accesses to external via non-global decls.
7329: (pushdecl): For typedef of unnamed type, don't store new name for
7330: type if not at global binding scope. Also, don't need to test for
7331: TYPE_DECL when previous conditional guarantees it.
7332: (start_decl): Clear TREE_PUBLIC flag of templates.
7333: (finish_decl): For variables in static storage with constructors,
7334: force it into data section (out of common storage) only if the name
7335: is externally visible.
7336:
7337: * cplus-gc.c (type_needs_gc_entry): If the type has no base types,
7338: don't check to see whether they need gc entries.
7339:
7340: * cplus-parse.y (yyprint): Handle SCSPEC and AGGR.
7341:
7342: * cplus-pt.c (end_template_decl): Clear IDENTIFIER_TYPE_VALUE slots
7343: for type parameters, then call adjust_type_value.
7344: (instantiate_class_template): Do nothing if classname is
7345: error_mark_node.
7346: (mangle_class_name_for_template): Make buf a static array, since
7347: its address gets returned.
7348:
7349: * reload1.c (reload): Provide array size in cast, to avoid compiler
7350: warnings.
7351:
7352: From Niklas Hallqvist:
7353: * cplus-tree.h (struct template_info): Added new field "aggr", which
7354: will be class_type_node or struct_type_node for class or struct
7355: templates.
7356: * cplus-parse.y (template_def): Pass current_aggr to
7357: end_template_decl.
7358: (template_instantiation): Use aggr field.
7359: * cplus-pt.c (end_template_decl): Argument IS_CLASS is now a tree,
7360: used to set the aggr field.
7361: (overload_template_name): Use aggr field.
7362:
7363: Suggested by John Carr:
7364: * cplus-dbxout.c (dbxout_tags): Don't omit argument to
7365: dbxout_finish_symbol.
7366: (dbxout_continue): Omit declaration and definition if
7367: DBX_CONTIN_LENGTH is not greater than zero, like its calls.
7368: (print_int_cst_octal): Ditto, based on defined(WINNING_GDB).
7369: * cplus-decl.c (GNU_end_scope): Never used; deleted.
7370: (pushdecl): Vars nglobals, len are used only in code under "#if 0";
7371: comment out decls as well.
7372: * cplus-gc.c (expand_gc_prologue_and_epilogue): Variable "head" was
7373: unused; deleted.
7374: * cplus-init.c (expand_aggr_vbase_init_1): All args are type tree.
7375: (expand_vec_init): Don't return without a value when "initializer
7376: ends prematurely".
7377: * cplus-method.c (build_overload_nested_name): Pass all necessary
7378: arguments in recursive call.
7379: * cplus-search.c (pop_type_level): Cast argument to pop_stack_level
7380: to proper type.
7381: (push_memoized_context): Ditto for push_type_level.
7382: (my_copy_node): Unused; deleted.
7383: (lookup_fnfields): Add missing arg to get_binfo.
7384: (lookup_field): Ditto.
7385:
7386: From Niklas Hallqvist:
7387: * cplus-decl.c (push_to_top_level): Handle case of function with
7388: unnamed parms.
7389: (pop_from_top_level): Ditto.
7390:
7391: Thu Sep 26 07:46:08 1991 Richard Kenner ([email protected])
7392:
7393: * loop.c (scan_loop): Don't eliminate register that is set by
7394: consecutive insns.
7395:
7396: Wed Sep 25 18:53:52 1991 Richard Stallman ([email protected])
7397:
7398: * c-decl.c (pushdecl): Suppress warnings about mismatch of
7399: extern decl when it comes from inlining a function.
7400:
7401: * emit-rtl.c (set_new_first_and_last_label_number): New function.
7402: (max_label_num): Use last_label_num if valid.
7403: * integrate.c (output_inline_function): Call set_new_...
7404:
7405: Wed Sep 25 18:37:36 1991 Richard Kenner ([email protected])
7406:
7407: * flow.c (find_auto_inc): Set BLOCK_NUM of new insns emitted while
7408: making an auto-inc.
7409:
7410: * Makefile.in (getopt*.o): Each file depends on its .c file and on
7411: the compiler executable files.
7412:
7413: Wed Sep 25 18:18:46 1991 Richard Stallman ([email protected])
7414:
7415: * toplev.c (debug_info_level): New variable.
7416: * flags.h (debug_info_level, enum debug_info_level): New declarations.
7417: * toplev.c (main): Rewrite handling of -g* and -G* options.
7418: Now -G indicates use of GDB extensions. -g0 removed.
7419:
7420: Tue Sep 24 03:20:07 1991 Richard Stallman ([email protected])
7421:
7422: * alloca.c: Test __STDC__, not X3J11.
7423: Do nothing if alloca is defined as a macro.
7424:
7425: Tue Sep 24 09:15:17 1991 Richard Kenner ([email protected])
7426:
7427: * global-alloc.c (eliminable_regset): New variable.
7428: (global_alloc): Compute it and use to turn off conflicts.
7429: Refine computation of no_global_alloc_regs when ELIMINABLE_REGS is
7430: defined.
7431: (mark_elimination): Don't do anything with allocnos and don't do
7432: any allocation.
7433:
7434: * reload1.c (eliminate_regs_in_insn): Try to re-recognize insn if
7435: we replaced a (set X (plus Y Z)).
7436:
7437: Tue Sep 24 06:34:04 1991 Michael Tiemann (tiemann at mole.gnu.ai.mit.edu)
7438:
7439: * cplus-tree.c (virtual_member): Change TREE_VALUE accessor macro to
7440: BINFO_TYPE.
7441: * tree.h (BINFO_TYPE): New name for BINFO_VALUE.
7442: * All cplus-* files: Changed to reflect new name.
7443:
7444: Mon Sep 23 12:56:11 1991 Michael Meissner (meissner at osf.org)
7445:
7446: * tm-mips.h (ASM_SPEC): Fix typo, and close {}'s properly.
7447:
7448: Mon Sep 23 10:30:51 1991 Michael Tiemann (tiemann at cygnus.com)
7449:
7450: * cplus-tree.c (propagate_assoc_offsets): Keep relative offsets of
7451: child_child correct when copying children.
7452:
7453: * cplus-class.c Use `BINFO_VALUE' instead of `TREE_VALUE' when
7454: accessing the type value of a binfo node.
7455: * cplus-decl.c (finish_function): Ditto.
7456: * cplus-init.c (build_vbase_delete): Ditto.
7457:
7458: Mon Sep 23 06:11:56 1991 Richard Kenner ([email protected])
7459:
7460: * flow.c (reg_n_refs): Use int, not short. Short can overflow
7461: if we have very deep loop nesting.
7462: (allocate_for_life_analysis): Allocate reg_n_refs as int.
7463: * regs.h (reg_n_refs): Now int.
7464: * sched.c: Delete duplicate definitions of objects defined in regs.h.
7465:
7466: * combine.c (try_combine): Correctly check for independent insns
7467: in a PARALLEL.
7468:
7469: * combine.c (distribute_note, case REG_DEAD): If we discover a register
7470: is never used, see if we can delete the insn that set it.
7471:
7472: Sun Sep 22 19:24:52 1991 Michael Tiemann (tiemann at cygnus.com)
7473:
7474: * cplus-type2.c (build_functional_cast): Don't forget a valid
7475: function call if we found one (and nothing more).
7476:
7477: Sun Sep 22 07:48:18 1991 Richard Kenner ([email protected])
7478:
7479: * rtlanal.c (rtx_varies_p, case REG): Correct typo; sense of comparison
7480: was backwards.
7481:
7482: * global-alloc.c (mark_elimination): Don't use HARD_REG_SET macros
7483: to access basic_block_live_at_start.
7484:
7485: * reload1.c (set_label_offsets): New function.
7486: (offsets_known_at, offsets_at): New variables.
7487: (reload): Allocate and initialize them.
7488: Set each label in FORCED_LABELS to be at initial offsets.
7489: Call set_label_offset on all insns that might involve labels.
7490: Use GET_RTX_CLASS when appropriate.
7491: (eliminate_regs, mark_not_eliminable): Ignore sets of FP when looking
7492: for sets of a "to" register.
7493: (eliminate_regs_in_insn): No longer suppress elimination for any
7494: pair not at its initial offet at a jump.
7495:
7496: * combine.c (distribute_links): Correctly find the place to put a
7497: link. Handle the case when we eliminate all uses of something that
7498: we used to use; in that case, we must seach forward.
7499: No longer need I3, I2, or ALL_ADJACENT arguments.
7500: (try_combine): Change calls to distribute_links.
7501:
7502: * reload.c (find_equiv_reg): Use GET_RTX_CLASS when appropriate.
7503: If GOAL is a MEM whose address varies, check whether registers
7504: that are SET appear in the address rather than assuming they do.
7505: Ensure REG_INC note is a REG; ignore it if not.
7506:
7507: * rtlanal.c (rtx_varies_p): Rework to use switch statement.
7508: Check for {frame,arg}_pointer_rtx, not just register number.
7509: (rtx_addr_can_trap_p): New function.
7510: (may_trap_p): Use rtx_addr_can_trap_p instead of rtx_varies_p.
7511: * genattrtab.c: Define {frame,arg,stack}_pointer_rtx for rtlanal.c.
7512:
7513: * combine.c (make_extraction): Make a ZERO_EXTRACT for something with
7514: pos == 0 if it will be placed in a SET_DEST.
7515:
7516: * expmed.c (expand_shift): Rotate case was missing return statement.
7517: extzv case had wrong arg to delete_insns_since.
7518: Remove unneeded calls to delete_insns_since.
7519: Allow BITS_BIG_ENDIAN to vary at run-time.
7520: Use variable TEMP in a consistent manner.
7521: Other miscellaneous changes and cleanups were made.
7522:
7523: * flow.c (max_uid_for_flow): New variable.
7524: (flow_analysis): Compute maximum uid into max_uid_for_flow; if
7525: we might have auto-inc, leave some space.
7526: (find_auto_inc): Verify that the uid's of the insns we make are
7527: within the allocated space of our per-insn tables.
7528: Use get_insns instead of gen_sequence.
7529:
7530: * global-alloc.c (retry_global_alloc): When we allocate a register,
7531: update regno_reg_rtx and mark the allocated register live.
7532: (mark_elimination): New function.
7533: * reload1.c (reload): Call mark_elimination for every elimination
7534: we have been able to do.
7535: (spill_hard_reg): No longer need to call mark_home_live.
7536:
7537: Sun Sep 22 02:07:55 1991 Richard Stallman ([email protected])
7538:
7539: * fixincludes: Redirect cmp output to /dev/null; don't close it.
7540:
7541: * varasm.c (assemble_function): Handle ASM_OUTPUT_FUNCTION_PREFIX.
7542:
7543: * final.c (final_scan_insn): No need to goto text section
7544: for label on jump table. We're normally in the text section.
7545:
7546: Sat Sep 21 14:59:32 1991 (Eric Youngdale at [email protected])
7547:
7548: * make-cc1.com: Fix typo in code that decides if bison needs to be
7549: run. Also, display a message when building the compiler that informs
7550: the user about the need to update the assembler.
7551:
7552: Sat Sep 21 17:23:07 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
7553:
7554: * loop.c (struct movable): Add field DEPENDENCIES.
7555: (scan_loop): Remove mechanism based on REG_TO_FORCE and
7556: MOVABLE_TO_FORCE. Replace with use of new field.
7557: Optionally allocate and initialize reg_single_usage and pass it to
7558: count_loop_regs_set.
7559: If an invariant register is used exactly once and this is a loop
7560: that has a CALL_INSN, try to substitute the definition of the register
7561: into its use.
7562: (record_excess_regs): Fix typo in sense of checking in NOT_IN_THIS;
7563: only check pseudo-regs.
7564: (libcall_other_reg): Always return the list of registers used,
7565: no matter how many there are.
7566: (combine_movable): Only combine two movables if they have the same
7567: dependencies.
7568: (move_movables): Can only move something if its dependencies have
7569: already been moved.
7570: (find_single_use_in_loop): New function.
7571: (count_loop_regs_set): Delete code that prevents moving a reg that
7572: is used as a function address.
7573: Call find_single_use_in_loop when required.
7574:
7575: Sat Sep 21 16:28:34 1991 Richard Stallman ([email protected])
7576:
7577: * c-typeck.c (build_unary_op):
7578: Handle const and volatile lvalues correctly in ADDR_EXPR.
7579:
7580: * output.h (current_function_contains_functions):
7581: Just declare it, don't define it.
7582:
7583: * cse.c (exp_equiv_p): New arg EQUAL_VALUES. All callers changed.
7584:
7585: Sat Sep 21 12:59:15 1991 Michael Tiemann (tiemann at cygnus.com)
7586:
7587: * cplus-parse.y (object_star): New rule.
7588: (POINTSAT_STAR): New token.
7589: * cplus-lex.c (init_lex): Define entry for MEMBER_REF.
7590: GNU C++ now overloads `operator->*' according to ARM semantics. It
7591: no longer attempts to implement operator->* as two distinct
7592: operations.
7593:
7594: Fri Sep 20 18:08:07 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
7595:
7596: * combine.c (subst): Don't replace a CC0 or a PC in a SET_DEST if
7597: FROM is the same thing.
7598:
7599: * combine.c (simplify_shift_const): Compute SHIFT_MODE at start of
7600: loop and use its width, rather than width of RESULT_MODE, when checking
7601: shift count.
7602:
7603: Fri Sep 20 10:55:55 1991 Michael Tiemann (tiemann at cygnus.com)
7604:
7605: * cplus-pt.c (uses_template_parms): Handle COMPONENT_REF case.
7606:
7607: Fri Sep 20 00:27:43 1991 Richard Stallman ([email protected])
7608:
7609: * c-typeck.c (build_modify_expr): When assigning to a cast,
7610: convert value first to the type being cast to.
7611: (build_unary_expr): Disallow adress of a cast.
7612:
7613: * explow.c (allocate_dynamic_stack_space):
7614: Handle SETJMP_VIA_SAVE_AREA before rounding to STACK_BOUNDARY.
7615:
7616: Thu Sep 19 21:13:17 1991 Richard Stallman ([email protected])
7617:
7618: * Makefile.in (dist, gcc-*.tar, gcc-*.tar.Z): New targets.
7619:
7620: * jump.c (jump_optimize): In handling `if (...) x = a; else x = b;',
7621: don't crash if scan reaches start of insns.
7622:
7623: * Makefile.in (protoize): Link with getopt.o and getopt1.o.
7624: (unprotoize): Likewise.
7625: (protoize.o): Depend on getopt.h. Pass -D options for include dirs.
7626: (unprotoize.o): Likewise.
7627: (getopt.o, getopt1.o): New targets.
7628:
7629: * protoize.c: Major rewrite by RFG and RMS.
7630:
7631: Thu Sep 19 09:58:25 1991 Tom Wood (wood at dg-rtp.dg.com)
7632:
7633: Changes from Ron Guilmette:
7634: * dwarfout.c: Keep track of next_block_number correctly.
7635: * final.c (final_scan_insn): Don't invoke dwarfout_{begin,end}_block
7636: for the outermost block of a function.
7637:
7638: Thu Sep 19 06:16:34 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
7639:
7640: * reload.c (copy_replacements): New function.
7641: * optabs.c (gen_move_insn): Don't call gen_lowpart while reloading
7642: is in progress; it calls change_address, which wants to make pseudos.
7643:
7644: * combine.c (subst, case SET): Fix typo in last change.
7645:
7646: * combine.c (distribute_notes): When searching back for a place that
7647: uses a register marked REG_DEAD, check for set and reference separately
7648: since reg_overlap_mentioned_p doesn't check SET_DEST.
7649:
7650: * combine.c (simplify_shift_const): Correct handling of shift counts
7651: that become out-of-range.
7652:
7653: * combine.c (expand_field_assignment): Don't allow sharing the RTL
7654: for the inner object.
7655:
7656: * combine.c (can_combine_p, try_combine, record_value_for_reg): Use
7657: reg_overlap_mentioned_p instead in reg_mentioned_p in most places.
7658: (distribute_notes, distribute_links): Likewise.
7659: (combinable_i3pat): New function, from try_combine.
7660: (try_combine): Default I1DEST and I1SRC to zero.
7661: New var I1_FEEDS_I3.
7662: Delete code to validate I3's pattern from here; call combinable_i3pat
7663: instead.
7664: If a substitution returns a (clobber (const_int 0)), stop immediately.
7665: Don't abort if substitution made new regs; just don't do combine.
7666: (subst): If IN_DEST, don't replace a matching object.
7667: Don't look at a REG as a SET_DEST.
7668: If substitution inside a PARALLEL fails, give up immediately.
7669: Return (clobber (const_int 0)) even for a SET whose operand fails.
7670: (subst, case SET): Correctly test for low-order SUBREG.
7671: Don't use gen_lowpart_for_combine; make SUBREG explicitly since it
7672: can't handle modes larger than a word.
7673:
7674: * combine.c (subst, case NOT): Code for (not (ashiftx ..)) was too
7675: general; only handle (not (ashift 1 X)).
7676: (subst, case NEG): Handle (neg (ashift ...)).
7677: (merge_outer_ops): Support NEG.
7678: (simplify_shift_const, case NEG): Handle (ashift (neg ...)).
7679:
7680: * cse.c (simplify_binary_operation, case ROTATE, ROTATERT):
7681: Rotating all one bits is just all ones.
7682:
7683: Thu Sep 19 01:08:14 1991 Michael Tiemann (tiemann at cygint.cygnus.com)
7684:
7685: * cplus-parse.h, cplus-decl.h: Remove trailing comma after the last
7686: enum value in enum declarations.
7687:
7688: * cplus-type2.c (digest_init): Set TREE_PURPOSE of union initializer
7689: when initializing a union by the first field.
7690:
7691: * cplus-method.c (fndecl_as_string): Test whether DECL_CLASS_CONTEXT
7692: is NULL before using it.
7693: (dump_aggr_type): New function. Print aggr type's context when
7694: appropriate.
7695: (dump_type{_prefix}): Use `dump_aggr_type' to print ENUMERAL_TYPE,
7696: UNION_TYPE, and STRUCT_TYPE types.
7697:
7698: * cplus-decl.c (start_decl): Don't use DECL_CLASS_CONTEXT if DECL
7699: has no DECL_LANG_SPECIFIC.
7700:
7701: Wed Sep 18 21:46:32 1991 Michael Meissner (meissner at osf.org)
7702:
7703: * mips-tfile.c (cur_proc_value): New static to remember the starting
7704: location of the current function.
7705: (add_procedure): Save current procedure location.
7706: (parse_begin, parse_bend): Subtract cur_proc_value from location.
7707: (parse_bend): Correct error messages.
7708: The above changes are from [email protected].
7709:
7710: * tm-mips.h (ASM_FINAL_SPEC): Use -mno-mips-tfile to suppress
7711: invoking mips-tfile, instead of using -g0. If -save-temps, preserve
7712: the original .o file before mips-tfile is called. Pass the correct
7713: name for the assembler file.
7714: (MASK_MIPS_TFILE): New mask for -mmips-tfile, -mno-mips-tfile, set
7715: to 0, since that switch is handled entirely in ASM_FINAL_SPEC.
7716: (TARGET_FLAGS): Add -mmips-tfile, -mno-mips-tfile switches.
7717: (MUST_SAVE_REGISTER): Allow $30 to be saved, even if not being used
7718: as the frame pointer.
7719:
7720: * tm-decrose.h (ASM_FINAL_SPEC): Use -mno-mips-tfile to suppress
7721: invoking mips-tfile, instead of using -g0. If -save-temps, preserve
7722: the original .o file before mips-tfile is called. Pass the correct
7723: name for the assembler file.
7724:
7725: Wed Sep 18 18:54:15 1991 Michael Tiemann (tiemann at cygint.cygnus.com)
7726:
7727: * cplus-*.c: Use DECL_CLASS_CONTEXT to figure out where a (static or
7728: non-static) member function is declared, rather than trying to
7729: divine the info from TYPE_METHOD_BASETYPE of the function's type.
7730:
7731: Wed Sep 18 15:38:52 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
7732:
7733: * c-decl.c (grokdeclarator): Error if nested function is extern.
7734:
7735: Wed Sep 18 02:41:08 1991 Per Bothner (bothner at cygnus.com)
7736:
7737: * cplus-typeck.c (convert_arguments): Don't crash if the
7738: formal parameter type is unknown (type==NULL) and the
7739: actual is a function. Do the default instead.
7740:
7741: Tue Sep 17 22:33:30 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
7742:
7743: * c-typeck.c (check_format):
7744: No warning if types match except for signedness.
7745:
7746: Tue Sep 17 10:56:46 1991 Michael Tiemann (tiemann at cygint.cygnus.com)
7747:
7748: * cplus-decl.c (pushtag): When creating a TYPE_DECL that's in class
7749: scope, allocate the space needed for DECL_CLASS_CONTEXT.
7750:
7751: * cplus-search.c (get_abstract_virtuals): If the BASE is not on the
7752: main spine, look at the virtuals that come from the most derived
7753: class that has BASE on its main spine.
7754: * cplus-tree.h (VF_*): New macros for dealing with VFIELDS.
7755:
7756: Mon Aug 16 12:09:32 1991 (Eric Youngdale at [email protected])
7757:
7758: * make.com: Fix typo.
7759:
7760: Tue Sep 17 15:13:39 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
7761:
7762: * c-common.c (shorten_compare): Always compute args with side effects.
7763:
7764: * varasm.c (decode_addr_const): Use SYMBOL_REF unchanged in 1st switch.
7765:
7766: * varasm.c (output_addressed_constants): Handle a CONSTRUCTOR in
7767: an ADDR_EXPR correctly.
7768:
7769: * cccp.c (rescan): For unterm string, mention lineno of first newline.
7770:
7771: * fold-const.c (fold): Call optimize_bit_field_compare in constant case
7772: even if not optimizing.
7773:
7774: * c-decl.c (finish_function): Don't clear DECL_INITIAL if nested.
7775: (pop_c_function_context): Do it here instead.
7776:
7777: Tue Sep 17 11:30:32 1991 Michael Meissner (meissner at osf.org)
7778:
7779: * collect-osf.c (scan_prog_file): Recognize alternate forms for the
7780: constructor and destructor names.
7781:
7782: * osf-main.c (_entry): Provide an alternative function (_entry) to
7783: start up the static constructors/destructors.
7784:
7785: Mon Sep 16 05:35:21 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
7786:
7787: * combine.c (simplify_shift_const): Correct errors involving modes
7788: to use for shift.
7789:
7790: Sun Sep 15 19:13:58 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
7791:
7792: * reload1.c (reload_as_needed): Remove code that deletes insns that
7793: create equivalences.
7794: (reload): Put it here so it is executed even if reload_as_needed
7795: isn't called.
7796:
7797: Sun Sep 15 17:13:09 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
7798:
7799: * Makefile.in (GNULIB2_CFLAGS): Include GCC_CFLAGS.
7800: (ENQUIRE_CFLAGS): Likewise (in place of plain CFLAGS).
7801:
7802: * genattrtab.c (main): Don't index by id->insn_code if negative.
7803:
7804: * genrecog.c (write_tree_1): Avoid pos[depth-1] if depth is 0.
7805:
7806: Sun Sep 15 15:19:16 1991 (Eric Youngdale at [email protected])
7807:
7808: * make.com: Modify to allow direct submission to a batch queue.
7809: Also, add instructions to build GNU C++ as well as GNU CC.
7810:
7811: * cccp.c (hack_vms_include_specification): If [000000] is present in
7812: (implying a physical device or a rooted logical) try to open it.
7813: If the open fails, then remove the [000000] (making the name suitable
7814: for use with a non-rooted logical name) and return that.
7815:
7816: Sun Sep 15 15:12:41 1991 Michael Meissner (meissner at osf.org)
7817:
7818: * make-mips (Makefile): Remove rule building Makefile, since
7819: Makefile.in now has one.
7820:
7821: * make-decrose (Makefile): Remove rule building Makefile, since
7822: Makefile.in now has one.
7823:
7824: Sun Sep 15 14:12:47 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
7825:
7826: * Makeflags (SYSCALLS.c.X): Use CPPFLAGS and INCLUDES.
7827:
7828: Sun Sep 15 12:03:35 1991 Michael Tiemann (tiemann at cygnus.com)
7829:
7830: * cplus-decl.c (poplevel): Match change made to c-decl.c on Oct 3,
7831: 1989.
7832:
7833: Sun Sep 15 06:52:42 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
7834:
7835: * caller-save.c (save_call_clobbered_regs): Deaden registers mentioned
7836: in REG_UNUSED notes.
7837: (clear_reg_live): Verify that note refers to a REG.
7838: (choose_hard_reg_mode): Rewrite to not use specific modes and to
7839: handle the case where separate CCmode registers exist.
7840:
7841: Sat Sep 14 13:03:29 1991 Michael Tiemann (tiemann at cygnus.com)
7842:
7843: * all cplus-* files: Change {ASSOC,assoc} to {BINFO,binfo} where
7844: appropriate.
7845: cplus-tree.h, tree.h: Change name of CLASSTYPE_ASSOC to TYPE_BINFO.
7846: Change names of CLASS_ASSOC_* to TYPE_BINFO_*.
7847: all cplus-* files: FUNCTION_DECLs that are class methods now have
7848: their DECL_VCONTEXT stored in the DECL_CONTEXT.
7849: (lang_decl): The VCONTEXT field is now gone.
7850: (lang_decl): _DECL nodes in class scope now record the class as a
7851: context in the DECL_CLASS_CONTEXT field.
7852: tree.h (TYPE_BINFO): Renamed TYPE_BASETYPES to this.
7853: dbxout.c (dbxout_type): User of TYPE_BASETYPES changed.
7854: (BINFO_{VALUE,OFFSET,VTABLE,VIRTUALS,BASETYPE{S}}): New macros
7855: inherited from GNU C++.
7856: (DECL_{VINDEX,FCONTEXT}): Ditto.
7857: (TREE_VIA_{PUBLIC,VIRTUAL}): Ditto.
7858:
7859: Sat Sep 14 09:14:26 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
7860:
7861: * rtlanal.c (reg_set_p): Remove abort for MEM; reg_overlap_mentioned_p
7862: now handles that case correctly.
7863: REG is set if it is really a MEM and this is a CALL_INSN.
7864:
7865: Sat Sep 14 01:34:39 1991 Richard Stallman ([email protected])
7866:
7867: * configure (vax-ultrix*): New alternative.
7868:
7869: * reload1.c (choose_reload_regs): Always ignore cancelled reloads.
7870:
7871: * real.h (atof): Alternate declaration on MIPS.
7872:
7873: Thu Sep 12 18:55:06 1991 Torbjorn Granlund (tege at mole.gnu.ai.mit.edu)
7874:
7875: * optabs.c (expand_binop): Fix carry propagation code for multiple
7876: words.
7877:
7878: * tm-*.h: Fix systematic typo in comment.
7879:
7880: Thu Sep 12 18:23:53 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
7881:
7882: * gvarargs.h, va-mips.h, va-sparc.h (_va___list): Was __va_list.
7883:
7884: Thu Sep 12 12:53:36 1991 Roland H. Pesch (pesch at cygint.cygnus.com)
7885:
7886: * cpp.texinfo: (titlepage) use @title/@subtitle/@author
7887: (copyright page) add note re future C manual; add 1991 to copyrights
7888: (general) prepare for easy @smallbook formatting; clarification on
7889: strings; less passive; add AMD29K predefined macros; update -d refs,
7890: add -dM; add examples; add -pedantic-errors; add -MD, -MMD, -H; fix
7891: minor typos.
7892:
7893: Thu Sep 12 07:58:11 1991 Torbjorn Granlund (tege at mole.gnu.ai.mit.edu)
7894:
7895: * m68k.md (umulsidi3, mulsidi3): New DEFINE_EXPANDs and DEFINE_INSN
7896: recognizers.
7897:
7898: Wed Sep 11 22:11:17 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
7899:
7900: * a29k.md, romp.md: Update calling sequence to emit_no_conflict_block.
7901:
7902: Wed Sep 11 21:06:32 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
7903:
7904: * fold-const.c (const_binop): Fix last change for ceil and round.
7905:
7906: * gvarargs.h, va-mips.h, va-sparc.h (va_list): Now a macro again.
7907: (__va_list): This is the typedef.
7908:
7909: Wed Sep 11 16:52:20 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu)
7910:
7911: * c-typeck.c (build_binary_op_nodefault, RSHIFT_EXPR): Change
7912: "shift count" warnings changed to errors back to warnings.
7913:
7914: * cse.c (canon_hash): Also do not record global_regs if
7915: SMALL_REGISTER_CLASSES. Makes the code match the comment.
7916:
7917: * cexp.y (yylex): Add sprintf call to create error message,
7918: because yyerror does not call *printf itself.
7919:
7920: * gcc.c (default_compilers): Support new option -traditional-cpp,
7921: which passes traditional to cpp, but not to cc1.
7922: * gcc.texinfo: Document it.
7923:
7924: * sched.c (INSN_LUID): New variable. Give instructions logical
7925: numbers, which can be used when sorting, to make the scheduling
7926: algorithm more stable.
7927: (sched_analyze): Initialize it.
7928: (rank_for_schedule): Sort on it.
7929: (schedule_insns): Alloca(te) it and (b)zero it.
7930: (priority): New priority algorithm. Don't include latency of
7931: current insn, and subtract one from total priority calculated.
7932: Makes the scheduling algorithm more stable, and doesn't hurt
7933: performance.
7934:
7935: * sched.c (swap_sort): Must pass &insn to rank_for_schedule, not a
7936: pointer into the array being sorted.
7937:
7938: * cplus-lex.c (do_identifier): Put function return type on
7939: preceeding line.
7940:
7941: Wed Sep 11 05:51:00 1991 Michael Tiemann (tiemann at cygint.cygnus.com)
7942:
7943: * cplus-typeck.c (build_binary_op_nodefault): If OP0 or OP1 is a
7944: zero pointer, canonicalize it to NULL_POINTER_NODE.
7945:
7946: * expr.c (preexpand_calls): Don't preexpand calls inside a
7947: WITH_CLEANUP_EXPR. The gestalt of a WITH_CLEANUP_EXPRs must be
7948: understood at the top level.
7949:
7950: * cplus-tree.c (build_cplus_new): When building cleanup, make
7951: the call to the cleanup nonvirtual.
7952:
7953: Tue Sep 10 20:28:56 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
7954:
7955: * fold-const.c (const_binop): Shortcut for dividing single-word
7956: sizes
7957:
7958: * Makefile.in (varasm.o): Depend on insn-codes.h.
7959:
7960: Tue Sep 10 19:29:26 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
7961:
7962: * optabs.c (expand_binop): Try to open-code muldi3 if we have mulsi3
7963: and mulsidi3. Idea due to [email protected].
7964:
7965: * cse.c (fold_rtx, case MEM): Don't call find_best_addr when insn == 0.
7966: Pass 0 to recursive call that tries to fold the address.
7967:
7968: Tue Sep 10 18:16:16 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
7969:
7970: * m68k.md (fix_trunc*): Call CC_STATUS_INIT, since these patterns
7971: do not leave the condition codes in the expected state.
7972:
7973: * tm-ultrix.h (CPP_PREDEFINES): Add __vax.
7974:
7975: Tue Sep 10 04:12:53 1991 Michael Tiemann (tiemann at cygint.cygnus.com)
7976:
7977: * cplus-decl.c (finish_decl): Fix bug where the conversion from
7978: WITH_CLEANUP_EXPR -> init/cleanup pair was not setting bits of
7979: CURRENT_BINDING_LEVEL.
7980: (init_decl_processing): Set FLAGS_THIS_IS_VARIABLE before calling
7981: `init_exception_processing'.
7982:
7983: Mon Sep 9 22:09:27 1991 Michael Tiemann (tiemann at cygint.cygnus.com)
7984:
7985: * cplus-tree.h (prev_class_type): Delete this bogus definition.
7986:
7987: * cplus-class.c (instantiate_type): Don't complain about no static
7988: member functions being found until we have been through all the
7989: baselinks.
7990:
7991: * cplus-dbxout.c (dbxout_type_methods): Don't write symbol
7992: information about methods that were generated by the compiler.
7993: (??? Is this really the right thing to do?)
7994:
7995: * cplus-decl2.c (lang_decode_option): Turn on warn_uninitialized if
7996: -Wall is the argument.
7997:
7998: Mon Sep 9 19:05:01 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu)
7999:
8000: * gcc.c (default_compilers): For .S files, pass -traditional not
8001: -ftraditional to cpp.
8002:
8003: Mon Sep 9 15:01:58 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
8004:
8005: * fold-const.c (optimize_bit_field_compare): Distinguish NE from EQ.
8006:
8007: * explow.c (allocate_dynamic_stack_space):
8008: Handle SETJMP_VIA_SAVE_AREA by allocating extra space.
8009:
8010: * cplus-parse.y (empty_parms): Change inline to __inline.
8011:
8012: Mon Sep 9 15:16:24 1991 Torbjorn Granlund (tege at zevs)
8013:
8014: * longlong.h (m68000 umul_ppmm): Clobber one register less by
8015: slightly rearranging the code.
8016:
8017: Sun Sep 8 16:47:32 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
8018:
8019: * cccp.c (main, fatal): Delete the deps output file if error.
8020: (deps_file): New variable.
8021:
8022: * expr.c (convert_move): Update call to emit_no_conflict_block.
8023:
8024: * expmed.c (CEIL): New macro.
8025:
8026: * optabs.c (expand_binop): Don't do add by words for more than 2 words.
8027:
8028: * c-typeck.c (build_modify_expr): Test TREE_READONLY of lhs.
8029:
8030: Sun Sep 8 01:17:47 1991 Torbjorn Granlund (tege at zevs)
8031:
8032: * sparc.md (sgtu, sleu): Test for SUBREG as well as REG.
8033:
8034: Sun Sep 8 07:04:33 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
8035:
8036: * optabs.c (emit_no_conflict_block, emit_libcall_block): Rework to
8037: accept a list of insns rather than a SEQUENCE.
8038: (expand_binop, expand_unop, expand_float, expand_fix): Change calls to
8039: above functions.
8040: * emit-rtl.c (add_insn): No longer static.
8041: * calls.c (expand_call): Change call to emit_libcall_block.
8042:
8043: * cse.c (fold_rtx): Fix typo with parens in associative operation case.
8044:
8045: Sat Sep 7 21:49:46 1991 Jim Wilson (wilson at cygint.cygnus.com)
8046:
8047: * expmed.c (store_bit_field): In the code handling bitfields
8048: larger than the word size: set fieldmode to size large enough
8049: to hold bitfield; new variable orig_bitsize; don't let
8050: bit_offset calculation for WORDS_BIG_ENDIAN hosts go negative.
8051: (extract_bit_field): Likewise.
8052: (store_split_bit_field): For second word, strip of SUBREG if any
8053: before calling operand_subword. Offset for second word if in
8054: memory is the next UNITS_PER_WORD aligned address.
8055: (extract_split_bit_field): Likewise.
8056:
8057: * expr.c (emit_move_insn): When emitting multiple move insns in
8058: the loop, remember last insn emitted so that it can be returned.
8059:
8060: * tree.c (enum tree_node_kind): Add new entry vec_kind to
8061: represent TREE_VECs.
8062: (tree_node_kind_names): Add name "vecs" for it.
8063: (make_node): Handle TREE_VECs in the 'x' case.
8064: (make_tree_vec): Use vec_kind instead of x_kind.
8065:
8066: Sat Sep 7 16:25:50 1991 Michael Tiemann (tiemann at cygint.cygnus.com)
8067:
8068: * cplus-call.c (ideal_candidate): Prefer non-const member functions
8069: to const member functions when there is a choice.
8070: * cplus-tree.c (propagate_assoc_offsets): Moved here from
8071: cplus-class.c
8072: (copy_nonvirtual_children): Deleted.
8073:
8074: * cplus-class.c, cplus-tree.c (layout_{v}basetypes,
8075: propagate_assoc_offsets, finish_base_struct): New offset
8076: computation/hierarchy implementation. Now the lattice contains
8077: vbasetypes with zero-based offsets (and children from these types
8078: assume they are zero-based). The CLASSTYPE_VBASETYPE list contains
8079: vbasetypes with hierarchy-dependent offsets (and children from these
8080: types have hierarchy-dependent offsets). Note that now, virtual
8081: baseclasses are fully shared in the hierarchy. The still are not
8082: shared at all in the CLASSTYPE_VBASETYPE list.
8083: * cplus-decl.c (xref_tag): Share vbasetypes in the lattice.
8084: * cplus-tree.h (lang_type): Add CLASSTYPE_VASSOC field so we can
8085: share virtual basetypes in inheritance lattices.
8086:
8087: Sat Sep 7 13:07:12 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
8088:
8089: * c-parse.y (cast_expr): Supply OFWHAT arg to digest_init.
8090: * c-typeck.c (error_init, pedwarn_init): New functions.
8091: (digest_init, process_init_constructor): Use them.
8092:
8093: * out-m68k.c (output_function_prologue): Add a negative constant
8094: to sp rather than adding a positive one, since this is faster.
8095:
8096: * out-m68k.c (output_function_prologue, output_function_epilogue):
8097: Use word sized immediates when possible.
8098:
8099: * Makefile.in (install-dir): Don't die if can't create mandir.
8100: (install-man): Don't put . in front of manext.
8101: (manext): Add . to the value.
8102: (mandir): Don't use manext.
8103:
8104: * genextract.c (main): Don't use __builtin_memcpy in GCC 1.
8105:
8106: Fri Sep 6 19:29:55 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
8107:
8108: * caller-save.c (emit_mult_save, emit_mult_restore): Copy constant to
8109: TEMPREG and add integer, instead of the opposite order, which might
8110: not work on some machines.
8111:
8112: * fold-const.c (fold): Ensure we always return an object of the
8113: desired type.
8114:
8115: * reload1.c (reload, reload_as_needed): reload_in_progress must be
8116: set during caller-save processing.
8117:
8118: Fri Sep 6 18:36:55 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu)
8119:
8120: * out-sparc.c (leaf_reg_{remap,backmap}): Define mapping for
8121: %o7/%i7, since user-defined registers might reference these.
8122: (legitimize_pic_address): Set CURRENT_FUNCTION_USES_PIC_OFFSET_TABLE
8123: if ORIG is a LABEL_REF. For CONST_INT case, don't call force_reg
8124: during reload, use REG if available otherwise abort.
8125:
8126: Fri Sep 6 17:16:05 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
8127:
8128: * configure: Default $cpu_type properly.
8129:
8130: Fri Sep 6 05:50:58 1991 Ken Raeburn (raeburn at watch.com)
8131:
8132: * genextract.c: Generate one large function with a switch, instead
8133: of a table of small functions to call. Use __builtin_memcpy under
8134: GNU C.
8135:
8136: * genoutput.c: For "@" constructs, now generates a lookup table per
8137: insn, instead of a switch.
8138:
8139: Fri Sep 6 15:40:54 1991 Tom Wood (wood at dg-rtp.dg.com)
8140:
8141: * cccp.c (skip_if_group): Deal with invalid directives the same
8142: way handle_directive does.
8143:
8144: Fri Sep 6 16:37:04 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu)
8145:
8146: * tm-sparc.h (RTX_COSTS): Define costs for MULT and various divides.
8147:
8148: * loop.c (move_movables): Call `gen_lowpart_common' instead of
8149: building SUBREG manually.
8150:
8151: * local-alloc.c (block_alloc): When convert scratch to a reg, must
8152: set regs_ever_live for all hard registers used by the new reg, not
8153: just the first.
8154:
8155: Fri Sep 6 07:15:44 1991 Torbjorn Granlund (tege at mole.gnu.ai.mit.edu)
8156:
8157: * gnulib2.c (__negdi2): Change it to work like __subdi3.
8158: * gnulib2.c (_udivmoddi4): Make faster special case for CPUs with
8159: a udiv_qrnnd that can handle unnormalized (i.e. with less than
8160: LONG_TYPE_SIZE significant bit) divisors.
8161:
8162: * gnulib2.c (__muldi3): Cast operands to unsigned.
8163:
8164: * gnulib2.c (__Xcmpdi): Use `long' for all variables for
8165: consistency.
8166:
8167: * gnulib2.c (__udivmoddi4): New function with code from __udivdi3,
8168: extended to give remaider.
8169: * gnulib2.c (__divdi3, __moddi3, __udivdi3, __umoddi3): Use
8170: __udivmoddi4.
8171: * gnulib2.c: (__moddi3): Result sign is only dependent on U, not V.
8172:
8173: Fri Sep 6 05:44:07 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
8174:
8175: * cse.c (cse_insn): Accept new arg IN_LIBCALL_BLOCK.
8176: If in libcall block, don't record destinations in hash table.
8177: Remove explicit use of SFmode and DFmode when checking -ffloat-store.
8178: (cse_basic_block): Pass new arg to cse_insn to indicate when we
8179: are processing an insn surrounded with REG_LIBCALL/REG_RETVAL notes.
8180:
8181: * optabs.c (emit_libcall_block): New function.
8182: (expand_binop, expand_unop): Remove kludge of referencing library
8183: function SYMBOL_REF before libcall block.
8184: Use emit_libcall_block.
8185: (expand_float, expand_fix): Rework library calls to use
8186: emit_libcall_block.
8187: * calls.c (struct arg_data): Add new field, initial_value.
8188: (expand_call): Don't make libcall block for calls that return
8189: aggregates.
8190: Remove kludge of referencing function SYMBOL_REF outside of block.
8191: For constant calls, save RTL for arg in args[i].initial_value and
8192: start a sequence.
8193: When making REG_EQUAL note, use INITIAL_VALUE instead of VALUE.
8194: Use emit_libcall_block for constant calls.
8195: * expr.h (emit_libcall_block): Define it.
8196:
8197: Fri Sep 6 15:58:52 1991 Torbjorn Granlund (tege at zevs)
8198:
8199: * longlong.h (68020, i386): Don't define machine-dependent
8200: __umulsidi3 (so the default definition is used).
8201: * longlong.h (all machines): Cast all operands, sources and
8202: destinations, to `unsigned long int'.
8203: * longlong.h: Add gmicro support.
8204:
8205: Fri Sep 6 01:42:09 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
8206:
8207: * jump.c (jump_optimize): Delete duplicate line number notes.
8208:
8209: Thu Sep 5 19:23:24 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
8210:
8211: * configure (romp): Fix typo in name of xm_file.
8212:
8213: * rtlanal.c (dead_or_set_p): If INSN has a CLOBBER for X, X is
8214: dead.
8215:
8216: * gnulib1.c (cmpdf2, cmpsf2): Delete unused functions.
8217: * gnulib2.c (anddi3, iordi3, xordi3, one_cmpldi2, adddi3, subdi3):
8218: Likewise.
8219: * optabs.c (emit_cmp_insn): Clean up code now that integer and
8220: float comparisons are done differently.
8221: (init_optabs): Remove references to unused functions listed above.
8222: * Makefile.in (LIB1FUNCS, LIB2FUNCS): Likewise.
8223:
8224: Thu Sep 5 18:32:27 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
8225:
8226: * m68k.md (zero_extend*): Don't allow memory-memory due to aliasing.
8227:
8228: * expr.c (do_jump): Don't lose if only 1 insn precedes new jump.
8229:
8230: * sparc.md (ashldi3): Fix dumb bug detecting constant 1.
8231:
8232: * out-sparc.c (output_move_double): Use split_double for constant.
8233: Properly decrement addreg1.
8234:
8235: Thu Sep 5 15:20:25 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu)
8236:
8237: * out-sparc.c: Include expr.h and delete extern declarations.
8238:
8239: * rtlanal.c (rtx_equal_p): Correct typo in comment or spacing.
8240: * reload1.c (reload): Likewise.
8241: * protoize.c: Likewise.
8242: * longlong.h: Likewise.
8243: * local-alloc.c (block_alloc): Likewise.
8244: * jump.c: Likewise.
8245:
8246: * unroll.c (iteration_info): Don't calculate loop iterations based
8247: on a giv iterator, since the current code often gives the wrong
8248: result. This case is rare, so it does not seem worth handling at all.
8249:
8250: * sched.c (schedule_insns): When the only sched pass is after
8251: reload, must clear unused_insn_list and unused_expr_list then,
8252: instead of during the nonexistant pass before reload.
8253:
8254: * sched.c (schedule_block): When calculating estimated IPC, avoid
8255: divide by zero.
8256:
8257: * sparc.md: Correct two define_splits for seq/sne patterns of the
8258: form `x + (i == 0)', and add a missing `addx' pattern used by
8259: these define_splits.
8260:
8261: * toplev.c (fatal_insn_not_found): Correct typo in error message.
8262: (main): Include "gsdb" and "gdbx" in warning message when -g is not
8263: supported.
8264:
8265: * expr.h (enum expand_modifier): Delete last vestige of
8266: EXPAND_INTO_STACK.
8267:
8268: Thu Sep 5 13:50:21 1991 John Gilmore (gnu at cygint.cygnus.com)
8269:
8270: * c-typeck.c (digest_init, process_init_constructor): Include the
8271: variable name, member name, and/or array indices in error messages.
8272: This makes it tolerable to debug large data structure initializers.
8273: Reword some messages to work with the name and/or function call
8274: argument included. New arg OFWHAT. All callers changed except
8275: one digest_init call in each of c-parse.y and objc-parse.y.
8276: (warn_for_assignment): Reduce to a single message argument,
8277: automatically handling formatting for function call arguments.
8278: All callers changed.
8279: (convert_for_assignment): If ERRTYPE is a null string, this is
8280: parameter passing for a function, so output different error messages.
8281: (convert_arguments): Pass null string to convert_for_assignment to
8282: indicate parameter passing.
8283:
8284: Thu Sep 5 13:44:19 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu)
8285:
8286: * sched.c: Correct typos in comments.
8287: (sched_note_set): Don't try to calculate live info for global
8288: register variables.
8289: (attach_deaths): Don't add REG_DEAD notes for global register
8290: variables.
8291:
8292: * tm-sparc.h (SELECT_SECTION): Can't put a variable in text section
8293: if flag_pic and RELOC are both true, same test that varasm.c does.
8294:
8295: Thu Sep 5 13:15:43 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
8296:
8297: * rtlanal.c (reg_referenced_p): Handle USE and CALL.
8298: Use switch instead of if-then-else.
8299:
8300: Thu Sep 5 08:03:58 1991 Michael Tiemann (tiemann at cygint.cygnus.com)
8301:
8302: * cplus-class.c (propagate_assoc_offsets): Don't fail to
8303: propagate the offset to the rightmost basetype.
8304:
8305: * cplus-decl.c (xref_tag): Allocate nodes for basetype info on
8306: permanent obstack, not temporary obstack.
8307:
8308: Wed Sep 4 18:53:16 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
8309:
8310: * fixincludes : Change `m68k' to `__m68k__' in all #if's.
8311:
8312: * Makefile.in (ALLOCA_FLAGS): Add -Demacs.
8313: (ALLOCA_FINISH): Put option before input file name.
8314: (alloca.o): Supply $(INCLUDES).
8315:
8316: * Makefile.in (GCC_CFLAGS): New parameter.
8317: (protoize, protoize.o, unprotoize, unprotoize.o): Use GCC_CFLAGS.
8318: (enquire, enquire.o, collect2, collect2.o, SYSCALLS.c.X): Likewise.
8319:
8320: Wed Sep 4 18:13:56 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
8321:
8322: * combine.c (make_extraction): When picking up low-order part,
8323: ensure that we don't create a non-aligned object if alignment
8324: is required.
8325:
8326: * expr.c (emit_push_insn): Ensure we only call force_const_mem on a
8327: constant.
8328:
8329: * config.subr: Set `os' to be the last `-' and everything following it.
8330: `romp' is the basic machine name for the rtpc.
8331: `aos' is IBM's name for BSD.
8332: * configure: Default `cpu_type' to the first field before an
8333: optional `-'.
8334: Add a29k, a29k-ultra, romp, and rs6000.
8335: * xm-a29k-ultra.h: New file.
8336:
8337: Wed Sep 4 15:46:50 1991 Tom Wood (wood at dg-rtp.dg.com)
8338:
8339: Changes from Ron Guilmette:
8340: * dwarfout.c (output_symbol): Move tests for omitting declarations
8341: to dwarfout_file_scope_symbol. No need for `local' parameter.
8342: Use TREE_PUBLIC and TREE_EXTERNAL to determine whether a variable
8343: or function is global.
8344: (finalizing, dwarfout_file_scope_delayed_symbol): Delete.
8345:
8346: * toplev.c (compile_file): Delete use of dwarfout_file_scope_symbol
8347: for initialized VAR_DECLs. All global declarations are passed to
8348: dwarfout_file_scope_symbol (except function definitions and types).
8349:
8350: (compile_file, rest_of_decl_compilation): Attribute time in
8351: {dbxout,sdbout,dwarfout} functions to symout_time.
8352:
8353: * varasm.c (assemble_variable): Check and update TREE_ASM_WRITTEN
8354: for a global register variable.
8355: Delete use of dwarfout_file_scope_symbol for VAR_DECLs.
8356:
8357: Tue Sep 3 23:34:57 1991 Torbjorn Granlund (tege at zevs)
8358:
8359: * sparc.md (ashldi3 expander & recognizer): Make shift count have
8360: SImode. Used to have DImode.
8361:
8362: * expmed.c (emit_store_flag): Declare arg UNSIGNEDP.
8363:
8364: * vax.md (adddi3): Make operands 2 and 3 commutative.
8365:
8366: * sparc.md (subtract constant then return): Peephole deleted.
8367:
8368: Tue Sep 3 22:23:52 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
8369:
8370: * Makefile.in (mostlyclean, clean, realclean): Some files were missing.
8371:
8372: * gvarargs.h (va_list): Make it typedef, not macro.
8373: * va-mips.h, va-pyr.h: Likewise.
8374:
8375: Tue Sep 3 22:07:04 1991 Michael Tiemann (tiemann at cygint.cygnus.com)
8376:
8377: * cplus-init.c (build_vec_delete): Fix off-by-one error for arrays
8378: of length 1.
8379:
8380: Tue Sep 3 19:30:45 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
8381:
8382: * combine.c (try_combine): Don't pass a STRICT_LOW_PART to
8383: reg_overlap_mentioned_p.
8384:
8385: * cse.c (fold_rtx): If INSN is zero, copy X before we change
8386: anything inside it.
8387: When looking for associative operation, pass zero as missing arg to
8388: recursive call.
8389: (find_comparison_args): Add zero for missing arg to fold_rtx calls.
8390:
8391: * reload.c (find_reloads): Correct code that prevents replacing
8392: a SET_DEST with a constant so that it correctly looks for an
8393: operand being a SET_DEST.
8394:
8395: Tue Sep 3 19:17:34 1991 James Van Artsdalen (james at bigtex.cactus.org)
8396:
8397: * out-i386.c (split_di): Call split_double for CONSTANT_P.
8398: (fix_op): Delete.
8399: (float_op): Don't examine the mode of the FLOAT operand.
8400: (output_float_compare): Don't make new %ax RTX: use scratch
8401: operand from insn.
8402:
8403: * i386.md (float mode tstM,cmpM,fixuns_truncMN2,fix_truncMN2): Use
8404: match_scratch.
8405: (float mode tstM,fixuns_truncMN2,fix_truncMN2): Don't gen temp RTX:
8406: use scratch operand.
8407: (fix_truncMN2,floatMN2): Split pattern into a separate DFmode and
8408: SFmode patterns so that operands[1] has a mode.
8409: (sCOND patterns): Don't set cc_status to previous status.
8410: (cmpstrsi): Don't explicitly reference reg 2.
8411:
8412: Tue Sep 3 16:28:56 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
8413:
8414: * optabs.c (expand_binop): Fix carry calculation.
8415:
8416: * varasm.c (decode_addr_const): Given a LABEL_DECL, Make a LABEL_REF.
8417: (const_hash): Handle a LABEL_REF.
8418: * expr.c (expand_expr): Use FUNCTION_MODE for memref to a LABEL_REF.
8419:
8420: * configure: Fix typo in last change.
8421:
8422: * cccp.c (handle_directive): Normally no error for line with `###'.
8423:
8424: Tue Sep 3 10:53:12 1991 Tom Wood (wood at dg-rtp.dg.com)
8425:
8426: * out-m88k.c, tm-m88k.h: Delete remnants of the fancy abort.
8427: * tm-m88kdgux.h: No longer identify as version DG-*.
8428: * m88k files: Update copyright dates.
8429:
8430: Tue Sep 3 03:18:54 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
8431:
8432: * expr.c (expand_expr): Get rid of EXPAND_INTO_STACK.
8433:
8434: Mon Sep 2 14:07:54 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
8435:
8436: * gcc.c (do_spec_1): In %X, terminate the arg after each option.
8437:
8438: * config.subr: If argument contains `local', always accept it.
8439: * configure: If machine type contains `local',
8440: construct file names from that machine type name.
8441:
8442: * configure: Make config.status a shellscript to redo the configure.
8443: No need now to change / to - when storing $(target) in Makefile.
8444: Store $(host_make_var_file) in Makefile also.
8445: Set host_make_var_file to ../Makefile.in after creating Makefile
8446: if no make-... file actually exists for this host.
8447: * Makefile.in (host_make_var_file): Dummy definition to be filled in.
8448: (Makefile): New rule to rerun `configure'
8449:
8450: * tm-sysv4.h (ASM_DECLARE_FUNCTION_SIZE): New macro.
8451:
8452: * tm-mips.h, tm-m88k.h (abort): Macro definition deleted. It is
8453: not right for any machines description to specify use of fancy_abort.
8454:
8455: * protoize.c [v.4]: Include fcntl.h.
8456: (execvp): Correct type for second arg.
8457: (compile_params): Remove `const'; that loses when calling execvp.
8458:
8459: * cccp.c (directive_table): Typo in entry for do_ident.
8460:
8461: * xm-m68k.h (alloca): Define macro with arg.
8462:
8463: * emit-rtl.c (reorder_insns_with_line_notes): New function.
8464: (find_line_note, emit_line_note_after): New functions.
8465:
8466: * jump.c (jump_optimize): When moving else clause before test,
8467: only move the insn as far as needed, and use new function
8468: reorder_insns_with_line_notes.
8469:
8470: Mon Sep 2 03:30:35 1991 James Van Artsdalen (james at bigtex.cactus.org)
8471:
8472: * Makefile.in (collect2): Compile with gcc.
8473:
8474: Sun Sep 1 9:03:46 1991 (Eric Youngdale at [email protected])
8475:
8476: Define two macros to eliminate the need for a seperate collect pass.
8477:
8478: * tm-vms.h (ASSEMBLE_OUTPUT_CONSTRUCTOR): Define.
8479: (ASSEMBLE_OUTPUT_DESTRUCTOR): Define.
8480:
8481: Sun Sep 1 08:14:22 1991 Michael Meissner (meissner at osf.org)
8482:
8483: * collect-osf.c (main): Print version number if -v. Also ignore all
8484: arguments beginning with -c rather than just '-c'.
8485:
8486: * make-decrose (collect): Add version.o to link.
8487:
8488: Sat Aug 31 17:03:23 1991 Michael Meissner (meissner at osf.org)
8489:
8490: * cplus-input.c (inline macro definition): If inline is already
8491: defined, don't redefine it.
8492:
8493: * collect-osf.c (main): Look for gld and gas instead of ld and as,
8494: so collect-osf can be installed as ld. Use a default path of
8495: /usr/ccs/gcc to find the linker and assember. Ignore the -c switch,
8496: which GCC uses to say that collect is needed.
8497:
8498: * osf-main.c (__finis): Don't call descructors already called if one
8499: of the destructors calls exit (which in turn calls __finis).
8500:
8501: * tm-mips.h (DBX_REGISTER_NUMBER): Use mips_dbx_regno to map
8502: register number to debug register number.
8503: (GP_DBX_FIRST, FP_DBX_FIRST): New macros, giving the first debug
8504: register numbers for gp registers and fp registers.
8505:
8506: * out-mips.c (mips_dbx_regno): New global array to map GCC register
8507: number to debug register number, to fix problem with OSF/1 stabs
8508: using 38 for the first fp registers, rather than 32.
8509: (override_options): Set up OSF/1 SIGINFO signal handler to notmake
8510: the interruptable system calls read, write, and wait not return
8511: error condition. Also initialize mips_dbx_regno.
8512:
8513: * make-decrose (CFLAGS): Add $(MSTATS) variable to set -mstats.
8514: (CFLAGS_NODEBUG): Like CFLAGS, except no debugging or inlining.
8515: (DEB_OPT): Define in terms of DEBUG, OPT, and PROFILE.
8516: (cplus-lex rule): Build cplus-lex with no debug or inlinings.
8517:
8518: Sat Aug 31 12:52:17 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
8519:
8520: * cccp.c (handle_directive): Be more fussy detecting `# LINE' case.
8521:
8522: * cccp.c (directive_table): Pass through and ignore #ident.
8523: (do_ident): New function.
8524: (skip_if_group): Error if unrecognized directive seen.
8525:
8526: * jump.c (jump_optimize): In converting x=a; if (...) x=b; to
8527: store flag, insert all the new code in just one line.
8528:
8529: * gcc.c (do_spec_1): Use xmalloc to make linker_options the first time.
8530:
8531: * expr.c (expand_expr): Make EXPAND_SUM and EXPAND_INITIALIZER
8532: imply EXPAND_CONST_ADDRESS in all cases.
8533:
8534: * c-decl.c (c_decode_option): -Wall sets warn_uninitialized.
8535: * flags.h (warn_uninitialized): Declared.
8536: * toplev.c (warn_uninitialized): No longer static.
8537:
8538: * cccp.c (main): Make no assumptions about include_defaults
8539: in calculation of max_include_len. Add fudge space if VMS.
8540:
8541: * reload.c (find_reloads_toplev): New arg IS_SET_DEST.
8542: Don't replace reg with constant in destination of a SET.
8543: (find_reloads): Pass that arg. Also don't replace here.
8544:
8545: * cplus-xref.c: Finish installing changes from Youngdale.
8546:
8547: Sat Aug 31 09:02:25 1991 Michael Tiemann (tiemann at cygint.cygnus.com)
8548:
8549: * cplus-decl2.c (finish_file): Call varasm routines to assemble ctor
8550: and dtor lists.
8551:
8552: * cplus-dbxout.c (dbxout_type_methods): Fix error in printing symbol
8553: info for classes that only define a destructor.
8554:
8555: Sat Aug 31 08:32:12 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
8556:
8557: * cse.c (cse_end_of_basic_block): Correctly handle the case of a basic
8558: block where a conditional branch out of the block becomes unconditional
8559: and a conditional branch to the end of the block becomes a noop.
8560:
8561: * combine.c (try_combine): In case where we have a PARALLEL
8562: involving a load and sign extend, use reg_overlap_mentioned_p
8563: instead of reg_mentioned_p.
8564: If we have a PARALLEL of two independent SETs, try to split them
8565: up into separate insns.
8566:
8567: * combine.c (move_deaths): Instead of placing the REG_DEAD notes
8568: on TO_INSN, add them to a list whose address is given as an
8569: operand.
8570: (distribute_notes): Allow for the case when the death of an object
8571: is between I2 and I3.
8572: Set reg_last_death to corrspond to the location of the REG_DEAD
8573: note being placed.
8574: (try_combine): Call move_deaths in new way and pass returned list
8575: to distribute_notes if it is non-empty.
8576:
8577: * local-alloc.c (requires_inout_p): Don't have cases for '[Q-U]' unless
8578: EXTRA_CONSTRAINT is defined..
8579:
8580: * local-alloc (block_alloc): Don't allocate SCRATCH on machines with
8581: SMALL_REGISTER_CLASSES defined.
8582:
8583: * regclass.c (reg_class_record): Add missing case for 'V'.
8584:
8585: Fri Aug 30 04:42:19 1991 James Van Artsdalen (james at bigtex.cactus.org)
8586:
8587: * tm-i386.h (OUTPUT_JUMP): Use cc_prev_status.
8588:
8589: Fri Aug 30 17:08:52 1991 (Eric Youngdale at [email protected])
8590:
8591: * xm-vms.h (LOCATE_START_OF_FILE_NAME): Remove.
8592: (FILE_NAME_NONDIRECTORY): Fix typo.
8593: (XREF_FILE_NAME): Use FILE_NAME_NONDIRECTORY instead of
8594: LOCATE_START_OF_FILE_NAME, and omit the leading underscore in the
8595: generated file name.
8596: (FILE_NAME_ABSOLUTE_P): Define to use hook in cplus-xref.c.
8597: (FILE_NAME_JOINER): Define to use hook in cplus-xref.c.
8598:
8599: * cplus-xref.c: Fix bug in default definition of FILE_NAME_ABSOLUTE_P.
8600: (GNU_xref_open): Fix bug - wrong argument to XREF_FILE_NAME.
8601: (FILE_NAME_JOINER): New macro.
8602: (GNU_xref_file): Use it.
8603:
8604: Fri Aug 30 17:30:15 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
8605:
8606: * cplus-xref.c: Reinstall Aug 25 changes discarded by Tiemann.
8607:
8608: * expr.c (expand_expr): New modifier option EXPAND_INITIALIZER.
8609: * varasm.c (output_constant): Use that.
8610: * jump.c (forced_labels): New var records labels not to delete.
8611: (jump_optimize): Don't delete those labels.
8612: * flow.c (find_basic_blocks): Any computed goto goes to those labels.
8613: * varasm.c (decode_addr_const): Deal with LABEL_DECL.
8614:
8615: Fri Aug 30 15:41:03 1991 Michael Meissner (meissner at osf.org)
8616:
8617: * mips.md (copyleft): Use separate copyright years.
8618: (mov*): Use nonimmediate_operand instead of general_operand.
8619:
8620: * tm-mips.h (copyleft): Use separate copyright years.
8621:
8622: * xm-mips.h (copyleft): Use separate copyright years.
8623:
8624: * xm-umips.h (copyleft): Use separate copyright years.
8625:
8626: Fri Aug 30 08:47:30 1991 Michael Tiemann (tiemann at cygint.cygnus.com)
8627:
8628: * cplus-typeck.c (build_x_*): Try first calling `build_opfncall'
8629: with FLAGS==0. If that succeeds, check protection.
8630: (build_conditional_expr): `fold' does not preserve the type of it's
8631: expressions, which is a problem for C++ when trying to keep ints and
8632: enums distinct.
8633:
8634: * cplus-decl.c (lookup_name): When there is a choice between seeing
8635: a name as a type and seeing as a decl, call `arbitrate_lookup' to
8636: make the decision.
8637: * cplus-lex.c (arbitrate_lookup): New function. Uses minute amounts
8638: of syntactic context to decide whether to see a name as a type or
8639: something else.
8640:
8641: Fri Aug 30 07:40:49 1991 Tom Wood (wood at dg-rtp.dg.com)
8642:
8643: * jump.c (delete_jump): When checking REG_DEAD notes, make sure they
8644: have a legal value.
8645:
8646: Fri Aug 30 00:57:05 1991 James Van Artsdalen (james at bigtex.cactus.org)
8647:
8648: * local-alloc.c (alloc_qty_for_scratch): Treat Q - U as reg class if
8649: EXTRA_CONSTRAINT is not defined.
8650: * regclass.c (reg_class_record): Likewise.
8651:
8652: Thu Aug 29 21:39:07 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
8653:
8654: * c-typeck.c (build_binary_op_nodefault): Fix last change.
8655:
8656: Thu Aug 29 19:11:05 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
8657:
8658: * recog.c (general_operand, const_double_operand): Similar to
8659: immediate_operand, don't accept a VOIDmode operand if the
8660: caller wants floating.
8661: * out-pyr.c (nonindexed_operand): Likewise.
8662:
8663: Thu Aug 29 09:53:27 1991 Michael Tiemann (tiemann at pogo.gnu.ai.mit.edu)
8664:
8665: * cplus-tree.h ({SET,CLEAR}_ASSOC_*): New macros needed because not
8666: all C compilers support conditional expressions as lvalues.
8667: (lang_type): Change type of MEMOIZED_TABLE_ENTRY and SEARCH_SLOT
8668: from `void *' to `char *', to make braindead compilers at less of a
8669: disadvantage.
8670:
8671: Thu Aug 29 08:07:40 1991 Tom Wood (wood at dg-rtp.dg.com)
8672:
8673: * m88k.md (define_function_unit): Update latencies.
8674:
8675: * out-m88k.c (output_function_profiler): Correct offsets for
8676: register saves.
8677: * tm-m88ksvr4.h (FUNCTION_PROFILER): Use the name _mcount and do
8678: register saves.
8679:
8680: * tm-m88k.h (ASM_DWARF_POP_SECTION): Specify "previous".
8681:
8682: Changes from Ron Guilmette:
8683: * dwarfout.c (lookup_filename): Only increment valid_ft_entries
8684: once when adding a filename to the table.
8685: (output_symbol): Do output DIEs for a global VAR_DECL definition.
8686:
8687: Thu Aug 29 06:15:32 1991 Michael Tiemann (tiemann at rtl.cygnus.com)
8688:
8689: * cplus-type2.c (build_functional_cast): If we have a valid value in
8690: `expr_as_conversion' return that before returning error_mark_node.
8691:
8692: * cplus-init.c (expand_recursive_init): Fix typo is testing
8693: TYPE_USES_VIRTUAL_BASECLASSES.
8694:
8695: Wed Aug 28 23:12:35 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
8696:
8697: * c-typeck.c (build_binary_op_nodefault): For shift and rotate ops,
8698: if traditional, use the common type of the operands.
8699:
8700: Wed Aug 28 07:31:33 1991 Tom Wood (wood at dg-rtp.dg.com)
8701:
8702: * dwarfout.c, dwarf.h, README.DWARF: Replacement files from Ron
8703: Guilmette that bring the dwarf implementation up to that defined by
8704: draft 4 of the dwarf specification (dated 7/31/91).
8705:
8706: Wed Aug 28 06:24:30 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
8707:
8708: * all *.md files except a29k.md and romp.md: Don't allow CONST_INT
8709: as operand for RTL operations that need a mode to be well-defined,
8710: e.g., SIGN_EXTEND, ZERO_EXTEND, TRUNCATE, FLOAT. Similarly, don't
8711: allow CONST_INT as first operand of a COMPARE.
8712:
8713: * machmode.h (MIN, MAX): Undefine these before our definition.
8714:
8715: Tue Aug 27 21:33:04 1991 Michael Tiemann (tiemann at pogo.gnu.ai.mit.edu)
8716:
8717: * version.c: Now 1.95.
8718:
8719: Tue Aug 27 18:05:25 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
8720:
8721: * reload1.c (possible_group_p): Use earliest class that needs a group.
8722:
8723: * gcc.c (do_spec_1): Handle %x and %X.
8724: (link_command_spec): Use %X. If given -collect, pass -c.
8725: (default_compilers c++): Use %x to pass -c to linker.
8726:
8727: * cse.c (find_comparison_code): Don't call fold_rtx,
8728: because we don't know which insn to pass for its second argument.
8729:
8730: * cse.c (fold_rtx): Don't fold what we get from lookup_as_function.
8731:
8732: Tue Aug 27 17:46:59 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
8733:
8734: * cse.c (rtx_cost): A USE is free; it is likely being used as a marker.
8735:
8736: * cse.c (cse_insn): If we decided not to make a reg-reg copy between
8737: equivalent regs into a no-op, see if there is an equivalent constant
8738: that is cheaper than the register we decided to use.
8739:
8740: * cse.c (cse_insn): Fix arg in insert_regs call when making a
8741: secondary equivalence due to a SUBREG; we are not modifying the
8742: register.
8743:
8744: * cse.c (delete_dead_from_cse): Treat a SET that copies a register
8745: to itself as if it were setting a dead register.
8746:
8747: * cse.c (find_comparison_args): Call fold_rtx on the args that we
8748: are about to return.
8749: (fold_rtx, case SUBREG): Copy code from equiv_constant that looks up
8750: a SUBREG in the hash table.
8751: If our our folded operand is equivalent to a constant, use that when
8752: seeing if we can get a part of a constant.
8753: (fold_rtx): Don't short-circuit recursive call for an operand that
8754: is a SUBREG; add comment in REG case that we are doing equiv_constant.
8755: When looking for associative operation, call fold_rtx on potential
8756: constant as well as equiv_constant.
8757: (equiv_constant): Just look up a constant quantity for a register;
8758: fold_rtx will do the SUBREG operations.
8759:
8760: * fold-const.c ({neg,mul,lshift,rshift,lrotate,rrotate}_double):
8761: No longer static.
8762: * cse.c (simplify_{unary,binary}_operation): Fold some DImode
8763: operations.
8764:
8765: * fold-const.c (fold, case EQ_EXPR, NE_EXPR, ...): Add code to handle
8766: cases where we are comparing the result of a comparison.
8767:
8768: Tue Aug 27 14:35:59 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
8769:
8770: * flow.c (mark_used_regs): Set regs_ever_live for all hard regs.
8771: Warning: this might break FUNCTION_PROLOGUE and FUNCTION_EPILOGUE
8772: in some ports. But I've checked all the installed ones.
8773: * tm-gmicro.h (FUNCTION_PROLOGUE):
8774: Clear bit for fp reg if used as such.
8775: * tm-mips.h (MUST_SAVE_REGISTER): Only frame_pointer_needed affects fp.
8776:
8777: * c-decl.c (store_parm_decls): No error if arglist contains type tag.
8778:
8779: * optabs.c (expand_fix): Really call emit_cmp_insn right.
8780:
8781: * floatlib.c: New file.
8782:
8783: * gnulib2.c (__clz_tab): Moved to _udivdi3.
8784:
8785: Tue Aug 27 06:44:12 1991 Michael Tiemann (tiemann at rtl.cygnus.com)
8786:
8787: * cplus-typeck.c (c_expand_return): Don't use the cleanup generated
8788: by `build_functional_cast'.
8789:
8790: * cplus-class.c (resolves_to_fixed_type_p): Handle WITH_CLEANUP_EXPR.
8791:
8792: Mon Aug 26 20:55:58 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
8793:
8794: * c-parse.y (yylex): Cast shorts[n] to long before shifting.
8795: * fold-const.c (decode): Likewise.
8796:
8797: * Makefile.in (INSTALL_DATA): Renamed from INSTALL_FILE.
8798:
8799: * cse.c (canon_hash): Don't crash if subexpression is 0.
8800:
8801: * cplus-lex.c (interface_strcmp): Put back variable s1.
8802:
8803: Mon Aug 26 18:14:33 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
8804:
8805: * function.c (instantiate_virtual_regs_1): Complete previous change;
8806: had omitted arg on two returns.
8807:
8808: Mon Aug 26 15:16:39 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
8809:
8810: * optabs.c (expand_float, expand_fix): Pass new arg to emit_cmp_insn.
8811:
8812: * out-m68k.c (singlemove_string): Fix last change.
8813:
8814: Mon Aug 26 11:20:51 1991 Tom Wood (wood at dg-rtp.dg.com)
8815:
8816: * m88k.md (cmpsi insn): Don't provide an insn that compares two
8817: constants.
8818:
8819: Mon Aug 26 08:34:48 1991 Michael Meissner (meissner at osf.org)
8820:
8821: * collect-osf.c (toplevel, read_file, end_file): Don't use mmap,
8822: unless all defines needed are defined.
8823: (various): If -debug turn on debugging code. Change all occurances
8824: of #ifdef DEBUG sections to if (debug).
8825: (main, add_to_list): Correctly cast xcalloc calls.
8826: (scan_prog_file): Correct xcalloc to allocate enough space
8827: (scan_prog_file): If -debug, don't dump entire symbol table, just
8828: dump the constructors and destructors.
8829:
8830: * make-decrose (CFLAGS): Use DEB_OPT for default debug and optimize
8831: options, use SHLIB for default shared library versions.
8832: (DEB_OPT): Define to be -g -O2.
8833: (SHLIB): Define to be -L${BUILD}/usr/ccs/lib, which forces static
8834: libraries with both old and new 1.39 compilers.
8835: (COFF_CFLAGS): Define to be -O2 -g0.
8836: (collect): Add LIBDEPS dependency.
8837:
8838: Mon Aug 26 07:22:21 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
8839:
8840: * machmode.h (MIN, MAX): Define here.
8841: * c-decl.c, calls.c, cplus-class.c, cplus-decl.c, cplus-tree.c:
8842: Don't define here.
8843: * expr.c, fold-const.c, function.c, integrate.c, recog.c: Likewise.
8844: * rtl.c, sdbout.c, stmt.c, stor-layout.c, varasm.c: Likewise.
8845: * c-typek.c, combine.c, cse.c, emit-rtl.c, expmed.c, final.c:
8846: Delete definitions of "min" and "max"; use MIN and MAX now defined
8847: in machmode.h.
8848: * genemit.c, regclass.c, reload.c, reload1.c: Likewise.
8849: * cccp.c (MIN, MAX): Define instead of min and max for consistency.
8850:
8851: * tm-rs6000.h (HARD_REGNO_MODE_OK): Don't put DImode in reg 31;
8852: similarly for TImode.
8853:
8854: * cse.c (cse_skip_to_next_block): Variable deleted.
8855: (cse_insn): Don't set it anymore.
8856: (cse_basic_block): Don't use cse_skip_to_next_block; instead, look
8857: for unconditional jumps explicitly; correctly handle unconditional
8858: jumps to the end of the basic block by extending the basic block in
8859: that case.
8860:
8861: * reload1.c (alter_reg): Ensure that stack slot is always the correct
8862: mode.
8863:
8864: Mon Aug 26 06:20:43 1991 Michael Tiemann (tiemann at cygint.cygnus.com)
8865:
8866: * cplus-type2.c (build_functional_cast): Treat constructor casts as
8867: having cleanups in this function.
8868: * cplus-decl.c (finish_decl): Use cleanups created by functinal
8869: casts used as initializers.
8870:
8871: * cplus-init.c (expand_member_init): Call error with
8872: IDENTIFIER_POINTER, not DECL_NAME, of NAME.
8873:
8874: * cplus-method.c (fndecl_as_string): Don't skip `in_charge'
8875: parameter twice.
8876:
8877: * cplus-init.c (build_new): Delete code which short-circuited
8878: multiple indirections in ABSDCL and made everything look like just a
8879: single level of indirection.
8880:
8881: * cplus-typeck.c (warn_for_assignment): Now takes a FUNCTION_DECL
8882: instead of an IDENTIFIER_NODE as an argument. Also, print
8883: reasonable message when ARGNUM < 0.
8884:
8885: * cplus-typeck.c (type_unknown_p): If TREE_CODE (EXP) == TREE_LIST,
8886: it's type is unknown.
8887:
8888: * cplus-typeck.c (commonparms): Don't insert default parmeter values
8889: into existing arg lists. Instead, unify them into new ones only.
8890:
8891: * cplus-typeck.c (convert_for_{initialization,assignment}): Pass
8892: FNDECL instead of function name. Use `lang_printable_name' to pass
8893: printable name to `warn_for_assignment'.
8894:
8895: * cplus-typeck.c (convert_arguments): Don't forcibly convert ptrs to
8896: other things into ptrs to functions just to satisfy the conversion
8897: of virtual functions.
8898:
8899: Sun Aug 25 22:44:57 1991 Michael Tiemann (tiemann at cygint.cygnus.com)
8900:
8901: * cplus-typeck.c (compparms): Deal with STRICT == 3.
8902: * cplus-search.c (get_first_matching_virtual): Call `compparms' with
8903: STRICT == 3.
8904:
8905: * cplus-lex.c (operator_name_string): Don't abort if we cannot find
8906: a operator name for NAME. Instead, return identifier for
8907: <invalid operator>.
8908:
8909: Sun Aug 25 15:42:59 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
8910:
8911: * cplus-xref.c (FILE_NAME_ABSOLUTE_P): New macro.
8912: (GNU_xref_file): Use it.
8913: (open_xref_file): Use new macro XREF_FILE_NAME if defined.
8914: * cplus-lex.c (FILE_NAME_NONDIRECTORY): New macro.
8915: Used frequently instead of strrchr.
8916: * xm-vms.h: Define those three macros.
8917:
8918: * optabs.c (expand_binop): Use word mode for force_reg on op1 of shift.
8919:
8920: * out-m68k.c (singlemove_string): Use moveq when appropriate.
8921:
8922: * final.c (split_double): Handle all integer constants.
8923: * out-m68k.c (output_move_double): Use split_double for all constants.
8924: * ??? Most out-*.c need changing.
8925:
8926: * c-decl.c (finish_enum): Make some local vars unsigned.
8927: * c-common.c (type_for_size):
8928: * c-convert.c (convert_to_integer):
8929: * tm-i860.h (ASM_OUTPUT_ASCII):
8930: * c-parse.y (yylex):
8931: * expr.c (get_pointer_alignment):
8932: * stor-layout.c (layout_union, layout_record):
8933: * tree.c (get_unwidened, get_narrower):
8934:
8935: * expr.c (emit_library_call): Don't declare va_list as register.
8936: * final.c (asm_fprintf): Likewise.
8937: * tree.c (build, build_nt, build_parse_node): Likewise.
8938:
8939: * expr.c (do_jump_for_compare): Don't assume the compare survives
8940: when the branch is emitted.
8941:
8942: * expr.c (convert_move): Fix typo in prev change.
8943:
8944: * emit-rtl.c (fconst2_rtx, dconst2_rtx): New vars.
8945: (init_emit_once): Initialize them.
8946:
8947: * expmed.c (extract_bit_field, store_bit_field):
8948: For multi-word field, do words from least significant first.
8949:
8950: (extract_split_bit_field): OP0 is only the first word of the
8951: source, so if this is a SUBREG, must call operand_subword on
8952: SUBREG_REG (OP0) instead of OP0.
8953:
8954: * varasm.c (output_constructor): Correctly output constants for
8955: bitfields which are greater than HOST_BITS_PER_INT. Use
8956: TREE_INT_CST_HIGH for the high bits.
8957:
8958: * Makefile.in (ENQUIRE_CFLAGS, ENQUIRE_LDFLAGS): New parameters.
8959: (enquire, enquire.o): Use them.
8960:
8961: * tm-sysv4.h: New file, cut out from tm-m88k.h.
8962: * tm-m88k.h: Include that.
8963:
8964: * vax.md (sltu, sgeu): New patterns.
8965:
8966: Sat Aug 24 11:19:43 1991 Michael Tiemann (tiemann at cygint.cygnus.com)
8967:
8968: * cplus-init.c (build_offset_ref): Pass a TYPE_DECL node, not a
8969: RECORD_TYPE node, to `build_component_type_expr'.
8970:
8971: * cplus-cvt.c (convert_to_integer): Warn about conversion from
8972: integral type to enumeral type if FLAG_INT_ENUM_EQUIVALENCE is zero.
8973: (convert_force): Set FLAG_INT_ENUM_EQUIVALENCE non-zero when calling
8974: `convert'.
8975:
8976: * cplus-typeck.c (build_x_*_op): Don't try using built-in operators
8977: if user-defined ones are not accessible.
8978:
8979: * cplus-init.c (expand_aggr_init_1): Use `expand_expr' to set the
8980: DECL_RTL of the TARGET_EXPR. This is a generalization of code that
8981: used to require that EXP be some sort of _DECL.
8982:
8983: * cplus-init.c (init_init_processing): Link global runtime functions
8984: __builtin_new and __builtin_delete to their canonical operator
8985: names (i.e., op$nw and op$dl).
8986:
8987: * cplus-lex.c (init_lex): Don't see `dynamic' as a reserved word if
8988: SOS is not defined.
8989: * cplus-decl2.c (flag_dynamic): Delete unused variable.
8990:
8991: * cplus-decl.c (define_case_label): Give error when case label cuts
8992: into a binding contour with cleanups.
8993: * stmt.c (last_cleanup_this_contour): Changed name from
8994: `this_contour_has_cleanups_p'. Now returns last cleanup, if there
8995: was one.
8996: * tree.h: Declare `last_cleanup_this_contour'.
8997:
8998: * cplus-decl.c (grokdeclarator): Don't let member functions have
8999: static linkage.
9000:
9001: * cplus-tree.c (layout_basetypes): Copy non-virtual basetypes of
9002: virtual basetypes so that search routines can find ambiguities
9003: arising in lattices where the same type appears as a non-virtual
9004: basetype of different types in the lattice.
9005: (copy_nonvirtual_children): Implement a recursive deep-copy of
9006: nonvirtual types in an inheritance lattice.
9007:
9008: * cplus-search.c (lookup_fnfields): Correctly catch case where there
9009: are multiple functions in an MI lattice.
9010: * cplus-call.c (ideal_candidate): If we find a requested function is
9011: ambiguous in an MI lattice, set CP->EVIL to 1.
9012: (build_method_call): If CP->EVIL is set on return from
9013: `ideal_candidate', return error_mark_node.
9014:
9015: * cplus-decl.c (lookup_name): Prefer finding typenames to overloaded
9016: functions where there's a collision.
9017: (pushdecl): Don't override the declaration of global functions with
9018: a TYPE_DECL that has the same name. `lookup_name' now knows how to
9019: find both.
9020: (globalize_nested_type): Changed to look in IDENTIFIER_TYPE_VALUE
9021: slot for global definitions that are not in IDENTIFIER_GLOBAL_VAL.
9022: * cplus-type2.c (build_functional_cast): Deal with more ambiguities
9023: and more cases where the syntactic form `NAME ( PARMS )' can have
9024: meaning.
9025:
9026: Sat Aug 24 01:33:00 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
9027:
9028: * expr.c (convert_move): Make integer extension general.
9029:
9030: * optabs.c (init_extends, gen_extend_insn): Finish and turn on.
9031:
9032: * reload1.c (possible_group_p): Insist on regs in needed class.
9033:
9034: * SYSCALLS.c (alloca): Declare arg as size_t.
9035:
9036: * expr.c (store_constructor): Handle union constructor.
9037:
9038: * final.c (split_double): long long CONST_DOUBLE now has VOIDmode.
9039:
9040: * optabs.c (expand_binop): Fix carry propagation bugs.
9041: Handle carry propagation for big-endian case.
9042:
9043: Fri Aug 23 21:29:46 1991 Michael Tiemann (tiemann at cygint.cygnus.com)
9044:
9045: * cplus-decl.c (finish_decl): More PIC fixes. Also, don't assign
9046: any storage for static member variables except when they are being
9047: defined.
9048:
9049: * cplus-init.c (build_virtual_init): Change interface to take
9050: MAIN_ASSOC instead of FOR_TYPE.
9051: (expand_aggr_init_1): Ditto.
9052: (expand_recursive_init_1): Ditto.
9053: (expand_aggr_vbase_init{_1}): Change interface to take an assoc
9054: instead of a type.
9055: (expand_recursive_init): Ditto.
9056:
9057: * cplus-pt.c (uses_template_parms): Handle PARM_DECL nodes.
9058:
9059: * cplus-search.c (get_base_assoc): Use ASSOC_MARKED instead of
9060: ASSOC_BASETYPE_MARKED to mark visited nodes.
9061: (lookup_field, loopup_fnfields): Use ASSOC_FIELDS_MARKED instead of
9062: ASSOC_VBASE_MARKED when searching.
9063: ({bfs_,un,bfs_un}marked2p): Deleted, unused.
9064: (dfs_{un}mark2): Deleted, unused.
9065: (dfs_unmark12): Deleted, unused.
9066: (build_vbase_vtables_init): Change interface to take MAIN_ASSOC
9067: instead of FOR_TYPE.
9068:
9069: Fri Aug 23 18:31:53 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
9070:
9071: * expr.c (do_store_flag): Give up if can't directly compare args.
9072:
9073: Fri Aug 23 18:00:58 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
9074:
9075: * function.c (instantiate_virtual_regs_1): Add new arg and now returns
9076: int instead of void.
9077: All callers changed.
9078:
9079: * expr.c (compare_constants): Deleted.
9080: (compare_from_rtx): Use simplify_relational_operation instead of
9081: compare_constants; abort is not needed since
9082: simplify_relational_operation will return 0 if given VOIDmode.
9083:
9084: * cse.c (fold_rtx): Correctly compute mode of operands being
9085: compared.
9086:
9087: Fri Aug 23 17:16:27 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
9088:
9089: * stmt.c (expand_end_case):
9090: Avoid special cases for modes when widening.
9091: Realize __builtin_classify_type reduces to int constant.
9092:
9093: * optabs.c (emit_cmp_insn): New arg, MODE. All callers changed.
9094: If both args are const_int, copy one to a reg.
9095:
9096: Fri Aug 23 15:54:21 1991 (Eric Youngdale at [email protected])
9097:
9098: * make-cc1.com: Fix bug where cplus-parse.y was always being passed
9099: through bison, whether it needed it or not.
9100:
9101: Fri Aug 23 15:20:46 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
9102:
9103: * stmt.c (expand_end_case): Remove Aug 12 change.
9104: Convert index to nominal_type for subtraction.
9105:
9106: Thu Aug 22 14:34:21 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
9107:
9108: * configure, config.gcc: Switch to all-dashes config names.
9109:
9110: * gnulib2.c [U_udivdi3, L_muldi3]: Define __clz_tab for longlong.h.
9111:
9112: Thu Aug 22 00:28:29 1991 Torbjorn Granlund (tege at zevs)
9113:
9114: * longlong.h: Rename BITS_PER_LONG to LONG_TYPE_SIZE.
9115: * longlong.h (__ibm032__): Define count_leading_zeros and umul_ppmm.
9116: * longlong.h: Define UMUL_TIME and UDIV_TIME for some CPUs.
9117: * longlong.h (__sparc__ umul_ppmm): Move two insn from end to the
9118: nops. (Saves two insn.)
9119: * longlong.h (__sparc__ umul_ppmm): Rewrite in order to avoid
9120: branch, and to permit input/output register overlap.
9121: * longlong.h (__29k__): Remove duplicated udiv_qrnnd definition.
9122: * longlong.h (__29k__ umul_ppmm): Split asm instructions into two
9123: asm statements (gives better code if either the upper or lower
9124: part of the product is unused.
9125: * longlong.h: Mention UDIV_NEEDS_NORMALIZATION in description of
9126: udiv_qrnnd.
9127: * longlong.h (IBMR2): Add udiv_qrnnd.
9128: * longlong.h (add_ssaaaa, sub_ddmmss [C default versions]): Make __x
9129: `unsigned long int'.
9130: * longlong.h: Add `int' after `unsigned' and `long' everywhere.
9131: * longlong.h: Add ARM, i860 support.
9132: * longlong.h (sparc umul_ppmm): Use __asm__, not asm.
9133: * longlong.h (IBMR2 umul_ppmm): Refer to __m0 and __m1, not to m0
9134: and m1 (overlap between output and input operands did not work).
9135: * longlong.h: Add VAX, ROMP and HP-PA support.
9136: * longlong.h: Sort the machine dependent code in alphabetical order
9137: on the CPU name.
9138: * longlong.h: Hack comments.
9139: * longlong.h: Define BITS_PER_LONG to 32 if it's not already
9140: defined.
9141: * Define __BITS4 to BITS_PER_LONG / 4.
9142: * Don't assume 32 bit word size in "count_leading_zeros" C macro.
9143: Use __BITS4 and BITS_PER_LONG instead.
9144: * longlong.h (68k): Define add_ssaaaa sub_ddmmss, and umul_ppmm
9145: even for plain mc68000.
9146: * longlong.h: Clean up comments.
9147: * longlong.h: Don't use #elif.
9148: * longlong.h: Use __asm__ instead of asm.
9149: * longlong.h (sparc udiv_qrnnd): Make it to one string over several
9150: lines.
9151: * longlong.h: Preend __ll_ to B, highpart, and lowpart.
9152: * longlong.h: Move array t in count_leading_zeros to gnulib2.c
9153: Rename the array __clz_tab.
9154: * longlong.h (umul_ppmm [C variant]): Make __ul...__vh
9155: `unsigned int', and cast the multiplications. This way
9156: compilers more easily can choose cheaper multiplication
9157: instructions.
9158:
9159: Thu Aug 22 07:36:40 1991 Tom Wood (wood at dg-rtp.dg.com)
9160:
9161: * rtl.h: Declare simplify_relational_operation.
9162:
9163: * out-m88k.c (output_file_start): Put the `gcc2_compiled.' symbol
9164: in the data section. Eliminates symbol translation problems with
9165: debuggers.
9166:
9167: Changes from Ron Guilmette:
9168: * toplev.c (compile_file): Use dwarfout_finish when done.
9169: * final.c (output_source_line): Use dwarfout_line.
9170: * dwarfout.c (dwarfout_finish): Rename from dwarfout_finalize.
9171: * tm-m88k.h (ASM_OUTPUT_DWARF_LINE, ASM_FILE_END): No need for
9172: dwarf specific actions.
9173:
9174: Thu Aug 22 05:29:57 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
9175:
9176: * combine.c (can_combine_p): Don't combine if INSN has REG_RETVAL note.
9177: (try_combine): Similarly, don't combine if I3 has REG_LIBCALL note.
9178:
9179: * flow.c (propagate_block): Don't use variable PREV in
9180: nested blocks that shadows PREV at function level.
9181: If we handle this insn normally, arrange to scan any insns that
9182: were inserted in front of it for making auto-inc addressing.
9183:
9184: * integrate.c (save_for_inline_copying): Clear CONST_DOUBLE
9185: memory chain.
9186:
9187: * toplev.c (fatal_insn_not_found): Now that it is called in final.c
9188: when an insn doesn't match constraints, write different error
9189: message in that case.
9190: * genattrtab.c (write_attr_case): Call fatal_insn_not_found instead
9191: of abort when constrain_operands fails.
9192:
9193: Thu Aug 22 05:29:09 1991 Matthew Self (mself at next.com)
9194:
9195: * rtl.c (add_dependence): Uses of RTX_UNCHANGING_P should now be
9196: SCHED_GROUP_P.
9197:
9198: Thu Aug 22 00:34:20 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
9199:
9200: * recog.c (offsettable_address_p): Always pass QImode to addressp.
9201:
9202: Wed Aug 21 09:20:09 1991 Michael Meissner (meissner at osf.org)
9203:
9204: * tm-decrose.h (LINK_SPEC): Allow -pic-none, -glue, -noshrlib
9205: switches.
9206: (LIB_SPEC): Add -L/usr/ccs/lib to get new 1.1 linker to use static
9207: libraries instead of shared libraries, since the shared library
9208: support has not yet been added.
9209:
9210: Wed Aug 21 06:18:12 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
9211:
9212: * out-rs6000.c (print_operand, case 'Y', 'Z'): Fix typo in
9213: auto-inc case.
9214: * rs6000.md (movti): Add missing %U in memory cases.
9215:
9216: * tm-rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Indexed addresses are not
9217: valid for DImode and TImode.
9218: * out-rs6000.c (indexed_mem_operand): Deleted.
9219: (print_operand, case 'X'): Don't use indexed_mem_operand; check
9220: ourselves instead.
9221: * rs6000.md (movdi, movti): Don't check for indexed memory operands.
9222:
9223: Tue Aug 20 16:02:41 1991 Tom Wood (wood at dg-rtp.dg.com)
9224:
9225: * sdbout.c (sdbout_parms): Handle parm passed in reg and living in
9226: pseudo that was optimized away.
9227:
9228: Mon Aug 19 19:10:42 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
9229:
9230: * combine.c (simplify_comparision, case NEG): Can only convert
9231: (-a) < C to a > C if C is zero.
9232:
9233: * expmed.c (store_bit_field, extract_bit_field): Use WORD_MODE for
9234: mode of BITS_PER_WORD to avoid conflict with other use of variable
9235: named MODE.
9236:
9237: * cse.c (cse_insn): Don't make a REG_EQUAL note whose contents
9238: are a REG; the REG might have been eliminated.
9239:
9240: * reload1.c (reload_as_needed): Pass any CLOBBERs made when reloading
9241: an insn to `forget_old_reloads_1'.
9242:
9243: Mon Aug 19 12:47:46 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
9244:
9245: * configure (m88k-luna): Rename alternative appropriately.
9246:
9247: * cse.c (simplify_relational_operation): Split out from ..._binary_...
9248: (fold_rtx): Use that function for relationsals.
9249: (simplify_binary_operation): Don't allow relationals.
9250: * combine.c (subst, gen_binary): Use simplify_relation_operation.
9251: * integrate.c (subst_constants): Likewise.
9252: * jump.c (jump_optimize): Likewise.
9253:
9254: * c-common.c (shorten_compare): Warn about unsigned >= 0.
9255:
9256: Sun Aug 18 17:29:16 1991 (Eric Youngdale at [email protected])
9257:
9258: * tm-vms.h (ASM_OUTPUT_EXTERNAL): Remove code to round the storage
9259: size up to a multiple of 4 bytes.
9260:
9261: Sun Aug 18 15:35:27 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
9262:
9263: * dbxout.c (dbxout_parms):
9264: Handle parm passed in reg and living in pseudo that was optimized away.
9265:
9266: * function.c (init_function_start): Give decl_printable_name both args.
9267:
9268: * expr.c (compare_from_rtx):
9269: Don't change to unsigned if too wide for host int.
9270: * cse.c (fold_rtx): Use mode_arg0 to simplify comparison ops.
9271: Update mode_arg0 when we look at value of cc0.
9272:
9273: * cse.c (cse_insn): Really don't record bitfield destinations
9274: unless source is constant which fits.
9275: But pre-truncate other constants.
9276:
9277: * config.subr: Allow $os to be empty.
9278:
9279: * function.c (lookup_static_chain): Check for 0 before inline function.
9280:
9281: * config.subr (pc532, minix): New alternatives.
9282:
9283: * configure (editing Makefile): Use cross-make.
9284: * Makefile.in (install-cross): Change dep to install-gnulib.
9285:
9286: Sat Aug 17 17:18:05 1991 Michael Tiemann (tiemann at cygint.cygnus.com)
9287:
9288: * All cplus-* files: Change the representation of the C++
9289: inheritance lattice for types. There is no longer such a thing as a
9290: classtype_variant. Instead, types all have their own lattices
9291: accessed via their CLASSTYPE_ASSOC field.
9292:
9293: * cplus-tree.h (lang_type): Delete fields OFFSET,
9294: MAIN_CLASS_VARIANT, NEXT_CLASS_VARIANT, VIA_PUB_OR_VIRT.
9295: Rename field AS_ID_LIST to ID_AS_LIST, since it's a list.
9296: (CLASSTYPE_AS_ID_LIST): Renamed to CLASSTYPE_ID_AS_LIST.
9297: Add field ASSOC_AS_LIST, which is a TREE_LIST whose TREE_VALUE is
9298: the assoc for the type.
9299: (CLASSTYPE_VIA_*, SET_CLASSTYPE_VIAS): Deleted.
9300: (CLASSTYPE_OFFSET*): Deleted.
9301: (CLASSTYPE_N_BASECLASSES): Now uses type's assoc. TYPE_BASETYPES
9302: field is unused. Next change will make TYPE_BASETYPES hold the
9303: assoc field.
9304: (CLASSTYPE_VBASE_SIZE): Use slot in TYPE_LANG_SPECIFIC instead of
9305: sneaking it into the TREE_TYPE field of the basetypes.
9306:
9307: (ASSOC_TYPE): Deleted. Now use ASSOC_VALUE everywhere.
9308: (ASSOC_{BASETYPE,BASETYPES}): New macros. Both are operations on
9309: assocs and return assocs.
9310: (CLASS_ASSOC_BASETYPE): New macro. This performs roughly the same
9311: function that CLASSTYPE_BASECLASS used to, but it retains no assoc
9312: info in the type it returns.
9313: (ASSOC_NEXT_ASSOC): New macro used for traversing assoc chains built
9314: up by search routines.
9315: (ASSOC_VIA_{PUBLIC,VIRTUAL}): New macros for accessing inheritance
9316: information. CLASSTYPE_VIA_{PUBLIC,VIRTUAL} no longer used.
9317: (ASSOC_CID): New macro.
9318:
9319: (DECL_ANON_UNION_ELEM): Deleted. Now anonymous union decls are
9320: distinguished as FIELD_DECLs with NULL DECL_NAMEs and UNION_TYPE
9321: types.
9322:
9323: (DERIVED_FROM_P): New macro. Change calls that testing inheritance
9324: relationships (get_base_type and get_base_distance) to use this macro.
9325:
9326: * cplus-type2.c (basetype_or_else): Change interface to use/return an
9327: assoc instead of a type. Change name to base_assoc_or_else.
9328:
9329: * cplus-tree.c (build_classtype_variant): Deleted.
9330: (copy_type_lang_specific): Deleted.
9331: * all cplus-* files: Everything that used to use CLASSTYPE_OFFSET on
9332: types now uses ASSOC_OFFSET on assocs.
9333:
9334: * cplus-class.c (propagate_basetype_offsets): Change interface to use
9335: assocs instead of types. Change name to propagate_assoc_offsets.
9336: * cplus-search.c (get_base_type): Ditto; name changed to
9337: get_base_assoc.
9338:
9339: * cplus-cvt.c (convert_pointer_to): Change interface to use an assoc
9340: instead of a type.
9341: (convert_pointer_to_vbase): Ditto.
9342: * cplus-call.c (build_field_call): Ditto.
9343: * cplus-class.c (get_vfield_offset): Ditto.
9344: (build_method_call): Ditto.
9345: (maybe_fixup_vptrs): Ditto.
9346: * cplus-search.c (get_first_matching_virtual): Ditto.
9347: (get_virtuals_named_this): Ditto.
9348: (tree_needs_constructor_p): Ditto.
9349: (get_virtual_destructor): Ditto.
9350: (tree_has_any_destructor_p): Ditto.
9351: (get_baselinks): Ditto.
9352: (lookup_{field,fnfields}): Ditto. Also, use ASSOC_VBASE_MARKED
9353: instead of CLASSTYPE_MARKED2 to mark virtual basetypes that have
9354: been visited.
9355: (build_vbase_vtables_init): Ditto.
9356: ({build,free}_mi_matrix): Ditto.
9357: * cplus-init.c (expand_aggr_init_1): Ditto.
9358: (expand_aggr_vbase_init_1): Ditto.
9359: (build_virtual_init): Ditto.
9360: * cplus-class.c (build_class_init_list): Rewritten to build list with
9361: assoc entries instead of types. Also, use new macro
9362: ASSOC_BASEINIT_MARKED instead of CLASSTYPE_MARKED6.
9363: (finish_base_struct): New argument ASSOCS is the list of assocs that
9364: describe the basetypes of T.
9365:
9366: * cplus-tree.c (make_lang_type): Always initialize
9367: CLASSTYPE_VBASE_SIZE to integer_zero_node. To test if a class has
9368: virtual baseclasses, test CLASSTYPE_VBASECLASSES, not
9369: CLASSTYPE_VBASE_SIZE.
9370:
9371: * cplus-class.c (finish_struct): Rewritten to use assocs instead of
9372: types where appropriate.
9373:
9374: * cplus-search.c (get_base_distance): Change interface to use assocs
9375: or types. Also, PATH_PTR argument is now an assoc chain, not a
9376: TREE_LIST. Algorithm to find leftmost path is now more efficient.
9377: (compute_visibility): Uses assoc chain instead of TREE_LIST of
9378: types.
9379: (recursive_bounded_basetype_p): New function.
9380: (dfs_walk, dfs_* functions): Change to be called with assocs instead
9381: of types.
9382: (breadth_first_search, all bfs_*): Ditto.
9383: cplus-tree.c (reverse_path): New function. Like nreverse, but works
9384: on assoc chains.
9385:
9386: * cplus-class.c (build_vtable, prepare_fresh_vtable,
9387: modify_vtable_{entries,entry},): Change interfaces to use assocs
9388: instead of types. Use macro ASSOC_VTABLE_PATH_MARKED on the assocs
9389: instead of CLASSTYPE_MARKED3. Use macro ASSOC_NEW_VTABLE_MARKED on
9390: the assocs instead of CLASSTYPE_MARKED4.
9391:
9392: * cplus-dbxout.c: Now needs to know more about assocs. When assocs
9393: are put in the TYPE_BASETYPEs field, it should not need to know
9394: about lang_type.
9395:
9396: * cplus-decl.c (xref_tag): Rewritten to build proper assoc lists. No
9397: longer builds basetype lists.
9398: (finish_function): Make `flag_no_inline' really take effect.
9399:
9400: * cplus-tree.c (make_assoc): Changed for new assoc structure. The
9401: fields in assocs are now: VALUE (pointer to TYPE that this assoc is
9402: for), OFFSET (the byte offset of this basetype in the whole object),
9403: VTABLE (the virtual function table that should be used to initialize
9404: objects controlled by this assoc), VIRTUALS (the virtual functions
9405: to use for initializing VTABLE), BASETYPES (a TREE_VEC of basetypes
9406: that this assoc has, or NULL_TREE if none), NEXT_ASSOC (a temporary
9407: slot used to point to the next assoc in an assoc chain),
9408: VIA_{PUBLIC,VIRTUAL} bits saying whether this assoc is a basetype of
9409: its parent via public or virtual inheritance.
9410:
9411: * cplus-ptree.c (print_lang_type): Modified as necessary to cope with
9412: new inheritance structure.
9413:
9414: * cplus-search.c (get_base_type_1): This function was unused and
9415: wrong. Deleted.
9416:
9417: * cplus-tree.c (layout_basetypes): Take new arg ASSOCS. Layout the
9418: basetypes my modifying the assocs, not the types.
9419: (layout_vbasetypes): Ditto.
9420:
9421: * all cplus-* files: Removed dead code, unused variables, and change
9422: asserts where appropriate.
9423:
9424: * all cplus-* files: DECL_VIRTUAL_P is no longer used as a truth test
9425: for whether or not a function is virtual. Use a test for non-NULL
9426: DECL_VINDEX instead.
9427:
9428: Sat Aug 17 15:16:40 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
9429:
9430: * function.h (inline_function_decl): Declare it.
9431: * integrate.c: Include function.h; don't declare var here.
9432:
9433: * rtl.h (regno_reg_rtx): Declare it.
9434:
9435: * stmt.c (expand_end_case):
9436: When filling labelvec from case range, avoid overflow in i.
9437:
9438: Fri Aug 16 23:06:37 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
9439:
9440: * c-typeck.c (build_binary_op_nodefault):
9441: Take out warning added by recent changes.
9442:
9443: Fri Aug 16 22:00:09 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
9444:
9445: * function.c (inline_function_decl): New var.
9446: (lookup_static_chain): Decl is local if context is function being
9447: inlined.
9448: * integrate.c: Remove partially-completed previous change.
9449: (expand_inline_function): Set inline_function_decl.
9450:
9451: Fri Aug 16 21:41:10 1991 Michael Tiemann (tiemann at pogo.gnu.ai.mit.edu)
9452:
9453: * a29k.md (insv,extv): Changed POS / SIZE to POS / 8, since high
9454: order bit of BP selects half-word position for half-word ops.
9455:
9456: Fri Aug 16 18:52:35 1991 Jim Wilson (wilson at sphagnum.cygnus.com)
9457:
9458: * combine.c (distribute_links): Only put link on new insn if the
9459: insn uses the register. If first find an insn that sets the
9460: register but does not otherwise use it, then drop the link.
9461:
9462: * combine.c (distribute_links): Strip off SUBREG, ZERO_EXTRACT,
9463: etc. from the destination of the set before passing it to
9464: reg_mentioned_p and reg_referenced_p.
9465:
9466: Sat Aug 16 17:02:53 1991 Michael Tiemann (tiemann at cygint.cygnus.com)
9467:
9468: * cplus-pt.c (uses_template_parms): Run loop over _EXPR nodes from
9469: TREE_CODE_LENGTH-1 to 0, not from TREE_CODE_LENGTH.
9470:
9471: * cplus-decl.c (grokfndecl): Change `==' to `=' in assignment to
9472: `raises'
9473: (finish_decl): If FLAG_PIC is nonzero, leave initialized data in
9474: common space.
9475:
9476: Fri Aug 16 13:13:11 1991 James Van Artsdalen (james at bigtex.cactus.org)
9477:
9478: * reg-stack.c (current_function_returns_real): New variable.
9479: (reg_to_stack): Set it.
9480: (stack_reg_life_analysis): Use it.
9481: (emit_pop_insn): Return the new insn.
9482: (convert_regs): Pop any stack regs live at the end of the last basic
9483: block.
9484:
9485: Fri Aug 16 16:16:45 1991 Michael Tiemann (tiemann at pogo.gnu.ai.mit.edu)
9486:
9487: * tm-sparc.h (SELECT_SECTION): Don't put relocatable values into
9488: text space if generating position-independent code.
9489:
9490: Fri Aug 16 16:00:30 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
9491:
9492: * protoize.c (__flsbuf): Decl deleted; no need.
9493: [ultrix]: Include string.h, not strings.h.
9494:
9495: * function.c (instantiate_virtual_regs_1): Bug adding NEW to addr of X.
9496:
9497: Fri Aug 16 08:51:25 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
9498:
9499: * expr.c (expand_expr, case ABS_EXPR, MIN_EXPR, MAX_EXPR): Don't
9500: allow TARGET to be a hard reg because evaluating the comparison
9501: might clobber it.
9502:
9503: Thu Aug 15 23:38:04 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
9504:
9505: * tm-m68k.h (PRINT_OPERAND): Use asm_fprintf to print immed prefix.
9506:
9507: Thu Aug 15 23:36:12 1991 Micheal Tiemann (tiemann at pogo.gnu.ai.mit.edu)
9508:
9509: * cplus-decl.c (finish_enum): Remove last traces of Wood's mistaken
9510: changes for tag handling in C++.
9511: * cplus-class.c (finish_struct): Ditto.
9512:
9513: Tue Aug 13 06:12:18 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
9514:
9515: * jump.c (find_cross_jump): When avoiding CALL_INSNs, don't
9516: return a CODE_LABEL as a cross-jump point; use next_real_insn instead
9517: of next_nonnote_insn.
9518:
9519: * fold-const.c (optimize_bit_field_compare, merge_component_reference):
9520: Use mode_for_size to get mode for word; don't use SImode.
9521: * tree.c (build_index_type, build_index_2_type): Don't use SImode;
9522: get mode of SIZETYPE instead.
9523:
9524: * optabs.c (emit_cmp_insn): Use type of int instead of SImode for
9525: return from memcmp and bcmp.
9526:
9527: Mon Aug 12 17:54:55 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
9528:
9529: * stmt.c: Include recog.h.
9530: * stmt.c (expand_end_bindings): Expect abort to return void.
9531: (expand_end_case): Give tablejump whatever mode it wants.
9532:
9533: * integrate.c (integrate_type): New function.
9534: * c-typeck.c (build_binary_op_nodefault): Rewrite last change.
9535:
9536: * Makefile.in (install): Indirect through INSTALL_TARGET.
9537: (install-native): New name for old install target.
9538: (INSTALL_TARGET): New variable.
9539: * cross-make (INSTALL_TARGET): Override it.
9540:
9541: Mon Aug 12 17:25:48 1991 Michael Meissner (meissner at osf.org)
9542:
9543: * out-mips.c (toplevel, override_options, siginfo): If the OSF/1
9544: SIGINFO signal is provided, invoke siginfo handler, which prints
9545: which file is being compiled, and runs ps on the compiler and it's
9546: parent.
9547:
9548: * make-decrose (CC, OLDCC): Define CC and OLDCC to be the same, so
9549: that tests within Makefile.in work as expected.
9550: (LIB2FUNCS_EXTRA): Put osf-main in the gnulib2 portion of the
9551: library, instead of the gnulib1 portion.
9552:
9553: Mon Aug 12 16:31:47 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
9554:
9555: * explow.c (expr_size): Fix typo.
9556:
9557: Mon Aug 12 14:27:31 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu)
9558:
9559: * expr.c (expand_expr, case COND_EXPR): Fix typo in comment.
9560: In the singleton code, don't accept a hard register as a target if
9561: we are going to store into it before testing the condition because
9562: that evaluation may involve a subroutine call which might clobber it.
9563:
9564: * rtl.h (SCHED_GROUP_P): Fix typo in definition.
9565:
9566: Mon Aug 12 08:01:01 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
9567:
9568: * jump.c (find_cross_jump): Look at REG_EQUIV notes in addition to
9569: REG_EQUAL notes.
9570: (do_cross_jump): Remove REG_EQUAL or REG_EQUIV notes present on only
9571: one branch of the cross-jump so we don't get confused by them if we
9572: cross-jump again.
9573:
9574: Mon Aug 12 01:44:26 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu)
9575:
9576: * unroll.c (unroll_loop): When naively unrolling loops, if the last
9577: jump insn is an unconditional jump, and it does not jump to the loop
9578: top, then it must be copied with the rest of the loop body.
9579:
9580: * rtl.h: Clean up documentation for uses of volatil and in_struct
9581: fields of an rtx.
9582: * gcc.texinfo: Document macros CONST_CALL_P, LABEL_PRESERVE_P, and
9583: SCHED_GROUP_P. Clean up documentation for uses of used, in_struct,
9584: and unchanging fields of an rtx.
9585:
9586: * final.c (final_scan_insn): In the ASM_OUTPUT_LOOP_ALIGN code,
9587: must verify that next exists before checking whether it is a label.
9588:
9589: Sun Aug 11 16:46:17 1991 James Van Artsdalen (james at bigtex.cactus.org)
9590:
9591: * i386.md (cmpstrsi): Enable it. Now uses REG as output, not cc0.
9592: Old cc0-output pattern remains for combining cmpstrsi & test pairs.
9593:
9594: Sun Aug 11 15:52:33 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
9595:
9596: * dbxout.c (dbxout_symbol): Handle var-length array with reference.
9597:
9598: * c-decl.c (xref_tag): Copy default mode from unsigned_type_node.
9599: * explow.c (expr_size): Get it from size_type.
9600: * reload1.c (allocate_reload_reg): No need to validate mode of
9601: reload_in if that value is a const_int.
9602:
9603: * expr.c (expand_builtin): Get value mode properly, for memcmp.
9604:
9605: Sun Aug 11 15:52:33 1991 Jim Wilson (wilson at cygint.cygnus.com)
9606:
9607: * dbxout.c (dbxout_symbol): DECL_ASSEMBLER_NAME is a tree, not a
9608: character string, so call IDENTIFIER_POINTER before printing it.
9609:
9610: * fold-const.c (fold): When converting foo++ == CONST to ++foo ==
9611: CONST + INCR, the plus must have the same TREE_TYPE as the
9612: postincrement, not the comparison.
9613:
9614: Sat Aug 10 22:58:01 1991 Michael Meissner (meissner at osf.org)
9615:
9616: * mips.md (extendqihi2 define_split): Use SImode on shifts rather
9617: than HImode, and turn result register into SImode as well.
9618:
9619: Sat Aug 10 21:00:59 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu)
9620:
9621: * calls.c (emit_call_1): New argument is_const. Set CONST_CALL_P
9622: true for the call_insn if is_const is true.
9623: (expand_call): Pass is_const to emit_call_1.
9624: * expr.c (emit_library_call): Pass no_queue to emit_call_1.
9625: Document that no_queue means that the function call is const.
9626: * local-alloc.c (validate_equiv_mem): Don't invalidate memory for
9627: const calls.
9628: * rtl.h: Update comments describing uses of rtl unchanging and
9629: in_struct bits.
9630: (CONST_CALL_P): New macro. True for a call_insn if it is calling
9631: a const function. Uses the unchanging bit.
9632: (SCHED_GROUP_P): New macro. True for an insn if it must be
9633: scheduled together with the previous insn. Uses the in_struct bit.
9634: * sched.c: Rewrite to use new SCHED_GROUP_P macro insead of
9635: RTX_UNCHANGING_P.
9636: (sched_analyze): Rewrite to use new CONST_CALL_P macro.
9637:
9638: * sched.c (schedule_block): Don't schedule a block with a volatile
9639: or traditional asm insn. There is currently no code to correctly
9640: handle dependencies for them.
9641:
9642: * combine.c (distribute_links): Fix typo in comment.
9643:
9644: Sat Aug 10 18:42:22 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
9645:
9646: * emit-rtl.c (operand_subword): Replace explicit SImode references
9647: with mode for BITS_PER_WORD bits.
9648:
9649: Sat Aug 10 14:17:08 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
9650:
9651: * calls.c (expand_call): Handle ARGS_GROW_DOWNWARD.
9652:
9653: * ns32k.md (call_value): Consistently realize function is operand 1.
9654:
9655: * cccp.c (do_include): Get current dir from nominal_fname.
9656:
9657: * expr.c (expand_builtin): Give cmpstr* a target in the mode it wants.
9658: * optabs.c (expand_cmp_insn): Likewise.
9659:
9660: Fri Aug 9 09:59:27 1991 Tom Wood (wood at dg-rtp.dg.com)
9661:
9662: * dwarfout.c (output_symbols_for_block): Fix typo in iterating over
9663: subblocks.
9664:
9665: * make-m88k{,dgux,luna}: Eliminate m88k-trace.asm.
9666: * tm-m88k.h, out-m88k.c: Make -mbig-pic a synonym for -fPIC.
9667: Delete -mtrace-function.
9668:
9669: * Makefile.in (CROSS_TOOLS): New variable.
9670: (gnulib1.null, gnulib2.ready): Depend on CROSS_TOOLS.
9671: (gnulib1.null): Use $(AR) $(AR_FLAGS).
9672: * cross-make (CROSS_TOOLS): Define as install-cross-tools.
9673:
9674: Fri Aug 9 15:21:16 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
9675:
9676: * optabs.c (emit_cmp_insn): Expect cmpstr* to have result operand.
9677: Test the sign of the result we get.
9678: i386.md needs to be changed.
9679:
9680: Fri Aug 9 11:09:22 1991 (Eric Youngdale at [email protected])
9681:
9682: * make-cc1.com: Fix bug where the wrong program was being run to
9683: generate insn-attrtab.c, and, add DEBUG option, so that images can be
9684: linked to run under the debugger.
9685:
9686: Fri Aug 9 06:42:15 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
9687:
9688: * genemit.c (gen_split): Add "_fail:" label here too.
9689:
9690: * tree.h (STRIP_NOPS): Define macro here; add CONVERT_EXPR to list
9691: of operations to possibly ignore.
9692: * fold-const.c (STRIP_NOPS): Not here.
9693: * expr.c (strip_nops): Delete function.
9694: (string_constant): Use STRIP_NOPS macro instead of strip_nops function.
9695:
9696: * global-alloc.c (expand_preferences): New function.
9697: (global_alloc): Call it.
9698:
9699: Fri Aug 9 01:19:26 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu)
9700:
9701: * optabs.c (emit_cmp_insn): Correct typo in spacing.
9702:
9703: * unroll.c: Correct typo in comment. Document that unrolling a
9704: loop by a multiple of the number of memory accesses is a win.
9705: (unroll_loop): New variable last_loop_insn, points to the last
9706: real insn in the loop, which will either be a jump or a barrier.
9707: Use last_loop_insn instead of assuming that PREV_INSN (loop_end)
9708: is that last real insn in the loop.
9709: Standardize comments printed to loop dump file when we can't
9710: unroll a loop, so that they all start with "Unrolling failure".
9711: No longer assumes that the insn before the backward jump is a
9712: compare unless HAVE_cc0. If not HAVE_cc0, then must copy this
9713: insn, and for loop_iterations == 1 case, can not delete this insn.
9714: If last_loop_insn is not a JUMP_INSN or BARRIER, then do not
9715: unroll the loop.
9716: (precondition_loop_p): Fail if loop_iteration_var is not live
9717: before loop_start.
9718: (copy_loop_body): Rewrite obsolete and misleading comment
9719: concerning the splitting of address givs.
9720: (back_branch_in_range_p): Correct typo in comment. No longer
9721: assumes that PREV_INSN (loop_end) is the backward branch at the
9722: end of the loop.
9723: (fold_rtx_mult_add): Rewrite to use simplify_binary_operation.
9724: (iteration_info): Fail if iteration variable is larger than
9725: HOST_BITS_PER_LONG, or if it does not have an integer mode.
9726: (find_splittable_givs): If an address giv was combined with
9727: another address giv, then we can only split the first giv if the
9728: second was actually reduced.
9729: (loop_iterations): New variable last_loop_insn, use instead of
9730: assuming that the last jump insn if PREV_INSN (loop_end).
9731: Correct typo in comment.
9732:
9733: Thu Aug 8 17:57:41 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
9734:
9735: * Makefile.in (gnulib1.null): Use *_FOR_TARGET variables.
9736: (TARGET_TOOLPREFIX): New variable.
9737: (AR_FOR_TARGET, AR_FOR_TARGET_FLAGS): New variables.
9738: (RANLIB_FOR_TARGET, RANLIB_TEST_FOR_TARGET): New variables.
9739: * cross-make: New file.
9740: * configure: Insert cross-make into Makefile.
9741:
9742: * tm-m68k.h (LEGITIMIZE_ADDRESS): Copy address before changing it.
9743: (COPY_ONCE): New macro, subroutine for LEGITIMIZE_ADDRESS.
9744:
9745: * toplev.c (main): Accept -g with warning if not supported.
9746:
9747: * Makefile.in (install-cross-tools): Do nothing unless have gcc-cross.
9748: (gnulib2.ready): Depend on install-cross-tools.
9749:
9750: Thu Aug 8 14:34:53 1991 Ken Raeburn (raeburn at watch.com)
9751:
9752: * expr.c (c_strlen): New function; determines strlen of string const.
9753: (expand_builtin, cases BUILT_IN_STRCMP, BUILT_IN_STRCPY): Call it
9754: instead of relying on TREE_STRING_LENGTH. For strcmp, optimize
9755: cases where two lengths are available, if at least one of them is
9756: constant.
9757: (expand_builtin, case BUILT_IN_MEMCMP): If alignment test fails, and
9758: function was really BUILT_IN_STRCMP, delete length parameter before
9759: expanding call.
9760:
9761: * tree.h (enum built_in_function): Added BUILT_IN_STRLEN.
9762: * c-decl.c (sizet_ftype_string): New variable, for strlen prototype.
9763: (init_decl_processing): Set it, and declare strlen and
9764: __builtin_strlen as built-in functions. Deleted variable `decl'
9765: since it was only assigned to, never read.
9766: * expr.c (expand_builtin, case BUILT_IN_STRLEN): Implement it.
9767:
9768: * cplus-decl.c (sizet_ftype_string, init_decl_processing): Copy
9769: changes from c-decl.c. Also initialize const_string_type_node.
9770:
9771: Thu Aug 8 14:34:53 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
9772:
9773: * c-decl.c (pushdecl): Just warn if trad. extern type is temporary.
9774:
9775: Wed Aug 7 15:16:55 1991 Jim Wilson (wilson at sphagnum.cygnus.com)
9776:
9777: * local-alloc.c (block_alloc): When converting a SCRATCH rtx to a
9778: REG rtx, must clear the `used' bit.
9779:
9780: Tue Aug 6 14:17:09 1991 Jim Wilson (wilson at wombat.gnu.ai.mit.edu)
9781:
9782: * stmt.c (expand_start_bindings): Fix typo in comment or spacing.
9783: * rtlanal.c (reg_referenced_between_p): Likewise.
9784: (reg_set_last): Likewise.
9785: * loop.c (make_loop_jump): Likewise.
9786: * longlong.h (UDIV_NEEDS_NORMALIZATION): Likewise.
9787: * local-alloc.c (update_equiv_regs): Likewise.
9788: * global-alloc.c (hard_reg_copy_preferences): Likewise.
9789: * fixcpp: Likewise.
9790: * tm-m68k.h (CONDITIONAL_REGISTER_USAGE): Likewise.
9791: * combine.c (reg_significant): Likewise.
9792: * calls.c (expand_call): Likewise.
9793: * cplus-tree.c (build_cplus_new): Likewise.
9794:
9795: * function.c (fixup_var_refs_insns): When emitting a move insn,
9796: don't put it between a CALL_INSN and its USE insns as this will
9797: break sched and reorg. Instead, put it before the USE insns.
9798:
9799: * combine.c (subst): Convert (ior (ashift A CX) (lshift A CY)) where
9800: CX+CY equals the mode size to (rotate A CX).
9801:
9802: * out-sparc.c (emit_move_sequence): For DImode constants, can not
9803: create a temporary register to hold the high part.
9804: (output_scc_insn): When in a delay slot, verify that NEXT_INSN (insn)
9805: really is the next insn.
9806:
9807: * sparc.md: Fix support for DImode constants. Two new patterns
9808: added, one for high:DI operators and one for lo_sum:DI operators.
9809: (*extend*): Rework these patterns. Don't accept memory input
9810: operands in the define_expands, as this gives better code.
9811: Delete patterns for combining two loads into a load and move;
9812: these are obsoleted by combiner improvements.
9813: Delete define_splits for splitting these obsolete patterns.
9814: (one_cmplsi2): Can not accept general_operand destinations, only
9815: register destinations.
9816:
9817: * tm-sparc.h (STACK_POINTER_OFFSET): Explain how value is derived,
9818: and compute in terms of another macro.
9819: (STRUCT_VALUE_OFFSET): Explain how value is derived.
9820: (FIRST_PARM_OFFSET): Fix typo in comment.
9821:
9822: * expr.c (MOVE_RATIO): Check for HAVE_movstrdi.
9823: (emit_block_move): Add code to use HAVE_movstrdi if present.
9824: (emit_push_insn): Likewise.
9825:
9826: * final.c (final_scan_insn): When insn fails constraint check,
9827: call fatal_insn_not_found instead of just aborting to make
9828: debugging easier.
9829:
9830: * tree.c (integer_all_onesp): Rewrite code to avoid shift by
9831: HOST_BITS_PER_INT which is undefined according to ANSI. Also,
9832: abort for precision values not handled, i.e. those greater than
9833: twice times HOST_BITS_PER_INT.
9834:
9835: Tue Aug 6 14:05:42 1991 James Van Artsdalen (james at bigtex.cactus.org)
9836:
9837: * i386.md (seq,sne): Use setb/setnb mnemonics instead of setc/setnc:
9838: GAS doesn't understand the latter yet.
9839:
9840: Tue Aug 6 13:01:53 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
9841:
9842: * Makefile.in (install-common): Use -d, not -f, for tooldir/bin.
9843:
9844: Tue Aug 6 10:37:02 1991 (Eric Youngdale at [email protected])
9845:
9846: * make-cc1.com: Replacement file. This new version can build cc1plus
9847: and cc1obj in addition to cc1 (known on VMS systems as gcc-cc1plus.exe,
9848: gcc-cc1obj.exe and gcc-cc1.exe respectively).
9849:
9850: Tue Aug 6 06:30:09 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
9851:
9852: * cse.c (canon_hash): If a REG in an operand is equivalent to a
9853: constant, hash as if we had the constant.
9854: (exp_equiv_p): See if a REG and constant are equivalent.
9855:
9856: Tue Aug 6 03:59:16 1991 Ken Raeburn (raeburn at watch.com)
9857:
9858: * cplus-tree.c (make_deep_copy): Handle PARM_DECLs.
9859:
9860: * cplus-init.c (build_offset_ref): Use DECL_CHAIN, not TREE_CHAIN
9861: when trying to determine if a function is unique.
9862:
9863: * cplus-decl.c (start_decl): When constructing a decl tree for a
9864: function template, copy last_function_parms to permanent storage,
9865: and save it as the function argument list. Call build_lang_decl
9866: instead of build_decl, instead of duplicating the extra work it does.
9867: Set `overloaded' flag to 1. Call dont_forget_overload, so the
9868: template decl won't get discarded.
9869: Also deleted some commented-out code.
9870:
9871: * cplus-pt.c (uses_template_parms, cases VAR_DECL, FUNCTION_DECL):
9872: Give a warning if template parms are only used in places where they
9873: can't be resolved (e.g., return types or global or fixed-class
9874: variable types).
9875: (tsubst): Preserve storage qualifiers on type field, and pass it to
9876: layout_type if it has changed.
9877: (tsubst, case TEMPLATE_TYPE_PARM): Preserve storage qualifiers.
9878: (tsubst, case INTEGER_TYPE): Process min and max fields, if needed.
9879: (tsubst, case FUNCTION_DECL): Process arguments and result fields.
9880: (tsubst, case PARM_DECL): New branch. Handle parm list for
9881: FUNCTION_DECL nodes.
9882: (tsubst, case TREE_LIST): Copy TREE_PARMLIST flag from source.
9883: Don't bother processing TREE_CHAIN field if it is void_type_node.
9884: (tsubst, cases POINTER_TYPE, REFERENCE_TYPE): Preserve storage
9885: qualifiers.
9886: (tsubst, case FUNCTION_TYPE): Eliminate recursion for simple common
9887: cases for values and context fields. Preserve storage qualifiers.
9888: (tsubst, default case): Print node type of correct variable in error
9889: message.
9890: (instantiate_template): Set function_maybepermanent_obstack to
9891: permanent, along with the others, and restore old value after tsubst
9892: call. This permits the PARM_DECL case to work.
9893:
9894: Mon Aug 5 22:44:51 1991 Michael Tiemann (tiemann at cygint.cygnus.com)
9895:
9896: * cplus-tree.h (struct pending_inline): Add new field `deja_vu' to
9897: mark if this pending_inline has already been seen.
9898: * cplus-lex.c (do_pending_inlines): Set DEJA_VU when seen.
9899: * cplus-lex.c (reinit_parse_for_method, cons_up_default_function):
9900: Initialize DEJA_VU to 0.
9901: * cplus-decl2.c (mark_inline_for_output): Don't add DECL to
9902: PENDING_INLINES if it's already been seen.
9903: * cplus-pt.c (instantiate_template): Initialize DEJA_VU to 0.
9904:
9905: * cplus-method.c (do_inline_function_hair): Change some assignments
9906: to asserts, since they seem to be copying values that are already
9907: there.
9908:
9909: Mon Aug 5 22:23:34 1991 Michael Meissner (meissner at osf.org)
9910:
9911: * genemit.c (gen_expand, main): Change FAIL macro to be a simple
9912: goto _fail, and initialize the return value to 0 in the prologue.
9913: This avoids a useless warning message that the MIPS C compiler
9914: gives if a return is encountered inside of a do { ... } while (0).
9915:
9916: Mon Aug 5 21:28:06 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
9917:
9918: * cplus-xref.c (GNU_xref_file): Treat VMS like USG.
9919:
9920: * optabs.c (expand_binop): In libcall, use actual mode of op1.
9921:
9922: * c-typeck.c (build_binary_op_nodefault):
9923: In signed versus unsigned compare warning, note promotions of unsigned.
9924:
9925: * c-parse.y (simple_if): Allow error instead of lineno_labeled_stmt.
9926: (if_prefix): New subroutine of simple_if.
9927:
9928: * gnulib2.c (__ashldi3, __ashrdi3, __lshldi3, __lshrdi3):
9929: Accept second arg as int, not long long.
9930:
9931: Sun Aug 4 22:31:53 1991 Michael Tiemann (tiemann at cygint.cygnus.com)
9932:
9933: * cplus-except.c (cplus_expand_start_except): Set up variables
9934: `current_exception_name_as_rtx' and `current_exception_parms_as_rtx'.
9935: These variables are used to factor out calls to `expand_assignment'
9936: and allow instead calls to `emit_move_insn', which takes about 1/2x
9937: the compilation time when called directly.
9938: (various places): Use `store_expr' instead of `expand_assignment'
9939: when reasonable.
9940: (cplus_expand_reraise): Take advantage of above changes.
9941: (setup_exception_throw_decl): This is where *_as_rtx variables are
9942: initialized.
9943:
9944: * cplus-input.c (getch): Rewritten slightly to help GNU C optimizer.
9945: * cplus-lex.c (yylex): In IDENTIFIER case, pre-test condition that
9946: `getch' tests, and call `getc' directly when possible. This cuts
9947: calls to `getch' by a factor of 4 for typical C++.
9948:
9949: * cplus-class.c (add_virtual_function): Memoize the first 256
9950: virtual function table index nodes (0x80000001, 0x80000002, etc.).
9951: (finish_struct): Use `size_int' instead of `build_int_2' when we
9952: know the int will not be changed in place (such as the size value of
9953: virtual function tables).
9954: * cplus-decl2.c (finish_table): Same change as for `finish_struct'.
9955: * cplus-tree.c (layout_basetypes): Same change.
9956: * cplus-decl.c (init_decl_processing): Use `size_int' to initialize
9957: `size_zero_node' and `size_one_node'.
9958:
9959: * cplus-tree.h (TREE_OVERLOADS_ARROW): Define this.
9960: * cplus-parse.y (operator_name): Set TREE_OVERLOADS_ARROW where
9961: appropriate.
9962: * cplus-type2.c (build_x_arrow): Use TREE_OVERLOADS_ARROW and
9963: reorganize the logic for better speed.
9964: * cplus-ptree.c (print_lang_type): Print when TREE_OVERLOADS_ARROW.
9965:
9966: Sun Aug 4 16:44:54 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
9967:
9968: * rtlanal.c (reg_referenced_p): Properly handle ASM_OPERANDS.
9969:
9970: * cse.c (cse_insn): When recording this_insn_cc0, build a COMPARE
9971: rtl if SRC is a floating-point value.
9972:
9973: Sun Aug 4 16:16:11 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
9974:
9975: * fold-const.c (fold): Don't compute shift with negative count.
9976: * cse.c (simplify_binary_operation): Likewise.
9977:
9978: Sat Aug 3 15:57:55 1991 (Eric Youngdale at [email protected])
9979:
9980: * tm-vms.h (ASM_OUTPUT_EXTERNAL): Modify to always write the
9981: correct size of the data object, if it is known.
9982: (ASM_OUTPUT_COMMON): Modify to select the const or the data section
9983: as appropriate. This definition shadows a definition in tm-vax.h
9984: (const_section): Change data type to void.
9985:
9986: Sat Aug 3 15:02:40 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
9987:
9988: * integrate.c (save_for_inline_copying): Clear constant pool after
9989: saving constants into the insns.
9990:
9991: * expr.c (expand_builtin, case BUILT_IN_MEMCPY): Ensure items
9992: passed to emit_block_move are valid MEMs.
9993:
9994: * recog.c (offsettable_address_p): Don't change INTVAL of a CONST_INT
9995: within an address; that CONST_INT is likely shared and may be used
9996: elsewhere in the address.
9997:
9998: * stmt.c (expand_end_stmt_expr): Don't try to copy result to
9999: REG; it might be BLKmode.
10000:
10001: * reload.c (MATCHES): Don't consider two things equal if they have
10002: side effects.
10003:
10004: * combine.c (try_combine): When replacing SET_DEST inside a PARALLEL,
10005: don't replace it with something that has a side effect.
10006:
10007: Sat Aug 3 13:17:53 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
10008:
10009: * c-decl.c (init_decl_processing):
10010: If traditional, omit builtins with names that don't start with _.
10011: Also omit if not optimizing.
10012:
10013: * Makefile.in (combine.o, emit-rtl.o, expr.o, final.o, tree.o):
10014: Depend on gvarargs.h.
10015:
10016: Fri Aug 2 11:00:10 1991 (Eric Youngdale at [email protected])
10017:
10018: Merge some VMS changes from 1.39 that did not make it to 2.0.
10019: These changes will prohibit GCC from addressing external symbols with
10020: indirect addressing modes, to be compatible with sharable
10021: image libraries under VMS.
10022:
10023: * tm-vms.h: Define NO_EXTERNAL_INDIRECT_ADDRESS, define
10024: ENCODE_SEGMENT_INFO to make use of hook in varasm.c
10025:
10026: * tm-vax.h: Provide alternative definitions of INDIRECTABLE_CONSTANT_P,
10027: INDIRECTABLE_CONSTANT_ADDRESS_P, and INDIRECTABLE_ADDRESS_P, which
10028: are used when NO_EXTERNAL_INDIRECT_ADDRESS is defined. Also, define
10029: INDIRECTABLE_CONSTANT_ADDRESS_P. Modify definitions of
10030: GO_IF_NONINDEXED_ADDRESS, and GO_IF_LEGITIMATE_ADDRESS to work with
10031: either alternative.
10032:
10033: Fri Aug 2 21:54:55 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
10034:
10035: * loop.c (check_dbra_loop): Fix typo in arg to single_set.
10036:
10037: * reload1.c (choose_reload_regs): Verify that all registers in a
10038: group still contain the desired value.
10039: (emit_reload_insns): Set reg_reloaded_contents and reg_reloaded_insn
10040: for all registers in a group.
10041:
10042: * combine.c (set_significant): Handle a complex SET_DEST correctly.
10043:
10044: Fri Aug 2 17:12:24 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
10045:
10046: * tree.c (build_array_type): Make pointer type before array type.
10047:
10048: * Makefile.in (install-common): Never install gcc if gcc-cross exists.
10049:
10050: Fri Aug 2 14:58:42 1991 Michael Meissner (meissner at osf.org)
10051:
10052: * make-mips (CC, OLDCC): Comment why we need to define CC and OLDCC
10053: to get around fixed size table complaints in the MIPS compiler.
10054:
10055: Fri Aug 2 14:08:01 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
10056:
10057: * configure (writing VPATH definition): Avoid temp file.
10058:
10059: * tm-i860.h (MAX_PARM_BOUNDARY): Defined.
10060: (GO_IF_LEGITIMATE_ADDRESS): Add parens around & operator.
10061: (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Use sp, not r3 (that's fp).
10062: * i860.md (movsf): Don't reload high address part if already loaded.
10063: (cmplesf, cmpledf, cmpgesf, cmpgedf): Set CC_NEGATED; swap operands.
10064: * out-i860.c (strict_single_insn_op_p):
10065: Fix criterion for loading high half.
10066: (output_load_address): #if 0 since not used.
10067:
10068: Fri Aug 2 01:46:39 1991 James Van Artsdalen (james at bigtex.cactus.org)
10069:
10070: * i386.md (swapdf): Don't condition on TARGET_387.
10071: (bit set/complement/clear insns): Don't use if -m486.
10072: (bit test insns): Don't allow a MEM operand.
10073:
10074: Thu Aug 1 19:05:31 1991 Matthew Self (mself at next.com)
10075:
10076: * local-alloc.c (block_alloc): Record regs_live_at for last insn
10077: in basic block too. Otherwise REG_UNUSED regs may overlap hard
10078: regs set in the last insn of the basic block.
10079:
10080: Thu Aug 1 19:02:57 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
10081:
10082: * emit-rtl.c (gen_rtx): Don't return frame_pointer_rtx (e.g.) if
10083: mode is not Pmode.
10084:
10085: * emit-rtl.c (operand_subword): Don't write explicit divide by 0;
10086: some (broken) compilers give errors for it.
10087:
10088: * m68k.md (udivhi3): One pattern had constraint of "d" with
10089: const_int_operand.
10090: (FPA insns): Operand 1's constraints allow memory and constants, but
10091: the predicate is register_operand; change to general_operand.
10092:
10093: Thu Aug 1 13:41:47 1991 Michael Tiemann (tiemann at cygint.cygnus.com)
10094:
10095: * cplus-lex.c (do_pending_inlines, process_next_inline): Zero out
10096: the DECL_PENDING_INLINE_INFO field after processing it.
10097: (store_pending_inline): Don't delay processing a virtual function,
10098: since it needs to be processed in case the virtual function table is
10099: needed.
10100:
10101: * cplus-decl2.c (mark_inline_for_output): If DECL has pending inline
10102: info, cause it to be processed.
10103:
10104: * cplus-pt.c: Removed extraneous declaration of `permanent_obstack'.
10105: Also, added comment for `reinit_parse_for_template'.
10106:
10107: * cplus-typeck.c (mark_addressable): For FUNCTION_DECL case, also
10108: test DECL_PENDING_INLINE_INFO.
10109:
10110: Thu Aug 1 13:26:12 1991 Michael Meissner (meissner at osf.org)
10111:
10112: * mips-tfile.c (main): If input file is not specified, use the same
10113: file for both input and output. If renaming output file and rename
10114: fails, copy the file.
10115: (free_multiple_pages): New function.
10116:
10117: * tm-decrose.h (ASM_FINAL_SPEC): Add this to call mips-tfile if
10118: using the MIPS assembler.
10119:
10120: * tm-mips.h (ASM_FINAL_SPEC): Add this to call mips-tfile unless
10121: using gas.
10122: (TARGET_VERSION): Do not put __DATE__ in the output.
10123:
10124: * make-mips (BISONFLAGS): Add -l to bison flags because the MIPS
10125: based compilers have problems with #line.
10126: (CC): Define in terms of $(OLDCC) so the USE_HOST macros work.
10127: (EXTRA_PASSES): Build mips-tfile and mips-tdump.
10128: (Makefile): Explicitly use sh to invoke configure.
10129:
10130: * make-decrose (EXTRA_PASSES): Build collect.
10131: (Makefile): Explicitly use sh to invoke configure.
10132:
10133: Thu Aug 1 12:22:17 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
10134:
10135: * cccp.c (directive_table, node_type): Add #include_next.
10136: (do_include): Support #include_next.
10137: (finclude): New arg DIRPTR. All callers changed.
10138:
10139: * reload1.c (reload_as_needed): Check live_known before accessing
10140: basic_block_head.
10141:
10142: Thu Aug 1 11:47:37 1991 Michael Meissner (meissner at osf.org)
10143:
10144: * gcc.c (compilers): Add new spec %A, which expands ASM_FINAL_SPEC.
10145: This option is added after all other arguments to the assembler. It
10146: is for the MIPS port to run a cleanup program after the assembler
10147: finishes, by having ASM_FINAL_SPEC be "\n mips-tfile args..."
10148: (set_spec): If name is 'asm_final', set the asm_final_spec.
10149: (process_command): print out asm_final_spec for -dumpspecs.
10150: (do_spec_1): Expand %A to be ASM_FINAL_SPEC.
10151: (validate_all_switches): look at any switches handled in
10152: ASM_FINAL_SPEC.
10153:
10154: Thu Aug 1 07:42:37 1991 Tom Wood (wood at dg-rtp.dg.com)
10155:
10156: * dwarfout.c (element_list_attribute): AT_element_list is a BLOCK4.
10157:
10158: Wed Jul 31 17:42:40 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
10159:
10160: * jump.c (jump_optimize): In "if (...) x = 1; else {...} if (x) ...":
10161: Don't assume that SYMBOL_REFs are always non-zero.
10162: Handle operations other than EQ and NE.
10163: Handle conditional RETURN properly.
10164:
10165: * out-a29k.c (print_operand, case 'e'): When writing LXn, use number
10166: of last label in function.
10167: (output_prolog): Fix missing arg in ADD in a29k_first_epilogue_insn.
10168:
10169: Wed Jul 31 13:41:37 1991 Tom Wood (wood at dg-rtp.dg.com)
10170:
10171: * sdbout.c (sdbout_parms): Don't crash if MEM address is a MEM.
10172:
10173: Wed Jul 31 12:36:37 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
10174:
10175: * fixincludes: New variable INCLUDES specifies input dir.
10176:
10177: * Makefile.in (install-common): Add dummy elt to EXTRA_PASSES.
10178: Fix typo in test.
10179:
10180: * Makefile.in (install-cross-tools): Use /. in args to test -d.
10181: (cccp.o, dbxout.o, c-plus-*): Added missing dependencies.
10182:
10183: * c-common.c: Don't include rtl.h--that was unmodular.
10184:
10185: * make-i386v (INSTALL): Define this.
10186:
10187: Wed Jul 31 07:38:12 1991 Tom Wood (wood at dg-rtp.dg.com)
10188:
10189: * Makefile.in (LIB2FUNCS_EXTRA): Extra C and assembler files for
10190: gnulib2.
10191: * make-m88k*: Put the assembler files in gnulib2 and eliminate use
10192: of gnulib1.
10193:
10194: Tue Jul 30 20:21:41 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
10195:
10196: * stddef.h (WCHAR_T):
10197: Test _WCHAR_T_, __WCHAR_T, _T_WCHAR_ and ___int_wchar_t_h.
10198:
10199: * tm-i386isc.h (RETURN_POPS_ARGS): Caller pops the struct value addr.
10200:
10201: * cccp.c (default_include): Search local dir, system, then standard.
10202:
10203: * Makefile.in (USE_HOST_MALLOC, USE_HOST_OBSTACK):
10204: Don't depend on which C compiler is in use.
10205:
10206: * reload1.c (reload): Use pseudoreg to compute spill_indirect_levels.
10207:
10208: * c-decl.c (start_function): Don't take arg types from builtin.
10209: (duplicate_decls): Cancel builtin function if new arg types differ.
10210: Don't take arg types from buiiltin.
10211:
10212: Tue Jul 30 18:45:39 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
10213:
10214: * reload.c (decompose): Don't blow up for constants; they are safe.
10215:
10216: Tue Jul 30 15:49:34 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
10217:
10218: * dbxout.c (dbxout_parms): Don't crash if MEM address is a MEM.
10219:
10220: * Makefile.in (install-common): Don't lose if EXTRA_PASSES is empty.
10221: Don't install gcc if gcc-cross exists.
10222: (install-cross-tools): Fix typos.
10223: Avoid doing cd -- use absolute file names.
10224: (gcc-cross.o): Rule deleted.
10225: (gcc-cross): Build gcc, then copy it.
10226:
10227: Tue Jul 30 15:37:25 1991 Michael Tiemann (tiemann at cygint.cygnus.com)
10228:
10229: * cplus-init.c (build_vec_delete): Use `size_binop' when building up
10230: the array end boundary.
10231:
10232: Tue Jul 30 10:03:54 1991 Michael Meissner (meissner at osf.org)
10233:
10234: * tm-mips.h (DOLLARS_IN_IDENTIFIERS): Define to be 1.
10235:
10236: Mon Jul 29 18:56:33 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
10237:
10238: * reload.c (refers_to_regno_for_reload_p): New function.
10239: (push_reload, find_dummy_reload, immune_p): Use
10240: refers_to_regno_for_reload_p instead of refers_to_regno_p.
10241:
10242: * cse.c (fold_rtx): Don't make shifts wider than object.
10243:
10244: Mon Jul 29 17:17:55 1991 Michael Collison (collison at osf.org)
10245:
10246: * configure: Added entry for mmax-osfrose (Multimax with ns32k
10247: running OSF/1).
10248:
10249: Mon Jul 29 14:51:32 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
10250:
10251: * Makefile.in (SYMLINK): New variable.
10252: (install-cross-tools): Make symlinks if possible.
10253: Otherwise, for executables, indirect to tooldir with a shell script.
10254: (install-native): Install gcc-cross as bin/gcc under tooldir.
10255:
10256: * Makefile.in (USE_HOST_ALLOCA):
10257: Generate nothing if don't need separate alloca.
10258: (USE_HOST_OBSTACK, USE_HOST_MALLOC): New variables.
10259: (HOST_LIBS): Use them.
10260: (HOST_PREFIX_1): Make a dummy file with this name,
10261: for cross-compiling for a machine that needs no separate alloca, etc.
10262:
10263: * c-parse.y (stmts): Accept either labels or unlabeled statements.
10264: (lineno_labeled_stmt): New nonterminals.
10265: (stmt_or_label, lineno_stmt_or_label): New nonterminals.
10266: (stmts): Use lineno_stmt_or_label.
10267: (stmt): Don't allow labels at this level.
10268: Use lineno_labeled_stmt in place of lineno_stmt.
10269:
10270: * cccp.c (default_include): Get rid of extra #endif.
10271: Use CROSS_COMPILE, not CROSS.
10272:
10273: * make-i386mach: New file.
10274: * configure (i386-mach): Use that file.
10275:
10276: Mon Jul 29 09:10:13 1991 Tom Wood (wood at dg-rtp.dg.com)
10277:
10278: * tm-m88kluna.h (SYSTEM_INCLUDE_DIR): Define (also MACH).
10279:
10280: Sun Jul 28 16:15:39 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
10281:
10282: * cccp.c (default_include): Use SYSTEM_INCLUDE_DIR.
10283: Delete special cases for MACH, UNOS.
10284: * tm-i386mach.h, tm-sun3mach.h, tm-crds.h (SYSTEM_INCLUDE_DIR): Define.
10285:
10286: * cccp.c (default_include): Use CROSS_INCLUDE_DIR if cross-compiler.
10287: * Makefile.in (cccp.o): Pass a definition for CROSS_INCLUDE_DIR.
10288:
10289: * Makefile.in (gnulib1.null): New target.
10290: (install-common, install-common-headers, install-cross-tools):
10291: (install-cross-rest, install-float-h-cross): New targets.
10292: (install-float-h): New target.
10293: (install-cross, install-headers): Use them.
10294: (tooldir): New variable.
10295: (EXTRA_PASSES): New variable.
10296:
10297: * sdbout.c (plain_type_1): Don't record the size in sdb_type_size
10298: unless a tag is output.
10299:
10300: * Makefile.in (install-cross): Install specs by copying.
10301: Install either gcc or gcc-cross, whichever exists.
10302: (native): Remove gcc from deps.
10303: (start.encap): Add gcc to deps.
10304: (all.cross): Add gcc-cross to deps.
10305: (gcc-cross): Like gcc rule except different output file name.
10306: (gcc-cross.o): Likewise.
10307:
10308: * Makefile.in (EXTRA_PASSES): New variable.
10309: Used for machines which have extra passes to run.
10310: (install-cross): Install those programs.
10311: (native): Compile them.
10312:
10313: * c-parse.y: Support `foo:' before a close brace.
10314: (label): New nonterminal.
10315: (stmt): Use that. Treat a label as a statement in itself.
10316:
10317: * Makefile.in (gnulib*.portable): Rules deleted.
10318: (GNULIB1, GNULIB2): Point directly at gnulib1, gnulib2.
10319: (gnulib): Use GNULIB1, GNULIB2 directly both as deps
10320: and to specify the input files.
10321: (gnulib1.conv): Renamed from gnulib1.convert; no longer phony.
10322: (gnulib*.target): Rules deleted.
10323: make-hp9k320 (GNULIB1): Use gnulib1.conv.
10324: (LIBCONVERT): Override.
10325:
10326: * move-if-change: Use -f with rm and mv.
10327:
10328: * Makefile.in (gnulib2.ready): No longer phony.
10329:
10330: Sat Jul 27 13:03:50 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
10331:
10332: * combine.c (can_combine_p): Don't use NEXT_INSN, in previous change.
10333:
10334: * Makefile.in (class-c, objective-c): New targets.
10335:
10336: * tm-i386.h (ASM_OUTPUT_ALIGN_CODE): Define it.
10337: (ASM_OUTPUT_LOOP_ALIGN): Use ASM_OUTPUT_ALIGN_CODE.
10338: * tm-i386gas.h, tm-i386vgas.h (ASM_OUTPUT_ALIGN_CODE): Override it.
10339: (ASM_OUTPUT_LOOP_ALIGN): Definition deleted.
10340:
10341: * fixincludes (memvar.h): Make two defs of CAT, one ANSI and one trad.
10342:
10343: * expmed.c (emit_store_flag): Set ICODE only after CODE is right.
10344:
10345: Sat Jul 27 06:45:32 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
10346:
10347: * flow.c (insn_dead_p): Don't clobber NEEDED while ensuring that we
10348: don't delete insns that set the frame or arg pointer.
10349:
10350: * flow.c (flow_analysis, find_basic_blocks, propagate_block):
10351: Use GET_RTX_CLASS.
10352:
10353: Fri Jul 26 08:18:08 1991 Tom Wood (wood at dg-rtp.dg.com)
10354:
10355: * sdbout.c: Use <syms.h> for USG and provide a definition of
10356: T_VOID if none existed. Use ./gsyms.h for non-USG systems.
10357: * gsyms.h: Renamed from syms.h.
10358:
10359: Fri Jul 26 22:47:53 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
10360:
10361: * cccp.c (macroexpand): Fix error message syntax.
10362:
10363: * Makefile.in (gnulib2.target): Add semicolon.
10364:
10365: Fri Jul 26 18:17:36 1991 Michael Meissner (meissner at pogo.gnu.ai.mit.edu)
10366:
10367: * make-mips (CC): Bump -Wf,-XNg option to 1500 to allow the MIPS
10368: compiler to compile cc1plus.
10369:
10370: Fri Jul 26 14:42:35 1991 Tom Wood (wood at dg-rtp.dg.com)
10371:
10372: * c-parse.y (yylex): Don't use mbtowc to translate L'\0'.
10373:
10374: * tm-m88ksvr4.h (CPP_SPEC): Specify SVR4 pre-assertions.
10375:
10376: Fri Jul 26 09:53:53 1991 Michael Meissner (meissner at pogo.gnu.ai.mit.edu)
10377:
10378: * Makefile.in (cplus_expr.o): Add missing dependencies, so cc1plus
10379: can be built without first building cc1.
10380:
10381: Fri Jul 26 07:30:51 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
10382:
10383: * combine.c (can_combine_p): Can't combine if DEST is used in an
10384: insn in the range (succ, i3).
10385:
10386: * expmed.c (store_bit_field): Don't use insv if the mode of its
10387: input is narrower than the width of the field.
10388: (store_fixed_bit_field): Handle value with MODE_FLOAT mode.
10389: (extract_bit_field): Don't use extzv/extv if its output mode is
10390: narrower that width of field.
10391: (extract_bit_field): Handle returning MODE_FLOAT mode.
10392:
10393: * reorg.c (steal_delay_list_from_target): Add new arg PNEW_THREAD.
10394: Instead of redirecting jump, return its target in *PNEW_THREAD.
10395: (fill_slots_from_thread): Pass &NEW_THREAD to
10396: steal_delay_list_from_target.
10397:
10398: Thu Jul 25 21:57:42 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu)
10399:
10400: * sched.c: Correct tiemann's email address.
10401: (schedule_block): Note that the values of leftover REG_DEAD notes
10402: are meaningless.
10403: (new_insn_dead_notes): If find an instruction that both uses and
10404: sets dest, then no new REG_DEAD note is needed.
10405: (update_links): When handling dest of last insn, no new REG_DEAD
10406: note is needed if the last insn also uses its dest.
10407:
10408: Thu Jul 25 18:15:33 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
10409:
10410: * flow.c (regno_clobbered_at_setjmp): Don't blow up if no basic blocks.
10411:
10412: Thu Jul 25 16:55:57 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
10413:
10414: * cse.c (invalidate, cse_insn): Don't use HASHREG directly.
10415: (HASH): Substitute HASHREG in.
10416: (HASHREG): Deleted.
10417:
10418: * tm-i386mach.h: New file.
10419: * configure (i386-mach): Use that.
10420:
10421: * tm-i386isc.h: New file, copied from 1.40.
10422:
10423: * i386.md (jump, indirect_jump, tablejump, return):
10424: Use ASM_OUTPUT_ALIGN_CODE.
10425: * tm-i386gas.h, tm-i386vgas.h (ASM_OUTPUT_LOOP_ALIGN):
10426: Override the usual definition.
10427:
10428: * rtl.h (FUNCTION_FLAGS_USES_PIC_OFFSET_TABLE): Fix typo.
10429:
10430: Thu Jul 25 16:25:52 1991 Tom Wood (wood at dg-rtp.dg.com)
10431:
10432: * out-m88k.c (legitimize_address): Note use of addressing base.
10433: (m88k_layout_frame): Establish PIC addressing base as needed.
10434:
10435: * tm-m88kdgux.h (GPLUSPLUS_INCLUDE_DIR): Specify.
10436:
10437: Thu Jul 25 07:54:36 1991 Michael Tiemann (tiemann at cygint.cygnus.com)
10438:
10439: * rtl.h (FUNCTION_FLAGS_USES_PIC_OFFSET_TABLE): Defined.
10440:
10441: * integrate.c (expand_inline_function): Propagate the value of
10442: FUNCTION_FLAGS_USES_PIC_OFFSET_TABLE.
10443:
10444: * function.h (struct function): Add new field USES_PIC_OFFSET_TABLE
10445: to structure. Leave it to md files to initialize this field.
10446: * expr.h (current_function_uses_pic_offset_table): New declaration.
10447: * function.c ({save,restore}_tree_status): Save and restore
10448: CURRENT_FUNCTION_USES_PIC_OFFSET_TABLE to/from this slot.
10449: * out-sparc.c (legitimize_pic_address): Set
10450: CURRENT_FUNCTION_USES_PIC_OFFSET_TABLE when appropriate.
10451: (finalize_pic): If the current function does not use the PIC offset
10452: table, there's no need to emit the PIC prologue.
10453:
10454: Wed Jul 24 13:54:41 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
10455:
10456: * tm-m68k.h (NOTICE_UPDATE_CC):
10457: Calls clear status even if value in address reg.
10458:
10459: * tm-i386gas.h, tm-i386vgas.h (ASM_OUTPUT_ALIGN_CODE): Align with NOPs.
10460:
10461: * i386.md (andsi3): Don't use movzbl if op1 can't support it.
10462:
10463: Wed Jul 24 07:47:59 1991 Michael Tiemann (tiemann at cygint.cygnus.com)
10464:
10465: * cplus-decl.c (finish_decl): Don't build a cleanup for an variable
10466: that is TREE_EXTERNAL.
10467:
10468: Tue Jul 23 20:48:23 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
10469:
10470: * make-mips: Delete rules for saber C.
10471: * Makefile.in (STAGESTUFF, gnulib2.ready): Undo last change.
10472:
10473: * tm-vax.h (LIB_SPEC): Supply missing close braces.
10474:
10475: Tue Jul 23 14:03:10 1991 Michael Meissner (meissner at osf.org)
10476:
10477: * protoize.c (toplevel): If FULL_PROTOTYPES is defined, assume that
10478: the system provides full prototypes, and include stdlib.h and
10479: unistd.h.
10480: (toplevel): If _POSIX_SOURCE is defined, wait takes a pointer to an
10481: int, even if the system is otherwise BSD.
10482: (toplevel): If NO_CONST_IN_SYSCALL and __STDC__ is defined, assume
10483: the system takes char *'s instead of const char *'s.
10484: (process_aux_info_file, edit_file): Always pass 3 arguments to open,
10485: to allow the NO_CONST_IN_SYSCALL macro to properly cast the
10486: arguments.
10487:
10488: * make-decrose (ALL): Make sure Makefile is rebuilt if either
10489: Makefile.in or make-decrose changes.
10490: (BUILD, SYSTEM_INCLUDES, LDFLAGS): Add BUILD variable to retarget
10491: which build is used.
10492: (CPP_ABORT): Don't define abort=fancy_abort here, do it in
10493: tm-mips.h.
10494: (INSTALL): Use installbsd program, since install uses System V
10495: semantics on OSF/1.
10496: (LANGUAGES): Rename collect-osf to collect.
10497: (CFLAGS, XCFLAGS): Make CFLAGS use standard args and use XCFLAGS to
10498: add additional arguments.
10499: (libdir, bindir, mandir): Define to current install values.
10500: (cplus-lex.o): Work around problems with 1.39 bootstrap compiler
10501: producing bad stabs for certain inlines.
10502: (osf-main.c): Add a simple G++ constructor/destructor to gnulib.
10503:
10504: * make-mips (ALL): Make Makefile depend on Makefile.in and
10505: make-mips.
10506: (CFLAGS, XCFLAGS): Make CFLAGS use standard args and use XCFLAGS to
10507: add additional arguments.
10508: (CC): Add -Wf,-XNg500 switch to compile with due to the MIPS
10509: compiler having fixed size tables.
10510: (SABER_*): Add rules to run saber-C.
10511:
10512: * mips.md (movsi_ulw): Allow unaligned register->register moves,
10513: which is caused by the optimizer, and generate the normal reg move
10514: code. Also, turn loads from the stack into normal moves.
10515: (movsi_usw): Turn stores into the stack into normal moves.
10516: (call, call_value): Turn into a define_expand which takes three
10517: arguments, to make Saber happier.
10518:
10519: * tm-mips.h (abort macro): Define abort to be saber_stop if running
10520: under Saber C.
10521: (__PTR_TO_INT, __INT_TO_PTR): Define as casts if running on a MIPS
10522: machine instead of with subtraction, in an attempt to quiet Saber C.
10523: (ASM_MODIFY_SPEC): Run mips-tfile after the assembler, needs
10524: corresponding gcc.c change to enable.
10525:
10526: * tm-decrose.h (ASM_SPEC): Pass -v switch to gas as well as mips
10527: assembler.
10528: (ASM_MODIFY_SPEC): Run mips-tfile if -mmips-as.
10529: (LINK_SPEC): Pass -v switch to linker.
10530: (LIB_SPEC): Redefine as just -lc.
10531: (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Undefine, use standard
10532: libdir, bindir, and mandir in Makefile now.
10533: (FULL_PROTOTYPES, NO_CONST_IN_SYSCALL): Define to get protoize
10534: to compile cleanly.
10535:
10536: * osf-main.c (new file): Provide simple constructor, destructor
10537: capability to be linked into gnulib.
10538:
10539: * collect-osf.c (various): General rewrite to improve speed and
10540: portability.
10541:
10542: * Makefile.in (CPLUS_OBJS): If CPLUS_INPUT is defined to be
10543: cplus-input.o, compile it separately to work around problems with
10544: bootstraping when it is included in cplus-lex.c.
10545: (STAGESTUFF): Use $(LANGUAGES) instead of hard coded list of
10546: languages, so make-xxx file can override, and provide others.
10547: (gnulib2.ready): Make gnulib2 depend on all LANGUAGES targets, so
10548: that if a target needs something else built, such as mips-tfile, it
10549: will be.
10550: (mostlyclean): Add missing -f to rm.
10551: (install-dir): Use test to see if the directory exists before trying
10552: to create it, and fail if the mkdir fails.
10553: (install-headers): ditto.
10554: (stage?, risky-stage?): ditto.
10555: (install-cross): Install collect and mips-tfile if they are present.
10556:
10557: * mips-tfile.c (toplevel, main): Add -I file option, which renames
10558: the original output file to the given file.
10559:
10560: * cplus-lex.c (toplevel): Include <assert.h> instead of "assert.h"
10561: in order to avoid problems when including cplus-input.c, which also
10562: uses <assert.h>.
10563:
10564: * cplus-pt.c (toplevel): Move include of config.h before obstack.h
10565: in case config.h defines some macros obstack.h uses such as
10566: __PTR_TO_INT.
10567:
10568: Tue Jul 23 13:15:43 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
10569:
10570: * xm-i386.h, xm-i860.h, xm-spur.h, xm-tahoe.h: Use __builtin_alloca.
10571:
10572: Tue Jul 23 12:26:01 1991 Michael Tiemann (tiemann at cygint.cygnus.com)
10573:
10574: * function.c (instantiate_virtual_regs_1): Change dubious code that
10575: used to assign NEW to XEXP (x, 1) regardless of whether
10576: validate_change accepted it to instead set XEXP (x, 0) back to OLD.
10577: I.e., if the rtx is out of range and OBJECT is NULL, don't make any
10578: change at all.
10579:
10580: * out-sparc.c (compute_frame_size): If a function has any
10581: stack-local objects, it's frame size is non-zero and space must be
10582: reserved for the register window.
10583:
10584: * loop.c (loop_optimize): Use get_max_uid to compute max_uid_for_loop.
10585:
10586: * fold-const.c (size_int): Extend SIZE_TABLE's range from
10587: 0..HOST_BITS_PER_INT-1 to 0..2*HOST_BITS_PER_INT.
10588:
10589: * integrate.c (expand_inline_function): Add minor efficiency
10590: hack to not free all the temp slots as parameters are passed
10591: from "caller" to "callee".
10592:
10593: * integrate.c (expand_inline_function): If the inline function
10594: returns its value via a structure_value_addr, we must prepare for
10595: this to take place, even if the value is ignored by the caller.
10596:
10597: * tm-decstatn.h (SIZE_TYPE): Define this to be "unsigned int".
10598:
10599: * emit-rtl.c (try_split): If `split_insns' actually returns a SEQ
10600: which is isomorphic to PAT, return TRIAL.
10601:
10602: * out-sparc.c (eligible_for_epilogue_delay): FP register moves are
10603: only eligible for leaf-function epilogue delay slots.
10604:
10605: Tue Jul 23 11:52:50 1991 Michael Meissner (meissner at geech.gnu.ai.mit.edu)
10606:
10607: * dbxout.c (dbxout_symbol): Correct typo in getting static member
10608: names. The problem is DECL_ASSEMBLER_NAME returns a tree, and not a
10609: char *.
10610:
10611: Tue Jul 23 07:10:41 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
10612:
10613: * varasm.c (immed_double_const): Use CONST_INT if MODE fits within
10614: HOST_BITS_PER_INT, not BITS_PER_WORD.
10615:
10616: Mon Jul 22 21:37:03 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
10617:
10618: * fold-const.c (fold): Always preserve type after using const_binop.
10619:
10620: Mon Jul 22 18:34:55 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
10621:
10622: * reload1.c (reload): Fix typo in condition for reg_equiv_address
10623: being set from reg_equiv_memory_loc; had X instead of XEXP (X, 0).
10624:
10625: Mon Jul 22 15:25:48 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
10626:
10627: * gcc.c (process_command): -xnone turns off any -x option.
10628:
10629: * tree.c (copy_chain): Deleted.
10630: * integrate.c (copy_decl_tree): Use copy_list and copy_node.
10631:
10632: Mon Jul 22 11:35:47 1991 Michael Tiemann (tiemann at pogo.gnu.ai.mit.edu)
10633:
10634: * tree.c, tree.h: Fix typos in Jul 22 merge.
10635:
10636: Mon Jul 22 08:51:47 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
10637:
10638: * jump.c (thread_jumps): Don't set CHANGED if the jump's label isn't
10639: changing.
10640:
10641: Mon Jul 22 02:37:23 1991 Michael Tiemann (tiemann at pogo.gnu.ai.mit.edu)
10642:
10643: * version.c: Bumped to 1.94 because of significant changes to
10644: cplus-* files.
10645:
10646: Sun Jul 21 18:45:57 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
10647:
10648: * toplev.c (rest_of_compilation):
10649: Save and restore DECL_INITIAL if we use save_for_inline_copying.
10650: * integrate.c (save_for_inline_copying): Really copy DECL_INITIAL.
10651: Calling integrate_decl_tree doesn't do it; deleted that call.
10652: (copy_decl_tree): New function.
10653:
10654: * integrate.c (integrate_decl_tree): Renamed from copy_decl_tree.
10655: (integrate_parm_decls): Renamed from copy_parm_decls.
10656:
10657: * tree.c (copy_chain): New function.
10658:
10659: Sun Jul 21 06:43:23 1991 James Van Artsdalen (james at bigtex.cactus.org)
10660:
10661: * i386.md (tstsi): Add comment noting potential -m486 enhancement.
10662: (SImode push): With -m486, don't push from MEM.
10663: (addsi3): Don't use lea for three operand add if -m486.
10664: (ashlsi3): Don't use lea for shift of 1 if -m486.
10665: (zero_extendhisi2,zero_extendqihi2,zero_extendqisi2): If dest is
10666: %eax, or if -m486, AND is faster than MOVZX.
10667:
10668: Sun Jul 21 06:27:33 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
10669:
10670: * expmed.c (store_fixed_bit_field): Pass actual bit position (including
10671: offset) to get_best_mode; also limit mode size to BITS_PER_WORD.
10672: Use failure of get_best_mode to indicate that field spans word
10673: boundary.
10674: Pass actual bit position to store_split_bit_field.
10675: (store_split_bit_field): Accept actual bit position, hence handing
10676: bitpos > BITS_PER_WORD.
10677: Abort if BITPOS and BITSIZE don't cross exactly one word boundary.
10678: Pass offset to store_fixed_bit_field; if register, use operand_subword;
10679: else adjust offset for second word.
10680: (extract_{fixed,split}_bit_field): Likewise.
10681:
10682: Sun Jul 21 06:11:55 1991 Michael Tiemann (tiemann at cygint.cygnus.com)
10683:
10684: * All cplus-* files: DECL_VIRTUAL_P is no longer applied to
10685: FUNCTION_DECLs. Instead, to test if a function is virtual or not,
10686: it suffices to test whether its DECL_VINDEX is non-NULL. We use
10687: ERROR_MARK_NODE as the placeholder for a FUNCTION_DECL we know will
10688: be virtual, but for which we don't yet know the actual index.
10689:
10690: * cplus-decl.c (define_function): Don't set up DECL_ASSEMBLER_NAME
10691: until after having the chance to call through PFN. Since `pushdecl'
10692: now keys off of DECL_ASSEMBLER_NAME, we don't want to create
10693: inadvertent aliases between builtin and library functions.
10694:
10695: * cplus-typeck.c (build_modify_expr): We don't need to build a
10696: SAVE_EXPR for a WITH_CLEANUP_EXPR.
10697: (unary_complex_lvalue): For good measure, know how to deal with a
10698: WITH_CLEANUP_EXPR inside a SAVE_EXPR.
10699:
10700: * cplus-pt.c (uses_template_parms): Add handler for ARRAY_TYPE.
10701:
10702: * cplus-method.c (do_inline_function_hair): Use TYPE_METHODS instead
10703: of CLASSTYPE_METHOD_VEC for traversing all methods when looking for
10704: inline functions.
10705:
10706: * cplus-class.c (finish_struct_methods): Fix fencepost error if
10707: there were no member functions except for ctors/dtors.
10708:
10709: Sun Jul 21 06:19:01 1991 James Van Artsdalen (james at bigtex.cactus.org)
10710:
10711: * tree.h, output.h (current_function_calls_longjmp): New variable.
10712: * function.c (top level): Define it.
10713: (push_function_context): Save it.
10714: (pop_function_context): Restore it.
10715: (init_function_start): Initialize it.
10716:
10717: * calls.c (expand_call): Set current_function_calls_longjmp if
10718: this call is to `longjmp'.
10719:
10720: * flow.c, global-alloc.c: Include output.h so that
10721: FRAME_POINTER_REQUIRED can use current_function_calls_*.
10722: * Makefile.in (flow.o,global-alloc.o): Includes output.h.
10723:
10724: * rtl.h (FUNCTION_FLAGS_CALLS_LONGJMP): New macro.
10725:
10726: * integrate.c (initialize_for_inline): Record
10727: current_function_calls_lonjmp in `function_flags'.
10728: (output_inline_function): Set current_function_calls_longjmp if
10729: the inline code calls longjmp.
10730:
10731: * function.h (struct function): New field `calls_longjmp'.
10732:
10733: * out-i386.c (simple_386_epilogue): Add function description.
10734: Return 0 if NON_SAVING_SETJMP && `setjmp' is called in function.
10735:
10736: * tm-i386v.h (NON_SAVING_SETJMP): New macro.
10737: (FRAME_POINTER_REQUIRED): New macro.
10738:
10739: Sat Jul 20 12:25:56 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
10740:
10741: * tm-m88k.h (OPTIMIZATION_OPTIONS): Don't change flag_signed_bitfields.
10742:
10743: * cccp.c (include_defaults) Use LOCAL_INCLUDE_DIR macro instead
10744: of "/usr/local/include". Provide default definition.
10745:
10746: * cccp.c (include_defaults) Added INCLUDE_DEFAULTS macro to
10747: provide complete control over default include directories.
10748: Delete the special case for VMS.
10749: * xm-vms.h (INCLUDE_DEFAULTS): Defined.
10750:
10751: * proto-man: Renamed from proto-unproto.1.
10752:
10753: * final.c (final_scan_insn): Do ASM_OUTPUT_LOOP_ALIGN only for real loop.
10754:
10755: Sat Jul 20 05:34:13 1991 Michael Tiemann (tiemann at cygint.cygnus.com)
10756:
10757: * tree.h (tree_type): Use the MAXVAL slot for TYPE_METHODS.
10758: * cplus-class.c (finish_struct): Methods are now chained with
10759: TREE_CHAIN and placed in the TYPE_METHODS of their _TYPE node.
10760: * cplus-dbxout.c (dbxout_type_methods): Use this fact, instead of
10761: using more C++-specific knowledge.
10762:
10763: * cplus-decl.c (init_decl_processing): Variable
10764: `const_ptr_type_node' was not being initialized. Same with
10765: `const_string_type_node'.
10766:
10767: * tree.h (DECL_PRINT_NAME): Marked for death.
10768: (DECL_ASSEMBLER_NAME): Changed from a char* to a tree node.
10769: All front-end files changed as necessary.
10770:
10771: * cplus-tree.h (DECL_ORIGINAL_NAME): Deleted. Now we use
10772: DECL_NAME.
10773: (DECL_NAME): No longer means the mangled name. Now we use
10774: DECL_ASSEMBLER_NAME for that purpose.
10775: All cplus-* files changed as necessary.
10776:
10777: * cplus-tree.c (lang_printable_name): Use a ring-buffer to hold
10778: printable names instead of DECL_PRINT_NAME slot of a _DECL node.
10779:
10780: * collect2.c: #define COLLECT, and let config.h provide definition
10781: of macros.
10782:
10783: See file ChangeLog.3.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.