aboutsummaryrefslogtreecommitdiff
path: root/gcc/ChangeLog
blob: 6fd7bfd6c18763492186ad8038cc7e3d8c056a3b (plain)
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
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
2006-01-19  Richard Sandiford  <richard@codesourcery.com>

	PR c/25805
	* c-decl.c (add_flexible_array_elts_to_size): New function.
	(finish_decl): Use it.

2006-01-18  Andrew Pinski  <pinskia@physics.uc.edu>

	* diagnostic.h: Include options.h.
	* config/rs6000/x-darwin (host-ppc-darwin.o): Correct the
	dependancies for diagnostic.h.
	* Makefile.in (DIAGNOSTIC_H): Add options.h.

2006-01-16  Daniel Berlin  <dberlin@dberlin.org>

	* tree-ssa-operands.h (ssa_call_clobbered_cache_valid): Remove.
	(ssa_ro_call_cache_valid): Ditto.
	* tree-ssa-alias.c (sort_tags_by_id): New function.
	(init_transitive_clobber_worklist): Ditto.
	(add_to_worklist): Ditto.
	(mark_aliases_call_clobbered): Ditto.
	(compute_tag_properties): Ditto.
	(set_initial_properties): Ditto.
	(compute_call_clobbered): Ditto.
	(compute_may_aliases):	Call compute_call_clobbered and grouping.
	(compute_flow_sensitive_aliasing): Remove clobbering related code.
	(compute_flow_insensitive_aliasing): Grouping now happens in our
	caller.
	(setup_pointers_and_addressables): Remove clobbering related code.
	(add_may_alias): Ditto.
	(replace_may_alias): Ditto.
	(get_nmt_for): Ditto.
	(create_global_var): 
	(is_escape_site): Return an escape_type enumeration.
	* tree-flow-inline.h (is_call_clobbered):  Global var does not
	imply call clobbered.
	(mark_call_clobbered): Take a reason for marking this. Remove
	marking of globalness, and cache invalidation.
	(clear_call_clobbered): Remove cache invalidation code.
	* tree-dfa.c (dump_variable): If details is on, dump the reason
	for escaping.
	* tree-outof-ssa.c (create_temp): Copy escape mask from original
	variable. 
	* tree-flow.h (struct ptr_info_def): Add escape mask member.
	(struct var_ann_d): Ditto.
	(enum escape_type): New.
	(mark_call_clobbered): Adjust prototype.
	* tree-ssa-structalias.c (update_alias_info): Unmodifiable vars
	are never call clobbered. 
	Record reasons for escaping.
	* tree-ssa-structalias.h (is_escape_site): Update prototype.
	* tree-ssa-operands.c (ssa_call_clobbered_cache_valid): Remove.
	(ssa_ro_call_cache_valid): Ditto.
	(clobbered_v_may_defs): Ditto.
	(clobbered_vuses): Ditto.
	(ro_call_vuses): Ditto.
	(clobber_stats): New.
	(init_ssa_operands): Zero out clobber stats.
	(fini_ssa_operands): Print out clobber stats.
	(get_call_expr_operands): Pass callee fndecl to
	add_call_read_ops).
	(add_call_clobber_ops): Remove use of cache.
	Add use of PURE_CONST information.
	(add_call_read_ops): Remove use of cache.
	Add use of static not_read information.
	
2006-01-18  Alexandre Oliva  <aoliva@redhat.com>

	Introduce TLS descriptors for i386 and x86_64.
	* config/i386/i386.h (TARGET_GNU2_TLS): New macro.
	(TARGET_ANY_GNU_TLS): New macro.
	(enum tls_dialect): Added TLS_DIALECT_GNU2.
	(struct machine_function): Add tls_descriptor_call_expanded_p.
	(ix86_tls_descriptor_calls_expande_in_cfun): New macro.
	(ix86_current_function_calls_tls_descriptor): Likewise.
	* config/i386/i386.c (ix86_tls_dialect): Fix typo in comment.
	(override_options): Introduce gnu2 tls dialect.
	(ix86_frame_pointer_required): Functions containing TLSCALLs are
	not leaves.
	(ix86_select_alt_pic_regnum, ix86_compute_frame_layout):
	Likewise.
	(legitimize_tls_address): Adjust logic for GNU2 TLS.
	(ix86_init_machine_status): Initialize new field.
	(ix86_tls_get_addr): Use TARGET_ANY_GNU_TLS.
	(ix86_tls_module_base): New.
	* config/i386/i386-protos.h (ix86_tls_module_base): Declare it.
	* config/i386/i386.md (UNSPEC_TLSDESC): New constant.
	(tls_global_dynamic_32, tls_global_dynamic_64): Handle GNU2 TLS.
	(tls_local_dynamic_base_32, tls_local_dynamic_base_64): Likewise.
	(tls_dynamic_gnu2_32, *tls_dynamic_lea_32): New patterns.
	(*tls_dynamic_call_32, *tls_dynamic_gnu2_combine_32): Likewise.
	(tls_dynamic_gnu2_64, *tls_dynamic_lea_64): Likewise.
	(*tls_dynamic_call_64, *tls_dynamic_gnu2_combine_64): Likewise.
	* config/i386/predicates.md (tls_modbase_operand): New.
	(tp_or_register_operand): New.

2006-01-18  Daniel Berlin  <dberlin@dberlin.org>

	* ipa-reference.c (check_operand):  Allow FUNCTION_DECL.
	(look_for_address_of): Ditto.
	(ipa_init): Walk the function decls.
	(static_execute): Don't set readonly on FUNCTION_DECL's.

2006-01-18  Roger Sayle  <roger@eyesopen.com>

	* config/i386/i386.md (shift spliter): Fix a a typo in the splitter
	for shifts where the source and destination registers are different.

2006-01-18  Paul Brook  <paul@codesourcery.com>

	Merge from csl-arm-branch.
	2005-03-14  Julian Brown  <julian@codesourcery.com>
	* config/arm/lib1funcs.asm (ashldi3): Don't define on SymbianOS.
	(aeabi_llsl): Likewise.
	(ashrdi3): Likewise.
	(aeabi_lasr): Likewise.
	(lshrdi3): Likewise.
	(aeabi_llsr): Likewise. 
	2005-03-10  Julian Brown  <julian@codesourcery.com>
	* config.gcc: Disable shared libgcc for SymbianOS.
	* config/arm/t-symbian (LIB2ADDEH): Include config/arm/pr-support.c.

2006-01-18  DJ Delorie  <dj@redhat.com>

	* c-pragma.c (handle_pragma_diagnostic): New.
	(init_pragma): Register it.
	* doc/extend.texi: Document it.

	* diagnostic.def: Add DK_UNSPECIFIED and DK_IGNORED.
	* diagnostic.h (diagnostic_classify_diagnostic): Declare.
	(diagnostic_context): Add classify_diagnostic[].
	* diagnostic.c (diagnostic_count_diagnostic): Don't count warnings
	as errors if they're overridden to DK_WARNING.
	(diagnostic_initialize): Initialize classify_diagnostic[].
	(diagnostic_set_kind_override): New.
	(diagnostic_report_diagnostic): Check for kind changes.
	* opts.c (common_handle_option): Take lang_mask.  Update callers.
	Handle OPT_Werror_.
	* common.opt (Werror=): New.
	* doc/invoke.texi: Document -Werror=*

2006-01-18  Jeff Law  <law@redhat.com>

	* tree-vrp.c (test_for_singularity): Correct test for new
	min limit.  Use operand_equal_p rather than pointer equality
	for testing if new min/max values are equal.

	* tree-ssa-propagate.c (substitute_and_fold): Delay simplifications
	using range information until after propagation and folding.

2006-01-18  Richard Henderson  <rth@redhat.com>
	    Aldy Hernandez  <aldyh@redhat.com>
	    Jakub Jelinek  <jakub@redhat.com>
	    Diego Novillo  <dnovillo@redhat.com>

	* omp-low.c: New file.
	* c-omp.c: New file.

