forked from jcmvbkbc/gcc-xtensa
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathChangeLog.tree-ssa
19345 lines (16028 loc) · 743 KB
/
ChangeLog.tree-ssa
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
2004-05-11 Diego Novillo <[email protected]>
* tree-cfg.c (delete_tree_cfg): Update call to
free_basic_block_vars.
2004-05-10 Diego Novillo <[email protected]>
* tree-ssa-live.h: Fix typo in #include guard.
2004-05-08 Jeff Sturm <[email protected]>
* tree-eh.c (lower_catch): Lower catch body in context of
catch_region.
2004-05-07 Richard Henderson <[email protected]>
* tree-eh.c (tree_could_trap_p): Use get_base_address on references.
2004-05-07 Diego Novillo <[email protected]>
* doc/invoke.texi: Remove documentation for -ftree-copyprop.
Update documentation for -ftree-pre.
2004-05-06 Richard Henderson <[email protected]>
* stmt.c (parse_output_constraint): Don't warn for read-write
memory operand.
* gimplify.c (gimplify_asm_expr): Force in-out memory operands
to minimal lvalues, then expand to non-matching constraints.
2004-05-06 Zack Weinberg <[email protected]>
* c-decl.c (finish_function): When !targetm.have_ctors_dtors,
record static constructors and destructors here...
(c_expand_body_1): ... not here.
* c-objc-common.c (start_cdtor, finish_cdtor): Collapse
together into
(build_cdtor): ...here. Update to construct a complete tree
for the function. No need to call push_scope, pop_scope, or
clear_last_expr, or set current_function_cannot_inline.
(c_objc_common_finish_file): Just call build_cdtor for static
ctors/dtors, then clear the variables. Do this before calling
cgraph_finalize_compilation_unit and cgraph_optimize.
2004-05-06 Richard Henderson <[email protected]>
* fold-const.c (fold): Don't build COND_EXPR from comparisons for
boolean and integer result types. Handle X ^ X for TRUTH_XOR_EXPR.
2004-05-05 Richard Henderson <[email protected]>
* tree-nested.c (create_tmp_var_for): Disallow variable sized types.
(convert_nonlocal_reference): Set val_only false for the base of a
component or array reference.
(convert_local_reference): Likewise.
2004-05-05 Richard Henderson <[email protected]>
* gimplify.c (create_tmp_var): Disallow variable sized objects.
(gimplify_modify_expr): Don't memcpy for VA_ARG_EXPR.
2004-05-05 Richard Henderson <[email protected]>
* fold-const.c (operand_equal_p): Replace only_const argument with
flags. Allow pure functions if OEP_PURE_SAME.
(fold, nondestructive_fold_binary_to_constant): Use OEP_ONLY_CONST.
* tree-cfg.c (phi_alternatives_equal): Fix operand_equal_p flag type.
* tree-ssa-dom.c (avail_expr_eq): Use OEP_PURE_SAME.
* tree.h (enum operand_equal_flag): New.
(operand_equal_p): Update argument list.
2004-05-05 Richard Henderson <[email protected]>
* tree-ssa-operands.c (get_call_flags): Remove.
(get_expr_operands): Use call_expr_flags.
* tree-alias-common.c (call_may_clobber): Likewise.
(call_may_return): Likewise.
2004-04-05 Andrew Pinski <[email protected]>
PR c/15062
* c-typeck.c (build_asm_expr): Mark the output operands
to an asm addressable, if necessary.
2004-05-05 Steven Bosscher <[email protected]>
* Makefile.in (GTFILES): Remove duplicate basic-block.h.
2004-05-04 Richard Henderson <[email protected]>
* gimplify.c (build_addr_expr_with_type): Set TREE_ADDRESSABLE.
(gimplify_modify_expr): Turn variable-width assignment into memcpy.
* tree-nested.c (convert_local_reference): Set val_only after default.
2004-05-04 Diego Novillo <[email protected]>
* tree-cfg.c (tree_cfg2vcg): Rename from tree_cfg2dot. Update all
users.
Emit flowgraph using VCG syntax.
* tree-dump.c (dump_files): Rename -fdump-tree-dot to
-fdump-tree-vcg.
* tree.h (enum tree_dump_index): Rename TDI_dot to TDI_vcg.
* doc/invoke.texi: Update documentation to describe
-fdump-tree-vcg.
2004-05-03 Andrew Pinski <[email protected]>
* objc/objc-act.c (build_objc_string_object):
Add the fields to the purpose of the list for
the constructor.
2004-05-03 Richard Henderson <[email protected]>
* c-simplify.c (gimplify_if_stmt): Loop for else-if.
2004-05-03 Andrew Pinski <[email protected]>
PR optimization/15245
* tree-ssa-phiopt.c (conditional_replacement): Use fold_convert
instead of convert.
2004-05-03 Diego Novillo <[email protected]>
* gimplify.c (gimplify_compound_lval): Gimplify non-constant
array indices into a temporary variable.
2004-04-30 Richard Henderson <[email protected]>
* builtins.c (validate_arglist): Don't reject side effects.
(simplify_builtin_strcpy): Do reject side effects in length.
2004-04-30 Jeff Law <[email protected]>
* tree-outof-ssa.c (eliminate_build): Move code which verifies
that all of a PHI's arguments do not have a partition if the
result does not have a partition from here to...
(rewrite_trees): Here.
2004-04-24 Zdenek Dvorak <[email protected]>
* tree-cfg.c (factored_computed_goto_label,
factored_computed_goto): Removed.
(disband_implicit_edges): Unfactor computed gotos without
using them.
2004-04-23 Per Bothner <[email protected]>
* expr.c (expr_wfl_stack): Remove unused global.
Pre-patches for future source_location / location_t merge.
* tree.h (EXPR_LOCATION, EXPR_HAS_LOCATION): New macros.
* expr.c (expand_expr_real, expand_expr_real_1): Use new macros.
* gimple-low.c (lower_stmt): Likewise.
* gimplify.c (annotate_all_with_locus): Likewise.
* print-tree.c (print_node): Likewise.
* tree-inline.c (expand_call_inline): Likewise.
* tree-pretty-print.c (tree-pretty-print.c): Likewise.
* tree-sra.c (scalarize_structure_assignment, emit_scalar_copies,
scalarize_call_expr): Likewise.
* tree-ssa-pre.c (code_motion): Likewise.
2004-04-23 Andrew Pinski <[email protected]>
* c-simplify.c (gimplify_decl_stmt) [TYPE_DECL]:
Do not check the type.
2004-04-22 Jeff Law <[email protected]>
* tree-into-ssa.c (rewrite_initialize_block_local_data): Mark all
arguments as potentially unused. Do not bother to VARRAY_CLEAR
the block_defs. Instead abort if we are presented with a block
which has a nonempty block_defs. Wrap entire thing inside
#ifdef ENABLE_CHECKING.
* tree-ssa-dom.c (dom_opt_initialize_block_local_data): Similarly
* tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Do not mark
arguments to bypassed PHIs as needing to be rewritten.
2004-04-21 Richard Henderson <[email protected]>
PR middle-end/14978
* tree-nested.c (convert_nonlocal_reference): Set val_only when
processing any otherwise unhandled expression.
2004-04-21 Jeff Law <[email protected]>
* tree-ssa-copy.c (cprop_operand): Break out of cprop_into_stmt.
(cprop_into_stmt): Use cprop_operand. Rearrange slightly to avoid
switch statement inside a loop.
* tree-flow.h (var_ann_d): Add "current_def" field.
(register_new_def): Lose last argument (currdefs table).
* tree-into-ssa.c (currdefs): Remove.
(rewrite_into_ssa): Initialize current_def field on each variable's
annotation. Remove initialization/clearing of currdefs.
(set_value_for, get_value_for): Kill.
(rewrite_initialize_block): Update call to register_new_def.
(rewrite_stmt): Similarly.
(rewrite_finalize_block): Get/set a _DECL node's current
definition from its annotation.
(get_reaching_def): Similarly.
(register_new_def): Similarly. Lose last argument.
* tree-ssa-dom.c (currdefs): Remove.
(get_value_for, set_value_for): Simplify.
(tree_ssa_dominator_optimize): Initialize current_def on each
variable's annotation. Remove initialization/clearing of currdefs.
(thread_across_edge): Lose unnecessary argument to register_new_def.
(record_equivalences_from_phis): Likewise.
(register_definitions_for_stmt): Likewise.
(restore_currdefs_to_original_value): Get/set a _DECL node's current
definition from its annotation. Lose unnecessary "table" argument.
(dom_opt_finalize_block): Corresponding changes.
* tree-dfa.c (free_df_for_stmt): Release memory back to the GC
system immediately.
2004-04-21 Ben Elliston <[email protected]>
PR middle-end/14730
* expr.c (expand_expr_real_1) <SWITCH_EXPR>: Discard out of bounds
case label values and ranges. Saturate case range values that
exceed the minimum or maximum permitted value for the controlling
expression type to TYPE_MIN_VALUE or TYPE_MAX_VALUE.
2004-04-20 Jeff Law <[email protected]>
* tree-into-ssa.c (register_new_def): Avoid pushing useless
information onto the block local definition stack.
* tree-into-ssa.c (register_new_def): If there is no current
reaching definition for SSA_NAME_VAR (DEF), then just push
SSA_NAME_VAR (DEF) onto the stack.
(rewrite_finalize_block): If we pop a _DECL node from the stack,
then the _DECL node has no current reaching definition.
* tree-ssa-dom.c (restore_currdefs_to_original_value): Similarly.
2004-04-19 Jeff Law <[email protected]>
* tree-ssa-dom.c: Reinstate all changes from 2004-04-12.
(lookup_avail_expr): Do not access a hash table object after
it has been freed.
2004-04-19 Daniel Berlin <[email protected]>
* doc/passes.texi: Add blurb about PRE.
2004-04-19 Andrew Pinski <[email protected]>
* tree-ssa-phiopt.c (conditional_replacement):
Catch some more non-gimple.
2004-04-19 Jan Hubicka <[email protected]>
* predict.c (combine_predictions_for_bb): Fix pasto.
2004-04-18 Jan Hubicka <[email protected]>
* tree-inline.c (estimate_num_insn_1): Deal properly with
builtin_constant_p and builtin_expect.
2004-04-17 Andrew MacLeod <[email protected]>
* doc/invoke.texi (tree-ter, tree-lrs): Document options.
2004-04-17 Paul Brook <[email protected]>
* Makefile.in: Set GMPLIBS and GMPINC.
* configure.ac: Add GMPLIBS and GMPINC.
* configure: Regenerate.
2004-04-16 Andrew MacLeod <[email protected]>
* common.opt (ftree-lrs): New common option.
* flags.h (flag_tree_live_range_split): New flag.
* opts.c (decode_options): Turn on LRS by default.
(common_handle_option): Set LRS flag to specified value.
* toplev.c (flag_tree_live_range_split): Initialize.
(lang_independent_options f_): Add tree-lrs.
* tree-outof-ssa.c (rewrite_out_of_ssa): Use LRS flag.
* tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't coalesce
variables if one is a hardware register. Coalesce inlined user vars.
(rename_ssa_copies): Scan blocks first, then PHI nodes.
2004-04-15 Andrew Pinski <[email protected]>
* builtins.c (fold_builtin_isascii): Do not return non-gimple
code when we are in gimple form.
(fold_builtin_isdigit): Do not return non-gimple
code when we are in gimple form.
* c-simplify.c (gimplify_decl_stmt): Handle TYPE_DECL.
2004-04-14 Paul Brook <[email protected]>
* Makefile.in (GMPLIBS, GMPINC): Don't set.
* configure.ac: Remove checks for GMP.
* configure: Regenerate.
2004-04-13 Diego Novillo <[email protected]>
* fold-const.c, tree-ssa-ccp.c, tree-ssa-dom.c,
tree-ssa.c, tree.c: Replace all uses of TREE_UNSIGNED with
TYPE_UNSIGNED or DECL_UNSIGNED.
* c-semantics.c (build_stmt): Don't check type nodes for
side effects.
2004-04-13 Jeff Law <[email protected]>
* tree-ssa-dom.c: Revert all changes from 2004-04-12.
2004-04-12 Jeff Law <[email protected]>
* tree-ssa-dom.c (struct expr_hash_elt): Add new field for hash value.
(initialize_hash_element): New LHS argument. Callers changed.
Initialize the hash value field.
(remove_local_expressions_from_table): Use htab_remove_elt_with_hash.
(update_rhs_and_lookup_avail_expr): Similary.
(lookup_avail_expr): Use htab_find_slot_with_hash. Simplify slightly
and pass LHS to initialize_hash_element.
(record_cond): Also use htab_find_slot_with_hash. Initialize the
hash table entry with initialize_hash_element.
(avail_expr_eq): Use the saved hash value rather than calling into
the hash functions again.
* tree-ssa-dom.c (tree_ssa_dominator_optimize): Slightly rearrange
code to clear tables before each iteration to be clearer.
* tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Use
DEF_OPS and VDEF_OPS instead of STMT_DEF_OPS and STMT_VDEF_OPS.
2004-04-12 Diego Novillo <[email protected]>
* flags.h (flag_tree_loop): Remove. Update all users.
* opts.c (common_handle_option) <OPT_ftree_loop_optimize>: Remove.
* toplev.c (f_options): Remove -ftree-loop-optimize.
* tree-optimize.c (init_tree_optimization_passes): Don't
schedule pass_loop.
* tree-ssa-loop.c (tree_ssa_loop_opt): Remove.
(gate_loop): Remove.
* doc/invoke.texi: Remove documentation for -ftree-loop-optimize.
2004-04-12 Diego Novillo <[email protected]>
* c-lang.c (LANG_HOOKS_RTL_EXPAND_STMT): Remove.
* c-semantics.c (expand_stmt_toplev): Remove.
* langhooks-def.h (LANG_HOOKS_RTL_EXPAND_INITIALIZER): Remove.
(LANG_HOOKS_RTL_EXPAND_START): Remove.
(LANG_HOOKS_RTL_EXPAND_STMT): Remove.
(LANG_HOOKS_RTL_EXPAND_END): Remove.
* langhooks.h (struct lang_hooks_for_rtl_expansion): Remove.
(struct lang_hooks): Update.
* tree-optimize.c (tree_rest_of_compilation): Don't call
lang_hooks.rtl_expand.start nor lang_hooks.rtl_expand.end.
Call expand_expr_stmt_value instead of
lang_hooks.rtl_expand.stmt.
* objc/objc-lang.c (LANG_HOOKS_RTL_EXPAND_STMT): Remove.
2004-04-12 Richard Henderson <[email protected]>
* c-common.c (c_do_switch_warnings): Use EXPR_LOCUS instead
of STMT_LINENO.
(c_walk_subtrees): Likewise.
(c_estimate_num_insns_1): Remove FILE_STMT.
* c-common.def (FILE_STMT): Remove.
* c-common.h (FILE_STMT_FILENAME_NODE): Remove.
(FILE_STMT_FILENAME, STMT_LINENO, STMT_LINENO_FOR_FN_P): Remove.
(c_common_stmt_codes): Remove FILE_STMT.
* c-dump.c (dump_stmt): Use EXPR_LOCUS instead of STMT_LINENO.
* c-parse.in (lineno_stmt, lineno_label): Likewise.
* c-pretty-print.c (pp_c_statement): Remove FILE_STMT.
* c-semantics.c (add_stmt): Don't emit FILE_STMT. Do set
EXPR_LOCUS if not yet set.
(finish_stmt_tree): Don't set line for end of function.
(build_stmt): Set EXPR_LOCUS instead of STMT_LINENO.
(prep_stmt): Use EXPR_LOCUS instead of STMT_LINENO.
* c-simplify.c (c_gimplify_stmt): Remove FILE_STMT.
(gimplify_block): Save and restore entire locus.
(stmt_expr_last_stmt): Use EXPR_LOCUS instead of STMT_LINENO.
* doc/c-tree.texi (FILE_STMT, FILE_STMT_FILENAME, STMT_LINENO): Remove.
2004-04-12 Jeff Law <[email protected]>
* tree-ssa-dom.c (true_exprs, false_exprs): Kill.
(struct expr_hash_elt): New structure for the expression hash table.
(struct dom_walk_block_data): Kill block local true_exprs and
false_exprs.
(get_eq_expr_value): One less local varray argument. Fix prototype.
Use record_cond rather than record_cond_is_{true,false}.
(true_false_expr_hash, true_false_expr_eq): Kill.
(record_cond_is_true, record_cond_is_false): Collapse into ...
(record_cond): New function.
(tree_ssa_dominator_optimize): Kill references to true_exprs and
false_exprs. Use "free" as the free function for the avail_exprs
hash table.
(dom_opt_initialize_block_local_data): No longer initialize
block local true/false expressions.
(initialize_hash_element): New function.
(remove_local_expressions_from_table): Use initialize_hash_element.
(update_rhs_and_lookup_avail_expr): Similarly.
(dom_opt_finalize_block): Record true/false expressions into the
main avail_expr hash table. Unwind main hash table appropriately.
Use record_cond rather than record_cond_is_{true,false}.
(record_equivalences_from_incoming_edge): Pass block local avail_exprs
varray instead of block local true/false varrays to get_eq_expr_value.
(dump_dominator_optimization_stats): Update to reflect that the
true/false expression hash tables are gone.
(lookup_avail_expr): Simplify slightly now that we only have one
expression hash table.
(avail_expr_hash, avail_expr_eq): Generalize slightly to handle new
hash table entry structure and having true/false expression information
in the available expression hash table.
2004-04-09 Jeff Law <[email protected]>
* tree-ssa_dom.c (register_definitions_for_stmt): Accept a statement
annotation rather than the statement itself. Callers changed.
Use [V]DEF_OPS rather than STMT_[V]DEF_OPS.
* tree-ssa-operands.c (get_stmt_operands): Slightly reorganize to
avoid unnecessary calls to stmt_ann.
* tree-ssa-pre.c (expr_phi_insertion): Get the statement's annotation
and use [V]USE_OPS rather than STMT_[V]USE_OPS.
(same_e_version_phi_result): Similarly
(process_left_occs_and_kills): Similarly for [V]DEF_OPS and
STMT_[V]DEF_OPS.
* tree-ssa.c (replace_immediate_uses): Similarly.
(verify_ssa): Similarly. Also verify that VDEF_OPs uses are dominated
by their sets.
* tree-into-ssa.c (insert_phi_nodes_for): Use passed in worklist
varray instead of allocated one for every variable we rewrite into
SSA form.
(insert_phi_nodes_1): Pass worklist varray from caller to
insert_phi_nodes_for.
(insert_phi_nodes): Allocate a worklist for insert_phi_nodes_for
and pass it to insert_phi_nodes_1.
2004-04-08 Jeff Law <[email protected]>
* tree-ssa-dom.c (nonzero_vars): Turn it into a bitmap.
(tree_ssa_dominator_optimize): Update initialization, clearing and
freeing of nonzero_vars.
(restore_nonzero_vars_to_original_value): New function.
(dom_opt_finalize_block): Use it.
(record_var_is_nonzero): Only record the variable into the block
local nonzero vars array if it did not already have a nonzero property.
(lookup_avail_expr): Lookup the nonzero property of an SSA_NAME with
a bitmap test.
* fold-const.c (fold): Remove attempt to share code which
simplifies tests against the highest/lowest value of a
range between the main folder and the nondestructive folder.
2004-04-08 Brian Booth <[email protected]>
Diego Novillo <[email protected]>
* tree-into-ssa.c (invalidate_name_tags): New function.
Mark aliases of invalidated name tags for renaming.
(rewrite_into_ssa): Call invalidate_name_tags.
2004-04-07 Diego Novillo <[email protected]>
* gimplify.c (gimplify_call_expr): Remove argument POST_P.
Update all callers.
Don't use POST_P when gimplifying the call expression.
2004-04-07 Diego Novillo <[email protected]>
* doc/tree-ssa.texi: Add documentation for the dominator
walker.
2004-04-07 Andrew MacLeod <[email protected]>
* tree-outof-ssa.c: Update comments and reformat for legibility.
* tree-ssa-copyrename.c: Update comments and reformat for legibility.
* tree-ssa-live.c: Update comments and reformat for legibility.
* tree-ssa-live.h: Update comments and reformat for legibility.
2004-04-07 Diego Novillo <[email protected]>
* gimplify.c (gimplify_call_expr): Don't use POST_P when
gimplifying CALL_EXPR arguments.
2004-04-06 Diego Novillo <[email protected]>
* tree-dfa.c: Update comments and reformat for legibility.
(find_vars_r): Remove special casing of MODIFY_EXPR and
simplify logic.
(compute_reached_uses, compute_reaching_defs, remove_decl,
find_decl_location): Remove.
(discover_nonconstat_array_refs_r,
discover_nonconstant_array_refs): Move ...
* tree-outof-ssa.c: ... here.
2004-04-05 Richard Henderson <[email protected]>
* tree-simple.c (is_gimple_min_invariant): Disallow &a+i.
* tree-ssa-ccp.c (maybe_fold_stmt_addition): Rename from
maybe_fold_stmt_plus. Handle MINUS_EXPR.
(fold_stmt_r): Pass MINUS_EXPR to it.
2004-04-05 Ben Elliston <[email protected]>
* Makefile.in (OBJS-common): Remove tree-browser.o.
(cc1): Depend on @TREEBROWSER@ and include in list of objects.
* configure.ac: Add --enable-tree-browser option.
* configure: Rebuild.
2004-04-05 Andrew Pinski <[email protected]>
* tree-ssa-ccp.c (fold_stmt_r): Fix whitespace formatting.
(set_rhs): Likewise.
2004-04-03 Paolo Bonzini <[email protected]>
Diego Novillo <[email protected]>
* tree-alias-common.c (find_func_aliases): Support
assigning to BIT_FIELD_REFs.
* tree-cfg.c (verify_expr): Don't allow assign to
a register with BIT_FIELD_REF.
* tree-dfa.c (get_virtual_var): Add consistency check on
the shape of expected VARs.
(discover_nonconstant_array_refs_r): Go through BIT_FIELD_REFs.
* tree-simple.c: Document that BIT_FIELD_REFs are valid lvalues.
* tree-ssa.c (set_is_used): Go through BIT_FIELD_REFs.
* tree-ssa-operands.c (get_expr_operands): Mark VA_ARG_EXPR
nodes as making volatile references.
2004-04-02 Fariborz Jahanian <[email protected]>
* c-convert.c (convert): Make convert work when converting
to compatible types across translation unit.
2004-04-02 Andrew Pinski <[email protected]>
* Makefile.in (stage2_build): Remove support for
rebuilding libbanshee.
* configure.ac: Remove support for rebuilding
libbanshee.
* config.gcc (powerpc-*-darwin*): Do not rebuild
libbanshee.
2004-04-01 Kazu Hirata <[email protected]>
* tree-ssa-forwprop.c: Add a comment about forward propagation
of TRUTH_NOT_EXPR.
2004-04-01 Diego Novillo <[email protected]>
* tree-optimize.c (tree_rest_of_compilation): Fix typo in
setting of in_gimple_form.
2004-04-01 Jeff Law <[email protected]>
* fold-const.c (fold_relational_hi_lo): Do not return non-gimple
code when we are in gimple form.
* tree-optimize.c (tree_rest_of_compilation): Note when we are in
gimple form.
* tree-ssa-ccp.c (ccp_fold): Tighten tests on return value from
nondestructive_fold_{unary,binary}_to_constant.
* tree.h (in_gimple_form): Declare.
* tree-ssa.c (ssa_remove_edge): Correct looping structure.
(ssa_redirect_edge): Similarly
2004-03-30 Brian Booth <[email protected]>
* tree-pretty-print.c (dump_vops): Add flags argument and
propagate it to dump_generic_node calls.
(dump_generic_node): Update dump_vops call.
2004-03-29 Diego Novillo <[email protected]>
* configure.ac: Emit confirmation messages for libbanshee.
* configure: Regenerate.
2004-03-29 Jan Hubicka <[email protected]>
PR 14756
* cgraphunit.c (cgraph_decide_inlining): Rewrite handling of
always_inline functions.
2004-03-28 Jan Hubicka <[email protected]>
* tree-inline.c (expand_call_inline): Remove fixme introduced by
nested function patch.
2004-03-26 Diego Novillo <[email protected]>
* tree-ssa-operands.c (get_stmt_operands): Remove always-true
predicate.
* tree-ssa-alias.c (maybe_create_global_var): Create
.GLOBAL_VAR if there are no call-clobbered variables.
* tree-ssa-operands.c (get_stmt_operands): Add call-clobbering
VDEFs for asm ("":::"memory") if there are call-clobbered
variables or if .GLOBAL_VAR has been created.
2004-03-26 Diego Novillo <[email protected]>
* passes.c (rest_of_compilation): Re-enable .01.rtl
dumps.
2004-03-25 Diego Novillo <[email protected]>
* tree-pretty-print.c (dump_generic_node) <WITH_RECORD_EXPR>: Remove.
* tree-inline.c (estimate_num_insns_1) <WITH_RECORD_EXPR>: Remove.
* fold-const.c (fold_relational_hi_lo): Change type of argument
'type_p' to const tree and rename it to 'type'. Update
all callers.
2004-03-25 Diego Novillo <[email protected]>
* Makefile.in (C_AND_OBJC_OBJS): Remove c-call-graph.o
(c-call-graph.o): Remove.
* c-call-graph.c: Remove.
* c-tree.h (print_call_graph): Remove.
(debug_call_graph): Remove.
* tree-cfg.c: Update/add comments everywhere.
(pre_insert_on_edge): Rename from bsi_insert_on_edge_immediate.
* tree-flow.h (build_tree_cfg): Make static.
(tree_cfg2dot): Likewise.
(verify_stmt): Likewise.
* tree-ssa-pre.c (insert_one_operand): Call pre_insert_on_edge.
2004-03-25 Diego Novillo <[email protected]>
* tree-ssa-alias.c (struct alias_info): Change type of field
'num_references' to varray_type. Update all users.
2004-03-24 Jeff Law <[email protected]>
* c-mudflap (mflang_flush_calls): Use push_scope/pop_scope instead
of pushlevel and poplevel.
2004-03-23 Richard Henderson <[email protected]>
PR middle-end/14694
* c-common.c (handle_alias_attribute): Mark aliased variables
to be TREE_STATIC.
2004-03-23 Jeff Law <[email protected]>
* tree-into-ssa.c (register_new_def): Lose unnecessary VAR argument,
instead derive VAR from DEF argument.
(rewrite_initialize_block, rewrite_stmt, rewrite_operand): Corresponding
changes.
* tree-ssa-dom.c (register_definitions_for_stmt): Corresponding changes.
(record_equivalences_from_phis): Likewise.
(restore_currdefs_to_original_value): New, extracted from ...
(dom_opt_finalize_block): Use restore_currdefs_to_original_value.
Restore currdefs after threading across a true edge.
(thread_across_edge): Register new defintions when we walk through
a PHI node or real statement.
* tree-flow.h (register_new_def): Updated.
2004-03-23 Zdenek Dvorak <[email protected]>
* tree-ssa-dce.c (find_obviously_necessary_stmts,
perform_tree_ssa_dce): Do not remove loops.
2004-03-19 Diego Novillo <[email protected]>
PR optimization/14643
* tree-ssa-alias.c (group_aliases_into): Don't add a variable
to its own may-alias set.
(create_alias_map_for): New.
(setup_pointers_and_addressables): Call it.
Fix allocation of AI->ADDRESSABLE_VARS and AI->POINTERS.
If there are no addressable variables and more than one
dereferenced pointers, add type tags to the ADDRESSABLE_VARS
array.
(get_tmt_for): Add comment about using alias set equality when
checking for existing tags.
2004-03-19 Kazu Hirata <[email protected]>
* fold-const.c (fold_relational_const): Remove dead code.
2004-03-19 Dale Johannesen <[email protected]>
* tree-ssa-dse.c (dse_optimize_stmt): Redirect uses feeding into
a deleted store correctly.
2004-03-19 Jeff Law <[email protected]>
* tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Fix typo.
Eliminate unnecessary test of VAL.
* tree-dfa.c (find_hidden_use_vars): Also look inside the
PENDING_SIZES list for hidden uses.
* tree-optimize.c (tree_rest_of_compilation): Expand used variables
before setting up parameters.
* tree-ssa-copyrename.c (rename_ssa_copies): Do nothing for copies
where the LHS has a hidden use.
2004-03-18 Diego Novillo <[email protected]>
* Makefile.in (TREE_FLOW_H): Reformat.
(OBJS-common): Add tree-into-ssa.o and tree-outof-ssa.o.
(tree-ssa.o): Remove dependency on domwalk.h and tree-ssa-live.h
(tree-into-ssa.o): New.
(tree-outof-ssa.o): New.
(GTFILES): Remove tree-ssa.c.
(gt-tree-ssa.h): Remove.
* tree-into-ssa.c: New file.
Move all the functions used to rename into SSA from tree-ssa.c.
Update/add comments.
Remove unused variables and structures.
Don't use GGC for memory allocation.
* tree-outof-ssa.c: New file.
Move all the functions used to rename out of SSA from
tree-ssa.c.
Update/add comments.
* tree-ssa-alias.c (compute_points_to_and_addr_escape): Add
bibliographic reference.
2004-03-18 Jeff Law <[email protected]>
* Makefile.in (tree-tailcall.o): Depend on langhooks.h.
* tree-tailcall.c: Include langhooks.h.
(find_tail_calls): Use types_compatible_p langhook instead of
equality test of TYPE_MAIN_VARIANT.
* tree-nested.c (get_chain_decl): Mark the chain decl with
TREE_NO_WARNING.
2004-03-18 Devang Patel <[email protected]>
* tree-ssa-live.c (new_tree_live_info): Set num_blocks to
last_basic_block instead of n_basic_blocks.
(calculate_live_on_entry): Use last_basic_block instead of
n_basic_blocks.
(calculate_live_on_exit): Same.
2004-03-17 Jeff Law <[email protected]>
* tree-tailcall.c (find_tail_calls): Tighten test for tail recursion.
2004-03-17 Diego Novillo <[email protected]>
PR optimization/14511
* tree-ssa-alias.c (compute_flow_insensitive_aliasing): Do not
ignore read-only variables.
(may_alias_p): Fix pointer-to-var calculation when 'var' is an
array.
2004-03-17 Jan Hubicka <[email protected]>
* tree-ssa.c (rewrite_into_ssa, compute_global_livein): Fix.
2004-03-17 Paolo Bonzini <[email protected]>
* builtins.c (expand_builtin_constant_p,
purge_builtin_constant_p): Remove.
(expand_builtin): Expand __builtin_constant_p to zero.
* function.c (struct function): Remove calls_constant_p.
(current_function_calls_constant_p): Remove.
* passes.c (rest_of_handle_gcse): Do not run
purge_builtin_constant_p.
* rtl.def (CONSTANT_P_RTX): Die die die.
* cse.c (fold_rtx): Do not handle CONSTANT_P_RTX.
* expr.c (emit_move_insn): Likewise.
* gcse.c (want_to_gcse_p, gcse_constant_p): Likewise.
* genrecog.c (validate_pattern): Likewise.
* recog.c (immediate_operand): Likewise.
* rtl.h (CONSTANT_P): Likewise.
* simplify-rtx.c (simplify_rtx): Likewise.
* config/alpha/alpha.c (input_operand): Likewise.
* config/arm/arm.c (THUMB_LEGITIMATE_CONSTANT_P): Likewise.
* config/c4x/c4x.c (const_operand): Likewise.
* config/cris/cris.c (cris_gotless_symbol,
cris_got_symbol): Likewise.
* config/frv/frv.h (LEGITIMATE_PIC_OPERAND_P): Likewise.
* config/ia64/ia64.c (gr_reg_or_5bit_operand,
gr_reg_or_6bit_operand, gr_reg_or_8bit_operand,
gr_reg_or_8bit_adjusted_operand,
gr_reg_or_8bit_and_adjusted_operand,
gr_reg_or_14bit_operand, gr_reg_or_22bit_operand,
shift_count_operand, shift_32bit_count_operand): Likewise.
* config/m32r/m32r.c (move_src_operand): Likewise.
* config/mips/mips.c (mips_const_insns): Likewise.
* config/mmix/mmix.c (mmix_constant_address_p): Likewise.
* config/pa/pa.c (move_src_operand): Likewise.
* config/rs6000/rs6000.c (input_operand): Likewise.
* config/sparc/sparc.c (input_operand): Likewise.
* config/v850/v850.c (movsi_source_operand): Likewise.
* config/xtensa/xtensa.c (move_operand,
xtensa_emit_move_sequence): Likewise.
* config/ia64/ia64.h (PREDICATE_CODES): Do not mention CONSTANT_P_RTX.
* config/pa/pa.h (PREDICATE_CODES): Likewise.
2004-03-16 Diego Novillo <[email protected]>
* tree-dump.c (struct dump_option_value_info): Add TDF_UID.
* tree.h (TDF_UID): Define.
* doc/invoke.texi: Document -ftree-dump-...-uid.
* tree-pretty-print.c (debug_generic_expr): Add TDF_UID.
(debug_generic_stmt): Likewise.
(dump_decl_name): New function.
(dump_generic_node): Call it.
(print_declaration): Add new argument 'flags'. Update all users.
(print_struct_decl): Likewise.
* tree-alias-ander.c, tree-cfg.c, tree-dfa.c, tree-mudflap.c,
tree-nrv.c, tree-sra.c, tree-ssa-alias.c, tree-ssa-ccp.c,
tree-ssa-copy.c, tree-ssa-dom.c, tree-ssa-dse.c,
tree-ssa-forwprop.c, tree-ssa-operands.c, tree-ssa-pre.c,
tree-ssa.c, tree-tail-call.c: Call print_generic_* with
'dump_flags'.
2004-03-16 Dale Johannesen <[email protected]>
* Makefile.in (tree-ssa-phiopt.o): add langhooks.h dependency.
(tree-nrv.o): Ditto.
(tree-ssa-copy.o): Ditto.
(tree-ssa-dom.o): Ditto.
(tree-ssa-ccp.o): Ditto.
* c-common.c: Add #include hashtab.h.
(c_type_hash): New.
(c_common_get_alias_set): Handle multiple type nodes referring
to "the same" type, currently for C90 only.
* c-decl.c (current_file_decl): Move to toplev.c.
* c-lang.c (LANG_HOOKS_TYPES_COMPATIBLE_P): Define to
c_types_compatible_p.
(c_types_compatible_p): New.
* c-tree.h (c_types_compatible_p): New declaration.
* c-typeck.c (tagged_types_tu_compatible_p): Allow for
compiler-generated TYPE_DECLs without a DECL_ORIGINAL_TYPE.
* gimplify.c (canonicalize_addr_expr): Use types_compatible_p langhook.
(cpt_same_type): Ditto.
* langhooks-def.h (lhd_types_compatible_p): New declaration.
LANG_HOOKS_TYPES_COMPATIBLE_P: New.
* langhooks.c (lhd_types_compatible_p): New.
* langhooks.h (struct lang_hooks): Add types_compatible_p.
* stmt.c (tail_recursion_args): Use types_compatible_p langhook.
* toplev.c (current_file_decl): New, moved from c-decl.c.
* tree-nrv.c: Include langhooks.h.
(tree_nrv): Use types_compatible_p langhook.
* tree-ssa-ccp.c: Include langhooks.h.
(maybe_fold_offset_to_array_ref): Use types_compatible_p langhook.
(maybe_fold_offset_to_component_ref): Ditto (2 places).
(fold_stmt_r): Make sure rhs of COMPONENT_REF is in lhs type.
* tree-ssa-copy.c: Include langhooks.h.
(cprop_into_stmt): Use types_compatible_p langhook.
* tree-ssa-dom.c: Include langhooks.h.
(avail_expr_p): Use types_compatible_p langhook.
* tree-ssa-phiopt.c: Include langhooks.h.
(conditional_replacement): Use types_compatible_p langhook.
* tree-ssa.c (tree_ssa_useless_type_conversion_1): Use
types_compatible_p langhook.
* tree.h (current_file_decl): New declaration.
2004-03-16 Dale Johannesen <[email protected]>
PR optimization/14498
* gimplify.c (copy_if_shared_r): Mark VA_ARGS_EXPRs as volatile.
(mark_decls_volatile_r): Moved higher in file (unchanged).
2004-03-16 Daniel Berlin <[email protected]>
PR optimization/14562
* tree-ssa-pre.c (generate_expr_as_of_bb): Don't use names_match_p.
(generate_vops_as_of_bb): Ditto.
2004-03-12 Diego Novillo <[email protected]>
PR optimization/14553
* tree-ssa.c (replace_immediate_uses): Call propagate_value to
update operands.
2004-03-12 Diego Novillo <[email protected]>
* tree-alias-common.c (create_alias_vars): Add #if
HAVE_BANSHEE around test for PTA_ANDERSEN.
2004-03-11 Diego Novillo <[email protected]>
* tree-dfa.c (struct walk_state): Remove fields 'is_store' and
'is_indirect_ref'. Update all users.
* tree-flow.h (struct var_ann_d): Remove fields 'is_stored',
'is_dereferenced_store' and 'is_dereferenced_load'. Update
all users.
* tree-simple.c (get_base_address): Handle BIT_FIELD_REF.
* tree-ssa-alias.c (struct alias_info): Add fields
'written_vars', 'dereferenced_ptrs_store' and
'dereferenced_ptrs_load'.
(init_alias_info): Initialize them.
(delete_alias_info): Free them.
(find_ptr_dereference): New.
(ptr_is_dereferenced_by): Call it.
Add new argument 'is_store'. Set to true if the
expression is an indirect store operation.
(compute_points_to_and_addr_escape): If the statement
makes a store, load or write operation, update the
corresponding bitmap.
(compute_flow_insensitive_aliasing): Test the
'written_vars' bitmap to determine if alias sets should
be computed.
(setup_pointers_and_addressables): Always assume that
volatile pointers and hidden pointers have been used in a
memory store operation.
* tree-ssa-operands.c (add_stmt_operand): Do add an
operand for may-aliased variables before computing
aliases.
2004-03-11 Zdenek Dvorak <[email protected]>
* tree-optimize.c (init_tree_optimization_passes): Move
pass_tail_recursion and pass_ch after pass_may_alias.
* tree-ssa-loop.c (mark_defs_for_rewrite): Mark type tags
for rewriting.
* tree-ssa.c (mark_def_sites): Process the operand of a
VDEF before the result.
2004-03-11 Richard Henderson <[email protected]>
PR 14204
* tree-ssa.c (warn_uninit): Don't warn for hard register variables.
2004-03-10 Richard Henderson <[email protected]>
* tree-simple.c (get_base_var, get_base_decl): Remove.
* tree-simple.h: Likewise.
* tree-dfa.c (discover_nonconstant_array_refs_r): Use get_base_address.
* tree-ssa-alias.c (ptr_is_dereferenced_by): Likewise.
(add_pointed_to_var, is_escape_site): Likewise.
* tree-ssa-ccp.c (get_default_value): Expect only SSA_NAME and DECLs.
* tree-ssa-operands.c (add_stmt_operand): Likewise.
(note_addressable): Use get_base_address.
* tree-ssa-dce.c (need_to_preserve_store): Expect only SSA_NAME.
* tree-ssa.c (set_is_used): Inline get_base_decl.
2004-03-10 Richard Henderson <[email protected]>
* tree-nested.c (convert_nonlocal_reference): Clear TREE_INVARIANT
on modified ADDR_EXPRs.
2004-03-10 Andrew Pinski <[email protected]
PR c/14475
* c-decl.c (check_bitfield_type_and_width): Check for null
lang_type_specific when check the precision of an enum.
2004-03-09 Andrew Pinski <[email protected]>
* Makefile.in (tree-ssa-forwprop.o): Fix the dependences.
2004-03-09 Jeff Law <[email protected]>
* tree-flow-inline.h (may_propagate_copy): Do not allow propagation of
a constant for a virtual operand.
2004-03-08 Richard Henderson <[email protected]>
* calls.c (initialize_argument_information): Add
parameter may_tail_call. Set to false for invisible
pass-by-reference arguments that require stack
allocation.
Update all users.
2004-03-07 Jeff Law <[email protected]>
* tree-ssa-dom.c: (get_eq_expr_value): Fix typo when comparing a
boolean against a constant.
* tree-ssa-forwprop.c (record_single_argument_cond_exprs): Do not
record the same SSA_NAME more than once. Only record the SSA_NAME
tested, not the COND_EXPR.
(substitute_single_use_vars): Substitute booleans which are
set from a TRUTH_NOT_EXPR even if they have more than one use site.
2004-03-05 Jeff Law <[email protected]>
* tree-ssa-dce.c (remove_dead_stmt): Clear PENDING_STMT after
redirect_edge_and_branch call.
* tree-ssa-forwprop.c (record_single_argument_cond_exprs): Also
record COND_EXPRs with single use vars defined by SSA_NAME + CONST
expressions.
(substitute_single_use_vars): Corresponding changes to rewrite
COND_EXPRs using single use vars defined by SSA_NAME + CONST
expressions.
2004-03-05 Ulrich Weigand <[email protected]>
* config/s390/s390.c (s390_expand_movstr): Do not use
expand_exit_loop_top_cond, manually copy loop header.
(s390_expand_clrstr): Likewise.
(s390_expand_cmpmem): Likewise.
2004-03-04 Diego Novillo <[email protected]>
* tree-ssa-alias.c (compute_flow_sensitive_aliasing): If
a name tag has been marked call-clobbered, also mark the
corresponding type tag.
2004-03-04 Zdenek Dvorak <[email protected]>