-
Notifications
You must be signed in to change notification settings - Fork 3
/
ChangeLog.3
8063 lines (6175 loc) · 331 KB
/
ChangeLog.3
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
Fri Jul 19 18:56:14 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
* cse.c (canon_reg): Allow for recursive call returning 0 (if we had
an EXPR_LIST).
* sched.c (init_aliases_analysis): Ignore REG_EQUAL note when its value
is an EXPR_LIST.
* unroll.c (loop_iterations): Likewise.
* rs6000.md (andsi3): Fix typo in and-with-cc pattern.
Fri Jul 19 11:23:22 1991 Tom Wood (wood at dg-rtp.dg.com)
* toplev.c (set_target_switch): For TARGET_OPTIONS, set the
variable to the variable part of the actual option.
* tm-m88k.h, out-m88k.c: Change the use of m88k_short_data.
* varasm.c (output_constant_def): Merge get_or_assign_label and
delete it. Ensure that ENCODE_SEGMENT_INFO is evaluated before
SELECT_SECTION.
Thu Jul 18 19:57:45 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
* expr.h (MUST_PASS_IN_STACK_BAD_PADDING): Definitions were backwards.
Thu Jul 18 17:52:46 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu)
* unroll.c: Fix typos in comments.
(splittable_regs_updates): New static global variable.
Indicates the number of instructions that modify a split biv
remaining during the last iteration of a loop, so that the last one
can be handled specially.
(unroll_loop): Allocate and clear it.
(copy_loop_body): Use it to determine how to rewrite an insn
modifying a split iv.
(find_splittable_regs): When a splittable biv is identified, set it
equal to the number of insn modifying the biv.
(find_splittable_givs): When a splittable giv is identified, set
it to one if this giv is a reg.
* unroll.c (copy_loop_body): Instead of trying to special case
insns that use start_label, use the label_map to map the start
label to the appropriate label for all insns except those that
must be inverted and redirected. The former code did not handle
tablejumps that used the start_label correctly.
* integrate.c (copy_rtx_and_substitute): Don't legitimize an
address inside of an ADDRESS rtx. This fails, because this need
not be a validate address, but it is always valid in the context
it appears in.
Thu Jul 18 08:13:56 1991 Tom Wood (wood at dg-rtp.dg.com)
* toplev.c (set_target_switch): Support TARGET_OPTIONS for command
options with values.
* varasm.c (output_constant_def): Set flags with
ENCODE_SEGMENT_INFO for strings and constructors.
* tm-mips.h (ENCODE_SEGMENT_INFO): Must be a VAR_DECL.
* out-m88k.c, tm-m88k.h, m88k.md: Implement a global pool approach
to short addressing.
* m88k.md (extendsfdf2, truncdfsf2): Use fsub rather than fadd.
This conforms to IEEE 754 in all rounding modes except round to
negative infinity whereas fadd conforms only in that mode.
Thu Jul 18 01:01:37 1991 Eric Youngdale (youngdale at v6550c.nrl.navy.mil)
* make-cc1.com: Add command line to compile reg-stack.c, and add
reg-stack.obj to the list of files passed to the VMS linker.
Thu Jul 18 00:11:00 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
* Makefile.in (enquire.o): Need not depend on gnulib.
(gnulib2): Renamed from gnulib2.portable.
Don't do ranlib.
(gnulib2.portable): Just refers to gnulib2.
(gnulib1.portable): Don't do ranlib.
Wed Jul 17 11:19:09 1991 Michael Meissner (meissner at geech.gnu.ai.mit.edu)
* Makefile.in (gcc): Do a -dumpspecs after building gcc so that -B./
will override any installed specs in /usr/local/lib.
(mostlyclean): Delete *.cpp files which are left if you use
-save-temps.
Wed Jul 17 06:08:33 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
* combine.c (try_combine): When putting I2 and/or I1 into NEWPAT,
check for a PARALLEL; if so, just put in the relevant SET instead
of making a PARALLEL containing a PARALLEL.
Tue Jul 16 18:58:51 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
* combine.c (record_value_for_reg): Show we haven't seen the death
of a register once we have seen it modified.
* reload1.c (reload): If we decide to put a pseudo which used to have
a MEM equiv onto the stack, set SOMETHING_CHANGED and reprocess all
eliminations and pseudos without scanning the insns.
Tue Jul 16 13:17:14 1991 Michael Meissner (meissner at wookumz.gnu.ai.mit.edu)
* cplus-decl.c (sigsegv): Make signal handler void for full
prototyping systems.
Tue Jul 16 12:25:18 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
* dbxout.c (dbxout_symbol): Ignore types with no names of any kind.
Tue Jul 16 07:12:52 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
* stmt.c (pushcase, pushcase_range): Return label in *DUPLICATE,
not integer value.
* rtlanal.c (reg_referenced_p, reg_overlap_mentioned_p): Allow X to
be (cc0) or (pc).
* combine.c (subst, case SET): Delete code to remove "unnecessary"
SUBREG; code was incorrect and this is done (corrected below) in
simplify_comparison.
(simplify_comparison): Can only remove SUBREG for equality comparisons.
* expr.c (expand_expr, case COND_EXPR): If condition has side effects,
ensure we evaluate it before evaluating an arm of the COND_EXPR.
Mon Jul 15 21:59:36 1991 James Van Artsdalen (james at bigtex.cactus.org)
* rtl.h (FUNCTION_FLAGS_RETURNS_STRUCT): Fix typo in value.
Mon Jul 15 22:18:40 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
* cccp.c (main): Ignore CPATH if -nostdinc.
Mon Jul 15 22:00:02 1991 Michael Meissner (meissner at churchy.gnu.ai.mit.edu)
* reload.c (find_reloads): Fix typo (reg_sets_p instead of
reg_set_p).
Mon Jul 15 21:49:09 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
* c-parse.y (stmt): Emit the nop for the start of a loop
only after the line number.
Mon Jul 15 16:50:51 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edn)
* rtlanal.c (reg_set_p): If we are passed an insn, only pass the
pattern to note_stores.
* local-alloc.c (validate_equiv_mem): A CALL_INSN invalidates all
memory.
Sun Jul 14 06:34:47 1991 Richard Kenner (kenner at vlsi1.ultra.hyu.edu)
* cse.c (last_jump_equiv_class): New variable.
(record_jump_equiv): Set it.
(cse_insn): Clear it.
(cse_around_loop): Invalidate all entries in last_jump_equiv_class.
(cse_set_around_loop): Ensure our replacement is cheaper.
Sat Jul 13 17:15:30 1991 James Van Artsdalen (james at bigtex.cactus.org)
* cplus-decl.c (finish_enum): Fix typo in arguments for finish_decl.
* cplus-class.c (finish_struct): Likewise.
Fri Jul 12 16:45:02 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
* dbxout.c (dbxout_symbol): Don't crash when DECL_NAME is 0.
Fri Jul 12 15:38:24 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
* expr.c (do_tablejump): Don't write BARRIER between jump and table
if they must remain adjacent.
* varasm.c (make_decl_rtl): Set REG_USERVAR_P when register name
is specified.
* integrate.c (subst_constants): Don't substitute for a user
variable assigned to a hard register.
* reload.c (find_reloads): Add new vars no_{input,output}_reloads to
indicate when the corresponding reload type is not permitted; reject
an alternative that would try such a reload.
* rs6000.md (decrement-and-branch): No longer need kludges to
avoid output reloads.
Use '0' instead of 'c' for input 1 in alternative 0.
Allow operand 0 to be in non-general register.
Fri Jul 12 10:54:39 1991 James Van Artsdalen (james at bigtex.cactus.org)
* c-decl.c (finish_struct, finish_enum): Fix typo in arguments for
finish_decl.
* i386.md (bit test patterns): Delete bit tests using implicitly
masked bit number operand: the hardware doesn't work like that.
Fri Jul 12 09:50:43 1991 Michael Meissner (meissner at spiff.gnu.ai.mit.edu)
* tm-hp9k2bsd.h (toplevel): Remove RCS HISTORY log.
Thu Jul 11 00:46:48 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
* c-parse.y (yylex): Do try signed int for ANSI nondecimal constants.
* c-typeck.c (record_format_info): The first time, use xmalloc.
Wed Jul 10 18:54:26 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
* jump.c (jump_optimize): Fix typo in "if (...) x = a; else x = b;"
case: had temp3 instead of temp4.
* cplus-lex.c (lineno, end_of_file): Move definition to before
first use.
(reinit_parse_for_block): Variable `c' must be int to ensure EOF fits.
* cplus-input.c (getch): Remove extraneous declaration of end_of_file.
* reload1.c: Include insn-flags.h.
(emit_reload_insns): Handle the case where we reload an entire
address; use "reload_load_address" pattern, if it exists.
Remove explicit SImode reference; should have been Pmode, but
IN can be used instead of rebuilding it.
* Makefile.in (reload1.o): Includes insn-flags.h.
* reload.c (find_reloads): If replacing an output REG with a MEM,
write a CLOBBER for the REG after the insn.
* reload1.c (eliminate_regs): Add new arg INSN; if nonzero, add a
CLOBBER when replacing a REG in SET_DEST with a MEM.
(reload, eliminate_regs_in_insn): Add new arg to eliminate_regs.
* dwarfout.c (output_bound_representation, location_attribute):
Likewise.
* reload1.c (reload): If a reg_equiv_memory_loc isn't strictly valid
and isn't sufficiently simple, use a stack slot instead.
(alter_regs): Don't delete reg_equiv_init insns here.
(reload_as_needed): Do it here.
* stor-layout.c (get_best_mode): Correct test for alignment.
* loop.c (move_movables): Don't get confused by NOTE insns in gnulib
call sequence.
Wed Jul 10 18:40:32 1991 Matthew Self (mself at geech.gnu.ai.mit.edu)
* cccp.c (enum node_type): Added T_WARNING.
* cccp.c (directive_table): Added #warning.
* cccp.c (do_warning): Print warning message and continue.
Wed Jul 10 18:38:28 1991 Matthew Self (mself at geech.gnu.ai.mit.edu)
* c-parse.y, objc-parse.y (attrib): Pass "format" attribute
through. Takes one identifier and two constants as args.
identifier must be either printf or scanf.
* c-common.c (decl_attributes): Process "format" attributes.
Call new routine record_format_info().
* c-typeck.c (struct function_info): Changed function_ident field;
store identifier node rather than char * to speed lookup.
Renamed arg_num field to format_num. Replaced is_varargs field
with new first_arg_num field.
* c-typeck.c (check_format): Modified to use new arg_num and
first_arg_num fields.
* c-typeck.c (record_format_info): New routine. Replaces static
table of functions to check.
* cplus-typeck.c (record_format_info): New stub routine so c++
will link. Someone should implement format checking for c++.
* c-typeck.c (init_format_info_table): New routine to add
entries for ANSI functions to table.
* c-decl.c (init_decl_processing): Call init_format_info_table().
* c-typeck.c (build_function_call): Modified to use dynamic table
rather than static one. Compare identifier nodes rather than
using strcmp().
* gcc.texinfo (): Document "format" attribute.
* c-typeck.c (check_format): Call warning() directly rather than
returning the warning string. This way we can give multiple warnings
by continuing. Several changes to make continuing safe.
* c-typeck.c (build_function_call): Incorporated changed return
value of check_format().
* c-typeck.c (check_format): Check for NULL format string.
Wed Jul 10 16:40:54 1991 Tom Wood (wood at dg-rtp.dg.com)
* sdbout.c (sdbout_tags): Delete this and use the TYPE_DECL
representation of tagged types. Types are now output in their
original lexical order.
(sdbout_symbol): Return early (only using sdbout_one_type) when a
tagged type is encountered.
(sdbout_block, sdbout_symbol): Don't use sdbout_tags.
* toplev.c (compile_file): Don't use sdbout_tags.
* varasm.c (assemble_function): Don't use sdbout_tags.
Wed Jul 10 15:13:33 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
* dbxout.c (dbxout_tags): Function deleted. Calls deleted too.
(dbxout_tagged_type): New function.
(dbxout_symbol): Call that.
* toplev.c (compile_file): Call to dbxout_tags deleted.
* c-parse.y (yylex): Simplify choice of type for integers.
When traditional, all integers are signed unless explicitly unsigned.
Wed Jul 10 13:35:27 1991 Tom Wood (wood at dg-rtp.dg.com)
* configure (m88k-svr4): Needs make-m88ksvr4.
* make-m88ksvr4: New file.
Wed Jul 10 13:18:03 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
* c-decl.c (duplicate_decls): Warn if `inline' is not consistent.
* cccp.c (hack_vms_include_specification): Fix typos.
Tue Jul 9 22:21:22 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
* loop.c (find_and_verify_loops): RETURN insns aren't listed in
loop_number_exit_labels, so don't try to remove JUMP_LABEL of a
RETURN from that list.
* rtlanal.c (reg_referenced_between_p): New function.
* jump.c (jump_optimize): Use it instead of reg_used_between_p when
checking for "if (...) x = a; else x = b;" case.
Tue Jul 9 13:03:53 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
* expr.c (move_block_to_reg): Don't force_const_mem on non-constant.
Tue Jul 9 09:13:32 1991 Tom Wood (wood at dg-rtp.dg.com)
* c-decl.c (finish_struct): Record tagged types as a TYPE_DECL
with a NULL DECL_NAME.
(finish_enum): Ditto.
* cplus-decl.c (finish_enum): Ditto.
* cplus-class.c (finish_struct): Ditto.
* dbxout.c (dbxout_symbol): Ignore TYPE_DECLs for tagged types.
* cplus-dbxout.c (dbxout_symbol): Ditto.
* sdbout.c (sdbout_symbol): Ditto.
* toplev.c (compile_file): DECL_NAME may be null.
* dwarfout.c (output_symbol): Use output_dies_for_tagged_type for
TYPE_DECLs of tagged types.
(dwarfout_output_tagged_type): Deleted.
(output_dies_for_tagged_type): Mark TREE_ASM_WRITTEN early.
Mon Jul 8 19:36:44 1991 Tom Wood (wood at dg-rtp.dg.com)
* jump.c (jump_optimize): Check for extra labels when detecting
"if (...) x = a; else x = b;". Include the insn for "x = a;" when
testing for data conflict.
Mon Jul 8 19:34:14 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
* integrate.c (copy_for_inline, case MEM): Must copy a MEM even if
it has a constant address if that address involves a LABEL_REF.
* rtlanal.c (reg_set_p): Only check for REG_INC notes and a CALL_INSN
if we are passed an insn.
* local-alloc.c (optimize_reg_copy): Remove tests now done in
reg_set_p.
Mon Jul 8 16:38:49 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
* c-parse.y (yylex): Pedantic warning here for `asm'.
No warning for `__asm__'.
(maybe_type_qual, maybeasm, extdef): No warning here.
* objc-actions.c: Rename OBJC_SELS_R_INTS to OBJC_INT_SELECTORS.
Rename OBJC_UNIQUE_SELS to OBJ_NONUNIQUE_SELECTORS, reversing sense.
Eliminate OBJC_SELS_R_STRUCT_PTRS.
Mon Jul 8 06:37:00 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
* rtlanal.c (reg_{used,set}_between_p): Allow FROM_INSN == TO_INSN;
return 0 in that case.
* jump.c (mark_jump_label): Fix typo in use of GET_RTX_LENGTH.
* reload.c (reload_strict_low): Change comment to say that this is
always zero; we don't use it any more.
Sun Jul 7 22:14:13 1991 Michael Meissner (meissner@churchy.gnu.ai.mit.edu)
* tm-mips.h (FRAME_POINTER_REQUIRED): Fix typo that required a frame
if alloca was not called, instead of the reverse.
Sun Jul 7 17:14:17 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
* cccp.c (struct file_buf): New field system_header_p.
Everything that pushes on instack now initializes this field.
(finclude): New arg to set that field. Callers changed.
(do_include): Pass that arg as 1 for <...>, else 0.
* cccp.c (do_include): Warn for first use of #import
except in system header files.
(handle_directive): Support #import if compiling for Next.
* cccp.c (do_pragma): For #pragma once, warn it is obsolete.
Sun Jul 7 14:29:04 1991 James Van Artsdalen (james at bigtex.cactus.org)
* tm-att386.h (NO_DOLLAR_IN_LABEL): Define this here,
* tm-i386sco.h (NO_DOLLAR_IN_LABEL): not here.
Sun Jul 7 06:20:03 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
* rtlanal.c (reg_set_p): Return 1 if REG is found in a REG_INC
note or if INSN is a CALL_INSN and REG is a hard reg.
(reg_set_last): Only return a register or constant; if returning a
register, ensure it isn't modified between the SET we found and INSN.
* jump.c (jump_optimize): If SMALL_REGISTER_CLASSES, don't make a
store-flag insn if any register involved is a hard reg.
Sat Jul 6 14:51:15 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
* expr.c (expand_assignment): Don't abort for volatile structure field
even if the structure is in a register.
NOTE: This leaves the problem of implementing whatever meaning
a volatile field should actually have.
* fold-const.c (div_and_round_double): Make lnum and lden unsigned.
Use the small-denominator algorithm only for denom < 2**24.
Fix backward conditionals in ?: operators in general case.
Change i + j to i - 1 + j when indexing num.
Fri Jul 5 21:36:57 1991 Ken Raeburn (raeburn at watch.com)
* genpeep.c (match_rtx, case MATCH_OP_DUP): Output semicolon after
"goto" statement.
Fri Jul 5 09:45:56 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
* rs6000.md (andsi3): Bias alternatives so we always prefer constants.
(define_splits of DImode, SFmode, and DFmode): Don't split
unless after reload.
(ashldi3, lshrdi3): Fix bugs in instruction order; use & in
output constraint so can't conflict with operand 2; use '0'
constraint to allow operands 0 and 1 to be the same register.
* regclass.c (reg_n_sets): Move definition before use.
* reorg.c (fill_simple_delay_slots): Candidate for delay slot cannot
set anything set between it and the delay insn.
* jump.c (jump_optimize): In "if (...) x = a; else x = b;", correctly
specify range to check if X is used or set.
Use rtx_equal_p to check for matching X.
Thu Jul 4 15:55:45 1991 Tom Wood (wood at geech.gnu.ai.mit.edu)
* cccp.c (default_include): Add /usr/mach/include for MACH systems.
* configure (m88k-luna): Needs make-m88kluna.
* make-m88kluna: New file.
* dwarf.h: New file derived from the UNIX International
Programming Languages Special Interest Group DWARF specification.
* dwarfout.c (includes): Include "dwarf.h".
(subscript_data_attribute): Use FMT_CODE to encode array subscripts.
(languagribute): LANG type no longer provided by dwarf.h.
(output_source_file_die): Determine proper language attribute.
Thu Jul 4 12:14:16 1991 James Van Artsdalen (james at bigtex.cactus.org)
* cplus-xref.c: define rindex if USG
Thu Jul 4 12:36:55 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
* gcc.c (process_command): Correctly split -L from its arg.
* SWITCHES_NEED_SPACES: New host machine option.
This really ought to be defined now for certain hosts,
but I don't know which ones they are.
Wed Jul 3 23:31:00 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
* tm-m68k.h (ASM_OUTPUT_FLOAT): Check CROSS_COMPILE (there was a typo).
Wed Jul 3 22:05:55 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
* cse.c (simplify_binary_operation, case MINUS): Fix typo in op number.
* cse.c (cse_basic_block): Correctly handle the case where TO
was a label with zero uses at the end of the function.
* combine.c (significant_valid): New variable.
(combine_instructions): Turn significant_valid off until after
we finished computing reg_significant.
(significant_bits): Ignore reg_significant when significant_valid
is zero.
* rtlanal.c (reg_set_last): Go past CALL_INSN as long as we are not
looking for a hard register.
Wed Jul 3 21:07:18 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu)
* sched.c (schedule_block): When computing what registers are dead
at the end of the current block, correctly handle REG_DEAD notes
that refer to multi-word hard registers.
* loop.c (mark_loop_jump): When invalidating loops with multiple
entries, must invalidate every nested loop containing the target
of a loop entry jump, except for those that also contain the jump
itself.
* loop.c (record_giv): When computing whether a giv is
replaceable, check whether the biv update has a valid luid, and
mark it as not replaceable if not.
* combine.c (gen_rtx_combine): Call rtx_alloc instead of gen_rtx,
because it is much faster, especially on some RISC machines.
* fixincludes: Add optional argument which indicates where to put
the fixed include files. Echo the directory name where the
include files will be put.
* cccp.c (struct default_include): Don't examine
STANDARD_INCLUDE_DIR or /usr/local/include when
NO_STANDARD_INCLUDE_DIR is defined. This is useful when building
cross compilers.
(main): Only send SIGPIPE signal if the SIGPIPE signal exists on
the host.
(rescan, handle_directive, skip_if_group, validate_else,
skip_to_end_of_comment, macarg1, discard_comments): Accept '//' as
a comment in Objective-C as well as C++. The Objective C language
specifies that '//' starts a comment.
* .gdbinit (ptn): Define new macro to print out the name of a type
node.
* stab.def: Correct errors in table for values of DSLINE and
BSLINE. Document the conflict between BROWS and BSLINE. Document
the value of the BROWS field.
Tue Jul 2 23:26:20 1991 Michael Meissner (meissner at pogo.gnu.ai.mit.edu)
* mips-tfile.c (toplevel): Add a comment explaining the MIPS ECOFF
file format at the start of the file.
Tue Jul 2 14:00:39 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
* c-typeck.c (build_array_ref): Report error here if the "array"
is not an array or pointer. Don't leave this for the PLUS_EXPR.
* cccp.c: Inlcude containing file names/lines in error messages.
(print_containing_files): New function.
(error*, warning): Call it.
(finclude): Increment input_file_stack_tick when file changes.
* cccp.c: Include descrip.h.
Tue Jul 2 07:44:19 1991 Tom Wood (wood at geech.gnu.ai.mit.edu)
* tm-m88k.h (ASM_OUTPUT_SOURCE_LINE): Define only for SDB.
* tm-m88kdgux.h (AS_BUG_*): Support these for now.
* c-decl.c (finish_struct): Invoke dwarfout_output_tagged_type
only when producing DWARF debugging info.
* cplus-class.c (finish_struct): Ditto.
Mon Jul 1 23:03:34 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
* toplev.c (compile_file): Close stack_reg_dump_file iff STACK_REGS.
Mon Jul 1 15:17:57 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
* combine.c (set_significant): Ignore CLOBBERs.
(simplify_and_const_int, case SUBREG): Only ignore paradoxical SUBREGs
if BYTE_LOADS_ZERO_EXTEND.
(record_value_for_reg): Fix typo; had I for REGNO.
Mon Jul 1 08:28:09 1991 Tom Wood (wood at dg-rtp.dg.com)
* final.c (output_source_line): Output DWARF line numbers.
* dwarfout.c (dwarfout_output_tagged_type): New function.
* c-decl.c (finish_struct): Call it.
* cplus-class.c (finish_struct): Call it.
* dwarfout.c (includes): Need insn-config.h and reload.h.
(location_attribute): Use eliminate_regs for correct expression.
(output_bound_representation): Use SAVE_EXPR_RTL to get rtl and
then use eliminate_regs.
* reload1.c (reload): When finished, indicate reg_equiv_constant
and reg_equiv_memory_loc are no longer valid.
(eliminate_regs): Don't attempt use of reg_equiv_constant or
reg_equiv_memory_loc if they aren't valid. No longer static.
* reload.h: Declare eliminate_regs.
* toplev.c (compile_file): Only call dwarfout_file_scope_symbol
for VAR_DECLs.
Sun Jun 30 15:49:39 1991 Ken Raeburn (raeburn at watch.com)
* expr.c (expand_builtin, case BUILT_IN_MEMCPY): If alignment test
fails, and function was really BUILT_IN_STRCPY, zero out length
parameter before expanding call.
Sun Jun 30 18:27:14 1991 Richard Kenner (kenner at vlsi1.ultra.nyu)
* jump.c (jump_optimize): In "if (...) x = a; else x = b;", don't
move the "x = b;" if the test modifies X or if X is a hard register
and SMALL_REGISTER_CLASSES is defined.
Turn "if (...) x = 1; else {...} if (x) ..." code on when we have cc0.
Sun Jun 30 13:49:03 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
* gnulib2.c (__builtin_saveregs):
For i860, make data structure fit in with va-i860.h.
* tree.c (gcc_obstack_init):
Support OBSTACK_CHUNK_ALLOC and OBSTACK_CHUNK_FREE.
* calls.c (prepare_call_address): 3rd arg now address of chain var.
(expand_call): Call changed.
* expr.c (emit_library_call): Call changed.
* function.c (fix_lexical_addr): In recursive call, pass slot address.
* Makefile.in (cse.o): Added deps.
* Makefile.in (GNULIB2_CFLAGS): Use -O2.
* gnulib1.c, gnulib2.c (abort): Undefine only if defined.
* genattr.c (main): Fix typo in comment end.
Sat Jun 29 21:57:28 1991 Torbjorn Granlund (tege at zevs.sics.se)
* longlong.h (__sparc8__ umul_ppmm): Insert 3 nop:s for wr delay.
* longlong.h (___IBMR2__): Define umul_ppmm, add_ssaaaa, sub_ddmmss..
* longlong.h (__sparc__): Don't call .umul; expand asm instead.
Don't define __umulsidi3 (i.e. use default definition).
Sat Jun 29 06:25:19 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
* tm-vax.h (CPP_SPEC): New macro.
(LIB_SPEC): Handle -mg.
* cccp.c (install_builtins): Fix backward test of objc.
* fold-const.c (size_int): No need to test sign of NUMBER.
* gcc.c (process_command): Split -L from its arg.
* gcc.c (S_ISREG): Define if not defined.
(delete_temp_files): Use it.
* limits.h (UCHAR_MAX, CHAR_MAX, USHRT_MAX): Delete `U'.
(LONG_MAX, ULONG_MAX): Add `L'.
Fri Jun 28 22:22:58 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu)
* Makefile (realclean): Delete stage1, stage2, stage3.
* gcc.c (fatal) [HAVE_VFPRINTF]: Do print program name.
Fri Jun 28 15:34:08 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu)
* out-sparc.c (output_block_move): Correctly handle the case where
the size is not a CONST_INT, and has a value of 0.
* flags.h (flag_no_inline): Modify comment to match the one in
toplev.c.
* integrate.c (copy_rtx_and_substitute): When creating new rtx,
make sure all of the new bitfields are copied, e.g.
REG_LOOP_TEST_P, LABEL_OUTPUT_LOOP_P, etc.
* loop.c (loop_optimize): Call reg_scan after
find_and_verify_loops, because it may change register lifetimes.
(find_and_verify_loops): After moving a block of code outside the
loop, must readjust the loop_number_exit_label and
LABEL_OUTSIDE_LOOP_P data of the modified jump and the moved jump.
toplev.c (rest_of_compilation): Delete reg_scan call before
loop_optimize.
Fri Jun 28 13:16:37 1991 Michael Meissner (meissner at osf.org)
* tm-mips.h (toplevel): Add target_flags to externals declared.
(toplevel): Add dslots_number_nops, mips_load_reg{,2},
mips_fill_delay_slot external declarations for delay slot reorg.
(CC1PLUS_SPEC): By default, pass -fno-gnu-binutils to cc1plus.
(TARGET_FLAGS): Add -mwc8, -mwc16, -mwc32 to set size of wchar_t,
though the switches are not used right now.
(TARGET_FLAGS): Add -msoft-float code from rfg@ncd.com to compile
on systems w/o floating point.
(TARGET_FLAGS): -mdebugf suppresses filling load delay slots.
(HARD_REGNO_OK): Relax constraints, allow anything in GP
registers, anything in even FP registers, int's only in multiply
and divide registers, int/CC in the FPSW register.
(FRAME_POINTER_REQUIRED): Require frame if alloca is called for
now.
(REG_CLASS_FROM_LETTER): Index from an array (mips_char_to_class)
instead of having lots of ?:'s. Also, allow 'd' to signify GP
registers.
(ENCODE_SEGMENT_INFO): Only record things being in small data/bss
if -mgpOPT (-O sets by default), -O, and -G xx where xx > 0.
(FINAL_PRESCAN_INSN): Rework to automatically not fill the
previous instruction's load delay slots with nop's if it is safe.
(ASM_OUTPUT_LABEL): If compiling collect, don't use assemble_name.
(ASM_GLOBALIZE_LABEL): If compiling collect, don't use
assemble_name.
(ASM_OUTPUT_LABELREF_AS_INT): Define this for collect.
(ASM_OUTPUT_INT): If collect, don't use output_addr_const.
* mips.md (all floating point): If -msoft-float, don't allow any
floating point builtin operations.
(all patterns): Use 'd' constraint to limit things to GP
registers, rather than 'r'. This allows unions of
float/int/double to occupy any registers.
(*extend*): Call mips_move_1word to handle loads, which in turn
sees if we can omit the load nop.
(fix_trunc*): Redo, since register allocator can handle moving to
the appropriate register set.
(movdf_xfer*): Use explicit return's instead of falling through
and having the appropriate value in a register from the previous
call.
(movsf_xfer*): New patterns to accomidate unions of floats and
int's.
(movsi_unaligned): New define_expand to call either movsi_ulw or
movsi_usw. Also, if not a memory operation, use movsi.
(movsi_ulw): Set up to omit load delay nop if we can.
(movsi_usw): Use memory_operand instead of simple_memory_operand.
Also, allow storing 0 to an unaligned location.
(various move patterns): mips_move_1word now takes a third
argument to specify whether a load should sign or zero extend.
(call_value): Use register_operand on return value.
(probe): Turn into define_expand, and set a register to the
contents of memory pointed to by the stack pointer with volatil
set.
* out-mips.c (toplevel): Add new global variables:
dslots_number_nops, mips_load_reg{,2}, mips_regno_to_class,
mips_char_to_class.
(simple_memory_operand): If not optimizing, no global memory
reference is assumed to be in the GP area.
(mips_fill_delay_slot): New function to tell FINAL_PRESCAN_INSN
the current insn is a load and may need a nop.
(mips_move_1word): Take a third argument to say whether load byte
and load half-word sign extend or zero extend. Change all
callers. If this is a load, call mips_fill_delay_slots to
schedule the nops. Change all return's to setting a variable, and
falling through to the end.
(mips_move_2words): If this is a load, call mips_fill_delay_slots
to schedule the nops. Change all return's to setting a variable,
and falling through to the end.
(function_arg): if -msoft-float, floating point is passed in GP
registers.
(override_options): Initialize mips_char_to_class.
(print_operand): %( and %) no longer do .set nomacro.
(print_operand): %# prints #nop if gas or -mstats.
(print_operand): Check for too many %), %], and %>'s.
(compute_frame_size): Allocate space in stack to hold FP, just in
case we later need a FP and previously thought we could eliminate
it.
(save_restore): Take a string to indicate the 2word load/store to
use, but don't use it at present. Change all callers. Home
varargs registers with sd if we can.
(function_epilogue): Deal with one or more outstanding nop's from
FINAL_PRESCAN_INSN.
(function_epilogue): Revamp -mstats output format.
(function_epilogue): Zero new global variables.
* make-decrose (toplevel): Sort make variables.
(CLIB): Add -lld library.
(LANGUAGES): Add build of collect-osf and g++.
(ULTRIX_DIR): Change internal work directory location.
(cplus-lex.o): Don't optimize to avoid problem with 1.39 compiler.
(collect-osf): Add rules to build OSF/rose version of collect.
* make-mips (LANGUAGES): Add build of g++.
* tm-decrose.h (SIZE_TYPE): Specify to be long unsigned int.
(PTRDIFF_TYPE): Specify to be long int.
(WCHAR_TYPE): Specify to be long unsigned int.
* sdbout.c (plain_type_1): Add support for unknown tags if
SDB_ALLOW_UNKNOWN_REFERENCES is defined. The MIPS ECOFF support
needs this, but standard COFF typically doesn't allow unknown
references.
* gcc.texinfo (Debugging Info): Document
SDB_ALLOW_UNKNOWN_REFERENCES and SDB_ALLOW_FORWARD_REFERENCES.
* collect-osf.c (whole file): New file to provide collect support
on OSF/rose.
Fri Jun 28 09:20:18 1991 Tom Wood (wood at dg-rtp.dg.com)
* configure (m88k-luna): New target.
* tm-m88kluna.h: New file for the Omron Luna/88k.
* xm-m88k.h: Don't use USG for the luna88k.
* tm-m88kdgux.h: DG/UX implements coff and elf. Currently elf is
a strange variant of coff that's non-standard (it uses SDB
debugging info for example). Soon, the DG/UX elf will support
DWARF. These changes provide transitional support for all three.
(DWARF_DEBUGGING_INFO, SDB_DEBUGGING_INFO): Define both.
(VERSION_0300_SYNTAX): True when -msvr4 and -mversion-03.00.
* tm-m88ksvr4.h (ASM_FILE_END, ASM_OUTPUT_DWARF_LINE): Move these
to tm-m88k.h. They are dwarf specific.
* tm-m88k.h (TARGET_SWITCHES): Add -mversion-03.00 and -mdwarf.
(OVERRIDE_OPTIONS): If using version 03.00 syntax, assume DWARF_DEBUG.
* tm-m88k.h (REG_ALLOC_ORDER): Adapt slightly for using r26-r29.
* out-m88k.c (m88k_debugger_offset): Don't complain if the base
register is optimized away.
Thu Jun 27 21:43:36 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
* local-alloc.c (memref_referenced_p, memref_used_between_p):
New functions.
(update_equiv_regs): Call memref_used_between_p.
Thu Jun 27 19:59:36 1991 Ken Raeburn (raeburn at watch.com)
* print-tree.c (print_node): Changed the various "lang_#" strings to
indicate which of several possible fields are being examined; new
strings are "tree_#", "decl_#", "type_#".
Thu Jun 27 15:05:43 1991 Michael Meissner (meissner at churchy.gnu.ai.mit.edu)
* xm-mips.h (ONLY_INT_FIELDS): Define if not compiling with GCC
since the MIPS compiler treats enum bitfields as signed.
Wed Jun 26 19:48:16 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu)
* sched.c (memrefs_conflict_p): Explicitly handle case where both
X and Y are CONST.
(sched_analyze_2): Do create dependencies for insns with REG_EQUIV
notes.
(sched_note_set): Correctly handle the case where the destination
register is a multi-word hard register.
(attach_deaths): Don't add a REG_DEAD note to an insn with a
REG_UNUSED note that mentions the same register. Correctly handle
the case where the destination register is a multi-word hard
register.
(schedule_block): Also call sched_note_set for CLOBBERs when
computing which registers are dead at the end of the basic block.
Also call sched_note_set for USEs when computing what registers
are still live after a just scheduled insn.
(regno_use_in): New function, subroutine of split_hard_reg_notes.
Searches an rtx for any reference to the given register, and
returns the register rtx used if any.
(split_hard_reg_notes): New function. Handles the case where a
multi-word hard register with a REG_DEAD note gets split. Creates
a new REG_DEAD note for each part of the original hard register
used by the split insns.
(new_insn_dead_notes): Don't add a REG_DEAD note to an insn with a
REG_UNUSED note which mentions the same register.
(update_links): Add call to new function split_hard_reg_notes.
Correctly handle the case when the dest of the original insn was a
multi-word register which was split in the split insns. In this
case, the dest is no longer killed here, so must remove the
REG_DEAD on the last previous insn in this basic block which used
dest, if any such exists.
* unroll.c (reg_dead_after_loop): Check that a CODE_LABEL which is
the target of a JUMP_INSN has a non-zero PREV_INSN field before
trying to derefence it. Fail if there is no previous insn.
* loop.c (scan_loop): Fix typo.
* local-alloc.c (optimize_reg_copy): Likewise.
* global-alloc (hard_reg_copy_preferences): Likewise.
* gcc.texinfo (REG_LOOP_TEST_P): Likewise.
* optabs.c (expand_float): Likewise.
* tm-vaxv.h (ASM_OUTPUT_ASCII): Likewise.
* out-sparc.c (output_move_double): Sign extend CONST_INTs that
feed DImode targets.
* tm-sparc.h (GO_IF_LEGITIMATE_ADDRESS): Don't accept a LABEL_REF
as a legal address. Also, delete obsolete parts of preceeding
comment.
* reload1.c (alter_reg): Only try to delete the reg_equiv_init
insn if it hasn't already been deleted by a previous call to
delete_dead_insn.
* toplev.c (main): Handle -gdbx in addition to -gsdb for
orthogonality.
* gcc.texinfo: Document -gdbx.
Tue Jun 25 09:57:08 1991 Tom Wood (wood at dg-rtp.dg.com)
* m88k.md (casesi): Don't emit a barrier; the dispatch code must
adjoin the table.
* tm-m88k.h (DONT_REDUCE_ADDR): Don't use this.
(CONDITIONAL_REGISTER_USAGE): The PIC register is also call-used.
* out-m88k.c (m88k_layout_frame): Save the PIC register.
Tue Jun 25 07:40:43 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
* function.c (expand_function_end): FNDECL should
be CURRENT_FUNCTION_DECL.
* combine.c (find_split_point): If we see an AND operation as the
first operand of some non-AND operation, use it as a split point.
(subst): Add counter to limit restarts, go to restart more often.
(subst, case AND): If we get (ior (and (X C1) C2)) and can't
restart more than once, rewrite with C1 as small as possible and exit.
* cse.c (cse_end_of_basic_block): Don't put branch in our path more
than once.
(cse_main): Clear PATH_SIZE when skipping a block.
(cse_basic_block): Use GET_RTX_CLASS.
Tue Jun 25 07:39:29 1991 Matthew Self (mself at next.com)
* varasm.c (const_hash, compare_constant_1, record_constant_1):
For ADDR_EXPR's, don't hash address of SYMBOL_REF. Only use
offset and name of symbol. This allows constructors which
contain pointers to identical string literals to be uniqued.
* loop.c (loop_optimize, init_loop): Moved call to
gcc_obstack_init() from loop_optimize() to init_loop().
* reload1.c (reload, init_reload): Moved call to
gcc_obstack_init() from reload() to new function init_reload().
* toplev.c (compile_file): Call new function init_reload().
Mon Jun 24 16:05:57 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu)
* stmt.c (expand_end_stmt_expr): Fix typo in comment.
* reload1.c (modes_equiv_for_class_p): Only fail if registers in
CLASS that can hold ALLOCATE_MODE can't also hold OTHER_MODE. Do
not fail for the reverse test. ALLOCATE_MODE is always a larger
or same size mode as OTHER_MODE, and will be the mode that reload
uses when allocating spill registers. Rewrite comments to explain
new behaviour.
(reload): Change call to modes_equiv_for_class_p to match new
semantics.
* combine.c (simplify_shift_const): When simplifying (ashiftrt
(ashift inner_const_int) const_int), was checking the wrong number of
high order bits of inner_const_int. Also correct typos in comments.
* c-convert.c (convert_to_integer): Must also check ARG1 for
unsignedness, because ARG0 could be a constant when EXPR is a
MINUS_EXPR.
* combine.c (try_combine): When splitting, it is not safe to use
I2DEST if it is referenced by NEWPAT.
* combine.c (distribute_notes): After converting REG_DEAD notes to
REG_UNUSED notes, clear PLACE if it already has a REG_UNUSED note,
to prevent adding a duplicate REG_UNUSED note.
* gcc.texinfo (SIGNED_CHAR_SPEC): Document.
Mon Jun 24 10:02:32 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
* cse.c (cse_set_around_loop): Ensure the insn we find in front
of the loop does the set in the proper mode.
* optabs.c (expand_float): Always do conversions to FMODE in the
signedness of the input.
* reload.c (find_reloads, find_reloads_toplev): If reg_equiv_address
is not a constant address, copy it in case it is shared.
* reload1.c (eliminate_regs): Copy reg_equiv_memory_loc in case
it is shared and we make a reload inside it.
* stupid.c (stupid_mark_refs): Registers that aren't used must die
in the insn after their birth so they conflict with other outputs.
* vax.md: Replace patterns to convert (and (ashiftxx))
into (and (rotatexx)) with the patterns that are actually made
by combine.
We can allow offsettable addresses for operand 0 and it is not
early-clobber.
* out-rs6000.c (secondary_reload_class): Correctly interpret result of
true_regnum.
* out-rs6000.c (output_toc): Write FP constants in TOC.
* tm-r6000.h (TARGET_FP_IN_TOC): New flag.
(TARGET_SWITCHES): Add -mfp-in-toc and -mno-fp-in-toc.
(TARGET_DEFAULT): -mfp-in-toc is the default.
(ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): FP constants may be put in the TOC.
Mon Jun 24 00:52:44 1991 James Van Artsdalen (james at bigtex.cactus.org)
* out-i386.c (output_fix_trunc): If the dest operand mentions the