2006-01-18  Richard Henderson  <rth@redhat.com>
	    Jakub Jelinek  <jakub@redhat.com>
	    Diego Novillo  <dnovillo@redhat.com>

	* doc/invoke.texi: Document -fopenmp.
	* tree-dump.h (debug_function): Declare.
	* hooks.c (hook_bool_tree_bool_false): New function.
	(hook_tree_tree_null): Remove.
	(hook_tree_tree_tree_null): New.
	* hooks.h: Update to match.
	* tree-pretty-print.c (debug_tree_chain): New.
	(print_generic_expr): Handle TDF_CHAIN.
	(dump_generic_node): Handle BLOCK.
	Do not abort with incomplete SWITCH_EXPRs.
	Do not dump body of an OpenMP directive if TDF_SLIM is given.
	<case OMP_PARALLEL, OMP_FOR, OMP_SECTIONS>: Don't
	print space after directive name.
	<OMP_FOR>: Handle printing OMP_FOR_PRE_BODY.
	Handle OMP_MASTER and OMP_ORDERED.
	Handle printing of OMP_BODY just in one place, goto
	dump_omp_body in the rest of OMP_* nodes that have
	OMP_BODY.
	Don't handle clause nodes here.  Update omp statements to
	use dump_omp_clauses.
	Handle OMP_SINGLE, OMP_SECTIONS, OMP_SECTION,
	OMP_CLAUSE_ORDERED, OMP_CLAUSE_SCHEDULE, OMP_ATOMIC,
	OMP_CRITICAL, OMP_CLAUSE_NOWAIT, GOMP_CLAUSE_IF,
	GOMP_CLAUSE_NUM_THREADS, GOMP_FOR, GOMP_CLAUSE_SHARED,
	GOMP_CLAUSE_FIRSTPRIVATE, GOMP_CLAUSE_LASTPRIVATE,
	GOMP_CLAUSE_COPYIN and GOMP_CLAUSE_COPYPRIVATE.
	Adjust output for GOMP_PARALLEL.
	(dump_omp_clauses): New.
	(print_declaration): Dump DECL_VALUE_EXPR.
	(op_symbol_1): Split out of op_symbol.
	(dumping_stmts): Remove.  Update all users.
	* cgraph.c (cgraph_analyze_queue): New.
	(cgraph_add_new_function): New.
	* cgraph.h (cgraph_analyze_queue): Declare.
	(cgraph_add_new_function): Declare.
	(cgraph_lower_function): Remove.
	* tree.c (walk_tree): Walk OMP_CLAUSE_CHAIN of OMP_CLAUSE_*
	nodes.  Use switch for all nodes, handle most of IS_EXPR_CODE_CLASS
	and TYPE_P nodes in its default clause.
	(empty_body_p): New.
	(tree_range_check_failed): New.
	(build5_stat): New.
	* tree.h (OMP_CLAUSE_REDUCTION_INIT,
	OMP_CLAUSE_REDUCTION_MERGE,
	OMP_CLAUSE_REDUCTION_PLACEHOLDER,
	OMP_CLAUSE_PRIVATE_DEBUG,
	OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE, OMP_FOR_PRE_BODY,
	OMP_MASTER_BODY, OMP_ORDERED_BODY OMP_BODY,
	OMP_CLAUSES, OMP_CLAUSE_DECL, OMP_CLAUSE_DEFAULT_KIND,
	OMP_CLAUSE_CHAIN, OMP_CLAUSE_OUTER_DECL,
	OMP_CLAUSE_INNER_DECL, OMP_CLAUSE_NUM_THREADS_EXPR,
	OMP_CLAUSE_IF_EXPR, OMP_CLAUSE_SCHEDULE_CHUNK_EXPR,
	OMP_CLAUSE_SCHEDULE_CHUNK_SIZE. OMP_PARALLEL_VAR_INIT,
	OMP_PARALLEL_VAR_REDUC, OMP_FOR_VAR_INIT,
	OMP_FOR_VAR_LAST, OMP_FOR_VAR_REDUC,
	OMP_SECTIONS_VAR_INIT, OMP_SECTIONS_VAR_LAST,
	OMP_SECTIONS_VAR_REDUC, OMP_CLAUSE_REDUCTION_CODE
	OMP_SINGLE_CLAUSES, OMP_SINGLE_BODY,
	OMP_CLAUSE_SCHEDULE_CHUNK_SIZE, OMP_SECTION_BODY,
	OMP_CRITICAL_NAME, OMP_CRITICAL_BODY): New.
	(TREE_RANGE_CHECK): New.
	(empty_body_p): Declare.
	(enum omp_clause_default_kind): New.
	(build_string_literal): Declare.
	(enum omp_clause_schedule_kind, OMP_CLAUSE_SCHEDULE_KIND): New.
	(build5_stat, build5): Declare.
	* tree-pass.h (TDF_CHAIN): Define.
	* tree-pass.h (PROP_gimple_lomp): Define.
	(pass_lower_omp): Declare.
	* diagnostic.h (debug_tree_chain): Declare.
	* builtins.c (get_builtin_sync_mode): Use 0 as last argument to
	mode_for_size.
	(expand_builtin): Handle sync BUILT_IN_*_16 builtins.
	* builtins.c (build_string_literal): Make extern.
	* gcc.c (include_spec_function): New.
	(static_spec_functions): Add it.
	(main): Move load of libgomp.spec ...
	(LINK_COMMAND_SPEC): ... here.
	(link_gomp_spec): New.
	(static_specs): Include it.
	(LINK_COMMAND_SPEC): Add link_gomp.
	(GOMP_SELF_SPECS): New.
	(driver_self_specs): Include it.
	(switch_matches): Don't mark inline.
	(main): Load libgomp.spec.
	* tree-gimple.c (is_gimple_stmt): True for OMP_MASTER,
	OMP_ORDERED, OMP_CRITICAL, OMP_SECTIONS, OMP_SECTION,
	and OMP_SINGLE, OMP_FOR and OMP_PARALLEL.
	* tree-gimple.h (enum omp_parallel): Declare.
	(determine_parallel_type): Declare.
	(omp_firstprivatize_variable): Declare.
	(omp_reduction_init): Declare.
	(diagnose_omp_structured_block_errors): Declare.
	(struct walk_stmt_info): Add want_return_expr.
	(struct walk_stmt_info): Add want_bind_expr, want_locations.
	(find_omp_clause): Declare.
	(insert_field_into_struct): Declare.
	(struct walk_stmt_info): Move from tree-nested.c
	(walk_stmts): Declare.
	* c-cppbuiltin.c (c_cpp_builtins): If -fopenmp, #define _OPENMP
	to 200505.
	* cgraphunit.c (cgraph_lower_function): Make static.
	(cgraph_finalize_pending_functions): New.
	(cgraph_finalize_function): Call it.
	(cgraph_finalize_compilation_unit): Likewise.
	* builtin-types.def (BT_I16, BT_FN_I16_VPTR_I16,
	BT_FN_BOOL_VPTR_I16_I16, BT_FN_I16_VPTR_I16_I16): Add.
	(BT_FN_UINT_UINT): New.
	(DEF_FUNCTION_TYPE_6, DEF_FUNCTION_TYPE_7,
	DEF_FUNCTION_TYPE_VAR_4): Document.
	(BT_PTR_LONG, BT_PTR_PTR, BT_FN_BOOL, BT_FN_INT,
	BT_FN_VOID_PTRPTR, BT_PTR_FN_VOID_PTR,
	BT_FN_BOOL_LONGPTR_LONGPTR, BT_FN_VOID_OMPFN_PTR_UINT,
	BT_FN_VOID_OMPFN_PTR_UINT_UINT,
	BT_FN_BOOL_LONG_LONG_LONG_LONGPTR_LONGPTR,
	BT_FN_BOOL_LONG_LONG_LONG_LONG_LONGPTR_LONGPTR,
	BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG,
	BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG): New.
	* builtins.def: Update DEF_BUILTIN comment to include COND argument.
	Move all DEF_SYNC_BUILTIN () and DEF_GOMP_BUILTIN () builtins
	into separate files.
	(DEF_GOMP_BUILTIN): New.
	(BUILT_IN_OMP_GET_THREAD_NUM, BUILT_IN_GOMP_BARRIER,
	BUILT_IN_GOMP_CRITICAL_START, BUILT_IN_GOMP_CRITICAL_END,
	BUILT_IN_GOMP_CRITICAL_NAME_START, BUILT_IN_GOMP_CRITICAL_NAME_END,
	BUILT_IN_GOMP_LOOP_STATIC_START, BUILT_IN_GOMP_LOOP_DYNAMIC_START,
	BUILT_IN_GOMP_LOOP_GUIDED_START, BUILT_IN_GOMP_LOOP_RUNTIME_START,
	BUILT_IN_GOMP_LOOP_ORDERED_STATIC_START,
	BUILT_IN_GOMP_LOOP_ORDERED_DYNAMIC_START,
	BUILT_IN_GOMP_LOOP_ORDERED_GUIDED_START,
	BUILT_IN_GOMP_LOOP_ORDERED_RUNTIME_START,
	BUILT_IN_GOMP_LOOP_STATIC_NEXT, BUILT_IN_GOMP_LOOP_DYNAMIC_NEXT,
	BUILT_IN_GOMP_LOOP_GUIDED_NEXT, BUILT_IN_GOMP_LOOP_RUNTIME_NEXT,
	BUILT_IN_GOMP_LOOP_ORDERED_STATIC_NEXT,
	BUILT_IN_GOMP_LOOP_ORDERED_DYNAMIC_NEXT,
	BUILT_IN_GOMP_LOOP_ORDERED_GUIDED_NEXT,
	BUILT_IN_GOMP_LOOP_ORDERED_RUNTIME_NEXT,
	BUILT_IN_GOMP_PARALLEL_LOOP_STATIC_START,
	BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC_START,
	BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED_START,
	BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME_START,
	BUILT_IN_GOMP_LOOP_END, BUILT_IN_GOMP_LOOP_END_NOWAIT,
	BUILT_IN_GOMP_ORDERED_START, BUILT_IN_GOMP_ORDERED_END,
	BUILT_IN_GOMP_PARALLEL_START, BUILT_IN_GOMP_PARALLEL_END,
	BUILT_IN_GOMP_SECTIONS_START, BUILT_IN_GOMP_SECTIONS_NEXT,
	BUILT_IN_GOMP_PARALLEL_SECTIONS_START, BUILT_IN_GOMP_SECTIONS_END,
	BUILT_IN_GOMP_SECTIONS_END_NOWAIT, BUILT_IN_GOMP_SINGLE_START,
	BUILT_IN_GOMP_SINGLE_COPY_START, BUILT_IN_GOMP_SINGLE_COPY_END): New.
	* sync-builtins.def: New file, moved from builtins.def.
	* omp-builtins.def: New file, moved from builtins.def.
	* c-objc-common.h (LANG_HOOKS_OMP_PREDETERMINED_SHARING): Redefine.
	* gimple-low.c (lower_function_body): Clear data.
	(lower_stmt): Do not handle COMPOUND_EXPR.
	Remove call to print_node_brief.
	* c-tree.h (c_finish_omp_clauses): New prototype.
	(C_DECL_THREADPRIVATE_P): Define.
	(lookup_name_no_remap, c_omp_remap_private): Remove
	(c_begin_omp_parallel, c_finish_omp_parallel): Update.
	(check_for_loop_decls): Update decl.
	(lookup_name_no_remap, c_omp_remap_private): Declare.
	(build_indirect_ref, build_modify_expr, pushdecl,
	pushdecl_top_level): Move to c-common.h.
	* dwarf2out.c (loc_descriptor_from_tree_1): Don't set unsignedp
	before the switch, but just in the 2 places that need it.
	* c-decl.c (diagnose_mismatched_decls): Do not check for
	mismatched thread-local attributes when OLDDECL is marked
	threadprivate and NEWDECL has no thread-local attributes.
	(merge_decls): Merge C_DECL_THREADPRIVATE_P.
	(c_gimple_diagnostics_recursively): Rename from
	c_warn_unused_result_recursively.  Invoke
	diagnose_omp_structured_block_errors.
	(check_for_loop_decls): Return a singular decl found.
	* langhooks.c (lhd_omp_predetermined_sharing): Return
	OMP_CLAUSE_DEFAULT_SHARED for DECL_ARTIFICIAL decls.
	(lhd_omp_firstprivatize_type_sizes): New.
	(lhd_omp_assignment): New.
	(lhd_omp_predetermined_sharing): New.
	* langhooks.h (struct gimplify_omp_ctx): Forward declare.
	(struct lang_hooks_for_types): Add
	omp_firstprivatize_type_sizes, omp_privatize_by_reference,
	omp_predetermined_sharing, omp_disregard_value_expr,
	omp_private_debug_clause, omp_clause_default_ctor,
	omp_clause_copy_ctor, omp_clause_assign_op, omp_clause_dtor.
	(c_finish_omp_clauses): New.
	(c_finish_bc_stmt): Diagnose break within omp for.
	(c_begin_omp_parallel, c_finish_omp_parallel): New.
	(build_unary_op): Return error_mark after reporting
	a readonly_error.
	(build_modify_expr): Likewise.
	* gimplify.c: Include optabs.h and pointer-set.h.
	(enum gimplify_omp_var_data): Declare.
	(struct gimplify_omp_ctx): Declare.
	(struct gimplify_ctx): Add fields prev_context, combined_pre_p
	and combined_ctxp.
	(gimplify_ctxp, gimplify_omp_ctxp): New local variables.
	(push_gimplify_context, pop_gimplify_context): Allow nesting.
	(splay_tree_compare_decl_uid): New.
	(new_omp_context): New.
	(delete_omp_context): New.
	(gimple_add_tmp_var): Call omp_add_variable.
	(gimplify_bind_expr): Likewise.
	(gimplify_var_or_parm_decl): If omp_notice_variable returned
	true, disregard DECL_VALUE_EXPR on the decl if any.
	(gimplify_expr_in_ctx): New.
	(omp_firstprivatize_variable, omp_firstprivatize_type_sizes
	omp_add_variable, omp_notice_variable, omp_is_private
	gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses_1
	gimplify_adjust_omp_clauses, gimplify_omp_parallel
	gimplify_omp_for, gimplify_omp_workshare, goa_lhs_expr_p
	gimplify_omp_atomic_fetch_op, goa_stabilize_expr
	gimplify_omp_atomic_pipeline, gimplify_omp_atomic_mutex
	gimplify_omp_atomic): New.
	(gimplify_expr): Handle OMP_PARALLEL, OMP_FOR, OMP_SECTIONS,
	OMP_SINGLE, OMP_SECTION, OMP_MASTER, OMP_ORDERED,
	OMP_CRITICAL and OMP_ATOMIC.
	(gimplify_body): Verify gimplify_ctxp is empty after gimplification.
	* c-pragma.h (enum pragma_kind): Add
	PRAGMA_OMP_ATOMIC, PRAGMA_OMP_BARRIER,
	PRAGMA_OMP_CRITICAL, PRAGMA_OMP_FLUSH, PRAGMA_OMP_FOR,
	PRAGMA_OMP_MASTER, PRAGMA_OMP_ORDERED,
	PRAGMA_OMP_PARALLEL, PRAGMA_OMP_PARALLEL_FOR,
	PRAGMA_OMP_PARALLEL_SECTIONS, PRAGMA_OMP_SECTION,
	PRAGMA_OMP_SECTIONS, PRAGMA_OMP_SINGLE,
	PRAGMA_OMP_THREADPRIVATE.
	* tree.def (OMP_PARALLEL, OMP_FOR, OMP_SECTIONS,
	OMP_SINGLE, OMP_SECTION, OMP_MASTER, OMP_ORDERED,
	OMP_CRITICAL, OMP_ATOMIC, OMP_CLAUSE_PRIVATE,
	OMP_CLAUSE_SHARED, OMP_CLAUSE_FIRSTPRIVATE,
	OMP_CLAUSE_LASTPRIVATE, OMP_CLAUSE_REDUCTION,
	OMP_CLAUSE_COPYIN, OMP_CLAUSE_COPYPRIVATE,
	OMP_CLAUSE_IF, OMP_CLAUSE_NUM_THREADS,
	OMP_CLAUSE_SCHEDULE, OMP_CLAUSE_NOWAIT,
	OMP_CLAUSE_ORDERED, OMP_CLAUSE_DEFAULT): Define.
	* print-tree.c (print_node): Dump DECL_VALUE_EXPR.
	* tree-ssa-dce.c (find_control_dependence): Do not assume that
	ENTRY_BLOCK_PTR->next_bb == single_succ (ENTRY_BLOCK_PTR).
	* tree-nested.c (convert_call_expr): Call walk_body on OMP_BODY for
	OpenMP directives.
	(struct nesting_info): Add field_map,
	suppress_expansion, debug_var_chain.
	(create_nesting_tree): Initialize them.
	(lookup_field_for_decl): Use field_map.
	(get_nonlocal_debug_decl, get_local_debug_decl): New.
	(convert_local_omp_clauses): New.
	(finalize_nesting_tree_1): Add debug_var_chain to toplevel block.
	(walk_body): Split out of walk_function.
	(convert_nonlocal_omp_clauses, convert_local_omp_clauses): New.
	(convert_nonlocal_reference): Handle omp statements.
	(convert_local_reference): Likewise.
	(unnest_nesting_tree_1): Split out of finalize_nesting_tree_1.
	(unnest_nesting_tree): New.
	(lower_nested_functions): Call it.
	(insert_field_into_struct): Make extern.
	(struct walk_stmt_info): Move to tree-gimple.h.
	(walk_stmts): Make extern.
	* omp-builtins.def: New file.
	* tree-iterator.c (expr_only): Clarify comment.
	* c-common.h (pushdecl_top_level, pushdecl,
	build_modify_expr, build_indirect_ref,
	c_finish_omp_master, c_finish_omp_critical,
	c_finish_omp_ordered, c_finish_omp_barrier,
	c_finish_omp_atomic, c_finish_omp_flush,
	c_finish_omp_for, c_split_parallel_clauses,
	omp_clause_default_kind, c_omp_sharing_predetermined,
	c_omp_remap_decl): Declare.
	* Makefile.in (BUILTINS_DEF): Add omp-builtins.def.
	(OBJS-common): Add omp-low.o.
	(c-omp.o, omp-low.o): Add.
	(gimplify.o): Add dependency on $(OPTABS_H).
	(GTFILES): Add omp-low.c.
	(gt-stringpool.h): Add.
	* tree-cfg.c (set_bb_for_stmt): Do not update the
	block-to-labels map if we are currently expanding to RTL.
	(tree_node_can_be_shared): Remove unnecessary CONSTANT_CLASS_P
	checks.
	Handle IDENTIFIER_NODE.
	(tree_verify_flow_info): Do not ICE when emitting error
	messages about invalid labels.
	(dump_function_to_file): Reset CFUN before emitting the body
	of the function.
	(debug_function): New.
	* passes.c (init_optimization_passes): Schedule
	pass_lower_omp.
	* langhooks-def.h (lhd_omp_predetermined_sharing,
	lhd_omp_assignment, lhd_omp_firstprivatize_type_sizes):
	Declare.
	(LANG_HOOKS_OMP_FIRSTPRIVATIZE_TYPE_SIZES): Define.
	(LANG_HOOKS_FOR_TYPES_INITIALIZER): Use it.
	(LANG_HOOKS_OMP_PRIVATIZE_BY_REFERENCE,
	LANG_HOOKS_OMP_PREDETERMINED_SHARING,
	LANG_HOOKS_OMP_DISREGARD_VALUE_EXPR,
	LANG_HOOKS_OMP_PRIVATE_DEBUG_CLAUSE,
	LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR,
	LANG_HOOKS_OMP_CLAUSE_COPY_CTOR,
	LANG_HOOKS_OMP_CLAUSE_ASSIGN_OP,
	LANG_HOOKS_OMP_CLAUSE_DTOR): Define.
	(LANG_HOOK_DECLS): Use them.

