-
Notifications
You must be signed in to change notification settings - Fork 4
/
ChangeLog.2
7229 lines (5281 loc) · 286 KB
/
ChangeLog.2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
Thu Jan 31 00:33:33 1991 Richard Stallman (rms at mole.ai.mit.edu)
* loop.c (scan_loop): Check each libcall for regs it uses
but does not mention in the equivalent value.
To move the libcall, we must have at most one such reg
and it must be moved as well.
(libcall_other_reg): New subroutine.
* rtlanal.c (record_excess_regs): New function.
* tree.c (gcc_obstack_init): New function.
(init_obstacks, save_tree_context): Use that.
(OBSTACK_CHUNK_SIZE): New parameter.
* xm-next.h: New file.
* configure (m68k/next): Use that file.
* flags.h (flag_no_common): Declare new flag to treat external defs
as ANSI specifies (i.e. not as common).
* toplev.c (flag_no_common, f_options): Support -fno-common.
* varasm.c (assemble_variable): Don't output a common if
flag_no_common is set. Treat as if initialized to 0.
* gcc.c (default_compilers): Define __ASSEMBLER__ for .S file.
* tm-aix386.h (ASM_OUTPUT_LOCAL): Ok to use bss, since no shared libs.
(LINK_SPEC): Pass through all -K and -T options.
* xm-aix386.h (TRUE, FALSE): Undef if already def, to avoid warning.
* tm-m68k.h (TARGET_68040, TARGET_68040_ONLY): New machine flags.
(TARGET_SWITCHES): Alternatives to set them.
* tm-next.h (TARGET_DEFAULT): Changed to 0407 for 68040.
* out-m68k.h (standard_68881_constant_p): Always return 0
for TARGET_68040 since fmovecr is no longer implemented in hardware.
* m68k.md (ftruncdf2, ftruncsf2): Don't emit fintrz for
TARGET_68040, since it is no longer implemented in hardware.
(muldf3): Don't use fscale on 68040, since not implemented in hardware.
* toplev.c (optimize): Now stores specified optimization level.
(main): Keep the largest optimization level specified.
Handle any integer.
* c-decl.c (pushdecl): Don't make an extern global for -traditional
if it uses any local types.
* tm-sun386i.h (PCC_BITFFIELD_TYPE_MATTERS): Use 1 as value.
Wed Jan 30 12:41:15 1991 Richard Stallman (rms at mole.ai.mit.edu)
* fixincludes (sys/systypes.h): Edit this to handle _SIZE_T, etc.
* function.c (put_var_into_stack): Allocate var ref chain link
while in the proper function's obstack.
* fold-const.c (const_binop): Don't crash for real/0 if have infinity.
* flow.c (mark_set_1): Don't make log link for hard reg in asm insn.
Wed Jan 30 07:45:33 1991 Tom Wood (wood at dg-rtp.dg.com)
* sched.c (schedule_block): Indicate what insns constitute each
basic block.
Tue Jan 29 12:35:42 1991 Richard Stallman (rms at mole.ai.mit.edu)
* Makefile.in (gnulib1.*, gnulib2.*): Declare them phony targets.
* print-tree.c (print_node): Print message if TREE_PERMANENT is wrong.
* tree.c (object_permanent_p): New function.
* print-tree.c (print_node): Remove DECL_LANG_FLAG_10.
Tue Jan 29 10:07:48 1991 Tom Wood (wood at dg-rtp.dg.com)
* m88k.md (minus/xor/and, neg/ne/compare/and): Delete these. This
should be done by combine.
(compare operator): Eliminate except when a SET_SRC.
* tm-m88k.h (OPTIMIZATION_OPTIONS): -fomit-frame-pointer is a
default optimization.
Mon Jan 28 12:52:11 1991 Richard Stallman (rms at mole.ai.mit.edu)
* tree.h (DECL_VIRTUAL_P): Renamed from TREE_VIRTUAL.
(struct tree_common): Eliminate virtual_flag.
(struct tree_decl): Add virtual_flag.
* Makefile.in (enquire.o): Pass -DNO_STDDEF.
* m68k.md (tablejump): Now have a define_expand that does
different things depending on CASE_VECTOR_PC_RELATIVE,
and a separate define_insn for each case.
* function.h (outer_function_chain): Declare the variable.
* tree.c (debug_obstack): Fix typos.
* tree.h (struct tree_common): Fix typo.
* Makefile.in (GNULIB1_TARGET, GNULIB2_TARGET): Variables deleted.
(gnulib): Depend on gnulib1.target and gnulib2.target explicitly.
* dbxout.c (dbxout_type): Use DECL_VIRTUAL_P, not TREE_VIRTUAL.
* cplus-tree.h (TREE_PRIVATE, TREE_PROTECTED): #if 0.
* cexp.y (keywords): Cast names for parens to U_CHAR *.
* gcc.c (process_command): Fix typo setting switches[n_switches].arg.
* loop.c (loop_reg_used_before_p): Check insns before INSN, not after.
* objc-actions.c (objc_finish): Renamed from lang_finish.
* objc-parse.y (program): Call objc_finish at the end.
* Changes from Matthew Self (mself@next.com):
* objc-parse.y: Since objc-parse.y was so out of date with
respect to c-parse.y, I started over with c-parse.y and
reintegrated the Objective-C modifications. Now that
Objective-C is working I hope that objc-parse.y will be kept
more up to date.... I did not re-integrate the lexer since I
don't have gperf working. I simply cut and pasted what
Stallman had in objc-parse.y. Someone with access to gperf
should re-generate this stuff.
* objc-actions.c (comp_method_with_proto,
comp_proto_with_proto): Stallman's change to use the
functions end_temporary_allocation and
resume_temporary_allocation is incorrect, since it always
leaves allocation temporary, whether it was before or not.
Perhaps the push and pop functions would do the trick....
* objc-actions.c (get_arg_type_list): Use new function
groktypename_in_parm_context.
* objc-actions.c (_OBJC_SELECTOR_REFERENCES_decl,
_OBJC_SELECTOR_REFERENCES_id): Removed.
* objc-actions.c (synth_module_prologue): Eliminated code to
forward declare the selector references array.
* objc-actions.c (init_objc_symtab): Eliminated code to
initialize "refs" field in objc_symtab structure (which is
now vestigial).
* objc-actions.c (build_selector_translation_table): Rewrote.
* objc-actions.c (build_selector_reference): New routine.
* objc-actions.c (build_message_expr, build_selector_expr):
Use new routine.
* config/tm-next.h (GO_IF_INDEXABLE_BASE): Don't use pc
relative addressing for LABEL_REF's. Since branch tables are
in the const section, we treat LABEL_REF's like SYMBOL_REF's
here. Otherwise invalid addresses were being generated.
* config/tm-next.h (CASE_VECTOR_PC_RELATIVE, CASE_VECTOR_MODE):
Use absolute branch tables rather than relative ones.
* config/tm-next.h (ASM_OUTPUT_MAIN_SOURCE_FILE_END): Output
an N_SO symbol with no name to mark the end of the module.
This is needed to support scattered loading on the NeXT.
* config/out-next.c (handle_pragma): Call to xrealloc had wrong args.
* configure: Entry for NeXT must set out_file to out-next.c.
* config/out-next.c: Typo: "flags" -> "flags.h"
* config/tm-next.h (LIB_SPEC): Brought up-to-date. There
are probably more changes needed here.
* c-decl.c (pushdecl_top_level): New function. This was
copied from an older version of g++.
* c-decl.c (init_decl_processing): Make alloca first arg sizetype.
* c-decl.c (groktypename_in_parm_context): New function.
Mon Jan 28 07:07:01 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
* loop.c (loop_reg_used_before_p): Don't use INSN_LUID since INSN
might have been made by loop.c for an outer loop.
* loop.c (move_movables, strength_reduce): Replace register references
in REG_NOTES as well as PATTERN.
* loop.c (strength_reduce): Call maybe_eliminate_biv twice, not
three times.
(maybe_eliminate_biv): Don't abort if elimination fails even though
we thought it wouldn't. This can happen if certain insn patterns
aren't valid.
(maybe_eliminate_biv_1): Ensure that we do not change the insn at
all if all the required changes can't be done.
Sun Jan 27 21:26:29 1991 Richard Stallman (rms at mole.ai.mit.edu)
* Makefile.in: Rename config-dir back to config.
Sat Jan 26 17:48:22 1991 Richard Stallman (rms at mole.ai.mit.edu)
* objc-parse.y (program): Call objc_finish.
* objc-actions.c (objc_finish): Renamed from lang_finish.
* objc-actions.c, objc-parse.y: New version from NeXT.
Sat Jan 26 17:37:48 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
* expr.c (expand_expr, case COND_EXPR): Disable special-case of
A ? B : C when B and C are simple. This is now done better by jump.
Sat Jan 26 13:16:58 1991 Richard Stallman (rms at mole.ai.mit.edu)
* tree.h (TREE_PRIVATE, TREE_PROTECTED, TREE_VIRTUAL): New macros.
(struct tree_common): New flag fields.
* dbxout.c (dbxout_type): Get rid of conditional; can always use these.
* cccp.c (lookup_import): Do return -2 if file found.
(main): Handle `.m' suffix like `.S'.
* configure (m68k/next): Use out-next.c.
* WORD_SWITCH_TAKES_ARG and SWITCH_TAKES_ARG now give # of args.
* gcc.c (struct switchstr): New field `args' replaces `part2'.
(process_command): Record all the args a switch has.
(give_switch): Pass all the strings in `args'.
* tree.h (struct tree_common): Normally make `code' an enum tree_code.
* m68k.md (tablejump): New pattern.
(casesi, etc.): Deleted.
* tree.c (debug_obstack): New function.
* toplev.c (compile_file): Call dbxout_finish near the end.
* dbxout.c (dbxout_finish): New function.
* print-tree.c (print_node): Always print ERROR_MARK node briefly.
* objc-actions.h (METHOD_ENCODING, CLASS_CATEGORY_LIST): New macros.
* gcc.c (execute): Make fatal signal message clearer.
(default_compilers): For .m file, define __OBJC__,
and pass -lang-objc and -gen-decls to cc1.
* dwarfout.c: Include output.h.
(current_function_decl, asm_out_file): Explicit extern decls deleted.
(abort, fatal): Explicit extern decls deleted.
(NO_RETURN): Definition deleted.
(named_labels): Don't declare it.
(output_symbol): Don't use it.
(MAXPATHLEN): Don't define this. Don't include sys/param.h.
(output_source_file_die): Avoid limit on file name size.
(output_symbols_for_stmt): Deleted.
(output_symbols_for_block): Adapt to using BLOCK, not LET_STMT.
* configure: Renamed from `config'.
* config: Directory renamed back from config-dir.
Sat Jan 26 1990 Ron Guilmette (rfg at ncd.com)
* README.DWARF: updated to reflect changes to dwarfout.c, the
inclusion of dwarf.h (and its changes) and the fact that the
DWARF support is no longer directly tied to the DG versions of
GCC.
* dwarfout.c: included a patch (provided by Ray Essick) to allow
dwarfout.c to properly get a value for MAXPATHLEN even on (old)
System V.3 systems.
* dwarfout.c: added support for long long types (as suggested by
Ray Essick).
* dwarfout.c: added support for the AT_comp_dir attribute. Also,
as part of this change, the name of the compilation directory is
no longer placed into in the .sources section.
* dwarfout.c: added support for the AT_addr_ranges attribute.
* dwarfout.c: added support for the AT_prototyped attribute.
* dwarfout.c: added support for the AT_src_info attribute. Also,
as part of this change, there is no longer a "special" entry
at the start of the .srcinfo section for each compilation unit,
and the contents of the "special" final entry in the .srcinfo
section have changed (to { -1, -1 }).
* dwarfout.c: modified to allow additional GNU DWARF extensions
to be generated whenever the corresponding extended attribute
codes are defined (presumably within a modified dwarf.h file).
* dwarfout.c: use the section names .srcinfo and .sources rather
than .finfo and .files. The additional specificity is warranted
because the DWARF information may someday include information
about object files as well as source files.
* dwarfout.c: fixed a bug where a type attribute was being generated
for functions and function types even when the return type was
void. "Standard" dwarf says that if the return type for a function
or function type is void then no type attribute should be generated
for the corresponding DIE.
Sat Jan 26 04:22:08 1991 Michael Tiemann (tiemann at cygnus.com)
* cplus-lex.c (interface_strcmp): Handle String.String.Map.cc and
friends.
* cplus-typeck.c (build_unary_op): Merge change to generate better
code from simple cast expression.
Fri Jan 25 10:06:28 1991 Michael Tiemann (tiemann at cygnus.com)
* cplus-decl.c (pushtag): Don't call `pushdecl' if the type's name
is anonymous, lest we recurse ad infinitum.
Thu Jan 24 23:56:55 1991 Richard Stallman (rms at mole.ai.mit.edu)
* optabs.c (expand_binop, expand_unop): Word at a time only for ints.
Thu Jan 24 09:40:37 1991 Tom Wood (wood at dg-rtp.dg.com)
* sdbout.c (sdbout_symbol): Apply changes in dbxout.c to deal with
SUBREG. Don't emit a symbolic definition for variables that can't
be represented.
Thu Jan 24 21:18:15 1991 Richard Stallman (rms at mole.ai.mit.edu)
* config: Conditional for setting $os was backward.
Also mention name of make-var file if one exists.
* out-i386.c: Delete a large piece of accidental insertion.
* dwarfout.c: Don't include c-tree.h or cplus-tree.h.
(INT_TYPE_SIZE, etc.): Define them if not overridden.
(fundamental_type_code): Distinguish types by TYPE_PRECISION.
But also check for the built-in C type names.
Thu Jan 24 15:23:17 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
* gcc.c (default_compilers): Pass all args starting with "O" to
cc1 so that -O2 is passed along.
Thu Jan 24 13:10:27 1991 Richard Stallman (rms at mole.ai.mit.edu)
* stmt.c (expand_expr_stmt): Don't warn for any casts to void.
* config: Fix typos setting shell vars.
Rename config to config-dir.
Insert missing \ in case for delta.
Wed Jan 23 16:31:27 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
* emit-rtl.c (emit_jump_insn_{before,after}): Allow PATTERN to be
a SEQUENCE.
* loop.c (check_dbra_loop): Use emit_jump_insn_before when writing
out compare and jump sequence, not emit_insn_before, to ensure that
if we only write one insn that it is a JUMP_INSN.
* toplev.c (flag_rerun_cse_after_loop): New: -frerun-cse-after-loop.
(rest_of_compilation): Rerun cse after loop if desired.
(main): Add support for -O2.
Prescan args for -O and -O2 to set default values for many -f options.
Add call to new macro OPTIMIZATION_OPTIONS.
Save status of -version until all args have been processed; then
write out the info.
(print_single_switch): New function.
(print_switch_values): Renamed from print_target_switch_defaults.
Now prints out currently enabled -f, -m, and -W switches. Calls
print_single_switch to write out switch and handle long lines.
* rtl.def (SUBREG): Change rtx class from 'o' to 'x'.
* cse.c (find_comparison_args): Ignore hash table entry if not valid.
Wed Jan 23 00:12:24 1991 Richard Stallman (rms at mole.ai.mit.edu)
* config: File renamed from config.gcc.
Allow abbreviations for +-options.
Allow config HOST TARGET.
Support +gas and +nfp as separate options.
Rename all the machine alternatives to general scheme:
cpu/company-system. Allow abbreviations for cpu/company pairs.
* config-dir: Dir renamed from config.
* Makefile.in (install-dir): Create bindir here.
* cccp.c (main): Delete duplicat p++ left in last change.
* Makefile.in (GNULIB1, GNULIB1_TARGET): Renamed from GNULIB*.
(gnulib1.portable, gnulib1.target): Renamed from gnulib.*.
They now make a file named gnulib1, from gnulib1.c.
(LIB1FUNCS, LIB1FUNCS_EXTRA): Renamed from LIBFUNCS*.
(for-bootstrap, rest.encap): Depend on gnulib, not GNULIB2_TARGET.
(stamp-gnulib2): This file is no longer used.
(gnulib2.portable): Old stamp-gnulib2 rule renamed to this.
Now create a file named gnulib2, from gnulib2.c alone.
(gnulib): New target, combines gnulib1 and gnulib2 into gnulib.
(mostlyclean): Delete additional temporary files.
No need to avoid deleting stamp-gnulib2.
(clean): Delete gnulib1 and gnulib2, but not stamp-gnulib2.
(realclean): No need to delete gnulib here.
(install-gnulib): Changed dependencies.
* gnulib1.c: File gnulib.c renamed.
* Makefile.in (install-dir): Create bindir here.
* cccp.c (main): Delete duplicat p++ left in last change.
Sun Jan 20 14:00:16 1991 Michael Tiemann (tiemann at cygnus.com)
* cplus-class.c (finish_struct): Conditionalize EMPTY_FIELD_BOUNDARY
on whether or not it is defined. Similarly for PCC_BIT_FIELD_MATTERS.
Wed Jan 16 18:56:30 1991 Richard Stallman (rms at mole.ai.mit.edu)
* cse.c (fold_rtx): When folding dispatch table, stay inside bounds.
Wed Jan 16 08:11:48 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
* reload.c (find_reloads_toplev): Fix typo in recent change.
* reload1.c (eliminate_regs): If we have a non-paradoxical
(subreg (pseudo)) and the pseudo has an equivalent memory
location, replace the SUBREG because find_reloads may do it.
Tue Jan 15 01:41:28 1991 Richard Stallman (rms at mole.ai.mit.edu)
* loop.c (scan_loop): Condition for movability was wrong.
A reg that isn't necessarily set may be unsafe
even if used only inside the loop.
However, a reg used only in the same basic block after the set is safe.
So is a reg that isn't a user-level variable.
* loop.c (loop_optimize): Reverse order of scanning loops.
* loop.c (scan_loop): After skipping the insns of a libcall sequence,
ignore notes when searching back to find the last insn of the seq.
* cccp.c (main): Use envvar GCC_EXEC_PATH to specify translation
of prefixe in default include dirs.
* cccp.c (main): Do path_includes after explicit options.
* combine.c (try_distrib): Don't push + thru negative count shifts.
Mon Jan 14 09:40:28 1991 Ken Raeburn (raeburn at watch.com)
* cplus-lex.c (yylex): Even in `extern "C"', the keywords are the
same.
* cplus-lex.c (input_from_saved_text): New function. Set string
source for FILE pointer.
(yylex, do_pending_inlines): Call it.
* cplus-parse.y (stmts, stmt): Type is now `tree'. Some actions
fixed to return it.
* cplus-lex.c (reinit_parse_for_block): New function, with most of
the guts of reinit_parse_for_method. Magic argument IS_TEMPLATE
chooses a set of error messages.
(reinit_parse_for_method): Call it.
cplus-template.c (reinit_parse_for_template): New function, also
calls reinit_parse_for_block.
Mon Jan 14 07:20:36 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
* loop.c (skip_consec_insns, move_movables, strength_reduce): Don't
call find_reg_note on a NOTE.
Sun Jan 13 15:45:23 1991 Richard Stallman (rms at mole.ai.mit.edu)
* cccp.c: Separate namespace for assertions. Don't expand macros
inside assertions in #if. Allow arbitrary token sequences.
(rescan): Special handling after `#' if assertions_flag.
(expand_to_temp_buffer): New arg sets assertions_flag. Callers changed.
(eval_if_expression): Pass 1 for that arg.
(skip_paren_group): New function.
(assertion_hashtab, ASSERTION_HASHSIZE, ASSERTION_HASHNODE): New.
(assertion_install, assertion_lookup, delete_assertion): New functions.
(T_ASSERTION): Deleted.
(tokenlist_list): Renamed from arglist_list.
(read_token_list): Renamed from read_keyword_list. Much changed.
Copy the strings into the heap.
(free_token_list): Renamed from free_keyword_list. Free the strings.
(do_assert, do_unassert): Considerably changed.
(check_assertion): Somewhat changed.
(check_macro_name): Extra arg contributes to error message.
* cexp.y (yylex): Parse everything as a name if keyword_parsing.
(rule for assertions): Set, then clear, keyword_parsing.
(keywords): Allow empty sequence. Allow nested parens.
Sat Jan 12 12:18:00 1991 Richard Stallman (rms at mole.ai.mit.edu)
* c-typeck.c (build_unary_op): Make better code for simple casts.
* reload.c (find_reloads): Computing reload_when_needed, don't neglect
operands that don't have output reloads.
* cse.c (refers_to_mem_p): At check_addr, handle PLUS inside CONST.
Sat Jan 12 06:30:56 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
* reorg.c (steal_delay_list_from_*): Add missing argument to calls to
insn_sets_resource_p.
(fill_eager_delay_slots, relax_delay_slots): Add missing argument
to calls to mostly_true_jump.
(relax_delay_slots): Correctly handle case where we can't invert jump.
* reload.c (find_reloads_toplev): If we have a SUBREG of a
pseudo that resides in memory and the address is not offsettable,
substitute for the pseudo now so we can generate a reload for the
address.
Fri Jan 11 14:39:09 1991 Richard Stallman (rms at mole.ai.mit.edu)
* tm-next.h (LIB_SPEC, STARTFILE_SPEC): Don't support -p.
Thu Jan 10 12:26:49 1991 Richard Stallman (rms at mole.ai.mit.edu)
* tm-sun2.h (CC1_SPEC): Define to ignore -sun2 and -target.
(WORD_SWITCH_TAKES_ARG): Define to recognize -target.
(LIB_SPEC): Define; handle -a.
* tm-sun2os4.h: New file.
* tm-m68k.h (TARGET_SWITCHES): Handle -msky and -mnosky.
(TARGET_SKY): New macro.
* tm-next.h (LIB_SPEC): Use -lsys_s, not -lc.
* c-parse.y (yylex): Fix typo.
* genoutput.c (output_prologue): Make insn-output.c use insn-codes.h.
* Makefile.in (insn-output.o): Depend on insn-codes.h.
* Makefile.in (install-headers): Save $(libsubdir) before cd.
* Makefile.in (gnulib): Depend on config.status.
* gnulib2.c (__umulsidi3): Use #else around inline function.
Use __-style names for all machines.
Wed Jan 9 17:06:18 1991 Michael Tiemann (tiemann at cygnus.com)
* out-sparc.c (various places): Change \; to \n\t in printf
strings.
* sparc.md: Change PIC initialization pattern to recognize pattern
that doesn't involve a clobber.
* out-sparc.c: Rest of change is here, where PIC initialization is
emitted.
* cse.c (simplify_unary_operation, simplify_binary_operation):
Correctly adjust VAL for bits outside MODE.
Wed Jan 9 15:45:26 1991 Richard Stallman (rms at mole.ai.mit.edu)
* flow.c (libcall_dead_p): Handle a CALL in a PARALLEL.
Tue Jan 8 13:35:50 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
* expmed.c (emit_store_flag): Correct UNSIGNEDP value passed to
convert_to_mode and expand_unop.
Mon Jan 7 11:56:31 1991 Michael Tiemann (tiemann at cygnus.com)
* gplus.gperf: New keywords for templates and other extensions.
* cplus-lex.c: Incorprate new gperf code.
* cplus-class.c (resolve_scope_to_name): New function.
(build_scoped_method_call): Call `resolve_scope_to_name' instead of
handling by itself.
* cplus-decl.c (pushdecl_class_level): Give forward declaration.
(lookup_nested_type): New function.
(pushtag,lookup_tag,xref_tag): Handle nested classes.
(finish_function): Add comment about obscure argument passing
convention for static method calls (at the call site). Also, don't
call operator delete with NULL pointer. Call it with
`current_class_decl' instead.
(globalize_nested_type): New function. Used when we learn that a
type which initially appeared to be nested should be defined in the
global scope instead.
(grokdeclarator): Call `globalize_nested_type' when grokking an
as-yet undefined class type.
* cplus-dem.c: Updated to handle qualified (i.e. nested) types.
This means handling the new letter `Q' in mangled names.
* cplus-init.c (build_member_call): Handle nested classes using
`resolve_scope_to_name' instead of handling itself.
* cplus-lex.c (typename_scope_in_progress): New static variable to
allow the lexer to figure out what are nested class typenames,
scoped member references, etc., without getting the parser too
involved.
(yylex): Recognize SCOPED_TYPENAME and TYPENAME_SCOPE tokens.
Also, recognize '<' and '>' separately from ARITHCOMPARE so we can
implement templates.
No longer recognizes (X::*) or (X::&) as single tokens.
* cplus-method.c (build_overload_nested_name): New function to build
internal names for nested typenames.
* cplus-parse.y: Handle parameterized type syntax (more or less).
(dummy_decl): Gone!
Nested types are now handled.
* cplus-tree.h (DECL_UNDEFINED_FRIENDS): Moved out of DECL_CONTEXT
slot of TYPE_DECLs. DECL_CONTEXT of typename is now the enclosing
type for nested types.
(DECL_NESTED_TYPENAME): An identifier pointer that makes the name of
the type unique for the compilation.
(IDENTIFIER_*): When initializing, call `perm_calloc', not
permalloc, since non-zero values actually mean something,
and we don't guarantee to initialize everything in one go.
* tree.c (perm_calloc): New function.
* cplus-typeck.c (default_conversion): Don't defaultly convert a
naked METHOD_REF such that it becomes a virtual function table
index. Only let this happen if user requests it with `&'.
* Makefile.in: Handle new source file cplus-template.c.
Mon Jan 7 15:03:53 1991 Richard Stallman (rms at mole.ai.mit.edu)
* c-typeck.c (process_init_constructor): Error if values
provided for an array of empty elements.
* out-i386.c (fp_top_dead_p1): Follow jump only if optimizing.
(fp_call_internal): Discard result if unused. Use fp_top_dead_p1.
* cse.c (cse_insn): In special case for (set REG0 REG1),
change any REG_EQUIV notes to REG_EQUAL.
* tm-sun386i.h (PCC_BITFIELD_TYPE_MATTERS): Define it.
* tm-att386.h (ASM_OUTPUT_LOCAL): Change back to data section.
* genrecog.c (write_tree_1): Typo in printf string.
* flow.c (libcall_dead_p): New arguments NOTE and INSN.
Now test that the hard return reg in the call is dead.
Callers changed.
Mon Jan 7 12:27:07 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
* recog.c (cancel_changes): Cancel changes in opposite order we made
them.
* integrate.c (subst_constants): Only commute operands if op0 is const.
* rtl.def (INLINE_HEADER): Add new integer field.
* rtl.h (POPS_ARGS): New macro for place to save
current_function_pops_args.
(FUNCTION_FLAG_POPS_ARGS): Deleted; no longer a single bit.
* emit-rtl.c (gen_inline_header_rtx): Add new arg for "pops args".
* integrate.c (initialize_for_inline, output_inline_function):
Correctly save and restore current_function_pops_args.
Sun Jan 6 14:10:44 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
* rtl.h (ASM_OPERANDS_INPUT_LENGTH): New macro.
* reload1.c (eliminate_regs): Use ASM_OPERANDS_... macros.
* recog.c (asm_noperands, decode_asm_operands): Likewise.
* rtl.def (IF_THEN_ELSE): Set class to '3'.
* cse.c (simplify_{unary,binary,ternary}_operation): New functions,
from fold_rtx.
(fold_rtx): Call these function to do the bulk of the work.
Use GET_RTX_CLASS to find commutative and comparison operations.
Swap folded_arg[01] when commuting operands.
* rtl.h: Define new functions.
* integrate.c (try_constants): Replace constant folding code with
calls to new functions above.
In commutative operations, put constants last.
* genemit.c (struct clobber_pat): New data structure.
(gen_insn): If pattern ends with a group of CLOBBERs of hard
registers, store this information in a struct clobber_pat.
(output_add_clobbers): New function.
(main): Call it to write code to add CLOBBERs.
* genrecog.c (struct decision): Add new field num_clobbers_to_add.
(make_insn_sequence): If pattern ends with a group of CLOBBERs,
set up to recognize it without the CLOBBERs but to indicate the
number of CLOBBERs omitted.
(add_to_sequence): Initialize num_clobbers_to_add.
Remove unnecessary conditionalization on STORE_FLAG_VALUE.
(break_out_subroutines, write_subroutine, write_tree): Remove
RETURN_PREFIX parameter; TYPE is sufficient.
(write_subroutine): Add extra parameter for recog_* functions.
(write_tree_1): Pass TYPE instead of string for return.
Write out code to return number of CLOBBERs needed.
(write_tree): Add new parameter to recog_*.
(main): Add new parameter to recog.
Don't pass return string to break_out_subroutines and write_tree.
* recog.c (recog_memoized): Pass extra (0) parameter to recog.
* combine.c (recog_for_combine): New function.
(try_combine, simplify_and_cc0, try_distrib): Use it instead of recog.
(reg_dead_at_p, reg_dead_at_p_1): New functions.
* flow.c (mark_set_1): Count in reg_n_sets when a part of a register
is modified.
Update SIGNIFICANT correctly when subreg_p and multiple hard regs.
Compute reg_n_sets for hard registers.
Sun Jan 6 13:41:49 1991 Richard Stallman (rms at mole.ai.mit.edu)
* function.c (locate_and_pad_parm): Do REG_PARM_STACK_SPACE just once.
* Changes by wilson@cygnus.com.
* calls.c (expand_call): Test value of REG_PARM_STACK_SPACE instead
of assuming that it will always be greater than zero.
* function.c (assign_parms): Same as above. Also, correct
calculation of STACK_BYTES.
* reload1.c (reload_reg_free_p): Old input reload blocks input_addr.
Sat Jan 5 18:32:15 1991 Richard Stallman (rms at mole.ai.mit.edu)
* Makefile.in (mostlyclean): New name for old `clean'.
(clean): Deletes gnulib also.
(cleanconfig): Need not delete gnulib here.
* reload.c (push_reload): Don't use dying reg unless operand fits.
* c-parse.y (yylex): Hex and octal constants now traditionally signed.
Sat Jan 5 18:03:50 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
* regclass.c (regclass): reg_n_sets is one per set. It does not
take into account loop_depth. So don't adjust by loop_depth here.
Fri Jan 4 13:18:07 1991 Richard Stallman (rms at mole.ai.mit.edu)
* function.c (put_var_into_stack): Don't mung virtual reg.
(fix_lexical_addr): Accept the virtual arg pointer.
* function.h (struct var_refs_queue): New structure.
(struct function): Use that for the pending var refs queue.
* print-tree.c (print_node): Nicer format for rtl of decls.
* c-decl.c (push_c_function_context, pop_c_function_context):
No need to deal with current_function_decl.
* c-parse.y (nested_function): Delete spurious nonterminal.
Fri Jan 4 12:13:14 1991 Michael Tiemann (tiemann at cygnus.com)
* cplus-class.c (modify_vtable_entries): In case we are modifying
the main vtable, start with the vtable that comes from the immediate
baseclass, not the most base class. This is needed because later
fixups (for non-first and virtual baseclasses) do not fix up this
case.
Fri Jan 4 06:55:00 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
* optabs.c (expand_binop): Fix typo in testing for SImode operation.
Generalize to apply in more cases by calling emit_store_flag rather
than doing the gen_sltu explicitly.
* expmed.c (store_bit_field, extract_bit_field): When insv/extv
don't allow MEM and we need to load the field into a register, don't
use the mode of OP0 if it is wider than the mode to be used for
insv/extv operating on a register.
* expmed.c (emit_stor_flag): Try to convert some comparisons with
1 and -1 to comparisons with zero.
Explicitly test sign bit of STORE_FLAG_VALUE rather than testing it
for being less than zero.
* cse.c (find_comparison_args): Don't compute STORE_FLAG_VALUE < 0;
instead, test the relevant sign bit.
Use GET_RTX_CLASS instead of comparison_code_p.
* loop.c (get_condition): Likewise.
* recog.c (validate_change): Eliminate duplicate code by always
saving the change. If in_group == 0, call apply_change_group.
(apply_change_group): If recog_memoized fails, see if we have a
CLOBBER at the end. Use validate_change to replace the pattern
with one without the CLOBBER if so; later we will verify that change.
* tree.c (stabilize_reference_1): Now static; also, define as forward
reference at start of file.
* rtl.def: Add new field in DEF_RTL_EXPR macro to give the "class"
of the rtx operation.
* rtl.h: DEF_RTL_EXPR has one additional arg.
(rtx_class, GET_RTX_CLASS): New var and macro.
* rtl.c: DEF_RTL_EXPR has one additional arg.
(rtx_class): Initialize table.
* reload.c (push_reload): If an input operand contains a dead
register used nowhere else in the insn, try to use it as a reload reg.
* reload1.c (reload_as_needed): If cancelling optional reload,
clear reload_reg_rtx.
(choose_reload_regs): If we can find reload value lying around,
use that register unless choice made by find_reloads would also save
an insn (the new choice added above won't).
* genoutput.c: Update comments on things written. Change order to
agree with the order written.
(output_epilogue): Remove extraneous tests.
Thu Jan 3 13:32:54 1991 Richard Stallman (rms at mole.ai.mit.edu)
* rtl.c (read_rtx): Cast NULL vector.
* By Jim Wilson.
* tree.c (stabilize_reference): Modified to call stabilize_reference_1
instead of save_expr.
(stabilize_reference_1): New function. For arithmetic operator trees,
recurse on the subtrees. Otherwise, put a SAVE_EXPR around the
tree if it has side-effects.
Thu Jan 3 12:37:56 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
* reload1.c (choose_reload_regs): Only set reload_when_needed to
RELOAD_FOR_OUTPUT or RELOAD_FOR_INPUT when it used to be RELOAD_OTHER.
Wed Jan 2 18:28:23 1991 Richard Stallman (rms at mole.ai.mit.edu)
* emit-rtl.c (init_emit_once): Fix typo setting constm1_rtx.
Wed Jan 2 07:53:04 1991 Michael Tiemann (tiemann at cygnus.com)
* sparc.md (fix_truncdfsi2 recognizer): xoperands must have 3
elements because `output_fp_move_double' can write to operands[2].
Wed Jan 2 17:16:20 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
* calls.c (emit_call_1): If we have call_pop, use it if we have
no stack arguments.
* out-vax.c (relational_op): Deleted, redundant.
* vax.md (branch): Use comparison_operator (in recog.c) instead of
relational_op.
* tm-vax.h (PRINT_OPERAND_PUNCT_VALID_P): "C" is not punctuation.
* reload1.c (reload_as_needed, forget_old_reloads_1): Don't clear
reg_has_output_reload and reg_is_output_reload for each insn, just
ones that need reload. Instead, interpret each entry as zero if
n_reloads == 0.
Wed Jan 2 15:52:13 1991 Richard Stallman (rms at mole.ai.mit.edu)
* optabs.c (expand_binop): Fix typos.
* toplev.c (rest_of_compilation): Clear cse_not_expected after loop.
* rtl.h (cse_not_expected): Declare here.
* expr.h: Not here.
Tue Jan 1 21:55:11 1991 Richard Stallman (rms at mole.ai.mit.edu)
* emit-rtl.c (constm1_rtx): New standard constant.
(gen_rtx): Use it when appropriate.
(init_emit_once): Initialize it.
* out-vax.c (split_quadword_operands): New function.
(relational_op): Likewise.
* vax.md (extendsidi2, adddi3, subdi3): New patterns.
(movdi): Use clrq when appropriate.
(movaq recognizer): New pattern.
* recog.h (OUT_FCN): New macro.
* genoutput.c: Include recog.h in output file. No
longer define "const", since that happens in recog.h.
* tm-vax.h (PRINT_OPERAND): Add 'C' to print a reversed condition.
* out-vax.c (rev_cond_name): Return its name.
* vax.md (unnamed patterns): Combine several reversed branch patterns
into one, using match_operator with relational_op and "%C".
* optabs.c (expand_binop): Handle multi-word addition and subtraction.
* Makefile.in (install-gnulib): Use RANLIB_TEST. Use libg_dir.
(libg_dir): New customization variable.
* assert.h (__assert): Use standard GNU format for error messages.
Tue Jan 1 21:25:00 1991 Richard Kenner (kenner at vlsi1)
* reload1.c (eliminate_regs, case PLUS): Always move constant to the
outside of a PLUS expression.
Tue Jan 1 11:45:22 1991 Richard Stallman (rms at mole.ai.mit.edu)
* ecoff-cmp: Specify `c' in option to tail.
* stor-layout.c (layout_record, layout_union, layout_type):
Use ROUND_TYPE_ALIGN and ROUND_TYPE_SIZE to compute
alignment and size of records, unions and arrays.
* ROUND_TYPE_ALIGN: New. Args are type, spec'd align, other min align.
* ROUND_TYPE_SIZE: New. Args are type, size of contents, align.
* reload1.c (emit_reload_insns) [PRESERVE_DEATH_INFO_REGNO_P]:
Scan output and output-address reloads together.
Check for matching hard reg.
* config.gcc: Set proper shell vars in big dispatch. Not `machine'.
(i386-isc): New alternative.
Tue Jan 1 08:29:49 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
* reorg.c (update_block): Turn bb_tick update back on; it is needed,
after all.
Mon Dec 31 18:12:07 1990 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
* genattrtab.c (write_test_expr, case EQ_ATTR): Use correct expression
number for attribute value.
* cse.c (cse_insn): Use single_set when looking for an insn that sets
cc0 followed by one that no longer does.
* recog.c (find_single_use): If the next insn after one that sets
cc0 is not an INSN or JUMP_INSN, return 0; don't blow up on a NOTE.
* emit-rtl.c (emit_insn_before, emit_insn_after, emit_insn): Return
something sensible if a SEQUENCE of length zero was passed.
We no longer make a SEQUENCE with XVEC == 0, so don't test for it.
* reload1.c (emit_reload_insns): Handle gen_move_insn returning
no insns (occurs on RT for dummy registers).
* rtl.h (reg_cc0_rtx, find_cc): No longer needed.
* emit-rtl.c: Likewise.
* conditions.h: Entire file is #ifdef HAVE_cc0.
* final.c (CC_STATUS_INIT): Make a null default #ifndef HAVE_cc0.
(cc_status): No longer exists #ifndef HAVE_cc0.
(final_scan_insn): Do CC processing only #ifdef HAVE_cc0.
(alter_cond): Only exists #ifdef HAVE_cc0.
* genemit.c (gen_exp): No longer have CC0_REGNUM or reg_cc0_rtx.
* genoutput.c (main): Include insn-config.h before conditions.h.
* reorg.c: Likewise.
* jump.c (rtx_equal_for_thread_p): Remove reference to CC0_REGNUM;
we'll have to do this optimization some other way later.
* tm-a29k.h (NOTICE_UPDATE_CC): Deleted.
Mon Dec 31 14:44:31 1990 Richard Stallman (rms at mole.ai.mit.edu)
* reload.h (enum_reload_when_needed):
New alternatives RELOAD_FOR_OUTPUT, RELOAD_FOR_INPUT.
* reload1.c (choose_reload_regs): Use those when appropriate.
(mark_reload_reg_in_use): Record this usage specially.
(reload_reg_free_p, reload_reg_free_before_p): Handle this usage.
(reload_reg_reaches_end_p): Likewise.
(emit_reload_insns): Treat RELOAD_FOR_INPUT like RELOAD_OTHER.
* i386.md (push for SFmode): Operand of fst was missing.
Mon Dec 31 08:50:17 1990 Craig Burley (burley at pogo.ai.mit.edu)
* stor-layout.c (layout_type): For ARRAY_TYPE case, don't try
and compute a size if there is no TYPE_MAX_VALUE for the index.
* tree.c, tree.h (build_index_2_type): New function, like
build_index_type except it accepts the low value as an arg instead
of assuming 0.
Mon Dec 31 08:09:10 1990 Michael Tiemann (tiemann at cygnus.com)
* cplus-typeck.c (c_expand_return): Handle case when we try
to return a void value (such as a void function call) in a
function returning void, and there are cleanups to run.
Sun Dec 30 21:08:32 1990 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
* tm-a29k.h (TARGET_VERSION): Can't use target_flags since we can
be called from gcc.c.
* tm-rs6000.h (REG_ALLOC_ORDER): Put r12 after r13; it might be
holding a DImode value and so might be very expensive (we won't
worry about TImode).
* rs6000.md (subtract patterns): Fix incorrect operand number in %I.
(movti): Disallow indexed memory operands.
* out-rs6000.c (print_operand, case 'm'): Fix typo.
(includes_rshift_p): Correctly compute mask.
* out-a29k.c (output_operand): Add missing parentheses.
(print_operand): Replace if/then/else structure with switch statement.
* a29k.md (beq, bne): Try to use NE test whenever possible; it
will produce better code if we have bit-tests.
Sun Dec 30 12:02:03 1990 Michael Tiemann (tiemann at cygnus.com)
* tm-sparc.h (PRINT_OPERAND): Put 'R' case before REG so that it
takes when 'R' is passed in as CODE. Also, handle 'B' letter.
* sparc.md: (pattern for converting DFmode to SImode): Second
argument to `output_asm_insn' should be `operands', not zero.
(tablejump): The jump insn is "jmp", not "jump".
(gen_fixtruncdfsi2): operands[2] should get the pseudo, not
operands[3] (which is nonexistent).
(call): Fix typo which had %o7 being emitted as %o.
(various patterns): Fixed places where match_operand had the wrong
operand number.
Sat Dec 29 17:27:00 1990 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
* sparc.md: cc_status no longer handles condition code updates.
Instead, condition codes are explicitly set and used via
hard register 0. Special attributes specific to condition codes
(such as whether conditional branches should test the integer or