2006-01-18  Dmitry Kurochkin <dmitry.kurochkin@gmail.com>
	    Richard Henderson  <rth@redhat.com>
	    Jakub Jelinek  <jakub@redhat.com>
	    Diego Novillo  <dnovillo@redhat.com>

	* c-parser.c (pragma_omp_clause): Define.
	(c_parser_declaration_or_fndef): Document OpenMP syntax.
	(c_parser_compound_statement): Likewise.
	(c_parser_statement): Likewise.
	(c_parser_pragma): Handle omp pragmas.
	(OMP_FOR_CLAUSE_MASK, OMP_SECTIONS_CLAUSE_MASK,
	OMP_PARALLEL_CLAUSE_MASK, OMP_SINGLE_CLAUSE_MASK): Define.
	(c_parser_omp_clause_name, check_no_duplicate_clause,
	c_parser_omp_variable_list,
	c_parser_omp_var_list_parens, c_parser_omp_clause_copyin,
	c_parser_omp_clause_copyprivate,
	c_parser_omp_clause_default,
	c_parser_omp_clause_firstprivate, c_parser_omp_clause_if,
	c_parser_omp_clause_lastprivate,
	c_parser_omp_clause_nowait,
	c_parser_omp_clause_num_threads,
	c_parser_omp_clause_ordered, c_parser_omp_clause_private,
	c_parser_omp_clause_reduction,
	c_parser_omp_clause_schedule, c_parser_omp_clause_shared,
	c_parser_omp_all_clauses, c_parser_omp_structured_block,
	c_parser_omp_atomic, c_parser_omp_barrier,
	c_parser_omp_critical, c_parser_omp_flush,
	c_parser_omp_for_loop, c_parser_omp_for,
	c_parser_omp_master, c_parser_omp_ordered,
	c_parser_omp_sections_scope, c_parser_omp_sections,
	c_parser_omp_parallel, c_parser_omp_single,
	c_parser_omp_construct, c_parser_omp_threadprivate): New.
	* c-pragma.c (init_pragma): Do omp pragma registration here.
	* c.opt (fopenmp): New flag.

2006-01-18  Eric Christopher  <echristo@apple.com>

	* gcc.c (GOMP_SELF_SPECS): Bracket in #ifndef/#endif.
	* config/darwin.h (GOMP_SELF_SPECS): Define.

2006-01-18  Kazu Hirata  <kazu@codesourcery.com>

	* rtl.h: Remove the prototype for reg_alloc.

2006-01-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR target/25731
	* config.gcc (hppa*-*-linux*, hppa[12]*-*-hpux10*, hppa*64*-*-hpux11*,
	hppa[12]*-*-hpux11*): Override default shared libgcc version for both
	sjlj and dwarf2 exception handling.
	* pa/t-hpux-shlib (SHLIB_SOVERSION): New make variable.
	Rework to allow overriding SHLIB_EXT and SHLIB_SOVERSION.
	* pa/pa.c (function_value): Treat complex and vector types as
	aggregates.
	(function_arg): Likewise.  Only pass scalar floats in the floating
	point argument registers.
	* pa/t-slibgcc-dwarf-ver: New file.
	* pa/t-slibgcc-sjlj-ver: New file.
	* pa/t-slibgcc-elf-ver: Delete file.

2006-01-19  Alan Modra  <amodra@bigpond.net.au>

	* config/rs6000/rs6000.c (rs6000_assemble_integer): Correct
	unlikely_test_section_p test.

2006-01-18  Kazu Hirata  <kazu@codesourcery.com>

	* mode-switching.c (optimize_mode_switching): Make it static.
	* basic-block.h: Remove the prototype for
	optimize_mode_switching.

	* modulo-sched.c (sms_schedule): Make it static.
	* rtl.h: Remove the prototype for sms_schedule.

	* postreload-gcse.c (gcse_after_reload_main): Make it static.
	* rtl.h: Remove the prototype for gcse_after_reload_main.

	* reg-stack.c (reg_to_stack): Make it static.
	* rtl.h: Remove the prototype for reg_to_stack.

	* regrename.c (regrename_optimize, copyprop_hardreg_forward):
	Make them static.
	* rtl.h: Remove the prototypes for regrename_optimize and
	copyprop_hardreg_forward.

2006-01-18  Eric Botcazou  <ebotcazou@adacore.com>

	* config/alpha/alpha.c (alpha_split_tfmode_pair): Rename into
	alpha_split_tmode_pair.  Add 'mode' and 'fixup_overlap' arguments.
	Test against the appropriate null constant for the mode.
	If 'fixup_overlap' is true, swap the operands if they overlap.
	(alpha_split_tfmode_frobsign): Adjust call to alpha_split_tfmode_pair.
	* config/alpha/alpha-protos.h (alpha_split_tfmode_pair): Rename into
	alpha_split_tmode_pair and adjust for above change.
	* config/alpha/alpha.md (movtf_internal): Adjust call to
	alpha_split_tfmode_pair and rely on it to swap the operands.
	(movti_internal): New insn and post-reload splitter.
	(movti): New expander.

2006-01-18  Philippe De Muyter  <phdm@macqel.be>

	* config/m68k/m68k.md (*addsi3_5200): Allow addq/subq to memory
	operands.

2006-01-18  Kazu Hirata  <kazu@codesourcery.com>

	* rtlanal.c (global_reg_mentioned_p_1,
	global_reg_mentioned_p): Remove.
	* rtl.h: Remove the prototype for global_reg_mentioned_p.

	* flow.c (initialize_uninitialized_subregs): Make it static.
	* rtl.h: Remove the prototype for
	initialize_uninitialized_subregs.

	* function.c (instantiate_virtual_regs): Make it static.
	* function.h: Remove the prototype for
	instantiate_virtual_regs.

	* regmove.c (regmove_optimize, combine_stack_adjustments):
	Make them static.
	* rtl.h: Remove the prototypes for regmove_optimize and
	combine_stack_adjustments.

2006-01-17  Roger Sayle  <roger@eyesopen.com>

	* config/i386/i386.c (COSTS_N_BYTES): New macro.
	(size_cost): Encode costs in bytes so that a reg-reg addition is
	equivalent to COSTS_N_INSNS(1).
	(override_options): Use the size_cost.branch_cost as the default
	ix86_branch_cost when optimizing for size.

2006-01-18  Ben Elliston  <bje@au.ibm.com>	

	* Makefile.in (D32PBIT_FUNCS): New.
	(D64PBIT_FUNCS, D128PBIT_FUNCS): Likewise.
	(libgcc.mk): Set D32PBIT, D64PBIT, D128PBIT, D32PBIT_FUNCS,
	D64PBIT_FUNCS and D128PBIT_FUNCS.
	(LIBGCC_DEPS): Include $(D32PBIT), $(D64PBIT), $(D128PBIT).
	* mklibgcc.in Bring in the DFP support code if D32PBIT, D64PBIT or
	D128PBIT are set.
	(decnumber_dep): Define.
	* doc/libgcc.texi (Decimal float library routines): New node.
	* config/dfp-bit.h, config/dfp-bit.c: New files.

2006-01-18  Ben Elliston  <bje@au.ibm.com>	

	* expr.c (emit_move_change_mode): Always adjust addresses, not
	just during reload.  Copy replacements only during reload.
	(emit_move_insn_1): Move MODE_DECIMAL_FLOAT modes by invoking
	emit_move_via_integer.

2006-01-17  Shantonu Sen  <ssen@opendarwin.org>

	* Makefile.in (check-%, check-consistency): Use $${srcdir}
	instead of $(srcdir) and ${srcdir}.

2006-01-17  Richard Earnshaw  <rearnsha@arm.com>

	PR target/592
	PR middle-end/11135
	* arm.h (struct machine_function): Add pic_reg.
	* arm.c (arm_pic_register): Make unsigned.
	(arm_override_options): Only set arm_pic_register if
	TARGET_SINGLE_PIC_BASE.
	(use_return_insn): Only test for a pic register if it is fixed.
	(arm_compute_save_reg0_reg12_mask): Likewise.
	(thumb_compute_save_reg_mask): Likewise.
	(legitimate_pic_operand): Factor out some known invariants.
	(legitimize_pic_address): If we don't have a fixed pic register,
	then set up a pseudo in the function entry sequence.  Handle the
	pic base being in a pseudo.
	(arm_load_pic_register): Handle the pic register being in a pseudo.
	(arm_expand_prologue): Only set up the pic register if it is fixed.
	(thumb_expand_prologue): Likewise.
	* arm.md (pic_load_addr_based): Handle the pic base being a pseudo.
	(pic_load_addr_based_insn): Likewise.
	(builtin_setjmp_receiver): Don't restore the pic base if it isn't
	fixed.

2006-01-18  Ben Elliston  <bje@au.ibm.com>

	* config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Reject
	decimal float modes for all floating point registers.

	* config/rs6000/predicates.md (reg_or_mem_operand): Pair up
	match_code "mem" with match_test "macho_lo_sum_memory_operand".

2006-01-17  Jakub Jelinek  <jakub@redhat.com>

	PR c/25682
	* c-typeck.c (build_unary_op): Fold offsetof-like expressions
	even when the pointer is not NULL.

2006-01-16  Ian Lance Taylor  <ian@airs.com>

	* common.opt (ftoplevel-reorder): New option.
	* cgraph.c (cgraph_asm_nodes): New global variable.
	(cgraph_asm_last_node): New static variable.
	(cgraph_order): New global variable.
	(cgraph_create_node): Set new order field.
	(cgraph_varpool_node): Likewise.
	(decide_is_variable_needed): Return true if not
	flag_toplevel_reorder.
	(cgraph_add_asm_node): New function.
	* cgraph.h (struct cgraph_node): Add order field.
	(struct cgraph_varpool_node): Add order field.
	(struct cgraph_asm_node): Define.
	(cgraph_asm_nodes, cgraph_order): Declare.
	(cgraph_add_asm_node): Declare.
	* cgraphunit.c (cgraph_varpool_assemble_decl): New static
	function.
	(cgraph_varpool_assemble_pending_decls): Call it.
	(cgraph_output_pending_asms): New static function.
	(cgraph_finalize_compilation_unit): Call it.
	(struct cgraph_order_sort): Define.
	(cgraph_output_in_order): New static function.
	(cgraph_optimize): Call cgraph_output_pending_asms.  Add code for
	!flag_toplevel_reorder case.
	* c-parser.c: Include "cgraph.h".
	(c_parser_asm_definition): Call cgraph_add_asm_node rather than
	assemble_asm.
	* Makefile.in (CRTSTUFF_CFLAGS): Use -fno-toplevel-reorder rather
	than -fno-unit-at-a-time.
	* doc/invoke.texi (Option Summary): Mention
	-fno-toplevel-reorder.
	(Optimize Options): Document -fno-toplevel-reorder.  Mention it in
	-funit-at-a-time documentation.

2006-01-17  Hans-Peter Nilsson  <hp@axis.com>
	    Kazu Hirata  <kazu@codesourcery.com>

	* Makefile.in (FUNCTION_H, LAMBDA_H): Use $(TREE_H), not tree.h.

2006-01-17  Kazu Hirata  <kazu@codesourcery.com>

	* Makefile.in (FUNCTION_H): New.  Use it instead of
	function.h throughout the file.
	* function.h: Include tree.h.

2006-01-17  Ben Elliston  <bje@au.ibm.com>

	* recog.c: Separate some functions with whitespace.

2006-01-16  Richard Henderson  <rth@redhat.com>

	Merge from gomp branch:
	* Makefile.in (TREE_INLINE_H): New.  Use it as needed.
	* tree-inline.h (struct copy_body_data): Move from tree-inline.c
	and rename from struct inline_data.  Rename callee* to dst*; 
	caller* to src*; add copy_decl hook, transform_call_graph_edges,
	transform_new_cfg, transform_return_to_modify, and
	transform_lang_insert_block flags; remove cloning_p, versioning_p,
	update_clones_p.
	(copy_body_r, insert_decl_map, remap_decl, remap_type): Declare.
	(copy_decl_for_dup): Remove.
	* tree-inline.c (struct inline_data): Move to header.
	(insert_decl_map): Export.
	(remap_decl): Update for member name changes.  Use copy_decl hook.
	Allow for replacement to be a non-decl.  Remove dead code.
	(remap_type_1): Check for existing mapping.
	(remap_type): Export.
	(remap_decls): Update for member name changes.
	(remap_block, copy_bb, copy_cfg_body, copy_generic_body): Likewise.
	(copy_body, setup_one_parameter, declare_return_variable): Likewise.
	(expand_call_inline, optimize_inline_calls, clone_body): Likewise.
	(copy_tree_r, mark_local_for_remap_r, unsave_expr_now): Likewise.
	(tree_function_versioning, build_duplicate_type): Likewise.
	(copy_body_r): Likewise.  Export.
	(copy_decl_for_dup): Split into ...
	(copy_decl_for_dup_finish, copy_decl_to_var,
	copy_decl_no_change, copy_decl_maybe_to_var): ... these.
	(replace_ref_tree, inlining_p): Remove.

2006-01-16  Kazu Hirata  <kazu@codesourcery.com>

	* ifcvt.c (if_convert): Make it static.
	* rtl.h: Remove the prototype for if_convert.

	* local-alloc.c (local_alloc): Make it static.
	* rtl.h: Remove the prototype for local_alloc.

	* loop.c (loop_optimize): Make it static.
	* cfgloop.h: Remove the prototype for loop_optimize.
	* rtl.h: Likewise.

2006-01-16  DJ Delorie  <dj@redhat.com>

	* reload.c (reg_overlap_mentioned_for_reload_p): Handle subregs of
	mems.

2006-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* pa.md: Disparage copies between general and floating-point registers
	in 32-bit move patterns.

2006-01-16  H.J. Lu  <hongjiu.lu@intel.com>

	PR testsuite/25741
	* Makefile.in (check-%): Depend on site.exp instead of
	$(TESTSUITEDIR)/site.exp. Run "runtest" in separate language
	directories.

2006-01-16  Kazu Hirata  <kazu@codesourcery.com>

	* global.c (global_alloc): Make it static.
	* rtl.h: Remove the prototype for global_alloc.

2006-01-16  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-alias.c (struct used_part): Add write_only field.
	(get_or_create_used_part_for): Initialize it to true.
	(create_overlap_variables_for): Don't create structure variables
	for structures that only are written to.
	(find_used_portions): Handle MODIFY_EXPR to track whether a
	structure is only written to.

2006-01-16  Kazu Hirata  <kazu@codesourcery.com>

	* bb-reorder.c (partition_hot_cold_basic_blocks): Make it
	static.
	* basic-block.h: Remove the prototype for
	partition_hot_cold_basic_blocks.

2006-01-16  Rafael Ćvila de EspĆ­ndola <rafael.espindola@gmail.com>

	* cppspec.c (lang_specific_spec_functions): remove
	* gcc.c (lookup_spec_function): use static_spec_functions directelly
	* gcc.h (lang_specific_spec_functions): remove
	* gccspec.c (lang_specific_spec_functions): remove

2005-01-16  Paolo Bonzini  <bonzini@gnu.org>

	* combine.c (record_value_for_reg): Invalidate registers
	if INSN is null.
	(record_dead_and_set_regs_1): Likewise, by passing them to
	record_value_for_reg.
	(record_dead_and_set_regs): Invalidate stores made by a
	call.  We do not combine across a call, but we still
	relied on equivalences.

2006-01-16  Eric Botcazou  <ebotcazou@adacore.com>

	* tree-vrp.c (extract_range_from_binary_expr): Cope with
	vrp_int_const_binop returning non-constant nodes.

2006-01-16  Paul Brook  <paul@codesourcery.com>

	* config/m68k/m68k.c (output_move_const_into_data_reg):
	Output correct mnemonic for mvz and mvs.

2006-01-16  Gabor Loki  <loki@gcc.gnu.org>

	* rtl-factoring.c: Add sequence abstraction algorithm.
	* cfgcleanup.c (outgoing_edges_match): Extra checks.
	(try_crossjump_to_edge): Avoid deleting preserve label when redirecting
	ABNORMAL edges.
	(block_has_preserve_label): New function.
	* common.opt: Register new pass.
	* Makefile.in: Ditto.
	* passes.c: Ditto.
	* timevar.def: Ditto.
	* tree-pass.h: Ditto.
	* emit-rtl.c (make_jump_insn_raw): Remove forward decl.
	* rtl.h (make_jump_insn_raw): Add forward decl.
	* doc/invoke.texi: Add documentation for -frtl-abstract-sequences.

2006-01-16  Eric Botcazou  <ebotcazou@adacore.com>
            Roger Sayle  <roger@eyesopen.com> 

	* fold-const.c (fold_minmax): New static function.
	(fold_binary) <MIN_EXPR>: Call it.
	<MAX_EXPR>: Likewise.
	* stor-layout.c (place_field): Use DECL_SIZE consistently
	in the computation of the new record size.

2006-01-16  Kazu Hirata  <kazu@codesourcery.com>

	* cse.c (cse_condition_code_reg): Make it static.
	* rtl.h: Remove the prototype for cse_condition_code_reg.

	* combine.c (combine_instructions): Make it static.
	* rtl.h: Remove the prototype for combine_instructions.

2006-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR target/25168
	* tree.c (get_file_function_name_long): Concatenate the first global
	object name with a string derived from the input filename of the object
	for type "F".

2006-01-16  Ben Elliston  <bje@au.ibm.com>

	* config/i386/winnt-stubs.c: Update FSF address.
	* config/xtensa/ieee754-df.S: Ditto.
	* config/xtensa/ieee754-sf.S: Ditto.

2006-01-14  Ian Lance Taylor  <ian@airs.com>

	* ifcvt.c (noce_init_if_info): New static function, broken out of
	noce_process_if_block.
	(noce_process_if_block): Call noce_init_if_info.
	(check_cond_move_block): New static function.
	(cond_move_process_if_block): New static function.
	(process_if_block): Call cond_move_process_if_block.

2006-01-15  Kazu Hirata  <kazu@codesourcery.com>

	* cselib.c (hash_table): Rename to cselib_hash_table.
	(cselib_clear_table, discard_useless_values,
	remove_useless_values, cselib_lookup_mem, cselib_lookup,
	cselib_init, cselib_finish): Adjust uses of hash_table.

2006-01-14  Kazu Hirata  <kazu@codesourcery.com>

	PR tree-optimization/25485
	* tree-vrp.c (extract_range_from_binary_expr): Handle cases
	where one of the operands of TRUTH_AND_EXPR and TRUTH_OR_EXPR
	is known to be false and true, respectively.

2006-01-14  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/22548
	PR tree-optimization/22555
	PR tree-optimization/22501
	* Makefile.in (tree-ssa-structalias.o): Depend on $(PARAMS_H).
	* params.def (salias-max-array-elements): New parameter.
	* params.h (SALIAS_MAX_ARRAY_ELEMENTS): Define.
	* doc/invoke.texi (salias-max-array-elements): Document.
	* tree-flow-inline.h (var_can_have_subvars): We also handle
	arrays now.
	* tree-ssa-alias.c (find_used_portions): Handle ARRAY_REF like
	COMPONENT_REF.
	* tree-ssa-structalias.c (params.h): Include.
	(push_fields_onto_fieldstack): Handle ARRAY_TYPE.
	(find_func_aliases): Handle multiple constraints from ARRAY_REF.
	(get_constraint_for): For ADDR_EXPR operating on something
	containing an ARRAY_REF, add all subvars to the solution.
	(handle_ptr_arith): Handle ARRAY_TYPE like RECORD_TYPE types.
	* tree-ssa-operands.c (parse_ssa_operands): Handle ARRAY_REF
	for creating MUST_DEFs.
	(get_expr_operands): Treat ARRAY_REF like COMPONENT_REF wrt subvars.

2006-01-14  Zdenek Dvorak <dvorakz@suse.cz>

	* tree-ssa-loop-niter.c (number_of_iterations_cond): Split into several
	functions.
	(number_of_iterations_ne, number_of_iterations_lt_to_ne,
	assert_no_overflow_lt, assert_loop_rolls_lt, number_of_iterations_lt,
	number_of_iterations_le): New functions.
	(number_of_iterations_special): Removed.
	(number_of_iterations_exit): Do not use number_of_iterations_special.
	* tree.c (unsigned_type_for): Always return integer type.

2006-01-14  Steven Bosscher  <stevenb.gcc@gmail.com>
	Richard Guenther  <rguenther@suse.de>

	PR rtl-optimization/24257
	* gcse.c (find_moveable_store): Only consider a store movable
	when the SET_SRC of the insn can be assigned to a register.

2006-01-14  Ian Lance Taylor  <ian@airs.com>

	* tree.c (tree_not_class_check_failed): New function.
	* tree.h (NON_TYPE_CHECK): Call tree_not_class_check_failed.
	(tree_not_class_check_failed): Declare.

2006-01-13  Ian Lance Taylor  <ian@airs.com>

	* reload1.c (do_output_reload): Add assertion rejecting a
	CALL_INSN.

2006-01-13  Adam Nemet  <anemet@caviumnetworks.com>

	* combine.c (struct reg_stat): Add new fields truncation_label and
	truncated_to_mode.
	(record_value_for_reg): Reset truncated_to_mode.
	(record_truncated_value): New function.
	(check_promoted_subreg): Call it.  Rename to check_conversions.
	(combine_instructions): Rename check_promoted_subreg to
	check_conversions.
	(reg_truncated_to_mode): New function.
	(make_extraction): Use it.  Check TRULY_NOOP_TRUNCATION.
	(gen_lowpart_or_truncate): New function.
	(force_to_mode): Use it instead of gen_lowpart.

2006-01-13  Diego Novillo  <dnovillo@redhat.com>

	* tree-ssa-alias.c (add_type_alias): Fix typo.  Test whether
	VAR is a tag, not its type tag.

2006-01-13  Alexandre Oliva  <aoliva@redhat.com>

	* config/i386/sse.md (*vec_extractv2di_1_sse2): Reorder
	alternatives to match style of other entries.
	(*vec_extractv2di_1_sse): Likewise.  Fix mode attr.

2006-01-13  Daniel Berlin  <dberlin@dberlin.org>

	PR tree-optimization/25771
	* tree-ssa-pre.c (insert_extra_phis): Don't insert merges of abnormal
	SSA_NAMES.

2006-01-13  Andrew Pinski  <pinskia@physics.uc.edu>

	PR tree-opt/24365
	* tree-inline.c (declare_return_variable): If the return variable
	was marked as a non gimple complex, set the return slot variable
	to be a non gimple comple variable.

2006-01-13  Richard Guenther  <rguenther@suse.de>

	* builtins.c (expand_builtin_sincos): New function.
	(expand_builtin_mathfn_3): Remove dead code, sin and cos
	do not set errno.
	(expand_builtin): Expand sincos using expand_builtin_sincos.

2006-01-12  DJ Delorie  <dj@redhat.com>

	* config/m32c/shift.md: Rewrite: Allow arbitrary operands for
	shift counts, separate SI shifts for m32c vs m16c, pass shift type
	so that constant shifts can be split.
	* config/m32c/m32c.c (m32c_const_ok_for_constraint_p): Add In6.
	(m32c_valid_pointer_mode): Make static.
	(shift_gen_func_for): New.
	(m32c_prepare_shift): Use it.  Split large const shifts into
	multiple shifts.
	* config/m32c/predicates.md (shiftcount_operand): Allow more
	general operands.
	(longshiftcount_operand): New.
	* doc/md.texi (Machine Constraints): Document In6.

2006-01-13  Ben Elliston  <bje@au.ibm.com>

	* doc/tm.texi (Data Output): Add REAL_VALUE_TO_TARGET_DECIMAL32,
	REAL_VALUE_TO_TARGET_DECIMAL64 and REAL_VALUE_TO_TARGET_DECIMAL128
	documentation.

2006-01-12  Daniel Berlin  <dberlin@dberlin.org>

	* tree-ssa-operands.c (add_call_clobber_ops): Use SFT_PARENT_VAR
	to try to avoid clobbering pieces of structures when we know
	something about the whole structure.
	* tree-ssa-alias.c (create_sft): Set SFT_PARENT_VAR

2006-01-13  Ben Elliston  <bje@au.ibm.com>

	* doc/rtl.texi (Insns): Remove statement that libcalls cannot
	return in memory, as this is no limitation is no longer present.

2006-01-12  DJ Delorie  <dj@redhat.com>

	* config/m32c/addsub.md (addhi3): Add two more alternatives, for
	mova with fb, and for fb+0 -> An.

	* config/m32c/mov.md (peephole2): Fix enabling logic.

	* config/m32c/m32c.h (CTOR_LIST_BEGIN, CTOR_LIST_END,
	DTOR_LIST_BEGIN, DTOR_LIST_END, CTORS_SECTION_ASM_OP,
	DTORS_SECTION_ASM_OP, INIT_ARRAY_SECTION_ASM_OP,
	FINI_ARRAY_SECTION_ASM_OP): Define.

	* config/m32c/m32c.c (m32c_legitimize_address): Remove temporary
	variable.
	(m32c_legitimize_reload_address): New logic to reload FB to An.
	(m32c_output_reg_push): Add newline.
	(m32c_output_reg_pop): Likewise.

2006-01-12  Ulrich Weigand  <uweigand@de.ibm.com>

	* struct-equiv.c (find_dying_inputs): Fix off-by-one bug.

2006-01-11  Andrew Pinski  <pinskia@physics.uc.edu>

	* config/i386/darwin.h (SUBTARGET_ENCODE_SECTION_INFO): Define.

2006-01-11  Kazu Hirata  <kazu@codesourcery.com>

	* config/sh/predicates.md (sh_rep_vec): Add parallel to
	match_code.

2006-01-11  Ben Elliston  <bje@au.ibm.com>

	* rtlanal.c (find_reg_note): Assert insn is not null.

2005-01-11  Kenneth Zadeck <zadeck@naturalbridge.com>

	* df-scan.c (df_hard_reg_init): Move declaration of i outside
	ifdef.

2006-01-11  Jeff Law  <law@redhat.com>

	* tree-ssa-threadupdate.c (threaded_edges): New VEC to
	hold edge pairs.
	(mark_threaded_blocks, register_jump_thread): New functions.
	(thread_through_all_blocks): Remove unwanted argument.  No
	longer rely on e->aux to communicate thread target info.
	Call mark_threaded_blocks.  Release the threaded_blocks
	bitmap and threaded_edges vector when complete.
	* tree-ssa-dom.c (struct edge_info): Remove redirection_target field.
	(threaded_blocks): Remove.
	(tree_ssa_dominator_optimize): Remove initialization and
	finalization of threaded_blocks.  Simplify call to
	thread_through_all_blocks.
	(thread_across_edge): Call register_jump_thread rather than
	storing thread information into e->aux.
	(free_all_edge_infos): Simplify now that e->aux is no longer
	used to communicate with thread_through_all_blocks.
	* tree-flow.h (thread_through_all_blocks): Update prototype.
	(register_jump_thread): Prototype.
	
2006-01-11  Kazu Hirata  <kazu@codesourcery.com>

	* df-core.c (df_compact_blocks, df_bb_replace): Use
	SET_BASIC_BLOCK instead of BASIC_BLOCK.

2006-01-11  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/25734
	* tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not
	stop propagation after successful propagation to the LHS.

2006-01-11  Kazu Hirata  <kazu@codesourcery.com>

	* basic-block.h (control_flow_graph): Change the type of
	x_basic_block_info to VEC(basic_block,gc) *.
	(BASIC_BLOCK_FOR_FUNCTION, BASIC_BLOCK): Adjust the uses of
	basic_block_info.
	(SET_BASIC_BLOCK): New.
	* cfg.c (compact_blocks, expunge_block): Use SET_BASIC_BLOCK
	instead of BASIC_BLOCK when assigning to BASIC_BLOCK.
	* cfgbuild.c (find_basic_blocks): Likewise.
	* cfglayout.c (fixup_reorder_chain): Likewise.
	* cfgrtl.c (create_basic_block_structure,
	rtl_create_basic_block): Likewise.
	* ifcvt.c (find_if_case_1): Likewise.
	* tree-cfg.c (init_empty_tree_cfg, build_tree_cfg, create_bb):
	Likewise.

2005-01-11  Kenneth Zadeck <zadeck@naturalbridge.com>

	* Makefile.in: Removed rotted odf.c entry.
	
2006-01-11  Hans-Peter Nilsson  <hp@axis.com>

	PR target/25706
	* config/cris/cris.md ("*extopqihi_side", "*extop<mode>si_side")
	("*extop<mode>si_swap_side_biap", "*extop<mode>si_swap_side",
	("*extopqihi", "*extop<mode>si", "*extop<mode>si_swap"): Use %E
	output pattern modifier, not %e.
	* config/cris/cris.c (cris_op_str): Update comment about pattern
	modifier.
	(cris_print_operand) <case 'e'>: Clear cris_output_insn_is_bound
	before falling through into...
	<case 'E'>: Redefined from old 'e' case.

2006-01-11  Jan Hubicka  <jh@suse.cz>

	PR target/25042
	* i386.c (ix86_init_mmx_sse_builtins): Do not delcare float128

2006-01-11  Jan Hubicka  <jh@suse.cz>

	* i386.h (TARGET_DECOMPOSE_LEA): Kill.
	* i386.c (x86_decompose_lea): Kill.
	(ix86_rtx_costs): Kill.

2006-01-11  Jan Hubicka  <jh@suse.cz>

	* cgraph.c (cgraph_insert_node_to_hashtable): New function.
	* cgraph.h (cgraph_node): Add inline_decl.
	(cgraph_insert_node_to_hashtable): Declare.
	(save_inline_function_body): Declare.
	* cgraphunit.c (verify_cgraph_node): Inline edges might point to inline
	clones.
	(cgraph_preserve_function_body_p): Do not presrve when dump is enabled.
	(cgraph_function_versioning): Update call of tree_function_versioning.
	(save_inline_function_body): New function.
	* function.h (struct function): Kill saved_eh, saved_cfg, saved_args,
	saved_static_chain_decl, saved_blocks and saved-unexpanded_var_list.
	* ipa-inline.c (cgraph_mark_inline_edge): Look for inline clones.
	(cgraph_default_inline_p): Likewise.
	(cgraph_decide_inlining_incrementally): Likewise.
	* tree-inline.c (inline_data): Kill saving_p add update_clones_p.
	(copy_bb): Kill saving; do updating of clones.
	(copy_cfg_body): Kill saving.
	(initialize_inlined-parameters): Likewise.
	(expand_call_inline): Likewise.
	(save_body): Kill.
	(tree_function_versioning): New parameter "update_clones".
	(inlining_p): Kill saving.
	* tree-inline.h (tree_function_versioning): Update prototype.
	* tree-optimize.c (tree_rest_of_compilation): Use clonning instead of
	saving.

2006-01-11  Ian Lance Taylor <ian@airs.com>

	* combine.c (struct undo): Remove is_int.  Enumify types of undos.
	Allow undoing set of machine mode.
	(do_SUBST): Use enums instead of is_int.
	(do_SUBST_MODE): New function.
	(SUBST_MODE): New macro.
	(try_combine): Use SUBST_MODE/PUT_MODE instead of generating a new
	reg and trying to replace reg_regno_rtx with a new register.
	(undo_all): Use new enums, handle undoing a PUT_MODE change.
	(simplify_set): Use SUBST_MODE.
	(distribute_notes): Remove code that tried to update reg notes
	for regno_reg_rtx changes.

2006-01-11  Paolo Bonzini  <bonzini@gnu.org>

	PR tree-optimization/23109
	PR tree-optimization/23948
	PR tree-optimization/24123

	* Makefile.in (tree-ssa-math-opts.o): Adjust dependencies.
        * tree-cfg.c (single_noncomplex_succ): New.
        * tree-flow.h (single_noncomplex_succ): Declare it.
        * tree-ssa-math-opts.c (enum place_reciprocal): Remove.
        * tree-ssa-math-opts.c (enum place_reciprocal): Remove.
        (struct occurrence, occ_head, occ_pool, is_divide_by, compute_merit,
	insert_bb, register_division_in, insert_reciprocals,
	replace_reciprocal, free_bb): New.
        (execute_cse_reciprocals_1): Rewritten.
        (execute_cse_reciprocals): Adjust calls to execute_cse_reciprocals_1.
        Do not commit any edge insertion.  Always compute dominators and
        create the allocation pool.
        * target-def.h (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): New.
	* target.h (struct gcc_target): Add min_divistions_for_recip_mul.
	* targhooks.c (default_min_divistions_for_recip_mul): New.
	* targhooks.h (default_min_divistions_for_recip_mul): New prototype.
        * passes.c (init_optimization_passes): Run recip after tree loop
        optimizations.
        * doc/tm.texi (Misc): Document TARGET_MIN_DIVISIONS_FOR_RECIP_MUL.

2005-01-11  Danny Berlin <dberlin@dberlin.org>
            Kenneth Zadeck <zadeck@naturalbridge.com>

	* df.h (DF_SCAN, DF_RU, DF_RD, DF_LR, DF_UR, DF_UREC, DF_CHAIN,
	DF_RI, DF_LAST_PROBLEM_PLUS1, DF_DU_CHAIN, DF_UD_CHAIN,
	DF_REF_TYPE_NAMES, DF_HARD_REGS, DF_EQUIV_NOTES, DF_SUBREGS,
	DF_SCAN_BB_INFO, DF_RU_BB_INFO, DF_RD_BB_INFO, DF_LR_BB_INFO,
	DF_UR_BB_INFO, DF_UREC_BB_INFO, DF_LIVE_IN, DF_LIVE_OUT,
	DF_RA_LIVE_IN, DF_RA_LIVE_OUT, DF_UPWARD_LIVE_IN,
	DF_UPWARD_LIVE_OUT, DF_REF_REAL_REG, DF_REF_REGNO,
	DF_REF_REAL_LOC, DF_REF_REG, DF_REF_LOC, DF_REF_BB, DF_REF_BBNO,
	DF_REF_INSN, DF_REF_INSN_UID, DF_REF_TYPE, DF_REF_CHAIN,
	DF_REF_ID, DF_REF_FLAGS, DF_REF_NEXT_REG, DF_REF_PREV_REG,
	DF_REF_NEXT_REF, DF_REF_DATA, DF_REF_REG_DEF_P, DF_REF_REG_USE_P,
	DF_REF_REG_MEM_STORE_P, DF_REF_REG_MEM_LOAD_P, DF_REF_REG_MEM_P,
	DF_DEFS_SIZE, DF_DEFS_GET, DF_DEFS_SET, DF_USES_SIZE, DF_USES_GET,
	DF_USES_SET, DF_REG_SIZE, DF_REG_DEF_GET, DF_REG_DEF_SET,
	DF_REG_USE_GET, DF_REG_USE_SET, DF_REGNO_FIRST_DEF,
	DF_REGNO_LAST_USE, DF_INSN_SIZE, DF_INSN_GET, DF_INSN_SET,
	DF_INSN_CONTAINS_ASM, DF_INSN_LUID, DF_INSN_DEFS, DF_INSN_USES,
	DF_INSN_UID_GET, DF_INSN_UID_LUID, DF_INSN_UID_DEFS,
	DF_INSN_UID_USES, DF_SCAN_INITIAL, DF_SCAN_GLOBAL,
	DF_SCAN_POST_ALLOC): New macros.
	(df_flow_dir, df_ref_type, df_ref_flags, df_alloc_function,
	df_free_bb_function, df_local_compute_function, df_init_function,
	df_dataflow_function, df_confluence_function_0,
	df_confluence_function_n, df_transfer_function,
	df_finalizer_function, df_free_function, df_dump_problem_function,
	df_problem, dataflow, df_insn_info, df_reg_info, df_ref, df_link,
	df_ref_info, df, df_map, df_scan_bb_info, df_ru_bb_info,
	df_ru_bb_info, df_rd_bb_info, df_lr_bb_info, df_ur_bb_info,
	df_urec_bb_info, ) New types.
	(df_invalidated_by_call, df_all_hard_regs, df_state) New public
	variables.
	(df_init, df_add_problem, df_set_blocks, df_finish, df_analyze,
	df_analyze_simple_change_some_blocks,
	df_analyze_simple_change_one_block, df_compact_blocks,
	df_bb_replace, df_bb_regno_last_use_find,
	df_bb_regno_first_def_find, df_bb_regno_last_def_find,
	df_insn_regno_def_p, df_find_def, df_find_use,
	df_iterative_dataflow, df_dump, df_chain_dump, df_refs_chain_dump,
	df_regs_chain_dump, df_insn_debug, df_insn_debug_regno,
	df_regno_debug, df_ref_debug, debug_df_insn, debug_df_regno,
	debug_df_reg, debug_df_defno, debug_df_useno, debug_df_ref,
	debug_df_chain, df_get_dependent_problem, df_chain_create,
	df_chain_unlink, df_chain_copy, df_get_live_in, df_get_live_out,
	df_grow_bb_info, df_chain_dump, df_print_bb_index,
	df_ru_add_problem, df_ru_get_bb_info, df_rd_add_problem,
	df_rd_get_bb_info, df_lr_add_problem, df_lr_get_bb_info,
	df_ur_add_problem, df_ur_get_bb_info, df_urec_add_problem,
	df_urec_get_bb_info, df_chain_add_problem, df_ri_add_problem,
	df_reg_lifetime, df_scan_get_bb_info, df_scan_add_problem,
	df_rescan_blocks, df_ref_create, df_get_artificial_defs,
	df_get_artificial_uses, df_reg_chain_create, df_reg_chain_unlink,
	df_ref_remove, df_insn_refs_delete, df_refs_delete,
	df_reorganize_refs, df_set_state, df_hard_reg_init,
	df_read_modify_subreg_p) New public functions.
        * df-core.c: The core dataflow solver and glue routines for rtl
	dataflow.
	(df_init, df_add_problem, df_set_blocks, df_finish,
	df_hybrid_search_forward, df_hybrid_search_backward,
	df_iterative_dataflow, df_prune_to_subcfg, df_analyze_problem,
	df_analyze, df_get_bb_info, df_set_bb_info, df_bb_replace,
	df_bb_regno_last_use_find, df_bb_regno_first_def_find,
	df_bb_regno_last_def_find, df_insn_regno_def_p, df_find_def,
	df_reg_defined, df_find_use, df_reg_used, df_dump,
	df_refs_chain_dump, df_regs_chain_dump, df_insn_debug,
	df_insn_debug_regno, df_regno_debug, df_ref_debug, debug_df_insn,
	debug_df_reg, debug_df_regno, debug_df_ref debug_df_defno,
	debug_df_useno, reset_df_after_reload): New functions.
	* df-scan.c: The scanning fuctions, once in df.c, completely
	rewritten so that they now fully model the functionality of
	register usage at the backend.
	(df_scan_free_internal, df_scan_get_bb_info, df_scan_set_bb_info,
	df_scan_free_bb_info, df_scan_alloc, df_scan_free, df_scan_dump,
	df_scan_add_problem, df_grow_reg_info, df_grow_ref_info,
	df_grow_insn_info, df_rescan_blocks, df_ref_create,
	df_get_artificial_defs, df_get_artificial_uses,
	df_reg_chain_create, df_ref_unlink, df_reg_chain_unlink,
	df_ref_remove, df_insn_create_insn_record, df_insn_refs_delete,
	df_refs_delete, df_reorganize_refs, df_set_state,
	df_ref_create_structure, df_ref_record, df_read_modify_subreg_p,
	df_def_record_1, df_defs_record, df_uses_record,
	df_insn_contains_asm_1, df_insn_contains_asm, df_insn_refs_record,
	df_has_eh_preds, df_bb_refs_record, df_refs_record, df_mark_reg,
	df_record_exit_block_uses, df_hard_reg_init): New functions.

	* df-problems.c: Seven concrete dataflow problems that use the
	scanning in df-scan.c and are solved by the engine in df-core.c.
	(df_get_dependent_problem, df_chain_create, df_chain_unlink,
	df_chain_copy, df_get_live_in, df_get_live_out, df_grow_bb_info,
	df_chain_dump, df_print_bb_index, df_ref_bitmap, df_set_seen,
	df_unset_seen, df_ru_get_bb_info, df_ru_set_bb_info,
	df_ru_free_bb_info, df_ru_alloc,
	df_ru_bb_local_compute_process_def,
	df_ru_bb_local_compute_process_use, df_ru_bb_local_compute,
	df_ru_local_compute, df_ru_init_solution, df_ru_confluence_n,
	df_ru_transfer_function, df_ru_free, df_ru_dump,
	df_ru_add_problem, df_rd_get_bb_info, df_rd_set_bb_info,
	df_rd_free_bb_info, df_rd_alloc,
	df_rd_bb_local_compute_process_def, df_rd_bb_local_compute,
	df_rd_local_compute, df_rd_init_solution, df_rd_confluence_n,
	df_rd_transfer_function, df_rd_free, df_rd_dump,
	df_rd_add_problem, df_lr_get_bb_info, df_lr_set_bb_info,
	df_lr_free_bb_info, df_lr_alloc, df_lr_bb_local_compute,
	df_lr_local_compute, df_lr_init, df_lr_confluence_0,
	df_lr_confluence_n, df_lr_transfer_function, df_lr_free,
	df_lr_dump, df_lr_add_problem, df_ur_get_bb_info,
	df_ur_set_bb_info, df_ur_free_bb_info, df_ur_alloc,
	df_ur_bb_local_compute, df_ur_local_compute, df_ur_init,
	df_ur_local_finalize, df_ur_confluence_n, df_ur_transfer_function,
	df_ur_free, df_ur_dump, df_ur_add_problem, df_urec_get_bb_info,
	df_urec_set_bb_info, df_urec_free_bb_info, df_urec_alloc,
	df_urec_mark_reg_change, df_urec_check_earlyclobber,
	df_urec_mark_reg_use_for_earlyclobber,
	df_urec_mark_reg_use_for_earlyclobber_1, df_urec_bb_local_compute,
	df_urec_local_compute, df_urec_init, df_urec_local_finalize,
	df_urec_confluence_n, df_urec_transfer_function, df_urec_free,
	df_urec_dump, df_urec_add_problem, df_chain_alloc,
	df_chain_create_bb_process_use, df_chain_create_bb,
	df_chain_finalize, df_chain_free, df_chains_dump,
	df_chain_add_problem, df_ri_alloc, df_ri_bb_compute,
	df_ri_compute, df_ri_free, df_ri_dump, df_ri_add_problem,
	df_reg_lifetime): New functions.
	* df.c: Deleted file.
        * ddg.c (create_ddg_dep_no_link, build_inter_loop_deps): Made code
	consistent with new df api.
        * modulo-sched.c (sms_schedule, rest_of_handle_sms,
        rest_of_handle_sms): Ditto.
        * web.c (unionfind_union, union_defs, entry_register, web_main):
	Ditto.
	* loop_invariant.c (invariant_for_use, hash_invariant_expr_1,
	invariant_expr_equal_p, find_defs, check_dependencies,
	find_invariant_insn, find_invariants_to_move, move_invariant_reg,
	free_inv_motion_data, move_loop_invariants): Ditto.
	* Makefile.in (df.c, df-scan.c df-problems.c df-core.c): 
	Update dependencies.
	(odf.c): Added defective entry that was deleted later in day.
	* sched-deps.c (sched_analyze_1): Ditto.

2006-01-11  Zdenek Dvorak <dvorakz@suse.cz>

	* tree-ssa-operands.c (get_expr_operands): Record addressable
	variables directly.  Do not call add_stmt_operands for CONST_DECLs
	and ARRAY_DECLs.
	(get_indirect_ref_operands): Remove handling of *(&a + offset) case.
	(add_stmt_operands): Handle only objects satisfying SSA_VAR_P.

2006-01-11  Ben Elliston  <bje@au.ibm.com>

	* config/i386/i386.c (ix86_return_in_memory): Fix comment: this
	function returns true in the positive case.

2006-01-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR target/20754
	* config/pa/pa.md: Create separate 32 and 64-bit move patterns
	for SI, DI, SF and DF modes.  Add alternatives to copy between
	general and floating point registers to the 32-bit patterns.
	* config/pa/pa-64.h (SECONDARY_MEMORY_NEEDED_RTX): Delete undefine.
	* config/pa/pa.h (SECONDARY_MEMORY_NEEDED_RTX): Delete define.
	(SECONDARY_MEMORY_NEEDED): Secondary memory is only needed when
	generating 64-bit code.
	* config/pa/pa.c (output_move_double): Handle copies between general
	and floating registers.

2006-01-10  Stuart Hastings  <stuart@apple.com>

	* config/i386/i386.md (set_got): Update.
	(set_got_labelled): New.  (UNSPEC_LD_MPIC): New.
	(builtin_setjmp_receiver): Mach-O support.
	* config/i386/darwin.h (TARGET_ASM_FILE_END) Define.
	(GOT_SYMBOL_NAME): Define.
	(FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): New.
	(TARGET_DEEP_BRANCH_PREDICTION): Remove.
	* config/i386/i386.c (override_options): Revise for Darwin.
	(USE_HIDDEN_LINKONCE): Enable for Mach-O.  (ix86_file_end): Mach-O
	support.  (darwin_x86_file_end): New.  (output_set_got): Add label
	parameter, revise for Mach-O.  (x86_output_mi_thunk): Likewise.
	* config/i386/i386-protos.h (output_set_got): Likewise.
	* config/darwin.c (machopic_legitimize_pic_address): Update
	regs_ever_live[].

2006-01-10  Kaz Kojima  <kkojima@gcc.gnu.org>

	* config/sh/sh.h (SH5_WOULD_BE_PARTIAL_NREGS): Use GET_MODE_SIZE
	when MODE isn't BLKmode.

2006-01-10  Eric Botcazou  <ebotcazou@libertysurf.fr>

	PR rtl-optimization/25367
	* config/sparc/sparc.h (HARD_REGNO_RENAME_OK): New macro.

2006-01-10  Hans-Peter Nilsson  <hp@axis.com>

	PR target/25718
	* config/cris/cris.md ("uminsi3"): Don't use 8- or 16-bit sizes
	for a negative bound.

2006-01-10  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-structalias.c (get_constraint_for_component_ref):
	Never override with anything constraint.

2006-01-10  Jan Beulich  <jbeulich@novell.com>

	* config/i386/i386.c (ix86_data_alignment): Don't force alignment to
	256 bits when optimize_size.

2006-01-10  Jan Beulich  <jbeulich@novell.com>

	* config/i386/netware.h (TARGET_SUBTARGET_DEFAULT): Include
	MASK_ALIGN_DOUBLE.
	* config/i386/nwld.h (LINK_SPEC): Add --extensions:GNU option.
	* config/i386/t-nwld (SHLIB_LINK): Insert spaces between expr
	arguments.

2006-01-10  Ben Elliston  <bje@au.ibm.com>

	* config/rs6000/predicates.md (easy_fp_constant): Discount decimal
	float modes.
	* config/rs6000/rs6000.c (rs6000_scalar_mode_supported_p): New.
	(TARGET_SCALAR_MODE_SUPPORTED_P): Define.
	(USE_FP_FOR_ARG): Reject decimal float modes.
	(function_arg_advance): Likewise.
	(output_toc): Handle emitting TDmode, DDmode and SDmode constants.
	(rs6000_handle_altivec_attribute): Do not permit decimal floating
	point types in AltiVec vectors.
	(rs6000_function_value): Use GP_ARG_RETURN for decimal floats.
	(rs6000_libcall_value): Likewise.

2006-01-09  Bob Wilson  <bob.wilson@acm.org>

	* config/xtensa/ieee754-df.S: New file.
	* config/xtensa/ieee754-sf.S: New file.
	* config/xtensa/t-xtensa (LIB2FUNCS_EXTRA): Remove fp-bit.c & dp-bit.c.
	(LIB1ASMFUNCS): Add SFmode and DFmode floating-point functions.
	* config/xtensa/lib1funcs.asm: Include ieee754-df.S and ieee754-sf.S.

2006-01-09  Kazu Hirata  <kazu@codesourcery.com>

	* config/sh/predicates.md (binary_float_operator,
	binary_logical_operator, commutative_float_operator,
	equality_comparison_operator, greater_comparison_operator,
	less_comparison_operator, logical_operator,
	noncommutative_float_operator, shift_operator,
	symbol_ref_operand, unary_float_operator): Remove redundant
	conditionals.

2006-01-09  Jeff Law  <law@redhat.com>

	* tree-ssa-dom.c (simplify_cond_and_lookup_avail_expr): Remove
	code to propagate the RHS of a cast into COND_EXPR_COND.  Remove
	now unused arguments.  Callers updated.
	(eliminate_redundant_computations): Remove now unused arguments,
	callers updated.
	(local_fold): Remove, no longer used.
	(find_equivalent_equality_comparison): Removed from tree-ssa-dom.c
	and moved to...
	* tree-ssa-forwprop.c (find_equivalent_equality_comparison): Here.
	(simplify_cond): New function.
	(forward_propagate_into_cond): Call simplify_cond.

2006-01-09  Alexandre Oliva  <aoliva@redhat.com>

	* config/i386/sse.md (*vec_extractv2di_1_sse2): New.
	(*vec_extractv2di_1_sse): New.

2006-01-09  Ben Elliston  <bje@au.ibm.com>

	* config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Typo fix.

2006-01-08  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-structalias.c (get_constraint_for): Remove
	anyoffset argument.
	(get_constraint_for_component_ref): Likewise.
	(do_deref): Likewise.
	(get_constraint_for): Likewise.
	(do_structure_copy): Likewise.
	(handle_ptr_arith): Likewise.
	(find_func_aliases): Likewise.  Remove unused need_anyoffset
	variable.

2006-01-08  J"orn Rennecke  <joern.rennecke@st.com>
	    Kaz Kojima  <kkojima@gcc.gnu.org>

	* config/sh/sh.h (CONST_OK_FOR_K16): Define.
	(CONST_OK_FOR_K): Add CONST_OK_FOR_K16 case.
	(EXTRA_CONSTRAINT_C16): Remove.
	(EXTRA_CONSTRAINT_Css, EXTRA_CONSTRAINT_Csu): Define.
	(EXTRA_CONSTRAINT_C): Remove EXTRA_CONSTRAINT_C16 case and add
	EXTRA_CONSTRAINT_Css and EXTRA_CONSTRAINT_Csu cases.
	* config/sh/sh.c (print_operand): Handle unsigned 16-bit symbolic
	constants of SHmedia.  Handle nested constant expressions of
	SHmedia correctly.
	(andcosts): Fix the costs for SHmedia constants.
	(sh_rtx_costs): Take account of outer_code for SHmedia constants.
	* config/sh/sh.md (*movsi_media): Use Css constraint instead of C16.
	(*movsi_media_nofpu, *movqi_media, *movhi_media): Likewise.
	(*movdi_media, *movdi_media_nofpu, movv8qi_i, movv2hi_i): Likewise.
	(movv4hi_i, movv2si_i):	Likewise.
	(movsi_const): Adjust the second operand of ior so to match with
	the Csu constraint.
	(movdi_const, movdi_const_32bit): Likewise.
	(movdi_const_16bit+1): Don't sign-extend LOW.
	(movdi_const_16bit+2): Likewise.  Remove the zero_extend and truncate
	step.
	(*double_shori): Fix the split condition.  Use GEN_INT instead
	of get_int_mode calls.  Mask lower 16-bit of the argument of
	the last GEN_INT.
	(sym2GOTPLT): Remove.
	(symGOTPLT2reg): Replace gen_sym2GOTPLT with gen_rtx_CONST and
	gen_rtx_UNSPEC.
	* config/sh/predicates.md (arith_operand): Use EXTRA_CONSTRAINT_Css
	instead of EXTRA_CONSTRAINT_C16.

2006-01-07  Ian Lance Taylor  <ian@airs.com>
	    David Edelsohn  <edelsohn@gnu.org>

	PR rtl-optimization/25662
	* optabs.c (simplify_expand_binop): Use simplify_binary_operation
	for constant operands instead of simplify_gen_binary.
	* simplify-rtx.c (simplify_gen_binary): Swap commutative operands
	after trying simplify_binary_operation

2006-01-06  Daniel Berlin  <dberlin@dberlin.org>

	* tree.c (iterative_hash_expr): Hash decls based on UID.

2006-01-06  Eric Christopher  <echristo@apple.com>

	* doc/tm.texi (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Document.
	(TARGET_UNWIND_EMIT): Fix spelling.
	* target.h (gcc_target): Add except_table_label.
	* except.c (output_function_exception_table): Use.
	* varasm.c (default_emit_except_table_label): New.
	* target-def.h (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): New default
	define.
	(asm_out): Add here.
	* output.h (default_emit_except_table_label): Prototype.
	* config/darwin-protos.h (darwin_emit_except_table_label): Ditto.
	* config/darwin.c (darwin_emit_except_table_label): Define.
	* config/darwin.h (TARGET_ASM_EMIT_EXCEPT_TABLE): Ditto.

2006-01-06  Zdenek Dvorak <dvorakz@suse.cz>

	PR tree-optimization/18527
	* tree-ssa-loop-niter.c (number_of_iterations_cond,
	number_of_iterations_special, number_of_iterations_exit):
	Move base and step of an iv to a single structure.  Add
	no_overflow flag, and use it in # of iterations analysis.
	* tree-scalar-evolution.c (analyze_scalar_evolution_in_loop): Add
	folded_casts argument.
	(simple_iv): Pass base and step in a structure.  Set no_overflow
	flag.
	(scev_const_prop): Add argument to analyze_scalar_evolution_in_loop.
	Evaluate expensiveness of computing # of iterations instead of
	the final expression.
	* tree-scalar-evolution.h (affine_iv): New structure.
	(simple_iv): Declaration changed.
	* tree-chrec.c (chrec_apply): Handle chrecs containing symbols.
	* tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev,
	find_givs_in_stmt): Changed due to simple_iv change.

2006-01-06  Jeff Law  <law@redhat.com>

	PR ada/24994
	* tree-cfg.c (bsi_replace): Rename final argument from
	PRESERVE_EH_INFO to UPDATE_EH_INFO.  Fix typo in last
	change (stmt -> orig_stmt).
	* tree-eh.c (verify_eh_throw_stmt_node): New function.
	(bsi_remove): Add new argument.  Remove EH information
	if requested.
	(verify_eh_throw_table_statements): New function.
	(bsi_remove): Add new argument REMOVE_EH_INFO.  All callers
	updated.
	* tree-optimize.c (execute_free_cfg_annotations): Verify
	the EH throw statement table after removing annotations.
	* except.h (verify_eh_throw_table_statements): Prototype.
	* tree-flow.h (bsi_remove): Update prototype.
	* tree-vrp.c (remove_range_assertions): Add new argument to
	bsi_remove call.
	* tree-ssa-loop-im.c (move_computations_stmt): Likewise.
	* tree-complex.c (expand_complex_div_wide): Likewise.
	* tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Likewise
	* tree-tailcall.c (eliminate_tailcall): Likewise.
	* tree-ssa-dse.c (dse_optimize_stmt): Likewise.
	* tree-ssa-loop-ivopts.c (remove_statement): Likewise.
	* tree-nrv.c (tree_nrv): Likewise.
	* tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Likewise.
	* tree-if-conv.c (tree_if_convert_cond_expr): Likewise.
	(combine_blocks): Likewise.
	* tree-ssa-phiopt.c (replace_phi_edge_with_variable): Likewise.
	* tree-cfgcleanup.c (cleanup_ctrl_expr_graph): Likewise.
	(cleanup_control_flow): Likewise.
	(remove_forwarder_block): Likewise.
	* tree-ssa-pre.c (remove_dead_inserted_code): Likewise.
	* tree-sra.c (sra_replace): Likewise.
	* tree-ssa-forwprop.c (forward_propagate_into_cond): Likewise.
	(forward_propagate_single_use_vars): Likewise.
	* tree-ssa-dce.c (remove_dead_stmt): Likewise.
	* tree-inline.c (expand_call_inline): Likewise.
	* tree-vect-transform.c (vect_transform_loop): Likewise.
	* tree-outof-ssa.c (rewrite_trees): Likewise.
	* tree-cfg.c (make_goto_expr_edges): Likewise.
	(cleanup_dead_labels): Likewise.
	(tree_merge_blocks, remove_bb, disband_implicit_edges): Likewise.
	(bsi_move_before, bsi_move_after): Likewise.
	(bsi_move_to_bb_end, try_redirect_by_replacing_jump): Likewise
	(tree_redirect_edge_and_branch, tree_split_block): Likewise.

2006-01-06  Andrew Pinski  <pinskia@physics.uc.edu>

	PR tree-opt/25528
	* tree-ssa-alias.c (find_used_portions): Handle REALPART_EXPR
	and IMAGPART_EXPR.
	* tree-flow-inline.h (var_can_have_subvars): Handle complex types
	on non gimple variables.  Also add checks at the top for decls and
	mtags.
	* tree-ssa-structalias.c (push_fields_onto_fieldstack): Handle
	complex types.
	* tree-ssa-operands.c (parse_ssa_operands): Handle REALPART_EXPR
	and IMAGPART_EXPR for creating MUST_DEFs.
	(get_expr_operands): Handle SSA_NAME, STRUCT_FIELD_TAG, TYPE_MEMORY_TAG,
	and NAME_MEMORY_TAG separately from the DECLs.

2006-01-06  Richard Guenther  <rguenther@suse.de>

	* tree-dfa.c (mark_new_vars_to_rename): Create stmt
	annotation, if necessary.
	* tree-ssa-pre.c (create_expression_by_pieces): Remove
	redundant calls to update_stmt.
	* tree-ssa-forwprop.c (tidy_after_forward_propagate_addr):
	Likewise.

2006-01-05  Richard Henderson  <rth@redhat.com>

	* c-parser.c (c_parser_objc_methodprotolist): Handle CPP_PRAGMA.

2006-01-05  Carlos O'Donell  <carlos@codesourcery.com>

	* c-typeck.c: Update copyright date.

2006-01-05  Carlos O'Donell  <carlos@codesourcery.com>

	* c-typeck.c (build_c_cast): Always warn when casting
	from a pointer to an integer of different size, even if
	the node was constant.

2006-01-05  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/22555
	* tree-ssa-alias.c (create_overlap_variables_for): Do not give up,
	if one structure field is an array.
	* tree-ssa-operands.c (get_expr_operands): Continue scanning
	operands even if we found a subvar, but ignore VOPs in this
	case.
	* tree-ssa-loop-ivopts.c (rewrite_use): Mark new vars in stmt
	for renaming.
	* tree-ssa-loop.c (pass_iv_optimize): Schedule TODO_update_ssa.

2006-01-05  Richard Earnshaw  <rearnsha@arm.com>

	PR middle-end/24998
	* arm/t-netbsd (LIB2FUNCS_EXTRA): Define.

2006-01-05  Richard Guenther  <rguenther@suse.de>
	    Diego Novillo  <dnovillo@redhat.com>

	* tree-pass.h (TODO_remove_unused_locals): Define.
	* gimple-low.c (expand_var_p, remove_useless_vars,
	pass_remove_useless_vars): Remove.  Update all users.
	* tree-ssa-live.c (mark_all_vars_used_1): Handle SSA names.
	(remove_unused_locals): New function.
	* tree-flow.h (remove_unused_locals): Declare.
	* passes.c (execute_todo): Call remove_unused_locals if
	TODO_remove_unused_locals is set.
	* tree-into-ssa.c (pass_build_ssa): Add TODO_remove_unused_locals.
	* tree-ssa-dce.c (pass_dce): Likewise.
	* tree-outof-ssa.c (pass_del_ssa): Likewise.

2006-01-05  Richard Guenther  <rguenther@suse.de>

	* tree-flow.h (struct fieldoff): Decompose field to
	type, size and decl.
	* tree-ssa-alias.c (create_sft): Take type as parameter.
	(create_overlap_variables_for): Store type, size and decl
	in the fieldoff structure.
	* tree-ssa-structalias.c (fieldoff_compare): Adjust users
	of struct fieldoff.
	(push_fields_onto_fieldstack): Likewise.
	(create_variable_info_for): Likewise.  Use offset for the
	SFT name if the decl is not available.

2006-01-04  Paul Brook  <paul@codesourcery.com>

	* config/m68k/m68k.c (m68k_output_mi_thunk): Use jmp, not jsr.

2006-01-04  Daniel Berlin  <dberlin@dberlin.org>

	* lambda-code.c (can_put_in_inner_loop): Relax
	restrictions.
	(can_put_after_inner_loop): New function.
	(can_convert_to_perfect_nest): Use can_put_after_inner_loop as well.
	(perfect_nestify): Change to make copies and modify uses.

2006-01-04  Richard Henderson  <rth@redhat.com>

	Merge from gomp branch:
	* c-lex.c (c_lex_with_flags) <CPP_PRAGMA>: Smuggle pragma id
	via integer constant.
	(pragma_lex): Remove.
	* c-pch.c (c_common_pch_pragma): Accept the name as an argument,
	rather than parsing it.
	* c-pragma.c (handle_pragma_weak, handle_pragma_redefine_extname,
	handle_pragma_extern_prefix): Add %< %> quotes.
	(registered_pragmas): New.
	(c_register_pragma_1): New.
	(c_register_pragma): Use it.
	(c_register_pragma_with_expansion): Likewise.
	(c_invoke_pragma_handler): New.
	(init_pragma): Use cpp_register_deferred_pragma directly for
	pch_preprocess.
	* c-pragma.h (enum pragma_kind): New.
	(pragma_handler): New.
	(c_invoke_pragma_handler): Declare.
	* c-common.c (c_parse_error): Pretty print CPP_PRAGMA and
	CPP_PRAGMA_EOL.
	* c-common.h (c_common_pch_pragma): Update decl.
	* Makefile.in (c-parser.o): Update dependencies.
	(GTFILES): Add c-pragma.h.
	* c-parser.c (struct c_token): Add pragma_kind.
	(struct c_parser): Add in_pragma.
	(c_lex_one_token): Always initialize keyword and pragma_kind.
	Extract data for CPP_PRAGMA.
	(c_parser_peek_2nd_token): Deny CPP_PRAGMA_EOL.
	(c_parser_consume_token): Don't allow CPP_PRAGMA unless errors.
	Don't allow CPP_PRAGMA_EOL if in_pragma.
	(c_parser_consume_pragma): New.
	(c_parser_skip_until_found): Stop on CPP_PRAGMA_EOL.
	(c_parser_skip_to_end_of_parameter): Likewise.
	(c_parser_skip_to_end_of_block_or_statement): Likewise.
	(c_parser_skip_to_pragma_eol): New.
	(c_parser_external_declaration): Handle CPP_PRAGMA.
	(c_parser_compound_statement_nostart): Likewise.
	(c_parser_statement_after_labels): Likewise.
	(c_parser_pragma): New.
	(pragma_lex): Likewise.
	(c_parser_pragma_pch_preprocess): New.
	(c_parser_new): Merge into ...
	(c_parse_file): ... here.  Call c_parser_pragma_pch_preprocess.

2006-01-04  Jeff Law  <law@redhat.com>

	PR ada/24994
	* tree-cfg.c (bsi_replace): Remove the original statement
	from the EH throw statement table.

2006-01-04  Jakub Jelinek  <jakub@redhat.com>

	* config/i386/pmm_malloc.h (posix_memalign): If __cplusplus,
	make the prototype extern "C" and add throw ().

	PR target/25554
	* config/i386/i386.md (testqi_ext_3): Ensure len is positive
	and pos non-negative and pos + len <= 32.
	(testqi_ext_3_rex64): Ensure len is positive and pos non-negative,
	drop pos + len < HOST_BITS_PER_WIDE_INT test.
	(testqi_ext_3* splitter): Handle pos + len == HOST_BITS_PER_WIDE_INT.

	PR c/25559
	* c-common.c (handle_vector_size_attribute): Reject zero vector size
	as well as sizes not multiple of component size.

	PR debug/25562
	* function.c (instantiate_expr): New function.
	(instantiate_decls_1, instantiate_decls): If DECL_HAS_VALUE_EXPR_P,
	walk its DECL_VALUE_EXPR with instantiate_expr.

	* dwarf2out.c (loc_descriptor_from_tree_1): Don't add
	DW_OP_deref{,_size} if address isn't going to be added.

2006-01-04  Ben Elliston  <bje@au.ibm.com>

	* config/fp-bit.h: Use top-of-file comment from libgcc2.c.
	* config/fp-bit.c: Likewise.

2006-01-03  Daniel Berlin  <dberlin@dberlin.org>

	* dominance.c: Add comment about why we use DFS numbering
	of dominance tree.

2006-01-03  Jakub Jelinek  <jakub@redhat.com>
	    Richard Henderson  <rth@redhat.com>

	Merge from gomp-branch:
        * varasm.c (assemble_variable): Handle thread-local COMMON data.
        * defaults.h (ASM_OUTPUT_TLS_COMMON): Define.

2006-01-03  Paolo Bonzini  <bonzini@gnu.org>

	PR rtl-optimization/25578
	* combine.c (combine_simplify_rtx, force_to_mode): Don't
	pass a parameter to simplify_shift_const if changing ASHIFTRT
	to LSHIFTRT.

2006-01-03  Adrian Straetling  <straetling@de.ibm.com>

	* builtins.c (get_builtin_sync_mem): New function.
	(expand_builtin_sync_operation, expand_builtin_compare_and_swap,
	expand_builtin_lock_test_and_set, expand_builtin_lock_release):
	Call get_builtin_sync_mem to generate mem rtx.

2006-01-03  Richard Guenther  <rguenther@suse.de>

	PR c/25183
	* stmt.c (add_case_node): Make sure to clear overflow flags
	from ranges.

2006-01-03  Jakub Jelinek  <jakub@redhat.com>

	Merge from gomp-branch.
	* config/sparc/sync.md: New file.
	* config/sparc/sparc.md (UNSPECV_MEMBAR, UNSPECV_CAS, UNSPECV_SWAP,
	UNSPECV_LDSTUB): New constants.
	* config/sparc/sparc.c (sparc_expand_compare_and_swap_12): New function.
	* config/sparc/predicates.md (memory_reg_operand): New predicate.
	* config/sparc/sparc-protos.h (sparc_expand_compare_and_swap_12): New
	prototype.

2006-01-03  Roger Sayle  <roger@eyesopen.com>

	* combine.c (reg_subword_p): New predicate to test whether the
	destination of a set refers to a subword/piece of a register.
	(try_combine): Generalize the code to merge the setting of a
	pseudo to a constant followed by a set of a subword of that
	register to a constant.

2006-01-03  Kazu Hirata  <kazu@codesourcery.com>

	* basic-block.h (control_flow_graph): Change the type of
	x_label_to_block_map to VEC(basic_block,gc) *.
	* tree-cfg.c (init_empty_tree_cfg, label_to_block_fn,
	set_bb_for_stmt): Adjust the uses of x_label_to_block_map.

	* tree-ssa-propagate.c (cfg_blocks): Change the type to
	VEC(basic_block,heap) *.
	(cfg_blocks_add, cfg_blocks_get, ssa_prop_init,
	ssa_prop_fini): Adjust the uses of cfg_blocks.

2006-01-03  Steven Bosscher  <stevenb.gcc@gmail.com>

	* fold-const.c (operand_equal_p): Accept a NULL operand 0 for
	COMPONENT_REFs.
	* emit-rtl.c (mem_attrs_htab_eq): Use iterative_hash_expr for
	hashing trees instead of a pointer hash.
	(mem_attrs_htab_eq): Do a deep compare instead of a pointer
	compare for MEM_EXPR.

	PR rtl-optimization/25130
	* cse.c (exp_equiv_p): Compare MEM_ATTRS instead of MEM_ALIAS_SET
	when comparing MEMs for GCSE

2006-01-03  Ben Elliston  <bje@au.ibm.com>

	* targhooks.h (default_decimal_float_supported_p): Declare.
	* targhooks.c (default_decimal_float_supported_p): Define.
	* target-def.h (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Redefine to
	`default_decimal_float_supported_p'.
	* doc/tm.texi (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Update.

2006-01-02  Adam Nemet  <anemet@caviumnetworks.com>

	* combine.c (apply_distributive_law <SUBREG>): Check
	TRULY_NOOP_TRUNCATION.

2006-01-02  Geoffrey Keating  <geoffk@apple.com>

	* dwarf2out.c (have_switched_text_section): Delete.
	(have_multiple_function_sections): New.
	(have_location_lists): Make 'bool'.
	(add_AT_loc_list): Use 'true' not '1'.
	(dwarf2out_switch_text_section): Set have_multiple_function_sections.
	(output_loc_list): Use have_multiple_function_sections.
	(output_ranges): Likewise.
	(dwarf2out_begin_function): Set have_multiple_function_sections if
	necessary.
	(dwarf2out_source_line): Don't fake separate_line_info_table_in_use.
	Check function_section rather than DECL_SECTION_NAME.
	(dwarf2out_finish): Use have_multiple_function_sections.
	Don't clear have_location_lists.

2006-01-02  Eric Botcazou  <ebotcazou@adacore.com>
            Jan Hubicka  <jh@suse.cz>

	* cfglayout.c (fixup_reorder_chain): Remove kludge for the
	case of conditional jump jumping to the next instruction.
	* cfgrtl.c (force_nonfallthru_and_redirect): Accept all
	cases of conditional jump jumping to the next instruction.

2006-01-02  Jan Hubicka  <jh@suse.cz>

	* i386.c (*_cost): Add COSTS_N_INSNS.
	(ix86_rtx_costs): Do not use COSTS_N_INSNS.

2006-01-02  Paolo Bonzini  <bonzini@gnu.org>

        PR target/25259
        * Makefile.in (DECNUMINC): Include libdecnumber's build directory.

2006-01-02  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

	* config/arm/arm.c (all_fpus): Fix comment typo.
	* config/darwin.c: Likewise.
	* config/frv/frv.h (FRV_STRUCT_VALUE_REGNUM): Likewise.
	* config/h8300/h8300.md (extendqisi2_h8300hs): Likewise.
	* config/m68hc11/m68hc11.c (m68hc11_reload_operands): Likewise.

2006-01-01  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): New.
	(rs6000_split_compare_and_swapqhi): New.
	* config/rs6000/sync.md (sync_compare_and_swap{hi,qi}): New.
	(sync_compare_and_swapqhi_internal): New.
	* config/rs6000/rs6000-protos.h: Declare.