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 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 2026 2027 2028 2029 2030 2031 2032 2033 2034 2035 2036 2037 2038 2039 2040 2041 2042 2043 2044 2045 2046 2047 2048 2049 2050 2051 2052 2053 2054 2055 2056 2057 2058 2059 2060 2061 2062 2063 2064 2065 2066 2067 2068 2069 2070 2071 2072 2073 2074 2075 2076 2077 2078 2079 2080 2081 2082 2083 2084 2085 2086 2087 2088 2089 2090 2091 2092 2093 2094 2095 2096 2097 2098 2099 2100 2101 2102 2103 2104 2105 2106 2107 2108 2109 2110 2111 2112 2113 2114 2115 2116 2117 2118 2119 2120 2121 2122 2123 2124 2125 2126 2127 2128 2129 2130 2131 2132 2133 2134 2135 2136 2137 2138 2139 2140 2141 2142 2143 2144 2145 2146 2147 2148 2149 2150 2151 2152 2153 2154 2155 2156 2157 2158 2159 2160 2161 2162 2163 2164 2165 2166 2167 2168 2169 2170 2171 2172 2173 2174 2175 2176 2177 2178 2179 2180 2181 2182 2183 2184 2185 2186 2187 2188 2189 2190 2191 2192 2193 2194 2195 2196 2197 2198 2199 2200 2201 2202 2203 2204 2205 2206 2207 2208 2209 2210 2211 2212 2213 2214 2215 2216 2217 2218 2219 2220 2221 2222 2223 2224 2225 2226 2227 2228 2229 2230 2231 2232 2233 2234 2235 2236 2237 2238 2239 2240 2241 2242 2243 2244 2245 2246 2247 2248 2249 2250 2251 2252 2253 2254 2255 2256 2257 2258 2259 2260 2261 2262 2263 2264 2265 2266 2267 2268 2269 2270 2271 2272 2273 2274 2275 2276 2277 2278 2279 2280 2281 2282 2283 2284 2285 2286 2287 2288 2289 2290 2291 2292 2293 2294 2295 2296 2297 2298 2299 2300 2301 2302 2303 2304 2305 2306 2307 2308 2309 2310 2311 2312 2313 2314 2315 2316 2317 2318 2319 2320 2321 2322 2323 2324 2325 2326 2327 2328 2329 2330 2331 2332 2333 2334 2335 2336 2337 2338 2339 2340 2341 2342 2343 2344 2345 2346 2347 2348 2349 2350 2351 2352 2353 2354 2355 2356 2357 2358 2359 2360 2361 2362 2363 2364 2365 2366 2367 2368 2369 2370 2371 2372 2373 2374 2375 2376 2377 2378 2379 2380 2381 2382 2383 2384 2385 2386 2387 2388 2389 2390 2391 2392 2393 2394 2395 2396 2397 2398 2399 2400 2401 2402 2403 2404 2405 2406 2407 2408 2409 2410 2411 2412 2413 2414 2415 2416 2417 2418 2419 2420 2421 2422 2423 2424 2425 2426 2427 2428 2429 2430 2431 2432 2433 2434 2435 2436 2437 2438 2439 2440 2441 2442 2443 2444 2445 2446 2447 2448 2449 2450 2451 2452 2453 2454 2455 2456 2457 2458 2459 2460 2461 2462 2463 2464 2465 2466 2467 2468 2469 2470 2471 2472 2473 2474 2475 2476 2477 2478 2479 2480 2481 2482 2483 2484 2485 2486 2487 2488 2489 2490 2491 2492 2493 2494 2495 2496 2497 2498 2499 2500 2501 2502 2503 2504 2505 2506 2507 2508 2509 2510 2511 2512 2513 2514 2515 2516 2517 2518 2519 2520 2521 2522 2523 2524 2525 2526 2527 2528 2529 2530 2531 2532 2533 2534 2535 2536 2537 2538 2539 2540 2541 2542 2543 2544 2545 2546 2547 2548 2549 2550 2551 2552 2553 2554 2555 2556 2557 2558 2559 2560 2561 2562 2563 2564 2565 2566 2567 2568 2569 2570 2571 2572 2573 2574 2575 2576 2577 2578 2579 2580 2581 2582 2583 2584 2585 2586 2587 2588 2589 2590 2591 2592 2593 2594 2595 2596 2597 2598 2599 2600 2601 2602 2603 2604 2605 2606 2607 2608 2609 2610 2611 2612 2613 2614 2615 2616 2617 2618 2619 2620 2621 2622 2623 2624 2625 2626 2627 2628 2629 2630 2631 2632 2633 2634 2635 2636 2637 2638 2639 2640 2641 2642 2643 2644 2645 2646 2647 2648 2649 2650 2651 2652 2653 2654 2655 2656 2657 2658 2659 2660 2661 2662 2663 2664 2665 2666 2667 2668 2669 2670 2671 2672 2673 2674 2675 2676 2677 2678 2679 2680 2681 2682 2683 2684 2685 2686 2687 2688 2689 2690 2691 2692 2693 2694 2695 2696 2697 2698 2699 2700 2701 2702 2703 2704 2705 2706 2707 2708 2709 2710 2711 2712 2713 2714 2715 2716 2717 2718 2719 2720 2721 2722 2723 2724 2725 2726 2727 2728 2729 2730 2731 2732 2733 2734 2735 2736 2737 2738 2739 2740 2741 2742 2743 2744 2745 2746 2747 2748 2749 2750 2751 2752 2753 2754 2755 2756 2757 2758 2759 2760 2761 2762 2763 2764 2765 2766 2767 2768 2769 2770 2771 2772 2773 2774 2775 2776 2777 2778 2779 2780 2781 2782 2783 2784 2785 2786 2787 2788 2789 2790 2791 2792 2793 2794 2795 2796 2797 2798 2799 2800 2801 2802 2803 2804 2805 2806 2807 2808 2809 2810 2811 2812 2813 2814 2815 2816 2817 2818 2819 2820 2821 2822 2823 2824 2825 2826 2827 2828 2829 2830 2831 2832 2833 2834 2835 2836 2837 2838 2839 2840 2841 2842 2843 2844 2845 2846 2847 2848 2849 2850 2851 2852 2853 2854 2855 2856 2857 2858 2859 2860 2861 2862 2863 2864 2865 2866 2867 2868 2869 2870 2871 2872 2873 2874 2875 2876 2877 2878 2879 2880 2881 2882 2883 2884 2885 2886 2887 2888 2889 2890 2891 2892 2893 2894 2895 2896 2897 2898 2899 2900 2901 2902 2903 2904 2905 2906 2907 2908 2909 2910 2911 2912 2913 2914 2915 2916 2917 2918 2919 2920 2921 2922 2923 2924 2925 2926 2927 2928 2929 2930 2931 2932 2933 2934 2935 2936 2937 2938 2939 2940 2941 2942 2943 2944 2945 2946 2947 2948 2949 2950 2951 2952 2953 2954 2955 2956 2957 2958 2959 2960 2961 2962 2963 2964 2965 2966 2967 2968 2969 2970 2971 2972 2973 2974 2975 2976 2977 2978 2979 2980 2981 2982 2983 2984 2985 2986 2987 2988 2989 2990 2991 2992 2993 2994 2995 2996 2997 2998 2999 3000 3001 3002 3003 3004 3005 3006 3007 3008 3009 3010 3011 3012 3013 3014 3015 3016 3017 3018 3019 3020 3021 3022 3023 3024 3025 3026 3027 3028 3029 3030 3031 3032 3033 3034 3035 3036 3037 3038 3039 3040 3041 3042 3043 3044 3045 3046 3047 3048 3049 3050 3051 3052 3053 3054 3055 3056 3057 3058 3059 3060 3061 3062 3063 3064 3065 3066 3067 3068 3069 3070 3071 3072 3073 3074 3075 3076 3077 3078 3079 3080 3081 3082 3083 3084 3085 3086 3087 3088 3089 3090 3091 3092 3093 3094 3095 3096 3097 3098 3099 3100 3101 3102 3103 3104 3105 3106 3107 3108 3109 3110 3111 3112 3113 3114 3115 3116 3117 3118 3119 3120 3121 3122 3123 3124 3125 3126 3127 3128 3129 3130 3131 3132 3133 3134 3135 3136 3137 3138 3139 3140 3141 3142 3143 3144 3145 3146 3147 3148 3149 3150 3151 3152 3153 3154 3155 3156 3157 3158 3159 3160 3161 3162 3163 3164 3165 3166 3167 3168 3169 3170 3171 3172 3173 3174 3175 3176 3177 3178 3179 3180 3181 3182 3183 3184 3185 3186 3187 3188 3189 3190 3191 3192 3193 3194 3195 3196 3197 3198 3199 3200 3201 3202 3203 3204 3205 3206 3207 3208 3209 3210 3211 3212 3213 3214 3215 3216 3217 3218 3219 3220 3221 3222 3223 3224 3225 3226 3227 3228 3229 3230 3231 3232 3233 3234 3235 3236 3237 3238 3239 3240 3241 3242 3243 3244 3245 3246 3247 3248 3249 3250 3251 3252 3253 3254 3255 3256 3257 3258 3259 3260 3261 3262 3263 3264 3265 3266 3267 3268 3269 3270 3271 3272 3273 3274 3275 3276 3277 3278 3279 3280 3281 3282 3283 3284 3285 3286 3287 3288 3289 3290 3291 3292 3293 3294 3295 3296 3297 3298 3299 3300 3301 3302 3303 3304 3305 3306 3307 3308 3309 3310 3311 3312 3313 3314 3315 3316 3317 3318 3319 3320 3321 3322 3323 3324 3325 3326 3327 3328 3329 3330 3331 3332 3333 3334 3335 3336 3337 3338 3339 3340 3341 3342 3343 3344 3345 3346 3347 3348 3349 3350 3351 3352 3353 3354 3355 3356 3357 3358 3359 3360 3361 3362 3363 3364 3365 3366 3367 3368 3369 3370 3371 3372 3373 3374 3375 3376 3377 3378 3379 3380 3381 3382 3383 3384 3385 3386 3387 3388 3389 3390 3391 3392 3393 3394 3395 3396 3397 3398 3399 3400 3401 3402 3403 3404 3405 3406 3407 3408 3409 3410 3411 3412 3413 3414 3415 3416 3417 3418 3419 3420 3421 3422 3423 3424 3425 3426 3427 3428 3429 3430 3431 3432 3433 3434 3435 3436 3437 3438 3439 3440 3441 3442 3443 3444 3445 3446 3447 3448 3449 3450 3451 3452 3453 3454 3455 3456 3457 3458 3459 3460 3461 3462 3463 3464 3465 3466 3467 3468 3469 3470 3471 3472 3473 3474 3475 3476 3477 3478 3479 3480 3481 3482 3483 3484 3485 3486 3487 3488 3489 3490 3491 3492 3493 3494 3495 3496 3497 3498 3499 3500 3501 3502 3503 3504 3505 3506 3507 3508 3509 3510 3511 3512 3513 3514 3515 3516 3517 3518 3519 3520 3521 3522 3523 3524 3525 3526 3527 3528 3529 3530 3531 3532 3533 3534 3535 3536 3537 3538 3539 3540 3541 3542 3543 3544 3545 3546 3547 3548 3549 3550 3551 3552 3553 3554 3555 3556 3557 3558 3559 3560 3561 3562 3563 3564 3565 3566 3567 3568 3569 3570 3571 3572 3573 3574 3575 3576 3577 3578 3579 3580 3581 3582 3583 3584 3585 3586 3587 3588 3589 3590 3591 3592 3593 3594 3595 3596 3597 3598 3599 3600 3601 3602 3603 3604 3605 3606 3607 3608 3609 3610 3611 3612 3613 3614 3615 3616 3617 3618 3619 3620 3621 3622 3623 3624 3625 3626 3627 3628 3629 3630 3631 3632 3633 3634 3635 3636 3637 3638 3639 3640 3641 3642 3643 3644 3645 3646 3647 3648 3649 3650 3651 3652 3653 3654 3655 3656 3657 3658 3659 3660 3661 3662 3663 3664 3665 3666 3667 3668 3669 3670 3671 3672 3673 3674 3675 3676 3677 3678 3679 3680 3681 3682 3683 3684 3685 3686 3687 3688 3689 3690 3691 3692 3693 3694 3695 3696 3697 3698 3699 3700 3701 3702 3703 3704 3705 3706 3707 3708 3709 3710 3711 3712 3713 3714 3715 3716 3717 3718 3719 3720 3721 3722 3723 3724 3725 3726 3727 3728 3729 3730 3731 3732 3733 3734 3735 3736 3737 3738 3739 3740 3741 3742 3743 3744 3745 3746 3747 3748 3749 3750 3751 3752 3753 3754 3755 3756 3757 3758 3759 3760 3761 3762 3763 3764 3765 3766 3767 3768 3769 3770 3771 3772 3773 3774 3775 3776 3777 3778 3779 3780 3781 3782 3783 3784 3785 3786 3787 3788 3789 3790 3791 3792 3793 3794 3795 3796 3797 3798 3799 3800 3801 3802 3803 3804 3805 3806 3807 3808 3809 3810 3811 3812 3813 3814 3815 3816 3817 3818 3819 3820 3821 3822 3823 3824 3825 3826 3827 3828 3829 3830 3831 3832 3833 3834 3835 3836 3837 3838 3839 3840 3841 3842 3843 3844 3845 3846 3847 3848 3849 3850 3851 3852 3853 3854 3855 3856 3857 3858 3859 3860 3861 3862 3863 3864 3865 3866 3867 3868 3869 3870 3871 3872 3873 3874 3875 3876 3877 3878 3879 3880 3881 3882 3883 3884 3885 3886 3887 3888 3889 3890 3891 3892 3893 3894 3895 3896 3897 3898 3899 3900 3901 3902 3903 3904 3905 3906 3907 3908 3909 3910 3911 3912 3913 3914 3915 3916 3917 3918 3919 3920 3921 3922 3923 3924 3925 3926 3927 3928 3929 3930 3931 3932 3933 3934 3935 3936 3937 3938 3939 3940 3941 3942 3943 3944 3945 3946 3947 3948 3949 3950 3951 3952 3953 3954 3955 3956 3957 3958 3959 3960 3961 3962 3963 3964 3965 3966 3967 3968 3969 3970 3971 3972 3973 3974 3975 3976 3977 3978 3979 3980 3981 3982 3983 3984 3985 3986 3987 3988 3989 3990 3991 3992 3993 3994 3995 3996 3997 3998 3999 4000 4001 4002 4003 4004 4005 4006 4007 4008 4009 4010 4011 4012 4013 4014 4015 4016 4017 4018 4019 4020 4021 4022 4023 4024 4025 4026 4027 4028 4029 4030 4031 4032 4033 4034 4035 4036 4037 4038 4039 4040 4041 4042 4043 4044 4045 4046 4047 4048 4049 4050 4051 4052 4053 4054 4055 4056 4057 4058 4059 4060 4061 4062 4063 4064 4065 4066 4067 4068 4069 4070 4071 4072 4073 4074 4075 4076 4077 4078 4079 4080 4081 4082 4083 4084 4085 4086 4087 4088 4089 4090 4091 4092 4093 4094 4095 4096 4097 4098 4099 4100 4101 4102 4103 4104 4105 4106 4107 4108 4109 4110 4111 4112 4113 4114 4115 4116 4117 4118 4119 4120 4121 4122 4123 4124 4125 4126 4127 4128 4129 4130 4131 4132 4133 4134 4135 4136 4137 4138 4139 4140 4141 4142 4143 4144 4145 4146 4147 4148 4149 4150 4151 4152 4153 4154 4155 4156 4157 4158 4159 4160 4161 4162 4163 4164 4165 4166 4167 4168 4169 4170 4171 4172 4173 4174 4175 4176 4177 4178 4179 4180 4181 4182 4183 4184 4185 4186 4187 4188 4189 4190 4191 4192 4193 4194 4195 4196 4197 4198 4199 4200 4201 4202 4203 4204 4205 4206 4207 4208 4209 4210 4211 4212 4213 4214 4215 4216 4217 4218 4219 4220 4221 4222 4223 4224 4225 4226 4227 4228 4229 4230 4231 4232 4233 4234 4235 4236 4237 4238 4239 4240 4241 4242 4243 4244 4245 4246 4247 4248 4249 4250 4251 4252 4253 4254 4255 4256 4257 4258 4259 4260 4261 4262 4263 4264 4265 4266 4267 4268 4269 4270 4271 4272 4273 4274 4275 4276 4277 4278 4279 4280 4281 4282 4283 4284 4285 4286 4287 4288 4289 4290 4291 4292 4293 4294 4295 4296 4297 4298 4299 4300 4301 4302 4303 4304 4305 4306 4307 4308 4309 4310 4311 4312 4313 4314 4315 4316 4317 4318 4319 4320 4321 4322 4323 4324 4325 4326 4327 4328 4329 4330 4331 4332 4333 4334 4335 4336 4337 4338 4339 4340 4341 4342 4343 4344 4345 4346 4347 4348 4349 4350 4351 4352 4353 4354 4355 4356 4357 4358 4359 4360 4361 4362 4363 4364 4365 4366 4367 4368 4369 4370 4371 4372 4373 4374 4375 4376 4377 4378 4379 4380 4381 4382 4383 4384 4385 4386 4387 4388 4389 4390 4391 4392 4393 4394 4395 4396 4397 4398 4399 4400 4401 4402 4403 4404 4405 4406 4407 4408 4409 4410 4411 4412 4413 4414 4415 4416 4417 4418 4419 4420 4421 4422 4423 4424 4425 4426 4427 4428 4429 4430 4431 4432 4433 4434 4435 4436 4437 4438 4439 4440 4441 4442 4443 4444 4445 4446 4447 4448 4449 4450 4451 4452 4453 4454 4455 4456 4457 4458 4459 4460 4461 4462 4463 4464 4465 4466 4467 4468 4469 4470 4471 4472 4473 4474 4475 4476 4477 4478 4479 4480 4481 4482 4483 4484 4485 4486 4487 4488 4489 4490 4491 4492 4493 4494 4495 4496 4497 4498 4499 4500 4501 4502 4503 4504 4505 4506 4507 4508 4509 4510 4511 4512 4513 4514 4515 4516 4517 4518 4519 4520 4521 4522 4523 4524 4525 4526 4527 4528 4529 4530 4531 4532 4533 4534 4535 4536 4537 4538 4539 4540 4541 4542 4543 4544 4545 4546 4547 4548 4549 4550 4551 4552 4553 4554 4555 4556 4557 4558 4559 4560 4561 4562 4563 4564 4565 4566 4567 4568 4569 4570 4571 4572 4573 4574 4575 4576 4577 4578 4579 4580 4581 4582 4583 4584 4585 4586 4587 4588 4589 4590 4591 4592 4593 4594 4595 4596 4597 4598 4599 4600 4601 4602 4603 4604 4605 4606 4607 4608 4609 4610 4611 4612 4613 4614 4615 4616 4617 4618 4619 4620 4621 4622 4623 4624 4625 4626 4627 4628 4629 4630 4631 4632 4633 4634 4635 4636 4637 4638 4639 4640 4641 4642 4643 4644 4645 4646 4647 4648 4649 4650 4651 4652 4653 4654 4655 4656 4657 4658 4659 4660 4661 4662 4663 4664 4665 4666 4667 4668 4669 4670 4671 4672 4673 4674 4675 4676 4677 4678 4679 4680 4681 4682 4683 4684 4685 4686 4687 4688 4689 4690 4691 4692 4693 4694 4695 4696 4697 4698 4699 4700 4701 4702 4703 4704 4705 4706 4707 4708 4709 4710 4711 4712 4713 4714 4715 4716 4717 4718 4719 4720 4721 4722 4723 4724 4725 4726 4727 4728 4729 4730 4731 4732 4733 4734 4735 4736 4737 4738 4739 4740 4741 4742 4743 4744 4745 4746 4747 4748 4749 4750 4751 4752 4753 4754 4755 4756 4757 4758 4759 4760 4761 4762 4763 4764 4765 4766 4767 4768 4769 4770 4771 4772 4773 4774 4775 4776 4777 4778 4779 4780 4781 4782 4783 4784 4785 4786 4787 4788 4789 4790 4791 4792 4793 4794 4795 4796 4797 4798 4799 4800 4801 4802 4803 4804 4805 4806 4807 4808 4809 4810 4811 4812 4813 4814 4815 4816 4817 4818 4819 4820 4821 4822 4823 4824 4825 4826 4827 4828 4829 4830 4831 4832 4833 4834 4835 4836 4837 4838 4839 4840 4841 4842 4843 4844 4845 4846 4847 4848 4849 4850 4851 4852 4853 4854 4855 4856 4857 4858 4859 4860 4861 4862 4863 4864 4865 4866 4867 4868 4869 4870 4871 4872 4873 4874 4875 4876 4877 4878 4879 4880 4881 4882 4883 4884 4885 4886 4887 4888 4889 4890 4891 4892 4893 4894 4895 4896 4897 4898 4899 4900 4901 4902 4903 4904 4905 4906 4907 4908 4909 4910 4911 4912 4913 4914 4915 4916 4917 4918 4919 4920 4921 4922 4923 4924 4925 4926 4927 4928 4929 4930 4931 4932 4933 4934 4935 4936 4937 4938 4939 4940 4941 4942 4943 4944 4945 4946 4947 4948 4949 4950 4951 4952 4953 4954 4955 4956 4957 4958 4959 4960 4961 4962 4963 4964 4965 4966 4967 4968 4969 4970 4971 4972 4973 4974 4975 4976 4977 4978 4979 4980 4981 4982 4983 4984 4985 4986 4987 4988 4989 4990 4991 4992 4993 4994 4995 4996 4997 4998 4999 5000 5001 5002 5003 5004 5005 5006 5007 5008 5009 5010 5011 5012 5013 5014 5015 5016 5017 5018 5019 5020 5021 5022 5023 5024 5025 5026 5027 5028 5029 5030 5031 5032 5033 5034 5035 5036 5037 5038 5039 5040 5041 5042 5043 5044 5045 5046 5047 5048 5049 5050 5051 5052 5053 5054 5055 5056 5057 5058 5059 5060 5061 5062 5063 5064 5065 5066 5067 5068 5069 5070 5071 5072 5073 5074 5075 5076 5077 5078 5079 5080 5081 5082 5083 5084 5085 5086 5087 5088 5089 5090 5091 5092 5093 5094 5095 5096 5097 5098 5099 5100 5101 5102 5103 5104 5105 5106 5107 5108 5109 5110 5111 5112 5113 5114 5115 5116 5117 5118 5119 5120 5121 5122 5123 5124 5125 5126 5127 5128 5129 5130 5131 5132 5133 5134 5135 5136 5137 5138 5139 5140 5141 5142 5143 5144 5145 5146 5147 5148 5149 5150 5151 5152 5153 5154 5155 5156 5157 5158 5159 5160 5161 5162 5163 5164 5165 5166 5167 5168 5169 5170 5171 5172 5173 5174 5175 5176 5177 5178 5179 5180 5181 5182 5183 5184 5185 5186 5187 5188 5189 5190 5191 5192 5193 5194 5195 5196 5197 5198 5199 5200 5201 5202 5203 5204 5205 5206 5207 5208 5209 5210 5211 5212 5213 5214 5215 5216 5217 5218 5219 5220 5221 5222 5223 5224 5225 5226 5227 5228 5229 5230 5231 5232 5233 5234 5235 5236 5237 5238 5239 5240 5241 5242 5243 5244 5245 5246 5247 5248 5249 5250 5251 5252 5253 5254 5255 5256 5257 5258 5259 5260 5261 5262 5263 5264 5265 5266 5267 5268 5269 5270 5271 5272 5273 5274 5275 5276 5277 5278 5279 5280 5281 5282 5283 5284 5285 5286 5287 5288 5289 5290 5291 5292 5293 5294 5295 5296 5297 5298 5299 5300 5301 5302 5303 5304 5305 5306 5307 5308 5309 5310 5311 5312 5313 5314 5315 5316 5317 5318 5319 5320 5321 5322 5323 5324 5325 5326 5327 5328 5329 5330 5331 5332 5333 5334 5335 5336 5337 5338 5339 5340 5341 5342 5343 5344 5345 5346 5347 5348 5349 5350 5351 5352 5353 5354 5355 5356 5357 5358 5359 5360 5361 5362 5363 5364 5365 5366 5367 5368 5369 5370 5371 5372 5373 5374 5375 5376 5377 5378 5379 5380 5381 5382 5383 5384 5385 5386 5387 5388 5389 5390 5391 5392 5393 5394 5395 5396 5397 5398 5399 5400 5401 5402 5403 5404 5405 5406 5407 5408 5409 5410 5411 5412 5413 5414 5415 5416 5417 5418 5419 5420 5421 5422 5423 5424 5425 5426 5427 5428 5429 5430 5431 5432 5433 5434 5435 5436 5437 5438 5439 5440 5441 5442 5443 5444 5445 5446 5447 5448 5449 5450 5451 5452 5453 5454 5455 5456 5457 5458 5459 5460 5461 5462 5463 5464 5465 5466 5467 5468 5469 5470 5471 5472 5473 5474 5475 5476 5477 5478 5479 5480 5481 5482 5483 5484 5485 5486 5487 5488 5489 5490 5491 5492 5493 5494 5495 5496 5497 5498 5499 5500 5501 5502 5503 5504 5505 5506 5507 5508 5509 5510 5511 5512 5513 5514 5515 5516 5517 5518 5519 5520 5521 5522 5523 5524 5525 5526 5527 5528 5529 5530 5531 5532 5533 5534 5535 5536 5537 5538 5539 5540 5541 5542 5543 5544 5545 5546 5547 5548 5549 5550 5551 5552 5553 5554 5555 5556 5557 5558 5559 5560 5561 5562 5563 5564 5565 5566 5567 5568 5569 5570 5571 5572 5573 5574 5575 5576 5577 5578 5579 5580 5581 5582 5583 5584 5585 5586 5587 5588 5589 5590 5591 5592 5593 5594 5595 5596 5597 5598 5599 5600 5601 5602 5603 5604 5605 5606 5607 5608 5609 5610 5611 5612 5613 5614 5615 5616 5617 5618 5619 5620 5621 5622 5623 5624 5625 5626 5627 5628 5629 5630 5631 5632 5633 5634 5635 5636 5637 5638 5639 5640 5641 5642 5643 5644 5645 5646 5647 5648 5649 5650 5651 5652 5653 5654 5655 5656 5657 5658 5659 5660 5661 5662 5663 5664 5665 5666 5667 5668 5669 5670 5671 5672 5673 5674 5675 5676 5677 5678 5679 5680 5681 5682 5683 5684 5685 5686 5687 5688 5689 5690 5691 5692 5693 5694 5695 5696 5697 5698 5699 5700 5701 5702 5703 5704 5705 5706 5707 5708 5709 5710 5711 5712 5713 5714 5715 5716 5717 5718 5719 5720 5721 5722 5723 5724 5725 5726 5727 5728 5729 5730 5731 5732 5733 5734 5735 5736 5737 5738 5739 5740 5741 5742 5743 5744 5745 5746 5747 5748 5749 5750 5751 5752 5753 5754 5755 5756 5757 5758 5759 5760 5761 5762 5763 5764 5765 5766 5767 5768 5769 5770 5771 5772 5773 5774 5775 5776 5777 5778 5779 5780 5781 5782 5783 5784 5785 5786 5787 5788 5789 5790 5791 5792 5793 5794 5795 5796 5797 5798 5799 5800 5801 5802 5803 5804 5805 5806 5807 5808 5809 5810 5811 5812 5813 5814 5815 5816 5817 5818 5819 5820 5821 5822 5823 5824 5825 5826 5827 5828 5829 5830 5831 5832 5833 5834 5835 5836 5837 5838 5839 5840 5841 5842 5843 5844 5845 5846 5847 5848 5849 5850 5851 5852 5853 5854 5855 5856 5857 5858 5859 5860 5861 5862 5863 5864 5865 5866 5867 5868 5869 5870 5871 5872 5873 5874 5875 5876 5877 5878 5879 5880 5881 5882 5883 5884 5885 5886 5887 5888 5889 5890 5891 5892 5893 5894 5895 5896 5897 5898 5899 5900 5901 5902 5903 5904 5905 5906 5907 5908 5909 5910 5911 5912 5913 5914 5915 5916 5917 5918 5919 5920 5921 5922 5923 5924 5925 5926 5927 5928 5929 5930 5931 5932 5933 5934 5935 5936 5937 5938 5939 5940 5941 5942 5943 5944 5945 5946 5947 5948 5949 5950 5951 5952 5953 5954 5955 5956 5957 5958 5959 5960 5961 5962 5963 5964 5965 5966 5967 5968 5969 5970 5971 5972 5973 5974 5975 5976 5977 5978 5979 5980 5981 5982 5983 5984 5985 5986 5987 5988 5989 5990 5991 5992 5993 5994 5995 5996 5997 5998 5999 6000 6001 6002 6003 6004 6005 6006 6007 6008 6009 6010 6011 6012 6013 6014 6015 6016 6017 6018 6019 6020 6021 6022 6023 6024 6025 6026 6027 6028 6029 6030 6031 6032 6033 6034 6035 6036 6037 6038 6039 6040 6041 6042 6043 6044 6045 6046 6047 6048 6049 6050 6051 6052 6053 6054 6055 6056 6057 6058 6059 6060 6061 6062 6063 6064 6065 6066 6067 6068 6069 6070 6071 6072 6073 6074 6075 6076 6077 6078 6079 6080 6081 6082 6083 6084 6085 6086 6087 6088 6089 6090 6091 6092 6093 6094 6095 6096 6097 6098 6099 6100 6101 6102 6103 6104 6105 6106 6107 6108 6109 6110 6111 6112 6113 6114 6115 6116 6117 6118 6119 6120 6121 6122 6123 6124 6125 6126 6127 6128 6129 6130 6131 6132 6133 6134 6135 6136 6137 6138 6139 6140 6141 6142 6143 6144 6145 6146 6147 6148 6149 6150 6151 6152 6153 6154 6155 6156 6157 6158 6159 6160 6161 6162 6163 6164 6165 6166 6167 6168 6169 6170 6171 6172 6173 6174 6175 6176 6177 6178 6179 6180 6181 6182 6183 6184 6185 6186 6187 6188 6189 6190 6191 6192 6193 6194 6195 6196 6197 6198 6199 6200 6201 6202 6203 6204 6205 6206 6207 6208 6209 6210 6211 6212 6213 6214 6215 6216 6217 6218 6219 6220 6221 6222 6223 6224 6225 6226 6227 6228 6229 6230 6231 6232 6233 6234 6235 6236 6237 6238 6239 6240 6241 6242 6243 6244 6245 6246 6247 6248 6249 6250 6251 6252 6253 6254 6255 6256 6257 6258 6259 6260 6261 6262 6263 6264 6265 6266 6267 6268 6269 6270 6271 6272 6273 6274 6275 6276 6277 6278 6279 6280 6281 6282 6283 6284 6285 6286 6287 6288 6289 6290 6291 6292 6293 6294 6295 6296 6297 6298 6299 6300 6301 6302 6303 6304 6305 6306 6307 6308 6309 6310 6311 6312 6313 6314 6315 6316 6317 6318 6319 6320 6321 6322 6323 6324 6325 6326 6327 6328 6329 6330 6331 6332 6333 6334 6335 6336 6337 6338 6339 6340 6341 6342 6343 6344 6345 6346 6347 6348 6349 6350 6351 6352 6353 6354 6355 6356 6357 6358 6359 6360 6361 6362 6363 6364 6365 6366 6367 6368 6369 6370 6371 6372 6373 6374 6375 6376 6377 6378 6379 6380 6381 6382 6383 6384 6385 6386 6387 6388 6389 6390 6391 6392 6393 6394 6395 6396 6397 6398 6399 6400 6401 6402 6403 6404 6405 6406 6407 6408 6409 6410 6411 6412 6413 6414 6415 6416 6417 6418 6419 6420 6421 6422 6423 6424 6425 6426 6427 6428 6429 6430 6431 6432 6433 6434 6435 6436 6437 6438 6439 6440 6441 6442 6443 6444 6445 6446 6447 6448 6449 6450 6451 6452 6453 6454 6455 6456 6457 6458 6459 6460 6461 6462 6463 6464 6465 6466 6467 6468 6469 6470 6471 6472 6473 6474 6475 6476 6477 6478 6479 6480 6481 6482 6483 6484 6485 6486 6487 6488 6489 6490 6491 6492 6493 6494 6495 6496 6497 6498 6499 6500 6501 6502 6503 6504 6505 6506 6507 6508 6509 6510 6511 6512 6513 6514 6515 6516 6517 6518 6519 6520 6521 6522 6523 6524 6525 6526 6527 6528 6529 6530 6531 6532 6533 6534 6535 6536 6537 6538 6539 6540 6541 6542 6543 6544 6545 6546 6547 6548 6549 6550 6551 6552 6553 6554 6555 6556 6557 6558 6559 6560 6561 6562 6563 6564 6565 6566 6567 6568 6569 6570 6571 6572 6573 6574 6575 6576 6577 6578 6579 6580 6581 6582 6583 6584 6585 6586 6587 6588 6589 6590 6591 6592 6593 6594 6595 6596 6597 6598 6599 6600 6601 6602 6603 6604 6605 6606 6607 6608 6609 6610 6611 6612 6613 6614 6615 6616 6617 6618 6619 6620 6621 6622 6623 6624 6625 6626 6627 6628 6629 6630 6631 6632 6633 6634 6635 6636 6637 6638 6639 6640 6641 6642 6643 6644 6645 6646 6647 6648 6649 6650 6651 6652 6653 6654 6655 6656 6657 6658 6659 6660 6661 6662 6663 6664 6665 6666 6667 6668 6669 6670 6671 6672 6673 6674 6675 6676 6677 6678 6679 6680 6681 6682 6683 6684 6685 6686 6687 6688 6689 6690 6691 6692 6693 6694 6695 6696 6697 6698 6699 6700 6701 6702 6703 6704 6705 6706 6707 6708 6709 6710 6711 6712 6713 6714 6715 6716 6717 6718 6719 6720 6721 6722 6723 6724 6725 6726 6727 6728 6729 6730 6731 6732 6733 6734 6735 6736 6737 6738 6739 6740 6741 6742 6743 6744 6745 6746 6747 6748 6749 6750 6751 6752 6753 6754 6755 6756 6757 6758 6759 6760 6761 6762 6763 6764 6765 6766 6767 6768 6769 6770 6771 6772 6773 6774 6775 6776 6777 6778 6779 6780 6781 6782 6783 6784 6785 6786 6787 6788 6789 6790 6791 6792 6793 6794 6795 6796 6797 6798 6799 6800 6801 6802 6803 6804 6805 6806 6807 6808 6809 6810 6811 6812 6813 6814 6815 6816 6817 6818 6819 6820 6821 6822 6823 6824 6825 6826 6827 6828 6829 6830 6831 6832 6833 6834 6835 6836 6837 6838 6839 6840 6841 6842 6843 6844 6845 6846 6847 6848 6849 6850 6851 6852 6853 6854 6855 6856 6857 6858 6859 6860 6861 6862 6863 6864 6865 6866 6867 6868 6869 6870 6871 6872 6873 6874 6875 6876 6877 6878 6879 6880 6881 6882 6883 6884 6885 6886 6887 6888 6889 6890 6891 6892 6893 6894 6895 6896 6897 6898 6899 6900 6901 6902 6903 6904 6905 6906 6907 6908 6909 6910 6911 6912 6913 6914 6915 6916 6917 6918 6919 6920 6921 6922 6923 6924 6925 6926 6927 6928 6929 6930 6931 6932 6933 6934 6935 6936 6937 6938 6939 6940 6941 6942 6943 6944 6945 6946 6947 6948 6949 6950 6951 6952 6953 6954 6955 6956 6957 6958 6959 6960 6961 6962 6963 6964 6965 6966 6967 6968 6969 6970 6971 6972 6973 6974 6975 6976 6977 6978 6979 6980 6981 6982 6983 6984 6985 6986 6987 6988 6989 6990 6991 6992 6993 6994 6995 6996 6997 6998 6999 7000 7001 7002 7003 7004 7005 7006 7007 7008 7009 7010 7011 7012 7013 7014 7015 7016 7017 7018 7019 7020 7021 7022 7023 7024 7025 7026 7027 7028 7029 7030 7031 7032 7033 7034 7035 7036 7037 7038 7039 7040 7041 7042 7043 7044 7045 7046 7047 7048 7049 7050 7051 7052 7053 7054 7055 7056 7057 7058 7059 7060 7061 7062 7063 7064 7065 7066 7067 7068 7069 7070 7071 7072 7073 7074 7075 7076 7077 7078 7079 7080 7081 7082 7083 7084 7085 7086 7087 7088 7089 7090 7091 7092 7093 7094 7095 7096 7097 7098 7099 7100 7101 7102 7103 7104 7105 7106 7107 7108 7109 7110 7111 7112 7113 7114 7115 7116 7117 7118 7119 7120 7121 7122 7123 7124 7125 7126 7127 7128 7129 7130 7131 7132 7133 7134 7135 7136 7137 7138 7139 7140 7141 7142 7143 7144 7145 7146 7147 7148 7149 7150 7151 7152 7153 7154 7155 7156 7157 7158 7159 7160 7161 7162 7163 7164 7165 7166 7167 7168 7169 7170 7171 7172 7173 7174 7175 7176 7177 7178 7179 7180 7181 7182 7183 7184 7185 7186 7187 7188 7189 7190 7191 7192 7193 7194 7195 7196 7197 7198 7199 7200 7201 7202 7203 7204 7205 7206 7207 7208 7209 7210 7211 7212 7213 7214 7215 7216 7217 7218 7219 7220 7221 7222 7223 7224 7225 7226 7227 7228 7229 7230 7231 7232 7233 7234 7235 7236 7237 7238 7239 7240 7241 7242 7243 7244 7245 7246 7247 7248 7249 7250 7251 7252 7253 7254 7255 7256 7257 7258 7259 7260 7261 7262 7263 7264 7265 7266 7267 7268 7269 7270 7271 7272 7273 7274 7275 7276 7277 7278 7279 7280 7281 7282 7283 7284 7285 7286 7287 7288 7289 7290 7291 7292 7293 7294 7295 7296 7297 7298 7299 7300 7301 7302 7303 7304 7305 7306 7307 7308 7309 7310 7311 7312 7313 7314 7315 7316 7317 7318 7319 7320 7321 7322 7323 7324 7325 7326 7327 7328 7329 7330 7331 7332 7333 7334 7335 7336 7337 7338 7339 7340 7341 7342 7343 7344 7345 7346 7347 7348 7349 7350 7351 7352 7353 7354 7355 7356 7357 7358 7359 7360 7361 7362 7363 7364 7365 7366 7367 7368 7369 7370 7371 7372 7373 7374 7375 7376 7377 7378 7379 7380 7381 7382 7383 7384 7385 7386 7387 7388 7389 7390 7391 7392 7393 7394 7395 7396 7397 7398 7399 7400 7401 7402 7403 7404 7405 7406 7407 7408 7409 7410 7411 7412 7413 7414 7415 7416 7417 7418 7419 7420 7421 7422 7423 7424 7425 7426 7427 7428 7429 7430 7431 7432 7433 7434 7435 7436 7437 7438 7439 7440 7441 7442 7443 7444 7445 7446 7447 7448 7449 7450 7451 7452 7453 7454 7455 7456 7457 7458 7459 7460 7461 7462 7463 7464 7465 7466 7467 7468 7469 7470 7471 7472 7473 7474 7475 7476 7477 7478 7479 7480 7481 7482 7483 7484 7485 7486 7487 7488 7489 7490 7491 7492 7493 7494 7495 7496 7497 7498 7499 7500 7501 7502 7503 7504 7505 7506 7507 7508 7509 7510 7511 7512 7513 7514 7515 7516 7517 7518 7519 7520 7521 7522 7523 7524 7525 7526 7527 7528 7529 7530 7531 7532 7533 7534 7535 7536 7537 7538 7539 7540 7541 7542 7543 7544 7545 7546 7547 7548 7549 7550 7551 7552 7553 7554 7555 7556 7557 7558 7559 7560 7561 7562 7563 7564 7565 7566 7567 7568 7569 7570 7571 7572 7573 7574 7575 7576 7577 7578 7579 7580 7581 7582 7583 7584 7585 7586 7587 7588 7589 7590 7591 7592 7593 7594 7595 7596 7597 7598 7599 7600 7601 7602 7603 7604 7605 7606 7607 7608 7609 7610 7611 7612 7613 7614 7615 7616 7617 7618 7619 7620 7621 7622 7623 7624 7625 7626 7627 7628 7629 7630 7631 7632 7633 7634 7635 7636 7637 7638 7639 7640 7641 7642 7643 7644 7645 7646 7647 7648 7649 7650 7651 7652 7653 7654 7655 7656 7657 7658 7659 7660 7661 7662 7663 7664 7665 7666 7667 7668 7669 7670 7671 7672 7673 7674 7675 7676 7677 7678 7679 7680 7681 7682 7683 7684 7685 7686 7687 7688 7689 7690 7691 7692 7693 7694 7695 7696 7697 7698 7699 7700 7701 7702 7703 7704 7705 7706 7707 7708 7709 7710 7711 7712 7713 7714 7715 7716 7717 7718 7719 7720 7721 7722 7723 7724 7725 7726 7727 7728 7729 7730 7731 7732 7733 7734 7735 7736 7737 7738 7739 7740 7741 7742 7743 7744 7745 7746 7747 7748 7749 7750 7751 7752 7753 7754 7755 7756 7757 7758 7759 7760 7761 7762 7763 7764 7765 7766 7767 7768 7769 7770 7771 7772 7773 7774 7775 7776 7777 7778 7779 7780 7781 7782 7783 7784 7785 7786 7787 7788 7789 7790 7791 7792 7793 7794 7795 7796 7797 7798 7799 7800 7801 7802 7803 7804 7805 7806 7807 7808 7809 7810 7811 7812 7813 7814 7815 7816 7817 7818 7819 7820 7821 7822 7823 7824 7825 7826 7827 7828 7829 7830 7831 7832 7833 7834 7835 7836 7837 7838 7839 7840 7841 7842 7843 7844 7845 7846 7847 7848 7849 7850 7851 7852 7853 7854 7855 7856 7857 7858 7859 7860 7861 7862 7863 7864 7865 7866 7867 7868 7869 7870 7871 7872 7873 7874 7875 7876 7877 7878 7879 7880 7881 7882 7883 7884 7885 7886 7887 7888 7889 7890 7891 7892 7893 7894 7895 7896 7897 7898 7899 7900 7901 7902 7903 7904 7905 7906 7907 7908 7909 7910 7911 7912 7913 7914 7915 7916 7917 7918 7919 7920 7921 7922 7923 7924 7925 7926 7927 7928 7929 7930 7931 7932 7933 7934 7935 7936 7937 7938 7939 7940 7941 7942 7943 7944 7945 7946 7947 7948 7949 7950 7951 7952 7953 7954 7955 7956 7957 7958 7959 7960 7961 7962 7963 7964 7965 7966 7967 7968 7969 7970 7971 7972 7973 7974 7975 7976 7977 7978 7979 7980 7981 7982 7983 7984 7985 7986 7987 7988 7989 7990 7991 7992 7993 7994 7995 7996 7997 7998 7999 8000 8001 8002 8003 8004 8005 8006 8007 8008 8009 8010 8011 8012 8013 8014 8015 8016 8017 8018 8019 8020 8021 8022 8023 8024 8025 8026 8027 8028 8029 8030 8031 8032 8033 8034 8035 8036 8037 8038 8039 8040 8041 8042 8043 8044 8045 8046 8047 8048 8049 8050 8051 8052 8053 8054 8055 8056 8057 8058 8059 8060 8061 8062 8063 8064 8065 8066 8067 8068 8069 8070 8071 8072 8073 8074 8075 8076 8077 8078 8079 8080 8081 8082 8083 8084 8085 8086 8087 8088 8089 8090 8091 8092 8093 8094 8095 8096 8097 8098 8099 8100 8101 8102 8103 8104 8105 8106 8107 8108 8109 8110 8111 8112 8113 8114 8115 8116 8117 8118 8119 8120 8121 8122 8123 8124 8125 8126 8127 8128 8129 8130 8131 8132 8133 8134 8135 8136 8137 8138 8139 8140 8141 8142 8143 8144 8145 8146 8147 8148 8149 8150 8151 8152 8153 8154 8155 8156 8157 8158 8159 8160 8161 8162 8163 8164 8165 8166 8167 8168 8169 8170 8171 8172 8173 8174 8175 8176 8177 8178 8179 8180 8181 8182 8183 8184 8185 8186 8187 8188 8189 8190 8191 8192 8193 8194 8195 8196 8197 8198 8199 8200 8201 8202 8203 8204 8205 8206 8207 8208 8209 8210 8211 8212 8213 8214 8215 8216 8217 8218 8219 8220 8221 8222 8223 8224 8225 8226 8227 8228 8229 8230 8231 8232 8233 8234 8235 8236 8237 8238 8239 8240 8241 8242 8243 8244 8245 8246 8247 8248 8249 8250 8251 8252 8253 8254 8255 8256 8257 8258 8259 8260 8261 8262 8263 8264 8265 8266 8267 8268 8269 8270 8271 8272 8273 8274 8275 8276 8277 8278 8279 8280 8281 8282 8283 8284 8285 8286 8287 8288 8289 8290 8291 8292 8293 8294 8295 8296 8297 8298 8299 8300 8301 8302 8303 8304 8305 8306 8307 8308 8309 8310 8311 8312 8313 8314 8315 8316 8317 8318 8319 8320 8321 8322 8323 8324 8325 8326 8327 8328 8329 8330 8331 8332 8333 8334 8335 8336 8337 8338 8339 8340 8341 8342 8343 8344 8345 8346 8347 8348 8349 8350 8351 8352 8353 8354 8355 8356 8357 8358 8359 8360 8361 8362 8363 8364 8365 8366 8367 8368 8369 8370 8371 8372 8373 8374 8375 8376 8377 8378 8379 8380 8381 8382 8383 8384 8385 8386 8387 8388 8389 8390 8391 8392 8393 8394 8395 8396 8397 8398 8399 8400 8401 8402 8403 8404 8405 8406 8407 8408 8409 8410 8411 8412 8413 8414 8415 8416 8417 8418 8419 8420 8421 8422 8423 8424 8425 8426 8427 8428 8429 8430 8431 8432 8433 8434 8435 8436 8437 8438 8439 8440 8441 8442 8443 8444 8445 8446 8447 8448 8449 8450 8451 8452 8453 8454 8455 8456 8457 8458 8459 8460 8461 8462 8463 8464 8465 8466 8467 8468 8469 8470 8471 8472 8473 8474 8475 8476 8477 8478 8479 8480 8481 8482 8483 8484 8485 8486 8487 8488 8489 8490 8491 8492 8493 8494 8495 8496 8497 8498 8499 8500 8501 8502 8503 8504 8505 8506 8507 8508 8509 8510 8511 8512 8513 8514 8515 8516 8517 8518 8519 8520 8521 8522 8523 8524 8525 8526 8527 8528 8529 8530 8531 8532 8533 8534 8535 8536 8537 8538 8539 8540 8541 8542 8543 8544 8545 8546 8547 8548 8549 8550 8551 8552 8553 8554 8555 8556 8557 8558 8559 8560 8561 8562 8563 8564 8565 8566 8567 8568 8569 8570 8571 8572 8573 8574 8575 8576 8577 8578 8579 8580 8581 8582 8583 8584 8585 8586 8587 8588 8589 8590 8591 8592 8593 8594 8595 8596 8597 8598 8599 8600 8601 8602 8603 8604 8605 8606 8607 8608 8609 8610 8611 8612 8613 8614 8615 8616 8617 8618 8619 8620 8621 8622 8623 8624 8625 8626 8627 8628 8629 8630 8631 8632 8633 8634 8635 8636 8637 8638 8639 8640 8641 8642 8643 8644 8645 8646 8647 8648 8649 8650 8651 8652 8653 8654 8655 8656 8657 8658 8659 8660 8661 8662 8663 8664 8665 8666 8667 8668 8669 8670 8671 8672 8673 8674 8675 8676 8677 8678 8679 8680 8681 8682 8683 8684 8685 8686 8687 8688 8689 8690 8691 8692 8693 8694 8695 8696 8697 8698 8699 8700 8701 8702 8703 8704 8705 8706 8707 8708 8709 8710 8711 8712 8713 8714 8715 8716 8717 8718 8719 8720 8721 8722 8723 8724 8725 8726 8727 8728 8729 8730 8731 8732 8733 8734 8735 8736 8737 8738 8739 8740 8741 8742 8743 8744 8745 8746 8747 8748 8749 8750 8751 8752 8753 8754 8755 8756 8757 8758 8759 8760 8761 8762 8763 8764 8765 8766 8767 8768 8769 8770 8771 8772 8773 8774 8775 8776 8777 8778 8779 8780 8781 8782 8783 8784 8785 8786 8787 8788 8789 8790 8791 8792 8793 8794 8795 8796 8797 8798 8799 8800 8801 8802 8803 8804 8805 8806 8807 8808 8809 8810 8811 8812 8813 8814 8815 8816 8817 8818 8819 8820 8821 8822 8823 8824 8825 8826 8827 8828 8829 8830 8831 8832 8833 8834 8835 8836 8837 8838 8839 8840 8841 8842 8843 8844 8845 8846 8847 8848 8849 8850 8851 8852 8853 8854 8855 8856 8857 8858 8859 8860 8861 8862 8863 8864 8865 8866 8867 8868 8869 8870 8871 8872 8873 8874 8875 8876 8877 8878 8879 8880 8881 8882 8883 8884 8885 8886 8887 8888 8889 8890 8891 8892 8893 8894 8895 8896 8897 8898 8899 8900 8901 8902 8903 8904 8905 8906 8907 8908 8909 8910 8911 8912 8913 8914 8915 8916 8917 8918 8919 8920 8921 8922 8923 8924 8925 8926 8927 8928 8929 8930 8931 8932 8933 8934 8935 8936 8937 8938 8939 8940 8941 8942 8943 8944 8945 8946 8947 8948 8949 8950 8951 8952 8953 8954 8955 8956 8957 8958 8959 8960 8961 8962 8963 8964 8965 8966 8967 8968 8969 8970 8971 8972 8973 8974 8975 8976 8977 8978 8979 8980 8981 8982 8983 8984 8985 8986 8987 8988 8989 8990 8991 8992 8993 8994 8995 8996 8997 8998 8999 9000 9001 9002 9003 9004 9005 9006 9007 9008 9009 9010 9011 9012 9013 9014 9015 9016 9017 9018 9019 9020 9021 9022 9023 9024 9025 9026 9027 9028 9029 9030 9031 9032 9033 9034 9035 9036 9037 9038 9039 9040 9041 9042 9043 9044 9045 9046 9047 9048 9049 9050 9051 9052 9053 9054 9055 9056 9057 9058 9059 9060 9061 9062 9063 9064 9065 9066 9067 9068 9069 9070 9071 9072 9073 9074 9075 9076 9077 9078 9079 9080 9081 9082 9083 9084 9085 9086 9087 9088 9089 9090 9091 9092 9093 9094 9095 9096 9097 9098 9099 9100 9101 9102 9103 9104 9105 9106 9107 9108 9109 9110 9111 9112 9113 9114 9115 9116 9117 9118 9119 9120 9121 9122 9123 9124 9125 9126 9127 9128 9129 9130 9131 9132 9133 9134 9135 9136 9137 9138 9139 9140 9141 9142 9143 9144 9145 9146 9147 9148 9149 9150 9151 9152 9153 9154 9155 9156 9157 9158 9159 9160 9161 9162 9163 9164 9165 9166 9167 9168 9169 9170 9171 9172 9173 9174 9175 9176 9177 9178 9179 9180 9181 9182 9183 9184 9185 9186 9187 9188 9189 9190 9191 9192 9193 9194 9195 9196 9197 9198 9199 9200 9201 9202 9203 9204 9205 9206 9207 9208 9209 9210 9211 9212 9213 9214 9215 9216 9217 9218 9219 9220 9221 9222 9223 9224 9225 9226 9227 9228 9229 9230 9231 9232 9233 9234 9235 9236 9237 9238 9239 9240 9241 9242 9243 9244 9245 9246 9247 9248 9249 9250 9251 9252 9253 9254 9255 9256 9257 9258 9259 9260 9261 9262 9263 9264 9265 9266 9267 9268 9269 9270 9271 9272 9273 9274 9275 9276 9277 9278 9279 9280 9281 9282 9283 9284 9285 9286 9287 9288 9289 9290 9291 9292 9293 9294 9295 9296 9297 9298 9299 9300 9301 9302 9303 9304 9305 9306 9307 9308 9309 9310 9311 9312 9313 9314 9315 9316 9317 9318 9319 9320 9321 9322 9323 9324 9325 9326 9327 9328 9329 9330 9331 9332 9333 9334 9335 9336 9337 9338 9339 9340 9341 9342 9343 9344 9345 9346 9347 9348 9349 9350 9351 9352 9353 9354 9355 9356 9357 9358 9359 9360 9361 9362 9363 9364 9365 9366 9367 9368 9369 9370 9371 9372 9373 9374 9375 9376 9377 9378 9379 9380 9381 9382 9383 9384 9385 9386 9387 9388 9389 9390 9391 9392 9393 9394 9395 9396 9397 9398 9399 9400 9401 9402 9403 9404 9405 9406 9407 9408 9409 9410 9411 9412 9413 9414 9415 9416 9417 9418 9419 9420 9421 9422 9423 9424 9425 9426 9427 9428 9429 9430 9431 9432 9433 9434 9435 9436 9437 9438 9439 9440 9441 9442 9443 9444 9445 9446 9447 9448 9449 9450 9451 9452 9453 9454 9455 9456 9457 9458 9459 9460 9461 9462 9463 9464 9465 9466 9467 9468 9469 9470 9471 9472 9473 9474 9475 9476 9477 9478 9479 9480 9481 9482 9483 9484 9485 9486 9487 9488 9489 9490 9491 9492 9493 9494 9495 9496 9497 9498 9499 9500 9501 9502 9503 9504 9505 9506 9507 9508 9509 9510 9511 9512 9513 9514 9515 9516 9517 9518 9519 9520 9521 9522 9523 9524 9525 9526 9527 9528 9529 9530 9531 9532 9533 9534 9535 9536 9537 9538 9539 9540 9541 9542 9543 9544 9545 9546 9547 9548 9549 9550 9551 9552 9553 9554 9555 9556 9557 9558 9559 9560 9561 9562 9563 9564 9565 9566 9567 9568 9569 9570 9571 9572 9573 9574 9575 9576 9577 9578 9579 9580 9581 9582 9583 9584 9585 9586 9587 9588 9589 9590 9591 9592 9593 9594 9595 9596 9597 9598 9599 9600 9601 9602 9603 9604 9605 9606 9607 9608 9609 9610 9611 9612 9613 9614 9615 9616 9617 9618 9619 9620 9621 9622 9623 9624 9625 9626 9627 9628 9629 9630 9631 9632 9633 9634 9635 9636 9637 9638 9639 9640 9641 9642 9643 9644 9645 9646 9647 9648 9649 9650 9651 9652 9653 9654 9655 9656 9657 9658 9659 9660 9661 9662 9663 9664 9665 9666 9667 9668 9669 9670 9671 9672 9673 9674 9675 9676 9677 9678 9679 9680 9681 9682 9683 9684 9685 9686 9687 9688 9689 9690 9691 9692 9693 9694 9695 9696 9697 9698 9699 9700 9701 9702 9703 9704 9705 9706 9707 9708 9709 9710 9711 9712 9713 9714 9715 9716 9717 9718 9719 9720 9721 9722 9723 9724 9725 9726 9727 9728 9729 9730 9731 9732 9733 9734 9735 9736 9737 9738 9739 9740 9741 9742 9743 9744 9745 9746 9747 9748 9749 9750 9751 9752 9753 9754 9755 9756 9757 9758 9759 9760 9761 9762 9763 9764 9765 9766 9767 9768 9769 9770 9771 9772 9773 9774 9775 9776 9777 9778 9779 9780 9781 9782 9783 9784 9785 9786 9787 9788 9789 9790 9791 9792 9793 9794 9795 9796 9797 9798 9799 9800 9801 9802 9803 9804 9805 9806 9807 9808 9809 9810 9811 9812 9813 9814 9815 9816 9817 9818 9819 9820 9821 9822 9823 9824 9825 9826 9827 9828 9829 9830 9831 9832 9833 9834 9835 9836 9837 9838 9839 9840 9841 9842 9843 9844 9845 9846 9847 9848 9849 9850 9851 9852 9853 9854 9855 9856 9857 9858 9859 9860 9861 9862 9863 9864 9865 9866 9867 9868 9869 9870 9871 9872 9873 9874 9875 9876 9877 9878 9879 9880 9881 9882 9883 9884 9885 9886 9887 9888 9889 9890 9891 9892 9893 9894 9895 9896 9897 9898 9899 9900 9901 9902 9903 9904 9905 9906 9907 9908 9909 9910 9911 9912 9913 9914 9915 9916 9917 9918 9919 9920 9921 9922 9923 9924 9925 9926 9927 9928 9929 9930 9931 9932 9933 9934 9935 9936 9937 9938 9939 9940 9941 9942 9943 9944 9945 9946 9947 9948 9949 9950 9951 9952 9953 9954 9955 9956 9957 9958 9959 9960 9961 9962 9963 9964 9965 9966 9967 9968 9969 9970 9971 9972 9973 9974 9975 9976 9977 9978 9979 9980 9981 9982 9983 9984 9985 9986 9987 9988 9989 9990 9991 9992 9993 9994 9995 9996 9997 9998 9999 10000 10001 10002 10003 10004 10005 10006 10007 10008 10009 10010 10011 10012 10013 10014 10015 10016 10017 10018 10019 10020 10021 10022 10023 10024 10025 10026 10027 10028 10029 10030 10031 10032 10033 10034 10035 10036 10037 10038 10039 10040 10041 10042 10043 10044 10045 10046 10047 10048 10049 10050 10051 10052 10053 10054 10055 10056 10057 10058 10059 10060 10061 10062 10063 10064 10065 10066 10067 10068 10069 10070 10071 10072 10073 10074 10075 10076 10077 10078 10079 10080 10081 10082 10083 10084 10085 10086 10087 10088 10089 10090 10091 10092 10093 10094 10095 10096 10097 10098 10099 10100 10101 10102 10103 10104 10105 10106 10107 10108 10109 10110 10111 10112 10113 10114 10115 10116 10117 10118 10119 10120 10121 10122 10123 10124 10125 10126 10127 10128 10129 10130 10131 10132 10133 10134 10135 10136 10137 10138 10139 10140 10141 10142 10143 10144 10145 10146 10147 10148 10149 10150 10151 10152 10153 10154 10155 10156 10157 10158 10159 10160 10161 10162 10163 10164 10165 10166 10167 10168 10169 10170 10171 10172 10173 10174 10175 10176 10177 10178 10179 10180 10181 10182 10183 10184 10185 10186 10187 10188 10189 10190 10191 10192 10193 10194 10195 10196 10197 10198 10199 10200 10201 10202 10203 10204 10205 10206 10207 10208 10209 10210 10211 10212 10213 10214 10215 10216 10217 10218 10219 10220 10221 10222 10223 10224 10225 10226 10227 10228 10229 10230 10231 10232 10233 10234 10235 10236 10237 10238 10239 10240 10241 10242 10243 10244 10245 10246 10247 10248 10249 10250 10251 10252 10253 10254 10255 10256 10257 10258 10259 10260 10261 10262 10263 10264 10265 10266 10267 10268 10269 10270 10271 10272 10273 10274 10275 10276 10277 10278 10279 10280 10281 10282 10283 10284 10285 10286 10287 10288 10289 10290 10291 10292 10293 10294 10295 10296 10297 10298 10299 10300 10301 10302 10303 10304 10305 10306 10307 10308 10309 10310 10311 10312 10313 10314 10315 10316 10317 10318 10319 10320 10321 10322 10323 10324 10325 10326 10327 10328 10329 10330 10331 10332 10333 10334 10335 10336 10337 10338 10339 10340 10341 10342 10343 10344 10345 10346 10347 10348 10349 10350 10351 10352 10353 10354 10355 10356 10357 10358 10359 10360 10361 10362 10363 10364 10365 10366 10367 10368 10369 10370 10371 10372 10373 10374 10375 10376 10377 10378 10379 10380 10381 10382 10383 10384 10385 10386 10387 10388 10389 10390 10391 10392 10393 10394 10395 10396 10397 10398 10399 10400 10401 10402 10403 10404 10405 10406 10407 10408 10409 10410 10411 10412 10413 10414 10415 10416 10417 10418 10419 10420 10421 10422 10423 10424 10425 10426 10427 10428 10429 10430 10431 10432 10433 10434 10435 10436 10437 10438 10439 10440 10441 10442 10443 10444 10445 10446 10447 10448 10449 10450 10451 10452 10453 10454 10455 10456 10457 10458 10459 10460 10461 10462 10463 10464 10465 10466 10467 10468 10469 10470 10471 10472 10473 10474 10475 10476 10477 10478 10479 10480 10481 10482 10483 10484 10485 10486 10487 10488 10489 10490 10491 10492 10493 10494 10495 10496 10497 10498 10499 10500 10501 10502 10503 10504 10505 10506 10507 10508 10509 10510 10511 10512 10513 10514 10515 10516 10517 10518 10519 10520 10521 10522 10523 10524 10525 10526 10527 10528 10529 10530 10531 10532 10533 10534 10535 10536 10537 10538 10539 10540 10541 10542 10543 10544 10545 10546 10547 10548 10549 10550 10551 10552 10553 10554 10555 10556 10557 10558 10559 10560 10561 10562 10563 10564 10565 10566 10567 10568 10569 10570 10571 10572 10573 10574 10575 10576 10577 10578 10579 10580 10581 10582 10583 10584 10585 10586 10587 10588 10589 10590 10591 10592 10593 10594 10595 10596 10597 10598 10599 10600 10601 10602 10603 10604 10605 10606 10607 10608 10609 10610 10611 10612 10613 10614 10615 10616 10617 10618 10619 10620 10621 10622 10623 10624 10625 10626 10627 10628 10629 10630 10631 10632 10633 10634 10635 10636 10637 10638 10639 10640 10641 10642 10643 10644 10645 10646 10647 10648 10649 10650 10651 10652 10653 10654 10655 10656 10657 10658 10659 10660 10661 10662 10663 10664 10665 10666 10667 10668 10669 10670 10671 10672 10673 10674 10675 10676 10677 10678 10679 10680 10681 10682 10683 10684 10685 10686 10687 10688 10689 10690 10691 10692 10693 10694 10695 10696 10697 10698 10699 10700 10701 10702 10703 10704 10705 10706 10707 10708 10709 10710 10711 10712 10713 10714 10715 10716 10717 10718 10719 10720 10721 10722 10723 10724 10725 10726 10727 10728 10729 10730 10731 10732 10733 10734 10735 10736 10737 10738 10739 10740 10741 10742 10743 10744 10745 10746 10747 10748 10749 10750 10751 10752 10753 10754 10755 10756 10757 10758 10759 10760 10761 10762 10763 10764 10765 10766 10767 10768 10769 10770 10771 10772 10773 10774 10775 10776 10777 10778 10779 10780 10781 10782 10783 10784 10785 10786 10787 10788 10789 10790 10791 10792 10793 10794 10795 10796 10797 10798 10799 10800 10801 10802 10803 10804 10805 10806 10807 10808 10809 10810 10811 10812 10813 10814 10815 10816 10817 10818 10819 10820 10821 10822 10823 10824 10825 10826 10827 10828 10829 10830 10831 10832 10833 10834 10835 10836 10837 10838 10839 10840 10841 10842 10843 10844 10845 10846 10847 10848 10849 10850 10851 10852 10853 10854 10855 10856 10857 10858 10859 10860 10861 10862 10863 10864 10865 10866 10867 10868 10869 10870 10871 10872 10873 10874 10875 10876 10877 10878 10879 10880 10881 10882 10883 10884 10885 10886 10887 10888 10889 10890 10891 10892 10893 10894 10895 10896 10897 10898 10899 10900 10901 10902 10903 10904 10905 10906 10907 10908 10909 10910 10911 10912 10913 10914 10915 10916 10917 10918 10919 10920 10921 10922 10923 10924 10925 10926 10927 10928 10929 10930 10931 10932 10933 10934 10935 10936 10937 10938 10939 10940 10941 10942 10943 10944 10945 10946 10947 10948 10949 10950 10951 10952 10953 10954 10955 10956 10957 10958 10959 10960 10961 10962 10963 10964 10965 10966 10967 10968 10969 10970 10971 10972 10973 10974 10975 10976 10977 10978 10979 10980 10981 10982 10983 10984 10985 10986 10987 10988 10989 10990 10991 10992 10993 10994 10995 10996 10997 10998 10999 11000 11001 11002 11003 11004 11005 11006 11007 11008 11009 11010 11011 11012 11013 11014 11015 11016 11017 11018 11019 11020 11021 11022 11023 11024 11025 11026 11027 11028 11029 11030 11031 11032 11033 11034 11035 11036 11037 11038 11039 11040 11041 11042 11043 11044 11045 11046 11047 11048 11049 11050 11051 11052 11053 11054 11055 11056 11057 11058 11059 11060 11061 11062 11063 11064 11065 11066 11067 11068 11069 11070 11071 11072 11073 11074 11075 11076 11077 11078 11079 11080 11081 11082 11083 11084 11085 11086 11087 11088 11089 11090 11091 11092 11093 11094 11095 11096 11097 11098 11099 11100 11101 11102 11103 11104 11105 11106 11107 11108 11109 11110 11111 11112 11113 11114 11115 11116 11117 11118 11119 11120 11121 11122 11123 11124 11125 11126 11127 11128 11129 11130 11131 11132 11133 11134 11135 11136 11137 11138 11139 11140 11141 11142 11143 11144 11145 11146 11147 11148 11149 11150 11151 11152 11153 11154 11155 11156 11157 11158 11159 11160 11161 11162 11163 11164 11165 11166 11167 11168 11169 11170 11171 11172 11173 11174 11175 11176 11177 11178 11179 11180 11181 11182 11183 11184 11185 11186 11187 11188 11189 11190 11191 11192 11193 11194 11195 11196 11197 11198 11199 11200 11201 11202 11203 11204 11205 11206 11207 11208 11209 11210 11211 11212 11213 11214 11215 11216 11217 11218 11219 11220 11221 11222 11223 11224 11225 11226 11227 11228 11229 11230 11231 11232 11233 11234 11235 11236 11237 11238 11239 11240 11241 11242 11243 11244 11245 11246 11247 11248 11249 11250 11251 11252 11253 11254 11255 11256 11257 11258 11259 11260 11261 11262 11263 11264 11265 11266 11267 11268 11269 11270 11271 11272 11273 11274 11275 11276 11277 11278 11279 11280 11281 11282 11283 11284 11285 11286 11287 11288 11289 11290 11291 11292 11293 11294 11295 11296 11297 11298 11299 11300 11301 11302 11303 11304 11305 11306 11307 11308 11309 11310 11311 11312 11313 11314 11315 11316 11317 11318 11319 11320 11321 11322 11323 11324 11325 11326 11327 11328 11329 11330 11331 11332 11333 11334 11335 11336 11337 11338 11339 11340 11341 11342 11343 11344 11345 11346 11347 11348 11349 11350 11351 11352 11353 11354 11355 11356 11357 11358 11359 11360 11361 11362 11363 11364 11365 11366 11367 11368 11369 11370 11371 11372 11373 11374 11375 11376 11377 11378 11379 11380 11381 11382 11383 11384 11385 11386 11387 11388 11389 11390 11391 11392 11393 11394 11395 11396 11397 11398 11399 11400 11401 11402 11403 11404 11405 11406 11407 11408 11409 11410 11411 11412 11413 11414 11415 11416 11417 11418 11419 11420 11421 11422 11423 11424 11425 11426 11427 11428 11429 11430 11431 11432 11433 11434 11435 11436 11437 11438 11439 11440 11441 11442 11443 11444 11445 11446 11447 11448 11449 11450 11451 11452 11453 11454 11455 11456 11457 11458 11459 11460 11461 11462 11463 11464 11465 11466 11467 11468 11469 11470 11471 11472 11473 11474 11475 11476 11477 11478 11479 11480 11481 11482 11483 11484 11485 11486 11487 11488 11489 11490 11491 11492 11493 11494 11495 11496 11497 11498 11499 11500 11501 11502 11503 11504 11505 11506 11507 11508 11509 11510 11511 11512 11513 11514 11515 11516 11517 11518 11519 11520 11521 11522 11523 11524 11525 11526 11527 11528 11529 11530 11531 11532 11533 11534 11535 11536 11537 11538 11539 11540 11541 11542 11543 11544 11545 11546 11547 11548 11549 11550 11551 11552 11553 11554 11555 11556 11557 11558 11559 11560 11561 11562 11563 11564 11565 11566 11567 11568 11569 11570 11571 11572 11573 11574 11575 11576 11577 11578 11579 11580 11581 11582 11583 11584 11585 11586 11587 11588 11589 11590 11591 11592 11593 11594 11595 11596 11597 11598 11599 11600 11601 11602 11603 11604 11605 11606 11607 11608 11609 11610 11611 11612 11613 11614 11615 11616 11617 11618 11619 11620 11621 11622 11623 11624 11625 11626 11627 11628 11629 11630 11631 11632 11633 11634 11635 11636 11637 11638 11639 11640 11641 11642 11643 11644 11645 11646 11647 11648 11649 11650 11651 11652 11653 11654 11655 11656 11657 11658 11659 11660 11661 11662 11663 11664 11665 11666 11667 11668 11669 11670 11671 11672 11673 11674 11675 11676 11677 11678 11679 11680 11681 11682 11683 11684 11685 11686 11687 11688 11689 11690 11691 11692 11693 11694 11695 11696 11697 11698 11699 11700 11701 11702 11703 11704 11705 11706 11707 11708 11709 11710 11711 11712 11713 11714 11715 11716 11717 11718 11719 11720 11721 11722 11723 11724 11725 11726 11727 11728 11729 11730 11731 11732 11733 11734 11735 11736 11737 11738 11739 11740 11741 11742 11743 11744 11745 11746 11747 11748 11749 11750 11751 11752 11753 11754 11755 11756 11757 11758 11759 11760 11761 11762 11763 11764 11765 11766 11767 11768 11769 11770 11771 11772 11773 11774 11775 11776 11777 11778 11779 11780 11781 11782 11783 11784 11785 11786 11787 11788 11789 11790 11791 11792 11793 11794 11795 11796 11797 11798 11799 11800 11801 11802 11803 11804 11805 11806 11807 11808 11809 11810 11811 11812 11813 11814 11815 11816 11817 11818 11819 11820 11821 11822 11823 11824 11825 11826 11827 11828 11829 11830 11831 11832 11833 11834 11835 11836 11837 11838 11839 11840 11841 11842 11843 11844 11845 11846 11847 11848 11849 11850 11851 11852 11853 11854 11855 11856 11857 11858 11859 11860 11861 11862 11863 11864 11865 11866 11867 11868 11869 11870 11871 11872 11873 11874 11875 11876 11877 11878 11879 11880 11881 11882 11883 11884 11885 11886 11887 11888 11889 11890 11891 11892 11893 11894 11895 11896 11897 11898 11899 11900 11901 11902 11903 11904 11905 11906 11907 11908 11909 11910 11911 11912 11913 11914 11915 11916 11917 11918 11919 11920 11921 11922 11923 11924 11925 11926 11927 11928 11929 11930 11931 11932 11933 11934 11935 11936 11937 11938 11939 11940 11941 11942 11943 11944 11945 11946 11947 11948 11949 11950 11951 11952 11953 11954 11955 11956 11957 11958 11959 11960 11961 11962 11963 11964 11965 11966 11967 11968 11969 11970 11971 11972 11973 11974 11975 11976 11977 11978 11979 11980 11981 11982 11983 11984 11985 11986 11987 11988 11989 11990 11991 11992 11993 11994 11995 11996 11997 11998 11999 12000 12001 12002 12003 12004 12005 12006 12007 12008 12009 12010 12011 12012 12013 12014 12015 12016 12017 12018 12019 12020 12021 12022 12023 12024 12025 12026 12027 12028 12029 12030 12031 12032 12033 12034 12035 12036 12037 12038 12039 12040 12041 12042 12043 12044 12045 12046 12047 12048 12049 12050 12051 12052 12053 12054 12055 12056 12057 12058 12059 12060 12061 12062 12063 12064 12065 12066 12067 12068 12069 12070 12071 12072 12073 12074 12075 12076 12077 12078 12079 12080 12081 12082 12083 12084 12085 12086 12087 12088 12089 12090 12091 12092 12093 12094 12095 12096 12097 12098 12099 12100 12101 12102 12103 12104 12105 12106 12107 12108 12109 12110 12111 12112 12113 12114 12115 12116 12117 12118 12119 12120 12121 12122 12123 12124 12125 12126 12127 12128 12129 12130 12131 12132 12133 12134 12135 12136 12137 12138 12139 12140 12141 12142 12143 12144 12145 12146 12147 12148 12149 12150 12151 12152 12153 12154 12155 12156 12157 12158 12159 12160 12161 12162 12163 12164 12165 12166 12167 12168 12169 12170 12171 12172 12173 12174 12175 12176 12177 12178 12179 12180 12181 12182 12183 12184 12185 12186 12187 12188 12189 12190 12191 12192 12193 12194 12195 12196 12197 12198 12199 12200 12201 12202 12203 12204 12205 12206 12207 12208 12209 12210 12211 12212 12213 12214 12215 12216 12217 12218 12219 12220 12221 12222 12223 12224 12225 12226 12227 12228 12229 12230 12231 12232 12233 12234 12235 12236 12237 12238 12239 12240 12241 12242 12243 12244 12245 12246 12247 12248 12249 12250 12251 12252 12253 12254 12255 12256 12257 12258 12259 12260 12261 12262 12263 12264 12265 12266 12267 12268 12269 12270 12271 12272 12273 12274 12275 12276 12277 12278 12279 12280 12281 12282 12283 12284 12285 12286 12287 12288 12289 12290 12291 12292 12293 12294 12295 12296 12297 12298 12299 12300 12301 12302 12303 12304 12305 12306 12307 12308 12309 12310 12311 12312 12313 12314 12315 12316 12317 12318 12319 12320 12321 12322 12323 12324 12325 12326 12327 12328 12329 12330 12331 12332 12333 12334 12335 12336 12337 12338 12339 12340 12341 12342 12343 12344 12345 12346 12347 12348 12349 12350 12351 12352 12353 12354 12355 12356 12357 12358 12359 12360 12361 12362 12363 12364 12365 12366 12367 12368 12369 12370 12371 12372 12373 12374 12375 12376 12377 12378 12379 12380 12381 12382 12383 12384 12385 12386 12387 12388 12389 12390 12391 12392 12393 12394 12395 12396 12397 12398 12399 12400 12401 12402 12403 12404 12405 12406 12407 12408 12409 12410 12411 12412 12413 12414 12415 12416 12417 12418 12419 12420 12421 12422 12423 12424 12425 12426 12427 12428 12429 12430 12431 12432 12433 12434 12435 12436 12437 12438 12439 12440 12441 12442 12443 12444 12445 12446 12447 12448 12449 12450 12451 12452 12453 12454 12455 12456 12457 12458 12459 12460 12461 12462 12463 12464 12465 12466 12467 12468 12469 12470 12471 12472 12473 12474 12475 12476 12477 12478 12479 12480 12481 12482 12483 12484 12485 12486 12487 12488 12489 12490 12491 12492 12493 12494 12495 12496 12497 12498 12499 12500 12501 12502 12503 12504 12505 12506 12507 12508 12509 12510 12511 12512 12513 12514 12515 12516 12517 12518 12519 12520 12521 12522 12523 12524 12525 12526 12527 12528 12529 12530 12531 12532 12533 12534 12535 12536 12537 12538 12539 12540 12541 12542 12543 12544 12545 12546 12547 12548 12549 12550 12551 12552 12553 12554 12555 12556 12557 12558 12559 12560 12561 12562 12563 12564 12565 12566 12567 12568 12569 12570 12571 12572 12573 12574 12575 12576 12577 12578 12579 12580 12581 12582 12583 12584 12585 12586 12587 12588 12589 12590 12591 12592 12593 12594 12595 12596 12597 12598 12599 12600 12601 12602 12603 12604 12605 12606 12607 12608 12609 12610 12611 12612 12613 12614 12615 12616 12617 12618 12619 12620 12621 12622 12623 12624 12625 12626 12627 12628 12629 12630 12631 12632 12633 12634 12635 12636 12637 12638 12639 12640 12641 12642 12643 12644 12645 12646 12647 12648 12649 12650 12651 12652 12653 12654 12655 12656 12657 12658 12659 12660 12661 12662 12663 12664 12665 12666 12667 12668 12669 12670 12671 12672 12673 12674 12675 12676 12677 12678 12679 12680 12681 12682 12683 12684 12685 12686 12687 12688 12689 12690 12691 12692 12693 12694 12695 12696 12697 12698 12699 12700 12701 12702 12703 12704 12705 12706 12707 12708 12709 12710 12711 12712 12713 12714 12715 12716 12717 12718 12719 12720 12721 12722 12723 12724 12725 12726 12727 12728 12729 12730 12731 12732 12733 12734 12735 12736 12737 12738 12739 12740 12741 12742 12743 12744 12745 12746 12747 12748 12749 12750 12751 12752 12753 12754 12755 12756 12757 12758 12759 12760 12761 12762 12763 12764 12765 12766 12767 12768 12769 12770 12771 12772 12773 12774 12775 12776 12777 12778 12779 12780 12781 12782 12783 12784 12785 12786 12787 12788 12789 12790 12791 12792 12793 12794 12795 12796 12797 12798 12799 12800 12801 12802 12803 12804 12805 12806 12807 12808 12809 12810 12811 12812 12813 12814 12815 12816 12817 12818 12819 12820 12821 12822 12823 12824 12825 12826 12827 12828 12829 12830 12831 12832 12833 12834 12835 12836 12837 12838 12839 12840 12841 12842 12843 12844 12845 12846 12847 12848 12849 12850 12851 12852 12853 12854 12855 12856 12857 12858 12859 12860 12861 12862 12863 12864 12865 12866 12867 12868 12869 12870 12871 12872 12873 12874 12875 12876 12877 12878 12879 12880 12881 12882 12883 12884 12885 12886 12887 12888 12889 12890 12891 12892 12893 12894 12895 12896 12897 12898 12899 12900 12901 12902 12903 12904 12905 12906 12907 12908 12909 12910 12911 12912 12913 12914 12915 12916 12917 12918 12919 12920 12921 12922 12923 12924 12925 12926 12927 12928 12929 12930 12931 12932 12933 12934 12935 12936 12937 12938 12939 12940 12941 12942 12943 12944 12945 12946 12947 12948 12949 12950 12951 12952 12953 12954 12955 12956 12957 12958 12959 12960 12961 12962 12963 12964 12965 12966 12967 12968 12969 12970 12971 12972 12973 12974 12975 12976 12977 12978 12979 12980 12981 12982 12983 12984 12985 12986 12987 12988 12989 12990 12991 12992 12993 12994 12995 12996 12997 12998 12999 13000 13001 13002 13003 13004 13005 13006 13007 13008 13009 13010 13011 13012 13013 13014 13015 13016 13017 13018 13019 13020 13021 13022 13023 13024 13025 13026 13027 13028 13029 13030 13031 13032 13033 13034 13035 13036 13037 13038 13039 13040 13041 13042 13043 13044 13045 13046 13047 13048 13049 13050 13051 13052 13053 13054 13055 13056 13057 13058 13059 13060 13061 13062 13063 13064 13065 13066 13067 13068 13069 13070 13071 13072 13073 13074 13075 13076 13077 13078 13079 13080 13081 13082 13083 13084 13085 13086 13087 13088 13089 13090 13091 13092 13093 13094 13095 13096 13097 13098 13099 13100 13101 13102 13103 13104 13105 13106 13107 13108 13109 13110 13111 13112 13113 13114 13115 13116 13117 13118 13119 13120 13121 13122 13123 13124 13125 13126 13127 13128 13129 13130 13131 13132 13133 13134 13135 13136 13137 13138 13139 13140 13141 13142 13143 13144 13145 13146 13147 13148 13149 13150 13151 13152 13153 13154 13155 13156 13157 13158 13159 13160 13161 13162 13163 13164 13165 13166 13167 13168 13169 13170 13171 13172 13173 13174 13175 13176 13177 13178 13179 13180 13181 13182 13183 13184 13185 13186 13187 13188 13189 13190 13191 13192 13193 13194 13195 13196 13197 13198 13199 13200 13201 13202 13203 13204 13205 13206 13207 13208 13209 13210 13211 13212 13213 13214 13215 13216 13217 13218 13219 13220 13221 13222 13223 13224 13225 13226 13227 13228 13229 13230 13231 13232 13233 13234 13235 13236 13237 13238 13239 13240 13241 13242 13243 13244 13245 13246 13247 13248 13249 13250 13251 13252 13253 13254 13255 13256 13257 13258 13259 13260 13261 13262 13263 13264 13265 13266 13267 13268 13269 13270 13271 13272 13273 13274 13275 13276 13277 13278 13279 13280 13281 13282 13283 13284 13285 13286 13287 13288 13289 13290 13291 13292 13293 13294 13295 13296 13297 13298 13299 13300 13301 13302 13303 13304 13305 13306 13307 13308 13309 13310 13311 13312 13313 13314 13315 13316 13317 13318 13319 13320 13321 13322 13323 13324 13325 13326 13327 13328 13329 13330 13331 13332 13333 13334 13335 13336 13337 13338 13339 13340 13341 13342 13343 13344 13345 13346 13347 13348 13349 13350 13351 13352 13353 13354 13355 13356 13357 13358 13359 13360 13361 13362 13363 13364 13365 13366 13367 13368 13369 13370 13371 13372 13373 13374 13375 13376 13377 13378 13379 13380 13381 13382 13383 13384 13385 13386 13387 13388 13389 13390 13391 13392 13393 13394 13395 13396 13397 13398 13399 13400 13401 13402 13403 13404 13405 13406 13407 13408 13409 13410 13411 13412 13413 13414 13415 13416 13417 13418 13419 13420 13421 13422 13423 13424 13425 13426 13427 13428 13429 13430 13431 13432 13433 13434 13435 13436 13437 13438 13439 13440 13441 13442 13443 13444 13445 13446 13447 13448 13449 13450 13451 13452 13453 13454 13455 13456 13457 13458 13459 13460 13461 13462 13463 13464 13465 13466 13467 13468 13469 13470 13471 13472 13473 13474 13475 13476 13477 13478 13479 13480 13481 13482 13483 13484 13485 13486 13487 13488 13489 13490 13491 13492 13493 13494 13495 13496 13497 13498 13499 13500 13501 13502 13503 13504 13505 13506 13507 13508 13509 13510 13511 13512 13513 13514 13515 13516 13517 13518 13519 13520 13521 13522 13523 13524 13525 13526 13527 13528 13529 13530 13531 13532 13533 13534 13535 13536 13537 13538 13539 13540 13541 13542 13543 13544 13545 13546 13547 13548 13549 13550 13551 13552 13553 13554 13555 13556 13557 13558 13559 13560 13561 13562 13563 13564 13565 13566 13567 13568 13569 13570 13571 13572 13573 13574 13575 13576 13577 13578 13579 13580 13581 13582 13583 13584 13585 13586 13587 13588 13589 13590 13591 13592 13593 13594 13595 13596 13597 13598 13599 13600 13601 13602 13603 13604 13605 13606 13607 13608 13609 13610 13611 13612 13613 13614 13615 13616 13617 13618 13619 13620 13621 13622 13623 13624 13625 13626 13627 13628 13629 13630 13631 13632 13633 13634 13635 13636 13637 13638 13639 13640 13641 13642 13643 13644 13645 13646 13647 13648 13649 13650 13651 13652 13653 13654 13655 13656 13657 13658 13659 13660 13661 13662 13663 13664 13665 13666 13667 13668 13669 13670 13671 13672 13673 13674 13675 13676 13677 13678 13679 13680 13681 13682 13683 13684 13685 13686 13687 13688 13689 13690 13691 13692 13693 13694 13695 13696 13697 13698 13699 13700 13701 13702 13703 13704 13705 13706 13707 13708 13709 13710 13711 13712 13713 13714 13715 13716 13717 13718 13719 13720 13721 13722 13723 13724 13725 13726 13727 13728 13729 13730 13731 13732 13733 13734 13735 13736 13737 13738 13739 13740 13741 13742 13743 13744 13745 13746 13747 13748 13749 13750 13751 13752 13753 13754 13755 13756 13757 13758 13759 13760 13761 13762 13763 13764 13765 13766 13767 13768 13769 13770 13771 13772 13773 13774 13775 13776 13777 13778 13779 13780 13781 13782 13783 13784 13785 13786 13787 13788 13789 13790 13791 13792 13793 13794 13795 13796 13797 13798 13799 13800 13801 13802 13803 13804 13805 13806 13807 13808 13809 13810 13811 13812 13813 13814 13815 13816 13817 13818 13819 13820 13821 13822 13823 13824 13825 13826 13827 13828 13829 13830 13831 13832 13833 13834 13835 13836 13837 13838 13839 13840 13841 13842 13843 13844 13845 13846 13847 13848 13849 13850 13851 13852 13853 13854 13855 13856 13857 13858 13859 13860 13861 13862 13863 13864 13865 13866 13867 13868 13869 13870 13871 13872 13873 13874 13875 13876 13877 13878 13879 13880 13881 13882 13883 13884 13885 13886 13887 13888 13889 13890 13891 13892 13893 13894 13895 13896 13897 13898 13899 13900 13901 13902 13903 13904 13905 13906 13907 13908 13909 13910 13911 13912 13913 13914 13915 13916 13917 13918 13919 13920 13921 13922 13923 13924 13925 13926 13927 13928 13929 13930 13931 13932 13933 13934 13935 13936 13937 13938 13939 13940 13941 13942 13943 13944 13945 13946 13947 13948 13949 13950 13951 13952 13953 13954 13955 13956 13957 13958 13959 13960 13961 13962 13963 13964 13965 13966 13967 13968 13969 13970 13971 13972 13973 13974 13975 13976 13977 13978 13979 13980 13981 13982 13983 13984 13985 13986 13987 13988 13989 13990 13991 13992 13993 13994 13995 13996 13997 13998 13999 14000 14001 14002 14003 14004 14005 14006 14007 14008 14009 14010 14011 14012 14013 14014 14015 14016 14017 14018 14019 14020 14021 14022 14023 14024 14025 14026 14027 14028 14029 14030 14031 14032 14033 14034 14035 14036 14037 14038 14039 14040 14041 14042 14043 14044 14045 14046 14047 14048 14049 14050 14051 14052 14053 14054 14055 14056 14057 14058 14059 14060 14061 14062 14063 14064 14065 14066 14067 14068 14069 14070 14071 14072 14073 14074 14075 14076 14077 14078 14079 14080 14081 14082 14083 14084 14085 14086 14087 14088 14089 14090 14091 14092 14093 14094 14095 14096 14097 14098 14099 14100 14101 14102 14103 14104 14105 14106 14107 14108 14109 14110 14111 14112 14113 14114 14115 14116 14117 14118 14119 14120 14121 14122 14123 14124 14125 14126 14127 14128 14129 14130 14131 14132 14133 14134 14135 14136 14137 14138 14139 14140 14141 14142 14143 14144 14145 14146 14147 14148 14149 14150 14151 14152 14153 14154 14155 14156 14157 14158 14159 14160 14161 14162 14163 14164 14165 14166 14167 14168 14169 14170 14171 14172 14173 14174 14175 14176 14177 14178 14179 14180 14181 14182 14183 14184 14185 14186 14187 14188 14189 14190 14191 14192 14193 14194 14195 14196 14197 14198 14199 14200 14201 14202 14203 14204 14205 14206 14207 14208 14209 14210 14211 14212 14213 14214 14215 14216 14217 14218 14219 14220 14221 14222 14223 14224 14225 14226 14227 14228 14229 14230 14231 14232 14233 14234 14235 14236 14237 14238 14239 14240 14241 14242 14243 14244 14245 14246 14247 14248 14249 14250 14251 14252 14253 14254 14255 14256 14257 14258 14259 14260 14261 14262 14263 14264 14265 14266 14267 14268 14269 14270 14271 14272 14273 14274 14275 14276 14277 14278 14279 14280 14281 14282 14283 14284 14285 14286 14287 14288 14289 14290 14291 14292 14293 14294 14295 14296 14297 14298 14299 14300 14301 14302 14303 14304 14305 14306 14307 14308 14309 14310 14311 14312 14313 14314 14315 14316 14317 14318 14319 14320 14321 14322 14323 14324 14325 14326 14327 14328 14329 14330 14331 14332 14333 14334 14335 14336 14337 14338 14339 14340 14341 14342 14343 14344 14345 14346 14347 14348 14349 14350 14351 14352 14353 14354 14355 14356 14357 14358 14359 14360 14361 14362 14363 14364 14365 14366 14367 14368 14369 14370 14371 14372 14373 14374 14375 14376 14377 14378 14379 14380 14381 14382 14383 14384 14385 14386 14387 14388 14389 14390 14391 14392 14393 14394 14395 14396 14397 14398 14399 14400 14401 14402 14403 14404 14405 14406 14407 14408 14409 14410 14411 14412 14413 14414 14415 14416 14417 14418 14419 14420 14421 14422 14423 14424 14425 14426 14427 14428 14429 14430 14431 14432 14433 14434 14435 14436 14437 14438 14439 14440 14441 14442 14443 14444 14445 14446 14447 14448 14449 14450 14451 14452 14453 14454 14455 14456 14457 14458 14459 14460 14461 14462 14463 14464 14465 14466 14467 14468 14469 14470 14471 14472 14473 14474 14475 14476 14477 14478 14479 14480 14481 14482 14483 14484 14485 14486 14487 14488 14489 14490 14491 14492 14493 14494 14495 14496 14497 14498 14499 14500 14501 14502 14503 14504 14505 14506 14507 14508 14509 14510 14511 14512 14513 14514 14515 14516 14517 14518 14519 14520 14521 14522 14523 14524 14525 14526 14527 14528 14529 14530 14531 14532 14533 14534 14535 14536 14537 14538 14539 14540 14541 14542 14543 14544 14545 14546 14547 14548 14549 14550 14551 14552 14553 14554 14555 14556 14557 14558 14559 14560 14561 14562 14563 14564 14565 14566 14567 14568 14569 14570 14571 14572 14573 14574 14575 14576 14577 14578 14579 14580 14581 14582 14583 14584 14585 14586 14587 14588 14589 14590 14591 14592 14593 14594 14595 14596 14597 14598 14599 14600 14601 14602 14603 14604 14605 14606 14607 14608 14609 14610 14611 14612 14613 14614 14615 14616 14617 14618 14619 14620 14621 14622 14623 14624 14625 14626 14627 14628 14629 14630 14631 14632 14633 14634 14635 14636 14637 14638 14639 14640 14641 14642 14643 14644 14645 14646 14647 14648 14649 14650 14651 14652 14653 14654 14655 14656 14657 14658 14659 14660 14661 14662 14663 14664 14665 14666 14667 14668 14669 14670 14671 14672 14673 14674 14675 14676 14677 14678 14679 14680 14681 14682 14683 14684 14685 14686 14687 14688 14689 14690 14691 14692 14693 14694 14695 14696 14697 14698 14699 14700 14701 14702 14703 14704 14705 14706 14707 14708 14709 14710 14711 14712 14713 14714 14715 14716 14717 14718 14719 14720 14721 14722 14723 14724 14725 14726 14727 14728 14729 14730 14731 14732 14733 14734 14735 14736 14737 14738 14739 14740 14741 14742 14743 14744 14745 14746 14747 14748 14749 14750 14751 14752 14753 14754 14755 14756 14757 14758 14759 14760 14761 14762 14763 14764 14765 14766 14767 14768 14769 14770 14771 14772 14773 14774 14775 14776 14777 14778 14779 14780 14781 14782 14783 14784 14785 14786 14787 14788 14789 14790 14791 14792 14793 14794 14795 14796 14797 14798 14799 14800 14801 14802 14803 14804 14805 14806 14807 14808 14809 14810 14811 14812 14813 14814 14815 14816 14817 14818 14819 14820 14821 14822 14823 14824 14825 14826 14827 14828 14829 14830 14831 14832 14833 14834 14835 14836 14837 14838 14839 14840 14841 14842 14843 14844 14845 14846 14847 14848 14849 14850 14851 14852 14853 14854 14855 14856 14857 14858 14859 14860 14861 14862 14863 14864 14865 14866 14867 14868 14869 14870 14871 14872 14873 14874 14875 14876 14877 14878 14879 14880 14881 14882 14883 14884 14885 14886 14887 14888 14889 14890 14891 14892 14893 14894 14895 14896 14897 14898 14899 14900 14901 14902 14903 14904 14905 14906 14907 14908 14909 14910 14911 14912 14913 14914 14915 14916 14917 14918 14919 14920 14921 14922 14923 14924 14925 14926 14927 14928 14929 14930 14931 14932 14933 14934 14935 14936 14937 14938 14939 14940 14941 14942 14943 14944 14945 14946 14947 14948 14949 14950 14951 14952 14953 14954 14955 14956 14957 14958 14959 14960 14961 14962 14963 14964 14965 14966 14967 14968 14969 14970 14971 14972 14973 14974 14975 14976 14977 14978 14979 14980 14981 14982 14983 14984 14985 14986 14987 14988 14989 14990 14991 14992 14993 14994 14995 14996 14997 14998 14999 15000 15001 15002 15003 15004 15005 15006 15007 15008 15009 15010 15011 15012 15013 15014 15015 15016 15017 15018 15019 15020 15021 15022 15023 15024 15025 15026 15027 15028 15029 15030 15031 15032 15033 15034 15035 15036 15037 15038 15039 15040 15041 15042 15043 15044 15045 15046 15047 15048 15049 15050 15051 15052 15053 15054 15055 15056 15057 15058 15059 15060 15061 15062 15063 15064 15065 15066 15067 15068 15069 15070 15071 15072 15073 15074 15075 15076 15077 15078 15079 15080 15081 15082 15083 15084 15085 15086 15087 15088 15089 15090 15091 15092 15093 15094 15095 15096 15097 15098 15099 15100 15101 15102 15103 15104 15105 15106 15107 15108 15109 15110 15111 15112 15113 15114 15115 15116 15117 15118 15119 15120 15121 15122 15123 15124 15125 15126 15127 15128 15129 15130 15131 15132 15133 15134 15135 15136 15137 15138 15139 15140 15141 15142 15143 15144 15145 15146 15147 15148 15149 15150 15151 15152 15153 15154 15155 15156 15157 15158 15159 15160 15161 15162 15163 15164 15165 15166 15167 15168 15169 15170 15171 15172 15173 15174 15175 15176 15177 15178 15179 15180 15181 15182 15183 15184 15185 15186 15187 15188 15189 15190 15191 15192 15193 15194 15195 15196 15197 15198 15199 15200 15201 15202 15203 15204 15205 15206 15207 15208 15209 15210 15211 15212 15213 15214 15215 15216 15217 15218 15219 15220 15221 15222 15223 15224 15225 15226 15227 15228 15229 15230 15231 15232 15233 15234 15235 15236 15237 15238 15239 15240 15241 15242 15243 15244 15245 15246 15247 15248 15249 15250 15251 15252 15253 15254 15255 15256 15257 15258 15259 15260 15261 15262 15263 15264 15265 15266 15267 15268 15269 15270 15271 15272 15273 15274 15275 15276 15277 15278 15279 15280 15281 15282 15283 15284 15285 15286 15287 15288 15289 15290 15291 15292 15293 15294 15295 15296 15297 15298 15299 15300 15301 15302 15303 15304 15305 15306 15307 15308 15309 15310 15311 15312 15313 15314 15315 15316 15317 15318 15319 15320 15321 15322 15323 15324 15325 15326 15327 15328 15329 15330 15331 15332 15333 15334 15335 15336 15337 15338 15339 15340 15341 15342 15343 15344 15345 15346 15347 15348 15349 15350 15351 15352 15353 15354 15355 15356 15357 15358 15359 15360 15361 15362 15363 15364 15365 15366 15367 15368 15369 15370 15371 15372 15373 15374 15375 15376 15377 15378 15379 15380 15381 15382 15383 15384 15385 15386 15387 15388 15389 15390 15391 15392 15393 15394 15395 15396 15397 15398 15399 15400 15401 15402 15403 15404 15405 15406 15407 15408 15409 15410 15411 15412 15413 15414 15415 15416 15417 15418 15419 15420 15421 15422 15423 15424 15425 15426 15427 15428 15429 15430 15431 15432 15433 15434 15435 15436 15437 15438 15439 15440 15441 15442 15443 15444 15445 15446 15447 15448 15449 15450 15451 15452 15453 15454 15455 15456 15457 15458 15459 15460 15461 15462 15463 15464 15465 15466 15467 15468 15469 15470 15471 15472 15473 15474 15475 15476 15477 15478 15479 15480 15481 15482 15483 15484 15485 15486 15487 15488 15489 15490 15491 15492 15493 15494 15495 15496 15497 15498 15499 15500 15501 15502 15503 15504 15505 15506 15507 15508 15509 15510 15511 15512 15513 15514 15515 15516 15517 15518 15519 15520 15521 15522 15523 15524 15525 15526 15527 15528 15529 15530 15531 15532 15533 15534 15535 15536 15537 15538 15539 15540 15541 15542 15543 15544 15545 15546 15547 15548 15549 15550 15551 15552 15553 15554 15555 15556 15557 15558 15559 15560 15561 15562 15563 15564 15565 15566 15567 15568 15569 15570 15571 15572 15573 15574 15575 15576 15577 15578 15579 15580 15581 15582 15583 15584 15585 15586 15587 15588 15589 15590 15591 15592 15593 15594 15595 15596 15597 15598 15599 15600 15601 15602 15603 15604 15605 15606 15607 15608 15609 15610 15611 15612 15613 15614 15615 15616 15617 15618 15619 15620 15621 15622 15623 15624 15625 15626 15627 15628 15629 15630 15631 15632 15633 15634 15635 15636 15637 15638 15639 15640 15641 15642 15643 15644 15645 15646 15647 15648 15649 15650 15651 15652 15653 15654 15655 15656 15657 15658 15659 15660 15661 15662 15663 15664 15665 15666 15667 15668 15669 15670 15671 15672 15673 15674 15675 15676 15677 15678 15679 15680 15681 15682 15683 15684 15685 15686 15687 15688 15689 15690 15691 15692 15693 15694 15695 15696 15697 15698 15699 15700 15701 15702 15703 15704 15705 15706 15707 15708 15709 15710 15711 15712 15713 15714 15715 15716 15717 15718 15719 15720 15721 15722 15723 15724 15725 15726 15727 15728 15729 15730 15731 15732 15733 15734 15735 15736 15737 15738 15739 15740 15741 15742 15743 15744 15745 15746 15747 15748 15749 15750 15751 15752 15753 15754 15755 15756 15757 15758 15759 15760 15761 15762 15763 15764 15765 15766 15767 15768 15769 15770 15771 15772 15773 15774 15775 15776 15777 15778 15779 15780 15781 15782 15783 15784 15785 15786 15787 15788 15789 15790 15791 15792 15793 15794 15795 15796 15797 15798 15799 15800 15801 15802 15803 15804 15805 15806 15807 15808 15809 15810 15811 15812 15813 15814 15815 15816 15817 15818 15819 15820 15821 15822 15823 15824 15825 15826 15827 15828 15829 15830 15831 15832 15833 15834 15835 15836 15837 15838 15839 15840 15841 15842 15843 15844 15845 15846 15847 15848 15849 15850 15851 15852 15853 15854 15855 15856 15857 15858 15859 15860 15861 15862 15863 15864 15865 15866 15867 15868 15869 15870 15871 15872 15873 15874 15875 15876 15877 15878 15879 15880 15881 15882 15883 15884 15885 15886 15887 15888 15889 15890 15891 15892 15893 15894 15895 15896 15897 15898 15899 15900 15901 15902 15903 15904 15905 15906 15907 15908 15909 15910 15911 15912 15913 15914 15915 15916 15917 15918 15919 15920 15921 15922 15923 15924 15925 15926 15927 15928 15929 15930 15931 15932 15933 15934 15935 15936 15937 15938 15939 15940 15941 15942 15943 15944 15945 15946 15947 15948 15949 15950 15951 15952 15953 15954 15955 15956 15957 15958 15959 15960 15961 15962 15963 15964 15965 15966 15967 15968 15969 15970 15971 15972 15973 15974 15975 15976 15977 15978 15979 15980 15981 15982 15983 15984 15985 15986 15987 15988 15989 15990 15991 15992 15993 15994 15995 15996 15997 15998 15999 16000 16001 16002 16003 16004 16005 16006 16007 16008 16009 16010 16011 16012 16013 16014 16015 16016 16017 16018 16019 16020 16021 16022 16023 16024 16025 16026 16027 16028 16029 16030 16031 16032 16033 16034 16035 16036 16037 16038 16039 16040 16041 16042 16043 16044 16045 16046 16047 16048 16049 16050 16051 16052 16053 16054 16055 16056 16057 16058 16059 16060 16061 16062 16063 16064 16065 16066 16067 16068 16069 16070 16071 16072 16073 16074 16075 16076 16077 16078 16079 16080 16081 16082 16083 16084 16085 16086 16087 16088 16089 16090 16091 16092 16093 16094 16095 16096 16097 16098 16099 16100 16101 16102 16103 16104 16105 16106 16107 16108 16109 16110 16111 16112 16113 16114 16115 16116 16117 16118 16119 16120 16121 16122 16123 16124 16125 16126 16127 16128 16129 16130 16131 16132 16133 16134 16135 16136 16137 16138 16139 16140 16141 16142 16143 16144 16145 16146 16147 16148 16149 16150 16151 16152 16153 16154 16155 16156 16157 16158 16159 16160 16161 16162 16163 16164 16165 16166 16167 16168 16169 16170 16171 16172 16173 16174 16175 16176 16177 16178 16179 16180 16181 16182 16183 16184 16185 16186 16187 16188 16189 16190 16191 16192 16193 16194 16195 16196 16197 16198 16199 16200 16201 16202 16203 16204 16205 16206 16207 16208 16209 16210 16211 16212 16213 16214 16215 16216 16217 16218 16219 16220 16221 16222 16223 16224 16225 16226 16227 16228 16229 16230 16231 16232 16233 16234 16235 16236 16237 16238 16239 16240 16241 16242 16243 16244 16245 16246 16247 16248 16249 16250 16251 16252 16253 16254 16255 16256 16257 16258 16259 16260 16261 16262 16263 16264 16265 16266 16267 16268 16269 16270 16271 16272 16273 16274 16275 16276 16277 16278 16279 16280 16281 16282 16283 16284 16285 16286 16287 16288 16289 16290 16291 16292 16293 16294 16295 16296 16297 16298 16299 16300 16301 16302 16303 16304 16305 16306 16307 16308 16309 16310 16311 16312 16313 16314 16315 16316 16317 16318 16319 16320 16321 16322 16323 16324 16325 16326 16327 16328 16329 16330 16331 16332 16333 16334 16335 16336 16337 16338 16339 16340 16341 16342 16343 16344 16345 16346 16347 16348 16349 16350 16351 16352 16353 16354 16355 16356 16357 16358 16359 16360 16361 16362 16363 16364 16365 16366 16367 16368 16369 16370 16371 16372 16373 16374 16375 16376 16377 16378 16379 16380 16381 16382 16383 16384 16385 16386 16387 16388 16389 16390 16391 16392 16393 16394 16395 16396 16397 16398 16399 16400 16401 16402 16403 16404 16405 16406 16407 16408 16409 16410 16411 16412 16413 16414 16415 16416 16417 16418 16419 16420 16421 16422 16423 16424 16425 16426 16427 16428 16429 16430 16431 16432 16433 16434 16435 16436 16437 16438 16439 16440 16441 16442 16443 16444 16445 16446 16447 16448 16449 16450 16451 16452 16453 16454 16455 16456 16457 16458 16459 16460 16461 16462 16463 16464 16465 16466 16467 16468 16469 16470 16471 16472 16473 16474 16475 16476 16477 16478 16479 16480 16481 16482 16483 16484 16485 16486 16487 16488 16489 16490 16491 16492 16493 16494 16495 16496 16497 16498 16499 16500 16501 16502 16503 16504 16505 16506 16507 16508 16509 16510 16511 16512 16513 16514 16515 16516 16517 16518 16519 16520 16521 16522 16523 16524 16525 16526 16527 16528 16529 16530 16531 16532 16533 16534 16535 16536 16537 16538 16539 16540 16541 16542 16543 16544 16545 16546 16547 16548 16549 16550 16551 16552 16553 16554 16555 16556 16557 16558 16559 16560 16561 16562 16563 16564 16565 16566 16567 16568 16569 16570 16571 16572 16573 16574 16575 16576 16577 16578 16579 16580 16581 16582 16583 16584 16585 16586 16587 16588 16589 16590 16591 16592 16593 16594 16595 16596 16597 16598 16599 16600 16601 16602 16603 16604 16605 16606 16607 16608 16609 16610 16611 16612 16613 16614 16615 16616 16617 16618 16619 16620 16621 16622 16623 16624 16625 16626 16627 16628 16629 16630 16631 16632 16633 16634 16635 16636 16637 16638 16639 16640 16641 16642 16643 16644 16645 16646 16647 16648 16649 16650 16651 16652 16653 16654 16655 16656 16657 16658 16659 16660 16661 16662 16663 16664 16665 16666 16667 16668 16669 16670 16671 16672 16673 16674 16675 16676 16677 16678 16679 16680 16681 16682 16683 16684 16685 16686 16687 16688 16689 16690 16691 16692 16693 16694 16695 16696 16697 16698 16699 16700 16701 16702 16703 16704 16705 16706 16707 16708 16709 16710 16711 16712 16713 16714 16715 16716 16717 16718 16719 16720 16721 16722 16723 16724 16725 16726 16727 16728 16729 16730 16731 16732 16733 16734 16735 16736 16737 16738 16739 16740 16741 16742 16743 16744 16745 16746 16747 16748 16749 16750 16751 16752 16753 16754 16755 16756 16757 16758 16759 16760 16761 16762 16763 16764 16765 16766 16767 16768 16769 16770 16771 16772 16773 16774 16775 16776 16777 16778 16779 16780 16781 16782 16783 16784 16785 16786 16787 16788 16789 16790 16791 16792 16793 16794 16795 16796 16797 16798 16799 16800 16801 16802 16803 16804 16805 16806 16807 16808 16809 16810 16811 16812 16813 16814 16815 16816 16817 16818 16819 16820 16821 16822 16823 16824 16825 16826 16827 16828 16829 16830 16831 16832 16833 16834 16835 16836 16837 16838 16839 16840 16841 16842 16843 16844 16845 16846 16847 16848 16849 16850 16851 16852 16853 16854 16855 16856 16857 16858 16859 16860 16861 16862 16863 16864 16865 16866 16867 16868 16869 16870 16871 16872 16873 16874 16875 16876 16877 16878 16879 16880 16881 16882 16883 16884 16885 16886 16887 16888 16889 16890 16891 16892 16893 16894 16895 16896 16897 16898 16899 16900 16901 16902 16903 16904 16905 16906 16907 16908 16909 16910 16911 16912 16913 16914 16915 16916 16917 16918 16919 16920 16921 16922 16923 16924 16925 16926 16927 16928 16929 16930 16931 16932 16933 16934 16935 16936 16937 16938 16939 16940 16941 16942 16943 16944 16945 16946 16947 16948 16949 16950 16951 16952 16953 16954 16955 16956 16957 16958 16959 16960 16961 16962 16963 16964 16965 16966 16967 16968 16969 16970 16971 16972 16973 16974 16975 16976 16977 16978 16979 16980 16981 16982 16983 16984 16985 16986 16987 16988 16989 16990 16991 16992 16993 16994 16995 16996 16997 16998 16999 17000 17001 17002 17003 17004 17005 17006 17007 17008 17009 17010 17011 17012 17013 17014 17015 17016 17017 17018 17019 17020 17021 17022 17023 17024 17025 17026 17027 17028 17029 17030 17031 17032 17033 17034 17035 17036 17037 17038 17039 17040 17041 17042 17043 17044 17045 17046 17047 17048 17049 17050 17051 17052 17053 17054 17055 17056 17057 17058 17059 17060 17061 17062 17063 17064 17065 17066 17067 17068 17069 17070 17071 17072 17073 17074 17075 17076 17077 17078 17079 17080 17081 17082 17083 17084 17085 17086 17087 17088 17089 17090 17091 17092 17093 17094 17095 17096 17097 17098 17099 17100 17101 17102 17103 17104 17105 17106 17107 17108 17109 17110 17111 17112 17113 17114 17115 17116 17117 17118 17119 17120 17121 17122 17123 17124 17125 17126 17127 17128 17129 17130 17131 17132 17133 17134 17135 17136 17137 17138 17139 17140 17141 17142 17143 17144 17145 17146 17147 17148 17149 17150 17151 17152 17153 17154 17155 17156 17157 17158 17159 17160 17161 17162 17163 17164 17165 17166 17167 17168 17169 17170 17171 17172 17173 17174 17175 17176 17177 17178 17179 17180 17181 17182 17183 17184 17185 17186 17187 17188 17189 17190 17191 17192 17193 17194 17195 17196 17197 17198 17199 17200 17201 17202 17203 17204 17205 17206 17207 17208 17209 17210 17211 17212 17213 17214 17215 17216 17217 17218 17219 17220 17221 17222 17223 17224 17225 17226 17227 17228 17229 17230 17231 17232 17233 17234 17235 17236 17237 17238 17239 17240 17241 17242 17243 17244 17245 17246 17247 17248 17249 17250 17251 17252 17253 17254 17255 17256 17257 17258 17259 17260 17261 17262 17263 17264 17265 17266 17267 17268 17269 17270 17271 17272 17273 17274 17275 17276 17277 17278 17279 17280 17281 17282 17283 17284 17285 17286 17287 17288 17289 17290 17291 17292 17293 17294 17295 17296 17297 17298 17299 17300 17301 17302 17303 17304 17305 17306 17307 17308 17309 17310 17311 17312 17313 17314 17315 17316 17317 17318 17319 17320 17321 17322 17323 17324 17325 17326 17327 17328 17329 17330 17331 17332 17333 17334 17335 17336 17337 17338 17339 17340 17341 17342 17343 17344 17345 17346 17347 17348 17349 17350 17351 17352 17353 17354 17355 17356 17357 17358 17359 17360 17361 17362 17363 17364 17365 17366 17367 17368 17369 17370 17371 17372 17373 17374 17375 17376 17377 17378 17379 17380 17381 17382 17383 17384 17385 17386 17387 17388 17389 17390 17391 17392 17393 17394 17395 17396 17397 17398 17399 17400 17401 17402 17403 17404 17405 17406 17407 17408 17409 17410 17411 17412 17413 17414 17415 17416 17417 17418 17419 17420 17421 17422 17423 17424 17425 17426 17427 17428 17429 17430 17431 17432 17433 17434 17435 17436 17437 17438 17439 17440 17441 17442 17443 17444 17445 17446 17447 17448 17449 17450 17451 17452 17453 17454 17455 17456 17457 17458 17459 17460 17461 17462 17463 17464 17465 17466 17467 17468 17469 17470 17471 17472 17473 17474 17475 17476 17477 17478 17479 17480 17481 17482 17483 17484 17485 17486 17487 17488 17489 17490 17491 17492 17493 17494 17495 17496 17497 17498 17499 17500 17501 17502 17503 17504 17505 17506 17507 17508 17509 17510 17511 17512 17513 17514 17515 17516 17517 17518 17519 17520 17521 17522 17523 17524 17525 17526 17527 17528 17529 17530 17531 17532 17533 17534 17535 17536 17537 17538 17539 17540 17541 17542 17543 17544 17545 17546 17547 17548 17549 17550 17551 17552 17553 17554 17555 17556 17557 17558 17559 17560 17561 17562 17563 17564 17565 17566 17567 17568 17569 17570 17571 17572 17573 17574 17575 17576 17577 17578 17579 17580 17581 17582 17583 17584 17585 17586 17587 17588 17589 17590 17591 17592 17593 17594 17595 17596 17597 17598 17599 17600 17601 17602 17603 17604 17605 17606 17607 17608 17609 17610 17611 17612 17613 17614 17615 17616 17617 17618 17619 17620 17621 17622 17623 17624 17625 17626 17627 17628 17629 17630 17631 17632 17633 17634 17635 17636 17637 17638 17639 17640 17641 17642 17643 17644 17645 17646 17647 17648 17649 17650 17651 17652 17653 17654 17655 17656 17657 17658 17659 17660 17661 17662 17663 17664 17665 17666 17667 17668 17669 17670 17671 17672 17673 17674 17675 17676 17677 17678 17679 17680 17681 17682 17683 17684 17685 17686 17687 17688 17689 17690 17691 17692 17693 17694 17695 17696 17697 17698 17699 17700 17701 17702 17703 17704 17705 17706 17707 17708 17709 17710 17711 17712 17713 17714 17715 17716 17717 17718 17719 17720 17721 17722 17723 17724 17725 17726 17727 17728 17729 17730 17731 17732 17733 17734 17735 17736 17737 17738 17739 17740 17741 17742 17743 17744 17745 17746 17747 17748 17749 17750 17751 17752 17753 17754 17755 17756 17757 17758 17759 17760 17761 17762 17763 17764 17765 17766 17767 17768 17769 17770 17771 17772 17773 17774 17775 17776 17777 17778 17779 17780 17781 17782 17783 17784 17785 17786 17787 17788 17789 17790 17791 17792 17793 17794 17795 17796 17797 17798 17799 17800 17801 17802 17803 17804 17805 17806 17807 17808 17809 17810 17811 17812 17813 17814 17815 17816 17817 17818 17819 17820 17821 17822 17823 17824 17825 17826 17827 17828 17829 17830 17831 17832 17833 17834 17835 17836 17837 17838 17839 17840 17841 17842 17843 17844 17845 17846 17847 17848 17849 17850 17851 17852 17853 17854 17855 17856 17857 17858 17859 17860 17861 17862 17863 17864 17865 17866 17867 17868 17869 17870 17871 17872 17873 17874 17875 17876 17877 17878 17879 17880 17881 17882 17883 17884 17885 17886 17887 17888 17889 17890 17891 17892 17893 17894 17895 17896 17897 17898 17899 17900 17901 17902 17903 17904 17905 17906 17907 17908 17909 17910 17911 17912 17913 17914 17915 17916 17917 17918 17919 17920 17921 17922 17923 17924 17925 17926 17927 17928 17929 17930 17931 17932 17933 17934 17935 17936 17937 17938 17939 17940 17941 17942 17943 17944 17945 17946 17947 17948 17949 17950 17951 17952 17953 17954 17955 17956 17957 17958 17959 17960 17961 17962 17963 17964 17965 17966 17967 17968 17969 17970 17971 17972 17973 17974 17975 17976 17977 17978 17979 17980 17981 17982 17983 17984 17985 17986 17987 17988 17989 17990 17991 17992 17993 17994 17995 17996 17997 17998 17999 18000 18001 18002 18003 18004 18005 18006 18007 18008 18009 18010 18011 18012 18013 18014 18015 18016 18017 18018 18019 18020 18021 18022 18023 18024 18025 18026 18027 18028 18029 18030 18031 18032 18033 18034 18035 18036 18037 18038 18039 18040 18041 18042 18043 18044 18045 18046 18047 18048 18049 18050 18051 18052 18053 18054 18055 18056 18057 18058 18059 18060 18061 18062 18063 18064 18065 18066 18067 18068 18069 18070 18071 18072 18073 18074 18075 18076 18077 18078 18079 18080 18081 18082 18083 18084 18085 18086 18087 18088 18089 18090 18091 18092 18093 18094 18095 18096 18097 18098 18099 18100 18101 18102 18103 18104 18105 18106 18107 18108 18109 18110 18111 18112 18113 18114 18115 18116 18117 18118 18119 18120 18121 18122 18123 18124 18125 18126 18127 18128 18129 18130 18131 18132 18133 18134 18135 18136 18137 18138 18139 18140 18141 18142 18143 18144 18145 18146 18147 18148 18149 18150 18151 18152 18153 18154 18155 18156 18157 18158 18159 18160 18161 18162 18163 18164 18165 18166 18167 18168 18169 18170 18171 18172 18173 18174 18175 18176 18177 18178 18179 18180 18181 18182 18183 18184 18185 18186 18187 18188 18189 18190 18191 18192 18193 18194 18195 18196 18197 18198 18199 18200 18201 18202 18203 18204 18205 18206 18207 18208 18209 18210 18211 18212 18213 18214 18215 18216 18217 18218 18219 18220 18221 18222 18223 18224 18225 18226 18227 18228 18229 18230 18231 18232 18233 18234 18235 18236 18237 18238 18239 18240 18241 18242 18243 18244 18245 18246 18247 18248 18249 18250 18251 18252 18253 18254 18255 18256 18257 18258 18259 18260 18261 18262 18263 18264 18265 18266 18267 18268 18269 18270 18271 18272 18273 18274 18275 18276 18277 18278 18279 18280 18281 18282 18283 18284 18285 18286 18287 18288 18289 18290 18291 18292 18293 18294 18295 18296 18297 18298 18299 18300 18301 18302 18303 18304 18305 18306 18307 18308 18309 18310 18311 18312 18313 18314 18315 18316 18317 18318 18319 18320 18321 18322 18323 18324 18325 18326 18327 18328 18329 18330 18331 18332 18333 18334 18335 18336 18337 18338 18339 18340 18341 18342 18343 18344 18345 18346 18347 18348 18349 18350 18351 18352 18353 18354 18355 18356 18357 18358 18359 18360 18361 18362 18363 18364 18365 18366 18367 18368 18369 18370 18371 18372 18373 18374 18375 18376 18377 18378 18379 18380 18381 18382 18383 18384 18385 18386 18387 18388 18389 18390 18391 18392 18393 18394 18395 18396 18397 18398 18399 18400 18401 18402 18403 18404 18405 18406 18407 18408 18409 18410 18411 18412 18413 18414 18415 18416 18417 18418 18419 18420 18421 18422 18423 18424 18425 18426 18427 18428 18429 18430 18431 18432 18433 18434 18435 18436 18437 18438 18439 18440 18441 18442 18443 18444 18445 18446 18447 18448 18449 18450 18451 18452 18453 18454 18455 18456 18457 18458 18459 18460 18461 18462 18463 18464 18465 18466 18467 18468 18469 18470 18471 18472 18473 18474 18475 18476 18477 18478 18479 18480 18481 18482 18483 18484 18485 18486 18487 18488 18489 18490 18491 18492 18493 18494 18495 18496 18497 18498 18499 18500 18501 18502 18503 18504 18505 18506 18507 18508 18509 18510 18511 18512 18513 18514 18515 18516 18517 18518 18519 18520 18521 18522 18523 18524 18525 18526 18527 18528 18529 18530 18531 18532 18533 18534 18535 18536 18537 18538 18539 18540 18541 18542 18543 18544 18545 18546 18547 18548 18549 18550 18551 18552 18553 18554 18555 18556 18557 18558 18559 18560 18561 18562 18563 18564 18565 18566 18567 18568 18569 18570 18571 18572 18573 18574 18575 18576 18577 18578 18579 18580 18581 18582 18583 18584 18585 18586 18587 18588 18589 18590 18591 18592 18593 18594 18595 18596 18597 18598 18599 18600 18601 18602 18603 18604 18605 18606 18607 18608 18609 18610 18611 18612 18613 18614 18615 18616 18617 18618 18619 18620 18621 18622 18623 18624 18625 18626 18627 18628 18629 18630 18631 18632 18633 18634 18635 18636 18637 18638 18639 18640 18641 18642 18643 18644 18645 18646 18647 18648 18649 18650 18651 18652 18653 18654 18655 18656 18657 18658 18659 18660 18661 18662 18663 18664 18665 18666 18667 18668 18669 18670 18671 18672 18673 18674 18675 18676 18677 18678 18679 18680 18681 18682 18683 18684 18685 18686 18687 18688 18689 18690 18691 18692 18693 18694 18695 18696 18697 18698 18699 18700 18701 18702 18703 18704 18705 18706 18707 18708 18709 18710 18711 18712 18713 18714 18715 18716 18717 18718 18719 18720 18721 18722 18723 18724 18725 18726 18727 18728 18729 18730 18731 18732 18733 18734 18735 18736 18737 18738 18739 18740 18741 18742 18743 18744 18745 18746 18747 18748 18749 18750 18751 18752 18753 18754 18755 18756 18757 18758 18759 18760 18761 18762 18763 18764 18765 18766 18767 18768 18769 18770 18771 18772 18773 18774 18775 18776 18777 18778 18779 18780 18781 18782 18783 18784 18785 18786 18787 18788 18789 18790 18791 18792 18793 18794 18795 18796 18797 18798 18799 18800 18801 18802 18803 18804 18805 18806 18807 18808 18809 18810 18811 18812 18813 18814 18815 18816 18817 18818 18819 18820 18821 18822 18823 18824 18825 18826 18827 18828 18829 18830 18831 18832 18833 18834 18835 18836 18837 18838 18839 18840 18841 18842 18843 18844 18845 18846 18847 18848 18849 18850 18851 18852 18853 18854 18855 18856 18857 18858 18859 18860 18861 18862 18863 18864 18865 18866 18867 18868 18869 18870 18871 18872 18873 18874 18875 18876 18877 18878 18879 18880 18881 18882 18883 18884 18885 18886 18887 18888 18889 18890 18891 18892 18893 18894 18895 18896 18897 18898 18899 18900 18901 18902 18903 18904 18905 18906 18907 18908 18909 18910 18911 18912 18913 18914 18915 18916 18917 18918 18919 18920 18921 18922 18923 18924 18925 18926 18927 18928 18929 18930 18931 18932 18933 18934 18935 18936 18937 18938 18939 18940 18941 18942 18943 18944 18945 18946 18947 18948 18949 18950 18951 18952 18953 18954 18955 18956 18957 18958 18959 18960 18961 18962 18963 18964 18965 18966 18967 18968 18969 18970 18971 18972 18973 18974 18975 18976 18977 18978 18979 18980 18981 18982 18983 18984 18985 18986 18987 18988 18989 18990 18991 18992 18993 18994 18995 18996 18997 18998 18999 19000 19001 19002 19003 19004 19005 19006 19007 19008 19009 19010 19011 19012 19013 19014 19015 19016 19017 19018 19019 19020 19021 19022 19023 19024 19025 19026 19027 19028 19029 19030 19031 19032 19033 19034 19035 19036 19037 19038 19039 19040 19041 19042 19043 19044 19045 19046 19047 19048 19049 19050 19051 19052 19053 19054 19055 19056 19057 19058 19059 19060 19061 19062 19063 19064 19065 19066 19067 19068 19069 19070 19071 19072 19073 19074 19075 19076 19077 19078 19079 19080 19081 19082 19083 19084 19085 19086 19087 19088 19089 19090 19091 19092 19093 19094 19095 19096 19097 19098 19099 19100 19101 19102 19103 19104 19105 19106 19107 19108 19109 19110 19111 19112 19113 19114 19115 19116 19117 19118 19119 19120 19121 19122 19123 19124 19125 19126 19127 19128 19129 19130 19131 19132 19133 19134 19135 19136 19137 19138 19139 19140 19141 19142 19143 19144 19145 19146 19147 19148 19149 19150 19151 19152 19153 19154 19155 19156 19157 19158 19159 19160 19161 19162 19163 19164 19165 19166 19167 19168 19169 19170 19171 19172 19173 19174 19175 19176 19177 19178 19179 19180 19181 19182 19183 19184 19185 19186 19187 19188 19189 19190 19191 19192 19193 19194 19195 19196 19197 19198 19199 19200 19201 19202 19203 19204 19205 19206 19207 19208 19209 19210 19211 19212 19213 19214 19215 19216 19217 19218 19219 19220 19221 19222 19223 19224 19225 19226 19227 19228 19229 19230 19231 19232 19233 19234 19235 19236 19237 19238 19239 19240 19241 19242 19243 19244 19245 19246 19247 19248 19249 19250 19251 19252 19253 19254 19255 19256 19257 19258 19259 19260 19261 19262 19263 19264 19265 19266 19267 19268 19269 19270 19271 19272 19273 19274 19275 19276 19277 19278 19279 19280 19281 19282 19283 19284 19285 19286 19287 19288 19289 19290 19291 19292 19293 19294 19295 19296 19297 19298 19299 19300 19301 19302 19303 19304 19305 19306 19307 19308 19309 19310 19311 19312 19313 19314 19315 19316 19317 19318 19319 19320 19321 19322 19323 19324 19325 19326 19327 19328 19329 19330 19331 19332 19333 19334 19335 19336 19337 19338 19339 19340 19341 19342 19343 19344 19345 19346 19347 19348 19349 19350 19351 19352 19353 19354 19355 19356 19357 19358 19359 19360 19361 19362 19363 19364 19365 19366 19367 19368 19369 19370 19371 19372 19373 19374 19375 19376 19377 19378 19379 19380 19381 19382 19383 19384 19385 19386 19387 19388 19389 19390 19391 19392 19393 19394 19395 19396 19397 19398 19399 19400 19401 19402 19403 19404 19405 19406 19407 19408 19409 19410 19411 19412 19413 19414 19415 19416 19417 19418 19419 19420 19421 19422 19423 19424 19425 19426 19427 19428 19429 19430 19431 19432 19433 19434 19435 19436 19437 19438 19439 19440 19441 19442 19443 19444 19445 19446 19447 19448 19449 19450 19451 19452 19453 19454 19455 19456 19457 19458 19459 19460 19461 19462 19463 19464 19465 19466 19467 19468 19469 19470 19471 19472 19473 19474 19475 19476 19477 19478 19479 19480 19481 19482 19483 19484 19485 19486 19487 19488 19489 19490 19491 19492 19493 19494 19495 19496 19497 19498 19499 19500 19501 19502 19503 19504 19505 19506 19507 19508 19509 19510 19511 19512 19513 19514 19515 19516 19517 19518 19519 19520 19521 19522 19523 19524 19525 19526 19527 19528 19529 19530 19531 19532 19533 19534 19535 19536 19537 19538 19539 19540 19541 19542 19543 19544 19545 19546 19547 19548 19549 19550 19551 19552 19553 19554 19555 19556 19557 19558 19559 19560 19561 19562 19563 19564 19565 19566 19567 19568 19569 19570 19571 19572 19573 19574 19575 19576 19577 19578 19579 19580 19581 19582 19583 19584 19585 19586 19587 19588 19589 19590 19591 19592 19593 19594 19595 19596 19597 19598 19599 19600 19601 19602 19603 19604 19605 19606 19607 19608 19609 19610 19611 19612 19613 19614 19615 19616 19617 19618 19619 19620 19621 19622 19623 19624 19625 19626 19627 19628 19629 19630 19631 19632 19633 19634 19635 19636 19637 19638 19639 19640 19641 19642 19643 19644 19645 19646 19647 19648 19649 19650 19651 19652 19653 19654 19655 19656 19657 19658 19659 19660 19661 19662 19663 19664 19665 19666 19667 19668 19669 19670 19671 19672 19673 19674 19675 19676 19677 19678 19679 19680 19681 19682 19683 19684 19685 19686 19687 19688 19689 19690 19691 19692 19693 19694 19695 19696 19697 19698 19699 19700 19701 19702 19703 19704 19705 19706 19707 19708 19709 19710 19711 19712 19713 19714 19715 19716 19717 19718 19719 19720 19721 19722 19723 19724 19725 19726 19727 19728 19729 19730 19731 19732 19733 19734 19735 19736 19737 19738 19739 19740 19741 19742 19743 19744 19745 19746 19747 19748 19749 19750 19751 19752 19753 19754 19755 19756 19757 19758 19759 19760 19761 19762 19763 19764 19765 19766 19767 19768 19769 19770 19771 19772 19773 19774 19775 19776 19777 19778 19779 19780 19781 19782 19783 19784 19785 19786 19787 19788 19789 19790 19791 19792 19793 19794 19795 19796 19797 19798 19799 19800 19801 19802 19803 19804 19805 19806 19807 19808 19809 19810 19811 19812 19813 19814 19815 19816 19817 19818 19819 19820 19821 19822 19823 19824 19825 19826 19827 19828 19829 19830 19831 19832 19833 19834 19835 19836 19837 19838 19839 19840 19841 19842 19843 19844 19845 19846 19847 19848 19849 19850 19851 19852 19853 19854 19855 19856 19857 19858 19859 19860 19861 19862 19863 19864 19865 19866 19867 19868 19869 19870 19871 19872 19873 19874 19875 19876 19877 19878 19879 19880 19881 19882 19883 19884 19885 19886 19887 19888 19889 19890 19891 19892 19893 19894 19895 19896 19897 19898 19899 19900 19901 19902 19903 19904 19905 19906 19907 19908 19909 19910 19911 19912 19913 19914 19915 19916 19917 19918 19919 19920 19921 19922 19923 19924 19925 19926 19927 19928 19929 19930 19931 19932 19933 19934 19935 19936 19937 19938 19939 19940 19941 19942 19943 19944 19945 19946 19947 19948 19949 19950 19951 19952 19953 19954 19955 19956 19957 19958 19959 19960 19961 19962 19963 19964 19965 19966 19967 19968 19969 19970 19971 19972 19973 19974 19975 19976 19977 19978 19979 19980 19981 19982 19983 19984 19985 19986 19987 19988 19989 19990 19991 19992 19993 19994 19995 19996 19997 19998 19999 20000 20001 20002 20003 20004 20005 20006 20007 20008 20009 20010 20011 20012 20013 20014 20015 20016 20017 20018 20019 20020 20021 20022 20023 20024 20025 20026 20027 20028 20029 20030 20031 20032 20033 20034 20035 20036 20037 20038 20039 20040 20041 20042 20043 20044 20045 20046 20047 20048 20049 20050 20051 20052 20053 20054 20055 20056 20057 20058 20059 20060 20061 20062 20063 20064 20065 20066 20067 20068 20069 20070 20071 20072 20073 20074 20075 20076 20077 20078 20079 20080 20081 20082 20083 20084 20085 20086 20087 20088 20089 20090 20091 20092 20093 20094 20095 20096 20097 20098 20099 20100 20101 20102 20103 20104 20105 20106 20107 20108 20109 20110 20111 20112 20113 20114 20115 20116 20117 20118 20119 20120 20121 20122 20123 20124 20125 20126 20127 20128 20129 20130 20131 20132 20133 20134 20135 20136 20137 20138 20139 20140 20141 20142 20143 20144 20145 20146 20147 20148 20149 20150 20151 20152 20153 20154 20155 20156 20157 20158 20159 20160 20161 20162 20163 20164 20165 20166 20167 20168 20169 20170 20171 20172 20173 20174 20175 20176 20177 20178 20179 20180 20181 20182 20183 20184 20185 20186 20187 20188 20189 20190 20191 20192 20193 20194 20195 20196 20197 20198 20199 20200 20201 20202 20203 20204 20205 20206 20207 20208 20209 20210 20211 20212 20213 20214 20215 20216 20217 20218 20219 20220 20221 20222 20223 20224 20225 20226 20227 20228 20229 20230 20231 20232 20233 20234 20235 20236 20237 20238 20239 20240 20241 20242 20243 20244 20245 20246 20247 20248 20249 20250 20251 20252 20253 20254 20255 20256 20257 20258 20259 20260 20261 20262 20263 20264 20265 20266 20267 20268 20269 20270 20271 20272 20273 20274 20275 20276 20277 20278 20279 20280 20281 20282 20283 20284 20285 20286 20287 20288 20289 20290 20291 20292 20293 20294 20295 20296 20297 20298 20299 20300 20301 20302 20303 20304 20305 20306 20307 20308 20309 20310 20311 20312 20313 20314 20315 20316 20317 20318 20319 20320 20321 20322 20323 20324 20325 20326 20327 20328 20329 20330 20331 20332 20333 20334 20335 20336 20337 20338 20339 20340 20341 20342 20343 20344 20345 20346 20347 20348 20349 20350 20351 20352 20353 20354 20355 20356 20357 20358 20359 20360 20361 20362 20363 20364 20365 20366 20367 20368 20369 20370 20371 20372 20373 20374 20375 20376 20377 20378 20379 20380 20381 20382 20383 20384 20385 20386 20387 20388 20389 20390 20391 20392 20393 20394 20395 20396 20397 20398 20399 20400 20401 20402 20403 20404 20405 20406 20407 20408 20409 20410 20411 20412 20413 20414 20415 20416 20417 20418 20419 20420 20421 20422 20423 20424 20425 20426 20427 20428 20429 20430 20431 20432 20433 20434 20435 20436 20437 20438 20439 20440 20441 20442 20443 20444 20445 20446 20447 20448 20449 20450 20451 20452 20453 20454 20455 20456 20457 20458 20459 20460 20461 20462 20463 20464 20465 20466 20467 20468 20469 20470 20471 20472 20473 20474 20475 20476 20477 20478 20479 20480 20481 20482 20483 20484 20485 20486 20487 20488 20489 20490 20491 20492 20493 20494 20495 20496 20497 20498 20499 20500 20501 20502 20503 20504 20505 20506 20507 20508 20509 20510 20511 20512 20513 20514 20515 20516 20517 20518 20519 20520 20521 20522 20523 20524 20525 20526 20527 20528 20529 20530 20531 20532 20533 20534 20535 20536 20537 20538 20539 20540 20541 20542 20543 20544 20545 20546 20547 20548 20549 20550 20551 20552 20553 20554 20555 20556 20557 20558 20559 20560 20561 20562 20563 20564 20565 20566 20567 20568 20569 20570 20571 20572 20573 20574 20575 20576 20577 20578 20579 20580 20581 20582 20583 20584 20585 20586 20587 20588 20589 20590 20591 20592 20593 20594 20595 20596 20597 20598 20599 20600 20601 20602 20603 20604 20605 20606 20607 20608 20609 20610 20611 20612 20613 20614 20615 20616 20617 20618 20619 20620 20621 20622 20623 20624 20625 20626 20627 20628 20629 20630 20631 20632 20633 20634 20635 20636 20637 20638 20639 20640 20641 20642 20643 20644 20645 20646 20647 20648 20649 20650 20651 20652 20653 20654 20655 20656 20657 20658 20659 20660 20661 20662 20663 20664 20665 20666 20667 20668 20669 20670 20671 20672 20673 20674 20675 20676 20677 20678 20679 20680 20681 20682 20683 20684 20685 20686 20687 20688 20689 20690 20691 20692 20693 20694 20695 20696 20697 20698 20699 20700 20701 20702 20703 20704 20705 20706 20707 20708 20709 20710 20711 20712 20713 20714 20715 20716 20717 20718 20719 20720 20721 20722 20723 20724 20725 20726 20727 20728 20729 20730 20731 20732 20733 20734 20735 20736 20737 20738 20739 20740 20741 20742 20743 20744 20745 20746 20747 20748 20749 20750 20751 20752 20753 20754 20755 20756 20757 20758 20759 20760 20761 20762 20763 20764 20765 20766 20767 20768 20769 20770 20771 20772 20773 20774 20775 20776 20777 20778 20779 20780 20781 20782 20783 20784 20785 20786 20787 20788 20789 20790 20791 20792 20793 20794 20795 20796 20797 20798 20799 20800 20801 20802 20803 20804 20805 20806 20807 20808 20809 20810 20811 20812 20813 20814 20815 20816 20817 20818 20819 20820 20821 20822 20823 20824 20825 20826 20827 20828 20829 20830 20831 20832 20833 20834 20835 20836 20837 20838 20839 20840 20841 20842 20843 20844 20845 20846 20847 20848 20849 20850 20851 20852 20853 20854 20855 20856 20857 20858 20859 20860 20861 20862 20863 20864 20865 20866 20867 20868 20869 20870 20871 20872 20873 20874 20875 20876 20877 20878 20879 20880 20881 20882 20883 20884 20885 20886 20887 20888 20889 20890 20891 20892 20893 20894 20895 20896 20897 20898 20899 20900 20901 20902 20903 20904 20905 20906 20907 20908 20909 20910 20911 20912 20913 20914 20915 20916 20917 20918 20919 20920 20921 20922 20923 20924 20925 20926 20927 20928 20929 20930 20931 20932 20933 20934 20935 20936 20937 20938 20939 20940 20941 20942 20943 20944 20945 20946 20947 20948 20949 20950 20951 20952 20953 20954 20955 20956 20957 20958 20959 20960 20961 20962 20963 20964 20965 20966 20967 20968 20969 20970 20971 20972 20973 20974 20975 20976 20977 20978 20979 20980 20981 20982 20983 20984 20985 20986 20987 20988 20989 20990 20991 20992 20993 20994 20995 20996 20997 20998 20999 21000 21001 21002 21003 21004 21005 21006 21007 21008 21009 21010 21011 21012 21013 21014 21015 21016 21017 21018 21019 21020 21021 21022 21023 21024 21025 21026 21027 21028 21029 21030 21031 21032 21033 21034 21035 21036 21037 21038 21039 21040 21041 21042 21043 21044 21045 21046 21047 21048 21049 21050 21051 21052 21053 21054 21055 21056 21057 21058 21059 21060 21061 21062 21063 21064 21065 21066 21067 21068 21069 21070 21071 21072 21073 21074 21075 21076 21077 21078 21079 21080 21081 21082 21083 21084 21085 21086 21087 21088 21089 21090 21091 21092 21093 21094 21095 21096 21097 21098 21099 21100 21101 21102 21103 21104 21105 21106 21107 21108 21109 21110 21111 21112 21113 21114 21115 21116 21117 21118 21119 21120 21121 21122 21123 21124 21125 21126 21127 21128 21129 21130 21131 21132 21133 21134 21135 21136 21137 21138 21139 21140 21141 21142 21143 21144 21145 21146 21147 21148 21149 21150 21151 21152 21153 21154 21155 21156 21157 21158 21159 21160 21161 21162 21163 21164 21165 21166 21167 21168 21169 21170 21171 21172 21173 21174 21175 21176 21177 21178 21179 21180 21181 21182 21183 21184 21185 21186 21187 21188 21189 21190 21191 21192 21193 21194 21195 21196 21197 21198 21199 21200 21201 21202 21203 21204 21205 21206 21207 21208 21209 21210 21211 21212 21213 21214 21215 21216 21217 21218 21219 21220 21221 21222 21223 21224 21225 21226 21227 21228 21229 21230 21231 21232 21233 21234 21235 21236 21237 21238 21239 21240 21241 21242 21243 21244 21245 21246 21247 21248 21249 21250 21251 21252 21253 21254 21255 21256 21257 21258 21259 21260 21261 21262 21263 21264 21265 21266 21267 21268 21269 21270 21271 21272 21273 21274 21275 21276 21277 21278 21279 21280 21281 21282 21283 21284 21285 21286 21287 21288 21289 21290 21291 21292 21293 21294 21295 21296 21297 21298 21299 21300 21301 21302 21303 21304 21305 21306 21307 21308 21309 21310 21311 21312 21313 21314 21315 21316 21317 21318 21319 21320 21321 21322 21323 21324 21325 21326 21327 21328 21329 21330 21331 21332 21333 21334 21335 21336 21337 21338 21339 21340 21341 21342 21343 21344 21345 21346 21347 21348 21349 21350 21351 21352 21353 21354 21355 21356 21357 21358 21359 21360 21361 21362 21363 21364 21365 21366 21367 21368 21369 21370 21371 21372 21373 21374 21375 21376 21377 21378 21379 21380 21381 21382 21383 21384 21385 21386 21387 21388 21389 21390 21391 21392 21393 21394 21395 21396 21397 21398 21399 21400 21401 21402 21403 21404 21405 21406 21407 21408 21409 21410 21411 21412 21413 21414 21415 21416 21417 21418 21419 21420 21421 21422 21423 21424 21425 21426 21427 21428 21429 21430 21431 21432 21433 21434 21435 21436 21437 21438 21439 21440 21441 21442 21443 21444 21445 21446 21447 21448 21449 21450 21451 21452 21453 21454 21455 21456 21457 21458 21459 21460 21461 21462 21463 21464 21465 21466 21467 21468 21469 21470 21471 21472 21473 21474 21475 21476 21477 21478 21479 21480 21481 21482 21483 21484 21485 21486 21487 21488 21489 21490 21491 21492 21493 21494 21495 21496 21497 21498 21499 21500 21501 21502 21503 21504 21505 21506 21507 21508 21509 21510 21511 21512 21513 21514 21515 21516 21517 21518 21519 21520 21521 21522 21523 21524 21525 21526 21527 21528 21529 21530 21531 21532 21533 21534 21535 21536 21537 21538 21539 21540 21541 21542 21543 21544 21545 21546 21547 21548 21549 21550 21551 21552 21553 21554 21555 21556 21557 21558 21559 21560 21561 21562 21563 21564 21565 21566 21567 21568 21569 21570 21571 21572 21573 21574 21575 21576 21577 21578 21579 21580 21581 21582 21583 21584 21585 21586 21587 21588 21589 21590 21591 21592 21593 21594 21595 21596 21597 21598 21599 21600 21601 21602 21603 21604 21605 21606 21607 21608 21609 21610 21611 21612 21613 21614 21615 21616 21617 21618 21619 21620 21621 21622 21623 21624 21625 21626 21627 21628 21629 21630 21631 21632 21633 21634 21635 21636 21637 21638 21639 21640 21641 21642 21643 21644 21645 21646 21647 21648 21649 21650 21651 21652 21653 21654 21655 21656 21657 21658 21659 21660 21661 21662 21663 21664 21665 21666 21667 21668 21669 21670 21671 21672 21673 21674 21675 21676 21677 21678 21679 21680 21681 21682 21683 21684 21685 21686 21687 21688 21689 21690 21691 21692 21693 21694 21695 21696 21697 21698 21699 21700 21701 21702 21703 21704 21705 21706 21707 21708 21709 21710 21711 21712 21713 21714 21715 21716 21717 21718 21719 21720 21721 21722 21723 21724 21725 21726 21727 21728 21729 21730 21731 21732 21733 21734 21735 21736 21737 21738 21739 21740 21741 21742 21743 21744 21745 21746 21747 21748 21749 21750 21751 21752 21753 21754 21755 21756 21757 21758 21759 21760 21761 21762 21763 21764 21765 21766 21767 21768 21769 21770 21771 21772 21773 21774 21775 21776 21777 21778 21779 21780 21781 21782 21783 21784 21785 21786 21787 21788 21789 21790 21791 21792 21793 21794 21795 21796 21797 21798 21799 21800 21801 21802 21803 21804 21805 21806 21807 21808 21809 21810 21811 21812 21813 21814 21815 21816 21817 21818 21819 21820 21821 21822 21823 21824 21825 21826 21827 21828 21829 21830 21831 21832 21833 21834 21835 21836 21837 21838 21839 21840 21841 21842 21843 21844 21845 21846 21847 21848 21849 21850 21851 21852 21853 21854 21855 21856 21857 21858 21859 21860 21861 21862 21863 21864 21865 21866 21867 21868 21869 21870 21871 21872 21873 21874 21875 21876 21877 21878 21879 21880 21881 21882 21883 21884 21885 21886 21887 21888 21889 21890 21891 21892 21893 21894 21895 21896 21897 21898 21899 21900 21901 21902 21903 21904 21905 21906 21907 21908 21909 21910 21911 21912 21913 21914 21915 21916 21917 21918 21919 21920 21921 21922 21923 21924 21925 21926 21927 21928 21929 21930 21931 21932 21933 21934 21935 21936 21937 21938 21939 21940 21941 21942 21943 21944 21945 21946 21947 21948 21949 21950 21951 21952 21953 21954 21955 21956 21957 21958 21959 21960 21961 21962 21963 21964 21965 21966 21967 21968 21969 21970 21971 21972 21973 21974 21975 21976 21977 21978 21979 21980 21981 21982 21983 21984 21985 21986 21987 21988 21989 21990 21991 21992 21993 21994 21995 21996 21997 21998 21999 22000 22001 22002 22003 22004 22005 22006 22007 22008 22009 22010 22011 22012 22013 22014 22015 22016 22017 22018 22019 22020 22021 22022 22023 22024 22025 22026 22027 22028 22029 22030 22031 22032 22033 22034 22035 22036 22037 22038 22039 22040 22041 22042 22043 22044 22045 22046 22047 22048 22049 22050 22051 22052 22053 22054 22055 22056 22057 22058 22059 22060 22061 22062 22063 22064 22065 22066 22067 22068 22069 22070 22071 22072 22073 22074 22075 22076 22077 22078 22079 22080 22081 22082 22083 22084 22085 22086 22087 22088 22089 22090 22091 22092 22093 22094 22095 22096 22097 22098 22099 22100 22101 22102 22103 22104 22105 22106 22107 22108 22109 22110 22111 22112 22113 22114 22115 22116 22117 22118 22119 22120 22121 22122 22123 22124 22125 22126 22127 22128 22129 22130 22131 22132 22133 22134 22135 22136 22137 22138 22139 22140 22141 22142 22143 22144 22145 22146 22147 22148 22149 22150 22151 22152 22153 22154 22155 22156 22157 22158 22159 22160 22161 22162 22163 22164 22165 22166 22167 22168 22169 22170 22171 22172 22173 22174 22175 22176 22177 22178 22179 22180 22181 22182 22183 22184 22185 22186 22187 22188 22189 22190 22191 22192 22193 22194 22195 22196 22197 22198 22199 22200 22201 22202 22203 22204 22205 22206 22207 22208 22209 22210 22211 22212 22213 22214 22215 22216 22217 22218 22219 22220 22221 22222 22223 22224 22225 22226 22227 22228 22229 22230 22231 22232 22233 22234 22235 22236 22237 22238 22239 22240 22241 22242 22243 22244 22245 22246 22247 22248 22249 22250 22251 22252 22253 22254 22255 22256 22257 22258 22259 22260 22261 22262 22263 22264 22265 22266 22267 22268 22269 22270 22271 22272 22273 22274 22275 22276 22277 22278 22279 22280 22281 22282 22283 22284 22285 22286 22287 22288 22289 22290 22291 22292 22293 22294 22295 22296 22297 22298 22299 22300 22301 22302 22303 22304 22305 22306 22307 22308 22309 22310 22311 22312 22313 22314 22315 22316 22317 22318 22319 22320 22321 22322 22323 22324 22325 22326 22327 22328 22329 22330 22331 22332 22333 22334 22335 22336 22337 22338 22339 22340 22341 22342 22343 22344 22345 22346 22347 22348 22349 22350 22351 22352 22353 22354 22355 22356 22357 22358 22359 22360 22361 22362 22363 22364 22365 22366 22367 22368 22369 22370 22371 22372 22373 22374 22375 22376 22377 22378 22379 22380 22381 22382 22383 22384 22385 22386 22387 22388 22389 22390 22391 22392 22393 22394 22395 22396 22397 22398 22399 22400 22401 22402 22403 22404 22405 22406 22407 22408 22409 22410 22411 22412 22413 22414 22415 22416 22417 22418 22419 22420 22421 22422 22423 22424 22425 22426 22427 22428 22429 22430 22431 22432 22433 22434 22435 22436 22437 22438 22439 22440 22441 22442 22443 22444 22445 22446 22447 22448 22449 22450 22451 22452 22453 22454 22455 22456 22457 22458 22459 22460 22461 22462 22463 22464 22465 22466 22467 22468 22469 22470 22471 22472 22473 22474 22475 22476 22477 22478 22479 22480 22481 22482 22483 22484 22485 22486 22487 22488 22489 22490 22491 22492 22493 22494 22495 22496 22497 22498 22499 22500 22501 22502 22503 22504 22505 22506 22507 22508 22509 22510 22511 22512 22513 22514 22515 22516 22517 22518 22519 22520 22521 22522 22523 22524 22525 22526 22527 22528 22529 22530 22531 22532 22533 22534 22535 22536 22537 22538 22539 22540 22541 22542 22543 22544 22545 22546 22547 22548 22549 22550 22551 22552 22553 22554 22555 22556 22557 22558 22559 22560 22561 22562 22563 22564 22565 22566 22567 22568 22569 22570 22571 22572 22573 22574 22575 22576 22577 22578 22579 22580 22581 22582 22583 22584 22585 22586 22587 22588 22589 22590 22591 22592 22593 22594 22595 22596 22597 22598 22599 22600 22601 22602 22603 22604 22605 22606 22607 22608 22609 22610 22611 22612 22613 22614 22615 22616 22617 22618 22619 22620 22621 22622 22623 22624 22625 22626 22627 22628 22629 22630 22631 22632 22633 22634 22635 22636 22637 22638 22639 22640 22641 22642 22643 22644 22645 22646 22647 22648 22649 22650 22651 22652 22653 22654 22655 22656 22657 22658 22659 22660 22661 22662 22663 22664 22665 22666 22667 22668 22669 22670 22671 22672 22673 22674 22675 22676 22677 22678 22679 22680 22681 22682 22683 22684 22685 22686 22687 22688 22689 22690 22691 22692 22693 22694 22695 22696 22697 22698 22699 22700 22701 22702 22703 22704 22705 22706 22707 22708 22709 22710 22711 22712 22713 22714 22715 22716 22717 22718 22719 22720 22721 22722 22723 22724 22725 22726 22727 22728 22729 22730 22731 22732 22733 22734 22735 22736 22737 22738 22739 22740 22741 22742 22743 22744 22745 22746 22747 22748 22749 22750 22751 22752 22753 22754 22755 22756 22757 22758 22759 22760 22761 22762 22763 22764 22765 22766 22767 22768 22769 22770 22771 22772 22773 22774 22775 22776 22777 22778 22779 22780 22781 22782 22783 22784 22785 22786 22787 22788 22789 22790 22791 22792 22793 22794 22795 22796 22797 22798 22799 22800 22801 22802 22803 22804 22805 22806 22807 22808 22809 22810 22811 22812 22813 22814 22815 22816 22817 22818 22819 22820 22821 22822 22823 22824 22825 22826 22827 22828 22829 22830 22831 22832 22833 22834 22835 22836 22837 22838 22839 22840 22841 22842 22843 22844 22845 22846 22847 22848 22849 22850 22851 22852 22853 22854 22855 22856 22857 22858 22859 22860 22861 22862 22863 22864 22865 22866 22867 22868 22869 22870 22871 22872 22873 22874 22875 22876 22877 22878 22879 22880 22881 22882 22883 22884 22885 22886 22887 22888 22889 22890 22891 22892 22893 22894 22895 22896 22897 22898 22899 22900 22901 22902 22903 22904 22905 22906 22907 22908 22909 22910 22911 22912 22913 22914 22915 22916 22917 22918 22919 22920 22921 22922 22923 22924 22925 22926 22927 22928 22929 22930 22931 22932 22933 22934 22935 22936 22937 22938 22939 22940 22941 22942 22943 22944 22945 22946 22947 22948 22949 22950 22951 22952 22953 22954 22955 22956 22957 22958 22959 22960 22961 22962 22963 22964 22965 22966 22967 22968 22969 22970 22971 22972 22973 22974 22975 22976 22977 22978 22979 22980 22981 22982 22983 22984 22985 22986 22987 22988 22989 22990 22991 22992 22993 22994 22995 22996 22997 22998 22999 23000 23001 23002 23003 23004 23005 23006 23007 23008 23009 23010 23011 23012 23013 23014 23015 23016 23017 23018 23019 23020 23021 23022 23023 23024 23025 23026 23027 23028 23029 23030 23031 23032 23033 23034 23035 23036 23037 23038 23039 23040 23041 23042 23043 23044 23045 23046 23047 23048 23049 23050 23051 23052 23053 23054 23055 23056 23057 23058 23059 23060 23061 23062 23063 23064 23065 23066 23067 23068 23069 23070 23071 23072 23073 23074 23075 23076 23077 23078 23079 23080 23081 23082 23083 23084 23085 23086 23087 23088 23089 23090 23091 23092 23093 23094 23095 23096 23097 23098 23099 23100 23101 23102 23103 23104 23105 23106 23107 23108 23109 23110 23111 23112 23113 23114 23115 23116 23117 23118 23119 23120 23121 23122 23123 23124 23125 23126 23127 23128 23129 23130 23131 23132 23133 23134 23135 23136 23137 23138 23139 23140 23141 23142 23143 23144 23145 23146 23147 23148 23149 23150 23151 23152 23153 23154 23155 23156 23157 23158 23159 23160 23161 23162 23163 23164 23165 23166 23167 23168 23169 23170 23171 23172 23173 23174 23175 23176 23177 23178 23179 23180 23181 23182 23183 23184 23185 23186 23187 23188 23189 23190 23191 23192 23193 23194 23195 23196 23197 23198 23199 23200 23201 23202 23203 23204 23205 23206 23207 23208 23209 23210 23211 23212 23213 23214 23215 23216 23217 23218 23219 23220 23221 23222 23223 23224 23225 23226 23227 23228 23229 23230 23231 23232 23233 23234 23235 23236 23237 23238 23239 23240 23241 23242 23243 23244 23245 23246 23247 23248 23249 23250 23251 23252 23253 23254 23255 23256 23257 23258 23259 23260 23261 23262 23263 23264 23265 23266 23267 23268 23269 23270 23271 23272 23273 23274 23275 23276 23277 23278 23279 23280 23281 23282 23283 23284 23285 23286 23287 23288 23289 23290 23291 23292 23293 23294 23295 23296 23297 23298 23299 23300 23301 23302 23303 23304 23305 23306 23307 23308 23309 23310 23311 23312 23313 23314 23315 23316 23317 23318 23319 23320 23321 23322 23323 23324 23325 23326 23327 23328 23329 23330 23331 23332 23333 23334 23335 23336 23337 23338 23339 23340 23341 23342 23343 23344 23345 23346 23347 23348 23349 23350 23351 23352 23353 23354 23355 23356 23357 23358 23359 23360 23361 23362 23363 23364 23365 23366 23367 23368 23369 23370 23371 23372 23373 23374 23375 23376 23377 23378 23379 23380 23381 23382 23383 23384 23385 23386 23387 23388 23389 23390 23391 23392 23393 23394 23395 23396 23397 23398 23399 23400 23401 23402 23403 23404 23405 23406 23407 23408 23409 23410 23411 23412 23413 23414 23415 23416 23417 23418 23419 23420 23421 23422 23423 23424 23425 23426 23427 23428 23429 23430 23431 23432 23433 23434 23435 23436 23437 23438 23439 23440 23441 23442 23443 23444 23445 23446 23447 23448 23449 23450 23451 23452 23453 23454 23455 23456 23457 23458 23459 23460 23461 23462 23463 23464 23465 23466 23467 23468 23469 23470 23471 23472 23473 23474 23475 23476 23477 23478 23479 23480 23481 23482 23483 23484 23485 23486 23487 23488 23489 23490 23491 23492 23493 23494 23495 23496 23497 23498 23499 23500 23501 23502 23503 23504 23505 23506 23507 23508 23509 23510 23511 23512 23513 23514 23515 23516 23517 23518 23519 23520 23521 23522 23523 23524 23525 23526 23527 23528 23529 23530 23531 23532 23533 23534 23535 23536 23537 23538 23539 23540 23541 23542 23543 23544 23545 23546 23547 23548 23549 23550 23551 23552 23553 23554 23555 23556 23557 23558 23559 23560 23561 23562 23563 23564 23565 23566 23567 23568 23569 23570 23571 23572 23573 23574 23575 23576 23577 23578 23579 23580 23581 23582 23583 23584 23585 23586 23587 23588 23589 23590 23591 23592 23593 23594 23595 23596 23597 23598 23599 23600 23601 23602 23603 23604 23605 23606 23607 23608 23609 23610 23611 23612 23613 23614 23615 23616 23617 23618 23619 23620 23621 23622 23623 23624 23625 23626 23627 23628 23629 23630 23631 23632 23633 23634 23635 23636 23637 23638 23639 23640 23641 23642 23643 23644 23645 23646 23647 23648 23649 23650 23651 23652 23653 23654 23655 23656 23657 23658 23659 23660 23661 23662 23663 23664 23665 23666 23667 23668 23669 23670 23671 23672 23673 23674 23675 23676 23677 23678 23679 23680 23681 23682 23683 23684 23685 23686 23687 23688 23689 23690 23691 23692 23693 23694 23695 23696 23697 23698 23699 23700 23701 23702 23703 23704 23705 23706 23707 23708 23709 23710 23711 23712 23713 23714 23715 23716 23717 23718 23719 23720 23721 23722 23723 23724 23725 23726 23727 23728 23729 23730 23731 23732 23733 23734 23735 23736 23737 23738 23739 23740 23741 23742 23743 23744 23745 23746 23747 23748 23749 23750 23751 23752 23753 23754 23755 23756 23757 23758 23759 23760 23761 23762 23763 23764 23765 23766 23767 23768 23769 23770 23771 23772 23773 23774 23775 23776 23777 23778 23779 23780 23781 23782 23783 23784 23785 23786 23787 23788 23789 23790 23791 23792 23793 23794 23795 23796 23797 23798 23799 23800 23801 23802 23803 23804 23805 23806 23807 23808 23809 23810 23811 23812 23813 23814 23815 23816 23817 23818 23819 23820 23821 23822 23823 23824 23825 23826 23827 23828 23829 23830 23831 23832 23833 23834 23835 23836 23837 23838 23839 23840 23841 23842 23843 23844 23845 23846 23847 23848 23849 23850 23851 23852 23853 23854 23855 23856 23857 23858 23859 23860 23861 23862 23863 23864 23865 23866 23867 23868 23869 23870 23871 23872 23873 23874 23875 23876 23877 23878 23879 23880 23881 23882 23883 23884 23885 23886 23887 23888 23889 23890 23891 23892 23893 23894 23895 23896 23897 23898 23899 23900 23901 23902 23903 23904 23905 23906 23907 23908 23909 23910 23911 23912 23913 23914 23915 23916 23917 23918 23919 23920 23921 23922 23923 23924 23925 23926 23927 23928 23929 23930 23931 23932 23933 23934 23935 23936 23937 23938 23939 23940 23941 23942 23943 23944 23945 23946 23947 23948 23949 23950 23951 23952 23953 23954 23955 23956 23957 23958 23959 23960 23961 23962 23963 23964 23965 23966 23967 23968 23969 23970 23971 23972 23973 23974 23975 23976 23977 23978 23979 23980 23981 23982 23983 23984 23985 23986 23987 23988 23989 23990 23991 23992 23993 23994 23995 23996 23997 23998 23999 24000 24001 24002 24003 24004 24005 24006 24007 24008 24009 24010 24011 24012 24013 24014 24015 24016 24017 24018 24019 24020 24021 24022 24023 24024 24025 24026 24027 24028 24029 24030 24031 24032 24033 24034 24035 24036 24037 24038 24039 24040 24041 24042 24043 24044 24045 24046 24047 24048 24049 24050 24051 24052 24053 24054 24055 24056 24057 24058 24059 24060 24061 24062 24063 24064 24065 24066 24067 24068 24069 24070 24071 24072 24073 24074 24075 24076 24077 24078 24079 24080 24081 24082 24083 24084 24085 24086 24087 24088 24089 24090 24091 24092 24093 24094 24095 24096 24097 24098 24099 24100 24101 24102 24103 24104 24105 24106 24107 24108 24109 24110 24111 24112 24113 24114 24115 24116 24117 24118 24119 24120 24121 24122 24123 24124 24125 24126 24127 24128 24129 24130 24131 24132 24133 24134 24135 24136 24137 24138 24139 24140 24141 24142 24143 24144 24145 24146 24147 24148 24149 24150 24151 24152 24153 24154 24155 24156 24157 24158 24159 24160 24161 24162 24163 24164 24165 24166 24167 24168 24169 24170 24171 24172 24173 24174 24175 24176 24177 24178 24179 24180 24181 24182 24183 24184 24185 24186 24187 24188 24189 24190 24191 24192 24193 24194 24195 24196 24197 24198 24199 24200 24201 24202 24203 24204 24205 24206 24207 24208 24209 24210 24211 24212 24213 24214 24215 24216 24217 24218 24219 24220 24221 24222 24223 24224 24225 24226 24227 24228 24229 24230 24231 24232 24233 24234 24235 24236 24237 24238 24239 24240 24241 24242 24243 24244 24245 24246 24247 24248 24249 24250 24251 24252 24253 24254 24255 24256 24257 24258 24259 24260 24261 24262 24263 24264 24265 24266 24267 24268 24269 24270 24271 24272 24273 24274 24275 24276 24277 24278 24279 24280 24281 24282 24283 24284 24285 24286 24287 24288 24289 24290 24291 24292 24293 24294 24295 24296 24297 24298 24299 24300 24301 24302 24303 24304 24305 24306 24307 24308 24309 24310 24311 24312 24313 24314 24315 24316 24317 24318 24319 24320 24321 24322 24323 24324 24325 24326 24327 24328 24329 24330 24331 24332 24333 24334 24335 24336 24337 24338 24339 24340 24341 24342 24343 24344 24345 24346 24347 24348 24349 24350 24351 24352 24353 24354 24355 24356 24357 24358 24359 24360 24361 24362 24363 24364 24365 24366 24367 24368 24369 24370 24371 24372 24373 24374 24375 24376 24377 24378 24379 24380 24381 24382 24383 24384 24385 24386 24387 24388 24389 24390 24391 24392 24393 24394 24395 24396 24397 24398 24399 24400 24401 24402 24403 24404 24405 24406 24407 24408 24409 24410 24411 24412 24413 24414 24415 24416 24417 24418 24419 24420 24421 24422 24423 24424 24425 24426 24427 24428 24429 24430 24431 24432 24433 24434 24435 24436 24437 24438 24439 24440 24441 24442 24443 24444 24445 24446 24447 24448 24449 24450 24451 24452 24453 24454 24455 24456 24457 24458 24459 24460 24461 24462 24463 24464 24465 24466 24467 24468 24469 24470 24471 24472 24473 24474 24475 24476 24477 24478 24479 24480 24481 24482 24483 24484 24485 24486 24487 24488 24489 24490 24491 24492 24493 24494 24495 24496 24497 24498 24499 24500 24501 24502 24503 24504 24505 24506 24507 24508 24509 24510 24511 24512 24513 24514 24515 24516 24517 24518 24519 24520 24521 24522 24523 24524 24525 24526 24527 24528 24529 24530 24531 24532 24533 24534 24535 24536 24537 24538 24539 24540 24541 24542 24543 24544 24545 24546 24547 24548 24549 24550 24551 24552 24553 24554 24555 24556 24557 24558 24559 24560 24561 24562 24563 24564 24565 24566 24567 24568 24569 24570 24571 24572 24573 24574 24575 24576 24577 24578 24579 24580 24581 24582 24583 24584 24585 24586 24587 24588 24589 24590 24591 24592 24593 24594 24595 24596 24597 24598 24599 24600 24601 24602 24603 24604 24605 24606 24607 24608 24609 24610 24611 24612 24613 24614 24615 24616 24617 24618 24619 24620 24621 24622 24623 24624 24625 24626 24627 24628 24629 24630 24631 24632 24633 24634 24635 24636 24637 24638 24639 24640 24641 24642 24643 24644 24645 24646 24647 24648 24649 24650 24651 24652 24653 24654 24655 24656 24657 24658 24659 24660 24661 24662 24663 24664 24665 24666 24667 24668 24669 24670 24671 24672 24673 24674 24675 24676 24677 24678 24679 24680 24681 24682 24683 24684 24685 24686 24687 24688 24689 24690 24691 24692 24693 24694 24695 24696 24697 24698 24699 24700 24701 24702 24703 24704 24705 24706 24707 24708 24709 24710 24711 24712 24713 24714 24715 24716 24717 24718 24719 24720 24721 24722 24723 24724 24725 24726 24727 24728 24729 24730 24731 24732 24733 24734 24735 24736 24737 24738 24739 24740 24741 24742 24743 24744 24745 24746 24747 24748 24749 24750 24751 24752 24753 24754 24755 24756 24757 24758 24759 24760 24761 24762 24763 24764 24765 24766 24767 24768 24769 24770 24771 24772 24773 24774 24775 24776 24777 24778 24779 24780 24781 24782 24783 24784 24785 24786 24787 24788 24789 24790 24791 24792 24793 24794 24795 24796 24797 24798 24799 24800 24801 24802 24803 24804 24805 24806 24807 24808 24809 24810 24811 24812 24813 24814 24815 24816 24817 24818 24819 24820 24821 24822 24823 24824 24825 24826 24827 24828 24829 24830 24831 24832 24833 24834 24835 24836 24837 24838 24839 24840 24841 24842 24843 24844 24845 24846 24847 24848 24849 24850 24851 24852 24853 24854 24855 24856 24857 24858 24859 24860 24861 24862 24863 24864 24865 24866 24867 24868 24869 24870 24871 24872 24873 24874 24875 24876 24877 24878 24879 24880 24881 24882 24883 24884 24885 24886 24887 24888 24889 24890 24891 24892 24893 24894 24895 24896 24897 24898 24899 24900 24901 24902 24903 24904 24905 24906 24907 24908 24909 24910 24911 24912 24913 24914 24915 24916 24917 24918 24919 24920 24921 24922 24923 24924 24925 24926 24927 24928 24929 24930 24931 24932 24933 24934 24935 24936 24937 24938 24939 24940 24941 24942 24943 24944 24945 24946 24947 24948 24949 24950 24951 24952 24953 24954 24955 24956 24957 24958 24959 24960 24961 24962 24963 24964 24965 24966 24967 24968 24969 24970 24971 24972 24973 24974 24975 24976 24977 24978 24979 24980 24981 24982 24983 24984 24985 24986 24987 24988 24989 24990 24991 24992 24993 24994 24995 24996 24997 24998 24999 25000 25001 25002 25003 25004 25005 25006 25007 25008 25009 25010 25011 25012 25013 25014 25015 25016 25017 25018 25019 25020 25021 25022 25023 25024 25025 25026 25027 25028 25029 25030 25031 25032 25033 25034 25035 25036 25037 25038 25039 25040 25041 25042 25043 25044 25045 25046 25047 25048 25049 25050 25051 25052 25053 25054 25055 25056 25057 25058 25059 25060 25061 25062 25063 25064 25065 25066 25067 25068 25069 25070 25071 25072 25073 25074 25075 25076 25077 25078 25079 25080 25081 25082 25083 25084 25085 25086 25087 25088 25089 25090 25091 25092 25093 25094 25095 25096 25097 25098 25099 25100 25101 25102 25103 25104 25105 25106 25107 25108 25109 25110 25111 25112 25113 25114 25115 25116 25117 25118 25119 25120 25121 25122 25123 25124 25125 25126 25127 25128 25129 25130 25131 25132 25133 25134 25135 25136 25137 25138 25139 25140 25141 25142 25143 25144 25145 25146 25147 25148 25149 25150 25151 25152 25153 25154 25155 25156 25157 25158 25159 25160 25161 25162 25163 25164 25165 25166 25167 25168 25169 25170 25171 25172 25173 25174 25175 25176 25177 25178 25179 25180 25181 25182 25183 25184 25185 25186 25187 25188 25189 25190 25191 25192 25193 25194 25195 25196 25197 25198 25199 25200 25201 25202 25203 25204 25205 25206 25207 25208 25209 25210 25211 25212 25213 25214 25215 25216 25217 25218 25219 25220 25221 25222 25223 25224 25225 25226 25227 25228 25229 25230 25231 25232 25233 25234 25235 25236 25237 25238 25239 25240 25241 25242 25243 25244 25245 25246 25247 25248 25249 25250 25251 25252 25253 25254 25255 25256 25257 25258 25259 25260 25261 25262 25263 25264 25265 25266 25267 25268 25269 25270 25271 25272 25273 25274 25275 25276 25277 25278 25279 25280 25281 25282 25283 25284 25285 25286 25287 25288 25289 25290 25291 25292 25293 25294 25295 25296 25297 25298 25299 25300 25301 25302 25303 25304 25305 25306 25307 25308 25309 25310 25311 25312 25313 25314 25315 25316 25317 25318 25319 25320 25321 25322 25323 25324 25325 25326 25327 25328 25329 25330 25331 25332 25333 25334 25335 25336 25337 25338 25339 25340 25341 25342 25343 25344 25345 25346 25347 25348 25349 25350 25351 25352 25353 25354 25355 25356 25357 25358 25359 25360 25361 25362 25363 25364 25365 25366 25367 25368 25369 25370 25371 25372 25373 25374 25375 25376 25377 25378 25379 25380 25381 25382 25383 25384 25385 25386 25387 25388 25389 25390 25391 25392 25393 25394 25395 25396 25397 25398 25399 25400 25401 25402 25403 25404 25405 25406 25407 25408 25409 25410 25411 25412 25413 25414 25415 25416 25417 25418 25419 25420 25421 25422 25423 25424 25425 25426 25427 25428 25429 25430 25431 25432 25433 25434 25435 25436 25437 25438 25439 25440 25441 25442 25443 25444 25445 25446 25447 25448 25449 25450 25451 25452 25453 25454 25455 25456 25457 25458 25459 25460 25461 25462 25463 25464 25465 25466 25467 25468 25469 25470 25471 25472 25473 25474 25475 25476 25477 25478 25479 25480 25481 25482 25483 25484 25485 25486 25487 25488 25489 25490 25491 25492 25493 25494 25495 25496 25497 25498 25499 25500 25501 25502 25503 25504 25505 25506 25507 25508 25509 25510 25511 25512 25513 25514 25515 25516 25517 25518 25519 25520 25521 25522 25523 25524 25525 25526 25527 25528 25529 25530 25531 25532 25533 25534 25535 25536 25537 25538 25539 25540 25541 25542 25543 25544 25545 25546 25547 25548 25549 25550 25551 25552 25553 25554 25555 25556 25557 25558 25559 25560 25561 25562 25563 25564 25565 25566 25567 25568 25569 25570 25571 25572 25573 25574 25575 25576 25577 25578 25579 25580 25581 25582 25583 25584 25585 25586 25587 25588 25589 25590 25591 25592 25593 25594 25595 25596 25597 25598 25599 25600 25601 25602 25603 25604 25605 25606 25607 25608 25609 25610 25611 25612 25613 25614 25615 25616 25617 25618 25619 25620 25621 25622 25623 25624 25625 25626 25627 25628 25629 25630 25631 25632 25633 25634 25635 25636 25637 25638 25639 25640 25641 25642 25643 25644 25645 25646 25647 25648 25649 25650 25651 25652 25653 25654 25655 25656 25657 25658 25659 25660 25661 25662 25663 25664 25665 25666 25667 25668 25669 25670 25671 25672 25673 25674 25675 25676 25677 25678 25679 25680 25681 25682 25683 25684 25685 25686 25687 25688 25689 25690 25691 25692 25693 25694 25695 25696 25697 25698 25699 25700 25701 25702 25703 25704 25705 25706 25707 25708 25709 25710 25711 25712 25713 25714 25715 25716 25717 25718 25719 25720 25721 25722 25723 25724 25725 25726 25727 25728 25729 25730 25731 25732 25733 25734 25735 25736 25737 25738 25739 25740 25741 25742 25743 25744 25745 25746 25747 25748 25749 25750 25751 25752 25753 25754 25755 25756 25757 25758 25759 25760 25761 25762 25763 25764 25765 25766 25767 25768 25769 25770 25771 25772 25773 25774 25775 25776 25777 25778 25779 25780 25781 25782 25783 25784 25785 25786 25787 25788 25789 25790 25791 25792 25793 25794 25795 25796 25797 25798 25799 25800 25801 25802 25803 25804 25805 25806 25807 25808 25809 25810 25811 25812 25813 25814 25815 25816 25817 25818 25819 25820 25821 25822 25823 25824 25825 25826 25827 25828 25829 25830 25831 25832 25833 25834 25835 25836 25837 25838 25839 25840 25841 25842 25843 25844 25845 25846 25847 25848 25849 25850 25851 25852 25853 25854 25855 25856 25857 25858 25859 25860 25861 25862 25863 25864 25865 25866 25867 25868 25869 25870 25871 25872 25873 25874 25875 25876 25877 25878 25879 25880 25881 25882 25883 25884 25885 25886 25887 25888 25889 25890 25891 25892 25893 25894 25895 25896 25897 25898 25899 25900 25901 25902 25903 25904 25905 25906 25907 25908 25909 25910 25911 25912 25913 25914 25915 25916 25917 25918 25919 25920 25921 25922 25923 25924 25925 25926 25927 25928 25929 25930 25931 25932 25933 25934 25935 25936 25937 25938 25939 25940 25941 25942 25943 25944 25945 25946 25947 25948 25949 25950 25951 25952 25953 25954 25955 25956 25957 25958 25959 25960 25961 25962 25963 25964 25965 25966 25967 25968 25969 25970 25971 25972 25973 25974 25975 25976 25977 25978 25979 25980 25981 25982 25983 25984 25985 25986 25987 25988 25989 25990 25991 25992 25993 25994 25995 25996 25997 25998 25999 26000 26001 26002 26003 26004 26005 26006 26007 26008 26009 26010 26011 26012 26013 26014 26015 26016 26017 26018 26019 26020 26021 26022 26023 26024 26025 26026 26027 26028 26029 26030 26031 26032 26033 26034 26035 26036 26037 26038 26039 26040 26041 26042 26043 26044 26045 26046 26047 26048 26049 26050 26051 26052 26053 26054 26055 26056 26057 26058 26059 26060 26061 26062 26063 26064 26065 26066 26067 26068 26069 26070 26071 26072 26073 26074 26075 26076 26077 26078 26079 26080 26081 26082 26083 26084 26085 26086 26087 26088 26089 26090 26091 26092 26093 26094 26095 26096 26097 26098 26099 26100 26101 26102 26103 26104 26105 26106 26107 26108 26109 26110 26111 26112 26113 26114 26115 26116 26117 26118 26119 26120 26121 26122 26123 26124 26125 26126 26127 26128 26129 26130 26131 26132 26133 26134 26135 26136 26137 26138 26139 26140 26141 26142 26143 26144 26145 26146 26147 26148 26149 26150 26151 26152 26153 26154 26155 26156 26157 26158 26159 26160 26161 26162 26163 26164 26165 26166 26167 26168 26169 26170 26171 26172 26173 26174 26175 26176 26177 26178 26179 26180 26181 26182 26183 26184 26185 26186 26187 26188 26189 26190 26191 26192 26193 26194 26195 26196 26197 26198 26199 26200 26201 26202 26203 26204 26205 26206 26207 26208 26209 26210 26211 26212 26213 26214 26215 26216 26217 26218 26219 26220 26221 26222 26223 26224 26225 26226 26227 26228 26229 26230 26231 26232 26233 26234 26235 26236 26237 26238 26239 26240 26241 26242 26243 26244 26245 26246 26247 26248 26249 26250 26251 26252 26253 26254 26255 26256 26257 26258 26259 26260 26261 26262 26263 26264 26265 26266 26267 26268 26269 26270 26271 26272 26273 26274 26275 26276 26277 26278 26279 26280 26281 26282 26283 26284 26285 26286 26287 26288 26289 26290 26291 26292 26293 26294 26295 26296 26297 26298 26299 26300 26301 26302 26303 26304 26305 26306 26307 26308 26309 26310 26311 26312 26313 26314 26315 26316 26317 26318 26319 26320 26321 26322 26323 26324 26325 26326 26327 26328 26329 26330 26331 26332 26333 26334 26335 26336 26337 26338 26339 26340 26341 26342 26343 26344 26345 26346 26347 26348 26349 26350 26351 26352 26353 26354 26355 26356 26357 26358 26359 26360 26361 26362 26363 26364 26365 26366 26367 26368 26369 26370 26371 26372 26373 26374 26375 26376 26377 26378 26379 26380 26381 26382 26383 26384 26385 26386 26387 26388 26389 26390 26391 26392 26393 26394 26395 26396 26397 26398 26399 26400 26401 26402 26403 26404 26405 26406 26407 26408 26409 26410 26411 26412 26413 26414 26415 26416 26417 26418 26419 26420 26421 26422 26423 26424 26425 26426 26427 26428 26429 26430 26431 26432 26433 26434 26435 26436 26437 26438 26439 26440 26441 26442 26443 26444 26445 26446 26447 26448 26449 26450 26451 26452 26453 26454 26455 26456 26457 26458 26459 26460 26461 26462 26463 26464 26465 26466 26467 26468 26469 26470 26471 26472 26473 26474 26475 26476 26477 26478 26479 26480 26481 26482 26483 26484 26485 26486 26487 26488 26489 26490 26491 26492 26493 26494 26495 26496 26497 26498 26499 26500 26501 26502 26503 26504 26505 26506 26507 26508 26509 26510 26511 26512 26513 26514 26515 26516 26517 26518 26519 26520 26521 26522 26523 26524 26525 26526 26527 26528 26529 26530 26531 26532 26533 26534 26535 26536 26537 26538 26539 26540 26541 26542 26543 26544 26545 26546 26547 26548 26549 26550 26551 26552 26553 26554 26555 26556 26557 26558 26559 26560 26561 26562 26563 26564 26565 26566 26567 26568 26569 26570 26571 26572 26573 26574 26575 26576 26577 26578 26579 26580 26581 26582 26583 26584 26585 26586 26587 26588 26589 26590 26591 26592 26593 26594 26595 26596 26597 26598 26599 26600 26601 26602 26603 26604 26605 26606 26607 26608 26609 26610 26611 26612 26613 26614 26615 26616 26617 26618 26619 26620 26621 26622 26623 26624 26625 26626 26627 26628 26629 26630 26631 26632 26633 26634 26635 26636 26637 26638 26639 26640 26641 26642 26643 26644 26645 26646 26647 26648 26649 26650 26651 26652 26653 26654 26655 26656 26657 26658 26659 26660 26661 26662 26663 26664 26665 26666 26667 26668 26669 26670 26671 26672 26673 26674 26675 26676 26677 26678 26679 26680 26681 26682 26683 26684 26685 26686 26687 26688 26689 26690 26691 26692 26693 26694 26695 26696 26697 26698 26699 26700 26701 26702 26703 26704 26705 26706 26707 26708 26709 26710 26711 26712 26713 26714 26715 26716 26717 26718 26719 26720 26721 26722 26723 26724 26725 26726 26727 26728 26729 26730 26731 26732 26733 26734 26735 26736 26737 26738 26739 26740 26741 26742 26743 26744 26745 26746 26747 26748 26749 26750 26751 26752 26753 26754 26755 26756 26757 26758 26759 26760 26761 26762 26763 26764 26765 26766 26767 26768 26769 26770 26771 26772 26773 26774 26775 26776 26777 26778 26779 26780 26781 26782 26783 26784 26785 26786 26787 26788 26789 26790 26791 26792 26793 26794 26795 26796 26797 26798 26799 26800 26801 26802 26803 26804 26805 26806 26807 26808 26809 26810 26811 26812 26813 26814 26815 26816 26817 26818 26819 26820 26821 26822 26823 26824 26825 26826 26827 26828 26829 26830 26831 26832 26833 26834 26835 26836 26837 26838 26839 26840 26841 26842 26843 26844 26845 26846 26847 26848 26849 26850 26851 26852 26853 26854 26855 26856 26857 26858 26859 26860 26861 26862 26863 26864 26865 26866 26867 26868 26869 26870 26871 26872 26873 26874 26875 26876 26877 26878 26879 26880 26881 26882 26883 26884 26885 26886 26887 26888 26889 26890 26891 26892 26893 26894 26895 26896 26897 26898 26899 26900 26901 26902 26903 26904 26905 26906 26907 26908 26909 26910 26911 26912 26913 26914 26915 26916 26917 26918 26919 26920 26921 26922 26923 26924 26925 26926 26927 26928 26929 26930 26931 26932 26933 26934 26935 26936 26937 26938 26939 26940 26941 26942 26943 26944 26945 26946 26947 26948 26949 26950 26951 26952 26953 26954 26955 26956 26957 26958 26959 26960 26961 26962 26963 26964 26965 26966 26967 26968 26969 26970 26971 26972 26973 26974 26975 26976 26977 26978 26979 26980 26981 26982 26983 26984 26985 26986 26987 26988 26989 26990 26991 26992 26993 26994 26995 26996 26997 26998 26999 27000 27001 27002 27003 27004 27005 27006 27007 27008 27009 27010 27011 27012 27013 27014 27015 27016 27017 27018 27019 27020 27021 27022 27023 27024 27025 27026 27027 27028 27029 27030 27031 27032 27033 27034 27035 27036 27037 27038 27039 27040 27041 27042 27043 27044 27045 27046 27047 27048 27049 27050 27051 27052 27053 27054 27055 27056 27057 27058 27059 27060 27061 27062 27063 27064 27065 27066 27067 27068 27069 27070 27071 27072 27073 27074 27075 27076 27077 27078 27079 27080 27081 27082 27083 27084 27085 27086 27087 27088 27089 27090 27091 27092 27093 27094 27095 27096 27097 27098 27099 27100 27101 27102 27103 27104 27105 27106 27107 27108 27109 27110 27111 27112 27113 27114 27115 27116 27117 27118 27119 27120 27121 27122 27123 27124 27125 27126 27127 27128 27129 27130 27131 27132 27133 27134 27135 27136 27137 27138 27139 27140 27141 27142 27143 27144 27145 27146 27147 27148 27149 27150 27151 27152 27153 27154 27155 27156 27157 27158 27159 27160 27161 27162 27163 27164 27165 27166 27167 27168 27169 27170 27171 27172 27173 27174 27175 27176 27177 27178 27179 27180 27181 27182 27183 27184 27185 27186 27187 27188 27189 27190 27191 27192 27193 27194 27195 27196 27197 27198 27199 27200 27201 27202 27203 27204 27205 27206 27207 27208 27209 27210 27211 27212 27213 27214 27215 27216 27217 27218 27219 27220 27221 27222 27223 27224 27225 27226 27227 27228 27229 27230 27231 27232 27233 27234 27235 27236 27237 27238 27239 27240 27241 27242 27243 27244 27245 27246 27247 27248 27249 27250 27251 27252 27253 27254 27255 27256 27257 27258 27259 27260 27261 27262 27263 27264 27265 27266 27267 27268 27269 27270 27271 27272 27273 27274 27275 27276 27277 27278 27279 27280 27281 27282 27283 27284 27285 27286 27287 27288 27289 27290 27291 27292 27293 27294 27295 27296 27297 27298 27299 27300 27301 27302 27303 27304 27305 27306 27307 27308 27309 27310 27311 27312 27313 27314 27315 27316 27317 27318 27319 27320 27321 27322 27323 27324 27325 27326 27327 27328 27329 27330 27331 27332 27333 27334 27335 27336 27337 27338 27339 27340 27341 27342 27343 27344 27345 27346 27347 27348 27349 27350 27351 27352 27353 27354 27355 27356 27357 27358 27359 27360 27361 27362 27363 27364 27365 27366 27367 27368 27369 27370 27371 27372 27373 27374 27375 27376 27377 27378 27379 27380 27381 27382 27383 27384 27385 27386 27387 27388 27389 27390 27391 27392 27393 27394 27395 27396 27397 27398 27399 27400 27401 27402 27403 27404 27405 27406 27407 27408 27409 27410 27411 27412 27413 27414 27415 27416 27417 27418 27419 27420 27421 27422 27423 27424 27425 27426 27427 27428 27429 27430 27431 27432 27433 27434 27435 27436 27437 27438 27439 27440 27441 27442 27443 27444 27445 27446 27447 27448 27449 27450 27451 27452 27453 27454 27455 27456 27457 27458 27459 27460 27461 27462 27463 27464 27465 27466 27467 27468 27469 27470 27471 27472 27473 27474 27475 27476 27477 27478 27479 27480 27481 27482 27483 27484 27485 27486 27487 27488 27489 27490 27491 27492 27493 27494 27495 27496 27497 27498 27499 27500 27501 27502 27503 27504 27505 27506 27507 27508 27509 27510 27511 27512 27513 27514 27515 27516 27517 27518 27519 27520 27521 27522 27523 27524 27525 27526 27527 27528 27529 27530 27531 27532 27533 27534 27535 27536 27537 27538 27539 27540 27541 27542 27543 27544 27545 27546 27547 27548 27549 27550 27551 27552 27553 27554 27555 27556 27557 27558 27559 27560 27561 27562 27563 27564 27565 27566 27567 27568 27569 27570 27571 27572 27573 27574 27575 27576 27577 27578 27579 27580 27581 27582 27583 27584 27585 27586 27587 27588 27589 27590 27591 27592 27593 27594 27595 27596 27597 27598 27599 27600 27601 27602 27603 27604 27605 27606 27607 27608 27609 27610 27611 27612 27613 27614 27615 27616 27617 27618 27619 27620 27621 27622 27623 27624 27625 27626 27627 27628 27629 27630 27631 27632 27633 27634 27635 27636 27637 27638 27639 27640 27641 27642 27643 27644 27645 27646 27647 27648 27649 27650 27651 27652 27653 27654 27655 27656 27657 27658 27659 27660 27661 27662 27663 27664 27665 27666 27667 27668 27669 27670 27671 27672 27673 27674 27675 27676 27677 27678 27679 27680 27681 27682 27683 27684 27685 27686 27687 27688 27689 27690 27691 27692 27693 27694 27695 27696 27697 27698 27699 27700 27701 27702 27703 27704 27705 27706 27707 27708 27709 27710 27711 27712 27713 27714 27715 27716 27717 27718 27719 27720 27721 27722 27723 27724 27725 27726 27727 27728 27729 27730 27731 27732 27733 27734 27735 27736 27737 27738 27739 27740 27741 27742 27743 27744 27745 27746 27747 27748 27749 27750 27751 27752 27753 27754 27755 27756 27757 27758 27759 27760 27761 27762 27763 27764 27765 27766 27767 27768 27769 27770 27771 27772 27773 27774 27775 27776 27777 27778 27779 27780 27781 27782 27783 27784 27785 27786 27787 27788 27789 27790 27791 27792 27793 27794 27795 27796 27797 27798 27799 27800 27801 27802 27803 27804 27805 27806 27807 27808 27809 27810 27811 27812 27813 27814 27815 27816 27817 27818 27819 27820 27821 27822 27823 27824 27825 27826 27827 27828 27829 27830 27831 27832 27833 27834 27835 27836 27837 27838 27839 27840 27841 27842 27843 27844 27845 27846 27847 27848 27849 27850 27851 27852 27853 27854 27855 27856 27857 27858 27859 27860 27861 27862 27863 27864 27865 27866 27867 27868 27869 27870 27871 27872 27873 27874 27875 27876 27877 27878 27879 27880 27881 27882 27883 27884 27885 27886 27887 27888 27889 27890 27891 27892 27893 27894 27895 27896 27897 27898 27899 27900 27901 27902 27903 27904 27905 27906 27907 27908 27909 27910 27911 27912 27913 27914 27915 27916 27917 27918 27919 27920 27921 27922 27923 27924 27925 27926 27927 27928 27929 27930 27931 27932 27933 27934 27935 27936 27937 27938 27939 27940 27941 27942 27943 27944 27945 27946 27947 27948 27949 27950 27951 27952 27953 27954 27955 27956 27957 27958 27959 27960 27961 27962 27963 27964 27965 27966 27967 27968 27969 27970 27971 27972 27973 27974 27975 27976 27977 27978 27979 27980 27981 27982 27983 27984 27985 27986 27987 27988 27989 27990 27991 27992 27993 27994 27995 27996 27997 27998 27999 28000 28001 28002 28003 28004 28005 28006 28007 28008 28009 28010 28011 28012 28013 28014 28015 28016 28017 28018 28019 28020 28021 28022 28023 28024 28025 28026 28027 28028 28029 28030 28031 28032 28033 28034 28035 28036 28037 28038 28039 28040 28041 28042 28043 28044 28045 28046 28047 28048 28049 28050 28051 28052 28053 28054 28055 28056 28057 28058 28059 28060 28061 28062 28063 28064 28065 28066 28067 28068 28069 28070 28071 28072 28073 28074 28075 28076 28077 28078 28079 28080 28081 28082 28083 28084 28085 28086 28087 28088 28089 28090 28091 28092 28093 28094 28095 28096 28097 28098 28099 28100 28101 28102 28103 28104 28105 28106 28107 28108 28109 28110 28111 28112 28113 28114 28115 28116 28117 28118 28119 28120 28121 28122 28123 28124 28125 28126 28127 28128 28129 28130 28131 28132 28133 28134 28135 28136 28137 28138 28139 28140 28141 28142 28143 28144 28145 28146 28147 28148 28149 28150 28151 28152 28153 28154 28155 28156 28157 28158 28159 28160 28161 28162 28163 28164 28165 28166 28167 28168 28169 28170 28171 28172 28173 28174 28175 28176 28177 28178 28179 28180 28181 28182 28183 28184 28185 28186 28187 28188 28189 28190 28191 28192 28193 28194 28195 28196 28197 28198 28199 28200 28201 28202 28203 28204 28205 28206 28207 28208 28209 28210 28211 28212 28213 28214 28215 28216 28217 28218 28219 28220 28221 28222 28223 28224 28225 28226 28227 28228 28229 28230 28231 28232 28233 28234 28235 28236 28237 28238 28239 28240 28241 28242 28243 28244 28245 28246 28247 28248 28249 28250 28251 28252 28253 28254 28255 28256 28257 28258 28259 28260 28261 28262 28263 28264 28265 28266 28267 28268 28269 28270 28271 28272 28273 28274 28275 28276 28277 28278 28279 28280 28281 28282 28283 28284 28285 28286 28287 28288 28289 28290 28291 28292 28293 28294 28295 28296 28297 28298 28299 28300 28301 28302 28303 28304 28305 28306 28307 28308 28309 28310 28311 28312 28313 28314 28315 28316 28317 28318 28319 28320 28321 28322 28323 28324 28325 28326 28327 28328 28329 28330 28331 28332 28333 28334 28335 28336 28337 28338 28339 28340 28341 28342 28343 28344 28345 28346 28347 28348 28349 28350 28351 28352 28353 28354 28355 28356 28357 28358 28359 28360 28361 28362 28363 28364 28365 28366 28367 28368 28369 28370 28371 28372 28373 28374 28375 28376 28377 28378 28379 28380 28381 28382 28383 28384 28385 28386 28387 28388 28389 28390 28391 28392 28393 28394 28395 28396 28397 28398 28399 28400 28401 28402 28403 28404 28405 28406 28407 28408 28409 28410 28411 28412 28413 28414 28415 28416 28417 28418 28419 28420 28421 28422 28423 28424 28425 28426 28427 28428 28429 28430 28431 28432 28433 28434 28435 28436 28437 28438 28439 28440 28441 28442 28443 28444 28445 28446 28447 28448 28449 28450 28451 28452 28453 28454 28455 28456 28457 28458 28459 28460 28461 28462 28463 28464 28465 28466 28467 28468 28469 28470 28471 28472 28473 28474 28475 28476 28477 28478 28479 28480 28481 28482 28483 28484 28485 28486 28487 28488 28489 28490 28491 28492 28493 28494 28495 28496 28497 28498 28499 28500 28501 28502 28503 28504 28505 28506 28507 28508 28509 28510 28511 28512 28513 28514 28515 28516 28517 28518 28519 28520 28521 28522 28523 28524 28525 28526 28527 28528 28529 28530 28531 28532 28533 28534 28535 28536 28537 28538 28539 28540 28541 28542 28543 28544 28545 28546 28547 28548 28549 28550 28551 28552 28553 28554 28555 28556 28557 28558 28559 28560 28561 28562 28563 28564 28565 28566 28567 28568 28569 28570 28571 28572 28573 28574 28575 28576 28577 28578 28579 28580 28581 28582 28583 28584 28585 28586 28587 28588 28589 28590 28591 28592 28593 28594 28595 28596 28597 28598 28599 28600 28601 28602 28603 28604 28605 28606 28607 28608 28609 28610 28611 28612 28613 28614 28615 28616 28617 28618 28619 28620 28621 28622 28623 28624 28625 28626 28627 28628 28629 28630 28631 28632 28633 28634 28635 28636 28637 28638 28639 28640 28641 28642 28643 28644 28645 28646 28647 28648 28649 28650 28651 28652 28653 28654 28655 28656 28657 28658 28659 28660 28661 28662 28663 28664 28665 28666 28667 28668 28669 28670 28671 28672 28673 28674 28675 28676 28677 28678 28679 28680 28681 28682 28683 28684 28685 28686 28687 28688 28689 28690 28691 28692 28693 28694 28695 28696 28697 28698 28699 28700 28701 28702 28703 28704 28705 28706 28707 28708 28709 28710 28711 28712 28713 28714 28715 28716 28717 28718 28719 28720 28721 28722 28723 28724 28725 28726 28727 28728 28729 28730 28731 28732 28733 28734 28735 28736 28737 28738 28739 28740 28741 28742 28743 28744 28745 28746 28747 28748 28749 28750 28751 28752 28753 28754 28755 28756 28757 28758 28759 28760 28761 28762 28763 28764 28765 28766 28767 28768 28769 28770 28771 28772 28773 28774 28775 28776 28777 28778 28779 28780 28781 28782 28783 28784 28785 28786 28787 28788 28789 28790 28791 28792 28793 28794 28795 28796 28797 28798 28799 28800 28801 28802 28803 28804 28805 28806 28807 28808 28809 28810 28811 28812 28813 28814 28815 28816 28817 28818 28819 28820 28821 28822 28823 28824 28825 28826 28827 28828 28829 28830 28831 28832 28833 28834 28835 28836 28837 28838 28839 28840 28841 28842 28843 28844 28845 28846 28847 28848 28849 28850 28851 28852 28853 28854 28855 28856 28857 28858 28859 28860 28861 28862 28863 28864 28865 28866 28867 28868 28869 28870 28871 28872 28873 28874 28875 28876 28877 28878 28879 28880 28881 28882 28883 28884 28885 28886 28887 28888 28889 28890 28891 28892 28893 28894 28895 28896 28897 28898 28899 28900 28901 28902 28903 28904 28905 28906 28907 28908 28909 28910 28911 28912 28913 28914 28915 28916 28917 28918 28919 28920 28921 28922 28923 28924 28925 28926 28927 28928 28929 28930 28931 28932 28933 28934 28935 28936 28937 28938 28939 28940 28941 28942 28943 28944 28945 28946 28947 28948 28949 28950 28951 28952 28953 28954 28955 28956 28957 28958 28959 28960 28961 28962 28963 28964 28965 28966 28967 28968 28969 28970 28971 28972 28973 28974 28975 28976 28977 28978 28979 28980 28981 28982 28983 28984 28985 28986 28987 28988 28989 28990 28991 28992 28993 28994 28995 28996 28997 28998 28999 29000 29001 29002 29003 29004 29005 29006 29007 29008 29009 29010 29011 29012 29013 29014 29015 29016 29017 29018 29019 29020 29021 29022 29023 29024 29025 29026 29027 29028 29029 29030 29031 29032 29033 29034 29035 29036 29037 29038 29039 29040 29041 29042 29043 29044 29045 29046 29047 29048 29049 29050 29051 29052 29053 29054 29055 29056 29057 29058 29059 29060 29061 29062 29063 29064 29065 29066 29067 29068 29069 29070 29071 29072 29073 29074 29075 29076 29077 29078 29079 29080 29081 29082 29083 29084 29085 29086 29087 29088 29089 29090 29091 29092 29093 29094 29095 29096 29097 29098 29099 29100 29101 29102 29103 29104 29105 29106 29107 29108 29109 29110 29111 29112 29113 29114 29115 29116 29117 29118 29119 29120 29121 29122 29123 29124 29125 29126 29127 29128 29129 29130 29131 29132 29133 29134 29135 29136 29137 29138 29139 29140 29141 29142 29143 29144 29145 29146 29147 29148 29149 29150 29151 29152 29153 29154 29155 29156 29157 29158 29159 29160 29161 29162 29163 29164 29165 29166 29167 29168 29169 29170 29171 29172 29173 29174 29175 29176 29177 29178 29179 29180 29181 29182 29183 29184 29185 29186 29187 29188 29189 29190 29191 29192 29193 29194 29195 29196 29197 29198 29199 29200 29201 29202 29203 29204 29205 29206 29207 29208 29209 29210 29211 29212 29213 29214 29215 29216 29217 29218 29219 29220 29221 29222 29223 29224 29225 29226 29227 29228 29229 29230 29231 29232 29233 29234 29235 29236 29237 29238 29239 29240 29241 29242 29243 29244 29245 29246 29247 29248 29249 29250 29251 29252 29253 29254 29255 29256 29257 29258 29259 29260 29261 29262 29263 29264 29265 29266 29267 29268 29269 29270 29271 29272 29273 29274 29275 29276 29277 29278 29279 29280 29281 29282 29283 29284 29285 29286 29287 29288 29289 29290 29291 29292 29293 29294 29295 29296 29297 29298 29299 29300 29301 29302 29303 29304 29305 29306 29307 29308 29309 29310 29311 29312 29313 29314 29315 29316 29317 29318 29319 29320 29321 29322 29323 29324 29325 29326 29327 29328 29329 29330 29331 29332 29333 29334 29335 29336 29337 29338 29339 29340 29341 29342 29343 29344 29345 29346 29347 29348 29349 29350 29351 29352 29353 29354 29355 29356 29357 29358 29359 29360 29361 29362 29363 29364 29365 29366 29367 29368 29369 29370 29371 29372 29373 29374 29375 29376 29377 29378 29379 29380 29381 29382 29383 29384 29385 29386 29387 29388 29389 29390 29391 29392 29393 29394 29395 29396 29397 29398 29399 29400 29401 29402 29403 29404 29405 29406 29407 29408 29409 29410 29411 29412 29413 29414 29415 29416 29417 29418 29419 29420 29421 29422 29423 29424 29425 29426 29427 29428 29429 29430 29431 29432 29433 29434 29435 29436 29437 29438 29439 29440 29441 29442 29443 29444 29445 29446 29447 29448 29449 29450 29451 29452 29453 29454 29455 29456 29457 29458 29459 29460 29461 29462 29463 29464 29465 29466 29467 29468 29469 29470 29471 29472 29473 29474 29475 29476 29477 29478 29479 29480 29481 29482 29483 29484 29485 29486 29487 29488 29489 29490 29491 29492 29493 29494 29495 29496 29497 29498 29499 29500 29501 29502 29503 29504 29505 29506 29507 29508 29509 29510 29511 29512 29513 29514 29515 29516 29517 29518 29519 29520 29521 29522 29523 29524 29525 29526 29527 29528 29529 29530 29531 29532 29533 29534 29535 29536 29537 29538 29539 29540 29541 29542 29543 29544 29545 29546 29547 29548 29549 29550 29551 29552 29553 29554 29555 29556 29557 29558 29559 29560 29561 29562 29563 29564 29565 29566 29567 29568 29569 29570 29571 29572 29573 29574 29575 29576 29577 29578 29579 29580 29581 29582 29583 29584 29585 29586 29587 29588 29589 29590 29591 29592 29593 29594 29595 29596 29597 29598 29599 29600 29601 29602 29603 29604 29605 29606 29607 29608 29609 29610 29611 29612 29613 29614 29615 29616 29617 29618 29619 29620 29621 29622 29623 29624 29625 29626 29627 29628 29629 29630 29631 29632 29633 29634 29635 29636 29637 29638 29639 29640 29641 29642 29643 29644 29645 29646 29647 29648 29649 29650 29651 29652 29653 29654 29655 29656 29657 29658 29659 29660 29661 29662 29663 29664 29665 29666 29667 29668 29669 29670 29671 29672 29673 29674 29675 29676 29677 29678 29679 29680 29681 29682 29683 29684 29685 29686 29687 29688 29689 29690 29691 29692 29693 29694 29695 29696 29697 29698 29699 29700 29701 29702 29703 29704 29705 29706 29707 29708 29709 29710 29711 29712 29713 29714 29715 29716 29717 29718 29719 29720 29721 29722 29723 29724 29725 29726 29727 29728 29729 29730 29731 29732 29733 29734 29735 29736 29737 29738 29739 29740 29741 29742 29743 29744 29745 29746 29747 29748 29749 29750 29751 29752 29753 29754 29755 29756 29757 29758 29759 29760 29761 29762 29763 29764 29765 29766 29767 29768 29769 29770 29771 29772 29773 29774 29775 29776 29777 29778 29779 29780 29781 29782 29783 29784 29785 29786 29787 29788 29789 29790 29791 29792 29793 29794 29795 29796 29797 29798 29799 29800 29801 29802 29803 29804 29805 29806 29807 29808 29809 29810 29811 29812 29813 29814 29815 29816 29817 29818 29819 29820 29821 29822 29823 29824 29825 29826 29827 29828 29829 29830 29831 29832 29833 29834 29835 29836 29837 29838 29839 29840 29841 29842 29843 29844 29845 29846 29847 29848 29849 29850 29851 29852 29853 29854 29855 29856 29857 29858 29859 29860 29861 29862 29863 29864 29865 29866 29867 29868 29869 29870 29871 29872 29873 29874 29875 29876 29877 29878 29879 29880 29881 29882 29883 29884 29885 29886 29887 29888 29889 29890 29891 29892 29893 29894 29895 29896 29897 29898 29899 29900 29901 29902 29903 29904 29905 29906 29907 29908 29909 29910 29911 29912 29913 29914 29915 29916 29917 29918 29919 29920 29921 29922 29923 29924 29925 29926 29927 29928 29929 29930 29931 29932 29933 29934 29935 29936 29937 29938 29939 29940 29941 29942 29943 29944 29945 29946 29947 29948 29949 29950 29951 29952 29953 29954 29955 29956 29957 29958 29959 29960 29961 29962 29963 29964 29965 29966 29967 29968 29969 29970 29971 29972 29973 29974 29975 29976 29977 29978 29979 29980 29981 29982 29983 29984 29985 29986 29987 29988 29989 29990 29991 29992 29993 29994 29995 29996 29997 29998 29999 30000 30001 30002 30003 30004 30005 30006 30007 30008 30009 30010 30011 30012 30013 30014 30015 30016 30017 30018 30019 30020 30021 30022 30023 30024 30025 30026 30027 30028 30029 30030 30031 30032 30033 30034 30035 30036 30037 30038 30039 30040 30041 30042 30043 30044 30045 30046 30047 30048 30049 30050 30051 30052 30053 30054 30055 30056 30057 30058 30059 30060 30061 30062 30063 30064 30065 30066 30067 30068 30069 30070 30071 30072 30073 30074 30075 30076 30077 30078 30079 30080 30081 30082 30083 30084 30085 30086 30087 30088 30089 30090 30091 30092 30093 30094 30095 30096 30097 30098 30099 30100 30101 30102 30103 30104 30105 30106 30107 30108 30109 30110 30111 30112 30113 30114 30115 30116 30117 30118 30119 30120 30121 30122 30123 30124 30125 30126 30127 30128 30129 30130 30131 30132 30133 30134 30135 30136 30137 30138 30139 30140 30141 30142 30143 30144 30145 30146 30147 30148 30149 30150 30151 30152 30153 30154 30155 30156 30157 30158 30159 30160 30161 30162 30163 30164 30165 30166 30167 30168 30169 30170 30171 30172 30173 30174 30175 30176 30177 30178 30179 30180 30181 30182 30183 30184 30185 30186 30187 30188 30189 30190 30191 30192 30193 30194 30195 30196 30197 30198 30199 30200 30201 30202 30203 30204 30205 30206 30207 30208 30209 30210 30211 30212 30213 30214 30215 30216 30217 30218 30219 30220 30221 30222 30223 30224 30225 30226 30227 30228 30229 30230 30231 30232 30233 30234 30235 30236 30237 30238 30239 30240 30241 30242 30243 30244 30245 30246 30247 30248 30249 30250 30251 30252 30253 30254 30255 30256 30257 30258 30259 30260 30261 30262 30263 30264 30265 30266 30267 30268 30269 30270 30271 30272 30273 30274 30275 30276 30277 30278 30279 30280 30281 30282 30283 30284 30285 30286 30287 30288 30289 30290 30291 30292 30293 30294 30295 30296 30297 30298 30299 30300 30301 30302 30303 30304 30305 30306 30307 30308 30309 30310 30311 30312 30313 30314 30315 30316 30317 30318 30319 30320 30321 30322 30323 30324 30325 30326 30327 30328 30329 30330 30331 30332 30333 30334 30335 30336 30337 30338 30339 30340 30341 30342 30343 30344 30345 30346 30347 30348 30349 30350 30351 30352 30353 30354 30355 30356 30357 30358 30359 30360 30361 30362 30363 30364 30365 30366 30367 30368 30369 30370 30371 30372 30373 30374 30375 30376 30377 30378 30379 30380 30381 30382 30383 30384 30385 30386 30387 30388 30389 30390 30391 30392 30393 30394 30395 30396 30397 30398 30399 30400 30401 30402 30403 30404 30405 30406 30407 30408 30409 30410 30411 30412 30413 30414 30415 30416 30417 30418 30419 30420 30421 30422 30423 30424 30425 30426 30427 30428 30429 30430 30431 30432 30433 30434 30435 30436 30437 30438 30439 30440 30441 30442 30443 30444 30445 30446 30447 30448 30449 30450 30451 30452 30453 30454 30455 30456 30457 30458 30459 30460 30461 30462 30463 30464 30465 30466 30467 30468 30469 30470 30471 30472 30473 30474 30475 30476 30477 30478 30479 30480 30481 30482 30483 30484 30485 30486 30487 30488 30489 30490 30491 30492 30493 30494 30495 30496 30497 30498 30499 30500 30501 30502 30503 30504 30505 30506 30507 30508 30509 30510 30511 30512 30513 30514 30515 30516 30517 30518 30519 30520 30521 30522 30523 30524 30525 30526 30527 30528 30529 30530 30531 30532 30533 30534 30535 30536 30537 30538 30539 30540 30541 30542 30543 30544 30545 30546 30547 30548 30549 30550 30551 30552 30553 30554 30555 30556 30557 30558 30559 30560 30561 30562 30563 30564 30565 30566 30567 30568 30569 30570 30571 30572 30573 30574 30575 30576 30577 30578 30579 30580 30581 30582 30583 30584 30585 30586 30587 30588 30589 30590 30591 30592 30593 30594 30595 30596 30597 30598 30599 30600 30601 30602 30603 30604 30605 30606 30607 30608 30609 30610 30611 30612 30613 30614 30615 30616 30617 30618 30619 30620 30621 30622 30623 30624 30625 30626 30627 30628 30629 30630 30631 30632 30633 30634 30635 30636 30637 30638 30639 30640 30641 30642 30643 30644 30645 30646 30647 30648 30649 30650 30651 30652 30653 30654 30655 30656 30657 30658 30659 30660 30661 30662 30663 30664 30665 30666 30667 30668 30669 30670 30671 30672 30673 30674 30675 30676 30677 30678 30679 30680 30681 30682 30683 30684 30685 30686 30687 30688 30689 30690 30691 30692 30693 30694 30695 30696 30697 30698 30699 30700 30701 30702 30703 30704 30705 30706 30707 30708 30709 30710 30711 30712 30713 30714 30715 30716 30717 30718 30719 30720 30721 30722 30723 30724 30725 30726 30727 30728 30729 30730 30731 30732 30733 30734 30735 30736 30737 30738 30739 30740 30741 30742 30743 30744 30745 30746 30747 30748 30749 30750 30751 30752 30753 30754 30755 30756 30757 30758 30759 30760 30761 30762 30763 30764 30765 30766 30767 30768 30769 30770 30771 30772 30773 30774 30775 30776 30777 30778 30779 30780 30781 30782 30783 30784 30785 30786 30787 30788 30789 30790 30791 30792 30793 30794 30795 30796 30797 30798 30799 30800 30801 30802 30803 30804 30805 30806 30807 30808 30809 30810 30811 30812 30813 30814 30815 30816 30817 30818 30819 30820 30821 30822 30823 30824 30825 30826 30827 30828 30829 30830 30831 30832 30833 30834 30835 30836 30837 30838 30839 30840 30841 30842 30843 30844 30845 30846 30847 30848 30849 30850 30851 30852 30853 30854 30855 30856 30857 30858 30859 30860 30861 30862 30863 30864 30865 30866 30867 30868 30869 30870 30871 30872 30873 30874 30875 30876 30877 30878 30879 30880 30881 30882 30883 30884 30885 30886 30887 30888 30889 30890 30891 30892 30893 30894 30895 30896 30897 30898 30899 30900 30901 30902 30903 30904 30905 30906 30907 30908 30909 30910 30911 30912 30913 30914 30915 30916 30917 30918 30919 30920 30921 30922 30923 30924 30925 30926 30927 30928 30929 30930 30931 30932 30933 30934 30935 30936 30937 30938 30939 30940 30941 30942 30943 30944 30945 30946 30947 30948 30949 30950 30951 30952 30953 30954 30955 30956 30957 30958 30959 30960 30961 30962 30963 30964 30965 30966 30967 30968 30969 30970 30971 30972 30973 30974 30975 30976 30977 30978 30979 30980 30981 30982 30983 30984 30985 30986 30987 30988 30989 30990 30991 30992 30993 30994 30995 30996 30997 30998 30999 31000 31001 31002 31003 31004 31005 31006 31007 31008 31009 31010 31011 31012 31013 31014 31015 31016 31017 31018 31019 31020 31021 31022 31023 31024 31025 31026 31027 31028 31029 31030 31031 31032 31033 31034 31035 31036 31037 31038 31039 31040 31041 31042 31043 31044 31045 31046 31047 31048 31049 31050 31051 31052 31053 31054 31055 31056 31057 31058 31059 31060 31061 31062 31063 31064 31065 31066 31067 31068 31069 31070 31071 31072 31073 31074 31075 31076 31077 31078 31079 31080 31081 31082 31083 31084 31085 31086 31087 31088 31089 31090 31091 31092 31093 31094 31095 31096 31097 31098 31099 31100 31101 31102 31103 31104 31105 31106 31107 31108 31109 31110 31111 31112 31113 31114 31115 31116 31117 31118 31119 31120 31121 31122 31123 31124 31125 31126 31127 31128 31129 31130 31131 31132 31133 31134 31135 31136 31137 31138 31139 31140 31141 31142 31143 31144 31145 31146 31147 31148 31149 31150 31151 31152 31153 31154 31155 31156 31157 31158 31159 31160 31161 31162 31163 31164 31165 31166 31167 31168 31169 31170 31171 31172 31173 31174 31175 31176 31177 31178 31179 31180 31181 31182 31183 31184 31185 31186 31187 31188 31189 31190 31191 31192 31193 31194 31195 31196 31197 31198 31199 31200 31201 31202 31203 31204 31205 31206 31207 31208 31209 31210 31211 31212 31213 31214 31215 31216 31217 31218 31219 31220 31221 31222 31223 31224 31225 31226 31227 31228 31229 31230 31231 31232 31233 31234 31235 31236 31237 31238 31239 31240 31241 31242 31243 31244 31245 31246 31247 31248 31249 31250 31251 31252 31253 31254 31255 31256 31257 31258 31259 31260 31261 31262 31263 31264 31265 31266 31267 31268 31269 31270 31271 31272 31273 31274 31275 31276 31277 31278 31279 31280 31281 31282 31283 31284 31285 31286 31287 31288 31289 31290 31291 31292 31293 31294 31295 31296 31297 31298 31299 31300 31301 31302 31303 31304 31305 31306 31307 31308 31309 31310 31311 31312 31313 31314 31315 31316 31317 31318 31319 31320 31321 31322 31323 31324 31325 31326 31327 31328 31329 31330 31331 31332 31333 31334 31335 31336 31337 31338 31339 31340 31341 31342 31343 31344 31345 31346 31347 31348 31349 31350 31351 31352 31353 31354 31355 31356 31357 31358 31359 31360 31361 31362 31363 31364 31365 31366 31367 31368 31369 31370 31371 31372 31373 31374 31375 31376 31377 31378 31379 31380 31381 31382 31383 31384 31385 31386 31387 31388 31389 31390 31391 31392 31393 31394 31395 31396 31397 31398 31399 31400 31401 31402 31403 31404 31405 31406 31407 31408 31409 31410 31411 31412 31413 31414 31415 31416 31417 31418 31419 31420 31421 31422 31423 31424 31425 31426 31427 31428 31429 31430 31431 31432 31433 31434 31435 31436 31437 31438 31439 31440 31441 31442 31443 31444 31445 31446 31447 31448 31449 31450 31451 31452 31453 31454 31455 31456 31457 31458 31459 31460 31461 31462 31463 31464 31465 31466 31467 31468 31469 31470 31471 31472 31473 31474 31475 31476 31477 31478 31479 31480 31481 31482 31483 31484 31485 31486 31487 31488 31489 31490 31491 31492 31493 31494 31495 31496 31497 31498 31499 31500 31501 31502 31503 31504 31505 31506 31507 31508 31509 31510 31511 31512 31513 31514 31515 31516 31517 31518 31519 31520 31521 31522 31523 31524 31525 31526 31527 31528 31529 31530 31531 31532 31533 31534 31535 31536 31537 31538 31539 31540 31541 31542 31543 31544 31545 31546 31547 31548 31549 31550 31551 31552 31553 31554 31555 31556 31557 31558 31559 31560 31561 31562 31563 31564 31565 31566 31567 31568 31569 31570 31571 31572 31573 31574 31575 31576 31577 31578 31579 31580 31581 31582 31583 31584 31585 31586 31587 31588 31589 31590 31591 31592 31593 31594 31595 31596 31597 31598 31599 31600 31601 31602 31603 31604 31605 31606 31607 31608 31609 31610 31611 31612 31613 31614 31615 31616 31617 31618 31619 31620 31621 31622 31623 31624 31625 31626 31627 31628 31629 31630 31631 31632 31633 31634 31635 31636 31637 31638 31639 31640 31641 31642 31643 31644 31645 31646 31647 31648 31649 31650 31651 31652 31653 31654 31655 31656 31657 31658 31659 31660 31661 31662 31663 31664 31665 31666 31667 31668 31669 31670 31671 31672 31673 31674 31675 31676 31677 31678 31679 31680 31681 31682 31683 31684 31685 31686 31687 31688 31689 31690 31691 31692 31693 31694 31695 31696 31697 31698 31699 31700 31701 31702 31703 31704 31705 31706 31707 31708 31709 31710 31711 31712 31713 31714 31715 31716 31717 31718 31719 31720 31721 31722 31723 31724 31725 31726 31727 31728 31729 31730 31731 31732 31733 31734 31735 31736 31737 31738 31739 31740 31741 31742 31743 31744 31745 31746 31747 31748 31749 31750 31751 31752 31753 31754 31755 31756 31757 31758 31759 31760 31761 31762 31763 31764 31765 31766 31767 31768 31769 31770 31771 31772 31773 31774 31775 31776 31777 31778 31779 31780 31781 31782 31783 31784 31785 31786 31787 31788 31789 31790 31791 31792 31793 31794 31795 31796 31797 31798 31799 31800 31801 31802 31803 31804 31805 31806 31807 31808 31809 31810 31811 31812 31813 31814 31815 31816 31817 31818 31819 31820 31821 31822 31823 31824 31825 31826 31827 31828 31829 31830 31831 31832 31833 31834 31835 31836 31837 31838 31839 31840 31841 31842 31843 31844 31845 31846 31847 31848 31849 31850 31851 31852 31853 31854 31855 31856 31857 31858 31859 31860 31861 31862 31863 31864 31865 31866 31867 31868 31869 31870 31871 31872 31873 31874 31875 31876 31877 31878 31879 31880 31881 31882 31883 31884 31885 31886 31887 31888 31889 31890 31891 31892 31893 31894 31895 31896 31897 31898 31899 31900 31901 31902 31903 31904 31905 31906 31907 31908 31909 31910 31911 31912 31913 31914 31915 31916 31917 31918 31919 31920 31921 31922 31923 31924 31925 31926 31927 31928 31929 31930 31931 31932 31933 31934 31935 31936 31937 31938 31939 31940 31941 31942 31943 31944 31945 31946 31947 31948 31949 31950 31951 31952 31953 31954 31955 31956 31957 31958 31959 31960 31961 31962 31963 31964 31965 31966 31967 31968 31969 31970 31971 31972 31973 31974 31975 31976 31977 31978 31979 31980 31981 31982 31983 31984 31985 31986 31987 31988 31989 31990 31991 31992 31993 31994 31995 31996 31997 31998 31999 32000 32001 32002 32003 32004 32005 32006 32007 32008 32009 32010 32011 32012 32013 32014 32015 32016 32017 32018 32019 32020 32021 32022 32023 32024 32025 32026 32027 32028 32029 32030 32031 32032 32033 32034 32035 32036 32037 32038 32039 32040 32041 32042 32043 32044 32045 32046 32047 32048 32049 32050 32051 32052 32053 32054 32055 32056 32057 32058 32059 32060 32061 32062 32063 32064 32065 32066 32067 32068 32069 32070 32071 32072 32073 32074 32075 32076 32077 32078 32079 32080 32081 32082 32083 32084 32085 32086 32087 32088 32089 32090 32091 32092 32093 32094 32095 32096 32097 32098 32099 32100 32101 32102 32103 32104 32105 32106 32107 32108 32109 32110 32111 32112 32113 32114 32115 32116 32117 32118 32119 32120 32121 32122 32123 32124 32125 32126 32127 32128 32129 32130 32131 32132 32133 32134 32135 32136 32137 32138 32139 32140 32141 32142 32143 32144 32145 32146 32147 32148 32149 32150 32151 32152 32153 32154 32155 32156 32157 32158 32159 32160 32161 32162 32163 32164 32165 32166 32167 32168 32169 32170 32171 32172 32173 32174 32175 32176 32177 32178 32179 32180 32181 32182 32183 32184 32185 32186 32187 32188 32189 32190 32191 32192 32193 32194 32195 32196 32197 32198 32199 32200 32201 32202 32203 32204 32205 32206 32207 32208 32209 32210 32211 32212 32213 32214 32215 32216 32217 32218 32219 32220 32221 32222 32223 32224 32225 32226 32227 32228 32229 32230 32231 32232 32233 32234 32235 32236 32237 32238 32239 32240 32241 32242 32243 32244 32245 32246 32247 32248 32249 32250 32251 32252 32253 32254 32255 32256 32257 32258 32259 32260 32261 32262 32263 32264 32265 32266 32267 32268 32269 32270 32271 32272 32273 32274 32275 32276 32277 32278 32279 32280 32281 32282 32283 32284 32285 32286 32287 32288 32289 32290 32291 32292 32293 32294 32295 32296 32297 32298 32299 32300 32301 32302 32303 32304 32305 32306 32307 32308 32309 32310 32311 32312 32313 32314 32315 32316 32317 32318 32319 32320 32321 32322 32323 32324 32325 32326 32327 32328 32329 32330 32331 32332 32333 32334 32335 32336 32337 32338 32339 32340 32341 32342 32343 32344 32345 32346 32347 32348 32349 32350 32351 32352 32353 32354 32355 32356 32357 32358 32359 32360 32361 32362 32363 32364 32365 32366 32367 32368 32369 32370 32371 32372 32373 32374 32375 32376 32377 32378 32379 32380 32381 32382 32383 32384 32385 32386 32387 32388 32389 32390 32391 32392 32393 32394 32395 32396 32397 32398 32399 32400 32401 32402 32403 32404 32405 32406 32407 32408 32409 32410 32411 32412 32413 32414 32415 32416 32417 32418 32419 32420 32421 32422 32423 32424 32425 32426 32427 32428 32429 32430 32431 32432 32433 32434 32435 32436 32437 32438 32439 32440 32441 32442 32443 32444 32445 32446 32447 32448 32449 32450 32451 32452 32453 32454 32455 32456 32457 32458 32459 32460 32461 32462 32463 32464 32465 32466 32467 32468 32469 32470 32471 32472 32473 32474 32475 32476 32477 32478 32479 32480 32481 32482 32483 32484 32485 32486 32487 32488 32489 32490 32491 32492 32493 32494 32495 32496 32497 32498 32499 32500 32501 32502 32503 32504 32505 32506 32507 32508 32509 32510 32511 32512 32513 32514 32515 32516 32517 32518 32519 32520 32521 32522 32523 32524 32525 32526 32527 32528 32529 32530 32531 32532 32533 32534 32535 32536 32537 32538 32539 32540 32541 32542 32543 32544 32545 32546 32547 32548 32549 32550 32551 32552 32553 32554 32555 32556 32557 32558 32559 32560 32561 32562 32563 32564 32565 32566 32567 32568 32569 32570 32571 32572 32573 32574 32575 32576 32577 32578 32579 32580 32581 32582 32583 32584 32585 32586 32587 32588 32589 32590 32591 32592 32593 32594 32595 32596 32597 32598 32599 32600 32601 32602 32603 32604 32605 32606 32607 32608 32609 32610 32611 32612 32613 32614 32615 32616 32617 32618 32619 32620 32621 32622 32623 32624 32625 32626 32627 32628 32629 32630 32631 32632 32633 32634 32635 32636 32637 32638 32639 32640 32641 32642 32643 32644 32645 32646 32647 32648 32649 32650 32651 32652 32653 32654 32655 32656 32657 32658 32659 32660 32661 32662 32663 32664 32665 32666 32667 32668 32669 32670 32671 32672 32673 32674 32675 32676 32677 32678 32679 32680 32681 32682 32683 32684 32685 32686 32687 32688 32689 32690 32691 32692 32693 32694 32695 32696 32697 32698 32699 32700 32701 32702 32703 32704 32705 32706 32707 32708 32709 32710 32711 32712 32713 32714 32715 32716 32717 32718 32719 32720 32721 32722 32723 32724 32725 32726 32727 32728 32729 32730 32731 32732 32733 32734 32735 32736 32737 32738 32739 32740 32741 32742 32743 32744 32745 32746 32747 32748 32749 32750 32751 32752 32753 32754 32755 32756 32757 32758 32759 32760 32761 32762 32763 32764 32765 32766 32767 32768 32769 32770 32771 32772 32773 32774 32775 32776 32777 32778 32779 32780 32781 32782 32783 32784 32785 32786 32787 32788 32789 32790 32791 32792 32793 32794 32795 32796 32797 32798 32799 32800 32801 32802 32803 32804 32805 32806 32807 32808 32809 32810 32811 32812 32813 32814 32815 32816 32817 32818 32819 32820 32821 32822 32823 32824 32825 32826 32827 32828 32829 32830 32831 32832 32833 32834 32835 32836 32837 32838 32839 32840 32841 32842 32843 32844 32845 32846 32847 32848 32849 32850 32851 32852 32853 32854 32855 32856 32857 32858 32859 32860 32861 32862 32863 32864 32865 32866 32867 32868 32869 32870 32871 32872 32873 32874 32875 32876 32877 32878 32879 32880 32881 32882 32883 32884 32885 32886 32887 32888 32889 32890 32891 32892 32893 32894 32895 32896 32897 32898 32899 32900 32901 32902 32903 32904 32905 32906 32907 32908 32909 32910 32911 32912 32913 32914 32915 32916 32917 32918 32919 32920 32921 32922 32923 32924 32925 32926 32927 32928 32929 32930 32931 32932 32933 32934 32935 32936 32937 32938 32939 32940 32941 32942 32943 32944 32945 32946 32947 32948 32949 32950 32951 32952 32953 32954 32955 32956 32957 32958 32959 32960 32961 32962 32963 32964 32965 32966 32967 32968 32969 32970 32971 32972 32973 32974 32975 32976 32977 32978 32979 32980 32981 32982 32983 32984 32985 32986 32987 32988 32989 32990 32991 32992 32993 32994 32995 32996 32997 32998 32999 33000 33001 33002 33003 33004 33005 33006 33007 33008 33009 33010 33011 33012 33013 33014 33015 33016 33017 33018 33019 33020 33021 33022 33023 33024 33025 33026 33027 33028 33029 33030 33031 33032 33033 33034 33035 33036 33037 33038 33039 33040 33041 33042 33043 33044 33045 33046 33047 33048 33049 33050 33051 33052 33053 33054 33055 33056 33057 33058 33059 33060 33061 33062 33063 33064 33065 33066 33067 33068 33069 33070 33071 33072 33073 33074 33075 33076 33077 33078 33079 33080 33081 33082 33083 33084 33085 33086 33087 33088 33089 33090 33091 33092 33093 33094 33095 33096 33097 33098 33099 33100 33101 33102 33103 33104 33105 33106 33107 33108 33109 33110 33111 33112 33113 33114 33115 33116 33117 33118 33119 33120 33121 33122 33123 33124 33125 33126 33127 33128 33129 33130 33131 33132 33133 33134 33135 33136 33137 33138 33139 33140 33141 33142 33143 33144 33145 33146 33147 33148 33149 33150 33151 33152 33153 33154 33155 33156 33157 33158 33159 33160 33161 33162 33163 33164 33165 33166 33167 33168 33169 33170 33171 33172 33173 33174 33175 33176 33177 33178 33179 33180 33181 33182 33183 33184 33185 33186 33187 33188 33189 33190 33191 33192 33193 33194 33195 33196 33197 33198 33199 33200 33201 33202 33203 33204 33205 33206 33207 33208 33209 33210 33211 33212 33213 33214 33215 33216 33217 33218 33219 33220 33221 33222 33223 33224 33225 33226 33227 33228 33229 33230 33231 33232 33233 33234 33235 33236 33237 33238 33239 33240 33241 33242 33243 33244 33245 33246 33247 33248 33249 33250 33251 33252 33253 33254 33255 33256 33257 33258 33259 33260 33261 33262 33263 33264 33265 33266 33267 33268 33269 33270 33271 33272 33273 33274 33275 33276 33277 33278 33279 33280 33281 33282 33283 33284 33285 33286 33287 33288 33289 33290 33291 33292 33293 33294 33295 33296 33297 33298 33299 33300 33301 33302 33303 33304 33305 33306 33307 33308 33309 33310 33311 33312 33313 33314 33315 33316 33317 33318 33319 33320 33321 33322 33323 33324 33325 33326 33327 33328 33329 33330 33331 33332 33333 33334 33335 33336 33337 33338 33339 33340 33341 33342 33343 33344 33345 33346 33347 33348 33349 33350 33351 33352 33353 33354 33355 33356 33357 33358 33359 33360 33361 33362 33363 33364 33365 33366 33367 33368 33369 33370 33371 33372 33373 33374 33375 33376 33377 33378 33379 33380 33381 33382 33383 33384 33385 33386 33387 33388 33389 33390 33391 33392 33393 33394 33395 33396 33397 33398 33399 33400 33401 33402 33403 33404 33405 33406 33407 33408 33409 33410 33411 33412 33413 33414 33415 33416 33417 33418 33419 33420 33421 33422 33423 33424 33425 33426 33427 33428 33429 33430 33431 33432 33433 33434 33435 33436 33437 33438 33439 33440 33441 33442 33443 33444 33445 33446 33447 33448 33449 33450 33451 33452 33453 33454 33455 33456 33457 33458 33459 33460 33461 33462 33463 33464 33465 33466 33467 33468 33469 33470 33471 33472 33473 33474 33475 33476 33477 33478 33479 33480 33481 33482 33483 33484 33485 33486 33487 33488 33489 33490 33491 33492 33493 33494 33495 33496 33497 33498 33499 33500 33501 33502 33503 33504 33505 33506 33507 33508 33509 33510 33511 33512 33513 33514 33515 33516 33517 33518 33519 33520 33521 33522 33523 33524 33525 33526 33527 33528 33529 33530 33531 33532 33533 33534 33535 33536 33537 33538 33539 33540 33541 33542 33543 33544 33545 33546 33547 33548 33549 33550 33551 33552 33553 33554 33555 33556 33557 33558 33559 33560 33561 33562 33563 33564 33565 33566 33567 33568 33569 33570 33571 33572 33573 33574 33575 33576 33577 33578 33579 33580 33581 33582 33583 33584 33585 33586 33587 33588 33589 33590 33591 33592 33593 33594 33595 33596 33597 33598 33599 33600 33601 33602 33603 33604 33605 33606 33607 33608 33609 33610 33611 33612 33613 33614 33615 33616 33617 33618 33619 33620 33621 33622 33623 33624 33625 33626 33627 33628 33629 33630 33631 33632 33633 33634 33635 33636 33637 33638 33639 33640 33641 33642 33643 33644 33645 33646 33647 33648 33649 33650 33651 33652 33653 33654 33655 33656 33657 33658 33659 33660 33661 33662 33663 33664 33665 33666 33667 33668 33669 33670 33671 33672 33673 33674 33675 33676 33677 33678 33679 33680 33681 33682 33683 33684 33685 33686 33687 33688 33689 33690 33691 33692 33693 33694 33695 33696 33697 33698 33699 33700 33701 33702 33703 33704 33705 33706 33707 33708 33709 33710 33711 33712 33713 33714 33715 33716 33717 33718 33719 33720 33721 33722 33723 33724 33725 33726 33727 33728 33729 33730 33731 33732 33733 33734 33735 33736 33737 33738 33739 33740 33741 33742 33743 33744 33745 33746 33747 33748 33749 33750 33751 33752 33753 33754 33755 33756 33757 33758 33759 33760 33761 33762 33763 33764 33765 33766 33767 33768 33769 33770 33771 33772 33773 33774 33775 33776 33777 33778 33779 33780 33781 33782 33783 33784 33785 33786 33787 33788 33789 33790 33791 33792 33793 33794 33795 33796 33797 33798 33799 33800 33801 33802 33803 33804 33805 33806 33807 33808 33809 33810 33811 33812 33813 33814 33815 33816 33817 33818 33819 33820 33821 33822 33823 33824 33825 33826 33827 33828 33829 33830 33831 33832 33833 33834 33835 33836 33837 33838 33839 33840 33841 33842 33843 33844 33845 33846 33847 33848 33849 33850 33851 33852 33853 33854 33855 33856 33857 33858 33859 33860 33861 33862 33863 33864 33865 33866 33867 33868 33869 33870 33871 33872 33873 33874 33875 33876 33877 33878 33879 33880 33881 33882 33883 33884 33885 33886 33887 33888 33889 33890 33891 33892 33893 33894 33895 33896 33897 33898 33899 33900 33901 33902 33903 33904 33905 33906 33907 33908 33909 33910 33911 33912 33913 33914 33915 33916 33917 33918 33919 33920 33921 33922 33923 33924 33925 33926 33927 33928 33929 33930 33931 33932 33933 33934 33935 33936 33937 33938 33939 33940 33941 33942 33943 33944 33945 33946 33947 33948 33949 33950 33951 33952 33953 33954 33955 33956 33957 33958 33959 33960 33961 33962 33963 33964 33965 33966 33967 33968 33969 33970 33971 33972 33973 33974 33975 33976 33977 33978 33979 33980 33981 33982 33983 33984 33985 33986 33987 33988 33989 33990 33991 33992 33993 33994 33995 33996 33997 33998 33999 34000 34001 34002 34003 34004 34005 34006 34007 34008 34009 34010 34011 34012 34013 34014 34015 34016 34017 34018 34019 34020 34021 34022 34023 34024 34025 34026 34027 34028 34029 34030 34031 34032 34033 34034 34035 34036 34037 34038 34039 34040 34041 34042 34043 34044 34045 34046 34047 34048 34049 34050 34051 34052 34053 34054 34055 34056 34057 34058 34059 34060 34061 34062 34063 34064 34065 34066 34067 34068 34069 34070 34071 34072 34073 34074 34075 34076 34077 34078 34079 34080 34081 34082 34083 34084 34085 34086 34087 34088 34089 34090 34091 34092 34093 34094 34095 34096 34097 34098 34099 34100 34101 34102 34103 34104 34105 34106 34107 34108 34109 34110 34111 34112 34113 34114 34115 34116 34117 34118 34119 34120 34121 34122 34123 34124 34125 34126 34127 34128 34129 34130 34131 34132 34133 34134 34135 34136 34137 34138 34139 34140 34141 34142 34143 34144 34145 34146 34147 34148 34149 34150 34151 34152 34153 34154 34155 34156 34157 34158 34159 34160 34161 34162 34163 34164 34165 34166 34167 34168 34169 34170 34171 34172 34173 34174 34175 34176 34177 34178 34179 34180 34181 34182 34183 34184 34185 34186 34187 34188 34189 34190 34191 34192 34193 34194 34195 34196 34197 34198 34199 34200 34201 34202 34203 34204 34205 34206 34207 34208 34209 34210 34211 34212 34213 34214 34215 34216 34217 34218 34219 34220 34221 34222 34223 34224 34225 34226 34227 34228 34229 34230 34231 34232 34233 34234 34235 34236 34237 34238 34239 34240 34241 34242 34243 34244 34245 34246 34247 34248 34249 34250 34251 34252 34253 34254 34255 34256 34257 34258 34259 34260 34261 34262 34263 34264 34265 34266 34267 34268 34269 34270 34271 34272 34273 34274 34275 34276 34277 34278 34279 34280 34281 34282 34283 34284 34285 34286 34287 34288 34289 34290 34291 34292 34293 34294 34295 34296 34297 34298 34299 34300 34301 34302 34303 34304 34305 34306 34307 34308 34309 34310 34311 34312 34313 34314 34315 34316 34317 34318 34319 34320 34321 34322 34323 34324 34325 34326 34327 34328 34329 34330 34331 34332 34333 34334 34335 34336 34337 34338 34339 34340 34341 34342 34343 34344 34345 34346 34347 34348 34349 34350 34351 34352 34353 34354 34355 34356 34357 34358 34359 34360 34361 34362 34363 34364 34365 34366 34367 34368 34369 34370 34371 34372 34373 34374 34375 34376 34377 34378 34379 34380 34381 34382 34383 34384 34385 34386 34387 34388 34389 34390 34391 34392 34393 34394 34395 34396 34397 34398 34399 34400 34401 34402 34403 34404 34405 34406 34407 34408 34409 34410 34411 34412 34413 34414 34415 34416 34417 34418 34419 34420 34421 34422 34423 34424 34425 34426 34427 34428 34429 34430 34431 34432 34433 34434 34435 34436 34437 34438 34439 34440 34441 34442 34443 34444 34445 34446 34447 34448 34449 34450 34451 34452 34453 34454 34455 34456 34457 34458 34459 34460 34461 34462 34463 34464 34465 34466 34467 34468 34469 34470 34471 34472 34473 34474 34475 34476 34477 34478 34479 34480 34481 34482 34483 34484 34485 34486 34487 34488 34489 34490 34491 34492 34493 34494 34495 34496 34497 34498 34499 34500 34501 34502 34503 34504 34505 34506 34507 34508 34509 34510 34511 34512 34513 34514 34515 34516 34517 34518 34519 34520 34521 34522 34523 34524 34525 34526 34527 34528 34529 34530 34531 34532 34533 34534 34535 34536 34537 34538 34539 34540 34541 34542 34543 34544 34545 34546 34547 34548 34549 34550 34551 34552 34553 34554 34555 34556 34557 34558 34559 34560 34561 34562 34563 34564 34565 34566 34567 34568 34569 34570 34571 34572 34573 34574 34575 34576 34577 34578 34579 34580 34581 34582 34583 34584 34585 34586 34587 34588 34589 34590 34591 34592 34593 34594 34595 34596 34597 34598 34599 34600 34601 34602 34603 34604 34605 34606 34607 34608 34609 34610 34611 34612 34613 34614 34615 34616 34617 34618 34619 34620 34621 34622 34623 34624 34625 34626 34627 34628 34629 34630 34631 34632 34633 34634 34635 34636 34637 34638 34639 34640 34641 34642 34643 34644 34645 34646 34647 34648 34649 34650 34651 34652 34653 34654 34655 34656 34657 34658 34659 34660 34661 34662 34663 34664 34665 34666 34667 34668 34669 34670 34671 34672 34673 34674 34675 34676 34677 34678 34679 34680 34681 34682 34683 34684 34685 34686 34687 34688 34689 34690 34691 34692 34693 34694 34695 34696 34697 34698 34699 34700 34701 34702 34703 34704 34705 34706 34707 34708 34709 34710 34711 34712 34713 34714 34715 34716 34717 34718 34719 34720 34721 34722 34723 34724 34725 34726 34727 34728 34729 34730 34731 34732 34733 34734 34735 34736 34737 34738 34739 34740 34741 34742 34743 34744 34745 34746 34747 34748 34749 34750 34751 34752 34753 34754 34755 34756 34757 34758 34759 34760 34761 34762 34763 34764 34765 34766 34767 34768 34769 34770 34771 34772 34773 34774 34775 34776 34777 34778 34779 34780 34781 34782 34783 34784 34785 34786 34787 34788 34789 34790 34791 34792 34793 34794 34795 34796 34797 34798 34799 34800 34801 34802 34803 34804 34805 34806 34807 34808 34809 34810 34811 34812 34813 34814 34815 34816 34817 34818 34819 34820 34821 34822 34823 34824 34825 34826 34827 34828 34829 34830 34831 34832 34833 34834 34835 34836 34837 34838 34839 34840 34841 34842 34843 34844 34845 34846 34847 34848 34849 34850 34851 34852 34853 34854 34855 34856 34857 34858 34859 34860 34861 34862 34863 34864 34865 34866 34867 34868 34869 34870 34871 34872 34873 34874 34875 34876 34877 34878 34879 34880 34881 34882 34883 34884 34885 34886 34887 34888 34889 34890 34891 34892 34893 34894 34895 34896 34897 34898 34899 34900 34901 34902 34903 34904 34905 34906 34907 34908 34909 34910 34911 34912 34913 34914 34915 34916 34917 34918 34919 34920 34921 34922 34923 34924 34925 34926 34927 34928 34929 34930 34931 34932 34933 34934 34935 34936 34937 34938 34939 34940 34941 34942 34943 34944 34945 34946 34947 34948 34949 34950 34951 34952 34953 34954 34955 34956 34957 34958 34959 34960 34961 34962 34963 34964 34965 34966 34967 34968 34969 34970 34971 34972 34973 34974 34975 34976 34977 34978 34979 34980 34981 34982 34983 34984 34985 34986 34987 34988 34989 34990 34991 34992 34993 34994 34995 34996 34997 34998 34999 35000 35001 35002 35003 35004 35005 35006 35007 35008 35009 35010 35011 35012 35013 35014 35015 35016 35017 35018 35019 35020 35021 35022 35023 35024 35025 35026 35027 35028 35029 35030 35031 35032 35033 35034 35035 35036 35037 35038 35039 35040 35041 35042 35043 35044 35045 35046 35047 35048 35049 35050 35051 35052 35053 35054 35055 35056 35057 35058 35059 35060 35061 35062 35063 35064 35065 35066 35067 35068 35069 35070 35071 35072 35073 35074 35075 35076 35077 35078 35079 35080 35081 35082 35083 35084 35085 35086 35087 35088 35089 35090 35091 35092 35093 35094 35095 35096 35097 35098 35099 35100 35101 35102 35103 35104 35105 35106 35107 35108 35109 35110 35111 35112 35113 35114 35115 35116 35117 35118 35119 35120 35121 35122 35123 35124 35125 35126 35127 35128 35129 35130 35131 35132 35133 35134 35135 35136 35137 35138 35139 35140 35141 35142 35143 35144 35145 35146 35147 35148 35149 35150 35151 35152 35153 35154 35155 35156 35157 35158 35159 35160 35161 35162 35163 35164 35165 35166 35167 35168 35169 35170 35171 35172 35173 35174 35175 35176 35177 35178 35179 35180 35181 35182 35183 35184 35185 35186 35187 35188 35189 35190 35191 35192 35193 35194 35195 35196 35197 35198 35199 35200 35201 35202 35203 35204 35205 35206 35207 35208 35209 35210 35211 35212 35213 35214 35215 35216 35217 35218 35219 35220 35221 35222 35223 35224 35225 35226 35227 35228 35229 35230 35231 35232 35233 35234 35235 35236 35237 35238 35239 35240 35241 35242 35243 35244 35245 35246 35247 35248 35249 35250 35251 35252 35253 35254 35255 35256 35257 35258 35259 35260 35261 35262 35263 35264 35265 35266 35267 35268 35269 35270 35271 35272 35273 35274 35275 35276 35277 35278 35279 35280 35281 35282 35283 35284 35285 35286 35287 35288 35289 35290 35291 35292 35293 35294 35295 35296 35297 35298 35299 35300 35301 35302 35303 35304 35305 35306 35307 35308 35309 35310 35311 35312 35313 35314 35315 35316 35317 35318 35319 35320 35321 35322 35323 35324 35325 35326 35327 35328 35329 35330 35331 35332 35333 35334 35335 35336 35337 35338 35339 35340 35341 35342 35343 35344 35345 35346 35347 35348 35349 35350 35351 35352 35353 35354 35355 35356 35357 35358 35359 35360 35361 35362 35363 35364 35365 35366 35367 35368 35369 35370 35371 35372 35373 35374 35375 35376 35377 35378 35379 35380 35381 35382 35383 35384 35385 35386 35387 35388 35389 35390 35391 35392 35393 35394 35395 35396 35397 35398 35399 35400 35401 35402 35403 35404 35405 35406 35407 35408 35409 35410 35411 35412 35413 35414 35415 35416 35417 35418 35419 35420 35421 35422 35423 35424 35425 35426 35427 35428 35429 35430 35431 35432 35433 35434 35435 35436 35437 35438 35439 35440 35441 35442 35443 35444 35445 35446 35447 35448 35449 35450 35451 35452 35453 35454 35455 35456 35457 35458 35459 35460 35461 35462 35463 35464 35465 35466 35467 35468 35469 35470 35471 35472 35473 35474 35475 35476 35477 35478 35479 35480 35481 35482 35483 35484 35485 35486 35487 35488 35489 35490 35491 35492 35493 35494 35495 35496 35497 35498 35499 35500 35501 35502 35503 35504 35505 35506 35507 35508 35509 35510 35511 35512 35513 35514 35515 35516 35517 35518 35519 35520 35521 35522 35523 35524 35525 35526 35527 35528 35529 35530 35531 35532 35533 35534 35535 35536 35537 35538 35539 35540 35541 35542 35543 35544 35545 35546 35547 35548 35549 35550 35551 35552 35553 35554 35555 35556 35557 35558 35559 35560 35561 35562 35563 35564 35565 35566 35567 35568 35569 35570 35571 35572 35573 35574 35575 35576 35577 35578 35579 35580 35581 35582 35583 35584 35585 35586 35587 35588 35589 35590 35591 35592 35593 35594 35595 35596 35597 35598 35599 35600 35601 35602 35603 35604 35605 35606 35607 35608 35609 35610 35611 35612 35613 35614 35615 35616 35617 35618 35619 35620 35621 35622 35623 35624 35625 35626 35627 35628 35629 35630 35631 35632 35633 35634 35635 35636 35637 35638 35639 35640 35641 35642 35643 35644 35645 35646 35647 35648 35649 35650 35651 35652 35653 35654 35655 35656 35657 35658 35659 35660 35661 35662 35663 35664 35665 35666 35667 35668 35669 35670 35671 35672 35673 35674 35675 35676 35677 35678 35679 35680 35681 35682 35683 35684 35685 35686 35687 35688 35689 35690 35691 35692 35693 35694 35695 35696 35697 35698 35699 35700 35701 35702 35703 35704 35705 35706 35707 35708 35709 35710 35711 35712 35713 35714 35715 35716 35717 35718 35719 35720 35721 35722 35723 35724 35725 35726 35727 35728 35729 35730 35731 35732 35733 35734 35735 35736 35737 35738 35739 35740 35741 35742 35743 35744 35745 35746 35747 35748 35749 35750 35751 35752 35753 35754 35755 35756 35757 35758 35759 35760 35761 35762 35763 35764 35765 35766 35767 35768 35769 35770 35771 35772 35773 35774 35775 35776 35777 35778 35779 35780 35781 35782 35783 35784 35785 35786 35787 35788 35789 35790 35791 35792 35793 35794 35795 35796 35797 35798 35799 35800 35801 35802 35803 35804 35805 35806 35807 35808 35809 35810 35811 35812 35813 35814 35815 35816 35817 35818 35819 35820 35821 35822 35823 35824 35825 35826 35827 35828 35829 35830 35831 35832 35833 35834 35835 35836 35837 35838 35839 35840 35841 35842 35843 35844 35845 35846 35847 35848 35849 35850 35851 35852 35853 35854 35855 35856 35857 35858 35859 35860 35861 35862 35863 35864 35865 35866 35867 35868 35869 35870 35871 35872 35873 35874 35875 35876 35877 35878 35879 35880 35881 35882 35883 35884 35885 35886 35887 35888 35889 35890 35891 35892 35893 35894 35895 35896 35897 35898 35899 35900 35901 35902 35903 35904 35905 35906 35907 35908 35909
|
2005-12-31 Andrew Pinski <pinskia@physics.uc.edu>
PR tree-opt/25612
* tree-ssa-pre.c (compute_avail): Treat the static chain decl as a
parameter and pretend that it is defined in the entry basic block.
2005-12-30 Kazu Hirata <kazu@codesourcery.com>
* tree-outof-ssa.c (_elim_graph): Change the type of STACK to
VEC(int,heap).
(new_elim_graph, delete_elim_graph, elim_forward,
eliminate_phi): Use the VEC API on STACK.
2005-12-29 Daniel Berlin <dberlin@dberlin.org>
* tree.h (VALUE_HANDLE_VUSES): New.
(struct tree_value_handle): Add vuses.
* tree-vn.c (struct val_expr_pair_d): Remove stmt, add vuses.
(vn_compute): Remove stmt argument.
Don't use vuses in hash value computation.
(val_expr_pair_eq): Compare vuse lists.
(copy_vuses_from_stmt): New function.
(shared_vuses_from_stmt): Ditto.
(vn_add): Rewrite in terms of vn_add_with_vuses.
(vn_add_with_vuses): New function.
(vn_lookup): Rewrite in terms of vn_lookup_with_vuses.
(vn_lookup_with_vuses): New function.
(vuses_compare): New function.
(print_creation_to_file): Ditto.
(vn_lookup_or_add): Rewrite to handle vuses.
(sort_vuses): New function.
(vn_lookup_or_add_with_vuses): Ditto.
(vn_init): Initialize shared_lookup_vuses.
(vn_delete): Free shared_lookup_vuses.
* tree-ssa-pre.c: Update todo list.
(bb_value_sets_t): Add rvuse_in, rvuse_out, rvuse_gen, and
rvuse_kill.
(RVUSE_IN): New macro.
(RVUSE_GEN): Ditto.
(RVUSE_KILL): Ditto.
(RVUSE_OUT): Ditto.
(modify_expr_node_pool): New function.
(pretemp): New.
(storetemp): Ditto.
(mergephitemp): Ditto.
(prephitemp): Ditto.
(struct expr_pred_trans_d): Add vuses member.
(expr_pred_trans_eq): Compare vuses.
(phi_trans_lookup): Add vuses argument.
(phi_trans_add): Ditto.
(translate_vuses_through_block): New function.
(phi_translate): Use vuses to ask about those expressions that can
have vuses.
Properly translate virtual uses through phis, and use
vn_lookup_or_add_with vuses. Handle tcc_reference.
(phi_translate_set): Don't add pointless translations to the
cache.
(get_representative): New function.
(vuses_dies_in_block_x): Ditto.
(valid_in_set): Add block argument. Check virtual use validity.
(clean): Add block argument. Update call to valid_in_set
(compute_antic_aux): Update call to clean.
(dump_bitmap_of_names): New function.
(compute_vuse_representatives): Ditto.
(compute_rvuse): Ditto.
(can_value_number_call): Modified to accept calls with vuses.
(can_value_number_operation): New function.
(can_PRE_operation): Ditto.
(need_creation): New vector of stores that may need creation.
(find_or_generate_expression): use can_PRE_operation.
(create_expression_by_pieces): Handle INDIRECT_REF.
Only create one temp until we have to change types.
Mark new vars for renaming.
(insert_into_preds_of_block): Ignore loopiness of loads.
Use can_PRE_operation.
Only create one temp until we have to chnge types.
(insert_aux): Use can_PRE_operation.
Don't pass name to insert_into_preds_of_block.
(insert_extra_phis): Only use one temp until we have to change
types.
(poolify_tree): New function.
(modify_expr_template): New var.
(poolify_modify_expr): New function.
(insert_fake_stores): Ditto.
(realify_fake_stores): Ditto.
(compute_avail): Use can_value_number_operation.
(mark_operand_necessary): Return NULL for non-SSA names.
(remove_dead_inserted_code): Update comment.
(init_pre): Initialize pretemp, need_creation, storetemp,
mergephitemp, prephitemp.
Create modify_expr_node_pool.
(fini_pre): Free modify_expr_node_pool and need_creation array.
(execute_pre): Call insert_fake_stores, compute_rvuse, and
realify_fake_stores.
* tree-flow.h (vn_compute): Fix prototype.
(vn_add): Ditto.
(vn_lookup): Ditto.
(sort_vuses): New.
(vn_lookup_or_add_with_vuses): Ditto.
(vn_add_with_vuses): Ditto.
(vn_lookup_with_vuses): Ditto.
* passes.c (pass_may_alias): Add.
2005-12-30 Gabriel Dos Reis <gdr@integrable-solutions.net>
* c-pretty-print.h (struct c_pretty_print_info): Add new member
"constant".
(pp_constant): New macro.
* c-pretty-print.c (pp_c_pretty_printer_init): Set pp->constant.
2005-12-30 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
PR fortran/25586
* pa.md: Remove REG_POINTER check from REG+REG peephole2 floating-point
store patterns.
2005-12-29 Kenneth Zadeck <zadeck@naturalbridge.com>
* bitmap.c (bitmap_element_free, bitmap_element_link,
bitmap_elt_insert_after, bitmap_and, bitmap_and_compl,
bitmap_and_compl, bitmap_ior, bitmap_ior_into, bitmap_xor,
bitmap_xor_into): Added code to properly maintain the variants
associated with the CURRENT and HEAD fields.
(bitmap_popcount, bitmap_clear_range, bitmap_compl_and_into): New
functions.
* bitmap.h: Added defs for bitmap_popcount, bitmap_clear_range,
and bitmap_compl_and_into.
2005-12-29 Mike Stump <mrs@apple.com>
* doc/invoke.texi (Objective-C and Objective-C++ Dialect Options
-fobjc-exceptions): Don't imply this doesn't work with the GNU
runtime.
2005-12-29 Nathan Sidwell <nathan@codesourcery.com>
* varasm.c (get_section): Use gcc_assert.
2005-12-29 Paul Brook <paul@codesourcery.com>
* config/m68k/m68k.h (RETURN_ADDR_RTX): Define.
* config/m68k/m68k.c (m68k_initial_elimination_offset): Remove FIXME.
Include offset due to FIRST_PARM_OFFSET.
2005-12-29 Paul Brook <paul@codesourcery.com>
* config/m68k/lb1sf68.asm (__cmpdf2): Fix typo in immediate mask.
Create wrapper and rename body...
(__cmpdf2_internal): ... to this. Return correct value for unordered
result.
(__cmpsf2): Create wrapper and rename body...
(__cmpsf2_internal): ... to this. Return corerct value for unordered
result.
(__eqdf2, __nedf2, __gtdf2, __gedf2, __ltdf2, __ledf2): Use
__cmpdf2_internal.
(__eqsf2, __nesf2, __gtsf2, __gesf2, __ltsf2, __lesf2): Use
__cmpsf2_internal.
2005-12-29 Paul Brook <paul@codesourcery.com>
* config/m68k/fpgnulib.c (__extendsfdf2): Handle negative zero.
(__truncdfsf2): Ditto.
(__extenddfxf2): Ditto.
(__truncxfdf2): Ditto.
* config/m68k/lb1sf68.asm (__addsf3): Return -0.0 for -0.0 + -0.0.
(__adddf3): Ditto.
2005-12-29 Daniel Jacobowitz <dan@codesourcery.com>
Paul Brook <paul@codesourcery.com>
* config/m68k/m68k.c (m68k_output_pic_call): Don't use bsr.l for
!TARGET_68020.
* config/m68k/t-m68kelf (EXTRA_PARTS): Remove.
(EXTRA_MULTILIB_PARTS): Set.
* config/m68k/t-uclinux (EXTRA_PARTS): Remove.
(EXTRA_MULTILIB_PARTS): Set.
2005-12-29 Alan Modra <amodra@bigpond.net.au>
PR target/25572
* config/rs6000/rs6000.c (create_TOC_reference): Set regs_ever_live.
2005-12-28 Nathan Sidwell <nathan@codesourcery.com>
* config.gcc (mt-*-*): Add --with-arch support.
(--with): Print accepted options on error.
* config/mt/mt.h (OPTION_DEFAULT_SPECS): Define.
* config/mt/mt.c (DEF_VEC_P(basic_block),
DEF_VEC_ALLOC_P(basic_bloc,heap)): Remove from here.
2005-12-28 Daniel Berlin <dberlin@dberlin.org>
Fix PR tree-optimization/25394
* fold-const.c (fold_checksum_tree): Guard
portions of checksumming with correct structure checks.
2005-12-27 Kazu Hirata <kazu@codesourcery.com>
* global.c, tree-ssa-pre.c: Move DEF_VEC_P(basic_block) and
DEF_VEC_ALLOC_P(basic_block,{gc,heap}) to ...
* basic-block.h: ... here.
2005-12-27 Roger Sayle <roger@eyesopen.com>
* fold-const.c (int_const_binop): Return NULL_TREE when an expression
can't be evaluated at compile-time (instead of calling abort).
Return NULL_TREE for division (and modulus) by zero.
(const_binop): Return NULL_TREE for floating point operators that
aren't handled by real_arithmetic.
(fold_binary): Eliminate "wins" variable, and "binary" label, by
folding operators with constant operands early. Assert that
operands are non-NULL.
2005-12-27 Kazu Hirata <kazu@codesourcery.com>
* tree-vrp.c (extract_range_from_binary_expr): Use
build_int_cst instead of fold_convert.
2005-12-26 Mark Mitchell <mark@codesourcery.com>
PR c++/23171, c++/23172, c++/25417.
* c-decl.c (compound_literal_number): Remove.
(build_compound_literal): Use set_compound_literal_name.
* c-common.c (compound_literal_number): New variable.
(set_compound_literal_name): New function.
* c-common.h (set_compound_literal_name): Declare.
2005-12-26 Kazu Hirata <kazu@codesourcery.com>
PR tree-optimization/25125
* convert.c (convert_to_integer): Don't narrow the type of a
PLUS_EXPR or MINUS_EXPR if !flag_wrapv and the unwidened type
is signed.
2005-12-26 Graham Stott <graham.stott@btinternet.com>
PR middle-end/25568
* combine.c (simplify_shift_const_1 <case PLUS>):Fix enable-checking
rtl bootstrap failure.
2005-12-25 Kazu Hirata <kazu@codesourcery.com>
* final.c (compute_alignments): Make it static.
* gcse.c (gcse_main, bypass_jumps): Likewise.
* web.c (web_main): Likewise.
* output.h: Remove the prototype for compute_alignments.
* rtl.h: Remove the prototypes for web_main, gcse_main, and
bypass_jumps.
2005-12-24 Roger Sayle <roger@eyesopen.com>
* expr.c (force_operand): Use expand_fix and expand_float to
implement integer <-> FP conversions instead of convert_to_mode.
2005-12-24 Mark Mitchell <mark@codesourcery.com>
PR c++/23171
* varasm.c (initializer_constant_valid_p): An ADDR_EXPR of a
CONSTRUCTOR is invalid.
2005-12-23 Daniel Berlin <dberlin@dberlin.org>
* tree-pass.h (pass_eliminate_useless_stores): Remove.
* tree-ssa-pre.c (is_copy_stmt): Ditto.
(follow_copies_till_vuse): Ditto.
(do_eustore): Ditto.
(gate_eustores): Ditto.
(pass_eliminate_useless_stores): Ditto.
* passes.c (init_optimization_passes): Ditto.
2005-12-23 Paolo Bonzini <bonzini@gnu.org>
* combine.c (simplify_shift_const): Fix typo. Use, whenever
applicable, simplify_const_binary_operation.
(simplify_shift_const): Leave only the fallback
case when no simplification is possible. Extract to...
(simplify_shift_const_1): ... here. Always create a new
RTX instead of substituting. Remove the signed_count variable.
Return NULL_RTX if no substitution is possible.
(simplify_and_const_int): Leave only the fallback
case when no simplification is possible. Extract to...
(simplify_and_const_int_1): ... here. Always create a new
RTX instead of substituting. Return NULL_RTX if no substitution
is possible.
(force_to_mode, simplify_comparison): Don't pass a non-NULL first
parameter to simplify_and_const_int and simplify_shift_const,
unless it is equal to the expected non-simplified result.
2005-12-23 Jakub Jelinek <jakub@redhat.com>
PR target/25005
* regrename.c (replace_oldest_value_reg): Use validate_change with
IN_GROUP set to 1 instead of doing direct modifications.
(copyprop_hardreg_forward_1): Likewise. If any replace_oldest_*
replacements have been performed on an instruction, use
apply_change_group ().
2005-12-23 Hans-Peter Nilsson <hp@axis.com>
* config/cris/arit.c (do_31div): Clarify what "31" refers to.
[L_divsi3] (__Udiv): Don't use as inline function.
[L_modsi3] (__Umod): Ditto.
(__Div): Rearrange to call do_31div directly instead of __Udiv.
(__Mod): Similarly regarding __Umod.
PR target/24342
* config/cris/cris.c (cris_split_movdx): Add REG_INC notes for
emitted insns with post-increments.
(cris_expand_epilogue): Ditto.
2005-12-22 Jakub Jelinek <jakub@redhat.com>
Richard Henderson <rth@redhat.com>
Merge from gomp-branch.
* builtins.def: Move all DEF_SYNC_BUILTIN to ...
* sync-builtins.def: ... new file.
(BUILT_IN_FETCH_AND_ADD_16,
BUILT_IN_FETCH_AND_SUB_16, BUILT_IN_FETCH_AND_OR_16,
BUILT_IN_FETCH_AND_AND_16, BUILT_IN_FETCH_AND_XOR_16,
BUILT_IN_FETCH_AND_NAND_16, BUILT_IN_ADD_AND_FETCH_16,
BUILT_IN_SUB_AND_FETCH_16, BUILT_IN_OR_AND_FETCH_16,
BUILT_IN_AND_AND_FETCH_16, BUILT_IN_XOR_AND_FETCH_16,
BUILT_IN_NAND_AND_FETCH_16, BUILT_IN_BOOL_COMPARE_AND_SWAP_16,
BUILT_IN_VAL_COMPARE_AND_SWAP_16, BUILT_IN_LOCK_TEST_AND_SET_16,
BUILT_IN_LOCK_RELEASE_16): New builtins.
* builtin-types.def (BT_I16, BT_FN_I16_VPTR_I16,
BT_FN_BOOL_VPTR_I16_I16, BT_FN_I16_VPTR_I16_I16): Add.
* builtins.c (expand_builtin): Handle sync BUILT_IN_*_16 builtins.
* c-common.c (enum c_builtin_type): Move to top-level from
c_common_nodes_and_builtins enum builtin_type.
(builtin_types): Move from c_common_nodes_and_builtins.
(def_fn_type): New.
(c_common_nodes_and_builtins): Use it.
(def_builtin_1): Check for error_mark_node.
(sync_resolve_size): Handle also 128 bit sync builtins.
* Makefile.in (BUILTINS_DEF): New. Use it instead of builtins.def.
* config/i386/i386.h (x86_cmpxchg8b, x86_cmpxchg16b): New decls.
(TARGET_CMPXCHG8B, TARGET_CMPXCHG16B): Define.
* config/i386/i386.c (x86_cmpxchg8b, x86_cmpxchg16b): New variables.
* config/i386/sync.md (CASMODE, DCASMODE): New mode macros.
(doublemodesuffix, DCASHMODE): New mode attrs.
(sync_compare_and_swap<mode>): Change into expand, use CASMODE
instead of IMODE, if mode is wider than a word, expand into
sync_double_compare_and_swap*.
(*sync_compare_and_swap<mode>): New insn.
(sync_double_compare_and_swap<mode>): Likewise.
(*sync_double_compare_and_swapdi_pic): Likewise.
(sync_compare_and_swap_cc<mode>): Use CASMODE instead of IMODE, if
mode is wider than a word, expand into
sync_double_compare_and_swap_cc*.
(sync_double_compare_and_swap_cc<mode>): New insn.
(*sync_double_compare_and_swap_ccdi_pic): Likewise.
2005-12-22 Richard Henderson <rth@redhat.com>
* config/i386/mmintrin.h (_mm_add_si64): Only define for SSE2.
(_mm_sub_si64): Likewise.
* config/i386/xmmintrin.h (_mm_shuffle_pi16, _m_pshufw): Likewise.
2005-12-23 Alan Modra <amodra@bigpond.net.au>
PR rtl-optimization/25432
* reload1.c (eliminate_regs_in_insn): Update insn code on
successfully re-recognizing modified insn.
2005-12-22 Richard Guenther <rguenther@suse.de>
* tree.c (tree_fold_gcd): Use build_int_cst where appropriate.
* tree-ssa-loop-ivcanon.c (create_canonical_iv): Likewise.
* varasm.c (array_size_for_constructor): Likewise.
* fold-const.c (size_diffop, invert_truthvalue,
optimize_bit_field_compare, make_range, build_range_check,
fold_cond_expr_with_comparison, fold_truthop,
fold_single_bit_test_into_sign_test, fold_binary): Likewise.
2005-12-22 Dale Johannesen <dalej@apple.com>
* config/i386/sse.md (sse_movhlps): Reverse operands for
2nd and 3rd alternatives.
2005-12-22 Andrew Pinski <pinskia@physics.uc.edu>
PR tree-opt/25513
* tree-dfa.c (make_rename_temp): Set DECL_COMPLEX_GIMPLE_REG_P complex
variables.
2005-12-22 Zdenek Dvorak <dvorakz@suse.cz>
Steven Bosscher <stevenb@suse.de>
* df.c (df_bitmaps_free): Only work for bbs for that structures are
allocated.
(df_bb_modify): Realloc tables to the new index.
(df_find_use): New function.
(df_find_def, df_reg_used): Handle subregs.
* df.h (df_find_use): Declare.
* loop-invariant.c: Include hashtab.h.
(struct invariant): Remove processed field, add eqto and reg fields.
(struct invariant_expr_entry): New.
(invariant_for_use, hash_invariant_expr_1, invariant_expr_equal_p,
hash_invariant_expr, eq_invariant_expr, find_or_insert_inv,
find_identical_invariants, merge_identical_invariants): New functions.
(create_new_invariant): Return the new invariant. Initialize new
fields.
(find_invariants): Call merge_identical_invariants.
(get_inv_cost, best_gain_for_invariant, set_move_mark,
move_invariant_reg): Handle equivalent invariants.
* Makefile.in (loop-invariant.o): Add HASHTAB_H dependency.
2005-12-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
PR c++/23333
* c-lex.c (c_lex_with_flags): Add PURE_ZERO to cpp_flags if
number is a single digit '0'.
2005-12-22 Kazu Hirata <kazu@codesourcery.com>
PR tree-optimization/23518
* fold-const.c (make_range): Don't move a constant to the
other side of the comparison if the type is signed and -fwrapv
is given.
2005-12-22 Kazu Hirata <kazu@codesourcery.com>
* tree-vrp.c (extract_range_from_binary_expr): Clean up uses
of vr0.type.
2005-12-21 Joseph S. Myers <joseph@codesourcery.com>
PR middle-end/24998
* config/arm/t-arm-elf (LIB1ASMFUNCS): Add _floatundidf and
_floatundisf.
2005-12-21 Andrew Haley <aph@redhat.com>
PR middle-end/25121
* recog.c (peephole2_optimize): Don't peephole any
RTX_FRAME_RELATED_P insns.
2005-12-21 Kazu Hirata <kazu@codesourcery.com>
* tree-data-ref.c (estimate_niter_from_size_of_data): Replace
fold_build2 with fold_binary.
* tree-ssa-ccp.c (visit_assignment, maybe_fold_stmt_addition):
Replace fold_build1 with fold_unary.
* tree-ssa-reassoc.c (optimize_ops_list): Replace fold_build2
with fold_binary.
2005-12-21 Steven Bosscher <stevenb@suse.de>
PR rtl-optimization/25196
* postreload-gcse.c (record_last_set_info): Notice stack pointer
changes in push insns without REG_INC notes.
2005-12-21 Kazu Hirata <kazu@codesourcery.com>
PR tree-optimization/25382.
* tree-vrp.c (extract_range_from_binary_expr): Extract a range
from BIT_AND_EXPR.
2005-12-21 Janis Johnson <janis187@us.ibm.com>
Ben Elliston <bje@au.ibm.com>
* configure.ac: Enable C extension for decimal float if invoked
with --enable-decimal-float.
* doc/install.texi (Configuration): Document it.
* configure, config.in: Regenerate.
2005-12-20 Mike Stump <mrs@apple.com>
* config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Handle the
ambiguity between -seg_addr_table and -seg_addr_table_filename.
(WORD_SWITCH_TAKES_ARG): Likewise.
(LINK_SPEC): Likewise.
2005-12-20 Kenneth Zadeck <zadeck@naturalbridge.com>
* cfganal.c (flow_reverse_top_sort_order_compute):
Renamed to post_order_compute and additional parameter added which
allows the inclusion of entry and exit blocks into list.
(mark_dfs_back_edges): Fixed comment.
(flow_depth_first_order_compute): Renamed to
pre_and_rev_post_order_compute additional parameter added which
allows the inclusion of entry and exit blocks into list.
* global.c (set_up_bb_rts_numbers): Call to
flow_reverse_top_sort_order_compute renamed to
post_order_compute.
* var-tracking.c (vt_stack_adjustments): Fixed comment.
(vt_find_locations): Call to
flow_depth_first_order_compute renamed to
pre_and_rev_post_order_compute.
* cfgloop.c (flow_find_loops): Ditto.
* tree-ssa-reassoc.c (init_reassoc): Ditto.
* df.c (df_analyze_1, df_analyze_subcfg): Calls to
flow_reverse_top_sort_order_compute renamed to post_order_compute
and calls to flow_reverse_top_sort_order_compute renamed to
post_order_compute.
* basic_block.h: Ditto.
2005-12-20 Roger Sayle <roger@eyesopen.com>
Paolo Bonzini <bonzini@gnu.org>
PR rtl-optimization/25115
* gcse.c (pre_insert_copy_insn): Fall back to the sole
SET in the insn if there is no SET for an
expression that is equivalent to EXPR.
2005-12-20 Richard Guenther <rguenther@suse.de>
PR middle-end/24306
* builtins.c (std_gimplify_va_arg_expr): Do not align
va frame for zero sized types.
* config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
2005-12-20 Kazu Hirata <kazu@codesourcery.com>
PR tree-optimization/25501
* tree-cfgcleanup.c (merge_phi_nodes): Check that RESULT is
used in the PHI argument corresponding to the edge from BB to
DEST.
2005-12-20 Richard Guenther <rguenther@suse.de>
Revert
2005-12-02 Richard Guenther <rguenther@suse.de>
* tree-cfg.c (mark_used_vars): New function.
(dump_function_to_file): Dump only used VAR_DECLs.
2005-12-19 Roger Sayle <roger@eyesopen.com>
* combine.c (try_combine): Improve splitting of binary operators
by taking advantage of reassociative transformations.
2005-12-19 Jeff Law <law@redhat.com>
* tree-ssa-dom.c (thread_across_edge): Do not use local_fold.
Strip away all type conversions after simplifying the
condition.
* tree-cfgcleanup.c (merge_phi_nodes): Allow merging in some
cases the forwarder block dominates the destination.
2005-12-19 DJ Delorie <dj@redhat.com>
* reload1.c (spill_failure): Dump reload data to dump file.
(find_reload_regs): Likewise.
2005-12-19 Zdenek Dvorak <dvorakz@suse.cz>
PR tree-optimization/24793
* tree-ssa-loop-ivopts.c (get_ref_tag): Remember the
original reference if there are subvars.
* tree-ssa-operands.c (get_tmr_operands): Handle subvars.
2005-12-19 Kenneth Zadeck <zadeck@naturalbridge.com>
* df.c (df_analyze_1, df_analyze_subcfg, iterative_dataflow):
Corrected basic block number calculations for changes in entry and
exit numbering.
2005-12-19 Zdenek Dvorak <dvorakz@suse.cz>
* tree-flow.h (struct var_ann_d): Change type of
may_aliases field to VEC(tree, gc) *.
(may_aliases): Declaration changed.
* tree-ssa-alias.c (group_aliases, add_may_alias,
replace_may_alias, dump_may_aliases_for,
is_aliased_with, add_type_alias, new_type_alias):
Work with VEC(tree, gc) * instead of varray.
* tree-flow-inline.h (may_aliases): Ditto.
* tree-ssa.c (verify_flow_insensitive_alias_info,
verify_name_tags): Ditto.
* tree-ssa-operands.c (add_stmt_operand): Ditto.
2005-12-19 J"orn Rennecke <joern.rennecke@st.com>
* cfgcleanup.c: Temporarily revert patches for PR 20070 till Bernd
comes back.
2005-12-19 J"orn Rennecke <joern.rennecke@st.com>
* struct-equiv.c (struct_equiv_improve_checkpoint): Fix sets_cc0_p
check.
2005-12-19 Ben Elliston <bje@au.ibm.com>
* doc/install.texi (Configuration): Typo in Fortran subheading.
2005-12-19 Nathan Sidwell <nathan@codesourcery.com>
* config/mt/mt.md (decrement_and_branch_until_zero): Add another
scratch. Correct its reload split. Adjust its peephole.
(doloop_end): Add additional scratch.
(nop): Use 'nop'.
* config/mt/mt.c (MT_INT_ARG_FIRST): Remove.
(mt_asm_output_opcode, mt_print_operand): Use 'nop'.
(mt_function_arg_slotno): Use FIRST_ARG_REGNUM.
(mt_builtin_saveregs): Replace with ...
(mt_setup_incoming_varargs): ... here. Save just the varadic
args.
(mt_va_start): Remove.
(mt_reorg_hazard): Ignore USE insns. Don't call set_noop_p.
(mt_machine_reorg): Split all insns here.
(TARGET_SETUP_INCOMING_VARARGS): Override.
* config/mt/mt.h (TARGET_CPU_CPP_BUILTINS): Define __mt__ only.
Set to CPU type.
(EXPAND_BUILTIN_VA_START): Remove.
2005-12-17 Kenneth Zadeck <zadeck@naturalbridge.com>
* flow.c (update_life_info, count_or_remove_death_notes): Fixed
latent bug that could happen if update_life_info was called with a
blocks parameter and the call to cleanup_cfg actually deleted one
of those blocks.
2005-12-19 Zdenek Dvorak <dvorakz@suse.cz>
* tree-ssa-structalias.c (update_alias_info): Remove handling
of may_be_aliased (SSA_NAME_VAR (op)) case.
2005-12-19 Zdenek Dvorak <dvorakz@suse.cz>
* tree-flow.h (struct stmt_ann_d): Remove
makes_aliased_loads and makes_aliased_stores fields.
* tree-ssa-ccp.c (likely_value): Do not use makes_aliased_stores
and makes_aliased_loads fields.
* tree-ssa-dom.c (eliminate_redundant_computations): Do not
use makes_aliased_stores.
* tree-ssa-operands.c (clobbered_aliased_loads,
clobbered_aliased_stores, ro_call_aliased_loads): Removed.
(build_ssa_operands, add_stmt_operand, add_call_clobber_ops,
add_call_read_ops): Do not set makes_aliased_stores and
makes_aliased_loads fields.
* tree-ssa.c (verify_ssa): Do not verify makes_aliased_stores
field.
2005-12-18 Geoffrey Keating <geoffk@apple.com>
* config/darwin.h: Don't include darwin-sections.def to declare
global variables; instead create darwin_section_enum.
(darwin_section_enum): New.
(darwin_sections): New.
* config/darwin.c: Don't include darwin-sections.def to define
global variables.
(darwin_sections): New.
(output_objc_section_asm_op): Rewrite to take advantage of
darwin_sections.
(darwin_init_sections): Rewrite to use darwin_sections.
(machopic_output_indirection): Update for darwin_sections array.
(machopic_select_section): Likewise.
(machopic_select_rtx_section): Likewise.
(machopic_asm_out_constructor): Likewise.
(machopic_asm_out_destructor): Likewise.
(darwin_file_end): Likewise.
* config/rs6000/rs6000.c (machopic_output_stub): Likewise.
* config/i386/i386.c (machopic_output_stub): Likewise.
2005-12-18 Richard Guenther <rguenther@suse.de>
PR tree-optimization/25481
* tree-ssa-structalias.c (handle_ptr_arith): Handle accesses we
don't have a varinfo for.
2005-12-18 Jon Grimm <jgrimm2@us.ibm.com>
Janis Johnson <janis187@us.ibm.com>
Ben Elliston <bje@au.ibm.com>
* optabs.c (init_floating_libfuncs): Handle decimal float modes.
(init_optabs): Handle libfuncs for decimal float.
* genopinit.c (gen_insn): Handle MODE_DECIMAL_FLOAT.
* stor-layout.c (int_mode_for_mode): Likewise.
* simplify-rtx.c (simplify_immed_subreg): Likewise.
(simplify_unary_operation_1): Skip optimisations for decimal float
modes.
* varasm.c (output_constant_pool_2): Handle MODE_DECIMAL_FLOAT.
* emit-rtl.c (gen_const_vector): Add assertion check.
(init_emit_once): Populate const_tiny_rtx with constants in each
decimal float mode.
* expmed.c (extract_high_half, expand_mult_highpart_optab,
expand_mult_highpart): Assert that mode is not a scalar float
mode.
* expr.c (convert_move): Handle conversion between decimal and
binary floats of the same size.
* convert.c (convert_to_real): Consider decimal float types when
folding.
* dwarf2out.c (base_type_die): Use DW_ATE_decimal_float to
describe decimal floating point types.
2005-12-18 Ulrich Weigand <uweigand@de.ibm.com>
PR rtl-optimization/21041
* reload.c (find_reloads_subreg_address): Replace paradoxical
subreg of MEM by widened access only if the resulting memory
is properly aligned, even on !STRICT_ALIGNMENT targets.
2005-12-18 Andreas Krebbel <krebbel1@de.ibm.com>
* tree-cfg.c (tree_flow_call_edges_add): Check for empty basic blocks.
2005-12-18 Steven Bosscher <stevenb@suse.de>
* gcse.c (gcse_main, bypass_jumps): Fix non-GNU-isms from
the 2005-12-17 patch to renumber the entry and exit blocks.
2005-12-18 Gabriel Dos Reis <gdr@integrable-solutions.net>
* doc/objc.texi (Type encoding): Fix typo.
2005-12-17 Gabriel Dos Reis <gdr@integrable-solutions.net>
* tree-tailcall.c (find_tail_calls): Use XNEW.
* tree-ssa-dom.c (allocate_edge_info): Use XCNEW.
(free_all_edge_infos): Use explicit cast to convert from void *.
(vrp_free): Likewise.
(dom_opt_finalize_block): Likewise.
(record_equivalences_from_incoming_edge): Likewise.
(thread_across_edge): Likewise. Use XCNEWVEC.
(record_cond): Use XCNEW.
(record_conditions): Use XNEWVEC.
(record_edge_info): Use XCNEWVEC.
(lookup_avail_expr): Use XNEW.
(record_range): Likewise. Use GGC_NEW.
* tree-nested.c (var_map_hash): Use explicit cast to convert from
void *.
(var_map_eq): Likewise.
(lookup_field_for_decl): Likewise.
(convert_nonlocal_reference): Likewise.
(convert_local_reference): Likewise.
(convert_nl_goto_reference): Likewise.
(convert_nl_goto_receiver): Likewise.
(convert_call_expr): Likewise.
(convert_tramp_reference): Likewise.
(lookup_tramp_for_decl): Likewise.Use GGC_NEW.
(convert_nl_goto_reference): Likewise.
(lookup_field_for_decl): Use GGC_NEW.
(create_nesting_tree): Use GGC_CNEW.
* tree-ssa-phiopt.c (blocks_in_phiopt_order): Use XNEWVEC.
* tree-ssa-alias.c (init_alias_info): Use XCNEW.
(create_alias_map_for): Likewise.
(setup_pointers_and_addressables): Use XCNEWVEC.
(get_ptr_info): Use GGC_NEW.
(used_part_map_eq): Use explicit cast to convert from void *.
(up_lookup): Likewise.
(up_insert): Use XNEW.
(get_or_create_used_part_for): Use XCNEW.
(get_tmt_for): Likewise.
* tree-ssa-operands.c (ssa_operand_alloc): Use GGC_NEW.
* tree-ssa-pre.c (phi_trans_add): Use XNEW.
(bitmap_set_new): Use explicit cast to convert from void *.
(set_new): Likewise.
(insert_into_set): Likewise.
(pool_copy_list): Likewise.
(phi_translate): Likewise.
(create_value_expr_from): Likewise.
(insert_aux): Use XCNEWVEC.
(compute_avail): Use XNEWVEC.
* tree-ssa-live.c (calculate_live_on_entry): Likewise.
(sort_coalesce_list): Likewise.
(build_tree_conflict_graph): Use XCNEWVEC.
* tree-ssa-dce.c (tree_dce_init): Use XNEWVEC.
* tree-ssa-copy.c (init_copy_prop): Likewise.
(fini_copy_prop): Likewise.
* tree-ssa-uncprop.c (associate_equivalences_with_edges): Use XNEW
and XCNEWVEC.
(record_equiv): Use XNEW.
(uncprop_into_successor_phis): Use explicit cast to convert from
void *.
(uncprop_initialize_block): Likewise.
2005-12-18 Dorit Nuzman <dorit@il.ibm.com>
PR tree-optimization/24378
* tree-vect-transform.c (vect_transform_loop): Create single-predecessor
basic-block after loop-versioning.
2005-12-18 Jeff Law <law@redhat.com>
* tree-ssa-dom.c (simplify_switch_and_lookup_avail_expr): Code
to simplify SWITCH_EXPR_CODE moved from here to ...
* tree-ssa-forwprop.c (simplify_switch_expr): Here.
(tree-ssa-forward_propagate_single_use_vars): Call
simplify_switch_expr when appropriate.
2005-12-17 Andrew Pinski <pinskia@physics.uc.edu>
* doc/objc.texi (Type encoding): Add documentation about encoding
complex types and _Bool.
2005-12-17 Paul Brook <paul@codesourcery.com>
* config/m68k/m68k.md (m68k_output_function_prologue): Always call
dwarf2out_def_cfa. Only add space for frame pointer to cfa_offset
when frame_pointer_needed.
2005-12-17 Gabriel Dos Reis <gdr@integrable-solutions.net>
* tree-vn.c (vn_add): Use XNEW.
* tree-ssa-ccp.c (ccp_initialize): Use XNEWVEC.
(ccp_fold): Likewise.
(fold_stmt_r): Use explicit cast to convert from void *.
* tree-outof-ssa.c (new_temp_expr_table): Use XCNEWVEC.
(new_temp_expr_table): Likewise.
* gimplify.c (lookup_tmp_var): Use XNEW.
(gimplify_asm_expr): Use explcit cast to convert from void *.
* tree-into-ssa.c (get_ssa_name_ann): Likewise.
(get_def_blocks_for): Use XNEW.
(add_to_repl_tbl): Likewise.
(mark_def_sites): Use explicit cast to convert from void *.
(def_blocks_free): Likewise.
(mark_def_sites_initialize_block): Likewise.
(update_ssa): Use XNEWVEC.
* tree-dfa.c (create_var_ann): Use GGC_NEW.
(create_stmt_ann): Likewise.
(create_tree_ann): Likewise.
(referenced_var_insert): Likewise.
(set_default_def): Likewise.
(referenced_var_lookup_if_exists): Use explicit cast to convert
from void *.
(referenced_var_lookup): Likewise.
(default_def): Likewise.
(set_default_def): Likewise.
* tree-cfg.c (create_bb): Likewise.
(edge_to_cases_cleanup): Likewise.
(verify_node_sharing): Likewise.
(record_switch_edge): Use XNEW.
(cleanup_dead_labels): Use XCNEWVEC.
(tree_duplicate_sese_region): Use XNEWVEC.
* tree-scalar-evolution.c (get_instantiated_value): Likewise.
* tree-ssa.c (verify_ssa): Use XCNEWVEC.
(int_tree_map_eq): Use explicit cast to convert from void *.
* libgcov.c (gcov_exit): Use explicit cast to convert from void *.
(__gcov_execl): Likewise.
(__gcov_execlp): Likewise.
(__gcov_execle): Likewise.
* tree-eh.c (struct_ptr_eq): Likewise.
(struct_ptr_hash): Likewise.
(lookup_stmt_eh_region_fn): Likewise.
(outside_finally_tree): Likewise.
(find_goto_replacement): Likewise.
(make_eh_edge): Likewise.
(mark_eh_edge): Likewise.
(add_stmt_to_eh_region_fn): Use GGC_NEW.
(record_in_finally_tree): Use XNEW.
(maybe_record_in_goto_queue): Use XRESIZEVEC.
(lower_try_finally_copy): Use XCNEWVEC.
2005-12-17 Gabriel Dos Reis <gdr@integrable-solutions.net>
* tree-inline.c (copy_body_r): Use explicit cast when converting
from void *.
(copy_bb): Likewise.
(copy_edges_for_bb): Likewise.
(remap_decl_1): Likewise.
(estimate_num_insns_1): Likewise.
* cgraph.c (hash_node): Use explicit cast when converting from
void *.
(eq_node): Likewise.
(cgraph_create_node): Use GGC_CNEW.
(cgraph_create_edge): Use GGC_NEW.
(cgraph_remove_node): Use explicit cast when converting from void *.
(hash_varpool_node): Likewise.
(eq_varpool_node): Likewise.
(cgraph_varpool_node): Use GGC_CNEW.
* lambda.h (lambda_vector_new): Use GGC_CNEWVEC.
* tree-scalar-evolution.c (new_scev_info_str): Use XNEW.
(eq_scev_info): Use explicit cast when converting from void *.
(find_var_scev_info): Likewise.
(set_instantiated_value): Likewise.
(gather_stats_on_scev_database_1): Likewise.
* cfgloop.h (simple_loop_desc): Use explicit cast when converting
from void *.
* c-pch.c (c_common_write_pch): Use XNEWVEC.
(c_common_read_pch): Likewise.
* prefix.c (save_string): Use XNEWVEC.
(translate_name): Use explicit cast when converting from void *.
* c-ppoutput.c (print_line): Use explicit cast when converting
from void *.
(pp_dir_change): Likewise.
* c-cppbuiltin.c (builtin_define_std): Likewise.
(builtin_define_with_value): Likewise.
(builtin_define_with_value_n): Likewise.
(builtin_define_with_int_value): Likewise.
(builtin_define_type_max): Likewise.
* c-incpath.c (add_env_var_paths): Use XNEWVEC.
(add_path): Use XNEW.
* c-format.c (check_format_info_main): Use GGC_NEW.
(format_type_warning): Use explicit cast when converting from void *.
* c-typeck.c (alloc_tagged_tu_seen_cache): Use XNEW instead of
xmalloc.
(start_init): Likewise.
* tree-flow-inline.h (first_referenced_var): Use explicit cast
when converting from void *.
(next_referenced_var): Likewise.
* c-pragma.c (push_alignment): Use GGC_NEW instead of ggc_alloc.
* gensupport.c (lookup_predicate): Use explicit cast to convert
from void *.
(init_predicate_table): Use XCNEW instead of xcalloc.
* genpreds.c (process_define_predicate): Likewise.
2005-12-17 Danny Berlin <dberlin@dberlin.org>
Kenneth Zadeck <zadeck@naturalbridge.com>
* basic-block.h: Changed basic block numbering so that the entry
block is 0 and the exit block is 1. Changed insn iterators so
that they are tolerant of blocks with no insns.
* regrename.c (copyprop_hardreg_forward): Changed basic block
numbering so that the entry block is 0 and the exit block is 1.
* sched-ebb.c (sehedule_ebbs): Ditto.
* tracer.c (branch_ratio_cutoff): Ditto.
* cfgloopmanip.c (fix_loop_structure): Ditto.
* cfghooks.c (verify_flow_info): Ditto.
* cfg.c (compact_blocks): Ditto.
* reorg.c (dbr_schedule): Ditto.
* flow.c (calculate_global_regs_live, libcall_dead_p): Ditto.
* dominance.c (calc_dfs_tree_nonrec, calc_dfs_tree,
calculate_dominance_info): Ditto.
* cfganal.c (create_edge_list, print_edge_list,
flow_depth_first_order_compute, flow_dfs_compute_reverse_init,
flow_dfs_compute_reverse_add_bb, flow_dfs_compute_reverse_execute,
dfs_enumerate_from): Ditto.
* global.c (global_alloc, set_up_bb_rts_numbers): Ditto.
* ifcvt.c (find_if_case_2): Ditto.
* cfgbuild.c (control_flow_insn_p, count_basic_blocks,
find_basic_blocks): Ditto.
* predict.c (predict_loops, tree_bb_level_predictions,
predict_paths_leading_to, propagate_freq): Ditto.
* lcm.c (compute_antinout_edge, compute_laterin,
compute_available): Ditto.
* function.c (thread_prologue_and_epilogue_insns): Ditto.
* gcse.c (gcse_main, bypass_jumps): Ditto.
* profile.c (compute_branch_probabilities,
compute_value_histograms, branch_prob): Ditto.
* tree-flow-inline.h (bsi_start, bsi_after_labels,
bsi_last): Ditto.
* tree-ssa-phiopt.c (tree_ssa_phiopt,
blocks_in_phiopt_order): Ditto.
* bt-load.c (compute_defs_uses_and_gen, compute_kill,
compute_out, link_btr_uses, migrate_btr_defs): Ditto.
* tree-dfa.c (collect_dfa_stats): Ditto.
* cfgcleanup.c (try_forward_edges, try_optimize_cfg): Ditto.
* cfglayout.c (fixup_reorder_chain): Ditto.
* bb-reorder.c (reorder_basic_blocks, duplicate_computed_gotos,
partition_hot_cold_basic_blocks): Ditto.
* var-tracking.c (vt_find_locations): Ditto.
* cfgloop.c (flow_loops_cfg_dump, flow_loops_find, get_loop_body): Ditto.
* sched-rgn.c (compute_trg_info, init_regions, schedule_insns): Ditto.
* tree-cfg.c (init_empty_tree_cfg, build_tree_cfg, make_edges
label_to_block_fn, print_loop_ir, tree_flow_call_edges_add): Ditto.
* tree-ssa-reassoc.c (init_reassoc): Ditto.
* cfgrtl.c (entry_of_function, rtl_verify_flow_info,
rtl_flow_call_edges_add, rtl_flow_call_edges_add): Ditto.
* df.c (df_analyze_1, hybrid_search, iterative_dataflow): Ditto
and removed unused reverse orders.
* df.h (): Ditto.
* combine.c: Fix document typo.
2005-12-17 Jan Hubicka <jh@suse.cz>
* tree-flow-inline.h (set_default_def, default_def): Kill.
* tree-dfa.c (default_defs): New global variable.
(default_def, set_default_def): New functions.
* tree-ssa.c (init_tree_ssa, delete_tree_ssa): Add default_def hash.
* tree-flow.h (struct var_ann_d): Kill default_def field.
(set_default_def, default_def): Update prototype.
(default_defs): Declare.
2005-12-16 Jeff Law <law@redhat.com>
* tree-ssa-dom.c (update_rhs_and_lookup_avail_expr): Kill.
(simplify_rhs_and_lookup_avail_expr): Kill. Remnants moved
into tree-ssa-forwprop.c.
(eliminate_redundant_computations): Do not call
simplify_rhs_and_lookup_avail_expr anymore.
* tree-ssa-forwprop.c (simplify_not_neg_expr): New function
extracted from remnants of simplify_rhs_and_lookup_avail_expr.
(tree_ssa_forward_propagate_single_use_vars): Call
simplify_not_neg_expr appropriately.
2005-12-16 Bernd Trog <berndtrog@yahoo.com>
PR target/20016
* config/avr/t-avr: Add -Os to TARGET_LIBGCC2_CFLAGS.
2005-12-17 Kazu Hirata <kazu@codesourcery.com>
PR rtl-optimization/25456
* struct-equiv.c (struct_equiv_improve_checkpoint): Replace
info->x_start with p->x_start.
2005-12-17 Alan Modra <amodra@bigpond.net.au>
* simplify-rtx.c (simplify_binary_operation_1 <IOR>): Correct bug
introduced 2005-12-16.
2005-12-16 Steven Bosscher <stevenb@suse.de>
PR rtl-optimization/23837
* optabs.c (expand_binop): For a multi-word rotate, never emit
a REG_NO_CONFLICT block.
2005-12-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
PR middle-end/25457
* reorg.c (mostly_true_jump): Remove unused variable 'insn'.
PR target/25447
* config/pa/pa.c (pa_scalar_mode_supported_p): Handle
MODE_DECIMAL_FLOAT.
2005-12-16 Steven Bosscher <stevenb@suse.de>
* loop-invariant.c (move_loop_invariants): Add missing hunk from
the previous patch, to nullify df.
2005-12-16 Steven Bosscher <stevenb@suse.de>
* reorg.c (mostly_true_jump): Clean up code depending on
LABEL_OUTSIDE_LOOP_P and loop notes. Remove code doing
poor man's branch prediction, instead rely on REG_BR_PROB
notes to be available.
2005-12-16 Jakub Jelinek <jakub@redhat.com>
PR rtl-optimization/24899
* loop.c (strength_reduce): Don't reduce giv that is not always
computable and where add_val or mult_val can trap.
* doc/invoke.texi (-fdump-tree-*): Remove note about C/C++ only.
2005-12-16 Nathan Sidwell <nathan@codesourcery.com>
* config/mt/mt.h (LIB_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Correct
names of ms1-16-002 files.
2005-12-16 Alan Modra <amodra@bigpond.net.au>
PR driver/20425
* gcc.c (for_each_path): New function.
(add_to_obstack, file_at_path): New functions.
(struct file_at_path_info, struct add_to_obstack_info): New.
(build_search_list): Rewrite using for_each_path. Constify struct
path_prefix pointer. Add do_multi param. Adjust all callers.
(find_a_file): Similarly, but just change existing param to bool.
(putenv_from_prefixes): Add do_multi param, make "paths" const.
(do_spec_path): Delete.
(struct spec_path_info): New.
(spec_path): New function.
(do_spec_1): Use for_each_path for %D and %I.
(find_file): Adjust for find_a_file changes.
(main): Search multilibs for specs. Print multilib lib path for
-print-search-dirs. Likewise add multilibs to LIBRARY_PATH_ENV.
(read_specs): Search multilibs for %include and %include_noerr.
(is_directory): Remove second string param. Change last param
to a bool. Don't use concat. Remove SMALL_ARG_MAX test, always
check path is a dir. Update all callers.
* doc/hostconfig.texi (SMALL_ARG_MAX): Remove mention.
* system.h (SMALL_ARG_MAX): Poison.
* config.gcc: Don't define SMALL_ARG_MAX.
* config.host: Likewise.
* config.build: Likewise.
2005-12-16 Paolo Bonzini <bonzini@gnu.org>
* combine.c (combine_simplify_rtx <case NOT, NEG, TRUNCATE,
FLOAT_TRUNCATE, FLOAT_EXTEND, PLUS, MINUS, AND, IOR, XOR,
ABS, VEC_SELECT, POPCOUNT, PARITY, FFS, FLOAT>,
simplify_logical): Move simplifications that do not require
additional infrastructure...
* simplify-rtx.c (simplify_unary_operation_1,
simplify_binary_operation_1): ... here.
2005-12-16 Andreas Krebbel <krebbel1@de.ibm.com>
PR 24823
* flow.c (mark_used_dest_regs): New function.
(mark_used_regs): Call mark_used_dest_regs.
2005-12-16 Jeff Law <law@redhat.com>
* tree-ssa-dse.c (dse_optimize_stmt): Correctly handle PHI nodes which
represent a use and definition of the same SSA_NAME.
2005-12-16 Jon Grimm <jgrimm2@us.ibm.com>
Janis Johnson <janis187@us.ibm.com>
Ben Elliston <bje@au.ibm.com>
* target-def.h (TARGET_DECIMAL_FLOAT_SUPPORTED_P): New.
(TARGET_INITIALIZER): Add TARGET_DECIMAL_FLOAT_P.
* target.h (struct gcc_target): Add decimal_float_supported_p.
* targhooks.c (default_scalar_mode_supported_p): Handle
MODE_DECIMAL_FLOAT.
* builtins.def: Add new builtins for 32, 64 and 128 bit variants
of inf, nan, finite, isinf and isnan.
* builtin-types.def (BT_DFLOAT32, BT_DFLOAT64, BT_DFLOAT128,
BT_DFLOAT32_PTR, BT_DFLOAT64_PTR, BT_DFLOAT128_PTR,
BT_FN_DFLOAT32, BT_FN_DFLOAT64, BT_FN_DFLOAT128,
BT_FN_INT_DFLOAT32, BT_FN_INT_DFLOAT64, BT_FN_INT_DFLOAT128,
BT_FN_DFLOAT32_CONST_STRING, BT_FN_DFLOAT64_CONST_STRING,
BT_FN_DFLOAT32_CONST_STRING, BT_FN_DFLOAT32_DFLOAT32,
BT_FN_DFLOAT64_DFLOAT64, BT_FN_DFLOAT128_DFLOAT128): New.
* c-decl.c (declspecs_add_type): Verify combos on type qualifiers.
Pedwarn if decimal floating point types are used. Error if
decimal floating point is not supported by the target.
(finish_declspecs): Return type from DFP typespec_word.
* c-typeck.c (c_common_type): Choose the decimal floating point
type with the greater precision when determining a common type.
(convert_arguments): Warn if there is a mismatch between argument
and prototype for decimal float types. Warn of conversions with
binary float types and of precision narrowing due to prototype.
* c-parser.c (reswords): Add _Decimal32, _Decimal64, _Decimal128.
(c_token_starts_typename): Handle RID_DFLOAT32/64/128.
(c_token_starts_declspecs): Likewise.
(c_parser_attributes): Likewise.
* c-common.h (enum rid): Add new enumeration values RID_DFLOAT32,
RID_DFLOAT64, RID_DFLOAT128.
(T_D32, TEX_D32, T_D64, TEX_D64, T_D128, TEX_D128): New macros.
* c-common.c (c_common_type_for_mode): Handle decimal float modes.
(shorten_compare): Convert DFP/BFP operands to a common type.
(c_common_modes_and_builtins): Register built-in decimal float
types if the target supports them.
(handle_mode_addtribute): Handle MODE_DECIMAL_FLOAT.
* builtins.c (fold_builtin_1): Handle 32, 64 and 128 bit cases of
inf, nan, finite, isinf and isnan builtins.
* c-cppbuiltin.c (builtin_define_decimal_float_constants): New.
(builtin_define_float_constants): Assert non-decimal radix.
(c_cpp_builtins): Register built-in __DEC_EVAL_METHOD__ define.
Call builtin_define_decimal_float_constants for each type.
* c-lex.c (interpret_float): Decode decimal float types from CPP_N
flags. Use real_from_string3, which can handle binary or decimal
floats.
* c-tree.h (enum c_typespec_keyword): Add cts_dfloat32,
cts_dfloat64, cts_dfloat128.
* tree.c (build_common_tree_nodes_2): Add decimal float types.
* tree.h (enum tree_index): Add new enumeration values
TI_DFLOAT32_TYPE, TI_DFLOAT64_TYPE, TI_DFLOAT128_TYPE,
TI_DFLOAT32_PTR_TYPE, TI_DFLOAT64_PTR_TYPE, TI_DFLOAT128_PTR_TYPE.
(dfloat32_type_node): New macro.
(dfloat64_type_node, dfloat128_type_node): Likewise.
(dfloat32_ptr_type_node, dfloat64_ptr_type_node): Likewise.
(dfloat128_ptr_type_node): Likewise.
* c-pretty-print.c (pp_c_floating_constant): Append 32, 64 and 128
bit decimal floating point types with "df", "dd" and "dl".
* c-format.h (enum format_lengths): Add new enumeration values
FMT_LEN_H, FMT_LEN_D and FMT_LEN_DD.
* c-format.c (printf_length_specs, scanf_length_specs): Add
entries for H, D, DD.
(print_char_table, scan_char_table): Use new entries.
(asm_fprintf_char_table, gcc_diag_char_table,
gcc_cdiag_char_table, gcc_cxxdiag_char_table): Adjust for longer
length arrays.
* defaults.h (DECIMAL32_TYPE_SIZE): Define.
(DECIMAL64_TYPE_SIZE): Likewise.
(DECIMAL128_TYPE_SIZE): Likewise.
(TARGET_DEC_EVAL_METHOD): Likewise.
* doc/extend.texi (Decimal Float): New node.
(Constructing Calls): Document decimal float built-ins.
* doc/tm.texi: Document TARGET_DECIMAL_FLOAT_SUPPORTED_P hook.
* Makefile.in (USER_H): Add $(srcdir)/ginclude/decfloat.h.
* ginclude/decfloat.h: New file.
2005-12-16 Alan Modra <amodra@bigpond.net.au>
* reload.c (find_reloads): Fix comment typo.
* recog.h (recog_memoized): Correct comment.
2005-12-16 Kazu Hirata <kazu@codesourcery.com>
* basic-block.h, config/i386/winnt.c, config/pa/pa.c,
config/s390/s390.c, dfp.c, expr.c, fold-const.c, params.def,
reload.c, struct-equiv.c, tree-ssa-ccp.c, tree-ssa-pre.c,
tree-ssa-reassoc.c, tree-ssa-structalias.c: Fix comment typos.
* doc/invoke.texi, doc/tm.texi: Fix typos.
2005-12-16 Ben Elliston <bje@au.ibm.com>
* real.c (decimal_quad_format): Correct values for emin, emax.
2005-12-15 DJ Delorie <dj@redhat.com>
* config/m32c/predicates.md (m32c_psi_scale): New.
* config/m32c/m32c.c (m32c_expand_neg_mulpsi3): New.
* config/m32c/muldiv.md (mulpsi3): Support negative constants.
2005-12-16 Jan Hubicka <jh@suse.cz>
PR rtl-optimization/25224
* tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Free copy
tables.
2005-12-15 Zdenek Dvorak <dvorakz@suse.cz>
Steven Bosscher <stevenb@suse.de>
* loop-invariant.c (df): New global variable.
(find_defs, check_dependencies, find_invariant_insn, record_uses,
find_invariants_bb, find_invariants_body, find_invariants,
find_invariants_to_move, move_invariants, free_inv_motion_data,
move_single_loop_invariants, move_loop_invariants): Do not pass df in
arguments.
2005-12-15 Jakub Jelinek <jakub@redhat.com>
* varasm.c (default_unique_section_1): Use special section
names for SECCAT_DATA_REL{,_RO}{,_LOCAL}.
2005-12-16 Ben Elliston <bje@au.ibm.com>
* doc/invoke.texi (Warning Options): Document -Walways-true being
enabled by -Wall.
2005-12-15 Joseph S. Myers <joseph@codesourcery.com>
PR other/25028
* libgcc2.h (SF_SIZE, DF_SIZE, XF_SIZE, TF_SIZE): Define.
* libgcc2.c (__floatdixf, __floatundixf, __floatditf,
__floatunditf): Use #error if type sizes don't match requirements
of implementation.
(__floatdisf, __floatdidf): Unify. Possibly use XFmode or TFmode
as wider floating-point type. Use #error if type sizes don't
match requirements of implementation. Avoid overflow in computing
Wtype_MAXp1_F * Wtype_MAXp1_F. When special casing conversion,
shift one more bit. Cast 1 to DWtype or UDWtype for shifting.
(__floatundisf, __floatundidf): Likewise.
* config/ia64/hpux.h (XF_SIZE, TF_SIZE): Define.
* config/ia64/ia64.c (ia64_init_libfuncs): Use
_U_Qfcnvfxt_quad_to_quad and _U_Qfcnvxf_quad_to_quad for
TFmode-TImode conversions.
* doc/tm.texi (SF_SIZE, DF_SIZE, XF_SIZE, TF_SIZE): Document.
2005-12-14 Craig Rodrigues <rodrigc@gcc.gnu.org>
* freebsd-spec.h (FBSD_TARGET_OS_CPP_BUILTINS):
Use builtin_define_with_int_value() instead of
adding a new check for every new major FreeBSD version.
2005-12-14 Andrew Pinski <pinskia@physics.uc.edu>
* config/t-darwin (darwin-c.o): Depend on $(TREE_H) instead of tree.h.
2005-12-15 Richard Sandiford <richard@codesourcery.com>
* config/arm/predicates.md (call_memory_operand): New.
* config/arm/arm.md (*call_mem, *call_value_mem): Use it.
2005-12-15 Andrew Haley <aph@redhat.com>
* unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Guard
against prev_cache_entry == NULL when moving a cache entry to the
head of the list.
2005-12-15 Nathan Sidwell <nathan@codesourcery.com>
* config/mt/mt.c (mt_override_options): Require lower case
architectures. Revert accidental default to ms2.
* config/mt/mt.h (ASM_SPEC, LIBSPEC, STARTFILE_SPEC,
ENDFILE_SPEC): Require lower case architectures. Revert default
to ms2.
* doc/invoke.texi (MT Options): Rename and update.
* doc/md.texi (MorphoTech family): Rename and update.
2005-12-15 Olivier Hainque <hainque@adacore.com>
* stor-layout.c (layout_type): Don't complain about a too small
an array element type size compared to its alignment when the
size overflows.
2005-12-15 Jan Hubicka <jh@suse.cz>
PR target/24969
* i386.c (classify_argument): Properly adjust offset of bitfield for
substructures.
2005-12-15 Richard Sandiford <richard@codesourcery.com>
* final.c (final_scan_insn): Flip in_cold_section_p when changing
between the hot and cold sections. Use current_function_section
to get the new section.
* dwarf2out.c (output_line_info): Use in_cold_section_p to
determine whether we are assembling hot or cold code.
(secname_for_decl, dwarf2out_var_location): Likewise.
(dwarf2out_init, dwarf2out_finish): Use switch_to_section.
* varasm.c (last_text_section): Delete.
(in_cold_section_p): New variable.
(hot_function_section): New function.
(current_function_section): Pass in_cold_section_p as the
reloc argument to select_section. Use it to decide between
unlikely_function_section and hot_function_section.
(assemble_start_function): Use switch_to_section. Set
in_cold_section_p instead of last_text_section.
(assemble_end_function): Use switch_to_section.
(switch_to_section): Don't set last_text_section.
* config/darwin/darwin.c (machopic_select_section): Trust the reloc
argument to make the right choice between hot and cold sections.
2005-12-15 Nathan Sidwell <nathan@codesourcery.com>
Second part of MS1->MT renaming
* config/mt/mt.md (doloop_end): Call mt_add_loop.
(movqi, movhi): Call mt_set_memflags.
(*movdf_internal): Call mt_split_words.
(reload_inqi, reload_outqi, reload_inhi, reload_outhi): Call
mt_set_memflags.
(cmpsi): Store to mt_compare_op[01].
(beq, bne, bge, bgt, ble, blt, bgeu, bgtu, bleu, bltu, bunge,
bungt, bunle, bunlt): Call mt_emit_cbranch.
(prologue): Call mt_expand_prologue.
(epilogu): Call mt_expend_epilogue.
(eh_return): Call mt_expand_eh_return.
(eh_epilogue): Call me_emit_eh_epilogue.
(conditional_trap): Store to mt_compare_op[01].
* config/mt/crti.asm: Adjust comment.
* config/mt/crtn.asm: Adjust comment.
* config/mt/mt.c (MT_INT_ARG_FIRST): Renamed.
(mt_compare_op0, mt_compare_op1): Renamed.
(current_frame_info, zero_frame_info): Adjust type.
(mt_ucmpsi3_libcall): Renamed.
(mt_flag_delayed_branch): Renamed.
(mt_struct_value_rtx, mt_return_addr_rtx): Renamed.
(mt_nops_required, mt_nop_reasons): Renamed.
(mt_asm_output_opcode, mt_get_attr_type, mt_final_prescan_insn,
mt_debug_stack, mt_print_operand_simple_address,
mt_print_operand_address, mt_print_operand): Renamed, adjusted.
(mt_init_cumulative_args, mt_function_arg_slotno, mt_function_arg,
mt_function_arg_advance, mt_arg_partial_bytes,
mt_pass_by_reference, mt_function_arg_boundary,
mt_reg_ok_for_base_p, mt_legitimate_simple_address_p,
mt_legitimate_address_p): Renamed, adjusted.
(mt_cpu): Renamed.
(mt_init_machine_status, mt_override_options, mt_builtin_saveregs,
mt_va_start, mt_compute_frame_size, mt_emit_save_restore,
mt_emit_save_fp, mt_emit_save_regs, mt_interrupt_function_p,
mt_expand_prologue, mt_epilogue_uses, mt_expand_epilogue,
mt_expand_eh_return, mt_emit_eh_prologue,
mt_handl_interrupt_attribute): Renamed, adjusted.
(mt_attribute_table): Renamed, adjusted.
(mt_initial_elimination_offset, mt_generate_compare,
mt_emit_cbranch, mt_set_memflags_1, mt_set_memflags,
mt_secondary_reload_class, mt_function_value, mt_split_words,
mt_pass_in_stack, mt_add_loop, mt_loop_nesting, mt_block_length,
mt_scan_loop, mt_reorg_loops): Renamed, adjusted.
(mt_labels): Renamed.
(mt_add_branches, mt_check_delay_slot, mt_reorg_hazard,
mt_machine_reorg): Renamed, adjusted.
(mt_attribute_table: Renamed.
(TARGET_ATTRIBUTE_TABLE, TARGET_STRUCT_VALUE_RTX,
TARGET_PASS_BY_REFERENCE, TARGET_MUST_PASS_IN_STACK,
TARGET_ARG_PARTIAL_BYTES, TARGET_MACHINE_DEPENDENT_REORG): Adjust.
* config/mt/mt.opt (march): Set mt_cpu_string.
* config/mt/mt.h (mt_ucmpsi3_libcall, mt_cpu): Renamed.
(TARGET_CPU_CPP_BUILTINS): Adjust.
(TARGET_MS1_64_001, TARGET_MS1_16_002, TARGET_MS1_16_003,
TARGET_MS2): Adjust.
(TARGET_VERSION, OVERRIDE_OPTIONS, SECONDARY_RELOAD_CLASS): Adjust.
(MT_MIN_INT): Renamed.
(RETURN_ADDR_RTX): Adjust.
(struct mt_frame_info): Renamed.
(current_frame_info): Adjust type.
(INITIAL_ELIMINATION_OFFSET): Adjust.
(MT_NUM_ARG_REGS): Renamed.
(REG_PARM_STACK_SPACE, FUNCTION_ARG, INIT_CUMULATVE_ARGS,
FUNCTION_ARG_ADVANCE, FUNCTION_ARG_BOUNDARY, FUNCTION_VALUE,
LIBCALL_VALUE, EPILOGUE_USES, EXPAND_BUILTIN_VA_START,
GO_IF_LEGITIMATE_ADDRESS, REG_OK_FOR_BASE_P, ASM_OUTPUT_OPCODE,
FINAL_REPSCAN_INSN, PRINT_OPERAND, PRINT_OPERAND_ADDRESS): Adjust.
(mt_compare_op0, mt_compare_op1): Renamed.
* config/mt/mt-protos.h: Rename prototypes.
2005-12-15 Richard Guenther <rguenther@suse.de>
* tree-flow.h (okay_component_ref_for_subvars): Remove.
(get_ref_base_and_extent): Declare.
* tree-dfa.c (okay_component_ref_for_subvars): Remove.
(get_ref_base_and_extent): New function.
* tree-ssa-alias.c (find_used_portions): Use it.
* tree-ssa-structalias.c (get_constraint_for_component_ref):
Likewise.
* tree-ssa-operands.c (get_expr_operands): Likewise.
2005-12-15 Paolo Bonzini <bonzini@gnu.org>
* combine.c: Remove force_to_mode's fourth parameter.
(force_to_mode): Do not handle REG.
(canon_reg_for_combine): New.
(make_field_assignment): Use it where the removed argument was non-NULL.
2005-12-15 Alan Modra <amodra@bigpond.net.au>
PR target/25406
* config/rs6000/rs6000.c (rs6000_special_round_type_align): Handle
error_mark_node. Make alignment params unsigned.
* config/rs6000/rs6000-protos.h
(rs6000_special_round_type_align): Update prototype.
(rs6000_machopic_legitimize_pic_address): Remove arg names.
2005-12-14 Ulrich Weigand <uweigand@de.ibm.com>
PR rtl-optimization/25310
* reload1.c (eliminate_regs_in_insn): Handle lowpart SUBREGs
of the eliminable register when substituting into a PLUS.
2005-12-14 Jakub Jelinek <jakub@redhat.com>
PR debug/25023
* config/i386/i386.c (ix86_force_to_memory): Always use
SImode push for HImode in -m32.
(ix86_free_from_memory): Likewise.
2005-12-14 Richard Sandiford <richard@codesourcery.com>
* config/arm/arm.md: Provide a big-endian version of the
(zero_extend:SI (subreg:QI ...)) splitter.
2005-12-14 J"orn Rennecke <joern.rennecke@st.com>
* struct-equiv.c (note_local_live): Handle hard regs with different
hard_regno_nregs.
2005-12-14 Jeff Law <law@redhat.com>
* tree-ssa-ccp.c (fold_stmt_r): DATA argument is now a pointer
to a structure containing state rather than a pointer to bool.
(case ARRAY_REF): New code to handle folding some array references.
(case ADDR_EXPR): Note when we are processing expressions found
within an ADDRE_EXPR.
(fold_stmt, fold_stmt_inplace): Pass in a structure to fold_stmt_r
for state variables rather than just a pointer to a boolean.
* tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Remove
handling of constant string references.
2005-12-14 Adrian Straetling <straetling@de.ibm.com>
* config/s390/s390.md ("*tstdi_extimm", "*tstsi_extimm"): Merge.
("*tstdi_cconly_extimm", "*tstsi_cconly_extimm"): Merge.
("*tstdi_cconly2", "*tstsi_cconly2"): Merge.
Move other tst* patterns to retain partial order.
2005-12-14 Adrian Straetling <straetling@de.ibm.com>
* config/s390/s390.md ("d0", "1"): New mode attributes.
("<shift>di3", "<shift>si3"): Merge.
("*<shift>di3_and", "*<shift>si3_and"): Merge.
("ashrdi3", "ashrsi3"): Merge.
("*ashrdi3_cc", "*ashrsi3_cc"): Merge.
("*ashrdi3_cc_and", "*ashrsi3_cc_and"): Merge.
("*ashrdi3_cconly", "*ashrsi3_cconly"): Merge.
("*ashrdi3_cconly_and", "*ashrsi3_cconly_and"): Merge.
("*ashrdi3", "*ashrsi3"): Merge.
("*ashrdi3_and", "*ashrsi3_and"): Merge.
2005-12-14 Adrian Straetling <straetling@de.ibm.com>
* config/s390/s390.md ("extend<mode>di2", "extend<mode>si2"): Merge.
("*extendqidi2_extimm", "*extendqisi2_extimm"): Merge.
("*extendqidi2", "*extendqisi2") Merge.
("*extendqidi2_short_displ", "*extendqisi2_short_displ"): Merge.
("zero_extendhidi2", "zero_extendqidi2"): Merge.
("*zero_extend<mode>di2_extimm", "*zero_extend<mode>si2_extimm"): Merge.
Move some patterns to retain partial ordering.
2005-12-14 Adrian Straetling <straetling@de.ibm.com>
* config/s390/s390.md ("atype", "length"): Rewrite.
("*insv<mode>_reg_imm", "*insv<mode>_reg_extimm"): Add mode.
2005-12-14 Sebastian Pop <pop@cri.ensmp.fr>
* tree-ssa-operands.c (build_ssa_operands): Update leading comment.
2005-12-14 J"orn Rennecke <joern.rennecke@st.com>
* struct-equiv.c (rtx_equiv_p): Allow arbitrary RVALUE values for
PARALLELs with a mode.
2005-12-14 Sebastian Pop <pop@cri.ensmp.fr>
* cfgloopmanip.c (lv_adjust_loop_entry_edge): Adjust the type of
cond_expr parameter.
2005-12-14 Sebastian Pop <pop@cri.ensmp.fr>
* loop-unswitch.c (unswitch_loop): Free zero_bitmap before returning.
2005-12-14 J"orn Rennecke <joern.rennecke@st.com>
PR bootstrap/25397:
* struct-equiv.c (struct_equiv_init): Fix off-by-one error in clearing
of STACK_REGS bits.
* struct-euiv.c (rtx_equiv_p): Remove SUBREG case.
2005-12-14 Jakub Jelinek <jakub@redhat.com>
PR target/25254
PR target/24188
* config/i386/i386.c (x86_64_elf_select_section): If DECL is not
DECL_P, call get_section rather than get_named_section. Supply
section flags to it.
2005-12-14 Ben Elliston <bje@au.ibm.com>
* c-common.c (c_common_truthvalue_conversion): Generalise warning
for addresses converted to booleans; not just function addresses.
* c-typeck.c (build_binary_op): Warn for address comparisons which
can never be NULL (eg. func == NULL or &var == NULL).
* common.opt (Walways-true): New option.
* c-opts.c (c_common_handle_option): Set it with -Wall.
* doc/invoke.texi: Document it.
2005-12-13 Paul Brook <paul@codesourcery.com>
* config/m68k/fpgnulib.c (__unordsf2, __unorddf2, __unordxf2,
__floatunsidf, __floatunsisf, __floatunsixf): New functions.
2005-12-13 Nathan Sidwell <nathan@codesourcery.com>
* config/mt/t-mt (crti.o, crtn.o): Add multilib options.
(EXTRA_MULTILIB_PARTS): Define.
2005-12-13 J"orn Rennecke <joern.rennecke@st.com>
PR rtl-optimization/20070 / part1
* flow.c (update_life_info): If PROP_POST_REGSTACK is set, call
count_or_remove_death_notes with kill == -1.
(mark_set_1): Don't add REG_DEAD / REG_UNUSED notes for stack
registers if PROP_POST_REGSTACK is set.
(mark_used_reg): Likewise.
(count_or_remove_death_notes): If kill is -1, don't remove REG_DEAD /
REG_UNUSED notes for stack regs.
* cfgcleanup.c (condjump_equiv_p): Change parameters and processing
to match rtx_equiv_p machinery. Change caller.
(outgoing_edges_match): Likewise.
(try_crossjump_to_edge): Use struct_equiv_block_eq
instead of flow_find_cross_jump.
* basic-block.h (PROP_POST_REGSTACK, STRUCT_EQUIV_START): Define.
(STRUCT_EQUIV_RERUN, STRUCT_EQUIV_FINAL): Likewise.
(STRUCT_EQUIV_NEED_FULL_BLOCK, STRUCT_EQUIV_MATCH_JUMPS): Likewise.
(STRUCT_EQUIV_MAX_LOCAL): Likewise.
(struct struct_equiv_checkpoint, struct equiv_info): Likewise.
(insns_match_p): Update prototype.
(flow_find_cross_jump): Remove prototype.
(struct_equiv_block_eq, struct_equiv_init): Declare.
(rtx_equiv_p, condjump_equiv_p): Likewise.
* struct-equiv.c: Include reload.h.
(IMPOSSIBLE_MOVE_FACTOR): Define.
(assign_reg_reg_set, struct_equiv_make_checkpoint): New functions.
(struct_equiv_improve_checkpoint): Likewise.
(struct_equiv_restore_checkpoint, rtx_equiv_p): Likewise.
(set_dest_equiv_p, set_dest_addr_equiv_p, struct_equiv_init): Likewise.
(struct_equiv_merge, find_dying_input): Likewise.
(resolve_input_conflict, note_local_live): Likewise.
(death_notes_match_p): Change parameters and processing
to match rtx_equiv_p machinery. Change caller.
(insns_match_p): Likewise.
(flow_find_cross_jump): Replace with:
(struct_equiv_block_eq).
Back out this change:
2005-03-07 Kazu Hirata <kazu@cs.umass.edu>
* recog.c (verify_changes): Make it static.
* recog.h: Remove the corresponding prototype.
2005-12-13 J"orn Rennecke <joern.rennecke@st.com>
* rtlhooks.c (gen_lowpart_general): Handle SUBREGs of floating point
values.
2005-12-13 Nathan Sidwell <nathan@codesourcery.com>
* config/mt/t-mt (MULTILIB_OPTIONS): Add ms2
(MULTILIB_DIRNAMES): Add ms2. Prefix ms1 dirs with 'ms1'.
* config/mt/mt.c (ms1_final_prescan): Use TARGET_MS2,
TARGET_MS1_64_001 appropriately.
(ms1_machine_reorg): Use TARGET_MS2.
2005-12-13 Jakub Jelinek <jakub@redhat.com>
PR debug/25023
PR target/25293
* expr.c (emit_move_resolve_push): Handle PRE_MODIFY
and POST_MODIFY with CONST_INT adjustment equal to PUSH_ROUNDING.
Fix POST_INC/POST_DEC handling if PUSH_ROUNDING is not identity.
* config/i386/i386.md (pushhi2, pushqi2): Use pushl instead of pushw.
Set mode to SI, adjust constraints.
(pushhi2_rex64, pushqi2_rex64): Set mode to DI.
* config/i386/i386.h (PUSH_ROUNDING): Round up to 4 instead of 2 for
32-bit code.
2005-12-13 Carlos O'Donell <carlos@codesourcery.com>
* c-cppbuiltin.c (builtin_define_float_constants): Add
fp_cast parameter, pass to builtin_define_with_hex_fp_value.
Define __FLT_HAS_DENORM__, __DBL_HAS_DENORM__, __LDBL_HAS_DENORM__.
(builtin_define_with_hex_fp_value): Use fp_cast when building macro.
(c_cpp_builtins): If flag_single_precision_constant then set fp_cast
to "((double)%sL)" otherwise "%s".
2005-12-13 Paul Brook <paul@codesourcery.com>
* config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Pass -meabi=gnu for
apcs/atpcs.
2005-12-11 Rafael vila de Espndola <rafael.espindola@gmail.com>
* tree-flow.h: Allow compilation with a C++ compiler.
(struct edge_prediction): Prefix all field names with "ep_".
* predict.c (tree_predicted_by_p): Likewise for struct edge_prediction.
(tree_predict_edge, combine_predictions_for_bb): Likewise.
(remove_predictions_associated_with_edge): Likewise.
2005-12-12 Jeff Law <law@redhat.com>
* tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Remove
reassociation code.
* passes.c (init_optimization_passes): Run reassociation again
after loop optimizations.
2005-12-12 Daniel Berlin <dberlin@dberlin.org>
* tree-ssa-dom.c (thread_across_edge): Canonicalize condition
if necessary.
(optimize_stmt): Ditto.
(canonicalize_comparison): New function.
* tree-ssa-operands.c (swap_tree_operands): Make external.
(get_expr_operands): Stop auto-canonicalization.
* tree-ssa-reassoc.c: Rewrite.
(init_optimization_passes):
* tree-flow.h (swap_tree_operands): Prototype.
* Makefile.in (tree-ssa-reassoc.o): Update dependencies.
2005-12-12 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
* pa.c (pa_output_function_epilogue): Set cfun->machine->in_nsubspa to
indicate function epilogue has been output.
(pa_asm_output_mi_thunk): Likewise.
(output_deferred_plabels): Put plabels in readonly data section when
not generating PIC code.
(som_output_text_section_asm_op): Use .NSUBSPA to output debug
information. Add assert.
(som_output_comdat_data_section_asm_op): New function.
(pa_som_asm_init_sections): Use som_output_comdat_data_section_asm_op
instead of output_section_asm_op for COMDAT sections.
2005-12-12 J"orn Rennecke <joern.rennecke@st.com>
* cfgcleanup.c (condjump_equiv_p, try_crossjump_to_edge):
Fix whitespace in vincinity of to-be-installed changes.
* struct-equiv.c (merge_memattrs, death_notes_match_p): Fix whitespace.
(insns_match_p): Likewise.
2005-12-12 Nathan Sidwell <nathan@codesourcery.com>
* config.gcc (ms1): Replace with ...
(mt): ... this.
* config/ms1: Rename to ...
* config/mt: ... here. Rename ms1 files to mt.
* config/mt/mt.c: Adjust gt-mt.h #include.
* config/mt/t-mt (LIB1ASMSRCS, LIB2FUNCS_EXTRA): Adjust.
(crti.o, crtn.o): Adjust file names.
2005-12-12 Gabriel Dos Reis <gdr@integrable-solutions.net>
* varray.h: Allow compilation with a C++ compiler.
(union varray_data_tag): Prefix all field names with "vdt_".
(VARRAY_CHAR, VARRAY_UCHAR, VARRAY_SHORT, VARRAY_USHORT,
VARRAY_INT, VARRAY_UINT, VARRAY_LONG, VARRAY_ULONG,
VARRAY_WIDE_INT, VARRAY_UWIDE_INT, VARRAY_GENERIC_PTR,
VARRAY_GENERIC_PTR_NOGC, VARRAY_CHAR_PTR, VARRAY_RTX,
VARRAY_RTVEC, VARRAY_TREE, VARRAY_BITMAP, VARRAY_REG, VARRAY_BB,
VARRAY_ELT_LIST, VARRAY_EDGE, VARRAY_TREE_PTR): Adjust definition.
(VARRAY_PUSH_CHAR, VARRAY_PUSH_UCHAR, VARRAY_PUSH_SHORT,
VARRAY_PUSH_USHORT, VARRAY_PUSH_INT, VARRAY_PUSH_UINT,
VARRAY_PUSH_LONG, VARRAY_PUSH_ULONG, VARRAY_PUSH_WIDE_INT,
VARRAY_PUSH_UWIDE_INT, VARRAY_PUSH_GENERIC_PTR,
VARRAY_PUSH_GENERIC_PTR_NOGC, VARRAY_PUSH_CHAR_PTR,
VARRAY_PUSH_RTX, VARRAY_PUSH_RTVEC, VARRAY_PUSH_TREE,
VARRAY_PUSH_BITMAP, VARRAY_PUSH_REG, VARRAY_PUSH_BB,
VARRAY_PUSH_EDGE, VARRAY_PUSH_TREE_PTR): Likewise.
(VARRAY_TOP_CHAR, VARRAY_TOP_UCHAR, VARRAY_TOP_SHORT,
VARRAY_TOP_USHORT, VARRAY_TOP_INT, VARRAY_TOP_UINT,
VARRAY_TOP_LONG, VARRAY_TOP_ULONG, VARRAY_TOP_WIDE_INT,
VARRAY_TOP_UWIDE_INT, VARRAY_TOP_GENERIC_PTR,
VARRAY_TOP_GENERIC_PTR_NOGC, VARRAY_TOP_CHAR_PTR, VARRAY_TOP_RTX,
VARRAY_TOP_RTVEC, VARRAY_TOP_TREE, VARRAY_TOP_BITMAP,
VARRAY_TOP_REG, VARRAY_TOP_BB, VARRAY_TOP_EDGE,
VARRAY_TOP_TREE_PTR): Likewise.
* varray.c (varray_grow): Likewise.
(varray_clear): Likewise.
2005-12-12 Alan Modra <amodra@bigpond.net.au>
PR target/25299
* config/rs6000/rs6000.c (rs6000_special_round_type_align): Increase
alignment to doubleword if the first field is a double array.
* config/rs6000/linux64.h (TARGET_ALIGN_NATURAL): Define.
2005-12-11 Daniel Berlin <dberlin@dberlin.org>
* tree-ssa-structalias.c (process_constraint): Remove code to
transform addressofs into scalar.
(create_variable_info_for): In whole-program IPA, globals don't
point to ANYTHING by default.
2005-12-11 Daniel Berlin <dberlin@dberlin.org>
* timevar.def (TV_IPA_PTA): New.
* tree-pass.h (pass_ipa_pta): New
* tree-ssa-structalias.c: Include cgraph.h
(in_ipa_mode): New.
(predbitmap_obstack): New.
(EXECUTE_IF_IN_NONNULL_BITMAP): New.
(struct constraint_stats): Add num_edges.
(new_var_info): Don't call bitmap_clear.
(struct constraint_edge): Update docs.
(new_constraint_edge): Remove src param.
(struct constraint_graph): Add zero_weight_succs,
zero_weight_preds. Update docs.
(constraint_expr_equal): Reformat.
(constraint_edge_equal): Update for removal of src.
(constraint_edge_less): Ditto.
(constraint_edge_vec_find): Ditto.
(erase_graph_self_edge): Update for removal of src and and zero
weight bitmap.
(clear_edges_for_node): Ditto.
(add_graph_edge): Ditto.
(get_graph_weights): Ditto.
(allocate_graph_weights): Ditto.
(merge_graph_nodes): Ditto.
(int_add_graph_edge): Ditto.
(valid_graph_edge): Ditto.
(valid_weighted_graph_edge): Ditto.
(build_constraint_graph): Ditto.
(scc_visit): Ditto.
(collapse_nodes): Ditto.
(process_unification_queue): Ditto.
(topo_visit): Ditto.
(solve_graph): Ditto.
(do_structure_copy): Ditto.
(perform_var_substitution): Ditto.
Init and release obstack.
(handle_ptr_arith): Try to resolve directly.
(find_func_aliases): Don't call update_alias_info here
Handle RETURN_EXPR, and CALL_EXPR's in IPA mode.
(do_sd_constraint): Add code for propagating faster.
Update.
(do_ds_constraint): Ditto.
(count_num_arguments): New function.
(create_function_info_for): Ditto.
(create_variable_info_for): Handle FUNCTION_DECL.
(intra_create_variable_infos): Use make_constraint_to_anything.
(init_alias_vars): Init obstacks here.
(need_to_solve): Handle zero weight graph changes.
(compute_points_to_sets): Call update_alias_info here.
(delete_points_to_sets): Free zero weight preds/succs here.
(gate_ipa_pta): New.
(ipa_pta_execute): New
2005-12-11 Daniel Berlin <dberlin@dberlin.org>
* tree-ssa-structalias.c (var_anyoffset): Removed.
(anyoffset_tree): Ditto.
(anyoffset_id): Ditto.
(do_deref): Take vector of constraints, no return value.
Update to work on vector.
(get_constraint_for): Ditto.
(get_constraint_for_component_ref): Ditto.
(do_structure_copy): Ditto.
(handle_ptr_arith): Ditto.
(find_func_aliases): Ditto.
(set_uids_in_ptset): Remove anyoffset handling.
(init_base_vars): Ditto.
2005-12-10 Mark Mitchell <mark@codesourcery.com>
PR c++/25010
* ipa-inline.c (cgraph_clone_inlined_nodes): Do not assume that
DECL_EXTERNAL functions have no bodies. Tidy.
2005-12-10 Andreas Schwab <schwab@suse.de>
* except.c (switch_to_exception_section): Only define if
TARGET_UNWIND_INFO is not defined.
2005-12-10 Richard Sandiford <richard@codesourcery.com>
* config/darwin.h (HAS_INIT_SECTION): Remove definition.
(INIT_SECTION_ASM_OP): Restore empty definition from before 2005-12-07.
2005-12-10 Richard Sandiford <richard@codesourcery.com>
* output.h (init_section, fini_section): Delete.
* varasm.c (init_section, fini_section): Delete.
(init_varasm_once): Don't initialize them.
* doc/tm.texi (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP): Say that
there are no corresponding varasm.c variables.
2005-12-10 Richard Sandiford <richard@codesourcery.com>
* dwarf2out.c (default_eh_frame_section): Delete, moving handling
of EH_FRAME_SECTION_NAME into...
(switch_to_eh_frame_section): ...here. Try to set eh_frame_section
if it is still null.
* except.c (default_exception_section): Delete, moving most
of the code to...
(switch_to_exception_section): ...this new function. Set
exception_section if it is still null, then switch to it.
(output_function_exception_table): Use switch_to_exception_section.
* varasm.c (exception_section, eh_frame_section): Update comments.
(get_section): Hoist use of SECTION_NAMED.
(init_varasm_once): Don't set exception_section and eh_frame_section.
* output.h (default_exception_section): Delete.
(default_eh_frame_section): Delete.
2005-12-09 Bernd Schmidt <bernd.schmidt@analog.com>
* config/bfin/bfin.c: Include "cgraph.h".
(bfin_load_pic_reg): Omit loading pic reg if in a local function.
Return the reg that holds the pointer to the GOT.
(bfin_expand_prologue): Use return value of bfin_load_pic_reg when
doing stack checking.
2005-12-09 Diego Novillo <dnovillo@redhat.com>
* tree.c (recompute_tree_invariant_for_addr_expr): Rename from
recompute_tree_invarant_for_addr_expr.
Update uses everywhere.
2005-12-09 Aldy Hernandez <aldyh@redhat.com>
* config/ms1/t-ms1 (MULTILIB_OPTIONS): Define.
(MULTILIB_DIRNAMES): Define.
2005-12-09 Ulrich Weigand <uweigand@de.ibm.com>
PR target/25311
* config/s390/s390.c (struct s390_address): New field literal_pool.
(s390_decompose_address): Compute literal_pool field. Do not
assume register %r13 is always (and solely) used as pool base.
(s390_extra_constraint_str): Use literal_pool field.
2005-12-09 Thiemo Seufer <ths@networkno.de>
* config/mips/mips.c (override_options): Don't allow too small
integers in FP registers.
2005-12-09 Ulrich Weigand <uweigand@de.ibm.com>
* config/s390/s390.c (s390_function_ok_for_sibcall): Use
targetm.binds_local_p to check for local function calls.
2005-12-09 Alan Modra <amodra@bigpond.net.au>
PR debug/24908
* dwarf2out.c (dwarf2out_frame_debug_expr): Don't assert that
call_used_regs can't be used to save reg in another reg.
2005-12-08 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
Christophe Jaillet <christophe.jaillet@wanadoo.fr>
* ipa-type-escape.c (analyze_variable): Use gcc_assert instead of
abort.
* except.c (output_ttype): Likewise.
* tree-object-size.c (collect_object_sizes_for): Likewise.
(check_for_plus_in_loops_1): Likewise.
(check_for_plus_in_loops): Likewise.
(compute_object_sizes): Use gcc_unreachable instead of abort.
2005-12-08 Nathan Sidwell <nathan@codesourcery.com>
* config/ms1/ms1.md (UNSPEC_LOOP): New constant.
(loop_end, loop_init, doloop_end): New insns.
* config/ms1/ms1.h (LOOP_FIRST, LOOP_LAST): New.
(SPECIAL_REG_FIRST, FIRST_PSEUDO_REGISTER): Adjust.
(FIXED_REGISTERS, CALL_USED_REGISTERS): Adjust.
(REG_CLASS_CONTENTS, REGISTER_NAMES): Adjust.
* config/ms1/ms1.c: #include basic-block.h
(struct machine_function): Add has_loops field.
(ms1_add_loop): New.
(MAX_LOOP_DEPTH, MAX_LOO_LENGTH): New.
(struct loop_info, struct loop_work): New.
(ms1_loop_nesting, ms1_block_length, ms1_scan_loop): New workers.
(ms1_reorg_loops): New loop optimization.
(ms1_machine_reorg): Call it.
* config/ms1/ms1-protos.h (ms1_add_loop): Declare.
2005-12-08 Zdenek Dvorak <dvorakz@suse.cz>
PR tree-optimization/25248
* tree-scalar-evolution.c (follow_ssa_edge_in_rhs): Do not use
evolution_of_loop from the failed attempt. Remove handling
of MULT_EXPR.
2005-12-08 Gabriel Dos Reis <gdr@integrable-solutions.net>
* tree.h (DECL_EXTERNAL): Clarify documentation.
2005-12-08 Andreas Krebbel <krebbel1@de.ibm.com>
Jakub Jelinek <jakub@redhat.com>
PR target/25268
* config/s390/s390.c (s390_decompose_shift_count): Remove BITS
argument. Don't drop outer ANDs.
(s390_extra_constraint_str, print_shift_count_operand): Adjust callers.
* config/s390/s390-protos.h (s390_decompose_shift_count): Adjust
prototype.
* config/s390/predicates.md (setmem_operand): Remove.
(shift_count_operand): Rename to...
(shift_count_or_setmem_operand): ... this. Adjust
s390_decompose_shift_count caller.
* config/s390/s390.md (<shift>di3_31_and, <shift>di3_64_and,
ashrdi3_cc_31_and, ashrdi3_cconly_31_and, ashrdi3_31_and,
ashrdi3_cc_64_and, ashrdi3_cconly_64_and, ashrdi3_64_and,
<shift>si3_and, ashrsi3_cc_and, ashrsi3_cconly_and, ashrsi3_and,
rotl<mode>3_and, setmem_long_and): New insns.
(<shift>di3_31, <shift>di3_64, ashrdi3_cc_31, ashrdi3_cconly_31,
ashrdi3_31, ashrdi3_cc_64, ashrdi3_cconly_64, ashrdi3_64,
<shift>si3, ashrsi3_cc, ashrsi3_cconly, ashrsi3, rotl<mode>3,
<shift>di3, ashrdi3): Use shift_count_or_setmem_operand instead
of shift_count_operand.
(setmem_long): Use shift_count_or_setmem_operand instead of
setmem_operand.
2005-12-08 Daniel Jacobowitz <dan@codesourcery.com>
Andreas Tobler <a.tobler@schweiz.ch>
* Makefile.in (ALL_GTFILES_H): Replace sed statement with more portable
tr expression.
2005-12-07 J"orn Rennecke <joern.rennecke@st.com>
* expr.c (force_operand): Use convert_to_mode for conversions.
2005-12-07 J"orn Rennecke <joern.rennecke@st.com>
* reload.h (reg_equiv_invariant): Declare.
* reload.c (refers_to_regno_for_reload_p): Allow R to be a pseudo
register also when reg_equiv_invariant[R] is set.
2005-12-07 Richard Sandiford <richard@codesourcery.com>
Andreas Tobler <a.tobler@schweiz.ch>
* config/darwin.h: Guard section variables with #ifndef USED_FOR_TARGET.
2005-12-07 Daniel Berlin <dberlin@dberlin.org>
* tree-ssa-pre.c (bitmap_set_and): New function.
(bitmap_set_and_compl): New function.
(bitmap_set_empty_p): New function.
(insert_extra_phis): New function.
(compute_avail): Use insert_extra_phis.
2005-12-07 Adrian Straetling <straetling@de.ibm.com>
* config/s390/s390.c (s390_expand_atomic): New function.
Adjust comment of helper functions.
* config/s390/s390-protos.h (s390_expand_atomic): Declare.
* config/s390/s390.md ("ATOMIC"): New code macro.
("atomic"): Corresponding new code attribute.
("sync_lock_test_and_set[hq]i",
"sync_{new_,old_,}{and,ior,xor,add,sub,nand}[hq]i"): New pattern.
2005-12-07 Adrian Straetling <straetling@de.ibm.com>
* config/s390/s390.c (s390_expand_mask_and_shift,
struct alignment_context, init_alignment_context,
s390_expand_cs_hqi): New.
* config/s390/s390-protos.h (s390_expand_cs_hqi): Declare.
* config/s390/s390.md ("sync_compare_and_swaphi",
"sync_compare_and_swapqi"): New pattern.
2005-12-07 Daniel Berlin <dberlin@dberlin.org>
Fix PR tree-optimization/25291
* tree-ssa-operands.c (add_call_clobber_ops): Remove
redundant and crashing check.
2005-12-08 Alan Modra <amodra@bigpond.net.au>
PR target/25212
* config/rs6000/rs6000.c (legitimate_indexed_address_p): Relax
tests further when !strict && reload_in_progress.
(print_operand): Check that both operands of indexed address are regs.
(print_operand_address): Likewise.
* config/rs6000/rs6000.h (INT_REG_OK_FOR_INDEX_P): Simplify.
(INT_REG_OK_FOR_BASE_P): Correct.
2005-12-07 J"orn Rennecke <joern.rennecke@st.com>
Preparation for PR rtl-optimization/20070 / part1
* basic-block.h (insns_match_p, flow_find_cross_jump): Declare.
* cfgcleanup.c (condjump_equiv_p): New function, broken out of
outgoing_edges_match.
(outgoing_edges_match): Use condjump_equiv_p.
(merge_memattrs, insns_match_p, flow_find_cross_jump): Move from here
into..
* struct-equiv.c: New file.
(death_notes_match_p) New function, broken out of insns_match_p.
* Makefile.in (OBJS-common): Add struct-equiv.o.
(struct-equiv.o): New target.
2005-12-07 Richard Sandiford <richard@codesourcery.com>
* coretypes.h: Revert previous change.
* config/darwin.h: Revert previous reversion.
* config/avr/avr.h (progmem_section): Guard with #ifndef IN_LIBGCC2.
2005-12-07 Richard Sandiford <richard@codesourcery.com>
* coretypes.h (section): Provide dummy definition for target files.
* config/darwin.h: Revert previous change.
2005-12-07 Rafael vila de Espndola <rafael.espindola@gmail.com>
* doc/sourcebuild.texi (all.build, install-normal): Remove.
* configure.ac: Remove all.build and install-normal from target_list
* configure: Regenerate.
* Makefile.in (install): Don't depend on install-normal.
2005-12-07 Rafael vila de Espndola <rafael.espindola@gmail.com>
* Makefile.in: Document the use of stamps.
2005-12-07 Rafael vila de Espndola <rafael.espindola@gmail.com>
* doc/gty.texi: Remove instructions for adding a dependency on s-gtype.
* Makefile.in: Add code to compute some dependencies on s-gtype
automatically. Remove the declaration of those dependencies.
2005-12-07 Richard Sandiford <richard@codesourcery.com>
* reload.c (push_secondary_reload): Fix typo:
s/insn_constraint/scratch_constraint/.
2005-12-07 Richard Sandiford <richard@codesourcery.com>
* config/darwin.h: Guard section variables with #ifndef IN_LIBGCC2.
2005-12-07 Richard Sandiford <richard@codesourcery.com>
* config/alpha/alpha.c (alpha_start_function): Use switch_to_section.
(alpha_elf_select_rtx_section): Return the selected section rather
than emitting assembly code.
(alpha_write_linkage): Emit a ".link" directive directly and then
set in_section to NULL.
(vms_asm_out_constructor): Use switch_to_section.
(vms_asm_out_destructor): Likewise.
(unicosmk_output_common): Set in_section to NULL instead of calling
the dummy common_section function.
(unicosmk_text_section): Delete in favor of...
(unicosmk_output_text_section_asm_op): ...this new function.
(unicosmk_data_section): Delete in favor of...
(unicosmk_output_data_section_asm_op): ...this new function.
(unicosmk_init_sections): New function.
(unicosmk_output_deferred_case_vectors): Use switch_to_section.
(unicosmk_output_ssib): Set in_section to NULL instead of calling
the dummy ssib_section function.
(unicosmk_section_buf): Delete.
* config/alpha/alpha-protos.h (unicosmk_text_section): Delete.
(unicosmk_data_section): Delete.
* config/alpha/elf.h (ASM_OUTPUT_ALIGNED_LOCAL): Use switch_to_section.
(EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS, sbss_section, sdata_section)
(SECTION_FUNCTION_TEMPLATE): Delete.
* config/alpha/unicosmk.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP)
(READONLY_DATA_SECTION, EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
(common_section, COMMON_SECTION, ssib_section, SSIB_SECTION): Delete.
(ASM_OUTPUT_ALIGNED_LOCAL): Use switch_to_section.
(TARGET_ASM_INIT_SECTIONS): Define.
* config/alpha/vms.h (LINK_SECTION_ASM_OP, LITERALS_SECTION_ASM_OP)
(EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
(link_section, literals_section): Delete.
(ASM_OUTPUT_DEF): Emit the ".literal" directive directly and then
set in_section to NULL.
* config/arm/aof.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP): Delete.
(EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS, ZERO_INIT_SECTION): Delete.
(COMMON_SECTION): Delete.
(TARGET_ASM_INIT_SECTIONS): Define.
(ASM_OUTPUT_COMMON): Set in_section to NULL rather than calling
the dummy common_section function.
* config/arm/aout.h (ASM_OUTPUT_ALIGNED_LOCAL): Use switch_to_section.
* config/arm/arm.c (get_jump_table_size): Use pointer comparison
between readonly_data_section and text_section to check whether
read-only data is being put in the text section.
(arm_output_function_epilogue): Use switch_to_section.
(arm_elf_asm_constructor): Likewise.
(thumb_call_via_reg): Replace call to in_text_section with
a comparison between in_section and text_section.
(arm_file_end): Use switch_to_section.
(aof_text_section): Delete in favor of...
(aof_output_text_section_asm_op): ...this new function.
(aof_data_section): Delete in favor of...
(aof_output_data_section_asm_op): ...this new function.
(aof_asm_init_sections): New function.
(zero_init_section): Moved from config/arm/aof.h.
(aof_dump_imports, aof_file_start): Use switch_to_section.
* config/arm/arm.h (thumb_call_via_label): Update comment.
* config/arm/arm-protos.h (aof_text_section, aof_data_section): Delete.
(common_section): Delete.
* config/arm/pe.h (ASM_DECLARE_FUNCTION_NAME): Use switch_to_section.
(ASM_DECLARE_OBJECT_NAME): Update the type of save_section. Use the
global switch_to_section function instead of the old port-local one.
(EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS, DRECTVE_SECTION_FUNCTION)
(SWITCH_TO_SECTION_FUNCTION): Delete.
(drectve_section): Redefine as a macro.
* config/arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_BSS):
(ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use get_named_section and
switch_to_section.
* config/avr/avr.c (progmem_section): New variable.
(avr_output_progmem_section_asm_op): New function.
(avr_asm_init_sections): New function.
(avr_output_addr_vec_elt): Use switch_to_section.
* config/avr/avr.h (progmem_section): Declare.
(EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
(READONLY_DATA_SECTION): Delete.
(TARGET_ASM_INIT_SECTIONS): Define.
(ASM_OUTPUT_CASE_LABEL): Use switch_to_section.
* config/avr/avr-protos.h (progmem_section): Delete.
* config/bfin/bfin.h (ASM_OUTPUT_LOCAL): Use switch_to_section.
* config/c4x/c4x.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
(INIT_SECTION_FUNCTION, FINI_SECTION_FUNCTION): Delete.
* config/darwin-sections.def: New file.
* config/darwin.c: Define all sections in darwin-sections.def.
(output_objc_section_asm_op, darwin_init_sections): New functions.
(machopic_output_indirection): Use switch_to_section.
(machopic_select_section): Return the selected section rather than
emitting assembly code. Replace the static function table with
inline conditional expressions. Update the tests of last_text_section
and move them into the FUNCTION_DECL block.
(machopic_select_rtx_section): Return the selected section rather than
emitting assembly code.
(machopic_asm_out_constructor, machopic_asm_out_destructor)
(darwin_file_end): Use switch_to_section.
* config/darwin.h: Use darwin-sections.def to declare sections.
(INIT_SECTION_ASM_OP): Remove empty definition.
(HAS_INIT_SECTION): Define this instead.
(SECTION_FUNCTION, EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
(READONLY_DATA_SECTION, TARGET_ASM_EXCEPTION_SECTION): Delete.
(TARGET_ASM_EH_FRAME_SECTION): Delete.
(TARGET_ASM_INIT_SECTIONS): Define.
* config/darwin-protos.h (darwin_init_sections): Declare.
(machopic_picsymbol_stub_section, machopic_picsymbol_stub1_section)
(machopic_symbol_stub_section, machopic_symbol_stub1_section): Delete.
(machopic_lazy_symbol_ptr_section, machopic_nl_symbol_ptr_section)
(constructor_section, destructor_section, mod_init_section): Delete.
(mod_term_section): Delete.
(darwin_exception_section, darwin_eh_frame_section): Delete.
(machopic_select_section): Return a section.
(machopic_select_rtx_section): Likewise.
(text_coal_section, text_unlikely_section, text_unlikely_coal_section)
(const_section, const_coal_section, const_data_section): Delete.
(const_data_coal_section, data_coal_section, cstring_section): Delete.
(literal4_section, literal8_section, constructor_section): Delete.
(mod_init_section, mod_term_section, destructor_section): Delete.
(objc_class_section, objc_meta_class_section, objc_category_section)
(objc_class_vars_section, objc_instance_vars_section): Delete.
(objc_cls_meth_section, objc_inst_meth_section): Delete.
(objc_cat_cls_meth_section, objc_cat_inst_meth_section): Delete.
(objc_selector_refs_section, objc_selector_fixup_section): Delete.
(objc_symbols_section, objc_module_info_section): Delete.
(objc_image_info_section, objc_protocol_section): Delete.
(objc_string_object_section, objc_constant_string_object_section)
(objc_class_names_section, objc_meth_var_names_section): Delete.
(objc_meth_var_types_section, objc_cls_refs_section): Delete.
(machopic_lazy_symbol_ptr_section, machopic_nl_symbol_ptr_section)
(machopic_symbol_stub_section, machopic_picsymbol_stub_section)
(darwin_exception_section, darwin_eh_frame_section): Delete.
* config/t-darwin (darwin.o): Depend on config/darwin-sections.def.
* config/frv/frv.c (frv_asm_out_constructor): Use switch_to_section.
(frv_asm_out_destructor): Likewise.
* config/frv/frv.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
(SDATA_SECTION_FUNCTION, FIXUP_SECTION_FUNCTION): Delete.
(ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use switch_to_section and
get_named_section.
(ASM_OUTPUT_CASE_LABEL): Use switch_to_section.
* config/frv/frv-protos.h (fixup_section, sdata_section, sbss_section)
(data_section): Delete.
* config/i386/cygming.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
(DRECTVE_SECTION_FUNCTION): Delete.
(drectve_section): Redefine as a macro that sets in_section after
emitting the directive.
(SWITCH_TO_SECTION_FUNCTION): Delete.
* config/i386/darwin.h (ASM_OUTPUT_ALIGN): Replace call to
in_text_section with comparison between in_section and text_section.
* config/i386/i386.c (x86_64_elf_select_section): Return the section
rather than emitting assembly code. Use get_named_section.
(x86_output_aligned_bss, ix86_file_end): Use switch_to_section and
get_named_section.
(machopic_output_stub): Use switch_to_section.
* config/i386/nwld.c (nwld_named_section_asm_out_constructor)
(nwld_named_section_asm_out_destructor): Use get_section and
switch_to_section.
* config/ia64/ia64.c (ia64_select_rtx_section): Return the section
rather than emitting assembly code.
(ia64_rwreloc_select_section): Likewise.
(ia64_rwreloc_select_rtx_section): Likewise.
* config/ia64/ia64-protos.h (sdata_section, sbss_section): Delete.
* config/ia64/sysv4.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use
switch_to_section.
(EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
(SDATA_SECTION_FUNCTION, SBSS_SECTION_FUNCTION): Delete.
* config/iq2000/iq2000.c (iq2000_select_rtx_section): Return the
section rather than emitting assembly code.
(iq2000_select_section): Likewise.
* config/iq2000/iq2000.h (rdata_section, sdata_section): Delete.
(sbss_section): Delete.
* config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_BSS): Use switch_to_section
and get_named_section.
* config/m32r/m32r-protos.h (sbss_section, sdata_section): Delete.
* config/mcore/mcore-elf.h (EXPORTS_SECTION_ASM_OP): Delete.
(SUBTARGET_EXTRA_SECTIONS, SUBTARGET_EXTRA_SECTION_FUNCTIONS): Delete.
(EXPORT_SECTION_FUNCTION, SUBTARGET_SWITCH_SECTIONS): Delete.
(MCORE_EXPORT_NAME): Emit the exports directive directly, then set
in_section to NULL.
(ASM_DECLARE_FUNCTION_NAME): Use switch_to_section.
(ASM_DECLARE_OBJECT_NAME): Update the type of save_section. Use the
global switch_to_section function instead of the old port-local one.
* config/mcore/mcore.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
(SWITCH_SECTION_FUNCTION): Delete.
* config/mcore/mcore-pe.h (SUBTARGET_SWITCH_SECTIONS): Delete.
(DRECTVE_SECTION_ASM_OP, SUBTARGET_EXTRA_SECTIONS): Delete.
(SUBTARGET_EXTRA_SECTION_FUNCTIONS, DRECTVE_SECTION_FUNCTION): Delete.
(MCORE_EXPORT_NAME): Emit ".section .drectve" directly, then set
in_section to NULL.
(ASM_DECLARE_OBJECT_NAME): Update the type of save_section. Use the
global switch_to_section function instead of the old port-local one.
(ASM_DECLARE_FUNCTION_NAME): Use switch_to_section.
* config/mips/mips.c (mips_file_start): Update comment.
(mips_output_aligned_bss): Use switch_to_section and get_named_section.
(mips_output_aligned_decl_common): Use switch_to_section.
(mips_select_rtx_section): Return the section rather than emitting
assembly code. Use get_named_section.
(mips_function_rodata_section: Likewise get_section.
(build_mips16_function_stub): Use switch_to_section.
* config/mips/mips.h (ASM_OUTPUT_IDENT): Use switch_to_section.
(SDATA_SECTION_ASM_OP): Delete.
* config/mips/vxworks.h (EXTRA_SECTIONS): Delete.
(EXTRA_SECTION_FUNCTIONS): Delete.
* config/mmix/mmix.c (mmix_file_start, mmix_file_end)
(mmix_asm_output_aligned_local): Use switch_to_section.
* config/pa/pa.c (som_readonly_data_section, som_one_only_data_section)
(som_one_only_readonly_data_section): New variables.
(pa_output_function_epilogue): Set in_section to NULL instead of
calling forget_section.
(output_deferred_plabels): Use select_section.
(pa_asm_output_mi_thunk): Likewise. Set in_section to NULL instead
of calling forget_section.
(pa_asm_output_aligned_bss, pa_asm_output_aligned_common)
(pa_asm_output_aligned_local): Use select_section.
(som_text_section_asm_op): Delete in favor of...
(som_output_text_section_asm_op): ...this new function.
(pa_som_asm_init_sections): New function.
(pa_select_section): Return the section rather than emitting
assembly code.
* config/pa/pa.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
(SOM_READONLY_DATA_SECTION_FUNCTION): Delete.
(SOM_ONE_ONLY_READONLY_DATA_SECTION_FUNCTION): Delete.
(SOM_ONE_ONLY_DATA_SECTION_FUNCTION, FORGET_SECTION_FUNCTION): Delete.
* config/pa/pa-protos.h (som_text_section_asm_op): Delete.
(som_readonly_data_section, som_one_only_readonly_data_section)
(som_one_only_data_section, forget_section): Delete.
* config/pa/som.h (TEXT_SECTION_ASM_OP): Delete.
(TARGET_ASM_INIT_SECTIONS): Define.
(READONLY_DATA_SECTION, TARGET_ASM_EXCEPTION_SECTION): Delete.
* config/rs6000/rs6000.c (read_only_data_section): New variable.
(private_data_section, read_only_private_data_section): New variables.
(sdata2_section, toc_section): New variables.
(rs6000_file_start): Use switch_to_section.
(rs6000_assemble_integer): Use comparisons against in_section
instead of calling in_toc_section and in_text_section. Use
unlikely_text_section_p.
(rs6000_elf_output_toc_section_asm_op): New function, derived
from the old rs6000/sysv4.h toc_section function.
(rs6000_elf_asm_init_sections): New function.
(rs6000_elf_select_rtx_section, rs6000_elf_select_section): Return
the section rather than emitting assembly code.
(machopic_output_stub): Use switch_to_section.
(toc_section): Delete dummy function.
(rs6000_elf_asm_out_constructor, rs6000_elf_asm_out_destructor): Use
switch_to_section and get_section.
(rs6000_xcoff_output_readonly_section_asm_op): New function.
(rs6000_xcoff_output_readwrite_section_asm_op): New function.
(rs6000_xcoff_output_toc_section_asm_op): New function, derived from
the old rs6000/xcoff.h toc_section function.
(rs6000_xcoff_asm_init_sections): New function.
(rs6000_xcoff_select_section, rs6000_xcoff_select_rtx_section): Return
the section rather than emitting assembly code.
(rs6000_xcoff_file_start): Use switch_to_section.
(rs6000_xcoff_file_end): Likewise.
* config/rs6000/rs6000-protos.h (toc_section, sdata_section): Delete.
(sdata2_section, sbss_section, private_data_section): Delete.
(read_only_data_section, read_only_private_data_section): Delete.
* config/rs6000/sysv4.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
(TOC_SECTION_FUNCTION, SDATA_SECTION_FUNCTION, SDATA2_SECTION_FUNCTION)
(SBSS_SECTION_FUNCTION, INIT_SECTION_FUNCTION): Delete.
(FINI_SECTION_FUNCTION): Delete.
(TARGET_ASM_INIT_SECTIONS): Define.
(ASM_OUTPUT_ALIGNED_LOCAL): Use switch_to_section.
* config/rs6000/xcoff.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
(READ_ONLY_DATA_SECTION_FUNCTION, PRIVATE_DATA_SECTION_FUNCTION)
(READ_ONLY_PRIVATE_DATA_SECTION_FUNCTION, TOC_SECTION_FUNCTION)
(READONLY_DATA_SECTION): Delete.
(TARGET_ASM_INIT_SECTIONS): Define.
(ASM_DECLARE_FUNCTION_NAME): Use switch_to_section. Set in_section
to NULL rather than no_section.
(TARGET_ASM_EXCEPTION_SECTION): Delete.
* config/sh/sh.c (sh_file_start): Use switch_to_section.
* config/sparc/sparc.c (emit_pic_helper): Use switch_to_section.
(sparc_output_deferred_case_vectors): Likewise. Remove argument
from call to current_function_section.
* config/stormy16/stormy16.c: Include ggc.h and gt-storm16.h.
(bss100_section): New variable.
(xstormy16_asm_output_aligned_common): Use switch_to_section.
(xstormy16_asm_init_sections): New function.
(xstormy16_asm_out_destructor, xstormy16_asm_out_constructor): Use
switch_to_section and get_section.
(xstormy16_output_addr_vec): Use switch_to_section. Remove argument
from calls to current_function_section.
* config/stormy16/stormy16.h (EXTRA_SECTIONS): Delete.
(XSTORMY16_SECTION_FUNCTION, EXTRA_SECTION_FUNCTIONS): Delete.
(TARGET_ASM_INIT_SECTIONS): Define.
* config/stormy16/stormy16-protos.h (bss100_section): Delete.
* config/svr3.h (ASM_OUTPUT_LOCAL): Use switch_to_section.
(EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS, INIT_SECTION_FUNCTION)
(FINI_SECTION_FUNCTION): Delete.
* config/v850/v850.c: Include gt-v850.h.
(rosdata_section, rozdata_section, tdata_section, zdata_section)
(zbss_section): New variables.
(v850_output_aligned_bss): Use switch_to_section.
(v850_asm_init_sections): New function.
(v850_select_section): Return the section rather than emitting
assembly code.
* config/v850/v850.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
(ZDATA_SECTION_ASM_OP, ZBSS_SECTION_ASM_OP, TDATA_SECTION_ASM_OP)
(ROSDATA_SECTION_ASM_OP, ROZDATA_SECTION_ASM_OP): Delete.
(TARGET_ASM_INIT_SECTIONS): Define.
* config/v850/v850-protos.h (sdata_section, rosdata_section): Delete.
(sbss_section, tdata_section, zdata_section, rozdata_section): Delete.
(zbss_section): Delete.
* config/vax/vaxv.h (ASM_OUTPUT_LOCAL): Use switch_to_section.
* config/vx-common.h (vxworks_exception_section): Delete.
(TARGET_ASM_EXCEPTION_SECTION): Delete.
* config/xtensa/xtensa.c (xtensa_select_rtx_section): Return the
section rather than emitting assembly code.
* config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Use
switch_to_section.
* Makefile.in (GTFILES): Add $(srcdir)/output.h.
* coretypes.h (section): New union and typedef.
* dbxout.c (FORCE_TEXT): Use switch_to_section. Remove argument
from call to current_function_section.
(dbxout_function_end, dbxout_init, dbxout_source_file, dbxout_finish)
(dbxout_symbol_location): Use switch_to_section.
* dwarf2out.c (named_section_eh_frame_section): Delete, moving
most of the code into...
(default_eh_frame_section): ...here. Return a section.
(collect2_eh_frame_section): Delete, moving most of the code into..
(switch_to_eh_frame_section): ...this new function.
(debug_info_section, debug_abbrev_section, debug_aranges_section)
(debug_macinfo_section, debug_line_section, debug_loc_section)
(debug_pubnames_section, debug_str_section, debug_ranges_section): New
variables.
(output_call_frame_info): Call switch_to_eh_frame_section instead of
eh_frame_section. Use switch_to_section and get_section.
(dwarf2out_begin_prologue): Use switch_to_section.
(AT_string_form): Check the flags in debug_str_section instead of
DEBUG_STR_SECTION_FLAGS.
(output_comp_unit): Use switch_to_section, get_section, and
debug_info_section.
(output_line_info, secname_for_decl): Use unlikely_text_section_p.
(dwarf2out_begin_block): Use switch_to_section. Remove argument
from call to current_function_section.
(dwarf2out_var_location): Use unlikely_text_section_p.
(dwarf2out_source_line): Use switch_to_section. Remove argument
from call to current_function_section.
(dwarf2out_start_source_file, dwarf2out_end_source_file)
(dwarf2out_define, dwarf2out_undef: Use switch_to_section and
debug_macinfo_section.
(dwarf2out_init): Initialize the new section variables. Use them
instead of calls to named_section_flags. Use switch_to_section.
(output_indirect_string): Use switch_to_section and debug_str_section.
(dwarf2out_finish): Use switch_to_section and the new section
variables.
* except.c (default_exception_section): Return the section instead
of emitting assembly code.
(output_function_exception_table): Use the global exception_section
variable instead of the target hook. Use switch_to_section. Remove
argument from call to current_function_section.
* final.c (HAVE_READONLY_DATA_SECTION): Delete.
(shorten_branches): Use pointer comparisons to detect whether the
text section is the same as readonly_data_section.
(profile_function): Use switch_to_section. Remove argument from
call to current_function_section.
(final_scan_insn): Likewise. Update use of last_text_section.
* gengtype.c (open_base_files): Add an include of output.h.
* output.h (text_section, data_section, readonly_data_section)
(ctors_section, dtors_section, bss_section, init_section)
(fini_section, sdata_section): Turn into section pointers.
(in_text_section, in_unlikely_text_section, exports_section)
(drectve_section, named_section, mergeable_string_section)
(last_text_section_name): Delete.
(default_exception_section, default_eh_frame_section): Return sections.
(SECTION_DECLARED, SECTION_NAMED): New macros.
(SECTION_MACH_DEP): Bump value.
(section_common, named_section, unnamed_section): New structures.
(unnamed_section_callback): New typedef.
(section): New union.
(sbss_section, exception_section, eh_frame_section): New variables.
(in_section, last_text_section): Turn into section pointers.
(get_unnamed_section, get_section, get_named_section): New functions.
(mergeable_constant_section, function_section): Return a section.
(unlikely_text_section): Likewise.
(current_function_section): Likewise. Remove the decl argument.
(unlikely_text_section_p, switch_to_section): New functions.
(output_section_asm_op): New function.
(set_named_section_flags, named_section_flags, named_section_real)
(named_section_first_declaration): Delete.
(default_select_section, default_elf_select_section): Return a section.
(default_elf_select_section_1, default_function_rodata_section)
(default_no_function_rodata_section, default_select_rtx_section)
(default_elf_select_rtx_section): Likewise.
* rtl.h (in_data_section): Delete.
* sdbout.c (sdbout_one_type): Use switch_to_section.
* system.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Poison.
(READONLY_DATA_SECTION, TARGET_ASM_EXCEPTION_SECTION): Poison.
(TARGET_ASM_EH_FRAME_SECTION): Poison.
* target-def.h (TARGET_ASM_INIT_SECTIONS): New macro.
(TARGET_ASM_EXCEPTION_SECTION, TARGET_ASM_EH_FRAME_SECTION): Delete.
(TARGET_ASM_OUT): Update after above changes.
* target.h (init_sections): New hook.
(exception_section, eh_frame_section): Delete.
(select_section, select_rtx_section, function_rodata_section): Return
a section rather than emitting assembly code.
* varasm.c (text_section, data_section, readonly_data_section)
(ctors_section, dtors_section, bss_section, init_section)
(fini_section): Turn into section pointers.
(sdata_section, sbss_section, exception_section): New variables.
(eh_frame_section): New variable.
(in_section): Make global and turn into a section pointer.
(last_text_section): Turn into a section pointer.
(unnamed_sections): New variable.
(in_named_name, last_text_section_name): Delete.
(EXTRA_SECTION_FUNCTIONS): Delete.
(in_named_entry): Delete.
(section_htab): New variable, replacing...
(in_named_htab): ...this deleted variable.
(section_entry_eq, section_entry_hash): New functions, based on...
(in_named_entry_eq, in_named_entry_hash): ...these deleted functions.
(get_unnamed_section, get_section): New functions.
(unlikely_text_section): Return a section instead of emitting
assembly code.
(in_text_section, in_unlikely_text_section, in_data_section): Delete.
(get_named_section_flags, named_section_first_declaration): Delete.
(unlikely_text_section_p): New function.
(named_section_real, named_section): Delete.
(get_named_section): New function.
(asm_output_bss, asm_output_aligned_bss): Use switch_to_section.
(function_section): Return a section rather than emitting
assembly code.
(current_function_section): Likewise. Remove argument. Use
last_text_section if nonnull, otherwise use function_section.
(default_function_rodata_section): Return a section rather than
emitting assembly code. Use get_section.
(default_no_function_rodata_section): Return a section rather than
emitting assembly code.
(variable_section): Use switch_to_section and get_named_section.
(mergeable_string_section): Return a section rather than emitting
assembly code. Use get_section. Make static. Don't take special
countermeasures for empty strings.
(mergeable_constant_section): Return a section rather than emitting
assembly code. Use get_section.
(default_named_section_asm_out_destructor): Use switch_to_section
and get_section.
(default_dtor_section_asm_out_destructor): Use switch_to_section.
(default_named_section_asm_out_constructor): Use switch_to_section
and get_section.
(default_ctor_section_asm_out_constructor): Use switch_to_section.
(assemble_start_function): Likewise. Set last_text_section to
NULL rather than no_section. Change the type of save_section.
(assemble_zeros, assemble_variable): Use the section flags to detect
whether or not a section is text.
(assemble_static_space): Use switch_to_section.
(assemble_trampoline_template): Likewise.
(output_constant_def_contents): Use switch_to_section and
get_named_section.
(output_constant_pool_1): Use switch_to_section. Use the section
flags to see whether sections contain mergeable data.
(init_varasm_once): Initialize section_htab instead of in_named_htab.
Initialize new section variables. Call TARGET_ASM_INIT_SECTIONS.
(default_elf_asm_named_section): Use SECTION_DECLARED to detect
whether a section has already been declared.
(default_select_section, default_elf_select_section): Return a
section rather than emitting assembly code.
(default_elf_select_section_1): Likewise. Use bss_section for
SECCAT_BSS if nonnull. Use get_named_section.
(default_select_rtx_section): Return a section rather than
emitting assembly code.
(default_elf_select_rtx_section): Likewise. Use get_named_section.
(file_end_indicate_exec_stack): Use switch_to_section and get_section.
(output_section_asm_op, switch_to_section): New functions.
* vmsdbgout.c (vmsdbgout_finish): Use switch_to_section and
get_named_section.
* doc/tm.texi: Expand the introduction to the sections documentation.
(TRAMPOLINE_SECTION): Document new interface.
(SDATA_SECTION_ASM_OP): Document new macro.
(READONLY_DATA_SECTION): Delete.
(SDATA_SECTION_ASM_OP): Document new macro.
(EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
(TARGET_ASM_INIT_SECTIONS): Document new hook.
(TARGET_ASM_SELECT_SECTION, TARGET_ASM_FUNCTION_RODATA_SECTION)
(TARGET_ASM_SELECT_RTX_SECTION): Adjust for new interface.
(TARGET_EXCEPTION_SECTION, TARGET_EH_FRAME_SECTION): Delete.
2005-12-07 Alan Modra <amodra@bigpond.net.au>
* gcc.c (init_gcc_specs): Match braces inside conditionally
compiled strings.
2005-12-06 Geoffrey Keating <geoffk@apple.com>
* config/darwin.h (TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): New.
2005-12-06 Aldy Hernandez <aldyh@redhat.com>
PR C++/24138
* tree.c (integer_all_onesp): Always return true if all bits on.
* testsuite/g++.dg/init/array0.C: New.
2005-12-06 Adrian Straetling <straetling@de.ibm.com>
* doc/md.texi: Adapt to implementation.
2005-12-06 Andreas Schwab <schwab@suse.de>
* opts.c (decode_options): Fix typo in message.
2005-12-06 Alan Modra <amodra@bigpond.net.au>
PR other/13873
* longlong.h: Merge PPC tests from upstream.
2005-12-06 Richard Guenther <rguenther@suse.de>
* fold-const.c (fold_convert): Do not build and fold
CONVERT_EXPR, but always use NOP_EXPR.
2005-12-06 Jan Beulich <jbeulich@novell.com>
* config/i386/i386.c (builtin_description): Use MASK_SSE2 for
__builtin_ia32_paddq and __builtin_ia32_psubq.
(ix86_init_mmx_sse_builtins): Use MASK_SSE|MASK_3DNOW_A for
__builtin_ia32_pshufw.
* config/i386/i386.md (mmx_adddi3, mmx_subdi3): Depend on TARGET_SSE2.
2005-12-05 James E Wilson <wilson@specifix.com>
PR target/24934
* opts.c (decode_options): Turn off partitioning if flag_unwind_tables
is set.
2005-12-05 Daniel Berlin <dberlin@dberlin.org>
* print-tree.c (print_node): Ditto.
* tree-dfa.c (add_referenced_var): Tag's don't have DECL_INITIAL.
* tree-dump.c (dequeue_and_dump): Check for decl_common structure
before accessing DECL_ARTIFICIAL.
Handle new tag tree codes.
* tree-flow-inline.h (clear_call_clobbered): Update for tag
changes.
(unmodifiable_var_p): Ditto.
* tree-flow.h (mem_tag_kind): Remove.
(struct var_ann_d): Remove mem_tag_kind member.
* tree-gimple.c (is_gimple_reg): Tags are not gimple registers.
* tree-pretty-print.c (dump_generic_node): Handle memory tags.
* tree-ssa-alias.c (init_alias_info): Update for memory tag changes.
(group_aliases): Ditto.
(setup_pointers_and_addressables): Ditto.
(is_escape_site): Ditto.
(may_alias_p): Ditto.
(create_tag_raw): New function.
(create_memory_tag): Use it.
(dump_alias_info): Update for tags.
(may_be_aliased): Ditto.
(add_type_alias): Ditto.
(new_type_alias): Ditto.
(create_sft): Ditto.
(create_structure_vars): Ditto.
* tree-ssa-ccp.c (get_default_value): Ditto.
* tree-ssa-operands.c (get_expr_operands): Ditto.
(add_stmt_operand): Ditto.
(add_call_clobber_ops): Remove duplicated condition.
* tree-ssa.c (verify_flow_insensitive_alias_info): Update for
tags.
* tree-tailcall.c (suitable_for_tail_opt_p): Ditto.
* tree-vect-transform.c (vect_create_data_ref_ptr): Ditto.
* tree.c (init_ttree): Update structures for new tree codes.
(tree_code_size): Update sizes for new tree codes.
(make_node_stat): Don't try to set common things on minimal
structures.
(tree_node_structure): Update for tags.
(is_global_var): Ditto.
* tree.def: Add new tree codes.
* tree.h (MTAG_P): New macro.
(TREE_MEMORY_TAG_CHECK): Ditto.
(SSA_VAR_P): Update for tags.
(struct tree_memory_tag): New structure.
(MTAG_GLOBAL): New macro.
(union tree_node): Add memory tag member.
* treestruct.def (TS_MEMORY_TAG): New.
2005-12-05 Dale Johannesen <dalej@apple.com>
* config/i386/xmmintrin.h (_MM_TRANSPOSE4_PS): Fix to match
what was approved (PR 24323).
2005-12-05 Gabriel Dos Reis <gdr@integrable-solutions.net>
* doc/c-tree.texi (Function Bodies): Remove description of
RETURN_INIT.
2005-12-05 Joseph S. Myers <joseph@codesourcery.com>
* doc/libgcc.texi (__floatunsisf, __floatunsidf, __floatunsitf,
__floatunsixf, __floatundisf, __floatundidf, __floatunditf,
__floatundixf, __floatuntisf, __floatuntidf, __floatuntitf,
__floatuntixf, __powisf2, __powidf2, __powixf2, __mulsc3,
__muldc3, __multc3, __mulxc3, __divsc3, __divdc3, __divtc3,
__divxc3): Document.
2005-12-05 Geoffrey Keating <geoffk@apple.com>
* config/arm/arm.c (arm_cxx_determine_class_data_visibility): Preserve
previous behaviour.
* config/darwin.h (TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): Define to
hook_bool_void_false.
(TARGET_CXX_DETERMINE_CLASS_DATA_VISIBILITY): Define.
* config/darwin.c (darwin_cxx_determine_class_data_visibility): New.
* config/darwin.c (machopic_select_section): It's not defined
as weak if it's only marked as weak_import.
* config/darwin-protos.h (darwin_cxx_determine_class_data_visibility):
Prototype.
* varasm.c (default_binds_local_p_1): Weakrefs don't bind locally.
A hidden weak object does bind locally. Strong linkonce data
counts like any other strong symbol for binding.
(weak_finish_1): Don't specially handle weakrefs, they no longer
arrive here.
(assemble_alias): Weakrefs can't be TREE_PUBLIC yet.
* c-common.c (handle_alias_attribute): Allow static aliases
of variables.
(handle_weakref_attribute): Don't call declare_weak on weakrefs.
* gthr-dce.h: Make weakrefs static.
* gthr-tpf.h: Likewise.
* gthr-solaris.h: Likewise.
* gthr-posix.h: Likewise.
* gthr-posix95.h: Likewise.
* config/darwin.c (darwin_encode_section_info): static weakref
variables are not necessarily defined in this translation unit.
* doc/extend.texi (Function Attributes): Mention that an alias
attribute creates a definition for the thing it's attached to.
Change the documentation for weakref to say that the thing
it's attached to must be static.
* config/rs6000/host-darwin.c (segv_handler): Unblock SEGV so
we don't go into an infinite loop.
2005-12-05 Paolo Bonzini <bonzini@gnu.org>
* config/rs6000/predicates.md (logical_const_operand): Split
out of logical_operand.
(logical_operand): Use it.
* config/rs6000/rs6000.md (cmp -> xor peephole2): Use
logical_const_operand.
2005-12-05 Jan Beulich <jbeulich@novell.com>
* config/i386/i386.c (enum ix86_builtins): Remove IX86_BUILTIN_CMPNEPS
and IX86_BUILTIN_CMPNESS.
(ix86_init_mmx_sse_builtins): Remove ti_ftype_ti_ti.
* config/i386/i386.h (ALIGN_MODE_128): Don't check TFmode explicitly.
* config/i386/i386.md (movti_internal): Correct type attribute.
Simplify mode attribute.
(movti_rex64, movsf_1, movdf_nointeger, movdf_integer, movtf_internal):
Correct type attribute.
(absxf2): Correct operator.
* config/i386/mmx.md (mov<mode>_internal_rex64, mov<mode>_internal,
movv2sf_internal_rex64, movv2sf_internal): Correct type attribute.
* config/i386/sse.md (mov<mode>_internal, movv2df_internal): Simplify
mode attribute.
(sse2_vmsqrtv2df2): Correct mode attribute.
2005-12-05 Jan Beulich <jbeulich@novell.com>
* config/ia64/ia64.md (rotlsi3_internal): Don't split if rotating by
16 bits. Provide insn pattern for this case.
2005-12-05 Jan Beulich <jbeulich@novell.com>
* libgcc2.c (__popcountSI2): Don't use wide type for iterator and
result.
(__popcountDI2): Likewise.
2005-12-04 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
PR target/25166
* pa/pa.c (pa_hpux_init_libfuncs): Add _U_Qfcnvxf_usgl_to_quad and
_U_Qfcnvxf_udbl_to_quad to set of initialized libfuncs.
* pa/quadlib.c (_U_Qfcnvxf_usgl_to_quad, _U_Qfcnvxf_udbl_to_quad): New
functions.
2005-12-04 Joseph S. Myers <joseph@codesourcery.com>
* c-typeck.c (null_pointer_constant_p): New function.
(build_conditional_expr, build_c_cast, convert_for_assignment,
build_binary_op): Use it.
2005-12-04 Joseph S. Myers <joseph@codesourcery.com>
* c-common.c (binary_op_error): Do not allow NOP_EXPR.
(c_common_truthvalue_conversion): Handle NOP_EXPR the same as
CONVERT_EXPR.
(check_function_arguments_recurse): Allow both NOP_EXPR and
CONVERT_EXPR but check conversions preserve precision.
* c-typeck.c (pointer_diff): Allow both NOP_EXPR and CONVERT_EXPR
but check conversions preserve precision.
(build_unary_op): Don't allow NOP_EXPR. Use gcc_unreachable () in
default case.
2005-12-04 Roger Sayle <roger@eyesopen.com>
PR c/7776
* common.opt (Wstring-literal-comparison): New command line option.
* c-opts.c (c_common_handle_option): Set it with -Wall.
* c-typeck.c (parser_build_binary_op): Issue warning if either
operand of a comparison operator is a string literal, except for
testing equality or inequality against NULL.
* doc/invoke.texi: Document new -Wstring-literal-comparison option.
2005-12-03 Joseph S. Myers <joseph@codesourcery.com>
* c-common.c (c_sizeof_or_alignof_type): Use fold_convert instead
of building a NOP_EXPR.
(c_alignof_expr): Likewise. Handle CONVERT_EXPR the same as
NOP_EXPR.
* c-convert.c (convert): Use fold_convert instead of building
NOP_EXPRs and CONVERT_EXPRs directly. Don't special case
c_objc_common_truthvalue_conversion returning a NOP_EXPR. Remove
#if 0 code.
* c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Handle
NOP_EXPR the same as CONVERT_EXPR.
* c-typeck.c (build_function_call): Use fold_convert instead of
building a NOP_EXPR directly.
(build_compound_expr): Handle NOP_EXPR the same as CONVERT_EXPR.
2005-12-03 Alan Modra <amodra@bigpond.net.au>
PR rtl-optimization/25197
* dwarf2out.c (dwarf2out_frame_debug_expr <rule 12>): Assert we
have a reg.
2005-12-02 Stuart Hastings <stuart@apple.com>
* config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Remove -fpic
warning.
2005-12-03 Joseph S. Myers <joseph@codesourcery.com>
* c-typeck.c (default_function_array_conversion,
build_function_call): Allow for CONVERT_EXPR as well as NOP_EXPR.
(build_conditional_expr): Apply integer_zerop to orig_op1 and
orig_op2. Don't check them for NOP_EXPR.
(build_c_cast, convert_for_assignment): Don't check for NOP_EXPR
around integer zero.
2005-12-03 Alan Modra <amodra@bigpond.net.au>
* config/rs6000/rs6000.c (rs6000_stack_t): Remove toc_save_p,
toc_save_offset, toc_size, lr_size.
(rs6000_stack_info): Use memset rather than bss struct copy to init.
Test rs6000_ra_ever_killed last in condition setting lr_save_p.
Adjust for removal of unused rs6000_stack_t fields.
(debug_stack_info): Adjust.
(rs6000_ra_ever_killed): Expand FIND_REG_INC_NOTE. Test for calls
first, and don't bother checking for set/inc of lr on sibcalls.
(rs6000_emit_epilogue): Tidy code restoring stack pointer.
2005-12-02 Jakub Jelinek <jakub@redhat.com>
PR target/25199
* config/i386/i386.md (movqi_1): Only force imovx for alternative
5 if operand 1 is not aligned. Undo previous constraint change.
* config/i386/predicates.md (aligned_operand): Use MEM_ALIGN.
2005-12-02 Richard Guenther <rguenther@suse.de>
* tree.h (build): Remove prototype.
(build, _buildN1, _buildN2, _buildC1, _buildC2): Remove macros.
* tree.c (build): Remove.
(build0_stat): Update comment.
2005-12-02 Richard Guenther <rguenther@suse.de>
* tree-ssa-loop-im.c (schedule_sm): Use buildN instead of build.
* tree-complex.c (update_complex_assignment, expand_complex_div_wide):
Likewise.
* tree-ssa-ccp.c (maybe_fold_offset_to_array_ref,
maybe_fold_offset_to_component_ref): Likewise.
* tree-ssa-dom.c (thread_across_edge,
simplify_rhs_and_lookup_avail_expr,
find_equivalent_equality_comparison, record_equivalences_from_stmt):
Likewise.
* gimple-low.c (lower_function_body, lower_return_expr): Likewise.
* tree-eh.c (do_return_redirection, honor_protect_cleanup_actions,
lower_try_finally_switch): Likewise.
* tree-if-conv.c (add_to_dst_predicate_list,
replace_phi_with_cond_modify_expr, ifc_temp_var): Likewise.
* gimplify.c (internal_get_tmp_var, gimple_build_eh_filter,
voidify_wrapper_expr, build_stack_save_restore, gimplify_bind_expr,
gimplify_return_expr, gimplify_decl_expr, gimplify_switch_expr,
gimplify_case_label_expr, gimplify_exit_expr, gimplify_self_mod_expr,
shortcut_cond_r, shortcut_cond_expr, gimplify_cond_expr,
gimplify_init_ctor_eval, gimplify_init_constructor,
gimplify_variable_sized_compare, gimplify_boolean_expr,
gimplify_cleanup_point_expr, gimple_push_cleanup, gimplify_target_expr,
gimplify_expr, gimplify_body, gimplify_function_tree,
force_gimple_operand): Likewise.
* tree-ssa-pre.c (create_expression_by_pieces): Likewise.
* tree-mudflap.c (mf_decl_cache_locals, mf_build_check_statement_for,
mx_register_decls): Likewise.
* tree-nested.c (init_tmp_var, save_tmp_var, get_static_chain,
get_frame_field, finalize_nesting_tree_1): Likewise.
* tree-inline.c (setup_one_parameter): Likewise.
* tree-vect-transform.c (vectorizable_condition): Likewise.
* tree-outof-ssa.c (insert_copy_on_edge, insert_backedge_copies):
Likewise.
* tree-profile.c (tree_gen_edge_profiler): Likewise.
* tree-cfg.c (factor_computed_gotos, gimplify_val): Likewise.
* c-parser.c (c_parser_if_body, c_parser_switch_statement): Likewise.
* tree-chrec.h (build_polynomial_chrec): Likewise.
2005-12-02 Richard Guenther <rguenther@suse.de>
* config/alpha/alpha.c (alpha_va_start, alpha_gimplify_va_arg_1i,
alpha_gimplify_va_arg): Use buildN and fold_buildN where applicable.
* config/frv/frv.c (frv_expand_builtin_va_start): Likewise.
* config/s390/s390.c (s390_va_start, s390_gimplify_va_arg): Likewise.
* config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
* config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise.
* config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg):
Likewise.
* config/sh/sh.c (sh_va_start, sh_gimplify_va_arg_expr,
sh_adjust_unroll_max): Likewise.
* config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Likewise.
* config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
* config/xtensa/xtensa.c (xtensa_va_start, xtensa_gimplify_va_arg_expr):
Likewise.
* config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
Likewise.
* config/mips/mips.c (mips_va_start, mips_gimplify_va_arg_expr):
Likewise.
2005-12-02 Richard Guenther <rguenther@suse.de>
* tree-vrp.c (build_assert_expr_for, process_assert_insertions_for,
simplify_cond_using_ranges): Use buildN instead of build.
* tree-tailcall.c (adjust_accumulator_values,
adjust_return_value): Likewise.
* tree-sra.c (generate_one_element_ref, generate_copy_inout,
generate_element_copy, generate_element_zero,
generate_one_element_init): Likewise.
* tree-ssa-forwprop.c (forward_propagate_into_cond_1): Likewise.
* lambda-code.c (gcc_loop_to_lambda_loop, lbv_to_gcc_expression,
lle_to_gcc_expression, lambda_loopnest_to_gcc_loopnest,
perfect_nestify): Likewise.
2005-12-02 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
* pa.c (pa_secondary_reload): Revise initialization of variable regno.
2005-12-02 Gabriel Dos Reis <gdr@integrable-solutions.net>
* ggc.h (GGC_RESIZEVEC): New.
2005-12-02 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
* gcc.c (execute): Improve readability.
2005-12-02 Richard Guenther <rguenther@suse.de>
* tree-cfg.c (mark_used_vars): New function.
(dump_function_to_file): Dump only used VAR_DECLs.
2005-12-02 Richard Guenther <rguenther@suse.de>
* convert.c (convert_to_integer): Fix compare for nonpositive
constant to use tree_int_cst_sgn <= 0.
2005-12-02 Richard Guenther <rguenther@suse.de>
* convert.c (convert_to_integer): Use fold_convert instead
of fold_build1 (NOP_EXPR, ...). Use tree_int_cst_sgn < 0
instead of comparing against 0. Use build_int_cst instead
of converting integer_zero_node.
2005-12-02 Richard Guenther <rguenther@suse.de>
* tree-pretty-print.c (op_symbol): Handle LROTATE_EXPR
and RROTATE_EXPR.
2005-12-02 Alan Modra <amodra@bigpond.net.au>
PR target/21017
* combine.c (simplify_logical <IOR>): Simplify more patterns to
rotates.
2005-12-02 Alan Modra <amodra@bigpond.net.au>
PR middle-end/25176
* function.c (expand_function_end): Emit blockage for unwinder
after return label.
2005-12-01 Roger Sayle <roger@eyesopen.com>
* tree.h (TREE_OVERFLOW): Make this flag/predicate specific to
constant nodes, i.e. INTEGER_CST, REAL_CST, etc...
* tree-vrp.c (compare_values): Only check TREE_OVERFLOW for
integer constant comparisons.
2005-12-02 Jon Grimm <jgrimm2@us.ibm.com>
Janis Johnson <janis187@us.ibm.com>
David Edelsohn <dje@watson.ibm.com>
Ben Elliston <bje@au.ibm.com>
* dfp.h, dfp.c: New files.
* Makefile.in (DECNUM, DECNUMINC, LIBDECNUMBER): New variables.
(DECNUM_H): Likewise.
(LIBDEPS, LIBS, BACKEND): Append $(LIBDECNUMBER).
(INCLUDES): Append $(DECNUMINC).
(OBJS-common): Add dfp.o.
(dfp.o): New rule.
* real.h (EXP_BITS): Pinch one bit to ..
(struct real_value): Add decimal field.
(real_format): Change table size, update documentation.
(REAL_MODE_FORMAT): Update for to handle float, decimal float.
(real_from_string3): Declare.
(decimal_single_format): Declare.
(decimal_double_format): Declare.
(decimal_quad_format): Declare.
(REAL_VALUE_TO_TARGET_DECIMAL32): New.
(REAL_VALUE_TO_TARGET_DECIMAL64): New.
(REAL_VALUE_TO_TARGET_DECIMAL128): New.
* real.c: Include dfp.h.
(normalize): Early return for decimal floats.
(do_add): Zero decimal field.
(do_compare): Call do_decimal_compare for decimal floats.
(do_fix_trunc): Likewise, call decimal_do_fix_trunc.
(real_arithmetic): Call decimal_real_arithmetic for decimal
floating point operands.
(real_identical): If a and b are of differing radix, return false.
(real_to_integer): Call decimal_real_to_integer if the value is a
decimal float.
(real_to_integer2): Likewise, call decimal_real_to_integer2.
(real_to_decimal): Likewise, call decimal_real_to_decimal.
(real_to_hexadecimal): Place "N/A" in the return string for
decimal float.
(real_from_string3): New variant, given a mode.
(real_maxval): Use decimal_real_maxval for decimal floats.
(round_for_format): Use decimal_round_for_format for decimals.
(real_convert): Use decimal_real_convert where appropriate.
(significand_size): Handle base 10.
(encode_decimal_single, decode_decimal_single,
encode_decimal_double, decode_decimal_double, encode_decimal_quad,
decode_decimal_quad): New functions.
(decimal_single_format): New.
(decimal_double_format): New.
(decimal_quad_format): New.
* machmode.def: Add SD, DD and TD decimal floating point modes.
* machmode.h (FLOAT_MODE_P, SCALAR_FLOAT_MODE_P, MODES_WIDEN_P):
Include MODE_DECIMAL_FLOAT.
(DECIMAL_FLOAT_MODE_P): New.
* mode-classes.def (MODE_DECIMAL_FLOAT): New mode class.
* genmodes.c (struct mode_data): Add counter field.
(struct mode_data): Update comment for format.
(blank_mode): Initialise counter field.
(new_mode): Increment counter field for each mode defined.
(complete_mode): Handle MODE_DECIMAL_FLOAT, update check for mode
using a format.
(make_complex_modes): Handle modes containing `D'.
(DECIMAL_FLOAT_MODE, FRACTIONAL_DECIMAL_FLOAT_MODE): New.
(make_decimal_float_mode): New.
(reset_float_format): Handle MODE_DECIMAL_FLOAT.
(cmp_modes): Compare counter field if other characteristics
similar.
(emit_real_format_for_mode): Support formats for decimal floats.
* doc/rtl.texi (Machine Modes): Document SD, DD and TDmodes.
Document MODE_DECIMAL_FLOAT.
2005-12-02 Alan Modra <amodra@bigpond.net.au>
* simplify-rtx.c (simplify_plus_minus): Do simplify constants.
Delete dead code.
2005-12-01 Richard Henderson <rth@redhat.com>
* optabs.c (expand_vec_cond_expr): Use EXPAND_NORMAL.
2005-12-01 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* builtins.def (BUILT_IN_PUTC, BUILT_IN_PUTC_UNLOCKED): New.
* config/pa/pa.c (pa_init_builtins): If we detect
DONT_HAVE_FPUTC_UNLOCKED, set builtin fputc_unlocked to
putc_unlocked.
2005-12-01 Richard Guenther <rguenther@suse.de>
* fold-const.c (fold_binary): Use fold_build2, not
fold (build (...)).
2005-12-01 Nathan Sidwell <nathan@codesourcery.com>
* config/ms1/ms1.c (ms1_reorg_hazard): Don't count noop moves.
* vec.h (VEC_block_remove): New.
2005-12-01 Gabriel Dos Reis <gdr@integrable-solutions.net>
PR c/13384
* c-common.c (lvalue_error): Fix wording.
2005-12-01 Richard Guenther <rguenther@suse.de>
* tree-ssa-forwprop.c (forward_propagate_addr_expr): Fix
thinko in last patch.
2005-12-01 Geoffrey Keating <geoffk@apple.com>
* config/t-slibgcc-darwin (SHLIB_LINK): Use -single_module rather
than -flat_namespace.
2005-12-01 Ben Elliston <bje@au.ibm.com>
* mklibgcc.in: Parameterise the script to build soft float
functions by iterating over each type, rather than cloning the
code for each type.
2005-11-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
PR middle-end/25158
* builtins.c (fold_builtin_fputs): Defer check for missing
replacement functions.
2005-11-30 Kean Johnston <jkj@sco.com>
* config/i386/i386.c: Check the value of SUPPORTS_ONE_ONLY, not
simply its presense in case targets #define SUPPORTS_ONE_ONLY 0.
2005-11-30 Richard Guenther <rguenther@suse.de>
PR tree-optimization/22501
* tree-ssa-forwprop.c (forward_propagate_addr_expr_1): New
function split out from ...
(forward_propagate_addr_expr): ... here. Use it to propagate
ADDR_EXPRs to all uses.
2005-11-30 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
* tree.h (CASE_FLT_FN, CASE_INT_FN): New macros.
* builtins.c (expand_builtin_mathfn): Use them.
(expand_builtin_mathfn_2): Likewise.
(expand_builtin_mathfn_3): Likewise.
(expand_builtin_int_roundingfn): Likewise.
(expand_builtin): Likewise.
(integer_valued_real_p): Likewise.
(fold_builtin_int_roundingfn): Likewise.
(fold_builtin_bitop): Likewise.
(fold_builtin_logarithm): Likewise.
(fold_builtin_1): Likewise.
* convert.c (convert_to_integer): Likewise.
* fold-const.c (negate_mathfn_p): Likewise.
(tree_expr_nonnegative_p): Likewise.
2005-11-30 Dale Johannesen <dalej@apple.com>
Andrew Pinski <pinskia@physics.uc.edu>
* combine.c (find_split_point): Sign extend bitmask
when changing bitfield assignment to IOR of AND.
2005-11-30 Nathan Sidwell <nathan@codesourcery.com>
* config/ms1/ms1.md (decrement_and_branch_until_zero): Add early
clobber to scratch reg.
(*decrement_and_branch_until_zero_no_clobber): Remove.
(decrement_and_branch peephole): Add dummy scratch reg to pattern.
(mulhish3): Use TARGET_MS1_16_003, TARGET_MS2.
* config/ms1/ms1.opt (mmul): Remove.
* config/ms1/ms1.h (ASM_SPEC): Cope with uppercase arch names.
(LINK_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Default to 16-002.
2005-11-30 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
Bernd Schmidt <bernd.schmidt@analog.com>
* pa/predicates.md (symbolic_operand): Add comment.
* pa/pa.md (reload_insi_r1, reload_indi_r1): New reload expanders.
* pa/pa-protos.h (pa_secondary_reload_class): Delete.
* pa/pa.c (TARGET_SECONDARY_RELOAD): Define.
(pa_secondary_reload_class): Delete.
(pa_secondary_reload): New function derived from SECONDARY_RELOAD_CLASS
and pa_secondary_reload_class. Reorder some checks. Update inline
copy of symbolic operand.
* pa/pa.h (SECONDARY_RELOAD_CLASS): Delete.
2005-11-30 Nathan Sidwell <nathan@codesourcery.com>
* loop-doloop.c (add_test): Only add jump notes if we did emit a
jump.
2005-11-30 Jeff Law <law@redhat.com>
* tree-ssa-uncprop.c (associate_equivalences_with_edges): Properly
handle SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
2005-11-30 Jakub Jelinek <jakub@redhat.com>
* config/ia64/ia64.c (ia64_expand_tls_address): Add ORIG_OP1 argument.
Move ADDEND_{HI,LO} computation into TLS_MODEL_INITIAL_EXEC case.
(ia64_expand_move): Adjust caller.
* config/ia64/ia64.c (ia64_expand_atomic_op): Only use
fetchadd{4,8}.acq instruction if CODE is PLUS or MINUS, for MINUS
negate VAL.
2005-11-30 Paolo Bonzini <bonzini@gnu.org>
* simplify-rtx.c (simplify_plus_minus): Remove final parameter.
Always produce an output if we can remove NEGs or canonicalize
(minus (minus ...)) expressions. Provide a fast path for the
two-operand case.
(simplify_gen_binary): Do not call simplify_plus_minus.
(simplify_binary_operation_1): Reassociate at the end of the
function.
2005-11-29 Evan Cheng <evan.cheng@apple.com>
* config/i386/xmmintrin.h (_MM_TRANSPOSE4_PS): Rewrite using high/low
moves and unpack to speed up.
2005-11-29 David S. Miller <davem@sunset.davemloft.net>
* config/sparc/sparc.c (gen_compare_reg): Kill 2nd and 3rd
argument, they are always sparc_compare_op0 and sparc_compare_op1.
(gen_v9_scc): Update callers.
* config/sparc/sparc.md: Likewise.
* config/sparc/sparc-protos.h: Update extern declaration.
* tree-into-ssa.c (rewrite_into_ssa): Fix comment typo.
2005-11-29 Andrew Pinski <pinskia@physics.uc.edu>
* fold-const.c (negate_expr) <case BIT_NOT_EXPR>: Add break after
the if.
2005-11-29 Andrew Pinski <pinskia@physics.uc.edu>
* fold-const.c (negate_expr_p): Return true for BIT_NOT_EXPR.
(fold_unary) <case NEGATE_EXPR>: Move -(~a) transformation to ...
(negate_expr): Here.
2005-11-29 Ben Elliston <bje@au.ibm.com>
* config/i386/i386.h (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN):
Fix typo in comment.
2005-11-29 Ben Elliston <bje@au.ibm.com>
* Makefile.in (clean-target): Depend on clean-target-libgcc.
(clean-target-libgcc): Import rule from the top-level Makefile.in.
2005-11-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
PR middle-end/20109
PR middle-end/25120
* builtins.c (init_target_chars): New.
(expand_builtin_printf, expand_builtin_fprintf,
expand_builtin_sprintf, fold_builtin_sprintf,
maybe_emit_sprintf_chk_warning, fold_builtin_sprintf_chk,
fold_builtin_snprintf_chk, fold_builtin_printf,
fold_builtin_fprintf): Check for matching format strings using
the target charset.
2005-11-29 Paul Brook <paul@codesourcery.com>
* config.gcc: Do not use fixproto on m68k-elf.
2005-11-28 Roger Sayle <roger@eyesopen.com>
* expmed.c (div_cost): Replace with...
(sdiv_cost, udiv_cost): New.
(init_expmed): Initialize sdiv_cost and udiv_cost, not div_cost.
Rename the div and mod fields, used to initialize sdiv_pow2_cheap
and smod_pow2_cheap, to sdiv_32 and smod_32 to avoid confusion.
(expand_divmod): Replace use of div_cost with either sdiv_cost
or udiv_cost depending upon the signedness of the operation.
2005-11-28 Alexandre Oliva <aoliva@redhat.com>
PR libfortran/24991
* config/darwin.c (machopic_indirection_name,
machopic_output_indirection): Follow transparent alias chain.
2005-11-28 Alexandre Oliva <aoliva@redhat.com>
* varasm.c (ultimate_transparent_alias_target): Add comment.
2005-11-28 Kazu Hirata <kazu@codesourcery.com>
* config/m68k/m68k.c (notice_update_cc): Use SET_DEST and
SET_SRC instead of XEXP where appropriate.
2005-11-28 Joseph S. Myers <joseph@codesourcery.com>
* config/fp-bit.c (isnan, isinf, pack_d, unpack_d): Use
__builtin_expect.
2005-11-28 Joseph S. Myers <joseph@codesourcery.com>
* config/fp-bit.h (LSHIFT): Take shift count parameter.
* config/fp-bit.c (_fpadd_parts): Shift in one go instead of one
bit at a time.
2005-11-28 Bernd Schmidt <bernd.schmidt@analog.com>
* config/bfin/bfin.c (bfin_secondary_reload): Renamed from
secondary_input_reload_class, made static. Adapt to new
infrastructure.
(secondary_output_reload_class): Delete.
(TARGET_SECONDARY_RELOAD): New macro.
* config/bfin/bfin.h (SECONDARY_INPUT_RELOAD_CLASS,
SECONDARY_OUTPUT_RELOAD_CLASS): Delete.
2005-11-28 Nathan Sidwell <nathan@codesourcery.com>
PR c++/21166
* c-decl.c (finish_struct): Only set DECL_PACKED on a field
when its natural alignment is > BITS_PER_UNIT.
* stor-layout.c (finalize_type_size): Revert my patch of 2005-08-08.
* c-common.c (handle_packed_attribute): Ignore packing on a field
whose type is naturally char aligned.
2005-11-28 Richard Guenther <rguenther@suse.de>
* c-common.c (strict_aliasing_warning): Handle all
component-ref like accesses.
2005-11-28 Roger Sayle <roger@eyesopen.com>
Uros Bizjak <uros@kss-loka.si>
PR middle-end/20219
* fold-const.c (fold binary) <RDIV_EXPR>: Optimize
sin(x)/tan(x) as cos(x) and tan(x)/sin(x) as 1.0/cos(x)
when flag_unsafe_math_optimizations is set and
we don't care about NaNs or Infinities.
Move x/expN(y) and x/pow(y,z) transformation into common
flag_unsafe_math_optimizations section.
2005-11-27 Mark Mitchell <mark@codesourcery.com>
* gcc.c (main): Change type of argv to "char **".
2005-11-28 Alan Modra <amodra@bigpond.net.au>
* doc/invoke.texi (powerpc msdata-data): Static data doesn't go in
small data sections.
* config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Make global.
* config/rs6000/rs6000-protos.h: (rs6000_elf_in_small_data_p): Declare.
* config/rs6000/sysv4.h (ASM_OUTPUT_ALIGNED_LOCAL): Rename to..
(ASM_OUTPUT_ALIGNED_DECL_LOCAL): ..this, adding extra parm. Don't
output locals to sbss if !rs6000_elf_in_small_data_p.
(ASM_OUTPUT_ALIGNED_BSS): Adjust for above.
2005-11-28 Alan Modra <amodra@bigpond.net.au>
PR target/24997
* config/rs6000/rs6000.c (legitimate_indexed_address_p): Allow pattern
generated by reload.
* config/rs6000/predicates.md (indexed_or_indirect_operand): Use
indexed_or_indirect_address.
(indexed_or_indirect_address): Don't test for base reg. Call
address_operand last. Make it a special predicate.
2005-11-27 Kazu Hirata <kazu@codesourcery.com>
* config/m68k/m68k.c (notice_update_cc): Remove useless code.
2005-11-27 Andrew Pinski <pinskia@physics.uc.edu>
PR middle-end/24575
* fold-const.c (negate_expr_p): Add case for signed divides if overflow
is undefined.
(negate_expr): Likewise.
2005-11-27 Andreas Schwab <schwab@suse.de>
* config/m68k/m68k.c: Reindent and fix whitespace, remove
redundant parens.
2005-11-27 Steven Bosscher <stevenb@suse.de>
* cfgcleanup.c (try_crossjump_to_edge): Always split SRC2 if it
has EH predecessor edges.
2005-11-26 Eric Christopher <echristo@apple.com>
* config/i386/i386.md (*zero_extendqihi2_movzbw): Avoid partial
register stalls by zero extending to the full register.
2005-11-27 Joseph S. Myers <joseph@codesourcery.com>
* config/floatunsisf.c, config/floatunsidf.c,
config/floatunsixf.c, config/floatunsitf.c: New files.
* config/ia64/t-hpux: Add floatunsitf.c.
* config/ia64/ia64.c (ia64_init_libfuncs): Use
_U_Qfcnvxuf_dbl_to_quad for unsigned DImode-to-TFmode conversion.
2005-11-26 Richard Henderson <rth@redhat.com>
* c-lex.c (pragma_lex): Rename from c_lex.
* c-pch.c: Update for pragma_lex rename.
* c-pragma.c, c-pragma.h, config/ia64/ia64-c.c: Likewise.
* config/m32c/m32c-pragma.c, config/darwin-c.c: Likewise.
* config/rs6000/rs6000-c.c, config/c4x/c4x-c.c: Likewise.
* config/sol2-c.c, config/v850/v850-c.c: Likewise.
* doc/tm.texi: Likewise.
2005-11-26 Andrew Pinski <pinskia@physics.uc.edu>
PR middle-end/23669
* fold-const.c (fold_binary): Convert -A/-B to A/B for signed types
when overflow is undefined.
2005-11-26 Hans-Peter Nilsson <hp@axis.com>
* doc/md.texi (Insn Canonicalizations): Refer to the
function commutative_operand_precedence for further rules.
2005-11-25 Roger Sayle <roger@eyesopen.com>
PR middle-end/21309
* expmed.c (choose_mult_variant): Return immediately when mult_cost
is less than zero. Limit mult_cost to a reasonable upper bound for
the synthetic multiplication sequence.
2005-11-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
PR middle-end/25022
* builtins.c (expand_builtin_printf, expand_builtin_fprintf,
fold_builtin_fputs, fold_builtin_printf, fold_builtin_fprintf):
Lookup the explicit replacement functions for any unlocked
stdio builtin transformations.
2005-11-25 Hans-Peter Nilsson <hp@axis.com>
* config/cris/cris.md ("reload_out<mode>"): Mark operand 2 as
earlyclobber.
* targhooks.c (default_secondary_reload): Don't require operand 2
for an input reload to be earlyclobber.
2005-11-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
* fold-const.c (negate_mathfn_p): Fix comment and add support
for BUILT_IN_CBRT, BUILT_IN_SINH, BUILT_IN_TANH, BUILT_IN_ASINH,
BUILT_IN_ATANH.
2005-11-25 Joseph S. Myers <joseph@codesourcery.com>
PR middle-end/24998
* config/sparc/sparc.c (sparc_init_libfuncs): Use _Q_utoq and
_Q_ulltoq for unsigned conversions from SImode and DImode to
TFmode.
2005-11-25 Alan Modra <amodra@bigpond.net.au>
* config/rs6000/ppc64-fp.c (__floatunditf): New function.
(__floatundidf, __floatundisf): Likewise.
2005-11-25 David Edelsohn <edelsohn@gnu.org>
* config/rs6000/rs6000.c (rs6000_sr_alias_set): Delete.
(rs6000_override_options): Remove initialization of
rs6000_sr_alias_set.
(rs6000_emit_eh_reg_restore): Use gen_frame_mem.
(rs6000_emit_stack_tie): Same.
(emit_frame_save): Same.
(gen_frame_mem_offset): Same.
(rs6000_emit_prologue): Same.
(rs6000_emit_epilogue): Same.
2005-11-25 Andrew Pinski <pinskia@physics.uc.edu>
PR middle-end/24989
* fold-const.c (fold_build): Convert bool_var != 1 and
bool_var == 0 to !bool_var.
2005-11-25 Andrew Pinski <pinskia@physics.uc.edu>
PR middle-end/24990
* fold-const.c (fold_binary): Fold (~a) == C to a == ~C
for C being INTEGER_CST. Likewise for !=.
2005-11-25 Joseph S. Myers <joseph@codesourcery.com>
PR middle-end/24998
* config/rs6000/rs6000.c (rs6000_init_libfuncs): Use _q_utoq for
unsigned conversions from SImode to TFmode.
2005-11-24 Bernd Schmidt <bernd.schmidt@analog.com>
* expr.c (expand_expr_real_1): Fix error in last change.
2005-11-24 J"orn Rennecke <joern.rennecke@st.com>
* caller-save.c: (this_insn_sets): Move into:
(save_call_clobbered_regs).
(mark_set_regs): Get this_insn_sets from data.
(save_call_clobbered_regs): Take sets of the return value by
sibcalls into account.
2005-11-24 J"orn Rennecke <joern.rennecke@st.com>
PR target/21623:
* regclass.c (FORBIDDEN_INC_DEC_CLASSES): Remove
SECONDARY_INPUT_RELOAD_CLASS and SECONDARY_OUTPUT_RELOAD_CLASS tests.
(init_fake_stack_mems): Remove HAVE_SECONDARY_RELOADS test.
(memory_move_secondary_cost, init_reg_autoinc): Remove
SECONDARY_INPUT_RELOAD_CLASS / SECONDARY_OUTPUT_RELOAD_CLASS tests.
Replace SECONDARY_{IN,OUT}PUT_RELOAD_CLASS use with
secondary_reload_class call.
(copy_cost): Likewise. Add new parameter prev_sri. Changed all
callers.
* reload.c (entire file): Remove HAVE_SECONDARY_RELOADS checks.
(push_secondary_reload): Use secondary_reload target hook.
(secondary_reload_class, scratch_reload_class): New functions.
(push_reload): Remove SECONDARY_INPUT_RELOAD_CLASS and
SECONDARY_OUTPUT_RELOAD_CLASS tests. Replace
SECONDARY_{IN,OUT}PUT_RELOAD_CLASS use with secondary_reload_class call.
* reload.h (HAVE_SECONDARY_RELOADS): Don't define nor test.
(secondary_reload_class, scratch_reload_class): Declare.
* reload1.c: Include target.h.
(reload_adjust_reg_for_temp): New function.
(reload_adjust_reg_for_icode): Likewise.
(choose_reload_regs): Remove SECONDARY_INPUT_RELOAD_CLASS test.
Replace SECONDARY_INPUT_RELOAD_CLASS use with secondary_reload_class
call.
(emit_input_reload_insns): Likewise. Rewrite secondary reload checks
for inheritance. Support case when both secondary & tertiary reloads
are for intermediate registers.
(emit_output_reload_insns): Replace SECONDARY_OUTPUT_RELOAD_CLASS use
with secondary_reload_class call. Support case when both secondary
& tertiary reloads are for intermediate registers.
* target-def.h (TARGET_SECONDARY_RELOAD): Provide default definition.
(TARGET_INITIALIZER) Add TARGET_SECONDARY_RELOAD.
* target.h (secondary_reload_info): New struct / typedef.
(struct gcc_target): New member secondary_reload.
* targhooks.c Include reload.h, optabs.h and recog.h.
(default_secondary_reload): New function.
* targhooks.h (default_secondary_reload): Declare.
* doc/tm.texi: Document secondary_reload target hook. Update
description of SECONDARY_*RELOAD_CLASS and reload_{in,out}<mode>.
* doc/md.texi: Likewise.
* sh-protos.h (sh_secondary_reload): Declare.
* sh.c (TARGET_SECONDARY_RELOAD): Override.
(sh_secondary_reload): New function.
* sh.h (SECONDARY_INOUT_RELOAD_CLASS): Don't define.
(SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
(SECONDARY_INPUT_RELOAD_CLASS): Likewise.
(HAVE_SECONDARY_RELOADS): Define.
* sh.md (reload_indf): Rename to:
(reload_indf__frn).
(reload_outdf): Rename to:
(reload_outdf__RnFRm).
(reload_insf): Rename to:
(reload_insf__frn).
(reload_insi): Rename to:
(reload_insi__i_fpul).
2005-11-24 Uros Bizjak <uros@kss-loka.si>
* configure.ac: Require at least texinfo 4.4.
* configure: Regenerate.
* doc/install.texi (Tools/packages necessary for building GCC):
Update required version of texinfo to at least 4.4.
(Installing GCC: Building): Update required version of texinfo
to at least 4.4.
(Installing GCC: Final installation): Update required version
of texi2dvi to at least 4.4.
(Host/target specific installation notes for GCC): Update required
version of texinfo to at least 4.4.
2005-11-24 Richard Guenther <rguenther@suse.de>
Dirk Mueller <dmueller@suse.de>
PR c++/14024
* c-common.h (strict_aliasing_warning): Declare.
* c-common.c (strict_aliasing_warning): New function,
split out from ...
* c-typeck.c (build_c_cast): ... here.
2005-11-24 Paolo Bonzini <bonzini@gnu.org>
* optabs.c (expand_binop): Use swap_commutative_operands_with_target
to order operands.
(swap_commutative_operands_with_target): New.
2005-11-24 Paolo Bonzini <bonzini@gnu.org>
* gcse.c (hash_scan_set): Look through REG_EQUAL or REG_EQUIV notes
also when doing PRE, rather than only for global CPROP.
2005-11-24 Ben Elliston <bje@au.ibm.com>
* machmode.h (CLASS_HAS_WIDER_MODES_P): New macro.
* optabs.c (expand_binop): Use CLASS_HAS_WIDER_MODES_P, improve
formatting.
(expand_twoval_unop): Likewise.
(widen_clz): Likewise.
(expand_parity): Likewise.
(expand_unop): Likewise.
(emit_cmp_and_jmp_insn_1): Likewise.
(prepare_float_lib_cmp): Likewise.
2005-11-24 Ben Elliston <bje@au.ibm.com>
* optabs.c (prepare_cmp_insn): Use SCALAR_FLOAT_MODE_P.
Remove unused `class' variable.
2005-11-23 Gabriel Dos Reis <gdr@integrable-solutions.net>
PR c++/21667
* c-typeck.c (build_array_ref): Avoid code duplicate. Use common
C/C++ diagnostic function warn_array_subscript_with_type_char.
* c-common.h (warn_array_subscript_with_type_char): Declare.
* c-common.c (warn_array_subscript_with_type_char): Define.
2005-11-23 Gabriel Dos Reis <gdr@integrable-solutions.net>
PR c/21668
* c-decl.c (grokdeclarator): Don't warn for 'extern const' when
compiling at the intersection of C and C++.
2005-11-23 Mark Mitchell <mark@codesourcery.com>
* doc/invoke.texi: For man pages, include gcc-vers.texi.
List @file in the option summary. Include the libiberty
documentation for @file.
* gcc.c (main): Call expandargv.
* Makefile.in (gcc-vers.texi): Define srcdir.
2005-11-23 Diego Novillo <dnovillo@redhat.com>
* passes.c (init_optimization_passes): Document
sequencing of passes.
2005-11-23 Kazu Hirata <kazu@codesourcery.com>
* config/m68k/predicates.md (pcrel_address, extend_operator,
post_inc_operand, pre_dec_operand): Remove redundant
conditionals.
(const_uint32_operand, const_sint32_operand): Use gcc_assert
instead of abort.
(valid_dbcc_comparison_p): Rewrite in the lisp style.
2005-11-23 Ben Elliston <bje@au.ibm.com>
* dwarf2.h (enum dwarf_type): Add DW_ATE_decimal_float.
2005-11-22 J"orn Rennecke <joern.rennecke@st.com>
Preparatory work for PR target/21623:
* alpha.c (secondary_reload_class): Rename to:
(alpha_secondary_reload_class).
* alpha.h, alpha-protos.h: Likewise.
* mn10300.c (secondary_reload_class): Rename to:
(mn10300_secondary_reload_class).
* mn10300.h, mn10300-protos.h: Likewise.
* pa.c (secondary_reload_class): Rename to:
(pa_secondary_reload_class).
* pa.h, pa-protos.h: Likewise.
* rs6000.c (secondary_reload_class): Rename to:
rs6000_secondary_reload_class.
* rs6000.h, rs6000-protos.h: Likewise.
2005-11-22 Eric Botcazou <ebotcazou@adacore.com>
PR middle-end/22561
* tree-ssa-structalias.c (get_constraint_for): Handle ARRAY_RANGE_REF.
2005-11-22 Ian Lance Taylor <ian@airs.com>
* optabs.c (expand_unop): Call SCALAR_FLOAT_MODE_P on a mode, not
a mode_class.
(prepare_cmp_insn): Likewise.
2005-11-22 Kazu Hirata <kazu@codesourcery.com>
PR target/23435
* m68k.md (zero_extendsidi2): Force operands[1] to a register
if both operands[0] and operands[1] are memory.
2005-11-22 Andrew Pinski <pinskia@physics.uc.edu>
PR middle-end/23606
* fold-const.c (fold_unary) <case NOP_EXPR, CONVERT_EXPR>: For
COMPARISON_CLASS_P and an integral types create create a new
expression with the new type and fold that.
2005-11-22 Andrew Pinski <pinskia@physics.uc.edu>
PR target/24988
* config/rs6000/darwin.h (TARGET_OS_CPP_BUILTINS): Remove call
to SUBTARGET_OS_CPP_BUILTINS.
2005-11-22 Richard Earnshaw <richard.earnshaw@arm.com>
* arm.c (emit_set_insn): New function.
(arm_split_constant): Call it.
(arm_gen_compare_reg, arm_reload_in_hi, arm_reload_out_hi): Likewise.
(arm_legitimize_address): Likewise. Use plus_constant.
(arm_expand_prologue): Likewise. Use VOIDmode in SET.
(thumb_expand_prologue): Likewise.
(arm_gen_load_multiple): Use VOIDmode in SET.
(arm_gen_store_multiple): Likewise.
(vfp_emit_fstmx): Likewise. Use plus_constant.
(emit_multi_reg_push): Likewise.
(emit_sfm): Use plus_constant.
2005-11-23 Alan Modra <amodra@bigpond.net.au>
PR target/24954
* config/rs6000/predicates.md (easy_vector_constant_add_self): Fix
typo last change.
2005-11-22 Alan Modra <amodra@bigpond.net.au>
PR middle-end/24950
* expmed.c (store_bit_field): Don't attempt to insv a field
larger than the reg.
2005-11-22 Alan Modra <amodra@bigpond.net.au>
PR target/24954
* config/rs6000/predicated.md (easy_vector_constant_add_self): Use
explicit sign extension, not a (char) cast.
2005-11-22 Ben Elliston <bje@au.ibm.com>
* optabs.c: Use SCALAR_FLOAT_MODE_P instead of explicitly testing
GET_MODE_CLASS (x) == MODE_FLOAT.
* config/i386/i386.c: Likewise.
* config/rs6000/xcoff.h: Likewise.
* config/rs6000/linux64.h: Likewise.
* config/rs6000/rs6000.c: Likewise.
* config/rs6000/rs6000.h: Likewise.
* config/rs6000/predicates.md: Likewise.
* config/rs6000/sysv4.h: Likewise.
2005-11-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* c-cppbuiltin.c (c_cpp_builtins): Define __pic__ and __PIC__ when
flag_pic is set.
* config/alpha/freebsd.h, config/alpha/linux.h,
config/arm/linux-elf.h, config/bfin/bfin.h,
config/cris/linux.h, config/darwin.h, config/freebsd-spec.h,
config/i386/beos-elf.h, config/i386/gnu.h,
config/i386/linux.h, config/i386/linux64.h, config/i386/nto.h,
config/i386/sco5.h, config/m32r/m32r.h, config/m68k/linux.h,
config/m68k/m68k.h, config/mips/linux.h, config/pa/pa-linux.h,
config/rs6000/linux64.h, config/rs6000/sysv4.h,
config/rs6000/vxworks.h, config/s390/linux.h, config/s390/tpf.h,
config/sh/linux.h, config/sh/sh.h, config/sol2.h,
config/sparc/linux.h, config/sparc/linux64.h,
config/xtensa/xtensa.h: Don't define __pic__ or __PIC__.
* doc/invoke.texi: Document that the macros __pic__ and __PIC__
are both defined when either flag -fpic or -fPIC are used.
2005-11-22 Joseph S. Myers <joseph@codesourcery.com>
* config/fp-bit.c (clzusi): New function.
(si_to_float, usi_to_float): Use it to compute proper shift.
(usi_to_float): Preserve guard bits when shifting right.
* libgcc-std.ver (GCC_4.2.0): New version.
* libgcc2.c (__floatundixf, __floatunditf, __floatundidf,
__floatundisf): New functions.
* libgcc2.h (__floatundixf, __floatunditf, __floatundidf,
__floatundisf): Declare.
* mklibgcc.in (lib2funcs): Add _floatundidf, _floatundisf,
_floatundixf, and _floatunditf.
* optabs.c (expand_float): If target does not define a pattern for
signed or unsigned conversion, use an unsigned libcall instead of
a signed one.
(init_optabs): Initialize ufloat_optab.
2005-11-22 Joseph S. Myers <joseph@codesourcery.com>
* config/rs6000/rs6000.opt (mmulhw): New option.
* doc/invoke.texi (-mmulhw): Document.
* config/rs6000/rs6000.c (rs6000_override_options): Enable -mmulhw
for 405 and 440.
* config/rs6000/rs6000.md: Add half-word multiply and
multiply-accumulate instructions for 405 and 440.
2005-11-21 Joel Sherrill <joel.sherrill@oarcorp.com>
* config/arm/rtems-elf.h: Added definition of LINK_GCC_C_SEQUENCE_SPEC
which matches behavior of gcc 4.0 and older for RTEMS targets. The
default now includes a linker group which makes the RTEMS one nest.
2005-11-22 Ben Elliston <bje@au.ibm.com>
* cse.c (fold_rtx): Typo fix.
(find_comparison_args): Pass the mode of arg1, not arg1 itself.
2005-11-21 Richard Henderson <rth@redhat.com>
* c-common.c, config/darwin-c.c, c-decl.c, c-tree.h, c-objc-common.h,
langhooks-def.h, langhooks.h: Revert 2005-11-18 lookup_name patch.
* c-tree.h (lookup_name): Move declaration ...
* c-common.h (lookup_name): ... here.
* config/darwin-c.c: Include c-common.h.
* config/t-darwin: Update dependencies.
2005-11-22 Ben Elliston <bje@au.ibm.com>
* optabs.c (expand_abs_nojump): Use SCALAR_FLOAT_MODE_P instead of
explicitly testing GET_MODE_CLASS (x) == MODE_FLOAT.
* genopinit.c (gen_insn): Likewise.
* reload.c (find_equiv_reg): Likewise.
* loop.c (load_mems): Likewise.
* rtlanal.c (may_trap_p_1, canonicalize_condition): Likewise.
* cse.c (find_comparison_args, fold_rtx): Likewise.
* dwarf2out.c (add_const_value_attribute): Likewise.
* expr.c (convert_move): Likewise.
* recog.c (general_operand, register_operand): Likewise.
* reg-stack.c (replace_reg): Likewise.
* tree-vect-generic.c (type_for_widest_vector_mode): Likewise.
* c-common.c (handle_vector_size_attribute): Likewise.
* simplify-rtx.c (simplify_const_unary_operation): Likewise.
(simplify_binary_operation_1): Likewise.
(simplify_const_binary_operation): Likewise.
(simplify_relational_operation): Likewise.
(simplify_const_relational_operation): Likewise.
(simplify_immed_subreg): Likewise.
* emit-rtl.c (gen_lowpart_common): Likewise.
* expmed.c (expand_mult): Likewise.
* stor-layout.c (layout_type): Likewise.
2005-11-21 Paolo Bonzini <bonzini@gnu.org>
PR target/24951
* config/rs6000/rs6000.c (output_vec_const_move): Load cst and
cst2 only for SPE vectors.
2005-11-21 David Edelsohn <edelsohn@gnu.org>
PR target/24953
* config/rs6000/predicates.md (vrsave_operation): Check
UNSPEC_VOLATILE value.
2005-11-21 Jan Hubicka <jh@suse.cz>
PR tree-optimization/24653
* tree-ssa-ccp.c (ccp_fold): Strip down useless conversions.
2005-11-21 Uros Bizjak <uros@kss-loka.si>
* config/i386/predicates.md (ax_reg_operand): New predicate.
(memory_displacement_only_operand): New predicate.
* config/i386/i386.md ("modrm" attribute): Return 0 if one
operand is AX register and the other operand is memory operand
with displacement only.
2005-11-21 Uros Bizjak <uros@kss-loka.si>
* fold-const.c (fold_binary) <RDIV_EXPR>: Optimize A / A to 1.0
if we don't care about NaNs or Infinities.
2005-11-20 Ian Lance Taylor <ian@airs.com>
PR rtl-optimization/24883
* combine.c (combinable_i3pat): When checking whether the
destination of i3 is used in i3, consider paradoxical subregs.
2005-11-21 Kazu Hirata <kazu@codesourcery.com>
PR middle-end/20583
* cse.c (cse_insn): Reject invalid forms of CONST earlier.
2005-11-20 Joseph S. Myers <joseph@codesourcery.com>
* combine.c (try_combine): Do not run subst on i1src and i2src in
the case of generating a PARALLEL for a comparison.
2005-11-20 Richard Henderson <rth@redhat.com>
PR 24931
* tree-sra.c (struct sra_elt): Add all_no_warning.
(struct sra_walk_fns) <use>: Add use_all argument.
(sra_walk_expr): Pass it.
(sra_walk_modify_expr): Likewise.
(scalarize_ldst): Likewise.
(scan_use): Update for new argument.
(mark_no_warning): New.
(scalarize_use): Use it.
2005-11-20 Bernd Schmidt <bernd.schmidt@analog.com>
* expr.c (expand_expr_real): Use usmul_optab for widening
signed * unsigned multiplies.
* genopinit.c (optabs): Add usmul_widen_optab.
* optabs.c (init_optabs): Likewise.
* optabs.h (enum optab_index): Add OTI_usmul_widen.
(usmul_widen_optab): Define.
* config/bfin/bfin.md (usmulhisi3): New pattern.
* doc/md.texi (usmulqihi3, usmulhisi3, usmulsidi3): Document.
2005-11-20 Graham Stott <btinternet.com>
* gensupport.c (std_preds): Fixed extraneous `false` in last change.
2005-11-20 Andreas Schwab <schwab@suse.de>
PR target/24757
* config/ia64/ia64.c (ia64_expand_atomic_op): Fix condition of cmp
insn.
2005-11-19 Richard Henderson <rth@redhat.com>
PR tree-opt/24665
* tree-gimple.c (is_gimple_id): Export.
* tree-gimple.h (is_gimple_id): Declare.
* tree-ssa-ccp.c (ccp_decl_initial_min_invariant): New.
(get_default_value): Use it.
(maybe_fold_stmt_indirect): Likewise.
2005-11-19 James A. Morrison <phython@gcc.gnu.org>
* tree-vrp.c (compare_ranges): Return false for EQ_EXPR if VR0 is less
than VR1 or vice-versa.
2005-11-19 Hans-Peter Nilsson <hp@axis.com>
PR middle-end/24912
PR middle-end/24750
* reload.c (find_reloads_address_1): Mention dependency on
gen_reload.
* reload1.c (gen_reload): For IN with an unary operation, try
moving inner expression to OUT if trivial SET is not valid.
Confirm that the result is valid. Move common code block into...
(emit_insn_if_valid_for_reload): New function.
2005-11-19 Richard Guenther <rguenther@suse.de>
* fold-const.c (fold_indirect_ref_1): Make sure we fold
ARRAY_REFs of constant strings.
2005-11-19 Jakub Jelinek <jakub@redhat.com>
* gcc.c (version_compare_spec_function): Use '%s' rather than %qs in
fatal format string.
2005-11-19 Joseph S. Myers <joseph@codesourcery.com>
* combine.c (make_compound_operation): Swap operands of
commutative operation if necessary before returning.
2005-11-19 Richard Guenther <rguenther@suse.de>
PR middle-end/23294
* fold-const.c (fold_plusminus_mult_expr): New function.
(fold_binary): Use to canonicalize PLUS_EXPR and MINUS_EXPR
cases, remove now unnecessary code.
2005-11-19 Paolo Bonzini <bonzini@gcc.gnu.org>
* gensupport.c (old_preds): Rename to std_preds, add special field.
(struct old_pred_table): Rename to struct std_pred_table, add special
field.
(NUM_KNOWN_OLD_PREDS): Rename to NUM_KNOWN_STD_PREDS.
(NUM_OLD_SPECIAL_MODE_PREDS): Remove.
(init_predicate_table): Adjust, and set along the way whether a
predicate is special.
2005-11-18 Mark Mitchell <mark@codesourcery.com>
* BASE-VER: Change to 4.2.0.
2005-11-18 James E Wilson <wilson@specifix.com>
* builtins.c (fold_builtin_strstr): Pass s1 through fold_convert before
returning it.
2005-11-18 Mike Stump <mrs@apple.com>
* c-common.c (handle_cleanup_attribute): Use a lang hook for lookup_name.
* config/darwin-c.c (darwin_pragma_unused): Likewise.
* c-decl.c (lookup_name_two) Remove.
* c-tree.h (lookup_name_two): Remove.
* c-objc-common.h (LANG_HOOKS_LOOKUP_NAME): Add.
* langhooks-def.h (LANG_HOOKS_LOOKUP_NAME): Add.
(LANG_HOOKS_DECLS): Add initializer for LANG_HOOKS_LOOKUP_NAME.
* langhooks.h (lang_hooks_for_decls): Add lookup_name.
2005-11-18 Richard Earnshaw <richard.earnshaw@arm.com>
PR target/24914
* arm.c (arm_hard_regno_mode_ok): Co-processor registers aren't ok
when not generating code to use that co-processor.
2005-11-18 James A. Morrison <phython@gcc.gnu.org>
* tree-flow.h (reserve_phi_args_for_new_edge, create_phi_node,
add_phi_arg, remove_phi_args, remove_phi_node phi_reverse): Mention that
these functions are now in tree-phinodes.c.
2005-11-18 Jie Zhang <jie.zhang@analog.com>
* config/bfin/bfin.md (trap): New pattern.
2005-11-18 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
* tree-ssa-dom.c (extract_range_from_cond): Deal with variable bounds
on types.
* expr.c (expand_expr_real): Don't call record_block_change unless
ib_boundaries_block is non-null
* postreload.c (reload_cse_move2add): Don't try to work with BImode.
* fold-const.c (build_range_check): Use proper type for subtraction
when merging lower bound.
2005-11-18 Zdenek Dvorak <dvorakz@suse.cz>
PR rtl-optimization/24497
* loop-unroll.c (apply_opt_in_copies): Do not verify equality of
the copied insn.
2005-11-18 Zdenek Dvorak <dvorakz@suse.cz>
* tree-scalar-evolution.c (expression_expensive_p): New function.
(scev_const_prop): Use compute_overall_effect_of_inner_loop.
2005-11-18 Bernd Schmidt <bernd.schmidt@analog.com>
* config/bfin/crtlibid.s: New file.
2005-11-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
PR target/24348
* config.gcc (hppa*-*-hpux*): Add pa/t-slibgcc-elf-ver to tmake config
when not using sjlj exceptions.
* config/pa/pa64-hpux.h (LIB_SPEC): Add -lpthread in static links.
* config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
* config/pa/som.h (ASM_PREFERRED_EH_DATA_FORMAT): Delete define.
* config/pa/linux-unwind.h (pa32_fallback_frame_state): Use
DWARF_ALT_FRAME_RETURN_COLUMN instead of column 0 as return column.
* config/pa/pa-hpux.h (MD_UNWIND_SUPPORT): New define.
* config/pa/pa-linux.h (INCOMING_RETURN_ADDR_RTX,
DWARF_FRAME_RETURN_COLUMN, ASM_PREFERRED_EH_DATA_FORMAT,
ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Delete defines.
* config/pa/pa.h (ARG_POINTER_CFA_OFFSET): Delete.
(FRAME_POINTER_CFA_OFFSET, INCOMING_RETURN_ADDR_RTX,
DWARF_FRAME_RETURN_COLUMN, DWARF_ALT_FRAME_RETURN_COLUMN,
ASM_PREFERRED_EH_DATA_FORMAT, ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): New
defines.
* config/pa/hpux-unwind.h: New file.
2005-11-17 Alexandre Oliva <aoliva@redhat.com>
* config/rs6000/rs6000.h (ASM_OUTPUT_WEAKREF): Define.
* defaults.h (ASM_OUTPUT_WEAKREF): Add decl argument.
* varasm.c (do_assemble_alias): Adjust call.
(weak_finish): Don't use ASM_WEAKEN_LABEL if ASM_WEAKEN_DECL
is defined.
* doc/tm.texi (ASM_OUTPUT_WEAKREF): Document it.
2005-11-17 James E Wilson <wilson@specifix.com>
* tree.def (FUNCTION_DECL): Correct typo in comment.
2005-11-17 Richard Henderson <rth@redhat.com>
* dwarf2out.c (dw_cfi_oprnd_struct): Reduce dw_cfi_reg_num to int.
(lookup_cfa_1): Apply data alignment to DW_CFA_def_cfa_offset_sf
and DW_CFA_def_cfa_sf.
(def_cfa_1): Use DW_CFA_def_cfa_offset_sf with negative values.
(dbx_reg_number): Don't assert particular registers here.
(based_loc_descr): ... do it here instead. Fold in ...
(eliminate_reg_to_offset): ... this function.
(compute_frame_pointer_to_cfa_displacement): Fold in the effects
of eliminate_reg_to_offset; use FRAME_POINTER_CFA_OFFSET.
* unwind-dw2.c (execute_cfa_program): Apply data align factor
to DW_CFA_def_cfa_offset_sf and DW_CFA_def_cfa_sf.
* function.c (instantiate_new_reg): Use FRAME_POINTER_CFA_OFFSET.
(instantiate_virtual_regs): Likewise.
* var-tracking.c (adjust_stack_reference): Likewise.
* doc/tm.texi (FRAME_POINTER_CFA_OFFSET): New.
2005-11-17 Bernd Schmidt <bernd.schmidt@analog.com>
* config/bfin/elf.h (STARTFILE_SPEC): Add "crtlibid%O%s"
* config/bfin/uclinux.h (STARFILE_SPEC): Likewise.
* config/bfin/t-bfin-elf (EXTRA_PARTS, EXTRA_MULTILIB_PARTS): Add
crtlibid.o.
($(T)crtlibid.o): New rule.
2005-11-16 Richard Guenther <rguenther@suse.de>
PR middle-end/24851
* fold-const.c (extract_array_ref): Return byte offset
in all cases.
(fold_binary): Fold &x[a] CMP &x[b] to
a*sizeof(*x) CMP b*sizeof(*x) to get correct overflow
behavior.
2005-11-16 Richard Henderson <rth@redhat.com>
PR middle-end/23497
* tree-ssa.c (warn_uninitialized_var): Skip real and imaginary
parts of an SSA_NAME.
2005-11-16 Richard Earnshaw <richard.earnshaw@arm.com>
PR target/24861
* arm.md (split for movsf with immediate): Restrict split to insns
that set a general register.
2005-11-16 Daniel Jacobowitz <dan@codesourcery.com>
* config/ia64/unwind-ia64.c (uw_advance_context): New. Call
uw_update_context.
* unwind-dw2.c (uw_advance_context): Likewise.
* unwind-sjlj.c (uw_advance_context): Likewise. Also call
_Unwind_SjLj_Unregister.
* unwind.inc (_Unwind_ForcedUnwind_Phase2): Call uw_advance_context.
2005-11-16 Daniel Jacobowitz <dan@codesourcery.com>
* unwind-sjlj.c (_Unwind_GetCFA): Handle the builtin_setjmp case.
2005-11-16 Eric Botcazou <ebotcazou@adacore.com>
* config/alpha/alpha.c (alpha_init_builtins): Use type_for_mode
langhook to get a DImode integer type.
2005-11-16 Richard Henderson <rth@redhat.com>
J"orn Rennecke <joern.rennecke@st.com>
Ulrich Weigand <uweigand@de.ibm.com>
PR rtl-opt/24160
PR target/24621
* reload1.c (reg_equiv_invariant): New.
(reload): Allocate, initialize, and free it.
(calculate_needs_all_insns): Check it when skipping equivalence
setting insns.
(alter_reg): Likewise.
(eliminate_regs_1): Rename from eliminate_regs. Add new
may_use_invariant argument; only use reg_equiv_invariant when true.
(eliminate_regs): New.
(eliminate_regs_in_insn): Use eliminate_regs_1; track when we're in
a context for which may_use_invariant may be true.
2005-11-16 Eric Botcazou <ebotcazou@adacore.com>
* fold-const.c (const_binop): Don't constant fold the operation
if the result has overflowed and flag_trapping_math.
* simplify-rtx.c (simplify_const_binary_operation): Likewise.
2005-11-16 Daniel Jacobowitz <dan@codesourcery.com>
* config/arm/unwind-arm.c (abort): Add prototype here.
(UCB_FORCED_STOP_ARG): Correct typo in macro argument.
(struct phase1_vrs): Add prev_sp.
(unwind_phase2_forced): Save the original core registers instead of
modifying entry_vrs. Take a new flag argument for resuming unwinding
and set action flags accordingly. Always set _US_END_OF_STACK when
get_eit_entry fails. Unwind before calling the stop function.
(_Unwind_GetCFA): New function.
(__gnu_Unwind_ForcedUnwind): Update call to unwind_phase2_forced.
(__gnu_Unwind_Resume_or_Rethrow): Likewise.
(__gnu_Unwind_Resume): Do not unwind here for forced unwinding;
just call unwind_phase2_forced.
(_Unwind_GetDataRelBase, _Unwind_GetTextRelBase): Move to here.
* config/arm/unwind-arm.h (abort): Remove prototype.
(_Unwind_GetDataRelBase, _Unwind_GetTextRelBase): Change to
prototypes.
(_Unwind_GetCFA): New prototype.
* config/arm/pr-support.c (abort): Add prototype here.
* unwind-c.c (PERSONALITY_FUNCTION) [__ARM_EABI_UNWINDER__]: Handle
forced unwinding.
* config/arm/arm.c (arm_expand_prologue, thumb_expand_prologue): Do
not schedule the prologue with non-call exceptions and EABI.
2005-11-16 Nathan Sidwell <nathan@codesourcery.com>
* config/arm/unwind-arm.h: Reorder interface function declarations.
(_URC_END_OF_STACK): New enumeration value.
(_US_UNWIND_ACTION_MASK, _US_FORCE_UNWIND, _US_END_OF_STACK): Likewise.
(struct _Unwind_Control_Block): Document reserved field use.
(_Unwind_Stop_Fn): New typedef.
(_Unwind_ForcedUnwind): Declare.
(_Unwind_Resume_or_Rethrow): Declare.
* config/arm/libunwind.S (UNWIND_WRAPER): Add nargs
argument. Adjust.
(_Unwind_Resume_or_Rethrow, _Unwind_ForcedUnwind): New.
* config/arm/unwind-arm.c (UCB_FORCED_STOP_FN)
(UCB_FORCED_STOP_ARG): New.
(search_EIT_table): Update boundary condition checks.
(get_eit_entry): Return _URC_END_OF_STACK when cannot unwind.
(unwind_phase2): Replace for with do..while.
(unwind_phase2_forced): New.
(__gnu_Unwind_RaiseException): Replace for with do..while.
(__gnu_Unwind_ForcedUnwind): New.
(__gnu_Unwind_Resume): Set FORCE_UNWIND flag, if forced unwinding.
Use appropriate phase2 unwinder.
(__gnu_Unwind_Resume_or_Rethrow): New.
(__gnu_unwind_pr_common): Cope with forced unwinding.
2005-11-16 David Edelsohn <edelsohn@gnu.org>
PR target/24772
* config/rs6000/predicates.md (vrsave_operation): SET_SRC is a VEC.
* config/rs6000/rs6000.md (btruncsf2, ceilsf2, floorsf2,
roundsf2): Remove "s" from mnemonic.
2005-11-16 Bernd Schmidt <bernd.schmidt@analog.com>
* config/bfin/crti.s (__init, __fini): Use appropriate prologue if
__PIC__ is defined.
* config/bfin/crtn.s: Change epilogues to match.
* config/bfin/t-bfin-elf (EXTRA_MULTILIB_PARTS): Define.
* config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): If flag_pic, define
__PIC__ and __pic__.
2005-11-16 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
PR 24357
* doc/invoke.texi: Distinguish between free and fixed form instead of
Fortran and Fortran 90/95. Remove ratfor from the list of supported
languages.
* gcc.c (default_compilers): Remove double entries, add entries for
suffixes '.F90' and '.F95'.
2005-11-16 Eric Botcazou <ebotcazou@adacore.com>
* config/alpha/alpha.c (alpha_expand_prologue): Fix off-by-one bug
in the stack probing loop.
2005-11-15 David Edelsohn <edelsohn@gnu.org>
* configure.ac: Use .machine power5 not power5x.
* configure: Regenerate.
2005-11-15 Mike Stump <mrs@apple.com>
* c-decl.c (lookup_name_two): Add.
* c-tree.h (lookup_name_two): Likewise.
* c-common.c (handle_cleanup_attribute): Use lookup_name_two instead.
* config/darwin-c.c (darwin_pragma_unused): Likewise.
2005-11-16 Alan Modra <amodra@bigpond.net.au>
PR rtl-optimization/23392
* regrename.c (enum scan_actions) Add mark_access.
(scan_actions_name): Ditto.
(scan_rtx_reg): Handle mark_access.
(scan_rtx_address): Do nothing for mark_access.
(build_def_use): Mark source registers in REG_FRAME_RELATED_EXPR
and regs in REG_INC notes before closing chains for dead regs.
Mark destination regs in REG_FRAME_RELATED_EXPR notes after
opening chains for new writes.
2005-11-15 David Edelsohn <edelsohn@gnu.org>
* c.opt (ffixed-line-length-none): New.
2005-11-15 Steve Ellcey <sje@cup.hp.com>
* mklibgcc.in: Change contents of eh_dummy.c.
2005-11-15 Daniel Jacobowitz <dan@codesourcery.com>
* loop.c (scan_loop): Do not insert temporaries for hard registers.
2005-11-15 Daniel Jacobowitz <dan@codesourcery.com>
* config/arm/lib1funcs.asm (div0) [L_dvmd_lnx]: Call raise instead
of making syscalls.
* config/arm/linux-eabi.h (CLEAR_INSN_CACHE): Define. Set r7 also.
2005-11-15 Jan Hubicka <jh@suse.cz>
* invoke.texi (large-unit-insns): Document.
* ipa-inline.c (cgraph_decide_inlining): Use large-unit-insns param.
* params.def (large-unit-insns): New param.
2005-11-15 Hans-Peter Nilsson <hp@axis.com>
PR target/24869
* config/cris/cris.md ("*mov_sidesisf_mem"): Do not match
special register for operand 3. Reindent constraints to align
them vertically.
2005-11-14 David Edelsohn <edelsohn@gnu.org>
* doc/invoke.texi (RS/6000 and PowerPC Options): Add -mmfcrf,
-mpopcntb, -mfprnd. Add -mcpu=power5+.
* configure.ac: Add test for FP rounding instructions.
* configure: Regenerate.
* config.in: Regenerate.
* config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
_ARCH_PPCSQ, _ARCH_PPCGR, _ARCH_PWR4, _ARCH_PWR5, _ARCH_PWR5X if
features enabled.
* config/rs6000/rs6000.opt (mfprnd): New.
* config/rs6000/rs6000.c (processor_target_table): Add power5+.
(POWERPC_MASKS): Add MASK_POPCNTB and MASK_FPRND.
* config/rs6000/aix52.h (ASM_CPU_SPEC): Add -mpower5+.
* config/rs6000/rs6000.h (ASM_CPU_SPEC): Add -mpower5+.
(TARGET_FPRND): New.
* config/rs6000/rs6000.md (UNSPEC_FRIM, UNSPEC_FRIN, UNSPEC_FRIP,
UNSPEC_FRIZ): New.
(btrunc<mode>2): New.
(ceil<mode>2): New.
(floor<mode>2): New.
(round<mode>2): New.
2005-11-14 Geoffrey Keating <geoffk@apple.com>
* gcc.c (version_compare_spec_function): Use fatal() rather than
abort().
* config/rs6000/darwin.h (DARWIN_CRT2_SPEC): New.
(SUBTARGET_EXTRA_SPECS): Define %(darwin_crt2).
* config/i386/darwin.h (SUBTARGET_EXTRA_SPECS): Define %(darwin_crt2)
as empty.
* config/darwin.h (STARTFILE_SPEC): Use %(darwin_crt2) to possibly
link in crt2.o.
* config/darwin.h (REAL_LIBGCC_SPEC): Link in shared libgcc depending
on -mmacosx-version-min setting.
2005-11-14 Diego Novillo <dnovillo@redhat.com>
PR 24840
* tree-vrp.c (infer_value_range): Return false if STMT is a
block terminator and its basic block has no successors.
2005-11-14 Mike Stump <mrs@apple.com>
* config/i386/i386.c (override_options): -masm=intel isn't
supported on darwin.
* doc/invoke.texi (i386 and x86-64 Options): Likewise.
2005-11-15 Joseph S. Myers <joseph@codesourcery.com>
* crtstuff.c: Undefine gid_t, pid_t, rlim_t, ssize_t, uid_t and
vfork after including auto-host.h.
2005-11-15 Alan Modra <amodra@bigpond.net.au>
PR rtl-optimization/22002
* combine.c (distribute_notes): Detect cases where a reg dies
two or more times in a bb, including on the insn we are combining,
and place the death note on the correct range.
2005-11-14 Dale Johannesen <dalej@apple.com>
* expmed.c (store_bit_field): Add offset unconditionally for
memory targets.
(extract_bit_field): Don't force extzv or extv operand into
a register if field is too big.
2005-11-14 Daniel Jacobowitz <dan@codesourcery.com>
* config/arm/arm.c (pic_labelno): New.
(arm_load_pic_register): Use an UNSPEC_PIC_LABEL instead of a
LABEL_REF. Pass only the labelno to PIC insns.
(arm_call_tls_get_addr, legitimize_tls_address): Likewise.
(arm_output_addr_const_extra): Handle UNSPEC_PIC_LABEL.
* arm.md (UNSPEC_PIC_LABEL): New constant.
(pic_add_dot_plus_four, pic_add_dot_plus_eight)
(tls_load_dot_plus_eight): Expect a labelno instead of a LABEL_REF.
Use the correct label prefix.
2005-11-14 Daniel Jacobowitz <dan@codesourcery.com>
* config/arm/arm.c (legitimize_tls_address): Use correct rtx for
REQ_EQUIV note.
2005-11-14 Richard Earnshaw <richard.earnshaw@arm.com>
* loop-invariant.c: Include tm_p.h.
* Makefile.in: Updated.
2005-11-13 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
* pa.c (store_reg): Revise generation of frame notes in large frames.
(set_reg_plus_d): Likewise.
2005-11-13 Andrew MacLeod <amacleod@redhat.com>
PR tree-optimization/24709
* tree-ssa-operands.c (verify_imm_links): Increase limit for infinite
loop check.
2005-11-13 Eric Botcazou <ebotcazou@libertysurf.fr>
* gthr-posix95.h: Remove declaration of pthread_mutexattr_settype
and duplicate declaration of pthread_self.
2005-11-13 Eric Botcazou <ebotcazou@adacore.com>
Ian Lance Taylor <ian@airs.com>
PR middle-end/24003
* calls.c (expand_call): If TARGET is a MEM and some part of the
argument area has been saved, force TARGET to a register.
2005-11-13 Razya Ladelsky <razya@il.ibm.com>
* ipa-prop.c (ipa_callsite_compute_param ): Removed obsolete type
checking.
2005-11-13 Jason Merrill <jason@redhat.com>
PR c++/22489
* dwarf2out.c (gen_subprogram_die): Force a declaration die for
lazily declared methods.
(force_decl_die): Stop if forcing out the context already make a
DIE for the decl.
(force_type_die): Likewise.
2005-11-13 Andrew Pinski <pinskia@physics.uc.edu>
PR middle-end/24820
* builtins.c (integer_valued_real_p): Add break in
REAL_CST having TREE_OVERFLOW set.
2005-11-13 Zdenek Dvorak <dvorakz@suse.cz>
* tree-ssa-loop-ivopts.c (get_address_cost): Prevent splitting
addressing modes during calculation of costs.
2005-11-12 Eric Botcazou <ebotcazou@adacore.com>
* function.c (assign_stack_local_1): Restrict sanity check
on frame size overflow to 32-bit and above platforms.
2005-11-12 Hans-Peter Nilsson <hp@axis.com>
* config/cris/cris.h (LEGITIMIZE_RELOAD_ADDRESS): Define.
* config/cris/cris.c: Include reload.h.
(cris_initial_elimination_offset): New function.
* config/cris/cris-protos.h: (cris_initial_elimination_offset):
Prototype.
2005-11-12 Richard Guenther <rguenther@suse.de>
* gcse.c (find_rtx_in_ldst): Handle NULL pre_ldst_table.
2005-11-12 Jan Hubicka <jh@suse.cz>
* expr.c (expand_expr_real_1): <MAX_EXPR, MIN_EXPR>: Canonicalize
to compare against 0 when possible.
2005-11-12 Jie Zhang <jie.zhang@analog.com>
* config/bfin/bfin.h (REGISTER_NAMES, SHORT_REGISTER_NAMES,
HIGH_REGISTER_NAMES, FIXED_REGISTERS, CALL_USED_REGISTERS,
REG_ALLOC_ORDER, enum reg_class): Rearrange I/B/L registers.
* config/bfin/bfin.md: Redefine REG_ constants for I/B/L registers
in the new order.
2005-11-12 Hans-Peter Nilsson <hp@axis.com>
* recog.c (constrain_operands) <case 'g'>: For a match, require
that a non-register matches general_operand when strict >= 0.
2005-11-11 Steven Bosscher <stevenb@suse.de>
* loop-invariant.c (move_loop_invariants): Fix a thinko in the
previous checkin.
2005-11-11 Daniel Jacobowitz <dan@codesourcery.com>
* tree-ssa-dse.c (struct address_walk_data, memory_ssa_name_same)
(memory_address_same): New.
(dse_optimize_stmt): Call memory_address_same.
2005-11-12 Hans-Peter Nilsson <hp@axis.com>
PR middle-end/24750
* reload.c (find_reloads_address_1) <case TRUNCATE, SIGN_EXTEND,
ZERO_EXTEND>: New cases.
2005-11-11 Daniel Jacobowitz <dan@codesourcery.com>
* longlong.h (__clz_tab): Always provide.
2005-11-11 Steven Bosscher <stevenb@suse.de>
PR 24265
* loop-invariant.c (may_assign_reg_p): Make sure a hard register
can be assigned to.
(find_invariant_insn): Do the cheapest check, may_assign_reg_p,
before check_maybe_invariant.
(move_invariant_reg): Use gen_move_insn instead of replacing
SET_DEST with the temporary for the invariant.
(move_loop_invariants): If checking is enabled, do internal
consistency checks after completing the pass.
2005-11-11 David Edelsohn <edelsohn@gnu.org>
PR 24644
* common.opt (Wvolatile-register-var): New.
* varasm.c (make_decl_rtl): Only emit warning when option
specified. Clarify warning message.
* doc/invoke.texi (Wvolatile-register-var): Document new option.
* doc/md.texi (copysign): Document standard named pattern.
2005-11-11 Jie Zhang <jie.zhang@analog.com>
* config/bfin/bfin.c (bfin_expand_strmov): Correctly move the trailing
bytes when align is 2.
* config/bfin/bfin.md (rep_movsi, rep_movhi): Make LSETUP be followed
by the first instruction of the loop.
2005-11-11 Jason Merrill <jason@redhat.com>
PR c++/24686
* gimplify.c (gimplify_cleanup_point_expr): Also save and restore
the cleanup list.
2005-11-11 Zdenek Dvorak <dvorakz@suse.cz>
PR rtl-optimization/22509
* local-alloc.c (memref_used_between_p): Check whether a function call
could not reference the memref.
2005-11-11 Ulrich Weigand <uweigand@de.ibm.com>
* postreload.c (reload_cse_simplify_operands): Fix bug in sorting
algorithm so as to choose the best, not the worst, alternative.
Reset accumulated register class before processing next alternative.
2005-11-11 Kaz Kojima <kkojima@gcc.gnu.org>
PR target/24445
* calls.c (expand_call): Copy a return value to a plain register
if needed.
2005-11-10 Alexandre Oliva <aoliva@redhat.com>
PR target/24778
* varasm.c (assemble_name): Recompute name only for transparent
aliases.
2005-11-10 Hans-Peter Nilsson <hp@axis.com>
* tree-ssa-structalias.c (heapvar_lookup): Fix typo: stmt to from.
2005-11-04 Jeff Law <law@redhat.com>
PR middle-end/23181
* tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Do not
perform reassociation if the parent statement will not die as
a result of the optimization.
2005-11-10 Daniel Berlin <dberlin@dberlin.org>
* tree-ssa-alias.c (compute_may_aliases): Remove call to
delete_old_heap_vars.
* tree-dfa.c (referenced_var_remove): Remove function.
* tree-ssa.c (init_tree_ssa): Call init_alias_heapvars.
(delete_tree_ssa): Remove call to delete_old_heapvars.
Add call to delete_alias_heapvars.
* tree-flow.h (referenced_var_remove): Remove prototype
(init_alias_heapvars): New prototype.
(delete_alias_heapvars): Ditto.
* Makefile.in (tree-ssa-structalias.o): Add
gt-tree-ssa-structalias.o
(GTFILES): Add tree-ssa-structalias.h and
tree-ssa-structalias.c.
(s-gtype): Add gt-tree-ssa-structalias.h.
* tree-ssa-structalias.c (heapvars): Remove.
(oldheapvars): Remove.
(heapvar_for_stmt): New variable.
(heapvar_lookup): New function.
(heapvar_insert): Ditto.
(get_constraint_for): See if we have an old heapvar
to reuse.
(init_alias_heapvars): New function.
(delete_alias_heapvars): Ditto.
Add include of gt-tree-ssa-structalias.h.
2005-11-10 Eric Botcazou <ebotcazou@libertysurf.fr>
PR middle-end/22127
* calls.c (special_function_p): Set ECF_RETURNS_TWICE for getcontext.
2005-11-10 Eric Botcazou <ebotcazou@adacore.com>
* tree.c (int_fits_type_p): Only look at the base type
if it has the same precision as the original type.
2005-11-10 Jakub Jelinek <jakub@redhat.com>
PR other/4372
* varasm.c (assemble_alias): Use %q+D in the error
message instead of %J and %qD.
2005-11-10 Richard Guenther <rguenther@suse.de>
* gcse.c (free_ldst_entry): Only free hashtable if
it exists.
2005-11-09 Eric Botcazou <ebotcazou@adacore.com>
* function.c (assign_stack_local_1): Issue an error message if
the frame size overflows in the signed target arithmetics.
2005-11-09 Eric Botcazou <ebotcazou@adacore.com>
* tree.c (build_qualified_type): Chain the new type to the original
type's TYPE_NEXT_PTR_TO or TYPE_NEXT_REF_TO linked lists if it is
a POINTER_TYPE or a REFERENCE_TYPE respectively.
(build_pointer_type_for_mode): Only return unqualified types.
(build_reference_type_for_mode): Likewise.
2005-11-09 Jakub Jelinek <jakub@redhat.com>
* Makefile.in (gnucompare): Do comparison of all files using one of
the chosen methods and only afterwards decide if just warning should
be issued or comparison failure raised.
2005-11-09 Eric Botcazou <ebotcazou@adacore.com>
* ifcvt.c (noce_get_alt_condition): Use prev_nonnote_insn.
(noce_try_abs): Negate if the comparison is reversed.
Look only one instruction backwards for a REG_EQUAL note.
2005-11-09 Alexandre Oliva <aoliva@redhat.com>
PR other/4372
* gthr-dce.h, gthr-posix.h, gthr-posix95.h, gthr-solaris.h,
gthr-tpf.h: Define __gthrw. For all identifiers that might
be weak, introduce weakrefs or non-weak aliases with __gthrw,
and prefix all uses with __ghtrw.
2005-11-09 Alexandre Oliva <aoliva@redhat.com>
PR other/4372
* tree.h (IDENTIFIER_TRANSPARENT_ALIAS): New.
(TREE_DEPRECATED): Adjust comment. Check for a DECL.
* c-common.c (handle_weakref_attribute): New.
(c_common_attribute_table): Add weakref.
* configure.ac (HAVE_GAS_WEAKREF): Check for weakref support
in the assembler.
* configure, config.in: Rebuilt.
* defaults.h (ASM_OUTPUT_WEAKREF): Define if HAVE_GAS_WEAKREF.
* doc/extend.texi: Document weakref attribute.
* varasm.c (ultimate_transparent_alias_target): New
(assemble_name): Use it.
(weak_finish_1): Split out of...
(weak_finish): ... and deal with weakrefs in...
(weakref_targets): ... new list.
(globalize_decl): Clean up weakref_targets.
(do_assemble_alias): Handle weakrefs.
(finish_aliases_1): Do not reject weakrefs to external symbols.
(assemble_alias): Handle weakrefs.
2005-11-09 Richard Guenther <rguenther@suse.de>
PR tree-optimization/24716
* tree-scalar-evolution.c (analyze_evolution_in_loop): Use
t_bool to track results from follow_ssa_edge.
2005-11-09 Eric Botcazou <ebotcazou@adacore.com>
* final.c (force_source_line): New global variable.
(final_scan_insn): Set it to true instead of clearing last_filename.
(notice_source_line): Return true if force_source_line is true,
unless source info is absent.
2005-11-09 Andrew Pinski <pinskia@physics.uc.edu>
PR c/24644
* dwarf2-out.c (add_name_and_src_coords_attributes): Don't add
a linkage name for a variable if it a register variable.
* c-decl.c (grokdeclarator): Global register variables
should be set as PUBLIC.
2005-11-09 Andreas Krebbel <krebbel1@de.ibm.com>
PR 24624
* config/s390/s390.c (struct s390_frame_layout): New fields
first_save_gpr_slot and last_save_gpr_slot.
(cfun_grps_save_area_size, s390_frame_info, s390_emit_prologue,
s390_emit_epilogue, s390_initial_elimination_offset): Replaced
first_save_gpr and last_save_gpr with the _slot variants.
(s390_register_info): Calculate first_save_gpr_slot and
last_save_gpr_slot using regs_ever_live.
2005-11-09 Andreas Krebbel <krebbel1@de.ibm.com>
PR 24623
* config/s390/s390.c (s390_regs_ever_clobbered): Only save live eh regs
for a function containing a landing pad.
2005-11-09 Andreas Krebbel <krebbel1@de.ibm.com>
PR 24034
* flow.c (mark_set_1): Handle CLOBBERs like SETs if the register
is live afterwards.
2005-11-08 Bernd Schmidt <bernd.schmidt@analog.com>
* config/bfin/t-bfin-elf (MULTILIB_OPTIONS, MULTILIB_DEFAULTS,
MULTILIB_DIRNAMES, MULTILIB_EXCEPTIONS): New.
2005-11-09 Nathan Sidwell <nathan@codesourcery.com>
Add ms2 support
* config/ms1/ms1.md (UNSPEC_BLOCKAGE, UNSPEC_EI, UNSPEC_DI): New
constants.
(call,load,store): New insn types.
(mem_access, branch_access): Adjust reservation conditions.
(define_delay): Adjust condition.
(decrement_and_branch_until_zero): Allow for ms2. Set branch
type.
(*decrement_and_rbanch_until_zero_no_clobber): Allow for ms2.
(*movqi_internal,*movsi_internal,*movsf_internal): Use load,store
insn type.
(call_internal, call_value_internal, return_internal,
return_interrupt_internal, eh_return_internal, indirect_jump,
tablejump): Set call insn type.
(blockage, ei, di): Use appropriate unspec const.
* config/ms1/ms1.c (ms1_flag_delayed_branch): New.
(ms1_get_attr_type): Adjust to give load & store types.
(ms1_final_prescan_insn): Adjust for new insn types. Don't look
backwards past a barrier.
(ms1_override_options): Accept ms2 arch. Copy and reset delayed
branch scheduling.
(struct branch_info, struct label_info): New.
(ms1_labels): New.
(ms1_add_branches, ms1_check_delay_slot, ms1_reorg_hazard): New.
(ms1_machine_reorg): New.
(TARGET_MACHINE_DEPENDENT_REORG): Override.
* config/ms1/crtn.asm: Add nop for ms2 JAL hazard.
* config/ms1/ms1.h (processor_type): Add PROCESSOR_MS2.
(ASM_SPEC, LIB_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Add ms2.
(TARGET_MS2): New.
2005-11-09 Per Bothner <per@bothner.com>
Uros Bizjak <uros@kss-loka.si>
PR c/24101
* toplev.c (process_options): Initialize debug_hooks early
in case lang_hooks.post_options ends up calling a debug_hook.
2005-11-08 Jakub Jelinek <jakub@redhat.com>
* dwarf2out.c (multiple_reg_loc_descriptor): Don't assume
DBX_REGISTER_NUMBER being contiguous.
2005-11-08 James A. Morrison <phython@gcc.gnu.org>
Diego Novillo <dnovillo@redhat.com>
PR 23046
* tree-vrp.c (register_edge_assert_for): Do not register
always-false predicates.
2005-11-08 Devang Patel <dpatel@apple.com>
PR tree-optimization/23115
* tree-if-conv.c (find_phi_replacement_condition): Check domninated_by
relation.
2005-11-08 Joseph S. Myers <joseph@codesourcery.com>
* config/rs6000/t-fprules (MULTILIB_MATCHES_FLOAT): Include
-mcpu=440.
2005-11-08 Daniel Berlin <dberlin@dberlin.org>
Fix PR tree-optimization/23382
* tree-ssa-alias.c (compute_may_aliases): Call
delete_old_heap_vars.
* tree-dfa.c (referenced_var_remove): New function.
* tree-ssa.c (delete_tree_ssa): Call delete_old_heap_vars.
* tree-flow.h (referenced_var_remove): Add prototype.
(delete_old_heap_vars): Ditto.
* tree-ssa-structalias.c (heapvars): New variable.
(oldheapvars): Ditto.
(get_constraint_for): Put heap vars on heapvars list.
(delete_old_heap_vars): New function.
2005-11-08 Jason Merrill <jason@redhat.com>
* tree.h (CALL_FROM_THUNK_P): Add CALL_EXPR_CHECK.
2005-11-08 Uros Bizjak <uros@kss-loka.si>
PR target/19340
* reg-stack.c (reg_to_stack): Update register liveness also
for flag_sched2_use_traces.
2005-11-08 Alan Modra <amodra@bigpond.net.au>
PR target/23704
* config/rs6000/rs6000.c (rs6000_handle_option <OPT_m64>): Don't
override prior explicit -mno-powerpc-gfxopt.
2005-11-07 Eric Botcazou <ebotcazou@adacore.com>
* expmed.c (extract_bit_field): Do not use insv/extv/extzv patterns
if the bitsize is zero.
* doc/md.texi (Standard Pattern Names): Document it.
* config/ia64/ia64.c (ia64_pass_by_reference): Delete.
(TARGET_PASS_BY_REFERENCE): Likewise.
2005-11-07 Ian Lance Taylor <ian@airs.com>
PR rtl-optimization/24683
* config/i386/i386.c (legitimize_pic_address): If constant operand
to PLUS is too large, put it in a register.
2005-11-07 Jie Zhang <jie.zhang@analog.com>
* configure.ac: Enable checking assembler dwarf2 support for bfin
target.
* configure: Regenerate.
2005-11-07 Paolo Bonzini <bonzini@gnu.org>
PR target/24230
* config/rs6000/rs6000.c (easy_vector_splat_const, easy_vector_same,
gen_easy_vector_constant_add_self): Delete.
(vspltis_constant, easy_altivec_constant, gen_easy_altivec_constant):
New.
(output_vec_const_move): Use gen_easy_altivec_constant.
(rs6000_expand_vector_init): Do not emit a set of a VEC_DUPLICATE.
* config/rs6000/predicates.md (easy_vector_constant): Reorganize tests.
(easy_vector_constant_add_self): Rewritten.
* config/rs6000/rs6000-protos.h (easy_vector_splat_const,
easy_vector_same, gen_easy_vector_constant_add_self): Remove prototype.
(easy_altivec_constant, gen_easy_altivec_constant): Add prototype.
* config/rs6000/altivec.md (easy_vector_constant_add_self splitters):
Macroize and adjust for the other changes.
2005-11-07 Paolo Bonzini <bonzini@gnu.org>
PR c/24599
* c-typeck.c (build_c_cast): Try using a shared constant, and see
if TREE_OVERFLOW or TREE_CONSTANT_OVERFLOW really changed.
2005-11-07 Jakub Jelinek <jakub@redhat.com>
PR rtl-optimization/23567
* ifcvt.c (noce_mem_write_may_trap_or_fault_p): New function.
(noce_process_if_block): Don't do any optimizations except
if (cond) x = x; if !set_b and write into orig_x may trap
or fault. Remove the MEM_READONLY_P check.
2005-11-06 Diego Novillo <dnovillo@redhat.com>
PR 24670
* tree-vrp.c (fix_equivalence_set): New.
(extract_range_from_assert): Call it.
2005-11-05 Ian Lance Taylor <ian@airs.com>
PR target/22432
* combine.c (apply_distributive_law): Don't distribute across a
vector mode subreg.
2005-11-05 Kazu Hirata <kazu@codesourcery.com>
* c-typeck.c, config/i386/netware.h, config/m32c/cond.md,
config/ms1/ms1.h, config/rs6000/predicates.md,
config/s390/s390.c, params.def, postreload-gcse.c,
tree-flow-inline.h, tree-ssa-operands.c, tree-vectorizer.c,
tree-vrp.c, tree.c: Fix comment typos.
* doc/invoke.texi: Fix typos.
2005-11-05 Sebastian Pop <pop@cri.ensmp.fr>
* lambda-code.c (lambda_transform_legal_p): Use DDR_NUM_DIST_VECTS
for testing whether the data_dependence_relation contains distance
vectors. Iterate over all distance vectors of the ddr.
* lambda.h: Define a vec of lambda_vector pointers.
* tree-data-ref.c (dump_data_dependence_relation,
dump_data_dependence_direction): Iterate over all distance and
direction vectors of the ddr.
(initialize_data_dependence_relation): Initialize DDR_DIR_VECTS and
DDR_DIST_VECTS.
(build_classic_dist_vector, build_classic_dir_vector): Push a set
of distance/direction vectors instead of a single one.
* tree-data-ref.h (dir_vects, dist_vects): Replace dir/dist
lambda_vectors with a vec of lambda_vectors.
(DDR_DIR_VECT, DDR_DIST_VECT): Redefined as operations on vec.
(DDR_DIR_VECTS, DDR_DIST_VECTS, DDR_NUM_DIR_VECTS,
DDR_NUM_DIST_VECTS): New.
* tree-loop-linear.c (gather_interchange_stats): Test for the
existence of distance vectors only after having checked that there
is a dependence. Iterate over all distance vectors of the ddr.
(linear_transform_loops): Use dump_data_dependence_relation.
* tree-vect-analyze.c (vect_analyze_data_ref_dependence): Test for
distance vectors using DDR_NUM_DIST_VECTS. Iterate over all the
distance vectors of the ddr.
2005-11-05 Bernd Schmidt <bernd.schmidt@analog.com>
* config/bfin/bfin.c (n_dregs_to_save, n_pregs_to_save,
expand_prologue_reg_save, expand_epilogue_reg_restore): New argument
IS_INTHANDLER; all callers changed.
(n_regs_saved_by_prologue): Take interrupt handler attributes into
account.
(do_link, do_unlink): New argument ALL; all callers changed.
(expand_interrupt_handler_prologue, expand_interrupt_handler_epilogue):
If function isn't leaf, save and restore all registers.
(bfin_function_ok_for_sibcall): Only true if not an interrupt or
exception handler.
2005-11-05 Jan Hubicka <jh@suse.cz>
PR rtl-optimization/23490
* doc/invoke.texi (max-predicted-iterations, max-cse-insns,
max-flow-memory-location): Document.
* flow.c: Include params.h
(MAX_MEM_SET_LIST_LEN): Kill.
(add_to_mem_set_list): Use new param.
* cse.c (cse_basic_block): Replace 1000 by new param.
* params.def (PARAM_MAX_PREDICTED_ITERATIONS, PARAM_MAX_CSE_INSNS,
PARAM_MAX_FLOW_MEMORY_LOCATIONS): New.
* predict.c (predict_loops): Use new param.
* predict.def (MAX_PRED_LOOP_ITERATIONS): Remove.
* ipa-inline.c (cgraph_decide_inlining_of_small_function,
cgraph_decide_inlining, cgraph_decide_inlining_incrementally):
Do not hold memory returned by cgraph_node_name across other call.
2005-11-04 Hans-Peter Nilsson <hp@axis.com>
PR target/23424
* config/cris/predicates.md ("cris_bdap_sign_extend_operand"):
Disable.
2005-11-04 Jeff Law <law@redhat.com>
PR/21883
* doc/invoke.texi: Document max-jump-thread-duplication-stmts PARAM.
* tree-ssa-dom.c: Include params.h.
(thread_across_edge): If there are too many statements in the
target block, then do not thread through it.
* Makefile.in (tree-ssa-dom.o): Depend on $(PARAMS_H).
* params.def (PARAM_MAX_JUMP_THREAD_DUPLICATION_STMTS): New PARAM.
2005-11-03 Diego Novillo <dnovillo@redhat.com>
PR 24627
* tree-ssa-dce.c (pass_dce, pass_dce_loop, pass_cd_dce): Use
TODO_update_ssa instead of TODO_update_ssa_no_phi.
2005-11-04 Sebastian Pop <pop@cri.ensmp.fr>
PR/18595
* tree-scalar-evolution.c (instantiate_parameters_1,
instantiate_parameters, resolve_mixers): Compute the size of an
expression to be instantiated and give up the instantiation if the
size exceeds PARAM_SCEV_MAX_EXPR_SIZE.
2005-11-04 Richard Guenther <rguenther@suse.de>
* tree-flow.h (ref_contains_indirect_ref): Rename to
array_ref_contains_indirect_ref.
* tree-flow-inline.h (ref_contains_indirect_ref): Likewise.
(array_ref_contains_indirect_ref): Make comment match the code
and vice-versa.
(ref_contains_array_ref): Likewise.
* tree-ssa-structalias.c (find_func_aliases): Remove call to
ref_contains_indirect_ref.
* tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined):
Rename calls to ref_contains_indirect_ref.
2005-11-04 Paul Brook <paul@codesourcery.com>
* config/arm/arm.c (arm_load_pic_register): Pass extra reg to
gen_pic_add_dot_plus_four and gen_pic_add_dot_plus_eight.
(arm_call_tls_get_addr, legitimize_tls_address): Likewise.
* config/arm/arm.md: Use match_operand in peephole input templates
and match_dup in peephole output templates.
2005-11-04 Daniel Jacobowitz <dan@codesourcery.com>
* config/arm/arm.c (arm_init_libfuncs): Use __aeabi_idiv and
__aeabi_uidiv.
2005-11-04 Mark Mitchell <mark@codesourcery.com>
Daniel Jacobowitz <dan@codesourcery.com>
* longlong.h (add_ssaaaa): Clobber condition code register
in ARM version.
(sub_ddmmss): Likewise.
(umul_ppmm): Likewise.
2005-11-04 Daniel Jacobowitz <dan@codesourcery.com>
Paul Brook <paul@codesourcery.com>
Phil Blundell <pb@reciva.com>
* configure.ac: Add test for ARM TLS support.
* configure: Regenerated.
* config/arm/arm-protos.h (legitimize_tls_address)
(arm_tls_referenced_p, tls_mentioned_p)
(arm_output_addr_const_extra): New prototypes.
(thumb_legitimize_pic_address): Delete.
* config/arm/arm.c: Include "gt-arm.h".
(enum tls_reloc): New.
(arm_cannot_copy_insn_p, arm_tls_symbol_p, load_tls_operand)
(pcrel_constant_p, get_tls_get_addr, arm_load_tp)
(arm_call_tls_get_addr, legitimize_tls_address)
(arm_tls_referenced_p, arm_tls_operand_p_1, tls_mentioned_p)
(arm_init_tls_builtins, arm_emit_tls_decoration)
(arm_output_addr_const_extra): New functions.
(TARGET_CANNOT_COPY_INSN_P, TARGET_CANNOT_FORCE_CONST_MEM)
(TARGET_HAVE_TLS): Define.
(target_thread_pointer): New.
(arm_override_options): Handle -mtp=.
(legitimize_pic_address): Ignore UNSPECs.
(arm_legitimate_address_p, thumb_legitimate_address_p): Handle PC
relative symbols.
(arm_legitimize_address, thumb_legitimize_address): Handle TLS.
(tls_get_addr_libfunc): New variable.
(symbol_mentioned_p, label_mentioned_p): Ignore UNSPEC_TLS.
(arm_init_builtins): Call arm_init_tls_builtins.
(arm_expand_builtin): Handle ARM_BUILTIN_THREAD_POINTER.
(arm_encode_section_info): Call default_encode_section_info.
* config/arm/arm.h (TARGET_HARD_TP, TARGET_SOFT_TP): Define.
(enum arm_tp_type): New.
(target_thread_pointer): Add declaration.
(LEGITIMATE_CONSTANT_P): Handle TLS.
(LEGITIMATE_PIC_OPERAND_P): Handle TLS.
(OUTPUT_ADDR_CONST_EXTRA): Call arm_output_addr_const_extra.
(enum arm_builtins): Add ARM_BUILTIN_THREAD_POINTER.
* config/arm/arm.md: Add UNSPEC_TLS.
(movsi): Handle TLS.
(pic_add_dot_plus_four, pic_add_dot_plus_eight): Allow for
non-PIC.
(tls_load_dot_plus_eight): New insn and a peephole to create it.
(load_tp_hard, load_tp_soft): New insns.
* arm.opt: Add -mtp=.
* doc/invoke.texi (ARM Options): Document -mtp.
2005-11-04 Daniel Jacobowitz <dan@codesourcery.com>
* config/arm/lib1funcs.asm: Don't include "libunwind.S".
* config/arm/libunwind.S: Include "lib1funcs.asm".
* config/arm/t-bpabi (LIB1ASMFUNCS): Remove _unwind.
(LIB2ADDEH): Add libunwind.S.
(LIB2ADDEHDEP): Add lib1funcs.asm.
* mklibgcc.in: Handle asm files in libgcc_eh.a.
2005-11-04 Francois-Xavier Coudert <coudert@clipper.ens.fr>
PR fortran/18452
* c.opt: Add a -lang-fortran option.
* c-opts.c: Add a lang_fortran flag.
(c_common_init_options): Handling the -lang-fortran option.
(c_common_handle_option): Add a case for Fortran options in
preprocessing. Remove cases for -ffixed-form and
-ffixed-line-length. Add a case for -lang-fortran.
2005-11-03 David Edelsohn <edelsohn@gnu.org>
* config/rs6000/rs6000.c: Include params.h
(optimization_options): Set max-grow-copy-bb-insns default to 16.
(bdesc_2arg): Delete vpkuhss and vpkuwss.
* config/rs6000/altivec.md (UNSPEC_VPKUHSS): Delete.
(UNSPEC_VPKUWSS): Delete.
(altivec_vpkuhss): Delete.
(altivec_vpkuwss): Delete.
* config/rs6000/rs6000.md (plus_eqsi): Remove optimize_size from
final condition.
(neg_eq0<mode>): Remove final condition.
(neg_eq<mode>): Remove condition and split-condition.
2005-11-04 Alan Modra <amodra@bigpond.net.au>
* config/rs6000/rs6000.c (output_toc): Make "offset" HOST_WIDE_INT.
Use associated print macros.
2005-11-03 Joseph S. Myers <joseph@codesourcery.com>
PR c++/17964
* diagnostic.c (diagnostic_set_info_translated): New function.
(diagnostic_set_info): Use it. Add comment.
* diagnostic.h (diagnostic_set_info_translated): Declare.
2005-11-03 Eric Botcazou <ebotcazou@adacore.com>
* dwarf2asm.c (dw2_force_const_mem): Add new parameter 'public'.
On USE_LINKONCE_INDIRECT platforms, build a DECL_ONE_ONLY indirect
reference only if 'public' is true.
(dw2_output_indirect_constant_1): On USE_LINKONCE_INDIRECT platforms,
emit the .hidden directive only if the indirect reference is public.
(dw2_asm_output_encoded_addr_rtx): Add new parameter 'public'.
Pass it to dw2_force_const_mem.
* dwarf2asm.h (dw2_asm_output_encoded_addr_rtx): New param 'public'.
* dwarf2out.c (output_cfi): Adjust calls to above function.
(output_call_frame_info): Likewise.
* except.c (output_ttype): Pass TREE_PUBLIC of the type_info object
as 'public' argument to dw2_asm_output_encoded_addr_rtx.
2005-11-03 Zdenek Dvorak <dvorakz@suse.cz>
PR tree-optimization/24483
* tree-ssa-loop-ivopts.c (aff_combination_add_elt): Move rest
field to elts if possible.
2005-11-03 Andrew Pinski <pinskia@physics.uc.edu>
PR middle-end/23155
* gimplifier.c (gimplify_expr): Create a temporary for lvalue
CONSTRUCTOR.
2005-11-03 Daniel Berlin <dberlin@dberlin.org>
Fix PR tree-optimization/24351
* tree-ssa-structalias.c (struct variable_info): Add
collapsed_into.
(get_varinfo_fc): New function to follow collapsing.
(new_var_info): Set collapsed_to to NULL.
(dump_constraint): Follow collapsing.
(build_constraint_graph): Handle collapsing.
(do_simple_structure_copy): Return false if something bad
happened.
(collapse_rest_of_var): New function.
(do_structure_copy): Collapse if do_simple_structure_copy returns
false.
2005-11-03 Andrew Pinski <pinskia@physics.uc.edu>
PR middle-end/24589
* gimplify.c (gimplify_expr) <case CONSTRUCTOR>: Add the
expressions to a statement list instead of gimplifying them.
2005-11-03 Eric Botcazou <ebotcazou@libertysurf.fr>
PR rtl-optimization/23585
* rtlanal.c (rtx_addr_can_trap_p_1) <PLUS>: Return 0 for an address
that can't trap plus a constant integer, if the mode has zero size.
2005-11-03 Ulrich Weigand <uweigand@de.ibm.com>
PR target/24620
* config/s390/s390.md ("*insv<mode>_reg_imm"): Accept any CONST_INT
as operand 2.
("*insv<mode>_reg_extimm"): Likewise.
2005-11-03 Joseph S. Myers <joseph@codesourcery.com>
PR c/24329
* c-pretty-print.c (pp_c_type_specifier): Do not recurse if
c_common_type_for_mode returns an unnamed type.
2005-11-02 Richard Henderson <rth@redhat.com>
PR target/9350
PR target/24374
* dwarf2out.c (dwarf2out_reg_save_reg): New.
(dwarf2out_frame_debug_expr): Return after dwarf_handle_frame_unspec.
* function.c (assign_parms): Use calls.internal_arg_pointer.
(expand_main_function): Remove FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN
code.
* target-def.h (TARGET_INTERNAL_ARG_POINTER): New.
(TARGET_CALLS): Add it.
* target.h (struct gcc_target): Add calls.internal_arg_pointer.
* targhooks.c (default_internal_arg_pointer): New.
* targhooks.h (default_internal_arg_pointer): Declare.
* tree.h (dwarf2out_reg_save_reg): Declare.
* doc/tm.texi (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): Remove.
* config/i386/i386.c (dbx_register_map): Add return column.
(dbx64_register_map, svr4_dbx_register_map): Likewise.
(TARGET_INTERNAL_ARG_POINTER, ix86_internal_arg_pointer): New.
(TARGET_DWARF_HANDLE_FRAME_UNSPEC, ix86_dwarf_handle_frame_unspec): New.
(ix86_function_ok_for_sibcall): Disable if force_align_arg_pointer.
(ix86_save_reg): Save force_align_arg_pointer.
(ix86_emit_save_regs): Make regno unsigned.
(ix86_emit_save_regs_using_mov): Likewise.
(ix86_expand_prologue): Handle force_align_arg_pointer.
(ix86_expand_epilogue): Likewise.
* config/i386/i386.h: (dbx_register_map): Update.
(dbx64_register_map, svr4_dbx_register_map): Update.
(struct machine_function): Add force_align_arg_pointer.
* config/i386/i386.md (UNSPEC_REG_SAVE, UNSPEC_DEF_CFA): New.
(UNSPEC_TP, UNSPEC_TLS_GD, UNSPEC_TLS_LD_BASE): Renumber.
(TARGET_PUSH_MEMORY peepholes): Disable if RTX_FRAME_RELATED_P.
2005-11-02 Jan Hubicka <jh@suse.cz>
PR target/23303
* i386.md: Add peep2 for simplyfing array accesses.
2005-11-02 Ulrich Weigand <uweigand@de.ibm.com>
PR target/24615
* config/s390/s390-protos.h (s390_decompose_shift_count): Declare.
* config/s390/s390.c (s390_decompose_shift_count): New function.
(s390_extra_constraint_str) ['Y']: Use s390_decompose_shift_count.
(print_shift_count_operand): Use s390_decompose_shift_count.
* config/s390/predicates.md ("setmem_operand", "shift_count_operand"):
Use s390_decompose_shift_count. Do not accept any non-base hard regs.
2005-11-02 Ulrich Weigand <uweigand@de.ibm.com>
PR target/24600
* loop.c (loop_givs_rescan): Use force_operand to expand
complex GIVs.
2005-11-02 Andrew Pinski <pinskia@physics.uc.edu>
PR 22429
* fold-const.c (build_range_check): Use unsigned when signed
overflow is undefined also. If etype is subtype, make sure that
the subtraction is in the supertype.
2005-11-02 Richard Henderson <rth@redhat.com>
PR target/24178
* config/alpha/alpha.c (get_aligned_mem): Honor alignment given
by MEM_ALIGN.
2005-11-01 Richard Henderson <rth@redhat.com>
PR 21518
* loop.c (scan_loop): Do not propagate computations to a hard
register destination with SMALL_REGISTER_CLASSES.
2005-11-01 Joseph S. Myers <joseph@codesourcery.com>
* config/rs6000/rs6000.c (rs6000_rtx_costs): Do not add extra
costs for MULT inside PLUS or MINUS.
2005-11-01 Bob Wilson <bob.wilson@acm.org>
* config/xtensa/xtensa.h (TRAMPOLINE_TEMPLATE): Add a byte of padding.
(TRAMPOLINE_SIZE): Round up to 60.
* config/xtensa/lib2funcs.S (TRAMPOLINE_SIZE): Likewise.
2005-10-31 James E. Wilson <wilson@specifix.com>
PR debug/24444
* dwarf2out.c (convert_cfa_to_loc_list): Put inside DWARF2_UNWIND_INFO
ifdef. Put ifdefs around call in gen_subprogram_die.
(compute_frame_pointer_to_cfa_displacement): Likewise.
(gen_subprogram_die): Restore old code for when DWARF2_UNWIND_INFO is
not defined.
PR rtl-optimization/17356
* cfgrtl.c (purge_dead_edges): Undo last change. In EDGE_EH code,
add check for CALL_INSN if EDGE_ABRNOMAL_CALL true.
2005-10-31 Jan Hubicka <jh@suse.cz>
PR middle-end/24093
* cgraph.c (cgraph_clone_edge, cgraph_clone_node): Watch negative
PR target/20928
* i386.c (legitimize_pic_address): Deal with large immediates.
PR profile/20815
* coverage.c (coverage_checksum_string): Fix code to stip random seeds
from symbol names while computing checkup.
PR profile/24487
* predict.c (predict_loops): Do not estimate more than
MAX_PRED_LOOP_ITERATIONS in PRED_LOOP_ITERATIONS heuristic.
* predict.def (MAX_PRED_LOOP_ITERATIONS): Define.
2005-10-31 Andrew MacLeod <amacleod@redhat.com>
PR tree-optimization/19097
* tree-ssa-operands.c (correct_use_link): Don't look for modified stmts.
2005-10-31 J"orn Rennecke <joern.rennecke@st.com>
* optabs.c (expand_unop): Take TRULY_NOOP_TRUNCATION into account.
2005-10-31 Andrew Pinski <pinskia@physics.uc.edu>
PR middle-end/23492
* tree-inline.c (setup_one_parameter): If the init_stmt
is NULL, don't insert the statement.
2005-10-30 Jan Hubicka <jh@suse.cz>
PR tree-optimization/24172
* tree-inline.c (copy_body_r): Unshare the substituted value first.
2005-10-30 Hans-Peter Nilsson <hp@bitrange.com>
* config/mmix/mmix.c (mmix_intval): Correct handling of DFmode
constants for hosts with long != 32 bits.
2005-10-28 Andreas Krebbel <krebbel1@de.ibm.com>
PR middle-end/24093
* ipa-inline.c (craph_decide_recursive_inlining): Fix return value.
2005-10-28 Aldy Hernandez <aldyh@redhat.com>
* config/ms1/ms1.h (TARGET_MS1_64_001): New.
(TARGET_MS1_16_002): New.
(TARGET_MS1_16_003): New.
* config/ms1/ms1.md ("decrement_and_branch_until_zero"): Rewrite.
("*decrement_and_branch_until_zero_no_clobber"): New.
Add corresponding splitter for decrement_and_branch_until_zero
instruction.
Key all decrement_and_branch_until_zero patterns off of
TARGET_MS1_16_003.
2005-10-28 Andrew Pinski <pinskia@physics.uc.edu>
PR middle-end/24362
* tree-complex.c (extract_component): Treat RESULT_DECL
like the rest of the decls.
2005-10-25 Eric Botcazou <ebotcazou@adacore.com>
* config/ia64/ia64.c (ia64_output_function_profiler): Emit an
indirect call to _mcount if the function needs a static chain.
2005-10-25 Eric Botcazou <ebotcazou@libertysurf.fr>
Caroline Tice <ctice@apple.com>
PR rtl-optimization/24460
* dwarf2out.c (have_switched_text_sections): New boolean variable.
(dwarf2out_switch_text_section): Set it to true instead of
incrementing separate_line_info_table_in_use.
(output_loc_list): Additionally test have_switched_text_sections.
(output_ranges): Likewise.
(dwarf2out_finish): Likewise.
* varasm.c (assemble_start_function): Do not call
insert_section_boundary_note.
(assemble_end_function): If flag_reorder_blocks_and_partition,
switch to the function's section before emitting the .size directive.
* bb-reorder.c (insert_section_boundary_note): Staticify.
(rest_of_handle_reorder_blocks): Call insert_section_boundary_note.
* output.h (insert_section_boundary_note): Delete.
2005-10-24 Andrew Pinski <pinskia@physics.uc.edu>
PR c/23103
* c-format.c (check_format_types): Use lang_hooks.types_compatible_p
instead of pointer equality when comparing types.
2005-10-24 James E. Wilson <wilson@specifix.com>
* sched-deps.c (flush_pending_lists): Pass 1 not 0 in first two
add_dependence_list_and_free calls.
2005-10-24 Steven Bosscher <stevenb@suse.de>
* contrib.texi: Add the names of the LLNL folks who donated
Cray pointer support for gfortran.
2005-10-24 Steven Bosscher <stevenb@suse.de>
PR tree-optimization/24225
* profile.c (branch_prob): Look from end to start through a
basic block when looking for a locus.
2005-10-24 Richard Henderson <rth@redhat.com>
* pa.c (store_reg_modify): Set RTX_FRAME_RELATED_P on each set in
parallel.
(hppa_expand_prologue): Likewise.
2005-10-24 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
* pa-linux.h (NO_PROFILE_COUNTERS): Delete define.
(NO_DEFERRED_PROFILE_COUNTERS): Define.
* pa.h (NO_PROFILE_COUNTERS): Define.
* pa.c (NO_DEFERRED_PROFILE_COUNTERS): Define if not defined.
(funcdef_nos): New vector to hold label numbers of deferred profile
counters.
(output_deferred_profile_counters): New function.
(hppa_profile_hook): Push label number onto funcdef_nos.
(pa_hpux_file_end): Call output_deferred_profile_counters if
NO_DEFERRED_PROFILE_COUNTERS is false.
* pa-protos.h (get_deferred_plabel): New prototype.
* pa.c (get_plabel): Rename to get_deferred_plabel. Return plabel.
Make global.
(output_call): Adjust calls.
2005-10-24 Alan Modra <amodra@bigpond.net.au>
* config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Explain
peculiarity of GOT/TOC section usage.
2005-10-23 Andrew Pinski <pinskia@physics.uc.edu>
PR objc/24435
* c-common.c (constant_string_class_name): Add documentation.
2005-10-23 Kaz Kojima <kkojima@gcc.gnu.org>
PR target/23832
* recog.c (peephole2_optimize): Increment peep2_current_count
only when the slot is empty.
2005-10-23 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
PR ada/23957
* except.c (output_function_exception_table): Call
assemble_external_libcall if we need a personality function.
2005-10-21 Eric Botcazou <ebotcazou@libertysurf.fr>
PR rtl-optimization/24460
* bb-reorder.c (fix_crossing_unconditional_branches): Do not
set the basic block for barriers.
2005-10-21 Janis Johnson <janis187@us.ibm.com>
* var-tracking.c (vt_initialize): Initialize post.
2005-10-21 Devang Patel <dpatel@apple.com>
PR/24220
* c-common.c (vector_types_convertible_p): Check vector element type.
2005-10-21 Kaz Kojima <kkojima@gcc.gnu.org>
* config/sh/sh.c (prepare_move_operands): Handle the address
constant which is a tls symbolic address plus a constant.
2005-10-21 Andrew Pinski <pinskia@physics.uc.edu>
PR driver/24473
* gcc.c (main): Use the correct counter for erroring out
about mulitple files.
2005-10-21 Alan Modra <amodra@bigpond.net.au>
PR target/24465
* config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Always
use r2 for 64-bit tls .got access.
2005-10-21 Paolo Bonzini <bonzini@gnu.org>
* dojump.c (do_jump): Handle side-effecting TRUTH_AND_EXPR and
TRUTH_OR_EXPR.
2005-10-20 Steven Bosscher <stevenb@suse.de>
PR tree-optimization/24307
* tree-cfg.c (tree_find_edge_insert_loc): Handle naked RETURN_EXPR.
2005-10-20 Alexandre Oliva <aoliva@redhat.com>
PR middle-end/24295
* cgraphunit.c (cgraph_varpool_remove_unreferenced_decls): Mark
alias targets.
* varasm.c (find_decl_and_mark_needed): After cgraph global info
is ready, stop marking functions, but still mark variables.
2005-10-20 Richard Guenther <rguenther@suse.de>
PR c++/24439
* fold-const.c (invert_truthvalue): Handle COND_EXPR with
void type operands.
2005-10-20 Eric Botcazou <ebotcazou@libertysurf.fr>
PR rtl-optimization/23585
* rtlanal.c (rtx_addr_can_trap_p_1): New predicate extracted from...
(rtx_addr_can_trap_p): ... here. Invoke rtx_addr_can_trap_p_1.
(may_trap_p_1): New predicate extracted from...
(may_trap_p): ... here. Invoke may_trap_p_1.
(may_trap_or_fault_p): New predicate.
* rtl.h (may_trap_or_fault_p): Declare it.
* reorg.c (steal_delay_list_from_target): Use may_trap_or_fault_p
instead of may_trap_p.
(steal_delay_list_from_fallthrough): Likewise.
(fill_simple_delay_slots): Likewise.
(fill_slots_from_thread): Likewise.
* function.c (pad_to_arg_alignment): Rework comment about
SPARC_STACK_BOUNDARY_HACK.
* config/sparc/sparc.h: Likewise.
2005-10-19 Adrian Straetling <straetling@de.ibm.com>
* config/s390/s390.c (s390_expand_insv): New.
* config/s390/s390-protos.h (s390_expand_insv): Declare.
* config/s390/s390.md ("UNSPEC_SETHIGH"): Rename to "UNSPEC_ICM".
("icm_hi"): Remove mode attribute.
("*sethigh<mode><mode>"): Rewrite to "sethighpart<mode>".
Adjust all uses.
("*extracthi", "*extractqi"): Remove.
(extv<mode>", "*extzv<mode>"): New.
("insv", "*insv<mode>_mem_reg", "*insvdi_mem_reghigh",
"*insv<mode>_reg_imm", "*insv<mode>_reg_extimm"): New.
2005-10-19 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
* cfgexpand.c (discover_nonconstant_array_refs_r,
discover_nonconstant_array_refs): Move here from tree-outof-ssa.c
(tree_expand_cfg): Call discover_nonconstant_array_refs.
* tree-outof-ssa.c (rewrite_out_of_ssa): Remove call to
discover_nonconstant_array_refs.
2005-10-19 Steven Bosscher <stevenb@suse.de>
PR c/23228
* c-decl.c (pop_scope): Don't warn about an unused variable
if it is marked with TREE_NO_WARNING.
(duplicate_decls): Set TREE_NO_WARNING if olddecl and newdecl
somenow mismatch and olddecl is to be replaced.
2005-10-19 Eric Botcazou <ebotcazou@libertysurf.fr>
PR middle-end/23199
* cfgrtl.c (safe_insert_insn_on_edge): Use can_copy_p to detect
whether registers live on the edge can be saved/restored.
2005-10-19 Kaz Kojima <kkojima@gcc.gnu.org>
* config/sh/sh.c (fixup_mova): Skip notes.
2005-10-19 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
* config/s390/s390-protos.h (s390_hard_regno_rename_ok): Add prototype.
* config/s390/s390.c (s390_hard_regno_rename_ok): New function.
(s390_can_eliminate): Handle BASE_REGNUM elimination.
(s390_initial_elimination_offset): Likewise.
(s390_conditional_register_usage): BASE_REGNUM is no longer a fixed
register on TARGET_ZARCH targets.
* config/s390/s390.h (HARD_REGNO_RENAME_OK): Define
(INITIAL_FRAME_POINTER_OFFSET): Remove.
(REG_ALLOC_ORDER): Move BASE_REGNUM lower.
(ELIMINABLE_REGS): Add BASE_REGNUM elimination rule.
2005-10-19 Andreas Krebbel <krebbel1@de.ibm.com>
* config/s390/s390.md: Comment describing output modifiers updated.
* config/s390/s390.c (print_operand): Likewise.
2005-10-19 Andreas Krebbel <krebbel1@de.ibm.com>
* config/s390/s390.c (override_options): Added check for -mstack-size
64k limitation.
* doc/invoke.texi: Mention that limit in the documenation.
2005-10-18 Paolo Bonzini <bonzini@gnu.org>
PR #19672
* dojump.c (do_jump): Handle TRUTH_AND_EXPR and TRUTH_OR_EXPR here.
2005-10-18 Daniel Berlin <dberlin@dberlin.org>
Fix PR tree-optimization/24231
* tree-ssa-pre.c (try_look_through_load): Skip abnormal phi names
(compute_avail): Ditto.
2005-10-18 Richard Henderson <rth@redhat.com>
PR target/24428
* config/i386/i386.c (legitimate_constant_p): Check
SYMBOL_REF_TLS_MODEL directly. Don't fallthru to SYMBOL_REF
if LABEL_REF.
(legitimate_pic_operand_p): Test SYMBOL_REF_TLS_MODEL directly.
(legitimate_pic_address_disp_p): Reorg CONST checking to make
sure SYMBOL_REF_TLS_MODEL is tested. Test SYMBOL_REF_TLS_MODEL
directly.
(print_operand_address): Likewise.
* config/i386/predicates.md (x86_64_immediate_operand): Test
SYMBOL_REF_TLS_MODEL properly inside CONST.
(x86_64_zext_immediate_operand): Likewise.
(global_dynamic_symbolic_operand, local_dynamic_symbolic_operand,
initial_exec_symbolic_operand, local_exec_symbolic_operand): Remove.
* config/i386/i386-protos.h: Remove predicates.md entries.
2005-10-18 Danny Smith <dannysmith@users.sourceforge.net>
* config/i386/winnt-cxx.c (i386_pe_adjust_class_at_definition):
Check that elements of TYPE_METHODS are FUNCTION_DECLs.
2005-10-17 Alexey Starovoytov <alexey.starovoytov@sun.com>
Ian Lance Taylor <ian@airs.com>
PR middle-end/23522
* fold-const.c (fold_widened_comparison): Do not allow range based
constant folding when right operand cannot be unwidened.
2005-10-17 Richard Henderson <rth@redhat.com>
* builtins.c (expand_builtin_synchronize): Build a new-style asm
with a memory clobber.
2005-10-17 James E Wilson <wilson@specifix.com>
PR rtl-optimization/17356
* cfgrtl.c (purge_dead_edges): Check for EDGE_ABNORMAL_CALL before
checking for EDGE_EH.
2005-10-17 Eric Botcazou <ebotcazou@libertysurf.fr>
* config/sparc/sparc.c (function_arg_slotno): In 64-bit mode, align
the slot on an even boundary for any type with 16-byte alignment.
2005-10-17 Hans-Peter Nilsson <hp@axis.com>
PR target/23424
* md.texi (Modifiers) <%>: Clarify that % doesn't work
after register allocation.
2005-10-17 DJ Delorie <dj@redhat.com>
* config/m32c/m32c.c (m32c_pushm_popm): Don't mark epilogue insns
as frame related.
2005-10-17 Nathan Sidwell <nathan@codesourcery.com>
PR c++/22551
* c-common.c (c_add_case_label): Revert my 2005-10-14 clearing of
overflow flags.
2005-10-17 Kaz Kojima <kkojima@gcc.gnu.org>
* config/sh/sh.h (OPTIMIZATION_OPTIONS): Set flag_schedule_insns
to 2 if it's already non-zero.
(OVERRIDE_OPTIONS): Clear flag_schedule_insns if flag_exceptions
is set and warn about it if flag_schedule_insns is 1.
2005-10-17 Paul Woegerer <paul.woegerer@nsc.com>
* config/crx/crx.md: Compare-and-branch instructions need to
invalidate CC.
2005-10-17 Uros Bizjak <uros@kss-loka.si>
PR target/24315
* config/i386/i386.md (*pushdi2_rex64 splitter)
(*movdi_1_rex64 splitter, *ashldi3_1 splitter)
(*ashrdi3_1 splitter, *lshrdi3_1 splitter): Delay splitting after
flow2 pass only when (optimize > 0 && flag_peephole2).
2005-10-16 Andrew Pinski <pinskia@physics.uc.edu>
PR driver/22544
* gcc.c (have_c): New static variable.
(have_o): Likewise.
(process_command): Remove declation of have_c.
Set have_o to 1 when handling -o.
(main): Add a fatel error if there are multiple
files specified and -o and -c/-S is passed witout
-combine or multiple languages.
2005-10-16 Daniel Berlin <dberlin@dberlin.org>
Fix PR tree-optimization/22444
* tree-ssa-alias.c (compute_flow_insensitive_aliasing):
Assert that we don't hit something with subvars.
(setup_pointers_and_addressables): Don't add things with subvars,
because we'll already process the subvars for aliasing purposes.
2005-10-16 Hans-Peter Nilsson <hp@axis.com>
PR target/23424
* config/cris/cris.md ("*mov_side<mode>", "*mov_sidesisf")
("*mov_side<mode>_mem", "*mov_sidesisf_mem", "*clear_side<mode>")
("*ext_sideqihi", "*ext_side<mode>si", "*op_side<mode>")
("*op_swap_side<mode>", "*extopqihi_side", "*extop<mode>si_side")
("*extopqihi_swap_side", "*extop<mode>si_swap_side"): Have separate,
swapped, alternatives for the R constraint.
PR middle-end/24341
* builtins.c (get_builtin_sync_mode): Make unlimited
mode_for_size request.
2005-10-15 Richard Henderson <rth@redhat.com>
* gimplify.c (gimplify_var_or_parm_decl): Split out from ...
(gimplify_expr): ... here.
(gimplify_compound_lval): Use it in initial scan loop. Allow
fb_lvalue in base expression.
2005-10-15 Richard Henderson <rth@redhat.com>
PR 23714
* builtins.c (expand_builtin_trap): Export.
* expr.h (expand_builtin_trap): Declare.
* expr.c (expand_assignment): Emit a trap for integral offsets
from registers that weren't reduced to bitpos.
* tree-cfg.c (mark_array_ref_addressable_1): Remove.
(mark_array_ref_addressable): Remove.
* tree-flow.h (mark_array_ref_addressable): Remove.
* tree-optimize.c (execute_cleanup_cfg_post_optimizing): Don't call it.
2005-10-15 James E Wilson <wilson@specifix.com>
PR target/24232
* sched-deps.c (add_dependence_list): New arg UNCOND. Fix all callers.
(add_dependence_list_and_free): Likewise.
(sched_analyze_2, case MEM): Delete sched_insns_conditions_mutex_p
call.
2005-10-15 Diego Novillo <dnovillo@redhat.com>
PR 23141
PR 23142
* tree-vrp.c (vrp_meet): Fix the intersection of equivalence
sets VR0->EQUIV and VR1->EQUIV when meeting a range and an
anti-range.
(vrp_visit_phi_node): Only prevent infinite iterations when
the previous result and the new result are both VR_RANGEs.
2005-10-15 Ranjit Mathew <rmathew@gcc.gnu.org>
* tree-into-ssa.c (mark_def_sites): Correct minor typo in
function comment.
2005-10-14 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
PR c/23439
* c-parser.c (c_parser_for_statement): Use location of RID_FOR
to initialize loc.
2005-10-14 Per Bothner <per@bothner.com>
PR preprocessor/21250
* c-ppoutput.c (print_line): Print internal line 0 as 1.
2005-10-14 Nathan Sidwell <nathan@codesourcery.com>
PR c++/22551
* c-common.c (c_add_case_label): Clear LOW_VALUE and HIGH_VALUE's
overflow flags. Refactor some conditionals.
2005-10-13 Andrew Pinski <pinskia@physics.uc.edu>
PR tree-opt/21304
* tree-dfa.c (add_referenced_var): Only look at decls which
have TREE_CONSTANT or TREE_READONLY set instead of if
!TREE_PUBLIC or !TREE_CONSTANT.
2005-10-13 James E Wilson <wilson@specifix.com>
* doc/invoke.texi: For -x, add f95-cpp-input.
* doc/install.texi: For --enable-languages doc, change f95 to fortran.
2005-10-12 Sebastian Pop <pop@cri.ensmp.fr>
PR tree-optimization/24262
* tree-data-ref.c (analyze_offset_expr): Check that init is invariant
in loop all the time.
2005-10-12 Richard Henderson <rth@redhat.com>
PR c/24255
* tree.h (DECL_TRANSPARENT_UNION): Remove.
* function.c (assign_parm_find_data_types): Don't support it.
* print-tree.c (print_node): Likewise.
* c-common.c (handle_transparent_union_attribute): Likewise.
Use build_duplicate_type.
* tree-inline.c (remap_type_1): Split out of remap_type;
properly remap aggregate fields.
(build_duplicate_type): New.
* doc/extend.texi (Variable Attributes): Remove documentation
for transparent_union.
2005-10-12 Eric Botcazou <ebotcazou@libertysurf.fr>
PR target/24284
* config/sparc/sparc.c (gen_stack_pointer_inc): Build by hand.
(gen_stack_pointer_dec): Likewise.
2005-10-12 Danny Smith <dannysmith@users.sourceforge.net>
PR middle-end/21275
PR middle-end/21766
* target.h (struct gcc_target): Add valid_dllimport_attribute_p
target hook.
(struct cxx): Add adjust_class_at_definition target hook.
* target-def.h: (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): New define,
defaulting to hook_bool_tree_true. Add to TARGET_INITIALIZER
(TARGET_CXX_ADJUST_CLASS_AT_DEFINITION): New define, defaulting to
hook_void_tree. Add to TARGET_CXX.
* tree.h (struct decl_with_vis): Rename non_addr_const_p field to
dllimport_flag.
(DECL_NON_ADDR_CONSTANT_P): Replace with DECL_DLLIMPORT_P macro.
* tree.c (merge_dllimport_decl_attributes): Check DECL_DLLIMPORT_P
instead of attribute. Check for dllexport override. Warn if
inconsistent dll linkage. Don't lose old dllimport if decl has
had address referenced. Tweak lookup of dllimport atribute.
(handle_dll_attribute): Check targetm.valid_dllimport_attribute_p
for target specific rules. Don't add dllimport attribute if
DECL_DECLARED_INLINE_P. Set DECL_DLLIMPORT_P when adding
dllimport attribute.
(staticp): Replace DECL_NON_ADDR_CONSTANT_P with DECL_DLLIMPORT_P.
* varasm.c (initializer_constant_valid_p): Replace
DECL_NON_ADDR_CONSTANT_P with DECL_DLLIMPORT_P
PR target/21801
PR target/23589
* config.gcc (i[34567]86-*-cygwin*): Add winnt-cxx.o to
'cxx_target_objs', winnt-stubs,o to 'extra_objs'.
(i[34567]86-*-mingw32*): Likewise.
* doc/tm.texi (TARGET_CXX_ADJUST_CLASS_AT_DEFINITION): Document.
(TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Document.
* config/i386/winnt.c (i386_pe_dllimport_p): Factor out
C++-specific code. Change return value to bool.
(i386_pe_dllimport_p): Likewise.
(associated_type): Simplify and make language-independent
(i386_pe_encode_section_info): Replace override of ambiguous
dllimport symbol refs with a gcc_assert.
(i386_pe_valid_dllimport_attribute_p): Define.
* config/i386/winnt-cxx.c: New file. Define C++ versions of
i386_pe_type_dllimport_p, i386_pe_type_dllexport_p,
i386_pe_adjust_class_at_definition.
* config/i386/winnt-stubs.c: New file. Define stub versions of
lang-specific functions.
* config/i386/i386-protos.h: Declare winnt-[cxx|stubs].c functions
i386_pe_type_dllimport_p, i386_pe_type_dllexport_p,
i386_pe_adjust_class_at_definition.
(i386_pe_valid_dllimport_attribute_p): Declare.
* config/i386/cygming.h (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Define.
(TARGET_CXX_ADJUST_CLASS_AT_DEFINITION): Define.
* config/i386/t-cygming: Add rules for winnt-cxx.o, winnt-stubs.o.
PR target/19704
* config/i386/i386.c (ix86_function_ok_for_sibcall): Replace test for
dllimport attribute with test of DECL_DLLIMPORT_P.
2005-10-12 Adrian Straetling <straetling@de.ibm.com>
* combine.c (make_extraction): Correct offset computation.
2005-10-12 Hans-Peter Nilsson <hp@axis.com>
* config/cris/t-linux (LIMITS_H_TEST): Define.
2005-10-12 Richard Henderson <rth@redhat.com>
PR rtl-opt/23324
* cfgexpand.c (add_alias_set_conflicts): Use objects_must_conflict_p.
2005-10-12 Richard Guenther <rguenther@suse.de>
* Makefile.in (CGRAPH_H): Depend on $(TREE_H).
2005-10-12 Nathan Sidwell <nathan@codesourcery.com>
PR c++/19964
* stor-layout.c (place_field): Set DECL_FIELD_OFFSET and
DECL_FIELD_BIT_OFFSET of FIELD_DECLs, even if they have an invalid
type.
2005-10-12 Richard Guenther <rguenther@suse.de>
PR c++/23799
* varasm.c (output_constant): Correct typo from previous
patch by DJ.
2005-10-11 Ian Lance Taylor <ian@airs.com>
PR rtl-optimization/13931
* combine.c: Revert patch of 2003-05-14, and:
(try_combine): Only set elim_i1 and elim_i2 if the destination is
completely killed in the appropriate insn.
(distribute_notes): Don't skip multiple hard register test for
elim_i1 and elim_i2.
2005-10-11 Richard Henderson <rth@redhat.com>
PR c/24255
* c-typeck.c (convert_for_assignment): Use build_constructor_single
to initialize a transparent union instead of a nop_expr.
2005-10-11 Richard Henderson <rth@redhat.com>
* Makefile.in (tree-ssa-dce.o): Depend on SCEV_H.
* tree-ssa-dce.c: Include tree-scalar-evolution.h.
(tree_ssa_dce_loop): Call scev_reset.
PR tree-opt/24300
* Makefile.in (tree-ssa-dce.o): Depend on CFGLOOP_H.
* tree-ssa-dce.c: Include cfgloop.h.
(tree_ssa_dce_loop, pass_dce_loop): New.
* tree-pass.h (pass_dce_loop): Declare it.
* passes.c (init_optimization_passes): Use it.
2005-10-11 Eric Botcazou <ebotcazou@libertysurf.fr>
PR middle-end/24263
* convert.c (convert_to_real): Revert 2005-10-05 patch.
Only apply the optimization for rounding builtins if the inner
cast is also an extension.
2005-10-11 Andrew Pinski <pinskia@physics.uc.edu>
PR tree-opt/23946
* tree-ssa-ccp.c (execute_fold_all_builtins): Call
mark_new_vars_to_rename instead of update_stmt.
2005-10-11 Bernd Schmidt <bernd.schmidt@analog.com>
* config/bfin/crti.s (__init, __fini): Renamed from _init, _fini.
2005-10-11 Jakub Jelinek <jakub@redhat.com>
* config/i386/i386.md (movsi_1, movdi_1_rex64): Use mmxadd type
for setting MMX register to 0 rather than mmx.
2005-10-10 Mark Mitchell <mark@codesourcery.com>
* toplev.c (check_global_declaration_1): Robustify.
2005-10-10 Steve Ellcey <sje@cup.hp.com>
PR target/12098
* configure.ac: Move gas check from mips specific case to common case.
Do check for GNU as for mips*-*-* and *-*-hpux* targets.
* configure: Regenerate
* doc/install.texi: Update.
2005-10-10 Eric Botcazou <ebotcazou@libertysurf.fr>
PR target/24284
* config/sparc/sparc.c (sparc_expand_prologue): Remove bogus PATTERN.
2005-10-10 Maciej W. Rozycki <macro@linux-mips.org>
* gcc.c (do_spec_1): Accept numeric characters in file name
suffixes.
2005-10-10 Nick Clifton <nickc@redhat.com>
* config/arm/arm.c: Remove extraneous whitespace. Remove comment
describing the deleted arm_gen_rotated_half_load function.
2005-10-09 Kaz Kojima <kkojima@gcc.gnu.org>
* config/sh/sh.c (emit_fpu_switch): Set TREE_PUBLIC for
__fpscr_values.
2005-10-09 Daniel Jacobowitz <dan@codesourcery.com>
* config.gcc (arm*-*-linux*): Remove redundant extra_parts and
gnu_ld assignments.
* config/arm/t-linux-eabi (LIB1ASMFUNCS)
(EXTRA_MULTILIB_PARTS): Define.
* config/arm/linux-elf.h (NO_IMPLICIT_EXTERN_C, CPLUSPLUS_CPP_SPEC)
(STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC)
(LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Move to...
* config/arm/uclinux-elf.h (NO_IMPLICIT_EXTERN_C, CPLUSPLUS_CPP_SPEC)
(STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC)
(LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): ... here.
2005-10-09 Zdenek Dvorak <dvorakz@suse.cz>
PR tree-optimization/24226
* tree-cfg.c (remove_bb): Clean up unreachable loops.
* tree-flow.h (free_numbers_of_iterations_estimates_loop): Declare.
* tree-ssa-loop-niter.c (free_numbers_of_iterations_estimates_loop):
Export.
2005-10-09 Eric Botcazou <ebotcazou@libertysurf.fr>
* config/sparc/gmon-sol2.c (internal_mcount): Mark as used.
2005-10-08 Andrew Pinski <pinskia@physics.uc.edu>
PR target/24136
* config/rs6000/darwin.md (movdf_low_si): Remove early clobber.
Rewrite for no need for the early clobber.
2005-10-08 Kazu Hirata <kazu@codesourcery.com>
Merge from csl-arm-branch:
2005-09-07 Paul Brook <paul@codesourcery.com>
* config/arm/linux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Prepend a
space to string.
2005-04-30 Paul Brook <paul@codesourcery.com>
* config/arm/bpabi.h (TARGET_DEFAULT): Define.
* config/arm/linux-eabi.h (SUBTARGET_CPU_DEFAULT): Define.
2005-03-07 Daniel Jacobowitz <dan@codesourcery.com>
* config/arm/arm.c (arm_all_abis): Add aapcs-linux.
(arm_override_options): Use TARGET_AAPCS_BASED.
* config/arm/arm.h (enum arm_abi_type): Add ARM_ABI_AAPCS_LINUX.
(PTRDIFF_TYPE): Use int for AAPCS.
(DEFAULT_SHORT_ENUMS): Use false for aapcs-linux.
* config/arm/linux-eabi.h (ARM_DEFAULT_ABI, WCHAR_TYPE): Define.
(DEFAULT_SHORT_ENUMS): Delete.
* doc/invoke.texi (ARM Options): Document -mabi=aapcs-linux.
2004-12-15 Daniel Jacobowitz <dan@codesourcery.com>
* config/arm/arm.h (DEFAULT_SHORT_ENUMS): Wrap in #ifndef.
* config/arm/linux-eabi.h (DEFAULT_SHORT_ENUMS): Define to 0.
* config/arm/t-linux-eabi (TARGET_LIBGCC2_CFLAGS): Set to -fPIC.
2004-12-03 Mark Mitchell <mark@codesourcery.com>
* config/arm/linux-eabi.h (LIBGCC_SPEC): Do not define.
2004-11-22 Mark Mitchell <mark@codesourcery.com>
* config.gcc (arm*-*-linux-gnueabi): Use __cxa_atexit.
2004-11-19 Mark Mitchell <mark@codesourcery.com>
* config.gcc (arm*-*-linux-gnueabi): Add it.
* config/arm/bpabi.h (FPUTYPE_DEFAULT): Undefine it before
redefining it.
(TARGET_OS_CPP_BUILTINS): Likeiwse.
* config/arm/linux-eabi.h: New file.
* config/arm/linux-elf.h (LINUX_TARGET_INTERPRETER): New macro.
(LINUX_TARET_LINK_SPEC): Likewise.
(LINK_SPEC): Use it.
* config/arm/t-linux-eabi: New file.
2005-10-08 Steven Bosscher <stevenb@suse.de>
PR other/22202
* params.def (PARAM_MAX_VARIABLE_EXPANSIONS): Remove superfluous
spaces.
(PARAM_SMS_DFA_HISTORY): Likewise.
2005-10-08 Kazu Hirata <kazu@codesourcery.com>
PR middle-end/23150
* calls.c (mem_overlaps_already_clobbered_arg_p): New.
(load_register_parameters): Call it.
(check_sibcall_argument_overlap_1): Likewise.
(store_one_arg): Likewise.
2005-10-07 James E. Wilson <wilson@specifix.com>
* config/ia64/vect.md (ashl<mode>3, ashr<mode>3, lshr<mode>3): Use
DImode not VECINT24 for operand 2.
PR target/23644
* doc/invoke.texi (IA-64 Options, item -mtune): Renamed from
-mtune-arch.
PR target/24193
* config/ia64/ia64.md (movbi, movti_internal, gr_spill_internal,
fr_spill): Use destination_operand for operand 0.
2005-10-07 DJ Delorie <dj@redhat.com>
* varasm.c (output_constant): Limit error to expanding
conversions.
2005-10-07 Richard Guenther <rguenther@suse.de>
PR middle-end/24227
* fold-const.c (fold_binary): Fix operand types during folding
of X op (A, Y). Evaluation order of the side-effects of
X and A are frontend-defined, so ensure we honour that even for
tcc_comparison class operands; eased by removing duplicate code.
2005-10-07 Steve Ellcey <sje@cup.hp.com>
* stor-layout.c (layout_type): Do not allow alignment of array
elements to be greater than their size.
2005-10-07 Steve Ellcey <sje@cup.hp.com>
* config.host (hppa*-*-hpux*): Change out_host_hook_obj and
host_xmake_file.
(hppa*-*-linux*): Ditto.
(ia64-*-hpux*): Add out_host_hook_obj and host_xmake_file.
* config/host-hpux.c: New.
* config/x-hpux: New.
* config/pa/x-hpux: Remove.
* config/pa/x-linux: Remove.
* config/pa/pa-host.c: Remove.
2005-10-07 Jeff Law <law@redhat.com>
* tree-ssa-dom.c (dom_opt_finalize_block): Fix conditions to
determine whether or not to try and thread outgoing edges.
2005-10-07 David Edelsohn <edelsohn@gnu.org>
* config/rs6000/rs6000.md (eqsi_power): New.
(neg_eq0si): Add TARGET_POWER to final condition.
(neg_eqsi): Same.
2005-10-06 Richard Henderson <rth@redhat.com>
* config/rs6000/rs6000.c: Revert last change.
2005-10-06 Richard Henderson <rth@redhat.com>
* config/rs6000/rs6000.c (rs6000_cannot_force_const_mem): New.
(TARGET_CANNOT_FORCE_CONST_MEM): Use it.
2005-10-06 Andrew Pinski <pinskia@physics.uc.edu>
PR middle-end/22216
PR middle-end/23651
* cfgexpand.c (tree_expand_cfg): After expanding the functions, clear
out return_label and naked_return_label.
2005-10-06 Daniel Berlin <dberlin@dberlin.org>
* tree-ssa-structalias.c (check_for_overlaps): Fix bug in last
change.
2005-10-06 Richard Henderson <rth@redhat.com>
PR tree-opt/22237
* tree-inline.c (declare_return_variable): Handle modify_dest not
being a DECL.
2005-10-06 Daniel Berlin <dberlin@dberlin.org>
Fix PR tree-optimization/22488
* tree-ssa-structalias.c (check_for_overlaps): New function.
(create_variable_info_for): Use it.
2005-10-06 Richard Henderson <rth@redhat.com>
PR debug/24070
* dwarf2out.c (lookup_filename): Return the result of maybe_emit_file.
(dwarf2out_start_source_file): Print it.
2005-10-06 Geoffrey Keating <geoffk@apple.com>
* config/t-slibgcc-darwin (SHLIB_MAPFILES): Use '+='.
2005-10-06 Richard Henderson <rth@redhat.com>
PR 23706
* mode-switching.c (optimize_mode_switching): Clear transp bit
for block with incomming abnormal edges.
* config/sh/sh.c (fpscr_values, emit_fpu_switch): New.
(fpscr_set_from_mem): Use them.
* config/sh/sh.md (fpu_switch0, fpu_switch1): Remove.
(fpscr postinc splitters): Rewrite as peephole2+split.
2005-10-06 David Edelsohn <edelsohn@gnu.org>
* config/rs6000/rs6000.md (eq<mode>): Add !TARGET_POWER.
(eq<mode>_compare): Same.
2005-10-06 Richard Guenther <rguenther@suse.de>
PR tree-optimization/24238
* tree-ssa-alias.c (find_used_portions): Handle RESULT_DECL.
2005-10-06 Daniel Jacobowitz <dan@codesourcery.com>
* acinclude.m4 (gcc_AC_CHECK_TOOL): Handle environment variables
here. Use AC_PATH_PROG for environment variables instead of
test -x.
* configure.ac: Update calls to gcc_AC_CHECK_TOOL. Use it for
objdump also.
* configure: Regenerated.
2005-10-06 Richard Earnshaw <richard.earnshaw@arm.com>
PR target/23783
* arm.md (call): If the address isn't a SYMBOL_REF or a register,
then force it into a register.
(call_value): Likewise.
2005-10-06 Richard Henderson <rth@redhat.com>
PR 24049
* passes.c (init_optimization_passes): Move pass_lower_vector_ssa
under pass_vectorize. Clear TODO_ggc_collect from the dce pass
under pass_vectorize.
2005-10-05 Devang Patel <dpatel@apple.com>
PR Debug/23205
* dbxout.c (dbxout_symbol): Check DECL_RTL_SET_P, after
handling constants. Check NAMESPACE_DECL context for constants.
2005-10-05 Eric Christopher <echristo@apple.com>
* doc/md.texi (Standard Names): Fix name of pushm1 pattern.
2005-10-05 Richard Henderson <rth@redhat.com>
PR 23714
* tree-cfg.c (mark_array_ref_addressable_1): New.
(mark_array_ref_addressable): New.
* tree-flow.h (mark_array_ref_addressable): Declare.
* tree-optimize.c (execute_cleanup_cfg_post_optimizing): Use it.
2005-10-05 Andrew Pinski <pinskia@physics.uc.edu>
PR middle-end/20606
PR middle-end/24069
* reload.c (subst_reloads): When adding a REG_LABEL to a
jump instruction, also update JUMP_LABEL.
2005-10-05 David Edelsohn <edelsohn@gnu.org>
* params.def (PARAM_MAX_GROW_COPY_BB_INSNS): New.
* bb-reorder.c (copy_bb_p): Use it.
* doc/invoke.texi (param table): Add max-grow-copy-bb-insn.
2005-10-05 Richard Henderson <rth@redhat.com>
PR target/23602
* toplev.c (process_options): Warn about unsupported combinations
of unwind tables and omit-frame-pointer.
* config/i386/i386.c (override_options): Similarly. Enable
accumulate-outgoing-args if not explicitly disabled.
2005-10-05 Steve Ellcey <sje@cup.hp.com>
* vect.md (vec_initv2si): Fix typo of V2SF to V2SI.
Handle big endian vs. small endian.
(vec_initv2sf): Handle big endian vs. small endian.
(*vec_extractv2sf_1): Ditto.
2005-10-05 Dale Johannesen <dalej@apple.com>
* convert.c (convert_to_real): Don't convert
(float)floor(double d) to floorf((float)d).
2005-10-05 Daniel Jacobowitz <dan@codesourcery.com>
* config/arm/arm.md (insv): Use gen_int_mode in more places.
2005-10-05 Andrew MacLeod <amacleod@redhat.com>
PR tree-optimization/18587
* tree-ssa-operands.c (struct opbuild_list_d, OPBUILD_LAST): Delete.
(build_defs, build_uses, build_v_may_defs, build_v_must_defs,
build_vuses): Change to VEC type.
(opbuild_initialize_virtual, opbuild_initialize_real, opbuild_free,
opbuild_num_elems, opbuild_append_real, opbuild_append_virtual,
opbuild_first, opbuild_next, opbuild_elem_real, opbuild_elem_virtual,
opbuild_elem_uid, opbuild_clear, opbuild_remove_elem): Delete.
(get_name_decl): New. Return DECL_UID of base variable.
(operand_build_cmp): New. qsort comparison routine.
(operand_build_sort_virtual): New. Sort virtual build vector.
(init_ssa_operands, fini_ssa_operands): Use VEC routines.
(FINALIZE_OPBUILD_BASE, FINALIZE_OPBUILD_ELEM): Use VEC_Index.
(FINALIZE_BASE): Use get_name_decl.
(finalize_ssa_defs, finalize_ssa_uses, cleanup_v_may_defs,
finalize_ssa_v_may_defs, finalize_ssa_vuses, finalize_ssa_v_must_defs,
(start_ssa_stmt_operands, append_def, append_use, append_vuse,
append_v_may_def, append_v_must_def): Replace opbuild_* routines with
direct VEC_* manipulations.
(build_ssa_operands): Call operand_build_sort_virtual.
(copy_virtual_operand, create_ssa_artficial_load_stmt,
add_call_clobber_ops, add_call_read_ops): Replace opbuild_* routines
with direct VEC_* manipulations.
* tree-ssa-opfinalize.h (FINALIZE_FUNC): Replace opbuild_* routines
with direct VEC manipulations.
2005-10-05 Paolo Bonzini <bonzini@gnu.org>
PR tree-optimization/21419
PR tree-optimization/24146
PR tree-optimization/24151
* c-typeck.c (readonly_error): Handle USE being lv_asm.
(build_asm_expr): Call it if outputs are read-only.
* gimplify.c (gimplify_asm_expr): Remove former fix to PR 21419.
2005-10-05 Billy Biggs <billy.biggs@gmail.com>
Paolo Bonzini <bonzini@gnu.org>
PR target/23809
* doc/extend.texi (x86 Built-ins): Document that -msse and friends
enable the instructions and not just the built-ins.
* doc/invoke.texi (x86 Options): Likewise.
2005-10-04 Geoffrey Keating <geoffk@apple.com>
* config/i386/t-darwin (SHLIB_VERPFX): Fix typo.
* doc/invoke.texi (Option Summary): Correct spelling
of -mmacosx-version-min.
2005-10-04 Devang Patel <dpatel@apple.com>
* c-common.c (vector_types_convertible_p): Check TYPE_PRECISION for
real types.
2005-10-04 Steve Ellcey <sje@cup.hp.com>
* tree-vect-transform.c (vect_create_epilog_for_reduction):
Use BYTES_BIG_ENDIAN instead of BITS_BIG_ENDIAN.
2005-10-04 Adrian Straetling <straetling@de.ibm.com>
* config/s390/s390.md ("TDSI","DP"): New mode macros.
("TE","tg"): New mode attributes.
("sync_compare_and_swap<mode>"): Replace with a define_expand.
("sync_compare_and_swap<mode>_cc"): Replace GPR with TDSI.
("*sync_compare_and_swap<mode>_cc"): Replace with one pattern for
dword_mode and one for GPRmode.
2005-10-04 Ian Lance Taylor <ian@airs.com>
PR preprocessor/13726
* c-ppoutput.c (cb_include): Add comments parameter, and print out
any comments passed in.
2005-10-04 Andrew Pinski <pinskia@physics.uc.edu>
* tree.c (annotate_with_file_line): Fix typo.
2005-10-04 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
PR ada/19382
* builtins.c (fold_builtin_memcmp): When constructing the pointer
type used to access data in the inlined length == 1 case, use
build_pointer_type_for_mode with CAN_ALIAS_ALL set to true.
(fold_builtin_strcmp, fold_builtin_strncmp): Likewise.
2005-10-04 Uros Bizjak <uros@kss-loka.si>
* config/i386/i386.h (TARGET_FISTTP): Enable also for
TARGET_SSE3 and only for TARGET_80387.
* config/i386/i386.md (fix_trunc<mode>_fisttp_i387_1,
(fix_trunc<mode>_i387_fisttp, fix_trunc<mode>_i387_fisttp_with_temp):
Do not depend on TARGET_80387.
2005-10-04 Andrew Pinski <pinskia@physics.uc.edu>
* tree.c (last_annotated_node): Change type to location_t*.
(annotate_with_file_line): Reflect the change of
last_annotated_node type.
2005-10-04 Richard Guenther <rguenther@suse.de>
PR c/23576
* c-decl.c (grokdeclarator): Don't write to fields
of error_mark_node.
2005-10-04 Andrew Pinski <pinskia@physics.uc.edu>
PR middle-end/23125
* c-decl.c (finish_decl): Use set_user_assembler_name even for
register variables.
* varasm.c (make_decl_rtl): If a register variable does not
have a set user assmbler name, error out.
Decode the asmspec is now name+1 bypassing '*'.
2005-10-04 Steven Bosscher <stevenb@suse.de>
PR tree-optimization/23049
* tree-ssa-dom.c (thread_across_edge): Make sure that the condition
of a COND_EXPR is folded before calling fold on the whole rhs of a
conditional assignment.
* doc/tree-ssa.texi: Update the GIMPLE grammar for a valid rhs to
document that a COND_EXPR may appear there.
2005-10-03 Diego Novillo <dnovillo@redhat.com>
PR 23445
* tree-vrp.c (extract_range_from_assert): If the new numeric
range created out of the assertion contradicts the existing
numeric range of the ASSERT_EXPR variable, make the new range
varying.
2005-10-03 Kaz Kojima <kkojima@gcc.gnu.org>
* config/sh/sh.c (sh_register_move_cost): Add case for moving
from T_REGS to FP register class.
2005-10-03 Richard Henderson <rth@redhat.com>
PR 24135
* tree-nested.c (convert_nl_goto_reference): Lookup a translation
before creating a new one.
2005-10-03 David Edelsohn <edelsohn@gnu.org>
* config/rs6000/t-aix43 (LDFLAGS): New.
* config/rs6000/t-aix52 (LDFLAGS): New.
2005-10-03 Ian Lance Taylor <ian@airs.com>
* gimplify.c (find_single_pointer_decl_1): New static function.
(find_single_pointer_decl): New static function.
(internal_get_tmp_var): For a formal variable, set restrict base
information if appropriate.
* alias.c (find_base_decl): If a VAR_DECL has a restrict base,
return it.
* tree.h (DECL_BASED_ON_RESTRICT_P): Define.
(DECL_GET_RESTRICT_BASE): Define.
(SET_DECL_RESTRICT_BASE): Define.
(decl_restrict_base_lookup): Declare.
(decl_restrict_base_insert): Declare.
(struct tree_decl_with_vis): Add based_on_restrict_p field.
* tree.c (restrict_base_for_decl): New static variable.
(init_ttree): Initialize restrict_base_for_decl.
(copy_node_stat): Copy restrict base information.
(decl_restrict_base_lookup): New function.
(decl_restrict_base_insert): New function.
(print_restrict_base_statistics): New static function.
(dump_tree_statistics): Call print_restrict_base_statistics.
2005-10-02 Diego Novillo <dnovillo@redhat.com>
PR 24142
* tree-vrp.c (vrp_meet): Fix call to range_includes_zero_p in
case of anti-ranges.
2005-10-02 Andrew Pinski <pinskia@physics.uc.edu>
PR c/18851
* c-typeck.c (tagged_tu_seen): Rename to ...
(tagged_tu_seen_cache): this and add val field.
(comptypes): Move functional to comptypes_internal
and free tagged_tu_seen.
(comptypes_internal): New function and call comptypes_internal
instead of comptypes. Speed up by sibcalling
tagged_types_tu_compatible_p.
(alloc_tagged_tu_seen): New function
(free_all_tagged_tu_seen_up_to): New function.
(tagged_types_tu_compatible_p): Return the val of the seen two
types.
Add that the two types are the same to tagged_tu_seen_base
if they are and call comptypes_internal instead of comptypes.
<case UNION_TYPE>: Speed up common type where the fields are
in the same order.
(function_types_compatible_p): Call comptypes_internal instead of
comptypes.
(type_lists_compatible_p): Likewise.
(all functions): s/tagged_tu_seen/tagged_tu_seen_cache/.
2005-10-02 Matthias Klose <doko@debian.org>
* doc/invoke.texi: Fix typo and speling error.
2005-10-01 Richard Henderson <rth@redhat.com>
* tree-stdarg.c (execute_optimize_stdarg): Process PHI nodes too.
2005-10-01 Mark Mitchell <mark@codesourcery.com>
* config/arm/unknown-elf.h (LINK_GCC_C_SEQUENCE_SPEC): Define
using --start-group and --end-group.
2005-10-01 Diego Novillo <dnovillo@redhat.com>
* tree-vrp.c (value_inside_range, range_includes_zero_p): Add
FIXME note regarding quirky semantics.
2005-10-01 Diego Novillo <dnovillo@redhat.com>
PR 24141
* tree-vrp.c (vrp_meet): Clear VR0->EQUIV when building a
non-null range as a last resort.
2005-10-01 James A. Morrison <phython@gcc.gnu.org>
Diego Novillo <dnovillo@redhat.com>
PR 23604
* tree-vrp.c (extract_range_from_assert): For !=
assertions, only build an anti-range if LIMIT is a
single-valued range.
2005-09-30 Richard Earnshaw <richard.earnshaw@arm.com>
* arm.md (movqi): On thumb when optimizing, handle loading from
memory by describing this as taking a subreg of a zero-extended load
into an SImode register.
(movhi): Likewise.
2005-09-30 Daniel Jacobowitz <dan@codesourcery.com>
* reload1.c (merge_assigned_reloads): Do not change any
RELOAD_FOR_OUTPUT_ADDRESS reloads.
2005-09-30 Geoffrey Keating <geoffk@apple.com>
* Makefile.in (LIPO_FOR_TARGET): Define.
(STRIP_FOR_TARGET): Define.
* config/t-slibgcc-darwin (libgcc_s_%.dylib): Remove old symlinks
before creating new ones. Do symlinks before creating the actual
targets.
* config/t-slibgcc-darwin (libgcc_s_%.dylib): Use --print-multi-lib
to work out which multilibs are actually being built.
2005-09-30 Kazu Hirata <kazu@codesourcery.com>
* tree-vect-transform.c, config/ms1/ms1.md,
config/s390/s390.c, config/v850/v850.md: Fix comment typos.
Follow spelling conventions.
* doc/invoke.texi, doc/md.texi: Fix typos.
2005-09-30 Andrew Macleod <amacleod@redat.com>
PR tree-optimization/21430
* tree-ssa-operands.c (set_virtual_use_link): New. Link new virtual
use operands, and set stmt pointer if need be.
(FINALIZE_CORRECT_USE: New. Macro to call appropriate use fixup routine.
tree-ssa-opfinalize.h (FINALIZE_FUNC): Call FINALIZE_CORRECT_USE if
present.
2005-09-29 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
PR middle-end/24053
* stor-layout.c (set_sizetype): Set TYPE_MAIN_VARIANT of bitsizetype.
2005-09-29 Mark Mitchell <mark@codesourcery.com>
* optabs.c (expand_binop): Initialize first_pass_p.
2005-09-29 Jakub Jelinek <jakub@redhat.com>
PR middle-end/24109
* c-decl.c (c_write_global_declarations_1): If any
wrapup_global_declaration_2 call returned true, restart the loop.
2005-09-29 Daniel Berlin <dberlin@dberlin.org>
Fix PR tree-optimization/24117
* tree-ssa-structalias.c (find_func_aliases): Strip nops
before considering whether to use anyoffset.
2005-09-29 Paolo Bonzini <bonzini@gnu.org>
Revert this patch:
2005-09-15 Paolo Bonzini <bonzini@gnu.org>
* optabs.c (expand_binop): Use swap_commutative_operands_with_target
to order operands.
(swap_commutative_operands_with_target): New.
2005-09-29 Paolo Bonzini <bonzini@gnu.org>
PR c/21419
* gimplify.c (gimplify_asm_expr): Raise an error if an output is
read-only.
2005-09-29 Steven Bosscher <stevenb@suse.de>
PR tree-optimization/23911
* tree-ssa-ccp.c (fold_const_aggregate_ref): Handle REALPART_EXPR
and IMAGPART_EXPR too.
2005-09-28 Mark Mitchell <mark@codesourcery.com>
PR 17886
* expmed.c (expand_shift): Move logic to reverse rotation
direction when rotating by constants ...
* optabs.c (expand_binop): ... here.
* config/i386/i386.md (rotrdi3): Handle 32-bit mode.
(ix86_rotrdi3): New pattern.
(rotldi3): Handle 32-bit mode.
(ix86_rotldi3): New pattern.
2005-09-29 Alan Modra <amodra@bigpond.net.au>
PR target/24102
* config/rs6000/rs6000.md (floatdisf2_internal2): Correct range
check for numbers that need no bit twiddle.
2005-09-28 Geoffrey Keating <geoffk@apple.com>
* config/rs6000/t-darwin8: Uncomment contents, allow -m64
multilib to be built.
* Makefile.in: Export LIPO_FOR_TARGET, STRIP_FOR_TARGET.
(stage1-start): Delete old libgcc and libunwind before moving
anything into the stage directory.
(stage2-start): Likewise.
(stage3-start): Likewise.
(stage4-start): Likewise.
(stageprofile-start): Likewise.
(stagefeedback-start): Likewise.
* config.gcc (*-*-darwin*): Automatically use CPU-specific darwin.h
header in tm_file and CPU-specific t-darwin in tmake_file.
(i[34567]86-*-darwin*): Don't change tm_file.
(powerpc-*-darwin*): Don't change tm_file or tmake_file.
* config/darwin.h (REAL_LIBGCC_SPEC): Rewrite to use proper libgcc
shared library stub for target OS version.
* config/t-slibgcc-darwin (SHLIB_SOLINK): Delete.
(SHLIB_LINK): Don't make SHLIB_SOLINK.
(SHLIB_INSTALL): Don't install SHLIB_SOLINK.
(libgcc_s.%.dylib): New.
(LIBGCC): Define.
(install-darwin-libgcc-stubs): New.
(INSTALL_LIBGCC): New append.
* config/i386/darwin-libgcc.10.4.ver: New.
* config/i386/darwin-libgcc.10.5.ver: New.
* config/i386/t-darwin: New.
* config/rs6000/darwin-libgcc.10.4.ver: New.
* config/rs6000/darwin-libgcc.10.5.ver: New.
* config/rs6000/darwin.h (REAL_LIBGCC_SPEC): Delete.
* config/rs6000/t-darwin (SHLIB_VERPFX): Define.
2005-09-28 Paul Brook <paul@codesourcery.com>
* config/m68k/fpgnulib.c (__extendsfdf2, __truncdfsf2): Handle
denormals.
2005-09-28 Richard Guenther <rguenther@suse.de>
PR tree-optimization/23853
* tree-vect-analyze.c (vect_compute_data_ref_alignment): Use
host_integerp to verify misalignment value.
2005-09-28 Richard Henderson <rth@redhat.com>
* builtins.c (get_builtin_sync_mode): New.
(expand_builtin_sync_operation): Pass in mode argument.
(expand_builtin_compare_and_swap): Likewise.
(expand_builtin_lock_test_and_set): Likewise.
(expand_builtin_lock_release): Likewise.
(expand_builtin): Update to match.
2005-09-28 Nick Clifton <nickc@redhat.com>
* config/v850/v850.h (GO_IF_LEGITIMATE_ADDRESS): Tidy up
formatting. Add check to PLUS case to ensure that the offset is
within an acceptable range.
* config/v850/v850.md (casesi): Disable the generation of the
switch pattern as it is not being handled properly at the moment.
* config/v850/lib1funcs.asm (___ucmpdi2): Correct jump instruction
for when the high words are identical.
2005-09-27 Richard Henderson <rth@redhat.com>
* pretty-print.c (pp_base_format): Fix typo for %>.
2005-09-27 Daniel Berlin <dberlin@dberlin.org>
Devang Patel <dpatel@apple.com>
PR tree-optimization/23625
* tree-flow-inline.h (bsi_after_labels): Remove, first statement is
LABEL_EXPR, assertion check.
2005-09-27 J"orn Rennecke <joern.rennecke@st.com>
* optabs.c (no_conflict_move_test): Check if a result of a
to-be-moved insn would be clobbered by an originally
preceding insn.
2005-09-27 Jeff Law <law@redhat.com>
* passes.c (init_optimization_passes): Replace copy propagation
passes immediately after DOM with phi-only copy propagation
pases. Add phi-only copy propagation pass after first DOM pass.
* tree-pass.h (pass_phi_only_copy_prop): Declare.
* tree-ssa-copy.c (init_copy_prop): Accept new PHI_ONLY argument.
If true, then mark all non-control statements with DONT_SIMULATE_AGAIN.
(execute_copy_prop): Accept new PHI_ONLY argument. Pass it along
to init_copy_prop. Callers updated.
(do_phi_only_copy_prop): New function.
(pass_phi_only_copy_prop): New pass descriptor.
2005-09-27 Nick Clifton <nickc@redhat.com>
* libgcc2.c (__popcount_tab): Remove redundant prototype.
2005-09-26 Jason Merrill <jason@redhat.com>
PR c++/13764
* c-common.c (finish_fname_decls): Use append_to_statement_list_force.
* doc/invoke.texi: Clarify documentation of -fno-enforce-eh-specs.
2005-09-26 James E Wilson <wilson@specifix.com>
* config/ia64/crtbegin.asm, config/ia64/crtend.asm: Remove glibc
copyright. Add gcc copyright plus libgcc exception.
* config/ia64/crtfastmath.asm: Remove glibc copyright. Add gcc
copyright.
* config/ia64/lib1funcs.asm: Add gcc copyright plus libgcc exception.
2005-09-26 Jeff Law <law@redhat.com>
* tree-ssa-dom.c (tree_ssa_dominator_optimize): Be more selective
about when to iterate.
2005-09-23 Fariborz Jahanian <fjahanian@apple.com>
PR target/23847
* config/rs6000/rs6000.c (rs6000_function_value): Parallel pattern
for __complex__ double in -mcpu=G5 mode.
2005-09-26 Sebastian Pop <pop@cri.ensmp.fr>
PR tree-optimization/23942
* Makefile.in (SCEV_H): Depends on PARAMS_H.
* tree-scalar-evolution.c: Include params.h.
(t_bool): New enum.
(follow_ssa_edge, follow_ssa_edge_in_rhs,
follow_ssa_edge_in_condition_phi_branch,
follow_ssa_edge_in_condition_phi, follow_ssa_edge_inner_loop_phi):
Change return type to t_bool. Use a parameter to limit the size of
trees that are walked before stopping
(analyze_evolution_in_loop): Initialize the limit to 0.
(follow_ssa_edge): Give up by returning t_dont_know if the limit
exceeds PARAM_SCEV_MAX_EXPR_SIZE.
2005-09-26 Uros Bizjak <uros@kss-loka.si>
PR middle-end/23831
* simplify-rtx.c (simplify_immed_subreg) [MODE_INT]: Skip
simplification if elem_bitsize > 2 * HOST_BITS_PER_WIDE_INT.
2005-09-26 Fariborz Jahanian <fjahanian@apple.com>
* combine.c (make_extraction): Check for valid use of subreg.
2005-09-26 Uros Bizjak <uros@kss-loka.si>
PR target/24055
* config/i386/i386.md ("*fistdi2_1"): New pattern.
("*fist<mode>2_1"): Use only HImode and SImode register operands.
("fist<mode>2_with_temp"): Use only register operands.
2005-09-26 J"orn Rennecke <joern.rennecke@st.com>
* rtlanal.c (reg_used_between_p): Don't check for CLOBBERs in
CALL_INSN_FUNCTION_USAGE.
2005-09-26 Richard Guenther <rguenther@suse.de>
PR middle-end/15855
* gcse.c: Include hashtab.h, define ldst entry hashtable.
(pre_ldst_expr_hash, pre_ldst_expr_eq): New functions.
(ldst_entry): Use the hashtable instead of list-walking.
(find_rtx_in_ldst): Likewise.
(free_ldst_entry): Free the hashtable.
(compute_ld_motion_mems): Create the hashtable.
(trim_ld_motion_mems): Remove entry from hashtable if
removing it from list.
(compute_store_table): Likewise^2.
(store_motion): Free hashtable in case we did not see
any stores.
2005-09-25 Kazu Hirata <kazu@codesourcery.com>
* fold-const.c (fold_binary): Use op0 and op1 instead of arg0
and arg1 if we are passing them to fold_build2.
2005-09-25 Dan Nicolaescu <dann@ics.uci.edu>
PR 23828
* config/i386/i386.c (ix86_function_regparm): Fix the test for
a nested function.
2005-09-25 Richard Henderson <rth@redhat.com>
* config/alpha/alpha.c (tls_symbolic_operand_1): Trust
SYMBOL_REF_TLS_MODEL to be correct.
2005-09-24 Richard Henderson <rth@redhat.com>
* ipa-type-escape.c (discover_unique_type): Remove dead code at
end of function. Reindent.
2005-09-24 Ian Lance Taylor <ian@airs.com>
* convert.c (convert_to_integer): Don't test for ENUMERAL_TYPE in
NEGATE_EXPR/BIT_NOT_EXPR case.
2005-09-24 Richard Henderson <rth@redhat.com>
* c-common.c (handle_mode_attribute): When not modifying in place,
create subtypes for enumerations.
(sync_resolve_return): Use TYPE_MAIN_VARIANT.
* gimplify.c (create_tmp_from_val): Likewise.
2005-09-24 Alexandre Oliva <aoliva@redhat.com>
* config/i386/i386.md (*tls_global_dynamic_64,
*tls_local_dynamic_base_64): Add missing mode to call.
(tls_global_dynamic_64, tls_local_dynamic_base_64): Likewise.
2005-09-24 Jan Hubicka <jh@suse.cz>
* cgraph.c (cgraph_clone_edge): Make the scale gcov_type.
(cgraph_clone_node): Likewise.
* cgraph.h (cgraph_clone_edge): Update prototype.
(cgraph_mark_inline_edge, cgraph_clone_inlined_nodes): Remove
duplicated prototypes; add updating argument.
* cgraphunit.c (verify_cgraph_node): Verify that counts are non-negative.
* ipa-inline.c (cgraph_clone_inlined_nodes): Allow clonning without
updating profile.
(cgraph_mark_inline_edge): Likewise.
(cgraph_mark_inline): Update use of cgraph_mark_inline_edge.
(cgraph_flatten_node): Likewise.
(cgraph_decide_recursive_inlining): Likewise.
(cgraph_decide_inlining_of_small_function): Likewise.
* tree-optimize.c (tree_rest_of_compilation): Likewise.
2005-09-23 David Edelsohn <edelsohn@gnu.org>
Pete Steinmetz <steinmtz@us.ibm.com>
* config/rs6000/rs6000.md (neg-minus-mult): Set type to dmul.
(rldic.): Set type to "compare".
(rldicr.): Same.
(movsf_hardfloat): Set type to mtjmpr for MTCTR/MTLR. Set type to
mfjmpr for MFCTR/MFLR.
(movdf_hardfloat64): Same.
(movdf_softfloat64): Same. Correct order of store and move types.
(movti_string): Set type to store_ux/load_ux.
(load_multiple): Set type to load_ux.
(store_multiple): Set type to store_ux.
(movmemsi): Set type to store_ux.
(output_cbranch direct_return): Set type to jmpreg.
(stmw): Set type to store_ux.
(lmw): Set type to load_ux.
* config/rs6000/40x.md (ppc403-store): Increase latency to 2.
* config/rs6000/440.md (ppc440-store): Increase latency to 6.
* config/rs6000/603.md (ppc603-store): Occupy LSU for 2 cycles.
* config/rs6000/6xx.md (ppc604-store): Increase latency to 3.
* config/rs6000/mpc.md (mpccore-store): Increase latency to 2.
* config/rs6000/rios1.md (rios1-store): Increase latency to 2.
(rios1-fpstore): Increase latency to 3.
* config/rs6000/rios2.md (rios2-store): Increase latency to 2.
* config/rs6000/rs64.md (rs64a-store): Increase latency to 2.
2005-09-23 David Edelsohn <edelsohn@gnu.org>
Andrew Pinski <pinskia@physics.uc.edu>
* config/rs6000/sync.md (sync_<fetchop_name>si_internal): Change
operand2 constraint to "b".
(sync_<fetchop_name>di_internal): Same.
(sync_old_<fetchop_name>si_internal): Change operand3 constraint
to "b".
(sync_old_<fetchop_name>di_internal): Same.
(sync_new_<fetchop_name>si_internal): Same.
(sync_new_<fetchop_name>di_internal): Same.
2005-09-23 J"orn Rennecke <joern.rennecke@st.com>
PR middle-end/23991
* final.c (insn_default_length, insn_min_length): In !HAVE_ATTR_length
case, define as macros.
PR rtl-optimization/23837
* optabs.c (no_conflict_move_test): Don't set must_stay for a
clobber / clobber match between dest and p->first.
* optabs.c (emit_libcall_block): Use no_conflict_move_test.
(no_conflict_move_test): Update comments.
2005-09-22 Ranjit Mathew <rmathew@gcc.gnu.org>
* doc/install.texi: Update URL for Jacks.
* doc/sourcebuild.texi: Likewise.
2005-09-22 David Edelsohn <edelsohn@gnu.org>
PR target/24007
* config/rs6000/rs6000.md (movsf_hardfloat): Ignore special
registers when choosing register preferences.
(movdf_hardfloat64): Same.
2005-09-22 Andreas Krebbel <krebbel1@de.ibm.com>
* expmed.c (expand_shift): Don't use the target of the rotate as
target for the first expanded shift insn.
* testsuite/gcc.dg/20050922-1.c: Testcase added.
2005-09-21 Zdenek Dvorak <dvorakz@suse.cz>
PR tree-optimization/22438
* tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Handle all
preserved iv rhs rewriting specially.
2005-09-21 Daniel Berlin <dberlin@dberlin.org>
* tree-data-ref.c (analyze_array_indexes): Only estimate when
estimate_only is true.
* tree-flow.h (ref_contains_indirect_ref): New prototype.
* tree-flow-inline.h (ref_contains_indirect_ref): Moved from
tree-ssa-structalias.c
* tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined): Use
ref_contains_indirect_ref.
* tree-ssa-structalias.c (ref_contains_indirect_ref): Moved.
2005-09-21 DJ Delorie <dj@redhat.com>
* config/mn10300/mn10300.c (TARGET_DEFAULT_TARGET_FLAGS): Add
MASK_PTR_A0D0.
(mn10300_return_in_memory): Support variable size types also.
(mn10300_pass_by_reference): Likewise.
(mn10300_function_value): New.
* config/mn10300/mn10300.h (FUNCTION_VALUE): Call the above.
(FUNCTION_OUTGOING_VALUE): Likewise.
* config/mn10300/mn10300.opt: Add -mreturn-pointer-on-d0.
* doc/invoke.texi: Document it.
2005-09-21 Uros Bizjak <uros@kss-loka.si>
PR target/22585
* config/i386/i386.c (ix86_prepare_fp_compare_args): Do not
force integer op1 into register for XFmode compares.
2005-09-21 Kazu Hirata <kazu@codesourcery.com>
PR middle-end/23971
* expmed.c (alg_code): Add alg_impossible.
(alg_hash_entry): Add cost.
(synth_mult): Record alg_impossible in the hash table if
multiplication by a given integer is impossble within the
limit. Speed up using alg_impossible.
2005-09-20 Daniel Berlin <dberlin@dberlin.org>
* tree-ssa-structalias.c (get_constraint_for_component_ref): Add
argument. Allow and set any offset if needs_anyoffset is passed
in.
(get_constraint_for): Add argument here too.
Pass it down.
(do_structure_copy): Pass NULL to get_constraint_for.
(handle_ptr_arith): Ditto.
(find_func_aliases): Ditto.
2005-09-20 J"orn Rennecke <joern.rennecke@st.com>
PR rtl-optimization/23898
* output.h (get_attr_min_length): Declare.
* final.c (get_attr_length_1): New function, broken out of:
(get_attr_length).
(get_attr_min_length): New function.
* bb-reorder.c (copy_bb_p, get_uncond_jump_length): Use it.
(duplicate_computed_gotos): Likewise.
* genattr.c (insn_min_length): Generate declaration.
* genattrtab.c (min_fn, min_attr_value): New functions.
(make_length_attrs): Generate insn_min_length.
2005-09-20 Steve Ellcey <sje@cup.hp.com>
* config/pa/pa.c (output_cbranch): Check for zero in operands[2].
2005-09-20 Richard Henderson <rth@redhat.com>
PR tree-optimization/24059
* expr.c (expand_expr_real_1) <INDIRECT_REF>: Allow modifier
EXPAND_STACK_PARM.
2005-09-20 Joseph S. Myers <joseph@codesourcery.com>
* c.opt (fextended-identifiers): New.
* c-opts.c (c_common_handle_option): Handle
-fextended-identifiers.
* doc/cpp.texi: Update documentation of extended identifiers.
* doc/cppopts.texi (-fextended-identifiers): Document.
2005-09-20 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/23929
* tree-ssa-loop-niter.c (expand_simple_operations): Return immediately
if expr is NULL.
PR tree-optimization/23818
* tree-stdarg.c (execute_optimize_stdarg): Call
calculate_dominance_info.
2005-09-20 Daniel Berlin <dberlin@dberlin.org>
* tree-data-ref.c (get_number_of_iters_for_loop): New function.
(analyze_siv_subscript_cst_affine): Add weak SIV test.
(compute_overlap_steps_for_affine_1_2): Use
get_number_of_iters_for_loop.
(analyze_subscript_affine_affine): Check whether difference is
zero first.
Use get_number_of_iters_for_loop.
Check whether overlap occurs outside of bounds.
(analyze_miv_subscript): Use get_number_of_iters_for_loop.
2005-09-20 Andreas Krebbel <krebbel1@de.ibm.com>
* tree-ssa-address.c (create_mem_ref): Put the symbol reference into the
base register if possible.
2005-09-20 Zdenek Dvorak <dvorakz@suse.cz>
PR tree-optimization/18463
* tree-chrec.c (chrec_convert): Return fold_converted chrec if
converting it directly is not possible.
(chrec_convert_aggressive): New function.
* tree-chrec.h (chrec_convert_aggressive): Declare.
* tree-scalar-evolution.c (instantiate_parameters_1, resolve_mixers):
Fold chrec conversions aggressively if asked to.
(instantiate_parameters): Modified because of changes in
instantiate_parameters_1.
2005-09-19 Richard Henderson <rth@redhat.com>
* config/i386/sse.md (reduc_splus_v4sf): Rename from reduc_plus_v4sf.
(reduc_splus_v2df): New.
2005-09-19 Richard Sandiford <richard@codesourcery.com>
* config/arm/aof.h (REGISTER_NAMES): Add missing backslash.
(ADDITIONAL_REGISTER_NAMES): Add missing comma. Remove final comma.
2005-09-19 Richard Henderson <rth@redhat.com>
* config/i386/sse.md (vcondu<SSEMODE124>): Rename from
vcondu<SSEMODE12>.
2005-09-19 Richard Henderson <rth@redhat.com>
* config/ia64/ia64.c (ia64_expand_widen_sum): New.
(ia64_expand_dot_prod_v8qi): New.
* config/ia64/ia64-protos.h: Update.
* config/ia64/vect.md (pmpy2_r, pmpy2_l, widen_usumv8qi3,
widen_usumv4hi3, widen_ssumv8qi3, widen_ssumv4hi3, udot_prodv8qi,
sdot_prodv8qi, sdot_prodv4hi): New.
(reduc_splus_v2sf): Rename from reduc_plus_v2sf.
2005-09-19 Richard Henderson <rth@redhat.com>
PR 23941
* real.c (exact_real_truncate): Return false if the format cannot
represent the number as a normal.
* config/alpha/alpha.c (alpha_rtx_costs) <FLOAT_EXTEND>: Cost 0
for a memory source.
2005-09-19 Dorit Nuzman <dorit@il.ibm.com>
* tree-ssa-operands.c (swap_tree_operands): Export.
* tree.h (swap_tree_operands): Declare.
* tree-vectorizer.c (vect_is_simple_reduction): Remove ATTRIBUTE_UNUSED.
Call swap_tree_operands.
2005-09-19 Richard Henderson <rth@redhat.com>
* tree-flow.h (merge_alias_info): Declare.
* tree-ssa-copy.c (merge_alias_info): Export.
* tree-vect-transform.c (vect_create_index_for_vector_ref): Remove.
(vect_create_data_ref_ptr): Use create_iv directly.
(vectorizable_load): Use correct types for integer constants.
(vect_generate_tmps_on_preheader): Likewise.
(vect_gen_niters_for_prolog_loop): Likewise.
2005-09-19 Steven Bosscher <stevenb@suse.de>
PR rtl-optimization/23943
* cse.c (find_best_addr): Never propagate an EXPR_LIST rtx.
2005-09-18 Jan Hubicka <jh@suse.cz>
* calls.c (flags_from_decl_or_type): Do not set ECF_LIBCALL_BLOCK.
2005-09-18 Eric Botcazou <ebotcazou@adacore.com>
* varasm.c (output_constant): Do not abort on conversions to union
types between different sizes.
2005-09-18 Richard Guenther <rguenther@suse.de>
PR middle-end/23944
* gimplify.c (fold_indirect_ref_rhs): Fix thinko in
fallback.
2005-09-18 Paul Brook <paul@codesourcery.com>
* config/m68k/fpgnuib.c (__floatsidf): Don't rely on signed overflow.
2005-09-17 Richard Henderson <rth@redhat.com>
* tree-pass.h, tree-flow.h, tree-ssa-dce.c: Revert last change.
* tree-ssa-loop.c (pass_vect_dce): Remove.
* passes.c (init_optimization_passes): Add pass_dce as a sub-pass
of pass_vectorize.
2005-09-17 Richard Henderson <rth@redhat.com>
* tree-pass.h (pass_vect_dce): Declare.
* passes.c (init_optimization_passes): Add it.
* tree-flow.h (tree_ssa_dce): Declare.
* tree-ssa-dce.c (tree_ssa_dce): Export.
* tree-ssa-loop.c (tree_vectorize): Move current_loops check ...
(gate_tree_vectorize): ... here.
(pass_vect_dce): New.
2005-09-17 Jan Hubicka <jh@suse.cz>
* except.c (struct eh_status): Turn region_array into vec.
(expand_resx_expr, collect_eh_region_array, remove_unreachable_regions,
convert_from_eh_region_ranges, find_exception_handler_labels,
current_function_has_exception_handlers, assign_filter_values,
build_post_landing_pads, dw2_build_landing_pads,
sjlj_find_directly_reachable_regions, sjlj_mark_call_sites,
sjlj_emit_dispatch_table, remove_eh_handler, for_each_eh_region,
foreach_reachable_handler, can_throw_internal_1,
convert_to_eh_region_ranges, verify_eh_tree): Update uses of
region_array.
(duplicate_eh_region_1): Update region_array.
(duplicate_eh_regions): Resize region_array and avoid recomputing.
2005-09-17 David Edelsohn <edelsohn@gnu.org>
PR middle-end/22067
* expmed.c (expand_mult): Substitute simple register for op0 when
computing max_cost.
2005-09-17 Richard Henderson <rth@redhat.com>
* expr.c (emit_move_via_integer): Add force argument, pass it on
to emit_move_change_mode. Update callers.
(emit_move_complex): Pass true to new force argument.
* function.c (expand_function_end): Move expand_eh_return call
earlier. Merge sub-word complex values into a pseudo before
copying to the return hard register.
2005-09-17 Eric Botcazou <ebotcazou@adacore.com>
* varasm.c (output_constant): Do not abort on VIEW_CONVERT_EXPRs
between different sizes.
2005-09-16 Paolo Bonzini <bonzini@gnu.org>
PR 23903
* passes.c (init_optimization_passes): Register dump files for
IPA passes first.
2005-09-16 Andreas Krebbel <krebbel1@de.ibm.com>
* config/s390/s390-protos.h (s390_overlap_p): Prototype added.
* config/s390/s390.c (s390_overlap_p): New function.
* config/s390/s390.md ("*mvc" peephole2, "*nc" peephole2, "*oc"
peephole2, "*xc" peephole2): Added overlap check to the peephole2
condition.
2005-09-16 Richard Guenther <rguenther@suse.de>
* ipa-pure-const.c (static_execute): Free auxiliar information.
* ipa-type-escape.c (discover_unique_type): Free temporary key.
* tree-vrp.c (remove_range_assertions): Free blocks_visited sbitmap.
2005-09-15 DJ Delorie <dj@redhat.com>
* config/m32c/m32c-lib1.S (__m32c_eh_return): Fix typo.
2005-09-15 Paolo Bonzini <bonzini@gnu.org>
* optabs.c (expand_binop): Use swap_commutative_operands_with_target
to order operands.
(swap_commutative_operands_with_target): New.
2005-09-15 Daniel Berlin <dberlin@dberlin.org>
* tree-data-ref.c (analyze_array_indexes): Add estimate_only
parameter.
Update callers.
(estimate_iters_using_array): New function.
* tree-data-ref.h (estimate_iters_using_array): Prototype
* tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined):
Use estimate_iters_using_array instead of analyze_array.
2005-09-15 Eric Botcazou <ebotcazou@adacore.com>
* tree-nested.c (get_frame_type): Mark the "non-local frame structure"
as addressable.
2005-09-15 Michael Matz <matz@suse.de>
* tree-vrp.c (vrp_int_const_binop <MINUS_EXPR>): Handle 0 - -INF.
2005-09-14 Daniel Berlin <dberlin@dberlin.org>
PR tree-optimization/23835
* tree-ssa-alias.c (sort_pointers_by_pt_vars): New function.
(create_name_tags): Rewrite to be not O(num_ssa_names^2).
2005-09-14 Richard Henderson <rth@redhat.com>
* config/ia64/vect.md (addv2sf3, subv2sf3): Rewrite as expand.
(addv2sf3_1, addv2sf3_2, subv2sf3_1, subv2sf3_2): New.
2005-09-14 Andrew Pinski <pinskia@physics.uc.edu>
* config/i386/i386.c (contains_128bit_aligned_vector_p): Add break
in the ARRAY_TYPE case.
2005-09-14 Eric Botcazou <ebotcazou@adacore.com>
* tree.c (substitute_in_expr, case 4): New case, for ARRAY_REF.
2005-09-14 Uros Bizjak <uros@kss-loka.si>
PR middle-end/22480
* tree-vect-transform.c (vectorizable_operation): Return false for
scalar shift operations and for vector shift operations with
non-invariant shift arguments. Use scalar tree operand op1 as
a shift operand when vector shift insn pattern uses scalar shift
operand.
* Makefile.in (tree-vect-transform.o): Depend on recog.h.
2005-09-14 Olivier Hainque <hainque@adacore.com>
* gimplify.c (gimplify_init_ctor_eval): Don't discard a zero-sized
value if it has side-effects.
2005-09-14 David Edelsohn <edelsohn@gnu.org>
PR target/22068
* config/rs6000/rs6000.md (muldi3): Add mulli alternative.
2005-09-14 Alan Modra <amodra@bigpond.net.au>
* config/rs6000/linux64.h (DBX_OUTPUT_BRAC): Treat function name
passed as NAME as if it were label at start of function code.
2005-09-13 Kaz Kojima <kkojima@gcc.gnu.org>
* config/sh/sh.md (*movv4sf_i): Add general register cases to
the constraints.
2005-09-13 Andrew Pinski <pinskia@physics.uc.edu>
* config/rs6000/darwin.md (movdf_low_si): Mark the outgoing r constraint
as early clobber. Rewrite so the PIC register is not implicitly used.
2005-09-13 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
* tree.c (annotate_with_file_line): Compare line numbers before
file names.
2005-09-13 Uros Bizjak <uros@kss-loka.si>
PR target/23816
* config/i386/sse.md (*ieee_sminv4sf3, *ieee_smaxv4sf3)
(*ieee_sminv2df3, *ieee_smaxv2df3): New insn patterns.
2005-09-13 Ian Lance Taylor <ian@airs.com>
* loop-doloop.c (doloop_modify): Use GEN_INT to pass an rtx rather
than a HOST_WIDEST_INT to gen_doloop_begin.
2005-09-13 Diego Novillo <dnovillo@redhat.com>
* tree-dfa.c (dump_variable): Guard against NULL annotations.
2005-09-13 Zdenek Dvorak <dvorakz@suse.cz>
PR tree-optimize/23817
* tree-cfg.c (tree_merge_blocks): Preserve loop closed ssa.
2005-09-13 Alan Modra <amodra@bigpond.net.au>
PR target/23774
* config/rs6000/rs6000.md (restore_stack_block): Write the backchain
word before changing the stack pointer. Use gen_frame_mem for MEMs.
Use UNSPEC_TIE to prevent insn scheduling reordering the insns.
(restore_stack_nonlocal): Likewise.
(save_stack_nonlocal): Use template to emit insns, and gen_frame_mem.
2005-09-12 Ian Lance Taylor <ian@airs.com>
PR g++/7874
* c.opt (ffriend-injection): New C++ option.
* doc/invoke.texi (Option Summary): Mention -ffriend-injection.
(C++ Dialect Options): Document -ffriend-injection.
2005-09-12 Josh Conner <jconner@apple.com>
PR middle-end/23237
* ipa-reference.c (static_execute): Don't mark variables in
named sections TREE_READONLY.
2005-09-12 Alan Modra <amodra@bigpond.net.au>
* config/rs6000/rs6000.c (get_next_active_insn): Simplify test for
stack_tie.
2005-09-12 Andrew Pinski <pinskia@physics.uc.edu>
* tree-ssa-dse.c (dse_optimize_stmt): Fix up all of V_MAY_DEF and
V_MUST_DEF instead of just the first_use_p.
Don't mark the virtual variables for renaming on the statement which
is being removed.
(pass_dse): Remove TODO_update_ssa.
2005-09-12 J"orn Rennecke <joern.rennecke@st.com>
PR middle-end/23290
* stor-layout.c (compute_record_mode): For records with a single
field, actually check the field's mode size against the type size.
* sh.h (HARD_REGNO_MODE_OK): Allow V4SFmode in general purpose
registers for TARGET_SHMEDIA.
(enum reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Rename
GENERAL_FP_REGS to GENERAL_DF_REGS. Add GENERAL_FP_REGS as union
of GENERAL_REGS and FP_REGS.
2005-09-12 Bernd Schmidt <bernd.schmidt@analog.com>
* config/bfin/bfin.c (legimitize_pic_address): Use gen_const_mem.
2005-09-12 Alan Modra <amodra@bigpond.net.au>
* config/rs6000/rs6000.c (get_next_active_insn): Rewrite using
CALL_P, JUMP_P and NONJUMP_INSN_P, so that barriers and labels
are omitted. Exclude stack_tie insn too.
2005-09-11 David Edelsohn <edelsohn@gnu.org>
PR rtl-optimization/23098
* config/rs6000/predicates.md (easy_fp_constant): SFmode constant
0.0f is easy.
* config/rs6000/rs6000.md (movdf splitter): Use
const_double_operand predicate for TARGET_POWERPC64.
* config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Expand
SYMBOL_REF method to ABI_V4.
* config/rs6000/altivec.md (build_vector_mask_for_load): Use
replace_equiv_address.
* config/rs6000/rs6000.c (rs6000_emit_eh_reg_restore): Mark MEM as
rs6000_sr_alias_set and MEM_NOTRAP.
(rs6000_aix_emit_builtin_unwind_init): Use gen_frame_mem().
2005-09-11 Eric Botcazou <ebotcazou@adacore.com>
* tree.c (contains_placeholder_p) <tcc_expression>: Properly
handle CALL_EXPR again.
2005-09-11 Richard Earnshaw <richard.earnshaw@arm.com>
* arm/predicates.md (alignable_memory_operand): Delete.
2005-09-10 Richard Henderson <rth@redhat.com>
PR debug/23806
* dbxout.c (dbxout_expand_expr): New.
(dbxout_symbol): Use it.
2005-09-10 Richard Earnshaw <richard.earnshaw@arm.com>
* arm.c (arm_gen_rotated_half_load): Delete.
(vfp_emit_fstmx, arm_set_return_address): Use gen_frame_mem.
(emit_multi_reg_push, emit_sfm, arm_expand_prologue)
(thumb_set_return_address): Likewise.
(thumb_load_double_from_address): Use adjust_address.
* arm.md (splits calling arm_gen_rotated_half_load): Delete.
(extendhsisi2_mem, movhi_bytes): Use change_address.
(movhi): Use widen_memory_access.
(reload_out_df): Use replace_equiv_address.
* arm-protos.h (arm_gen_rotated_half_load): Delete prototype.
2005-09-09 Richard Henderson <rth@redhat.com>
PR debug/20998
* dbxout.c: Include expr.h.
(dbxout_global_decl): Don't suppress for DECL_RTL unset.
(dbxout_symbol): Handle DECL_VALUE_EXPR.
* Makefile.in (dbxout.o): Add EXPR_H.
2005-09-09 Zdenek Dvorak <dvorakz@suse.cz>
PR tree-optimization/23509
* tree-cfg.c (replace_uses_by): Use replace_exp.
* tree-ssa-loop-ivopts.c (get_ref_tag): Assert that dereferenced
pointers have name_mem_tag or type_mem_tag set.
2005-09-09 Sebastian Pop <pop@cri.ensmp.fr>
* tree-chrec.c (evolution_function_is_invariant_rec_p): Use
CHREC_LEFT and CHREC_RIGHT for accessing chrec components instead
of wrongly accessing operands.
2005-09-09 Sebastian Pop <pop@cri.ensmp.fr>
* Makefile.in (tree-chrec.o): Depends on SCEV_H.
* tree-chrec.c: Include tree-scalar-evolution.h.
(chrec_convert): Instantiate the base and step before calling
scev_probably_wraps_p that would fail on parametric evolutions.
Collect all the fails into a single section failed_to_convert,
print a diagnostic, and return chrec_dont_know instead of calling
fold_convert.
* tree-scalar-evolution.c (loop_closed_phi_def): New.
(instantiate_parameters_1): Avoid instantiation of loop closed ssa
phi nodes.
(scev_const_prop): Don't replace the definition of a loop closed ssa
phi node by itself, or by another loop closed ssa phi node.
* tree-ssa-loop-niter.c (scev_probably_wraps_p, convert_step): Check
that base and step are defined.
2005-09-09 Richard Guenther <rguenther@suse.de>
PR c++/23624
* fold-const.c (fold_ternary): Check truth_value_p before
calling invert_truthvalue.
2005-09-09 Nick Clifton <nickc@redhat.com>
* Makefile.in (LIBGCC_DEPS): Add libgcc2.h.
* libgcc2.c (__clz_tab[], __popcount_tab[]): Set the fixed
dimension of these arrays.
* libgcc2.h (__clz_tab[], __popcount_tab[]): Add exports of
these arrays.
* longlong.h: Only provide a prototype for the __clz_tab[] array
if this header has not been included from libgcc2.h.
* config/stormy16/stormy16-lib2.c: Include libgcc2.h rather than
defining own types.
Provide prototypes for exported functions.
Use the __clz_tab[] and __popcount_tab[] arrays provided by
libgcc2.c.
2005-09-08 Josh Conner <jconner@apple.com>
PR c++/21135
PR c++/23180
* expr.c (expand_expr_addr_expr_1): Don't invoke
expand_simple_binop for EXPAND_INITIALIZER.
2005-09-08 Richard Henderson <rth@redhat.com>
PR debug/23190
* toplev.c (wrapup_global_declaration_1): Split out ...
(wrapup_global_declaration_2): ... from ...
(wrapup_global_declarations): ... here. Return bool.
(check_global_declaration_1): Split out ...
(check_global_declarations): from here.
(emit_debug_global_declarations): New.
* toplev.h (wrapup_global_declaration_1, wrapup_global_declaration_2,
check_global_declaration_1, emit_debug_global_declarations): Declare.
* c-decl.c (c_write_global_declarations_1): Don't create a vector
of decls. Call wrapup_global_declaration_1,
wrapup_global_declaration_2, check_global_declaration_1 directly.
(c_write_global_declarations_2): New.
(ext_block): New.
(c_write_global_declarations): Call c_write_global_declarations_2.
* langhooks.c (write_global_declarations): Call
emit_debug_global_declarations.
* cgraphunit.c (cgraph_varpool_remove_unreferenced_decls): Don't
remove decls that have DECL_RTL_SET_P.
* passes.c (rest_of_decl_compilation): Invoke
cgraph_varpool_finalize_decl for all but functions.
2005-09-08 Eric Botcazou <ebotcazou@libertysurf.fr>
* tree-vrp.c (extract_range_from_unary_expr): Do not set the range for
the result of a conversion if the new min and max cannot be compared.
2005-09-08 Andreas Krebbel <krebbel1@de.ibm.com>
* config/s390/s390.c (s390_sr_alias_set): Variable removed.
(override_options): Setting s390_sr_alias_set removed.
(save_fpr, save_gprs): Set alias set to vararg or frame.
(restore_fpr, restore_gprs, s390_emit_prologue): Replace
s390_sr_alias_set with get_frame_alias_set ().
(s390_gimplify_va_arg): Replace s390_sr_alias_set with
get_varargs_alias_set ().
2005-09-08 Andrew Pinski <pinskia@physics.uc.edu>
PR objc/20574
PR objc/19324
* c-parser.c (c_parser_objc_method_definition): If the next
token is not "{", error out and don't start the function.
2005-09-08 Andrew Pinski <pinskia@physics.uc.edu>
* tree-vrp.c (extract_range_from_expr): Move the check for non
nullness after the check for gimple invariant.
2005-09-08 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
* tree.c (host_integerp, tree_low_cst): Correct function comment.
2005-09-08 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
PR target/23747
* config/m32r.md (movmemsi_internal): Canonicalize order of
operands in PLUS component of template.
2005-09-07 Andreas Krebbel <krebbel1@de.ibm.com>
* reload1.c (fixup_eh_region_note): Remove assertion.
(fixup_abnormal_edges): Reverted removal of call to
find_many_sub_basic_blocks made on 2005-08-31.
2005-09-07 Richard Henderson <rth@redhat.com>
* function.c (ARG_POINTER_CFA_OFFSET): Move ...
* defaults.h (ARG_POINTER_CFA_OFFSET): ... here.
(INCOMING_FRAME_SP_OFFSET): Move from dwarf2out.c.
* dwarf2out.c (struct cfa_loc): Change reg to unsigned int,
rearrange for better packing.
(INCOMING_FRAME_SP_OFFSET): Move to defaults.h.
(lookup_cfa_1): Remove inline marker.
(cfa_equal_p): Split out of ...
(def_cfa_1): ... here. Use INVALID_REGNUM.
(build_cfa_loc): Handle !cfa->indirect.
(frame_pointer_cfa_offset): New.
(dbx_reg_number): Assert register elimination performed; do
leaf register remapping.
(reg_loc_descriptor): Avoid calling dbx_reg_number when unused.
(eliminate_reg_to_offset): New.
(based_loc_descr): Remove can_use_fbreg argument. Use fbreg only
for verifiably local stack frame addresses; re-base to CFA.
(mem_loc_descriptor): Remove can_use_fbreg argument.
(concat_loc_descriptor, loc_descriptor): Likewise.
(containing_function_has_frame_base): Remove.
(rtl_for_decl_location): Don't do register elimination or
leaf register remapping here.
(secname_for_decl): Split out from ..
(add_location_or_const_value_attribute): ... here.
(convert_cfa_to_loc_list): New.
(compute_frame_pointer_to_cfa_displacement): New.
(gen_subprogram_die): Use them.
* tree.h (frame_base_decl): Remove.
* var-tracking.c (frame_base_decl, frame_stack_adjust): Remove.
(prologue_stack_adjust): Remove.
(vt_stack_adjustments): Use INCOMING_FRAME_SP_OFFSET.
(adjust_stack_reference): Re-base memories to arg_pointer_rtx.
(set_frame_base_location): Remove.
(compute_bb_dataflow, emit_notes_in_bb): Don't call it.
(dump_attrs_list, dump_dataflow_set): Use string concatenation.
(vt_add_function_parameters): Don't eliminate_regs.
(vt_initialize): Don't create frame_base_decl.
2005-09-07 Eric Botcazou <ebotcazou@libertysurf.fr>
* doc/install.texi (*-*-solaris2*): Clarify wording on the recommended
version of GNU binutils for 4.x and later.
2005-09-06 Mark Mitchell <mark@codesourcery.com>
* ggc-page.c (ggc_push_context): Remove.
(ggc_pop_context): Likewise.
* ggc.h (ggc_push_context): Remove.
(ggc_pop_context): Likewise.
2005-09-06 Saurabh Verma <saurabh.verma@codito.com>
PR target/8973
* config/arc/arc.c (arc_output_function_epilogue): Update flags while
returning from an interrupt handler.
2005-09-06 Saurabh Verma <saurabh.verma@codito.com>
PR target/8972
* config/arc/arc.c (output_shift): Add check for loop count when
optimizing.
2005-09-06 Steven Bosscher <stevenb@suse.de>
* tree-ssa-phiopt.c (conditional_replacement): Construct proper SSA
form manually.
(abs_replacement): Likewise.
(pass_phiopt): Remove TODO_update_ssa.
2005-09-06 Jakub Jelinek <jakub@redhat.com>
PR c/23075
* c-typeck.c (c_finish_return): Set TREE_NO_WARNING on RETURN_EXPR
if "return with no value, in function returning non-void" warning
has been issued.
* tree-cfg.c (execute_warn_function_return): Don't look at
RETURN_EXPRs with TREE_NO_WARNING set.
PR target/22362
* config/i386/i386.c (ix86_function_regparm): Make sure automatic regparm
for internal functions doesn't use registers used by global registers
variables. Use fewer register parameters if there are global register
variables.
2005-09-06 Olivier Hainque <hainque@adacore.com>
Eric Botcazou <ebotcazou@adacore.com>
PR middle-end/14997
* expr.c (expand_expr_real) <normal_inner_ref>: Force op0 to mem
when we would be extracting outside its bit span (bitpos+bitsize
larger than its mode), possible with some VIEW_CONVERT_EXPRs from
Ada unchecked conversions.
2005-09-06 Steven Bosscher <stevenb@suse.de>
* tree-ssa-pre.c (try_look_through_load): New function.
(compute_avail): Use it to try to look through loads for some
more useful expressions.
2005-09-06 Saurabh Verma <saurabh.verma@codito.com>
* simplify-rtx.c (simplify_binary_operation_1): Correct the
condition for detecting cases like (a&a) and (a^a).
2005-09-06 Keith Besaw <kbesaw@us.ibm.com>
* common.opt: Add option ftree-vect-loop-version.
* params.def: Add --param vect-max-version-checks.
* doc/invoke.texi: Document ftree-vect-loop-version and
--param vect-max-version-checks.
* tree-vectorizer.h (_loop_vec_info): Add ptr_mask and
may_misalign_stmts and defines for accessors.
* tree-vectorizer.c : (new_loop_vec_info): VEC_alloc for
LOOP_VINFO_MAY_MISALIGN_STMTS.
(destroy_loop_vec_info): VEC_free for
LOOP_VINFO_MAY_MISALIGN_STMTS.
* tree-vect-analyze.c (vect_compute_data_ref_alignment):
Update documentation.
(vect_update_misalignment_for_peel): New.
(vect_enhance_data_refs_alignment): Update to choose loop
peeling or loop versioning if appropriate for the (potentially)
unaligned data references in the loop.
(vect_analyze_data_refs_alignment): Remove call to
vect_enhance_data_refs_alignment so the checks can be done
earlier.
(vect_analyze_loop): Add call to vect_enhance_data_refs_alignment
and move up call to vect_analyze_data_refs_alignment.
* tree-vect-transform.c (vect_create_cond_for_align_checks): New.
(vect_transform_loop): Add call to loop_version.
2005-09-06 Jakub Jelinek <jakub@redhat.com>
PR rtl-optimization/23098
* cse.c (fold_rtx_mem): Call delegitimize_address target hook.
* simplify-rtx.c (constant_pool_reference_p): New function.
* rtl.h (constant_pool_reference_p): New prototype.
* config/i386/i386.md (pushf split, mov[sdx]f split): Use
constant_pool_reference_p in condition and
avoid_constant_pool_reference in preparation statements.
2005-09-06 Andreas Krebbel <krebbel1@de.ibm.com>
* gcse.c (try_replace_reg): Disallow REG_EQUAL notes for
STRICT_LOW_PART SETs.
2005-09-06 Alan Modra <amodra@bigpond.net.au>
PR middle-end/21460
* except.c (sjlj_emit_function_enter): Find the function begin
note even when it's not in first basic block.
2005-09-06 Kelley Cook <kcook@gcc.gnu.org>
* acinclude.m4: Renamed from aclocal.m4. Delete AM_LANGINFO_CODESET,
AM_PROG_CC_C_O, and AM_AUX_DIR_EXPAND.
* aclocal.m4: Regenerate.
2005-09-05 DJ Delorie <dj@redhat.com>
* config/m32c/m32c.h (TRAMPOLINE_ALIGNMENT): Correct misspelling
of macro.
2005-09-06 Kazu Hirata <kazu@codesourcery.com>
* gimplify.c, ipa-prop.h, varasm.c, config/vxlib.c,
config/vxworks.h, config/crx/crx.c, config/ms1/ms1.c,
config/ms1/ms1.md, config/rs6000/rs6000.c: Fix comment typos.
Follow spelling conventions.
* doc/invoke.texi: Follow spelling conventions.
2005-09-05 J"orn Rennecke <joern.rennecke@st.com>
* rtl.h (gen_frame_mem, gen_tmp_stack_mem): Declare.
* emit-rtl.c (gen_frame_mem, gen_tmp_stack_mem): New functions.
* builtins.c (expand_builtin_return_addr): Use gen_frame_mem.
2005-09-05 J"orn Rennecke <joern.rennecke@st.com>
PR target/23683
* sh.c (sh_reorg, emit_load_ptr): Use gen_const_mem.
(output_stack_adjust): Use gen_tmp_stack_mem.
(sh_expand_prologue, sh_expand_epilogue): Use gen_frame_mem.
(sh_set_return_address, sh_allocate_initial_value): Likewise.
(sh_get_pr_initial_val): Likewise.
(sh_builtin_saveregs): Use gen_frame_mem and change_address.
(sh_initialize_trampoline): Likewise. Also use adjust_address.
* sh.md (divsi_inv_m0): Use gen_const_mem.
(push_fpscr, pop_fpscr, load_ra): Use gen_frame_mem.
(movdf_i4+1): Use gen_tmp_stack_mem.
(reload_outdf+3, reload_outdf+4, fpu_switch+1): Use change_address.
(fpu_switch+2): Likewise.
(movv4sf_i, movv16sf_i): Use adjust_address.
(symGOT_load): Set MEM_NOTRAP_P bit.
2005-09-04 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
PR target/23721
* pa.c (emit_move_sequence): Fix typo in last change.
2005-09-03 Jakub Jelinek <jakub@redhat.com>
PR rtl-optimization/23454
* reorg.c (relax_delay_slots): Only call invert_jump if any_condjump_p
is true.
2005-09-03 Richard Henderson <rth@redhat.com>
John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
PR middle-end/23671
* pa.c (emit_move_sequence): Use replace_equiv_address instead of
gen_rtx_MEM.
2005-09-02 Nicolas Pitre <nico@cam.org>
* config/arm/arm.c (arm_legitimize_address): Limit the value passed
to bit_count to 32 bits.
2005-08-31 Mark Mitchell <mark@codesourcery.com>
PR c++/23167
* gimplify.c (gimplify_expr): Handle TREE_ADDRESSABLE types when
generating synthetic loads from volatile lvalues.
005-09-02 Nick Clifton <nickc@redhat.com>
* config/stormy16/stormy16-lib2.c (__popcounthi2, __parityhi2,
__ctzhi2, __clzhi2): New functions.
2005-09-02 Andrew Pinski <pinskia@physics.uc.edu>
PR middle-end/23547
* tree-nested.c (struct var_map_elt): Mark with GTY.
(struct nesting_info): Mark with GTY. Mark var_map's param is struct
var_map_elt.
(lookup_field_for_decl): Allocate new element in GC memory.
(lookup_tramp_for_decl): Likewise.
(convert_nl_goto_reference): Likewise
(create_nesting_tree): Allocate info in GC memory. Likewise for
info->var_map.
(free_nesting_tree): Free with ggc_free instead of free.
(root): New static variable.
(lower_nested_functions): Remove root as local variable. And zero out
root at the end of the function.
2005-09-02 J"orn Rennecke <joern.rennecke@st.com>
PR rtl-optimization/20365
* simplify-rtx.c (simplify_plus_minus_op_data): Change type of neg
to short. New member ix.
(simplify_plus_minus_op_data_cmp): Break ties using ix member.
(simplify_plus_minus): Initialize ix members before calling qsort.
2005-09-02 Zdenek Dvorak <dvorakz@suse.cz>
PR tree-optimization/23626
* tree-cfg.c (replace_uses_by): Clean up eh info.
2005-09-01 DJ Delorie <dj@redhat.com>
* config/m32c/m32c.c (m32c_valid_pointer_mode): Remove stray debug
fprintf.
2005-09-01 David Edelsohn <edelsohn@gnu.org>
* config/rs6000/rs6000.c (setup_incoming_varargs): Set MEM_NOTRAP_P.
(rs6000_split_multireg_move): Use replace_equiv_address instead of
gen_rtx_MEM.
2005-09-01 Craig Rodrigues <rodrigc@gcc.gnu.org>
* c-decl.c (diagnose_mismatched_decls): With -Wredundant-decls,
do not issue warning for a variable definition following
a declaration.
2005-09-01 Richard Henderson <rth@redhat.com>
PR 23668
* config/i386/i386.c (ix86_expand_vector_init_one_var): Restore
conversion to CONST_VECTOR.
2005-09-01 Richard Henderson <rth@redhat.com>
PR 23676
* reload1.c (reload_as_needed): Check !CALL_P before calling
fixup_eh_region_note.
* rtlanal.c (may_trap_p): SUBREG by itself cannot trap.
2005-09-01 DJ Delorie <dj@redhat.com>
* varasm.c (output_constant): Let the target resolve
conversions of addresses to non-default pointer sizes.
2005-09-01 Nicolas Pitre <nico@cam.org>
* config/arm/arm.c (arm_legitimize_address): Split absolute addresses
to alow matching ARM pre-indexed addressing mode.
(arm_override_options): Remove now irrelevant comment.
2005-09-01 Phil Edwards <phil@codesourcery.com>
* config.gcc (i*86-wrs-vxworks): Update. Split out vxworksae target.
* config/i386/t-vxworks: Update multilibs for VxWorks 6 and RTP mode.
* config/i386/vxworks.h: Likewise.
* config/i386/t-vxworksae: New file, for VxWorks AE.
* config/i386/vxworksae.h: Likewise.
2005-09-01 Sebastian Pop <pop@cri.ensmp.fr>
PR tree-optimization/23410
* tree-ssa-loop-niter.c (scev_probably_wraps_p): Check that the
sequence is not wrapping during the first step.
2005-09-01 Jakub Jelinek <jakub@redhat.com>
PR debug/7241
* dwarf2out.c (base_type_die): Compare char_type_node with
TYPE_MAIN_VARIANT (type), not type.
2005-09-01 Richard Guenther <rguenther@suse.de>
PR tree-optimization/15366
* common.opt: Add -finline-functions-called-once.
Put -fearly-inlining in alphabetically ordered place.
* doc/invoke.texi: Document new option.
* ipa-inline.c (cgraph_decide_inlining): Honour
flag_inline_functions_called_once.
2005-09-01 Jakub Jelinek <jakub@redhat.com>
PR rtl-optimization/23478
* local-alloc.c (struct qty): Add n_throwing_calls_crossed field.
(alloc_qty): Initialize it.
(update_equiv_regs): Clear REG_N_THROWING_CALLS_CROSSED.
(combine_regs): Combine also n_throwing_calls_crossed fields.
(find_free_reg): Don't attempt to caller-save pseudos crossing
calls that might throw.
* global.c (struct allocno): Add throwing_calls_crossed field.
(global_alloc): Revert 2005-08-22 change. Initialize
throwing_calls_crossed.
(find_reg): Don't attempt to caller-save pseudos crossing calls that
might throw.
2005-09-01 Alan Modra <amodra@bigpond.net.au>
PR target/23649
* config/rs6000/predicates.md (mask_operand): Only handle rlwinm masks.
(mask64_operand): Reinstate code prior to 2005-06-11 change.
(mask64_2_operand): Reinstate code prior to 2004-11-11 change.
(and64_2_operand): Tweak to use predicate.
(and_operand): Adjust for mask_operand changes.
* config/rs6000/rs6000.c (num_insns_constant): Revert 2005-06-11.
(print_operand): Likewise.
(rs6000_rtx_costs): Pass mode to mask_operand and use mask64_operand.
(mask64_1or2_operand): Delete.
* rs6000/rs6000-protos.h (mask64_1or2_operand): Delete.
* config/rs6000/rs6000.h (EXTRA_CONSTRAINT <S>): Revert 2005-06-11.
(EXTRA_CONSTRAINT <T>): Pass operand mode to predicate.
(EXTRA_CONSTRAINT <t>): Disallow mask64_operand matches.
* config/rs6000/rs6000.md (andsi3_internal3 split): Revert 2005-06-11.
(rotldi3_internal4): Likewise.
(rotldi3_internal5, rotldi3_internal5 split): Likewise.
(rotldi3_internal6, rotldi3_internal6 split): Likewise.
(ashldi3_internal7): Likewise.
(ashldi3_internal8, ashldi3_internal8 split): Likewise.
(ashldi3_internal, ashldi3_internal9 split): Likewise.
(anddi3 split): Don't match mask64_operand.
(anddi3_internal2): Add rlwinm. Modify 't' splitter predicate.
(anddi3_internal3): Add rlwinm. Use and64_2_operand in non-cr0
splitter and match TARGET_64BIT not TARGET_POWERPC64. Modify
't' splitter predicate.
(movdi_internal64 + 2): Revert 2005-06-11 change.
2005-08-31 DJ Delorie <dj@redhat.com>
* config/m32c/m32c.c (m32c_valid_pointer_mode): New.
(m32c_asm_integer): Add support for 32 bit pointers.
2005-08-31 Richard Henderson <rth@redhat.com>
* emit-rtl.c (set_mem_attributes_minus_bitpos): Look through
component-like references for setting MEM_NOTRAP_P.
* config/i386/i386.c (ix86_setup_incoming_varargs): Set MEM_NOTRAP_P.
* config/alpha/alpha.c (alpha_setup_incoming_varargs): Likewise.
2005-08-31 Richard Henderson <rth@redhat.com>
* expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Force subregs
into a pseudo before applying gen_lowpart.
2005-08-31 Geoffrey Keating <geoffk@apple.com>
* doc/install.texi (Specific): Update cctools version required
for full functionality.
* config/darwin.h (LINK_SPEC): Pass -mmacosx-version-min to the
linkers as -macosx_version_min.
2005-08-31 J"orn Rennecke <joern.rennecke@st.com>
PR target/21255
* sh.c (print_operand, %R and %S): Add handling of floating point
registers, memory, constants and invalid operands.
2005-08-31 Daniel Berlin <dberlin@dberlin.org>
* ipa-pure-const.c: Change dump name.
2005-08-31 Uros Bizjak <uros@kss-loka.si>
PR target/23570
* config/i386/sse.md (*sse_concatv2sf): Change operand 2 constraint
to "reg_or_0_operand".
(sse2_loadld): Change operand 1 constraint to "reg_or_0_operand".
2005-08-31 Dale Johannesen <dalej@apple.com>
* loop-iv.c (iv_number_of_iterations): Fix overflow check for
loops that count down.
2005-08-31 Richard Henderson <rth@redhat.com>
PR rtl-opt/23601
* reload1.c (reload): Set MEM_NOTRAP_P in spill slots.
(fixup_eh_region_note): New.
(reload_as_needed): Call it.
(fixup_abnormal_edges): Allow all throwing insns to be deleted;
don't call find_many_sub_basic_blocks; call verify_flow_info.
* function.c (assign_stack_local_1): Set MEM_NOTRAP_P.
(keep_stack_depressed): Likewise.
(assign_stack_temp_for_type): Likewise; use adjust_address_nv.
2005-08-31 Richard Henderson <rth@redhat.com>
* config/i386/i386.c (ix86_function_ok_for_sibcall): Fix test for
fp return matching.
2005-08-31 Fariborz Jahanian <fjahanian@apple.com>
* expr.c (expand_expr_real_1): Compare size of address
mode to target's address mode size in deciding expansion of
the constant address.
2005-08-31 Richard Guenther <rguenther@suse.de>
PR middle-end/23477
* expr.c (all_zeros_p): New function.
(expand_expr_real_1): Handle the case of an all-zero
non-addressable constructor separately.
2005-08-31 Adrian Straetling <straetling@de.ibm.com>
* builtins.c: (expand_builtin_strcpy, expand_builtin_strcat): Change
arguments, adjust all callers.
(expand_builtin_strcat): Rewrite to call strcpy instead of mempcpy.
2005-08-30 Richard Henderson <rth@redhat.com>
PR target/23630
* expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Use gen_lowpart
whenever the mode sizes match.
2005-08-31 Alan Modra <amodra@bigpond.net.au>
* calls.c (load_register_parameters): Fix comment typo.
* expr.c (emit_push_insn): Comment formatting.
2005-08-30 Ian Lance Taylor <ian@airs.com>
* config/i386/x-cygwin (host-cygwin): Change dependency from
hosthooks-def.h to $(HOSTHOOKS_DEF_H).
2005-08-29 Geoffrey Keating <geoffk@apple.com>
* config/i386/i386.c (ix86_expand_vector_init_one_var): Don't modify
parts of 'vals'.
2005-08-29 Andrew Pinski <pinskia@physics.uc.edu>
PR middle-end/23408
* ipa-inline.c (cgraph_decide_inlining_incrementally): Remove the
call to ggc_collect.
2005-08-29 Paolo Bonzini <bonzini@gnu.org>
PR bootstrap/21268
* Makefile.in (ALL_CPPFLAGS): Include $(INCLUDES) at the
beginning. Remove $(INCLUDES) from all the rules, if following
$(ALL_CPPFLAGS) or $(BUILD_CPPFLAGS).
2005-08-29 Jakub Jelinek <jakub@redhat.com>
PR middle-end/23484
* builtins.c (fold_builtin_memory_chk, fold_builtin_stxcpy_chk,
fold_builtin_strncpy_chk, fold_builtin_snprintf_chk): If len is
not constant, but maxlen is, don't set len to maxlen, rather
set maxlen to len if len is a constant.
2005-08-29 Zdenek Dvorak <dvorakz@suse.cz>
PR tree-optimization/23475
* tree-ssa-loop-ivcanon.c (remove_empty_loop): Update frequencies
and counts.
2005-08-28 Daniel Berlin <dberlin@dberlin.org>
Fix PR middle-end/22455
* fold-const.c (fold_checksum_tree): Adjust for now-largest tree size.
Checksum only the parts of the tree that exist for the tree code.
2005-08-28 Dale Johannesen <dalej@apple.com>
* config/i386/i386.c (nocona_cost): Increase MOVE_RATIO.
2005-08-28 Andrew Pinski <pinskia@physics.uc.edu>
* tree-vrp.c: Remove obsolete comment in front of vrp_initialize.
2005-08-28 Richard Henderson <rth@redhat.com>
* stor-layout.c (finalize_type_size): Revert workaround from 08-26.
* tree.c (make_node_stat): Use BITS_PER_UNIT instead of alignment
of char_type_node.
2005-08-28 Jakub Jelinek <jakub@redhat.com>
PR ada/23593
* builtins.c (get_memory_rtx): Don't strip nops
in between COMPONENT_REFs.
2005-08-27 Andrew Pinski <pinskia@physics.uc.edu>
PR middle-end/23463
* gimplify.c (gimplify_modify_expr_rhs): Remove check for zero sized
types.
(gimplify_modify_expr): Check for zero sized types and gimplify the
rhs and lhs as statements.
2005-08-27 John David Anglin <dave.anflin@nrc-cnrc.gc.ca>
PR libgcj/23508
* pa/linux-unwind.h (pa32_fallback_frame_state): Use r0 slot in frame
state for return address column of signal frames.
2005-08-27 David Edelsohn <edelsohn@gnu.org>
PR target/23539
* config/rs6000/rs6000.c (expand_block_clear): Use HImode when
bytes >= 2 not bytes == 2.
(expand_block_move): Same.
2005-08-27 Richard Guenther <rguenther@suse.de>
PR target/23575
* config/i386/sse.md (sse2_movsd): Add missing closing
braces.
2005-08-27 Paul Brook <paul@codesourcery.com>
* genrecog.c (enum decision_type): Add DT_num_insns.
(struct decision_test): Add u.num_insns.
(add_to_sequence): Add DT_num_insns test.
(maybe_both_true_2, nodes_identical_1): Handle DT_num_insns.
(write_cond, debug_decision_2): Ditto.
(change_state): Assume peep2_next_insn never fails.
Remove "afterward" argument.
(write afterward, write_tree): Update to match.
* recog.c (peep2_current_count): New variable.
(peep2_next_insn): Check it.
(peephole2_optimize): Set peep2_current_count.
* recog.h (peep2_current_count): Declare.
2005-08-26 Josh Conner <jconner@apple.com>
PR middle-end/23584
* ipa-pure-const.c (check_tree): Check for volatile-ness
when considering a dereference.
2005-08-27 Jakub Jelinek <jakub@redhat.com>
* rtl.h (MEM_IN_STRUCT_P): Fix comment typo.
2005-08-26 Jakub Jelinek <jakub@redhat.com>
PR rtl-optimization/23561
* builtins.c (get_memory_rtx): Add LEN argument. If MEM_EXPR is
a COMPONENT_REF, remove all COMPONENT_REF from MEM_EXPR unless
at most LEN bytes long memory fits into the field.
(expand_builtin_memcpy, expand_builtin_mempcpy, expand_movstr,
expand_builtin_strncpy, expand_builtin_memset, expand_builtin_memcmp,
expand_builtin_strcmp, expand_builtin_strncmp): Adjust callers.
2005-08-26 Richard Henderson <rth@redhat.com>
PR rtl-opt/23560
* loop.c (biased_biv_may_wrap_p): New.
(maybe_eliminate_biv_1): Use it to suppress non-equality
comparison transformations. Delete disabled code.
2005-08-26 Ian Lance Taylor <ian@airs.com>
* combine.c (make_extraction): Avoid reference outside object.
2005-08-26 J"orn Rennecke <joern.rennecke@st.com>
* stor-layout.c (finalize_type_size): Restore behaviour for
non-aggregate types to the status quo ante of the patch for
pr 23467. Document why it matters.
2005-08-26 Jakub Jelinek <jakub@redhat.com>
PR c/23506
* c-common.c (c_common_nodes_and_builtins): Increase builtin_types
array by one element, initialize the BT_LAST element with NULL.
2005-08-26 David Edelsohn <edelsohn@gnu.org>
* config/rs6000/rs6000.md (eq<mode>_compare): Only enable when
optimizing for size.
(plus_eqsi): Same.
(compare_plus_eqsi): Same.
(plus_eqsi_compare): Same.
(neg_eq0<mode>): Same.
(neg_eq<mode>): Same.
* config/rs6000/aix52.h (PROCESSOR_DEFAULT): Change to
PROCESSOR_POWER4.
2005-08-26 Nick Clifton <nickc@redhat.com>
* config/v850/v850.c (ep_memory_operand): Return FALSE if
TARGET_EP is not defined.
* config/v850/c850.h (TARGET_CPU_CPP_BUILTINS): Define __EP__ if
TARGET_EP is enabled.
(OPTIMIZATION_OPTIONS): Do not define MASK_EP when optimizing.
* config/v850/v850.md (save_all_interrupt): Only use the EP
register if TARGET_EP is defined.
(restore_all_interrupt): Likewise.
* config/v850/lib1funcs.asm: Update functions so that the EP
register is only used if __EP__ is defined.
2005-08-26 David Ung <davidu@mips.com>
* config/mips/mips.c (mips_expand_prologue): Handle case when
generating for MIPS16 and the outgoing argument area is more than
SMALL_OPERAND. Use the frame pointer as temporary to generate the
add instruction.
2005-08-26 Paul Woegerer <paul.woegerer@nsc.com>
* config/crx/crx.md: Make doloop_end pattern usage controllable
via mloop-nesting=<max-nesting> command line switch. Make sure
the combiner cannot use doloop_end_<mode> in an illegal way.
* config/crx/crx.c: Use regs up to r6 for argument passing.
Refine crx_address_cost (non cst4 displacements are expensive).
* config/crx/crx.opt: Add switch for mloop-nesting=.
2005-08-26 Adrian Straetling <straetling@de.ibm.com>
* config/s390/s390.md: ("movstr", "*movstr"): Add patterns.
(UNSPEC_MVST): New constant.
2005-08-26 Andreas Krebbel <krebbel1@de.ibm.com>
* config/s390/predicates.md ("shift_count_operand", "setmem_operand"):
Reject operands containing eliminable registers.
* testsuite/gcc.dg/20050825-1.c: New testcase.
2005-08-24 Paolo Bonzini <bonzini@gnu.org>
Jan Hubicka <jh@suse.cz>
* regmove.c (reg_is_remote_constant_p): Reorganize to not use log links.
2005-08-24 Paolo Bonzini <bonzini@gnu.org>
PR tree-optimization/23546
* tree-ssa-loop-im.c (for_each_index): Handle INTEGER_CST
and REAL_CST nodes.
2005-08-24 Pete Steinmetz <steinmtz@us.ibm.com>
* params.def (PARAM_MIN_SPEC_PROB): New.
* sched-rgn.c (MIN_PROBABILITY): Delete.
(compute_trg_info): Convert to PARAM_VALUE.
* doc/invoke.texi (param): Document min-spec-prob.
2005-08-24 Fariborz Jahanian <fjahanian@apple.com>
* config/darwin.h: define __PIC__
* config/rs6000/darwin.h: Add SUBTARGET_OS_CPP_BUILTINS to
TARGET_OS_CPP_BUILTINS macro.
2005-08-24 Paolo Bonzini <bonzini@gnu.org>
* config/rs6000/rs6000.md: Fix thinko in the peephole2 I added
yesterday.
2005-08-24 Zdenek Dvorak <dvorakz@suse.cz>
* bb-reorder.c (copy_bb, duplicate_computed_gotos): Add argument
to duplicate_block.
* cfghooks.c (duplicate_block): Added position where to place
new block as argument.
* cfghooks.h (duplicate_block): Declaration changed.
* cfglayout.c (copy_bbs): Add argument after. Pass it to
duplicate_block.
* cfglayout.h (copy_bbs): Declaration changed.
* cfgloop.h (loop_version): Declaration changed.
* cfgloopmanip.c (duplicate_loop_to_header_edge): Pass
position to copy_bbs.
(loop_version): Pass position to duplicate_loop_to_header_edge.
Add place_after argument and position new blocks according to
it.
* modulo-sched.c (sms_schedule): Pass place_after argument
to loop_version.
* tracer.c (tail_duplicate): Pass argument to duplicate_block.
* tree-cfg.c (split_edge_bb_loc): New function.
(tree_split_edge, tree_duplicate_sese_region): Use split_edge_bb_loc
to determine position of new blocks.
* tree-ssa-loop-unswitch.c (tree_unswitch_loop): Pass argument
to loop_version.
* tree-ssa-threadupdate.c (create_block_for_threading): Pass
argument to duplicate_block.
* tree-vectorizer.c (slpeel_tree_duplicate_loop_to_edge_cfg):
Pass position to copy_bbs.
2005-08-24 Zdenek Dvorak <dvorakz@suse.cz>
* fold-const.c (ptr_difference_const): Use
cst_and_fits_in_hwi instead of host_integerp.
2005-08-24 Paolo Bonzini <bonzini@gnu.org>
* config/darwin.c (gen_pic_offset): New.
(machopic_indirect_data_reference, machopic_legitimize_pic_address):
Use it.
2005-08-23 Zdenek Dvorak <dvorakz@suse.cz>
PR tree-optimization/23486
* tree-ssa-loop.c (pass_scev_cprop): Add TODO_update_ssa_only_virtuals.
2005-08-23 Phil Edwards <phil@codesourcery.com>
* config.gcc (*-*-vxworks*): Update tm_file, add extra_options,
remove use_collect2.
(powerpc-wrs-vxworks): Update, split out *-*-vxworksae target.
* target-def.h (TARGET_HAVE_CTORS_DTORS): Allow target
configuration files to override the default value.
* config/t-vxworks: Remove INSTALL_ASSERT_H. Define STMP_FIXPROTO,
EXTRA_HEADERS, and EXTRA_MULTILIB_PARTS.
* config/vx-common.h: New file, split out from...
* config/vxworks.h: here. Update for VxWorks 6.x and RTP mode.
* config/vxworksae.h: New file, for VxWorks AE.
* config/vxworks.opt: New file.
* config/vxlib.c: Update for VxWorks 6.
* config/rs6000/t-vxworks (MULTILIB_OPTIONS): New list. Adjust
other MULTILIB_* variables appropriately.
(LIB2FUNCS_EXTRA, EXTRA_MULTILIB_PARTS): Correct from t-ppccomm.
* config/rs6000/t-vxworksae: New file, adjust multilibs for AE.
* config/rs6000/vxworks.h: Update for VxWorks 6.
* config/rs6000/vxworksae.h: New file, mostly placeholder for now.
2005-08-23 Andrew Pinski <pinskia@physics.uc.edu>
PR target/20799
* config/darwin.c (machopic_select_section): Remove the hack to
mark "::operator new" and "::operator delete" for coalescing
even though they are not weak.
2005-08-24 Alan Modra <amodra@bigpond.net.au>
* configure.ac (HAVE_LD_NO_DOT_SYMS): Set for powerpc-linux biarch.
* configure: Regenerate.
2005-08-23 Paolo Bonzini <bonzini@gnu.org>
PR middle-end/23517
* fold-const.c (fold_convert): Use VIEW_CONVERT_EXPR to convert
between vectors.
* convert.c (convert_to_integer, convert_to_vector): Likewise.
* tree-vect-generic.c (tree_vec_extract, expand_vector_operations_1):
Likewise.
2005-08-23 Paolo Bonzini <bonzini@gnu.org>
* config/rs6000/predicates.md (equality_operator): New.
* config/rs6000/rs6000.md: Rewrite as a peephole2 the split for
comparison with a large constant.
2005-08-23 Mark Mitchell <mark@codesourcery.com>
* hwint.h (HOST_WIDE_INT_PRINT): Use HOST_LONG_LONG_FORMAT.
2005-08-23 J"orn Rennecke <joern.rennecke@st.com>
* sh.c (sh_builtin_saveregs): If the number of to-be-saved fp
registers is even, and we have a hardware double precision fp,
align the buffer.
(sh_gimplify_va_arg_expr): For floating point arguments, consider
size of current argument when checking if argument was passed in
registers.
* sh.c (sh_attr_renesas_p): Handle error_mark_node.
PR middle-end/23467
* stor-layout.c (finalize_type_size): Dont override
existing alignment with a smaller alignment from the mode.
2005-08-23 Sebastian Pop <pop@cri.ensmp.fr>
* lambda-code.c (lambda_vector_lexico_pos): Moved...
* lambda.h (lambda_vector_lexico_pos): ... here.
* tree-data-ref.c (build_classic_dist_vector): Return false when
the distance vector is lexicographically negative.
2005-08-23 Sebastian Pop <pop@cri.ensmp.fr>
PR tree-optimization/23511
* tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined): Don't
handle cases where TYPE_MIN_VALUE or TYPE_MAX_VALUE are NULL_TREE.
2005-08-23 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/22043
* tree.h (count_type_elements): Add ALLOW_FLEXARR argument.
* expr.c (count_type_elements): Add ALLOW_FLEXARR argument.
If ALLOW_FLEXARR, handle types ending with flexible array member.
Pass false as second argument to recursive count_type_elements calls.
(categorize_ctor_elements_1, mostly_zeros_p): Pass false as second
argument to count_type_elements call.
* tree-sra.c (decide_block_copy): Likewise.
* gimplify.c (gimplify_init_constructor): If num_type_elements < 0
for a constant-sized object, set cleared as well. Pass true as
second argument to count_type_elements call.
2005-08-23 Alan Modra <amodra@bigpond.net.au>
PR target/21571
* config/rs6000/rs6000.c (rs6000_legitimate_small_data_p): Rename
from legitimate_small_data_p, and make global. Update use.
Remove forward declaration.
* config/rs6000/rs6000-protos.h (rs6000_legitimate_small_data_p):
Declare.
* config/rs6000/rs6000.md (movdf_hardfloat32): Allow small data mems.
2005-08-23 David Edelsohn <edelsohn@gnu.org>
* config/rs6000/rs6000.md (eq<mode>): Use output operand instead
of scratch intermediates.
(eq<mode>_compare): Same.
(neg_eq0<mode>): New.
(neg_eq<mode>): Convert to define_insn_and_split.
2005-08-23 Alan Modra <amodra@bigpond.net.au>
PR target/23070
* config/rs6000/rs6000.c (function_arg): For ABI_V4 calls to
stdarg functions, set/clear the fp marker even when no variable
args are passed.
* config/rs6000/sysv4.opt (mprototype): Describe.
2005-08-22 Jakub Jelinek <jakub@redhat.com>
PR rtl-optimization/23478
* regs.h (reg_info): Add throw_calls_crossed.
(REG_N_THROWING_CALLS_CROSSED): Define.
* flow.c (allocate_reg_life_data): Initialize
REG_N_THROWING_CALLS_CROSSED.
(propagate_one_insn, attempt_auto_inc): Update
REG_N_THROWING_CALLS_CROSSED.
* global.c (global_alloc): Don't allocate pseudos across
calls that may throw.
2005-08-22 Andrew Pinski <pinskia@physics.uc.edu>
PR c/18715
* c-common.c (c_do_switch_warnings): Look for a node where the enum's
value is inbetween the range if we did not find an exact match.
2005-08-22 Aldy Hernandez <aldyh@redhat.com>
* doc/invoke.texi (Option Summary): Add ms1 options.
* doc/extend.texi: Document interrupt handler attribute for ms1.
* doc/md.texi: Document ms1 constraints.
* config.gcc: Add ms1-*-elf.
* config/ms1/ms1.h: New.
* config/ms1/ms1.c: New.
* config/ms1/ms1.md: New.
* config/ms1/ms1-protos.h: New.
* config/ms1/ABI.txt: New.
* config/ms1/crti.asm: New.
* config/ms1/crtn.asm: New.
* config/ms1/lib2extra-funcs.c: New.
* config/ms1/t-ms1: New.
* config/ms1/ms1.opt: New.
2005-08-22 Ira Rosen <irar@il.ibm.com>
* config/rs6000/altivec.md (xorv4sf3): New.
(negv4sf2, neg<mode>2): Likewise.
2005-08-21 H.J. Lu <hongjiu.lu@intel.com>
PR target/23485
* config/ia64/ia64.md (divsi3): Check divide by zero.
(udivsi3): Likewise.
(divdi3): Likewise.
(udivdi3): Likewise.
2005-08-21 Jakub Jelinek <jakub@redhat.com>
* simplify-rtx.c (simplify_immed_subreg) <case CONST_DOUBLE>: Only clear
up to elem_bitsize bits, not max_bitsize.
2005-08-21 Sebastian Pop <pop@cri.ensmp.fr>
PR tree-optimization/23433
* tree-chrec.c (chrec_apply): Translate INTEGER_CST to a
REAL_CST when the type is SCALAR_FLOAT_TYPE_P.
2005-08-21 Sebastian Pop <pop@cri.ensmp.fr>
PR tree-optimization/23434
* tree-ssa-loop-niter.c (proved_non_wrapping_p): Give up when
the iteration bound is not an INTEGER_CST.
2005-08-21 Dorit Nuzman <dorit@il.ibm.com>
* tree-vect-transform.c (get_initial_def_for_reduction): Set
need_epilog_adjust back to false for MIN/MAX case. Set *scalar_def to
NULL if need_epilog_adjust is false.
(vect_create_epilog_for_reduction): Variable adjust_in_epilog removed.
Case 3 always peels first itration, not just for PLUS case, and no need
to use scalar_initial_def here. Create an epilog adjustment only if
scalar_initial_def is not NULL.
(vectorizable_reduction): Remove assert.
2005-08-20 H.J. Lu <hongjiu.lu@intel.com>
PR target/23485
* config/ia64/lib1funcs.asm (__divdi3): Check divide by zero.
(__moddi3): Likewise.
(__udivdi3): Likewise.
(__umoddi3): Likewise.
(__divsi3): Likewise.
(__modsi3): Likewise.
(__udivsi3): Likewise.
(__umodsi3): Likewise.
2005-08-20 Jakub Jelinek <jakub@redhat.com>
* tree-pass.h (TDF_GRAPH): Define.
* tree-dump.c (dump_options): Don't set TDF_GRAPH in "all".
* passes.c (finish_optimization_passes): Only call
finish_graph_dump_file if TDF_GRAPH is set.
(execute_one_pass): Only call clean_graph_dump_file if dump_file !=
NULL. Set TDF_GRAPH bit.
(execute_todo): Call print_rtl_graph_with_bb if TDF_GRAPH is set.
2005-08-20 Richard Earnshaw <richard.earnshaw@arm.com>
* arm.h (arm_stack_offsets): Add locals_base field.
* arm.c (arm_get_frame_offsets): Compute it.
(thumb_compute_initial_elimination offset): Make the Thumb frame
pointer point to the base of the local variables.
(thumb_expand_prologue): Update accordingly.
(thumb_expand_epilogue): Likewise.
* arm.md (thumb_movhi_clobber): Make this insn a define_expand. Change
mode of clobbered scratch to DImode. Handle a case that's known to
need this.
2005-08-19 David Edelsohn <edelsohn@gnu.org>
* config/rs6000/rs6000.md (gt0<mode>): Delete.
(gt0<mode>_compare): Delete.
(neg_gt0<mode>): Delete.
2005-08-19 Eric Christopher <echristo@apple.com>
* optabs.h: Change CTI_ to COI_.
* optabs.c: Ditto.
2005-08-19 James E Wilson <wilson@specifix.com>
* builtins.c (expand_builtin_return_addr): Set
current_function_accesses_prior_frames when count != 0. Use
frame_pointer_rtx when count == 0.
* function.h (struct function): Add accesses_prior_frames field.
(current_function_accesses_prior_frames): Define.
* reload1.c (init_elim_table): Check
current_function_accesses_prior_frames.
* doc/tm.texi (INITIAL_FRAME_ADDRESS_RTX): Update docs.
2005-08-19 Diego Novillo <dnovillo@redhat.com>
* tree-cfgcleanup.c (cleanup_tree_cfg): Fix flowgraph change
indicator. Return true if the flowgraph changed during
cleanup.
2005-08-19 Diego Novillo <dnovillo@redhat.com>
PR 23476
* tree-cfgcleanup.c (cleanup_control_expr_graph): Fold the
conditional expression before testing its value.
2005-08-19 Diego Novillo <dnovillo@redhat.com>
* doc/invoke.texi: Fix documentation for -ftree-dominator-opts.
2005-08-19 Devang Patel <dpatel@apple.com>
PR tree-optimization/23048
* tree-if-conv.c (if_convertible_bb_p): Supply basic_block as
third parameter. Check whether latch is dominated by exit
block or not.
(if_convertible_loop_p): Supply exit block itself to
if_convertible_bb_p.
2005-08-19 Richard Earnshaw <richard.earnshaw@arm.com>
PR target/23473
* arm.md (arm_load_pic_register): Change argument to the mask of
saved registers. Call thumb_find_work_register if we need a
scratch register on Thumb.
(arm_expand_prologue): Pass empty register set to
arm_load_pic_register.
(thumb_expand_prologue): Pass live_regs_mask directly to
arm_load_pic_register.
* arm-protos.h (arm_load_pic_register): Update prototype.
2005-08-19 J"orn Rennecke <joern.rennecke@st.com>
* sh.c (find_sole_member): New function.
(sh_gimplify_va_arg_expr): Use it. Allow RECORD_TYPE mode mismatch
if the record's alignment is larger than the size of its only member.
2005-08-19 Richard Earnshaw <richard.earnshaw@arm.com>
PR target/23436
* arm.c (thumb_legitimize_reload_address): New function.
* arm-protos.h (thumb_legitimize_reload_address): Add prototype.
* arm.h (THUMB_LEGITIMIZE_RELOAD_ADDRESS): Call it.
2005-08-19 Paul Woegerer <paul.woegerer@nsc.com>
* config/crx/crx.c: Implement crx_decompose_address. Reject
symbolic displacements since CRX register relative adressing
mode can't handle unsigned 32-bit values as displacements.
* config/crx/crx.h: Simplify definitions, remove redundant
parenthesis and obsolete macros.
* config/crx/crx.opt: Add new switch for debugging addresses.
* config/crx/crx-protos.h: Add new declarations for above.
2005-08-19 Andrew Pinski <pinskia@physics.uc.edu>
PR middle-end/20624
* gimple-low.c (block_may_fallthru): Handle CLEANUP_POINT_EXPR by
looking past it.
2005-08-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* collect2.c (dup2): Delete.
* configure.ac: Don't check for dup2.
* config.in, configure: Regenerate.
2005-08-18 J"orn Rennecke <joern.rennecke@st.com>
* sh.c (sh_gimplify_va_arg_expr): Loop to substitute a RECORD_TYPE
record with the type of its only member.
2005-08-18 David Edelsohn <edelsohn@gnu.org>
* config/rs6000/rs6000.md (ltu<mode>_compare): Convert to
define_insn_and_split.
(plus_ltu<mode>_compare): Same.
(gtu<mode>_compare): Same.
(plus_gtu<mode>_compare): Same.
2005-08-18 Dorit Nuzman <dorit@il.ibm.com>
PR tree-optimization/22228
* tree-ssa-loop (pass_vectorize): Add TODO_verify_loops to
todo_flags_start.
* tree-vect-transform.c (vect_transform_loop): Mark the variables that
are recorded in vect_vnames_to_rename for renaming.
* tree-vectorizer.c (vect_vnames_to_rename): New global bitmap.
(slpeel_update_phi_nodes_for_guard1): Record virtual vars for renaming
in vect_vnames_to_rename.
(vectorize_loops): Allocate and free the vect_vnames_to_rename bitmap.
* tree-vectorizer.h (vect_vnames_to_rename): New extern variable.
2005-08-18 Jan Hubicka <jh@suse.cz>
PR c++/22034
* cgraphunit.c (cgraph_varpool_assemble_pending_decls): Emit debug
info only for local statics, not for member variables.
2005-08-18 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
* tree-data-ref.c (analyze_siv_subscript_cst_affine): Fix comment typo.
2005-08-18 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
* c-typeck.c (designator_errorneous): Rename to designator_erroneous.
2005-08-18 Andrew Pinski <pinskia@physics.uc.edu>
PR middle-end/16045
* builtins.c (fold_builtin): Create a new NOP_EXPR all the time.
2005-08-17 James E Wilson <wilson@specifix.com>
* c-decl.c (grokdeclarator): Use TYPE_SIZE_UNIT not TYPE_SIZE in
array size check.
2005-08-17 David Edelsohn <edelsohn@gnu.org>
* config/rs6000/rs6000.md (leu<mode>): Convert to mode macro.
(leu<mode>_compare): Same.
(plus_leu<mode>): Same.
(neg_leu<mode>): Same.
(and_neg_leu<mode): Same.
(ltu<mode>_compare): Same.
(plus_ltu<mode>): Same.
(geu<mode>): Same.
(geu<mode>_compare): Same.
(plus_geu<mode>): Same.
(neg_geu<mode>): Same.
(and_neg_geu<mode>): Same.
(plus_gt<mode>): Same.
(gtu<mode>_compare): Same.
(plus_gtu<mode>): Same.
2005-08-17 Erik Christiansen <erik@dd.nec.com.au>
* config/v850/lib1funcs.asm (callt_save_interrupt): Fix comment typos.
Move call_table_data to end. Delete spurious .text.
(callt_save_all_interrupt): Fix comment typo.
2005-08-17 James E Wilson <wilson@specifix.com>
Kevin Winchester <winchester@amirix.com>
PR target/21684
* config/mcore/mcore.h (SHIFT_COUNT_TRUNCATED): Define to 0.
2005-08-17 Uros Bizjak <uros@kss-loka.si>
PR target/23268
* config/i386/i386.md ("*fist<mode>2_1"): New pattern.
("lrint<mode>2"): Change expander to use "*fist<mode>2_1" pattern.
2005-08-17 J"orn Rennecke <joern.rennecke@st.com>
* sh.c (sh_gimplify_va_arg_expr): Don't substitute a RECORD_TYPE
record with the type of its only member if the modes don't match.
* varasm.c (decode_reg_name): Skip empty additional register names.
2005-08-16 Zdenek Dvorak <dvorakz@suse.cz>
* tree-ssa-loop-im.c (MAX_LSM_NAME_LENGTH, lsm_tmp_name,
lsm_tmp_name_length): New.
(lsm_tmp_name_add, gen_lsm_tmp_name, get_lsm_tmp_name): New functions.
(schedule_sm): Use get_lsm_tmp_name instead of "lsm_tmp".
2005-08-16 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
Andreas Krebbel <krebbel1@de.ibm.com>
* config.gcc: Added z9-109 switch.
* config/s390/2084.md ("x_int", "x_agen", "x_lr", "x_la", "x_larl",
"x_load", "x_store", "x_branch", "x_call", "x_mul_hi", "x_mul_sidi",
"x_div", "x_sem", "x_cs", "x_vs", "x_stm", "x_lm", "x_other",
"x_fsimpdf", "x_fsimpsf", "x_fdivdf", "x_fdivsf", "x_floaddf",
"x_floadsf", "x_fstore_df", "x_fstoresf", "x_ftoi", "x_itof"): Enable
for "z9_109" cpu attribute.
* config/s390/s390.c (z9_109_cost): New processor cost structure.
(CONST_OK_FOR_Os, CONST_OK_FOR_Op, CONST_OK_FOR_On): New macros.
(s390_handle_arch_option): Added z9-109 switch.
(override_options): Set respective cost function for z9-109.
(s390_const_ok_for_constraint_p): New constraints Os, Op, On.
(legitimate_reload_constant_p): Accept extended immediates.
(print_operand): Three new output modifiers added: k, m and o.
(s390_adjust_priority, s390_issue_rate): Handle Z9_109 like Z990.
(s390_output_mi_thunk): Use extended immediate when possible.
* config/s390/s390.h (processor_flags): Added PF_EXTIMM.
(TARGET_CPU_EXTIMM, TARGET_EXTIMM): New macros.
(CONSTRAINT_LEN): Added length of O constraint.
(CLZ_DEFINED_VALUE_AT_ZERO): Definition added.
* config/s390/s390.md ("cpu"): New value z9_109 added.
("*tstdi_extimm", "*tstdi_ccconly_extimm", "*tstsi_extimm",
"*tstsi_cconly_extimm", "*movdi_64extimm", "*extendhidi2_extimm",
"*extendqidi2_extimm", "*extendhisi2_extimm", "*extendqisi2_extimm",
"*zero_extend<mode>si2_extimm", "*anddi3_extimm", "*iordi3_extimm",
"*xordi3_extimm", "clzdi2", "clztidi2"): New patterns.
("*tstdi", "*tstsi", "*movdi_64", "*extendhisi2", "*extendqisi2",
"*zero_extend<mode>si2_64", "zero_extendqihi2", "*zero_extendqihi2_64",
"*anddi3", "*iordi3", "*xordi3"): Disable for TARGET_EXTIMM.
("*cmpdi_cct", "*cmpsi_cct", "*cmpdi_ccs", "*cmpsi_ccs", "*cmpdi_ccu",
"*cmpsi_ccu", "*movsi_zarch", "*adddi3_imm_cc", "*adddi3_carry1_cc",
"*adddi3_carry2_cc", "*adddi3_cc", "*adddi3_64", "*addsi3_imm_cc",
"*addsi3_carry1_cc", "*addsi3_carry2_cc", "*addsi3_cc", "addsi3",
"*andsi3_cc", "*andsi3_cconly", "*andsi3_zarch", "*iorsi3_cc",
"*iorsi3_cconly", "*iorsi3_zarch", "*xorsi3_cc", "*xorsi3_cconly",
"*xorsi3", "*xorhi3", "*xorqi3"): Added instruction using extended
immediates.
("extend<mode>di2", "extend<mode>si2", "zero_extend<mode>di2",
"zero_extend<mode>si2"): Allow memory operands and don't manually emit
insns for TARGET_EXTIMM.
2005-08-17 Andreas Krebbel <krebbel1@de.ibm.com>
* testsuite/gcc.dg/20020926-1.c: Added "-mesa" to dg-options.
2005-08-17 Nick Clifton <nickc@redhat.com>
* config/stormy16/stormy16.c (xstormy16_encode_section_info):
Call default_encode_section_info.
2005-08-17 Steven Bosscher <stevenb@suse.de>
PR tree-optimization/21574
* tree-ssa-ccp.c (likely_value): If the right hand side is a
constant, return CONSTANT.
(ccp_lattice_meet): Use operand_equal_p instead of simple_cst_equal.
(ccp_fold, visit_assignment): Likewise.
(evaluate_stmt): Handle UNDEFINED and UNKNOWN_VAL the same way.
2005-08-16 James A. Morrison <phython@gcc.gnu.org>
* c-typeck.c (build_function_call): Call fold_buildN_initializer or
fold_buildN instead of buildN then fold_initializer or fold.
(build_unary_op): Likewise.
(build_binary_op): Likewise.
* fold-const.c (fold_initializer): Remove.
(fold_build1_initializer): New function.
(fold_build2_initializer): New function.
(fold_build3_initializer): New function.
* tree.h (fold_initializer): Remove.
(fold_build1_initializer): New function.
(fold_build2_initializer): New function.
(fold_build3_initializer): New function.
2005-08-16 James A. Morrison <phython@gcc.gnu.org>
* fold-const.c (optimize_bit_field_compare): Remove extra fold call.
(try_move_mult_to_index): Call fold_build2 instead of build2.
(fold_binary): Don't call fold after calls to try_move_mult_to_index.
* tree-ssa-loop-niter.c (inverse): Call int_const_binop instead of
fold_binary_to_constant.
(infer_loop_bounds_from_undefined): Call fold_build2 instead of
fold (build.
* tree-data-ref.c (tree_fold_divides_p): Use tree_int_cst_equal to
check if A == gcd (A, B). Remove TYPE argument.
(analyze_offset) Use fold_build2 instead of fold (build.
(create_data_ref): Likewise.
(analyze_siv_subscript_cst_affine): Update calls to tree_fold_divides_p.
* tree-ssa-ccp.c (widen_bitfield): Call fold_build2 instead of build2
then fold.
2005-08-17 Kelley Cook <kcook@gcc.gnu.org>
* config/arm/unaligned-funcs.c,config/i386/crtfastmath.c,
ipa-cp.c,ipa-prop.c,ipa-prop.h: Update FSF address.
2005-08-16 Andrew Pinski <pinskia@physics.uc.edu>
PR tree-opt/23402
* gimplify.c (zero_sized_type): New function.
(gimplify_modify_expr_rhs): If we have a zero sized type,
replace the statement with an empty statement.
2005-08-16 H.J. Lu <hongjiu.lu@intel.com>
* config/i386/crtfastmath.c (set_fast_math): Add "=m" for
fxsave.
2005-08-16 Ian Lance Taylor <ian@airs.com>
* doc/tm.texi (Label Output): Correct typo.
2005-08-16 Steven Bosscher <stevenb@suse.de>
PR target/23376
* loop-unroll.c (analyze_insn_to_expand_var): Make sure that
force_operand will work later on using have_insn_for.
2005-08-16 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
* fold-const.c (tree_expr_nonnegative_p): Regroup cases.
2005-08-16 Ian Lance Taylor <ian@airs.com>
PR c++/23337
* gimplify.c (gimplify_init_ctor_eval): If we see an element of
vector type, don't try to construct it element by element. Add an
assertion that we use a FIELD_DECL when building a COMPONENT_REF.
2005-08-16 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
* fold-const.c (fold_ternary): Simplify folding of a CALL_EXPR.
2005-08-16 Geoffrey Keating <geoffk@apple.com>
* doc/invoke.texi (Precompiled Headers): Document some more options
which are known to be safe.
2005-08-16 James E Wilson <wilson@specifix.com>
PR tree-optimization/21105
* c-decl.c (grokdeclarator): Use TYPE_SIZE_UNIT not TYPE_SIZE in
TREE_OVERFLOW check.
2005-08-16 David Edelsohn <edelsohn@gnu.org>
* config/rs6000/rs6000.md (ltu<mode>): Convert to mode macro.
(neg_ltu<mode>): Same.
(gtu<mode>): Same.
(neg_gtu<mode>): Same.
2005-08-16 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
* builtins.c (expand_builtin_strcat): Remove superfluous call to fold.
(fold_builtin_isdigit): Use fold_buildN.
(build_function_call_expr): Likewise.
* c-typeck.c (c_finish_loop): Likewise.
2005-08-16 J"orn Rennecke <joern.rennecke@st.com>
Richard Shann <rshann@superh.com>
PR middle-end/20396:
* optabs.c (expand_binop): Take TRULY_NOOP_TRUNCATION into account.
2005-08-16 Sebastian Pop <pop@cri.ensmp.fr>
* tree-ssa-loop-niter.c (scev_probably_wraps_p): Reword a comment.
2005-08-15 Richard Earnshaw <richard.earnshaw@arm.com>
PR target/23355
* arm.c (thumb_compute_save_reg_mask): Use similar logic to
arm_compure_save_reg0_reg12_mask to determine when the PIC register
must be saved.
2005-08-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
PR middle-end/23369
* fold-const.c (build_range_check): Disable optimization for function
pointer expressions on targets that require function pointer
canonicalization.
2005-08-15 Ulrich Weigand <uweigand@de.ibm.com>
* simplify-rtx.c (simplify_const_relational_operation): When
extracting arguments of a COMPARE, recompute the mode as well.
2005-08-15 Ian Lance Taylor <ian@airs.com>
* tree.c (build_string): Mark tree CONSTANT and INVARIANT.
2005-08-15 DJ Delorie <dj@redhat.com>
* config/m32c/mov.md (movqi_op): Immediates can't be moved to
the stack.
(movsi_splittable): Allow, but split, moves to the stack.
* config/m32c/m32c.c (m32c_split_move): Always split moves to the
stack.
2005-08-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* aclocal.m4 (gcc_AC_FUNC_PRINTF_PTR): Delete.
* configure.ac: Don't call gcc_AC_FUNC_PRINTF_PTR.
* system.h (HOST_PTR_PRINTF): Don't define, poison it.
* bitmap.c, c-decl.c, config/i386/i386-interix.h,
config/iq2000/iq2000.c, mips-tfile.c, print-rtl.c, print-tree.c:
Delete HOST_PTR_PRINTF.
* configure, config.in: Regenerate.
2005-08-15 David Edelsohn <edelsohn@gnu.org>
* config/rs6000/rs6000.md (QHSI): New mode macro.
(wd): Extend mode attr for QImode and HImode
(dbits): New mode attr.
(zero_extend<mode>di2): Convert to mode macro.
2005-08-15 Steve Ellcey <sje@cup.hp.com>
PR target/21841
* doc/invoke.texi (-mgnu-ld): Update description.
(-mhp-ld): Ditto.
2005-08-15 Sebastian Pop <pop@cri.ensmp.fr>
PR 23391
* Makefile.in (tree-chrec.o): Depends on real.h.
* tree-chrec.c: Include real.h.
(chrec_fold_plus_poly_poly, chrec_fold_multiply_poly_poly,
chrec_fold_plus_1): Use build_real for SCALAR_FLOAT_TYPE_P.
* tree-scalar-evolution.c (add_to_evolution_1,
interpret_rhs_modify_expr): Ditto.
2005-08-15 Sebastian Pop <pop@cri.ensmp.fr>
PR 23386
* tree-data-ref.c (estimate_niter_from_size_of_data): When
step is negative compute the estimation from init downwards to zero.
2005-08-14 James A. Morrison <phython@gcc.gnu.org>
* fold-const (fold_binary): Call fold_build2 instead of fold (build.
2005-08-14 Ulrich Weigand <uweigand@de.ibm.com>
* config/s390/s390.c (s390_const_ok_for_constraint_p): Add 'P'
constraint.
(legitimate_reload_constant_p): Fix handling of lliXX operands.
Accept double-word constants that can be split.
* config/s390/s390.md ("movti"): Use 'P' constraint.
("*movdi_31", "*movdf_31"): Likewise.
2005-08-14 Daniel Berlin <dberlin@dberlin.org>
Fix PR tree-optimization/22615
* tree-ssa-structalias.c (solution_set_add): Handle
first_vi_for_offset returning NULL.
(do_da_constraint): Ditto.
(do_sd_constraint): Ditto.
(do_ds_constraint): Ditto
(find_func_aliases): Ditto.
(build_constraint_graph): RHS is allowed be ANYTHING.
(first_vi_for_offset): Return NULL if we couldn't find anything at
the offset.
2005-08-14 Ulrich Weigand <uweigand@de.ibm.com>
* config/s390/s390.c (s390_canonicalize_comparison): Prefer register
over memory as first operand.
2005-08-14 H.J. Lu <hongjiu.lu@intel.com>
PR target/23360
* config/i386/crtfastmath.c (set_fast_math): Check if DAZ is
available for setting it.
2005-08-14 Ira Rosen <irar@il.ibm.com>
PR tree-optimization/23320
* tree-data-ref.c (base_addr_differ_p): Add comment. Check
data-refs' types instead of base object nullness. Add check for
pointer type data-refs before first location comparison. Remove
assert.
2005-08-14 Andreas Schwab <schwab@suse.de>
* doc/md.texi (Machine Constraints): Fix misplaced @end table.
2005-08-13 James E Wilson <wilson@specifix.com>
* doc/cpp.texi (__SSP__, __SSP_ALL__): Document.
* doc/invoke.texi (-Wstack-protector, -fstack-protector,
-fstack-protector-all, --param ssp-buffer-size): Document.
(-Wvariadic-macros): Alphabetize.
(-fsched-stalled-insns-dep): Add missing 'f'.
* c-cppbuiltin.c (c_cpp_builtins): Add comment for flag_stack_protect
macros.
2005-08-13 David Edelsohn <edelsohn@gnu.org>
* config/rs6000/rs6000.h (EXTRA_CONSTRAINT): Add 'a' for indexed
or indirect address operand.
(EXTRA_ADDRESS_CONSTRAINT): New.
* config/rs6000/rs6000.md (prefetch): Change constraint "p" to "a".
2005-08-13 Sebastian Pop <pop@cri.ensmp.fr>
PR tree-optimization/22236
* tree-cfg.c (print_pred_bbs, print_succ_bbs): Correctly print
successors and predecessors.
* tree-chrec.c (chrec_convert): Before converting, check that
sequences don't wrap.
* tree-data-ref.c (compute_estimated_nb_iterations): Moved ...
(analyze_array): Extern.
(find_data_references_in_loop): Remove call to
compute_estimated_nb_iterations.
* tree-data-ref.h (analyze_array): Declared.
* tree-flow-inline.h (single_ssa_tree_operand, single_ssa_use_operand,
single_ssa_def_operand, zero_ssa_operands): Fix documentation.
* tree-flow.h (scev_probably_wraps_p): Declare with an extra parameter.
* tree-scalar-evolution.c (instantiate_parameters_1): Factor entry
condition.
* tree-ssa-loop-ivcanon.c: Fix documentation.
* tree-ssa-loop-ivopts.c (idx_find_step): Add a fixme note.
* tree-ssa-loop-niter.c (compute_estimated_nb_iterations): ... here.
(infer_loop_bounds_from_undefined): New.
(estimate_numbers_of_iterations_loop): Use
infer_loop_bounds_from_undefined.
(used_in_pointer_arithmetic_p): New.
(scev_probably_wraps_p): Pass an extra parameter. Call
used_in_pointer_arithmetic_p. Check that AT_STMT is not null.
(convert_step): Fix documentation.
* tree-vrp.c (adjust_range_with_scev): Call instantiate_parameters.
Use initial_condition_in_loop_num and evolution_part_in_loop_num
instead of CHREC_LEFT and CHREC_RIGHT. Adjust the call to
scev_probably_wraps_p.
2005-08-13 Ulrich Weigand <uweigand@de.ibm.com>
* config/s390/s390.c (s390_split_branches): Revert 2005-08-12 change.
(s390_register_info): Ignore clobbered_regs information for fixed
registers, and only fixed registers.
(s390_init_frame_layout): Remove redundant call.
2005-08-12 Gerald Pfeifer <gerald@pfeifer.com>
* doc/invoke.texi (C++ Dialect Options): Add dynamic_cast to
description of -Wold-style-casts.
2005-08-12 Andreas Krebbel <krebbel1@de.ibm.com>
Jakub Jelinek <jakub@redhat.com>
* config/s390/linux.h (TARGET_THREAD_SSP_OFFSET): Define.
* config/s390/s390-protos.h (s390_get_thread_pointer): Prototype added.
* config/s390/s390.c (print_operand): New output modifier 'G' added.
(get_thread_pointer): Renamed to s390_get_thread_pointer.
* config/s390/s390.md (stack_protect_set, stack_protect_test): If
TARGET_THREAD_SSP_OFFSET is defined, change operands[1] to
(MEM:P (PLUS:P (tp, TARGET_THREAD_SSP_OFFSET))).
(UNSPEC_SP_SET, UNSPEC_SP_TEST): New constants.
("stack_protect_set", "stack_protect_test"): New expanders.
("stack_protect_setsi", "stack_protect_setdi", "stack_protect_testsi",
"stack_protect_testdi"): New insn definitions.
2005-08-12 Andreas Krebbel <krebbel1@de.ibm.com>
* config/s390/s390.md ("*movdf_31"): Changed constraint from P to K.
2005-08-12 Paul Brook <paul@codesourcery.com>
* config/arm/lib1funcs.asm: Error if __ARM_ARCH__ not set.
2005-08-12 Andreas Krebbel <krebbel1@de.ibm.com>
* config/s390/predicates.md (setmem_operand): New predicate.
(shift_count_operand): Accept ANDs with special constants as
operand.
* config/s390/s390.c (print_shift_count_operand): Skip ANDs
with special constants.
* config/s390/s390.md ("setmem_long", "*setmem_long"): Replaced
shift_count_operand with setmem_operand.
2005-08-12 Andreas Krebbel <krebbel1@de.ibm.com>
* config/s390/s390.c (s390_extract_part, s390_single_part):
Type cast added.
(s390_const_ok_for_constraint_p): Added SImode to the N constraint.
(s390_output_mi_thunk): Don't use lg on 31 bit.
* config/s390/s390.md ("*movdi_31", "*movdf_31"): Added lmy and stmy.
("*llgt_sisi" and splitter): Replaced TARGET_64BIT with TARGET_ZARCH.
2005-08-12 Andreas Krebbel <krebbel1@de.ibm.com>
* config/s390/s390.c (CONST_OK_FOR_J, CONST_OK_FOR_K): New macros.
(s390_select_ccmode, s390_rtx_costs, legitimate_reload_constant_p,
s390_init_frame_layout, s390_emit_prologue, s390_emit_epilogue,
s390_output_mi_thunk): Replaced uses of CONST_OK_FOR_CONSTRAINT_P
with one of the new macros.
2005-08-12 Andreas Krebbel <krebbel1@de.ibm.com>
* config/s390/s390.c (s390_split_branches, s390_init_frame_layout):
Don't set save_return_addr_p.
(s390_register_info): Make clobbered_regs not depending on
save_return_addr_p.
2005-08-12 Kaz Kojima <kkojima@gcc.gnu.org>
* gcc.c (LINK_SSP_SPEC): Remove space before a trailing }.
(LINK_COMMAND_SPEC): Add space after %(link_ssp).
2005-08-11 James E. Wilson <wilson@specifix.com>
* config/ia64/ia64.h (EXTRA_MEMORY_CONSTRAINT): New.
2005-08-11 Jakub Jelinek <jakub@redhat.com>
* dwarf2out.c (add_location_or_const_value_attribute): Prefer
locations gathered by var-tracking in single entry loc_list
over loc_descriptor_from_tree.
* dwarf2out.c (concat_loc_descriptor): Add can_use_fbreg argument,
pass it down to loc_descriptor.
(loc_descriptor): Pass can_use_fbreg to concat_loc_descriptor.
(containing_function_has_frame_base): Move earlier in the file.
(loc_descriptor_from_tree_1): Use containing_function_has_frame_base
instead of always assuming fbreg can't be used.
2005-08-11 David Edelsohn <edelsohn@gnu.org>
* config/rs6000/altivec.md: Change constraint "m" to "Z".
* config/rs6000/predicates.md (indexed_or_indirect_operand):
Accept address wrapped in AND for Altivec.
* config/rs6000/rs6000.c (rs6000_legitimize_reload_address):
Strip AND wrapping offset address for Altivec.
2005-08-11 Richard Henderson <rth@redhat.com>
PR middle-end/23312
* gimplify.c (gimplify_one_sizepos): Check for INTEGER_TYPE
before using TYPE_IS_SIZETYPE.
2005-08-11 Richard Henderson <rth@redhat.com>
PR target/22225
* config/alpha/alpha.c (alphaev4_insn_pipe): Add take pipes for
insn types not present on ev4.
(alphaev5_insn_pipe): Similarly.
2005-08-11 Richard Earnshaw <richard.earnshaw@arm.com>
PR target/23250
* arm.c (arm_override_options): If the user has selected callee-super-
interworking, then enable normal interworking.
2005-08-11 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
* config/i386/x86-64.h (ASM_OUTPUT_ALIGNED_BSS): Undef before
redefinition.
2005-08-11 Wu Zhou <woodzltc@cn.ibm.com>
* doc/rtl.texi: Fix two typos.
2005-08-11 Richard Guenther <rguenther@suse.de>
PR target/23289
* config/i386/i386.c (ix86_function_ok_for_sibcall): Handle
cases where we call to/from functions returning void.
2005-08-10 James A. Morrison <phython@gcc.gnu.org>
PR c++/23225
* tree.c (build_pointer_type_for_mode): Robustify.
2005-08-10 James E Wilson <wilson@specifix.com>
* defaults.h, config/alpha/alpha.h, config/ia64/ia64.h
(ASM_OUTPUT_ADDR_VEC_ELT): Delete.
* config/alpha/alpha.c (alpha_arg_partial_bytes): Change "(CUM)." to
"cum->".
2005-08-10 Eric Christopher <echristo@apple.com>
* config/rs6000/rs6000.c (mems_ok_for_quad_peep): Rewrite.
* config/rs6000/rs6000.md (*lfq_power2, *stfq_power2): Use
V2DFmode.
2005-08-10 Andrew Pinski <pinskia@physics.uc.edu>
PR target/21887
* config/darwin.c (machopic_indirect_data_reference): Use a new register
for the high part when generating dynamic-no-pic code.
2005-08-10 H.J. Lu <hongjiu.lu@intel.com>
* config.gcc (i[34567]86-*-linux*): Add i386/t-crtfm to tm-file.
(x86_64-*-linux*): Likewise.
* config/i386/crtfastmath.c: New file.
* config/i386/t-crtfm: Likewise.
* config/i386/linux.h (ENDFILE_SPEC): New.
* config/i386/linux64.h (ENDFILE_SPEC): Likewise.
* config/i386/t-linux64 (EXTRA_MULTILIB_PARTS): Add
crtfastmath.o.
2005-08-10 Dorit Nuzman <dorit@il.ibm.com>
* doc/md.texi: (reduc_smin, reduc_umin, reduc_splus, reduc_uplus):
(vec_shl, vec_shr): Document new operations.
* tree.def (VEC_RSHIFT_EXPR, VEC_LSHIFT_EXPR): Fix comment.
2005-08-10 David Edelsohn <edelsohn@gnu.org>
* config/rs6000/predicates.md (indexed_or_indirect_address): New.
* config/rs6000/rs6000.md (prefetch): Remove operand 0 mode and
change predicate to indexed_or_indirect_address.
2005-08-10 Richard Sandiford <richard@codesourcery.com>
* config/arm/lib1funcs.asm (__aeabi_uidiv, __aeabi_idiv): New aliases.
* config/arm/libgcc-bpabi.ver (GCC_3.5): Add __aeabi_idiv,
__aeabi_uidiv, __aeabi_uread4, __aeabi_uread8, __aeabi_uwrite4
and __aeabi_uwrite8.
* config/arm/unaligned-funcs.c: New file.
* config/arm/t-bpabi (LIB2FUNCS_EXTRA): Add unaligned-funcs.c.
2005-08-09 Paolo Bonzini <bonzini@gnu.org>
* bb-reorder.c (pass_duplicate_computed_gotos, pass_partition_blocks):
Add dump.
* cfglayout.c (pass_insn_locators_initialize): Add dump.
* emit-rtl.c (pass_unshare_all_rtl, pass_remove_unnecessary_notes):
Add dump.
* except.c (pass_convert_to_eh_region_ranges): Add dump.
* final.c (pass_shorten_branches): Add dump.
* flow.c (pass_recompute_reg_usage, pass_remove_death_notes): Add dump.
(pass_life): Rename dump.
(rest_of_handle_flow2): Remove initial verify_flow_info.
* function.c (pass_instantiate_virtual_regs): Add dump.
* integrate.c (pass_initial_value_sets): Add dump.
* jump.c (pass_cleanup_barriers, pass_purge_lineno_notes): Add dump.
* loop-init.c (pass_rtl_loop_init, pass_rtl_loop_done): Rename dump.
(pass_rtl_move_loop_invariants, pass_rtl_unswitch, pass_rtl_doloop,
pass_rtl_unroll_and_peel_loops): Rename dump and add gate.
(gate_rtl_move_loop_invariants, gate_rtl_unswitch, gate_rtl_doloop,
gate_rtl_unrool_and_peel_loops): New.
(rtl_move_loop_invariants, rtl_unswitch, rtl_unrool_and_peel_loops,
rtl_doloop): Do not look at flags.
* mode-switching.c (pass_mode_switching): Add dump.
* recog.c (pass_split_all_insns, pass_split_for_shorten_branches,
pass_split_before_regstack): Add dump.
* regmove.c (pass_stack_adjustments): Add dump.
* tree-optimize.c (pass_fixup_cfg): Add dump.
2005-08-10 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
PR 23309
* config/m32r/m32r.c (m32r_reload_lr): Fix off by one error when
deciding which instruction sequence to use.
2005-08-09 Dorit Nuzman <dorit@il.ibm.com>
* tree-vect-transform.c (vect_create_epilog_for_reduction): Set
BIT_FIELD_REF_UNSIGNED for newly created BIT_FIELD_REFs.
2005-08-09 Richard Guenther <rguenther@suse.de>
* c-common.c (builtin_function_2): Remove.
(def_builtin_1): New function.
(c_common_nodes_and_builtins): Use def_builtin_1 to
build builtin functions.
2005-08-09 Jie Zhang <jie.zhang@analog.com>
* config/bfin/uclinux.h (NO_IMPLICIT_EXTERN_C): Define.
* config/bfin/elf.h (NO_IMPLICIT_EXTERN_C): Define.
* config/bfin/bfin.c (bfin_return_in_memory): Update to really match
Visual DSP.
2005-08-09 James A. Morrison <phython@gcc.gnu.org>
* tree-ssa-loop-niter.c (tree_simplify_using_condition_1): Use
fold_binary instead of fold_build2 since we don't care about the
resulting tree.
(loop_niter_by_eval): Likewise.
(compare_trees): Likewise.
(proved_non_wrapping_p): Likewise.
2005-08-09 James A. Morrison <phython@gcc.gnu.org>
PR c/23161
PR c/23165
* c-typeck.c (c_finish_if_stmt): Look into STATEMENT_LISTs to see
if the if is really empty.
2005-08-09 Steven Bosscher <stevenb@suse.de>
PR tree-optimization/23234
* tree-ssa-math-opts.c (place_reciprocal): New enum.
(execute_cse_reciprocals_1): Replace the 'phi' argument with an
argument of the new enum.
(execute_cse_reciprocals): Add reciprocals for function arguments
on the unique successor edge of the entry block. Update other calls
to execute_cse_reciprocals_1.
2005-08-08 Richard Henderson <rth@redhat.com>
PR 22439
* gimplify.c (gimplify_one_sizepos): Preserve the original type.
2005-08-08 Bob Wilson <bob.wilson@acm.org>
* expr.c (write_complex_part): Return after handling MEM.
2005-08-08 Josh Conner <jconner@apple.com>
PR rtl-optimization/23241
* combine.c (simplify_comparison): Fix error in determining
whether to lift a subreg from comparison.
2005-08-08 David Edelsohn <edelsohn@gnu.org>
PR target/18506
* config/rs6000/altivec.md (vec_init<mode>): New.
(vec_set<mode>): New.
(vec_extract<mode>): New.
* config/rs6000/rs6000.c (rs6000_expand_vector_init): New.
(rs6000_expand_vector_set): New.
(rs6000_expand_vector_extract): New.
(rs6000_legitimate_offset_address_p): Offset addresses are valid
for Altivec modes before reload.
(altivec_expand_vec_init_builtin): New.
(get_element_number): New.
(altivec_expand_vec_set_builtin): New.
(altivec_expand_vec_ext_builtin): New.
(altivec_expand_builtin): Expand vec_init, vec_set, and vec_ext
builtins.
(altivec_init_builtins): Init vec_init, vec_set, and vec_ext
builtins.
* config/rs6000/rs6000.h (rs6000_builtins): Add
ALTIVEC_BUILTIN_VEC_INIT_<mode>, ALTIVEC_BUILTIN_VEC_SET_<mode>,
ALTIVEC_BUILTIN_VEC_EXT_<mode>.
* config/rs6000/rs6000-protos.h: Declare new functions.
2005-08-08 Jan Hubicka <jh@suse.cz>
* i386.c (legitimate_pic_address_disp_p): Refuse GOTOFF in 64bit mode.
(legitimate_address_p): Refuse GOT and GOTOFF in 64bit mode.
* i386.md (movdi*): Use pic_32bit_operand.
* predicates.md (pic_32bit_operand): New.
2005-08-08 Nathan Sidwell <nathan@codesourcery.com>
PR c++/21166
* stor-layout.c (finalize_type_size): Undo DECL_PACKED when possible.
2005-08-07 James A. Morrison <phython@gcc.gnu.org>
* tree-vrp.c (simplify_div_or_mod_using_range): Use build2.
(test_for_singularity): Use fold_build2.
2005-08-07 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
* pa64-regs.h (CONDITIONAL_REGISTER_USAGE): Fix loop upper bound.
2005-08-07 Danny Smith <dannysmith@users.sourceforge.net>
* config/i386/cygming.h (SUBTARGET_ENCODE_SECTION_INFO): Define.
(COMMON_ASM_OP) Define.
* config/i386/i386.c (ix86_in_large_data_p): Add ATTRIBUTE_UNUSED
(ix86_encode_section_info): Likewise.
(TARGET_ENCODE_SECTION_INFO): Conditionally define as
SUBTARGET_ENCODE_SECTION_INFO.
2005-08-06 Richard Henderson <rth@redhat.com>
PR 21894
* tree-nested.c (convert_local_reference): Save and restore val_only
around component_ref and friends. Clear walk_subtrees by default.
2005-08-06 Peter O'Gorman <peter@pogma.com>
PR 21366
* gcc.c (process_command): Check the argument to -b has a dash.
* doc/invoke.texi: Update -b and -V docs.
2005-08-06 James E Wilson <wilson@specifix.com>
* config/mips/cross64.h, config/mips/t-cross64: Delete.
2005-08-06 Michael Matz <matz@suse.de>
* genattrtab.c (write_attr_get, write_attr_case): Use insn_code
member only if only one insn is associated with the value.
2005-08-06 Nick Clifton <nickc@redhat.com>
* config/stormy16/stormy16.h (SYMBOL_FLAG_XSTORMY16_BELOW100):
New define.
(ASM_OUTPUT_LABELREF): Delete - it is no longer needed.
* config/stormy16/stormy16.c (xstormy16_below100_symbol):
Check symbol flags instead of symbol name mangling.
(xstormy16_asm_output_aligned_common): Likewise. Also
simplify code since the bss100_section cass is the only case
where the below100 code will be triggered.
(xstormy16_encode_section_info): Encode below100 attribute
using the SYMBOL_FLAG_XSTORMY16_BELOW100 instead of mangling
the name.
(xstormy16_strip_name_encoding): Delete - this function is no
longer needed.
(TARGET_STRIP_NAME_ENCODING): Undefine.
* config/stormy16/stormy16-protos.h: Delete prototype for
xstormy16_strip_name_encoding.
2005-08-06 Kazu Hirata <kazu@codesourcery.com>
* Makefile.in, cfgexpand.c, cfgloop.h, cfgloopmanip.c,
config.gcc, ipa-cp.c, ipa-prop.c, ipa-prop.h, reg-stack.c,
tree-ssa-structalias.c, tree-vrp.c, value-prof.c, vec.h,
config/linux.h, config/alpha/alpha.h, config/alpha/linux.h,
config/alpha/predicates.md, config/arc/arc.h,
config/arm/arm.h, config/arm/ieee754-df.S,
config/arm/ieee754-sf.S, config/bfin/bfin.c,
config/bfin/bfin.h, config/c4x/c4x.h, config/crx/crx.c,
config/fr30/fr30.h, config/frv/frv.h, config/h8300/h8300.h,
config/i386/i386.h, config/ia64/ia64.c, config/ia64/ia64.h,
config/m68hc11/m68hc11.h, config/mips/mips.c,
config/mips/mips.h, config/mips/openbsd.h,
config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.h,
config/pdp11/pdp11.h, config/rs6000/linux-unwind.h,
config/rs6000/rs6000.c, config/rs6000/rs6000.h,
config/s390/s390.c, config/sh/sh.c, config/sh/sh.h,
config/sparc/linux.h, config/sparc/linux64.h,
config/sparc/sparc.h, config/v850/v850.h, config/vax/vax.h,
doc/extend.texi, doc/gcov.texi, doc/install.texi,
doc/invoke.texi, doc/rtl.texi, doc/tm.texi: Fix comment/doc
typos. Follow spelling conventions.
2005-08-06 Joseph S. Myers <joseph@codesourcery.com>
PR c/23113
* stmt.c (warn_if_unused_value): Check TREE_NO_WARNING at start.
Don't handle NOP_EXPR, CONVERT_EXPR and NON_LVALUE_EXPR
specially. Check for side effects only for COND_EXPR.
* c-typeck.c (c_finish_stmt_expr): Mark statement expression
return with TREE_NO_WARNING.
2005-08-06 Richard Sandiford <richard@codesourcery.com>
PR rtl-optimization/23233
* loop.c (combine_movables): Require the modes to be the same.
(move_movables): Remove handling of cases where the replacement
had a different mode to the original.
2005-08-05 James A. Morrison <phython@gcc.gnu.org>
PR tree-optimization/23128
* tree-vrp.c (vrp_int_const_binop): Check if unsigned addition or
subtraction wrap, and set TREE_OVERFLOW if they do.
2005-08-05 Richard Henderson <rth@redhat.com>
PR 21728
* tree-cfg.c (remove_bb): Transmute DECL_NONLOCAL labels into
FORCED_LABEL labels.
2005-08-05 J"orn Rennecke <joern.rennecke@st.com>
PR middle-end/23135
* reload.c (find_reloads_subreg_address): Pass down TYPE
unchanged. Change all callers except find_reloads_toplev.
2005-08-05 Michael Matz <matz@suse.de>
* genattrtab.c (current_alternative_string): Remove.
(SIMPLIFY_ALTERNATIVE): Ditto.
(attr_alt_bit_p): Ditto.
(alternative_name): Make const char *.
(evaluate_eq_attr): Remove use of above things.
(simplify_test_exp): Ditto.
(simplify_test_exp <EQ_ATTR>): Guard for insn_code < 0 .
(simplify_test_exp <AND>): Correct typo (test 'right' not 'left').
2005-08-04 James E Wilson <wilson@specifix.com>
* config/ptx4.h, config/sol2.h, config/arm/freebsd.h,
config/arm/linux-elf.h, config/frv/frv.h, config/i386/freebsd.h,
config/i386/freebsd64.h, config/i386/netware.h, config/i386/sco5.h,
config/ia64/freebsd.h, config/rs6000/sysv4.h, config/sparc/freebsd.h
(LINK_SPEC): Delete useless %{Wl,*:%*} item.
2005-08-04 Richard Henderson <rth@redhat.com>
PR 21529
* params.def (PARAM_SRA_MAX_STRUCTURE_COUNT): New.
* params.h (SRA_MAX_STRUCTURE_COUNT): New.
* tree-sra.c (decide_block_copy): Use it. Disable element copy
if we'd have to instantiate too many members.
2005-08-04 Richard Henderson <rth@redhat.com>
PR 21291
* tree-outof-ssa.c (coalesce_asm_operands): New.
(coalesce_ssa_name): Use it. Split out ...
(coalesce_phi_operands, coalesce_result_decls): ... these.
2005-08-04 Paul Brook <paul@codesourcery.com>
* read-rtl.c (read_quoted_string): Break if EOF.
2005-08-04 Andrew Pinski <pinskia@physics.uc.edu>
* tree.h (fold_build1): Change to macro and call fold_build1_stat.
(fold_build2): Likewise.
(fold_build3): Likewise.
(fold_build1_stat): New function prototype.
(fold_build2_stat): Likewise.
(fold_build3_stat): Likewise.
* fold-const.c (fold_build1): Rename to ..
(fold_build1_stat): this. Add MEM_STAT_DECL. Pass the mem stats
through to build1_stat.
(fold_build2): Rename to ..
(fold_build2_stat): this. Add MEM_STAT_DECL. Pass the mem stats
through to build2_stat.
(fold_build3): Rename to ..
(fold_build3_stat): this. Add MEM_STAT_DECL. Pass the mem stats
through to build3_stat.
2005-08-04 David Edelsohn <edelsohn@gnu.org>
Ian Lance Taylor <ian@airs.com>
* function.c (assign_stack_local_1): Do not correct stack slot
address if allocation size is smaller than mode size.
2005-08-04 Diego Novillo <dnovillo@redhat.com>
PR 22037
* tree-cfg.c (replace_uses_by): Call mark_new_vars_to_rename.
(tree_merge_blocks): Propagate anything allowed by
may_propagate_copy.
Clarify documentation.
* passes.c (execute_todo): If cleanup_tree_cfg invalidated the
SSA form, schedule an update if necessary.
2005-08-04 Gerald Pfeifer <gerald@pfeifer.com>
* doc/install.texi (Binaries): Remove broken link to
Sinix/Reliant Unix binaries.
2005-08-03 Richard Henderson <rth@redhat.com>
PR 23221
* function.c (stack_protect_epilogue): Export.
* tree.h (stack_protect_epilogue): Declare.
* calls.c (expand_call): Call it.
2005-08-03 Eric Christopher <echristo@apple.com>
* gcc.c (LINK_SSP_SPEC): Add fstack-protector-all.
* config/darwin.h (LINK_COMMAND_SPEC): Add link_ssp
spec.
2005-08-04 Jan Hubicka <jh@suse.cz>
* profile.c (branch_prob): Split edges with goto locus on them
to get proper line counts.
* tree-cfg.c (make_cond_expr_edges): Record user goto locuses, if any.
2005-08-03 Paul Brook <paul@codesourcery.com>
* function.c (assign_parms): Round current_function_args_size
to PARM_BOUNDARY, not STACK_BOUNDARY.
2005-08-03 Geoffrey Keating <geoffk@apple.com>
* config/i386/i386.c (x86_elf_aligned_common)
(x86_output_aligned_bss): Don't try to use symbols that aren't defined.
2005-08-03 Zdenek Dvorak <dvorakz@suse.cz>
PR tree-optimization/23157
* tree-scalar-evolution.c (scev_const_prop): Unshare trees
before emitting them.
2005-08-03 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
PR tree-optimization/19899
* Makefile.in (tree-scalar-evolution.o): Add real.h.
* tree-scalar-evolution.c: Include real.h.
(add_to_evolution): Build constant -1 of correct type.
2005-08-03 Jan Hubicka <jh@suse.cz>
* cfgloop.h (DLTHE_FLAG_COMPLETTE_PEEL): New flag.
* cfgloopmanip.c (duplicate_loop_to_header_edge): Special case
profile updating for complette unrolling.
* loop-unroll.c (peel_loop_completely): Use it.
* tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Likewise.
(tree_unroll_loops_completely): Disable code growing unrolling of cold
loops.
2005-08-03 Paul Brook <paul@codesourcery.com>
* combine.c (can_change_dest_mode): New function.
(try_combine, simplify_set): Use it.
2005-08-03 Eric Botcazou <ebotcazou@adacore.com>
* config/ia64/hpux.h (MEMBER_TYPE_FORCES_BLK): Only force
TFmode to BLKmode.
2005-08-03 Gerald Pfeifer <gerald@pfeifer.com>
* doc/install.texi (Specific): Adjust link to openavr.org.
(Specific): Remove broken reference to GCC 2.8.1 for OS/2.
(Binaries): Adjust HP-UX Porting Center link.
(Binaries): Adjust Free Software Foundation ordering link.
2005-08-03 Andrew Pinski <pinskia@physics.uc.edu>
* convert.c (convert_to_integer): Use fold_build1 instead of
build1 when converting an integer to an integer.
2005-08-02 Richard Henderson <rth@redhat.com>
* combine.c (combine_instructions): Don't use reg_equal/equiv
results if the mode doesn't match.
2005-08-02 Mark Mitchell <mark@codesourcery.com>
* config/i386/t-mingw32 (NATIVE_SYSTEM_HEADER_DIR): Set it.
* doc/fragments.texi (NATIVE_SYSTEM_HEADER_DIR): Document it.
2005-08-02 Richard Henderson <rth@redhat.com>
PR 23196
* explow.c (memory_address): Remove special-case for
virtual_stack_vars_rtx and virtual_incoming_args_rtx.
2005-08-02 Diego Novillo <dnovillo@redhat.com>
PR 23164
* tree-cfgcleanup.c (cleanup_tree_cfg): Do not limit the
number of calls to cleanup_tree_cfg_1.
2005-08-02 Martin Reinecke <martin@mpa-garching.mpg.de>
* doc/invoke.texi: document file extensions .F90 and .F95
2005-08-02 Richard Guenther <rguenther@suse.de>
* fold-const.c (tree_expr_nonnegative_p): frexp(x, &e) is
positive if its first argument is positive.
2005-08-02 Richard Guenther <rguenther@suse.de>
PR tree-optimization/23177
* tree-ssa-operands.c (get_tmr_operands): Use get_expr_operands
on TMR_TAG.
2005-08-02 James A. Morrison <phython@gcc.gnu.org>
PR tree-optimization/23129
* tree-vrp.c (extract_range_from_binary_expr): Set value range to
varying for divisions with anti-ranges.
2005-08-02 Jan Hubicka <jh@suse.cz>
* tree-ssa-dom.c (thread_across_edge): Remove updating here.
* tree-ssa-threadupdate.c (thread_block): Add it here.
2005-08-01 James E Wilson <wilson@specifix.com>
* config/mips/mips.c (mips_encode_section_info, mips_attribute_table,
TARGET_ENCODE_SECTION_INFO, TARGET_ATTRIBUTE_TABLE): New.
* config/mips/mips.h (SYMBOL_FLAG_LONG_CALL, SYMBOL_REF_LONG_CALL_P):
New.
* config/mips/predicates.md (const_call_insn_operand): Add check for
SYMBOL_REF_LONG_CALL_P.
* doc/extend.texi (long_call): Document the new attribute.
2005-08-01 Ian Lance Taylor <ian@airs.com>
Richard Henderson <rth@redhat.com>
* Makefile.in (RTL_BASE_H): Add real.h.
* real.h (REAL_VALUE_FROM_CONST_DOUBLE): Use structure copy
instead of memcpy.
* emit-rtl.c (const_double_from_real_value): Likewise; use rtx.u.rv
directly.
* rtl.c (rtl_check_failed_code_mode): New.
* rtl.h (struct rtx_def): Add u.rv.
(XCMWINT, XCNMPRV): New.
(CONST_DOUBLE_LOW, CONST_DOUBLE_HIGH): Use XCMWINT.
(CONST_DOUBLE_REAL_VALUE): Use XCNMPRV; constify.
2005-08-01 Richard Henderson <rth@redhat.com>
* dwarf2out.c (mem_loc_descriptor): Use XEXP, not SUBREG_REG,
with auto-inc codes.
* config/alpha/predicates.md (and_operand): Test mode of CONST_DOUBLE.
2005-08-01 Jan Hubicka <jh@suse.cz>
* i386-protos.h (asm_preferred_eh_data_format): Declare.
* i386.c: Include dwarf2.h
(asm_preferred_eh_data_format): New.
* i386.h (ASM_PREFERRED_EH_DATA_FORMAT): Move offline.
2005-08-01 Ian Lance Taylor <ian@airs.com>
* config/host-linux.c (linux_gt_pch_get_address): Add new name
randomize_va_space for virtual address randomization control.
2005-08-01 Steven Bosscher <stevenb@suse.de>
* common.opt (flag_ipa_cp): Put in right place to maintain
alphabetic sort.
2005-08-01 Jan Hubicka <jh@suse.cz>
* profile.c (compute_value_histograms): Fix thinko.
* value-prof.c: Include toplev.h
(check_counter): New function.
(tree_divmod_fixed_value_transform, tree_mod_pow2_value_transform,
tree_mod_subtract_transform): Add sanity check.
2005-08-01 Richard Guenther <rguenther@suse.de>
PR tree-optimization/23133
* tree-ssa-math-opts.c (execute_cse_reciprocals): Walk
current functions parameter decls to find defs to cse
reciprocals of.
2005-08-01 Richard Guenther <rguenther@suse.de>
PR tree-optimization/23109
* tree-ssa-math-opts.c (execute_cse_reciprocals_1):
If trapping math is in effect, use post-dominator information
to check if we'd in any case reach a trapping point before
doing the reciprocal insertion.
(execute_cse_reciprocals): Compute post-dominators, if necessary.
* tree-ssa-loop-im.c (determine_invariantness_stmt): RDIV
expressions are invariant only if trapping math is not in effect.
2005-08-01 Razya Ladelsky <razya@il.ibm.com>
* cgraph.h (update_call_expr, cgraph_copy_node_for_versioning,
cgraph_function_versioning): New declarations.
* cgraphunit.c: Add include to ipa-prop.h.
(update_call_expr, cgraph_copy_node_for_versioning,
cgraph_function_versioning): New functions.
* integrate.c (copy_decl_for_inlining): Remove.
* ipa-prop.h (ipa_replace_map): New struct.
(struct ipa_node): Add ipcp_orig_node, count_scale, new fields.
* ipa-cp.c (ipcp_method_orig_node, ipcp_method_is_cloned,
ipcp_method_set_orig_node, ipcp_cloned_create, ipcp_method_get_scale,
ipcp_method_set_scale, ipcp_method_compute_scale, ipcp_after_propagate,
ipcp_iterate_stage, ipcp_method_scale_print,
ipcp_profile_mt_count_print, ipcp_profile_cs_count_print,
ipcp_profile_edge_print, ipcp_profile_bb_print , ipcp_profile_print,
ipcp_replace_map_create, ipcp_redirect, ipcp_update_callgraph,
ipcp_update_bb_counts, ipcp_update_profiling,
ipcp_update_edges_counts): New functions.
(ipcp_method_cval_init): Remove restriction regarding local methods.
(ipcp_init_stage): Add ipcp_method_compute_scale.
(ipcp_insert_stage): Add versioning.
(ipcp_structures_print): Add ipcp_method_scale_print.
(ipcp_driver): Dump profiling info.
* Makefile.in: Remove integrate.h dependency from tree-inline.o.
Add ipa-prop.h dependency to tree-inline.o and cgraphunit.o.
* tree-inline.c: Remove include to integrate.h, Add include ipa-prop.h.
(struct inline_data): Add versioning_p, ipa_info, new fields.
(remap_decl, mark_local_for_remap_r, setup_one_parameter,
declare_return_variable): Replace calls to copy_decl_for_inlining with
copy_decl_for_dup.
(copy_body_r, copy_bb, copy_cfg_body, copy_tree_r, inlining_p): Add
versioning support.
(copy_decl_for_dup): Rename from copy_decl_for_inlining.
Add argument VERSIONING.
(copy_arguments_for_versioning, copy_static_chain,
function_versionable_p, tree_versionable_function_p,
tree_function_versioning, replace_ref_tree): New functions.
* tree-inline.h: Include varray.h.
(tree_versionable_function_p, tree_function_versioning,
tree copy_decl_for_dup): New declarations.
2005-08-01 Razya Ladelsky <razya@il.ibm.com>
* ipa-cp.c: New file. Contains IPCP specific functionality.
* ipa-prop.h: New file. Contains structures/definitions that can be
used by several interprocedural data flow optimizations (and also IPCP).
* ipa-prop.c: New file.
* Makefile.in: Add ipa-cp.c, ipa-prop.h, ipa-prop.c.
* common.opt: Add ipa-cp flag.
* timevar.def: Add IPCP optimization.
* tree-optimize.c (init_tree_optimization_passes): Schedule
pass_ipa_cp.
* tree-pass.h (pass_ipa_cp): Declare.
2005-08-01 Kazu Hirata <kazu@codesourcery.com>
* dwarf2out.c, fold-const.c, ipa-type-escape.c,
loop-invariant.c, predict.c, predict.def, reload1.c, reorg.c,
tree-sra.c, config/arm/arm.c, config/crx/crx.c,
config/i386/i386.c, config/mips/mips.h,
config/rs6000/rs6000.h, config/sh/sh.c,
config/stormy16/stormy16.c: Fix comment typos.
2005-08-01 Joseph S. Myers <joseph@codesourcery.com>
PR c/22311
* c-typeck.c (build_binary_op): Use common_type wrapper on
shortened types.
(common_type): Update comment.
2005-07-31 Steven Bosscher <stevenb@suse.de>
PR target/23095
* common.opt (flag_gcse_after_reload): Don't initialize to 2.
(flag_rerun_cse_after_loop): Initialize this to 2 instead.
* postreload-gcse.c (hash_scan_set): Do not consider stack regs.
2005-07-31 Jan Hubicka <jh@suse.cz>
* pretty-print.h (pp_widest_integer): New macro.
* tree-pretty-print.c (dump_bb_header): Print BB frequencies and
counts.
2005-07-31 Jan Hubicka <jh@suse.cz>
* output.h (enum section_category): Export from varasm.c
(categorize_decl_for_section): Likewise.
* varasm.c (enum section_category): Kill.
(categorize_decl_for_section): Make global.
* i386-protos.h (x86_output_aligned_bss, x86_elf_aligned_common):
Declare.
* i386.c (ix86_section_threshold): New static variable.
(ix86_in_large_data_p, ix86_encode_section_info,
x86_64_elf_unique_section,
x86_64_elf_select_section): New functions.
(TARGET_ENCODE_SECTION_INFO): Define
(override_options): Enable medium model for PIC.
(ix86_expand_prologue): Expand gen_set_got_rex64.
(legitimate_constant_p): Handle new UNSPECs.
(legitimate_pic_address_disp_p): Likewise.
(legitimize_pic_address): Lower MEDIUM model addressing.
* i386.h (PIC_OFFSET_TABLE_REGNUM): Set for medium model PIC.
(enum cmodel): Add MEDIUM_PIC.
(SYMBOL_REF_FAR_ADDR_P): New macro.
(SYMBOL_FLAG_FAR_ADDR): New flag.
* i386.md (movdi): Support medium model.
(set_got_rex64): New pattern.
* i386.opt (mlarge-data-threshold): New flag.
* predicates.md (zext_operand/sext_operand): Deal with medium model.
* x86-64.h (ASM_OUTPUT_ALIGNED_BSS): Use x86_output_aligned_bss.
(ASM_OUTPUT_ALIGNED_COMMON, TARGET_ASM_SELECT_SECTION,
TARGET_ASM_UNIQUE_SECTION): New.
* invoke.texi (-mlarge_data_threshold): Document
2005-07-31 Jan Hubicka <jh@suse.cz>
* tree-outof-ssa.c (coalesce_ssa_name): Use coalesce_cost.
(coalesce_vars): Likewise.
* tree-ssa-live.c (coalesce_cost): New.
(build_tree_conflict_graph): Use coalesce_cost.
* tree-ssa-live.h (coalesce_cost): Declare.
2005-07-30 Richard Earnshaw <richard.earnshaw@arm.com>
* arm.md (all peepholes for post-increment operations): Delete.
(strqi_preinc, strqi_predec, loadqi_preinc, loadqi_predec)
(loadqisi_preinc, loadqisi_predec, strsi_preinc, strsi_predec)
(loadsi_preinc, loadsi_predec, strqi_shiftpreinc, strqi_shiftpredec)
(loadqi_shiftpreinc, loadqi_shiftpredec, strsi_shiftpreinc)
(strsishift_predec, loadsi_shiftpreinc, loadsi_shiftpredec): Delete.
2005-07-30 James A. Morrison <phython@gcc.gnu.org>
* fold-const.c (tree_expr_nonnegative_p): Always return true for
non-integral types.
2005-07-29 Wolfgang Bangerth <bangerth@dealii.org>
PR target/22582
* doc/invoke.texi: Document -rdynamic.
2005-07-30 Joseph S. Myers <joseph@codesourcery.com>
PR c/23143
* c-parser.c (c_parser_parms_list_declarator): Call
mark_forward_parm_decls.
* c-decl.c (merge_decls): Only check DECL_IN_SYSTEM_HEADER for
decls with visibility structure.
2005-07-30 Paul Brook <paul@codesourcery.com>
* config/arm/arm.c (arm_coproc_mem_operand): Fix inaccurate comment.
2005-07-30 Paul Brook <paul@codesourcery.com>
* config/arm/arm-protos.h (arm_canonicalize_comparison): Update
prototype.
* config/arm/arm.c (arm_canonicalize_comparison): Use correct limit
value for mode.
* config/arm/arm.h (CANONICALIZE_COMPARISON): Pass mode argument.
2005-07-29 Joseph S. Myers <joseph@codesourcery.com>
PR c/529
* c-decl.c (warn_if_shadowing): Don't check for PARM_DECL in
nested function declarators.
(pushdecl): Don't call warn_if_shadowing for PARM_DECL.
(grokparms): Call warn_if_shadowing for parameters used within the
parameter list.
(store_parm_decls_newstyle): Call warn_if_shadowing for parameters
not used within the parameter list.
(store_parm_decls_oldstyle): Call warn_if_shadowing for parameters.
2005-07-30 Jan Hubicka <jh@suse.cz>
* expr.c (expand_expr_real_1): Do not load mem targets into register.
* i386.c (ix86_fixup_binary_operands): Likewise.
(ix86_expand_unary_operator): Likewise.
(ix86_expand_fp_absneg_operator): Likewise.
* optabs.c (expand_vec_cond_expr): Validate dest.
2005-07-29 Joseph S. Myers <joseph@codesourcery.com>
PR c/21720
* real.c (real_from_string): Also set last bit if there is a
nonzero hex digit beyond GCC's internal precision after ".".
2005-07-29 David Edelsohn <edelsohn@gnu.org>
* config/rs6000/altivec.md: Convert UNSPEC numerical values to
define_constants. Change duplicate values to unassigned numbers.
Change UNSPEC_SUBS to UNSPEC_VSUBS.
(*altivec_vspltsf): New.
(altivec_vperm_v4sf): Delete.
(altivec_vperm_<mode>): Use mode macro V.
(altivec_vsldoi_<mode>): Convert to mode macro pattern.
(altivec_predicate_v4sf): Delete.
(altivec_predicate_<mode>): Use mode macro V.
(*altivec_lvesfx): New.
(*altivec_stvesfx): New.
(vec_realign_load_v4sf): Delete.
(vec_realign_load_<mode>): Use mode macro V.
* config/rs6000/rs6000.c (generate_set_vrsave): Use
UNSPECV_SET_VRSAVE.
2005-07-29 Mark Mitchell <mark@codesourcery.com>
PR bootstrap/23131
* configure.ac (SYSTEM_HEADER_DIR): Avoid setting to empty
string.
* configure: Regenerated.
2005-07-29 Paul Brook <paul@codesourcery.com>
* doc/install.texi: Add link to GFortran binaries wiki page.
2005-07-29 David Ung <davidu@mips.com>
* config/mips/mips.c (mips_cpu_info_table): Add 5kf to the table.
(mips_rtx_cost_data): Add costs for 5kc and 5kf.
* config/mips/mips.h (processor_type): Add PROCESSOR_5KF.
* config/mips/mips.md (cpu): Add 5kf name.
(includes): Includes 5k.md.
* config/mips/5k.md: New DFA pipeline for the 5kc/5kf.
* doc/invoke.texi (MIPS Options): Updated cpu name supported with
-march flag.
2005-07-29 Diego Novillo <dnovillo@redhat.com>
PR 22550
* tree-cfgcleanup.c (cleanup_tree_cfg_1): Extract from ...
(cleanup_tree_cfg): ... here.
Call cleanup_tree_cfg_1 until there are no more cleanups to
do.
2005-07-29 James A. Morrison <phython@gcc.gnu.org>
* tree-vrp.c (compare_range_with_value): Return true or false
for ~[VAL_1, VAL_2] OP VAL if VAL_1 <= VAL <= VAL_2 for NE_EXPR and
EQ_EXPR respectively.
2005-07-29 Kazu Hirata <kazu@codesourcery.com>
* cfg.c, tree-complex.c, config/frv/frv.c, config/i386/i386.c:
Fix comment typos.
2005-07-29 Diego Novillo <dnovillo@redhat.com>
* tree-ssa-dom.c (struct opt_stats_d): Add field num_iterations.
(tree_ssa_dominator_optimize): Increment it.
(dump_dominator_optimization_stats): Print it.
2005-07-29 Richard Earnshaw <richard.earnshaw@arm.com>
Steven Bosscher <stevenb@suse.de>
PR rtl-optimization/23117
* sched-rgn.c (add_branch_dependences): Handle COND_EXEC correctly
when head == tail. Tidy comment.
2005-07-28 Richard Henderson <rth@redhat.com>
* cse.c (exp_equiv_p): Special case CONST_DOUBLE.
* cselib.c (rtx_equal_for_cselib_p): Likewise.
* jump.c (rtx_renumbered_equal_p): Likewise.
* loop.c (rtx_equal_for_loop_p): Tidy and special case PC, CC0,
CONST_INT and CONST_DOUBLE.
(rtx_equal_for_prefetch_p): Likewise, plus LABEL_REF.
* reload.c (operands_match_p): Special case CONST_INT and
CONST_DOUBLE; check mode earlier.
2005-07-29 Joseph S. Myers <joseph@codesourcery.com>
PR c/22240
* c-typeck.c (convert_for_assignment): Do not check
DECL_IN_SYSTEM_HEADER on NULL fundecl.
2005-07-29 Joseph S. Myers <joseph@codesourcery.com>
PR c/22192
* c-typeck.c (composite_type): Prefer constant size arrays to
VLAs.
2005-07-29 Joseph S. Myers <joseph@codesourcery.com>
PR c/21720
* real.c (real_from_string): Set last bit if there is a nonzero
hex digit beyond GCC's internal precision.
2005-07-28 Richard Henderson <rth@redhat.com>
PR rtl-opt/22619
* cfgcleanup.c (try_forward_edges): Watch out for end of
insn chain.
2005-07-28 James E Wilson <wilson@specifixinc.com>
PR c/23106
* doc/invoke.texi (Wstrict-aliasing=2): Fix misleading wording.
2005-07-28 Jan Hubicka <jh@suse.cz>
* Makefile.in (rtl-profile.o): Kill all traces of it.
* common.opt (fspeculative-prefetching, ftree-based-profiling): Kill.
* coverage.h (rtl_coverage_counter_ref): Kill.
* opts.c (flag_speculative_prefetching_set): Kill.
(flag_loop_optimize_set): New.
(common_handle_option): Disable loop optimizer when profiling;
do not handle speculative prefetching.
* passes.c (init_optimization_passes): Replace pass_profiling combo
by branch_prob pass.
* profile.c (compute_value_histograms): Update for simplified value
profiles.
(rtl_register_profile_hooks): Kill.
(pass_profiling): Kill.
(rest_of_handle_branch_prob): Do not profile.
* toplev.c (process_options): Remove speculative prefetching.
* toplev.h (flag_tree_based_profiling): Kill.
* tree-profile.c (prepare_instrumented_value,
tree_gen_interval_profiler, tree_gen_pow2_profiler,
tree_gen_one_value_profiler, do_tree_profiling): Update for
simplified datastructures.
* value-prof.c: Add comment that speculative prefetching was dropped;
update rest of file for simplified datastructures.
(NOPREFETCH_RANGE_MIN, NOPREFETCH_RANGE_MAX,
rtl_divmod_values_to_profile, insn_prefetch_values_to_profile,
find_mem_reference_1, find_mem_reference_2, find_mem_reference,
rtl_values_to_profile, rtl_divmod_fixed_value, rtl_mod_pow2,
rtl_mod_subtract, gen_speculative_prefetch,
rtl_divmod_fixed_value_transform, rtl_mod_pow2_value_transform,
rtl_mod_subtract_transform, speculative_prefetching_transform): Kill.
(gate_handle_value_profile_transformations,
rest_of_handle_value_profile_transformations,
pass_value_profile_transformations): Kill.
* value-prof.h (histogram_value_t): Remove IL based unions.
(rtl_register_value_prof_hooks, rtl_register_profile_hooks,
rtl_profile_hooks): Remove hooks.
* invoke.texi (-ftree-based-profiling, -fspeculative-prefetching): Kill.
* cgraph.c (cgraph_clone_edge): New UPDATE_ORIGINAL argument.
(cgraph_clone_node): Likewise.
* cgraph.h (cgraph_clone_edge): Update prototype.
(cgraph_clone_node): Likewise.
* ipa-inline.c (cgraph_clone_inlined_nodes): Update call of
cgraph_clone_node.
(lookup_recursive_calls): Consider profile.
(cgraph_decide_recursive_inlining): Fix updating; use new
probability argument; use profile.
* params.def (PARAM_MIN_INLINE_RECURSIVE_PROBABILITY): New.
* tree-inline.c (copy_bb): Update clal of clone_edge.
* tree-optimize.c (tree_rest_of_compilation): UPdate cal of clone_node.
* invoke.texi (min-inline-recursive-probability): Document.
2005-07-28 Gerald Pfeifer <gerald@pfeifer.com>
* doc/install.texi (Configuration): Update Valgrind homepage.
2005-07-28 Richard Henderson <rth@redhat.com>
PR middle-end/21362
* cfgrtl.c (rtl_merge_blocks): Call maybe_remove_eh_handler on
labels we want to delete.
(cfg_layout_merge_blocks): Likewise.
2005-07-28 Richard Henderson <rth@redhat.com>
PR target/17692
* config/i386/i386.c (ix86_split_sse_movcc): Emit DELETED note
when expanding to nothing.
2005-07-28 Josh Conner <jconner@apple.com>
* ipa-inline.c (update_caller_keys): Fix estimated_growth caching.
(cgraph_decide_inlining_of_small_functions): Likewise.
2005-07-28 Josh Conner <jconner@apple.com>
* ipa-inline.c (cgraph_edge_badness): Update comments. Invert shift
direction of badness if negative.
(cgraph_default_inline_p): Add reason to parameters, and assign it
a value.
(cgraph_decide_inlining_of_small_functions): New parameter in call
to cgraph_default_inline_p.
(cgraph_decide_inlining_incrementally): Likewise.
* cgraphunit.c (decide_is_function_needed): Likewise.
* cgraph.h (cgraph_default_inline_p): Likewise.
2005-07-28 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
* builtins.c: Fix comment typo(s).
* genautomata.c: Likewise.
* gimplify.c: Likewise.
* tree-dfa.c: Likewise.
* tree-flow-inline.h: Likewise.
* tree-into-ssa.c: Likewise.
* tree-ssa-alias.c: Likewise.
* tree-ssa-ccp.c: Likewise.
* tree-ssa-copy.c: Likewise.
* tree-ssa-dce.c: Likewise.
* tree-ssa-dom.c: Likewise.
* tree-ssa-operands.c: Likewise.
* tree-tailcall.c: Likewise.
* tree-vectorizer.c: Likewise.
* tree-vrp.c: Likewise.
* tree.c: Likewise.
2005-07-28 Jeff Law <law@redhat.com>
* tree-vrp.c (test_for_singularity): Extracted from ...
(simplify_cond_using_ranges): Attempt to simplify a relational
test to NE_EXPR. Dump information when a COND_EXPR is simplified.
2005-07-28 Dorit Nuzman <dorit@il.ibm.com>
PR tree-optimization/22506
* tree-vectorizer.c (update_phi_nodes_for_guard2): Skip loop-closed
phis whose argument is constant.
2005-07-28 J"orn Rennecke <joern.rennecke@st.com>
PR rtl-optimization/18992
Back out this patch:
2003-10-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
PR optimization/12142
* cse.c (count_reg_usage): In a SET with a REG SET_DEST, count the
uses of the register in the SET_SRC. Remove unnecessary argument.
Replace it with this:
* cse.c (count_reg_usage): In INSN, JUMP_INSN and CALL_INSN cases,
if flag_non_call_exceptions is set and the insn may trap, pass
pc_rtx as dest for recursion.
In SET_SRC part of SET case, if dest is already set, pass it down
unchanged.
2005-07-28 Jan Hubicka <jh@suse.cz>
* cfg.c (update_bb_profile_for_threading): Use RDIV.
(scale_bbs_frequencies_int): Likewise, assert for possible overflow.
(scale_bbs_frequencies_gcov_type): Be more curefull about overflows and
roundoff errors.
* tree-cfg.c (tree_duplicate_sese_region): Use counts for updating
profile when available.
2005-07-28 Jan Beulich <jbeulich@novell.com>
* config/ia64/ia64.c (ia64_load_pair_ok): New.
(ia64_print_operand): Describe and handle 'X'.
(ia64_register_move_cost): Also handle FP_REGS.
(ia64_preferred_reload_class): Likewise.
(ia64_secondary_reload_class): Likewise.
(ia64_dependencies_evaluation_hook): New local variable c. Initialize
it. Also check for ITANIUM_CLASS_FLDP.
* config/ia64/ia64.h (FP_REGNO_P): New.
(HARD_REGNO_MODE_OK): Remove explusion of TImode.
(reg_class): Add FP_REGS.
(REG_CLASS_NAMES): Adjust for it.
(REG_CLASS_CONTENTS): Likewise.
(REGNO_REG_CLASS): Use FP_REGS where appropriate.
(REG_CLASS_FROM_LETTER): Handle 'x'.
(CLASS_MAX_NREGS): Handle FP_REGS.
(MEMORY_MOVE_COST): Likewise.
* config/ia64/ia64.md (itanium_class): Add fldp.
(type): Handle fldp.
(movti_internal): More allowable operand combinations. Use ldfp8 when
splitting unnecessary. Remove predicable attribute. Adjust
itanium_class attribute.
(smuldi3_highpart): Remove outdated comment.
(mulditi3, umulditi3, rotlti3): New expanders.
(addti3, subti3, mulditi3_internal, umulditi3_internal, negti2, rotlti3_internal): New insns.
(absti2): Disabled new insn for future reference.
Respective new splitters.
* config/ia64/itanium1.md (1_fldp, 1b_fldp): New insn reservations.
* config/ia64/itanium2.md (2_fldp, 2b_fldp): Likewise.
* config/ia64/ia64-protos.h (ia64_load_pair_ok): New.
2005-07-25 James A. Morrison <phython@gcc.gnu.org>
PR rtl-optimization/23047
* simplify-rtx.c (simplify_const_relational_operation): Respect
flag_wrapv for comparisons with ABS.
2005-07-27 James A. Morrison <phython@gcc.gnu.org>
PR tree-optimization/22493
* tree-vrp.c (extract_range_from_unary_expr): Deal with -fwrapv and
VR_ANTI_RANGEs properly for NEGATE_EXPRs and ABS_EXPRs.
2005-07-27 Aldy Hernandez <aldyh@redhat.com>
* config/frv/frv.opt (moptimize-membar): New.
* doc/invoke.texi: Document -moptimize-membar and its inverse.
* config/frv/frv.h: Remove machine_function definition.
* config/frv/frv.c (struct frv_io): New.
(struct machine_function): Moved from frv.h. Add has_membar_p.
(frv_same_doubleword_p, frv_io_fixed_order_p, frv_io_union)
(frv_extract_membar, frv_io_check_address, frv_io_handle_set)
(frv_io_handle_use_1, frv_io_handle_use, frv_optimize_membar_local)
(frv_optimize_membar_global, frv_optimize_membar): New functions.
(frv_reorg): Call frv_optimize_membar when appropriate.
(bdesc_loads, bdesc_stores): Use the membar code as the icode field.
(frv_expand_builtin): Adjust calls accordingly.
(frv_io_address_cookie): New function.
(frv_expand_load_builtin, frv_expand_store_builtin): Emit a normal
load or store rather than a special insn. Add ccnstant address and
io-type operands to the membar.
(frv_ifcvt_modify_tests): Unsign regno.
(frv_ifcvt_modify_tests): Same.
* config/frv/frv.md: Remove UNSPEC_BUILTIN_{LOAD,STORE}. Change
UNSPEC_OPTIONAL_MEMBAR constant.
(builtin_read_<mode>): Delete.
(builtin_write_<mode>): Delete.
("optional_membar_<mode>"): Add operand.
* testsuite/gcc.target/frv/all-builtin-read8.c: Delete.
* testsuite/gcc.target/frv/all-builtin-read16.c: Delete.
* testsuite/gcc.target/frv/all-builtin-read32.c: Delete.
* testsuite/gcc.target/frv/all-builtin-read64.c: Delete.
* testsuite/gcc.target/frv/all-builtin-write8.c: Delete.
* testsuite/gcc.target/frv/all-builtin-write16.c: Delete.
* testsuite/gcc.target/frv/all-builtin-write32.c: Delete.
* testsuite/gcc.target/frv/all-builtin-write64.c: Delete.
* testsuite/gcc.target/frv/all-read-write-1.c: New.
2005-07-28 Kaz Kojima <kkojima@gcc.gnu.org>
* df.c (df_uses_record): Handle SCRATCH.
2005-07-28 Steven Bosscher <stevenb@suse.de>
PR debug/20161
* passes.c (rest_of_decl_compilation): If decl is a type and
we have encountered errors, don't emit debug information.
2005-07-27 Kenneth Zadeck <zadeck@naturalbridge.com>
* params.def: Fixed comment.
2005-07-27 Bjoern Haase <bjoern.m.haase@web.de>
PR target/19885
* config/avr/avr.c (TARGET_ASM_ALIGNED_SI_OP): Add.
(TARGET_ASM_UNALIGNED_HI_OP): Add.
(TARGET_ASM_UNALIGNED_SI_OP): Add.
2005-07-27 Steven Bosscher <stevenb@suse.de>
PR c++/22003
* varasm.c (assemble_start_function): Don't do anything that may
require a CFG if the current function is a thunk.
2005-07-25 Geoffrey Keating <geoffk@apple.com>
* doc/install.texi (Prerequisites): Mention that perl is needed
to do export control in libstdc++ targetting Darwin.
2005-07-27 Steven Bosscher <stevenb@suse.de>
PR rtl-optimization/17808
* sched-deps.c (sched_get_condition): Enable #if 0'ed code.
(sched_insns_conditions_mutex_p): Split out from...
(add_dependence): ...here. But don't call it from here.
(add_dependence_list): Check sched_insns_conditions_mutex_p
before calling add_dependence.
(add_dependence_list_and_free): Likewise.
(fixup_sched_groups): Likewise.
(sched_analyze_1): Likewise.
(sched_analyze_2): Likewise (and replace a "0" with REG_DEP_TRUE).
(sched_analyze): Likewise.
(sched_analyze_insn): Likewise.
* sched-ebb.c (add_deps_for_risky_insns): Likewise.
* sched-rgn.c (add_branch_dependences): Likewise. Also, add
dependencies on all COND_EXEC insns to jumps ending basic blocks
when doing intrablock scheduling.
* sched-int.h (sched_insns_conditions_mutex_p): Add prototype.
2005-07-27 Jeff Law <law@redhat.com>
* tree-vrp.c (vrp_meet): Intersect the equivalency sets when
meeting a VR_ANTI_RANGE with a VR_RANGE. When intersecting
equivalency sets, correctly handle the case were vr0 has an
equivalency set, but vr1 does not.
2005-07-27 Dorit Nuzman <dorit@il.ibm.com>
PR tree-optimization/23073
* tree-vect-analyze.c (vect_analyze_data_refs_alignment): Call
vect_print_dump_info before fprintf.
2005-07-27 Zdenek Dvorak <dvorakz@suse.cz>
PR tree-optimize/22348
* tree-ssa-loop-niter.c (number_of_iterations_cond):
Fold the partial computation.
2005-07-27 Zdenek Dvorak <dvorakz@suse.cz>
PR tree-optimization/22325
* tree-flow.h (compute_phi_arg_on_exit, force_expr_to_var_cost):
Declare.
* tree-scalar-evolution.c (scev_const_prop): Add generic final
value replacement.
* tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Split from ...
(force_var_cost): ... this function.
(compute_phi_arg_on_exit): Export.
2005-07-27 Zdenek Dvorak <dvorakz@suse.cz>
PR tree-optimization/20773
* tree-ssa-loop-ch.c (copy_loop_headers): Select the correct latch
edge.
2005-07-27 Richard Guenther <rguenther@suse.de>
* tree-ssa-structalias.c (push_fields_onto_fieldstack):
Avoid pushing again if current struct contains only
fields we decomposed.
2005-07-27 Jan Hubicka <jh@suse.cz>
PR tree-optimization/22574
* cgraph.c (cgraph_function_body_availability): Unanalyzed bodies are
not available.
* tree-tailcall.c (decrease_profile): New function.
(eliminate_tail_call): Use it.
* cgraphunit.c (cgraph_function_and_variable_visibility): Set
visibility flags correctly in whole program mode.
2005-07-26 Steve Ellcey <sje@cup.hp.com>
PR rtl-optimization/22472
* config/pa/pa.h (HARD_REGNO_RENAME_OK): Define.
2005-07-26 Steven Bosscher <stevenb@suse.de>
PR tree-optimization/22504
* tree-complex.c (expand_complex_addition): Use 'code' instead
of MINUS_EXPR for (VARYING, ONLY_IMAG) and (ONLY_IMAG, VARYING).
2005-07-26 Aldy Hernandez <aldyh@redhat.com>
* config.gcc (cpu_type): Add frv case.
(with_cpu): Add frv400-*-*linux* and frv550-*-*linux* cases.
(supported_defaults): Add fr550 case.
2005-07-26 Diego Novillo <dnovillo@redhat.com>
PR 22591
* tree-ssa-alias.c (may_alias_p): Remove shortcut that tests
whether a pointer of type T * may point to objects of type T *.
2005-07-26 DJ Delorie <dj@redhat.com>
* configure: Regenerate.
2005-07-26 Dale Johannesen <dalej@apple.com>
* postreload-gcse.c (alloc_mem): Start CUID numbering at 1.
2005-07-26 Mark Mitchell <mark@codesourcery.com>
* doc/install.texi (--with-build-sysroot): Fix grammatical error.
Clarify use of "build" in name.
2005-07-26 Aldy Hernandez <aldyh@redhat.com>
* doc/extend.texi (Raw read/write Functions): New section.
* testsuite/gcc.target/frv/all-builtin-read8.c: New.
* testsuite/gcc.target/frv/all-builtin-read16.c: New.
* testsuite/gcc.target/frv/all-builtin-read32.c: New.
* testsuite/gcc.target/frv/all-builtin-read64.c: New.
* testsuite/gcc.target/frv/all-builtin-write8.c: New.
* testsuite/gcc.target/frv/all-builtin-write16.c: New.
* testsuite/gcc.target/frv/all-builtin-write32.c: New.
* testsuite/gcc.target/frv/all-builtin-write64.c: New.
* config/frv/frv.c: Add bdesc_loads global.
Add bdesc_stores global.
(frv_init_builtins): Add support for __builtin_{read/write}*.
(frv_volatile_memref): New.
(frv_expand_load_builtin): New.
(frv_expand_store_builtin): New.
* config/frv/frv.h (frv_builtins): Add FRV_BUILTIN_SCAN,
FRV_BUILTIN_READ8, FRV_BUILTIN_READ16, FRV_BUILTIN_READ32,
FRV_BUILTIN_READ64, FRV_BUILTIN_WRITE8, FRV_BUILTIN_WRITE16,
FRV_BUILTIN_WRITE32, FRV_BUILTIN_WRITE64.
* config/frv/frv.md (unspecs): Add UNSPEC_BUILTIN_LOAD,
UNSPEC_BUILTIN_STORE, UNSPEC_OPTIONAL_MEMBAR.
(builtin_read_<mode>): New.
(builtin_write_<mode>): New.
(builtin_write64): New.
(optional_membar_<mode>): New.
2005-07-26 J"orn Rennecke <joern.rennecke@st.com>
* emit-rtl.c (gen_lowpart_common): Compare size of MODE in bits
(rather than units) against HOST_BITS_PER_WIDE_INT.
2005-07-26 Kazu Hirata <kazu@codesourcery.com>
* ipa-pure-const.c, ipa-reference.c, ipa-reference.h,
ipa-type-escape.c, ipa-type-escape.h, ipa-utils.c,
ipa-utils.h, treestruct.def, config/crx/crx-protos.h,
config/crx/crx.c, config/crx/crx.h, config/crx/crx.md: Update
FSF address.
* calls.c, fold-const.c, ipa-reference.c, ipa-type-escape.c,
tree-ssa-reassoc.c, tree-ssa-structalias.c, vec.h,
config/crx/crx.c, config/m32c/m32c.c, config/m32c/m32c.h: Fix
comment typos.
* doc/c-tree.texi, doc/tree-ssa.texi: Fix typos.
2005-07-26 Richard Guenther <rguenther@suse.de>
PR tree-optimization/22486
* fold-const.c (fold_unary): Fold away useless component
references of the form (T *)&T.x, if the address
doesn't change.
2005-07-25 James E Wilson <wilson@specifixinc.com>
* dwarf2out.c (add_call_src_coords_attributes): New.
(gen_inlined_subroutine_die): Call it.
(maybe_emit_file, init_file_table): Add comments.
(prune_unused_types_walk_attribs): Pass DW_AT_call_file through
maybe_emit_file.
* tree-inline.c (remap_block): Copy BLOCK_SOURCE_LOCATION.
(expand_call_inline): Set BLOCK_SOURCE_LOCATION.
* tree.h (BLOCK_SOURCE_LOCATION): New.
(struct tree_block): New field locus.
2005-07-26 Andreas Schwab <schwab@suse.de>
PR rtl-optimization/23043
* postreload-gcse.c (eliminate_partially_redundant_load): Fix typo
when allocating a struct unoccr.
2005-07-25 Richard Henderson <rth@redhat.com>
PR 22626
* tree-complex.c (gate_no_optimization): True if errors.
* Makefile.in (tree-complex.o): Update dependencies.
2005-07-25 Aldy Hernandez <aldyh@redhat.com>
* config/frv/predicates.md (integer_register_operand): Use
GPR_AP_OR_PSEUDO_P.
2005-07-25 Andrew Pinski <pinskia@physics.uc.edu>
PR tree-opt/22484
* tree-ssa-ccp.c (fold_stmt_inplace): Strip useless type conversions
after fold.
* tree-ssa-propagate.c (set_rhs): Reject invalid conditional operands.
2005-07-25 Andrew Pinski <pinskia@physics.uc.edu>
* tree-ssa-reassoc.c (reassociate_expr): Allow scaler floating point
types when flag_unsafe_math_optimizations is true.
2005-07-25 Mark Mitchell <mark@codesourcery.com>
* gcc.c (option_map): Add --sysroot.
(process_command): Handle --sysroot.
(display_help): Document it.
* doc/cppopts.tex (-isysroot): Document.
* doc/invoke.texi (--sysroot): Document.
* doc/install.texi (--with-build-sysroot): Document.
* Makefile.in (inhibit_libc): New variable.
(INHIBIT_LIBC_CFLAGS): Likewise.
(LIBGCC2_CFLAGS): Include
$(INHIBIT_LIBC_CFLAGS).
(CRTSTUFF_CFLAGS): Include $(INHIBIT_LIBC_CFLAGS).
($(T)crtbegin.o): Do not use @inhibit_libc@.
($(T)crtend.o): Likewise.
($(T)crtbeginS.o): Do not use @inhibit_libc@.
($(T)crtendS.o): Likewise.
($(T)crtbeginT.o): Do not use @inhibit_libc@.
($(T)crtendT.o): Likewise.
(stmp-fixinc): Do not complain about missing headers if
inhibit_libc.
* configure.ac (inhibit_libc): Set it to true/false.
(--with-build-sysroot): New option. Use it to set
SYSTEM_HEADER_DIR.
* configure: Regenerated.
2005-07-25 Manfred Hollstein <mh@suse.com>
* calls.c (store_one_arg): Fix unsigned comparison warning.
2005-07-25 Serge Belyshev <belyshev@depni.sinp.msu.ru>
PR other/22337
* ggc-zone.c (ggc_alloc_zone_stat): Do not use CHUNK_OVERHEAD.
(ggc_print_statistics): Initialize variable before use.
2005-07-25 Richard Guenther <rguenther@suse.de>
* tree-dfa.c (mark_new_vars_to_rename): Protect against
calling with a PHI_NODE argument.
* tree-flow-inline.h (overlap_subvar): Protect against
possible overflow.
2005-07-25 Paolo Bonzini <bonzini@gnu.org>
* aclocal.m4 (gcc_AC_CHECK_TOOL): Add /bin to default directory.
* configure: Regenerate.
2005-07-25 Ira Rosen <irar@il.ibm.com>
* expr.c (highest_pow2_factor): Make extern.
* tree-data-ref.c (ptr_decl_may_alias_p): New function.
(ptr_ptr_may_alias_p, may_alias_p, record_ptr_differ_p,
record_array_differ_p, array_ptr_differ_p): Likewise.
(base_object_differ_p): Rename (from array_base_name_differ_p). Support
additional cases. Call the above functions.
(base_addr_differ_p): Moved from tree-vect-analyze.c. Call
base_object_differ_p when there are two base objects. Otherwise, compare
base address and offset. Call may_alias_p.
(dump_data_reference): Use a correct field name.
(analyze_array): Make static. Initialize new data-ref fields.
(analyze_indirect_ref): New function.
(init_data_ref): Initialize new data-ref fields.
(strip_conversion): Moved from tree-vect-analyze.c.
(analyze_offset_expr, get_ptr_offset, address_analysis,
object_analysis): Likewise.
(analyze_offset): New function.
(create_data_ref): Likewise.
(initialize_data_dependence_relation): Call base_addr_differ_p. Compare
dimensions for ARRAY_REFs only.
(build_classic_dist_vector): Make static.
(access_functions_are_affine_or_constant_p): Call macro to get the
address of access functions.
(compute_all_dependences): Add new parameter
compute_self_and_read_read_dependences. Compute self and read-read
dependences if it is true.
(find_data_references_in_loop): Call create_data_ref. Initialize new
data-ref fields.
(compute_data_dependences_for_loop): Add new parameter
compute_self_and_read_read_dependences. Remove parameter nb_loops,
compute nb_loops. Call compute_all_dependences,
build_classic_dist_vector and build_classic_dir_vector with correct
parameters.
(analyze_all_data_dependences): Call compute_data_dependences_for_loop
with correct parameters. Compare dimensions for ARRAY_REFs only.
(free_data_refs): Call macro to free access functions.
* tree-data-ref.h (struct first_location_in_loop): New structure. Move
fields from stmt_vinfo.
(struct base_object_info): New structure.
(struct data_reference): Move fields to base_object_info. Add fields
first_location and object_info for above structures. Move fields from
stmt_info: memtag, ptr_info, subvars, misalignment. Add new field
aligned_to. Add macros to access the new fields.
Update functions declarations.
* tree-flow.h (is_aliased_with): Declare.
* tree-loop-linear.c (linear_transform_loops): Call
compute_data_dependences_for_loop with correct parameters.
* tree-ssa-alias.c (is_aliased_with): New function.
* tree-vect-analyze.c (vect_get_ptr_offset): Remove.
(vect_analyze_offset_expr, vect_base_addr_differ_p): Likewise.
(vect_analyze_data_ref_dependence): Get ddr. Remove call to
vect_base_addr_differ_p, compute_subscript_distance and
build_classic_dist_vector. Add printings. Check absolute value of
distance.
(vect_analyze_data_ref_dependences): Go through ddrs instead of
data-refs.
(vect_compute_data_ref_alignment): Get the fields of data-ref instead of
stmt. Check aligned_to. Check if the base is aligned. Remove conversion
to bytes. Add printing.
(vect_compute_data_refs_alignment): Go through loads and stores in one
loop.
(vect_enhance_data_refs_alignment, vect_analyze_data_refs_alignment,
vect_analyze_data_ref_access): Likewise.
(vect_analyze_pointer_ref_access): Remove.
(vect_address_analysis, vect_object_analysis): Likewise.
(vect_analyze_data_refs): Call compute_data_dependences_for_loop to find
and analyze data-refs in the loop.
* tree-vect-transform.c (vect_create_addr_base_for_vector_ref): Get the
fields of data-ref instead of stmt. Add init to the offset from the
base.
(vect_create_data_ref_ptr): Get the fields of data-ref instead of stmt.
(vect_update_init_of_dr): Likewise.
(vect_update_inits_of_drs): Go through loads and stores in one loop.
* tree-vectorizer.c (new_stmt_vec_info): Remove initialization of
removed fields.
(new_loop_vec_info): Initialize new fields.
(destroy_loop_vec_info): Free new fields.
(vect_strip_conversion): Remove.
* tree-vectorizer.h (enum verbosity_levels): Add new verbosity level.
(struct _loop_vec_info): Unify data_ref_writes and data_ref_reads into
datarefs. Add new field ddrs.
Add macros for the new fields access.
(struct _stmt_vec_info): Remove: base_address, initial_offset, step,
base_aligned_p, misalignment, memtag, ptr_info and subvars.
Remove their macros.
* tree.h (highest_pow2_factor): Declare.
2005-07-25 Jakub Jelinek <jakub@redhat.com>
* calls.c (store_one_arg): Check for sibling call MEM arguments
from already clobbered incoming argument area.
2005-07-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* c-common.c (check_missing_format_attribute): New.
* c-common.h (check_missing_format_attribute): Likewise.
* c-typeck.c (convert_for_assignment): Use it.
2005-07-24 Andreas Schwab <schwab@suse.de>
* config/m68k/m68k.md ("extendqidi2"): When source is an address
register use a word move. Correct operand of ext.w in 68000 code.
2005-07-23 Mark Mitchell <mark@codesourcery.com>
* dwarf2out.c (gen_variable_die): Treat un-emitted COMDAT
variables as declarations, rather than definitions.
2005-07-24 Ira Rosen <irar@il.ibm.com>
PR tree-optimization/22526
* tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): Match the type
of the zero node.
2005-07-24 Francois-Xavier Coudert <coudert@clipper.ens.fr>
* builtins.def: Add DEF_EXT_C99RES_BUILTIN to define builtins
that C99 reserve for future use. Use it to define clog10,
clog10f and clog10l.
2005-07-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* Makefile.in (STRICT2_WARN): Add -Wmissing-format-attribute.
* configure.ac: Check for -Wmissing-format-attribute.
* configure: Regenerate.
2005-07-23 Richard Henderson <rth@redhat.com>
PR tree-optimization/22623
* tree-complex.c (set_component_ssa_name): Use replace_ssa_name_symbol.
2005-07-23 Giovanni Bajo <giovannibajo@libero.it>
PR target/22577
* config/pa/pa.c (reloc_needed): Updated for VECs inside CONSTRUCTOR.
2005-07-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* Makefile.in (C_TREE_H): Update dependencies.
* c-tree.h: Include toplev.h.
* diagnostic.h (diagnostic_set_info): Add format attribute.
* rtl-error.c (diagnostic_for_asm): Likewise.
2005-07-23 Chao-ying Fu <fu@mips.com>
* config/mips/mips-dsp.md: New file.
* config/mips/mips-modes.def (V4QI, V2HI, CCDSP): New modes.
* config/mips/mips.c (mips_function_type): Add types for DSP builtin
functions.
(mips_builtin_type): Add MIPS_BUILTIN_DIRECT_NO_TARGET and
MIPS_BUILTIN_BPOSGE32.
(mips_expand_builtin_direct): Add one parameter to indicate that
builtin functions need to return a value.
(mips_expand_builtin_bposge): New for expanding "bposge" builtin
functions.
(mips_regno_to_class): Add classes for 12 new DSP registers.
(mips_subword): Change to check four HI registers.
(mips_output_move): Output move to and from 6 new DSP accumulators.
(override_options): Make sure -mdsp and -mips16 are not used together.
Map 'A' to DSP_ACC_REGS and 'a' to ACC_REGS. Enable DSP accumulators
for machine modes.
(mips_conditional_register_usage): Disable 6 new DSP accumulators
when !TARGET_DSP.
(print_operand): Add 'q' for printing DSP accumulators.
(mips_cannot_change_mode_class): Check ACC_REGS.
(mips_secondary_reload_class): Check ACC_REGS.
(mips_vector_mode_supported_p): Enable V2HI and V4QI when TARGET_DSP.
(mips_register_move_cost): Check ACC_REGS.
(CODE_FOR_mips_addq_ph, CODE_FOR_mips_addu_qb, CODE_FOR_mips_subq_ph)
(CODE_FOR_mips_subu_qb): New code-aliasing macros.
(DIRECT_NO_TARGET_BUILTIN, BPOSGE_BUILTIN): New macros.
(dsp_bdesc): New array.
(bdesc_arrays): Add DSP builtin function table.
(mips_prepare_builtin_arg): Check predicate again after
copy_to_mode_reg.
(mips_expand_builtin): Add one more parameter to
mips_expand_builtin_direct. Expand MIPS_BUILTIN_DIRECT_NO_TARGET and
MIPS_BUILTIN_BPOSGE32.
(mips_init_builtins): Initialize new function types.
(mips_expand_builtin_direct): Check if builtin functions need to
return a value and pass operands properly.
(mips_expand_builtin_bposge): New function.
* config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Add __mips_dsp.
(ASM_SPEC): Map -mdsp to -mdsp in GAS.
(FIRST_PSEUDO_REGISTER): Increase to 188.
(FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS):
Update for 12 new DSP registers.
(DSP_ACC_REG_FIRST, DSP_ACC_REG_LAST, DSP_ACC_REG_NUM, AC1HI_REGNUM)
(AC1LO_REGNUM, AC2HI_REGNUM, AC2LO_REGNUM, AC3HI_REGNUM, AC3LO_REGNUM):
(DSP_ACC_REG_P, ACC_REG_P, ACC_HI_REG_P): New macros.
(reg_class): Add DSP_ACC_REGS and ACC_REGS.
(REG_CLASS_NAMES): Add names for DSP_ACC_REGS and ACC_REGS.
(REG_CLASS_CONTENTS): Update for DSP_ACC_REGS, ACC_REGS and ALL_REGS.
(REG_ALLOC_ORDER): Update for 12 new DSP registers.
(mips_char_to_class): Add 'A' for DSP_ACC_REGS and 'a' for ACC_REGS.
(UIMM6_OPERAND, IMM10_OPERAND): New macros.
(EXTRA_CONSTRAINT_Y): Add YA and YB extra constraints.
(REGISTER_NAMES): Add names for 12 new DSP registers.
* config/mips/mips.md: Include mips-dsp.md.
(UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ, UNSPEC_SUBQ_S, UNSPEC_ADDSC)
(UNSPEC_ADDWC, UNSPEC_MODSUB, UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S)
(UNSPEC_PRECRQ_QB_PH, UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W)
(UNSPEC_PRECRQU_S_QB_PH, UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR)
(UNSPEC_PRECEQU_PH_QBL, UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA)
(UNSPEC_PRECEQU_PH_QBRA, UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR)
(UNSPEC_PRECEU_PH_QBLA, UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL)
(UNSPEC_SHLL_S, UNSPEC_SHRL_QB, UNSPEC_SHRA_PH, UNSPEC_SHRA_R)
(UNSPEC_MULEU_S_PH_QBL, UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH)
(UNSPEC_MULEQ_S_W_PHL, UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL)
(UNSPEC_DPAU_H_QBR, UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR)
(UNSPEC_DPAQ_S_W_PH, UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH)
(UNSPEC_DPAQ_SA_L_W, UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL)
(UNSPEC_MAQ_S_W_PHR, UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR)
(UNSPEC_BITREV, UNSPEC_INSV, UNSPEC_REPL_QB, UNSPEC_REPL_PH)
(UNSPEC_CMP_EQ, UNSPEC_CMP_LT, UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB)
(UNSPEC_CMPGU_LT_QB, UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH)
(UNSPEC_EXTR_W, UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H)
(UNSPEC_EXTP, UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
(UNSPEC_RDDSP): New constants.
(*movdi_32bit): Change 'x' to 'a' for ACC_REGS.
(*movsi_internal): Change 'x' to 'a' for ACC_REGS. Add an
A<-d alternative.
* config/mips/mips.opt (-mdsp): New option.
* config/mips/predicates.md (const_uimm6_operand, const_imm10_operand)
(reg_imm10_operand): New predicates.
* doc/extend.texi (MIPS DSP Built-in Functions): New section.
* doc/invoke.texi (-mdsp): Document new option.
2005-07-22 DJ Delorie <dj@redhat.com>
* c-objc-common.c (c_cannot_inline_tree_fn): Add warning control
to warning calls.
* tree-inline.c (inlinable_function_p): Likewise.
2005-07-22 Mark Mitchell <mark@codesourcery.com>
PR debug/21828
* toplev.c (check_global_declarations): Do not mark undefined
variables as DECL_IGNORED_P.
* varasm.c (first_global_object_name): GTY it.
(weak_global_object_name): Likewise.
(notice_global_symbol): Use ggc_strdup, not xstrdup, when creating
a string to go into {weak,first}_global_object_name.
2005-07-22 DJ Delorie <dj@redhat.com>
* c-format.c (check_function_format): Change warning control
option from OPT_Wattribute to OPT_Wmissing_format_attribute.
2005-07-22 Diego Novillo <dnovillo@redhat.com>
* tree-ssa-alias.c (count_ptr_derefs): Do not consider
&PTR->FLD a dereference of PTR.
* tree-ssa-structalias.c (update_alias_info): Consider &PTR->FLD
a potential dereference of PTR.
2005-07-22 J"orn Rennecke <joern.rennecke@st.com>
PR rtl-optimization/20370
* ifcvt.c (dead_or_predicable): Before calling propagate_block,
call allocate_reg_info if necessary.
PR rtl-optimization/21848
* calls.c (emit_library_call_value_1): For const functions, add
USEs of the stack slots to CALL_INSN_FUNCTION_USAGE.
PR rtl-optimization/22445
* cselib.c (target.h): Include.
(rtx_equal_for_cselib_p): Allow commutative matches.
(cselib_hash_rtx): Don't use MODE for CONST_INT hashing.
Remove MODE parameter. Changed all callers.
PR rtl-optimization/22258
* combine.c (likely_spilled_retval_1, likely_spilled_retval_p):
New functions.
(try_combine): Use likely_spilled_retval_p.
2005-07-22 Paul Woegerer <paul.woegerer@nsc.com>
* config.gcc: Add crx-elf support.
* doc/contrib.texi: Mention crx.
* doc/extend.texi: Document crx extensions.
* doc/install.texi: Document crx install.
* doc/invoke.texi: Document crx options.
* doc/md.texi: Document crx constraints.
* config/crx/crx-protos.h: New file.
* config/crx/crx.c: New file.
* config/crx/crx.h: New file.
* config/crx/crx.md: New file.
* config/crx/crx.opt: New file.
* config/crx/t-crx: New file.
2005-07-22 Manfred Hollstein <mh@suse.com>
* tree-ssa-structalias.c (merge_graph_nodes): Fix uninitialised
warnings.
(int_add_graph_edge): Likewise.
(collapse_nodes): Likewise.
(process_unification_queue): Likewise.
2005-07-22 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
Laurent GUERBY <laurent@guerby.net>
PR tree-optimization/22336
* function.c (record_block_change): Check for
cfun->ib_boundaries_block.
2005-07-21 James A. Morrison <phython@gcc.gnu.org>
* fold-const.c (fold_unary): Don't strip signed nops from ABS_EXPRs.
(tree_expr_nonnegative_p): Return try for TYPE_UNSIGNED.
2005-07-21 DJ Delorie <dj@redhat.com>
* toplev.c (warn_deprecated_use): Add warning control to warning
call.
* c-typeck.c (parser_build_binary_op): Likewise.
(c_finish_if_stmt): Likewise.
* c-common.c (check_function_sentinel): Likewise.
(check_nonnull_arg): Likewise.
2005-07-21 Richard Henderson <rth@redhat.com>
PR tree-opt/22504
* tree-complex.c (complex_ssa_name_components): New.
(cvc_lookup): Allow entry not found.
(create_components): Remove.
(create_one_component_var, get_component_var): New.
(get_component_ssa_name, set_component_ssa_name): New.
(extract_component): Use get_component_ssa_name.
(update_complex_components): Use set_component_ssa_name.
(update_complex_components_on_edge): Likewise.
(update_phi_components): Create new PHI nodes directly, instead
of adding insns to edges.
(tree_lower_complex): Allocate and free complex_variable_components
and complex_ssa_name_components here.
2005-07-20 Daniel Berlin <dberlin@dberlin.org>
* alias.c (nonoverlapping_component_refs_p): Use TYPE_MAIN_VARIANT,
revert to returning false.
2005-07-21 Uros Bizjak <uros@kss-loka.si>
PR target/21149
* config/i386/i386.md (sse_movhlps): Fix vec_select values.
2005-07-21 Uros Bizjak <uros@kss-loka.si>
PR target/22576
* config/i386/i386.md (cmpxf): Change operand constraints
to "nonmemory_operand".
2005-07-21 Andrew Pinski <pinskia@physics.uc.edu>
* config/i386/i386.md (trap): Use "".word/t0x0b0f" instead of ud2.
2005-07-21 Andrew Pinski <pinskia@physics.uc.edu>
PR middle-end/21180
* fold-const.c (fold_build1): Add checksum for the operands.
(fold_build2): Likewise.
(fold_build3): Likewise.
2005-07-21 Andrew Pinski <pinskia@physics.uc.edu>
PR middle-end/19055
* fold-const.c (fold_binary): Transform "(X | Y) ^ X" to "Y & ~ X".
2005-07-21 Paolo Bonzini <bonzini@gnu.org>
* common.opt (-fforward-propagate): Committed by mistake,
removed.
2005-07-21 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
* reg-stack.c: Fix comment typo(s).
* tree-ssa-operands.c: Likewise.
* tree-vectorizer: Likewise.
2005-07-21 Nick Clifton <nickc@redhat.com>
* config/sh/symbian.c: Replace C++ style line comments with C
style line comments.
(symbian_add_attribute): Do not use a ? operator on the LHS of
an assignment.
(sh_symbian_handle_dll_attribute): Change the type of the
method vector to "VEC(tree,gc)*" and use vector accessor
macros to walk over the elements.
(symbian_export_vtable_and_rtti_p): Likewise.
(symbian_class_needs_attribute_p): Likewise.
2005-07-21 Paolo Bonzini <bonzini@gnu.org>
PR target/22085
* config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Do not
initialize targetm.resolve_overloaded_builtin here.
(altivec_expand_overloaded_builtin): Make it non-static.
* config/rs6000/rs6000-protos.h
(altivec_expand_overloaded_builtin): New prototype.
* config/rs6000/rs6000.h (REGISTER_TARGET_PRAGMAS): Initialize
targetm.resolve_overloaded_builtin here.
* config/rs6000/darwin.h (REGISTER_TARGET_PRAGMAS): Likewise.
2005-07-21 Paolo Bonzini <bonzini@gnu.org>
Zdenek Dvorak <dvorakz@suse.cz>
PR tree-optimization/19210
* common.opt (Wunsafe-loop-optimizations, funsafe-loop-optimizations):
New.
* Makefile.in (tree-ssa-loop-niter.o): Depend intl.o.
* loop-iv.c (get_simple_loop_desc): If -funsafe-loop-optimizations,
rely on unproven assumptions.
* predict.c (predict_loops): Adjust call to number_of_iterations_exit.
* tree-flow.h (number_of_iterations_exit): Add final parameter.
* tree-scalar-evolution.c (number_of_iterations_in_loop): Adjust call
to number_of_iterations_exit.
* tree-ssa-loop-ivcanon.c (empty_loop_p): Likewise.
* tree-ssa-loop-ivopts.c (niter_for_exit): Likewise.
* tree-ssa-loop-niter.c (find_loop_niter,
estimate_numbers_of_iterations_loop): Likewise.
(number_of_iterations_exit): Honor the new options.
* doc/invoke.texi (Wunsafe-loop-optimizations,
funsafe-loop-optimizations): Document them.
2005-07-21 Richard Sandiford <richard@codesourcery.com>
PR rtl-optimization/22167
* gcse.c (hoist_code): Fix hoist_exprs[] check.
2005-07-20 Adam Nemet <anemet@lnxw.com>
* config/rs6000/lynx.h: Mark __do_global_ctors_aux and
__do_global_dtors_aux longcall.
2005-07-20 Kazu Hirata <kazu@cs.umass.edu>
* gensupport.c (old_preds): Don't reference PREDICATE_CODES.
(old_special_pred_table): Don't reference
SPECIAL_MODE_PREDICATES.
* system.h (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Poison.
* config/arc/arc.h: Don't mention PREDICATE_CODES.
* config/sh/predicates.h: Don't mention
SPECIAL_MODE_PREDICATES.
* doc/tm.texi (PREDICATE_CODES, SPECIAL_MODE_PREDICATES):
Remove.
2005-07-20 DJ Delorie <dj@redhat.com>
* config.gcc: Add m32c-elf support.
* doc/contrib.texi: Mention m32c.
* doc/extend.texi: Document m32c extensions.
* doc/install.texi: Mention m32c.
* doc/invoke.texi: Document m32c options.
* doc/md.texi: Document m32c constraints.
* config/m32c/addsub.md: New file.
* config/m32c/bitops.md: New file.
* config/m32c/cond.md: New file.
* config/m32c/jump.md: New file.
* config/m32c/m32c-lib1.S: New file.
* config/m32c/m32c-lib2.c: New file.
* config/m32c/m32c-modes.def: New file.
* config/m32c/m32c-pragma.c: New file.
* config/m32c/m32c-protos.h: New file.
* config/m32c/m32c.abi: New file.
* config/m32c/m32c.c: New file.
* config/m32c/m32c.h: New file.
* config/m32c/m32c.md: New file.
* config/m32c/m32c.opt: New file.
* config/m32c/minmax.md: New file.
* config/m32c/mov.md: New file.
* config/m32c/muldiv.md: New file.
* config/m32c/predicates.md: New file.
* config/m32c/prologue.md: New file.
* config/m32c/shift.md: New file.
* config/m32c/t-m32c: New file.
2005-07-20 Kaz Kojima <kkojima@gcc.gnu.org>
* config/sh/sh.md (UNSPEC_SP_SET, UNSPEC_SP_TEST): New constants.
(stack_protect_set, stack_protect_test): New expanders.
(stack_protect_set_si, stack_protect_set_si_media,
stack_protect_set_di_media, stack_protect_test_si,
stack_protect_test_si_media, stack_protect_test_di_media):
New insns.
2005-07-20 Andrew Pinski <pinskia@physics.uc.edu>
* c-typeck.c (output_init_element): Don't copy the INTEGER_CST.
2005-07-20 James A. Morrison <phython@gcc.gnu.org>
* tree.h (tree_expr_nonzero_p): Export.
* fold-const.c (tree_expr_nonzero_p): Likewise.
Return true for CALL_EXPRs that are alloca calls.
(fold_binary): Use omit_one_operand when checking EQ_EXPRs or NE_EXPRs
against zero.
* tree-flow.h (expr_computes_nonzero): Remove.
* tree-vrp.c (expr_computes_nonzero): Remove.
(vrp_expr_computes_nonzero): Use tree_expr_nonzero_p.
(extract_range_from_unary_expr): Likewise.
* tree-ssa-dom.c (record_equivalences_from_stmt): Use
tree_expr_nonzero_p.
2005-07-20 Bernd Schmidt <bernd.schmidt@analog.com>
* config/bfin/bfin-protos.h (legitimize_pic_address): Don't declare.
* config/bfin/bfin.c (legitimize_pic_address): Now static. Take
extra arg "picreg" and use it instead of pic_offset_table_rtx.
All callers changed.
(frame_related_constant_load): New arg "related" which controls
setting of RTX_FRAME_RELATED_P. All callers changed.
(bfin_load_pic_reg): New function, broken out of bfin_expand_prologue.
(bfin_expand_prologue): Add stack limit checking.
* config/bfin/bfin.md (trapifcc): New pattern.
* config/bfin/bfin.c: Include "langhooks.h".
(def_builtin): Go through lang_hooks to call builtin_function.
* config/bfin/bfin-protos.h (bfin_longcall_p): Declare.
* config/bfin/predicates.md (symbol_ref_operand): New.
(call_insn_operand): Delete. All callers changed to use
register_no_elim_operand.
* config/bfin/bfin.c (init_cumulative_args): Initialize the new
call_cookie field.
(function_arg): Use it to generate the call's operand 2.
(bfin_longcall_p): New function.
(bfin_expand_call): Extra arg "cookie". All callers and declaration
changed. Emit extra USE in the pattern. Use bfin_longcall_p to
determine if the address needs to be in a REG.
(bfin_handle_longcall_attribute): New function.
(bfin_attribute_table): Add "longcall" and "shortcall".
* config/bfin/bfin.h (CALL_NORMAL, CALL_LONG, CALL_SHORT): New macros.
(CUMULATIVE_ARGS): New member call_cookie.
(PREDICATE_CODES): Add symbol_ref_operand.
* config/bfin/bfin.md (call, call_value, sibcall, sibcall_value): Add
extra USE to the pattern.
(call_symbol, sibcall_symbol, call_value_symbol, sibcall_value_symbol):
New patterns, split off call_insn, sibcall_insn, call_value_insn and
sibcall_value_insn; now the new patterns handle direct calls and the
old ones indirect calls.
* doc/extend.texi: Mention Blackfin in longcall/shortcall docs.
2005-07-20 Zdenek Dvorak <dvorakz@suse.cz>
* doc/trouble.texi: Update section on handling of empty loops.
2005-07-20 Kazu Hirata <kazu@codesourcery.com>
* config.gcc: Remove support for sparc-*-openbsd*,
i860-*-sysv4*, ip2k-*-elf, ns32k-*-netbsdelf*,
ns32k-*-netbsd*.
* config.host: Remove support for i860-*-sysv4* as a host.
* config/i860/*, config/ip2k/*, config/ns32k/*,
config/sparc/openbsd.h, config/sparc/t-openbsd: Remove.
* doc/install.texi, doc/invoke.texi, doc/md.texi: Don't
mention obsolete ports.
2005-07-20 Kaz Kojima <kkojima@gcc.gnu.org>
* config/sh/sh.c (regno_reg_class): Add GENERAL_REGS for
soft frame pointer.
(sh_expand_prologue): Use hard_frame_pointer_rtx instead
of frame_pointer_rtx.
(sh_expand_epilogue): Likewise.
(sh_set_return_address): Likewise.
(initial_elimination_offset): Use HARD_FRAME_POINTER_REGNUM
instead of FRAME_POINTER_REGNUM if needed. Add elimination
offsets from FRAME_POINTER_REGNUM.
* config/sh/sh.h (SH_REGISTER_NAMES_INITIALIZER): Add sfp.
(sh_register_names): Add initializer for sfp.
(GENERAL_OR_AP_REGISTER_P): Permit FRAME_POINTER_REGNUM.
(VALID_REGISTER_P): Likewise.
(FIRST_PSEUDO_REGISTER): Update.
(DWARF_FRAME_REGISTERS): Define.
(FIXED_REGISTERS, CALL_USED_REGISTERS): Add sfp.
(HARD_FRAME_POINTER_REGNUM): Define.
(FRAME_POINTER_REGNUM): Redefine.
(ELIMINABLE_REGS): Never eliminate to FRAME_POINTER_REGNUM,
but HARD_FRAME_POINTER_REGNUM instead. Add eliminations
from FRAME_POINTER_REGNUM.
(CAN_ELIMINATE): Use HARD_FRAME_POINTER_REGNUM instead of
FRAME_POINTER_REGNUM.
(REG_CLASS_CONTENTS): Add sfp.
(REG_ALLOC_ORDER): Likewise.
(FRAME_GROWS_DOWNWARD): Set to 1. Update comment.
(GO_IF_LEGITIMATE_ADDRESS): Use hard_frame_pointer_rtx instead
of frame_pointer_rtx.
(LEGITIMIZE_RELOAD_ADDRESS): Likewise.
2005-07-19 James A. Morrison <phython@gcc.gnu.org>
* fold-const.c (tree_expr_nonnegative_p): Only return true for
ABS_EXPR when flag_wrapv is false because of INT_MIN.
(tree_expr_nonzero_p): Always call tree_expr_nonzero_p on the argument
of an ABS_EXPR.
(fold_unary): Always fold ABS_EXPR<ABS_EXPR<x>> into
ABS_EXPR<x>.
2005-07-20 Giovanni Bajo <giovannibajo@libero.it>
Make CONSTRUCTOR use VEC to store initializers.
* c-common.c (complete_array_type): Update to cope with VEC in
CONSTRUCTOR_ELTS.
* c-pretty-print.c (pp_c_initializer_list): Use pp_c_constructor_elts.
(pp_c_constructor_elts): New function.
* c-pretty-print.h (pp_c_constructor_elts): Declare.
* c-typeck.c (build_function_call, build_c_cast, digest_init,
struct constructor_stack, struct initializer_stack,
constructor_elements, push_init_level, pop_init_level,
add_pending_init, find_init_member, output_init_element): Update to
cope with VEC in CONSTRUCTOR_ELTS.
* coverage.c (build_fn_info_value, build_ctr_info_value,
build_gcov_info): Likewise.
* expr.c (categorize_ctor_elements_1, store_constructor,
expand_expr_real_1): Likewise.
* fold-const.c (fold_ternary): Likewise.
* gimplify.c (gimplify_init_ctor_preeval, zero_sized_field_decl,
gimplify_init_constructor, gimplify_expr): Likewise.
* tree-dump.c (dequeue_and_dump): Likewise.
* tree-inline.c (copy_tree_r): Add code to duplicate a CONSTRUCTOR
node.
* tree-pretty-print.c (dump_generic_node): Update to cope with VEC in
CONSTRUCTOR_ELTS.
* tree-sra.c (generate_element_init_1): Likewise.
* tree-ssa-ccp.c (fold_const_aggregate_ref): Likewise.
* tree-ssa-operands.c (get_expr_operands): Likewise.
* tree-vect-generic.c (expand_vector_piecewise): Likewise.
* tree-vect-transform.c (vect_get_vec_def_for_operand):
(get_initial_def_for_reduction): Likewise.
* tree-vn.c (set_value_handle, get_value_handle): CONSTURCTOR uses
value handle in annotations.
* tree.c (tree_node_kind, tree_code_size, make_node_stat,
tree_node_structure): Add support for constr_kind.
(build_vector_from_ctor, build_constructor_single,
build_constructor_from_list): New functions.
(build_constructor): Update to take a VEC instead of a TREE_LIST.
(simple_cst_equal, iterative_hash_expr, initializer_zerop, walk_tree):
Update to cope with VEC in CONSTRUCTOR_ELTS.
* tree.def (CONSTRUCTOR): Make it a tcc_exceptional node.
* tree.h (FOR_EACH_CONSTRUCTOR_VALUE, FOR_EACH_CONSTRUCTOR_ELT,
CONSTRUCTOR_APPEND_ELT): New macros.
(struct constructor_elt, struct tree_constructor): New data types.
(union tree_node): Add tree_constructor field.
* treestruct.def: Define TS_CONSTRUCTOR.
* varasm.c (const_hash_1, compare_constant, copy_constant,
compute_reloc_for_constant, output_addressed_constants,
initializer_constant_valid_p, output_constant,
array_size_for_constructor, output_constructor): Update to cope with
VEC in CONSTRUCTOR_ELTS.
* vec.h (VEC_empty, VEC_copy): New macros.
2005-07-19 Devang Patel <dpatel@apple.com>
* dbxout.c (dbxout_type): Check Objective-C++ lang.
2005-07-19 Richard Henderson <rth@redhat.com>
PR tree-opt/22278
* gimplify.c (gimplify_expr): Use main variant type for the temp
destination for a discarded volatile read.
* tree-ssa.c (tree_ssa_useless_type_conversion_1): Don't elide
casts between non-void types that change volatility.
2005-07-15 DJ Delorie <dj@redhat.com>
* toplev.h: Add comment about the first parameter for warning().
* errors.h: Likewise.
* c.opt (Wpragmas): New.
* doc/invoke.texi: Document it.
* function.c (do_warn_unused_parameter): Add warning control to
warning call.
* c-decl.c (warn_if_shadowing): Likewise.
* c-lex.c (cb_def_pragma): Likewise.
* c-pragma.c (GCC_BAD, GCC_BAD2): Likewise.
(pop_alignment): Likewise.
(handle_pragma_pack): Likewise.
(apply_pragma_weak): Likewise.
(handle_pragma_weak): Likewise.
(handle_pragma_redefine_extname): Likewise.
(add_to_renaming_pragma_list): Likewise.
(handle_pragma_extern_prefix): Likewise.
(maybe_apply_renaming_pragma): Likewise.
(handle_pragma_visibility): Likewise.
* config/c4x/c4x-c.c (BAD): Likewise.
(c4x_parse_pragma): Likewise.
* config/ia64/ia64-c.c (ia64_hpux_handle_builtin_pragma): Likewise.
* config/rs6000/rs6000-c.c (SYNTAX_ERROR): Likewise.
(rs6000_pragma_longcall): Likewise.
* config/v850/v850-c.c (pop_data_area): Likewise.
(ghs_pragma_section): Likewise.
(ghs_pragma_section): Likewise.
(ghs_pragma_interrupt): Likewise.
(ghs_pragma_starttda): Likewise.
(ghs_pragma_startsda): Likewise.
(ghs_pragma_startzda): Likewise.
(ghs_pragma_endtda): Likewise.
(ghs_pragma_endsda): Likewise.
(ghs_pragma_endzda): Likewise.
2005-07-19 Danny Berlin <dberlin@dberlin.org>
Kenneth Zadeck <zadeck@naturalbridge.com>
* Makefile.in: Removed tree-promote-statics.c
* tree-promote-statics.c: Removed.
* common.opt: Removed flag-promote-statics.
* opts.c: Ditto.
* passes.c: Removed tree-promote-statics pass.
* tree-pass.h: Ditto.
* timevar.def: Removed TV_PROMOTE_STATICS.
2005-07-19 Gerald Pfeifer <gerald@pfeifer.com>
* config.gcc: Add support for *-*-freebsd7, *-*-freebsd8,
and *-*-freebsd9.
* config/freebsd-spec.h (FBSD_TARGET_OS_CPP_BUILTINS): Ditto.
2005-07-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
PR c/22476
* c-common.c (check_function_arguments): Call
'check_function_format' if either -Wformat or
-Wmissing-format-attribute are specified.
* c-format.c (check_function_format): Check -Wformat before
calling 'check_format_info'.
* c-opts.c (c_common_post_options): Don't warn for
-Wmissing-format-attribute without -Wformat.
* c-typeck.c (convert_for_assignment): Detect additional cases for
-Wmissing-format-attribute.
* doc/invoke.texi (-Wmissing-format-attribute): Document new
behavior.
2005-07-19 Richard Guenther <rguenther@suse.de>
* config/i386/i386.md (lrint<mode>2): Use temporary
instead of clobbering non-existent memory.
2005-07-19 Nick Clifton <nickc@redhat.com>
* config/avr/avr.c (legitimate_address_p): Fix debugging print
statement to avoid displaying ASCII control characters.
2005-07-19 Ben Elliston <bje@au.ibm.com>
* bt-load.c (link_btr_uses): Fix uninitialised warnings.
* cfganal.c (find_edge_index): Ditto.
* combine.c (combine_instructions): Ditto.
* ddg.c (create_scc): Ditto.
(find_successors): Ditto.
(find_predecessors): Ditto.
(find_nodes_on_paths): Ditto.
(longest_simple_path): Ditto.
* flow.c (update_life_info): Ditto.
(count_or_remove_death_notes): Ditto.
(clear_log_links): Ditto.
* modulo-sched.c (generate_reg_moves): Ditto.
(find_max_asap): Ditto.
(find_max_hv_min_mob): Ditto.
(find_max_dv_min_mob): Ditto.
* sbitmap.c (sbitmap_first_set_bit): Ditto.
* sched-rgn.c (extract_edgelst): Ditto.
* tree-into-ssa.c (prepare_names_to_update): Ditto.
(dump_update_ssa): Ditto.
(ssa_names_to_replace) Ditto.
(switch_virtuals_to_full_rewrite): Ditto.
(update_ssa): Ditto.
* tree-vect-transform.c (vect_create_epilog_for_reduction): Ditto.
2005-07-18 Daniel Berlin <dberlin@dberlin.org>
Fix PR tree-optimization/22483
* tree-complex.c (create_components): Use
safe_referenced_var_iterator and FOR_EACH_REFERENCED_VAR_SAFE.
* tree-flow-inline.h (fill_referenced_var_vec): New function.
* tree-flow.h (safe_referenced_var_iterator): New structure.
(FOR_EACH_REFERENCED_VAR_SAFE): New macro.
* tree-ssa-alias.c (setup_pointers_and_addressables): Use
safe_referenced_var iterator.
(add_type_alias): Ditto.
2005-07-19 Steven Bosscher <stevenb@suse.de>
* loop-init.c (rest_of_handle_loop2): Remove.
(rtl_loop_init, rtl_loop_done, rtl_move_loop_invariants,
rtl_unswitch, rtl_unroll_and_peel_loops, rtl_doloop): New functions.
(pass_rtl_loop_init, pass_rtl_loop_done,
pass_rtl_move_loop_invariants, pass_rtl_unswitch,
pass_rtl_unroll_and_peel_loops, pass_rtl_doloop): New passes.
* tree-ssa-loop.c (pass_loop, pass_loop_init, pass_loop_done,
pass_unswitch): Rename to pass_tree_loop, pass_tree_loop_init,
pass_tree_loop_done, and pass_tree_unswitch.
(gate_loop): Rename to gate_tree_loop.
* passes.c (init_optimization_passes): Update for renamed tree
loop passes. Add the new loop2 passes as subpasses of loop2.
* tree-pass.h: Add extern declarations for the new loop2 subpasses.
Update for the renamed tree loop passes.
2005-07-18 Ian Lance Taylor <ian@airs.com>
PR middle-end/22057
* tree-cfgcleanup.c (cleanup_tree_cfg): Only remove forwarder
blocks when optimizing.
2005-07-18 Steve Ellcey <sje@cup.hp.com>
* common.opt (frename-registers): Initialize to 2.
(fweb): Ditto.
(fgcse-after-reload): Ditto.
* toplev.c (AUTODETECT_FLAG_VAR_TRACKING): Rename to AUTODETECT_VALUE.
(process_options): Only change flag_web, flag_rename_registers,
and flag_rerun_cse_after_loop if not explicitly set by user.
2005-07-18 Jan Beulich <jbeulich@novell.com>
* config/i386/i386.c (ix86_expand_branch, ix86_expand_setcc,
ix86_expand_carry_flag_compare, ix86_expand_int_movcc): Handle TImode
in 64-bit mode the same as DImode in 32-bit mode.
(ix86_expand_ashl_const, ix86_split_ashl, ix86_split_ashr,
ix86_split_lshr): Likewise. Rename to no longer refer to a specific
mode. Add new mode parameter.
* config/i386/i386.h (CONST_OK_FOR_LETTER_P): Describe and handle 'O'.
* config/i386/i386.md (cmpti, addti3, subti3, negti2, ashlti3, ashrti3,
x86_64_shift_adj): New expanders.
(*addti3_1, *subti3_1, *negti2_1, ashlti3_1, *ashlti3_2, ashrti3_1,
*ashrti3_2, lshrti3_1, *lshrti3_2, x86_64_shld, x86_64_shrd): New
insns.
Respective new splitters. Use renamed shift splitter helpers in 32-bit
DImode shift splitters.
* config/i386/i386-protos.h (ix86_split_ashl, ix86_split_ashr,
ix86_split_lshr): Renamed from ix86_split_[al]sh[rl]di. Added new
mode parameter.
2005-07-18 Jan Beulich <jbeulich@novell.com>
* i386.md (movdi_extzv_1): New.
(zero_extendhidi2): Combine alternatives and never force use of
REX64 prefix.
(zero_extendqidi2): Likewise. Don't restrict input selection.
2005-07-17 Daniel Berlin <dberlin@dberlin.org>
Fix PR tree-optimization/22531
* tree-ssa-pre.c (do_eustores): Make sure LHS is a decl for the
moment.
2005-07-17 Daniel Berlin <dberlin@dberlin.org>
* tree-promote-statics.c (pass_promote_statics): Change dump file
name.
2005-07-17 Daniel Berlin <dberlin@dberlin.org>
* tree-optimize.c (init_tree_optimization_passes): Add
pass_eliminate_useless_stores pass.
* tree-pass.h (pass_eliminate_useless_stores): New pass structure.
* tree-ssa-pre.c (is_copy_stmt): New function.
(follow_copies_till_vuse): Ditto.
(do_eustores): Ditto.
(gate_eustores): Ditto.
2005-07-16 Richard Henderson <rth@redhat.com>
* gcc.c (MFWRAP_SPEC): Don't wrap pthread_join or pthread_exit.
2005-07-16 Danny Berlin <dberlin@dberlin.org>
Kenneth Zadeck <zadeck@naturalbridge.com>
* Makefile.in: Added rules for ipa-pure-const.c, ipa-reference.c,
ipa-reference.h, ipa-utils.c, ipa-utils.h, ipa-type-escape.c,
ipa-type-escape.h, tree-promote-statics.c
* ipa-pure-const.c, ipa-reference.c, ipa-reference.h, ipa-utils.c,
ipa-utils.h, ipa-type-escape.c, ipa-type-escape.h,
tree-promote-statics.c: new files.
* alias.c: (nonlocal_mentioned_p_1, nonlocal_mentioned_p,
nonlocal_referenced_p_1, nonlocal_referenced_p, nonlocal_set_p_1,
int nonlocal_set_p, mark_constant_function): Deleted.
(rest_of_handle_cfg): Removed call to mark_constant_function.
(nonoverlapping_component_refs_p): Added calls to support
type based aliasing.
* tree-ssa-alias.c (may_alias_p,
compute_flow_insensitive_aliasing): Ditto.
* calls.c (flags_from_decl_or_type): Removed reference to
cgraph_rtl_info.
* c-typeck.c (convert_arguments): Make builtins tolerant of having
too many arguments. This is necessary for Spec 2000.
* cgraph.h (const_function, pure_function): Removed.
* common.opt: Added "fipa-pure-const", "fipa-reference",
"fipa-type-escape", and "ftree-promote-static".
* opts.c: Ditto.
* passes.c: Added ipa and tree-promote-statics passes.
* timevar.def: Added TV_IPA_PURE_CONST, TV_IPA_REFERENCE,
TV_IPA_TYPE_ESCAPE, and TV_PROMOTE_STATICS.
* tree-dfa.c (referenced_var_lookup_if_exists): New function.
* tree-flow.h: Added exposed sra calls and addition of
reference_vars_info field for FUNCTION_DECLS.
* tree-pass.h: Added passes.
* tree-sra.c: (sra_init_cache): New function.
(sra_insert_before, sra_insert_after) Made public.
(type_can_be_decomposed_p): Renamed from type_can_be_decomposed_p
and made public.
* tree-ssa-alias.c (dump_alias_stats): Added stats for type based
aliasing. (may_alias_p): Added code to use type escape analysis to
improve alias sets.
* tree-ssa-operands.c (add_call_clobber_ops): Added parameter and
code to prune clobbers of static variables based on information
produced in ipa-reference pass. Changed call clobbering so that
statics are not marked as clobbered if the call does not clobber
them.
2005-07-16 Daniel Berlin <dberlin@dberlin.org>
* tree-ssa-structalias.c (need_to_solve): Need to check for preds,
too.
2005-07-16 Eric Botcazou <ebotcazou@libertysurf.fr>
* doc/install.texi (*-*-solaris2*): Document recommended version
of GNU binutils and mention GNU linker problem on Solaris 10.
2005-07-16 Joseph S. Myers <joseph@codesourcery.com>
PR c/22421
* c-decl.c (c_build_bitfield_integer_type): New function.
(finish_struct): Call it.
* c-pretty-print.c (pp_c_type_specifier): Handle bit-field types.
2005-07-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* c-typeck.c (digest_init): Call 'convert_for_assignment'
before returning.
2005-07-16 Jan Hubicka <jh@suse.cz>
* cfg.c (update_bb_profile_for_threading): Fix profile updating.
(scale_bbs_frequencies_int): Watch roundoff errors.
* predict.c (return_prediction): Initialize return_stmt.
2005-07-16 Jan Hubicka <jh@suse.cz>
* profile.c (rest_of_handle_branch_prob): Fix handling of estimation
after RTL profiling.
2005-07-11 Andrew Pinski <pinskia@physics.uc.edu>
PR middle-end/22398
* fold-const.c (build_range_check): Convert high/low to etype
if we are only comparing against exp.
2005-07-13 Daniel Berlin <dberlin@dberlin.org>
Fix PR tree-optimization/22376
* tree-ssa-structalias.c (build_constraint_graph): We really meant
special var here.
(need_to_solve): New function.
(compute_points_to_sets): Use it.
2005-07-15 Jan Hubicka <jh@suse.cz>
* cfg.c (update_bb_profile_for_threading): More diagnostic.
* tree-ssa-threadupdate.c (redirect_edges): Update profile of dup_block.
2005-07-15 Richard Guenther <rguenther@suse.de>
* c-common.c (handle_flatten_attribute): New function.
Add flatten function attribute.
* doc/extend.texi: Document flatten function attribute.
* Makefile.in (ipa-inline.o): Depend on hashtab.h.
* ipa-inline.c (cgraph_find_cycles, cgraph_flatten_node):
New functions.
(cgraph_decide_inlining): Handle functions with flatten
attribute.
2005-07-14 David Edelsohn <edelsohn@gnu.org>
* config/rs6000/rs6000.md (UNSPEC_SYNC, UNSPEC_LWSYNC,
UNSPEC_ISYNC, UNSPEC_SYNC_OP, UNSPEC_ATOMIC, UNSPEC_CMPXCHG,
UNSPEC_XCHG, UNSPEC_AND): New.
(UNSPECV_ATOMIC, UNSPECV_SYNC, UNSPECV_SYNC_OP, UNSPECV_CMPXCHG,
UNSPECV_LWSYNC, UNSPECV_ISYNC): Delete.
* config/rs6000/sync.md (FETCHOP): New code macro.
(fetchop_name, fetchop_pred, fetchopsi_constr, fetchopdi_constr):
New code attrs.
(memory_barrier, sync_internal): Use unspec instead of unspec_volatile.
(sync_compare_and_swap<mode>): Same.
(sync_lock_test_and_set<mode>): Same.
(sync_<fetchop><mode>, sync_nand<mode>): Only use rs6000_emit_sync
for QImode and HImode, and not PPC405.
(sync_old_<fetchop><mode>, sync_old_nand<mode>): Same.
(sync_new_<fetchop><mode>, sync_new_nand<mode>): Same.
(sync_<fetchop>{si,di}_internal): New.
(sync_nand{si,di}_internal): New.
(sync_old_<fetchop>{si,di}_internal): New.
(sync_old_nand{si,di}_internal): New
(sync_new_<fetchop>{si,di}_internal): New.
(sync_new_nand{si,di}_internal): New.
(atomic_and{si,di}): New.
(sync_new_nand{si,di}_internal): New.
(atomic_and{si,di}): New.
(sync_add<mode>_internal): Delete.
(sync_addshort_internal): Use unspec instead of unspec_volatile.
(sync_sub<mode>_internal): Delte.
(sync_subshort_internal): New.
(sync_andsi_internal): Use unspec instead of unspec_volatile.
(sync_anddi_internal): Delete.
(sync_boolsi_internal): Use unspec instead of unspec_volatile.
(sync_booldi_internal): Delete.
(sync_boolc<mode>_internal): Delete.
(sync_boolcshort_internal): Use unspec instead of unspec_volatile.
(sync_boolc<mode>_internal2): Delete.
(sync_boolcc<mode>_internal): Delete.
(isync, lwsync): Use unspec instead of unspec_volatile.
* config/rs6000/rs6000.c (rs6000_emit_sync): Implement MINUS.
Revert UNSPEC_VOLATILE.
(rs6000_split_atomic_op): New.
* config/rs6000/rs6000-protos.h (rs6000_split_atomic_op): Declare.
2005-07-14 Eric Christopher <echristo@redhat.com>
* config/mips/mips.c (mips_canonicalize_comparison): Cast
argument of trunc_int_for_mode to unsigned HOST_WIDE_INT.
2005-07-14 Eric Christopher <echristo@redhat.com>
* config/s390/t-tpf (SHLIB_MAPFILES): Remove.
2005-07-14 Steven Bosscher <stevenb@suse.de>
PR tree-optimization/22230
* tree-vrp.c (extract_range_from_binary_expr): Fix logics thinko in
the computation of the four cross productions for "range op range".
2005-07-14 Alexandre Oliva <aoliva@redhat.com>
Ulrich Weigand <uweigand@de.ibm.com>
PR target/20126
* loop.c (loop_givs_rescan): Do not ICE if unable to reduce an IV
in some insn.
2005-07-14 Ulrich Weigand <uweigand@de.ibm.com>
* config/s390/s390.h (TARGET_TPF_PROFILING): Add default definition.
2005-07-14 Steve Ellcey <sje@cup.hp.com>
* config/ia64/ia64.c (ia64_output_dwarf_dtprel): Support ILP32 mode.
2005-07-14 Richard Guenther <rguenther@suse.de>
PR middle-end/22347
* config/i386/i386-protos.h (ix86_function_value): Change
prototype to match new target hook.
* config/i386/i386.c (ix86_value_regno): Change prototype
to take extra type argument.
(TARGET_FUNCTION_VALUE): Define.
(ix86_function_ok_for_sibcall): Pass extra argument to
ix86_value_regno, check return slot rtx for exact match.
(ix86_function_value): Take extra parameter. Dispatch to
ix86_value_regno with fndecl/fntype as provided.
(ix86_value_regno): Handle extra type argument.
* config/i386/i386.h (FUNCTION_VALUE): No longer define.
* testsuite/gcc.target/i386/sseregparm-3.c: New testcase.
* testsuite/gcc.target/i386/sseregparm-4.c: New testcase.
* testsuite/gcc.target/i386/sseregparm-5.c: New testcase.
* testsuite/gcc.target/i386/sseregparm-6.c: New testcase.
* testsuite/gcc.target/i386/sseregparm-7.c: New testcase.
2005-07-14 Richard Guenther <rguenther@suse.de>
* Makefile.in (explow.o, reg-stack.o): Depend on target.h.
* calls.c (expand_call): Pass fntype to hard_function_value.
(emit_library_call_value_1): Likewise.
* explow.c: Include target.h.
(hard_function_value): Take extra argument, the fntype.
Use new target hook for function_value.
* expr.h (hard_function_value): Change prototype.
* function.c (aggregate_value_p): Pass 0 as fntype to
hard_function_value.
(assign_parms): Use new target hook for function_value.
Pass 0 as fntype to hard_function_value.
(expand_function_end): Likewise.
* reg-stack.c: Include target.h.
(stack_result): Use new target hook for function_value.
* target-def.h: New target hook function_value.
* target.h: Likewise.
* targhooks.c (default_function_value): New function.
* targhooks.h (default_function_value): Declare.
2005-07-13 Ian Lance Taylor <ian@airs.com>
* config/mips/mips.h (CLZ_DEFINED_VALUE_AT_ZERO): Define.
2005-07-14 Jan Hubicka <jh@suse.cz>
* tree-dfa.c (dump_variable): Use default_def function.
* tree-ssa-alias.c (dump_points_to_info): Likewise.
* tree-ssa.c (verify_use): Likewise.
* tree-ssanames.c (release_ssa_name): Likewise.
* tree-tailcall.c (eliminate_tail_call): Likewise.
(tree_optimize_tail_calls_1): Likewise.
* tree-vrp.c (get_value_range): Likewise.
2005-07-14 Ben Elliston <bje@au.ibm.com>
* gcc.c (main): Compare language[0] with '*' when iterating over
the infiles.
2005-07-13 Adrian Straetling <straetling@de.ibm.com>
* config/s390/s390.c: (s390_cc_modes_compatible): Move before
"s390_emit_compare". Add handling of CCZ1mode.
(s390_canonicalize_comparison): Simplify cascaded EQ, NE.
(390_emit_compare): Use "s390_cc_modes_compatible" for mode
checking.
(s390_branch_condition_mask): Add CCZ1mode handling.
* config/s390/s390.md: ("seq", "*seq"): New pattern.
("sync_compare_and_swap_cc<mode>", "*sync_compare_and_swap_cc<mode>"):
Use CCZ1mode instead of CCZmode.
* config/s390/s390-modes.def: Add CCZ1mode. Comment new mode.
2005-07-13 Adrian Straetling <straetling@de.ibm.com>
* config/s390/s390.md: ("cmpstrsi", "*cmpstr<mode>"): New
pattern.
("strlen<mode>", "*strlen<mode>"): Use hard reg 0 in SImode.
2005-07-13 Eric Christopher <echristo@redhat.com>
* config/mips/mips.c (mips_canonicalize_comparison): New.
(mips_emit_int_relational): Use.
2005-07-13 Eric Christopher <echristo@redhat.com>
* config.gcc (s390x-ibm-tpf*): Add extra_options. Remove
static extra parts.
* config/s390/s390.md: Include tpf.md. Move tpf specific
patterns...
* config/s390/tpf.md: To here.
* config/s390/s390.opt: Move tpf specific options...
* config/s390/tpf.opt: to here. Add mmain option.
* config/s390/tpf-unwind.h: Remove unnecessary defines.
* config/s390/tpf.h: Rewrite.
2005-07-13 H.J. Lu <hongjiu.lu@intel.com>
* doc/tm.texi: Remove @xref{Cross-profiling}.
2005-07-13 Jeff Law <law@redhat.com>
* fold-const.c (fold_binary): When comparing two simple ADDR_EXPR
expressions, test their _DECL operands for pointer equality rather
than using operand_equal_p.
2005-07-13 H.J. Lu <hongjiu.lu@intel.com>
* config/alpha/linux.h (TARGET_HAS_F_SETLKW): Renamed to ...
(TARGET_POSIX_IO): This.
* config/darwin.h: Likewise.
* config/freebsd.h: Likewise.
* config/linux.h: Likewise.
* config/lynx.h: Likewise.
* config/netbsd.h: Likewise.
* config/rs6000/linux64.h: Likewise.
* config/rs6000/linux.h: Likewise.
* config/s390/tpf.h: Likewise.
* config/sh/embed-elf.h: Likewise.
* config/sparc/linux64.h: Likewise.
* config/sparc/linux.h: Likewise.
* config/svr4.h: Likewise.
* gcov-io.h: Likewise.
* doc/tm.texi: Updated.
* libgcov.c (create_file_directory): Defined only if
TARGET_POSIX_IO is defined.
(gcov_exit): Call create_file_directory only if TARGET_POSIX_IO
is defined.
2005-07-13 Jan Hubicka <jh@suse.cz>
* tree-ssa-operands.c (get_expr_operands): Fix typo in previous patch.
2005-07-13 David Edelsohn <edelsohn@gnu.org>
* tree-ssa-dom.c (lookup_avail_expr): Do not pass member in freed
structure as argument.
2005-07-13 Paolo Bonzini <bonzini@gnu.org>
PR tree-optimization/21921
* tree-iterator.c (tsi_link_before): Support the case when
tsi_end_p (tsi) == true.
2005-07-12 Zdenek Dvorak <dvorakz@suse.cz>
PR tree-optimization/22442
* tree-chrec.c (chrec_fold_multiply_poly_poly): Associate chrecs
correctly.
2005-07-12 Zdenek Dvorak <dvorakz@suse.cz>
PR rtl-optimization/20376
* toplev.c (process_options): Enable -fweb and -frename-registers when
unrolling.
* doc/invoke.texi: Update the information about when -fweb and
-frename-registers are enabled.
2005-07-12 Andrew Pinski <pinskia@physics.uc.edu>
PR tree-opt/21840
* tree-ssa-pre.c (eliminate): Convert the sprime to the correct type
if *rhs_p is not a SSA_NAME.
2005-07-12 Daniel Berlin <dberlin@dberlin.org>
Fix PR tree-optimization/22422
* tree-ssa-structalias.c (struct variable_info): Add flag for
special vars.
(get_varinfo): Now a static function.
(new_varinfo): init has_union and is_special_var to false.
(solution_set_add): Check has_union.
(do_da_constraint): Move temporary variable so it gets reset
properly.
Also check for special variable.
(do_ds_constraint): Ditto.
(do_sd_constraint): Ditto.
(do_structure_copy): Check for special variable.
(find_func_aliases): Ditto.
(init_base_vars): Set special vars properly.
2005-07-13 Jan Hubicka <jh@suse.cz>
* cfgexpand.c (expand_one_stack_var): Do not expand variables when we
do unit-at-a-time.
* tree-ssa-operands.c (parse_ssa_operands): Fix formatting.
(get_expr_operands): Fix thinko wrt flags and subvars.
PR tree-optimize/22379
* tree-inline.c (expand_call_inline): Do not output sorry in early
inlining.
2005-07-12 Dale Johannesen <dalej@apple.com>
* config/rs6000.c (rs6000_rtx_cost): Move FLOAT_EXTEND.
2005-07-12 Andrew Pinski <pinskia@physics.uc.edu>
PR bootstrap/21704
* host-linux.h: Include limits.h.
2005-07-12 Dale Johannesen <dalej@apple.com>
* expr.c (compress_float_constant): Add cost check.
* config/rs6000.c (rs6000_rtx_cost): Adjust FLOAT_EXTEND cost.
2005-07-12 Dale Johannesen <dalej@apple.com>
* gcc.target/i386/compress-float-sse.c: New.
* gcc.target/i386/compress-float-sse-pic.c: New.
* gcc.target/i386/compress-float-387.c: New.
* gcc.target/i386/compress-float-387-pic.c: New.
* gcc.dg/compress-float-ppc.c: New.
* gcc.dg/compress-float-ppc-pic.c: New.
2005-07-12 Eric Christopher <echristo@redhat.com>
* config.gcc (s390x-ibm-tpf*): Add extra_options. Remove
static extra parts.
* config/s390/s390.md: Include tpf.md. Move tpf specific
patterns...
* config/s390/tpf.md: To here.
* config/s390/s390.opt: Move tpf specific options...
* config/s390/tpf.opt: to here. Add mmain option.
* config/s390/tpf-unwind.h: Remove unnecessary defines.
* config/s390/tpf.h: Rewrite.
2005-07-12 Eric Christopher <echristo@redhat.com>
* gcc.c (struct infile): Update comment for language.
(main): Rewrite input file resetting code.
2005-07-12 Andrew Pinski <pinskia@physics.uc.edu>
PR tree-opt/22335
* tree-ssa-dom.c (eliminate_redundant_computations): Reject the prop if
requiring a cast in a non RHS of modify_expr. Add a cast when required.
(lookup_avail_expr): Use constant_boolean_node instead
of boolean_false_node/boolean_true_node.
2005-07-12 Ben Elliston <bje@au.ibm.com>
* tree-cfg.c (dump_cfg_stats): Add a new fmt_str_2 format string
and use it when printing num_edges.
2005-07-12 Bernd Schmidt <bernd.schmidt@analog.com>
* doc/extend.texi (Blackfin Built-in Functions): New section.
* doc/invoke.texi (mcsync-anomaly, mno-csync-anomaly): Fix the
@opindex.
2005-07-12 Adrian Straetling <straetling@de.ibm.com>
* builtins.c: (expand_builtin_memcmp, expand_builtin_strncmp):
s/cmpstrsi/cmpstrnsi
(expand_builtin_strcmp): Rewrite to support both 'cmpstrsi' and
'cmpstrnsi'.
* optabs.c: (prepare_cmp_insn): Add availability of 'cmpstrn'.
(init_optabs): Initialize cmpstrn_optab.
* optabs.h: (enum insn_code cmpstrn_optab): Declare.
* genopinit.c: (optabs[]): Add 'cmpstrn' to initialisation.
* expr.c: (enum insn_code cmpstrn_optab): Declare.
* config/i386/i386.md: s/cmpstr/cmpstrn
* config/c4x/c4x.md: s/cmpstr/cmpstrn
* doc/md.texi: Update documentation.
2005-07-11 Richard Henderson <rth@redhat.com>
* config/alpha/alpha.c (alpha_gimplify_va_arg_1): Use
build_va_arg_indirect_ref.
(alpha_gimplify_va_arg): Likewise.
* config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Likewise.
* config/i860/i860.c (i860_gimplify_va_arg_expr): Likewise.
* config/mips/mips.c (mips_gimplify_va_arg_expr): Likewise.
* config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
* config/sh/sh.c (sh_gimplify_va_arg_expr): Likewise.
* config/stormy16/stormy16.c (xstormy16_expand_builtin_va_arg):
Likewise.
* config/xtensa/xtensa.c (xtensa_gimplify_va_arg_expr): Likewise.
2005-07-12 Zdenek Dvorak <dvorakz@suse.cz>
* tree-flow.h (remove_empty_loops, single_dom_exit): Declare.
* passes.c (init_optimization_passes): Add pass_empty_loop.
* tree-pass.h (pass_empty_loop): Declare.
* tree-ssa-loop-ivcanon.c (empty_loop_p, remove_empty_loop,
try_remove_empty_loop, remove_empty_loops): New functions.
* tree-ssa-loop-ivopts.c (single_dom_exit): Export.
* tree-ssa-loop.c (tree_ssa_empty_loop, pass_empty_loop): New.
2005-07-12 Peter Barada <peter@the-baradas.com>
PR middle-end/16719
PR middle-end/18421
* config/m68k/m68k.h (HARD_REGNO_MODE_OK): Disallow bytes
in address registers.
* config/m68k/m68k.c (hard_regno_mode_ok): Likewise.
* config/m68k/m68k.md: Replace 's' with 'i' in 4th
alternative of addsi3_5200.
2005-07-11 Ian Lance Taylor <ian@airs.com>
* config/mips/mips.md (ffs<mode>2): Remove.
2005-07-11 Ian Lance Taylor <ian@airs.com>
* doc/tree-ssa.texi (Cleanups): Improve description of
TRY_FINALLY_EXPR.
(GIMPLE Exception Handling): Clarify TRY_CATCH_EXPR cases.
2005-07-11 Daniel Berlin <dberlin@dberlin.org>
* print-tree.c (print_node): Use DECL_ARGUMENT_FLD.
* tree.h (DECL_ARGUMENT_FLD): New macro.
2005-07-11 Daniel Berlin <dberlin@dberlin.org>
Fix PR tree-optimization/22404
* tree-ssa-structalias.c (create_variable_info_for): Use
correct offset.
2005-07-11 Bernd Schmidt <bernd.schmidt@analog.com>
* config/bfin/bfin.md (cmpsi, compare_eq, compare_ne, compare_lt,
compare_le, compare_leu, compare_ltu): Use reg_or_const_int_operand
for second comparison operand.
* config/bfin/predicates.md (reg_or_const_int_operand): New.
* config/bfin/bfin.md (define_attr "type"): Add "sync".
(define_insn_reservation "alu"): Likewise.
(csync, ssync): Now of type sync.
* config/bfin/bfin.h (TARGET_DEFAULT): Defaults to
-mcsync-anomaly -mspecld-anomaly.
* config/bfin/bfin.opt (mcsync): Remove.
(mcsync-anomaly, mspecld-anomaly): Add.
* config/bfin/bfin.c: Include "insn-codes.h".
(bfin_reorg): Extend to handle the CSYNC anomaly as well.
(TARGET_DEFAULT_TARGET_FLAGS): New.
* doc/invoke.texi: Document -mcsync-anomaly, -mspecld-anomaly.
2005-07-11 Steven Bosscher <stevenb@suse.de>
* basic-block.h: Give the BB flags enum a name, bb_flags.
Add new flags BB_FORWARDER_BLOCK, and BB_NONTHREADABLE_BLOCK.
* cfgcleanup.c (enum bb_flags): Remove here.
(BB_FLAGS, BB_SET_FLAG, BB_CLEAR_FLAG): Remove.
(notice_new_block): Set/test bb->flags instead of aux via BB_FLAGS.
(update_forwarder_flag): Likewise.
(thread_jump): Likewise.
(try_forward_edges): Likewise.
(try_optimize_cfg): Likewise. Clear bb->flags before updating the
forwarder flags. Don't clear bb->aux for all basic blocks. Only
reset the BB_FORWARDER_BLOCK and BB_NONTHREADABLE_BLOCK flags.
2005-07-11 Richard Guenther <rguenther@suse.de>
* config/i386/i386.opt: New target option -msseregparm.
* config/i386/i386.c (override_options): Error out for
-msseregparm but no SSE support.
(ix86_function_sseregparm): Check for global sseregparm.
* doc/invoke.texi: Document -msseregparm.
2005-07-11 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
* config.gcc (m32r-*-linux*): Use the default extra_parts.
(m32rle-*-linux*): Ditto.
2005-07-11 Jakub Jelinek <jakub@redhat.com>
* cfgexpand.c (stack_protect_classify_type): Use TYPE_SIZE_UNIT (type)
instead of TYPE_MAX_VALUE (TYPE_DOMAIN (type)) to get array size in
bytes.
2005-07-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
PR middle-end/22239
PR target/20126
* loop.c (loop_givs_rescan): Use expand_simple_binop instead of
gen_rtx_MINUS to handle non-replaceable (plus ((x) (const)).
2005-07-07 Daniel Berlin <dberlin@dberlin.org>
* tree-ssa-structalias.c (struct variable_info): Heapify complex.
(varmap): Heapify varmap.
(constraints): Heapify constraints.
(struct constraint_graph): Heapify succs and preds.
(constraint_vec_find): Update for heapification.
(constraint_set_union): Ditto.
(insert_into_complex): Ditto.
(constraint_edge_vec_find): Ditto.
(erase_graph_self_edge): Ditto.
(add_graph_edge): Ditto.
(get_graph_weights): Ditto.
(merge_graph_nodes): Ditto.
(build_constraint_graph): Ditto.
(topo_visit): Ditto.
(solve_graph): Ditto.
(create_variable_info_for): Ditto.
(init_base_vars): Ditto.
(delete_points_to_sets): Free graph, varmap, and complex constraints.
(condese_varmap_nodes): Free complex vector.
(clear_edges_for_node): Clear succs and preds vector.
2005-07-10 Daniel Berlin <dberlin@dberlin.org>
* tree-ssa-structalias.c (update_alias_info): Change counting of
references to not include vdefs.
2005-07-10 Daniel Berlin <dberlin@dberlin.org>
* tree-ssa-alias.c (free_used_part_map): Add missing free.
(up_insert): Ditto.
2005-07-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
* pa.c (pa_commutative_p): Make PLUS commutative when
TARGET_NO_SPACE_REGS is true.
2005-07-09 Diego Novillo <dnovillo@redhat.com>
* Makefile.in (tree-ssa-alias.o): Depend on tree-ssa-structalias.h
* tree-cfg.c (CHECK_OP): Only test for is_gimple_val.
* tree-dfa.c (dump_subvars_for): New.
(debug_subvars_for): New.
(dump_variable): Show subvariables if VAR has them.
* tree-flow-inline.h (get_subvar_at): New.
(overlap_subvar): Change offset and size to unsigned HOST_WIDE_INT.
* tree-flow.h (struct ptr_info_def): Remove field pt_malloc.
Update all users.
(struct subvar): Change fields offset and size to unsigned
HOST_WIDE_INT.
(dump_subvars_for): Declare.
(debug_subvars_for): Declare.
(get_subvar_at): Declare.
(okay_component_ref_for_subvars): Change 2nd and 3rd argument
to unsigned HOST_WIDE_INT *.
(overlap_subvar): Likewise.
* tree-gimple.c (is_gimple_reg): Always return false for
SFTs and memory tags.
* tree-pass.h (pass_build_pta, pass_del_pta): Remove.
Update all callers.
* tree-ssa-alias.c: Include tree-ssa-structalias.h.
(compute_may_aliases): Call compute_points_to_sets.
(collect_points_to_info_for): Remove.
(compute_points_to_and_addr_escape): Remove.
(delete_alias_info): Call delete_points_to_sets.
(compute_flow_sensitive_aliasing): If the call to
find_what_p_points_to returns false, call set_pt_anything.
(add_may_alias): Set TREE_ADDRESSABLE when adding a new alias.
(set_pt_anything): Clear pi->pt_vars.
(set_pt_malloc): Remove.
(merge_pointed_to_info): Remove.
(add_pointed_to_expr): Remove.
(add_pointed_to_var): Remove.
(collect_points_to_info_r): Remove.
(is_escape_site): Make extern.
(create_sft): New.
(create_overlap_variables_for): Call it.
* tree-ssa-copy.c (merge_alias_info): Never merge
flow-sensitive alias information.
* tree-ssa-operands.c (get_expr_operands): Adjust variables
offset and size to be unsigned HOST_WIDE_INT.
(add_to_addressable_set): Rename from note_addressable.
Set TREE_ADDRESSABLE as the variables are added to the set.
Update all users.
(add_stmt_operand): Do not try to micro-optimize unmodifiable
operands into VUSEs when adding V_MAY_DEFs for members in an
alias set.
* tree-ssa-operands.h (add_to_addressable_set): Declare.
* tree-ssa-structalias.c: Include tree-ssa-structalias.h last.
(struct variable_info): Add bitfield is_heap_var.
(var_anyoffset, anyoffset_tree, anyoffset_id): Declare.
(new_var_info): Initialize is_heap_var.
(get_constraint_for): Add HEAP variables to the symbol table.
Mark them with is_heap_var.
(update_alias_info): New. Taken mostly from the old
compute_points_to_and_addr_escape.
(handle_ptr_arith): New.
(find_func_aliases): Call update_alias_info.
Call handle_ptr_info for tcc_binary expressions.
Call mark_stmt_modified.
(create_variable_info_for): If DECL has subvars, do not create
variables for its subvars. Always add all the fields.
(set_uids_in_ptset): If the solution includes ANYOFFSET and
SFTs, then add all the SFTs of the structure.
If VI->DECL is an aggregate with subvariables, add the SFT at
VI->OFFSET.
(find_what_p_points_to): If VI is an artificial variable,
translate to bitfields in SSA_NAME_PTR_INFO.
If the solution is empty, set pi->pt_vars to NULL
(init_base_vars): Create ANYOFFSET.
(compute_points_to_sets): Rename from create_alias_vars.
Make extern.
(pass_build_pta): Remove.
(delete_points_to_sets): Rename from delete_alias_vars.
(pass_del_pta): Remove.
* tree-ssa-structalias.h (struct alias_info): Move from
tree-ssa-alias.h.
(NUM_REFERENCES, NUM_REFERENCES_CLEAR, NUM_REFERENCES_INC,
NUM_REFERENCES_SET): Likewise.
(compute_points_to_sets, delete_points_to_sets): Declare.
2005-07-09 Richard Henderson <rth@redhat.com>
* config/alpha/alpha.c (emit_insxl, alpha_expand_compare_and_swap_12,
alpha_split_compare_and_swap_12, alpha_expand_lock_test_and_set_12,
alpha_split_lock_test_and_set_12): New functions.
* config/alpha/alpha-protos.h: Update.
* config/alpha/alpha.md (UNSPEC_MB, UNSPEC_ATOMIC,
UNSPEC_CMPXCHG, UNSPEC_XCHG): Rename from UNSPECV_FOO.
* config/alpha/sync.md (I12MODE): New.
(memory_barrier, mb_internal): Use unspec instead of unspec_volatile.
(sync_<fetchop_name><I48MODE>): Likewise.
(sync_nand<I48MODE>): Likewise.
(sync_old_<fetchop_name><I48MODE>): Likewise.
(sync_new_<fetchop_name><I48MODE>): Likewise.
(sync_old_nand<I48MODE>, sync_new_nand<I48MODE>): Likewise.
(sync_compare_and_swap<I48MODE>): Likewise.
(sync_lock_test_and_set<I48MODE>): Likewise.
(sync_compare_and_swap<I12MODE>): New.
(sync_compare_and_swap<I12MODE>_1): New.
(sync_lock_test_and_set<I12MODE>): New.
(sync_lock_test_and_set<I12MODE>_1): New.
2005-07-09 Diego Novillo <dnovillo@redhat.com>
PR 21356
PR 22332
* passes.c (execute_todo): Cleanup the CFG before updating SSA.
2005-07-09 Jakub Jelinek <jakub@redhat.com>
* config/i386/i386.c (output_set_got): Don't omit OFFSET FLAT:
in Intel syntax add %reg, OFFSET FLAT:_GLOBAL_OFFSET_TABLE_+(.-.Lx).
2005-07-09 Richard SAndiford <richard@codesourcery.com>
PR target/21656
* config/mips/elf.h (NO_IMPLICIT_EXTERN_C): Define.
2005-07-08 David Edelsohn <edelsohn@gnu.org>
* config/rs6000/sync.md (load_locked_<mode>): Use Z for
memory_operand constraint.
(store_conditional_<mode>): Same.
(sync_compare_and_swap<mode>): Same.
(sync_lock_test_and_set<mode>): Same.
2005-07-08 Hans-Peter Nilsson <hp@axis.com>
Rewrite PIC support to more closely model actual instructions.
* config/cris/cris-protos.h (cris_gotless_symbol, cris_got_symbol)
(cris_symbol): Remove prototypes for removed functions.
(cris_pic_symbol_type_of, cris_valid_pic_const)
(cris_expand_pic_call_address): Prototypes for new functions.
* config/cris/cris/cris.c (cris_pic_sympart_only): Remove unused
variable.
(cris_print_operand) <case 'v', 'P'>: Remove cases for unused
modifiers.
<case ':'>: Add case for new punctuation character.
<case 'd'>: Temporarily set flag_pic = 2 instead of incorrectly
emitting (extra) PIC modifier.
<case UNSPEC>: Do not assert for PLT.
(cris_initial_frame_pointer_offset, cris_simple_epilogue)
(cris_expand_prologue, cris_expand_epilogue): Check
for pic_offset_table_rtx usage instead of taking
current_function_uses_pic_offset_table as the final word.
(cris_rtx_costs, cris_address_cost, cris_side_effect_mode_ok):
Remove flag_pic difference.
(cris_valid_pic_const, cris_pic_symbol_type_of): New functions,
the moral equivalents of...
(cris_symbol, cris_gotless_symbol, cris_got_symbol): Remove
functions.
(cris_legitimate_pic_operand): Just call cris_valid_pic_const.
(cris_handle_option): Mark ARG as unused.
(cris_expand_pic_call_address): New worker function for "call",
"call_value".
(cris_asm_output_symbol_ref, cris_asm_output_label_ref): Do not
output PIC constructs here.
(cris_output_addr_const_extra): Changes for emitting PIC modifiers
as symbol-specific modifers, not whole or part of operands.
* config/cris/cris/cris.h (EXTRA_CONSTRAINT): Remove 'U' case.
(EXTRA_CONSTRAINT_S): Changed semantics: allow only CONST-wrapped
constants and flag_pic.
(CONSTANT_INDEX_P): Adjust for new functions.
(enum cris_pic_symbol_type): New helper type.
(PRINT_OPERAND_PUNCT_VALID_P): Add ':'.
* config/cris/cris/cris.md (CRIS_UNSPEC_GOTREL)
(CRIS_UNSPEC_GOTREAD, CRIS_UNSPEC_PLTGOTREAD): New
define_constants.
("movsi"): Emit actual instructions for GOT and relative access.
("*movsi_got_load"): New pattern to set up the register holding
the GOT pointer.
("*movsi_internal"): Operand 1 is not a plain general_operand.
Adjust FIXME for 'S'.
<output for 'S' alternative>: Sanity-check UNSPEC types for PIC.
Use "movs" for -fpic cases.
("addsi3"): Add alternative for 'S'; use adds.w when possible.
("uminsi3","*expanded_call_value"): Remove 'S' alternative.
("call", "call_value"): Just call cris_expand_pic_call_address for
PIC addresses.
("*expanded_call_no_gotplt", "*expanded_call_value_no_gotplt"):
Remove special pattern.
("*expanded_call_side", "*expanded_call_value_side"): New
patterns.
(gotplt-to-plt, gotplt-to-plt-side-call)
(gotplt-to-plt-side-call-value, gotplt-to-plt-side): New
peephole2:s.
* config/cris/cris/predicates.md
("cris_general_operand_or_gotless_symbol"): Remove unused
predicate.
("cris_general_operand_or_symbol"): Adjust for new functions.
2005-07-08 Andrew Pinski <pinskia@physics.uc.edu>
* config/darwin.h (TARGET_C99_FUNCTIONS): Define to 1.
2005-07-08 Daniel Berlin <dberlin@dberlin.org>
* Makefile.in (TREE_H): Add treestruct.def.
(c-decl.o): Add pointer-set.h
* c-decl.c (diagnose_mismatched_decls): Don't attempt to look at
visibility on regular DECL's.
(merge_decls): Fix the copying of decl nodes of various types for
the new structures. Don't update RTL, section name, weak status,
etc, on DECL's without RTL.
(grokdeclarator): DECL_ARG_TYPE_AS_WRITTEN is gone.
Don't check volatile on non-variable types.
(store_parm_decls_oldstyle): Use pointer_set instead of DECL_WEAK
to check whether we have seen arguments.
* c-objc-common.c (c_tree_printer): Reverse order of tests so that
flag is checked before field (flag is common, field is not).
* dwarf2out.c (decl_ultimate_origin): Only DECL's with
TS_DECL_COMMON could have an origin.
(add_location_or_const_value_attribute): Don't check section name
on non-var/function decls.
(dwarf2out_var_location): Reverse order of tests.
* emit-rtl.c (set_reg_attrs_for_parm): DECL_CHECK is dead, replace
with DECL_WRTL_CHECK.
* expmed.c (make_tree): rtl is now in decl_with_rtl.
* fold-const.c (fold_binary): Don't check weakness on
non-var/function decls.
(tree_expr_nonzero_p): Ditto.
(fold_checksum_tree): Use tree_decl_extra as sizeof
buffer.
* ggc-page.c (extra_order_size_table): Add sizes for
tree_decl_non_common, tree_parm_decl, tree_var_decl, and
tree_field_decl.
* gimplify.c (gimplify_bind_expr): Only set
DECL_SEEN_IN_BIND_EXPR_P on VAR_DECL.
* integrate.c (copy_decl_for_inlining): Don't set RTL on decl's
without RTL.
* langhooks-def.h (LANG_HOOK_INIT_TS): New.
* langhooks.h (init_ts). New langhook.
* passes.c (rest_of_decl_compilation): Reverse order of tests.
* print-tree.c (print_node): Update to only print fields that
exist in the structures the passed decl has.
* toplev.c (wrapup_global_declarations): Don't reset
DECL_DEFER_OUTPUT on DECL's that don't contain it.
* tree-browser.c (browse_tree): DECL_ARG_TYPE_AS_WRITTEN removed.
* tree-inline.c (remap_decl): Ditto.
* tree-outof-ssa.c (create_temp): Reverse order of tests.
* tree-pretty-print.c (print_declaration): Don't print
DECL_REGISTER on things that don't contain it.
* tree-vrp.c (expr_computes_nonzero): Don't check weakness on
non-var/function decls.
* tree.c (tree_contains_struct): New structure.
(init_priority_for_decl): New hashtable.
(tree_int_map): New structure.
(tree_int_map_eq): New function.
(tree_int_map_marked_p): Ditto.
(tree_int_map_hash): Ditto.
(tree_map): Move to tree.h.
(tree_map_eq): Externalize.
(tree_map_hash): Ditto.
(tree_map_marked_p): Ditto.
(init_ttree): Set up tree_contains_struct and call langhook.
(decl_assembler_name): Use DECL_NON_COMMON_CHECK..
(tree_code_size): Update for new structures.
(tree_node_structure): Update for new structures.
(make_node_stat): Don't try to set DECL_IN_SYSTEM_HEADER on decls
without the field.
(copy_node_stat): Copy init priority.
(build_decl_stat): Ditto for visibility.
(ts_enum_names): New.
(tree_contains_struct_check_failed): New function.
(decl_init_priority_lookup): Ditto.
(decl_init_priority_insert): Ditto.
* treestruct.def: New file.
* tree.h (CODE_CONTAINS_STRUCT): New macro.
(CONTAINS_STRUCT_CHECK): Ditto.
(tree_contains_struct_check_failed): New prototype.
(DECL_CHECK): Removed.
(DECL_MINIMAL_CHECK): New.
(DECL_COMMON_CHECK): Ditto.
(DECL_WRTL_CHECK): Ditto.
(DECL_NON_COMMON_CHECK): Ditto.
(DECL_WITH_VIS_CHECK): Ditto.
(VAR_OR_FUNCTION_DECL_P): Ditto
(struct tree_decl_minimal): New structure.
(struct tree_decl_common): Ditto.
(struct tree_decl_with_rtl): Ditto.
(struct tree_decl_with_vis): Ditto.
(struct tree_decl_non_common): Ditto.
(struct tree_field_decl): Ditto.
(struct tree_parm_decl): Ditto.
(struct tree_var_decl): Ditto.
(struct tree_function_decl): Ditto.
(struct tree_const_decl): Ditto.
(struct tree_result_decl): Ditto.
(union tree_node): Add new structures.
* var-tracking.c (track_expr_p): Reverse order of tests.
* doc/c-tree.texi: Add documentation on DECL node internal structure.
2005-07-08 Kazu Hirata <kazu@codesourcery.com>
* cfgexpand.c (tree_expand_cfg): Don't use FINALIZE_PIC.
* system.h: Poison FINALIZE_PIC.
* doc/tm.texi (FINALIZE_PIC): Remove.
2005-07-08 Andrew Pinski <pinskia@physics.uc.edu>
PR tree-opt/22329
* tree-ssa-propagate.c (fold_predicate_in): Convert the value
to the correct type if we have a MODIFY_EXPR.
2005-07-08 Kazu Hirata <kazu@codesourcery.com>
PR tree-optimization/22360
* tree.c (upper_bound_in_type): Fix calculations for casting
to a non-wider signed type and casting a signed value to a
wider unsigned type.
(lower_bound_in_type): Fix calculations for casting to a
non-wider signed type.
PR tree-optimization/20139
* tree-cfg.c (remove_bb): Check in_ssa_p before calling
release_defs.
* tree-optimize.c (execute_cleanup_cfg_post_optimizing): Call
fold_cond_expr_cond.
* tree-ssanames.c (release_defs): Assert in_ssa_p.
* tree.c (upper_bound_in_type, lower_bound_in_type): Rewrite.
2005-07-08 Andrew Pinski <pinskia@physics.uc.edu>
PR tree-opt/22356
* tree-complex.c (expand_complex_libcall): Produce
REALPART_EXPR/IMAGPART_EXPR with the correct type.
2005-07-08 Kenneth Zadeck <zadeck@naturalbridge.com>
* bitmap.c (bitmap_and, bitmap_and_into, bitmap_and_compl,
bitmap_and_compl_into, bitmap_xor, bitmap_xor_into): Removed "a !=
b" assert and inserted fastpath code for this case.
(bitmap_ior): Removed "a != b" assert.
2005-07-08 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
* config/m32r/linux.h (STARTFILE_SPEC): Support PIE.
(ENDFILE_SPEC): Likewise.
* config/m32r/m32r.h (ASM_SPEC): Likewise.
* config/m32r/m32r.c (m32r_output_function_epilogue): Care for
a large stack frame at epilogue.
2005-07-08 David Billinghurst <David.Billinghurst@riotinto.com>
* final.c: Include sdbout.h when required.
2005-07-07 Geoffrey Keating <geoffk@apple.com>
* config.gcc (*-*-darwin*): Only one target-specific header file
for generic darwin.
(powerpc-*-darwin*): Add version-specific header files.
* configure.in (gcc_AC_CHECK_DECLS): Add strverscmp.
* config.in: Regenerate.
* configure: Regenerate.
* gcc.c: Include xregex.h.
(version_compare_spec_function): New.
(spec_function): Add version-compare.
(replace_outfile_spec_function): Reformat comment.
(compare_version_strings): New.
* config/darwin-c.c (version_as_macro): New.
(builtin_define): New.
(darwin_cpp_builtins): New.
* config/darwin-protos.h (darwin_cpp_builtins): New.
* config/darwin.h (CPP_SPEC): Don't define APPLE_CC here.
(LIB_SPEC): Make unconditional, update comment.
(TARGET_C99_FUNCTIONS): Define.
* config/darwin.opt: Sort.
(mmacosx-version-min=): New.
* config/darwin7.h: Delete.
* config/darwin8.h: Delete.
* config/i386/darwin.h (): Call darwin_cpp_builtins.
* config/rs6000/darwin.h (): Call darwin_cpp_builtins.
(TARGET_C99_FUNCTIONS): Define.
* config/rs6000/darwin7.h: New.
* config/rs6000/darwin8.h: New.
* doc/invoke.texi (Darwin Options): Add -mmacosx-version-min=
(-mmacosx-version-min): Document.
2005-07-07 Ian Lance Taylor <ian@airs.com>
* config/mips/mips.md (abs<mode>2) [GPR]: Remove.
2005-07-07 John David Anglin <dave.anglin@nrc-crc.gc.ca>
PR middle-end/22239
* loop.c (loop_givs_rescan): Check that v->new_reg is a REG.
2005-07-07 Khem Raj <kraj@mvista.com>
* config/arm/arm.c (thumb_output_function_prologue): Calculate offset
in bytes, not words.
2005-07-07 Paul Brook <paul@codesourcery.com>
* config/arm/arm.c (arm_pad_arg_upward): Compare return value of
DEFAULT_FUNCTION_ARG_PADDING to upward.
2005-07-07 Richard Henderson <rth@redhat.com>
* function.c (locate_and_pad_parm): Record parameter alignment in
stack_alignment_needed.
2005-07-07 David Edelsohn <edelsohn@gnu.org>
* config/rs6000/rs6000.md (UNSPEC_SYNC, UNSPEC_SYNC_OP,
UNSPEC_SYNC_SWAP, UNSPEC_LWSYNC, UNSPEC_ISYNC): Delete.
(UNSPECV_LL, UNSPECV_SC, UNSPECV_ATOMIC, UNSPECV_SYNC,
UNSPECV_SYNC_OP, UNSPECV_CMPXCHG, UNSPECV_LWSYNC, UNSPECV_ISYNC): New.
(define_attr "type"): Add isync, sync, load_l, store_c.
* config/rs6000/sync.md (memory_barrier): Change to define_expand.
Create scratch volatile MEM.
(sync_internal): New. POWER mnemonic is dcs, not ics. Attribute
sync.
(load_locked_<mode>): New.
(store_conditional_<mode>): New.
(sync_compare_and_swap<mode>): Replace with splitter.
(sync_lock_test_and_set<mode>): Replace with splitter.
(sync_<fetchop><mode>): Change to unspec_volatile UNSPECV_SYNC_OP
and UNSPECV_ISYNC.
(isync): Change to unspec_volatile UNSPECV_ISYNC. POWER mnemonic
is ics. Attribute isync.
(lwsync): Change to unspec_volatile UNSPECV_LWSYNC. Attribute
lwsync.
* config/rs6000/rs6000.c (rs6000_emit_sync): Use UNSPEC_VOLATILE
and UNSPECV_SYNC_OP.
(emit_unlikely_jump): New.
(emit_load_locked): New.
(emit_store_conditional): New.
(rs6000_split_compare_and_swap): New.
(rs6000_split_lock_test_and_set): New.
(is_dispatch_slot_restricted): Return 4 for TYPE_LOAD_L,
TYPE_STORE_C, TYPE_ISYNC, TYPE_SYNC.
* config/rs6000/rs6000-protos.h (rs6000_split_compare_and_swap,
rs6000_split_lock_test_and_set): Declare.
* config/rs6000/{40x.md,440.md,603.md,6xx.md,7450.md,7xx.md,8540.md,
mpc.md,power4.md,power5.md,rios1.md,rios2.md,rs64.md): Add load_l,
store_c, isync, sync.
2005-07-07 Kelley Cook <kcook@gcc.gnu.org>
* Makefile.in (echo_quoted_to_gtyp): New template for outputing
filenames to gtyp-gen.h.
(s-typ-gen): Use it in place of for loops.
2005-07-07 J"orn Rennecke <joern.rennecke@st.com>
* hooks.c (hook_bool_rtx_int_false): New function.
* hooks.h (hook_bool_rtx_int_false): Declare.
* target-def.h (TARGET_COMMUTATIVE_P): Define.
(TARGET_INITIALIZER): Add TARGET_COMMUTATIVE_P.
* target.h (struct gcc_target): Add commutative_p member.
* targhooks.c (hook_bool_rtx_commutative_p): New function.
* targhooks.h (hook_bool_rtx_commutative_p): Declare.
* pa.c (TARGET_COMMUTATIVE_P): Redefine.
(pa_commutative_p): New function.
* jump.c (target.h): Include.
(rtx_renumbered_equal_p): Use targetm.commutative_p.
* doc/tm.texi: Document TARGET_COMMUTATIVE_P.
2005-07-07 Adrian Straetling <straetling@de.ibm.com>
* config/s390/s390-protos.h (s390_expand_clrmem): Delete.
(s390_expand_setmem): New.
* config/s390/s390.c: Likewise.
(print_shift_count_operand): Truncate to 12 bits instead of 6.
Adapt comments.
* config/s390/s390.md: ("setmem<mode>"): Accept character as
general_operand. Call new function "s390_expand_setmem".
("clrmem_long", "*clrmem_long"): Rewrite to ...
("setmem_long", "*setmem_long"): ... this.
2005-07-07 Adrian Straetling <straetling@de.ibm.com>
* config/s390/s390.c: (optimization_options): Enable
TARGET_MVCLE at -Os.
* doc/invoke.texi: Document changes in default behaviour.
* config/s390/s390.opt: ("mvcle"): Fix typo: is "mmvcle".
2005-07-07 Adrian Straetling <straetling@de.ibm.com>
* expr.c: (set_storage_via_setmem): Convert opchar to mode
defined by back-end.
2005-07-07 Jakub Jelinek <jakub@redhat.com>
* config/sparc/sparc.md (stack_protect_testsi): Put clobbers after
all sets in the pattern.
* config/rs6000/rs6000.md (stack_protect_testsi,
stack_protect_testdi): Likewise.
2005-07-06 Jeff Law <law@redhat.com>
* tree-vrp.c (simplify_using_ranges): Kill.
(vrp_finalize): Remove call to simplify_using_ranges.
(simplify_stmt_using_ranges): New function extracted from
simplify_using_ranges.
(simplify_div_or_mod_using_ranges): Likewise.
(simplify_abs_using_ranges): Likewise.
(simplify_cond_using_ranges): New function.
* tree-flow.h (simplify_stmt_using_ranges): Prototype.
* tree-ssa-propagate.c (substitute_and_fold): Call
simplify_stmt_using_ranges if we have range information.
2005-07-06 James E. Wilson <wilson@specifixinc.com>
* config/ia64/ia64.c (ia64_reorg): Check optimize before
ia64_flag_schedule_isns2.
* config/ia64/ia64.c (ia64_expand_movxf_movrf): Don't word swap when
reading/writing general registers.
(ia64_function_arg): Revert 2005-06-18 change.
2005-07-06 John David Anglin <dave.anglin@nrc-crnc.gc.ca>
* pa.c (legitimize_pic_address): Use gcc_assert instead of abort.
(legitimize_tls_address): Use gcc_unreachable instead of abort.
2005-07-06 Kaz Kojima <kkojima@gcc.gnu.org>
* function.c (expand_function_end): Revert part of 2005-06-27
patch. Do sjlj_emit_function_exit_after after return_label.
2005-07-06 Kazu Hirata <kazu@codesourcery.com>
* doc/install.texi (--disable-libssp): New.
2005-07-06 Fariborz Jahanian <fjahanian@apple.com>
* doc/invoke.texi: Update -fforce-mem documentation.
* dojump.c (compare_from_rtx,do_compare_rtx_and_jump): Remove
code for -fforce-mem.
* expmed.c: (store_bit_field,store_fixed_bit_field,
extract_bit_field): Ditto.
* expr.c: (convert_move): Ditto.
* optabs.c: (expand_binop,expand_twoval_unop,expand_twoval_binop,
expand_unop,emit_unop_insn,prepare_cmp_insn,emit_conditional_move,
emit_conditional_add,expand_float,expand_fix): Ditto.
* opts.c: (decode_options): Remove setting of flag_force_mem flag.
(common_handle_option): Issue warning when -fforce-mem specified.
2005-07-06 Paul Brook <paul@codesourcery.com>
* aclocal.m4: Work around a bug in AC_PATH_PROGS when its last
argument is empty.
* configure: Regenerate.
2005-07-06 J"orn Rennecke <joern.rennecke@st.com>
* sh.c (final_prescan_insn): Undo bogus change from 2005-05-09.
2005-07-06 Daniel Berlin <dberlin@dberlin.org>
Fix PR tree-optimization/22319
Fix PR tree-optimization/22140
Fix PR tree-optimization/22310
* tree-ssa-structalias.c (do_structure_copy): Give up earlier on
variable sized types.
Use correct type for intermediate structure on *a = *b structure
copies.
2005-07-06 Jakub Jelinek <jakub@redhat.com>
* config/rs6000/rs6000.h (RS6000_VARARGS_AREA, RS6000_VARARGS_SIZE):
Remove.
(STARTING_FRAME_OFFSET): Don't add RS6000_VARARGS_AREA.
(machine_function): Move typedef to...
* config/rs6000/rs6000.c (machine_function): ... here. Add
varargs_save_offset field.
(rs6000_stack_t): Remove varargs_size field.
(setup_incoming_varargs): Allocate varargs save area using
assign_stack_local, try to make it as small as possible.
Save offset from virtual_stack_vars_rtx to the save area
in cfun->machine->varargs_save_offset. Use UNITS_PER_FP_WORD
instead of magic 8 when fp word byte size is used.
(rs6000_va_start): Use cfun->machine->varargs_save_offset
instead of -RS6000_VARARGS_SIZE.
(rs6000_stack_info, debug_stack_info,
rs6000_initial_elimination_offset): Remove all traces of
varargs_size.
* config/rs6000/sysv4.h (RS6000_VARARGS_AREA): Remove.
* config/rs6000/darwin.h (STARTING_FRAME_OFFSET): Don't add
RS6000_VARARGS_AREA.
2005-07-06 Zdenek Dvorak <dvorakz@suse.cz>
PR tree-optimization/21963
* tree-ssa-loop-ivopts.c (get_computation_aff): Use
constant_multiple_of in the same way get_computation_cost_at does.
2005-07-06 Jakub Jelinek <jakub@redhat.com>
* config/sparc/sparc.h (sparc_compare_emitted): New extern.
* config/sparc/sparc.c (sparc_compare_emitted): New variable.
(gen_compare_reg): If sparc_compare_emitted is set, clear it
and return its previous value.
(emit_v9_brxx_insn): Assert sparc_compare_emitted is NULL.
* config/sparc/sparc.md (UNSPEC_SP_SET, UNSPEC_SP_TEST): New
constants.
(stack_protect_set, stack_protect_test): New expanders.
(stack_protect_setsi, stack_protect_setdi, stack_protect_testsi,
stack_protect_testdi): New insns.
* config/sparc/linux.h (TARGET_THREAD_SSP_OFFSET): Define.
* config/sparc/linux64.h (TARGET_THREAD_SSP_OFFSET): Define.
2005-07-06 Jeff Law <law@redhat.com>
* tree-ssa-dce.c (cfg_altered): New global.
(tree_dce_init): Initialize cfg_altered.
(remove_dead_stmt): If we remove an edge in the CFG, then set
CFG_ALTERED.
(perform_tree_ssa_dce): If we altered the CFG, then invalidate
the dominators.
2005-07-06 Kazu Hirata <kazu@codesourcery.com>
* Makefile.in (stamp-collect-ld): Use
$(ORIGINAL_LD_FOR_TARGET) instead of $<. Don't remove
./collect-ld if it already exists.
(stamp-nm): Use $(ORIGINAL_NM_FOR_TARGET) instead of $<.
Don't remove ./nm if it already exists.
2005-07-05 Devang Patel <dpatel@apple.com>
* tree-vectorizer.h (struct _loop_vec_info): Remove loop_line_number.
(LOOP_VINFO_LOC, LOOP_LOC): Remove.
* tree-vectorizer.c (vect_loop_location): New.
(vect_print_dump_info): Use vect_loop_location.
(new_loop_vec_info): Do not set LOOP_VINFO_LOC.
(vectorize_loops): Set vect_loop_location.
* tree-vect-analyze.c (vect_analyze_offset_expr,
vect_determin_vectorization_factor, vect_analyze_operations,
vect_analyze_scalar_cycles, vect_analyze_data_ref_dependence,
vect_analyze_data_ref_dependences, vect_compute_data_ref_alignment,
vect_analyze_data_refs_alignment, vect_analyze_data_ref_access,
vect_analyze_data_ref_accesses, vect_analyze_pointer_ref_access,
vect_object_analysis, vect_analyze_data_refs, vect_mark_relevant,
vect_stmt_relevant_p, vect_mark_stmts_to_be_vectorized,
vect_can_advance_ivs_p, vect_get_loop_niters, vect_analyze_loop_form,
vect_analyze_loop): Adjust vect_print_dump_info API.
* tree-vect-transform.c (vect_create_addr_base_for_vector_ref,
vect_create_data_ref_ptr, vect_init_vector, vect_get_vec_def_for_operand,
vect_finish_stmt_generation, vectorizable_assignment,
vectorizable_operation, vectorizable_store, vectorizable_load,
vectorizable_live_operation, vectorizable_condition, vect_transform_stmt,
vect_update_ivs_after_vectorizer, vect_do_peeling_for_loop_bound,
vect_gen_ninters_for_prolog_loop, vect_do_peeling_for_alignment,
vect_transform_loop): Same.
* tree-vectorizer.c (get_vectype_for_scalar_type, vect_is_simple_use,
vect_is_simple_reduction, vect_is_simple_iv_evolution, vectorize_loops):
Same.
2005-07-05 Randolph Chung <tausq@debian.org>
* configure.ac (hppa*-*-linux*: Check for a TLS capable gas.
* configure: Regenerate.
* config/pa/pa-protos.h (tls_symbolic_operand): Declare.
(pa_tls_referenced_p): Declare.
* config/pa/pa.c (legitimize_pic_address): Reject TLS operands.
(gen_tls_tga, gen_tls_get_addr, hppa_tls_call): New.
(legitimize_tls_address): New.
(hppa_legitimize_address): Handle TLS addresses.
(pa_tls_symbol_ref_1, pa_tls_referenced_p): New.
(TARGET_CANNOT_FORCE_CONST_MEM): Define.
(emit_move_sequence): Handle TLS addresses.
(pa_encode_section_info): Call default handler to handle common
sections.
* config/pa/pa.h (PA_SYMBOL_REF_TLS_P): New.
(CONSTANT_ADDRESS_P): Reject TLS operands.
(TARGET_HAVE_TLS) [HAVE_AS_TLS]: Define.
* config/pa/pa.md (UNSPEC_TP, UNSPEC_TLSGD, UNSPEC_TLSLDM)
(UNSPEC_TLSLDO, UNSPEC_TLSLDBASE, UNSPEC_TLSIE)
(UNSPEC_TLSLE): Define new constants.
(tgd_load, tld_load, tld_offset_load, tp_load, tie_load, tle_load): New.
* config/pa/predicates.md (symbolic_operand): Reject TLS operands.
(tls_symbolic_operand, tgd_symbolic_operand, tld_symbolic_operand)
(tie_symbolic_operand, tle_symbolic_operand): New
2005-07-06 Kelley Cook <kcook@gcc.gnu.org>
* aclocal.m4: Update macros for autoconf 2.59 style.
* configure.ac: Likewise.
2005-07-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
* pa.c (function_value): Handle small aggregates on 32-bit targets.
(function_arg): Pass small aggregates in general registers on 32-bit
targets.
* som.h (MEMBER_TYPE_FORCES_BLK): Delete define.
2005-07-05 Andrew Pinski <pinskia@physics.uc.edu>
* Makefile.in (final.o): Fix dependencies.
2005-07-05 Joseph S. Myers <joseph@codesourcery.com>
PR c/22013
PR c/22098
* langhooks.h (struct lang_hooks): Add expr_to_decl.
* langhooks.c (lhd_expr_to_decl): New.
* langhooks-def.h (lhd_expr_to_decl, LANG_HOOKS_EXPR_TO_DECL):
New.
(LANG_HOOKS_INITIALIZER): Update.
* tree.c (recompute_tree_invarant_for_addr_expr): Call
expr_to_decl langhook.
* c-tree.h (c_expr_to_decl): Declare.
* c-typeck.c (c_expr_to_decl): New.
(build_unary_op): Do not handle ADDR_EXPR of COMPOUND_LITERAL_EXPR
specially.
* c-objc-common.h (LANG_HOOKS_EXPR_TO_DECL): Define.
2005-07-05 Joseph S. Myers <joseph@codesourcery.com>
PR c/22308
* c-decl.c (finish_struct): Also copy C_TYPE_FIELDS_READONLY,
C_TYPE_FIELDS_VOLATILE and C_TYPE_VARIABLE_SIZE to type variants.
2005-07-05 Paolo Bonzini <bonzini@gnu.org>
* Makefile.in: Adjust dependencies.
* tree-pass.h: Add new passes and passes formerly in tree-optimize.c.
* basic-block.h (duplicate_computed_gotos): Remove, it is now static.
* alias.c (rest_of_handle_cfg, pass_cfg): New.
* bb-reorder.c (duplicate_computed_gotos): Make it static.
* cfgexpand.c (tree_expand_cfg): Add code formerly at the beginning of
rest_of_compilation.
* bb-reorder.c (gate_duplicate_computed_gotos,
pass_duplicate_computed_gotos, gate_handle_reorder_blocks,
rest_of_handle_reorder_blocks, pass_reorder_blocks,
gate_handle_partition_blocks, rest_of_handle_partition_blocks,
pass_partition_blocks): New.
* bt-load.c (gate_handle_branch_target_load_optimize,
rest_of_handle_branch_target_load_optimize,
pass_branch_target_load_optimize): New.
* cfgcleanup.c (rest_of_handle_jump, pass_jump, rest_of_handle_jump2,
pass_jump2): New.
* cfglayout.c (pass_insn_locators_initialize): New.
* cfgrtl.c (pass_free_cfg): New.
* combine.c (gate_handle_combine, rest_of_handle_combine,
pass_combine): New.
* cse.c (gate_handle_cse, rest_of_handle_cse, pass_cse,
gate_handle_cse2, rest_of_handle_cse2, pass_cse2): New.
* emit-rtl.c (pass_unshare_all_rtl, pass_remove_unnecessary_notes): New.
* except.c (pass_set_nothrow_function_flags,
pass_convert_to_eh_region_ranges, gate_handle_eh, rest_of_handle_eh,
pass_rtl_eh): New.
* final.c (pass_compute_alignments, rest_of_handle_final, pass_final,
rest_of_handle_shorten_branches, pass_shorten_branches,
rest_of_clean_state, pass_clean_state): New.
* flow.c (pass_recompute_reg_usage, gate_remove_death_notes,
rest_of_handle_remove_death_notes, pass_remove_death_notes,
rest_of_handle_life, pass_life, rest_of_handle_flow2,
pass_flow2): New.
* function.c (pass_instantiate_virtual_regs, pass_init_function,
rest_of_handle_check_leaf_regs, pass_leaf_regs): New.
* gcse.c (gate_handle_jump_bypass, rest_of_handle_jump_bypass,
pass_jump_bypass, gate_handle_gcse, rest_of_handle_gcse,
pass_gcse): New.
* global.c (rest_of_handle_global_alloc, pass_global_alloc): New.
* ifcvt.c (gate_handle_if_conversion, rest_of_handle_if_conversion,
pass_rtl_ifcvt, gate_handle_if_after_combine,
rest_of_handle_if_after_combine, pass_if_after_combine,
gate_handle_if_after_reload, rest_of_handle_if_after_reload,
pass_if_after_reload): New.
* integrate.c (pass_initial_value_sets): New.
* jump.c (pass_cleanup_barriers, purge_line_number_notes,
pass_purge_lineno_notes): New.
* mode-switching.c (rest_of_handle_mode_switching,
pass_mode_switching): New.
* local-alloc.c (rest_of_handle_local_alloc, pass_local_alloc): New.
* loop-init.c (gate_handle_loop2, rest_of_handle_loop2,
pass_loop2): New.
* loop.c (gate_handle_loop_optimize, rest_of_handle_loop_optimize,
pass_loop_optimize): New.
* modulo-sched.c (gate_handle_sms, rest_of_handle_sms,
pass_sms): New.
* postreload-gcse.c (gate_handle_gcse2, rest_of_handle_gcse2,
pass_gcse2): New.
* postreload.c (gate_handle_postreload, rest_of_handle_postreload,
pass_postreload_cse): New.
* profile.c (gate_handle_profiling, pass_profiling,
rest_of_handle_branch_prob, pass_branch_prob): New.
* recog.c (pass pass_split_for_shorten_branches, gate_do_final_split,
pass_split_before_regstack, gate_handle_split_before_regstack,
gate_handle_peephole2, rest_of_handle_peephole2, pass_peephole2,
rest_of_handle_split_all_insns, pass_split_all_insns): New.
* reg-stack.c (gate_handle_stack_regs, rest_of_handle_stack_regs,
pass_stack_regs): New.
* regmove.c (gate_handle_regmove, rest_of_handle_regmove, pass_regmove,
gate_handle_stack_adjustments, rest_of_handle_stack_adjustments,
pass_stack_adjustments): New.
* regrename.c (gate_handle_regrename, rest_of_handle_regrename,
pass_regrename): New.
* reorg.c (gate_handle_delay_slots, rest_of_handle_delay_slots,
pass_delay_slots, gate_handle_machine_reorg,
rest_of_handle_machine_reorg, pass_machine_reorg): New.
* rtl.h (extern void purge_line_number_notes): New.
* sched-rgn.c (gate_handle_sched, rest_of_handle_sched,
gate_handle_sched2, rest_of_handle_sched2, pass_sched,
pass_sched2): New.
* tracer.c (gate_handle_tracer, rest_of_handle_tracer,
pass_tracer): New.
* value-prof.c (gate_handle_value_profile_transformations,
rest_of_handle_value_profile_transformations,
pass_value_profile_transformations): New.
* var-tracking.c (gate_handle_var_tracking,
pass_variable_tracking): New.
* web.c (gate_handle_web, rest_of_handle_web, pass_web): New.
* passes.c (open_dump_file, close_dump_file, rest_of_handle_final,
rest_of_handle_delay_slots, rest_of_handle_stack_regs,
rest_of_handle_variable_tracking, rest_of_handle_machine_reorg,
rest_of_handle_old_regalloc, rest_of_handle_regrename,
rest_of_handle_reorder_blocks, rest_of_handle_partition_blocks,
rest_of_handle_sms, rest_of_handle_sched, rest_of_handle_sched2,
rest_of_handle_gcse2, rest_of_handle_regmove,
rest_of_handle_tracer, rest_of_handle_if_conversion,
rest_of_handle_if_after_combine, rest_of_handle_if_after_reload,
rest_of_handle_web, rest_of_handle_branch_prob,
rest_of_handle_value_profile_transformations, rest_of_handle_cfg,
rest_of_handle_jump_bypass, rest_of_handle_combine,
rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2,
rest_of_handle_gcse, rest_of_handle_loop_optimize,
rest_of_handle_loop2, rest_of_handle_branch_target_load_optimize,
rest_of_handle_mode_switching, rest_of_handle_jump,
rest_of_handle_eh, rest_of_handle_stack_adjustments,
rest_of_handle_flow2, rest_of_handle_jump2,
rest_of_handle_peephole2, rest_of_handle_postreload,
rest_of_handle_shorten_branches, rest_of_clean_state,
rest_of_compilation): Remove.
* cgraphunit.c (ipa_passes): Moved from tree-optimize.c.
* passes.c (dump_flags, in_gimple_form, all_passes,
all_ipa_passes, all_lowering_passes, register_one_dump_file,
register_dump_files, next_pass_1, last_verified, execute_todo,
execute_one_pass, execute_pass_list, execute_ipa_pass_list): Moved
from tree-optimize.c.
(init_optimization_passes): Moved from tree-optimize.c,
adding the RTL optimizations.
* tree-dump.h (dump_info_p, dump_flag): Moved from tree.h.
* tree-optimize.c (dump_flags, in_gimple_form, all_passes,
all_ipa_passes, all_lowering_passes, register_one_dump_file,
register_dump_files, next_pass_1, last_verified, execute_todo,
execute_one_pass, execute_pass_list, execute_ipa_pass_list,
init_tree_optimization_passes, ipa_passes): Delete.
* tree-pass.h (enum tree_dump_index): Moved from tree.h, removing
the RTL dumps.
(TDF_*, get_dump_file_name, dump_enabled_p, dump_initialized_p,
dump_begin, dump_end, dump_node, dump_switch_p, dump_flag_name): Moved
from tree.h.
(ipa_passes): Remove.
(all_passes, all_ipa_passes, all_lowering_passes): Now extern.
* tree.h (enum tree_dump_index, TDF_*, get_dump_file_name,
dump_enabled_p, dump_initialized_p, dump_begin, dump_end, dump_node,
dump_switch_p, dump_flag_name): Moved to tree-pass.h.
(dump_info_p, dump_flag): Moved to tree-dump.h.
* Makefile.in: Adjust dependencies for tree-pretty-print.c,
cgraph.c, opts.c.
* passes.c (finish_optimization_passes): Use dump_begin
and dump_end, TDI_end.
(gate_rest_of_compilation): New.
(pass_rest_of_compilation): Use it.
(gate_postreload, pass_postreload): New.
* toplev.c (general_init): Rename init_tree_optimization_passes.
* toplev.h (init_tree_optimization_passes): Rename to
init_optimizations_passes.
* tree-dump.c (dump_flag): Make static.
(dump_files): Remove RTL dumps.
* tree-optimize.c (pass_all_optimizations, pass_early_local_passes,
pass_cleanup_cfg, pass_free_cfg_annotations,
pass_cleanup_cfg_post_optimizing, pass_free_datastructures,
pass_init_datastructures, pass_fixup_cfg): Make non-static.
* tree-pretty-print.c: Include tree-pass.h.
* cgraph.c: Include tree-dump.h.
2005-07-04 Daniel Berlin <dberlin@dberlin.org>
* tree-ssa-structalias.c (get_constraint_exp_from_ssa_var):
Only fall back to saying it points to readonly memory if
we can't do better.
2005-07-05 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
* config/m32r/m32r-protos.h: Remove m32r_finalize_pic.
* config/m32r/m32r.c (m32r_compute_frame_size,
m32r_expand_prologue): Take current_function_profile into
account whenever we reference
current_function_uses_pic_offset_table.
(m32r_finalize_pic): Remove.
* config/m32r/m32r.h (FINALIZE_PIC): Likewise.
2005-07-05 Kazu Hirata <kazu@codesourcery.com>
* Makefile.in (stamp-as): Use $(ORIGINAL_AS_FOR_TARGET)
instead of $<. Don't remove ./as if it already exists.
2005-07-04 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
PR target/21723
* pa.md: Remove fcpy alternative from movhi and movqi patterns.
* pa32-regs.h (HARD_REGNO_NREGS): Return two floating point registers
for complex modes when generating code for PA 1.0.
(VALID_FP_MODE_P): New macro.
(HARD_REGNO_MODE_OK): Use VALID_FP_MODE_P. Use non-overlapping register
sets for all general and floating point modes. Align wide floating
point modes to even register boundaries to comply with architectural
requirements.
(CLASS_MAX_NREGS): Update to align with change to HARD_REGNO_NREGS.
* pa64-regs.h (HARD_REGNO_NREGS): Update comment and formatting.
(VALID_FP_MODE_P): New macro.
(HARD_REGNO_MODE_OK): Use VALID_FP_MODE_P. Use non-overlapping register
sets for all general and floating point modes. Align wide floating
point modes to even register boundaries to comply with architectural
requirements.
2005-07-04 Diego Novillo <dnovillo@redhat.com>
* tree-dump.c (dump_files): Initialize dump number for .cgraph
to 0.
2005-07-04 Diego Novillo <dnovillo@redhat.com>
* tree-ssa-structalias.c: Don't include expr.h.
2005-07-04 Diego Novillo <dnovillo@redhat.com>
* tree-iterator.h (TSI_NEW_STMT, TSI_SAME_STMT): Fix
comments.
2005-07-04 Daniel Berlin <dberlin@dberlin.org>
Fix PR tree-optimization/22279
* tree-ssa-structalias.c (offset_overlaps_with_access): Use
correct operator.
2005-07-04 J"orn Rennecke <joern.rennecke@st.com>
* sh.c (output_ieee_ccmpeq): Replace "\\;" with "\n\t".
2005-07-03 Joseph S. Myers <joseph@codesourcery.com>
* bb-reorder.c, c-pch.c, c-pragma.c, c.opt, cfghooks.c, cfgloop.c,
cfgrtl.c, cgraphunit.c, config/c4x/c4x.c, config/cris/cris.c,
config/frv/frv.c, config/host-darwin.c, config/iq2000/iq2000.c,
config/lynx.h, config/m68k/m68k.c, config/pa/pa.c, config/sh/sh.h,
config/stormy16/stormy16.c, config/v850/v850.c,
config/vax/netbsd-elf.h, coverage.c, dwarf2out.c, emit-rtl.c,
except.c, gcc.c, tree-cfg.c, tree-eh.c, tree-ssa.c, xcoffout.c:
Avoid "." or "\n" at end of diagnostics and capital letters at
start of diagnostics.
* combine.c, cse.c: Don't translate dump file output.
* toplev.c (print_version): Only translate output if going to
stderr.
2005-07-03 Kazu Hirata <kazu@codesourcery.com>
* c-decl.c, tree-object-size.c, tree-vectorizer.c,
config/arm/unwind-arm.c, config/arm/unwind-arm.h: Fix comment
typos.
2005-07-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
* pa.c (fix_range): Fix typo in comment.
2005-07-03 Kazu Hirata <kazu@codesourcery.com>
* tree-vrp.c (extract_range_from_assert): Replace
fold (build (...)) with fold_build2.
2005-07-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* c-format.c (gcc_gfc_format_type, gcc_gfc_flag_pairs,
gcc_gfc_char_table, init_dynamic_gfc_info): New.
(format_types_orig, handle_format_attribute): Add support for
format "gcc_gfc".
2005-07-03 Gabriel Dos Reis <gdr@integrable-solutions.net>
* varasm.c (assemble_variable): Fix format specifier thinko.
2005-07-03 Ira Rosen <irar@il.ibm.com>
PR tree-optimization/22029 (and 22135)
* tree-pretty-print.c (dump_generic_node): Check that the node is not
a phi node before calling dump_vops.
2005-07-02 Gabriel Dos Reis <gdr@integrable-solutions.net>
* tree-dump.h (dump_string_field): Declare.
* tree-dump.c: Use it instead of dump_string.
(dump_string_field): Make non-static.
2005-07-03 Kaz Kojima <kkojima@gcc.gnu.org>
* config/sh/sh.c (sh_output_mi_thunk): Initialize and clean
up the minimal CFG stuff always when optimize > 0. Call
split_all_insns_noflow in PIC case if needed.
2005-07-02 Gabriel Dos Reis <gdr@integrable-solutions.net>
Christian Ehrhardt <ehrhardt@mathematik.uni-ulm.de>
PR c++/18279
* c-decl.c (c_write_global_declarations): Dump contents of
external scope to.
* tree-dump.c (dequeue_and_dump): Dump abstract origin of a decl.
<TRY_FINALLY_EXPR>, <RETURN_EXPR>, <CASE_LABEL_EXPR>, <LABEL_EXPR>,
<GOTO_EXPR>, <SWITCH_EXPR>: Add.
(dump_enabled_p): Return TRUE if PHASE is TDI_all and any dump
is enabled.
2005-07-03 Joseph S. Myers <joseph@codesourcery.com>
* c-common.h (GCC_DIAG_STYLE): Define.
* c-tree.h (GCC_DIAG_STYLE): Do not define. Change minimum GCC
version for format checking to 4.1.
* c-format.c: Include toplev.h after c-common.h.
(enum format_type): Add gcc_tdiag_format_type.
(gcc_tdiag_length_specs, gcc_tdiag_flag_pairs,
gcc_tdiag_flag_specs, gcc_tdiag_char_table): New.
(format_types_orig): Add gcc_tdiag.
(init_dynamic_diag_info): Support gcc_tdiag formats.
(handle_format_attribute): Likewise.
* toplev.h (NO_FRONT_END_DIAG, ATTRIBUTE_GCC_FE_DIAG): Remove.
(GCC_DIAG_STYLE): Default to __gcc_tdiag__. Change minimum GCC
version for format checking to 4.1.
(warning0, warning, error, pedwarn, sorry): Use
ATTRIBUTE_GCC_DIAG.
* config/rs6000/rs6000.c (altivec_expand_builtin), varasm.c
(finish_aliases_1): Do not use %qE.
* config/arm/arm.c, config/i386/i386.c, config/mmix/mmix.c,
config/pdp11/pdp11.c, stor-layout.c, tree-eh.c, tree-ssa.c:
Correct format bugs.
* config/v850/v850-protos.h (v850_output_aligned_bss): Change size
parameter to unsigned HOST_WIDE_INT.
* config/v850/v850.c (v850_output_aligned_bss): Likewise.
2005-07-02 David Edelsohn <edelsohn@gnu.org>
PR middle-end/21742
* expr.c (write_complex_part): Use adjust_address for MEM.
(read_complex_part): Same.
2005-07-02 Daniel Berlin <dberlin@dberlin.org>
Fix PR tree-optimization/22280
* tree-sra.c (generate_element_init): Remove useless loop.
2005-07-02 Richard Henderson <rth@redhat.com>
* config/alpha/alpha.c (alpha_legitimize_address): Check for
TLS_MODEL_NONE.
(alpha_stdarg_optimize_hook): Use DECL_UID with va_list_vars.
2005-07-02 Andrew Pinski <pinskia@physics.uc.edu>
PR middle-end/14490
* fold-const.c (fold_binary): Handle the return value of
fold_to_nonsharp_ineq_using_bound if we get back the same operand back.
Implement "X +- C1 CMP C2" folding to "X CMP C2 -+ C1".
2005-07-02 Jeff Law <law@redhat.com>
* tree-ssa-dom.c (find_equivalent_equality_comparison): Do not
a eliminate type conversion which feeds an equality comparison
if the original type or either operand in the comparison is a
function pointer.
2005-07-02 Joseph S. Myers <joseph@codesourcery.com>
* c.opt, common.opt, config/bfin/bfin.opt, config/pa/pa.opt,
config/rs6000/rs6000.opt, params.def: Remove "." from end of help
texts.
* config/avr/avr.c: Do not use '`' as left quote.
* config/rs6000/rs6000.c, config/s390/s390.c, opts.c, tree.c:
Remove "." from end of diagnostics. Make diagnostics start with
lowercase letter.
2005-07-02 Zack Weinberg <zack@codesourcery.com>
Joseph S. Myers <joseph@codesourcery.com>
* toplev.c (default_tree_printer): Handle setting location with
'+' flag.
* c-objc.common.c (c_tree_printer): Likewise.
* c-format.c (gcc_diag_flag_specs): Add '+'.
(gcc_cdiag_char_table): Allow '+' flag for tree formats.
(format_types_orig): Allow '+' flag for gcc_diag and gcc_cdiag
formats.
* c-common.c, c-decl.c, c-objc-common.c, c-pragma.c,
config/arm/pe.c, config/i386/winnt.c, config/ia64/ia64.c,
config/mcore/mcore.c, config/sh/symbian.c, config/sol2.c,
config/v850/v850.c, function.c, stor-layout.c, toplev.c,
tree-inline.c, tree-optimize.c, tree.c, varasm.c: Use '+' flag
instead of %J or %H. Use 'q' flag for quoting. Avoid '.' at end
of diagnostics. Use %q+D not %s for a decl. Do not pass excess
format arguments where %J is used without %D.
2005-07-02 Jakub Jelinek <jakub@redhat.com>
* gcc.c (LINK_SSP_SPEC): Define.
(link_ssp_spec): New variable.
(LINK_COMMAND_SPEC): Add %(link_ssp).
(static_specs): Add link_ssp_spec.
* configure.ac (TARGET_LIBC_PROVIDES_SSP): New test.
* configure: Rebuilt.
* config.in: Rebuilt.
* config/rs6000/linux.h (TARGET_THREAD_SSP_OFFSET): Define.
* config/rs6000/linux64.h (TARGET_THREAD_SSP_OFFSET): Likewise.
* config/i386/linux.h (TARGET_THREAD_SSP_OFFSET): Likewise.
* config/i386/linux64.h (TARGET_THREAD_SSP_OFFSET): Likewise.
* config/rs6000/rs6000.md (stack_protect_set, stack_protect_test):
If TARGET_THREAD_SSP_OFFSET is defined, use -0x7010(13) resp.
-0x7008(2) instead of reading __stack_chk_guard variable.
* config/i386/i386.md (UNSPEC_SP_SET, UNSPEC_SP_TEST): Change
number.
(UNSPEC_SP_TLS_SET, UNSPEC_SP_TLS_TEST): New constants.
(stack_protect_set, stack_protect_test): Use *_tls* patterns
if TARGET_THREAD_SSP_OFFSET is defined.
(stack_tls_protect_set_si, stack_tls_protect_set_di,
stack_tls_protect_test_si, stack_tls_protect_test_di): New insns.
Revert:
2005-06-27 Richard Henderson <rth@redhat.com>
* libgcc-std.ver (GCC_4.1.0): New.
* libgcc.h (__stack_chk_guard): Declare.
(__stack_chk_fail, __stack_chk_fail_local): Declare.
* libgcc2.c (L_stack_chk, L_stack_chk_local): New.
* mklibgcc.in (lib2funcs): Add them.
2005-07-01 Richard Henderson <rth@redhat.com>
* config/i386/linux-unwind.h (x86_64_fallback_frame_state): Cast to
void * before struct sigcontext *.
(x86_fallback_frame_state): Likewise.
2005-07-01 James E. Wilson <wilson@specifixinc.com>
* doc/invoke.texi (-funit-at-a-time): Correct grammar in second bullet.
2005-07-01 Andrew Pinski <pinskia@physics.uc.edu>
PR tree-opt/22269
* tree-ssa-reassoc.c (should_transpose): Fix which operand
we check for SSA_NAME for.
2005-07-01 Daniel Berlin <dberlin@dberlin.org>
Fix PR tree-optimization/22071
* tree-ssa-structalias.c (offset_overlaps_with_access): New
function.
(get_constraint_for_component_ref): Use it.
2005-07-01 Andrew Pinski <pinskia@physics.uc.edu>
PR other/22264
* diagnostic.c (diagnostic_report_current_module): Use pp_newline to
print out the last new line.
2005-07-01 Hans-Peter Nilsson <hp@axis.se>
* config/cris/cris.md (CRIS_CC0_REGNUM): New constant.
Swap numbers for CRIS_AP_REGNUM and CRIS_MOF_REGNUM.
* config/cris/cris.c (cris_conditional_register_usage): Adjust
reg_names[CRIS_CC0_REGNUM] for early CRIS versions.
(cris_print_operand) <case REG>: Handle CRIS_CC0_REGNUM.
(cris_md_asm_clobbers): Clobber CRIS_CC0_REGNUM for all asms.
* config/cris/cris.h (CRIS_CANONICAL_CC0_REGNUM): New macro.
(enum reg_class): New member CC0_REGS.
(REG_CLASS_FROM_LETTER): Add 'c' for CC0_REGS.
(FIRST_PSEUDO_REGISTER, CALL_USED_REGISTERS, REG_ALLOC_ORDER)
(HARD_REGNO_MODE_OK, MODES_TIEABLE_P, REG_CLASS_NAMES)
(CRIS_SPECIAL_REGS_CONTENTS, REG_CLASS_CONTENTS, REGNO_REG_CLASS)
(PREFERRED_RELOAD_CLASS, REGISTER_NAMES, DBX_REGISTER_NUMBER):
Adjust for register now described.
2005-07-01 Jakub Jelinek <jakub@redhat.com>
PR target/22262
* config/i386/i386.md (stack_protect_test_si,
stack_protect_test_di): Add earlyclobber for scratch 3.
* config/rs6000/rs6000.md (stack_protect_testsi,
stack_protect_testdi): Add earlyclobber for scratch 3,
remove earlyclobber from scratch 4.
Older entries for 2005 can be found in ChangeLog-2005.
2005-06-30 Diego Novillo <dnovillo@redhat.com>
PR 21584
PR 22219
* tree-ssa-alias.c (create_name_tags): Also process
non-dereferenced pointers.
Remove argument 'ai'. Update all callers.
2005-06-30 Andrew Pinski <pinskia@physics.uc.edu>
* config/rs6000/darwin.h (STARTING_FRAME_OFFSET):
Set to 0 for FRAME_GROWS_DOWNWARD.
(REGISTER_NAMES): Add sfp.
2005-07-01 Kelley Cook <kcook@gcc.gnu.org>
* config/arm/libunwind.S, config/arm/pr-support.c,
config/arm/unwind-arm.c, config/arm/unwind-arm.h,
config/c4x/predicates.md, tree-object-size.c: Update FSF address.
2005-06-30 Eric Botcazou <ebotcazou@libertysurf.fr>
PR target/22260
* config/sparc/sparc.c (emit_and_preserve): Add 2nd register.
Preserve the 2nd register too, if present.
(sparc_output_mi_thunk) <PIC case>: Preserve the PIC register too.
Adjust call to emit_and_preserve.
2005-06-30 Zack Weinberg <zack@codesourcery.com>
Jakub Jelinek <jakub@redhat.com>
* pretty-print.h (PP_NL_ARGMAX): New.
(text_info): Add locus.
(struct chunk_info): New.
(output_buffer): Add formatted_obstack, chunk_obstack, and
cur_chunk_array. Change obstack to a pointer.
(pp_wrapping_mode_t, pp_wrapping_mode, pp_set_verbatim_wrapping): New.
(struct pretty_print_info): Replace ideal_maximum_length and
prefixing_rule with wrapping.
(pp_line_cutoff, pp_prefixing_rule): Update to match.
Update prototypes and wrapper macros throughout.
* pretty-print.c (pp_formatted_text_data, pp_append_r)
(pp_base_clear_output_area, pp_construct, pp_base_formatted_text)
(pp_base_last_position_in_text, pp_base_newline, pp_base_character):
Update for changes to pp structure.
(pp_base_prepare_to_format, pp_base_format_text): Delete.
(pp_base_format, pp_base_output_formatted_text): New functions.
(pp_base_format_verbatim): Use pp_set_verbatim_wrapping.
(pp_verbatim): Clear text.locus.
(pp_printf): Likewise. Use pp_format and pp_output_formatted_text.
* c-objc-common.c (c_tree_printer): Update function signature.
* diagnostic.c (diagnostic_initialize): Update for changes to
pp structure.
(diagnostic_report_diagnostic): Call pp_format and then
pp_output_formatted_text.
(verbatim): Clear text.locus.
* diagnostic.h (diagnostic_prefixing_rule, diagnostic_line_cutoff):
Update for changes to pp structure.
* c-lang.c: No need to include c-pretty-print.h.
* Makefile.in: Remove bogus line containing only a tab.
(c-lang.o): Update dependencies.
* toplev.c (announce_function): Don't use verbatim.
(default_tree_printer): Update signature.
* objc/objc-lang.c: No need to include c-pretty-print.h.
* objc/Make-lang.in: Update dependencies.
2005-06-29 Daniel Berlin <dberlin@dberlin.org>
* tree-complex.c (complex_variable_components): Now a hashtable.
(cvc_lookup): Ditto.
(cvc_insert): Ditto.
(create_components): Use referenced var iterator.
Initialize hashtable. Use cvc_insert/lookup.
(extract_components): Use cvc_insert/lookup.
(update_complex_components): Ditto.
(update_complex_components_on_edge): Ditto.
* tree-dfa.c (referenced_vars): Now a hashtable.
(dump_referenced_vars): Use iterator.
(referenced_var_lookup): New function.
(referenced_var_insert): Ditto.
(add_referenced_var): Use referenced_var_insert.
(mark_new_vars_to_rename): Use DECL_UID.
* tree-flow-inline.h (first_htab_element): New function.
(end_htab_p): Ditto.
(next_htab_element): Ditto.
(first_referenced_var): Ditto.
(end_referenced_vars_p): Ditto.
(next_referenced_var): Ditto.
(is_call_clobbered): Use DECL_UID.
(mark_call_clobbered): Ditto.
(clear_call_clobbered): Ditto.
(mark_non_addressable): Ditto.
* tree-flow.h (htab_iterator): New struct.
(FOR_EACH_HTAB_ELEMENT): New macro.
(struct int_tree_map): New struct.
(int_tree_map_hash): Prototype.
(int_tree_map_eq): Ditto.
(referenced_var_iterator): Ditto.
(FOR_EACH_REFERENCED_VAR): New macro.
(referenced_vars): Now a hashtable.
* tree-into-ssa.c (symbol_marked_for_renaming): Use DECL_UID.
(add_new_name_mapping): Ditto.
(mark_def_sites): Ditto.
(insert_phi_nodes): Use referenced_var iterator.
(mark_def_site_blocks): Ditto.
(mark_sym_for_renaming): Use DECL_UID.
* tree-sra.c (is_sra_candidate_decl): Use DECL_UID.
(lookup_element): Ditto.
(find_candidates_for_sra): Use referenced_vars iterator.
Use DECL_UID.
* tree-ssa-alias.c (NUM_REFERENCES): New macro.
(NUM_REFERENCES_CLEAR): Ditto.
(NUM_REFERENCES_INC): Ditto.
(NUM_REFERENCES_SET): Ditto.
(alias_obstack): New bitmap obstack.
(struct alias_map_d): Use bitmap, not sbitmap.
(struct alias_info): Remove num_references.
(init_alias_info): Use referenced_var iterator.
Initialize bitmap obstack.
(delete_alias_info): Use referenced_var iterator.
Free bitmap obstack.
(compute_points_to_and_addr_escape): Use DECL_UID.
Use new NUM_REFERENCES macros.
(compute_flow_sensitive_aliasing): may_aliases is now a bitmap.
Use new NUM_REFERENCES macros.
(group_aliases_into): Update prototype to use bitmap.
(setup_pointers_and_addressables): Use referenced_vars iterator.
Use DECL_UID. Use new NUM_REFERENCES macros.
(add_pointed_to_var): Use DECL_UID.
(dump_alias_info): Use referenced_var iterator.
(add_type_alias): Ditto.
(used_portions): Now a hashtable.
(used_part_map_eq): New function.
(used_part_map_hash): Ditto.
(free_used_part_map): Ditto.
(up_lookup): Ditto.
(up_insert): Ditto.
(get_or_create_used_part_for): Use up_lookup.
(create_overlap_variables_for): Ditto.
(find_used_portions): Use up_insert.
Use DECL_UID.
(create_structure_vars): Init used_portions hashtable, use
referenced_vars iterator.
* tree-ssa-live.c (create_ssa_var_map): sbitmaps became bitmaps.
Use DECL_UID.
* tree-ssa-loop-im.c (gather_mem_refs_stmt): Use DECL_UID.
* tree-ssa-operands.c (get_asm_expr_operands): Ditto.
(note_addressable): Ditto.
* tree-ssa-structalias.c (set_uids_in_ptset): Ditto.
* tree-ssa.c (verify_flow_insensitive_alias_info): Use
referenced_var iterator.
Use DECL_UID.
(delete_tree_ssa): Ditto.
(int_tree_map_eq): New function.
(int_tree_map_hash): Ditto.
* tree-stdarg.c (find_va_list_reference): Use DECL_UID.
(va_list_ptr_read): Ditto.
(va_list_counter_struct_op): Ditto.
(va_list_ptr_write): Ditto.
(check_va_list_escapes): Ditto.
(check_all_va_list_escapes): Ditto.
(execute_optimize_stdarg): Ditto.
* tree-tailcall.c (suitable_for_tail_opt_p): Used referenced_var
iterator.
2005-06-30 Andrew Pinski <pinskia@physics.uc.edu>
* config/rs6000/darwin.h (FRAME_POINTER_REGNUM): Rename to ...
(HARD_FRAME_POINTER_REGNUM): this.
2005-06-30 Jan Hubicka <jh@suse.cz>
* ipa-inline.c (cgraph_clone_inlined_nodes): Revert previous patch.
2005-06-30 Francois-Xavier Coudert <coudert@clipper.ens.fr>
PR middle-end/22247
* tree-ssa-structalias.c (build_constraint_graph, scc_visit,
process_unification_queue, init_topo_info, topo_visit,
init_scc_info, free_scc_info, perform_var_substitution,
solve_graph): Use unsigned instead of uint.
2005-06-30 Jakub Jelinek <jakub@redhat.com>
* function.c (gen_stack_protect_test): Add third argument.
2005-06-30 J. D. Johnston <jjohnst@us.ibm.com>
* gthr-tpf.h (CE2THRCPTR): Change field offset to 16.
2005-06-30 Kazu Hirata <kazu@codesourcery.com>
* config/c4x/c4x-protos.h: Remove the prototypes for those
functions removed from c4x.c. Add prototypes for those
functions exported in c4x.c.
* config/c4x/c4x.c (any_operand, fp_zero_operand,
const_operand, stik_const_operand, not_const_operand,
reg_operand, r0r1_reg_operand, r2r3_reg_operand,
ext_low_reg_operand, ext_reg_operand, std_reg_operand,
std_or_reg_operand, addr_reg_operand, index_reg_operand,
dp_reg_operand, sp_reg_operand, st_reg_operand,
rc_reg_operand, call_address_operand,
symbolic_address_operand, dst_operand, src_operand,
src_hi_operand, lsrc_operand, tsrc_operand,
nonimmediate_src_operand, nonimmediate_lsrc_operand,
reg_or_const_operand, par_ind_operand, parallel_operand):
Remove.
(c4x_immed_float_p, c4x_a_register, c4x_x_register,
c4x_K_constant, c4x_N_constant, c4x_O_constant,
c4x_S_indirect): Export.
* config/c4x/c4x.h (PREDICATE_CODES): Remove.
* config/c4x/c4x.md: Include predicates.md.
* config/c4x/predicates.md: New.
2005-06-30 Jakub Jelinek <jakub@redhat.com>
* function.c (stack_protect_epilogue): Pass label to
stack_protect_test, assume it emitted also the conditional
branch.
* doc/md.texi (stack_protect_test): Adjust documentation.
* config/i386/i386.md (stack_protect_test): Add third argument,
emit beq with operands[2].
* config/rs6000/rs6000.h (FRAME_GROWS_DOWNWARD): Define to
flag_stack_protect != 0.
* config/rs6000/rs6000.md (UNSPEC_SP_SET, UNSPEC_SP_TEST): New
constants.
(stack_protect_set, stack_protect_test): New expanders.
(stack_protect_setsi, stack_protect_setdi, stack_protect_testsi,
stack_protect_testdi): New insns.
* config/rs6000/rs6000.c (rs6000_stack_protect_fail): New function.
(TARGET_STACK_PROTECT_FAIL): Define.
(rs6000_generate_compare): Handle UNSPEC_SP_TEST.
* config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Increment.
(DWARF_FRAME_REGISTERS, DWARF_REG_TO_UNWIND_COLUMN): Adjust, so
that addition of sfp doesn't change these.
(FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS,
REG_ALLOC_ORDER): Add sfp.
(INT_REGNO_P): Include FRAME_POINTER_REGNUM.
(FRAME_POINTER_REGNUM): Define to 113.
(HARD_FRAME_POINTER_REGNUM): Define to 31.
(REG_CLASS_CONTENTS, REGNO_REG_CLASS): Add sfp.
(STARTING_FRAME_OFFSET): Set to 0 for FRAME_GROWS_DOWNWARD.
(ELIMINABLE_REGS): Never eliminate to
FRAME_POINTER_REGNUM, but HARD_FRAME_POINTER_REGNUM
instead. Add eliminations from FRAME_POINTER_REGNUM.
(REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P, INT_REG_OK_FOR_INDEX_P):
Include FRAME_POINTER_REGNUM.
(REGISTER_NAMES): Add sfp.
* config/rs6000/rs6000.c (rs6000_reg_names): Add sfp.
(alt_reg_names): Likewise.
(rs6000_stack_info): Handle FRAME_GROWS_DOWNWARD.
(rs6000_emit_prologue): Use HARD_FRAME_POINTER_REGNUM
instead of FRAME_POINTER_REGNUM.
(rs6000_initial_elimination_offset): Never eliminate to
FRAME_POINTER_REGNUM, but HARD_FRAME_POINTER_REGNUM
instead. Add elimination offsets from FRAME_POINTER_REGNUM.
* config/rs6000/sysv4.h (RS6000_VARARGS_AREA): Only return non-zero
if DEFAULT_ABI == ABI_V4.
2005-06-30 Steven Bosscher <stevenb@suse.de>
* coretypes.h (tls_model): Add TLS_MODEL_NONE as 0.
* tree.h (struct tree_decl): New field `tls_model'.
(DECL_TLS_MODEL): New.
(DECL_THREAD_LOCAL_P): Rename from DECL_THREAD_LOCAL, make it
a predicate.
* rtl.h (decl_default_tls_model): Add prototype for it.
* varasm.c (decl_tls_model): Rewritten and renamed to ...
(decl_default_tls_model): ... this.
(default_encode_section_info): Use DECL_TLS_MODEL instead of
decl_tls_model.
(assemble_variable): Replace DECL_THREAD_LOCAL with
DECL_THREAD_LOCAL_P.
(default_section_type_flags_1): Likewise.
(categorize_decl_for_section): Likewise.
* tree.c (staticp): Likewise.
(recompute_tree_invarant_for_addr_expr): Likewise.
* drawf2out (loc_descriptor_from_tree_1): Likewise.
* c-decl.c (diagnose_mismatched_decls): Likewise.
with DECL_THREAD_LOCAL_P.
(start_decl): Likewise.
* print-tree.c (print_node): Likewise. Print the TLS model.
(grokdeclarator): Set the default DECL_TLS_MODEL here.
* c-common.c (handle_tls_model_attribute): Rewrite to set the
TLS model up based on the attribute. Never add the attribute
to the decl's attributes list.
* config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): Replace
DECL_THREAD_LOCAL with DECL_THREAD_LOCAL_P.
2005-06-30 Zdenek Dvorak <dvorakz@suse.cz>
PR testsuite/21967
* tree-ssa-live.c (mark_all_vars_used_1): Ignore variables in
TMR_ORIGINAL.
2005-06-30 Bernd Schmidt <bernd.schmidt@analog.com>
* config/bfin/bfin.md (addv2hi3, subv2hi3, sminv2hi3, smaxv2hi3,
mulv2hi3, negv2hi2, absv2hi2): Pattern names fixed by appending the
necessary digit.
2005-06-29 David Edelsohn <edelsohn@gnu.org>
* config/rs6000/rs6000.c (rs6000_file_start): Use PPC405_ERRATUM77.
2005-06-29 Diego Novillo <dnovillo@redhat.com>
PR 22234
* tree-ssa-copy.c (fini_copy_prop): Do not overwrite copy_of
when following copy-of chains.
2005-06-30 Jan Hubicka <jh@suse.cz>
* function.h (struct function): Add saved blocks/unexpanded var list.
* gimple-low.c (record_vars): Insert only VAR_DECLs.
* tree-inline.c (add_lexical_block): Declare; do not clear sublocks.
(remap_decl): Do not declare vars.
(remap_block): Do not care inserting blocks.
(remap_blocks): New function.
(copy_body_r): Update debug info.
(expand_call_inline): Duplicate callee block tree into caller;
copy all the unexpanded_var_list.
(save_body): Save unexpanded_var_list and blocks.
* tree-optimize.c (tree_rest_of_optimization): Restore
blocks/unexpanded_var_list.
2005-06-29 Richard Henderson <rth@redhat.com>
* config/ia64/ia64.c (ia64_expand_vecint_minmax): Use us_minus and
plus for V4HImode UMAX.
2005-06-29 Joseph S. Myers <joseph@codesourcery.com>
* c-tree.h (default_function_array_conversion): Take and return
struct c_expr.
* c-typeck.c (default_function_array_conversion): Split into
array_to_pointer_conversion and function_to_pointer_conversion.
Take and return struct c_expr.
(array_to_pointer_conversion): Do not handle type qualifiers or
COMPOUND_EXPRs specially.
(build_function_call): Call function_to_pointer_conversion for
function designators.
(build_unary_op): Call array_to_pointer_conversion, not
default_function_array_conversion.
(digest_init, output_init_element): Likewise.
* c-parser.c: All callers of default_function_array_conversion
changed.
2005-06-29 Ziemowit Laski <zlaski@apple.com>
* config/darwin.c (machopic_select_section): constant ObjC string
objects now always have type "__builtin_ObjCString".
2005-06-29 Richard Henderson <rth@redhat.com>
* config/alpha/alpha.md (vec_shl_<VEC>, vec_shr_<VEC>): New.
2005-06-29 Richard Henderson <rth@redhat.com>
* tree-vect-transform.c (vect_min_worthwhile_factor): Declare.
(vect_create_epilog_for_reduction): Don't use vec_shr if the
operation is emulated.
(vectorizable_reduction): Duplicate vect_min_worthwhile_factor
tests from vectorizable_operation.
2005-06-29 Caroline Tice <ctice@apple.com>
Fix PR 21956
* varasm.c (assemble_start_function): Add "L" to beginning of
local labels, so assembler & linker treat them as local.
2005-06-29 Richard Henderson <rth@redhat.com>
* config/i386/i386.c (ix86_expand_int_vcond): Remove unsignedp
argument. Simplify canonicalization of condition. Use unsigned
saturating subtraction for QI and HImode unsigned compares. Use
bit arithmetic tricks for SImode unsigned compares.
* config/i386/i386-protos.h (ix86_expand_int_vcond): Update decl.
* config/i386/sse.md (SSEMODE14): New.
(umaxv8hi3): Use us_minus+plus to avoid vcond.
(umaxv4si3): New.
(smax<SSEMODE14>3): Rename from smaxv16qi3 and macroize.
(smin<SSEMODE14>3): Similarly with sminv16qi3.
(umin<SSEMODE24>3): Similarly with uminv8hi3.
2005-06-29 Ian Lance Taylor <ian@airs.com>
* dwarf2out.c (expand_builtin_init_dwarf_reg_sizes): Change
GEN_INT to gen_int_for_mode when storing register size to memory.
2005-06-29 Stuart Hastings <stuart@apple.com>
* config/i386/mmintrin.h: Mark vector intrinsics always_inline.
* config/i386/emmintrin.h: Likewise.
* config/i386/pmmintrin.h: Likewise.
* config/i386/xmmintrin.h: Likewise.
2005-06-29 Steve Ellcey <sje@cup.hp.com>
PR middle-end/21969
* tree.h (TYPE_VECTOR_SUBPARTS): Change to shift expression.
(SET_TYPE_VECTOR_SUBPARTS): New.
* tree.c (make_vector_type): Replace TYPE_VECTOR_SUBPARTS with
SET_TYPE_VECTOR_SUBPARTS.
* tree-vect-transform.c (vect_transform_loop): Add cast.
2005-06-29 Andreas Krebbel <krebbel1@de.ibm.com>
* config/s390/s390.c (s390_decompose_address): Accept invalid
displacements for addresses containing frame_pointer_rtx or
virtual_stack_vars_rtx.
(s390_frame_info): Replaced use of STARTING_FRAME_OFFSET.
(s390_initial_elimination_offset): New offset when eliminating the
soft frame pointer.
* config/s390/s390.h (FRAME_GROWS_DOWNWARD): Defined as 1.
(STARTING_FRAME_OFFSET, STACK_DYNAMIC_OFFSET): Definitions changed.
2005-06-28 Ziemowit Laski <zlaski@apple.com>
* c-common.c (flag_next_runtime): Move...
* toplev.c (flag_next_runtime): ... here.
* c-common.h (flag_next_runtime): Move...
* flags.h (flag_next_runtime): ... here.
* config/darwin-c.c: Include flags.h.
* config/t-darwin (darwin-c.o): Depend on flags.h.
2005-06-29 Kaz Kojima <kkojima@gcc.gnu.org>
* config/sh/linux-unwind.h (shmedia_fallback_frame_state):
Disable aliasing warning with void * cast.
(sh_fallback_frame_state): Likewise.
2005-06-29 Kaz Kojima <kkojima@gcc.gnu.org>
* target.h (gcc_target): New field allocate_initial_value.
* target-def.h (TARGET_ALLOCATE_INITIAL_VALUE): New macro.
(TARGET_INITIALIZER): Include it.
* integrate.c (allocate_initial_values): Use
targetm.allocate_initial_value.
* system.h: Poison ALLOCATE_INITIAL_VALUE.
* config/sh/sh-protos.h (sh_pr_n_sets): Delete.
* config/sh/sh.c (sh_pr_n_sets): Make it static.
(sh_allocate_initila_value): New function.
(TARGET_ALLOCATE_INITIAL_VALUE): Override default.
* config/sh/sh.h (ALLOCATE_INITIAL_VALUE): Delete.
* doc/tm.texi (TARGET_ALLOCATE_INITIAL_VALUE): Rename and
update from ALLOCATE_INITIAL_VALUE.
2005-06-28 Richard Henderson <rth@redhat.com>
* tree-vectorizer.c (vect_is_simple_reduction): Compare types
using TYPE_MAIN_VARIANT.
2005-06-28 Richard Henderson <rth@redhat.com>
* config/ia64/ia64.c (ia64_expand_vecint_compare): Decompose to EQ
when using psubN.uuu.
2005-06-29 Kelley Cook <kcook@gcc.gnu.org>
* doc/gcc.texi: Update FSF address.
2005-06-28 Eric Christopher <echristo@redhat.com>
PR c/22052
PR c/21975
* c-decl.c (diagnose_mismatched_decls): Define DECL_EXTERN_INLINE.
Use. Fix detection of invalid extern inline redefinition.
2005-06-28 Diego Novillo <dnovillo@redhat.com>
* tree-optimize.c (init_tree_optimization_passes): Fix typo.
2005-06-28 Andrew Pinski <pinskia@physics.uc.edu>
* config/rs6000/rs6000.md (setmemsi): s/operand/operands/.
2005-06-28 Richard Henderson <rth@redhat.com>
* config/ia64/ia64.c (ia64_expand_vecint_compare): Use unsigned
saturating subtraction for QI and HImode unsigned compares. Use
bit arithmetic tricks for SImode unsigned compares.
(ia64_expand_vcondu_v2si): Remove.
(ia64_expand_vecint_cmov): Don't call it.
2005-06-28 Richard Henderson <rth@redhat.com>
* rtlanal.c (nonzero_bits1): Use the mode of the value for
determining integral-ness for comparisons.
2005-06-28 Andrew Pinski <pinskia@physics.uc.edu>
* config/rs6000/rs6000.md (setmemsi): Fix operand 2.
2005-06-28 Joseph S. Myers <joseph@codesourcery.com>
* target.h (invalid_conversion, invalid_unary_op,
invalid_binary_op): New hooks.
* target-def.h (TARGET_INVALID_CONVERSION,
TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP,
TARGET_INITIALIZER): Likewise.
* hooks.h (hook_constcharptr_tree_tree_null,
hook_constcharptr_int_tree_null,
hook_constcharptr_int_tree_tree_null): New.
* hooks.c (hook_constcharptr_tree_tree_null,
hook_constcharptr_int_tree_null,
hook_constcharptr_int_tree_tree_null): Likewise.
* doc/tm.texi (TARGET_INVALID_CONVERSION,
TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Document.
* c-convert.c (convert): Use invalid_conversion hook.
* c-typeck.c (build_unary_op): Use invalid_unary_op hook.
(build_binary_op): Use invalid_binary_op hook.
* config/ia64/ia64-modes.def: Define RFmode.
* config/ia64/ia64-protos.h (spill_xfmode_operand): Remove.
(ia64_expand_movxf_movrf): New.
* config/ia64/ia64.md (movxf): Move code to
ia64_expand_movxf_movrf.
(movrf, movrf_internal): New.
* ia64.c (ia64_invalid_conversion, ia64_invalid_unary_op,
ia64_invalid_binary_op, TARGET_INVALID_CONVERSION,
TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): New.
(spill_xfmode_operand): Rename to spill_xfmode_rfmode_operand.
Add mode parameter. Make static.
(ia64_expand_movxf_movrf): New, moved from ia64.md. Handle RFmode
as well as XFmode.
(ia64_function_arg, ia64_function_value, ia64_register_move_cost,
ia64_scalar_mode_supported_p): Handle RFmode as well as XFmode.
(ia64_init_builtins): Set up __fpreg as RFmode.
(ia64_mangle_fundamental_type): Mangle __fpreg as u7__fpreg.
2005-06-28 Adrian Straetling <straetling@de.ibm.com>
* builtins.c: (expand_builtin_memset): Rewrite to support
'set_storage_via_setmem'.
* expr.c: (enum insn_code setmem_optab): Define.
(enum insn_code clrmem_optab): Remove.
(set_storage_via_setmem): New function.
(clear_storage_via_setmem): Remove.
(clear_storage): Replace call to "clear_storage_via_clrmem" with
"set_storage_via_setmem".
* expr.h: (set_storage_via_setmem): Declare.
(CLEAR_RATIO): Redefine using HAVE_setmemM.
* optabs.h: (enum insn_code setmem_optab): Declare.
(enum insn_code clrmem_optab): Remove.
* optabs.c: (init_optabs): Initialize setmem_optab.
(enum insn_code clrmem_optab): Remove.
* genopinit.c: (otabs): Likewise.
* doc/md.texi: Document new standard pattern 'setmem'. Remove
'clrmem'.
* config/alpha/alpha.c: (alpha_expand_block_clear): Adjust
'operands' ordering.
* config/frv/frv.c: (frv_expand_block_clear): Likewise.
* config/rs6000/rs6000.c: (expand_block_clear): Likewise.
* config/alpha/alpha.md: ("clrmemqi", "clrmemdi"): Rename to "setmemM".
FAIL on operands[2]!=const0_rtx. Adjust 'operands' ordering.
* config/avr/avr.md: ("clrmemhi"): Likewise.
* config/frv/frv.md: ("clrmemsi"): Likewise.
* config/i386/i386.md: ("clrmemsi", "clrmemdi"): Likewise.
* config/pa/pa.md: ("clrmemsi", "clrmemdi"): Likewise.
* config/rs6000/rs6000.md: ("clrmemsi"): Likewise.
* config/s390/s390.md: ("clrmem<mode>"): Likewise.
2005-06-28 Paul Brook <paul@codesourcery.com>
* Makefile.in: Set and use UNWIND_H. Install as unwind.h.
* c-decl.c (finish_decl): Call default_init_unwind_resume_libfunc.
* except.c (add_ehspec_entry): Generate arm eabi filter lists.
(assign_filter_values): Ditto.
(output_ttype): New function.
(output_function_exception_table): Use output_ttype. Generate arm
eabi filter lists.
(default_init_unwind_resume_libfunc): New function.
* except.h (default_init_unwind_resume_libfunc): Add prototype.
* optabs.c (init_optabs): Don't set unwind_resume_libfunc.
* opts.c (decode_options): Use targetm.unwind_tables_default.
* target-def.h (TARGET_ASM_TTYPE): Provide and use definition.
(TARGET_ARM_EABI_UNWINDER, TARGET_UNWIND_TABLES_DEFAULT): Ditto.
* target.h (struct gcc_target): Add asm.ttype, unwind_tables_default
and arm_eabi_unwinder.
* unwind-c.c: Support Arm EABI unwinder.
* unwind.h: Rename ...
* unwind-generic.h: ... To this.
* doc/tm.texi (TARGET_ASM_TTYPE, TARGET_ARM_EABI_UNWINDER): Document.
(TARGET_UNWID_TABLES_DEFAULT): Document.
* config/arm/arm-protos.h (arm_output_fn_unwind): Add prototype.
* config/arm/arm.c (arm_unwind_emit, arm_output_ttype): New functions.
(TARGET_UNWIND_EMIT, TARGET_ASM_TTYPE, TARGET_ARM_EABI_UNWINDER):
Define.
(thumb_pushpop, thumb_output_function_prologue): Output unwinding
directives.
(arm_unwind_emit_stm, arm_unwind_emit_set): New functions.
* config/arm/arm.h (MUST_USE_SJLJ_EXCEPTIONS): Only define when
!TARGET_UNWIND_INFO.
(ARM_OUTPUT_FN_UNWIND, ARM_EABI_UNWIND_TABLES): Define.
* config/arm/bpabi.h (TARGET_UNWIND_INFO): Define.
* config/arm/elf.h (ASM_DECLARE_FUNCTION_NAME,
ASM_DECLARE_FUNCTION_SIZE): Use ARM_OUTPUT_FN_UNWIND.
* config/arm/lib1funcs.asm: Include libunwind.S.
* config/arm/libgcc-bpabi.ver: Add unwinding routines.
* config/arm/libunwind.S: New file.
* config/arm/pr-support.c: New file.
* config/arm/t-bpabi (LIB1ASMFUNCS): Add _unwind.
(UNWIND_H, LIB2ADDEH, LIB2ADDEHDEP): Set.
* config/arm/t-symbian (UNWIND_H, LIB2ADDEH, LIB2ADDEHDEP): Set.
* config/arm/unwind-arm.c: New file.
* config/arm/unwind-arm.h: New file.
* config/i386/t-netware (USER_H): Remove unwind.h.
* config/ia64/ia64.h (TARGET_UNWIND_TABLES_DEFAULT): Define.
2005-06-28 DJ Delorie <dj@redhat.com>
* c-decl.c (pop_scope): Move warning control into warning call.
(diagnose_mismatched_decls): Likewise.
(pushdecl): Likewise.
(start_decl): Likewise.
(grokparms): Likewise.
(start_function): Likewise.
(store_parm_decls_newstyle): Likewise.
(store_parm_decls_oldstyle): Likewise.
(finish_function): Likewise.
(declspecs_add_scspec): Likewise.
* c-format.c (decode_format_attr): Likewise.
(maybe_read_dollar_number): Likewise.
(avoid_dollar_number): Likewise.
(finish_dollar_format_checking): Likewise.
(check_format_info): Likewise.
(check_format_info_main): Likewise.
(check_format_types): Likewise.
(format_type_warning): Likewise.
* c-typeck.c (function_types_compatible_p): Likewise.
(build_array_ref): Likewise.
(convert_arguments): Likewise.
(build_c_cast): Likewise.
(store_init_value): Likewise.
(process_init_element): Likewise.
(c_start_case): Likewise.
* stor-layout.c (finalize_record_size): Likewise.
* tree-cfg.c (execute_warn_function_noreturn): Likewise.
* tree-inline.c (expand_call_inline): Likewise.
2005-06-28 Uros Bizjak <uros@kss-loka.si>
PR target/22134
* config/i386/i386.md (fist<mode>2_with_temp splitter):
Clobber memory operand, not scratch register.
2005-06-28 Andreas Krebbel <krebbel1@de.ibm.com>
* config/s390/s390.c (machine_function): New field has_landing_pad_p.
(s390_set_has_landing_pad_p, s390_reg_clobbered_rtx,
s390_regs_ever_clobbered): New functions.
(s390_return_addr_rtx): Use get_hard_reg_initial_value.
(s390_register_info, s390_init_frame_layout, s390_update_frame_layout):
Use s390_regs_ever_clobbered.
(s390_emit_prologue): Don't use r14 as temp reg if its content is used
for builtin_return_address.
* config/s390/s390.md ("exception_receiver"): New expander.
* config/s390/s390-protos.h (s390_set_has_landing_pad_p): Prototype
added.
2005-06-28 Andreas Krebbel <krebbel1@de.ibm.com>
* except.c (current_function_has_exception_handlers): Function
description added and if statements merged.
2005-06-28 Richard Henderson <rth@redhat.com>
* config/i386/sse.md (smaxv16qi3): Fix buffer overflow.
(sminv16qi3, umaxv8hi3, uminv8hi3): Likewise.
2005-06-27 Richard Henderson <rth@redhat.com>
* config/ia64/ia64.c (ia64_expand_vcondu_v2si): Generate proper
comparison operations.
(ia64_expand_vecint_minmax): Fix size of xops.
* config/ia64/vect.md (umax<VECINT>3): Fix fallback pattern typo.
(vec_shl_<VECINT>, vec_shr_<VECINT>): New.
2005-06-27 Richard Henderson <rth@redhat.com>
* tree-vect-transform.c (get_initial_def_for_reduction): Use correct
type for DEF and INIT_VAL. Pretend MIN/MAX need epilogue adjustment.
2005-06-27 Richard Henderson <rth@redhat.com>
* config/i386/sse.md (vec_shl_<SSEMODEI>, vec_shr_<SSEMODEI>): New.
(smaxv16qi3, umaxv8hi3, sminv16qi3, uminv8hi3): New.
2005-06-27 Richard Henderson <rth@redhat.com>
* tree-vect-transform.c (vect_create_epilog_for_reduction): Remove
duplicate little-endian adjustment.
2005-06-28 Kelley Cook <kcook@gcc.gnu.org>
* doc/include/texinfo.tex: Import from upstream CVS.
2005-06-28 Jan Hubicka <jh@suse.cz>
* cgraph.c (cgraph_remove_node): Do not release function bodies until
full cgraph is built.
* cgraph.h (cgraph_decide_inlining_incrementally): Add early argument.
* cgraphunit.c (cgraph_finalize_function): Update call of
cgraph_decide_inlining_incrementally.
(initialize_inline_failed): Break out of ...
(cgraph_analyze_function): ... here.
(rebuild_cgraph_edges): New function.
(pass_rebuild_cgraph_edges): New pass.
* common.opt (fearly-inlining): New flag.
* ipa-inline.c: Include ggc.h
(cgraph_clone_inlined_nodes): Avoid re-using of original copy
when cgraph is not fully built.
(cgraph_decide_inlining_incrementally): Add early mode.
(cgraph_early_inlining): New function.
(cgraph_gate_early_inlining): Likewise.
(pass_early_ipa_inline): New pass.
* ipa.c (cgraph_postorder): NULLify aux pointer.
* tree-inline.c (expand_call_inline): Avoid warning early.
* tree-optimize.c (pass_early_local_passes): New.
(execute_cleanup_cfg_pre_ipa): New.
(pass_cleanup_cfg): New.
(register_dump_files): Fix handling subpasses of IPA pass.
(init_tree_optimization_passes): Add early passes.
(execute_ipa_pass_list): Fix handling of subpasses of IPA pass.
* passes.h (pass_early_tree_profile, pass_rebuild_cgraph_edges,
pass_early_ipa_inline): New passes.
* tree-profile.c (do_early_tree_profiling, pass_early_tree_profile): New.
* invoke.texi: Document early-inlining.
2005-06-28 Kelley Cook <kcook@gcc.gnu.org>
* doc/include/fdl.texi: Merge in changes from upstream.
* doc/include/gpl.texi: Likewise.
2005-06-27 Diego Novillo <dnovillo@redhat.com>
PR 21959
* tree-ssa-loop-niter.c (scev_probably_wraps_p): Handle type
casts between unsigned and signed types with different size
or precision.
2005-06-28 Jan Hubicka <jh@suse.cz>
* tree-optimize.c (exercute_free_datastructures):
Do not disband implicit edges; do not attempt to build insn list;
do not free cfg annotations.
(execute_free_cfg_annotations); Disband implicit edges here;
free cfg annotations here too.
(pass_free_cfg_annotations); New pass.
(init_tree_optimization_passes); Add pass_free_cfg_annotations.
* tree-ssa-operands.c (free_ssa_operands); Recover; export.
* tree-ssa-operands.h (free_ssa_operands); declare.
* tree-ssa.c (delete_tree_ssa); Free SSA operand; mark stmt modified;
kill PHI nodes.
* tree-ssanames.c (release_defs): Kill addresses_taken.
* basic-block.h (basic_block_def): Kill rbi.
(reorder_block_def): Kill; Remove next field (replaced by aux);
move other fields to ...
(rtl_bb_info): ... here.
* bb-reorder.c (find_traces, rotate_loop, find_traces_1_round,
copy_bb, connect_traces, add_labels_and_missing_jumps
fix_up_fall_thru_edges, fix_crossing_conditional_branches,
duplicate_computed_gotos, partition_hot_cold_basic-blocks):
Update to new fields.
* cfg.c (initialize_bb_rbi): Kill.
* cfglayout.c (record_effective_endpoints, fixup_reorder_chain,
fixup_fallthru_exit_predecessor, cfg_layout_duplicate_bb): Update.
* cfgrtl.c (cfg_layout_create_basic_block): Do not initialize rbi.
(try_redirect_by_replacing_jump): Update rbi references.
(cfg_layout_split_block): Likewise.
(cfg_layout_delete_block): Likewise.
(cfg_layout_merge_blocks): Likewise.
* function.c (thread_prologue_and_epilogue_insns): Likewise.
* passes.c (rest_of_handle_sms): Likewise.
* tracer.c (seen, tail_duplicate, layout_superblocks): Likewise.
2005-06-27 David Edelsohn <edelsohn@gnu.org>
* config/rs6000/rs6000.c (rs6000_file_start): Note PPC405 erratum
in verbose_asm output.
* config/rs6000/rs6000.h (PPC405_ERRATUM77): Bracket with
CONFIG_PPC405CR.
* config.gcc (powerpc with_which): Define CONFIG_PPC405CR for
405cr.
2005-06-27 Jakub Jelinek <jakub@redhat.com>
* builtin-attrs.def (DEF_ATTR_FOR_INT): Add for 5 and 6.
(DEF_LIST_INT_INT): Add for 4,0, 4,5, 5,0, 5,6.
(ATTR_NOTHROW_NONNULL_4, ATTR_NOTHROW_NONNULL_5): Define.
(ATTR_FORMAT_PRINTF_4_0, ATTR_FORMAT_PRINTF_4_5,
ATTR_FORMAT_PRINTF_5_0, ATTR_FORMAT_PRINTF_5_6): Define.
* builtins.c: Include tree-flow.h.
(expand_builtin_mempcpy, expand_builtin_memmove): Comment fixes.
(expand_builtin_object_size, expand_builtin_memory_chk,
maybe_emit_chk_warning, maybe_emit_sprintf_chk_warning,
compute_object_offset, compute_builtin_object_size,
fold_builtin_object_size): New functions.
(expand_builtin): Handle BUILT_IN_OBJECT_SIZE and BUILT_IN_*_CHK.
(fold_builtin_1): Likewise. Handle BUILT_IN_{,V}{,F}PRINTF
and BUILT_IN_{,F}PRINTF_UNLOCKED.
(fold_builtin_memory_chk, fold_builtin_stxcpy_chk,
fold_builtin_strncpy_chk, fold_builtin_strcat_chk,
fold_builtin_strncat_chk, fold_builtin_sprintf_chk,
fold_builtin_snprintf_chk, fold_builtin_printf, fold_builtin_fprintf):
New functions.
* builtins.def (BUILT_IN_OBJECT_SIZE, BUILT_IN_MEMCPY_CHK,
BUILT_IN_MEMMOVE_CHK, BUILT_IN_MEMPCPY_CHK, BUILT_IN_MEMSET_CHK,
BUILT_IN_STPCPY_CHK, BUILT_IN_STRCAT_CHK, BUILT_IN_STRCPY_CHK,
BUILT_IN_STRNCAT_CHK, BUILT_IN_STRNCPY_CHK, BUILT_IN_SNPRINTF_CHK,
BUILT_IN_SPRINTF_CHK, BUILT_IN_VSNPRINTF_CHK, BUILT_IN_VSPRINTF_CHK,
BUILT_IN_FPRINTF_CHK, BUILT_IN_PRINTF_CHK, BUILT_IN_VFPRINTF_CHK,
BUILT_IN_VPRINTF_CHK): New builtins.
* builtin-types.def (DEF_FUNCTION_TYPE_5, DEF_FUNCTION_TYPE_VAR_4):
Document.
(BT_FN_SIZE_CONST_PTR_INT, BT_FN_INT_INT_CONST_STRING_VALIST_ARG,
BT_FN_PTR_PTR_CONST_PTR_SIZE_SIZE, BT_FN_PTR_PTR_INT_SIZE_SIZE,
BT_FN_STRING_STRING_CONST_STRING_SIZE_SIZE,
BT_FN_INT_FILEPTR_INT_CONST_STRING_VALIST_ARG,
BT_FN_INT_STRING_INT_SIZE_CONST_STRING_VALIST_ARG,
BT_FN_INT_STRING_SIZE_INT_SIZE_CONST_STRING_VALIST_ARG,
BT_FN_INT_INT_CONST_STRING_VAR, BT_FN_INT_FILEPTR_INT_CONST_STRING_VAR,
BT_FN_INT_STRING_INT_SIZE_CONST_STRING_VAR,
BT_FN_INT_STRING_SIZE_INT_SIZE_CONST_STRING_VAR): New types.
* c-common.c (DEF_FUNCTION_TYPE_5, DEF_FUNCTION_TYPE_6,
DEF_FUNCTION_TYPE_VAR_4, DEF_FUNCTION_TYPE_VAR_5): Define.
* Makefile.in (OBJS-common): Add tree-object-size.o.
(tree-object-size.o): Add dependencies.
* tree-pass.h (pass_object_sizes): Add.
* tree-optimize.c (init_tree_optimization_passes): Add
pass_object_sizes.
* tree-object-size.c: New file.
* tree.h (fold_builtin_memory_chk, fold_builtin_stxcpy_chk,
fold_builtin_strncpy_chk, fold_builtin_snprintf_chk,
compute_builtin_object_size, init_object_sizes, fini_object_sizes):
New prototypes.
* tree-ssa-ccp.c (get_strlen): Rename to ...
(get_maxval_strlen): ...this function. Handle also computing of maximum
string length and maximum integral value.
(ccp_fold_builtin): Handle BUILT_IN_*_CHK. Use get_maxval_strlen
instead of get_strlen. Pass CALLEE and ARGLIST variables to the
folding functions instead of computing them again.
(execute_fold_all_builtins): Retry ccp_fold_builtin if a builtin changed
into some other builtin.
* doc/extend.texi (Object Size Checking): Document.
* regrename.c (copy_value): Fix comment.
* toplev.c (process_options): Use if (FRAME_GROWS_DOWNWARD)
instead of preprocessor conditionals.
* targhooks.c (default_hidden_stack_protect_fail): Fall back to
default_external_stack_protect_fail if visibility is not supported
or not flag_pic.
* config/i386/i386.c (ix86_stack_protect_fail): New function.
(TARGET_STACK_PROTECT_FAIL): Define.
* config/i386/i386.md (stack_protect_si): Change CLOBBER into
SET to zero.
(stack_protect_di): Likewise. Use %k2 instead of %2 to avoid
invalid instruction xorl %rax, %rax.
2005-06-27 Richard Henderson <rth@redhat.com>
* c-cppbuiltin.c (c_cpp_builtins): Add __SSP_ALL__ and __SSP__.
* cfgexpand.c: Include params.h.
(has_protected_decls, has_short_buffer): New.
(expand_stack_vars): Take a predicate to determine what to expand.
(defer_stack_allocation): True when flag_stack_protect on.
(SPCT_HAS_LARGE_CHAR_ARRAY, SPCT_HAS_SMALL_CHAR_ARRAY): New.
(SPCT_HAS_ARRAY, SPCT_HAS_AGGREGATE): New.
(stack_protect_classify_type, stack_protect_decl_phase): New.
(stack_protect_decl_phase_1, stack_protect_decl_phase_2): New.
(add_stack_protection_conflicts, create_stack_guard): New.
(expand_used_vars): Add stack protection logic.
(tree_expand_cfg): Likewise.
* common.opt (Wstack-protector): New.
(fstack-protector, fstack-protector-all): New.
* function.c: Include predict.h.
(assign_parm_adjust_stack_rtl): Zap stack_parm when stack protect
wants to copy the parameter into the stack frame.
(stack_protect_prologue, stack_protect_epilogue): New.
(expand_function_end): Call stack_protect_epilogue. Do
sjlj_emit_function_exit_after after naked_return_label.
* function.h (struct function): Add stack_protect_guard.
* params.def (PARAM_SSP_BUFFER_SIZE): New.
* toplev.c (process_options): Disable flag_stack_protect and/or
warn_stack_protect based on FRAME_GROWS_DOWNWARD.
* tree.h (stack_protect_prologue): Declare.
* target-def.h (TARGET_STACK_PROTECT_GUARD): New.
(TARGET_STACK_PROTECT_FAIL): New.
(TARGET_INITIALIZER): Add them.
* target.h (struct gcc_target): Add stack_protect_guard and
stack_protect_fail.
* targhooks.c: Include ggc.h, gty header.
(stack_chk_guard_decl, default_stack_protect_guard): New.
(stack_chk_fail_decl, default_external_stack_protect_fail): New.
(default_hidden_stack_protect_fail): New.
* targhooks.h (default_stack_protect_guard): Declare.
(default_external_stack_protect_fail): Declare.
(default_hidden_stack_protect_fail): Declare.
* config/i386/i386.c (TARGET_STACK_PROTECT_FAIL): New.
* config/i386/i386.md (UNSPEC_SP_SET, UNSPEC_SP_TEST): New.
(trap): Use ud2.
(conditional_trap, conditional_trap_1): Remove.
(stack_protect_set, stack_protect_set_si, stack_protect_set_di): New.
(stack_protect_test, stack_protect_test_si, stack_protect_test_di): New.
* doc/md.texi (stack_protect_set, stack_protect_test): New.
* doc/tm.texi (TARGET_STACK_PROTECT_GUARD): New.
(TARGET_STACK_PROTECT_FAIL): New.
* libgcc-std.ver (GCC_4.1.0): New.
* libgcc.h (__stack_chk_guard): Declare.
(__stack_chk_fail, __stack_chk_fail_local): Declare.
* libgcc2.c (L_stack_chk, L_stack_chk_local): New.
* mklibgcc.in (lib2funcs): Add them.
2005-06-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
PR c/21911
* c-common.c (check_function_sentinel): Pass in named argument
list, skip over named arguments before looking for a sentinel.
(check_function_arguments): Pass in named argument list.
* c-common.h (check_function_arguments): Likewise.
* c-typeck.c (build_function_call): Likewise.
2005-06-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* genautomata.c (decl_mode_check_failed,
regexp_mode_check_failed): Add noreturn attribute.
2005-06-26 Kazu Hirata <kazu@codesourcery.com>
* cfg.c, tree-vect-transform.c, tree.def: Fix comment typos.
* doc/invoke.texi: Fix typos.
* builtins.c, c-common.c, c-convert.c, c-decl.c, c-typeck.c,
convert.c, lambda-code.c, predict.c, tree-cfg.c,
tree-complex.c, tree-data-ref.c, tree-if-conv.c,
tree-mudflap.c, tree-scalar-evolution.c, tree-ssa-ccp.c,
tree-ssa-loop-ivcanon.c, tree-ssa-loop-ivopts.c,
tree-ssa-loop-manip.c, tree-ssa-phiopt.c, tree-ssa-pre.c,
tree-vect-analyze.c, tree-vect-transform.c, tree-vectorizer.c,
tree.c: Use fold_buildN instead of fold (buildN (...)).
2005-06-26 Gerald Pfeifer <gerald@pfeifer.com>
* doc/install.texi (Specific): Do not specify the concrete
versions of GCC provided by Cygwin. Simplify the part on
building on Cygwin.
2005-06-26 Kazu Hirata <kazu@codesourcery.com>
* config/arc/arc-protos.c: Remove the prototype for
arc_finalize_pic.
* config/arc/arc.c (arc_finalize_pic): Remove.
* config/arc/arc.h (FINALIZE_PIC): Likewise.
* config/bfin/bfin.h (FINALIZE_PIC): Likewise.
* config/rs6000/rs6000.h (FINALIZE_PIC): Likewise.
2005-06-26 Jakub Jelinek <jakub@redhat.com>
PR middle-end/17965
* calls.c (expand_call, emit_library_call_value_1): Use xmalloc/free
instead of alloca for really big argument sizes.
PR middle-end/22028
* gimplify.c (gimplify_type_sizes): Check for type == error_mark_node
earlier in the function.
* regrename.c (copy_value): Don't replace fixed or global
regs with older regs.
* defaults.h (FRAME_GROWS_DOWNWARD): Define to 0 if not defined.
* function.c (get_func_frame_size): Use if (FRAME_GROWS_DOWNWARD)
instead of preprocessor conditionals.
(assign_stack_local_1, assign_stack_temp_for_type): Likewise.
* cfgexpand.c (FRAME_GROWS_DOWNWARD): Don't redefine to 1 or 0
depending on if it was or was not defined previously.
* doc/rtl.texi (VIRTUAL_STACK_VARS_REGNUM): Mention that only non-zero
definition of FRAME_GROWS_DOWNWARD means frame grows downward.
* doc/tm.texi (FRAME_GROWS_DOWNWARD): Likewise.
* config/m68hc11/m68hc11.h (FRAME_GROWS_DOWNWARD): Define to 0. Update
comment.
* config/pa/pa.h (FRAME_GROWS_DOWNWARD): Likewise.
* config/rs6000/rs6000.h (FRAME_GROWS_DOWNWARD): Likewise.
* config/stormy16/stormy16.h (FRAME_GROWS_DOWNWARD): Define to 0.
* config/c4x/c4x.h (FRAME_GROWS_DOWNWARD): Likewise.
* config/sh/sh.h (FRAME_GROWS_DOWNWARD): Likewise.
* config/ia64/ia64.h (FRAME_GROWS_DOWNWARD): Likewise.
* config/iq2000/iq2000.h (FRAME_GROWS_DOWNWARD): Likewise.
* config/pdp11/pdp11.h (FRAME_GROWS_DOWNWARD): Define to 1. Update
comment.
* config/i860/i860.h (FRAME_GROWS_DOWNWARD): Likewise.
* config/h8300/h8300.h (FRAME_GROWS_DOWNWARD): Likewise.
* config/arc/arc.h (FRAME_GROWS_DOWNWARD): Likewise.
* config/vax/vax.h (FRAME_GROWS_DOWNWARD): Likewise.
* config/sparc/sparc.h (FRAME_GROWS_DOWNWARD): Likewise.
* config/i386/i386.h (FRAME_GROWS_DOWNWARD): Likewise.
* config/fr30/fr30.h (FRAME_GROWS_DOWNWARD): Likewise.
* config/frv/frv.h (FRAME_GROWS_DOWNWARD): Likewise.
* config/mn10300/mn10300.h (FRAME_GROWS_DOWNWARD): Likewise.
* config/bfin/bfin.h (FRAME_GROWS_DOWNWARD): Likewise.
* config/ns32k/ns32k.h (FRAME_GROWS_DOWNWARD): Likewise.
* config/v850/v850.h (FRAME_GROWS_DOWNWARD): Likewise.
* config/alpha/alpha.h (FRAME_GROWS_DOWNWARD): Update comment.
* config/s390/s390.h (FRAME_GROWS_DOWNWARD): Likewise.
* config/arm/arm.h (FRAME_GROWS_DOWNWARD): Likewise.
* config/alpha/unicosmk.h (FRAME_GROWS_DOWNWARD): Define to 1.
* config/cris/cris.h (FRAME_GROWS_DOWNWARD): Likewise.
* config/m68k/m68k.h (FRAME_GROWS_DOWNWARD): Likewise.
* config/mmix/mmix.h (FRAME_GROWS_DOWNWARD): Likewise.
2005-06-26 Kazu Hirata <kazu@codesourcery.com>
PR tree-optimization/22026
* tree-vrp.c (extract_range_from_binary_expr): Drop to
VR_VARYING if a binary expression involving VR_ANTI_RANGE is
PLUS_EXPR, MINUS_EXPR, or unsigned MULT_EXPR.
2005-06-26 Kazu Hirata <kazu@codesourcery.com>
* Makefile.in (OBJS-common): Remove duplicate object file
names.
2005-06-25 Jan Hubicka <jh@suse.cz>
* tree-ssa-phiopt.c (replace_phi_edge_with_variable): Update profile.
* cfg.c (update_bb_profile_for_threading): Fix rescaling.
* passes.c (rest_of_handle_branch_prob): Do not rebuild profiling info
when not neecesary
(rest_of_compilation): Fix conditional on branch prob pass.
* predict.c (tree_estimate_probability): Enable strip_builtin_expect
when not loop optimizing.
2005-06-25 Bernd Schmidt <bernd.schmidt@analog.com>
* config/bfin/bfin.md (ror_one, rol_one, ashrdi3, ashldi3, lshrdi3):
New patterns.
(movbi): Add alternative to set CC to zero.
(compare_eq, compare_ne, compare_le, compare_lt, compare_leu,
compare_ltu): Now named patterns.
2005-06-25 Kelley Cook <kcook@gcc.gnu.org>
* all files: Update FSF address in copyright headers.
2005-06-25 Kelley Cook <kcook@gcc.gnu.org>
* gengtype.c: Update FSF address in copyright header.
(create_file): Update FSF in outputed copyright header.
2005-06-24 Kazu Hirata <kazu@codesourcery.com>
* cfglayout.c (block_locators_locs, line_locators_locs,
line_locators_lines, file_locators_locs): Change the type to
VEC(int,heap)*.
(insn_locators_initialize, change_scope, insn_scope,
locator_line, insn_line, locator_file): Use VEC instead of
VARRAY.
2005-06-24 Jason Merrill <jason@redhat.com>
* tree-nrv.c (tree_nrv): Fix to check assignments to the
RESULT_DECL rather than just RETURN_EXPRs.
(finalize_nrv_r): Adjust.
2005-06-24 Jan Hubicka <jh@suse.cz>
* tree-optimize.c (init_tree_optimization_passes): Fix flags of
all_passes and all_ipa_passes.
* c-common.c: Include cgraph.h
(handle_externally_visible_attribute): New function.
(c_common_att): Add "externally_visible" attribute.
* cgraph.c (decide_is_variable_needed): Obey externally
visible flag.
(cgraph_varpool_finalize_decl): Avoid redundant checking.
* cgraph.h (struct cgraph_node): New flag externally_visible.
(decide_is_function_needed): Obey externally visible flag.
(cgraph_finalize_function): Avoid redundant checks.
(cgraph_function_and_variable_visibility): Bring symbols local
when asked for.
* common.opt (fwhole-program): New flag.
* doc/invoke.texi (-fwhole-program): Document.
2005-06-24 Mark Mitchell <mark@codesourcery.com>
PR 22171
* tree-ssa-operands.c (get_expr_operands): Check s_ann for NULL
before use.
2005-06-23 Mark Mitchell <mark@codesourcery.com>
PR 22000
* tree-ssa-operands.c (get_expr_operands): Check the volatility of
the FIELD_DECL and set s_ann->has_volatile_ops accordingly.
2005-06-24 Jan Hubicka <jh@suse.cz>
* opts.c (decode_options): Enable unit-at-a-time by default at -O1.
2005-06-23 Jeff Law <law@redhat.com>
* tree-optimize.c (init_tree_optimization_passes): Move
copy prop pass to run just before VRP.
* tree-vrp.c (remove_range_assertions): Remove copies created
by ASSERT_EXPR removal.
2005-06-23 Kazu Hirata <kazu@codesourcery.com>
PR tree-optimization/22117
* tree-vrp.c (extract_range_from_binary_expr): Compute a
correct range when adding two pointers.
2005-06-23 Jason Merrill <jason@redhat.com>
PR c++/19317
Leave the return slot target in the MODIFY_EXPR rather than making
it an argument, but only use it if the CALL_EXPR has a flag set.
* tree.h (CALL_EXPR_HAS_RETURN_SLOT_ADDR): Rename to
CALL_EXPR_RETURN_SLOT_OPT.
* calls.c (expand_call): Adjust.
* tree-inline.c (expand_call_inline): Adjust.
* tree-pretty-print.c (dump_generic_node): Adjust.
And set the flag as appropriate.
* gimplify.c (gimplify_modify_expr_rhs): Set
CALL_EXPR_HAS_RETURN_SLOT_ADDR where the LHS is obviously safe.
* tree-nrv.c (execute_return_slot_opt): Set
CALL_EXPR_HAS_RETURN_SLOT_ADDR based on escape analysis.
* tree-pass.h: Declare pass_return_slot.
* tree-optimize.c (init_tree_optimization_passes): Add it.
2005-06-23 David Edelsohn <edelsohn@gnu.org>
PR target/21760
* config/rs6000/rs6000.h (PPC405_ERRATUM77): New.
* config/rs6000/rs6000.md: Move atomic instructions to ...
* config/rs6000/sync.md: Here.
Change sync_compare_and_swap<mode> to define_expand. All stwcx
patterns test PPC405_ERRATUM77.
2005-06-23 Jan Hubicka <jh@suse.cz>
* tree-inline.c (copy_body_r): Remap labels correctly.
2005-06-22 Alan Modra <amodra@bigpond.net.au>
* config/rs6000/sysv4.h (TARGET_ASM_EXCEPTION_SECTION): Delete.
2005-06-22 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
PR middle-end/20593
* varasm.c (compute_reloc_for_constant): Treat VIEW_CONVER_EXPR
the same as the other cast operands.
(output_addressed_constants): Likewise.
2005-06-21 Jeff Law <law@redhat.com>
* tree-vrp.c (extract_range_from_unary_expr): Handle type
conversions better.
2005-06-21 Dorit Nuzman <dorit@il.ibm.com>
* genopinit.c (vec_shl_optab, vec_shr_optab): Initialize new optabs.
(reduc_plus_optab): Removed. Replcaed with...
(reduc_splus_optab, reduc_uplus_optab): Initialize new optabs.
* optabs.c (optab_for_tree_code): Return reduc_splus_optab or
reduc_uplus_optab instead of reduc_plus_optab.
(expand_vec_shift_expr): New function.
(init_optabs): Initialize new optabs. Remove initialization of
reduc_plus_optab.
(optab_for_tree_code): Return vec_shl_optab/vec_shr_optab
for VEC_LSHIFT_EXPR/VEC_RSHIFT_EXPR.
* optabs.h (OTI_reduc_plus): Removed. Replaced with...
(OTI_reduc_splus, OTI_reduc_uplus): New.
(reduc_plus_optab): Removed. Replcaed with...
(reduc_splus_optab, reduc_uplus_optab): New optabs.
(vec_shl_optab, vec_shr_optab): New optabs.
(expand_vec_shift_expr): New function declaration.
* tree.def (VEC_LSHIFT_EXPR, VEC_RSHIFT_EXPR): New tree-codes.
* tree-inline.c (estimate_num_insns_1): Handle new tree-codes.
* expr.c (expand_expr_real_1): Handle new tree-codes.
* tree-pretty-print.c (dump_generic_node, op_symbol, op_prio): Likewise.
* tree-vect-generic.c (expand_vector_operations_1): Add assert.
* tree-vect-transform.c (vect_create_epilog_for_reduction): Add two
alternatives for generating reduction epilog code.
(vectorizable_reduction): Don't fail of direct reduction support is
not available.
(vectorizable_target_reduction_pattern): Likewise.
* config/rs6000/altivec.md (reduc_smax_v4si, reduc_smax_v4sf,
reduc_umax_v4si, reduc_smin_v4si, reduc_smin_v4sf, reduc_umin_v4si,
reduc_plus_v4si, reduc_plus_v4sf): Removed.
(vec_shl_<mode>, vec_shr_<mode>, altivec_vsumsws_nomode,
reduc_splus_<mode>, reduc_uplus_v16qi): New.
2005-06-20 Daniel Berlin <dberlin@dberlin.org>
* c-typeck.c (build_function_call): Set fundecl = function again.
* tree-ssa-alias.c (find_used_portions): Address taking causes the
entire variable to be used.
* tree-ssa-structalias.c (do_structure_copy): Fix handling of
unknown size variables, and structure copies from addressof
operations. Simplify how we do *a = *b type structure copies.
(init_base_vars): Add ANYTHING = &ANYTHING constraint the right
way. READONLY's address is not taken by default.
INTEGER dereference should point to anything.
(create_variable_info_for): It's okay for the first field to not start
at 0.
2005-06-20 Kaz Kojima <kkojima@gcc.gnu.org>
config/sh/linux.h (FUNCTION_PROFILER): Constify a char*.
2005-06-20 Roger Sayle <roger@eyesopen.com>
Fariborz Jahanian <fjahanian@apple.com>
* combine.c (simplify_set): Simplify setting of CC register
by removing redundant compare with 0 on RHS.
2005-06-20 Jan Beulich <jbeulich@novell.com>
* config/i386/netware-libgcc.def: Update copyright.
* config/i386/netware-libgcc.exp (__divdc3, __divsc3, __divxc3,
__muldc3, __mulsc3, __mulxc3, __powidf2, __powisf2, __powixf2): Add.
* config/i386/netware.c (gen_stdcall_decoration,
gen_fastd_decoration): Merge into ...
(gen_stdcall_or_fastcall_decoration): ... this. Adjust to match
WinNT's changes.
(gen_regparm_prefix): Adjust to match i386_nlm_encode_section_info.
(i386_nlm_encode_section_info): Adjust to match WinNT's changes.
* config/i386/t-nwld (SHLIB_LINK): Also create libgcc.imp alias of
libgcc_s.imp. Use 'expr' rather than $(()) shell expressions.
* gthr-nks.h (__gthread_objc_mutex_allocate): Kill another dubious
use of NX_MUTEX_RECURSIVE.
2005-06-19 Roger Sayle <roger@eyesopen.com>
* fold-const.c (swap_tree_comparison): Add support for unordered
floating point comparisons.
* tree-vrp.c (opposite_comparison): Delete.
(extract_range_from_assert): Replace calls to opposite_comparison
with calls to swap_tree_comparison.
(register_edge_assert_for): Likewise.
(vrp_evaluate_conditional): Likewise.
2005-06-20 Kaz Kojima <kkojima@gcc.gnu.org>
* integrate.c (allocate_initial_values): Update the references
to global_live_at_start and global_live_at_end.
2005-06-20 Jan Hubicka <jh@suse.cz>
* cfgloop.h (DLTHE_RECORD_COPY_NUMBER): New flag.
* cfgloopmanip.c (duplicate_loop_to_header_edge): Set aux flags only
when asked for.
* loop-unroll.c (peel_loop_completely, unroll_loop_constant_iterations,
unroll_loop_runtime_iterations, peel_loop_simple, unroll_loop_stupid):
Update call of duplicate_loop_to_header_edge.
(apply_opt_in_copies): Clear out aux pointers.
2005-06-19 Joseph S. Myers <joseph@codesourcery.com>
* config/i386/i386.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Define.
(ix86_mangle_fundamental_type): New.
* config/ia64/ia64.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Define.
(ia64_mangle_fundamental_type): New.
2005-06-19 Roger Sayle <roger@eyesopen.com>
* c-decl.c (grokdeclarator): Only check TREE_OVERFLOW on
INTEGER_CST nodes.
* c-typeck.c (build_c_cast): Only preserve TREE_OVERFLOW on
CONSTANT_CLASS_P nodes.
2005-06-19 Richard Henderson <rth@redhat.com>
* config/ia64/vect.md (vec_extractv2sf_1): Fix cut-and-paste error;
the shift is always required.
2005-06-19 Richard Henderson <rth@redhat.com>
* config/ia64/ia64-modes.def (V4SF): Add.
* config/ia64/ia64.c (ia64_legitimate_constant_p): Handle CONST_VECTOR.
* config/ia64/ia64.h (CANNOT_CHANGE_MODE_CLASS): Allow vector to
integer mode changes in fp regs.
* config/ia64/ia64.md (UNSPEC_VECT_EXTR): New.
* config/ia64/vect.md (smaxv2sf3, sminv2sf3): Fix typos in names.
(reduc_plus_v2sf, reduc_smax_v2sf, reduc_smin_v2sf): New.
(vcondv2sf): Use gen_fpack
(fpack): Remove * from name.
(fswap, fmix_l, fmix_r, fmix_lr): New.
(vec_setv2sf, vec_extractv2sf_0_le, vec_extractv2sf_0_be): New.
(vec_extractv2sf_1, vec_extractv2sf): New.
2005-06-19 Andreas Krebbel <krebbel1@de.ibm.com>
* combine.c (make_compound_operation): Use simplify_subreg. Delete
a optimization already done by simplify_subreg.
2005-06-19 Ulrich Weigand <uweigand@de.ibm.com>
* loop.c (scan_loop): Do not consider insns setting the frame
pointer to be candidates for hoisting.
2005-06-19 Uros Bizjak <uros@kss-loka.si>
* config/i386/i386.md (*cmpfp_0_sf, *cmpfp_0_df, cmpfp_0_xf):
Remove instruction patterns.
(*cmpfp_0): New instruction pattern. Set "unit" attribute to "i387".
(*cmpfp_sf, *cmpfp_df, *cmpfp_xf, *cmpfp_u, *_cmpfp_<mode>):
Set "unit" attribute to "i387".
(*pushsf, *pushsf_rex64, *pushdf_nointeger, *pushdf_integer)
(*pushxf_nointeger, *pushxf_integer): Set "unit" attribute to "i387"
for alternative 0.
(*truncdfsf_mixed, *truncdfsf_i387, *truncxfsf2_mixed)
(*truncxfsf2_i387, *truncxfdf2_mixed, *truncxfdf2_i387): Set "unit"
attribute to "i387" when "type" attribute equals "multi".
(*floathisf2_i387, *floatsisf2_mixed, *floatsisf2_i387)
(*floatdisf2_mixed, *floatdisf2_i387, *floathidf2_i387)
(*floatsidf2_mixed, *floatsidf2_i387, *floatdidf2_mixed)
(*floatdidf2_i387, floathixf2, floatsixf2, floatdixf2): Set "unit"
attribute to "i387" when "type" attribute equals "multi".
* config/i386/mmx.md (*mov<mode>_internal_rex64)
(*mov<mode>_internal, *movv2sf_internal_rex64, *movv2sf_internal):
Set "unit" attribute to "mmx" when "type" attribute equals "ssecvt".
(mmx_pmovmskb): Correct wrong "type" and "mode" attributes.
* config/i386/sse.md (sse_cvtps2pi, sse_cvttps2pi, sse_cvtpd2di)
(sse_cvttpd2pi): Set "unit" attribute to "mmx".
(sse2_cvtpi2pd): Split register constraints. Set "unit" attribute
to "mmx" for "y" operand 1.
2005-06-19 Uros Bizjak <uros@kss-loka.si>
* config/i386/i386.c (ix86_function_arg_regno_p): Add MMX_REGNO_P
for TARGET_MMX. Use MMX_REGPARM_MAX and SSE_REGPARM_MAX for MMX
and SSE registers to determine if regno is valid.
(ix86_function_value_regno_p): Depend FIRST_FLOAT_REG on
TARGET_FLOAT_RETURNS_IN_80387 also for TARGET_64BIT. Clean up.
2005-06-18 Richard Henderson <rth@redhat.com>
* tree-complex.c (init_dont_simulate_again): Clear DONT_SIMULATE_AGAIN
for control-altering statements; set it again for returns.
(complex_visit_stmt): Return SSA_PROP_VARYING for stmts that are
not MODIFY_EXPR.
2005-06-18 Richard Henderson <rth@redhat.com>
PR tree-opt/22116
* tree-ssa-pre.c (create_expression_by_pieces): Set
DECL_COMPLEX_GIMPLE_REG_P.
(insert_into_preds_of_block): Likewise.
2005-06-18 Steven Bosscher <stevenb@suse.de>
* Makefile.in: Fix tree-cfgcleanup.c dependencies.
2005-06-18 Richard Henderson <rth@redhat.com>
* expr.c (store_constructor): Use store of 0 to indicate value
death instead of a clobber.
* config/i386/i386.c (ix86_expand_reduc_v4sf): New.
* config/i386/i386-protos.h (ix86_expand_reduc_v4sf): Declare.
* config/i386/sse.md (reduc_plus_v4sf): New.
(reduc_smax_v4sf, reduc_smin_v4sf): New.
2005-06-18 James A. Morrison <phython@gcc.gnu.org>
* fold_const (fold_binary): Fold X % (2**N) to X & (2**N - 1) for
nonnegative values of X.
2005-06-18 Uros Bizjak <uros@kss-loka.si>
* doc/md.texi (Standard Names): Change insn pattern name
from truncM2 to btruncM2 for 'trunc' built-in description.
Add rintM2 insn pattern description.
2005-06-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* c-decl.c (locate_old_decl): Add format attribute.
(implicit_decl_warning): Likewise.
* diagnostic.h (verbatim): Move ...
* toplev.h (verbatim): ... here. Add ATTRIBUTE_GCC_DIAG.
* pretty-print.h (pp_verbatim): Add ATTRIBUTE_GCC_PPDIAG.
2005-06-18 Roger Sayle <roger@eyesopen.com>
PR target/22083
* config/rs6000/aix51.h (TARGET_C99_FUNCTIONS): Remove definition.
2005-06-18 Dorit Nuzman <dorit@il.ibm.com>
* tree.def (REDUC_MAX_EXPR, REDUC_MIN_EXPR, REDUC_PLUS_EXPR): New
tree-codes.
* optabs.h (OTI_reduc_smax, OTI_reduc_umax, OTI_reduc_smin,
OTI_reduc_umin, OTI_reduc_plus): New optabs for reduction.
(reduc_smax_optab, reduc_umax_optab, reduc_smin_optab, reduc_umin_optab,
reduc_plus_optab): New optabs for reduction.
* expr.c (expand_expr_real_1): Handle new tree-codes.
* tree-inline.c (estimate_num_insns_1): Handle new tree-codes.
* tree-pretty-print.c (dump_generic_node, op_prio, op_symbol): Handle
new tree-codes.
* optabs.c (optab_for_tree_code): Handle new tree-codes.
(init_optabs): Initialize new optabs.
* genopinit.c (optabs): Define handlers for new optabs.
* tree-vect-analyze.c (vect_analyze_operations): Fail vectorization in
case of a phi that is marked as relevant. Call vectorizable_reduction.
(vect_mark_relevant): Phis may be marked as relevant.
(vect_mark_stmts_to_be_vectorized): The use corresponding to the
reduction variable in a reduction stmt does not mark its defining phi
as relevant. Update documentation accordingly.
(vect_can_advance_ivs_p): Skip reduction phis.
* tree-vect-transform.c (vect_get_vec_def_for_operand): Takes
additional argument. Handle reduction.
(vect_create_destination_var): Update call to vect_get_new_vect_var.
Handle non-vector argument.
(get_initial_def_for_reduction): New function.
(vect_create_epilog_for_reduction): New function.
(vectorizable_reduction): New function.
(vect_get_new_vect_var): Handle new vect_var_kind.
(vectorizable_assignment, vectorizable_operation, vectorizable_store,
vectorizable_condition): Update call to vect_get_new_vect_var.
(vect_transform_stmt): Call vectorizable_reduction.
(vect_update_ivs_after_vectorizer): Skip reduction phis.
(vect_transform_loop): Skip if stmt is both not relevant and not live.
* tree-vectorizer.c (reduction_code_for_scalar_code): New function.
(vect_is_simple_reduction): Was empty - added implementation.
* tree-vectorizer.h (vect_scalar_var): New enum vect_var_kind value.
(reduc_vec_info_type): New enum vect_def_type value.
* config/rs6000/altivec.md (reduc_smax_v4si, reduc_smax_v4sf,
reduc_umax_v4si, reduc_smin_v4si, reduc_umin_v4sf, reduc_smin_v4sf,
reduc_plus_v4si, reduc_plus_v4sf): New define_expands.
* tree-vect-analyze.c (vect_determine_vectorization_factor): Remove
ENABLE_CHECKING around gcc_assert.
* tree-vect-transform.c (vect_do_peeling_for_loop_bound,
(vect_do_peeling_for_alignment, vect_transform_loop,
vect_get_vec_def_for_operand): Likewise.
2005-06-18 Joseph S. Myers <joseph@codesourcery.com>
* config/ia64/ia64.c (ia64_function_arg): Set up a PARALLEL for a
big-endian unnamed __float80 value.
2005-06-18 Richard Henderson <rth@redhat.com>
PR tree-opt/22103
* tree-sra.c (generate_copy_inout): Handle SSA_NAME complex
destinations.
2005-06-17 Richard Henderson <rth@redhat.com>
* tree-vect-transform.c (vect_do_peeling_for_loop_bound): Use
initialize_original_copy_tables and free_original_copy_tables.
(vect_do_peeling_for_alignment): Likewise.
2005-06-17 Pat Haugen <pthaugen@us.ibm.com>
* bb-reorder.c (find_traces_1_round): Use succ block frequency
instead of edge frequency for calls to better_edge_p.
2005-06-17 Andrew Pinski <pinskia@physics.uc.edu>
PR tree-opt/22105
* tree-ssa-loop-im.c (for_each_index): Handle COMPLEX_CST.
2005-06-17 Steve Ellcey <sje@cup.hp.com>
PR target/19889
* config/ia64/hpux.h (FUNCTION_PROFILER): New (dummy).
(PROFILE_HOOK): New.
(PROFILE_BEFORE_PROLOGUE): Undef.
(NO_PROFILE_COUNTERS): New.
* config/ia64/ia64-protos.h (ia64_profile_hook): New.
* config/ia64/ia64.c (ia64_compute_frame_size): Add ifdef.
(gen_mcount_func_rtx): New.
(ia64_profile_hook): New.
* config/ia64/ia64.md (ip_value): New.
2005-06-17 Devang Patel <dpatel@apple.com>
* config/rs6000/predicates.md (s5bit_cint_operand,
u5bit_cint_operand): New.
* config/rs6000/altivec.md (altivec_vspltb, altivec_vsplth,
altivec_vspltisw_v4sf): Use new 5 bit constant operand predicates.
* config/rs6000/rs6000.c (rs6000_expand_unop_builtin): Fix signed
5 bit constant check.
2005-06-17 Richard Henderson <rth@redhat.com>
* local-alloc.c (update_equiv_regs): Update reg_equiv_init
properly when moving an initialization insn.
2005-06-17 Paolo Bonzini <bonzini@gnu.org>
* aclocal.m4 (gcc_AC_CHECK_TOOL): Do not overwrite the
passed variable.
* configure.ac: Regenerate.
2005-06-17 Jan Hubicka <jh@suse.cz>
* tree-optimize.c (execute_ipa_pass_list): New.
(ipa_passes): Use it.
2005-06-16 Richard Henderson <rth@redhat.com>
PR tree-opt/22022
* tree-complex.c (update_phi_components): Avoid no-op moves.
2005-06-16 Joseph S. Myers <joseph@codesourcery.com>
* Makefile.in (cc1-checksum.c): Use
build/genchecksum$(build_exeext), not build/genchecksum$(exeext).
2005-06-16 Geoffrey Keating <geoffk@apple.com>
* gengtype.c (adjust_field_rtx_def): Don't add a skip to
basic_block types.
* config/t-slibgcc-darwin (SHLIB_SOVERSION): Rename from
SHLIB_MINOR.
(SHLIB_REVISION): Delete.
(SHLIB_VERSTRING): Update to compensate.
(SHLIB_SONAME): Just use one '.' in the name.
2005-06-16 Eric Botcazou <ebotcazou@libertysurf.fr>
PR tree-optimization/22018
* tree-vrp.c (vrp_int_const_binop): Overhaul handling of overflow.
2005-06-16 Richard Henderson <rth@redhat.com>
PR tree-opt/22035
* builtins.c (fold_builtin_complex_mul): Remove.
(fold_builtin_complex_div): Remove.
(fold_builtin_1): Don't call them.
* fold-const.c (fold_complex_add, fold_complex_mult_parts,
fold_complex_mult, fold_complex_div_parts, fold_complex_div): Remove.
(fold_binary): Don't call them. Don't expand complex comparisons to
elementary comparisons.
* tree-complex.c (init_dont_simulate_again): Enhance search for
stmts that require decomposition.
(complex_visit_stmt): Handle RETURN_EXPR properly.
(create_components): Handle no referenced variables properly.
* tree.h (fold_complex_mult_parts): Remove.
(fold_complex_div_parts): Remove.
2005-06-16 Richard Guenther <rguenth@gcc.gnu.org>
* doc/extend.texi: Document sseregparm target attribute.
Clarify fastcall and regparm documentation.
* config/i386/i386.h: Adjust float_in_sse documentation.
* config/i386/i386.c: Add new target attribute sseregparm.
(ix86_handle_cdecl_attribute, ix86_handle_regparm_attribute):
Merge into ...
(ix86_handle_cconv_attribute): ... here. Also handle
sseregparm attribute.
(ix86_comp_type_attributes): Compare sseregparm attributes.
(ix86_function_sseregparm): New function, split out from ...
(init_cumulative_args): ... here. Use to decide use
of SSE registers and error in case of missing support.
(ix86_value_regno): Likewise.
(function_arg_advance): Do not bail out for DFmode if we need
to pass doubles in registers.
(function_arg): Likewise.
2005-06-16 Paolo Bonzini <bonzini@gnu.org>
Daniel Jacobowitz <dan@codesourcery.com>
Alan Modra <amodra.bigpond.net.au>
* configure.ac (gcc_version): Set near the beginning.
(as, ld, nm): Do not link in-tree tools. Set gcc_cv_* if tools are
found in the tree. Use gcc_AC_PROG to find the tools in the system.
(objdump): Do not look for it.
* Makefile.in (NM_FOR_TARGET): Point to ./nm
(ORIGINAL_AS_FOR_TARGET, ORIGINAL_LD_FOR_TARGET,
ORIGINAL_NM_FOR_TARGET): Substitute from autoconf.
(as, ld, nm): New rules.
(libgcc.mk): Depend on them.
* aclocal.m4 (gcc_AC_TOOL_DIRS, gcc_AC_CHECK_TOOL,
gcc_AC_BUILD_EXEEXT): New.
(gcc_AC_CHECK_PROG_VER): Use gcc_AC_BUILD_EXEEXT.
* configure: Regenerate.
2005-06-16 Jan Hubicka <jh@suse.cz>
* basic-block.h (rtl_bb_info): Break out head_, end_,
global_live_at_start, global_live_at_end from ...
(basic_block_def): ... here; update all references
(BB_RTL): New flag.
(init_rtl_bb_info): Declare.
* cfgexpand.c (expand_gimple_basic_block): Init bb info, set BB_RTL
flag.
* cfgrtl.c: Include ggc.h
(create_basic_block_structure): Init bb info.
(rtl_verify_flow_info_1): Check BB_RTL flag and rtl_bb_info pointer.
(init_rtl_bb_info): New function.
(rtl_merge_block, cfglayout_merge_block): Copy global_live_at_end here.
* cfghooks.c (merge_block): Do not copy global_live_at_end here.
* cfg.c (clear_bb_flags): Skip BB_RTL flag.
(dump_flow_info): Gueard global_live_* dumping.
* Makefile.in (cfg.o): Add new dependencies.
* basic-block.h (reorder_block_def): Kill
original/copy/duplicated/copy_number fields.
(BB_DUPLICATED): New flag.
(initialize_original_copy_tables, free_original_copy_tables,
set_bb_original, get_bb_original, set_bb_copy, get_bb_copy): New.
* cfg.c: Include hashtab.h and alloc-pool.h
(bb_original, bb_copy, original_copy_bb_pool): New static vars.
(htab_bb_copy_original_entry): New struct.
(bb_copy_original_hash, bb_copy_original_eq): New static functions.
(initialize_original_copy_tables, free_original_copy_tables,
set_bb_original, get_bb_original, set_bb_copy, get_bb_copy): New
global functions.
* cfghooks.c (duplicate_block): Update original/copy handling.
* cfglayout.c (fixup_reorder_chain): Likewise.
(cfg_layout_initialize): Initialize orignal_copy tables.
(cfg_layout_finalize): FInalize original_copy tables.
(can_copy_bbs_p): Use BB_DUPLICATED flag.
(copy_bbs): Likewise.
* cfgloopmanip.c (update-single_exits_after_duplication): Likewise.
(duplicate_loop_to_header_edge): Likewise; update handling of
copy_number.
(loop_version): Likewise.
* dominance.c (get_dominated_by_region): Use BB_DUPLICATED_FLAG.
* except.c (expand_resx_expr): Check that reg->resume is not set.
* loop-unroll.c (unroll_loop_constant_iterations,
unroll_loop_runtime_iterations, apply_opt_in_copies): Update
copy/original handling.
* loop-unwitch.c (unswitch_loop): Likewise.
* tree-cfg.c (create_bb): Do not initialize RBI.
(disband_implicit_edges): Do not kill RBI.
(add_phi_args_after_copy_bb): Use new original/copy mapping.
(add_phi_args_after_copy): Use BB_DUPLICATED flag.
(tree_duplicate_sese_region): Update original/copy handling.
* tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Likewise.
* tree-ssa-loop-manip.c (copy_phi_node_args): Likewise.
* tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Likewise.
2005-06-15 Andrew Pinski <pinskia@physics.uc.edu>
PR tree-opt/21923
* tree-ssa.c (tree_ssa_useless_type_conversion_1): Conversions between
integer types whos ranges are different are not useless.
2005-06-15 Andrew Pinski <pinskia@physics.uc.edu>
PR tree-opt/22024
* tree-ssa-reassoc.c (init_reassoc): Also give chain decl a distint
rank.
2005-06-15 Diego Novillo <dnovillo@redhat.com>
* tree-ssa-structalias.c (dump_solution_for_var): Reformat
output.
(dump_sa_points_to_info): Make extern.
(debug_sa_points_to_info): New.
* tree-ssa-structalias.h (TREE_SSA_STRUCTALIAS_H): Rename from
TREE_ALIAS_COMMON.
(dump_sa_points_to_info): Declare.
(debug_sa_points_to_info): Declare.
2005-06-15 Joseph S. Myers <joseph@codesourcery.com>
* c-tree.h (default_function_array_conversion): Declare.
* c-typeck.c (default_function_array_conversion): Export. Correct
comment.
(default_conversion): Do not call
default_function_array_conversion. Do not allow FUNCTION_TYPE.
(build_function_call): Call default_function_array_conversion on
the function.
(convert_arguments): Do not call it on the function arguments.
(build_unary_op): Do not allow ARRAY_TYPE or FUNCTION_TYPE for
TRUTH_NOT_EXPR. Call default_function_array_conversion for taking
address of ARRAY_REF.
(build_compound_expr): Do not call
default_function_array_conversion.
(build_c_cast): Do not call default_function_array_conversion.
(convert_for_assignment): Do not call default_conversion.
(digest_init): Call default_function_array_conversion to convert
string constants and compound literals to pointers, but not
otherwise.
(output_init_element): Likewise.
(build_asm_expr): Do not call default_function_array_conversion.
(c_process_expr_stmt): Likewise.
(c_objc_common_truthvalue_conversion): Likewise. Do not allow
FUNCTION_TYPE.
* c-parser.c (c_parser_expression_conv): New.
(c_parser_asm_operands, c_parser_expr_list): Add convert_p
argument. All callers changed. Call
default_function_array_conversion if convert_p.
(c_parser_initializer, c_parser_initval): Call
default_function_array_conversion except for string constants and
compound literals.
(c_parser_initelt): Call default_function_array_conversion for
ObjC expression received.
(c_parser_statement_after_labels): Call c_parser_expression_conv
for return and expression statements.
(c_parser_paren_condition, c_parser_for_statement,
c_parser_conditional_expression): Call c_parser_expression_conv.
(c_parser_expr_no_commas, c_parser_conditional_expression,
c_parser_binary_expression, c_parser_cast_expression,
c_parser_unary_expression): Call
default_function_array_conversion.
2005-06-15 Diego Novillo <dnovillo@redhat.com>
* tree-vrp.c (vrp_int_const_binop): Do not handle MAX_EXPR
when the result overflows.
2005-06-15 David Ung <davidu@mips.com>
* config/mips/mips.c (mips_rtx_cost_data): Add cost for 4kc, 4kp,
24k and 24kx.
2005-06-15 Richard Sandiford <richard@codesourcery.com>
* doc/invoke.texi (-mips16): Fix typo.
2005-06-15 David Ung <davidu@mips.com>
* config/mips/mips.h (GENERATE_MIPS16E): New definition.
* config/mips/mips.md (zero_extend<SHORT:mode><GPR:mode>2):
Changed expand condition to exclude generating of "and" if
GENERATE_MIPS16E is true.
(*zero_extend<SHORT:mode><GPR:mode>2_mips16e): New pattern for
matching mips16e zeb/zeh.
(*extend<SHORT:mode><GPR:mode>2_mips16e): New pattern for matching
mips16e seb/seh.
(*extend<SHORT:mode><GPR:mode>2): Disable this pattern for
GENERATE_MIPS16E.
* doc/invoke.texi (MIPS Options): Add comment to -mips16
indicating MIPS16e ASE is used if targetting for MIPS32 or MIPS64.
2005-06-15 Diego Novillo <dnovillo@redhat.com>
PR 22018
* tree-vrp.c (vrp_int_const_binop): New.
(extract_range_from_binary_expr): Call it.
Unify handling division and multiplication.
2005-06-15 Aldy Hernandez <aldyh@redhat.com>
* c-common.h (same_scalar_type_ignoring_signedness): Protoize.
* c-common.c (same_scalar_type_ignoring_signedness): New.
* c-typeck.c (build_binary_op): Check compatability of vector
types. Move error report after switch.
Do not clobber code[01] on *_DIV_EXPR case.
* testsuite/gcc.dg/simd-1.c: Update error messages.
* testsuite/gcc.dg/simd-1b.c: Re-enable tests. Update error
messages.
* testsuite/gcc.dg/simd-2.c: Update error messages.
* testsuite/gcc.dg/simd-4.c: New.
2005-06-15 Bernd Schmidt <bernd.schmidt@analog.com>
* Makefile.in (local-alloc.o): Depend on $(GGC_H) and reload.h.
* local-alloc.c: Include "ggc.h" and "reload.h".
(struct equivalence): New member is_arg_equivalence.
(local_alloc): Always call update_equiv_regs.
(update_equiv_regs): Allocate reg_equiv_init; set reg_equiv_init_size.
Detect equivalences made by stores to memory in a second pass.
Return early if not optimizing.
Initialize reg_equiv_init for all equivalences; treat equivalences for
REG_EQUIV notes existing before this pass specially.
(no_equiv): Don't clear reg_equiv_init or remove notes if the
is_arg_equivalence field is set.
* reload.h (reg_equiv_init, reg_equiv_init_size): Declare.
* reload1.c (reg_equiv_init): No longer static.
(reg_equiv_init_size): New variable.
(reload): Don't allocate reg_equiv_init; don't free it when done but
clear it.
Restructure equivalence set up code not to set reg_equiv_init, but to
clear it when we can't use an equivalence.
Undo change disabling equivalences for MEM_READONLY_P memrefs.
Dump equivalencing insns to dump_file.
2005-06-14 Richard Sandiford <richard@codesourcery.com>
* config/mips/mips.c (machine_function): Add varargs_size field.
(mips_setup_incoming_varargs): Store the amount of extra stack space
there rather than in *pretend_size. When saving registers, always
expect virtual_incoming_args_rtx to point to the start of the
pretend arguments.
(mips_va_start): Remove alignment hack. Handle all
!EABI_FLOAT_VARARGS_P cases in the same way.
(compute_frame_size): Handle varargs_size. Remove the redundant
!TARGET_OLDABI condition in the handling of pretend_args_size.
(mips_initial_elimination_offset): Remove the now-redundant check
of TARGET_NEWABI.
2005-06-14 Jeff Law <law@redhat.com>
* tree-vrp.c (local_fold): Remove.
(simplify_using_ranges): Use fold_convert, not local_fold. Tweak
DIV/MOD case slightly for readability.
2005-06-14 Frank Ch. Eigler <fche@redhat.com>
PR mudflap/21023
* tree-mudflap.c (mudflap_finish_file): Exclude non-public
rather than static objects (!) from libmudflap registration.
2005-06-14 Richard Sandiford <richard@codesourcery.com>
* opt-functions.awk (global_state_p, needs_state_p, static_var): New.
(var_ref): Take the option's flags as a second parameter. Check
static_var.
* optc-gen.awk: Declare local state variables. Pass flags to var_ref.
2005-06-14 Eric Botcazou <ebotcazou@libertysurf.fr>
PR target/20301
* config/sparc/sol2.h (ASM_GENERATE_INTERNAL_LABEL): Emit
unsigned index numbers.
2005-06-13 Geoffrey Keating <geoffk@apple.com>
* Makefile.in (install-man): Doesn't really depend on installdirs.
(various rules for installing manpages): Do depend on installdirs.
2005-06-14 Nathan Sidwell <nathan@codesourcery.com>
* unwind-dw2-fde-darwin.c (examine_objects): Fix aliasing in
read_encoded_value_with_base call.
* unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Likewise.
* unwind-dw2-fde.c (_Unwind_Find_FDE): Likewise.
* unwind-dw2.c (extract_cie_info): Fix aliasing in
read_encoded_value call.
(execute_cfa_program, uw_frame_state_for): Likewise.
2005-06-13 Roger Sayle <roger@eyesopen.com>
PR rtl-optimization/22053
* reg-stack.c (compensate_edge): Correct mistake in the assertion
checking of EDGE_ABNORMAL_CALL edges; complex return values can
result in the top two stack slots, st(0) and st(1), being live.
2005-06-13 Jeff Law <law@redhat.com>
* tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): No longer
simplify DIV, MOD or ABS expressions using VRP information.
Remove WALK_DATA parameter. Prototype and all callers updated.
(eliminate_redundant_computations): Remove WALK_DATA parameter.
Prototype and all callers updated.
(optimize_stmt): WALK_DATA parameter is now unused.
* tree-vrp.c (local_fold): New function. Like fold, but
strips useless type conversions in the result.
(simplify_using_ranges): New function, largely cribbed from
tree-ssa-dom.c::simplify_rhs_and_lookup_avail_expr.
(vrp_finalize): Call simplify_using_ranges.
2005-06-13 Mark Mitchell <mark@codesourcery.com>
* config/i386/x86-64.h (ASM_SPEC): Explicitly pass --64 to the
assembler in 64-bit mode.
2005-06-13 David Edelsohn <edelsohn@gnu.org>
Revert scc_operand patch.
* config/rs6000/predicates.md (scc_operand): Delete.
* config/rs6000/rs6000.md (scc_operand): Change to scc_eq_operand.
2005-06-13 Zdenek Dvorak <dvorakz@suse.cz>
PR middle-end/21985
* fold-const.c (split_address_to_core_and_offset): Always return
the address of the base object.
2005-06-13 Bernd Schmidt <bernd.schmidt@analog.com>
* doc/invoke.texi (Blackfin Options): Document -mlong-calls.
2005-06-12 Richard Henderson <rth@redhat.com>
PR tree-opt/21994
* tree-complex.c (update_complex_components_on_edge): New.
(update_parameter_components): Use it.
(update_phi_components): Likewise.
(expand_complex_move): Likewise for is_ctrl_altering_stmt.
2005-06-12 James A. Morrison <phython@gcc.gnu.org>
PR tree-optimization/14796
* fold-const (fold_binary): Transform (X << C) >> C into X & (-1>>C)
for unsigned types.
2005-06-12 Kazu Hirata <kazu@codesourcery.com>
* cgraphunit.c, tree-ssa-loop-ivopts.c,
tree-ssa-structalias.c, tree-vectorizer.c, tree-vectorizer.h,
config/sparc/sparc.c: Fix comment typos.
2005-06-12 Richard Earnshaw <richard.earnshaw@arm.com>
* arm/ieee754-df.s (aeabi_dcmpeq, aeabi_dcmplt, aeabi_dcmple)
(aeabi_dcmpge, aeabi_dcmpgt): Maintain 8-byte stack alignment.
* arm/ieee754-sf.s (aeabi_l2f, aeabi_fcmpeq, aeabi_fcmplt)
(aeabi_fcmple, aeabi_fcmpge, aeabi_fcmpgt): Likewise.
2005-06-12 James A. Morrison <phython@gcc.gnu.org>
PR tree-optimization/14796
* fold-const.c (fold_binary): Transform (A >> C) << C into
one BIT_AND_EXPR.
<shift>: Transform (A OP c1) OP c2 into A OP (c1 + c2).
2005-06-11 Geoffrey Keating <geoffk@apple.com>
* config/rs6000/predicates.md (reg_or_arith_cint_operand): Delete.
(reg_or_add_cint_operand): Rename from reg_or_add_cint64_operand.
Handle SImode.
(reg_or_sub_cint_operand): Likewise.
(mask_operand): Handle DImode.
(mask64_operand): Delete.
(and64_operand): Delete.
* config/rs6000/rs6000.c (num_insns_constant): Use mask_operand
instead of mask64_operand.
(print_operand): Likewise.
(rs6000_rtx_costs): Use mask_operand and reg_or_add_cint_operand and
reg_or_sub_cint_operand instead of *64_* variants.
* config/rs6000/rs6000.h (EXTRA_CONSTRAINT): Use mask_operand
instead of mask64_operand.
* config/rs6000/rs6000.md: Use mask_operand and and_operand instead
of *64_* variants.
(FP): New.
(add_op2): Delete.
(add<mode>3): Use reg_or_add_cint_operand.
(sub_op2): Delete.
(sub<mode>3): Use reg_or_sub_cint_operand.
(udiv<mode>3, div<mode>3, div<mode>3_no_mq, mod<mode>3,
mov<mode>_internal2, mov<mode>, cmp<mode>, cmp<mode>,
cmp<mode>_internal1, indirect_jump<mode>, ctr<mode>,
ctr<mode>_internal1, ctr<mode>_internal2, ctr<mode>_internal5,
ctr<mode>_internal6, save_fpregs_<mode>, return_internal_<mode>,
return_and_restore_fpregs_<mode>, eh_set_lr_<mode>,
various unnamed patterns): New.
(udivsi3, divsi3, divsi3_no_mq, modsi3, movsi_internal2, movsi,
cmpsi, cmpsi_internal1, indirect_jumpsi, ctrsi, ctrsi_internal1,
ctrsi_internal2, ctrsi_internal5, ctrsi_internal6, save_fpregs_si,
return_internal_si, return_and_restore_fpregs_si, eh_set_lr_si,
udivdi3, divdi3, divdi3_no_mq, moddi3, movdi_internal2, movdi,
cmpdi, cmpdi_internal1, indirect_jumpdi, ctrdi, ctrdi_internal1,
ctrdi_internal2, ctrdi_internal5, ctrdi_internal6, save_fpregs_di,
return_internal_di, return_and_restore_fpregs_di, eh_set_lr_di,
movhi, movqi, cmpsf, cmpdf, cmptf, various unnamed patterns):
Delete.
2005-06-11 Gabriel Dos Reis <gdr@integrable-solutions.net>
* rtl.h (to_rtx_code): Remove.
* machmode.h (to_machine_mode): Likewise.
* read-rtl.c (apply_mode_macro): Replace to_machine_mode with
explicit cast.
(apply_mode_maps): Likewise.
(read_rtx_1): Likewise.
(apply_code_macro): Replace to to_rtx_code with explicit cast.
(check_code_macro): Likewise.
(read_rtx_1): Likewise.
2005-06-11 Gabriel Dos Reis <gdr@integrable-solutions.net>
* c-typeck.c (convert_for_assignment): Avoid checking
OPT_Wc___compat, as it is always true.
2005-06-11 David Edelsohn <edelsohn@gnu.org>
* config/rs6000/rs6000.md (eq<mode>_compare): Restrict to Pmode.
2005-06-11 Daniel Berlin <dberlin@dberlin.org>
Fix PR tree-optimization/22005
Fix PR tree-optimization/22025
* tree-ssa-structalias.c (struct variable_info): Add has_union
member.
(create_variable_info_for): Mark variables containing unions.
Don't sort the field stack if notokay is true.
(find_what_p_points_to): Convert variables containing unions back
to their SFT's if necessary.
2005-06-11 Daniel Berlin <dberlin@dberlin.org>
* lambda-code.c (replace_uses_equiv_to_x_with_y): Verify the step
is an INTEGER_CST before calling int_cst_value.
2005-06-10 Uros Bizjak <uros@kss-loka.si>
PR target/21981
* config/i386/i386.c (ix86_function_value_regno_p): Return true
for FIRST_MMX_REG if TARGET_MMX.
(ix86_return_in_memory): Return 1 for MMX/3dNow vectors. Delete
wrong comment.
(ix86_struct_value_rtx): Emit warning for MMX ABI violations.
(ix86_value_regno): Return FIRST_MMX_REG for MMX vector modes.
2005-06-10 Daniel Berlin <dberlin@dberlin.org>
* lambda-code.c (replace_uses_equiv_to_x_with_y): Check step
and access function against chrec_dont_know.
2005-06-10 Daniel Berlin <dberlin@dberlin.org>
* lambda-code.c (replace_uses_of_x_with_y): Renamed and rewritten
slightly.
(exit_phi_for_loop_p): New function.
(can_put_in_inner_loop): Ditto.
(can_convert_to_perfect_nest): Ditto.
(perfect_nestify): Create iv with right type.
Rewrite statements in correct order.
2005-06-10 Keith Besaw <kbesaw@us.ibm.com>
* tree-ssa-alias.c (new_type_alias): Use existing type
tag if VAR has just one in its may_aliases list.
2005-06-10 Fariborz Jahanian <fjahanian@apple.com>
* rs6000/predicates.md (scc_operand): New.
* rs6000/rs6000.md : Use scc_operand for eq:SI compares.
2005-06-10 Dorit Nuzman <dorit@il.ibm.com>
* tree-vect-analyze.c (vect_analyze_data_ref_dependence): DRs whose
dependence-distance modulo VF is 0 are recorded in the
SAME_ALIGN_REFs VEC in each DR.
(vect_enhance_data_refs_alignment): Avoid 80 column overflow. The
alignment information of DRs that are in the SAME_ALIGN_REFs VEC of the
DR we want to peel for, is set to 0.
* tree-vect-transform.c (vect_do_peeling_for_loop_bound): Fix printout.
* tree-vectorizer.c (destroy_loop_vec_info): Free the SAME_ALIGN_REFs
VEC.
* tree-vectorizer.h (dr_p): New type. Defined to use the VEC API.
(_stmt_vec_info): Added new field same_align_refs.
(STMT_VINFO_SAME_ALIGN_REFS): New macro.
2005-06-10 Nathan Sidwell <nathan@codesourcery.com>
* vec.h (VEC_safe_grow): Append MEM_STAT_INFO.
2005-06-10 Alan Modra <amodra@bigpond.net.au>
* config/rs6000/linux.h (NO_PROFILE_COUNTERS): Define.
* config/rs6000/linux64.h (NO_PROFILE_COUNTERS): Define as 1.
* config/rs6000/rs6000.c (output_function_profiler): Obey
NO_PROFILE_COUNTERS. Handle TARGET_SECURE_PLT. Use "bcl 20,31"
for -fPIC. Delete save_lr and substitute its value into strings.
2005-06-09 Dale Johannesen <dalej@apple.com>
* config/i386/i386.c (optimization_options): Make -fno-math-errno
the default on Darwin.
* config/rs6000/rs6000.c (optimization_options): Ditto.
* doc/invoke.texi (-fno-math-errno): Document.
2005-06-09 Dale Johannesen <dalej@apple.com>
* config/rs6000/rs6000.c (TARGET_INSN_VALID_WITHIN_DOLOOP):
Change to TARGET_INVALID_WITHIN_DOLOOP.
2005-06-09 David Edelsohn <edelsohn@gnu.org>
* config/rs6000/rs6000.md (eq): Convert to define_insn_and_split.
* config/rs6000/predicates.md (scc_eq_operand): New.
2005-06-09 Kaz Kojima <kkojima@gcc.gnu.org>
* config/sh/sh.md (mextr_rl): Set buffer size properly.
(*mextr_lr): Likewise.
2005-06-09 Gabriel Dos Reis <gdr@integrable-solutions.net>
PR c/21759
* c.opt (Wc++-compat): New.
* doc/invoke.texi (-Wc++-compat): Document.
* c-typeck.c (convert_for_assignment): Check for implicit
conversion void* -> T*.
2005-06-09 Gabriel Dos Reis <gdr@integrable-solutions.edu>
* machmode.h (to_machine_mode): New.
* rtl.h (to_rtx_code): Likewise.
* read-rtl.c (apply_mode_macro): Convert mode to machine_mode.
(print_c_condition): Convert return value of htab_find().
(apply_code_macro): Add explicit cast when convertin to enums.
(apply_mode_maps): Likewise.
(check_code_macro): Likewise.
(read_rtx_1): Likewise.
2005-06-09 Richard Henderson <rth@redhat.com>
* config/ia64/ia64.c (update_set_flags): Just return for IF_THEN_ELSE.
Use SCALAR_FLOAT_MODE_P.
* config/ia64/vect.md (vcondv2sf): Remove code check on comparison.
(fselect): Rename from fpcmp; use %F.
(fpcmp): New.
2005-06-09 Jan Hubicka <jh@suse.cz>
* cgraphunit.c (cgraph_create_edges): Do not walk BLOCK; finalize
local statics when doing unit-at-a-time.
(cgraph_varpool_assemble_pending_decls): Output debug info.
* dwarf2out.c (decls_for_scope): Skip local statics.
(dwarf2out_decl): Handle local statics.
* passes.c (rest_of_decl_compilation): Do not differentiate
local and global statics in unit-at-a-time.
* tree-inline.c (remap_decls): Put local static into
unexpanded_vars_list rather than introducing duplicated VAR_DECL
node.
2005-06-09 Daniel Berlin <dberlin@dberlin.org>
* config/rs6000/rs6000.c: (rs6000_insn_valid_within_doloop): Fix
prototype.
2005-06-08 Daniel Berlin <dberlin@dberlin.org>
* Makefile.in (OBJS-common): Add tree-ssa-structalias.o.
* tree-flow.h (find_what_p_points_to): Add prototype.
(push_fields_onto_fieldstack): Ditto.
(sort_fieldstack): Ditto.
* tree-optimize.c (init_tree_optimization_passes): Add
pass_build_pta and pass_del_pta.
* tree-pass.h (pass_build_pta): New structure.
(pass_del_pta): Ditto.
* tree-ssa-alias.c (compute_flow_sensitive_aliasing): Disambiguate
using new alias analyzer.
(push_fields_onto_fieldstack): Removed from here.
(bitpos_of_field): Ditto.
(fieldoff_compare): Ditto.
* tree-ssa-structalias.c: New file.
* tree-ssa-structalias.h: Ditto.
2005-06-09 Nathan Sidwell <nathan@codesourcery.com>
* c-typeck.c (build_c_cast): Check type punning on COMPONENT_REF
too.
2005-06-09 Bernd Schmidt <bernd.schmidt@analog.com>
* config/bfin/bfin.c (enum bfin_builtins): Moved here from...
* config/bfin/bfin.h (enum bfin_builtins): ... here.
2005-06-09 Adrian Straetling <straetling@de.ibm.com>
* target.h (insn_valid_within_doloop): Rename into
"invalid_within_doloop". Change return type to "const char *".
Update Comment.
* targhooks.h (default_insn_valid_within_doloop): Rename into
"default_invalid_within_doloop".
* targhooks.c (default_insn_valid_within_doloop): Likewise.
Update Comment.
* target-def.h (TARGET_INSN_VALID_WITHIN_DOLOOP): Rename target hook
into "TARGET_INVALID_WITHIN_DOLOOP". Default it to
"default_invalid_within_doloop".
* hooks.c (hook_constcharptr_rtx_null): New function.
(hook_bool_rtx_true): Remove.
* hooks.h (hook_constcharptr_rtx_null): Declare.
(hook_bool_rtx_true): Remove.
* loop-doloop.c (doloop_valid_p): Temporarily store return value of
"invalid_within_doloop" and print error message if non-null.
Update Comment.
* doc/tm.texi: Update documentation.
* config/s390/s390.c: Adjust to new hook name and new default hook.
* config/rs6000/rs6000.c: (rs6000_insn_valid_within_doloop): Rename
into "rs6000_invalid_within_doloop".
(rs6000_invalid_within_doloop): Change return type to "static const
char *" and replace return values. Update Comment.
2005-06-09 Bernd Schmidt <bernd.schmidt@analog.com>
* config/bfin/bfin.opt (mlong-calls): New.
* config/bfin/predicates.md (call_insn_operand): Disallow SYMBOL_REF
if TARGET_LONG_CALLS.
2005-06-09 Richard Henderson <rth@redhat.com>
PR tree-opt/20610
* tree.h (DECL_COMPLEX_GIMPLE_REG_P): New.
(struct tree_decl): Add gimple_reg_flag.
* integrate.c (copy_decl_for_inlining): Copy it.
* gimplify.c (internal_get_tmp_var): Set it.
(gimplify_bind_expr): Likewise.
(gimplify_function_tree): Likewise.
(gimplify_modify_expr_complex_part): New.
(gimplify_modify_expr): Use it.
* tree-gimple.c (is_gimple_reg_type): Allow complex.
(is_gimple_reg): Allow complex with DECL_COMPLEX_GIMPLE_REG_P set.
* tree-complex.c (complex_lattice_t): New.
(complex_lattice_values, complex_variable_components): New.
(some_nonzerop, find_lattice_value, is_complex_reg,
init_parameter_lattice_values, init_dont_simulate_again,
complex_visit_stmt, complex_visit_phi, create_components,
update_complex_components, update_parameter_components,
update_phi_components, update_all_vops, expand_complex_move): New.
(extract_component): Handle INDIRECT_REF, COMPONENT_REF, ARRAY_REF,
SSA_NAME.
(update_complex_assignment): Use update_complex_components;
handle updates of return_expr properly.
(expand_complex_addition): Use complex lattice values.
(expand_complex_multiplication): Likewise.
(expand_complex_division): Likewise.
(expand_complex_libcall): Use update_complex_components.
(expand_complex_comparison): Use update_stmt.
(expand_complex_operations_1): Use expand_complex_move, retrieve
lattice values.
(tree_lower_complex): Compute lattice values.
(tree_lower_complex_O0): Duplicate from tree_lower_complex.
(pass_lower_complex_O0): Rename from pass_lower_complex.
(pass_lower_complex, gate_no_optimization): New.
* tree-optimize.c (init_tree_optimization_passes): Update for
complex pass changes.
* tree-pass.h (pass_lower_complex_O0): Declare.
2005-06-08 Dale Johannesen <dalej@apple.com>
* config/darwin.c (darwin_binds_local_p): New.
* config/darwin-protos.h (darwin_binds_local_p): Declare it.
* config/i386/i386.c (TARGET_BINDS_LOCAL_P): Use it for TARGET_MACHO.
* config/rs6000/rs6000.c (rs6000_binds_local_p): Remove.
(TARGET_BINDS_LOCAL_P): Change it to darwin_binds_local_p.
2005-06-08 Aldy Hernandez <aldyh@redhat.com>
* config/rs6000/rs6000.h: Remove rs6000_long_double_size_string,
rs6000_isel, rs6000_spe, rs6000_alignment_string,
rs6000_sched_restricted_insns_priority_str,
rs6000_sched_restricted_insns_priority, rs6000_abi_string.
2005-06-08 Zdenek Dvorak <dvorakz@suse.cz>
* tree-ssa-address.c (addr_for_mem_ref): Use LAST_VIRTUAL_REGISTER
instead of FIRST_PSEUDO_REGISTER for creating pseudoregisters.
* tree-ssa-loop-ivopts.c (add_cost, multiply_by_cost,
multiplier_allowed_in_address_p, get_address_cost): Ditto.
2005-06-08 Richard Henderson <rth@redhat.com>
* config/ia64/ia64.h (NO_PROFILE_COUNTERS): New.
* config/ia64/ia64.c (ia64_output_function_profiler): Honor it.
Emit out3 load right after alloc.
2005-06-08 Aldy Hernandez <aldyh@redhat.com>
* config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
rs6000_explicit_options.
2005-06-08 Richard Henderson <rth@redhat.com>
* config/ia64/ia64.h (FUNCTION_PROFILER): Move implementation ...
* config/ia64/ia64.c (ia64_output_function_profiler): ... here; add
unwind markup.
* config/ia64/ia64-protos.h (ia64_output_function_profiler): Declare.
2005-06-08 Joseph S. Myers <joseph@codesourcery.com>
* config/sol2-c.c (cmn_err_char_table): Allow width for %b
formats.
2005-06-08 James A. Morrison <phython@gcc.gnu.org>
PR target/20666
* config/sparc/sparc.c (sparc_fold_builtin): New function
(sparc_vis_mul8x16): New function.
(sparc_handle_vis_mul8x16): New function.
(TARGET_FOLD_BUILTIN): Define to sparc_fold_builtin.
2005-06-08 David Edelsohn <edelsohn@gnu.org>
* config/rs6000/rs6000.md (call_indirect_nonlocal_aix32): Prefer
CTR to LR.
(call_indirect_nonlocal_aix64): Same.
(call_value_indirect_nonlocal_aix32): Same.
(call_value_indirect_nonlocal_aix64): Same.
PR target/10588
(eq): Use CLZ splitter for compare with zero.
2005-06-08 Bernd Schmidt <bernd.schmidt@analog.com>
* config/bfin/bfin.c (bfin_return_in_memory): Simplify; return
everything larger than 8 bytes in memory.
* config/bfin/bfin.h (enum bfin_builtins): New.
* config/bfin/bfin.md (UNSPEC_VOLATILE_CSYNC, UNSPEC_VOLATILE_SSYNC):
New constants.
(csync, ssync): New insn patterns.
* config/bfin/bfin.c (bfin_init_builtins, bfin_expand_builtin):
New functions.
(def_builtin): New macro.
(TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
From Jie Zhang <jie.zhang@analog.com>
* config/bfin/bfin.h (ASM_OUTPUT_ALIGN): Gas now emulates the
behavior of the native assembler in VDSP. So change accordingly.
2005-06-08 Sebastian Pop <pop@cri.ensmp.fr>
* tree-data-ref.c (compute_estimated_nb_iterations,
analyze_array_indexes, compute_overlap_steps_for_affine_1_2,
analyze_subscript_affine_affine, find_data_references_in_loop):
Fixed to use chrec_contains_undetermined to test the values of
loop->estimated_nb_iterations.
* tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop):
Compute the estimation only when loop->estimated_nb_iterations
has not yet been initialized.
(convert_step_widening, scev_probably_wraps_p): Add a call to
estimate_numbers_of_iterations_loop.
* tree-vrp.c (execute_vrp): Don't call estimate_numbers_of_iterations.
2005-06-08 Eric Botcazou <ebotcazou@libertysurf.fr>
PR debug/21946
* dwarf2out.c (add_loc_descr_op_piece): Move to the
DWARF2_DEBUGGING_INFO section.
2005-06-08 Richard Henderson <rth@redhat.com>
PR target/21721
* config/ia64/ia64.c (emit_predicate_relation_info): Skip p0.
2005-06-08 Eric Botcazou <ebotcazou@libertysurf.fr>
PR target/21889
* target.h (gcc_target) <asm_out>: New field output_dwarf_dtprel.
* target-def.h (TARGET_ASM_OUTPUT_DWARF_DTPREL): New macro.
(TARGET_ASM_OUT): Add it.
* doc/tm.texi (Debugging Info): Document it.
* dwarf2out.c (output_loc_operands) <INTERNAL_DW_OP_tls_addr>:
Test it instead of ASM_OUTPUT_DWARF_DTPREL.
(loc_descriptor_from_tree_1) <VAR_DECL>: Likewise.
* system.h: Poison ASM_OUTPUT_DWARF_DTPREL.
* config/frv/frv-protos.h (frv_output_dwarf_dtprel): Delete.
* config/frv/frv.c (frv_output_dwarf_dtprel): Make static and unused.
(gen_inlined_tls_plt): Remove unused variable MEM.
(TARGET_ASM_OUTPUT_DWARF_DTPREL): Define to frv_output_dwarf_dtprel.
* config/frv/frv.h (ASM_OUTPUT_DWARF_DTPREL): Delete.
* config/i386/i386-protos.h (i386_output_dwarf_dtprel): Delete.
* config/i386/i386.c (i386_output_dwarf_dtprel): Make static and
unused.
(TARGET_ASM_OUTPUT_DWARF_DTPREL): Define to i386_output_dwarf_dtprel.
* config/i386/i386.h (ASM_OUTPUT_DWARF_DTPREL): Delete.
* config/ia64/ia64-protos.h (ia64_output_dwarf_dtprel): Delete.
* config/ia64/ia64.c (ia64_output_dwarf_dtprel): Make static and
unused.
(TARGET_ASM_OUTPUT_DWARF_DTPREL): Define to ia64_output_dwarf_dtprel.
* config/ia64/ia64.h (ASM_OUTPUT_DWARF_DTPREL): Delete.
* config/rs6000/rs6000-protos.h (rs6000_output_dwarf_dtprel): Delete.
* config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): Make static and
unused.
(TARGET_ASM_OUTPUT_DWARF_DTPREL): Define to rs6000_output_dwarf_dtprel
* config/rs6000/rs6000.h (ASM_OUTPUT_DWARF_DTPREL): Delete.
* config/s390/s390-protos.h (s390_output_dwarf_dtprel): Delete.
* config/s390/s390.c (s390_output_dwarf_dtprel): Make static and
unused.
(TARGET_ASM_OUTPUT_DWARF_DTPREL): Define to s390_output_dwarf_dtprel.
* config/s390/s390.h (ASM_OUTPUT_DWARF_DTPREL): Delete.
* config/sparc/sol2-gas.h (TARGET_SUN_TLS): Define to 0.
(TARGET_GNU_TLS): Define to 1.
* config/sparc/sparc-protos.h (sparc_output_dwarf_dtprel): Delete.
* config/sparc/sparc.c (sparc_output_dwarf_dtprel): Make static and
unused.
(TARGET_ASM_OUTPUT_DWARF_DTPREL): Define to sparc_output_dwarf_dtprel
if TARGET_GNU_TLS only.
* config/sparc/sparc.h (ASM_OUTPUT_DWARF_DTPREL): Delete.
* config.gcc (sparc64-*-solaris2*): Include tm-dwarf2.h last.
(sparc-*-solaris2*): Likewise on Solaris 7 and up.
2005-06-07 Dale Johannesen <dalej@apple.com>
* config/i386/i386.md (movqi_1): Fix case where source
is memory and destination EDI.
2005-06-08 Kazu Hirata <kazu@codesourcery.com>
* config/c4x/c4x.h (PREDICATE_CODES): Remove mem_operand.
2005-06-07 Eric Christopher <echristo@redhat.com>
* system.h: Poison EXTRA_CC_MODES.
* config/frv/frv.h (SELECT_CC_MODE): Rewrite comment.
* config/ia64/ia64.h (SELECT_CC_MODE): Ditto.
* doc/md.texi (Jump Patterns): Replace reference to
EXTRA_CC_MODES with machine-modes.def.
* doc/rtl.texi (Machine Modes): Ditto.
2005-06-07 Richard Henderson <rth@redhat.com>
* varasm.c (initialize_cold_section_name): Fix alloca buffer overflow.
(assemble_start_function): Fix strcmp confusion.
2005-06-07 Uros Bizjak <uros@kss-loka.si>
* config/i386/i386.h (enum ix86_entity): New.
(enum ix86_stack_slot): New.
(OPTIMIZE_MODE_SWITCHING): Redefine to use
ix86_optimize_mode_switching[] array.
(NUM_MODES_FOR_MODE_SWITCHING): Redefine for 4 entities.
(MODE_NEEDED): Use ix86_mode_needed() function.
(EMIT_MODE_SET): Redefine for changed emit_i387_cw_initialization ()
function.
(struct machine_function): Use optimize_mode_switching[] array.
* config/i386/i386.c (MAX_386_STACK_LOCALS): Remove.
(ix86_mode_needed): New function.
(emit_i387_cw_initialization): Cleanup. Use mode to calculate
correct stack positions for stored control words.
(assign_386_stack_local): Use enum ix86_stack_slot. Change assert.
(ix86_expand_builtin) [IX86_BUILTIN_LDMXCSR]: Change constant to
SLOT_TEMP.
[IX86_BUILTIN_STMXCSR]: Same.
* config/i386/i386-protos.h (assign_stack_local): Change prototype.
(emit_i387_cw_initialization): Change prototype.
(ix86_mode_needed): New prototype.
* config/i386/i386.md (i387_cw attribute): Change order of elements.
(truncdfsf2, truncxfsf2, truncxfdf2, fix_trunc<mode>_fisttp_i387_1)
(*fix_trunc<mode>_i387_1, lrint<mode>2, *fist<mode>2_floor_1)
(*fist<mode>2_ceil_1): Change constant in call to
assign_386_stack_local to SLOT_TEMP.
(*fix_trunc<mode>_i387_1): Change constant in call to
assign_386_stack_local to SLOT_CW_STORED and SLOT_CW_TRUNC.
Use new ix86_optimize_mode_switching[] array.
(frndintxf2_floor, *fist<mode>2_floor_1): Change constants in call to
assign_386_stack_local to SLOT_CW_STORED and SLOT_CW_FLOOR.
Use new ix86_optimize_mode_switching[] array.
(frndintxf2_ceil, *fist<mode>2_ceil_1): Change constants in call to
assign_386_stack_local to SLOT_CW_STORED and SLOT_CW_CEIL.
Use new ix86_optimize_mode_switching[] array.
(frndintxf2_trunc): Change constants in call to
assign_386_stack_local to SLOT_CW_STORED and SLOT_CW_TRUNC.
Use new ix86_optimize_mode_switching[] array.
(frndintxf2_mask_pm): Change constants in call to
assign_386_stack_local to SLOT_CW_STORED and SLOT_CW_MASK_PM.
Use new ix86_optimize_mode_switching[] array.
(define_peephole2): Change constant from 17 to FLAGS_REG;
2005-06-07 Richard Henderson <rth@redhat.com>
PR rtl-opt/21528
* rtlanal.c (reg_overlap_mentioned_p) <MEM>: Handle 'E' formats.
2005-06-07 Dale Johannesen <dalej@apple.com>
* tree-nested.c (finalize_nesting_tree_1): Disable
warn_padded around layout_type call.
2005-06-08 Zdenek Dvorak <dvorakz@suse.cz>
* tree-ssa-loop-ivopts.c (rewrite_use_outer): Unshare the expression
before emiting it.
2005-06-07 Eric Christopher <echristo@redhat.com>
* config/mips/predicates.md: Revert previous patch.
2005-06-07 Jakub Jelinek <jakub@redhat.com>
PR middle-end/21850
* tree.c (get_unwidened): Stop at NOP_EXPR/CONVERT_EXPR that convert
from vector types.
2005-06-07 Diego Novillo <dnovillo@redhat.com>
* tree-ssa-threadupdate.c (struct thread_stats_d): Declare.
(thread_stats): New local variable.
(redirect_edges): Increment count of threaded edges.
(thread_through_all_blocks): Initialize thread_stats.
Display number of threaded jumps if TDF_STATS is enabled.
2005-06-07 Kazu Hirata <kazu@codesourcery.com>
* sbitmap.h (sbitmap_iter_init): Consistently treat bit_num as
the current bit index with no modulo.
2005-06-07 Sebastian Pop <pop@cri.ensmp.fr>
PR 18403 and meta PR 21861.
* Makefile.in (tree-chrec.o): Depend on CFGLOOP_H and TREE_FLOW_H.
* tree-chrec.c: Include cfgloop.h and tree-flow.h.
(evolution_function_is_invariant_rec_p,
evolution_function_is_invariant_p): New.
(chrec_convert): Use an extra parameter AT_STMT for refining the
information that is passed down to convert_step. Integrate the
code that was in count_ev_in_wider_type.
* tree-chrec.h (count_ev_in_wider_type): Removed.
(chrec_convert): Modify its declaration.
(evolution_function_is_invariant_p): Declared.
(evolution_function_is_affine_p): Use evolution_function_is_invariant_p.
* tree-flow.h (can_count_iv_in_wider_type): Renamed convert_step.
(scev_probably_wraps_p): Declared.
* tree-scalar-evolution.c (count_ev_in_wider_type): Removed.
(follow_ssa_edge_in_rhs, interpret_rhs_modify_expr):
Use an extra parameter AT_STMT for refining the information that is
passed down to convert_step.
(follow_ssa_edge_inner_loop_phi, follow_ssa_edge,
analyze_scalar_evolution_1): Initialize AT_STMT with the current
analyzed statement.
(instantiate_parameters_1): Don't know yet how to initialize AT_STMT.
* tree-ssa-loop-ivopts.c (idx_find_step): Update the use of
can_count_iv_in_wider_type to use convert_step.
* tree-ssa-loop-niter.c (can_count_iv_in_wider_type_bound): Move
code that is independent of the loop over the known iteration
bounds to convert_step_widening, the rest is moved to
proved_non_wrapping_p.
(scev_probably_wraps_p): New.
(can_count_iv_in_wider_type): Renamed convert_step.
* tree-vrp.c (adjust_range_with_scev): Take an extra AT_STMT parameter.
Use scev_probably_wraps_p for computing init_is_max.
(vrp_visit_assignment): Pass the current analyzed statement to
adjust_range_with_scev.
(execute_vrp): Call estimate_numbers_of_iterations for refining the
information provided by scev analyzer.
2005-06-07 Eric Christopher <echristo@redhat.com>
* config/mips/predicates.md (sleu_operand): Use
IN_RANGE to specify range of operand.
2005-06-07 Steven Bosscher <stevenb@suse.de>
PR tree-optimization/21847
* tree-ssa-dce.c (mark_stmt_if_obviously_necessary): With
-fnon-call-exceptions, also mark statements inherently
necessary if they may throw.
2005-06-07 Adrian Straetling <straetling@de.ibm.com>
* config/s390/s390.md: ("UNSPECV_MB", "UNSPECV_CAS"): New constants.
("type"): Add "sem" to 'type' attribute.
("memory_barrier", "*memory_barrier", "sync_compare_and_swapdi",
"sync_compare_and_swapsi", "sync_compare_and_swap_ccdi",
"sync_compare_and_swap_ccsi", "*sync_compare_and_swap_ccdi",
"*sync_compare_and_swap_ccsi"): New patterns.
* config/s390/2064.md: ("z_sem"): New insn_reservation.
* config/s390/2084.md: ("x_sem"): New insn_reservation.
* config/s390/s390.c: (s390_compare_emitted): New global variable.
(s390_emit_compare): Do not emit comparison again after cas.
* config/s390/s390.h (s390_compare_emitted): Declare.
2005-06-07 Kazu Hirata <kazu@codesourcery.com>
* sbitmap.h (sbitmap_iterator, sbitmap_iter_init,
sbitmap_iter_cond, sbitmap_iter_next): New.
* bt-load.c, cfganal.c, combine.c, ddg.c, flow.c,
modulo-sched.c, sbitmap.c, sched-rgn.c, tree-into-ssa.c,
tree-outof-ssa.c, tree-ssa-alias.c, tree-ssa-live.c: Update
uses of EXECUTE_IF_SET_IN_SBITMAP to the new style.
2005-06-07 Zdenek Dvorak <dvorakz@suse.cz>
* tree-ssa-address.c: New file.
* Makefile.in (tree-ssa-address.o): Add.
* expr.c (expand_expr_real_1): Do not handle REF_ORIGINAL on
INDIRECT_REFs. Handle TARGET_MEM_REFs.
* tree-eh.c (tree_could_trap_p): Handle TARGET_MEM_REFs.
* tree-flow.h (struct mem_address): New.
(struct affine_tree_combination): Moved from tree-ssa-loop-ivopts.c.
(create_mem_ref, addr_for_mem_ref, get_address_description,
maybe_fold_tmr, multiplier_allowed_in_address_p,
multiply_by_cost): Declare.
* tree-mudflap.c (mf_xform_derefs_1): Handle TARGET_MEM_REFs.
* tree-pretty-print.c (dump_generic_node): Ditto.
* tree-ssa-loop-im.c (for_each_index): Ditto.
* tree-ssa-loop-ivopts.c (may_be_unaligned_p,
find_interesting_uses_address): Ditto.
(rewrite_address_base, build_addr_strip_iref): Removed.
(struct affine_tree_combination): Moved to tree-flow.h.
(get_ref_tag, copy_ref_info): New functions.
(rewrite_use_address): Produce TARGET_MEM_REFs.
(tree_ssa_iv_optimize): Do not call update_ssa
and rewrite_into_loop_closed_ssa.
(tree_to_aff_combination): Use build_fold_addr_expr instead of
build_addr_strip_iref.
(unshare_aff_combination): New function.
(fold_affine_sum): Removed.
(get_computation_at): Use get_computation_aff. Unshare the result.
(get_computation_aff, multiplier_allowed_in_address_p): New function.
(multiply_by_cost): Exported.
(get_address_cost): Use multiplier_allowed_in_address_p.
* tree-ssa-operands.c (get_tmr_operands): New function.
(get_expr_operands): Handle TARGET_MEM_REFs.
* tree.c (copy_node_stat): Copy annotations for TARGET_MEM_REFs.
(build): Handle 7 arguments.
(build7_stat): New function.
* tree.def (TARGET_MEM_DEF): New.
* tree.h (REF_ORIGINAL): Removed.
(TMR_SYMBOL, TMR_BASE, TMR_INDEX, TMR_STEP, TMR_OFFSET, TMR_ORIGINAL,
TMR_TAG, build7): New macros.
(build7_stat, tree_mem_ref_addr, copy_mem_ref_info): Declare.
* tree-ssa-ccp.c (fold_stmt_r): Call maybe_fold_tmr.
* doc/c-tree.texi: Document TARGET_MEM_REF.
* doc/tree-ssa.texi: Add TARGET_MEM_REF to gimple grammar.
2005-06-07 Jakub Jelinek <jakub@redhat.com>
PR debug/21946
* dwarf2out.c (add_loc_descr_op_piece): New function.
(multiple_reg_loc_descriptor, concat_loc_descriptor,
loc_descriptor): Use it.
* var-tracking.c: Include regs.h and expr.h.
(emit_note_insn_var_location): Skip over pieces where offset
is smaller than previous offset plus previous piece mode size.
Optimize adjacent hard registers or memory locations.
* Makefile.in (var-tracking.o): Depend on $(REGS_H) and $(EXPR_H).
2005-06-07 Richard Guenther <rguenth@gcc.gnu.org>
* c-typeck.c (c_finish_if_stmt): Use void_type_node as type
for COND_EXPR.
* gimplify.c (gimplify_cond_expr): No need to fix up the
type of COND_EXPRs.
2005-06-07 Richard Guenther <rguenth@gcc.gnu.org>
* tree-ssa.c (tree_ssa_useless_type_conversion_1): Fix
comments.
2005-06-07 Geoffrey Keating <geoffk@apple.com>
* config/rs6000/host-darwin.c (segv_handler): Widen the possible
'stwux' instructions that are considered to be stack decrements.
* rtlanal.c (subreg_offset_representable_p): Handle objects
with holes.
2005-06-06 Uros Bizjak <uros@kss-loka.si>
* mode-switching.c (optimize_mode_switching): Fix n_exprs parameter
in call to pre_edge_lcm.
2005-06-06 Kaz Kojima <kkojima@gcc.gnu.org>
* config/sh/linux-unwind.h (SH_DWARF_FRAME_XD0): Remove for SH5.
(SH_DWARF_FRAME_PR, SH_DWARF_FRAME_GBR, SH_DWARF_FRAME_MACL)
(SH_DWARF_FRAME_MACH, SH_DWARF_FRAME_PC, SH_DWARF_FRAME_FPUL):
Likewise.
(SH_DWARF_FRAME_FP0, SH_DWARF_FRAME_FPSCR): Define to the correct
dwarf register number for SHmedia.
(shmedia_fallback_frame_state): New.
(MD_FALLBACK_FRAME_STATE_FOR): Define to it for SH5.
* config/sh/linux.h (FUNCTION_PROFILER): Provide SHMEDIA version.
2005-06-06 Gabriel Dos Reis <gdr@integrable-solutions.net>
* c-lex.c (lex_string): Use XOBFINISH.
* collect2.c (extract_string, dump_file): Likewise.
* dbxout.c (dbxout_finish_complex_stabs): Likewise.
* gcc.c (init_spec, build_search_list, convert_filename,
set_collect_gcc_options, do_spec_2, do_spec_1, main): Likewise.
* genpreds.c (write_predicate_subfunction): Likewise.
* genflags.c (main): Likewise.
* read-rtl.c (mode_attr_index, apply_macro_to_string,
join_c_conditions, read_quoted_string, read_braced_string,
read_rtx_1): Likewise.
* stringpool.c (ggc_alloc_string): Likewise.
* tlink.c (obstack_fgets, recompile_files): Likewise.
2005-06-06 Jakub Jelinek <jakub@redhat.com>
* intl.h (G_): New macro.
* rtl-error.c (error_for_asm, warning_for_asm): Use gmsgid
instead of msgid for argument name.
* tree-ssa.c (warn_uninit): Likewise.
* c-parser.c (c_parser_error): Likewise.
* config/rs6000/rs6000-c.c (SYNTAX_ERROR): Likewise.
* config/darwin-c.c (BAD): Likewise.
* config/c4x/c4x-c.c (BAD): Likewise.
* c-pragma.c (GCC_BAD, GCC_BAD2): Likewise.
* c-errors.c (pedwarn_c99, pedwarn_c90): Likewise.
* c-common.c (c_parse_error): Likewise.
* diagnostic.c (diagnostic_set_info, verbatim, inform, warning,
warning0, pedwarn, error, sorry, fatal_error, internal_error):
Likewise.
(fnotice): Use cmsgid instead of msgid for argument name.
* gcov.c (fnotice): Likewise.
* protoize.c (notice): Likewise.
* final.c (output_operand_lossage): Likewise.
* gcc.c (fatal, notice): Likewise.
(error): Use gmsgid instead of msgid for argument name.
* collect2.c (notice, fatal_perror, fatal): Use cmsgid instead
of msgid for argument name.
(error): Use gmsgid instead of msgid for argument name.
* c-decl.c (locate_old_decl, implicit_decl_warning): Use G_()
instead of N_().
* c-typeck.c (readonly_error, convert_for_assignment): Likewise.
* tree-inline.c (inline_forbidden_p_1): Likewise.
* ABOUT-GCC-NLS: Require gettext 0.14.5 or later. Mention the new
conventions for marking translations.
* doc/install.texi: Mention gettext 0.14.5 or later requirement.
* tree-chrec.c (reset_evolution_in_loop): Use build3 instead of
build2.
* fold-const.c (operand_equal_p): Don't return 1, if element
chains for 2 VECTOR_CSTs are not the same length.
PR regression/21897
* fold-const.c (fold_ternary) <case BIT_FIELD_REF>: Don't crash if
not all VECTOR_CST elements are given.
* combine.c (try_combine): Use hard_regno_nregs array instead of
HARD_REGNO_NREGS macro.
* config/rs6000/rs6000.c (rs6000_split_multireg_move,
rs6000_register_move_cost, rs6000_memory_move_cost): Likewise.
* config/ia64/ia64.c (mark_reg_gr_used_mask): Likewise.
2005-06-06 Daniel Berlin <dberlin@dberlin.org>
* tree-ssa-reassoc.o: New.
(OBJS-common): Add tree-ssa-reassoc.o
* timevar.def: Add TV_TREE_REASSOC
* tree-optimize.c (pass_reassoc): Add call.
* tree-pass.h (pass_reassoc): Add.
* tree-ssa-reassoc.c: New file.
2005-06-06 Eric Christopher <echristo@redhat.com>
target/21927
* expr.c (do_store_flag): Remove check for non-negative BRANCH_COST.
2005-06-06 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
* config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Guard with
HAVE_GAS_MAX_SKIP_P2ALIGN.
(HAVE_AS_DWARF2_DEBUG_LINE): Remove.
2005-06-06 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
* Makefile.in (mips-tfile.o): Add $(srcdir)/../include prefix to
getopt.h dependency.
(mips-tdump.o): Likewise.
2005-06-06 Jan Hubicka <jh@suse.cz>
* predict.c (tree_predict_edge): Don't drop useless predictions;
check that it is not called too late in the game.
(gate_estimate_probability): New gate.
(pass_profile): Gate.
* tree-mudflap.c (mf_build_check_statement_for): Do not drop
predictions; update CFG instead.
* cfgrtl.c (rtl_verify_flow_info): Check that predcitions are consumed.
2005-06-06 Jie Zhang <jie.zhang@analog.com>
* config.gcc (bfin*-uclinux*): New.
* config/bfin/uclinux.h: New file.
2005-06-06 Ben Elliston <bje@au.ibm.com>
* doc/md.texi (Insn Splitting): Fix some wording.
2005-06-05 David Edelsohn <edelsohn@gnu.org>
* config/rs6000/rs6000.c (rs6000_emit_swdivsf): New function.
(rs6000_emit_swdivdf): New function.
* config/rs6000/rs6000.md (fres): New pattern.
(divsf3): Add approximation through rs6000_emit_swdivsf.
(fred): New pattern.
(divdf3): Add approximation through rs6000_emit_swdivdf.
* config/rs6000/rs6000-protos.h (rs6000_emit_swdivsf): Declare.
(rs6000_emit_swdivdf): Declare.
* config/rs6000/rs6000.opt (mswdiv): New option.
* doc/invoke.texi (RS/6000 and PowerPC Options): Document mswdiv.
2005-06-05 Zdenek Dvorak <dvorakz@suse.cz>
PR tree-optimization/21846
* tree-cfg.c (replace_uses_by): Update information stored at loops.
* tree-flow.h (substitute_in_loop_info): Declare.
* tree-scalar-evolution.c (initialize_scalar_evolutions_analyzer):
Ensure that chrec_dont_know and chrec_known have a type.
* tree-ssa-loop-niter.c (substitute_in_loop_info): New function.
2005-06-05 Steven Bosscher <stevenb@suse.de>
* config/i386/i386.c (x86_use_loop): Remove.
* config/i386/i386.h (x86_use_loop): Remove extern decl.
(TARGET_USE_LOOP): Remove.
* config/i386/i386.md (doloop_end, doloop_end_internal): Remove.
Also remove related define_splits.
2005-06-05 Dorit Nuzman <dorit@il.ibm.com>
* tree-flow.h (stmt_ann_d): Move aux to ...
(tree_ann_common_d): ... here.
* tree-ssa-loop-im.c (LIM_DATA, determine_invariantness_stmt,
move_computations_stmt, schedule_sm): Update references to
aux.
* tree-vectorizer.h (set_stmt_info, vinfo_for_stmt): Likewise.
* tree-vect-transform.c (vect_create_index_for_vector_ref): Update
call to set_stmt_info.
(vect_transform_loop): Likewise.
* tree-vectorizer.c (new_loop_vec_info, destroy_loop_vec_info):
Likewise.
* tree-vect-analyze.c (vect_analyze_scalar_cycles): Made void instead of
bool.
(vect_mark_relevant): Takes two additional arguments - live_p and
relevant_p. Set RELEVANT_P and LIVE_P according to these arguments.
(vect_stmt_relevant_p): Differentiate between a live stmt and a
relevant stmt. Return two values = live_p and relevant_p.
(vect_mark_stmts_to_be_vectorized): Call vect_mark_relevant and
vect_stmt_relevant_p with additional arguments. Phis are no longer
put into the worklist (analyzed seperately in analyze_scalar_cycles).
(vect_determine_vectorization_factor): Also check for LIVE_P, because a
stmt that is marked as irrelevant and live, cause it's only used out
side the loop, may need to be vectorized (e.g. reduction).
(vect_analyze_operations): Examine phis. Call
vectorizable_live_operation for for LIVE_P stmts. Check if
need_to_vectorize.
(vect_analyze_scalar_cycles): Update documentation. Don't fail
vectorization - just classify the scalar cycles created by the loop
phis. Call vect_is_simple_reduction.
(vect_analyze_loop): Call to analyze_scalar_cycles moved earlier.
* tree-vect-transform.c (vect_create_index_for_vector_ref): Update
call to set_stmt_info.
(vect_get_vec_def_for_operand): Code reorganized - the code that
classifies the type of use was factored out to vect_is_simple_use.
(vectorizable_store, vect_is_simple_cond): Call vect_is_simple_use with
additional arguments.
(vectorizable_assignment): Likewise. Also make sure the stmt is relevant
and computes a loop_vec_def.
(vectorizable_operation, vectorizable_load, vectorizable_condition):
Likewise.
(vectorizable_live_operation): New.
(vect_transform_stmt): Handle LIVE_P stmts.
* tree-vectorizer.c (new_stmt_vec_info): Initialize the new fields
STMT_VINFO_LIVE_P and STMT_VINFO_DEF_TYPE.
(new_loop_vec_info, destroy_loop_vec_info): Also handle phis.
(vect_is_simple_use): Determine the type of the def and return it
in a new function argument. Consider vect_reduction_def and
vect_induction_def, but for now these are not supported.
(vect_is_simple_reduction): New. Empty for now.
* tree-vectorizer.h (vect_def_type): New enum type.
(_stmt_vec_info): Added new fields - live and _stmt_vec_info.
(STMT_VINFO_LIVE_P, STMT_VINFO_DEF_TYPE): New accessor macros.
(vect_is_simple_use): New arguments added to function declaration.
(vect_is_simple_reduction): New function declaration.
(vectorizable_live_operation): New function declaration.
* tree-vect-analyze.c (vect_can_advance_ivs_p): Add debug printout.
(vect_can_advance_ivs_p): Likewise.
* tree-vect-transform.c (vect_update_ivs_after_vectorizer): Likewise.
2005-06-05 Eric Christopher <echristo@redhat.com>
* config/mips/mips.c (mips_rtx_costs): Remove unused variable.
2005-06-05 Hans-Peter Nilsson <hp@bitrange.com>
PR target/21914
* config/mmix/mmix.md ("*movdicc_real_foldable")
("*movdfcc_real_foldable", "*bCC_foldable")
("*bCC_inverted_foldable"): Specify DImode for register being
compared.
2005-06-04 Roger Sayle <roger@eyesopen.com>
* reg-stack.c (struct block_info_def): Correct grammar typo.
(compensate_edge): Clean-up. Perform as little work as possible
when src and dest stacks match. Avoid modifying block_info.
Reorder and simplify assertion checks. Avoid unnecessary copying
of regstack structure.
(convert_regs_1): Set the done flag here...
(convert_regs_2): ... instead of here.
2005-06-04 Dale Johannesen <dalej@apple.com>
* config/rs6000/rs6000.c (no_global_regs_above): New.
(rs6000_emit_prologue): Use it; cosmetic formatting fixes.
(rs6000_emit_epilogue): Use it; cosmetic formatting fixes.
(rs6000_conditional_register_usage): Don't put Darwin PIC
register in global_regs.
(rs6000_stack_info): Don't set lr_save_p just because Darwin
PIC reg used.
(rs6000_emit_prologue): Save LR in R0 around Darwin PIC setup,
if not done by lr_save_p.
* config/rs6000/rs6000.md (insnv1_internal1): Back out 05-18 patch.
Use rotate instead of ashift.
(call_indirect_nonlocal_sysv): Prefer CTR to LR.
(call_value_indirect_nonlocal_sysv): Ditto.
2005-06-04 Jan Hubicka <jh@suse.cz>
* cgraphunit.c (cgraph_reset_node): Break out from ...
(cgraph_finalize_function): ... here.
(cgraph_finalize_compilation_unit): Reset nodes where backend
removed the body.
2005-06-04 Richard Henderson <rth@redhat.com>
PR target/21888
* config/alpha/alpha.c (alpha_align_insns): Don't insert nops
until we've passed initial ldgp.
2005-06-04 Daniel Berlin <dberlin@dberlin.org>
* cfgexpand.c (expand_one_var): Use DECL_HAS_VALUE_EXPR_P.
* dwarf2out.c (loc_descriptor_from_tree_1): Ditto.
* expr.c (expand_var): Ditto.
* function.c (gimplify_parameters): Use SET_DECL_VALUE_EXPR too.
* gimplify.c (gimplify_decl_expr): Ditto.
(gimplify_expr): Ditto.
* tree-mudflap.c (mf_decl_eligible_p): Use DECL_HAS_VALUE_EXPR_P.
* tree.c (value_expr_for_decl): New.
(print_value_expr_statistics): New.
(init_ttree): Init value_expr_for_decl.
(decl_value_expr_lookup): New.
(decl_value_expr_insert): Ditto.
(copy_node_stat): Copy DECL_VALUE_EXPR status.
* tree.h (DECL_VALUE_EXPR): Use hashtable.
(SET_DECL_VALUE_EXPR): New.
(DECL_HAS_VALUE_EXPR_P): New.
2005-06-04 Steven Bosscher <stevenb@suse.de>
* lcm.c: Move all mode-switching related functions from here...
* mode-switching.c: ...to this new file.
* doc/passes.texi: Update accordingly.
* basic-block.h (label_value_list): Remove extern decl.
* cfgrtl.c (label_value_list): Remove.
(can_delete_label_p): Don't look at it.
* cfgcleanup.c (cleanup_cfg): Don't free it.
* common.opt: Don't refer to non-existing flag_alias_check.
2005-06-04 David Edelsohn <edelsohn@gnu.org>
* config/rs6000/aix52.h (ASM_CPU_SPEC): Add power5.
2005-06-04 Kazu Hirata <kazu@codesourcery.com>
* function.c (prologue, epilogue, sibcall_epilogue): Change
their types to VEC(int,heap)*.
(free_after_compilation): Free the three vectors above.
(init_function_for_compilation, record_insns, contains,
prologue_epilogue_contains, sibcall_epilogue_contains,
reposition_prologue_and_epilogue_notes): Use VEC instead of
VARRAY. (init_function_once): Remove.
* function.h: Remove the prototype for init_function_once.
* toplev.c (backend_init): Don't call init_function_once.
2005-06-04 Jan Hubicka <jh@suse.cz>
* predict.c (tree_predict_edge): Do not predict entry edge and
single succestor edge.
2005-06-04 Joseph S. Myers <joseph@codesourcery.com>
PR c/21873
* c-typeck.c (push_init_level): Don't pop levels without braces if
implicit == 1.
2005-06-03 Sebastian Pop <pop@cri.ensmp.fr>
* tree-data-ref.c (compute_self_dependence): New function.
(compute_all_dependences): Use it.
2005-06-03 Geoffrey Keating <geoffk@apple.com>
* c-parser.c (c_parser_parms_declarator): Don't use chainon().
(c_parser_expr_list): Don't use chainon().
* config/darwin.h (LINK_SPEC): Pass -syslibroot to linker
when -isysroot passed.
2005-06-03 Joseph S. Myers <joseph@codesourcery.com>
PR c/21879
* c-decl.c (start_function): Restore label_context_stack_se and
label_context_stack_vm if returning with an error.
2005-06-03 Gabriel Dos Reis <gdr@integrable-solutions.net>
* configure.ac: Check declaration for asprintf, needed by
libiberty.h.
* configure: Regenerate.
* config.in: Likewise.
2005-06-03 Diego Novillo <dnovillo@redhat.com>
* tree-ssa-dom.c (record_edge_info): Use last_basic_block to
allocate info array.
* tree-vrp.c (extract_range_from_unary_expr): Set resulting
range to varying in cast expressions that change
TYPE_PRECISION.
2005-06-03 Eric Christopher <echristo@redhat.com>
* config/mips/mips.opt: Add RejectNegative to divide-breaks and
divide-traps.
2005-06-03 Jan Hubicka <jh@suse.cz>
* basic-block.h (remove_predictions_associated_with_edge): Declare.
* cfg.c (remove_edge): Use it.
* predict.c (remove_predictions_associated_with_edge): New function.
2005-06-03 Pat Haugen <pthaugen@us.ibm.com>
* config/rs6000/rs6000.c (rs6000_conditional_register_usage):
Clear call_realy_used_regs[r2] when ABI_AIX.
2005-06-03 Richard Guenther <rguenth@gcc.gnu.org>
PR middle-end/21858
* fold-const.c (fold_binary): Fix type mismatches in folding
of comparisons.
2005-06-03 Kazu Hirata <kazu@codesourcery.com>
* cgraph.c, cgraphunit.c, config/mips/mips.c: Fix comment
typos.
2005-06-03 Joseph S. Myers <joseph@codesourcery.com>
* collect2.c (maybe_unlink): Use unlink_if_ordinary.
2005-06-02 Bernd Schmidt <bernd.schmidt@analog.com>
* reload1.c (reload): Revert my previous patch.
2005-06-03 Nick Clifton <nickc@redhat.com>
* config/arm/semi.h (ASM_SPEC): Fix typo passing -mfloat-abi to
assembler.
2005-06-03 Kazu Hirata <kazu@codesourcery.com>
PR tree-optimization/21849
* tree-ssa-copy.c (dump_copy_of): Call sbitmap_zero.
2005-06-02 Richard Henderson <rth@redhat.com>
* Makefile.in (tree-vect-generic.o): New.
(OBJS-common, GTFILES, s-gtype): Add it.
* tree-complex.c (build_replicated_const, vector_inner_type,
vector_last_type, vector_last_nunits, build_word_mode_vector_type,
elem_op_func, tree_vec_extract, do_unop, do_binop, do_plus_minus,
do_negate, expand_vector_piecewise, expand_vector_parallel,
expand_vector_addition, expand_vector_operation,
type_for_widest_vector_mode, expand_vector_operations_1,
gate_expand_vector_operations, expand_vector_operations,
pass_lower_vector_ssa): Move to tree-vect-generic.c.
(tree_lower_complex): Rename from tree_lower_operations.
(pass_lower_complex): Rename from pass_pre_expand.
* tree-vect-generic.c: New file.
* tree-pass.h (pass_lower_complex): Rename from pass_pre_expand.
(pass_lower_vector): New.
* tree-optimize.c (init_tree_optimization_passes): Update to match.
2005-06-02 Richard Henderson <rth@redhat.com>
* modulo-sched.c (doloop_register_get): Protect against
doloop_end not defined.
2005-06-02 Kazu Hirata <kazu@codesourcery.com>
* config/sh/sh.c (general_movsrc_operand,
general_movdst_operand, arith_reg_operand, arith_reg_dest,
logical_reg_operand, int_gpr_dest, fp_arith_reg_operand,
fp_arith_reg_dest, arith_operand, arith_reg_or_0_operand,
xor_operand, cmp_operand, logical_operand, and_operand,
fpscr_operand, fpul_operand, symbol_ref_operand,
commutative_float_operator, noncommutative_float_operator,
unary_float_operator, binary_float_operator,
binary_logical_operator, equality_comparison_operator,
greater_comparison_operator, less_comparison_operator,
shift_operator, logical_operator, target_reg_operand,
target_operand, mextr_bit_offset, extend_reg_operand,
trunc_hi_operand, extend_reg_or_0_operand, minuend_operand,
general_extend_operand, ua_address_operand,
cache_address_operand, inqhi_operand, sh_rep_vec, sh_1el_vec,
sh_const_vec, ua_offset, sh_register_operand, cmpsi_operand,
shift_count_reg_operand, shift_count_operand,
unaligned_load_operand): Move to ...
* config/sh/predicates.md: ... here.
* config/sh/sh.h (PREDICATE_CODES, SPECIAL_MODE_PREDICATES):
Remove.
2005-06-02 Andrew Pinski <pinskia@physics.uc.edu>
* tree.c (build_common_builtin_nodes): Fix the return type on
__builtin_memcmp.
2005-06-02 Richard Guenther <rguenth@gcc.gnu.org>
* tree-ssa-loop-ivopts.c (build_addr_strip_iref): Remove.
(find_interesting_uses_address): Use build_fold_addr_expr instead.
(strip_offset_1): Likewise.
(tree_to_aff_combination): Likewise.
2005-06-02 DJ Delorie <dj@redhat.com>
* convert.c (convert_to_pointer): Avoid recursion if no conversion
is needed.
2005-06-02 Richard Guenther <rguenth@gcc.gnu.org>
* tree-chrec.c (chrec_fold_plus_1): Ensure we build
binary operations with the correct types.
* tree-ssa-loo-ivopts.c (idx_find_step): Use sizetype
for all computation.
2005-06-02 Kazu Hirata <kazu@codesourcery.com>
* tree-vrp.c, config/arm/arm.md, config/arm/arm1020e.md,
config/rs6000/rs6000.md: Fix comment typos. Follow splling
conventions.
* doc/install.texi: Fix a typo.
2005-06-02 Jan Hubicka <jh@suse.cz>
* cgraphunit.c (cgraph_function_and_variable_visibility): Extern
inline functions are not local.
2005-06-02 Kazu Hirata <kazu@codesourcery.com>
* gimplify.c (gimplify_ctx): Change the type of case_labels to
VEC from VARRAY.
(gimplify_switch_expr, gimplify_case_label_expr): Adjust uses
of case_labels.
2005-06-02 Richard Guenther <rguenth@gcc.gnu.org>
* c-typeck.c (build_indirect_ref): Build INDIRECT_REF
with correct type.
2005-06-02 Ulrich Weigand <uweigand@de.ibm.com>
* config/s390/s390.c (s390_add_execute): Do not handle out-of-pool
execute templates.
(s390_dump_pool): Likewise.
(s390_mainpool_start, s390_mainpool_finish): Likewise.
(s390_chunkify_start): Likewise.
(s390_dump_execute): Remove.
(s390_reorg): Handle out-of-pool execute templates.
2005-06-02 Adrian Straetling <straetling@de.ibm.com>
* optabs.c: (expand_bool_compare_and_swap): Emit barrier after
unconditional jump.
2005-06-02 Jan Hubicka <jh@suse.cz>
* cgraph.c (cgraph_node): Maintain master clones.
(cgraph_remove_node): Likewise.
(availability_names): New static variable.
(dump_cgraph_node): Dump availability.
(dump_cgraph_varpool_node): Likewise.
(cgraph_is_master_clone, cgraph_master_clone,
cgraph_function_body_availability,
cgraph_variable_initializer_availability): New functions.
* cgraph.h (availability): New enum.
(struct cgraph_node): Add master_clone.
(cgraph_is_master_clone, cgraph_master_clone,
cgraph_function_body_availability,
cgraph_variable_initializer_availability): Declare.
* cgraphunit.c (cgraph_expand_function): Setcgraph_function_flags_ready.
(cgraph_remove_unreachable_nodes): Remove unreachable nodes.
* ipa-inline.c (cgraph_decide_inlining): Do not call
cgraph_remove_unreachable_nodes.
* cgraphunit.c (cgraph_function_and_variable_visibility): Fix typo in
previous patch.
2005-06-02 Diego Novillo <dnovillo@redhat.com>
PR 21582
* tree-vrp.c (nonnull_arg_p): New.
(get_value_range): Call it.
2005-06-02 Eric Christopher <echristo@redhat.com>
* config/mips/mips.h (processor_type): Remove PROCESSOR_DEFAULT,
add PROCESSOR_MAX.
(mips_rtx_cost_data): New datatype.
(MEMORY_MOVE_COST): Use data from structure.
(BRANCH_COST): Ditto.
(LOGICAL_OP_NON_SHORT_CIRCUIT): Define to zero.
* config/mips/mips.md (cpu): Rework for processor_type changes.
* config/mips/mips.c (mips_cost): New variable.
(DEFAULT_COSTS): Define.
(mips_rtx_cost_data): New.
(mips_rtx_costs): Use. Minor formatting changes. Use COSTS_N_INSNS
for NEG cost. Add support for FLOAT, UNSIGNED_FLOAT, FIX,
FLOAT_EXTEND, FLOAT_TRUNCATE, and SQRT.
(override_options): Set cost data.
(mips_register_move_cost): Formatting changes.
(bdesc_arrays): Use PROCESSOR_MAX.
(mips_init_builtins): Ditto.
2005-06-02 Diego Novillo <dnovillo@redhat.com>
PR 21765
* doc/invoke.texi: Document -ftree-vrp.
2005-06-02 Dorit Nuzman <dorit@il.ibm.com>
PR tree-optimization/21734
* tree-vectorizer.c (slpeel_update_phis_for_duplicate_loop): Use the
phi_result when current_def is not available.
(slpeel_update_phi_nodes_for_guard1): Don't fail if current_def is not
available.
2005-06-02 David Edelsohn <edelsohn@gnu.org>
* config/rs6000/rs6000.c (rs6000_insn_valid_within_doloop): New.
(TARGET_INSN_VALID_WITHIN_DOLOOP): Define.
2005-06-02 Diego Novillo <dnovillo@redhat.com>
* tree-vrp.c (has_assert_expr, maybe_add_assert_expr): Remove.
2005-06-02 Jan Hubicka <jh@suse.cz>
* cgraph.c (dump_cgraph_node): Print new flags.
(dump_cgraph_varpool_node): Likewise.
(decide_variable_is_needed): Initialize externally_visible flag.
* cgraph.h (cgraph_local_info): Add externally_visible flag.
(cgraph_varpool_node): Likewise.
(cgraph_function_flags_ready): Declare.
* cgraph.c (cgraph_mark_local_functions): Rename to ...
(cgraph_function_and_variable_visibility) ... this one; handle
externally_visible flags.
(decide_is_function_needed): Set externally_visible flag.
(cgraph_finalize_function): Deal properly with early cleanups.
(cgraph_optimize): Update call of
cgraph_function_and_variable_visibility.
2005-06-02 Steven Bosscher <stevenb@suse.de>
Mostafa Hagog <mustafa@il.ibm.com>
* cfgloop.h (doloop_condition_get): Make external.
* loop-doloop.c (doloop_condition_get): Generalize to make it
usable in modulo-sched.c.
* modulo-sched.c (doloop_register_get): Use
doloop_condition_get instead of duplicating it.
2005-06-02 Bernd Schmidt <bernd.schmidt@analog.com>
* reload1.c (reload): Undo 2005-04-20 change. Make sure we detect
the correct set of init_insns that need deletion.
* local-alloc.c (update_equiv_regs): When substituting sole definition
into sole use of a reg, delete it from liveness information.
2005-06-02 Kaz Kojima <kkojima@gcc.gnu.org>
* config/sh/sh.h (TARGET_FPU_DOUBLE): Use MASK_SH4.
2005-06-01 Diego Novillo <dnovillo@redhat.com>
PR 14341, PR 21332, PR 20701, PR 21029, PR 21086, PR 21090
PR 21289, PR 21348, PR 21367, PR 21368, PR 21458.
* fold-const.c (invert_tree_comparison): Make extern.
* tree-flow.h (enum value_range_type): Move to tree-ssa-propagate.
(struct value_range_def): Limewise.
(get_value_range): Remove.
(dump_value_range): Remove.
(dump_all_value_ranges): Remove.
(debug_all_value_ranges): Remove.
(vrp_evaluate_conditional): Declare.
* tree-ssa-propagate.c (struct prop_stats_d): Add field
num_pred_folded.
(substitute_and_fold): Add argument use_ranges_p.
Update all callers.
If use_ranges_p is true, call fold_predicate_in to fold
predicates using range information.
Ignore ASSERT_EXPRs.
Change debugging output to only show statements that have been
folded.
(replace_phi_args_in): Move debugging output code from
substitute and fold.
(fold_predicate_in): New local function.
* tree-ssa-propagate.h (enum value_range_type): Move from
tree-flow.h.
(struct value_range_d): Likewise.
Add field 'equiv'.
(value_range_t): Rename from value_range.
* tree-vrp.c (found_in_subgraph): Rename from found.
(get_opposite_operand): Remove.
(struct assert_locus_d): Declare.
(assert_locus_t): Declare.
(need_assert_for): Declare.
(asserts_for): Declare.
(blocks_visited): Declare.
(vr_value): Declare.
(set_value_range): Add argument 'equiv'.
Don't drop to VARYING ranges that cover all values in the
type.
Make deep copy of equivalence set 'equiv'.
(copy_value_range): New local function.
(set_value_range_to_undefined): New local function.
(compare_values): Return -2 if either value has overflowed.
(range_includes_zero_p): New local function.
(extract_range_from_assert): Flip the predicate code if the
name being asserted is on the RHS of the predicate.
Avoid creating unnecessary symbolic ranges if the comparison
includes another name with a known numeric range.
Update the equivalnce set of the new range when asserting
EQ_EXPR predicates.
(extract_range_from_ssa_name): Update the equivalence set of
the new range with VAR.
(extract_range_from_binary_expr): Also handle TRUTH_*_EXPR.
If -fwrapv is used, set the resulting range to VARYING if the
operation overflows. Otherwise, use TYPE_MIN_VALUE and
TYPE_MAX_VALUE to represent -INF and +INF.
Fix handling of *_DIV_EXPR.
(extract_range_from_unary_expr): Handle MINUS_EXPR and
ABS_EXPR properly by switching the range around if necessary.
(extract_range_from_comparison): New local function.
(extract_range_from_expr): Call it.
(adjust_range_with_scev): Do not adjust the range if using
wrapping arithmetic (-fwrapv).
(dump_value_range): Also show equivalence set.
Show -INF and +INF for TYPE_MIN_VALUE and TYPE_MAX_VALUE.
(build_assert_expr_for): Also build ASSERT_EXPR for EQ_EXPR.
(infer_value_range): Change return value to bool.
Add arguments 'comp_code_p' and 'val_p'.
Do not attempt to infer ranges from statements that may throw.
Store the comparison code in comp_code_p.
Store the other operand to be used in the predicate in val_p.
(dump_asserts_for): New.
(debug_asserts_for): New.
(dump_all_asserts): New.
(debug_all_asserts): New.
(register_new_assert_for): New.
(register_edge_assert_for): New.
(find_conditional_asserts): New.
(find_assert_locations): New.
(process_assert_insertions_for): New.
(process_assert_insertions): New.
(insert_range_assertions): Initialize found_in_subgraph,
blocks_visited, need_assert_for and asserts_for.
Call find_assert_locations and process_assert_insertions.
(remove_range_assertions): Add more documentation.
(vrp_initialize): Change return type to void.
Do not try to guess if running VRP is worth it.
(compare_name_with_value): New.
(compare_names): New.
(vrp_evaluate_conditional): Add argument 'use_equiv_p'. If
use_equiv_p is true, call compare_names and
compare_name_with_value to compare all the ranges for every
name in the equivalence set of the predicate operands.
Update all callers.
(vrp_meet): Try harder not to derive a VARYING range.
If two values meet, the resulting equivalence set is the
intersection of the two equivalence sets.
(vrp_visit_phi_node): Call copy_value_range to get the current
range information of the LHS.
(vrp_finalize): Create a value vector representing all the
names that ended up with exactly one value in their range.
Call substitute_and_fold.
(execute_vrp): Document equivalence sets in ranges.
* tree.h (SSA_NAME_VALUE_RANGE): Remove.
(struct tree_ssa_name): Remove field value_range.
(invert_tree_comparison): Declare.
2005-06-01 Daniel Berlin <dberlin@dberlin.org>
Fix PR tree-optimization/21839
* gimplify.c (zero_sized_field_decl): New function.
(gimplify_init_ctor_eval): Use it.
2005-06-01 Josh Conner <jconner@apple.com>
PR 21478
* gimplify.c (gimplify_init_constructor): Don't spill initializer
to read-only memory if it's sparse.
2005-06-01 Ramana Radhakrishnan <ramana@codito.com>
* doc/rtl.texi: Remove references to NOTE_INSN_SETJMP.
Add documentation for REG_SETJMP
2005-06-01 Richard Guenther <rguenth@gcc.gnu.org>
* stmt.c (expand_case): Use build_int_cst.
(node_has_low_bound): Likewise, and correct type mismatch.
(node_has_high_bound): Likewise.
* fold-const.c (fold_binary): Ensure we build trees
with the correct types - undo what STRIP_NOPS possibly did.
2005-06-01 Richard Guenther <rguenth@gcc.gnu.org>
* tree.h (fold_indirect_ref_1): Export from fold-const.c.
* fold-const.c (fold_indirect_ref_1): No longer static.
* tree-inline.c (copy_body_r): Use fold_indirect_ref_1 for
folding, if possible.
2005-06-01 Joseph S. Myers <joseph@codesourcery.com>
* common.opt (fjump-tables): New.
* doc/invoke.texi (-fno-jump-tables): Document.
* stmt.c (expand_end_case_type): Do not emit jump tables unless
flag_jump_tables.
2005-06-01 Richard Earnshaw <richard.earnshaw@arm.com>
* arm.md (bunordered, bordered, bungt, bunlt, bunge, bunle, buneq)
(bltgt, arm_buneq, arm_bltgt, sunordered, sordered, sungt, sunge)
(sunlt, sunle): Enable patterns on VFP.
* arm.md (attribute 'type'): Add new types - f_loads floadd, f_stores,
f_stored, f_flag, f_cvt.
(generic_sched): No-longer used for the arm1020e and arm1022e cores.
Include arm1020e.md.
* vfp.md (fmstat): New cpu unit. Add an exclusion set between it and
the ds and fmac pipelines. Re-work all load and store patterns and
all conversion patterns to use new attributes. Adjust reservation
descriptions accordingly.
* arm1020e.md: New file.
* t-arm: Add dependency.
2005-06-01 Jan Hubicka <jh@suse.cz>
* except.c (struct eh_region): Kill unused fields.
* basic-block.h (struct basic_block_def): Likewise.
2005-06-01 J"orn Rennecke <joern.rennecke@st.com>
PR rtl-optimization/21767
* rtl.h (function_invariant_p): Re-add declaration.
* reload1.c (function_invariant_p): No longer static.
* ifcvt.c (dead_or_predicable): Remove REG_EQUAL notes that
might have become invalid.
2005-06-01 Jakub Jelinek <jakub@redhat.com>
PR c/21536
PR c/20760
* gimplify.c (gimplify_decl_expr): Call gimplify_type_sizes
on variable sizes types if a decl is a pointer to a VLA.
(gimplify_type_sizes): Handle POINTER_TYPE and REFERENCE_TYPE.
Call gimplify_type_sizes on aggregate fields. Prevent infinite
recursion.
* fold-const.c (fold_ternary): Optimize BIT_FIELD_REF of VECTOR_CST.
* config/i386/xmmintrin.h (_mm_setzero_ps, _mm_set_ss, _mm_set1_ps,
_mm_set_ps, _mm_setr_ps): Add __extension__.
* config/i386/emmintrin.h (_mm_set_sd, _mm_set1_pd, _mm_set_pd,
_mm_setr_pd, _mm_setzero_pd, _mm_set_epi64x, _mm_set_epi64x,
_mm_set_epi32, _mm_set_epi16, _mm_set_epi8, _mm_setzero_si128):
Likewise.
(_mm_clflush): Don't use return in void function.
* config/i386/emmintrin.h (_mm_castpd_ps, _mm_castpd_si128,
_mm_castps_pd, _mm_castps_si128, _mm_castsi128_ps, _mm_castsi128_pd):
Use __inline instead of inline.
2005-06-01 Richard Guenther <rguenth@gcc.gnu.org>
* fold-const.c (fold_binary): Fix types in strlen vs.
zero comparison folding.
2005-06-01 Richard Henderson <rth@redhat.com>
* configure.ac (HAVE_AS_JSRDIRECT_RELOCS): New.
* config.in, configure: Rebuild.
* config/alpha/alpha.c (print_operand): Add 'j'.
* alpha.md (divmodsi_internal_er_1): Use it.
(divmoddi_internal_er_1): Likewise.
2005-06-01 Richard Sandiford <rsandifo@redhat.com>
* system.h (TARGET_OPTIONS, TARGET_SWITCHES): Poison.
* opts.h (print_filtered_help): Delete.
* opts.c (handle_option, decode_options): Remove calls to
set_target_switch.
(print_target_help): New function.
(common_option, print_help): Call print_target_help instead of
display_target_options.
(print_filtered_help): Make static.
* toplev.h (display_target_options, set_target_switch): Delete.
* toplev.c (target_switches, target_options, display_target_options)
(set_target_switch): Delete.
(print_switch_values): Remove handling of TARGET_SWITCHES and
TARGET_OPTIONS.
(default_get_pch_validity): Likewise. Only treat target_flags
specially if targetm.check_pch_target_flags is nonnull.
(pch_option_mismatch): New function.
(default_pch_valid_p): Use it. Remove handling of TARGET_SWITCHES
and TARGET_OPTIONS. Only treat target_flags specially if
targetm.check_pch_target_flags is nonnull.
* config/ia64/ia64.c (ia64_override_options): Don't mention
TARGET_OPTIONS in comment.
* config/m68k/m68k-none.h (CC1_SPEC): Likewise.
* doc/invoke.texi: Remove a reference to TARGET_SWITCHES.
* doc/tm.texi (TARGET_DEFAULT_TARGET_FLAGS): Don't mention the
interaction with TARGET_SWITCHES.
(TARGET_@var{featurename}, TARGET_SWITCHES, TARGET_OPTIONS): Delete.
2005-06-01 Richard Sandiford <rsandifo@redhat.com>
* config/sh/sh.c (multcosts): Check sh_multcost rather than
sh_multcost_str.
(sh_register_move_cost): Likewise sh_gettrcost and sh_gettrcost_str.
(sh_multcost_str, sh_gettrcost_str, sh_div_str, sh_divsi3_libfunc)
(cut2_workaround_str): Delete.
* config/sh/sh.h (SUBTARGET_OPTIONS, TARGET_OPTIONS)
(TARGET_SH5_CUT2_WORKAROUND, sh_multcost_str, sh_gettrcost_str)
(sh_div_str, sh_divsi3_libfunc, cut2_workaround_str): Delete.
* config/sh/sh.opt (mcut2-workaround, mdiv=, mdivsi3_libfunc=)
(mgettrcost=, multcost=): New options.
2005-06-01 Richard Sandiford <rsandifo@redhat.com>
* opts.h (cl_option_state): New structure.
(get_option_state): Declare.
* opts.c (get_option_state): New function.
* toplev.c (option_affects_pch_p): New function.
(default_get_pch_validity): Store the state of all options for which
option_affects_pch_p returns true.
(default_pch_valid_p): Check the state of those options here.
Only check target_flags separately if targetm.check_pch_target_Flags
is nonnull or if TARGET_SWITCHES is defined.
2005-06-01 Richard Sandiford <rsandifo@redhat.com>
* config/mips/mips-protos.h (mips_use_ins_ext_p): Remove parameter
names.
2005-06-01 Mostafa Hagog <mustafa@il.ibm.com>
* modulo-sched.c (undo_generate_reg_moves ): Fix PR 21138.
2005-06-01 Mostafa Hagog <mustafa@il.ibm.com>
* gcse.c (compute_transp, load_killed_in_block): Use
MEM_READONLY_P.
2005-06-01 David.Billinghurst <David.Billinghurst@riotinto.com>
PR target/21854
* config/mips/mips-protos.h: Declare mips_use_ins_ext_p
2005-05-31 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* errors.h (warning, error, fatal, internal_error): Add printf
attribute.
* genmodes.c (make_vector_mode): Fix format arguments.
2005-05-31 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* basic-block.h, bb-reorder.c, c-gimplify.c, config/darwin.c,
config/rs6000/rs6000-c.c, dominance.c, gimple-low.c, gimplify.c,
lambda-code.c, lambda-trans.c, tree-browser.c, tree-cfg.c,
tree-chrec.c, tree-data-ref.c, tree-dfa.c, tree-eh.c,
tree-if-conv.c, tree-into-ssa.c, tree-loop-linear.c,
tree-mudflap.c, tree-nomudflap.c, tree-outof-ssa.c,
tree-pretty-print.c, tree-scalar-evolution.c, tree-sra.c,
tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
tree-ssa-dse.c, tree-ssa-forwprop.c, tree-ssa-live.c,
tree-ssa-operands.c, tree-ssa-phiopt.c, tree-ssa-pre.c,
tree-ssa-propagate.c, tree-ssa-sink.c, tree-ssa-threadupdate.c,
tree-ssa-uncprop.c, tree-ssa.c, tree-vect-analyze.c,
tree-vect-transform.c, tree-vectorizer.c, vec.c: Don't include
errors.h and include toplev.h if necessary.
* rtl.c, varray.c: If we're compiling as a GENERATOR_FILE, include
errors.h otherwise include toplev.h.
* Makefile.in: Update dependencies.
2005-06-01 Danny Smith <dannysmith@users.sourceforge.net>
* config/i386/cygming.h (NO_PROFILE_COUNTERS): Define.
2005-05-31 Geoffrey Keating <geoffk@geoffk.org>
* config/rs6000/rs6000.md (sync_boolcshort_internal): New.
* config/rs6000/rs6000.c (rs6000_emit_sync): Shift count must
be complemented for big-endian. Mask for AND must be rotated,
not shifted. Handle short operands with NOT on the memory
operation.
2005-05-30 Daniel Berlin <dberlin@dberlin.org>
* c-objc-common.c (c_tree_printer): Check flag before hashtable.
Use DECL_DEBUG_EXPR and SET_DECL_DEBUG_EXPR.
* dwarf2out.c (dwarf2out_var_location): Ditto.
* toplev.c (default_tree_printer): Ditto.
* tree-outof-ssa.c (create_temp): Ditto.
* tree-sra.c (instantiate_element): Ditto.
* var-tracking.c (track_expr_p): Ditto.
* tree.c (struct tree_map): New structure.
(debug_expr_for_decl): New.
(tree_map_eq): New function.
(tree_map_hash): Ditto.
(tree_map_marked_p): Ditto.
(print_debug_expr_statistics): Ditto.
(decl_debug_expr_lookup): Ditto.
(decl_debug_expr_insert): Ditto.
(dump_tree_statistics): Dump debug_expr hashtable stats.
* tree.h (DECL_DEBUG_EXPR): Change
(SET_DECL_DEBUG_EXPR): Add.
2005-06-01 Alan Modra <amodra@bigpond.net.au>
* configure.ac: Add --enable-secureplt.
(HAVE_AS_REL16): Test for R_PPC_REL16 relocs.
* config.in: Regenerate.
* configure: Regenerate.
* config.gcc (powerpc64-*-linux*, powerpc-*-linux*): Add
rs6000/secureplt.h to tm_file when enable_secureplt.
* doc/invoke.texi (msecure-plt, mbss-plt): Document.
* doc/install.texi: Document --enable-targets and --enable-secureplt.
Correct xrefs to "Using the GNU Compiler Collection (GCC)".
* config/rs6000/secureplt.h: New file.
* config/rs6000/sysv4.h (TARGET_SECURE_PLT): Define.
(SUBTARGET_OVERRIDE_OPTIONS): Error if -msecure-plt given without
assembler support.
(CC1_SECURE_PLT_DEFAULT_SPEC): Define.
(CC1_SPEC): Delete duplicate mno-sdata. Invoke cc1_secure_plt_default.
(SUBTARGET_EXTRA_SPECS): Add cc1_secure_plt_default.
* config/rs6000/sysv4.opt (msecure-plt, bss-plt): Add options.
* config/rs6000/rs6000.h (TARGET_SECURE_PLT): Define.
* config/rs6000/rs6000.c (rs6000_emit_load_toc_table): Handle
TARGET_SECURE_PLT got register load sequence.
(rs6000_emit_prologue): Call rs6000_emit_load_toc_table when
TARGET_SECURE_PLT.
(rs6000_elf_declare_function_name): Don't emit toc address offset
word when TARGET_SECURE_PLT.
* config/rs6000/rs6000.md (elf_high, elf_low): Move past load_toc_*.
(load_toc_v4_PIC_1) Enable for TARGET_SECURE_PLT.
(load_toc_v4_PIC_3b, load_toc_v4_PIC_3c): New insns.
(call, call_value): Mark pic_offset_table_rtx used for sysv pic and
TARGET_SECURE_PLT.
(call_nonlocal_sysv, call_value_nonlocal_sysv, sibcall_nonlocal_sysv,
sibcall_value_nonlocal_sysv): Add 32768 offset when TARGET_SECURE_PLT
and -fPIC.
* config/rs6000/tramp.asm (trampoline_initial): Use "bcl 20,31".
(__trampoline_setup): Likewise. Init r30 before plt call.
2005-05-31 DJ Delorie <dj@redhat.com>
* expr.c (convert_move): When a partial_int requires multiple
conversion steps, make sure successive steps convert the
intermediate value, not the original value.
* expmed.c (expand_mult): Convert partial_int multiplies to
shift/add combinations too.
* genmodes.c (mode_data): Add wider_2x.
(calc_wider_mode): Calculate twice-wider mode too.
(emit_mode_wider): Emit twice-wider mode too.
* machmode.h (mode_2xwider, GET_MODE_2XWIDER_MODE): New.
* expr.c (expand_expr_real_1): Use it for expanding
multiplies.
2005-05-31 Zdenek Dvorak <dvorakz@suse.cz>
PR tree-optimization/21817
* tree-ssa-loop-im.c (for_each_index): Handle VECTOR_CST.
2005-05-31 Pat Haugen <pthaugen@us.ibm.com>
* loop.c (loop_invariant_p, valid_initial_value_p): Revert last
change.
2005-05-31 Andrew Pinski <pinskia@physics.uc.edu>
PR middle-end/20931
PR middle-end/20946
* fold-const.c (fold_checksum_tree): Copy types also if
TYPE_CONTAINS_PLACEHOLDER_INTERNAL is set.
Don't call fold_checksum_tree for TREE_LIST's TREE_CHAIN
first.
Tail recurse TREE_LIST's TREE_CHAIN.
2005-05-31 Andrew Pinski <pinskia@physics.uc.edu>
PR tree-opt/21732
* tree-ssa-copy.c (dump_copy_of): Create a bitmap and don't visit a
SSA_NAME twice and cause the loop to become finite. Remove the test
for val.
2005-05-31 Andrew Pinski <pinskia@physics.uc.edu>
* tree-cfg.c (verify_expr): Add checking for COND_EXPR's conditional
expression.
2005-05-31 Richard Sandiford <rsandifo@redhat.com>
* doc/tm.texi (TARGET_GET_PCH_VALIDITY, TARGET_PCH_VALID_P): Tweak
the documentation to make it more future-proof.
(TARGET_CHECK_PCH_TARGET_FLAGS): Document this new hook.
* target.h (gcc_target): Add check_pch_target_flags.
* target-def.h (TARGET_CHECK_PCH_TARGET_FLAGS): New macro.
(TARGET_INITIALIZER): Include it.
* toplev.c (default_pch_valid_p): Use targetm.check_pch_target_flags.
* config/sh/sh-protos.h (sh_pch_valid_p): Delete.
* config/sh/sh.c (TARGET_PCH_VALID_P, sh_pch_valid_p): Delete.
(sh_check_pch_target_flags): New function.
(TARGET_CHECK_PCH_TARGET_FLAGS): Override default.
2005-05-31 Richard Guenther <rguenth@gcc.gnu.org>
* fold-const.c (extract_array_ref): Handle more cases,
do some useful canonicalization of the base.
(fold_binary): Explicitly deal with arrays of zero-sized
structures during folding of &a[i] == &a[j].
2005-05-31 Eric Botcazou <ebotcazou@libertysurf.fr>
* doc/install.texi (sparc-sun-solaris2*): Update note
about Sun bug 4910101.
(sparc-sun-solaris2.7): Document bootstrap
failure with Sun WorkShop 6 99/08/18 as.
2005-05-30 Pat Haugen <pthaugen@us.ibm.com>
* loop.c (loop_invariant_p, valid_initial_value_p): Use
regs_invalidated_by_call instead of call_used_regs.
2005-05-30 Paolo Carlini <pcarlini@suse.de>
PR middle-end/21743
* builtins.def (BUILT_IN_CLOG, BUILT_IN_CLOGF, BUILT_IN_CLOGL):
Enable.
* doc/extend.texi: Add clog, clogf, clogl.
2005-05-30 H.J. Lu <hongjiu.lu@intel.com>
PR middle-end/20303
* c-pragma.c: Include "vec.h".
(handle_pragma_visibility): Use VEC.
* doc/invoke.texi: Remove the nested visibility push limit.
2005-05-30 Roger Sayle <roger@eyesopen.com>
PR rtl-optimization/15422
* reg-stack.c (starting_stack_p): New static global.
(straighten_stack): Delete prototype. Change to update the stack
before the current insn.
(subst_stack_regs): Update call to straighten stack.
(emit_swap_insn): Delete prototype. For the first insn in a
basic block, update stack_in instead of emitting a real swap.
(change_stack): When changing the stack before the first insn
in a basic block, update stack_in instead of emitting real code.
(compensate_edges): Clear starting_stack_p during compensation.
(convert_regs_1): Keep track of starting_stack_p whilst processing
a basic block.
2005-05-30 Kazu Hirata <kazu@cs.umass.edu>
* tree-ssa-ccp.c (const_val): Make it static.
2005-05-29 Geoffrey Keating <geoffk@apple.com>
PR target/21761
* config/rs6000/rs6000.md: Remove stray TARGET_32BIT from
pattern involving `:P'.
* Makefile.in (install-cpp): Depend on installdirs.
2005-05-30 Kazu Hirata <kazu@cs.umass.edu>
* tree-outof-ssa.c (_elim_graph): Change the type of edge_list
to VEC(int,heap)*.
(new_elim_graph, clear_elim_graph, delete_elim_graph,
elim_graph_add_edge, elim_graph_remove_succ_edge,
FOR_EACH_ELIM_GRAPH_SUCC, FOR_EACH_ELIM_GRAPH_PRED): Use VEC
instead of VARRAY.
2005-05-29 Kazu Hirata <kazu@cs.umass.edu>
* cgraphunit.c, ipa-inline.c, loop-iv.c, modulo-sched.c,
opts.c, postreload-gcse.c, tree-browser.def, tree-eh.c,
tree-ssa-copyrename.c, tree-vect-analyze.c: Fix typos and
follow spelling conventions in error/dump messages.
2005-05-29 Roger Sayle <roger@eyesopen.com>
Richard Henderson <rth@redhat.com>
* ifcvt.c (noce_emit_move_insn): Construct a SET pattern directly
if the RHS isn't suitable for calling emit_move_insn.
2005-05-29 Kazu Hirata <kazu@cs.umass.edu>
* tree-ssa-ccp.c (ccp_fold): Return immediately after calling
fold_unary and fold_binary.
2005-05-29 Roger Sayle <roger@eyesopen.com>
* reg-stack.c (propagate_stack): Always copy the source stack to
the destination. This routine is now only called when this is safe.
(better_edge): New function split out from convert_regs_1 to
determine which of two edges is better to propagate across.
(convert_regs_1): We need only search for a best edge if the
stack layout hasn't been defined yet. Use better_edge to help
find beste. No longer traverse unnecessary edges.
2005-05-29 Keith Besaw <kbesaw@us.ibm.com>
* tree-ssa-alias.c (new_type_alias): New procedure to
create a type memory tag for a pointer with a may-alias
set determined from a variable declaration.
* tree-flow.h: export declaration of new_type_alias
* tree-optimize.c (init_tree_optimization_passes): document
that pass_may_alias cannot be called after pass_vectorize.
* tree-vect-transform (vect_create_data_ref_ptr): Call
new_type_alias when an type memory tag isn't available
for a reference.
(vectorizable_store): Use copy_virtual_operands to update
virtual defs in place (so that loop_version can be called).
Call mark_for_renaming for the virtual defs in case peeling
is done and virtual uses outside the loop need to be updated.
2005-05-29 Dorit Naishlos <dorit@il.ibm.com>
PR tree-optimization/21639
* tree-complex.c (pass_lower_vector_s): Remove TODO_ggc_collect.
2005-05-29 Jan Hubicka <jh@suse.cz>
PR tree-optimization/21562
* cfgexpand.c (construct_init_block): Deal properly with the case
of entry edge not pointing to very first basic block.
2005-05-28 Kazu Hirata <kazu@cs.umass.edu>
* tree-ssa-ccp.c (ccp_fold): Remove code that produces
non-gimple min invariant.
* Makefile.in (OBJS-common): Add tree-cfgcleanup.o.
* tree-flow.h: Add prototypes for start_recording_case_labels
and end_recording_case_labels.
* tree-cfg.c (start_recording_case_labels,
end_recording_case_labels): Export.
(cleanup_tree_cfg_loop, modified_noreturn_calls,
cleanup_control_flow, cleanup_control_expr_graph,
remove_fallthru_edge, phi_alternatives_equal,
tree_forwarder_block_p, has_abnormal_incoming_edge_p,
remove_forwarder_block, cleanup_forwarder_blocks,
remove_forwarder_block_with_phi, merge_phi_nodes,
gate_merge_phi, pass_merge_phi): Move to ...
* tree-cfgcleanup.c: ... here.
* basic-block.h: Remove forward declaration of bb_ann_d.
2005-05-28 Jan Hubicka <jh@suse.cz>
* tree-ssa-threadupdate.c: (create_edge_and_update_destination_phis):
Update profile.
* value-prof.c (tree_divmod_fixed_value_transform): Be more verbose in
debug output.
(tree_mod_subtract): Fix profile updating code.
(tree_divmod_values_to_profile): Do not produce useless value profilers
for divisions.
2005-05-28 Kazu Hirata <kazu@cs.umass.edu>
* tree-ssa-dom.c (vrp_element_p): Define.
(vrp_hash_elt): Change the type of records to
VEC(vrp_element_p,heap).
(vrp_free): New.
(tree_ssa_dominator_optimize): Pass vrp_free to htab_create.
Update uses of VRP records.
(simplify_cond_and_lookup_avail_expr, record_range): Update
uses of VRP records.
* tree-inline.c (cfun_stack): Change the type to
VEC(function_p,heap).
(push_cfun, pop_cfun): Use VEC instead of VARRAY.
2005-05-27 Ian Lance Taylor <ian@airs.com>
* c-decl.c (add_stmt): Add C frontend specific version.
(stmts_are_full_exprs_p): Remove.
* c-common.h (STMT_IS_FULL_EXPR_P): Remove.
(stmts_are_full_exprs_p): Don't declare.
* c-semantics.c (add_stmt): Remove.
2005-05-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* config/mips/mips-protos.h (mips_declare_object): Add printf
attribute.
* config/mips/mips.c (mips_declare_object_name): Fix format
argument.
2005-05-27 Roger Sayle <roger@eyesopen.com>
* reg-stack.c (compensate_edge): Remove original prototype.
(propagate_stack): New function to copy the stack layout
at the start of a basic block from the layout at the end of
one of its predecessors.
(compensate_edge): Assume that both source and destination
blocks have already had their stack layouts defined.
(compensate_edges): Traverse all non-entry edges in the CFG
and call compensate_edge on each in turn.
(convert_regs_1): Change return type to void. Call
propagate_stack instead of compensate_edge.
(convert_regs_2): Change return type to void. Update call
to convert_regs_1 to ignore the (now void) return value.
(convert_regs): Update calls to convert_regs_2 to ignore
the (now void) return value. After all the basic blocks have
been processed, call compensate_edges to actually emit new
insns.
(reg_to_stack): Initialize the aux info for each basic block
with FOR_EACH_BB instead of which FOR_EACH_BB_REVERSE.
2005-05-28 Jan Hubicka <jh@suse.cz>
* except.c (can_throw_internal_1, can_throw_external_1): Add
"is_resx" argument.
(can_throw_external, can_throw_internal): Bring into sync wrt
dealing resx.
* except.h (can_throw_internal_1, can_throw_external_1): Update
prototype.
* tree-eh.c (tree_can_throw_internal, tree_can_throw_external):
Deal properly with resx.
2005-05-27 Kazu Hirata <kazu@cs.umass.edu>
* basic-block.h (basic_block_def): Add phi_nodes and
predictions. Remove tree_annotations.
* predict.c (tree_predicted_by_p, tree_predict_edge,
combine_predictions_for_bb): Adjust references to predictions.
* tree-cfg.c (init_empty_tree_cfg, create_bb): Don't call
create_block_annotation.
(create_block_annotation, free_blocks_annotatios,
clear_blocks_annotations): Remove.
(dump_cfg_stats): Don't print out the memory spent on
bb_ann_d.
(delete_tree_cfg_annotations): Don't call free_blocks_annotations.
* tree-flow-inline.h (bb_ann): Remove.
(phi_nodes, set_phi_nodes): Update references to phi_nodes.
* tree-flow.h (bb_ann_d): Remove.
* tree-if-conv.c (process_phi_nodes): Update a reference to
phi_nodes.
* tree-phinodes.c (reserve_phi_args_for_new_edge,
create_phi_node, remove_phi_node): Likewise.
* tree-pretty-print.c (dump_generic_bb_buff): Don't call bb_ann.
* tree-ssa-dom.c (threaded_blocks): New.
(tree_ssa_dominator_optimize): Initialize, clear, and free
threaded_blocks. Update a call to thread_through_all_blocks.
(thread_across_edge): Use threaded_blocks instead of setting
incoming_edge_threaded.
* tree-ssa-threadupdate.c (threaded_through_all_blocks): Take
a bitmap of blocks that are threaded through.
* tree.h: Move the prototype of threaded_through_blocks to
tree-flow.h.
* domwalk.c (walk_dominator_tree, init_walk_dominator_tree,
fini_walk_dominator_tree): Use VEC instead of VARRAY.
* domwalk.h (dom_walk_data): Change the type of
block_data_stack and free_block_data to VEC(void_p,heap)*.
* tree-ssa-dse.c (dse_initialize_block_local_data,
dse_optimize_stmt, dse_record_phis, dse_finalize_block): Use
VEC instead of VARRAY.
2005-05-27 Jan Hubicka <jh@suse.cz>
* cgraph.c: Include tree-gimple.h
(cgraph_edge): Rename expr to stmt.
(cgraph_create_edge): Likewise.
(cgraph_clone_node): Likewise.
* cgraph.h (cgraph_node): Use call_stmt instead of call_expr.
* cgraphunit.c (record_call_1): Rename to ...
(record_reference): ... this one; do not build edges.
(cgraph_varpool_analyze_pending_decls): Call record_reference directly.
(current_basic_block): Kill.
(cgraph_create_edges): Rewrite to work on gimple statements nicely.
(verify_cgraph_node): Likewise.
* tree-inline.c (copy_body_r): Do not mess up with cgraph edges.
(copy_bb): Mess up with cgraph edges here; simplify EH handling.
(copy_edges_for_bb): Simplify EH handling.
(expand_call_inline): Pass statement to cgraph_edge and
cgraph_create_edge.
2005-05-27 Richard Guenther <rguenth@gcc.gnu.org>
* tree-inline.c (copy_body_r): Manually fold *& to deal
with ADDR_EXPRs with mismatched types for now.
* gimplify.c (fold_indirect_ref_rhs): New function.
(gimplify_modify_expr_rhs): Use it instead of pessimistic
fold_indirect_ref.
* fold-const.c (fold_indirect_ref_1): Add type argument;
make sure the resulting expression is of this type.
(build_fold_indirect_ref, fold_indirect_ref): Adjust callers.
2005-05-27 Kazu Hirata <kazu@cs.umass.edu>
PR tree-optimization/21658
* tree-ssa-ccp.c (ccp_fold): Call fold_binary instead of
fold_binary_to_constant. Likewise, call fold_unary instead of
fold_unary_to_constant.
2005-05-27 Nathan Sidwell <nathan@codesourcery.com>
* vec.h: Implement integral type vector specialization.
(VEC_T): Define a non-GTY structure.
(VEC_T_GTY): Define a GTY structure.
(VEC_TA): Rename to ...
(VEC_TA_GTY): ... here.
(DEF_VEC_I, DEF_VEC_ALLOC_I): New.
(DEF_VEC_P, DEF_VEC_ALLOC_P): Adjust.
(DEF_VEC_FUNC_P, DEF_VEC_ALLOC_FUNC_P): New, broken out of
DEF_VEC_P and DEF_VEC_ALLOC_P.
(DEF_VEC_O, DEF_VEC_ALLOC_O): Adjust.
(DEF_VEC_FUNC_O, DEF_VEC_ALLOC_FUNC_O): New, broken out of
DEF_VEC_O and DEF_VEC_ALLOC_O.
* global.c: Use DEF_VEC_I, DEF_VEC_ALLOC_I.
* lambda-code.c: Likewise.
* tree-into-ssa.c: Likewise.
* tree-ssa-live.c: Likewise.
2005-05-27 Kazu Hirata <kazu@cs.umass.edu>
* tree-into-ssa.c (update_ssa): Ensure that the operand cache
is up-to-date.
* tree-ssa-dom.c (tree_ssa_dominator_optimize): Call
update_stmt_if_modified before calling update_ssa.
2005-05-27 Ralf Corsepius <ralf.corsepius@rtems.org>
* config/rs6000/t-rtems: Remove roe multilib variant.
2005-05-26 Roger Sayle <roger@eyesopen.com>
PR tree-optimization/9814
* ifcvt.c (noce_emit_move_insn): If we fail to recognize the move
instruction, add the necessary clobbers by re-expanding the RTL
for arithmetic operations via optab.c's expand_unop/expand_binop.
(noce_try_bitop): New function to optimize bit manipulation idioms
of the form "if (x & C) x = x op C" and "if (!(x & C) x = x op C".
(noce_process_if_block): Call noce_try_bitop.
2005-05-26 Roger Sayle <roger@eyesopen.com>
* reg-stack.c (convert_regs_entry, convert_regs_exit,
convert_regs_1, convert_regs_2, convert_regs): Delete prototypes.
(reg_to_stack): Move to end of the file. Initialize the per
basic block information here, instead of...
(convert_regs_entry): Here.
(convert_regs): Change unused return type to void.
2005-05-27 Kazu Hirata <kazu@cs.umass.edu>
* c-pch.c, timevar.c, timevar.h, unwind-compat.c,
unwind-dw2-fde-compat.c, unwind-dw2-fde.c, config/mmix/mmix.h,
config/rs6000/eabispe.h, config/rs6000/lynx.h,
config/sh/elf.h, config/sh/symbian-pre.h,
config/sparc/sparc-protos.h: Update copyright.
2005-05-26 Mike Stump <mrs@apple.com>
* darwin.h (ASM_OUTPUT_LABELREF): Handle quoted non-lazy pointers
for Objective-C++.
2005-05-26 Richard Guenther <rguenth@gcc.gnu.org>
* tree-ssa-forwprop.c (forward_propagate_addr_expr):
See through ADDR_EXPR in finding place to propagate into.
2005-05-26 Kazu Hirata <kazu@cs.umass.edu>
* c-common.c, c-parser.c, cfgbuild.c, cfghooks.c, cfghooks.h,
cfgrtl.c, cgraphunit.c, ddg.c, expr.h, gcse.c, ggc-page.c,
ggc-zone.c, gimplify.c, ipa-inline.c, longlong.h, targhooks.c,
tree-flow-inline.h, tree-pass.h, tree-ssa-dse.c,
tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c,
tree-ssa-operands.c, tree-vect-analyze.c,
tree-vect-transform.c, tree-vectorizer.c, tree.c,
config/arm/arm.c, config/bfin/bfin.c, config/frv/frv.c,
config/frv/frv.md, config/i386/i386.c, config/i386/sse.md,
config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
config/mcore/mcore.c, config/mips/mips.c, config/mips/mips.md,
config/rs6000/darwin-ldouble.c, config/rs6000/rs6000.c,
config/rs6000/rs6000.h, config/sh/sh.c, config/sh/sh.md,
config/sh/ushmedia.h, config/sparc/sparc.c,
config/sparc/sparc.md, config/stormy16/stormy-abi: Fix comment
typos. Follow spelling conventions.
* doc/invoke.texi, doc/tm.texi, doc/tree-ssa.texi: Fix typos.
Follow spelling conventions.
2005-05-26 David Ung <davidu@mips.com>
* config/mips/mips.c (mips_use_ins_ext_p): New helper function
that determines whether the MIPS32/64 R2 ext/ins should be used.
* config/mips/mips.h (ISA_HAS_EXT_INS): New macro.
* config/mips/mips.md (extzv): Changed predicate for operand to
nonimmediate_operand. Add code to generate insn patterns for
extzvsi and extzvdi.
(extzv<mode>): New pattern to match mips32/64 r2 ext insn.
(insv): Similarly for insertion.
(insv<mode>): Similarly.
2005-05-26 Paolo Bonzini <bonzini@gnu.org>
* simplify-rtx.c (avoid_constant_pool_reference): Support
offsetted addresses in the constant pool.
2005-05-26 Paolo Bonzini <bonzini@gnu.org>
* df.h (DF_SUBREGS, df_local_def_available_p, df_insn_modified_p): New.
* df.c (DF_SUBREGS, df_local_def_available_p, df_insn_modified_p): New.
2005-05-26 Jakub Jelinek <jakub@redhat.com>
PR target/21716
* reg-stack.c (swap_rtx_condition): Don't crash if %ax user was not
found in the basic block and last insn in the basic block is not
INSN_P. Remove explicit unspec numbers that are no longer valid
from comments.
2005-05-26 Paolo Bonzini <bonzini@gnu.org>
* tree-vect-transform.c (vectorizable_operation): Try word_mode
vectorization if UNITS_PER_WORD == UNITS_PER_SIMD_WORD, even
if a vector mode is available.
2005-05-25 Roger Sayle <roger@eyesopen.com>
PR middle-end/21709
* fold-const.c (const_binop): Check for division by zero during
complex division.
2005-05-26 Ian Lance Taylor <ian@airs.com>
* reload1.c (verify_initial_elim_offsets): Add braces to avoid
having a declaration after a statement.
2005-05-26 Richard Sandiford <rsandifo@redhat.com>
* opt-functions.awk (var_type): New function.
(var_set): Use CLVC_STRING if var_type returns "const char *".
* opth-gen.awk: Use var_type to find out the types of variables.
Don't print comments above each "extern" definition.
* optc-gen.awk: Use var_type in the same way.
* opts.h (cl_var_cond): Rename to...
(cl_var_type): ...this. Add CLVC_STRING.
(cl_option): Make "flag_var" a "void *" pointer. Replace "var_cond"
with "var_type".
* opts.c (handle_option, option_enabled): Update after above name
change. Cast flag_var before using it. Handle CLVC_STRING.
* config/alpha/alpha.h (alpha_tls_size): Delete.
* config/alpha/alpha.c (alpha_tls_size, alpha_cpu_string)
(alpha_tune_string, alpha_tp_string, alpha_fprm_string)
(alpha_fptm_string, alpha_mlat_string): Delete.
(alpha_handle_option): Don't set the above variables here. Use the
integer argument to check the validity of -mtls-size=.
* config/alpha/alpha.opt (mcpu=, mtune=, mfp-rounding-mode=)
(mfp-trap-mode=, mtrap-precision=, mmemory-latency=): Add Var()s.
(mtls-size=): Likewise. Convert to a UInteger and initialize the
variable to 32.
* config/arc/arc.c (arc_cpu_string, arc_text_string)
(arc_data_string, arc_rodata_string): Delete.
(arc_handle_option): Don't set the above variables here.
* config/arc/arc.opt (mcpu=, mtext=, mdata=, mrodata=): Add Var()s
and initialize them.
* config/arm/arm.c (target_fpu_name, target_fpe_name)
(target_float_abi_name, target_abi_name, structure_size_string)
(arm_pic_register_string): Delete.
(arm_handle_option): Don't set the above variables here, except
in the handling of -mhard-float and -msoft-float.
* config/arm/arm.opt (mabi=, mfloat-abi=, mfp=, mfpe=, mfpu=)
(mpic-register=, mstructure-size-boundary=): Add Var()s.
* config/avr/avr.c (avr_init_stack, avr_mcu_name, TARGET_HANDLE_OPTION)
(avr_handle_option): Delete.
* config/avr/avr.opt (mmcu=, minit-stack=): Add Var()s and initialize
them.
* config/bfin/bfin.c (bfin_library_id): Delete.
(bfin_handle_option): Don't set it.
* config/bfin/bfin.opt (mshared-library-id=): Add Var().
* config/c4x/c4x.h (c4x_rpts_cycles): Delete.
* config/c4x/c4x.c (c4x_rpts_cycles): Delete.
(c4x_handle_option): Don't set c4x_rpts_cycles here.
* config/c4x/c4x.opt (mrpts=): Add Var().
* config/cris/aout.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't set
cris_elinux_stacksize_str here.
* config/cris/aout.opt (melinux-stacksize=): Add Var().
* config/cris/cris.h (cris_max_stackframe_str, cris_cpu_str)
(cris_tune_str, cris_elinux_stacksize_str): Delete.
* config/cris/cris.c (cris_max_stackframe_str, cris_cpu_str)
(cris_tune_str, cris_elinux_stacksize_str): Delete.
(cris_handle_option): Don't set the above variables here.
* config/cris/cris.opt (mcpu=, march=, mtune=, mmax-stackframe=)
(max-stackframe=): Add Var()s.
* config/i386/i386.h (ix86_tune_string, ix86_arch_string): Delete.
* config/i386/i386.c (ix86_cmodel_string, ix86_asm_string)
(ix86_tls_dialect_string, ix86_tune_string, ix86_arch_string)
(ix86_fpmath_string, ix86_regparm_string, ix86_align_loops_string)
(ix86_align_jumps_string, ix86_preferred_stack_boundary_string)
(ix86_branch_cost_string, ix86_align_funcs_string): Delete.
(ix86_handle_option): Don't set the above variables here.
* config/i386/i386.opt (malign-functions=, malign-jumps=)
(malign-loops=, march=, masm=, mbranch-cost=, mcmodel=, mfpmath=)
(mpreferred-stack-boundary=, mregparm=, mtls-dialect=, mtune=): Add
Var()s.
* config/ia64/ia64.h (ia64_tls_size): Delete.
* config/ia64/ia64.c (ia64_tls_size): Delete.
(ia64_handle_option): Treat -mtls-size= as a UInteger option,
reading the integer argument from the "value" parameter. Don't
set ia64_tls_size here.
* config/ia64/ia64.opt (mtls-size=): Turn into a UInteger option.
Add Var() and Init().
* config/m32r/m32r.h (m32r_cache_flush_func): Delete.
(m32r_cache_flush_trap): Delete.
* config/m32r/m32r.c (m32r_cache_flush_func): Delete.
(m32r_cache_flush_trap): Delete.
(m32r_handle_option): Don't set the above variables when handling
-mflush-func= and -mflush-trap=.
* config/m32r/m32r.opt (-mflush-func=, -mflush-trap=): Add Var()s
and Init()s.
* config/mips/mips.h (mips_cache_flush_func): Delete.
* config/mips/mips.c (mips_arch_string, mips_tune_string)
(mips_cache_flush_func): Delete.
(mips_handle_option): Don't set the above variables when handling
-march=, -mtune= and -mflush-func=.
* config/mips/mips.opt (march=, mflush-func=, mtune=): Add Var()s.
* config/s390/s390.c (s390_arch_string): Delete.
(s390_handle_option): Don't set it here.
* config/s390/s390.opt (march=): Add Var().
* config/sparc/sparc.h (sparc_cmodel_string): Delete.
* config/sparc/sparc.c (sparc_cmodel_string): Delete.
(sparc_handle_option): Don't set it here.
* config/sparc/sparc.opt (mcmodel=): Add Var().
2005-05-25 Roger Sayle <roger@eyesopen.com>
* convert.c (convert_to_integer) <POINTER_TYPE>: Avoid recursive
call to convert_to_integer by building the NOP_EXPR directly.
2005-05-25 Richard Sandiford <rsandifo@redhat.com>
* config/rs6000/rs6000.opt (mprioritize-restricted-insns=): Fix typo.
2005-05-25 Daniel Berlin <dberlin@dberlin.org>
Jeff Law <law@redhat.com>
* tree-cfg.c (verify_expr, case ADDR_EXPR): Verify invariant,
constant and side_effects of the ADDR_EXPR are consistent.
* tree-nested.c (convert_local_reference): Set CURRENT_FUNCTION_DECL
appropriately around calls to recompute_tree_invarant_for_addr_expr.
2005-05-25 Ulrich Weigand <uweigand@de.ibm.com>
* config/s390/s390.c (GP_ARG_NUM_REG, FP_ARG_NUM_REG): New defines.
(s390_function_arg, s390_gimplify_va_arg): Use them.
(s390_register_info): Save only required subset of argument
registers into save area for va_list.
(s390_va_start): Initialize only required elements of va_list struct.
(s390_build_builtin_va_list): Set va_list_[gf]pr_counter_field.
2005-05-25 Ulrich Weigand <uweigand@de.ibm.com>
* reload1.c (verify_initial_elim_offsets): Return boolean status
instead of aborting.
(reload): Adapt verify_initial_elim_offsets call site. Restart
main loop if some initial elimination offsets changed.
2005-05-25 Adam Nemet <anemet@lnxw.com>
* config/rs6000/lynx.h (CC1_SPEC): Use -maix-struct-return instead
of -mno-svr4-struct-return.
2005-05-25 Daniel Berlin <dberlin@dberlin.org>
Fix PR tree-optimization/21705
* tree-ssa-pre.c (in_fre): New static variable.
(create_value_expr_from): Recursively value number reference ops
in argument lists.
(can_value_number_call): Temporary restrict only exists for
PRE, not FRE.
2005-05-25 Kazu Hirata <kazu@cs.umass.edu>
* tree-into-ssa.c (rewrite_into_ssa, update_ssa): Replace
sizeof (bitmap *) with sizeof (bitmap).
2005-05-25 Daniel Berlin <dberlin@dberlin.org>
* lambda-code.c (perfect_nestify): Call update_stmt on the exit
condition.
2005-05-25 Adrian Straetling <straetling@de.ibm.com>
* config/s390/s390.c (TARGET_INSN_VALID_WITHIN_DOLOOP): Set to
hook_bool_rtx_true.
2005-05-25 Jan Hubicka <jh@suse.cz>
* Makefile.in (ipa-inline.o): Add COEVERAGE_H dependency.
* cgraph.c (cgraph_create_node): Reset estimated_growth.
* cgraph.h (cgraph_global_info): Add estimated_growth.
* ipa-inline.c: Include coverage.h
(max_insns, max_count): New static variables.
(cgraph_estimate_size_after_inlining): Cache the result.
(cgraph_estimate_growth):
* passes.c (rest_of_clean_state): Kill coverage_end_function.
* timevar.def (TV_INLINE_HEURISTICS): New timevar.
* tree-optimize.c (init_tree_optimization_passes): Move profiling before
inlining.
(ipa_passes): Initialize bitmaps.
2005-05-25 Adrian Straetling <straetling@de.ibm.com>
* loop-doloop.c: Include "target.h".
(doloop_valid_p): Move tests to function in targhooks.c.
* target.h (struct gcc_target): New target hook
"insn_valid_within_doloop".
* target-def.h: Define default value for "insn_valid_within_doloop".
(TARGET_INITIALIZER): Insert new target hook into initializer.
* targhooks.c (default_insn_valid_within_doloop): New function.
* targhooks.h (default_insn_valid_within_doloop): Declare.
* hooks.c (hook_bool_rtx_true): New function.
* hooks.h (hook_bool_rtx_true): Declare.
* doc/tm.texi: Add documentation for new target hook.
2005-05-25 Eric Botcazou <ebotcazou@libertysurf.fr>
PR target/21412
* config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): New macro
* config/sparc/sparc-protos.h (tls_symbolic_operand): Delete.
(sparc_tls_referenced_p): New prototype.
* config/sparc/sparc.c (tls_symbolic_operand): Delete.
(sparc_expand_move): Look for TLS addresses with constant offsets.
(legitimate_constant_p): Use SPARC_SYMBOL_REF_TLS_P instead of
tls_symbolic_operand.
(legitimate_pic_operand_p): Likewise.
(legitimate_address_p): Likewise.
(legitimize_address): Likewise.
(sparc_tls_symbol_ref_1): New function.
(sparc_tls_referenced_p): New function.
* config/sparc/predicates.md (tgd_symbolic_operand): Use
SYMBOL_REF_TLS_MODEL instead of tls_symbolic_operand.
(tld_symbolic_operand): Likewise.
(tie_symbolic_operand): Likewise.
(tle_symbolic_operand): Likewise.
2005-05-24 DJ Delorie <dj@redhat.com>
* common.opt (-Wattributes): New. Default true.
* doc/invoke.texi (-Wno-attributes): Document.
* attribs.c (decl_attributes): Move warning control from if() to
warning(OPT_*).
* c-common.c (handle_packed_attribute): Likewise.
(handle_nocommon_attribute): Likewise.
(handle_common_attribute): Likewise.
(handle_noreturn_attribute): Likewise.
(handle_noinline_attribute): Likewise.
(handle_always_inline_attribute): Likewise.
(handle_used_attribute): Likewise.
(handle_unused_attribute): Likewise.
(handle_const_attribute): Likewise.
(handle_transparent_union_attribute): Likewise.
(handle_constructor_attribute): Likewise.
(handle_destructor_attribute): Likewise.
(handle_mode_attribute): Likewise.
(handle_alias_attribute): Likewise.
(handle_visibility_attribute): Likewise.
(handle_tls_model_attribute): Likewise.
(handle_malloc_attribute): Likewise.
(handle_returns_twice_attribute): Likewise.
(handle_pure_attribute): Likewise.
(handle_deprecated_attribute): Likewise.
(handle_vector_size_attribute): Likewise.
(handle_nothrow_attribute): Likewise.
(handle_cleanup_attribute): Likewise.
(handle_warn_unused_result_attribute): Likewise.
(handle_sentinel_attribute): Likewise.
* c-decl.c (diagnose_mismatched_decls): Likewise.
(start_decl): Likewise.
(grokdeclarator): Likewise.
(start_function): Likewise.
* c-format.c (check_function_format): Likewise.
* stor-layout.c (place_field): Likewise.
(finalize_record_size): Likewise.
* tree.c (handle_dll_attribute)): Likewise.
* varasm.c (default_assemble_visibility): Likewise.
* config/darwin.c (darwin_handle_weak_import_attribute): Likewise.
(darwin_assemble_visibility): Likewise.
* config/arc/arc.c (arc_handle_interrupt_attribute): Likewise.
* config/arm/arm.c (arm_handle_fndecl_attribute): Likewise.
(arm_handle_isr_attribute): Likewise.
* config/avr/avr.c (avr_handle_progmem_attribute): Likewise.
(avr_handle_fndecl_attribute): Likewise.
* config/bfin/bfin.c (handle_int_attribute): Likewise.
* config/c4x/c4x.c (c4x_handle_fntype_attribute): Likewise.
* config/h8300/h8300.c (h8300_handle_fndecl_attribute): Likewise.
(h8300_handle_eightbit_data_attribute): Likewise.
(h8300_handle_tiny_data_attribute): Likewise.
* config/i386/i386.c (ix86_handle_cdecl_attribute): Likewise.
(ix86_handle_regparm_attribute): Likewise.
(ix86_handle_struct_attribute): Likewise.
* config/i386/winnt.c (ix86_handle_shared_attribute): Likewise.
(i386_pe_encode_section_info): Likewise.
* config/ia64/ia64.c (ia64_handle_model_attribute): Likewise.
* config/ip2k/ip2k.c (ip2k_handle_progmem_attribute): Likewise.
(ip2k_handle_fndecl_attribute): Likewise.
* config/m32r/m32r.c (m32r_handle_model_attribute): Likewise.
* config/m68hc11/m68hc11 (m68hc11_handle_page0_attribute): Likewise.
(m68hc11_handle_fntype_attribute): Likewise.
(m68hc11_encode_section_info): Likewise.
* config/m68k/m68k.c (m68k_handle_fndecl_attribute): Likewise.
* config/mcore/mcore.c (mcore_handle_naked_attribute): Likewise.
* config/ns32k/ns32k.c (ns32k_handle_fntype_attribute): Likewise.
* config/rs6000/rs6000.c (rs6000_handle_longcall_attribute): Likewise.
* config/sh/sh.c (sh_handle_interrupt_handler_attribute): Likewise.
(sh_handle_sp_switch_attribute): Likewise.
(sh_handle_trap_exit_attribute): Likewise.
* config/sh/symbian.c (sh_symbian_dllimport_p): Likewise.
(sh_symbian_handle_dll_attribute): Likewise.
* config/stormy16/stormy16.c (xstormy16_handle_interrupt_attribute): Likewise.
(xstormy16_handle_below100_attribute): Likewise.
* config/v850/v850.c (v850_handle_interrupt_attribute): Likewise.
* c-common.c (unsigned_conversion_warning): Move warning control
from if() to warning(OPT_*).
(c_common_truthvalue_conversion): Likewise.
(c_do_switch_warnings): Likewise.
* c-decl.c (diagnose_mismatched_decls): Likewise.
(diagnose_mismatched_decls): Likewise.
(define_label): Likewise.
(grokdeclarator): Likewise.
* c-format.c (check_format_info): Likewise.
* c-lex.c (interpret_integer): Likwise.
(lex_string): Likewise.
* c-opts.c (c_common_post_options): Likewise.
* c-parser.c (c_parser_unary_expression): Likewise.
* c-pragma.c (handle_pragma_redefine_extname): Likewise.
(handle_pragma_extern_prefix): Likewise.
* c-typeck.c (build_binary_op): Likewise.
* gcse.c (is_too_expensive): Likewise.
* opts.c (decode_options): Likewise.
* stor-layout.c (place_field): Likewise.
* tree-cfg.c (remove_bb): Likewise.
* c.opt (-Wreturn-type): Add Var(warn_return_type).
* flags.h (warn_return_type): Remove.
* toplev.c (warn_return_type): Likewise.
2005-05-24 Kelley Cook <kcook@gcc.gnu.org>
* configure.ac: Don't use gcc_AC_C_LONG_LONG. Check for
existence of long long and __int64 before determining their size.
* aclocal.m4: Delete gcc_AC_C_LONG_LONG.
* configure, config.h.in: Regenerate.
2005-05-24 Kelley Cook <kcook@gcc.gnu.org>
* configure: Regenerate.
2005-05-24 Ziemowit Laski <zlaski@apple.com>
* c-common.h (objc_comptypes): Remove prototype.
(objc_compare_types): New prototype.
(objc_volatilized_decl): Likewise.
(objc_type_quals_match): Likewise.
* c-decl.c (objc_mark_locals_volatile): Streamline by calling
objc_volatilize_decl().
* c-typeck.c (comp_target_types): Remove third parameter; do
not call objc_comptypes().
(comptypes): Remove calls to objc_comptypes().
(build_function_call): Extend compatible prototype check to ObjC.
(build_conditional_expr): Adjust call to comp_target_types().
(convert_for_assignment): Call objc_compare_types() instead of
objc_comptypes(); adjust calls to comp_target_types(); call
objc_type_quals_match() before issuing qualifier mismatch
warnings.
(build_binary_op): Call objc_compare_types() before issuing
pointer mismatch warnings; adjust calls to
comp_target_types().
* stub-objc.c (objc_comptypes): Remove stub.
(objc_compare_types): New stub.
(objc_volatilized_decl): Likewise.
(objc_type_quals_match): Likewise.
2005-05-24 Paolo Carlini <pcarlini@suse.de>
* config/ia64/ia64intrin.h: Define nothing for C++:
overloaded builtins have been ported to C++.
2005-05-24 Jeff Law <law@redhat.com>
* tree-nested.c (build_addr): New "context" argument. Temporarily
set current_function_decl around the call to build the ADDR_EXPR.
(get_static_chain): Pass proper context to build_addr.
(convert_nl_goto_reference): Likewise.
(convert_tramp_reference): Likewise.
(final_nesting_tree_1): Likewise.
* tree-profile.c (tree_gen_interval_profiler): Likewise.
(tree_gen_pow2_profiler): Likewise.
(tree_gen_one_value_profiler): Likewise.
* tree-ssa-loop-ivopts.c (build_addr_strip_iref): Likewise.
* tree.h (build_addr): Update prototype.
2005-05-24 Kazu Hirata <kazu@cs.umass.edu>
* tree-flow.h (bb_ann_d): Remove has_escape_site.
* tree-ssa-alias.c (compute_points_to_addr_escape): Don't
write to has_escape_site.
2005-05-24 Jeff Law <law@redhat.com>
* Makefile.in (tree-cfg.o): Depend on tree-ssa-propagate.h.
* tree-cfg.c: Include tree-ssa-propagate.h.
(replace_uses_by): Call recompute_tree_invarant_for_addr_expr as
needed.
2005-05-24 Nick Clifton <nickc@redhat.com>
* config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
__NO_FPRS__ when 'f' class registers will not be available.
2005-05-24 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
* config/m32r/m32r.c (m32r_expand_block_move): Return 0 if
nothing was done.
* config/m32r/m32r.md (movmemsi): If m32r_expand_block_move did
nothing then FAIL.
* config/m32r/m32r/m32r-protos.h (m32r_expand_block_move): Update
prototype.
2005-05-23 Jeff Law <law@redhat.com>
* tree-ssa-dom.c (cprop_into_stmt): Do not call
recompute_tree_invariant_for_addr_expr here.
(optimize_stmt): Call it here instead and do so if anything
at all has changed in the statement and the RHS is an ADDR_EXPR.
* tree-ssa-forwprop.c (tidy_after_forward_propagate_addr): If
needed, call recompute_tree_invariant_for_addr_expr.
* tree-ssa-propagate.c (substitute_and_fold): Call
recompute_tree_invariant_for_addr_expr as needed.
2005-05-23 Andreas Krebbel <krebbel1@de.ibm.com>
* config/s390/s390.c (s390_optimize_prologue): Don't replace an insn
saving less registers than the replacement.
2005-05-23 Jan Hubicka <jh@suse.cz>
* tree-flow.h (stmt_ann_d): Kill GTY ((skip)) mark on BB.
2005-05-23 Eric Botcazou <ebotcazou@libertysurf.fr>
* config/sparc/sparc-protos.h (sparc_expand_move): New prototype.
* config/sparc/sparc.c (sparc_expand_move): New function.
(sparc_emit_set_const64): Rewrite assert condition on entry.
(legitimate_constant_p) <CONST_VECTOR>: New case.
(legitimize_pic_address): Use TARGET_ARCH64 to select the mode.
* config/sparc/sparc.md (movqi, movhi, movsi, movdi, movV32,
movV64, movtf): Use nonimmediate_operand for the first operand.
Rewrite. Only invoke sparc_expand_move.
* config/sparc/predicates.md (input_operand): Reorder tests.
2005-05-23 Jan Beulich <jbeulich@novell.com>
* gthr-posix.h (__gthread_recursive_mutex_init_function): Add
missing return statement.
2005-05-22 Eric Botcazou <ebotcazou@libertysurf.fr>
* config/sparc/sparc.c (sparc_emit_float_lib_cmp): Use
emit_move_insn for moves to TFmode stack slots.
2005-05-21 Richard Guenther <rguenth@gcc.gnu.org>
* tree-stdarg.c (execute_optimize_stdarg): Handle references
to va_list of the form &va[0].
2005-05-20 Jan Hubicka <jh@suse.cz>
* Makefile.in (insn-emit.o): Add basic-block.h dependency.
* genemit.c (main): Make insn-emit to include basic-block.h too.
2005-05-20 Jan Hubicka <jh@suse.cz>
* cgraphunit.c (cgraph_expand_function): Force function being lowered.
2005-05-19 Richard Henderson <rth@redhat.com>
* config/alpha/alpha.c (emit_unlikely_jump, emit_load_locked,
emit_store_conditional): Split out from ...
(alpha_split_atomic_op): ... here.
(alpha_split_compare_and_swap): New; extract from .md file.
(alpha_split_lock_test_and_set): Likewise.
* config/alpha/alpha-protos.h: Update.
* config/alpha/sync.md (sync_compare_and_swap<I48MODE>): Move
split code into alpha.c.
(sync_lock_test_and_set<I48MODE>): Likewise.
2005-05-19 Richard Henderson <rth@redhat.com>
* unwind.h, unwind-pe.h: Revert gcc_unreachable change of 05-17.
2005-05-19 Richard Henderson <rth@redhat.com>
* config/i386/sse.md (mulv4si3): Use all register inputs.
(mulv2di3): Likewise.
2005-05-19 Richard Guenther <rguenth@gcc.gnu.org>
* tree-ssa-loop-ivopts.c (determine_base_object): Use
build_fold_addr_expr to generate trees of correct type.
Use fold_buildN if possible.
2005-05-19 Jan Hubicka <jh@suse.cz>
* basic-block.h (REG_BR_PROB_BASE): Define.
* cgraph.c (cgraph_create_edge): Initialize loop_nest and count.
(dump_cgraph_node): Dump count.
(cgraph_clone_edge): Rescale counts.
(cgraph_clone_node): Likewise.
* cgraph.h: Include basic-block.h
(cgraph_node): Add count.
(cgraph_edge): Add count and loop_nest.
(cgraph_node, cgraph_edge, cgraph_clone_edge, cgraph_clone_node):
Update prototypes.
* cgraphunit.c: Kill now redundant inlining comment.
(cgraph_create_edges): Make static, maintain current basic block;
fix pasto.
(record_call_1): Fill in new fields.
* ipa-inline.c (cgraph_clone_inlined_nodes): Update call of
cgraph_clone_node.
(cgraph_decide_recursive_inlining): Likewise.
* rtl.h (REG_BR_PROB_BASE): Kill.
* tree-inline.c (copy_body_r): Update call of cgraph_clone_edge.
(expand_call_inline): Update call of cgraph_create_edge.
* tree-optimize.c (tree_rest_of_compilation): Likewise.
2005-05-19 Nick Clifton <nickc@redhat.com>
* config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use the
new rs6000_explicit_options structure.
2005-05-19 Richard Henderson <rth@redhat.com>
PR target/21390
* config/alpha/alpha.c (alpha_emit_conditional_branch): Move
TFmode code swapping ...
(alpha_emit_xfloating_compare): ... here.
(alpha_emit_setcc): Update to match.
(alpha_lookup_xfloating_lib_func): Assert TARGET_HAS_XFLOATING_LIBS.
2005-05-19 Richard Henderson <rth@redhat.com>
PR target/21657
* config/ia64/ia64.c (ia64_expand_tls_address): Remove extra
memory indirection in local-dynamic case.
2005-05-18 Jie Zhang <jie.zhang@analog.com>
Bernd Schmidt <bernd.schmidt@analog.com>
* config/bfin/bfin.c (branch_dest): Add comment why it's
necessary.
* config/bfin/bfin.md (attr "length" default): Change the offset of
forward conditional branch of length 4 from 4096 to 4092.
2005-05-19 Jan Beulich <jbeulich@novell.com>
* unwind-compat.c: Include tconfig.h and tsystem.h.
* unwind-dw2-fde-compat.c: Likewise.
2005-05-18 Richard Henderson <rth@redhat.com>
PR 21541
* ifcvt.c (noce_process_if_block): Avoid conversion when the
memory destination is readonly.
2005-05-18 Richard Henderson <rth@redhat.com>
PR 21541
* tree-ssa-operands.c (opf_non_specific): New.
(get_asm_expr_operands): Set it.
(add_call_clobber_ops, add_call_read_ops): Likewise.
(add_stmt_operand): Test it instead of opf_kill_def when
considering unmodifiable variables.
* tree-ssa-operands.c (get_expr_operands): Fix exact test.
2005-05-19 Kazu Hirata <kazu@cs.umass.edu>
* cfgexpand.c, tree-cfg.c, tree-inline.c, tree-optimize.c,
tree-ssa-forwprop.c: Fix comment typos.
* doc/invoke.texi: Fix a typo.
2005-05-18 Richard Henderson <rth@redhat.com>
* config.gcc (powerpc-*-linux*): Include linux64.opt when
including linux64.h.
2005-05-18 Richard Henderson <rth@redhat.com>
* tree-cfg.c (pass_remove_useless): Revert last change.
* tree-optimize.c (init_tree_optimization_passes): Initialize
all_lowering_passes with PROP_gimple_any.
2005-05-18 Devang Patel <dpatel@apple.com>
* config/rs6000/rs6000.md (insvsi_internal1): Subtract shift from
the mask end.
2005-05-18 Richard Henderson <rth@redhat.com>
* tree-ssa-forwprop.c (cfg_changed): New.
(tidy_after_forward_propagate_addr): New.
(forward_propagate_addr_expr): Use it, and fold_stmt_inplace.
(forward_propagate_addr_into_variable_array_index): Likewise.
(tree_ssa_forward_propagate_single_use_vars): Cleanup cfg if
edges were removed.
2005-05-18 Geoffrey Keating <geoffk@apple.com>
* dummy-checksum.c: New.
* genchecksum.c: New.
* c.opt (print_pch_checksum): New flag.
* c-pch.c (struct c_pch_validity): Make much shorter.
(no_checksum): New.
(host_machine): Remove.
(target_machine): Remove.
(get_ident): Change PCH version number.
(pch_init): When -fverbose-asm, print out the compiler fingerprint.
Don't put triplets or version string in PCH validity data.
Do put the compiler checksum in the validity data.
(c_common_valid_pch): Don't check triplets or version string. Do
check checksum.
(c_common_print_pch_checksum): New.
* c-opts.c (c_common_handle_option): Add OPT_print_pch_checksum.
Print fingerprint with -v.
* c-common.h (c_common_print_pch_checksum): New.
(executable_checksum): New.
* Makefile.in (STAGEMOVESTUFF): Add cc1*-dummy, *-checksum.c.
(cc1-dummy): New rule.
(cc1-checksum.c): New rule.
(cc1-checksum.o): New rule.
(cc1): Add checksum support.
(build/genchecksum): New.
(build/genchecksum.o): New.
(dummy-checksum.o): New.
(genobjnames): Add genchecksum.o.
(mostlyclean): Remove *-checksum.c.
(gnucompare): Add libgcc to list of directories checked.
Make comparison problems in libgcc/ and with checksum files only
be warnings.
* doc/invoke.texi (Precompiled Headers): Remove caution.
Document that it must be the exact same binary. Add a few
known-safe flags to the list.
* rs6000/predicates.md (fix_trunc_dest_operand): New.
* rs6000/rs6000.md (fix_truncdfsi2): Use fix_trunc_dest_operand.
Check that a memory operand is valid before trying to use it.
* tree-cfg.c (pass_remove_useless): This pass works on trees.
2005-05-18 Richard Guenther <rguenth@gcc.gnu.org>
* tree.c (build1_stat): Don't try to handle two-operand
tree codes.
2005-05-18 Richard Sandiford <rsandifo@redhat.com>
* config.gcc (sh*-*-*): Define SUPPORT_* macros to 1.
* config/sh/sh.h: Update mask names throughout.
(target_flags, ISIZE_BIT, DALIGN_BIT, SH1_BIT, SH2_BIT, SH3_BIT)
(SH_E_BIT, HARD_SH4_BIT, FPU_SINGLE_BIT, SH4_BIT, SH4A_BIT, FMOVD_BIT)
(SH5_BIT, SPACE_BIT, BIGTABLE_BIT, RELAX_BIT, USERMODE_BIT)
(HITACHI_BIT, NOMACSAVE_BIT, PREFERGOT_BIT, PADSTRUCT_BIT)
(LITTLE_ENDIAN_BIT, IEEE_BIT, SAVE_ALL_TR_BIT, HARD_SH2A_BIT)
(HARD_SH2A_DOUBLE_BIT, INDEXED_ADDRESS_BIT, PT_FIXED_BIT)
(INVALID_SYMBOLS_BIT, ADJUST_UNROLL_BIT, TARGET_DUMPISIZE)
(TARGET_ALIGN_DOUBLE, TARGET_SH1, TARGET_SH2, TARGET_SH3)
(TARGET_HARD_SH4, TARGET_FPU_SINGLE, TARGET_SH5, TARGET_FMOVD)
(TARGET_IEEE, TARGET_SMALLCODE, TARGET_BIGTABLE, TARGET_RELAX)
(TARGET_HITACHI, TARGET_NOMACSAVE, TARGET_PADSTRUCT)
(TARGET_LITTLE_ENDIAN, TARGET_USERMODE, TARGET_PREFERGOT)
(TARGET_SAVE_ALL_TARGET_REGS, TARGET_ALLOW_INDEXED_ADDRESS)
(TARGET_PT_FIXED, TARGET_INVALID_SYMBOLS, TARGET_ADJUST_UNROLL)
(TARGET_SWITCH_SH1, TARGET_SWITCH_SH2, TARGET_SWITCH_SH2E)
(TARGET_SWITCH_SH2A, TARGET_SWITCH_SH2A_SINGLE_ONLY)
(TARGET_SWITCH_SH2A_SINGLE, TARGET_SWITCH_SH2A_NOFPU)
(TARGET_SWITCH_SH3, TARGET_SWITCH_SH3E, TARGET_SWITCH_SH4_SINGLE_ONLY)
(TARGET_SWITCH_SH4_SINGLE, TARGET_SWITCH_SH4_NOFPU, TARGET_SWITCH_SH4)
(TARGET_SWITCH_SH4A, TARGET_SWITCH_SH4A_SINGLE_ONLY)
(TARGET_SWITCH_SH4A_SINGLE, TARGET_SWITCH_SH4A_NOFPU)
(TARGET_SWITCH_SH4AL, TARGET_SWITCH_SH5_64MEDIA)
(TARGET_SWITCH_SH5_64MEDIA_NOFPU, TARGET_SWITCHES_SH5_32MEDIA)
(TARGET_SWITCHES_SH5_32MEDIA_NOFPU, TARGET_SWITCH_SH5_32_ANY_EXTRA)
(TARGET_SWITCH_SH5_MEDIA_ANY_EXTRA, TARGET_SWITCHES)
(SUBTARGET_SWITCHES): Delete.
(TARGET_SH2E, TARGET_SH2A, TARGET_SH2A_SINGLE, TARGET_SH2A_DOUBLE)
(TARGET_SH3E, TARGET_CACHE32, TARGET_SUPERSCALAR, TARGET_HARVARD)
(TARGET_FPU_DOUBLE, TARGET_SH4A_ARCH, TARGET_SHMEDIA32)
(TARGET_SHMEDIA64): Redefine using other TARGET_* macros.
(TARGET_SH4): Undefine options.h definition and check MASK_SH1 as well.
(SUPPORT_SH1, SUPPORT_SH2E, SUPPORT_SH4, SUPPORT_SH4_SINGLE)
(SUPPORT_SH2A, SUPPORT_SH2A_SINGLE): Make numeric.
(SUPPORT_SH2): Define to 1 if SUPPORT_SH1.
(SUPPORT_SH3): Likewise SUPPORT_SH2.
(SUPPORT_SH4_NOFPU): Likewise SUPPORT_SH3.
(SUPPORT_SH4A_NOFPU, SUPPORT_SH4AL, SUPPORT_SH2A_NOFPU): Likewise
SUPPORT_SH4_NOFPU.
(SUPPORT_SH3E): Likewise SUPPORT_SH2E.
(SUPPORT_SH4_SINGLE_ONLY, SUPPORT_SH4A_SINGLE_ONLY)
(SUPPORT_SH2A_SINGLE_ONLY): Likewise SUPPORT_SH3E.
(SUPPORT_SH4A): Likewise SUPPORT_SH4.
(SUPPORT_SH4A_SINGLE): Likewise SUPPORT_SH4_SINGLE.
(SUPPORT_SH5_32MEDIA): Likewise SUPPORT_SH5_COMPACT.
(SUPPORT_SH5_32MEDIA_NOFPU): Likewise SUPPORT_SH5_COMPACT_NOFPU.
(SUPPORT_ANY_SH5_32MEDIA, SUPPORT_ANY_SH5_64MEDIA)
(SUPPORT_ANY_SH5): New macros.
(TARGET_NONE): Replace with...
(MASK_ARCH): ...this new macro.
* config/sh/elf.h: Update mask names
* config/sh/linux.h: Likewise.
* config/sh/little.h: Likewise.
* config/sh/netbsd-elf.h: Likewise.
* config/sh/symbian-pre.h: Likewise.
* config/sh/sh.c (sh_handle_option): New function.
(TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
(calc_live_regs): Use MASK_FPU_SINGLE instead of FPU_SINGLE_BIT.
(sh_target_switches, target_switches): Delete.
(sh_pch_valid_p): Check for specific differences in the target_flags
settings.
(sh_init_cumulative_args): Use MASK_HITACHI instead of HITACHI_BIT.
* config/sh/sh.opt: New file.
2005-05-18 Richard Henderson <rth@redhat.com>
PR target/21632
* config/ia64/ia64.c (ia64_extra_constraint) <'T'>: Use
small_addr_symbolic_operand.
2005-05-18 Jeff Law <law@redhat.com>
* tree-ssa-forwprop.c (forward_propagate_addr_expr): Do not
propagate an ADDR_EXPR if the definition and use sites are
in different EH regions.
2005-05-18 Ian Lance Taylor <ian@airs.com>
* read-rtl.c (mode_attr_index): Use obstack_grow0, not
obstack_grow.
2005-05-18 Daniel Berlin <dberlin@dberlin.org>
* cfgrtl.c (purge_dead_edges): Don't remove fake edges.
2005-05-18 Daniel Berlin <dberlin@dberlin.org>
Fix PR tree-optimization/21407
* tree-ssa-operands.c (note_addressable): Change
COMPONENT_REF handling in response to aliasing
discussion.
2005-05-18 Eric Botcazou <ebotcazou@libertysurf.fr>
* config/sparc/sol2.h (TARGET_DEFAULT): Add back MASK_APP_REGS.
* config/sparc/sol2-64.h (TARGET_DEFAULT): Likewise.
* config/sparc/sp-elf.h (TARGET_DEFAULT): Delete.
* doc/invoke.texi (SPARC options): Document that -mapp-regs is
the default on Solaris too.
2005-05-17 Daniel Berlin <dberlin@dberlin.org>
* tree-ssa-pre.c (find_or_generate_expression): CALL_EXPR
is okay too.
2005-05-17 Zdenek Dvorak <dvorakz@suse.cz>
* timevar.def (TV_SCEV_CONST): New timevar.
* tree-optimize.c (init_tree_optimization_passes): Add
pass_scev_cprop.
* tree-pass.h (pass_scev_cprop): Declare.
* tree-scalar-evolution.c (scev_const_prop): New function.
* tree-scalar-evolution.h (scev_const_prop): Declare.
* tree-ssa-loop.c (gate_scev_const_prop, pass_scev_cprop):
New.
* tree-cfg.c (replace_uses_by): Export.
* tree-flow.h (replace_uses_by): Declare.
2005-05-17 Ziemowit Laski <zlaski@apple.com>
Mike Stump <mrs@apple.com>
Yet more Objective-C++...
* c-common.h (objc_finish_try_stmt): Add.
(objc_build_synchronized): Add.
(objc_generate_write_barrier): Add.
* stub-objc.c (objc_build_synchronized): Add return value.
(objc_finish_try_stmt): Likewise.
(objc_generate_write_barrier): Add.
* c-common.h (objc_rewrite_function_call): Add.
* c-typeck.c (build_function_call): Allow objc to rewrite
FUNCTION_DECLs.
(build_modify_expr): Allow objc to generate write barriers.
* c.opt (Wassign-intercept): Add.
(Wstrict-selector-match): Add.
(fobjc-call-cxx-cdtors): Add.
(fobjc-direct-dispatch): Add.
(fobjc-gc): Add.
* dbxout.c (get_lang_number): Add Objective-C++ support.
* doc/invoke.texi (-fobjc-call-cxx-cdtors): Likewise.
(-Wstrict-selector-match): Likewise.
(-fobjc-direct-dispatch): Likewise.
(-Wassign-intercept): Likewise.
(Overall Options): Likewise.
* gengtype.c (get_output_file_with_visibility): Likewise.
* stub-objc.c (objc_rewrite_function_call): Add.
* config/darwin.h (ASM_OUTPUT_LABELREF): Improved quoting support.
* c-common.c (flag_objc_exceptions): Remove.
(flag_objc_sjlj_exceptions): Remove.
* c-decl.c (objc_mark_locals_volatile): Don't change decls
that are already ok.
* c-opts.c (c_common_handle_option, case
OPT_fobjc_exceptions): Remove.
(case OPT_fobjc_sjlj_exceptions): Remove
* c.opt (fobjc-call-cxx-cdtors): Have opt create the flag.
(fobjc-exceptions): Likewise.
(fobjc-sjlj-exceptions): Likewise.
* config/rs6000/darwin.h (OFFS_MSGSEND_FAST): Add.
(OFFS_ASSIGNIVAR_FAST): Add.
2005-05-17 Eric Botcazou <ebotcazou@libertysurf.fr>
* config/sparc/sparc.md (movhi): Do not test constness
of operand #1 twice.
(movsi): Likewise.
(movdi): Unconditionally accept zero as second operand
when the first is memory.
(movdi_insn_sp32): Handle above case.
(DImode splitter): Use predicates.
(DImode splitter): Use const_zero_operand predicate.
(movsf_insn): Swap 2 alternatives.
2005-05-17 Zdenek Dvorak <dvorakz@suse.cz>
* tree-ssa-loop-ivopts.c (find_bivs, find_givs_in_stmt_scev): Apply
expand_simple_operations to bases of the ivs.
(tree_int_cst_sign_bit): Export.
* tree-flow.h (expand_simple_operations): Declare.
* tree-ssa-loop-niter.c (number_of_iterations_cond): Use
tree_int_cst_sign_bit.
(expand_simple_operations): Export.
* tree.h (tree_int_cst_sign_bit): Declare.
2005-05-17 Zdenek Dvorak <dvorakz@suse.cz>
* tree-cfg.c (tree_can_merge_blocks_p): Allow phi nodes in the
merged block.
(replace_uses_by): New function.
(tree_merge_blocks): Eliminate the phi nodes in the merged block.
* tree-flow.h (fold_stmt_inplace): Declare.
* tree-ssa-ccp.c (fold_stmt_inplace): New function.
* tree-ssa-dom.c (tree_ssa_dominator_optimize): Update dominance
info after cfg cleanup.
2005-05-17 Zdenek Dvorak <dvorakz@suse.cz>
* cfgloop.h (just_once_each_iteration_p): Declaration changed.
* cfgloopanal.c (just_once_each_iteration_p): Make the loop argument
const.
2005-05-17 Zdenek Dvorak <dvorakz@suse.cz>
* ggc-page.c (ggc_alloc_stat): Record amount of memory allocated.
* ggc-zone.c (ggc_alloc_zone_1): Ditto.
* timevar.c (timevar_ggc_mem_total): New variable.
(GGC_MEM_BOUND): New constant.
(get_time): Record ggc memory status.
(timevar_accumulate): Accumulate amount of ggc memory.
(timevar_print): Print consumption of ggc memory.
* timevar.def (TV_FIND_REFERENCED_VARS, TV_TREE_REDPHI,
TV_TREE_LOOP_BOUNDS, TV_TREE_LOOP_IVCANON, TV_TREE_VECTORIZATION,
TV_TREE_LINEAR_TRANSFORM): Shorten strings to fit in 22 characters.
* timevar.h (struct timevar_time_def): Add ggc_mem field.
(timevar_ggc_mem_total): Declare.
2005-05-17 Kazu Hirata <kazu@cs.umass.edu>
* tree-into-ssa.c (update_ssa): Clean up by shortening the
live range of DFS.
2005-05-17 Hans-Peter Nilsson <hp@axis.com>
* config/cris/cris.md (ncond, ocode, rcond): Remove separate
define_code_attr.
("b<ncond:code>", "b<ocond:code>", "b<rcond:code>")
("*b<ncond:code>_reversed", "*b<ocond:code>_reversed")
("*b<rcond:code>_reversed", "s<ncond:code>", "s<rcond:code>")
("s<ocond:code>"): Rename from respectively "b<ncond>",
"b<ocond>", "b<rcond>", ("*b<ncond>_reversed",
"*b<ocond>_reversed", "*b<rcond>_reversed", "s<ncond>",
"s<rcond>" and "s<ocond>".
("b<ocond:code>", "*b<ocond:code>_reversed")
("*b<rcond:code>_reversed"): Remove extraneous backslashes in
output statement section.
2005-05-17 Roger Sayle <roger@eyesopen.com>
* c-typeck.c (common_type): Also handle BOOLEAN_TYPEs.
2005-05-17 Steven Bosscher <stevenb@suse.de>
Stuart Hastings <stuart@apple.com>
Jan Hubicka <jh@suse.cz>
Dale Johannesen <dalej@apple.com>
* cgraph.h (cgraph_node): Add 'lowered' state.
(cgraph_lower_function): Declare.
* cgraphunit.c (cgraph_finalize_function): Initialize lowered flag.
(cgraph_lower_function): New function.
(cgraph_create_edges): Deal with lowered function bodies.
(verify_cgraph_node): Likewise.
(cgraph_analyze_function): Do lowering job.
(cgraph_build_static_cdtor): Likewise.
* function.h (struct function): Add saved_eh and saved_cfg.
* integrate.c (copy_decl_for_inlining): Kill LABEL_DECL_UID field.
* tree-cfg.c (fold_cond_expr_cond): Export.
* tree-flow.h (fold_cond_expr_cond): Declare.
* tree-inline.c: Include basic-block, ggc, tree-flow, except.h and
pointer-set.
(struct_inline_data): Kill fnd, first_inlined_fn, ret_label,
in_target_cleanup_p, tree_pruner, tsi; add callee, caller and
callee_cfun, block, eh_region, eh_region_offset.
(inlining_p): New predicate.
(remap_decl): Update for new inline_data; declare newly created inline
vars in low gimple way.
(copy_body_r): Update for new datastructure, simplify some of handling
when we are in gimple; remap LABEL_DECLs for EH; copy TREE_BLOCK;
deal with RESX_EXPRs.
(copy_bb): New.
(copy_edges_for_bb): Likewise.
(remap_decl_1): New.
(copy_cfg_body): New.
(copy_generic_body): Rewrite to work on low gimple.
(copy_body): Turn into simple wrapper around copy_cfg_body.
(setup_one_parameter): Insert new statements into given basic block.
(initialize_initialized_parameters): Likewise, reorganize way things are
gimplified.
(declare_return_variable): Update for new inline data datastructure.
(inline_forbidden_p): Work on low gimple.
(estimate_num_insns): Likewise.
(expand_call_inline): Work on CFG.
(push_cfun, pop_cfun): New functions.
(cfun_stack): New stack.
(add_lexical_block): New function.
(gimple_expand_calls_inline): Work on basic block.
(optimize_inline_calls): Likewise.
(clone_body, save_body, unsave_ewpr_now): Update for new
datastructures.
(declare_inline_vars): Work on block instead of bind_expr.
(inlining_p): New predicate.
* tree-inline.h (push_cfun, pop_cfun): Declare.
* tree-optimize.c: Include except.h
(all_lowering_passes): New variable.
(execute_fixup_cfg, pass_fixup_cfg): New pass.
(init_tree_optimization_passes): Move some to all_lowering_passes.
(tree_lowering_passes): New function.
(tree_rest_of_compilation): Register cfg hooks; save/unsave eh.
* tree-pass.h (tree_lowering_passes): Declare
2005-05-17 Nathan Sidwell <nathan@codesourcery.com>
* unwind-dw2-fde-darwin.c: Include tsystem.h.
2005-05-17 Jeff Law <law@redhat.com>
* Makefile.in (tree-ssa-forwprop.o): Depend on langhooks.h.
* tree-ssa-forwprop.c: Include langhooks.h.
(forward_propagate_addr_expr_into_variable_array_index): New.
(forward_propagate_addr_expr): New.
(tree_ssa_forward_propagate_single_use_vars): Loop over all
the statements in the block instead of just the last statement.
Call forward_propagate_addr_expr as needed.
(pass_forwprop): Update the SSA graph after forward propagation is
complete.
2005-05-17 Nathan Sidwell <nathan@codesourcery.com>
* unwind-dw2-fde-glibc.c (base_from_cb_data,
_Unwind_IteratePhdrCallback): Use gcc_assert and gcc_unreachable as
appropriate.
* unwind-dw2-fde.c (__deregister_frame_info_bases,
base_from_object, fde_split, end_fde_sort): Likewise.
* unwind-dw2.c (_Unwind_GetGR, _Unwind_SetGR, execute_stack_op,
execute_cfa_program, _Unwind_SetSpColumn, uw_update_context_1,
uw_init_context_1): Likewise.
* unwind.inc (_Unwind_RaiseException_Phase2, _Unwind_Resume,
_Unwind_Resume_or_Rethrow): Likewise.
* unwind-pe.h (__gxx_abort): Do not define.
(size_of_encoded_value, base_of_encoded_value,
read_encoded_value_with_base): Use gcc_unreachable.
* unwind.h (_Unwind_GetTextRelBase): Likewise.
2005-05-17 Daniel Jacobowitz <dan@codesourcery.com>
* config/arm/lib1funcs.asm (cfi_pop, cfi_push, cfi_start)
(cfi_end): New macros.
(RETLDM): Use cfi_pop. Expect an eight byte stack frame.
(ARM_LDIV0, THUMB_LDIV0, DIV_FUNC_END): Use CFI macros. Create
an eight byte stack frame.
(__NR_tkill): Define.
(__div0): Use gettid tkill on GNU/Linux.
(_arm_return): Add CFI.
(Lchange_\register, .Lchange_lr): Create an eight byte stack frame.
2005-05-17 Daniel Jacobowitz <dan@codesourcery.com>
* configure.ac: Remove spaces around assignment to
gcc_cv_ld_sysroot.
* configure: Regenerated.
2005-05-17 David Edelsohn <edelsohn@gnu.org>
* config/rs6000/aix.h (TARGET_ALTIVEC_VRSAVE): Delete.
* config/rs6000/rs6000.c (rs6000_explicit_options): Add
aix_struct_ret.
(rs6000_override_options): Do not protect TARGET_ALTIVEC_VRSAVE.
Modify aix_struct_return variable, not target_flags.
(rs6000_handle_option): Do not protect TARGET_ALTIVEC_VRSAVE.
(rs6000_return_in_memory): Test aix_struct_return.
* config/rs6000/rs6000.opt (maix-struct-return): Convert to
independent variable. Report mxl-compat.
2005-05-17 Bernd Schmidt <bernd.schmidt@analog.com>
* config/bfin/bfin.md (eh_return): Add missing DONE.
2005-05-17 Ian Lance Taylor <ian@airs.com>
* read-rtl.c (struct macro_traverse_data): Add unknown_mode_attr
field.
(mode_attr_index): Remove check for defined attribute. Remove
infile parameter. Change all callers.
(apply_mode_maps): Add unknown parameter. Change caller. Always
return after finding attribute.
(apply_macro_to_rtx): Add unknown_mode_attr parameter. Change
callers.
(apply_macro_traverse): Set mtd->unknown_mode_attr.
(read_rtx): Use mtd.unknown_mode_attr to check for an undefined
attribute used for a mode.
2005-05-17 Paolo Bonzini <bonzini@gnu.org>
* tree-ssa-math-opts.c: New file.
2005-05-17 Paolo Bonzini <bonzini@gnu.org>
* Makefile.in: Add tree-ssa-math-opts.c.
* expr.c (expand_expr_real_1) <case RDIV_EXPR>: Never emit as a*(1/b).
* fold-const.c (distribute_real_division): New.
(fold_binary) <case PLUS_EXPR, case MINUS_EXPR>: Use it.
* tree-pass.h (pass_cse_reciprocals): New.
* tree-optimize.c (init_tree_optimization_passes): Run it.
* doc/passes.texi: Document the new pass.
2005-05-17 Richard Guenther <rguenth@gcc.gnu.org>
PR middle-end/21595
* builtins.c (fold_builtin_constant_p): Handle
&"string cst"[0] as constant.
2005-05-17 Richard Henderson <rth@redhat.com>
* config/i386/sse.md (mulv16qi3, mulv2di3): New.
2005-05-17 Jakub Jelinek <jakub@redhat.com>
PR middle-end/21492
* cfgcleanup.c (try_crossjump_to_edge): update_forwarder_flag for
src2 if src2 has been split.
PR tree-optimization/21610
* c-typeck.c (decl_constant_value_for_broken_optimization): If not
returning DECL, call unshare_expr.
2005-05-17 Hans-Peter Nilsson <hp@axis.com>
* config/cris/cris.md: Unquote preparation and output statements.
(BWD, WD, BW): New, mode-macros.
(S, s, m, mm, nbitsm1): New, mode-attrs.
(szext, shift, shiftrt, ncond, ocond, rcond): New, code-macros.
(u, su, shlr, slr, ncond, ocond, rcond, rCC, oCC, roCC): New,
code-attrs.
("tst<mode>"): Replace "tstqi", "tsthi" and "tstsi".
("*cmp_ext<mode>"): Replace "*cmp_extsi" and "*cmp_exthi".
("*cmp_swapext<mode>"): Replace "*cmp_swapextqi" and
"*cmp_swapexthi".
("cmp<mode>"): Replace "cmphi" and "cmpqi".
("movdi"): Move misplaced head comment regarding necessity of
movdi from movsi to here.
("*mov_side<mode>_biap"): Replace "*mov_sideqi_biap" and
"*mov_sidehi_biap".
("*mov_side<mode>"): Replace "*mov_sideqi" and "*mov_sidehi".
("*mov_side<mode>_biap_mem", "*mov_sidehi_biap_mem"): Replace
"*mov_sideqi_biap_mem".
("*mov_side<mode>_mem"): Replace "*mov_sideqi_mem" and
"*mov_sidehi_mem".
("*clear_side<mode>_biap"): Replace "*clear_sidesi_biap",
"*clear_sidehi_biap" and "*clear_sideqi_biap".
("*clear_side<mode>"): Replace "*clear_sidesi", "*clear_sidehi"
and "*clear_sideqi".
("*ext_side<mode>si_biap"): Replace "*ext_sideqisi_biap" and
"*ext_sidehisi_biap".
("*ext_side<mode>si"): Replace "*ext_sideqisi" and
"*ext_sidehisi".
("reload_in<mode>"): Replace "reload_inhi" and "reload_inqi".
("reload_out<mode>"): Replace "reload_outhi" and "reload_outqi".
("extend<mode>di2"): Replace "extendhidi2" and "extendqidi2".
("extend<mode>si2"): Replace "extendhisi2" and "extendqisi2".
("zero_extend<mode>si2"): Replace "zero_extendhisi2" and
"zero_extendqisi2".
("*op_side<mode>_biap"): Replace "*op_sideqi_biap",
"*op_sidehi_biap" and "*op_sidesi_biap".
("*op_side<mode>"): Replace "*op_sideqi", "*op_sidehi" and
"*op_sidesi".
("*op_swap_side<mode>_biap"): Replace "*op_swap_sideqi_biap",
"*op_swap_sidehi_biap" and "*op_swap_sidesi_biap".
("*op_swap_side<mode>"): Replace "*op_swap_sideqi",
"*op_swap_sidehi" and "*op_swap_sidesi".
("sub<mode>3"): Replace "subhi3" and "subqi3", correcting a typo
in the N alternative of "subqi3".
("*extop<mode>si_side_biap"): Replace "*extopqisi_side_biap" and
"*extophisi_side_biap".
("*extop<mode>si_side"): Replace "*extopqisi_side" and
"*extophisi_side".
("*extop<mode>si_swap_side_biap"): Replace
"*extopqisi_swap_side_biap" and "*extophisi_swap_side_biap".
("*extop<mode>si_swap_side"): Replace "*extopqisi_swap_side" and
"*extophisi_swap_side".
("*extop<mode>si"): Replace "*extopqisi" and "*extophisi".
("*extop<mode>si_swap"): Replace "*extopqisi_swap" and
"*extophisi_swap".
("<u>mul<s><mode>3"): Replace "umulhisi3", "umulqihi3",
"mulqihi3", "mulhisi3" and "mulhisi3".
("<u>mulsidi3"): Replace "mulsidi3" and "umulsidi3".
("<su>mulsi3_highpart"): Replace "smulsi3_highpart" and
"umulsi3_highpart".
("xor<mode>3"): Replace "xorhi3" and "xorqi3".
("neg<mode>2"): Replace "negsi2", "neghi2" and "negqi2".
("one_cmpl<mode>2"): Replace "one_cmplhi2" and "one_cmplqi2".
("<shlr>si3"): Replace "ashrsi3", "lshrsi3" and "ashlsi3".
("ashr<mode>3"): Replace "ashrhi3" and "ashrqi3".
("*expanded_<shlr><mode>"): Replace "*expanded_ashrhi",
"*expanded_ashrqi", "*expanded_lshrhi" and "*expanded_lshrqi".
("*<shlr><mode>_lowpart"): Replace "*ashrhi_lowpart",
"*ashrqi_lowpart", "*lshrhi_lowpart" and "*lshrqi_lowpart".
("lshr<mode>3"): Replace "lshrhi3" and "lshrqi3".
("ashl<mode>3"): Replace "ashlhi3" and "ashlqi3".
("*ashl<mode>_lowpart"): Replace "*ashlqi_lowpart" and
"*ashlhi_lowpart".
("abs<mode>2"): Replace "abshi2" and "absqi2".
("b<ncond>"): Replace "beq", "bne", "bgtu", "bltu", "bgeu" and
"bleu".
("b<ocond>"): Replace "bgt" and "ble".
("b<rcond>"): Replace "blt" and "bge".
("*b<ncond>_reversed"): Replace "*beq_reversed", "*bne_reversed",
"*bgtu_reversed", "*bltu_reversed", "*bgeu_reversed" and
"*bleu_reversed".
("*b<ocond>_reversed"): Replace "*bgt_reversed" and
"*ble_reversed".
("*b<rcond>_reversed"): Replace "*blt_reversed" and
"*blt_reversed".
("s<ncond>"): Replace "sgeu", "sltu", "seq", "sgtu", "sleu" and
"sne".
("s<rcond>"): Replace "sge" and "slt".
("s<ocond>"): Replace "sgt" and "sle".
("clear.[bwd] [rx=rx+rz.S2]"): Replace split clear.d
[rx=rx+rz.S2], clear.w [rx=rx+rz.S2] and clear.b [rx=rx+rz.S2].
("clear.[bwd] [rx=rx+i]"): Replace splits clear.d [rx=rx+i],
clear.w [rx=rx+i] and clear.b [rx=rx+i].
2005-05-17 Jakub Jelinek <jakub@redhat.com>
* varasm.c (struct constant_descriptor_tree): Add hash field.
(const_desc_hash): Just return hash field.
(const_desc_eq): If hash values are different, return 0 immediately.
(output_constant_def): Compute hash field of temporary key, use
htab_find_slot_with_hash instead of htab_find_slot. Set hash in
newly built constant descriptor.
(lookup_constant_def): Compute hash field of temporary key, use
htab_find_with_hash instead of htab_find.
2005-05-16 Richard Henderson <rth@redhat.com>
* config/i386/sse.md (mulv4si3): New.
2005-05-17 Hans-Peter Nilsson <hp@axis.com>
* config/cris/cris.h (EXTRA_CONSTRAINT_T): Remove FIXME and
tests for noncanonical versions of reg+constant and
reg+reg*{1,2,4}.
2005-05-16 Richard Henderson <rth@redhat.com>
Steven Bosscher <stevenb@suse.de>
PR tree-opt/21399
* tree-eh.c (maybe_clean_or_replace_eh_stmt): Rename from
maybe_clean_eh_stmt; take old stmt parameter. Update EH
region data structure to match replacement.
* tree-flow.h: Update to match.
* tree-ssa-ccp.c (execute_fold_all_builtins): Likewise.
* tree-ssa-dom.c (optimize_stmt): Likewise.
* tree-ssa-pre.c (eliminate): Likewise.
* tree-ssa-propagate.c (substitute_and_fold): Likewise.
2005-05-16 Caroline Tice <ctice@apple.com>
* bb-reorder.c (verify_hot_cold_block_grouping): Replace
internal_error with gcc_assert.
* dwarf2out.c (dwarf2out_switch_text_section): Likewise.
* function.h (struct function): Remove space between "*" and
struct field names.
* varasm.c (initialize_cold_section_name): Add gcc_assert;
modify to use alloca.
(unlikely_text_section): Add check for flag_function_sections.
(assemble_start_function): Move call to resolve_section, so it
comes before first call to unlikely_text_section.
(assemble_end_function): Add test and call to function_section
if appropriate.
2005-05-16 Roger Sayle <roger@eyesopen.com>
* c-common.c (c_common_truthvalue_conversion): Use fold_build2
instead of build_binary_op when performing code transformations
to avoid error messages about constructs not it the user's code.
2005-05-16 Kazu Hirata <kazu@cs.umass.edu>
* tree-ssa-pre.c: Fix a comment typo.
2005-05-16 Richard Henderson <rth@redhat.com>
PR target/21556
* config/ia64/ia64.md (load_dtpmod, load_ltoff_dtpmod, load_dtprel,
load_dtprel64, load_dtprel22, load_dtprel_gd, load_ltoff_dtprel,
add_dtprel, add_dtprel14, add_dtprel22, load_tprel, load_tprel64,
load_tprel22, load_tprel_ie, load_ltoff_tprel, add_tprel, add_tprel14,
add_tprel22): Remove mode from symbolic operand.
2005-05-16 Richard Sandiford <rsandifo@redhat.com>
* optc-gen.awk: Include intl.h after the externally-provided files.
2005-05-16 Kazu Hirata <kazu@cs.umass.edu>
* tree-ssa-copy.c (copy_prop_visit_assignment): Clean up by
folding a COND_EXPR_COND in a nondestructive manner.
2005-05-16 Fariborz Jahanian <fjahanian@apple.com>
* config/rs6000/altivec.md (altivec_vmrghb, altivec_vmrghh,
altivec_vmrghw, altivec_vmrglb, altivec_vmrglh, altivec_vmrglw):
New values for vec_select definitions and bitmask for element
selection.
2005-05-16 Kazu Hirata <kazu@cs.umass.edu>
* dwarf2out.c (used_rtx_varray): Rename to used_rtx_array.
Change the type to VEC(rtx,gc)*.
(mem_loc_descriptor, add_const_value_attributes,
dwarf2out_init): Adjust uses of used_rtx_varray.
* tree-data-ref.c (compute_all_dependences): Change the type
of dependence_relations to VEC(ddr_p,heap)**.
(compute_data_dependences_for_loop): Change the type of
allrelations to VEC(ddr_p,heap)*.
2005-05-16 Richard Sandiford <rsandifo@redhat.com>
* Makefile.in (options.c): Tell optc-gen.awk to include config.h,
system.h, coretypes.h and tm.h.
(options.o): Update dependencies accordingly.
* optc-gen.awk: Allow header_name to be a list of filenames.
Handle the "Condition" flag.
* opts.h (CL_DISABLED): New flag.
* opts.c (handle_option): Print an error for CL_DISABLED options.
* doc/options.texi: Document the "Condition" option flag.
2005-05-16 Paolo Bonzini <bonzini@gnu.org>
* tree-inline.c (estimate_num_insns_1): Handle VEC_COND_EXPR.
2005-05-15 Roger Sayle <roger@eyesopen.com>
* tree-scalar-evolution.c (set_nb_iterations_in_loop): Only
check for TREE_OVERFLOW on INTEGER_CST trees.
* tree-chrec.c (chrec_convert): Only clear TREE_OVERFLOW on
CONSTANT_CLASS_P tree nodes.
2005-05-15 H.J. Lu <hongjiu.lu@intel.com>
PR target/21551
* config/ia64/ia64.c (ia64_expand_move): Don't add addend twice.
2005-05-15 Daniel Berlin <dberlin@dberlin.org>
Fix PR tree-optimization/21576
* tree-ssa-pre.c (expression_node_pool): New pool.
(comparison_node_pool): Ditto.
(list_node_pool): Ditto.
(pool_copy_list): New function.
(phi_translate): Handle CALL_EXPR.
(valid_in_set): Ditto.
(create_expression_by_pieces): Ditto.
(insert_into_preds_of_block): Ditto.
(insert_aux): Ditto.
(compute_avail): Ditto.
(create_value_expr_from): Handle TREE_LIST and CALL_EXPR.
(can_value_number_call): New function.
(find_leader): Update comment.
(init_pre): Create new pools.
(fini_pre): Free new pools.
(pass_pre): Add TODO_update_ssa for the future when we are going
to need vops.
* tree-vn.c (expressions_equal_p): Handle TREE_LIST.
(set_value_handle): Ditto.
(get_value_handle): Ditto.
2005-05-15 Richard Earnshaw <richard.earnshaw@arm.com>
* arm.c (thumb_unexpanded_epilogue): Delete unused variable 'mode'.
2005-05-15 Andreas Jaeger <aj@suse.de>
* gcc.c (pfatal_pexecute): Remove unused local function.
2005-05-15 Richard Sandiford <rsandifo@redhat.com>
* optc-gen.awk: Remove excess indentation.
* opth-gen.awk: Likewise.
2005-05-14 Kaz Kojima <kkojima@gcc.gnu.org>
* config/sh/sh.c (sh_output_mi_thunk): Check cfun->cfg instead
of basic_block_info. Call init_flow and find_basic_blocks
before dbr_schedule if needed.
2005-05-14 Kazu Hirata <kazu@cs.umass.edu>
* tree-optimize.c (init_tree_optimization_passes): Move
pass_cd_dce in place of the last pass_dce.
PR tree-optimization/21563
* tree-vrp.c (compare_value): Return boolean_false_node when
SSA_NAME in "if (SSA_NAME == CST)" is strictly smaller than or
strictly larger than CST.
2005-05-14 Nathan Sidwell <nathan@codesourcery.com>
Jan-Benedict Glaw <jbglaw@lug-owl.de>
* config/vax/vax.c: (print_operand_address) Use gcc_unreachable() and
gcc_assert().
(rev_cond_name) Likewise.
(vax_float_literal) Likewise.
* config/vax/vax.md: Likewise.
2005-05-14 Jan-Benedict Glaw <jbglaw@lug-owl.de>
* config/vax/vax.md: define_constant VAXens AP, FP, SP and PC
registers and use them (specifically the stack pointer).
* config/vax/vax.h: Use above defines right here.
* config/vax/vax.c: (override_options) Remove 'register' keyword.
(split_quadword_operands) Likewise. (rev_cond_name) Likewise.
(vax_float_literal) Likewise. (vax_rtx_costs) Remove trailing
whitespace.
* config/vax/vax.h: Remove 'register' keyword. Misc. whitespace fixes,
mostly removal of trailing spaces...
* config/vax/vax-modes.def: Remove trailing whitespace.
* config/vax/elf.h: Update whitespace.
2005-05-14 Richard Guenther <rguenth@gcc.gnu.org>
Revert
2005-05-11 Richard Guenther <rguenth@gcc.gnu.org>
* fold-const.c (fold_indirect_ref_1): Avoid removing
NOP_EXPRs with type qualifiers like const.
2005-05-14 Jan Hubicka <jh@suse.cz>
Patch by Richard Henderson:
* tree-eh.c (tree_can_throw_internal, tree_can_throw_external):
Handle RESX expressions properly.
* tree-eh.c (record_stmt_eh_region): Use add_stmt_to_eh_region.
(add_stmt_to_eh_region_fn): Nest into CALL_EXPR.
(remove_stmt_from_eh_region_fn): Likewise.
* tree-cfg.c (execute_warn_function_return): Break out noreturn
warning too..
(execute_warn_function_noreturn): ... here.
(pass_warn_function_noreturn): New pass.
* tree-pass.h (pass_warn_function_noreturn): Declare
* tree-optimize.c (init_tree_optimization_passes): Move return
warnings early and add noreturn warnings at place of previous
return warnings.
2005-05-14 Kazu Hirata <kazu@cs.umass.edu>
* tree-ssa-live.c (tpa_init, tpa_delete, tpa_compact,
root_var_init, type_var_init): Use VEC instead of VARRAY.
* tree-ssa-live.h (tree_partition_associator_d): Change the
type of trees to VEC(tree,heap)*.
(tpa_tree): Use VEC instead of VARRAY.
2005-05-14 Richard Guenther <rguenth@gcc.gnu.org>
* fold-const.c (div_if_zero_remainder): New function.
(try_move_mult_to_index): Use it.
2005-05-14 Kazu Hirata <kazu@cs.umass.edu>
* tree-eh.c (leh_tf_state): Change the type of dest_array to
VEC(tree,heap)*.
(maybe_record_in_goto_queue, lower_try_finally_onedest,
lower_try_finally_copy, lower_try_finally_switch,
lower_try_finally): Use VEC instead of VARRAY.
2005-05-14 Hans-Peter Nilsson <hp@axis.com>
* config/cris/cris.h (Node: Register Classes): Remove obsoleted
comment regarding defined register classes.
(LEGITIMIZE_RELOAD_ADDRESS): Do not define.
2005-05-14 Kazu Hirata <kazu@cs.umass.edu>
* tree-optimize.c (init_tree_optimization_passes): Move
pass_merge_phi before the first pass_dominator.
2005-05-13 Richard Earnshaw <richard.earnshaw@arm.com>
* arm.h (INITIALIZE_TRAMPOLINE): Make the call to __clear_cache
unconditional.
2005-05-13 Josh Conner <jconner@apple.com>
* config/arm/arm.c (arm_size_return_regs): New.
(thumb_unexpanded_epilogue): replace in-line calculation
of return registers with call to arm_size_return_regs.
(use_return_insn): Include test of which registers are
being used to hold return values, to accommodate
vector return values.
2005-05-11 Aldy Hernandez <aldyh@redhat.com>
* config/rs6000/sysv4.opt (mlittle): Handle.
* config/rs6000/rs6000.c (rs6000_handle_option): Set
target_flags_explicit when appropriate.
2005-05-13 J"orn Rennecke <joern.rennecke@st.com>
PR middle-end/20714:
* optabs.c (no_conflict_data): New struct.
(no_conflict_move_test): New function.
(emit_no_conflict_block): Use it.
2005-05-13 Adam Nemet <anemet@lnxw.com>
* doc/invoke.texi (Debugging Options): Option
-fdump-translation-unit only works with C++ now.
2005-05-13 Hans-Peter Nilsson <hp@axis.com>
Replace calls to abort in CRIS port.
* config/cris/cris.h (CRIS_ASSERT): New macro.
* config/cris/cris.md ("*movsi_internal"): Use CRIS_ASSERT and
internal_error instead of abort.
("movsi"): Ditto. Unquote preparation statement section.
("call", "call_value"): Ditto, but use gcc_assert where
appropriate. Tweak comments.
* config/cris/cris.c (ASSERT_PLT_UNSPEC): Define in terms of
CRIS_ASSERT.
(cris_op_str): Call internal_error, not abort.
(cris_print_operand): Tweak "abort" reference to "die" in comment.
(cris_initial_elimination_offset): Call gcc_unreachable, not abort.
(cris_notice_update_cc): Call internal_error, not abort.
(cris_expand_return, cris_expand_prologue, cris_gen_movem_load)
(cris_emit_movem_store, cris_asm_output_symbol_ref)
(cris_output_addr_const_extra): Use CRIS_ASSERT, don't call abort.
(cris_symbol, cris_got_symbol): Use CRIS_ASSERT instead of
ENABLE_CHECKING-guarded abort call.
(cris_split_movdx): Use CRIS_ASSERT instead of abort with test.
Use internal_error at end of test-chain.
2005-05-13 J"orn Rennecke <joern.rennecke@st.com>
PR rtl-optimization/20769:
* bt-load.c (compute_defs_uses_and_gen): Check for the blockage
pattern emitted by expand_nl_goto_receiver.
PR middle-end/20793:
* integrate.c (allocate_initial_values): Update register liveness
information.
2005-05-13 Josh Conner <jconner@apple.com>
* arm.c (arm_return_in_memory): Add handling for vector return types.
2005-05-13 David Ung <davidu@mips.com>
* config/mips/mips.h (processor_type): Add new PROCESSOR_4KP
name.
* config/mips/mips.c: Add 4km alias.
* config/mips/mips.md: Add 4kp to cpu attrib and include 4k.md.
* config/mips/4k.md: New file, add 4Kc/4Kp DFA pipeline
description.
2005-05-13 Jan Hubicka <jh@suse.cz>
* c-decl.c (finish_function): Suppress "control reaches end of
non-void function" when "no return statement in function
returning non-void" is issued.
* tree-inline.c (copy_body_r): Simplify substituted ADDR_EXPRs.
* tree-optimize.c (pass_gimple): Kill.
(init_tree_optimization_passes): Kill pass_gimple.
* tree-cfg.c (build_tree_cfg): Do verify_stmts to check that we are gimple.
* tree-dump.c (dump_files): Rename .generic to .gimple.*
2005-05-13 J"orn Rennecke <joern.rennecke@st.com>
PR rtl-optimization/20756:
* basic-block.h (PROP_DEAD_INSN): Define.
* flow.c (propagate_one_insn): Set during mark_set_regs call
for a dead insn.
(mark_set_1): Emit a clobber when we are about to delete a dead insn
that kills a live register.
2005-05-13 Adrian Straetling <straetling@de.ibm.com>
* config/s390/s390.md: ("DBL"): New mode attribute.
("*movmem_long_64", "*movmem_long_31"): Merge to "*movmem_long".
("*clrmem_long_64", "*clrmem_long_31"): Merge to "*clrmem_long".
("*cmpmem_long_64", "*cmpmem_long_31"): Merge to "*cmpmem_long".
2005-05-13 Richard Guenther <rguenth@gcc.gnu.org>
* c-format.c (check_format_arg): Handle string literals of
the form &"string"[offset].
* g++.dg/warn/format4.C: New testcase.
2005-05-13 Kazu Hirata <kazu@cs.umass.edu>
* config/mips/3000.md, config/mips/4000.md,
config/mips/4100.md, config/mips/4300.md, config/mips/4600.md,
config/mips/5000.md, config/mips/7000.md, config/mips/9000.md,
config/mips/generic.md, config/pdp11/pdp11.md,
config/sh/crt1.asm, config/sh/lib1funcs.asm,
config/sh/sh-modes.def, config/sh/sh-protos.h,
config/sh/shmedia.md, config/sh/ushmedia.h: Update copyright.
2005-05-13 Richard Henderson <rth@redhat.com>
* function.c (instantiate_virtual_regs_in_insn): Do not simplify
addition to move unless dest is a register. Do not skip
instantiation in dest on addition simplification.
2005-05-13 Hans-Peter Nilsson <hp@axis.com>
* config/cris/cris.c (cris_print_operand) <case 'H'; case
CONST_INT>: Use operand_subword and HOST_WIDE_INT_PRINT_DEC for
output; don't have special case for HOST_BITS_PER_WIDE_INT == 32.
2005-05-13 Jan Hubicka <jh@suse.cz>
* basic-block.h (FOR_ALL_BB_FN): New macro.
(init_flow): Initialize cfg structure.
* function.c (allocate_struct_function): Do not initialize cfg structure.
* tree-cfg.c (init_empty_tree_cfg): Break out from ...
(build_tree_cfg): ... here.
* tree-flow.h (init_empty_tree_cfg): Declare.
2005-05-12 Steven Bosscher <stevenb@suse.de>
Fix PR tree-optimization/21520
* tree-ssa-pre.c (phi_translate): Use fully_constant_expression
to attempt to fold constants.
2005-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
* config/sh/sh.c: Declare the prototype of sh_adjust_unroll_max
only when TARGET_ADJUST_UNROLL_MAX is defined.
(general_movsrc_operand): Use the C style comment.
(ua_offset): Use prototype.
2005-05-12 Zdenek Dvorak <dvorakz@suse.cz>
* tree-ssa-loop-im.c (struct mem_ref): Add field "next".
(struct hmr_data, hoist_memory_reference, memref_del,
struct fmrv_data): Removed.
(hoist_memory_references, free_mem_ref, free_mem_refs): New functions.
(gather_mem_refs, gather_mem_refs_stmt): Add new references to the
list.
(find_more_ref_vops): Traverse the list of memory references.
(determine_lsm_loop): Work with the list of memory references instead
of traversing the hashtable.
2005-05-12 Steven Bosscher <stevenb@suse.de>
Stuart Hastings <stuart@apple.com>
Jan Hubicka <jh@suse.cz>
* except.c (duplicate_eh_region_1, duplicate_eh_region_2,
duplicate_eh_regions): New functions, based on old
implementation removed with RTL inliner.
(reachable_next_level): Modify behaviour pre-inline.
* except.h (duplicate_eh_regions_map, duplicate_eh_regions):
Declare.
* function.h (struct function): Add after_inlining flag.
* tree-optimize.c (tree_rest_of_compilation): Set it.
* tree-eh.c (add_stmt_to_eh_region_fn): Initialize hashtable
when needed.
* tree-cfg.c (label_to_block_fn): Deal with cases where
label was never insterted into code.
2005-05-12 Zack Weinberg <zack@codesourcery.com>
* doc/cpp.texi: Document that #sccs is a synonym for #ident.
2005-05-12 Daniel Berlin <dberlin@dberlin.org>
Fix PR tree-optimization/21532
* tree-ssa-pre.c (create_expression_by_pieces): stmt
needs to go onto the inserted_exprs list.
2005-05-12 Ian Lance Taylor <ian@airs.com>
* c-common.h (statement_code_p): Don't declare.
(STATEMENT_CODE_P): Don't define.
(INIT_STATEMENT_CODES): Don't define.
* c-common.c (statement_code_p): Don't define.
2005-05-12 Eric Botcazou <ebotcazou@libertysurf.fr>
* config/sparc/sparc.h: Remove dead code.
* config/sparc/sparc.c (sparc_compute_frame_size): Use
FIRST_PARM_OFFSET for the size of the register window area.
(emit_save_regs): Rename into emit_save_or_restore_regs.
Add 'action' parameter. Use 4095 as upper bound for the offset.
Pass 'action' to save_or_restore_regs.
(emit_restore_regs): Delete.
(sparc_expand_prologue): Call emit_save_or_restore_regs.
(sparc_expand_epilogue): Likewise.
* config/sparc/sparc.md (mode macro P): Move.
(movdi_insn_sp32_v9, movdi_insn_sp32): Swap.
(mov<V32:mode> expander): Move to the top of the V32 section.
(movdf_insn_sp32_v9_no_fpu, movdf_insn_sp32_v9): Swap.
(movtf_insn_sp64_hq, movtf_insn_sp64): Swap.
(sibcall_epilogue): Move.
2005-05-12 Richard Earnshaw <richard.earnshaw@arm.com>
PR target/21501
* arm.c (arm_gen_constant): Sign-extend intermediate values when
synthesizing a constant of the difference of two immediates.
2005-05-12 Richard Earnshaw <richard.earnshaw@arm.com>
* arm/vfp.md (negsf2_vfp): Add alternative using integer registers.
(negdf2_vfp): Likewise. Convert to define_insn_and_split and split
the alternatives using integer registers into the appropriate
primitives.
2005-05-11 Kenneth Zadeck <zadeck@naturalbridge.com>
* bitmap.c (bitmap_elmt_to_freelist, bitmap_element_allocate,
bitmap_elt_clear_from, bitmap_clear): Changed freelist structure.
* bitmap.h: Fixed comments.
2005-05-11 Richard Henderson <rth@redhat.com>
PR target/21412
* config/ia64/ia64.c (TARGET_CANNOT_FORCE_CONST_MEM): New.
(ia64_cannot_force_const_mem): New.
(tls_symbolic_operand_type): New.
(ia64_legitimate_constant_p): New.
(ia64_expand_load_address): Return true on success. Improve
checks for when we should not split.
(ia64_expand_tls_address): New addend operand. Distribute it
as appropriate to the tls_kind. Delay referencing gp.
(ia64_expand_move): Split symbolic addend as necessary. Handle
tls symbols with addends.
* config/ia64/ia64-protos.h: Update.
* config/ia64/ia64.h (CALL_REALLY_USED_REGISTERS): False for r0,
p0, f0, f1, and r13.
(LEGITIMATE_CONSTANT_P): Move to ia64_legitimate_constant_p.
* config/ia64/ia64.md (UNSPEC_DTPMOD): New.
(symbolic_operand splitter): Pass everything through
ia64_expand_load_address and FAIL or DONE as appropriate.
(load_fptr): Only accept after reload.
(load_fptr_internal1, gprel64_offset, load_gprel64, load_symptr_high,
load_symptr_low, load_ltoff_dtpmod,
(load_dtpmod): New.
(load_dtprel): Only accept tls symbols.
(load_dtprel64, load_dtprel22): Likewise.
(load_tprel, load_tprel64, load_tprel22): Likewise.
(load_dtprel_gd, load_ltoff_dtprel, load_tprel_ie): New.
(add_dtprel): Only accept tls symbols. Canonicalize PLUS.
(add_dtprel14, add_dtprel22): Likewise.
(add_tprel, add_tprel14, add_tprel22): Likewise.
* config/ia64/predicates.md (small_addr_symbolic_operand): New.
(any_offset_symbol_operand, aligned_offset_symbol_operand): New.
(got_symbolic_operand): Check CONST offsets.
(tls_symbolic_operand, ld_tls_symbolic_operand): New.
(ie_tls_symbolic_operand, le_tls_symbolic_operand): New.
(move_operand): Don't handle tls here. Check CONST offsets.
2005-05-11 Richard Sandiford <rsandifo@redhat.com>
* config/mips/7000.md (rm7_impy_si_mult): Just match imul and imadd.
Remove hilo_operand check.
(rm7_impy_si_mul): Just match imul3. Remove hilo_operand check.
* config/mips/predicates.md (hilo_operand): Delete.
2005-05-11 Richard Sandiford <rsandifo@redhat.com>
* config/mips/sr71k.md, config/mips/7000.md: Reformat.
2005-05-11 Kazu Hirata <kazu@cs.umass.edu>
PR tree-optimizer/18472
* tree-if-conv.c (tree_if_convert_stmt,
if_convertible_modify_expr_p): Don't handle GOTO_EXPR.
2005-05-11 Jan Hubicka <jh@suse.cz>
* Makefile.in (tree-eh.o: Kill gt-tree-eh.h dependency.
(GTFILES): add except.h.
* except.c (eh_status): Add throw_stmt_table.
(set_eh_throw_stmt_table, get_eh_throw_stmt_table): New functions.
* except.h (add_stmt_to_eh_region_fn, remove_stmt_from_eh_region_fn,
lookup_stmt_eh_region_fn): Declare.
(throw_stmt_node): New structure.
(set_eh_throw_stmt_table, get_eh_throw_stmt_table): New.
* gengtype.c (open_base_files): Add except.h to inlines.
* tree-eh.c (throw_stmt_node): Kill.
(record_stmt_eh_region): Update.
(add_stmt_to_eh_region_fn): Break out from ...
(add_stmt_to_eh_region): ... here.
(remove_stmt_from_eh_region_fn): Break out from ...
(remove_stmt_from_eh_region): ... here.
(lookup_stmt_eh_region_fn): Break out from ...
(lookup_stmt_eh_region): ... here.
(honor_protect_cleanup_actions): Use build_resx.
(lower_try_finally_onedest): Likewise.
(lower_try_finally_copy): Likewise.
(lower_try_finally_switch): Likewise.
(lower_eh_constructs): Update eh table construction.
* tree.c (build_resx): New.
* tree.h (build_resx): Declare.
2005-05-11 H.J. Lu <hongjiu.lu@intel.com>
* libgcov.c (gcov_exit): Set prefix_length to 0 if no relocation
is needed.
2005-05-11 Kazu Hirata <kazu@cs.umass.edu>
* fold-const.c, libgcov.c: Fix comment typos.
* tree-ssa-forwprop.c (forward_propagate_into_cond_1): Remove
redundant code.
2005-05-11 Daniel Jacobowitz <dan@codesourcery.com>
* config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
* config/arm/arm.h (SUBTARGET_FRAME_POINTER_REQUIRED): Provide
default definition.
(FRAME_POINTER_REQUIRED): Use SUBTARGET_FRAME_POINTER_REQUIRED.
2005-05-11 Nathan Sidwell <nathan@codesourcery.com>
PR bootstrap/21481
* crtstuff.c: Include auto-host.h again, for now.
2005-05-11 Richard Sandiford <rsandifo@redhat.com>
* config/mips/24k.md: Remove trailing whitespace.
2005-05-11 David Ung <davidu@mips.com>
* config/mips/mips.md (type): Add imul3.
(length, hazard, may_clobber_hilo): Check for imul3.
(mulsi3_mult3, muldi3_mult3, *muls, <su>mulsi3_highpart_mulhi_internal)
(*<su>mulsi3_highpart_neg_mulhi_internal): Set attr to imul3.
* config/mips/24k.md (r24k_int_mul3): Enable this reservation
for a 3 operand mul and its bypasses.
* config/mips/3000.md (r3k_imul): Add imul3 to reservations.
* config/mips/4000.md (r4k_imul): Likewise.
* config/mips/4100.md (r4100_imul_si, r4100_imul_di): Likewise.
* config/mips/4130.md (vr4130_class, vr4130_mulsi)
(vr4130_muldi): Likewise.
* config/mips/4300.md (r4300_imul_si, r4300_imul_di): Likewise.
* config/mips/4600.md (r4600_imul, r4650_imul): Likewise.
* config/mips/5000.md (r5k_imul_si, r5k_imul_di): Likewise.
* config/mips/5400.md (ir_vr54_imul_si, ir_vr54_imul_di)
(ir_vr54_imadd_si): Likewise.
* config/mips/5500.md (ir_vr55_imul_si, ir_vr55_imul_di): Likewise.
* config/mips/7000.md (rm7_impy_si_mult, rm7_impy_si_mul)
(rm7_impy_di): Likewise.
* config/mips/9000.md (rm9k_mulsi, rm9k_muldi): Likewise.
* config/mips/generic.md (generic_imul): Likewise.
* config/mips/sb1.md (ir_sb1_mulsi, ir_sb1_muldi): Likewise.
* config/mips/sr71k.md (ir_sr70_imul_si, ir_sr70_imul_di): Likewise.
2005-05-11 J"orn Rennecke <joern.rennecke@st.com>
PR middle-end/20371:
* tree.h (record_layout_info_s): New member prev_packed.
* stor-layout.c (update_alignment_for_field): Fix comment about
KNOWN_ALIGN. For MS bitfields, if we start a new run, make sure
we start it properly aligned.
(place_field): At the beginning of a record, pass 0 as KNOWN_ALIGN
to update_alignment_for_field, and recompute it afterwards using
the alignment of the record.
When a packed bitfield precedes an MS bitfield, don't add padding
at the end of the packed bitfield on behalf of the base type of
the packed bit field.
Don't adjust rli->bitpos at the end
of an MS bitfield run if we already adjusted bitpos/offset for an
alignment as large or larger than the bitfield type size.
Take possible record alignment > BIGGEST_ALIGNMENT into account
when calculating actual_align.
Only put packed buit fields into rli->prev_field if they end up
suitably aligned.
Also set rli->remaining_in_alignment when we re-set rli->prev_field.
Update rli->remaining_in_alignment when we have already started a
run of bit fields and we process a packed bit field.
2005-05-11 Sebastian Pop <pop@cri.ensmp.fr>
* tree-data-ref.c (find_data_references_in_loop): Give up when
the body of the loop contains a CALL_EXPR or an ASM_EXPR: they
may embed arbitrary side effects.
Remove the assumption that GIMPLE form contains a single array
access per statement.
When the statement contains virtual operands, fail if it is not
a MODIFY_EXPR or a CALL_EXPR.
Return after the dont know node is inserted.
2005-05-11 Richard Earnshaw <richard.earnshaw@arm.com>
* arm.md (negsf2, negdf2): Permit these expands when compiling for VFP.
2005-05-11 Richard Guenther <rguenth@gcc.gnu.org>
PR middle-end/19807
PR tree-optimization/19639
* fold-const.c (try_move_mult_to_index): Handle INTEGER_CST
and generic summands for char* as s * delta, too, folding &a[i]
CODE x to &a[i CODE x/s]. Use tree_int_cst_equal
for comparison of steps. Convert types for index addition.
(fold_binary): Adjust the callers to always dispatch to
try_move_mult_to_index.
* tree-ssa-propagate.c (set_rhs): Avoid setting rhs to
expr with non-gimple ARRAY_REF offset.
2005-05-11 Richard Guenther <rguenth@gcc.gnu.org>
* fold-const.c (fold_indirect_ref_1): Avoid removing
NOP_EXPRs with type qualifiers like const.
2005-05-11 Richard Henderson <rth@redhat.com>
PR c/21502
* c-decl.c (finish_decl): Propagate the completed array type of
a global variable into the binding.
2005-05-10 Matt Kraai <kraai@ftbfs.org>
* Makefile.in (gtype-desc.o, build/genautomata.o)
(build/varray.o): Depend on $(VARRAY_H).
2005-05-10 Diego Novillo <dnovillo@redhat.com>
* tree-optimize.c (init_tree_optimization_passes): Re-organize
optimization passes to do an initial batch of scalar cleanups.
2005-05-10 Ian Lance Taylor <ian@airs.com>
* read-rtl.c (struct macro_traverse_data): Define.
(map_attr_string): New static function, broken out of
apply_macro_to_string.
(mode_attr_index, apply_mode_maps): New static functions.
(apply_macro_to_string): Call map_attr_string.
(apply_macro_to_rtx): Add mode_maps and infile parameters. Change
all callers.
(apply_macro_traverse): Expect data to point to a struct
macro_traverse_data.
(read_rtx): Add mode_maps local variable. Use mode_traverse_data
to pass data through htab_traverse.
(read_rtx_1): Add mode_maps parameter. Change all callers.
Handle mode names which are attribute strings.
* doc/md.texi (Substitutions): Rename from String Substitutions.
Change references. Document using attributes as modes.
2005-05-10 Zdenek Dvorak <dvorakz@suse.cz>
* tree-cfg.c (tree_duplicate_sese_region): Update profile.
* tree-optimize.c (init_tree_optimization_passes) Swap
pass_ch and pass_profile.
* tree-ssa-loop-ch.c (copy_loop_headers): Do not update profile
here. Remove rewrite_into_loop_closed_ssa call.
2005-05-10 Adrian Straetling <straetling@de.ibm.com>
* config/s390/s390.c: (s390_const_double_ok_for_constraint_p): New
function.
(legitimate_reload_constant_p): Add check for const double zero.
* config/s390/s390.md: Add comment for constraint letter 'G'.
("*movdf_64", "*movdf_31", "movsf"): Add constraint and proper
attributes for new case.
* config/s390/s390.h: (CONST_DOUBLE_OK_FOR_CONSTRAINT_P): Define it as
s390_const_double_ok_for_constraint_p.
* config/s390/s390-protos.h (s390_const_double_ok_for_constraint_p):
Add prototype.
2005-05-10 Kazu Hirata <kazu@cs.umass.edu>
PR tree-optimization/21170
* tree-ssa-dom.c, tree-ssa-threadupdate.c: Replace
rewrite_ssa_into_ssa in comments with update_ssa.
2005-05-10 Zdenek Dvorak <dvorakz@suse.cz>
* tree-ssa-loop-im.c: Include hashtab.h.
(struct mem_ref_loc): New.
(struct mem_ref): Describe the set of references with the same
shape.
(max_stmt_uid, get_stmt_uid, record_mem_ref, free_mem_refs,
maybe_queue_var, fem_single_reachable_address,
for_each_memref, single_reachable_address,
is_call_clobbered_ref, determine_lsm_reg): Removed.
(record_mem_ref_loc, free_mem_ref_locs, determine_lsm_ref,
hoist_memory_reference, memref_hash, memref_eq, memref_del,
gather_mem_refs_stmt, gather_mem_refs, find_more_ref_vops):
New functions.
(rewrite_mem_refs, schedule_sm): Use mem_ref_loc list.
(determine_lsm_loop): Rewritten.
(determine_lsm): Do not set stmt uids.
2005-05-10 Adrian Straetling <straetling@de.ibm.com>
* config/s390/s390.md: Add comment lines for 'f' and 't' constraint
letters.
2005-05-10 Adrian Straetling <straetling@de.ibm.com>
* config/s390/s390.md: ("anddi3","andsi3","andhi3","andqi3"): Merge.
("iordi3", "iorsi3", "iorhi3", "iorqi3"): Merge.
("xordi3", "xorsi3", "xorhi3", "xorqi3"): Merge.
2005-05-10 Jeff Law <law@redhat.com>
* tree-ssa-dom.c (dom_opt_finalize_block): Do not call
thread_across_edge for any abnormal edges.
2005-05-10 Richard Henderson <rth@redhat.com>
* config/ia64/ia64.c (ia64_expand_atomic_op): New.
* config/ia64/ia64-protos.h: Declare it.
* config/ia64/sync.md (I124MODE, FETCHOP, fetchop_name): New.
(sync_add<I48MODE>, sync_old_add<I48MODE>): Remove.
(sync_<FETCHOP><IMODE>, sync_nand<IMODE>): New.
(sync_old_<FETCHOP><IMODE>, sync_old_nand<IMODE>): New.
(sync_new_<FETCHOP><IMODE>, sync_new_nand<IMODE>): New.
(cmpxchg_rel_<I124MODE>): Split from cmpxchg_acq_<IMODE>. Zero
extend result; use release semantics.
(cmpxchg_rel_di): Rename from cmpxchg_acq_<IMODE>; use release.
(sync_val_compare_and_swap_<IMODE>): Update to match.
2005-05-10 Richard Henderson <rth@redhat.com>
* optabs.c (expand_compare_and_swap_loop): Don't clobber old value
before comparing it for success.
2005-05-10 Richard Henderson <rth@redhat.com>
* config/ia64/sync.md (sync_add<I48MODE>): Fix arguments for
no return value pattern.
2005-05-10 Grigory Zagorodnev <grigory.zagorodnev@intel.com>
H.J. Lu <hongjiu.lu@intel.com>
* libgcov.c (create_file_directory): New function. Create
directory for the given file name.
(gcov_max_filename): New static var. Keeps size of the longest
file name.
(gcov_exit): Always try to create directory for output
file. Relocate each filename basing on environment vars.
(__gcov_init): Remember the longest file name.
* tsystem.h: include filenames.h to get IS_DIR_SEPARATOR
* doc/gcov.texi (Cross-profiling): New node documenting
cross-profiling management.
* doc/invoke.texi (-fprofile-arcs): Add xref to cross-profiling.
2005-05-10 Eric Botcazou <ebotcazou@libertysurf.fr>
* config/sparc/sparc.c (mem_min_alignment): Do not rely
on MEM_ALIGN if TARGET_UNALIGNED_DOUBLES.
2005-05-10 Bob Wilson <bob.wilson@acm.org>
* config/xtensa/lib1funcs.asm (__udivsi3, __divsi3): Rearrange special
case code to avoid one move instruction.
(__umodsi3, __modsi3): Merge duplicated code sequences.
2005-05-10 Kazu Hirata <kazu@cs.umass.edu>
* config/mips/24k.md, config/sh/divtab.c, config/sh/sh.c,
config/sh/sh.md, config/sh/superh.h: Fix comment typos.
* doc/invoke.texi: Fix typos.
* tree-data-ref.c (analyze_array_indexes, analyze_array,
init_data_ref, access_functions_are_affine_or_constant_p,
free_data_refs): Use VEC instead of VARRAY.
* tree-data-ref.h (data_reference): Change the type of
access_fns to VEC(tree,gc)*.
(DR_ACCESS_FN, DR_NUM_DIMENSIONS): Use VEC instead of VARRAY.
2005-05-10 Gabor Loki <loki@gcc.gnu.org>
PR c/17913
* c-typeck.c (build_conditional_expr): Remove reducing cond_expr.
* fold-const.c (fold): Expand the condition of reducing cond_expr.
(contains_label_1, contains_label_p): New functions for checking
labels in a sub-tree.
2005-05-10 Joseph S. Myers <joseph@codesourcery.com>
PR c/21342
* c-decl.c (pushdecl): When there is a declaration in the current
scope and the declarations are external linkage, check for
compatibility with the type in the external scope and update the
type in the external scope with the composite type information.
Do not form a composite type of the new type and the visible type
if they are incompatible.
2005-05-10 Nathan Sidwell <nathan@codesourcery.com>
* crtstuff.c: Revert part of 2005-05-08 Change.
(IN_LIBGCC2): Define.
2005-05-10 Eric Botcazou <ebotcazou@libertysurf.fr>
* config/sparc/sparc.c (fp_sethi_p): Test !SPARC_SIMM13_P and
remove redundant test.
(fp_mov_p): Accept 0.
(fp_high_losum_p): Remove redundant test.
* config/sparc/predicates.md (const_high_operand): Explicitly test
(not small_int_operand).
(fp_const_high_losum_operand): New.
* config/sparc/sparc.md (movsi_insn): Do not emit 'clr'. Reorder.
(movdi_insn_sp32_v9): Use canonical predicates.
(movdi_insn_sp32): Test !TARGET_V9 instead of !TARGET_ARCH64.
(movdi_insn_sp64_novis): Delete.
(movdi_insn_sp64_vis): Rename into movdi_insn_sp64.
(movsf_insn_novis): Delete.
(movsf_insn_vis): Rename into movsf_insn.
(movsf_no_f_insn): Rename into movsf_insn_no_fpu.
(movsf_lo_sum): Use fp_const_high_losum_operand.
(movsf_high): Likewise.
(movsf_high_losum splitter): Likewise.
(mov<V32:mode> expander): Use register_or_zero_operand.
(mov<V64:mode> expander): Likewise.
(movdf_insn_sp32): Use register_or_zero_operand.
(movdf_no_e_insn_sp32): Use register_or_zero_operand.
Rename into movdf_insn_sp32_no_fpu.
(movdf_no_e_insn_v9_sp32): Use register_or_zero_operand.
Rename into movdf_insn_sp32_v9_no_fpu.
(movdf_insn_v9only_novis): Delete.
(movdf_insn_v9only_vis): Rename into movdf_insn_sp32_v9.
(movdf_insn_sp64_novis): Delete.
(movdf_insn_sp64_vis): Rename into movdf_insn_sp64.
(movdf_no_e_insn_sp64): Use register_or_zero_operand.
Rename into movdf_insn_sp64_no_fpu.
(movtf expander): Use register_or_zero_operand.
(movtf_insn_sp32): Delete.
(movtf_insn_vis_sp32): Use register_or_zero_operand.
Rename into movtf_insn_sp32.
(movtf_no_e_insn_sp32): Use register_or_zero_operand.
Rename into movtf_insn_sp32_no_fpu.
(movtf_insn_hq_sp64): Delete.
(movtf_insn_hq_vis_sp64): Use register_or_zero_operand.
Rename into movtf_insn_sp64_hq.
(movtf_insn_sp64): Delete.
(movtf_insn_vis_sp64): Use register_or_zero_operand.
Rename into movtf_insn_sp64.
(movtf_no_e_insn_sp64): Use register_or_zero_operand.
Rename into movtf_insn_sp64_no_fpu.
2005-05-10 Nathan Sidwell <nathan@codesourcery.com>
* config/stormy16/stormy16.c (xstormy16_emit_cbranch): Use
gcc_assert and gcc_unreachable as appropriate.
(xstormy16_split_cbranch, xstormy16_output_cbranch_hi,
xstormy16_output_cbranch_si, xstormy16_split_move,
xstormy16_initial_elimination_offset,
xstormy16_encode_section_info, xstormy16_print_operand_address,
xstormy16_expand_call, xstormy16_expand_arith,
xstormy16_output_shift, xstormy16_init_builtins): Likewise.
2005-05-10 Kazu Hirata <kazu@cs.umass.edu>
* tree-outof-ssa.c (_elim_graph): Change the type of nodes and
const_copies to VEC(tree,heap)*.
(new_elim_graph, delete_elim_graph, elim_graph_size,
elim_graph_add_node, eliminate_build, eliminate_phi): Use VEC
instead of VARRAY.
2005-05-10 Joseph S. Myers <joseph@codesourcery.com>
PR other/21052
* doc/extend.texi (Type Attributes): Correct example syntax.
2005-05-09 Joseph S. Myers <joseph@codesourcery.com>
PR c/21160
* doc/invoke.texi (-Wuninitialized): Update documentation.
2005-05-09 Richard Earnshaw <richard.earnshaw@arm.com>
* arm.c (const_ok_for_arm): Use a faster algorithm.
2005-05-09 David Edelsohn <edelsohn@gnu.org>
PR target/21477
* config/rs6000/rs6000.md (add_op2): New.
(add<mode>3): Use it.
2005-05-09 Richard Earnshaw <richard.earnshaw@arm.com>
* arm.c (arm_gen_constant): Add new heuristic for generating
constant integers that can be expressed as the difference of two
valid immediates.
2005-05-09 Roger Sayle <roger@eyesopen.com>
* c-tree.h (parser_build_unary_op): New prototype.
* c-typeck.c (parser_build_unary_op): New function to construct
a unary operation in the C parser.
* c-parser.c (c_parser_unary_expression): Use the new function
parser_build_unary_op when appropriate.
2005-05-09 Mark Mitchell <mark@codesourcery.com>
PR 18655
* dwarf2out.c (output_call_frame_info): Use DWARF2_FRAME_REG_OUT
before outputting DWARF_FRAME_RETURN_COLUMN.
2005-05-09 Adrian Straetling <straetling@de.ibm.com>
* config/s390/s390.c: (s390_branch_condition_mask,
s390_branch_condition_mnemonic, s390_extra_constraint_str,
s390_const_ok_for_constraint_p, s390_expand_plus_operand,
legitimize_pic_address, s390_emit_tls_call_insn,
legitimize_tls_address, legitimize_tls_address,
s390_expand_addcc, print_shift_count_operand, print_operand,
addr_generation_dependency_p, annotate_constant_pool_refs,
s390_split_branches, find_constant_pool_ref,
replace_constant_pool_ref, s390_add_constant, s390_find_constant,
s390_find_execute, s390_mainpool_start, s390_chunkify_start,
s390_output_pool_entry, s390_function_value,
s390_call_saved_register_used, s390_emit_call): Replace
conditional aborts by gcc_assert and unconditional by gcc_unreachable.
(s390_select_ccmode, s390_match_ccmode_set, s390_extract_part,
s390_cannot_force_const_mem, s390_output_dwarf_dtprel,
get_some_local_dynamic_name, s390_function_arg_size,
s390_function_arg_advance, s390_function_arg,
s390_expand_builtin, s390_gen_rtx_const_DI): Replace abort in
default case by gcc_unreachable.
* config/s390/s390.md: ("*cjump_31", "*icjump_31", "*jump31"): Replace
conditional abort by gcc_assert.
("doloop_si31"): Replace abort in last else by gcc_unreachable.
("main_pool", "pool"): Replace unconditional abort by gcc_unreachable.
2005-05-09 Adrian Straetling <straetling@de.ibm.com>
* config/s390/s390.c: (s390_decompose_address,
tls_symbolic_operand, legitimate_pic_operand_p,
legitimate_constant_p, legitimate_reload_constant_p,
s390_expand_plus_operand, legitimate_address_p,
legitimate_la_operand_p, ): Remove 'register' from signature.
(symbolic_reference_mentioned_p,
tls_symbolic_reference_mentioned_p): Remove 'register' from local
variable declarations.
(legitimize_address): Remove 'register' from
signature and local variable declarations.
2005-05-09 Adrian Straetling <straetling@de.ibm.com>
* config/s390/s390-protos.h: (s390_match_ccmode,
s390_match_ccmode_set, reg_used_in_mem_p,
symbolic_reference_mentioned_p, tls_symbolic_reference_mentioned_p,
legitimate_la_operand_p, preferred_la_operand_p,
s390_short_displacement, addr_generation_dependency_p,
legitimate_reload_constant_p, legitimate_address_p): Change return type
into 'bool'.
(s390_tm_ccmode): Change type of parameter "mixed" into 'bool'.
* config/s390/s390.c: (s390_match_ccmode,
symbolic_reference_mentioned_p, tls_symbolic_reference_mentioned_p,
legitimate_reload_constant_p): Change return type into 'bool'.
(preferred_la_operand_p,legitimate_la_operand_p, legitimate_address_p):
Likewise. Additionally adapted comment.
(s390_extra_constraint_p): Change Comment to reflect 'int' return type.
(s390_tm_ccmode): Change type of parameter "mixed" into 'bool'.
(s390_decompose_address): Change the type of the internal flags
"pointer", "base_ptr", "indx_ptr", and the return value into 'bool'.
(struct s390_address): Change type of "pointer" into bool.
* config/s390/s390.md: ("*tmdi_reg", "*tmsi_reg", "tm<mode>_full"):
Adapt calls for 's390_tm_ccmode' to the new signature.
2005-05-09 Adrian Straetling <straetling@de.ibm.com>
* config/s390/s390.c: (s390_match_ccmode_set,
s390_branch_condition_mnemonic, s390_short_displacement,
s390_decompose_address, get_thread_pointer, legitimize_tls_address,
print_shift_count_operand, get_some_local_dynamic_name,
get_some_local_dynamic_name_1, reg_used_in_mem_p,
addr_generation_dependency_p, s390_split_branches,
annotate_constant_pool_refs, find_constant_pool_ref,
replace_constant_pool_ref, find_ltrel_base, replace_ltrel_base,
s390_optimize_prologue, find_unused_clobbered_reg, s390_frame_area,
s390_register_info, s390_frame_info, s390_init_frame_layout,
s390_update_frame_layout, save_fpr, restore_fpr, save_gprs,
restore_gprs, s390_function_arg_size, s390_function_arg_float,
s390_init_machine_status, s390_assemble_integer, s390_handle_option,
s390_encode_section_info, s390_cannot_force_const_mem,
s390_delegitimize_address, s390_return_in_memory, s390_init_builtins,
s390_expand_builtin, s390_output_mi_thunk, s390_safe_attr_type,
s390_adjust_priority, s390_issue_rate,
s390_first_cycle_multipass_dfa_lookahead, s390_cannot_copy_insn_p,
s390_rtx_costs, s390_address_cost, s390_reorg, s390_valid_pointer_mode,
s390_build_builtin_va_list, s390_gimplify_va_arg,
s390_function_ok_for_sibcall, s390_call_saved_register_used,
s390_pass_by_reference, s390_fixed_condition_code_regs,
s390_cc_modes_compatible s390_mainpool_start,, s390_mainpool_finish,
s390_mainpool_cancel, s390_chunkify_start, s390_chunkify_finish,
s390_chunkify_cancel, s390_start_pool, s390_end_pool,
s390_add_pool_insn, s390_find_pool, s390_add_constant,
s390_find_constant, s390_add_execute, s390_find_execute,
s390_execute_label, s390_execute_target, s390_dump_pool,
s390_dump_execute, s390_alloc_pool, s390_free_pool): Remove prototypes.
Move target macro definitions to the end of the file. Move several
functions within the file to assure correct compiling.
2005-05-09 Steven Bosscher <stevenb@suse.de>
* calls.c (purge_reg_equiv_notes): Remove, fold into...
(fixup_tail_calls): ...here. Only look at insns between the
start of the function and the FUNCTION_BEG insn note.
* gcse.c (one_cprop_pass): Fix typos in dumps.
* tree-ssa-operands.h (FOR_EACH_PHI_ARG): Fix typos.
2005-05-09 Adrian Straetling <straetling@de.ibm.com>
* config/s390/s390.h: Move xxx_REGNUM definitions to s390.md.
* config/s390/s390.md: ("SIBCALL_REGNUM", "BASE_REGNUM",
"RETURN_REGNUM", "CC_REGNUM", "TP_REGNUM"): New constants.
Replace every occurrence of '(reg:<MODE> 33)' by '(reg:<MODE>
CC_REGNUM)'.
("get_tp_64", "get_tp_31", "set_tp_64", "set_tp_31"): Replace
'(reg:<MODE> 36)' by '(reg:<MODE> TP_REGNUM)'.
("*sibcall_br", "*sibcall_value_br"): Replace '(reg:DI 1)' by '(reg:DI
REG_SC)'.
2005-05-09 Adrian Straetling <straetling@de.ibm.com>
* config/s390/s390.md: ("gf") New mode attribute.
("fixuns_truncdfdi2", "fixuns_truncdfsi2", "fixuns_truncsfdi2",
"fixuns_truncsfsi2"): Merge.
("fix_truncdfdi2", "fix_truncsfdi2"): Merge.
("fix_truncdfdi2_ieee", "fix_truncdfsi2_ieee", "fix_truncsfdi2_ieee",
"fix_truncsfsi2_ieee"): Merge.
2005-05-09 Adrian Straetling <straetling@de.ibm.com>
* config/s390/s390.md: ("FPR") New mode macro.
("de", "dee"): New mode attributes.
("cmpdf", "cmpsf"): Merge.
("*cmpdf_ccs_0", "*cmpsf_ccs_0"): Merge.
("*cmpdf_ccs_0_ibm", "*cmpdf_ccs_0_ibm"): Merge.
("*cmpdf_ccs", "*cmpsf_ccs"): Merge.
("*cmpdf_ccs_ibm", "*cmpsf_ccs_ibm"): Merge.
("floatdidf2", "floatdisf2"): Merge.
("adddf3", "addsf3"): Merge.
("*adddf3", "*addsf3"): Merge.
("*adddf3_cc", "*addsf3_cc"): Merge.
("*adddf3_cconly", "*addsf3_cconly"): Merge.
("*adddf3_ibm", "*addsf3_ibm"): Merge.
("subdf3", "subsf3"): Merge.
("*subdf3", "*subsf3"): Merge.
("*subdf3_cc", "*subsf3_cc"): Merge.
("*subdf3_cconly", "*subsf3_cconly"): Merge.
("*subdf3_ibm", "*subsf3_ibm"): Merge.
("muldf3", "mulsf3"): Merge.
("*muldf3", "*mulsf3" "): Merge.
("*muldf3_ibm", "*mulsf3_ibm"): Merge.
("*fmadddf", "*fmaddsf"): Merge.
("*fmsubdf", "*fmsubsf"): Merge.
("divdf3", "divsf3"): Merge.
("*divdf3", "*divsf3"): Merge.
("*divdf3_ibm", "*divsf3_ibm"): Merge.
("negdf2", "negsf2"): Merge.
("*negdf2_cc", "*negsf2_cc"): Merge.
("*negdf2_cconly", "*negsf2_cconly"): Merge.
("*negdf2", "*negsf2"): Merge.
("*negdf2_ibm", "*negsf2_ibm"): Merge.
("absdf2", "abssf2"): Merge.
("*absdf2_cc", "*abssf2_cc"): Merge.
("*absdf2_cconly", "*abssf2_cconly"): Merge.
("*absdf2", "*abssf2"): Merge.
("*absdf2_ibm", "*abssf2_ibm"): Merge.
("*negabsdf2_cc", "*negabssf2_cc"): Merge.
("*negabsdf2_cconly", "*negabssf2_cconly"): Merge.
("*negabsdf2", "*negabssf2"): Merge.
("sqrtdf2", "sqrtsf2"): Merge.
2005-05-09 Adrian Straetling <straetling@de.ibm.com>
* config/s390/s390.c: (s390_adjust_priority): Adapt to changed
attribute names.
* config/s390/2084.md: ("x_fsimpd", "x_fsimps", "x_fdivd", "x_fdivs",
"x_floadd", "x_floads", "x_fstored", "x_fstores"): Rename to
("x_fsimpdf", "x_fsimpsf", "x_fdivdf", "x_fdivsf", "x_floaddf",
"x_floadsf", "x_fstoredf", "x_fstoresf") and replace 'type'
attribute names.
* config/s390/s390.md: ("type"): Rename "fsimpd, fsimps, floadd, floads,
fstored, fstores, fmuld, fmuls, fdivd, fdivs, fsqrtd, fsqrts" to
"fsimpdf, fsimpsf, floaddf, floadsf, fstoredf, fstoresf, fmuldf,
fmulsf, fdivdf, fdivsf, fsqrtdf, fsqrtsf".
("*cmpdf_ccs_0", "*cmpdf_css_0_ibm", "*cmpdf_ccs",
"*cmpdf_ccs_ibm", "*cmpsf_ccs_0", "*cmpsf_css_0_ibm",
"*cmpsf_ccs", "*cmpsf_ccs_ibm", "*movdi_64", "*movdi_31",
"*movsi_zarch", "*movsi_esa", "*movdf_64", "*movdf_31", "movsf",
"*muldf3", "*muldf3_ibm", "*fmadddf", "*fmsubdf", "*mulsf3",
"mulsf3_ibm", "*fmaddsf", "fmsubsf", "*divdf3", "*divdf3_ibm",
"*negdf2_cc", "*negdf2_cconly", "*negdf2", "*negdf2_ibm",
"*negsf2_cc", "*negsf2_cconly", "*negsf2", "*absdf2_cc",
"*absdf2_cconly", "*absdf2", "*absdf2_ibm", "*abssf2_cc",
"*abssf2_cconly", "*abssf2", "*abssf2_ibm", "*negabsdf2_cc",
"*negabsdf2_cconly", "*negabsdf2", "*negabssf2_cc",
"*negabssf2_cconly", "*negabssf2", "sqrtdf2", "sqrtsf2"): Rename
'type' value.
("*divsf3"): Additionally rename second pattern to
"*divsf3_ibm".
("truncdfsf2_ibm", "extendsfdf2_ieee", "extendsfdf2_ibm",
"*adddf3", "*adddf3_cc", "*adddf3_cconly", "*adddf3_ibm",
"*addsf3", "*addsf3_cc", "*addsf3_cconly", "*subdf3",
"subdf3_cc", "*subdf3_cconly", "*subdf3_ibm", "*subsf3",
"subsf3_cc", "*subsf3_cconly", "*subsf3_ibm"): Merge identical
'type values' and rename 'type' value.
("*addsf3"): Additionally rename second pattern to
"*addsf3_ibm".
2005-05-09 Adrian Straetling <straetling@de.ibm.com>
* config/s390/s390.md: ("SHIFT"): New mode macro.
("lr", "shift"): New mode attributes.
("ashldi3", "lshrdi3"): Merge.
("*ashldi3_31", "*lshrdi3"_31): Merge.
("*ashldi3_64", "*lshrdi3"_64): Merge.
("ashlsi3", "lshrsi3"): Merge.
2005-05-09 Adrian Straetling <straetling@de.ibm.com>
* config/s390/s390.md: ("DSI", "SCOND"): New mode
macros.
("E", "g"): New mode attributes.
("*adddi3_alc_cc", "*addsi3_alc_cc"): Merge.
("*adddi3_alc", "*addsi3_alc"): Merge.
("*subdi3_slb_cc", "*subsi3_slb_cc"): Merge.
("*subdi3_slb", "*subsi3_slb"): Merge.
("adddicc", "addsicc"): Merge.
("*sconddi", "*scondsi"): Merge.
("*sconddi_neg", "*scondsi_neg"): Merge.
("sltu", "sgtu", "sleu", "sgeu"): Merge.
("negdi2", "negsi2"): Extract expander pattern from
"negsi2" and merge with "negdi2".
("*negdi2"): Merge with instruction pattern of "negsi2".
("*negdi2_cc", "*negsi2_cc"): Merge.
("*negdi2_cconly", "*negsi2_cconly"): Merge.
("rotldi3", "rotlsi3"): Merge.
2005-05-09 Adrian Straetling <straetling@de.ibm.com>
* config/s390/s390.md: ("hc"): New mode attribute.
("extendhidi2", "extendqidi2"): Merge.
("*extendhidi2", "*extendqidi2"): Merge.
("extendhisi2", "extendqisi2"): Merge.
("zero_extendhidi2", "zero_extendqidi2"): Merge.
("*zero_extendhidi2", "*zero_extendqidi2"): Merge.
Merged 2 define_split.
("*zero_extendhisi2", "*zero_extendqisi2"): Merge.
("*zero_extendhisi2_64", "*zero_extendqisi2_64"): Merge.
2005-05-09 Adrian Straetling <straetling@de.ibm.com>
* config/s390/s390.md: ("COMPARE"): New mode macro.
("beq", "bne", "bgt", "bgtu", "blt", "bltu", "bge", "bgeu",
"ble", "bleu", "bunordered", "bordered", "buneq", "bunlt",
"bungt", "bunle", "bunge", "bltgt"): Merge.
2005-05-09 Adrian Straetling <straetling@de.ibm.com>
* config/s390/s390.md: ("INT"): New mode macro.
("one_cmpldi2", "one_cmplsi2", "one_cmplhi2", "one_cmplqi2"):
Merge.
2005-05-09 Adrian Straetling <straetling@de.ibm.com>
* config/s390/s390.md: ("GPR", "P"): New mode macros.
("cmpdi", "cmpsi"): Merge.
("strlendi", "strlensi"): Merge.
("*strlendi", "*strlensi"): Merge.
("movmemdi", "movmemsi"): Merge.
("clrmemdi", "clrmemsi"): Merge.
2005-05-09 Adrian Straetling <straetling@de.ibm.com>
* config/s390/s390.md: ("HQI"): New mode macro.
("icm_lo", "icm_hi", "max_uint"): New mode attributes.
("*tmhi_full", "*tmqi_full"): Merge.
("*tsthiCCT", "*tstqiCCT"): Merge.
("*tsthi", "*tstqi"): Merge.
("*tsthi_cconly", "tstqi_cconly"): Merge.
("*sethighhisi", "*sethighqisi"): Merge.
2005-05-09 Kazu Hirata <kazu@cs.umass.edu>
* crtstuff.c, integrate.h, tree-scalar-evolution.h,
config/alpha/unicosmk.h, config/arc/arc.md,
config/arm/bpabi.h, config/arm/coff.h, config/arm/elf.h,
config/arm/ieee754-df.S, config/arm/ieee754-sf.S,
config/arm/netbsd.h, config/arm/pe.c, config/arm/pe.h,
config/arm/semi.h, config/arm/uclinux-elf.h,
config/arm/wince-pe.h, config/fr30/fr30.c,
config/rs6000/altivec.h: Update copyright.
2005-05-09 Nathan Sidwell <nathan@codesourcery.com>
* config/pdp11/pdp11.c (pdp11_output_function_prologue): Use
gcc_assert and gcc_unreachable as appropriate.
(pdp11_output_function_epilogue, output_move_double,
output_move_quad, print_operand_address, output_jump,
output_addr_const_pdp11): Likewise.
* config/pdp11/pdp11.h (FUNCTION_PROFILER,
ASM_OUTPUT_ALIGN): Likewise.
* config/pdp11/pdp11.md: Likewise.
(extendhisi2, subhi3, subqi3): Likewise.
2005-05-09 David Edelsohn <edelsohn@gnu.org>
PR middle-end/21237
* dojump.c (do_jump, MINUS_EXPR): Build NE_EXPR and fall through
to NE_EXPR case.
2005-05-09 Kazu Hirata <kazu@cs.umass.edu>
* config/ia64/ia64.c: Fix a comment typo.
2005-05-09 Richard Earnshaw <rearnsha@arm.com>
PR target/21397
* arm.c (ARM_OPT_SET_CPU, ARM_OPT_SET_ARCH, ARM_OPT_SET_TUNE): Define.
(arm_override_options): Use them instead of manifest constants. Don't
allow -march to override the -mtune setting.
2005-05-09 Nathan Sidwell <nathan@codesourcery.com>
* config/iq2000/iq2000.c (abort_with_insn): Use fancy_abort.
(gen_int_relational): Use gcc_unreachable and gcc_assert as necessary.
(function_arg_advance, function_arg, save_restore_insns,
iq2000_expand_prologue, iq2000_output_conditional_branch,
expand_one_builtin, print_operand):
* config/iq2000/iq2000.md (tablejump): Likewise.
2005-05-09 David Ung <davidu@mips.com>
* config/mips/mips.h (processor_type): Add names for the 24K.
* config/mips/mips.c (mips_cpu_info_table): Add names for the 24K
processor family.
* config/mips/mips.md (cnv_mode): New attribute for recording the
conversion types of float convert insns.
(cpu): Add 24k and 24kx.
(include): Include 24k.md file.
(truncdfsf2, extendsfdf2, fix_truncdfsi2_insn, fix_truncdfsi2_macro)
(fix_truncdfdi2, fix_truncsfdi2, floatsidf2, floatdidf2, floatsisf2)
(floatdisf2): Setup cnv_mode.
(fix_truncsfsi2_insn, fix_truncsfsi2_macro): Changed mode to SF and
setup cnv_mode.
* config/mips/24k.md: New file, contains 24k DFA pipeline
description.
2005-05-09 Nathan Sidwell <nathan@codesourcery.com>
* config/sh/sh.c (print_operand_address): Use gcc_assert and
gcc_unreachable as appropriate.
(print_operand, prepare_move_operands, prepare_scc_operands,
output_movedouble, output_branch, shift_insns_rtx, gen_shifty_op,
gen_shl_and, shl_sext_kind, gen_datalabel_ref, dump_table,
fixup_mova, gen_far_branch, sh_reorg, split_branches,
final_prescan_insn, output_stack_adjust, sh_expand_epilogue,
sh_set_return_address, sh_setup_incoming_varargs,
initial_elimination_offset, sh_pch_valid_p, get_free_reg,
sh_expand_builtin, sh_output_mi_thunk, extract_sfunc_addr,
check_use_sfunc_addr): Likewise.
* config/sh/netbsd-elf.h (FUNCTION_PROFILER): Likewise.
* config/sh/sh.h (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
* config/sh/symbian.c (sh_symbian_mark_dllexport,
sh_symbian_mark_dllimport): Likewise.
* config/sh/sh.md: Likewise.
(movdicc, call_pop, call_value_pop, casesi_worker_1,
casesi_worker_2, casesi_shift_media, casesi_load_media,
return_media): Likewise.
2005-05-08 Roger Sayle <roger@eyesopen.com>
PR inline-asm/8788
* stmt.c (expand_asm_operands): Avoid calling force_reg on BLKmode
operands.
2005-05-08 Richard Henderson <rth@redhat.com>
* config/alpha/alpha.c (adjust_address): Fix typo last change.
2005-05-08 Stephane Carrez <stcarrez@nerim.fr>
* config/m68hc11/m68hc11.h (REG_VALID_P): A regno must be >= 0
and -1 can happen in reg_renumber when no hard register is assigned.
2005-05-08 Steven Bosscher <stevenb@suse.de>
Kazu Hirata <kazu@cs.umass.edu>
PR tree-optimization/14841, tree-optimization/15838
* tree-ssa-ccp.c (fold_const_aggregate_ref): New.
(evaluate_stmt): Call it.
2005-05-08 Jakub Jelinek <jakub@redhat.com>
* config/ia64/ia64.c (ia64_override_options): Don't set
ia64_flag_var_tracking and clear flag_var_tracking here...
(ia64_file_start): ... but here.
2005-05-08 Nathan Sidwell <nathan@codesourcery.com>
* config/m68hc11/m68hc11.c (m68hc11_emit_libcall): Use gcc_assert
and gcc_unreachable as appropriate.
(expand_prologue, expand_epilogue, m68hc11_gen_lowpart,
m68hc11_gen_highpart, print_operand, print_operand_address,
m68hc11_expand_compare, m68hc11_expand_compare_and_branch,
m68hc11_gen_movhi): Likewise.
* config/m68hc11/m68hc11.h (HARD_X_REGNUM): Reword comment.
* config/m68hc11/m68hc11.md: Reword comment.
2005-05-08 Stephane Carrez <stcarrez@nerim.fr>
PR target/21281
* config/m68hc11/predicates.md (splitable_operand): An immediate is
allowed.
2005-05-08 Stephane Carrez <stcarrez@nerim.fr>
* config/m68hc11/predicates.md (reg_or_some_mem_operand): Do not allow
the 68HC12 address indirect addressing mode as it is not supported by
bset and bclr.
* config/m68hc11/m68hc11-protos.h
(m68hc11_valid_addressing_p): Declare.
(m68hc11_add_mode): Declare.
* config/m68hc11/m68hc11.c (m68hc11_valid_addressing_p): Rename from
register_indirect_p and export it.
(m68hc11_z_replacement): Use emit_insn_after when adding the save Z
instruction so that it is part of the good BB.
(m68hc11_gen_movhi): Fix invalid generation of indexed indirect
addressing with movw.
(m68hc11_gen_movqi): Use pula and pulb instead of lda and ldb for
68HC12.
* config/m68hc11/m68hc11.h (ADDR_STRICT, ADDR_INCDEC, ADDR_INDEXED,
ADDR_OFFSET, ADDR_INDIRECT, ADDR__CONST): Moved from m68hc11.c.
* config/m68hc11/m68hc11.md ("movhi_const0"): Use this pattern only
for 68HC11.
("*movhi_68hc12"): Handle movhi_const0.
("*subhi3", "subqi3"): Use general_operand for operand 1.
("*subhi3_zext"): Likewise.
2005-05-08 Stephane Carrez <stcarrez@nerim.fr>
PR target/19051
* config/m68hc11/m68hc11.md ("mulqi3"): Use general_operand for
operand 1 and fix constraints.
("mulqihi3"): Use general_operand for operand 2.
2005-05-08 Julian Brown <julian@codesourcery.com>
H.J. Lu <hongjiu.lu@intel.com>
Paul Brook <paul@codesourcery.com>
* configure.ac: Set ld_vers_major, ld_vers_minor and ld_vers_patch for
GNU linker. Support linker version x.x.x.x.x. Require GNU linker
20050308/2.16.0 or newer for comdat group.
* configure: Regenerated.
* config.in: Regenerated.
* varasm.c (default_function_rodata_section): Put .rodata section in
COMDAT group when necessary.
(default_elf_asm_named_section): Rename HAVE_GAS_COMDAT_GROUP to
HAVE_COMDAT_GROUP.
(default_unique_section_1): Don't use .gnu.linkonce when COMDAT is
available.
2005-05-08 Kazu Hirata <kazu@cs.umass.edu>
* tree-dfa.c (referenced_vars, add_referenced_var): Use VEC
instead of VARRAY.
* tree-flow.h (num_referenced_var, referenced_var): Likewise.
* tree-into-ssa.c (mark_def_site_blocks): Likewise.
* tree-ssa.c (init_tree_ssa, delete_tree_ssa): Likewise.
* tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
2005-05-08 Stephane Carrez <stcarrez@nerim.fr>
PR target/16925
* config/m68hc11/m68hc11.c (m68hc11_gen_highpart): Handle split of
64-bit constants on 64-bit hosts.
(m68hc11_split_logical): Simplify.
(m68hc11_split_move): Likewise.
2005-05-08 Nathan Sidwell <nathan@codesourcery.com>
Paolo Bonzini <bonzini@gnu.org>
* Makefile.in (cs-tconfig.h): Pass USED_FOR_TARGET to mkconfig.sh
* aclocal.m4 (GCC_TARGET_TEMPLATE, AH_TEMPLATE): New.
* configure.ac (enable_checking): Fix typos in runtime_checking.
(ENABLE_RUNTIME_CHECKING): Mark as target template.
(xm_file): Prepend auto-host.h
(HAVE_GAS_HIDDEN, HAVE_LD_EH_FRAME_HDR): Mark as target template.
* mkconfig.sh: Do not automatically define USED_FOR_TARGET in
tconfig.h.
* crtstuff.c: Do not include auto-host.h.
(IN_LIBGCC2): Do not define.
* gcov-io.h: Include tconfig.h, not auto-host.h.
* libgcc2.c: Do not include auto-host.h.
(abort): Do not undefine.
* libgcov.c: Remove unneeded comment about config.h.
* unwind-dw2-fde-glibc.c: Do not inlude auto-host.h.
* config.in, configure: Regenerated.
2005-05-08 Nathan Sidwell <nathan@codesourcery.com>
Falk Hueffner <falk@debian.org>
* config/alpha/alpha.c (tls_symbolic_operand_1): Use gcc_assert
and gcc_unreachable as appropriate.
(get_aligned_mem, get_unaligned_address,
alpha_emit_set_long_const, alpha_emit_conditional_branch,
alpha_emit_setcc, alpha_emit_conditional_move,
alpha_lookup_xfloating_lib_func, alpha_compute_xfloating_mode_arg,
alpha_emit_xfloating_libcall, alpha_split_tfmode_pair,
alpha_expand_unaligned_load, alpha_expand_block_move,
alpha_expand_zap_mask, get_trap_mode_suffix,
get_round_mode_suffix, get_some_local_dynamic_name,
print_operand_address, function_arg, alpha_return_in_memory,
function_value, alpha_expand_builtin,
alpha_initial_elimination_offset, alpha_expand_epilogue,
summarize_insn, alpha_handle_trap_shadows, alphaev5_insn_pipe,
alphaev5_next_group, alpha_align_insns,
unicosmk_initial_elimination_offset, unicosmk_unique_section,
unicosmk_ssib_name): Likewise.
* config/alpha/alpha.h (ASM_OUTPUT_ADDR_VEC_ELT): Likewise.
* config/alpha/unicosmk.h (TRAMPOLINE_TEMPLATE,
ASM_OUTPUT_ADDR_DIFF_ELT, ASM_OUTPUT_ADDR_DIFF_VEC): Likewise.
* config/alpha/vms.h (INITIAL_ELIMINATION_OFFSET,
ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
* config/alpha/alpha.md (*divmodsi_internal_er,
*divmoddi_internal_er, ashldi3, *insxl, sibcall, call_osf,
call_nt, call_umk, call_vms, call_value, sibcall_value,
call_value_osf, call_value_nt, call_value_vms, call_value_umk,
*call_vms_1, *movmemdi_1, *clrmemdi_1, *call_value_vms_1): Likewise.
* config/alpha/predicates.md (input_operand): Likewise.
2005-05-08 Nathan Sidwell <nathan@codesourcery.com>
* config/frv/frv.c (frv_default_flags_for_cpu): Use gcc_assert and
gcc_unreachable, as appropriate.
(frv_function_prologue, frv_alloc_temp_reg,
frv_initial_elimination_offset, frv_expand_block_move,
frv_expand_block_clear, frv_print_operand_jump_hint,
frv_legitimize_tls_address, unspec_got_name, frv_emit_move,
frv_emit_movsi, frv_split_cond_move, frv_split_minmax,
frv_ifcvt_modify_insn, frv_ifcvt_modify_final,
frv_adjust_field_align, frv_insn_unit, frv_cond_flags,
frv_sort_insn_group, frv_reorder_packet, frv_matching_accg_mode,
frv_in_small_data_p, frv_asm_out_constructor,
frv_asm_out_destructor, frv_output_dwarf_dtprel): Likewise.
* config/frv/frv.md (reload_incc_fp, *cond_exec_si_binary1,
*cond_exec_si_binary2, *cond_exec_si_divide, *cond_exec_si_unary1,
*cond_exec_sf_conv, *cond_exec_sf_add, call, sibcall, call_value,
sibcall_value, casesi): Likewise.
* config/mn10300/mn10300.c (print_operand): Use gcc_assert and
gcc_unreachable as appropriate.
(print_operand_address, mn10300_print_reg_list, expand_prologue,
expand_epilogue, notice_update_cc, initial_offset,
mn10300_address_cost_1): Likewise.
* config/mn10300/mn10300.md: Likewise.
(absdf2, abssf2, negdf2, negsf2): Likewise.
2005-05-08 Richard Sandiford <rsandifo@redhat.com>
PR target/21416
* config/mips/mips.c (mips_emit_compare): Don't reverse UNGE and UNGT
comparisons.
* config/mips/mips.md (swapped_fcond): New code macro and attribute.
(sgt_<mode>, sge_<mode>): Generalize to all members of swapped_fcond,
including sunge_<mode> and sungt_<mode>.
2005-05-08 Richard Sandiford <rsandifo@redhat.com>
* integrate.h (get_hard_reg_initial_val): Change type of register
parameter from int to unsigned int.
(has_hard_reg_initial_val): Likewise.
* integrate.c (get_hard_reg_initial_val): Likewise.
(has_hard_reg_initial_val): Likewise. Remove cast to unsigned int.
2005-05-08 Kazu Hirata <kazu@cs.umass.edu>
* except.c (eh_status): Change the type of ttype_data to
VEC(tree,gc)*.
(add_ttypes_entry, assign_filter_values,
output_function_exception_table): Use VEC instead of VARRAY.
2005-05-07 David Edelsohn <edelsohn@gnu.org>
* config/rs6000/rs6000.md (popcount<mode>2): Fix non-C90 constant.
2005-05-07 Paul Brook <paul@codesourcery.com>
* Makefile.in: Fix dependencies.
(GCOV_IO_H, VARRAY_H): Set.
2005-05-07 Anthony Green <green@redhat.com>
PR bootstrap/21403
* configure.ac (STMP_FIXPROTO): Fix [ ] consumption problem in
x$STMP_FIXPROTO test.
* configure: Rebuilt.
2005-05-07 Joseph S. Myers <joseph@codesourcery.com>
* config/pa/pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Do not define
inappropriate feature test macros if flag_iso.
2005-05-07 Joseph S. Myers <joseph@codesourcery.com>
* config/ia64/hpux.h (NO_IMPLICIT_EXTERN_C): Define.
2005-05-07 Hans-Peter Nilsson <hp@axis.com>
PR target/21441
* config/cris/cris.md ("*movdi_insn", "*mov_sidesisf_biap")
("*mov_sidesisf", "*mov_sidesisf_biap_mem", "*mov_sidesisf_mem"):
Handle moved operand being in special register.
("smulsi3_highpart", "umulsi3_highpart"): Change .error into
presumed working insn.
(mover2side): Add FIXME.
2005-05-07 Richard Sandiford <rsandifo@redhat.com>
* integrate.c (get_func_hard_reg_initial_val): Delete.
(has_func_hard_reg_initial_val): Delete.
(get_hard_reg_initial_val): Inline the old implementation of
get_func_hard_reg_initial_val. Use has_hard_reg_initial_val
instead of has_func_hard_reg_initial_val to test for an existing
pseudo. Only create an rtx if a new initial value entry is needed.
(has_hard_reg_initial_val): Scan the initial value list directly.
Don't create an rtx.
2005-05-07 David Edelsohn <edelsohn@gnu.org>
* config.gcc ({powerpc,rs6000}-ibm-aix*): Remove rs6000/aix.opt
from extra_options.
* config.in (HAVE_AS_POPCNTB): New.
* configure.ac (HAVE_AS_MFCRF): Add .machine "pwr5" to AIX test.
(HAVE_AS_POPCNTB): New.
* configure: Regenerated.
* config/rs6000/aix.h (TARGET_XL_COMPAT): Delete.
* config/rs6000/rs6000.c (rs6000_override_options, power5): Add
MASK_POPCNTB. Uncomment rs6000_sched_restricted_insns_priority
and rs6000_sched_costly_dep.
* config/rs6000/rs6000.h (TARGET_POPCNTB): New.
(TARGET_XL_COMPAT): Delete.
* config/rs6000/rs6000.md (UNSPEC_POPCNTB): New.
(popcount<mode>2): New.
(popcntb<mode>2): New.
* config/rs6000/rs6000.opt (mpopcntb): New.
* opt-functions.awk (var_set): Emit OPTION_MASK_ for InverseMask
if variable name exists.
2005-05-07 Matt Kraai <kraai@ftbfs.org>
* Makefile.in (c-gimplify.o): Depend on $(RTL_H) instead of rtl.h.
2005-05-07 Richard Henderson <rth@redhat.com>
PR target/21412
* config/rs6000/rs6000.c (rs6000_emit_move): Look for tls addresses
with constant offsets.
2005-05-07 Nathan Sidwell <nathan@codesourcery.com>
* config/v850/v850.c (print_operand): Use gcc_assert and
gcc_unreachable, as appropriate.
(print_operand_address, v850_handle_data_area_attribute,
v850_encode_data_area, construct_restore_jr, construct_save_jarl,
v850_insert_attributes, construct_prepare_instruction): Likewise.
* config/v850/v850.h (INITIAL_ELIMINATION_OFFSET): Likewise.
* config/v850/v850.md (movsicc, *sasf_1): Likewise.
2005-05-07 Kazu Hirata <kazu@cs.umass.edu>
* tree-ssa-loop-ivcanon.c, config/i386/i386.c,
config/rs6000/rs6000.h: Fix comment typos.
2005-05-07 Richard Sandiford <rsandifo@redhat.com>
* doc/invoke.texi: Remove documentation for MIPS' -mint64 option.
* config/mips/mips.c (TARGET_SCALAR_MODE_SUPPORTED_P): Delete.
(mips_scalar_mode_supported_p): Delete.
2005-05-06 Eric Christopher <echristo@redhat.com>
* config/mips/mips.opt: Remove -mint64 option.
* config/mips/mips.c (override_options): Remove -mint64
handling.
* config/mips/mips.h (INT_TYPE_SIZE): Define to 32.
* config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Remove
64-bit integer handling.
* doc/invoke.texi (Option Summary): Remove -mint64 for
mips.
2005-05-06 Zdenek Dvorak <dvorakz@suse.cz>
PR tree-optimization/19401
* tree-flow.h (tree_unroll_loops_completely): Declaration changed.
* tree-ssa-loop-ivcanon.c (enum unroll_level): New.
(estimated_unrolled_size): New function.
(try_unroll_loop_completely, canonicalize_loop_induction_variables,
tree_unroll_loops_completely): Always unroll loops if the code size
does not increase.
* tree-ssa-loop.c (tree_complete_unroll): Indicate whether all
loops should be unrolled completely.
(gate_tree_complete_unroll): Run complete unrolling unconditionally.
2005-05-06 Zdenek Dvorak <dvorakz@suse.cz>
PR rtl-optimization/21254
* loop-iv.c (iv_number_of_iterations): Simplify infiniteness
assumptions for loops that otherwise do not roll.
(find_simple_exit): Prefer # of iterations that is guaranteed
not to be infinite.
* loop-unroll.c (decide_peel_once_rolling,
decide_peel_completely): Check whether the loop is infinite.
2005-05-06 Pat Haugen <pthaugen@us.ibm.com>
* config/rs6000/sysv4.opt: Fix typo.
2005-05-06 Denis Vlasenko <vda@port.imtp.ilyichevsk.odessa.ua>
Jakub Jelinek <jakub@redhat.com>
PR target/21329
* config/i386/i386.c (ix86_expand_movmem): Don't use rep; movsb
for -Os if (movsl;)*(movsw;)?(movsb;)? sequence is shorter.
Don't use rep; movs{l,q} if the repetition count is really small,
instead use a sequence of movs{l,q} instructions.
2005-05-06 Jeff Law <law@redhat.com>
PR tree-optimization/21380
* tree-ssa-threadupdate.c (thread_through_all_blocks): Do not
thread through a block with no preds.
2005-05-06 Kazu Hirata <kazu@cs.umass.edu>
* tree-ssa-operands.c (clobbered_v_may_defs, clobbered_vuses,
ro_call_vuse, fini_ssa_operands, add_call_clobber_ops,
add_call_read_ops): Use VEC instead of VARRAY.
2005-05-06 Nathan Sidwell <nathan@codesourcery.com>
* config/mcore/mcore.c (mcore_print_operand_address): Use
gcc_assert and gcc_unreachable as appropriate.
(mcore_print_operand, mcore_gen_compare_reg, mcore_output_call,
mcore_output_andn, output_inline_const, mcore_output_move,
mcore_output_movedouble, mcore_expand_block_move,
layout_mcore_frame, mcore_initial_elimination_offset,
mcore_expand_prolog, mcore_mark_dllexport,
mcore_mark_dllimport): Likewise.
* config/mcore/mcore.h (switch_to_section): Likewise.
* config/mcore/mcore.md: Likewise.
2005-05-06 Aldy Hernandez <aldyh@redhat.com>
* config/rs6000/linux64.h: Remove MASK_PROFILE_KERNEL, and
TARGET_PROFILE_KERNEL.
* config/rs6000/rs6000.c (output_profile_hook): Add comment to
TARGET_PROFILE_KERNEL use.
2005-05-06 Nathan Sidwell <nathan@codesourcery.com>
* config/m32r/m32r.c (m32r_encode_section_info): Use gcc_assert
and gcc_unreachable, as appropriate.
(gen_compare, gen_split_move_double, m32r_setup_incoming_varargs,
m32r_expand_prologue, m32r_output_function_epilogue,
m32r_legitimize_pic_address, m32r_print_operand_address,
emit_cond_move, m32r_function_symbol,
m32r_output_block_move): Likewise.
* config/m32r/m32r.h (INITIAL_ELIMINATION_OFFSET): Likewise.
* config/m32r/m32r.md ( *movsi_insn, *zero_branch_insn,
*rev_zero_branch_insn): Likewise.
2005-05-06 Jakub Jelinek <jakub@redhat.com>
PR c++/20961
* varasm.c (merge_weak): Remove NEWDECL from WEAK_DECLS chain
if both NEWDECL and OLDDECL are already weak.
2005-05-06 Richard Sandiford <rsandifo@redhat.com>
* config/rs6000/sysv4.h (EXTRA_SUBTARGET_SWITCHES): Delete.
2005-05-05 J"orn Rennecke <joern.rennecke@st.com>
Kaz Kojima <kkojima@gcc.gnu.org>
* config/sh/sh.c (sh_builtin_saveregs): Use copy_to_mode_reg
and plus_constant.
2005-05-05 Aldy Hernandez <aldyh@redhat.com>
David Edelsohn <edelsohn@gnu.org>
* config.gcc: Add .opt magic for the rs6000 ports.
* doc/invoke.texi: Document -mabi= option properly. Document
-misel and -mno-sel. Document -mspe and -mno-spe. Document
-mvrsave and -mno-vrsave. Document deprecation of -mspe= and
-misel=.
* config/rs6000/aix.h: Remove XL_COMPAT stuff. Remove
SUBTARGET_SWITCHES and SUBSUBTARGET_SWITCHES. Define
TARGET_XL_COMPAT.
* config/rs6000/aix.opt: New.
* config/rs6000/aix41.opt: New.
* config/rs6000/aix64.opt: New.
* config/rs6000/darwin.opt: New.
* config/rs6000/linux64.opt: New.
* config/rs6000/rs6000.opt: New.
* config/rs6000/sysv4.opt: New.
* config/rs6000/sysv4.h: Delete definitions of MASK_* and
associated TARGET_*. Remove SUBTARGET_OPTIONS,
SUBTARGET_SWITCHES.
Define TARGET_USES_SYSV4_OPT.
* config/rs6000/aix41.h: Remove SUBSUBTARGET_SWITCHES.
* config/rs6000/aix43.h: Remove SUBSUBTARGET_SWITCHES. Define
TARGET_USES_AIX64_OPT.
* config/rs6000/aix51.h: Same.
* config/rs6000/aix52.h: Same.
* config/rs6000/darwin.h: Remove SUBTARGET_SWITCHES,
MASK_MACHO_DYNAMIC_NO_PIC, TARGET_MACHO_DYNAMIC_NO_PIC.
Use TARGET_ALTIVEC_VRSAVE instead of rs6000_altivec_vrsave.
Define TARGET_DYNAMIC_NO_PIC as TARGET_MACHO_DYNAMIC_NO_PIC.
* config/rs6000/linux64.h: Use
rs6000_explicit_options. Remove EXTRA_SUBTARGET_SWITCHES.
* config/rs6000/rs6000.c: Remove definitions of
rs6000_sched_restricted_insns_priority,
rs6000_long_double_size_string, rs6000_altivec_vrsave,
rs6000_altivec_vrsave_string, rs6000_isel, rs6000_spe,
rs6000_float_gprs_string, rs6000_isel_string, rs6000_spe_string,
rs6000_abi_string, rs6000_warn_altivec_long, rs6000_longcall,
rs6000_alignment_string. Define rs6000_explicit_options.
(rs6000_parse_abi_options): Remove.
(rs6000_parse_alignment_option): Remove.
(rs6000_parse_float_gprs_option): Remove.
(rs6000_handle_option): New. Define TARGET_HANDLE_OPTION. Define
TARGET_DEFAULT_TARGET_FLAGS.
(rs6000_override_options): Revamp to use new .opt machinery.
* config/rs6000/rs6000.h: Remove old MASK_* and TARGET_* in favor
of new .opt machinery. Remove target_flags. Redefine
TARGET_MFCRF and TARGET_POWERPC64. Remove TARGET_SWITCHES,
SUBTARGET_SWITCHES, TARGET_OPTIONS, SUBTARGET_OPTIONS,
rs6000_float_gprs_string, rs6000_isel_string, rs6000_spe_string,
rs6000_altivec_vrsave_string, rs6000_altivec_vrsave,
rs6000_longcall_switch, rs6000_default_long_calls,
rs6000_sched_costly_dep_str, rs6000_sched_costly_dep,
rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch, and
TARGET_ALTIVEC_VRSAVE.
2005-05-05 Ralf Corsepius <ralf.corsepius@rtems.org>
* config.gcc (hppa1.1-*-rtems*): Remove.
* config/pa/rtems.h: Remove.
2005-05-05 Ralf Corsepius <ralf.corsepius@rtems.org>
* config/rs6000/t-rtems (MULTILIB_NEW_EXCEPTIONS_ONLY):
Exclude roe/603e multilib variants.
2005-05-04 Denis Chertykov <denisc@overta.ru>
PR target/21284
* config/avr/avr.c (avr_output_addr_vec_elt): Use special section
for output.
2005-05-05 Richard Sandiford <rsandifo@redhat.com>
* config.gcc (arm*-wince-pe*, arm-*-pe*, strongarm-*-pe): Add
arm/pe.opt to $extra_options.
* config/arm/arm.h (target_flags, target_fpu_name, target_fpe_name)
(target_float_abi_name, target_float_switch, target_abi_name)
(ARM_FLAG_APCS_FRAME, ARM_FLAG_POKE, ARM_FLAG_FPE, ARM_FLAG_APCS_STACK)
(ARM_FLAG_APCS_FLOAT, ARM_FLAG_APCS_REENT, ARM_FLAG_BIG_END)
(ARM_FLAG_INTERWORK, ARM_FLAG_LITTLE_WORDS, ARM_FLAG_NO_SCHED_PRO)
(ARM_FLAG_ABORT_NORETURN, ARM_FLAG_SINGLE_PIC_BASE)
(ARM_FLAG_LONG_CALLS, ARM_FLAG_THUMB, THUMB_FLAG_BACKTRACE)
(THUMB_FLAG_LEAF_BACKTRACE, THUMB_FLAG_CALLEE_SUPER_INTERWORKING)
(THUMB_FLAG_CALLER_SUPER_INTERWORKING, CIRRUS_FIX_INVALID_INSNS)
(TARGET_APCS_FRAME, TARGET_POKE_FUNCTION_NAME, TARGET_FPE)
(TARGET_APCS_STACK, TARGET_APCS_FLOAT, TARGET_APCS_REENT)
(TARGET_BIG_END, TARGET_INTERWORK, TARGET_LITTLE_WORDS)
(TARGET_NO_SCHED_PRO, TARGET_ABORT_NORETURN, TARGET_SINGLE_PIC_BASE)
(TARGET_LONG_CALLS, TARGET_THUMB, TARGET_CALLER_INTERWORKING)
(TARGET_CIRRUS_FIX_INVALID_INSNS, SUBTARGET_SWITCHES, TARGET_SWITCHES)
(TARGET_OPTIONS, arm_cpu_select, arm_select, structure_size_string)
(arm_pic_register_string): Delete.
(TARGET_BACKTRACE): Redefine using TARGET_TPCS_LEAF_FRAME and
TARGET_TPCS_FRAME.
(TARGET_DEFAULT, CONDITIONAL_REGISTER_USAGE): Update mask names.
* config/arm/coff.h (TARGET_DEFAULT): Likewise.
* config/arm/elf.h (TARGET_DEFAULT): Likewise.
* config/arm/netbsd-elf.h (TARGET_DEFAULT): Likewise.
* config/arm/netbsd.h (TARGET_DEFAULT): Likewise.
* config/arm/semi.h (TARGET_DEFAULT): Likewise.
* config/arm/uclinux-elf.h (TARGET_DEFAULT): Likewise.
* config/arm/wince-pe.h (TARGET_DEFAULT): Likewise.
* config/arm/pe.h (TARGET_DEFAULT): Likewise.
(TARGET_FLAG_NOP_FUN, TARGET_NOP_FUN_DLLIMPORT): Delete.
(SUBTARGET_SWITCHES): Delete.
* config/arm/arm.c (target_float_switch): Delete.
(arm_cpu_select): Moved from config/arm/arm.h.
(target_fpu_name, target_fpe_name, target_float_abi_name)
(target_abi_name, structure_size_string, arm_pic_register_string)
(arm_select): Make static.
(TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
(arm_handle_option): New function.
(arm_override_options): Update target_flags checks for new mask names.
Remove target_float_switch code.
(arm_expand_prologue, thumb_expand_prologue): Check
!TARGET_SCHED_PROLOG instead of TARGET_NO_SCHED_PRO.
* config/arm/arm.opt, config/arm/pe.opt: New files.
2005-05-05 Nathan Sidwell <nathan@codesourcery.com>
* config/arc/arc.c (get_arc_condition_code): Use gcc_assert &
gcc_unreachable as appropriate.
(arc_double_limm_p, arc_setup_incoming_varargs,
arc_compute_function_type, arc_output_function_prologue,
arc_output_function_epilogue, arc_eligible_for_epilogue_delay,
output_shift, arc_print_operand, arc_print_operand_address,
arc_final_prescan_insn): Likewise.
* config/arc/arc.md (*movdi_insn, *movdf_insn): Likewise.
2005-05-04 Geoffrey Keating <geoffk@apple.com>
* config/rs6000/rs6000.md (P): Use TARGET_*BIT rather than
comparing Pmode.
(SDI): New.
(cmp): Delete.
(wd): New.
(add<mode>3, add<mode>3_internal1, add<mode>3_internal2,
add<mode>3_internal3, one_cmpl<mode>2, sub<mode>3, neg<mode>2,
clz<mode>2, ctz<mode>2, ffs<mode>2): New.
(addsi3, addsi3_internal1, addsi3_internal2, addsi3_internal3,
(one_cmplsi2, subsi3, negsi2, clzsi2, ctzsi2, ffssi2): Remove.
(adddi3, adddi3_internal1, adddi3_internal2, adddi3_internal3,
(one_cmpldi2, subdi3, negdi2, clzdi2, ctzdi2, ffsdi2): Remove.
(sync_compare_and_swap<mode>): Use <wd> rather than <cmp>.
2005-05-05 Paul Brook <paul@codesourcery.com>
* Makefile.in: Replace dependencies on basic-block.h, c-pragma.h,
cfgloop.h, diagnostic.h, insn-attr.h, langhooks-def.h, params.h,
regs.h, system.h, tree-dump.h, tree-gimple.h, tree-scalar-evolution.h
and tree-data-ref.h with *_H variables.
2005-05-05 Kelley Cook <kcook@gcc.gnu.org>
* config/m32r/xm-m32r.h, config/m32r/xm-linux.h: Delete files.
2005-05-05 Kelley Cook <kcook@gcc.gnu.org>
* system.h: Poison BYTEORDER and HOST_WORDS_BIG_ENDIAN.
2005-05-04 Gerald Pfeifer <gerald@pfeifer.com>
* doc/contrib.texi (Contributors): Add Mostafa Hagog and Ayal Zaks.
2005-05-04 Fariborz Jahanian <fjahanian@apple.com>
* config/rs6000/rs6000.c (rs6000_emit_prologue): Emit
setting of vrsave register for current function after
call to save_world is emitted.
2005-05-05 Hans-Peter Nilsson <hp@bitrange.com>
* config/mmix/predicates.md: New file.
* config/mmix/mmix.c (mmix_symbolic_or_address_operand)
(mmix_reg_or_constant_operand, mmix_reg_cc_operand)
(mmix_foldable_comparison_operator, mmix_comparison_operator)
(mmix_reg_or_0_operand, mmix_reg_or_8bit_operand): Remove.
* config/mmix/mmix.h (PREDICATE_CODES, SPECIAL_MODE_PREDICATES):
Don't define.
* config/mmix/mmix.md: Include predicates.md.
("call", "call_value"): Force address to register if it isn't a
mmix_symbolic_or_address_operand.
2005-05-04 Andrew MacLeod <amacleod@redhat.com>
* tree-flow-inline.h (op_iter_init_use, op_iter_init_def): Assert that
the flags are of appropriate types.
(num_ssa_operands): Generalize using the generic interface.
* tree-ssa-dce.c (remove_dead_stmt): Don't ask for kills on a DEF
iterator.
2005-05-04 Richard Sandiford <rsandifo@redhat.com>
* protoize.c (version_flag, quiet_flag, nochange_flag, nosave_flag)
(keep_flag, local_flag, global_flag, cplusplus_flag): Make extern.
2005-05-04 Kazu Hirata <kazu@cs.umass.edu>
* tree-outof-ssa.c (edge_leader, stmt_list,
analyze_edges_for_bb): Use VEC instead of VARRAY.
(init_analayze_edges_for_bb, fini_analayze_edges_for_bb): New.
(perform_edge_inserts): Call init_analayze_edges_for_bb and
fini_analayze_edges_for_bb.
2005-05-04 James E Wilson <wilson@specifixinc.com>
PR driver/21112
* gcc.c (process_command): In the second argv scan loop, ignore
Xassembler and Xpreprocessor, along with their argument.
2005-05-04 Kazu Hirata <kazu@cs.umass.edu>
* tree-flow-inline.h, tree-ssa-operands.c,
tree-ssa-operands.h, tree-ssa-opfinalize.h:
Likewise. tree-vn.c: Fix comment typos.
* doc/passes.texi, doc/tree-ssa.texi: Fix typos.
2005-05-04 Paolo Bonzini <bonzini@gnu.org>
* doc/tm.texi (Target Hooks): Document
TARGET_RESOLVE_OVERLOADED_BUILTIN.
2005-05-04 Paul Brook <paul@codesourcery.com>
* Makefile.in: Change dependencies on target.h to $(TARGET_H).
2005-05-04 Kazu Hirata <kazu@cs.umass.edu>
* dwarf2out.c (incomplete_types, retry_incomplete_types,
gen_struct_or_union_type_die, dwarf2out_init): Use VEC instead
of VARRAY.
* loop-unroll.c (var_to_expand, analyze_insn_to_expand_var,
get_expansion, expand_var_during_unrolling,
insert_var_expansion_initialization,
combine_var_copies_in_loop_exit, release_var_copies): Use VEC
instead of VARRAY.
* tree-ssa-loop-ivopts.c (rewrite_address_base): Don't call
update_stmt.
2004-05-03 Andrew Pinski <pinskia@physics.uc.edu>
PR middle-end/15618
* fold-const.c (fold_widened_comparison): Treat BOOLEAN_TYPE
the same as INTEGER_TYPE.
(fold_binary): Fold "bool_var != 0" to bool_var.
Fold "bool_var == 1" to bool_var.
2004-05-03 Richard Henderson <rth@redhat.com>
PR middle-end/21318
* function.c (instantiate_virtual_regs_in_insn): Use the mode
from recog_data instead of insn_data.
2005-05-03 DJ Delorie <dj@redhat.com>
* common.opt (fdiagnostics-show-option): No variable is needed.
* diagnostic.h (diagnostic_context): Add show_option_requested flag.
* diagnostic.c (diagnostic_initialize): Initialize show_option_requested.
(diagnostic_report_diagnostic): Test for enabled diagnostics here.
Save and restore original message format. Use flag in context
instead of global.
(warning): Don't test for enabled warnings here.
* opts.c (common_handle_option): Handle -fdiagnostics-show-option
here.
2005-05-04 Kelley Cook <kcook@gcc.gnu.org>
* config/m32r/xm-m32r.h: Don't define HOST_WORDS_BIG_ENDIAN.
* config/m32r/xm-linux.h: Don't undefine HOST_WORDS_BIG_ENDIAN.
* mips-tfile.c: Use WORDS_BIG_ENDIAN instead of HOST_WORDS_BIG_ENDIAN.
* aclocal.m4: Don't include accross.m4.
* configure.ac: Use AC_C_BIGENDIAN instead of AC_C_BIGENDIAN_CROSS.
Use AC_CHECK_SIZEOF instead of AC_COMPILE_CHECK_SIZEOF.
* configure, config.in: Regenerate.
2005-05-04 Jakub Jelinek <jakub@redhat.com>
PR middle-end/21265
* expr.h (enum block_op_methods): Add BLOCK_OP_TAILCALL.
(clear_storage): Add argument.
* expr.c (emit_block_move_via_libcall, clear_storage_via_libcall):
Add tailcall argument, set CALL_EXPR_TAILCALL of the CALL_EXPR to
tailcall.
(emit_block_move): Handle BLOCK_OP_TAILCALL method.
(clear_storage): Add method argument, handle BLOCK_OP_TAILCALL.
(store_expr, store_constructor): Adjust callers.
* builtins.c (expand_builtin_memcpy): Pass BLOCK_OP_TAILCALL
to emit_block_move if CALL_EXPR_TAILCALL (exp).
(expand_builtin_memmove): Add ORIG_EXP argument, copy
CALL_EXPR_TAILCALL from ORIG_EXP to the new CALL_EXPR.
(expand_builtin_bcopy): Replace ARGLIST and TYPE arguments
with EXP. Pass EXP to expand_builtin_memmove.
(expand_builtin_memset): Add ORIG_EXP argument, pass
BLOCK_OP_TAILCALL to clear_storage if CALL_EXPR_TAILCALL (orig_exp).
(expand_builtin_bzero): Replace ARGLIST argument with EXP.
Pass EXP to expand_builtin_memset.
(expand_builtin_strcmp): Copy CALL_EXPR_TAILCALL from EXP to
the new CALL_EXPR.
(expand_builtin_strncmp): Likewise.
(expand_builtin_printf): Replace ARGLIST argument with EXP.
Copy CALL_EXPR_TAILCALL from EXP to the new CALL_EXPR.
(expand_builtin_fprintf): Likewise.
(expand_builtin): Adjust calls to
expand_builtin_{memmove,bcopy,memset,bzero,{,f}printf}.
* config/i386/i386.c (ix86_expand_vector_set): Fix setting 3rd and 4th
item in V4SF mode.
PR rtl-optimization/21239
* combine.c (combine_simplify_rtx) <case VEC_SELECT>: Fix a typo.
2005-05-03 Kazu Hirata <kazu@cs.umass.edu>
* tree-flow.h (tree_ann_common_d): Move aux to ...
(stmt_ann_d): ... here.
* tree-ssa-loop-im.c (LIM_DATA, determine_invariantness_stmt,
move_computations_stmt, schedule_sm): Update references to
aux.
* tree-vectorizer.h (set_stmt_info, vinfo_for_stmt): Likewise.
* tree-cfg.c (remove_bb): Remove a redundant call to
set_bb_for_stmt.
* tree-if-conv.c (replace_phi_with_cond_modify_expr):
Likewise.
2005-05-03 Richard Henderson <rth@redhat.com>
* config/rs6000/rs6000.c: Remove conflict markers.
* cfg.c (dump_flow_info): Use max_reg_num, not max_regno.
2005-05-03 James E Wilson <wilson@specifixinc.com>
* dwarf2out.c (lookup_filename): Call maybe_emit_file.
2005-05-03 DJ Delorie <dj@redhat.com>
* c-decl.c (store_parm_decls_oldstyle): Let diagnostic machinery
decide if the warning will be printed.
* calls.c (expand_call): Likewise.
* function.c (init-function_start): Likewise.
* common.opt (-fdiagnostics-show-option): New.
* opts.c (option_enabled): Accept the option index instead of a
pointer to the option descriptor.
* opts.h (option_enabled): Likewise.
* toplev.c (print_switch_values): Pass option index, not option
descriptor.
* diagnostic.h (diagnostic_info): Add option_index.
* diagnostic.c: Include opts.h.
(diagnostic_set_info): Initialize option_index.
(diagnostic_report_diagnostic): Amend option name if appropriate.
(warning): Check to see if the specified warning is enabled.
Store option index.
* doc/invoke.texi (-fdiagnostics-show-options): Document.
2005-05-03 Richard Henderson <rth@redhat.com>
* config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Fix ALL_REGS and
SPEC_OR_GEN_REGS definitions.
2005-05-03 Alexandre Oliva <aoliva@redhat.com>
PR target/16888
* config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Clear reg names
for unavailable registers.
2005-05-03 Kazu Hirata <kazu@cs.umass.edu>
* tree-cfg.c (tree_forwarder_block_p): Fix a typo.
* cfglayout.c (block_locators_blocks,
insn_locators_initialize, insn_scope): Use VEC instead of
VARRAY.
* tree-mudflap.c (deferred_static_decls, mudflap_enqueue_decl,
mudflap_finish_file, mudflap_finish_file): Use VEC instead of
VARRAY.
2005-05-03 Eric Botcazou <ebotcazou@libertysurf.fr>
* config/sparc/predicates.md (const_compl_high_operand): New.
* config/sparc/sparc.c (sparc_emit_set_safe_HIGH64): Rename into
gen_safe_HIGH64.
(sparc_emit_set_const64_quick1): Adjust for above change.
(sparc_emit_set_const64_quick2): Likewise.
(sparc_emit_set_const64_longway): Likewise.
(sparc_emit_set_const64): Likewise.
* config/sparc/sparc.md (movhi_const64_special, movsi_const64_special,
movdi_const64_special): Delete.
(logical constant splitters): Use const_compl_high_operand.
2005-05-03 Richard Guenther <rguenth@gcc.gnu.org>
* tree-ssa-ccp.c (maybe_fold_stmt_indirect): Use STRIP_TYPE_NOPS
rather than STRIP_NOPS.
2005-05-03 Jakub Jelinek <jakub@redhat.com>
PR rtl-optimization/21330
* loop-unswitch.c (may_unswitch_on): Set *cinsn only when
returning non-NULL.
(unswitch_single_loop): Clear cinsn when retrying.
PR target/21297
* config/i386/i386.c (legitimize_address): When canonicalizing
ASHIFT into MULT, multiply by 1 << shift_count instead of
1 << log2 (shift_count).
2005-05-03 Andrew MacLeod <amacleod@redhat.com>
* lambda-code.c (gcc_loop_to_lambda_loop,
lambda_loopnest_to_gcc_loopnest, phi_loop_edge_uses_def,
stmt_is_bumper_for_loop, perfect_nest_p, replace_uses_of_x_with_y): Use
generic operand interface.
* tree-data-ref.c (find_data_references_in_loop): Use generic interface.
* tree-dfa.c (collect_dfa_stats_r, mark_new_vars_to_rename): Use
generic operand interface.
* tree-flow-inline.h (delink_imm_use, link_imm_use_to_list,
link_imm_use, link_imm_use_stmt, relink_imm_use, relink_imm_use_stmt,
next_safe_imm_use, has_zero_uses, has_single_use, single_imm_use,
num_imm_uses): Use ssa_use_operand_t.
(get_def_ops, get_use_ops, get_v_may_def_ops, get_vuse_ops,
get_v_must_def_ops): Delete.
(get_def_from_ptr, get_phi_result_ptr): Get def directly now.
(get_use_op_ptr, get_def_op_ptr, get_v_may_def_result_ptr,
get_v_may_def_op_ptr, get_vuse_op_ptr, get_v_must_def_result_ptr,
get_v_must_def_kill_ptr): Delete.
(delink_stmt_imm_use): Move and use new operand interface.
(op_iter_next_use, op_iter_next_def, op_iter_next_tree, op_iter_init,
op_iter_next_tree): Use new operand implementation.
(clear_and_done_ssa_iter): New. Initialize a blank operand iterator.
(op_iter_init_use, op_iter_init_def, op_iter_init_tree): Add iterator
type check.
(op_iter_next_mustdef, op_iter_next_maydef,
op_iter_next_must_and_may_def): Delete. Replace with...
(op_iter_next_maymustdef): New. Combine must and may next operations.
(op_iter_init_maydef, op_iter_init_mustdef,
op_iter_init_must_and_may_def): Use new interface.
(single_ssa_tree_operand ): New. Process single operands only as trees.
(single_ssa_use_operand): New. Process single operands only as uses.
(single_ssa_def_operand): New. Process single operands only as defs.
(zero_ssa_operands): New. Return TRUE if there are zero operands of the
specified types.
(num_ssa_operands): New. Count the number of specified operands.
(compare_ssa_operands_equal): New. Compare two statements' operands.
(single_phi_def): New. Return true if PHI has one def of the specified
operand type.
(op_iter_init_phiuse): New. Initialize the iterator for PHI arguments.
(op_iter_init_phidef): New. Initialize the iterator for the PHI def.
* tree-flow.h (struct immediate_use_iterator_d): Use ssa_use_operand_t.
(struct stmt_ann_d): Operands field no longer require GTY().
(vn_compute, vn_lookup_or_add, vn_add, vn_lookup): Change prototype.
* tree-into-ssa.c (mark_def_sites): Use SSA_OP_VMUSTKILL.
* tree-outof-ssa.c (check_replaceable, find_replaceable_in_bb,
dump_replaceable_exprs, rewrite_trees): Use generic interface.
* tree-phinodes.c (make_phi_node, release_phi_node, resize_phi_node):
Use use_operand_p instead of ssa_imm_use_t *.
* tree-pretty-print.c (dump_vops): check if operands are active before
dumping virtual operands.
* tree-sra.c (sra_walk_function): Use ZERO_SSA_OPERANDS.
* tree-ssa-ccp.c (likely_value): Use ZERO_SSA_OPERANDS.
(ccp_fold): Use new interface.
(ccp_visit_stmt): Remove unused variables and code.
(convert_to_gimple_builtin): Insert statements before calling
mark_new_vars_to_rename.
* tree-ssa-copy.c (stmt_may_generate_copy): Use ZERO_SSA_OPERANDS.
(copy_prop_visit_cond_stmt): Use generic interface.
* tree-ssa-dom.c (struct expr_hash_elt): Use stmt pointer, not the
annotation in table.
(thread_across_edge): Use generic interface.
(initialize_hash_element): Initialzie with stmt, not annotation.
(eliminate_redundant_computations): Use generic interface.
(record_equivalences_from_stmt): Pass stmt, not annotation.
(avail_expr_hash, real_avail_expr_hash, avail_expr_eq): Use generic
interface.
* tree-ssa-dse.c (dse_optimize_stmt): Use ZERO_SSA_OPERANDS.
* tree-ssa-loop-ivopts.c (find_invariants_stmt,
find_interesting_uses_stmt, protect_loop_closed_ssa_form_use): Use
generic operand interface.
* tree-ssa-loop-niter.c (chain_of_csts_start, get_val_for): Use generic
interface.
* tree-ssa-loop-unswitch.c (tree_may_unswitch_on): Use Generic operand
Interface.
* tree-ssa-operands.c (struct opbuild_list_d): New. Operand build type.
(build_defs, build_uses, build_v_may_defs, build_vuses,
build_v_must_defs): Change type to struct opbuild_list_d.
(ops_active): New. Operands active boolean.
(operand_memory, operand_memory_index): New. Operand memory managers.
(allocate_def_optype, allocate_use_optype, allocate_v_may_def_optype,
allocate_vuse_optype, allocate_v_must_def_optype): Delete.
(free_uses, free_defs, free_vuses, free_v_may_defs, free_v_must_defs):
Change from functions to static variable list heads.
(opbuild_initialize_virtual): New. Initialize a virtual build list.
(opbuild_initialize_real): New. Initialize a virtual build list.
(opbuild_free): New. Free a build list.
(opbuild_num_elems): New. Number of items in a list.
(opbuild_append_real): New. Add a real (tree *) operand.
(opbuild_append_virtual): New. Add and sort a virtual (tree) operand.
(opbuild_first): New. Return first element index in a list.
(opbuild_next): New. Return next element in a list.
(opbuild_elem_real): New. Return real element.
(opbuild_elem_virtual): New. Return virtual element.
(opbuild_elem_uid): New. Return UID of virtual element.
(opbuild_clear): New. Reset an operand list.
(opbuild_remove_elem): New. Remove an element form a list.
(ssa_operands_active): New. Return true if operand cache is active.
(init_ssa_operands, fini_ssa_operands): Initialize new implementation.
(ssa_operand_alloc): New. Allocate memory from an operand chunk.
(correct_use_link): Use use_operand_p.
(finalize_ssa_uses, finalize_ssa_v_may_defs, finalize_ssa_defs,
finalize_ssa_vuses, finalize_ssa_v_must_defs): New implmentation.
(cleanup_v_may_defs): Use new implmentation.
(finalize_ssa_stmt_operands, start_ssa_stmt_operands): New
implementation.
(append_def, append_use, append_v_may_def, append_vuse,
append_v_must_def): Call opbuild_append routine instead of using varray.
(build_ssa_operands): Simplify to simply use stmt, don't maintain a
global parse_old_ops variable.
(free_ssa_operands): New implementation.
(update_stmt_operands): Move. Change argument to build_ssa_operands.
(copy_virtual_operands): Move. New generic implementation.
(create_ssa_artficial_load_stmt): Move. New implementation.
(swap_tree_operands): Update for new implementation.
(get_expr_operands): Add stmt parameter to calls to swap_tree_operands.
(add_call_clobber_ops, add_call_read_ops): Initialize opbuild list
rather than a varray.
(verify_imm_links): Use use_operand_p.
(dump_immediate_uses_for): If the immediate use variable is a virtual
variable, show the virtual ops in the stmt.
* tree-ssa-operands.h (def_operand_p): No longer a structure.
(NULL_DEF_OPERAND_P): Now a #define.
(def_optype_d, use_optype_d, v_def_use_operand_type, v_may_def_optype_d,
vuse_operand_type, vuse_optype_d, v_must_def_optype_d): Delete.
(def_optype_d, use_optype_d, maydef_optype_d, vuse_optype_d,
mustdef_optype_d): New. Use Linked list representation.
(SSA_OPERAND_MEMORY_SIZE): New. Size of operand memory chunk.
(struct ssa_operand_memory_d): New. Allocated Chunk node.
(struct stmt_operands_d): Change to new pointers that are not GTY.
(STMT_USE_OPS, NUM_USES, SET_USE_OP, STMT_DEF_OPS, NUM_DEFS, SET_DEF_OP,
STMT_V_MAY_DEF_OPS, NUM_V_MAY_DEFS, SET_V_MAY_DEF_RESULT,
SET_V_MAY_DEF_OP, STMT_VUSE_OPS, NUM_VUSES, SET_VUSE_OP,
STMT_V_MUST_DEF_OPS, NUM_V_MUST_DEFS, SET_V_MUST_DEF_RESULT,
SET_V_MUST_DEF_KILL): Delete.
(V_MAY_DEF_OPS, V_MAY_DEF_RESULT_PTR, V_MAY_DEF_RESULT,
V_MAY_DEF_OP_PTR, V_MAY_DEF_OP): Rename to MAYDEF_*.
(V_MUST_DEF_OPS, V_MUST_DEF_RESULT_PTR, V_MUST_DEF_RESULT,
V_MUST_DEF_KILL_PTR, V_MUST_DEF_KILL): Rename to MUSTDEF_*.
(enum ssa_op_iter_type): Operand iterator typechecking values.
(struct ssa_operand_iterator_d): Use linked lists of operands.
(SSA_OP_VMUSTDEFKILL): Rename to SSA_OP_VMUSTKILL.
(FOR_EACH_SSA_MAYDEF_OPERAND, FOR_EACH_SSA_MUSTDEF_OPERAND,
FOR_EACH_SSA_MUST_AND_MAY_DEF_OPERAND): Use op_iter_next_maymustdef.
(FOR_EACH_PHI_ARG): New. Iterate over PHI arguments.
(FOR_EACH_PHI_OR_STMT_USE): New. Iterate over PHI or stmt uses.
(FOR_EACH_PHI_OR_STMT_DEF): New. Iterate over PHI or stmt defs.
(SINGLE_SSA_TREE_OPERAND, SINGLE_SSA_USE_OPERAND,
SINGLE_SSA_DEF_OPERAND, ZERO_SSA_OPERANDS, NUM_SSA_OPERANDS): New.
* tree-ssa-opfinalize.h: New. Function templates for expansion.
(FINALIZE_ALLOC): Expands into alloc_def, alloc_use, alloc_maydef,
alloc_vuse, and alloc_mustdef.
(FINALIZE_FUNC): Expands into finalize_ssa_def_ops,
finalize_ssa_use_ops, finalize_ssa_v_may_def_ops, finalize_ssa_vuse_ops,
and finalize_ssa_v_must_def_ops.
* tree-ssa-pre.c (add_to_sets): Pass tree to vn_add.
(create_value_expr_from): Use stmt not vuse_optype as a parameter. Pass
stmt around.
(compute_avail): Use generic iterator interface.
* tree-ssa-propagate.c (first_vdef): Use generic operand interface.
(stmt_makes_single_load, stmt_makes_single_store): Use
ZERO_SSA_OPERANDS.
* tree-ssa-sink.c (is_hidden_global_store): Use ZERO_SSA_OPERANDS.
(statement_sink_location): Use generic interface.
* tree-ssa.c (verify_ssa): Use %p in fprintf. Use generic interface.
(delete_tree_ssa): Don't call release_defs. Call release_ssa_name and
reset the immediate use link nodes.
(stmt_references_memory_p): Use ZERO_SSA_OPERANDS.
* tree-ssanames.c (make_ssa_name): Use use_operand_p.
* tree-tailcall.c (find_tail_calls): Use ZERO_SSA_OPERANDS.
(eliminate_tail_call): Use generic operand interface.
* tree-vect-analyze.c (vect_analyze_data_refs): Use ZERO_SSA_OPERANDS.
(vect_mark_relevant, vect_mark_stmts_to_be_vectorized): Use generic
interface.
* tree-vect-transform.c (update_vuses_to_preheader): Use generic
interface.
* tree-vectorizer.c (rename_variables_in_bb): Use generic interface.
* tree-vn.c (struct val_expr_pair_d): Cache statment pointer instead of
vuse_optype.
(vn_compute, val_expr_pair_hash, vn_add, vn_lookup, vn_lookup_or_add):
Use statement pointer instead of vuse_optype. Use generic interface.
* tree-vrp.c (maybe_add_assert_expr): Use generic interface.
(stmt_interesting_for_vrp, vrp_visit_stmt): Use ZERO_SSA_OPERANDS.
* tree.h (struct ssa_imm_use_d): Renamed to ssa_use_operand_d.
(tree_ssa_name, phi_arg_d): Use ssa_use_operand_d.
* doc/tree-ssa.texi: Update documentation for operand interface.
2005-05-03 Nathan Sidwell <nathan@codesourcery.com>
* config/darwin.c (machopic_define_symbol): Use gcc_assert or
gcc_unreachable as appropriate.
(machopic_function_base_name, machopic_indirect_data_reference,
machopic_legitimize_pic_address, darwin_non_lazy_pcrel): Likewise.
* config/host-darwin.c (darwin_gt_pch_use_address): Likewise
* config/rs6000/altivec.md (*mov<mode>_internal,
build_vector_mask_for_load): Likewise.
* config/rs6000/darwin.md (movdf_low_si, movdf_low_di,
*call_nonlocal_darwin64, *call_value_nonlocal_darwin64,
*sibcall_symbolic_64, *sibcall_value_symbolic_64): Likewise.
* config/rs6000/predicates.md (easy_fp_constant,
logical_operand): Likewise.
* config/rs6000/rs6000.c (spe_expand_predicate_builtin,
compute_save_world_info, rs6000_emit_prologue,
rs6000_output_mi_thunk): Reword comments to avoid 'abort'.
* config/rs6000/host-darwin.c (segv_handler): Use fancy_abort
directly.
2005-05-03 Uros Bizjak <uros@kss-loka.si>
PR middle-end/21282
* convert.c (convert_to_integer): Convert ceil and floor in
c99 mode only.
2005-04-29 Geoffrey Keating <geoffk@apple.com>
PR target/20813
* config/rs6000/rs6000.md (floatsidf2_internal): Merge to create
define_insn_and_split. Split only when memory operand is
offsettable. Use adjust_address rather than plus_constant.
(floatunssidf2_internal): Likewise.
(fix_truncdfsi2_internal): Split only when memory operand is
offsettable. Use adjust_address rather than plus_constant.
(fix_trunctfsi2_internal): Likewise.
(floatsidf2_internal): Likewise.
2005-05-02 Diego Novillo <dnovillo@redhat.com>
* tree-vrp.c (set_value_range_to_nonnull): Declare inline.
(set_value_range_to_null): Likewise.
(set_value_range_to_varying): New function. Use it in all
call sites that used to call set_value_range (vr, VR_VARYING, ...).
(extract_range_from_assert): If the integral type has a
super-type, and LIMIT is not within MIN and MAX values of that
type, set the resulting range to VR_VARYING.
2005-05-02 Hans-Peter Nilsson <hp@bitrange.com>
* config/mmix/mmix.opt: New file.
* config/mmix/mmix.h: Move options-related comments to mmix.opt.
(mmix_cc1_ignored_option): Don't declare.
(TARGET_OPTIONS, TARGET_MASK_LIBFUNCS, TARGET_MASK_ABI_GNU)
(TARGET_MASK_FCMP_EPSILON, TARGET_MASK_ZERO_EXTEND)
(TARGET_MASK_KNUTH_DIVISION, TARGET_MASK_TOPLEVEL_SYMBOLS)
(TARGET_MASK_BRANCH_PREDICT, TARGET_MASK_USE_RETURN_INSN)
(TARGET_MASK_BASE_ADDRESSES, TARGET_LIBFUNC, TARGET_ABI_GNU,
(TARGET_FCMP_EPSILON, TARGET_ZERO_EXTEND, TARGET_KNUTH_DIVISION)
(TARGET_TOPLEVEL_SYMBOLS, TARGET_BRANCH_PREDICT)
(TARGET_BASE_ADDRESSES, TARGET_USE_RETURN_INSN, TARGET_SWITCHES):
Don't define.
(TARGET_DEFAULT): Change TARGET_MASK_... to MASK_...
* config/mmix/mmix.c (mmix_cc1_ignored_option): Remove.
(TARGET_DEFAULT_TARGET_FLAGS): Override default.
2005-05-02 Joseph S. Myers <joseph@codesourcery.com>
PR c/15698
* c-tree.h (C_DECL_BUILTIN_PROTOTYPE): New.
* c-decl.c (current_function_prototype_built_in,
current_function_prototype_arg_types): New.
(merge_decls): Keep source location of prototype followed by
nonprototype declaration. Update C_DECL_BUILTIN_PROTOTYPE.
(builtin_function): Set C_DECL_BUILTIN_PROTOTYPE.
(start_function): Always set current_function_prototype_locus,
current_function_prototype_built_in and
current_function_prototype_arg_types. Check for external
prototype whether or not visible for external function and set
current_function_prototype_arg_types accordingly.
(store_parm_decls_oldstyle): Use
current_function_prototype_arg_types for checking old-style
definition against prototype. Give warnings only if
current_function_prototype_built_in).
2005-05-02 Daniel Jacobowitz <dan@codesourcery.com>
* ggc.h (ggc_alloc_zone_pass_stat): New macro.
(ggc_alloc_zone_stat): Don't define.
* ggc-zone.c (ggc_alloc_typed_stat, ggc_alloc_stat): Use
ggc_alloc_zone_pass_stat.
* rtl.c (rtx_alloc_stat, shallow_copy_rtx_stat): Likewise.
* tree.c (make_node_stat, copy_node_stat, make_tree_binfo_stat)
(make_tree_vec_stat, tree_cons_stat, build1_stat): Likewise.
2005-05-02 Daniel Jacobowitz <dan@codesourcery.com>
* calls.c (expand_call): Handle current_function_pretend_args_size
when checking for sibcalls.
2005-05-02 Kazu Hirata <kazu@cs.umass.edu>
PR tree-optimization/21294
* tree-vrp.c (vrp_expr_computes_nonzero): New.
(extract_range_from_expr): Call vrp_expr_computes_nonzero.
2005-05-02 Janis Johnson <janis187@us.ibm.com>
PR 19985
* gcov-io.h: Declare gcov external functions hidden.
2005-05-02 Kazu Hirata <kazu@cs.umass.edu>
* tree-ssa-uncprop.c (equiv_hash_elt, remove_equivalence,
record_equiv, tree_ssa_uncprop, uncprop_into_successor_phis):
Use VEC instead of VARRAY.
(equiv_free): New.
* tree-ssa-sink.c (nearest_common_dominator_of_uses): Factor
out common code.
2005-05-02 Paolo Bonzini <bonzini@gnu.org>
* c-common.c (resolve_overloaded_builtin): Forward to target
hook for BUILT_IN_MD built-ins.
* c-typeck.c (finish_call_expr): Call resolve_overloaded_builtin
for all types of built-in.
* target-def.h (TARGET_RESOLVE_OVERLOADED_BUILTIN): New. Use it
in the definition of the target hooks struct.
* target.h (struct gcc_target): Add resolve_overloaded_builtin.
* config/rs6000/altivec.h: Rewritten.
* config/rs6000/rs6000-c.c (struct altivec_builtin_types,
altivec_resolve_overloaded_builtin, altivec_build_resolved_builtin,
rs6000_builtin_type, rs6000_builtin_type_compatible,
altivec_overloaded_builtins, rs6000_builtin_type,
rs6000_builtin_type_compatible): New.
* config/rs6000/rs6000.c (rs6000_builtin_types, rs6000_builtin_decls):
New.
(def_builtin): Turn into a function. Check for duplicates and store
the builtin into rs6000_builtin_decls.
(bdesc_3arg, bdesc_dst, bdesc_altivec_preds, bdesc_2arg,
bdesc_1arg): Add overloaded builtins.
(altivec_expand_builtin): Check for unresolved overloaded builtins,
do not support ALTIVEC_COMPILETIME_ERROR.
(rs6000_init_builtins): Add opaque 128-bit vector, and internal
nodes to represent front-end types.
(altivec_init_builtins, rs6000_common_init_builtins): Create builtins
with opaque arguments and/or return values.
* config/rs6000/rs6000.h (enum rs6000_builtins): Remove
ALTIVEC_COMPILETIME_ERROR and add Altivec overloaded builtins.
(rs6000_builtin_type_index): New.
(is_ev64_opaque_type): Rename to...
(rs6000_is_opaque_type): ... this.
(rs6000_cpu_cpp_builtins): Install the resolve_overloaded_builtin
target hook.
2005-05-02 Kazu Hirata <kazu@cs.umass.edu>
* function.c (reorder_blocks, reorder_blocks_1): Use VEC
instead of VARRAY.
2005-05-02 Nathan Sidwell <nathan@codesourcery.com>
Bernd Schmidt <bernd.schmidt@analog.com>
* config/bfin/bfin.c (emit_link_insn, effective_address_32bit_p,
print_address_operand, print_operand, legitimize_pic_address,
asm_conditional_branch, bfin_gen_compare, output_push_multiple,
output_pop_multiple): Use gcc_assert or gcc_unreachable as
appropriate.
* config/bfin/bfin.md (movsf splitter, beq, bne): Likewise.
2005-05-02 Dorit Naishlos <dorit@il.ibm.com>
* doc/passes.texi: Document vectorization pass.
2005-05-02 Kazu Hirata <kazu@cs.umass.edu>
* tree-scalar-evolution.c (get_exit_conditions_rec,
select_loops_exit_conditions,
number_of_iterations_for_all_loops,
analyze_scalar_evolution_for_all_loop_phi_nodes,
scev_analysis): Use VEC instead of VARRAY.
2005-05-02 Michael Matz <matz@suse.de>
PR c++/19542
* c-common.c (c_common_nodes_and_builtins): Create global null_node.
(warn_strict_null_sentinel): Define.
(check_function_sentinel): Check for null_node as valid sentinel too.
* c-common.h (c_tree_index): Added CTI_NULL.
(null_node) Define global_tree[CTI_NULL].
(warn_strict_null_sentinel): Declare.
* c-opts.c: (c_common_handle_option): Handle -Wstrict-null-sentinel.
* c.opt: (Wstrict-null-sentinel): New C++ option.
* doc/invoke.texi (C++ Options): Document -Wstrict-null-sentinel.
2005-05-01 Kazu Hirata <kazu@cs.umass.edu>
* gimplify.c (gimplify_compound_lval): Use VEC instead of
VARRAY.
* global.c (calculate_reg_pav): Use VEC instead of VARRAY.
* dwarf2out.c (decl_scope_table, push_decl_scope,
pop_decl_scope, scope_die_for, dwarf2out_init): Use VEC
instead of VARRAY.
2005-05-01 Mark Mitchell <mark@codesourcery.com>
PR C++/14391
* c-cppbuiltin.c (c_cpp_builtins): Do not define __GXX_WEAK__ to 1
if !flag_weak.
* doc/cpp.texi (__DEPRECATED): Document.
(__EXCEPTIONS): Likewise.
(__GXX_WEAK__): Likewise.
* function.c (INVOKE__main): Do not define.
(expand_main_function): Check HAS_INIT_SECTION when determining
whether or not to call __main.
2005-05-01 Kazu Hirata <kazu@cs.umass.edu>
* tree-ssa-loop-ivopts.c: Fix a comment typo.
2005-01-05 Paul Brook <paul@codesourcery.com>
* config/arm/arm.h (ARM_EMIT_TRAMPOLINE_CACHE_CLEAR): Define.
(INITIALIZE_TRAMPOLINE): Use it.
* config/arm/linux-gas.h (INITIALIZE_TRAMPOLINE): Remove.
* config/arm/netbsd.h (INITIALIZE_TRAMPOLINE): Remove.
* config/arm/netbsd-elf.h (INITIALIZE_TRAMPOLINE): Remove.
2005-05-01 Gerald Pfeifer <gerald@pfeifer.com>
* doc/install.texi (Specific): Omit dots in the @anchors names
for i?86-*-sco3.2v5*, i?86-*-solaris2.10, and sparc-sun-solaris2.7.
Omit underscores for x86_64-*-* and the "all ELF targets" entry.
2005-05-01 Zdenek Dvorak <dvorakz@suse.cz>
PR tree-optimization/18316
PR tree-optimization/19126
* tree.c (build_int_cst_type): Avoid shift by size of type.
* tree-scalar-evolution.c (simple_iv): Add allow_nonconstant_step
argument.
* tree-scalar-evolution.h (simple_iv): Declaration changed.
* tree-ssa-loop-ivopts.c (struct iv_cand): Add depends_on
field.
(dump_cand): Dump depends_on information.
(determine_biv_step): Add argument to simple_iv call.
(contains_abnormal_ssa_name_p): Handle case expr == NULL.
(find_bivs, find_givs_in_stmt_scev): Do not require step to be a
constant.
(add_candidate_1): Record depends_on for candidates.
(tree_int_cst_sign_bit, constant_multiple_of): New functions.
(get_computation_at, get_computation_cost_at, may_eliminate_iv):
Handle ivs with nonconstant step.
(iv_ca_set_remove_invariants, iv_ca_set_add_invariants): New functions.
(iv_ca_set_no_cp, iv_ca_set_cp): Handle cand->depends_on.
(create_new_iv): Unshare the step before passing it to create_iv.
(free_loop_data): Free cand->depends_on.
(build_addr_strip_iref): New function.
(find_interesting_uses_address): Use build_addr_strip_iref.
(strip_offset_1): Split the recursive part from strip_offset.
Strip constant offset component_refs and array_refs.
(strip_offset): Split the recursive part to strip_offset_1.
(add_address_candidates): Removed.
(add_derived_ivs_candidates): Do not use add_address_candidates.
(add_iv_value_candidates): Add candidates with stripped constant
offset. Consider all candidates with initial value 0 important.
(struct affine_tree_combination): New.
(aff_combination_const, aff_combination_elt, aff_combination_scale,
aff_combination_add_elt, aff_combination_add,
tree_to_aff_combination, add_elt_to_tree, aff_combination_to_tree,
fold_affine_sum): New functions.
(get_computation_at): Use fold_affine_sum.
* tree-ssa-loop-manip.c (create_iv): Handle ivs with nonconstant step.
* tree-ssa-loop-niter.c (number_of_iterations_exit): Add argument
to simple_iv call.
2005-04-30 Michael Matz <matz@suse.de>
* config/i386/i386.md (movmemsi): Also active when
TARGET_INLINE_ALL_STRINGOPS.
2005-04-30 Eric Botcazou <ebotcazou@libertysurf.fr>
PR bootstrap/20633
* config/freebsd-spec.h (FBSD_CPP_SPEC): Add %(cpp_arch).
2005-04-30 Paul Brook <paul@codesourcery.com>
* config/arm/bpabi.h (RENAME_LIBRARY_SET): Always use .thumb_set in
thumb mode.
* config/arm/ieee754-df.S: Use __INTERWORKING_STUBS__.
* config/arm/ieee754-sf.S: Ditto.
* config/arm/lib1funcs.asm: Define and use __INTERWORKING_STUBS__.
(FUNC_ALIAS): Use .thumb_set for thumb routines.
2005-04-30 Kazu Hirata <kazu@cs.umass.edu>
* tree-ssanames.c: Fix a comment typo.
* doc/options.texi: Fix a typo.
2005-04-30 Nathan Sidwell <nathan@codesourcery.com>
* config/h8300/h8300.c (byte_reg): Use gcc_assert and
gcc_unreachable as appropriate.
(split_adds_subs, cond_string, print_operand,
h8300_initial_elimination_offset, h8300_classify_operand,
h8300_unary_length, h8300_short_immediate_length,
h8300_bitfield_length, h8300_binary_length,
h8300_insn_length_from_table, compute_mov_length, output_plussi,
compute_plussi_length, compute_plussi_cc, output_logical_op,
compute_logical_op_length, compute_logical_op_cc,
output_h8sx_shift, get_shift_alg, h8300_shift_needs_scratch_p,
output_a_shift, compute_a_shift_length, compute_a_shift_cc,
output_a_rotate, compute_a_rotate_length, fix_bit_operand,
h8300_regs_ok_for_stm): Likewise.
* config/h8300/h8300.md (*movsi_h8300, *movsf_h8300,
monitor_prologue): Likewise.
2005-04-30 Kazu Hirata <kazu@cs.umass.edu>
* loop-invariant.c (invariants, create_new_invariant,
get_inv_cost, best_gain_for_invariant,
find_invariants_to_move, move_invariants,
init_inv_motion_data, free_inv_motion_data): Use VEC instead
of VARRAY.
2005-04-29 Richard Henderson <rth@redhat.com>
* function.c (instantiate_decls): Remove valid_only argument.
(instantiate_decls_1, instantiate_decl): Likewise.
(instantiate_virtual_regs_1): Delete.
(instantiate_virtual_regs_lossage): Delete.
(instantiate_virtual_regs_in_rtx): New.
(safe_insn_predicate): New.
(instantiate_virtual_regs_in_insn): New.
(instantiate_virtual_regs): Update to match all that. Only run
instantiate_decls once.
2005-04-29 Richard Henderson <rth@redhat.com>
Daniel Jacobowitz <dan@codesourcery.com>
* gengtype.c (write_func_for_structure): Split out ...
(output_type_enum): ... new function. Fix thinko accessing
TYPE_PARAM_STRUCT data.
2005-04-29 Tom Tromey <tromey@redhat.com>
* tree.c (build_block): Removed unused 'tags' argument.
* tree.h (build_block): Removed argument.
2005-04-29 Michael Matz <matz@suse.de>
PR rtl-optimization/21144
* postreload.c (reload_cse_move2add): Check for VOIDmode.
2005-04-29 Bob Wilson <bob.wilson@acm.org>
* config/xtensa/xtensa.h (OPTIMIZATION_OPTIONS): Define to disable
flag_reorder_blocks.
2005-04-28 Kazu Hirata <kazu@cs.umass.edu>
PR tree-optimization/21030
* tree-vrp.c (adjust_range_with_scev): Do not create invalid
ranges where VR->MAX is smaller than VR->MIN.
2005-04-29 Devang Patel <dpatel@apple.com>
PR tree-optimization/21272
PR tree-optimization/21266
* tree-if-conv.c (find_phi_replacement_condition): Fix think-o.
2005-04-29 Kazu Hirata <kazu@cs.umass.edu>
* tree-flow-inline.h: Fix a comment typo.
* doc/tree-ssa.texi: Fix a typo.
* tree-flow-inline.h, tree-ssa-operands.c: Fix comment typos.
2005-04-29 Nathan Sidwell <nathan@codesourcery.com>
* config/fr30/fr30.c (fr30_expand_prologue): Use gcc_assert and
gcc_unreachable as appropriate.
(fr30_expand_epilogue, fr30_setup_incoming_varargs,
fr30_print_operand, fr30_move_double): Likewise.
* config/fr30/fr30.md (*movsi_internal, *movsf_internal): Likewise.
2005-04-29 Mark Mitchell <mark@codesourcery.com>
* config/arm/arm.h (ARM_EABI_CTORS_SECTION_OP): Do not define if a
definition has already been provided.
(ARM_EABI_DTORS_SECTION_OP): Likewise.
* config/arm/symbian.h (ARM_EABI_CTORS_SECTION_OP): Define.
(ARM_EABI_DTORS_SECTION_OP): Likewise.
2005-04-29 Jim Tison <jtison@us.ibm.com>
* config/s390/s390.md ("prologue_tpf", "epilogue_tpf"): Alter
trace hooks calls to improve performance.
2005-04-29 Julian Brown <julian@codesourcery.com>
Mark Mitchell <mark@codesourcery.com>
Paul Brook <paul@codesourcery.com>
* crtstuff.c: Handle targets that use .init_array.
* function.c (HAS_INIT_SECTION): Do not define. Instead, make sure
that INVOKE__main is set correctly.
(expand_main_function): Test INVOKE__main.
* libgcc2.c: Do not define __main when using .init_array.
* config/arm/arm.c (arm_elf_asm_constructor): New function.
* config/arm/arm.h (CTORS_SECTION_ASM_OP): Define, with specialized
libgcc version.
(DTORS_SECTION_ASM_OP): Likewise.
(CTOR_LIST_BEGIN): Define specially when in libgcc.
(CTOR_LIST_END): Likewise.
(DTOR_LIST_BEGIN): Likewise.
(DTOR_LIST_END): Likewise.
* config/arm/bpapi.h (INIT_SECTION_ASM_OP): Do not define it.
(FINI_SECTION_ASM_OP): Likewise.
(INIT_ARRAY_SECTION_ASM_OP): Define.
(FINI_ARRAY_SECTION_ASM_OP): Likewise.
* config/arm/elf.h (TARGET_ASM_CONSTRUCTOR): Define.
(SUPPORTS_INIT_PRIORITY): Evaluate to false for EABI based targets.
* doc/tm.texi (INIT_ARRAY_SECTION_ASM_OP): Document.
(FINI_ARRAY_SECTION_ASM_OP): Likewise.
2005-04-29 Nathan Sidwell <nathan@codesourcery.com>
* config/m68k/m68k.c (m68k_initial_elimination_offset): Use
gcc_assert and gcc_unreachable as appropriate.
(output_dbcc_and_branch, output_scc_di, legitimize_pic_address,
const_int_cost, output_move_const_into_data_reg,
output_move_qimode, output_move_double, find_addr_reg,
print_operand, print_operand_address): Likewise.
* config/m68k/m68k.md (adddi3, subdi3, negsf2, negdf2, abssf2,
absdf2, sordered, sunordered, suneq, sunge, sungt, sunle, sunlt,
sltgt, bordered, bunordered, buneq, bunge, bungt, bunle, bunlt,
bltgt, *bordered_rev, *bunordered_rev, *buneq_rev, *bunge_rev,
*bunle_rev, *bunlt_rev, *bltgt_rev, negxf2, absxf2,
conditional_trap): Likewise.
* config/m68k/m68kelf.h (ASM_OUTPUT_ALIGN): Remove unreachable code.
2005-04-29 Nathan Sidwell <nathan@codesourcery.com>
* config/xtensa/xtensa.c (gen_int_relational): Use gcc_assert and
gcc_unreachable as appropriate.
(gen_conditional_move, xtensa_split_operand_pair,
xtensa_split_operand_pair, xtensa_copy_incoming_a7,
xtensa_copy_incoming_a7, xtensa_copy_incoming_a7,
xtensa_copy_incoming_a7, xtensa_output_literal,
xtensa_output_literal, xtensa_output_literal): Likewise.
* config/xtensa/xtensa.h (INITIAL_ELIMINATION_OFFSET): Likewise.
* config/xtensa/xtensa.md (*btrue, *bfalse, *ubtrue, *ubfalse,
*bittrue, *bitfalse, *masktrue, *maskfalse, movsicc_internal0,
movsicc_internal1, movsfcc_internal0,
movsfcc_internal1): Likewise.
2005-04-28 James E Wilson <wilson@specifixinc.com>
* config/i386/i386.h (HI_REGISTER_NAMES): Fix typos in comment.
(ADDITIONAL_REGISTER_NAMES): Delete obsolete mmx register entries.
2005-04-28 DJ Delorie <dj@redhat.com>
* opt-functions.awk (var_set): Emit proper initializer for
non-target bitfields.
2005-04-28 Devang Patel <dpatel@apple.com>
* dbxout.c (have_used_extensions): Remove.
(dbxout_type_fileds, dbxout_type, dbxout_symbol): Remove use of
have_used_extensions.
2005-04-28 James E Wilson <wilson@specifixinc.com>
* doc/install.texi: Update -enable-languages info. Correct path to
html docs.
2005-04-28 DJ Delorie <dj@redhat.com>
* optc-gen.awk (END): Make sure no variable is defined more
than once.
* opth-gen.awk (END): Allocate bits on a per-variable basis.
Allow for bitfield variables other than target_flags.
* doc/options.text (Mask): Document that you may specify a
variable other than target_flags.
2005-04-28 Martin Koegler <mkoegler@auto.tuwien.ac.at>
PR rtl-optimization/18877
* reload.c (decompose) <case REG, case SUBREG>: Handle pseudo reg
number in val.start.
2005-04-28 David Edelsohn <edelsohn@gnu.org>
PR target/20813
* config/rs6000/aix43.h (SUBSUBTARGET_SWITCHES, aix64): Add
MASK_PPC_GFXOPT.
* config/rs6000/aix51.h (SUBSUBTARGET_SWITCHES, aix64): Same.
* config/rs6000/aix52.h (SUBSUBTARGET_SWITCHES, aix64): Same.
* config/rs6000/sysv4.h (SUBTARGET_SWITCHES, 64): Same.
2005-04-28 Richard Earnshaw <richard.earnshaw@arm.com>
* arm.c (legitimize_pic_address): Fix sense of assertion test for
creating pseudos when the base offset is too large.
2005-04-28 Kazu Hirata <kazu@cs.umass.edu>
* global.c (earlyclobber_regclass): Change the type to
VEC(int,heap).
(check_earlyclobber): Update uses of earlyclobber_regclass.
(mark_reg_use_for_earlyclobber): Likewise.
(calculate_local_reg_bb_info): Allocate and free
earlyclobber_regclass using the VEC API.
2005-04-28 Nathan Sidwell <nathan@codesourcery.com>
* tree-ssa-alias.c (push_fields_onto_fieldstack): Remove bogus
assert.
2005-04-28 Kazu Hirata <kazu@cs.umass.edu>
* modulo-sched.c, tree-stdarg.c: Use targetm.foo instead of
(*targetm.foo).
* config.gcc: Obsolete c4x-* and tic4x-*.
* tree.h (edge_def): Remove.
* bt-load.c, cfgexpand.c, dwarf2out.c, emit-rtl.c, expr.c,
function.c, global.c, lcm.c, loop-invariant.c, optabs.c,
reorg.c, resource.c, tree-ssa-loop-ivopts.c, value-prof.c: Use
JUMP_P, LABEL_P, REG_P, MEM_P, NONJUMP_INSN_P, and INSN_P
where appropriate.
* attribs.c, c-pragma.c, caller-save.c, cfghooks.h,
coverage.c, cselib.h, domwalk.c, domwalk.h, errors.c,
errors.h, gcov-dump.c, gcov-io.c, gcov-io.h, gen-protos.c,
genattrtab.h, genextract.c, gthr-win32.h, insn-notes.def,
integrate.c, lambda-mat.c, lambda.h, libgcov.c, local-alloc.c,
machmode.def, mips-tfile.c, params.c, pretty-print.c,
print-rtl.c, protoize.c, regmove.c, sched-vis.c, tree-chrec.h,
tree-data-ref.h, vec.h, config/darwin-c.c, config/sol2-c.c,
config/sol2.c, config/arm/arm-cores.def, config/arm/cirrus.md,
config/arm/symbian.h, config/c4x/c4x.c, config/c4x/c4x.h,
config/i386/cygming.h, config/i386/djgpp.h,
config/i386/lynx.h, config/i386/netware.c,
config/i386/winnt.c, config/ia64/ia64-c.c,
config/iq2000/iq2000.c, config/m32r/little.h,
config/m68k/m68k-protos.h, config/m68k/m68k.h,
config/m68k/m68k.md, config/mcore/mcore.c,
config/mcore/mcore.h, config/mmix/mmix.c, config/mmix/mmix.md,
config/mn10300/mn10300-protos.h, config/mn10300/mn10300.c,
config/mn10300/mn10300.h, config/ns32k/netbsd.h,
config/ns32k/ns32k.c, config/ns32k/ns32k.h,
config/pa/pa-hpux11.h, config/pdp11/pdp11.c,
config/pdp11/pdp11.h, config/rs6000/darwin.h,
config/rs6000/default64.h, config/rs6000/rs6000-c.c,
config/s390/2064.md, config/s390/2084.md,
config/s390/s390-modes.def, config/s390/s390-protos.h,
config/s390/tpf.h, config/sh/sh.h, config/sh/symbian.c,
config/stormy16/stormy16.c, config/vax/vax-protos.h,
config/vax/vax.c, config/vax/vax.h,
config/xtensa/lib1funcs.asm, config/xtensa/xtensa.md: Update
copyright.
2005-04-28 Joseph S. Myers <joseph@codesourcery.com>
* c-typeck.c (build_compound_expr): Correct logic in last change.
2005-04-27 James E. Wilson <wilson@specifixinc.com>
* config/ia64/ia64.c (update_set_flags): Delete ppred and pcond
parameters. Replace conditional move code with assert checking for
ar.lc. Delete obsolete comments.
(set_src_needs_barrier): Delete cond parameter, and code using it.
(rtx_needs_barrier): Delete initialization of cond. Fix typo in
assert checking for PR_REGS. Fix calls to update_set_flags and
set_src_needs_barrier.
(group_barrier_needed): Renamed from group_barrier_needed_p. Fix all
callers. Rewrite explanatory comment before the function.
(safe_group_barrier_needed): Renamed from safe_group_barrier_needed_p.
Fix all callers.
2005-04-27 Mike Stump <mrs@apple.com>
* doc/cpp.texi: gcc now implements universal character names.
2005-04-27 Joseph S. Myers <joseph@codesourcery.com>
PR c/21159
* c-typeck.c (build_compound_expr): Don't warn for left-hand side
being a compound expression whose right-hand side is cast to void.
2005-04-27 Caroline Tice <ctice@apple.com>
* bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
Remove targetm.have_named_sections test.
(fix_edges_for_rarely_executed_code): Likewise.
(insert_section_boundary_note): Likewise.
(reorder_basic_blocks): Check partitioning flag before calling
verify_hot_cold_block_grouping.
* dbxout.c (dbxout_function_end): Get hot/cold section labels from
the function struct rather than global variables.
* dwarf2out.c (COLD_TEXT_SECTION_LABEL): New macro.
(COLD_END_LABEL): Likewise
(cold_text_section_label): New static global variable.
(cold_end_label): Likewise.
(dwarf2out_switch_text_section): Get hot/cold section labels from
the function struct rather than global variables; test to make sure
cfun is defined.
(output_aranges): Use cold_text_section_label and cold_end_label;
check partitioning flag before putting out delta.
(output_ranges): Remove incorrect code attempting to use
hot/cold labels.
(output_line_info): Get cold section label from function struct; test
to make sure cfun is defined.
(add_location_or_const_value_attribute): Likewise.
(dwarf2out_var_location): Likewise.
(dwarf2out_init): Generate cold_text_section_label and cold_end_label;
write out cold_text_section_label if partition flag is set.
(dwarf2out_finish): Write out cold_end_label if partition flag is set;
* function.h (struct function): Add new fields to point to hot/cold
section labels: hot_section_label, cold_section_label,
hot_section_end_label and cold_section_end_label; also add new field
for cold text section name, unlikely_text_section_name.
* opts.c (decode_options): Turn off partitioning flag if
!targetm.have_named_sections.
* output.h (hot_section_label): Remove.
(hot_section_end_label): Remove.
(cold_section_end_label): Remove.
(unlikely_section_label): Remove.
(unlikely_text_section_name): Remove.
* passes.c (rest_of_handle_final): Remove extra blank line.
* varasm.c (unlikely_section_label): Remove.
(hot_section_label): Remove.
(hot_section_end_label): Remove.
(cold_section_end_label): Remove.
(unlikely_text_section_name): Remove.
(initialize_cold_section_name): Modify to call
targetm.strip_name_encoding; to store cold section name in current
function struct, if it exists; and to only use the decl_section_name
if flag_named_sections is true.
(unlikely_text_section): Modify to get section name out of current
function struct, if there is one; otherwise build it from
UNLIKELY_EXECUTED_TEXT_SECTION_NAME.
(in_unlikely_text_section): Likewise.
(named_section): Modify to get/put cold section name in current function
struct, if there is one.
(function_section): Change 'bool unlikely' to 'int reloc'; check
targetm.have_named_sections before calling named_section.
(current_function_section): Likewise.
(assemble_start_function): Modify to get/put unlikely_text_section_name
in current function struct; modify to get hot/cold section labels
from function struct; initialize labels using
ASM_GENERATE_INTERNAL_LABEL;
test partitioning flag before writing out hot section label.
(assemble_end_function): Test partitioning flag before writing out
hot/cold section labels.
(default_section_type_flags_1): Get cold text section name from
function struct if there is one; Set flags correctly for
cold text section if there is not a current function struct.
2005-04-27 Richard Guenther <rguenth@gcc.gnu.org>
* tree-ssa-propagate.c (set_rhs): Revert last change.
2005-04-27 Steve Ellcey <sje@cup.hp.com>
* explow.c (convert_memory_address): Add gcc_assert.
2005-04-27 Mark Mitchell <mark@codesourcery.com>
* configure.ac: Check for ld --sysroot support.
* gcc.c: Document %R specifier for specs.
(SYSROOT_SPEC): New macro.
(sysroot_spec): New variable.
(static_specs): Add sysroot_spec.
(main): Pass the sysroot spec to the linker if appropriate.
* configure: Regenerated.
* config.in: Likewise.
2005-04-27 Richard Guenther <rguenth@gcc.gnu.org>
* fold-const.c (fold_binary): Use build_fold_addr_expr
for address calculation and INDIRECT_REF handling.
2005-04-27 Andrew Haley <aph@redhat.com>
* postreload-gcse.c (hash_scan_set): Remove bogus assertion.
2005-04-27 Nathan Sidwell <nathan@codesourcery.com>
* config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Reserve arm frame
pointer when thumb backtracing is on.
* config/fp-bit.c (abort): Revert change.
2005-04-27 Ian Lance Taylor <ian@airs.com>
* c-semantics.c (add_stmt): Don't test STATEMENT_CODE_P.
2005-04-27 Kazu Hirata <kazu@cs.umass.edu>
* tree-ssa-dce.c: Fix a comment typo.
2005-04-27 David S. Miller <davem@davemloft.net>
* explow.c (allocate_dynamic_stack_space SETJMP_VIA_SAVE_AREA):
Kill setjmpless_size. current_function_calls_setjmp is completely
computed when we are called, so just use the optimized size value
instead of using REG_SAVE_AREA notes.
(optimize_save_area_alloca): Delete....
* rtl.h (optimize_save_area_alloca): Likewise...
* passes.c (rest_of_compilation): and don't call it any more.
* reg-notes.def (SAVE_AREA): Delete.
2005-04-27 Nathan Sidwell <nathan@codesourcery.com>
* config/fp-bit.c (abort): Add noreturn attribute.
* config/avr/avr.c (avr_naked_function_p): Use gcc_assert and
gcc_unreachable as appropriate.
(ptrreg_to_str, cond_string, avr_normalize_condition): Likewise.
* config/avr/avr.h (ASM_OUTPUT_REG_PUSH,
ASM_OUTPUT_REG_POP): Likewise.
2005-04-27 Paolo Bonzini <bonzini@gnu.org>
* tree-complex.c (expand_vector_operations_1): Do not build
VIEW_CONVERT_EXPR's for the lhs.
2005-04-27 Nathan Sidwell <nathan@codesourcery.com>
* config/pa/pa.h (PRINT_OPERAND_ADDRESS): Use gcc_assert, remove
unnecessary noncanonical RTL handling.
* config/pa/pa64-linux.h (INITIAL_ELIMINATION_OFFSET): Use
gcc_assert and gcc_unreachable.
* config/arm/arm.h (ARM_PRINT_OPERAND_ADDRESS): Use gcc_assert and
gcc_unreachable as appropriate.
(THUMB_PRINT_OPERAND_ADDRESS): Likewise.
* config/arm/arm.c (arm_override_options, arm_compute_func_type,
use_return_insn, const_ok_for_op, arm_gen_constant,
arm_canonicalize_comparison, legitimize_pic_address,
thumb_find_work_register, arm_load_pic_register, arm_rtx_costs_1,
arm_cirrus_insn_p, cirrus_reorg, minmax_code,
load_multiple_sequence, emit_ldm_seq, store_multiple_sequence,
emit_stm_seq, arm_gen_movmemqi, arm_select_dominance_cc_mode,
arm_select_cc_mode, arm_reload_in_hi, arm_reload_out_hi,
move_minipool_fix_forward_ref, move_minipool_fix_backward_ref,
dump_minipool, create_fix_barrier, push_minipool_fix, arm_reorg,
fp_immediate_constant, fp_const_from_val, vfp_output_fstmx,
output_call, output_mov_long_double_fpa_from_arm,
output_mov_long_double_arm_from_fpa,
output_mov_double_fpa_from_arm, output_mov_double_arm_from_fpa,
output_move_double, arithmetic_instr, shift_op, int_log2,
output_return_instruction, arm_output_function_prologue,
arm_output_epilogue, arm_output_function_epilogue,
emit_multi_reg_push, arm_get_frame_offsets,
arm_compute_initial_elimination_offset, arm_expand_prologue,
arm_print_operand, arm_assemble_integer, get_arm_condition_code,
arm_final_prescan_insn, arm_init_iwmmxt_builtins,
arm_expand_binop_builtin, thumb_pushpop, thumb_far_jump_used_p,
thumb_compute_initial_elimination_offset,
thumb_output_function_prologue, thumb_load_double_from_address,
thumb_output_move_mem_multiple, thumb_reload_out_hi,
arm_emit_vector_const, arm_dbx_register_number): Likewise.
* config/arm/pe.c (arm_mark_dllexport, arm_mark_dllimport): Likewise.
* config/arm/arm.md (thumb_extendhisi2,
*thumb_extendhisi2_insn_v6, *thumb_extendqisi2,
*thumb_extendqisi2_v6, movhi, *thumb_movhi_insn,
thumb_movhi_clobber, movqi, *arm_buneq, *arm_bltgt,
*arm_buneq_reversed, *arm_bltgt_reversed, suneq, sltgt): Likewise.
* config/arm/cirrus.md (*cirrus_arm_movdi,
*cirrus_movdf_hard_insn): Likewise.
* config/arm/vfp.md (*arm_movdi_vfp, *movdf_vfp): Likewise.
2005-04-27 Kazu Hirata <kazu@cs.umass.edu>
* tree-flow.h (ssa_names): Change the type to VEC(tree,gc).
(num_ssa_names): Use VEC_length.
(ssa_names): Use VEC_index.
* tree-ssanames.c (ssa_names): Change the type to
VEC(tree,gc).
(init_ssanames, fini_ssa_names, make_ssanames,
release_ssa_name): Update uses of ssa_names.
* dojump.c, emit-rtl.c, expmed.c, expr.c, stmt.c, stor-layout.c:
Use fold_buildN instead of fold (buildN (...)).
2005-04-27 Devang Patel <dpatel@apple.com>
* dbxout.c (dbxout_type): Check use_gnu_debug_info_extensions.
2005-04-27 Matt Thomas <matt@3am-software.com>
Jan-Benedict Glaw <jbglaw@microdata-pos.de>
* config/vax/vax.c (vax_rtx_costs): Whitespace cleanup.
(vax_output_mi_thunk): Ditto.
(vax_notice_cc_update): Ditto.
(INDEX_REGISTER_P): Add trailing \.
(BASE_REGISTER_P): Add trailing \.
(legitimate_address_p): Whitespace cleanup. Remove trailing \.
2005-04-27 Richard Guenther <rguenth@gcc.gnu.org>
* tree-ssa-propagate.c (set_rhs): Check operand of
ADDR_EXPR for gimpliness, too.
2005-04-27 Kazu Hirata <kazu@cs.umass.edu>
* tree-ssa-pre.c: Fix a comment typo.
2005-04-27 Zdenek Dvorak <dvorakz@suse.cz>
PR tree-optimization/21171
* tree-ssa-loop-ivopts.c (find_interesting_uses_address): Do not
record address uses if the reference is volatile.
2004-04-27 Paolo Bonzini <bonzini@gnu.org>
* tree-complex.c (expand_vector_operation): New, extracted from
expand_vector_operations_1.
(tree_vec_extract): Build a NOP_EXPR.
(expand_vec_parallel): Do not care about returning the correct type.
(expand_vector_operations_1): Call expand_vector_operation.
Build the VIEW_CONVERT_EXPR on the left side of MODIFY_EXPRs.
* tree-complex.c (gate_expand_vector_operations): New.
(pass_lower_vector_ssa): Use it.
* tree-optimize.c (init_tree_optimization_passes): Include
pass_lower_vector_ssa.
* tree-vect-transform.c (vect_min_worthwhile_factor): New.
(vectorizable_operation): Use it.
* tree-vectorizer.c (get_vectype_for_scalar_type): Accept
integer modes for the vector type.
* defaults.h (UNITS_PER_SIMD_WORD): Default to UNITS_PER_WORD.
* tree-vect-analyze.c (vect_enhance_data_refs_alignment):
Do not cope with UNITS_PER_SIMD_WORD == 0.
* tree-vectorizer.c (get_vectype_for_scalar_type): Check
if the scalar type is not bigger than UNITS_PER_SIMD_WORD.
(vectorize_loops): Do not check that UNITS_PER_SIMD_WORD > 0.
* config/i386/i386.h (UNITS_PER_SIMD_WORD): Default to UNITS_PER_WORD.
* config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
* config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
* config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
* config/alpha/alpha.h (UNITS_PER_SIMD_WORD): Remove.
* config/bfin/bfin.h (UNITS_PER_SIMD_WORD): Remove.
* config/ia64/ia64.h (UNITS_PER_SIMD_WORD): Remove.
* doc/tm.texi (UNITS_PER_WORD): Rephrase more accurately.
(UNITS_PER_SIMD_WORD): New.
2005-04-27 Nathan Sidwell <nathan@codesourcery.com>
* config/ia64/ia64.c (ia64_encode_addr_area): Use gcc_assert and
gcc_unreachable as appropriate.
(ia64_expand_load_address, ia64_expand_tls_address,
ia64_split_tmode, ia64_split_tmode_move, ia64_expand_compare,
ia64_expand_vecint_compare, ia64_expand_vecint_minmax,
next_scratch_gr_reg, ia64_initial_elimination_offset,
ia64_expand_prologue, ia64_expand_epilogue,
ia64_output_dwarf_dtprel, ia64_print_operand,
ia64_register_move_cost, first_instruction, rws_access_regno,
update_set_flags, rtx_needs_barrier, group_barrier_needed_p,
ia64_sched_init, ia64_variable_issue,
ia64_first_cycle_multipass_dfs_lookahead_guard,
ia64_dfa_new_cycle, issue_nops_and_insn, get_template, bundling,
ia64_st_address_bypass_p, ia64_ld_address_bypass_p, process_set,
process_for_unwind_directive, ia64_hpux_file_end): Likewise.
* config/ia64/ia64.h (ASM_OUTPUT_ADDR_VEC_ELT): Likewise.
* config/ia64/ia64.md (*arm_movdi_vfp, *movdf_vfp): Likewise.
* config/ia64/predicates.md (got_symbolic_operand,
sdata_symbolic_operand): Likewise.
* config/ia64/vect.md (vcondv2sf): Likewise.
2005-04-27 Matt Thomas <matt@3am-software.com>
* config/vax/vax.c (legitimate_constant_address_p): New. Formerly
CONSTANT_ADDRESS_P in config/vax/vax.h
(legitimate_constant_p): Added. Formerly CONSTANT_P in vax.h.
(INDEX_REGISTER_P): New.
(BASE_REGISTER_P): New.
(indirectable_constant_address_p): New. Adapted from
INDIRECTABLE_CONSTANT_ADDRESS_P in vax.h. Use SYMBOL_REF_LOCAL_P.
(indirectable_address_p): New. Adapted from
INDIRECTABLE_ADDRESS_P in vax.h.
(nonindexed_address_p): New. Adapted from
GO_IF_NONINDEXED_ADDRESS in vax.h.
(index_temp_p): New. Adapted from INDEX_TERM_P in vax.h.
(reg_plus_index_p): New. Adapted from GO_IF_REG_PLUS_INDEX in vax.h.
(legitimate_address_p): New. Adapted from
GO_IF_LEGITIMATE_ADDRESS in vax.h.
(vax_mode_dependent_address_p): New. Adapted from
GO_IF_MODE_DEPENDENT_ADDRESS in vax.h.
* config/vax/vax.h (CONSTANT_ADDRESS_P): Use
legitimate_constant_address_p.
(CONSTANT_P): Use legitimate_constant_p.
(INDIRECTABLE_CONSTANT_ADDRESS_P): Removed.
(INDIRECTABLE_ADDRESS_P): Removed.
(GO_IF_NONINDEXED_ADDRESS): Removed.
(INDEX_TEMP_P): Removed.
(GO_IF_REG_PLUS_INDEX): Removed.
(GO_IF_LEGITIMATE_ADDRESS): Use legitimate_address_p. Two
definitions, depending on whether REG_OK_STRICT is defined.
(GO_IF_MODE_DEPENDENT_ADDRESS): Use vax_mode_dependent_address_p.
Two definitions, depending on whether REG_OK_STRICT is defined.
* config/vax/vax-protos.h (legitimate_constant_address_p): Prototype
added.
(legitimate_constant_p): Prototype added.
(legitimate_address_p): Prototype added.
(vax_mode_dependent_address_p): Prototype added.
2005-04-27 Kazu Hirata <kazu@cs.umass.edu>
* tree.h (phi_arg_d): Expand a comment in phi_arg_d.
2005-04-27 Joseph S. Myers <joseph@codesourcery.com>
PR c/21213
* c-decl.c (finish_struct): Don't dereference NULL TYPE_FIELDS of
transparent union.
2005-04-27 Joseph S. Myers <joseph@codesourcery.com>
PR c/20740
* c-format.c (init_dynamic_asm_fprintf_info): Give errors, not
assertion failures, if __gcc_host_wide_int__ is not properly
defined.
(init_dynamic_diag_info): Give errors, not assertion failures, if
location_t, tree or __gcc_host_wide_int__ are not properly
defined.
2005-04-26 Kazu Hirata <kazu@cs.umass.edu>
* tree-ssa-loop-ivopts.c (ivopts_data, decl_rtl_to_reset,
n_iv_uses, iv_use, n_iv_cands, iv_cand,
tree_ssa_iv_optimize_init, record_use, add_candidate_1,
prepare_decl_rtl, free_loop_data,
tree_ssa_iv_optimize_finalize): Use the VEC API instead of
VARRAY.
* tree.h (tree_phi_node): Add a comment about the order of PHI
arguments.
2005-04-26 Paul Brook <paul@codesourcery.com>
* config/arm/arm.md (thumb_mulsi3): Use two-operand assembly form.
2005-04-26 Nathan Sidwell <nathan@codesourcery.com>
* config/mips.mips.c (mips_legitimize_tls_address): Use
gcc_unreachable.
* config/mmix/mmix.c (mmix_assemble_integer): Use gcc_assert.
* config/mmix/crti.asm (_init): Reword comment to avoid 'abort'.
* config/mmix/mmix.md (nonlocal_goto_receiver): Likewise.
* config/sparc/sparc.h (enum reg_class): Reword comment to avoid
'abort'.
2005-04-26 Jeff Law <law@redhat.com>
* tree-flow-inline.h (op_iter_next_must_and_may_def): New.
(op_iter_init_must_and_may_def): Likewise.
(unmodifiable_var_p): Move to a later point in the file.
* tree-ssa-operands.h (FOR_EACH_SSA_MUST_AND_MAY_DEF_OPERAND): New.
* tree-ssa-dse.c (need_imm_uses_for): Remove, no longer needed.
(dse_record_phis): Directly check for virtual operands rather than
using need_imm_uses_for.
(dse_optimize_stmt): Handle V_MUST_DEF operands. Handle case where
store has multiple V_{MAY,MUST}_DEF operands.
2005-04-26 Andrew MacLeod <amacleod@redhat.com>
* tree-cfg.c (bsi_replace): Delink immediate uses for the original
stmt.
2005-04-26 Kazu Hirata <kazu@cs.umass.edu>
* tree-cfg.c (lv_adjust_loop_header_phi): Speed up moving a
call to find_edge outside a loop to go through a PHI chain.
2004-04-26 Richard Guenther <rguenth@gcc.gnu.org>
PR tree-optimization/17598
* fold-const.c (fold_binary): Fold comparisons of addresses
of COMPONENT_REFs which reference the same field to
comparisons of the addresses of the base objects.
2005-04-26 Julian Brown <julian@codesourcery.com>
* config/arm/arm.c (arm_return_in_msb): New function.
(arm_must_pass_in_stack): New function.
(TARGET_RETURN_IN_MSB): Define target hook.
(TARGET_MUST_PASS_IN_STACK): Define target hook.
(arm_function_value): Pad small aggregate return.
(arm_pad_arg_upward): New function.
(arm_pad_reg_upward): New function.
* config/arm/arm.h (PROMOTE_FUNCTION_MODE): Include complex values.
(FUNCTION_ARG_PADDING): Define macro.
(BLOCK_REG_PADDING): Define macro.
(PAD_VARARGS_DOWN): Correct padding for AAPCS.
* config/arm/arm-protos.h (arm_pad_arg_upward): Declare function.
(arm_pad_reg_upward): Declare function.
2005-04-26 Kazu Hirata <kazu@cs.umass.edu>
* basic-block.h (ei_cond): New.
(FOR_EACH_EDGE): Call ei_cond.
PR tree-optimization/21047
* fold-const.c (fold_binary): Abort on ASSERT_EXPR.
(fold): Don't handle ASSERT_EXPR.
2005-04-25 Roger Sayle <roger@eyesopen.com>
* sched-deps.c (sched_analyze_1): On STACK_REGS targets, x87, treat
all writes to any stack register as a read/write dependency on
FIRST_STACK_REG.
(sched_analyze_2): Likewise, for reads from any stack register.
2005-04-25 Richard Henderson <rth@redhat.com>
* final.c (output_addr_const): Revert 2005-04-09 change.
2005-04-25 Mike Stump <mrs@apple.com>
* config/darwin.c (darwin_encode_section_info): Always set
MACHO_SYMBOL_STATIC for all ! TREE_PUBLIC symbols.
2005-04-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* collect2.c, gcc.c, gcov-dump.c, gcov.c, gen-protos.c,
gensupport.c, protoize.c, toplev.c: Replace calls to
`unlock_stream' with `unlock_std_streams'.
2005-04-25 Devang Patel <dpatel@apple.com>
* dbxout.c (dbxout_type): Emit attribute vector.
2005-04-05 Paul Brook <paul@codesourcery.com>
* target-def.h (TARGET_CXX_USE_AEABI_ATEXIT): Define.
* target.h (struct gcc_target): Add cxx.use_aeabi_atexit.
* config/arm/arm.c (arm_cxx_atexit_name): New function.
(TARGET_CXX_USE_AEABI_ATEXIT): New macro.
* cp/decl.c (get_atexit_node): Reorder arguments for __aeabi_atexit.
(register_dtor_fn): Likewise.
* doc/tm.texi: Document TARGET_CXX_USE_AEABI_ATEXIT.
2005-04-25 Ian Lance Taylor <ian@airs.com>
* c-common.def (EXPR_STMT): Remove, moved to C++ frontend.
* c-common.h (EXPR_STMT_EXPR): Don't define.
(c_common_stmt_codes): Don't define.
* c-dump.c (c_dump_tree): Remove EXPR_STMT case.
* c-gimplify.c (gimplify_expr_stmt): Remove.
(c_gimplify_expr): Remove EXPR_STMT case.
* c-objc-common.c (c_objc_common_init): Remove stmt_codes and call
to INIT_STATEMENT_CODES.
* c-pretty-print.c (pp_c_statement): Just call dump_generic_node.
2005-04-25 Jan Hubicka <jh@suse.cz>
* tree-cfg.c (tree_duplicate_bb): Duplicate EH region too.
* except.c: Include diagnostic.h
(dump_eh_tree, verify_eh_tree): New functions.
* except.h (verify_eh_tree, dump_eh_tree, verify_eh_edges): Declare.
* tree-cfg.c (tree_verify_flow_info): verify eh edges.
(dump_function_to_file): dump eh tree.
* tree-eh.c (mark_eh_edge): New function.
(mark_eh_edge_found_error): New static variable.
(verify_eh_edges): New function.
2005-04-25 Nathan Sidwell <nathan@codesourcery.com>
* tree-ssa-alias.c (fieldoff_t): Remove.
(fieldoff_s): typedef the structure itself. Create a vector of
objects.
(push_fields_onto_fieldstack): Return count of fields pushed.
Remove peeling of first field. Adjust.
(fieldoff_compare): Adjust.
(create_overlap_variables_for): Adjust.
2005-04-25 Joseph S. Myers <joseph@codesourcery.com>
* doc/invoke.texi (Blackfin Options): Avoid empty @opindex line.
2005-04-25 Joseph S. Myers <joseph@codesourcery.com>
PR bootstrap/21215
* doc/install.texi: Document correct assembler and linker to use
on i?86-*-solaris2.10.
2005-04-25 Steven Bosscher <stevenb@suse.de>
Fix PR tree-optimization/21173
* tree-ssa-pre.c (create_expression_by_pieces): Simplify code.
Unshare expression we pass to force_gimple_operand.
2005-04-25 J"orn Rennecke <joern.rennecke@st.com>
Stephen Clarke <stevec@superh.com>
Roger Sayle <roger@eyesopen.com>
PR rtl-optimization/20413
* cfgrtl.c (redirect_edge_and_branch): Use Pmode instead of
VOIDmode for LABEL_REF.
* final.c (shorten_branches): Likewise.
* jump.c (mark_all_labels, redirect_exp_1): Likewise.
* loop.c (reg_dead_after_loop): Likewise.
* varasm.c (decode_addr_const): Likewise.
* doc/rtl.texi: Document mode requirement for LABEL_REF.
2005-04-25 Ralf Corsepius <ralf.corsepius@rtems.org>
* config.gcc (avr-*-*): Remove redundant "case".
2005-04-25 Kazu Hirata <kazu@cs.umass.edu>
* tree-vect-analyze.c (vect_mark_relevant): Take
VEC(tree,heap) instead of varray_type as an argument.
(vect_mark_stmts_to_be_vectorized): Change the type of
worklist to VEC(tree,heap). Adjust uses of worklist.
2005-04-24 Devang Patel <dpatel@apple.com>
* config/rs6000/darwin.h (ASM_OUTPUT_MAX_SKIP_ALIGN): New.
2005-04-24 Ian Lance Taylor <ian@airs.com>
* c-semantics.c (build_stmt): Remove test of specific tree codes
for TREE_SIDE_EFFECTS handling.
2005-04-24 Per Bothner <per@bothner.com>
* c-opts.c (finish_options): Make the line-number of the <built-in>
location 0, as assumed elsewhere, rather than 1.
2005-04-24 Kazu Hirata <kazu@cs.umass.edu>
* tree-ssa-uncprop.c (equiv_stack): Change the type o
VEC(tree,heap).
(tree_ssa_uncprop, uncprop_finalize_block,
uncprop_initialize_block): Update uses of equiv_stack.
2005-04-24 Richard Henderson <rth@redhat.com>
PR rtl-opt/21163
* simplify-rtx.c (simplify_binary_operation) <IOR>: Check
for SCALAR_INT_MODE_P instead of not MODE_CC before returning
constm1_rtx.
<AND, LSHIFTRT, UMIN>: Use CONST0_RTX.
<UDIV, UMOD>: Use CONST0_RTX and CONST1_RTX.
<DIV, MOD>: Likewise.
2005-04-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* collect2.c (main): Unlock the stdio streams.
* gcc.c (main): Likewise.
* gcov-dump.c (main): Likewise.
* gcov.c (main): Likewise.
* gen-protos.c (main): Likewise.
* gensupport.c (init_md_reader_args_cb): Likewise.
* protoize.c (main): Likewise.
* toplev.c (general_init): Likewise.
2005-04-24 Jakub Jelinek <jakub@redhat.com>
PR middle-end/20991
* cgraph.h (cgraph_local_info): Add vtable_method field.
* varasm.c (mark_decl_referenced): If cgraph_global_info_ready
and node is vtable_method, finalized and not reachable, don't do
anything.
2005-04-24 Kazu Hirata <kazu@cs.umass.edu>
* tree-ssa-copy.c (copy_prop_visit_cond_stmt): Use
COMPARISON_CLASS_P.
* tree-ssa-pre.c (create_value_expr_from): Use
CONSTANT_CLASS_P and REFERENCE_CLASS_P.
* tree-ssa-propagate.c (stmt_makes_single_load,
stmt_makes_single_store): Use REFERENCE_CLASS_P.
* tree-vect-transform.c (vect_is_simple_cond): Use
COMPARISON_CLASS_P.
* tree-vrp.c (extract_range_from_assert,
build_assert_expr_for, fp_predicate, has_assert_expr): Use
COMPARISON_CLASS_P.
* tree-ssa-live.c (build_tree_conflict_graph): Change the type
of tpa_to_clear to VEC(int,heap). Update uses of
tpa_to_clear. Free tpa_to_clear at the end.
2005-04-24 Andrew Pinski <pinskia@physics.uc.edu>
* tree.h (TREE_THIS_VOLATILE): Document the effect on a
function decl.
2005-04-24 Nathan Sidwell <nathan@codesourcery.com>
* config/rs6000/rs6000.c (rs6000_override_options): Use gcc_assert
and gcc_unreachable as appropriate.
(num_insns_constant, output_vec_const_move,
build_mask64_2_operands, rs6000_output_dwarf_dtprel,
rs6000_emit_set_const, rs6000_emit_move,
spe_build_register_parallel, function_arg,
rs6000_move_block_from_reg, altivec_expand_predicate_builtin,
spe_expand_predicate_builtin, spe_expand_evsel_builtin,
rs6000_expand_builtin, spe_init_builtins, altivec_init_builtins,
rs6000_common_init_builtins, expand_block_clear,
expand_block_move, validate_condition_mode, ccr_bit, extract_MB,
extract_ME, rs6000_get_some_local_dynamic_name,
rs6000_output_function_entry, print_operand,
print_operand_address, rs6000_generate_compare, rs6000_emit_sCOND,
output_cbranch, output_e500_flip_gt_bit,
rs6000_emit_vector_compare, rs6000_emit_vector_compare,
rs6000_emit_cmove, rs6000_emit_minmax, rs6000_split_multireg_move,
compute_save_world_info, rs6000_stack_info,
rs6000_emit_load_toc_table, rs6000_frame_related,
spe_synthesize_frame_save, rs6000_emit_epilogue,
rs6000_output_function_epilogue, rs6000_hash_constant, output_toc,
output_function_profiler, rs6000_trampoline_size,
rs6000_initialize_trampoline, find_addr_reg,
rs6000_machopic_legitimize_pic_address,
rs6000_initial_elimination_offset,
rs6000_dbx_register_number): Likewise.
* config/rs6000/rs6000.md (*fix_truncdfsi2_internal,
*movdf_hardfloat32, *movdf_softfloat32, *fix_trunctfsi2_internal,
*movti_power, *movti_string, call, call_value, sibcall,
sibcall_value): Likewise.
* config/rs6000/spe.md (*movdf_e500_double,
*movv2si_internal): Likewise.
* config/rs6000/rs6000.h (PREFERRED_RELOAD_CLASS): Remove 'abort'
from comment.
2005-04-24 Richard Henderson <rth@redhat.com>
PR target/21101
* config/i386/i386.h (CANNOT_CHANGE_MODE_CLASS): Move guts to ...
* config/i386/i386.c (ix86_cannot_change_mode_class): ... here.
Deny modes smaller than 4 bytes.
* config/i386/i386-protos.h: Update.
2005-04-24 Ralf Corsepius <ralf.corsepius@rtems.org>
* config.gcc (h8300-*-rtems*): Add h8300-*-rtemscoff*.
Switch h8300-*-rtems* to ELF.
2005-04-24 Kazu Hirata <kazu@cs.umass.edu>
* vec.h (VEC_safe_grow): Replace grow with safe_grow.
2005-04-23 Kazu Hirata <kazu@cs.umass.edu>
* ipa-inline.c, tree-ssa-operands.h: Fix comment typos.
2005-04-23 Richard Guenther <rguenth@gcc.gnu.org>
PR middle-end/21082
* fold-const.c: Fold &a[i]-&a[j] to i-j.
2005-04-23 Zdenek Dvorak <dvorakz@suse.cz>
* tree-ssa-loop-niter.c (tree_simplify_using_condition): Expand simple
definitions of ssa names in condition. Split recusive part to ...
(tree_simplify_using_condition_1): New function.
(expand_simple_operations): New function.
2005-04-23 Zdenek Dvorak <dvorakz@suse.cz>
* tree-ssa-loop-ivopts.c (struct cost_pair): Add value field.
(find_interesting_uses_cond): Do not use integer_zerop and
integer_nonzerop to check for integer constants.
(set_use_iv_cost): Record the value field.
(determine_use_iv_cost_generic, determine_use_iv_cost_address,
determine_use_iv_cost_outer): Set the value field of the cost pair.
(may_eliminate_iv): Do not return the comparison code.
(iv_elimination_compare): New function.
(determine_use_iv_cost_condition): Set the value field. Record
noneliminable invariants correctly.
(rewrite_use_compare, rewrite_use_outer): Use the value field.
2005-04-23 DJ Delorie <dj@redhat.com>
* diagnostic.c (warning): Accept parameter to classify warning option.
(warning0): New, for when a pointer to an error() like function is needed.
* errors.c (warning): Likewise.
* errors.h (warning, warning0): Adjust prototypes.
* toplev.h (warning, warning0): Likewise.
* attribs.c, builtins.c, c-common.c, c-decl.c, c-format.c,
c-gimplify.c, c-lex.c, c-objc-common.c, c-opts.c, c-parser.c,
c-pragma.c, c-typeck.c, calls.c, cgraph.c, coverage.c, emit-rtl.c,
fold-const.c, fortran/trans-decl.c, function.c, gcse.c,
genautomata.c, haifa-sched.c, opts.c, passes.c, regclass.c,
reload1.c, stmt.c, stor-layout.c, toplev.c, tree-cfg.c,
tree-dump.c, tree-inline.c, tree-mudflap.c, tree-optimize.c,
tree-ssa.c, tree.c, varasm.c: Adjust warning() callers.
* config/alpha/alpha.c, config/arc/arc.c, config/arm/arm.c,
config/avr/avr.c, config/bfin/bfin.c, config/c4x/c4x-c.c,
config/c4x/c4x.c, config/cris/cris.c, config/darwin-c.c,
config/darwin.c, config/darwin.h, config/h8300/h8300.c,
config/i386/cygming.h, config/i386/djgpp.h, config/i386/i386.c,
config/i386/winnt.c, config/ia64/ia64-c.c, config/ia64/ia64.c,
config/ip2k/ip2k.c, config/m32r/m32r.c, config/m68hc11/m68hc11.c,
config/m68k/m68k.c, config/mcore/mcore.c, config/mips/mips.c,
config/mmix/mmix.c, config/ns32k/ns32k.c, config/pa/pa-hpux11.h,
config/pa/pa.c, config/rs6000/aix43.h, config/rs6000/aix51.h,
config/rs6000/aix52.h, config/rs6000/darwin.h,
config/rs6000/rs6000-c.c, config/rs6000/rs6000.c,
config/s390/s390.c, config/sh/sh.c, config/sh/sh.h,
config/sh/symbian.c, config/sol2-c.c, config/sol2.c,
config/stormy16/stormy16.c, config/v850/v850-c.c,
config/v850/v850.c, config/xtensa/xtensa.c: Adjust warning()
callers.
2005-04-23 Richard Henderson <rth@redhat.com>
PR rtl-opt/21102
* simplify-rtx.c (simplify_binary_operation): Fix mode check before
performing some integral scalar simplifications.
2005-04-23 Richard Henderson <rth@redhat.com>
PR target/21099
* config/i386/i386.c (ix86_split_to_parts): Use proper mode when
simplifying CONST_VECTOR.
2005-04-23 Kazu Hirata <kazu@cs.umass.edu>
* tree-ssa-live.c (live_worklist): Take a stack allocated on
heap as an argument. Update uses of stack.
(calculate_live_on_entry): Allocate stack on heap.
* tree-ssa-live.c (build_tree_conflict_graph): Allocate
partition_link and tpa_nodes on heap.
* tree-ssa-dce.c (worklist): Change to VEC(tree,heap).
(mark_stmt_necessary, propagate_necessity,
mark_really_necessary_kill_operand_phis): Update uses of
worklist.
(tree_dce_init): Allocate worklist using VEC_alloc.
(tree_dce_done): Free worklist using VEC_free.
2005-04-23 Mike Stump <mrs@apple.com>
* config/darwin.c (machopic_indirection_name): Don't use
quotes needlessly.
(darwin_emit_unwind_label): Use user_label_prefix instead of
"_".
2005-04-23 Kazu Hirata <kazu@cs.umass.edu>
* final.c, ipa-inline.c, varasm.c: Fix comment typos.
2005-04-23 Hans-Peter Nilsson <hp@axis.com>
* config.gcc <cris-*>: Specify .opt files.
* config/cris/cris.opt, config/cris/elf.opt, config/cris/aout.opt,
config/cris/linux.opt: New files.
* config/cris/aout.h (CRIS_SUBTARGET_SWITCHES)
(CRIS_SUBTARGET_LONG_OPTIONS): Don't define.
(TARGET_ELF): Override to 0.
(CRIS_SUBTARGET_HANDLE_OPTION): Override to handle -melinux and
-melinux-stacksize=N.
* config/cris/cris.c: (cris_handle_option): New function.
(TARGET_DEFAULT_TARGET_FLAGS): Override.
(TARGET_HANDLE_OPTION): Override to cris_handle_option.
(cris_override_options): Use MASK_*, not TARGET_MASK_*.
* config/cris/cris.h (TARGET_MASK_SVINTO, TARGET_SVINTO,
(TARGET_MASK_CCINIT, TARGET_CCINIT, TARGET_MASK_PDEBUG)
(TARGET_PDEBUG, TARGET_MASK_SIDE_EFFECT_PREFIXES)
(TARGET_SIDE_EFFECT_PREFIXES, TARGET_MASK_EXPAND_MUL)
(TARGET_EXPAND_MUL, TARGET_MASK_STACK_ALIGN, TARGET_STACK_ALIGN)
(TARGET_MASK_CONST_ALIGN, TARGET_CONST_ALIGN)
(TARGET_MASK_DATA_ALIGN, TARGET_DATA_ALIGN)
(TARGET_MASK_PROLOGUE_EPILOGUE, TARGET_PROLOGUE_EPILOGUE)
(TARGET_MASK_ETRAX4_ADD, TARGET_ETRAX4_ADD)
(TARGET_MASK_ALIGN_BY_32, TARGET_ALIGN_BY_32, TARGET_MASK_ELF)
(TARGET_ELF, TARGET_MASK_LINUX, TARGET_LINUX)
(TARGET_MASK_AVOID_GOTPLT, TARGET_AVOID_GOTPLT)
(TARGET_MASK_MUL_BUG, TARGET_MUL_BUG, TARGET_SWITCHES)
(CRIS_SUBTARGET_SWITCHES, TARGET_OPTIONS)
(CRIS_SUBTARGET_LONG_OPTIONS): Don't define.
(TARGET_LINUX): Define 0.
(TARGET_DEFAULT): Use MASK_*, not TARGET_MASK_*.
(CRIS_SUBTARGET_DEFAULT): Define to 0, not TARGET_MASK_ELF.
(CRIS_SUBTARGET_DEFAULT): New empty default macro.
* config/cris/linux.h (CRIS_SUBTARGET_SWITCHES): Don't define.
(TARGET_LINUX): Override to 1.
(CRIS_SUBTARGET_DEFAULT): Use MASK_*, not TARGET_MASK_*.
2005-04-23 Nathan Sidwell <nathan@codesourcery.com>
* haifa-sched.c (schedule_block): Fix thinko in previous
assertification patch.
2005-04-23 Richard Sandiford <rsandifo@redhat.com>
* config.gcc (hppa[12]*-*-hpux10*): Add pa/pa-hpux.opt to
$extra_options. Also add pa/pa-hpux1010.opt for hpux10.[1-9]*.
(hppa*64*-*-hpux11*): Add pa/pa-hpux1010.h to $tm_file. Add
pa/pa-hpux.opt, pa/pa-hpux1010.opt and pa/pa64-hpux.opt to
$extra_options. Also add pa/pa-hpux1111.opt for hpux11.[1-9]*.
(hppa[12]*-*-hpux11*): Add pa/pa-hpux1010.h to $tm_file. Add
pa/pa-hpux.opt to $extra_options. Also add pa/pa-hpux1111.opt
for hpux11.[1-9]*.
* config/pa/pa.h (architecture_type, rtx_def, pa_arch_string, pa_arch)
(pa_fixed_range_string, pa_cpu_string, pa_unix_string, target_flags)
(MASK_PA_11, MASK_DISABLE_FPREGS, TARGET_DISABLE_FPREGS)
(MASK_NO_SPACE_REGS, TARGET_NO_SPACE_REGS, MASK_JUMP_IN_DELAY)
(TARGET_JUMP_IN_DELAY, MASK_DISABLE_INDEXING, TARGET_DISABLE_INDEXING)
(MASK_PORTABLE_RUNTIME, TARGET_PORTABLE_RUNTIME, MASK_GAS, TARGET_GAS)
(MASK_SOFT_FLOAT, TARGET_SOFT_FLOAT, MASK_LONG_LOAD_STORE)
(TARGET_LONG_LOAD_STORE, MASK_FAST_INDIRECT_CALLS)
(TARGET_FAST_INDIRECT_CALLS, MASK_BIG_SWITCH, TARGET_BIG_SWITCH)
(MASK_PA_20, MASK_SIO, TARGET_SIO, MASK_GNU_LD, TARGET_GNU_LD)
(MASK_LONG_CALLS, TARGET_LONG_CALLS, TARGET_PA_11, TARGET_PA_20)
(TARGET_SWITCHES, SUBTARGET_SWITCHES, TARGET_OPTIONS)
(SUBTARGET_OPTIONS): Delete.
(TARGET_PA_10): Redefine in terms of TARGET_PA_11 and TARGET_PA_20.
(TARGET_SCHED_DEFAULT): Define to a PROCESSOR_* enum (PROCESSOR_8000)
instead of a string.
* config/pa/pa.c (pa_arch, pa_arch_string, pa_fixed_range_string)
(pa_cpu_string, pa_unix_string): Delete.
(pa_cpu): Initialize to TARGET_SCHED_DEFAULT.
(flag_pa_unix): Initialize based on TARGET_HPUX_11_11 and
TARGET_HPUX_10_10.
(TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
(pa_handle_option): New function.
(override_options): Remove handling of -march=, -mfixed-range=,
-mschedule= and -munix=.
* config/pa/pa-hpux.h (SUBTARGET_SWITCHES): Delete.
* config/pa/pa-hpux1010.h (SUBTARGET_OPTIONS): Delete.
* config/pa/pa-hpux10.h (SUBTARGET_OPTIONS): Delete.
* config/pa/pa-hpux1111.h (SUBTARGET_OPTIONS): Delete.
* config/pa/pa-hpux11.h (SUBTARGET_OPTIONS): Delete.
* config/pa/pa64-hpux.h (SUBTARGET_SWITCHES): Delete.
* config/pa/pa64-start.h (TARGET_PA_11, TARGET_PA_20): #undef before
redefining.
* config/pa/pa.opt: New file.
* config/pa/pa-hpux.opt: New file.
* config/pa/pa-hpux1010.opt: New file.
* config/pa/pa-hpux1111.opt: New file.
* config/pa/pa64-hpux.opt: New file.
2005-04-22 David S. Miller <davem@davemloft.net>
* rtl.h (CONST_DOUBLE): Fix comment, a CONST_DOUBLE holds an
integer when it's mode is VOIDmode not DImode.
2005-04-22 Geoffrey Keating <geoffk@apple.com>
* config/rs6000/rs6000.md (sync_add<mode>_internal,
sync_addshort_internal, sync_sub<mode>_internal, sync_andsi_internal,
sync_anddi_internal, sync_boolsi_internal, sync_booldi_internal,
sync_boolc<mode>_internal, sync_boolc<mode>_internal2,
sync_boolcc<mode>_internal, sync_lock_test_and_set<mode>): Use
"bne- $-xxx" rather than local labels.
(sync_lock_release<mode>): Add second operand.
(lwsync): Use .long rather than a more meaningful opcode.
* doc/md.texi (Standard Names): Add description of second
parameter to sync_lock_test_and_set.
2005-04-23 Kazu Hirata <kazu@cs.umass.edu>
PR tree-optimization/21088
* fold-const.c (fold_unary, fold_binary, fold_ternary):
Export.
* tree-vrp.c (compare_values): Use fold_binary to compare
pointers. Use boolean_type_node as the type of a comparison
expression being folded.
* tree.h: Add prototypes for fold_unary, fold_binary,
fold_ternary.
* tree-ssa-dom.c: Fix formatting.
2005-04-22 Diego Novillo <dnovillo@redhat.com>
* Makefile.in (tree-into-ssa.o): Add dependency on PARAMS_H.
* lambda-code.c (perfect_nestify): Mark virtual operands in
the moved statement for renaming.
* params.def (PARAM_MIN_VIRTUAL_MAPPINGS): Define.
(PARAM_VIRTUAL_MAPPINGS_TO_SYMS_RATIO): Define.
* params.h (MIN_VIRTUAL_MAPPINGS): Define.
(VIRTUAL_MAPPINGS_TO_SYMS_RATIO): Define.
* tree-flow.h (struct var_ann_d): Update comments.
(rewrite_to_new_ssa_names_bb, rewrite_to_new_ssa_names,
allocate_ssa_names, find_phi_node_for, dump_tree_ssa,
debug_tree_ssa, debug_def_blocks, dump_tree_ssa_stats,
debug_tree_ssa_stats, rewrite_ssa_into_ssa,
dump_repl_tbl, debug_repl_tbl, dump_names_replaced_by,
debug_names_replaced_by): Remove declarations.
(delete_update_ssa, get_current_def, set_current_def): Declare.
(rewrite_into_loop_closed_ssa): Add new argument. Update
all callers.
* tree-into-ssa.c: Include params.h.
(old_virtual_ssa_names): Remove. Update all users.
(need_to_replace_names_p): Remove. Update all users.
(struct update_ssa_stats_d): Declare.
(update_ssa_stats): New local.
(dump_tree_ssa, debug_tree_ssa, debug_def_blocks,
dump_tree_ssa_stats, debug_tree_ssa_stats,
dump_update_ssa, debug_update_ssa,
dump_names_replaced_by, debug_names_replaced_by): Declare.
(get_current_def, set current_def): Make extern.
(is_old_name, is_new_name): Protect against references
past the end of the sets.
(add_new_name_mapping): Assert that OLD and NEW are
different SSA names for the same symbol.
When adding a virtual mapping, update stats for virtual
mapping heuristic.
(insert_phi_nodes_for): If UPDATE_P is true, create the
LHS of the new PHI by duplicating SSA name VAR.
(insert_phi_nodes_1): Remove. Update all users.
(insert_phi_nodes): Remove second argument. Update all
users.
(maybe_replace_use, maybe_replace_def): New.
(rewrite_update_stmt): Call them.
(mark_def_interesting): Remove calls to is_gimple_reg.
(prepare_phi_args_for_update): Remove. Update all users.
(prepare_block_for_update): Only process virtual operands
and GIMPLE registers in normal form.
(prepare_use_sites_for): New.
(prepare_names_to_update): Rename from prepare_def_sites.
Call prepare_use_sites_for.
(dump_update_ssa): Rename from dump_repl_tbl.
Update all users.
Show statistics for virtual mapping heuristic.
(debug_update_ssa): Rename from debug_debug_repl_tbl.
(init_update_ssa): Initialize UPDATE_SSA_STATS.
(delete_update_ssa): Make extern.
(mark_set_for_renaming): If the set is empty, do nothing.
(release_ssa_name_after_update_ssa): Update comment.
(insert_updated_phi_nodes_for): Do not remove existing
PHI nodes for symbols.
(switch_virtuals_to_full_rewrite_p): New.
(switch_virtuals_to_full_rewrite): New.
(update_ssa): Call them.
Clear REWRITE_THIS_STMT and REGISTER_DEFS_IN_THIS_STMT
for every statement before updating.
If all the names in NEW_SSA_NAMES have been marked for
removal, do nothing.
Only start at the top of the CFG if there are symbols in
SYMS_TO_RENAME.
(ssa_rewrite_finalize_block): Remove.
(ssa_register_new_def): Remove.
(ssa_rewrite_stmt): Remove.
(ssa_rewrite_phi_arguments): Remove.
(ssa_rewrite_initialize_block): Remove.
(ssa_mark_def_sites): Remove.
(ssa_mark_def_sites_initialize_block): Remove.
(ssa_mark_phi_uses): Remove.
(rewrite_ssa_into_ssa): Remove.
* tree-phinodes.c (find_phi_node_for): Remove.
* tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
Call update_ssa.
* tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops):
Remove calls to verify_dominators and
verify_loop_structure.
(tree_unswitch_single_loop): Call update_ssa.
* tree-ssa.c (verify_ssa): Assert that need_ssa_update_p
returns false.
Call verify_stmts.
(delete_tree_ssa): Assert that need_ssa_update_p returns
false.
* tree-vect-transform.c (vect_transform_loop): Call update_ssa.
* tree-vectorizer.c (allocate_new_names, rename_def_op,
free_new_names): Remove. Update all users.
(rename_use_op): Call get_current_def.
(rename_variables_in_bb): Do not handle any real or
virtual definition.
(slpeel_update_phis_for_duplicate_loop): Call
get_current_def and set_current_def instead of using
SSA_NAME_AUX.
(slpeel_update_phi_nodes_for_guard2): Reformat comments.
(slpeel_can_duplicate_loop_p): Call need_ssa_update_p,
ssa_names_to_replace and delete_update_ssa.
* doc/invoke.texi: Document --param min-virtual-mappings
and --param virtual-mappings-ratio.
2005-04-22 Diego Novillo <dnovillo@redhat.com>
* tree-cfg.c (tree_duplicate_bb): Call create_new_def_for
for newly created PHI nodes.
Call create_new_def_for for every new V_MAY_DEF and
V_MUST_DEF on the copied statement.
(struct ssa_name_map_entry): Remove.
(ssa_name_map_entry_hash): Remove.
(ssa_name_map_entry_eq): Remove.
(allocate_ssa_names): Remove.
(rewrite_to_new_ssa_names_def): Remove.
(rewrite_to_new_ssa_names_use): Remove.
(rewrite_to_new_ssa_names_bb): Remove.
(rewrite_to_new_ssa_names): Remove.
(tree_duplicate_sese_region): Remove variables ver,
definitions, phi, ssa_name_map and bi.
Call need_ssa_update_p instead of any_marked_for_rewrite_p.
Call update_ssa.
* tree-ssa-dom.c (tree_ssa_dominator_optimize): Call
update_ssa instead of rewrite_ssa_into_ssa.
* tree-ssa-loop-manip.c (add_exit_phis_edge): Call
create_new_def_for.
(find_uses_to_rename_use): Add argument 'need_phis'.
(find_uses_to_rename_stmt): Do not scan virtual operands.
(find_uses_to_rename): Only scan PHI nodes for
non-virtual names.
(rewrite_into_loop_closed_ssa): Call update_ssa.
(check_loop_closed_ssa_use): Ignore virtual operands.
(check_loop_closed_ssa_stmt): Likewise.
(verify_loop_closed_ssa): Do nothing if CURRENT_LOOPS is
NULL.
(rename_variables, set_phi_def_stmts): Remove.
(tree_duplicate_loop_to_header_edge): Reformat comment.
Remove variables BB, I and DEFINITIONS.
Call need_ssa_update_p.
Call update_ssa.
(lv_adjust_loop_header_phi): Reformat comment.
* tree-ssanames.c (ssa_names_to_rewrite): Remove.
(marked_for_rewrite_p, any_marked_for_rewrite_p,
mark_for_rewrite, unmark_all_for_rewrite,
marked_ssa_names): Remove. Update all users.
(release_ssa_name): If VAR has been registered for SSA
updating, do nothing.
* tree-vrp.c (new_ssa_names, old_ssa_names): Remove.
(build_assert_expr_for): Call register_new_name_mapping.
(insert_range_assertions): Update call to update_ssa.
* tree.h (mark_for_rewrite, unmark_all_for_rewrite,
marked_for_rewrite_p, any_marked_for_rewrite_p,
marked_ssa_names): Remove.
2005-04-22 Jeff Law <law@redhat.com>
* tree-ssa-dom.c (block_defs_stack): Remove, no longer needed.
(restore_currdefs_to_original_value): Likewise.
(register_definitions_for_stmt): Likewise.
(tree_ssa_dominator_optimize): No longer initialize CURRENT_DEF
for each variable. Do not allocate/free block_defs_stack either.
Do not iterate if we just thread jumps. Only iterate if the
tree_cleanup_cfg does useful work (temporary).
(dom_opt_initialize_block): No longer push a marker on
BLOCK_DEFS_STACK.
(dom_opt_finalize_block): Removal call to restore currdefs.
Relax restrictions for recording edge equivalences.
(record_equivalences_from_phis): No longer need to track
CURRENT_DEF.
(optimize_stmt): Similarly.
(thread_across_edge): Simplify by removing the requirement that
statements in the block we are threading through must be nops.
(initialize_hash_element): Handle GOTO_EXPR.
2005-04-22 David S. Miller <davem@davemloft.net>
* sched-vis.c (print_value): Use CONST_DOUBLE_LOW and
CONST_DOUBLE_HIGH.
* config/sparc/sparc.c (sparc_rtx_costs): Likewise, and
fix check on CONST_DOUBLE mode. It should be VOIDmode
when it is representing an integer.
2005-04-22 Nathan Sidwell <nathan@codesourcery.com>
* builtins.c (gimplify_va_arg_expr): Reword comments to avoid
'abort'. Use gcc_assert and gcc_unreachable as appropriate.
* c-format.c (get_constant, decode_format_attr, get_flag_spec,
find_char_info_specifier_index,
find_length_info_modifier_index): Likewise.
* c-typeck.c (composite_type, pop_init_level): Likewise.
* combine.c (cant_combine_insn_p, try_combine): Likewise.
* cse.c (cse_insn): Likewise
* dominance.c (calc_dfs_tree): Likewise
dwarf2out.c (loc_descriptor_from_tree_1,
add_abstract_origin_attribute, force_decl_die,
force_type_die): Likewise
emit-rtl.c (operand_subword_force): Likewise
explow.c (hard_function_value): Likewise
expmed.c (store_bit_field, expand_divmod,
emit_store_flag_force): Likewise
expr.c (emit_move_multi_word, store_expr,
expand_expr_real_1): Likewise
final.c (this_is_asm_operands, shorten_branches, final_scan_insn,
output_operand): Likewise
flow.c (recompute_reg_usage): Likewise
* function.c (assign_stack_temp_for_type, assign_temp,
handle_epilogue_set): Likewise
* genextract.c (main): Likewise
* gimplify.c (mostly_copy_tree_r, gimplify_return_expr,
gimplify_modify_expr_rhs, gimplify_expr): Likewise
* haifa-sched.c (ready_lastpos, ready_remove_first, ready_element,
ready_remove, rm_line_notes, rm_other_notes,
schedule_block): Likewise
mips-tfile.c (copy_object, out_of_bounds): Likewise
2005-04-22 David Edelsohn <edelsohn@gnu.org>
PR target/20813
* config/rs6000/default64.h (TARGET_DEFAULT): Add MASK_PPC_GFXOPT.
* config/rs6000/rs6000.c (processor_target_table): Rename rs64a to
rs64. Add MASK_PPC_GFXOPT to powerpc64 and rs64.
(rs6000_init_libfuncs): Set TFmode optabs to xlq names if
TARGET_XL_COMPAT.
* doc/invoke.texi (PowerPC options): Change rs64a to rs64.
2005-04-22 Nathan Sidwell <nathan@codesourcery.com>
* lambda-code.c: Define VEC(int,heap), VEC(lambda_loop,heap).
(gcc_tree_to_linear_expression): Convert to heap allocated
vectors.
(gcc_loop_to_lambda_loop, gcc_loopnest_to_lambda_loopnest,
lbv_to_gcc_expression, lle_to_gcc_expression,
lambda_loopnest_to_gcc_loopnest, can_convert_to_perfect_nest,
perfect_nestify): Likewise.
lambda.h (gcc_loopnest_to_lambda_loopnest,
lambda_loopnest_to_gcc_loopnest): Likewise.
tree-loop-linear.c (linear_transform_loops): Likewise.
2005-04-22 Eric Botcazou <ebotcazou@libertysurf.fr>
* config/sparc/predicates.md (arith_double_operand): Use
trunc_int_for_mode if HOST_BITS_PER_WIDE_INT >=64.
* config/sparc/sparc.md (movqi, movhi, movsi, movqi): Use gen_int_mode.
(DImode, DFmode constant splitters): Likewise. Remove code for
TARGET_ARCH64 && HOST_BITS_PER_WIDE_INT < 64.
(logical constant splitters): Use const_int_operand predicate.
(lshrsi3_extend): Remove code for TARGET_ARCH64 &&
HOST_BITS_PER_WIDE_INT < 64.
2005-04-22 Nathan Sidwell <nathan@codesourcery.com>
* config/pa/pa.c (legitimize_pic_address): Use gcc_assert and
gcc_unreachable as appropriate.
(force_mode, emit_move_sequence, singlemove_string,
output_move_double, output_fp_move_double, find_addr_reg,
output_block_move, output_block_clear, output_and,
output_64bit_and, output_ior, output_64bit_ior, store_reg_modify,
pa_adjust_cost, pa_issue_rate, print_operand,
output_global_address, output_arg_descriptor, output_cbranch,
output_lbranch, output_bb, output_bvb, output_dbra, output_movb,
output_call): Likewise.
* config/pa/pa.md (call, call_value, sibcall, sibcall_value,
prefetch, prefetch_cc, prefetch_nocc): Likewise.
2005-04-22 Zdenek Dvorak <dvorakz@suse.cz>
* Makefile.in (LIBGCOV): Add _gcov_interval_profiler,
_gcov_pow2_profiler and _gcov_one_value_profiler.
(tree-profile.o): Add GGC_H and gt-tree-profile.h dependency.
(GTFILES): Add $(srcdir)/tree-profile.c.
* gcov-io.h (__gcov_interval_profiler, __gcov_pow2_profiler,
__gcov_one_value_profiler): Declare.
* gimplify.c (force_gimple_operand): Check whether the statements
should be produced in ssa form.
(force_gimple_operand_bsi): New function.
* libgcov.c (__gcov_interval_profiler, __gcov_pow2_profiler,
__gcov_one_value_profiler): New functions.
* rtl-profile.c (rtl_gen_pow2_profiler): Only measure whether
the profiled value is a power of two or not.
* tree-cfg.c (tree_block_ends_with_condjump_p): Handle empty blocks.
* tree-flow.h (in_ssa_p): Declare.
(force_gimple_operand_bsi): Declare.
* tree-into-ssa.c (in_ssa_p): New variable.
(rewrite_into_ssa): Set in_ssa_p.
* tree-outof-ssa.c (rewrite_out_of_ssa): Set in_ssa_p.
* tree-profile.c: Include ggc.h and gt-tree-profile.h.
(gcov_type_node, tree_interval_profiler_fn, tree_pow2_profiler_fn,
tree_one_value_profiler_fn): New variables.
(tree_init_edge_profiler): Initialize the profiler function decls.
(tree_gen_edge_profiler): Use global gcov_type_node.
(prepare_instrumented_value): New function.
(tree_gen_interval_profiler, tree_gen_interval_profiler,
tree_gen_one_value_profiler): Call the library functions instead of
creating instrumentation code.
* tree.c (build_fn_decl): New function.
* tree.h (build_fn_decl): Declare.
* value-prof.c (rtl_divmod_values_to_profile,
rtl_find_values_to_profile, rtl_mod_pow2_value_transform,
tree_mod_pow2_value_transform, tree_find_values_to_profile):
Do not handle may_be_other and precise values of exponents at pow2
profiler.
(tree_mod_subtract_transform): Reflect that value field of
histogram has changed meaning.
(tree_divmod_values_to_profile): Record the values correctly.
(tree_values_to_profile): Update comment.
* value-prof.h (struct histogram_value_t): Remove pow2 data.
2005-04-22 Joseph S. Myers <joseph@codesourcery.com>
* varasm.c (do_assemble_alias): Return early if TREE_ASM_WRITTEN
(decl).
2005-04-22 Nathan Sidwell <nathan@codesourcery.com>
* config/i386/i386.md (length_immediate): Use gcc_assert or
gcc_unreachable, as appropriate.
(*movsi_1, *movqi_1, reload_outqi, *movdi_1_rex64, *pushsf,
*pushsf_rex64, *truncxfsf2_mixed, *truncxfsf2_i387,
*truncxfdf2_mixed, *truncxfdf2_i387, *adddi_1_rex64,
*adddi_2_rex64, *adddi_3_rex64, *adddi_4_rex64, *adddi_5_rex64,
*addsi_1, addsi_1_zext, *addsi_2, *addsi_2_zext, *addsi_3,
*addsi_3_zext, *addsi_4, *addsi_5, *addhi_1_lea, *addhi_1,
*addhi_2, *addhi_3, *addhi_4, *addhi_5, *addqi_1_lea, *addqi_1,
*addqi_1_slp, *addqi_2, *addqi_3, *addqi_4, *addqi_5, addqi_ext_1,
*addqi_ext_1_rex64, *anddi_1_rex64, *andsi_1, *andhi_1,
*ashldi3_1_rex64, *ashldi3_cmp_rex64, *ashlsi3_1, *ashlsi3_1_zext,
*ashlsi3_cmp, *ashlsi3_cmp_zext, *ashlhi3_1_lea, *ashlhi3_1,
*ashlhi3_cmp, *ashlqi3_1_lea, *ashlqi3_1, *ashlqi3_cmp,
pro_epilogue_adjust_stack_1, pro_epilogue_adjust_stack_rex64,
pro_epilogue_adjust_stack_rex64_2, prefetch, *prefetch_sse,
*prefetch_sse_rex): Likewise.
* config/i386/predicates.md (x86_64_immediate_operand,
x86_64_zext_immediate_operand, symbolic_operand,
no_seg_address_operand, aligned_operand,
memory_displacement_operand): Likewise.
* config/i386/sse.md (*mov<mode>_internal,
*movv2df_internal): Likewise.
2005-04-22 Jan Hubicka <jh@suse.cz>
* Makefile.in (ipa.o, ipa-inline.o): New files.
* cgraph.h (cgraph_remove_unreachable_nodes, cgraph_postorder,
cgraph_decide_inlining_incrementally, cgraph_clone_inlined_nodes,
cgraph_mark_inline_edge, cgraph_default_inline_p): Declare.
* cgraphunit.c (cgraph_default_inline_p,
cgraph_decide_inlining_incrementally, ncalls_inlined,
nfunctions_inlined, initial_insns, overall_insns,
cgraph_estimate_size_after_inlining, cgraph_estimate_growth,
cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
cgraph_mark_inline, cgraph_check_inline_limits,
cgraph_default_inline_p, cgraph_recursive_inlining_p,
update_callee_keys, lookup_recursive_calls,
cgraph_decide_recursive_inlining, cgraph_set_inline_failed,
cgraph_decide_inlining_of_small_functions, cgraph_decide_inlining,
cgraph_decide_inlining_incrementally, cgraph_gate_inlining,
pass_ipa_inline): Move to ipa-inline.c
(cgraph_postorder, cgraph_remove_unreachable_nodes): Move to ipa.c
* ipa.c: New file.
* ipa-inline.c: New file.
2005-04-22 Eric Botcazou <ebotcazou@libertysurf.fr>
* doc/invoke.texi (SPARC options): Document that -mapp-regs
is turned off by default on Solaris.
2005-04-21 Roger Sayle <roger@eyesopen.com>
* c-common.h (objc_build_method_signature): Update prototype.
* stub-objc.c (objc_build_method_signature): Update the stub
implementation to accept and ignore additional parameter.
* c-parser.c (c_parser_objc_method_decl): Reorgnize to pass
the value of ellipsis to objc_build_method_signature instead
of setting TREE_OVERFLOW on the parms TREE_LIST node.
2005-04-21 Geoffrey Keating <geoffk@apple.com>
* config/rs6000/rs6000-protos.h (rs6000_emit_sync): New.
* config/rs6000/rs6000.c (rs6000_emit_vector_compare): Use
gen_rtx_* not gen_rtx_fmt_*.
(rs6000_emit_vector_select): Likewise.
(rs6000_emit_sync): New.
* config/rs6000/rs6000.md (GPR, INT, INT1): New mode macros.
(larx, stcx, cmp): New mode substitutions.
(UNSPEC_SYNC, UNSPEC_SYNC_OP, UNSPEC_SYNC_SWAP, UNSPEC_LWSYNC,
UNSPEC_ISYNC): New constants.
(rlwinm): Give name.
(memory_barrier, isync, lwsync): New insns.
(sync_compare_and_swap<mode>, sync_lock_test_and_set<mode>): New insn.
(sync_lock_release<mode>): New expander.
(sync_add<mode>, sync_sub<mode>, sync_ior<mode>, sync_and<mode>,
sync_xor<mode>, sync_nand<mode>, sync_old_add<mode>,
sync_old_sub<mode>, sync_old_ior<mode>, sync_old_and<mode>,
sync_old_xor<mode>, sync_old_nand<mode>, sync_new_add<mode>,
sync_new_sub<mode>, sync_new_ior<mode>, sync_new_and<mode>,
sync_new_xor<mode>, sync_new_nand<mode>): New expanders.
(sync_add<mode>_internal, sync_addshort_internal,
sync_sub<mode>_internal, sync_andsi_internal, sync_anddi_internal,
sync_boolsi_internal, sync_booldi_internal, sync_boolc<mode>_internal,
sync_boolc<mode>_internal2, sync_boolcc<mode>_internal): New insns.
* doc/md.texi (Standard Names): sync_compare_and_swap's operand 0
is the memory before, not after, the operation. Clarify
barrier requirements.
2005-04-21 Nathan Sidwell <nathan@codesourcery.com>
* cfghooks.h (struct cfg_hooks): Reword comments to avoid 'abort'.
* lambda.h (lambda_vector_min_nz): Likewise.
* langhooks.h (struct lang_hooks_for_types,
struct lang_hooks): Likewise.
* output.h (assemble_integer, this_is_asm_operands): Likewise.
* tree.h: Likewise.
* vec.h: Likewise.
* tree-flow-inline.h (relink_imm_use): Use gcc_assert.
* optabs.c (prepare_cmp_insn, emit_cmp_and_jump_insns): Reword
comments to avoid 'abort'. Use gcc_assert as necessary.
* opts.c (common_handle_option): Likewise.
* pretty-print.c (pp_base_format_text): Likewise.
* print-rtl.c (print_rtx): Likewise.
* read-rtl.c (read_rtx_filename, read_rtx_1): Likewise.
* regmove.c (try_auto_increment): Likewise.
* reload.c (find_valid_class, find_reloads_toplev,
find_equiv_reg): Likewise.
* reload1.c (reload, forget_old_reloads_1, function_invariant_p,
merge_assigned_reloads): Likewise.
* tree-inline.c (inline_forbidden_p_1,
estimate_num_insns_1): Likewise.
* tree-optimize.c (execute_todo): Likewise.
* tree-outof-ssa.c (eliminate_phi): Likewise.
* tree-ssa-alias.c (add_pointed_to_expr): Likewise.
* tree-ssa-ccp.c (maybe_fold_stmt_indirect): Likewise.
* tree-ssa-operands.c (parse_ssa_operands,
get_indirect_ref_operands, create_ssa_artficial_load_stmt): Likewise.
* tree-ssa-pre.c (find_or_generate_expression): Likewise.
* tree-ssanames.c (release_ssa_name): Likewise.
* tree.c (int_bit_position, int_byte_position, tree_low_cst,
walk_tree): Likewise.
* tree-ssa-operands.c (verify_abort): Fold into ..
(verify_imm_links): ... here.
2005-04-21 Richard Henderson <rth@redhat.com>
* config/alpha/sync.md (sync_new_nand<I48MODE>): Fix constraints
on non-memory operand for previous inversion.
2005-04-21 Devang Patel <dpatel@apple.com>
PR optimization/20994
* tree-if-conv.c (find_phi_replacement_condition): Avoid generating
x = !(a == b) : p , q;.
(pass_if_conversion): Verify stmts and flow.
2005-04-21 Nathan Sidwell <nathan@codesourcery.com>
* optabs.c (gen_conditional_trap): Restore #define.
* alias.c (true_dependence): Remove 'abort' from comments. Use
gcc_assert and gcc_unreachable as appropriate.
(canon_true_dependence): Likewise.
* bb-reorder.c (connect_traces): Likewise.
* c-common.c (c_add_case_label): Likewise.
* c-decl.c (finish_function): Likewise.
* caller-save.c (insert_restore, insert_save): Likewise.
* cfg.c (update_bb_profile_for_threading): Likewise.
* cfganal.c (flow_active_insn_p): Likewise.
* cfgexpand.c (add_reg_br_prob_note): Likewise.
* cfgrtl.c (rtl_redirect_edge_and_branch_force, rtl_split_edge,
cfg_layout_merge_blocks): Likewise.
* ifcvt.c (cond_exec_process_insns, merge_if_block,
find_if_block): Likewise.
* integrate.c (allocate_initial_values): Likewise.
* jump.c (reverse_condition, reverse_condition_maybe_unordered,
swap_condition, unsigned_condition, signed_condition,
mark_jump_label, invert_jump_1, rtx_renumbered_equal_p,
reg_or_subregno): Likewise.
* lambda-code.c (lambda_compute_auxillary_space,
lambda_transform_legal_p): Likewise.
* lambda-mat.c (lambda_matrix_inverse_hard): Likewise.
* langhooks.c (lhd_set_decl_assembler_name, lhd_type_promotes_to,
lhd_incomplete_type_error, lhd_expand_expr,
lhd_types_compatible_p, lhd_tree_size): Likewise.
* lcm.c (create_pre_exit, optimize_mode_switching): Likewise.
* local-alloc.c (update_equiv_regs): Likewise.
* loop-unroll.c (peel_loop_completely
unroll_loop_constant_iterations, unroll_loop_runtime_iterations,
peel_loop_simple, unroll_loop_stupid,
analyze_iv_to_split_insn): Likewise.
* loop.c (gen_prefetch, find_and_verify_loops,
basic_induction_var): Likewise.
* modulo-sched.c (normalize_sched_times, check_nodes_order): Likewise.
* value-prof.c (tree_find_values_to_profile): Likewise.
* varasm.c (named_section, default_assemble_integer,
decode_addr_const): Likewise.
2005-04-21 Alan Modra <amodra@bigpond.net.au>
Fariborz Jahanian <fjahanian@apple.com>
* config/rs6000/rs6000.c (rs6000_arg_partial_bytes): Fix size of
portion of argument passed in fpr.
* expr.c (emit_push_insn): Fix computation of 'offset' used to
decide on partial argument save on stack.
2005-04-21 Kazu Hirata <kazu@cs.umass.edu>
* config/sparc/predicates.md, config/sparc/sparc.md: Fix
comment typos.
2005-04-21 Jan Hubicka <jh@suse.cz>
* cgraphunit.c: Include tree-pass.h
(cgraph_decide_recursive_inlining,
cgraph_decide_inlining_of_small_function, cgraph_set_inline_failed,
cgraph_decide_inlining): Dump goes to dump_file.
(cgraph_optimize): Call ipa passes instead of inliner.
(cgraph_gate_inlining, pass_ipa_inline): New.
* tree-optimize.c (all_ipa_passes): New static variable.
(register_one_dump_file): Dead with IPA passes.
(register_dump_files): Likewise.
(init_tree_optimization_passes): Initialize IPA passes.
(execute_todo): Do cgraph dump when asked to, do not dump function body
for IPA pass.
* tree-pass.h (TODO_dump_cgraph): New macro.
(ipa_passes): Declare.
* Makefile.in (cgraphunit.o): Add dependency on cgraphunit.h
2005-04-21 Nathan Sidwell <nathan@codesourcery.com>
* config/i386/i386.c (type_natural_mode): Use gcc_unreachable and
gcc_assert instead of abort.
(classify_argument, examine_argument, construct_container,
contains_128bit_aligned_vector_p, ix86_check_movabs,
standard_80387_constant_opcode, standard_80387_constant_rtx,
ix86_initial_elimination_offset, ix86_compute_frame_layout,
pro_epilogue_adjust_stack, ix86_expand_epilogue,
ix86_address_cost, legitimate_address_p, legitimize_pic_address,
legitimize_tls_address, output_pic_addr_const,
i386_output_dwarf_dtprel, put_condition_code, print_reg,
get_some_local_dynamic_name, print_operand, print_operand_address,
output_387_binary_op, emit_i387_cw_initialization,
output_fix_trunc, output_fp_compare, ix86_output_addr_vec_elt,
ix86_expand_clear, ix86_expand_binary_operator,
ix86_expand_unary_operator, ix86_match_ccmode, ix86_cc_mode,
ix86_cc_modes_compatible, ix86_fp_comparison_codes,
ix86_fp_comparison_arithmetics_cost, ix86_expand_fp_compare,
ix86_expand_branch, ix86_expand_setcc,
ix86_expand_carry_flag_compare, ix86_expand_fp_movcc,
ix86_expand_int_addcc, ix86_split_to_parts, ix86_split_long_move,
ix86_expand_movmem, ix86_expand_call, assign_386_stack_local,
memory_address_length, ix86_attr_length_immediate_default,
ix86_attr_length_address_default, ix86_agi_dependant,
x86_initialize_trampoline, ix86_init_mmx_sse_builtins,
ix86_expand_binop_builtin, ix86_force_to_memory,
ix86_secondary_memory_needed, ix86_avoid_jump_misspredicts,
x86_emit_floatuns): Likewise.
* config/i386/netware.c (gen_regparm_prefix,
i386_nlm_strip_name_encoding): Likewise.
* config/i386/winnt.c (i386_pe_mark_dllexport): Likewise.
2005-04-21 Nathan Sidwell <nathan@codesourcery.com>
* optabs.c (gen_condiational_trap): Remove #define.
(add_equal_note): Assertify. Remove explicit indirection from
call via function pointer.
(expand_ternary_op, expand_simple_binop, expand_binop,
expand_twoval_unop, expand_twoval_binop,
expand_twoval_binop_libfunc, expand_simple_unop expand_unop,
emit_unop_insn, emit_no_conflict_block, prepare_cmp_insn,
prepare_operand emit_cmp_and_jump_insn_1, emit_cmp_and_jump_insns,
prepare_float_lib_cmp, emit_conditional_move,
emit_conditional_add, gen_add2_insn, gen_add3_insn,
have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn,
expand_float, expand_fix, debug_optab_libfuncs, gen_cond_trap,
vector_compare_rtx, expand_vec_cond_expr): Likewise.
2005-04-21 Nathan Sidwell <nathan@codesourcery.com>
* vec.h: Update API to separate allocation mechanism from type.
(VEC_safe_grow): New.
* vec.c (calculate_allocation): New.
(vec_gc_o_reserve, vec_heap_o_reserve): Adjust.
(vec_gc_free, vec_heap_free): Remove.
* gengtype-lex.l (DEF_VEC_): Process mult-argument macros. Adjust.
(VEC): Likewise.
(mangle_macro_name): New.
(struct macro_def): New.
(struct macro): Add multiple argument values.
(macro_expans_end): New.
(push_macro_expansion): Chain on new macro. Process multiple
args, create follow on expansion. Return follow on argument.
(macro_input): Deal with multiple arguments.
* tree.h: Define VEC(tree,heap) and VEC(tree,gc).
(struct tree_binfo): Adjust.
* basic-block.h: Define VEC(edge,gc).
(struct edge_def): Adjust.
(struct basic_block_def, struct edge_iterator): Likewise.
(ei_container, ei_start_1, ei_last_1): Likewise.
* cfg.c (connect_src, connect_dest): Likewise.
* cfgrtl.c (force_nonfallthru_and_redirect)
* dbxout.c (dbxout_type)
* dwarf2out.c (gen_member_die)
* lambda-code.c: Define VEC(int,gc), VEC(lambda_loop,gc).
(gcc_tree_to_linear_expression): Adjust.
(gcc_loop_to_lambda_loop, gcc_loopnest_to_lambda_loopnest,
lbv_to_gcc_expression, lle_to_gcc_expression,
lambda_loopnest_to_gcc_loopnest, can_convert_to_perfect_nest,
perfect_nestify): Likewise.
* lambda.h (gcc_loopnest_to_lambda_loopnest,
lambda_loopnest_to_gcc_loopnest): Adjust prototypes.
* profile.c (instrument_values): Adjust.
* tree-cfg.c (modified_noreturn_calls): Adjust.
(remove_fallthru_edge): Likewise.
* tree-dump.c (dequeue_and_dump): Adjust.
* tree-flow-inline.h (mark_stmt_modified): Adjust.
* tree-flow.h (modified_noreturn_calls): Adjust.
(tree_on_heap): Remove. (yay!)
(register_new_def): Adjust.
* tree-into-ssa.c: Define VEC(int,heap).
(block_defs_stack): Adjust.
(find_idf, insert_phi_nodes, register_new_def,
rewrite_initialize_block, rewrite_finalize_block,
register_new_update_single, rewrite_update_init_block,
rewrite_update_fini_block, rewrite_blocks,
ssa_rewrite_finalize_block, ssa_register_new_def,
ssa_rewrite_initialize_block, rewrite_ssa_into_ssa): Likewise.
* tree-loop-linear.c (linear_transform_loops): Adjust.
* tree-ssa-alias.c: Define VEC(fieldoff_t,heap).
(push_fields_onto_fieldstack, create_overlap_variables_for): Adjust.
* tree-ssa-dom.c (avail_exprs_stack, block_defs_stack,
stmts_to_rescan, const_and_copies_stack, nonzero_vars_stack,
vrp_variables_stack): Adjust declarations.
(tree_ssa_dominator_optimize): Adjust.
(dom_opt_initialize_block, remove_local_expressions_from_table,
restore_nonzero_vars_to_original_value,
restore_vars_to_original_value,
restore_currdefs_to_original_value, dom_opt_finalize_block,
record_var_is_nonzero, record_cond, record_const_or_copy_1,
optimize_stmt, update_rhs_and_lookup_avail_expr,
lookup_avail_expr, record_range): Likewise.
* tree-ssa-pre.c: Define VEC(basic_block,heap).
(compute_antic_aux): Adjust.
(inserted_exprs, create_expression_by_pieces,
insert_into_preds_of_block, eliminate, mark_operand_necessary,
remove_dead_inserted_code, fini_pre): Likewise.
* tree-ssa-propagate.c (interesting_ssa_edges): Adjust.
(varying_ssa_edges, add_ssa_edge, process_ssa_edge_worklist.
ssa_prop_init): Likewise.
* tree-ssa.c: Define VEC(bitmap,heap).
(verify_name_tags): Adjust.
* value-prof.c (rtl_divmod_values_to_profile): Adjust.
(insn_prefetch_values_to_profile, rtl_find_values_to_profile,
tree_divmod_values_to_profile, tree_find_values_to_profile,
value_profile_transformations): Likewise.
* value-prof.h: Define VEC(histogram_value,heap).
* varasm.c: Remove alias_pair pointer typedef, define
VEC(alias_pair,gc).
(finish_aliases_1, finish_aliases_2, assemble_alias): Adjust.
* config/pa/pa.c (typedef extern_symbol): Typedef the structure,
not a pointer to it. Create an object vector.
(extern_symbols): Turn into an object vector.
(pa_hpux_asm_output_external, pa_hpux_file_end): Adjust.
2005-04-21 Sebastian Pop <pop@cri.ensmp.fr>
PR/20742
* Makefile.in (tree-chrec.o): Depend on params.h.
* params.def (PARAM_SCEV_MAX_EXPR_SIZE): New parameter with
default value 20.
* tree-chrec.c: Depend on params.h. Replace build with buildN,
and fold build with fold_buildN.
(chrec_fold_plus_1): Fail with a chrec_don_know when the size of
the expression exceeds PARAM_SCEV_MAX_EXPR_SIZE.
(tree_contains_chrecs): Compute an estimation of the size of the
given expression.
* tree-chrec.h (tree_contains_chrecs): Modify its declaration.
(tree_does_not_contain_chrecs): Update the use of tree_contains_chrecs.
* tree-scalar-evolution.c (simple_iv): Ditto.
* doc/invoke.texi (scev-max-expr-size): Documented.
2005-04-21 Richard Sandiford <rsandifo@redhat.com>
* config.gcc (*-*-darwin*): Add darwin.opt to $extra_options.
(i[34567]86-pc-msdosdjgpp*): Likewise i386/djgpp.opt.
(i[34567]86-*-lynxos*, powerpc-*-lynxos*): Likewise lynx.opt.
(i[34567]86-*-sco3.2v5*): Likewise i386/sco5.opt.
(i[34567]86-*-pe, i[34567]86-*-cygwin*, i[34567]86-*-mingw32*)
(i[34567]86-*-uwin*): Likewise i386/cygming.opt.
* config/darwin.h (darwin_one_byte_bool, darwin_fix_and_continue)
(darwin_fix_and_continue_switch, SUBTARGET_OPTIONS): Delete.
* config/darwin.c (darwin_one_byte_bool, darwin_fix_and_continue)
(darwin_fix_and_continue_switch): Delete.
* config/lynx.h (SUBTARGET_OS_LYNX_SWITCHES): Delete.
(SUBTARGET_SWITCHES): Delete.
* config/i386/i386.h (target_flags, MASK_80387, MASK_RTD)
(MASK_ALIGN_DOUBLE, MASK_SVR3_SHLIB, MASK_IEEE_FP, MASK_FLOAT_RETURNS)
(MASK_NO_FANCY_MATH_387, MASK_OMIT_LEAF_FRAME_POINTER)
(MASK_STACK_PROBE, MASK_NO_ALIGN_STROPS, MASK_INLINE_ALL_STROPS)
(MASK_NO_PUSH_ARGS, MASK_ACCUMULATE_OUTGOING_ARGS, MASK_MMX)
(MASK_SSE, MASK_SSE2, MASK_SSE3, MASK_3DNOW, MASK_3DNOW_A)
(MASK_128BIT_LONG_DOUBLE, MASK_64BIT, MASK_MS_BITFIELD_LAYOUT)
(MASK_TLS_DIRECT_SEG_REFS, MASK_NO_RED_ZONE, TARGET_80387)
(TARGET_RTD, TARGET_ALIGN_DOUBLE, TARGET_PUSH_ARGS)
(TARGET_ACCUMULATE_OUTGOING_ARGS, TARGET_SVR3_SHLIB, TARGET_IEEE_FP)
(TARGET_128BIT_LONG_DOUBLE, TARGET_NO_FANCY_MATH_387)
(TARGET_USE_FANCY_MATH_387, TARGET_OMIT_LEAF_FRAME_POINTER)
(TARGET_DEBUG_ADDR, TARGET_DEBUG_ARG): Delete.
(TARGET_FLOAT_RETURNS_IN_80387): Make an alias of TARGET_FLOAT_RETURNS.
(TARGET_64BIT): Undef before redefining.
(TARGET_TLS_DIRECT_SEG_REFS, TARGET_STACK_PROBE)
(TARGET_ALIGN_STRINGOPS, TARGET_INLINE_ALL_STRINGOPS, TARGET_SSE)
(TARGET_SSE2, TARGET_SSE3, TARGET_MMX, TARGET_3DNOW, TARGET_3DNOW_A)
(TARGET_RED_ZONE, TARGET_USE_MS_BITFIELD_LAYOUT, TARGET_SWITCHES)
(TARGET_OPTIONS, SUBTARGET_SWITCHES, SUBTARGET_OPTIONS)
(ix86_fpmath_string, ix86_tls_dialect_string, ix86_cmodel_string)
(ix86_asm_string, ix86_regparm, ix86_regparm_string)
(ix86_preferred_stack_boundary_string, ix86_branch_cost_string)
(ix86_debug_arg_string, ix86_debug_addr_string)
(ix86_align_loops_string, ix86_align_jumps_string)
(ix86_align_funcs_string): Delete.
* config/i386/cygming.h (MASK_NOP_FUN_DLLIMPORT)
(TARGET_NOP_FUN_DLLIMPORT, SUBTARGET_SWITCHES): Delete.
* config/i386/djgpp.h (MASK_BNU210, SUBTARGET_SWITCHES): Delete.
(SUBTARGET_OVERRIDE_OPTIONS): Check TARGET_BNU210.
* config/i386/lynx.h (SUBTARGET_SWITCHES): Delete.
* config/i386/sco5.h (MASK_COFF, TARGET_ELF)
(SUBTARGET_SWITCHES): Delete.
* config/i386/i386.c (ix86_debug_arg_string): Delete.
(ix86_debug_addr_string): Delete.
(ix86_cmodel_string, ix86_asm_string, ix86_tls_dialect_string)
(ix86_fpmath_string, ix86_regparm_string, ix86_regparm)
(ix86_align_loops_string, ix86_align_jumps_string)
(ix86_preferred_stack_boundary_string, ix86_branch_cost_string)
(ix86_align_funcs_string): Make static.
(TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
(ix86_handle_option): New function.
(TARGET_USE_MS_BITFIELD_LAYOUT): Delete.
(ix86_ms_bitfield_layout_p): Check TARGET_MS_BITFIELD_LAYOUT.
* config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Remove handling
of darwin_fix_and_continue_switch.
(darwin_one_byte_bool): Delete.
* config/rs6000/lynx.h (EXTRA_SUBTARGET_SWITCHES): Delete.
* config/rs6000/rs6000.c (rs6000_override_options): Update assignment
to darwin_one_byte_bool.
* config/darwin.opt, config/lynx.opt, config/i386/cygming.opt,
* config/i386/djgpp.opt, config/i386/i386.opt,
* config/i386/sco5.opt: New files.
2005-04-21 Eric Botcazou <ebotcazou@libertysurf.fr>
* config/sparc/sparc.c (reg_or_0_operand, const1_operand,
fp_zero_operand, fp_register_operand, intreg_operand,
fcc_reg_operand, fcc0_reg_operand, icc_or_fcc_reg_operand,
call_operand, call_operand_address, tgd_symbolic_operand,
tld_symbolic_operand, tie_symbolic_operand, tle_symbolic_operand,
symbolic_operand, symbolic_memory_operand, label_ref_operand,
sp64_medium_pic_operand, data_segment_operand,
text_segment_operand, splittable_symbolic_memory_operand,
reg_or_nonsymb_mem_operand, splittable_immediate_memory_operand,
eq_or_neq, normal_comp_operator, noov_compare_op,
noov_compare64_op, v9_regcmp_op, extend_op, cc_arithop,
cc_arithopn, arith_operand, arith_4096_operand, arith_add_operand,
const64_operand, const64_high_operand, arith11_operand,
arith10_operand, arith_double_operand, arith_double_4096_operand,
arith_double_add_operand, arith11_double_operand,
arith10_double_operand, small_int, small_int_or_double,
uns_small_int, uns_arith_operand, clobbered_register,
input_operand, compare_operand): Delete.
(sparc_emit_set_const32): Use predicates in assertion. Remove special
code for TARGET_ARCH64 && HOST_BITS_PER_WIDE_INT != 64.
(sparc_emit_set_const64): Call gcc_unreachable if H_B_P_W_I == 32.
(GEN_HIGHINT64, GEN_INT64): Delete.
(sparc_emit_set_safe_HIGH64, gen_safe_SET64, gen_safe_OR64,
gen_safe_XOR64): Adjust for above deletion.
(sparc_emit_set_const64): Support only H_B_P_W_I == 64 and CONST_INTs.
Use 'unsigned HOST_WIDE_INT' instead of 'long' for bitmask.
(legitimate_constant_p): Use const_zero_operand instead.
(sparc_extra_constraint_check): Likewise.
* config/sparc/sparc.h (CONST_DOUBLE_OK_FOR_LETTER_P): Remove 'O'.
(PREFERRED_RELOAD_CLASS): Use const_zero_operand.
(PREDICATE_CODES): Delete.
* config/sparc/sparc.md: Include predicates.md.
(All patterns): Adjust for new predicate names.
(cmpdi, cmpdi_sp64): Use arith_operand predicate.
(movhi_const64_special, movsi_const64_special): Add 'K' constraint.
(movdi): Use general_operand predicate.
(movdi_sp64_dbl): Delete.
(movdi_const64_special): Add 'N' constraint.
(movdicc): Use arith10_operand predicate.
(movdi_cc_sp64, movdi_cc_sp64_trunc): Use arith11_operand predicate.
(movdi_cc_reg_sp64): Use arith10_operand predicate.
(movdi_cc_reg_sp64_trunc): Delete.
(cmp_zero_extract, cmp_zero_extract_sp64): Use small_int_operand.
(adddi3_sp64, cmp_ccx_plus, cmp_ccx_plus_set): Use arith_operand.
(subdi3_sp32): Delete.
(subdi3_insn_sp32): Change to define_insn_and_split.
(subdi3_sp64, cmp_minus_ccx, cmp_minus_ccx_set): Use arith_operand.
(muldi3, muldi3_sp64, muldi3_v8plus): Likewise.
(smulsi3_highpart_v8plus, const_smulsi3_highpart_v8plus,
umulsi3_highpart_v8plus, const_umulsi3_highpart_v8plus): Use
small_int_operand predicate.
(divdi3, udivdi3): Use arith_operand predicate.
(udivsi3, udivsi3_sp32, udivsi3_sp64): Use nonimmediate_operand.
(and<V64I>3_sp64, ior<V64I>3_sp64, xor<V64I:mode>3_sp64,
xor_not_<V64I:mode>_sp64) : Use arith_operand predicate.
(xordi3_sp64_dbl): Delete.
(cmp_ccx_arith_op, cmp_ccx_arith_op_set, cmp_ccx_xor_not,
cmp_ccx_xor_not_set, cmp_ccx_arith_op_not, cmp_ccx_arith_op_not_set,
cmp_ccx_neg, cmp_ccx_set_neg, one_cmpl<V64I>2_sp64, cmp_ccx_not,
cmp_ccx_set_not): Use arith_operand predicate.
(ashrsi3_extend2, lshrsi3_extend2 et al.): Use small_int_operand.
* config/sparc/predicates.md: New file.
2005-04-21 Kazu Hirata <kazu@cs.umass.edu>
PR tree-optimization/14846
* fold-const.c (fold_single_bit_test_into_sign_test): New,
split out from ...
(fold_single_bit_test): ... here.
(fold_binary): Call fold_single_bit_test_into_sign_test
instead of fold_single_bit_test.
2005-04-20 James E Wilson <wilson@specifixinc.com>
PR c++/20805
* dwarf2out.c (gen_variable_die): Don't emit a specification if this
is another declaration.
2005-04-21 Hans-Peter Nilsson <hp@axis.com>
* config/cris/predicates.md: New file.
* config/cris/cris-protos.h (cris_store_multiple_op_p)
(cris_movem_load_rest_p): Declare.
* config/cris/cris.c (cris_store_multiple_op): Return bool, not int.
(cris_movem_load_rest_p): Ditto. Globalize.
(cris_bdap_operand, cris_bdap_biap_operand,
cris_orthogonal_operator, cris_commutative_orth_op,
cris_operand_extend_operator,
cris_additive_operand_extend_operator, cris_extend_operator,
cris_plus_or_bound_operator, cris_mem_op,
cris_general_operand_or_symbol,
cris_general_operand_or_gotless_symbol,
cris_general_operand_or_plt_symbol, cris_mem_call_operand,
cris_load_multiple_op): Remove predicate functions.
(cris_symbol, cris_gotless_symbol) <case UNSPEC>: Return 0, don't
abort, for UNSPECs other than CRIS_UNSPEC_PLT.
* config/cris/cris.h (PREDICATE_CODES): Don't define.
* config/cris/cris.md: Include predicates.md.
("call", "call_value"): Generate CONSTs of Pmode, not VOIDmode.
2005-04-20 Ian Lance Taylor <ian@airs.com>
* c-common.def: Remove STMT_EXPR (moved to cp/cp-tree.def).
* c-common.h (STMT_EXPR_STMT): Don't define.
(STMT_EXPR_NO_SCOPE): Don't define.
* c-dump.c (c_dump_tree): Don't handle STMT_EXPR.
* c-pretty-print.c (pp_c_primary_expression): Likewise.
(pp_c_expression): Likewise.
2005-04-20 Richard Henderson <rth@redhat.com>
PR target/21100
* config/i386/mmx.md (push<MMXMODE>1): Fix predicate thinko.
2005-04-20 Jeff Law <law@redhat.com>
* reload1.c (reload): Ignore equivalences between pseudos and
read only memory.
2005-04-20 Joseph S. Myers <joseph@codesourcery.com>
PR c/12913
* c-tree.h (struct c_label_list): Update comment.
(struct c_label_context): Rename to struct c_label_context_se.
(label_context_stack): Rename to label_context_stack_se.
(C_DECL_UNJUMPABLE_VM, C_DECL_UNDEFINABLE_VM, struct
c_label_context_vm, label_context_stack_vm, c_begin_vm_scope,
c_end_vm_scope): New.
(C_DECL_DECLARED_BUILTIN, C_DECL_USED): Use FUNCTION_DECL_CHECK.
* c-decl.c (pop_scope): Call c_end_vm_scope.
(pushdecl): Call c_begin_vm_scope for variably modified
declarations.
(define_label): Check for jumping into scope of identifier with
variably modified type. Push label on stack for those defined at
current context of identifiers with variably modified type.
(start_function): Create stack level for context of identifiers
with variably modified type.
(finish_function): Pop stack level for context of identifiers with
variably modified type.
* c-typeck.c (label_context_stack): Rename to
label_context_stack_se.
(label_context_stack_vm, c_begin_vm_scope, c_end_vm_scope): New.
(c_finish_goto_label): Check for jumping into scope of identifier
with variably modified type. Push label on stack for those jumped
to from current context of identifiers with variably modified
type.
(struct c_switch): Add blocked_vm.
(c_start_case): Initialize blocked_vm.
(do_case): Check blocked_vm.
(c_finish_case): Add comment.
(c_begin_stmt_expr, c_finish_stmt_expr): Update for renamed
variable label_context_stack.
2005-04-20 Kazu Hirata <kazu@cs.umass.edu>
* tree-ssa-phiopt.c (tree_ssa_phi_opt): Update calls to
conditional_replacement, value_replacement, abs_replacement,
minmax_replacement.
(replace_phi_edge_with_variable): Remove argument BB.
(conditional_replacement, value_replacement,
minmax_replacement, abs_replacement): Remove argument PHI_BB.
Update a call to replace_phi_edge_with_variable.
* tree-ssa-phiopt.c: Fix comments.
2005-04-20 Michael Matz <matz@suse.de>
PR20973
* reload.c (push_reload, find_dummy_reload): Check for uninitialized
pseudos.
2005-04-20 Kazu Hirata <kazu@cs.umass.edu>
* tree-ssa-phiopt.c: Fix comment typos.
PR tree-optimization/21116
* tree-ssa-phiopt.c: Fix a typo.
2005-04-19 Richard Henderson <rth@redhat.com>
* builtins.c (expand_builtin_sync_operation): Revert last change.
* optabs.c (expand_bool_compare_and_swap): Compare vs old value,
not vs new value.
(expand_compare_and_swap_loop): Likewise.
(expand_sync_operation): Remove fallback from NAND to AND; invert
memory operand when expanding from cmpxchg.
(expand_sync_fetch_operation): Likewise.
* doc/extend.texi (Atomic Builtins): Fix docs for nand and
compare-and-swap.
* config/alpha/alpha.c (alpha_split_atomic_op): Invert memory operand
when implementing NAND. Fix double-add for AFTER.
* config/alpha/sync.md (sync_nand<I48MODE>): Invert memory operand.
(sync_old_nand<I48MODE>, sync_new_nand<I48MODE>): Likewise.
(sync_compare_and_swap<I48MODE>): Fix compare vs zero. Return old
memory value.
(sync_lock_test_and_set<I48MODE>): Remove extra label and last
memory barrier.
* config/i386/sync.md (sync_compare_and_swap<IMODE>): Fix pattern
to return old memory value.
(sync_compare_and_swap_cc<IMODE>): Likewise.
* config/ia64/ia64.c (ia64_dependencies_evaluation_hook): Early
return pre-reload. Don't consider output or anti dependencies.
* config/ia64/sync.md (IMODE): New.
(modesuffix): Add QI and HI.
(memory_barrier): Simplify expansion.
(sync_compare_and_swap<IMODE>): Use IMODE, not I48MODE.
(cmpxchg_acq_<IMODE>): Likewise.
(sync_lock_test_and_set<IMODE>): Likewise.
(sync_lock_release<IMODE>): Likewise.
2005-04-19 James A. Morrison <phython@gcc.gnu.org>
* fold-const.c (fold_binary): Fold ~(X ^ Y) to ~X ^ Y or X ^ ~Y if
~X or ~Y simplify.
2005-04-19 James A. Morrison <phython@gcc.gnu.org>
* fold-const (fold_binary): Fold ~X ^ ~ Y to X ^ Y.
2005-04-20 Michael Pogue <michael.pogue@sun.com>
Joseph S. Myers <joseph@codesourcery.com>
* c.opt (Wint-to-pointer-cast, Wpointer-to-int-cast): New options.
* c-typeck.c (build_c_cast): Check these options.
* doc/invoke.texi: Document these options.
2005-04-20 Kazu Hirata <kazu@cs.umass.edu>
* tree-ssa-phiopt.c: Update a comment about the pass.
2005-04-19 Kazu Hirata <kazu@cs.umass.edu>
* tree-ssa-phiopt.c, config/arm/arm.c, config/fr30/fr30.md,
config/mcore/mcore.c: Fix comment typos.
2005-04-19 Daniel Jacobowitz <dan@codesourcery.com>
* Makefile.in (libgcc.mk): Pass GCC_FOR_TARGET.
* mklibgcc.in: Use $GCC_FOR_TARGET instead of ./xgcc.
2005-04-19 Paul Brook <paul@codesourcery.com>
* config/arm/arm.c (arm_init_libfuncs): Clear mod optabs.
2005-04-19 Andrew Haley <aph@redhat.com>
PR java/21022
* dbxout.c (dbxout_type_fields): Check DECL_IGNORED_P before
looking at a field's bitpos.
2005-04-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* system.h (fopen, fdopen, freopen): Define these to the unlocked
libiberty functions.
2005-04-19 Kazu Hirata <kazu@cs.umass.edu>
PR tree-optimization/21096
* tree-ssa-copy.c (fini_copy_prop): Free cached_last_copy_of.
2005-04-19 Alan Modra <amodra@bigpond.net.au>
PR target/21098
* config/rs6000/rs6000.c (rs6000_elf_end_indicate_exec_stack): New.
* config/rs6000/linux64.h (TARGET_ASM_FILE_END): Use the above.
2005-04-19 Alexandre Oliva <aoliva@redhat.com>
* tree-cfg.c (dump_function_to_file): Use cfun info only if it
refers to the function being dumped.
2005-04-18 Daniel Jacobowitz <dan@codesourcery.com>
* varasm.c (assemble_start_function): Remove reset of in_section.
2005-04-18 James A. Morrison <phython@gcc.gnu.org>
PR tree-optimization/21085
* fold-const (fold_binary): Don't change X % -C to X % C if C has
overflowed.
2005-04-19 Ben Elliston <bje@au.ibm.com>
* doc/invoke.texi (Optimize Options): Refer to the correct
optimisation flag -ftree-dominator-opts, not -ftree-dom.
2005-04-18 Christopher Jaillet <christophe.jaillet@wanadoo.fr>
* config/rs6000/rs6000.c (machopic_output_stub): Increase
alloca argument to be big enough.
2005-04-18 Alexandre Oliva <aoliva@redhat.com>
PR middle-end/21049
* tree-cfg.c (dump_function_to_file): Do not crash if cfun or
cfun->cfg are NULL.
2005-04-18 Tom Tromey <tromey@redhat.com>
* cgraphunit.c (cgraph_finalize_compilation_unit): Fix a comment
typo.
2005-04-18 Richard Henderson <rth@redhat.com>
* config/alpha/alpha.c (alpha_split_atomic_op): New.
(alphaev5_insn_pipe): Add LD_L, ST_C, MB types.
(alphaev4_insn_pipe): Likewise. Correct IST and LDSYM pipes.
* config/alpha/alpha-protos.h: Update.
* config/alpha/alpha.md (UNSPECV_MB, UNSPECV_LL, UNSPECV_SC): New.
(UNSPECV_ATOMIC, UNSPECV_CMPXCHG, UNSPECV_XCHG): New.
(attr type): Add ld_l, st_c, mb.
(andsi_internal, andnotsi3, iorsi_internal, one_cmplsi_internal,
iornotsi3, xorsi_internal, xornotsi3): New.
* config/alpha/ev4.md (ev4_ld): Add ld_l.
(ev4_ist_c, ev4_mb): New.
* config/alpha/ev5.md (ev5_st): Add st_c, mb.
(ev5_ld_l): New.
* config/alpha/ev6.md (ev6_ild): Add ld_l.
(ev6_ist): Add st_c.
(ev6_mb): New.
* config/alpha/sync.md: New file.
2005-04-18 Richard Henderson <rth@redhat.com>
* builtins.c (expand_builtin_sync_operation): Fold nand to and
for constants.
* optabs.c (expand_sync_operation): Fix typo expanding nand to and.
2005-04-18 Devang Patel <dpatel@apple.com>
* config/rs6000/atlivec.md (mulv4si3): New pattern.
2005-04-18 James A. Morrison <phython@gcc.gnu.org>
PR tree-optimization/20922
* fold-const.c (fold_binary): Fold X - c > X and X + c < X to false.
Fold X + c >= X and fold X - c <= X to true.
2005-04-18 James A. Morrison <phython@gcc.gnu.org>
* config/ia64/unwind-ia64.c (emergency_reg_state_free): Make an
unsigned int.
(emergency_labeled_state_free): Likewise.
2005-04-18 Nick Clifton <nickc@redhat.com>
* config/h8300/h8300.md (jump): Remove prescan parameter from
calls to final_scan_insn.
* config/arc/arc.c (arc_output_function_epilogue): Remove prescan
parameter from calls to final_scan_insn.
* config.gcc (m68hc12): Use the m68hc11.opt file for target
specific options.
(v850e, v850e1): Use the v850.opt file for target specific
options.
2005-04-18 Kazu Hirata <kazu@cs.umass.edu>
PR tree-optimization/21001
* tree-optimize.c (init_tree_optimization_passes): Move the
first pass_forwprop immediately before pass_vrp.
2005-04-17 Ian Lance Taylor <ian@airs.com>
* c-common.def (SIZEOF_EXPR, ARROW_EXPR, ALIGNOF_EXPR): Remove.
* c-common.c (c_sizeof_or_alignof_type): Change second parameter
from enum tree_code op to bool is_sizeof.
* c-common.h (c_sizeof_or_alignof_type): Update declaration.
(c_sizeof, c_alignof): Update calls to c_sizeof_or_alignof_type.
* c-pretty-print.c (pp_c_postfix_expression): Remove ARROW_EXPR
case.
(pp_c_unary_expression): Remove SIZEOF_EXPR and ALIGNOF_EXPR
cases.
(pp_c_expression): Remove ARROW_EXPR, SIZEOF_EXPR, and
ALIGNOF_EXPR cases.
2005-04-17 Ian Lance Taylor <ian@airs.com>
* system.h: Poison DONT_ACCESS_GBLS_AFTER_EPILOGUE.
2005-04-17 Richard Henderson <rth@redhat.com>
* config/alpha/alpha.c (va_list_skip_additions): Only define if
TARGET_ABI_OSF.
(TARGET_STDARG_OPTIMIZE_HOOK): Likewise.
(alpha_stdarg_optimize_hook): Likewise. Allow for one more round
of indirection through ssa names while looking for the gpr counter
field.
(alpha_setup_incoming_varargs) <TARGET_ABI_OSF>: Make use of the
saved va_list_gpr_size and va_list_fpr_size.
2005-04-17 Kazu Hirata <kazu@cs.umass.edu>
* tree-vrp.c (compare_values): Check that VAL1 and VAL2 are
both pointers or both integers.
* tree-vrp.c (maybe_add_assert_expr): Don't assert
ASSERT_EXPRs for single-use variable.
* tree-into-ssa.c: Fix a comment typo.
2005-04-17 Richard Sandiford <rsandifo@redhat.com>
* config/mips/iris6.h (DRIVER_SELF_SPECS): Check -march as well as
-mipsN before forcing a default of -mips2.
2005-04-17 Kazu Hirata <kazu@cs.umass.edu>
* predict.h (IS_TAKEN): Remove.
* rtl.h (NOTE_PREDICTION): Likewise.
* modulo-sched.c (CFG_HOOKS): Remove.
* c-parser.c (N_C_TTYPES): Remove.
* tree-flow-inline.h (get_stmt_operands): Remove.
* lambda-code.c, tree-ssa-loop-unswitch.c,
tree-ssa-operands.c, tree-ssa-pre.c, tree-ssa-propagate.c,
tree-ssa-sink.c, tree-ssa.c, tree-tailcall.c,
tree-vect-transform.c, tree-vectorizer.c, tree-vrp.c): Remove
calls to get_stmt_operands.
* doc/tree-ssa.texi: Don't mention get_stmt_operands.
2005-04-17 Richard Henderson <rth@redhat.com>
PR target/20375
* config/alpha/alpha.c (alpha_setup_incoming_varargs): Advance a copy
of CUMULATIVE_ARGS past the last named argument.
(alpha_va_start): Expect pretend_args_size only if strictly less than
6 named arguments.
2005-04-17 Kazu Hirata <kazu@cs.umass.edu>
PR middle-end/21024
* builtins.c (expand_builtin_strcat): Convert the result of
strlen to the right type.
* fold-const.c (fold_binary) <PLUS_EXPR>: Use fold_convert to
avoid creating type mismatches.
<GE_EXPR>: Pass op0 and op1 to fold_build2 to avoid creating
type mismatches.
* c-lex.c (WCHAR_TYPE_SIZE, WCHAR_BYTES): Remove.
2005-04-16 Richard Henderson <rth@redhat.com>
PR target/21051
* builtins.c (expand_builtin) <BUILT_IN_BOOL_COMPARE_AND_SWAP_*>:
Use the mode of boolean_type_node when the user doesn't provide one.
* config/ia64/sync.md (sync_lock_release<I48MODE>): Use operand 1.
2005-04-16 Alexandre Oliva <aoliva@redhat.com>
PR target/20126
* loop.c (loop_givs_rescan): Handle non-replaceable (plus (reg)
(const)).
* tree-scalar-evolution.c (interpret_rhs_modify_expr): Fix typo in
comment.
2005-04-16 Roger Sayle <roger@eyesopen.com>
Steven Bosscher <stevenb@suse.de>
* fold-const.c (fold_binary_to_constant): Delete obsolete comment.
(fold_unary_to_constant): Likewise.
2005-04-16 Kazu Hirata <kazu@cs.umass.edu>
* basic-block.h: Adjust the value of PROP_SCAN_DEAD_STORES,
PROP_ASM_SCAN.
2005-04-16 Gerald Pfeifer <gerald@pfeifer.com>
* doc/install.texi (Specific): Avoid using asterisks in @anchor
names related to target triplets.
Remove i?86-*-esix from platform directory.
Remove powerpc-*-eabiaix from platform directory.
2005-04-16 Joseph S. Myers <joseph@codesourcery.com>
PR middle-end/20491
* config/ia64/ia64.c (rtx_needs_barrier): Recurse instead of
falling through from SUBREG case to REG.
2005-04-15 Roger Sayle <roger@eyesopen.com>
* fold-const.c (fold_relational_hi_lo): Delete function and prototype.
(fold_binary): Update comment mentioning fold_relational_hi_lo.
(fold_binary_to_constant): Simplify using fold_binary.
(fold_unary_to_constant): Likewise, simplify using fold_unary.
2005-04-15 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
* gthr-posix.c (pthread_cancel): Define.
(pthread_mutexattr_init): Likewise.
(pthread_mutexattr_settype): Likewise.
(pthread_mutexattr_destroy): Likewise.
2005-04-15 David S. Miller <davem@davemloft.net>
PR target/20673
* config/sparc/sparc.h (sparc_hard_reg_printed): Mark as GTY(()).
2005-04-15 Kazu Hirata <kazu@cs.umass.edu>
PR tree-optimization/21031
* tree-ssa-forwprop.c (ssa_name_defined_by_comparison_p): New.
(forward_propagate_into_cond_1): Call it. Forward propagate
integer-integer casts into COND_EXPRs.
2005-04-15 Dave Korn <dave.korn@artimi.com>
* gcc.c (default_compilers): Clarify obscure error message when
reading from standard input.
2005-04-15 Kazu Hirata <kazu@cs.umass.edu>
* basic-block.h (PROP_EQUAL_NOTES): Remove.
* flow.c (propagate_one_insn): Don't use PROP_EQUAL_NOTES.
* tree-ssa-alias.c (init_alias_info): Remove a call to
get_stmt_operands.
2005-04-15 Andrew MacLeod <amacleod@redhat.com>
* tree-vect-analyze.c (vect_stmt_relevant_p): Process immediate uses
of non-virtual PHI nodes like we use to.
2005-05-15 Paolo Bonzini <bonzini@gnu.org>
* genattrtab.c (ATTR_EQ_ATTR_P): Remove.
(attr_copy_rtx): Do not use it.
2005-04-15 Andrew Macleod <amacleod@redhat.com>
* doc/tree-ssa.texi: Grammer/abbreviation updates.
2005-04-15 Diego Novillo <dnovillo@redhat.com>
* tree-vect-transform.c (vectorizable_store): Mark necessary
objects in the vectorized store needing renaming. Update the
SSA graph for V_MAY_DEF operands in the original store.
2005-04-14 Daniel Berlin <dberlin@dberlin.org>
* tree-ssa-pre.c (compute_avail): It's okay to have
TREE_INVARIANT's here, and value number the resulting expressions.
(create_expression_by_pieces): Make sure operands that were
min_invariant when we started, stay that way.
2005-04-15 David Edelsohn <edelsohn@gnu.org>
* doc/install.texi (*-ibm-aix*): Add comment about system limits.
2005-04-15 Kazu Hirata <kazu@cs.umass.edu>
PR tree-optimization/20936.
* tree-ssa-ccp.c (visit_assignment): Fix a typo.
2005-04-15 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
* doc/invoke.texi: Fix typos.
* doc/md.texi: Likewise.
* doc/rtl.texi: Likewise.
* doc/sourcebuild.texi: Likewise.
* doc/tm.texi: Likewise.
2005-04-15 Uros Bizjak <uros@kss-loka.si>
PR tree-optimization/21004
* convert.c (convert_to_integer): Convert ceilf, ceill, floorf
and floorl in c99 mode only.
* builtins.c (expand_builtin_int_roundingfn): Assert that
fallback_fndecl is not NULL_TREE.
2005-04-15 Kazu Hirata <kazu@cs.umass.edu>
* cfgrtl.c (purge_all_dead_edge): Remove an unused argument.
* basic-block.h: Update the prototype for
purge_all_dead_edges.
* cfgexpand.c (tree_expand_cfg): Update a call to
purge_all_dead_edges.
* combine.c (combine_instructions): Likewise.
* passes.c (rest_of_handle_old_regalloc, rest_of_handle_cse,
rest_of_handle_cse2, rest_of_handle_gcse,
rest_of_handle_postreload): likewise.
2005-04-15 Alexandre Oliva <aoliva@redhat.com>
PR middle-end/20739
* gimplify.c (gimplify_addr_expr): Compensate for removal of
e.g. cv-qualification conversions.
2005-04-14 Mike Stump <mrs@apple.com>
* config/darwin-c.c (framework_construct_pathname): We must
find all headers of a framework in the first instance of it
found in the seach path.
2005-04-14 Kazu Hirata <kazu@cs.umass.edu>
PR tree-optimization/21021
* tree-vrp.c (compare_values): Work around a bug in the front
end that produces a comparison of mismatched types.
2004-04-14 Richard Henderson <rth@redhat.com>
* config/ia64/ia64.h (enum fetchop_code): Remove.
(enum ia64_builtins): Move ...
* config/ia64/ia64.c (enum ia64_builtins): ... here. Remove all
members except BSP and FLUSHRS.
(ia64_init_builtins): Remove __sync builtins.
(ia64_expand_builtin): Likewise.
(ia64_expand_fetch_and_op, ia64_expand_op_and_fetch): Remove.
(ia64_expand_compare_and_swap, ia64_expand_lock_test_and_set): Remove.
(ia64_expand_lock_release): Remove.
* config/ia64/ia64.md (mf): Move to sync.md.
(mf_internal, fetchadd_acq_si, fetchadd_acq_di, cmpxchg_acq_si,
cmpxchg_acq_di, xchgsi, xchgdi): Likewise.
* config/ia64/sync.md: New file.
(memory_barrier): Rename from mf.
(fetchadd_acq_<I48MODE>): Macroize from _si/_di patterns.
(cmpxchg_acq_<I48MODE>): Likewise.
(sync_lock_test_and_set<I48MODE>): Likewise.
* config/ia64/ia64intrin.h: Define nothing for C; limit #defines
to c++. Remove __sync* declarations. s/_si/_4/. s/_di/_8/.
2004-04-14 Richard Henderson <rth@redhat.com>
* config/i386/i386.c (x86_cmpxchg, x86_xadd): New.
(ix86_compare_emitted): New.
(ix86_expand_compare): Use ix86_compare_emitted if set.
(ix86_expand_setcc): Only emit REG_EQUAL if both ix86_compare_op0
and ix86_compare_op0 are set.
* config/i386/i386.h (x86_cmpxchg, x86_xadd): Declare.
(TARGET_CMPXCHG, TARGET_XADD): New.
(ix86_compare_emitted): Declare.
* config/i386/i386.md: Include sync.md
(UNSPECV_CMPXCHG_1, UNSPECV_CMPXCHG_2): New.
(UNSPECV_XCHG, UNSPECV_LOCK): New.
* config/i386/sync.md: New file.
2004-04-14 Richard Henderson <rth@redhat.com>
PR middle-end/14311
* builtin-types.def (BT_BOOL, BT_VOLATILE_PTR, BT_I1, BT_I2,
BT_I4, BT_I8, BT_FN_VOID_VPTR, BT_FN_I1_VPTR_I1, BT_FN_I2_VPTR_I2,
BT_FN_I4_VPTR_I4, BT_FN_I8_VPTR_I8, BT_FN_BOOL_VPTR_I1_I1,
BT_FN_BOOL_VPTR_I2_I2, BT_FN_BOOL_VPTR_I4_I4, BT_FN_BOOL_VPTR_I8_I8,
BT_FN_I1_VPTR_I1_I1, BT_FN_I2_VPTR_I2_I2, BT_FN_I4_VPTR_I4_I4,
BT_FN_I8_VPTR_I8_I8): New.
* builtins.def (DEF_SYNC_BUILTIN): New.
(BUILT_IN_FETCH_AND_ADD_N, BUILT_IN_FETCH_AND_ADD_1,
BUILT_IN_FETCH_AND_ADD_2, BUILT_IN_FETCH_AND_ADD_4,
BUILT_IN_FETCH_AND_ADD_8, BUILT_IN_FETCH_AND_SUB_N,
BUILT_IN_FETCH_AND_SUB_1, BUILT_IN_FETCH_AND_SUB_2,
BUILT_IN_FETCH_AND_SUB_4, BUILT_IN_FETCH_AND_SUB_8,
BUILT_IN_FETCH_AND_OR_N, BUILT_IN_FETCH_AND_OR_1,
BUILT_IN_FETCH_AND_OR_2, BUILT_IN_FETCH_AND_OR_4,
BUILT_IN_FETCH_AND_OR_8, BUILT_IN_FETCH_AND_AND_N,
BUILT_IN_FETCH_AND_AND_1, BUILT_IN_FETCH_AND_AND_2,
BUILT_IN_FETCH_AND_AND_4, BUILT_IN_FETCH_AND_AND_8,
BUILT_IN_FETCH_AND_XOR_N, BUILT_IN_FETCH_AND_XOR_1,
BUILT_IN_FETCH_AND_XOR_2, BUILT_IN_FETCH_AND_XOR_4,
BUILT_IN_FETCH_AND_XOR_8, BUILT_IN_FETCH_AND_NAND_N,
BUILT_IN_FETCH_AND_NAND_1, BUILT_IN_FETCH_AND_NAND_2,
BUILT_IN_FETCH_AND_NAND_4, BUILT_IN_FETCH_AND_NAND_8,
BUILT_IN_ADD_AND_FETCH_N, BUILT_IN_ADD_AND_FETCH_1,
BUILT_IN_ADD_AND_FETCH_2, BUILT_IN_ADD_AND_FETCH_4,
BUILT_IN_ADD_AND_FETCH_8, BUILT_IN_SUB_AND_FETCH_N,
BUILT_IN_SUB_AND_FETCH_1, BUILT_IN_SUB_AND_FETCH_2,
BUILT_IN_SUB_AND_FETCH_4, BUILT_IN_SUB_AND_FETCH_8,
BUILT_IN_OR_AND_FETCH_N, BUILT_IN_OR_AND_FETCH_1,
BUILT_IN_OR_AND_FETCH_2, BUILT_IN_OR_AND_FETCH_4,
BUILT_IN_OR_AND_FETCH_8, BUILT_IN_AND_AND_FETCH_N,
BUILT_IN_AND_AND_FETCH_1, BUILT_IN_AND_AND_FETCH_2,
BUILT_IN_AND_AND_FETCH_4, BUILT_IN_AND_AND_FETCH_8,
BUILT_IN_XOR_AND_FETCH_N, BUILT_IN_XOR_AND_FETCH_1,
BUILT_IN_XOR_AND_FETCH_2, BUILT_IN_XOR_AND_FETCH_4,
BUILT_IN_XOR_AND_FETCH_8, BUILT_IN_NAND_AND_FETCH_N,
BUILT_IN_NAND_AND_FETCH_1, BUILT_IN_NAND_AND_FETCH_2,
BUILT_IN_NAND_AND_FETCH_4, BUILT_IN_NAND_AND_FETCH_8,
BUILT_IN_BOOL_COMPARE_AND_SWAP_N, BUILT_IN_BOOL_COMPARE_AND_SWAP_1,
BUILT_IN_BOOL_COMPARE_AND_SWAP_2, BUILT_IN_BOOL_COMPARE_AND_SWAP_4,
BUILT_IN_BOOL_COMPARE_AND_SWAP_8, BUILT_IN_VAL_COMPARE_AND_SWAP_N,
BUILT_IN_VAL_COMPARE_AND_SWAP_1, BUILT_IN_VAL_COMPARE_AND_SWAP_2,
BUILT_IN_VAL_COMPARE_AND_SWAP_4, BUILT_IN_VAL_COMPARE_AND_SWAP_8,
BUILT_IN_LOCK_TEST_AND_SET_N, BUILT_IN_LOCK_TEST_AND_SET_1,
BUILT_IN_LOCK_TEST_AND_SET_2, BUILT_IN_LOCK_TEST_AND_SET_4,
BUILT_IN_LOCK_TEST_AND_SET_8, BUILT_IN_LOCK_RELEASE_N,
BUILT_IN_LOCK_RELEASE_1, BUILT_IN_LOCK_RELEASE_2,
BUILT_IN_LOCK_RELEASE_4, BUILT_IN_LOCK_RELEASE_8,
BUILT_IN_SYNCHRONIZE: New.
* builtins.c (called_as_built_in): Rewrite from CALLED_AS_BUILT_IN
as a function. Accept __sync_ as a prefix as well.
(expand_builtin_sync_operation, expand_builtin_compare_and_swap,
expand_builtin_lock_test_and_set, expand_builtin_synchronize,
expand_builtin_lock_release): New.
(expand_builtin): Call them.
* c-common.c (DEF_BUILTIN): Don't require __builtin_ prefix if
neither BOTH_P nor FALLBACK_P are defined.
(builtin_type_for_size): New.
(sync_resolve_size, sync_resolve_params, sync_resolve_return): New.
(resolve_overloaded_builtin): New.
* c-common.h (resolve_overloaded_builtin): Declare.
(builtin_type_for_size): Declare.
* c-typeck.c (build_function_call): Invoke resolve_overloaded_builtin.
* expr.c (sync_add_optab, sync_sub_optab, sync_ior_optab,
sync_and_optab, sync_xor_optab, sync_nand_optab, sync_old_add_optab,
sync_old_sub_optab, sync_old_ior_optab, sync_old_and_optab,
sync_old_xor_optab, sync_old_nand_optab, sync_new_add_optab,
sync_new_sub_optab, sync_new_ior_optab, sync_new_and_optab,
sync_new_xor_optab, sync_new_nand_optab, sync_compare_and_swap,
sync_compare_and_swap_cc, sync_lock_test_and_set,
sync_lock_release): New.
* optabs.h: Declare them.
* expr.h (expand_val_compare_and_swap, expand_bool_compare_and_swap,
expand_sync_operation, expand_sync_fetch_operation,
expand_sync_lock_test_and_set): Declare.
* genopinit.c (optabs): Add sync optabs.
* optabs.c (init_optabs): Initialize sync optabs.
(expand_val_compare_and_swap_1, expand_val_compare_and_swap,
expand_bool_compare_and_swap, expand_compare_and_swap_loop,
expand_sync_operation, expand_sync_fetch_operation,
expand_sync_lock_test_and_set): New.
* doc/extend.texi (Atomic Builtins): New section
* doc/md.texi (Standard Names): Add sync patterns.
2005-04-14 Alexandre Oliva <aoliva@redhat.com>
* tree-eh.c (lower_try_finally_copy): Generate new code in
response to goto_queue entries as if the queue was sorted by
index, not pointers.
(lower_try_finally_switch): Likewise.
2005-04-14 Richard Henderson <rth@redhat.com>
* config/i386/i386.c (ix86_expand_sse_cmp): Split out from ...
(ix86_expand_sse_movcc): ... here. Take cmp as a pre-computed
register.
(ix86_expand_fp_movcc): Update to match.
(ix86_expand_fp_vcond, ix86_expand_int_vcond): New.
* config/i386/i386-protos.h: Update.
* config/i386/sse.md (vcondv4sf, vcondv2df): New.
(vcond<SSEMODE124>, vcondu<SSEMODE12>): New.
2005-04-14 Joseph S. Myers <joseph@codesourcery.com>
* doc/cpp.texi, doc/install.texi: Change references to GCC 3.5 to
refer to 4.0.
2005-04-14 Julian Brown <julian@codesourcery.com>
* Revert elfos.h part of my patch from 2005-04-13 for causing libstdc++
link failures on ppc64 Linux.
2005-04-14 Andreas Krebbel <krebbel1@de.ibm.com>
* config.gcc: Set cpu_type for s390.
2005-04-14 Daniel Berlin <dberlin@dberlin.org>
Fix PR tree-optimization/20963
* tree-ssa-pre.c (compute_avail): Remove special case for
TREE_INVARIANT.
(create_expression_by_pieces): Add value numbers for forced out
statements.
2005-04-14 Hans-Peter Nilsson <hp@axis.com>
* config/cris/cris.md: Replace references to (reg:SI 16) with
(reg:SI CRIS_SRP_REGNUM).
2005-04-14 Kazu Hirata <kazu@cs.umass.edu>
PR tree-optimization/20657
* tree-vrp.c (extract_range_from_expr): Notice INTEGER_CST to
create an appropriate range from it.
2005-04-14 Uros Bizjak <uros@kss-loka.si>
* reg-stack.c (subst_stack_regs_pat): Handle <UNSPEC_FIST_FLOOR> and
<UNSPEC_FIST_CEIL> case.
* config/i386/i386.md (UNSPEC_FIST_FLOOR, UNSPEC_FIST_CEIL): New.
(*fist<mode>2_floor_1, fistdi2_floor, fistdi2_floor_with_temp)
(fist<mode>2_floor, fist<mode>2_floor_with_temp): New isns patterns
to implement lfloor and llfloor built-ins as x87 intrinsic function.
(fistdi2_floor, fist<mode>2_floor splitters): New splitters.
(lfloor<mode>2): New expanders.
(*fist<mode>2_ceil_1, fistdi2_ceil, fistdi2_ceil_with_temp)
(fist<mode>2_ceil, fist<mode>2_ceil_with_temp): New isns patterns
to implement lceil and llceil built-ins as x87 intrinsic function.
(fistdi2_ceil, fist<mode>2_ceil splitters): New splitters.
(lceil<mode>2): New expanders.
2005-04-14 Uros Bizjak <uros@kss-loka.si>
* convert.c (convert_to_integer): Convert (long int)trunc{,f,l},
and (long long int)ceil{,f,l} into FIX_TRUNC_EXPR.
2005-04-14 Ulrich Weigand <uweigand@de.ibm.com>
PR target/20927
* config/s390/s390-modes.def: Define TFmode.
2005-04-13 Richard Sandiford <rsandifo@redhat.com>
* config/mips/mips.h (ASM_OUTPUT_CASE_LABEL): Delete.
(JUMP_TABLES_IN_TEXT_SECTION): Define.
* config/mips/mips.c (mips16_insn_length): Remove reference to
JUMP_TABLES_IN_TEXT_SECTION.
2005-04-13 Fariborz Jahanian <fjahanian@apple.com>
* simplify-rtx.c (simplify_binary_operation_1): Return
scalar or vector of constant 0, depending on the xor's
mode.
2005-04-13 Dale Johannesen <dalej@apple.com>
* objc/Make-lang.in (objc-lang.o): Depend on tree-gimple.h.
(objc-act.o): Ditto.
* objc/objc-act.c (objc_gimplify_expr): New.
(objc_get_callee_fndecl): New.
* objc/objc-act.h: Include tree-gimple.h. Declare new functions.
* objc/objc-lang.c (LANG_HOOKS_GIMPLIFY_EXPR): Define.
(LANG_HOOKS_GET_CALLEE_FNDECL): Define.
2005-04-13 Devang Patel <dpatel@apple.com>
* tree-if-conv.c (tree_if_convert_cond_expr): Do not create extra
temp variables.
2005-04-13 Hans-Peter Nilsson <hp@axis.com>
CRIS prologue as RTL.
* config/cris/cris-protos.h (cris_emit_movem_store)
(cris_expand_prologue): Prototype.
* config/cris/cris.c (struct machine_function): New member
stdarg_regs.
(cfa_label_num, cris_target_asm_function_prologue): Remove.
(TARGET_ASM_FUNCTION_PROLOGUE): Don't override.
(cris_general_operand_or_gotless_symbol): Accept CRIS_UNSPEC_GOT.
(cris_load_multiple_op, cris_return_address_on_stack)
(cris_return_address_on_stack_for_return): ISO-Cify.
(cris_store_multiple_op): New predicate function.
(cris_expand_prologue, cris_emit_movem_store): New functions.
(cris_print_operand) <case 'O'>: Handle modifications other than
post-increment.
(cris_symbol, cris_got_symbol): Return 0 for CRIS_UNSPEC_GOT.
(cris_gotless_symbol): Return 1 for CRIS_UNSPEC_GOT.
(cris_gen_movem_load): Rearrange slightly to make local variable
src a parameter, removing osrc.
(cris_setup_incoming_varargs): Set machine_function member
stdarg_regs to correspond to the number of registers that need to
be saved.
* config/cris/cris.h (EXTRA_CONSTRAINT_S): Accept
CRIS_UNSPEC_GOT.
(PREDICATE_CODES): Add cris_store_multiple_op. Make
cris_general_operand_or_gotless_symbol accept UNSPEC.
* config/cris/cris.md (CRIS_UNSPEC_GOT): New constant.
("*movsi_internal") <alternative 8>: Handle CRIS_UNSPEC_GOT.
("*cris_store_multiple"): New pattern. Tweak common comment above
this and "*cris_load_multiple".
("prologue"): New define_expand.
* config/cris/cris.md ("epilogue"): Conditionalize on
TARGET_PROLOGUE_EPILOGUE.
2005-04-13 Steve Ellcey <sje@cup.hp.com>
PR target/20924
* config/ia64/ia64.md (divsf3_internal_lat): Generate frcpa with
fpsr 0 instead of fpsr 1.
(divsf3_internal_thr): Ditto.
(divdf3_internal_lat): Ditto.
(divdf3_internal_thr): Ditto.
(divxf3_internal_lat): Ditto.
(divxf3_internal_thr): Ditto.
2005-04-13 Kazu Hirata <kazu@cs.umass.edu>
PR tree-optimization/20913
* tree-ssa-copy.c (copy_prop_visit_cond_stmt): Fold COND_EXPR.
PR tree-optimization/20702
* tree-vrp.c (maybe_add_assert_expr): Recurse into
dominator children that haven't been walked into.
2005-04-13 Julian Brown <julian@codesourcery.com>
* config/elfos.h (MAKE_DECL_ONE_ONLY): Redefined to stop DECL_WEAK from
being used for symbols with vague linkage when HAVE_GAS_COMDAT_GROUP
is true.
2005-04-13 Kazu Hirata <kazu@cs.umass.edu>
* basic-block.h, tree-ssa-uncprop.c, varasm.c,
config/i386/sse.md: Fix comment typos.
* genattrtab.c (NULL_ATTR): Remove.
* ifcvt.c (NULL_EDGE): Likewise.
* rtl.h (RTX_EXPR_FIRST, RTX_EXPR_LAST): Remove.
* rtl.h (NOTE_PREDICTION_ALG, NOTE_PREDICTION_FLAGS,
NOTE_PREDICT): Remove.
2005-04-13 Eric Botcazou <ebotcazou@libertysurf.fr>
* configure.ac (gcc_AC_CHECK_DECLS): Add vsnprintf.
* configure: Regenerate.
* config.in: Likewise.
* system.h: Declare vsnprintf if not already declared.
2005-04-13 Eric Botcazou <ebotcazou@libertysurf.fr>
* optc-gen.awk: Handle stand-alone Mask records.
* opth-gen.awk: Likewise.
* doc/options.texi (Option file format): Document them.
* config.gcc (sparc-*-netbsdelf*, sparc-*-linux*, sparc64-*-freebsd*,
sparc64-*-linux*, sparc64-*-netbsd*): Add long-double-switch.opt.
(sparc64-*-openbsd*, sparc64-*-elf*): Add little-endian.opt.
* config/sparc/sparc.h (MASK_FPU, MASK_UNALIGNED_DOUBLES,
MASK_V8, MASK_SPARCLITE, MASK_SPARCLET, MASK_V9,
MASK_DEPRECATED_V8_INSNS, MASK_IMPURE_TEXT, MASK_APP_REGS,
MASK_HARD_QUAD, MASK_LITTLE_ENDIAN, MASK_PTR64, MASK_64BIT,
MASK_STACK_BIAS, MASK_FPU_SET, MASK_VIS, MASK_V8PLUS,
MASK_FASTER_STRUCTS, MASK_LONG_DOUBLE_128): Delete.
(TARGET_FPU, TARGET_UNALIGNED_DOUBLES, TARGET_V8, TARGET_SPARCLITE,
TARGET_SPARCLET, TARGET_V9, TARGET_DEPRECATED_V8_INSNS,
TARGET_IMPURE_TEXT, TARGET_APP_REGS, MASK_HARD_QUAD,
TARGET_LITTLE_ENDIAN, TARGET_PTR64, TARGET_64BIT, MASK_STACK_BIAS,
TARGET_FPU_SET, TARGET_VIS, TARGET_V8PLUS, TARGET_FASTER_STRUCTS,
TARGET_LONG_DOUBLE_128): Likewise.
(TARGET_SWITCHES, SUBTARGET_SWITCHES): Likewise.
(TARGET_OPTIONS, SUBTARGET_OPTIONS): Likewise.
* config/sparc/freebsd.h (SUBTARGET_SWITCHES): Likewise.
* config/sparc/linux.h (SUBTARGET_SWITCHES): Likewise.
* config/sparc/linux64.h (SUBTARGET_SWITCHES): Likewise.
* config/sparc/netbsd-elf.h (SUBTARGET_SWITCHES): Likewise.
* config/sparc/sp64-elf.h (SUBTARGET_SWITCHES): Likewise.
* config/sparc/sparc.c (fpu_option_set): New global.
(sparc_handle_option): New function.
(sparc_override_options): Test fpu_option_set.
(TARGET_DEFAULT_TARGET_FLAGS): Set to TARGET_DEFAULT.
(TARGET_HANDLE_OPTION): Set to sparc_handle_option.
* config/sparc/sparc.opt: New file.
* config/sparc/little-endian.opt: Likewise.
* config/sparc/long-double-switch.opt: Likewise.
2005-04-13 Bernd Schmidt <bernd.schmidt@analog.com>
* config/bfin/bfin.c (bfin_lib_id_given): New static variable.
(bfin_handle_options): Set it if -mshared-library-id= is seen.
* config/bfin/bfin.opt (mshared-library-id=): Lose
Var(bfin_lib_id_given).
2005-04-13 Matt Thomas <matt@3am-software.com>
* config/rs6000/sysv4.h (NO_IMPLICIT_EXTERN_C): undefine before
defining.
2005-04-13 Kazu Hirata <kazu@cs.umass.edu>
* rtl.h (CLEAR_RTX_FLAGS): Remove.
* cgraphunit.c (INSNS_PER_CALL): Remove.
* tree-ssa-forwprop.c (vars,
record_single_argument_cond_exprs,
substitute_single_use_vars): Remove.
(forward_propagate_into_cond_1, forward_propagate_into_cond):
New.
(tree_ssa_forward_propagate_single_use_vars): Call
forward_propagate_into_cond for each COND_EXPR.
* tree-inline.c (INSNS_PER_STMT): Remove.
2005-04-12 Richard Henderson <rth@redhat.com>
* config/i386/i386.c (ix86_prepare_sse_fp_compare_args): Split ...
(ix86_expand_sse_fp_minmax): ... from ...
(ix86_expand_fp_movcc): ... here.
(ix86_expand_sse_movcc): Rewrite from ix86_split_sse_movcc.
* config/i386/i386-protos.h: Update.
* config/i386/i386.md (UNSPEC_IEEE_MIN, UNSPEC_IEEE_MAX): New.
(sse_setccsf, sse_setccdf): Allow before reload.
(movsfcc_1_sse_min, movsfcc_1_sse_max, movsfcc_1_sse): Remove.
(movdfcc_1_sse_min, movdfcc_1_sse_max, movdfcc_1_sse): Remove.
(ieee_sminsf3, ieee_smaxsf3, ieee_smindf3, ieee_smaxdf3): New.
* config/i386/sse.md (andsf3, nandsf3, iorsf3, xorsf3): New.
(anddf3, nanddf3, iordf3, xordf3): New.
2005-04-12 Jeff Law <law@redhat.com>
* Makefile.in (OBJS-common): Add tree-ssa-uncprop.o.
(tree-ssa-uncprop.o): Add dependencies.
* tree-cfg.c (remove_useless_stmts_bb, remove_useless_stmts): Remove.
* tree-flow.h (remove_useless_stmts): Remove prototype.
* tree-outof-ssa.c (rewrite_out_of_ssa): Remove call to
remove_useless_stmts.
* timevar.def (TV_TREE_SSA_UNCPROP): New timevar.
* tree-optimize.c (init_tree_optimization_passes): Add uncprop pass.
* tree-pass.h (pass_uncprop): Declare.
* tree-ssa-uncprop.c: New file.
2005-04-12 James E. Wilson <wilson@specifixinc.com>
PR target/20670
* unwind-ia64.c (uw_intall_context): Add missing load of r27.
2005-04-12 Caroline Tice <ctice@apple.com>
Temporary fix for partitioning problems.
* passes.c (rest_of_handle_final): Remove code that
frees unlikely_text_section_name,
* varasm.c (assemble_start_function): Test for partitioning
flag before writing out section labels.
(assemble_end_function): Test for partitioning flag before
writing out section labels.
2005-04-12 Steven Bosscher <stevenb@suse.de>
Stuart Hastings <stuart@apple.com>
Jan Hubicka <jh@suse.cz>
* Makefile.in: Add function.h to BASIC_BLOCK_H. Remove all
references to gt-tree-cfg.h.
* basic-block.h (struct basic_block_def): Don't skip rbi
for garbage collection.
(struct reorder_block_def): Make GTY-able.
(struct control_flow_graph): New structure.
(n_edges, n_basic_blocks, last_basic_block, basic_block_info,
BASIC_BLOCK, EXIT_BLOCK_PTR, ENTRY_BLOCK_PTR): No longer vars,
but instead defines to the control_flow_graph for cfun.
(label_to_block_map): New define, points to the label map of
the control_flow_graph for cfun.
(n_edges_for_function, n_basic_blocks_for_function,
last_basic_block_for_function, basic_block_info_for_function,
EXIT_BLOCK_PTR_FOR_FUNCTION, ENTRY_BLOCK_PTR_FOR_FUNCTION,
basic_block_info_for_function, label_to_block_map_for_function):
Counterparts for the above, taking a struct function as an extra
argument.
(alloc_rbi_pool, free_rbi_pool): Remove prototypes.
* cfg.c: (n_edges, n_basic_blocks, last_basic_block,
basic_block_info, ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Remove.
(alloc_rbi_pool, free_rbi_pool): Remove.
(initialize_bb_rbi): Use ggc_alloc_cleared instead of pool_alloc.
* cfglayout.c: (cfg_layout_initialize): Don't allocate the rbi pool
here...
(cfg_layout_finalize) ... and don't free it here.
* cfgrtl.c (cfg_layout_delete_block): Zero out rbi so it gets
garbage collected.
* flow.c (free_basic_block_vars): Set label_to_block_map and
n_edges to zero too.
* function.h (struct function): Add cfg field.
* function.c (allocate_struct_function): Allocate the cfg.
* tree-cfg.c (label_to_block_map): Remove.
(build_tree_cfg): Don't allocate the rbi pool here...
(delete_tree_cfg_annotations): ...and don't free it here.
Also don't nullify label_to_block_map for cfun.
2005-04-12 Caroline Tice <ctice@apple.com>
* bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
Revert my patch from April 9.
(fix_edges_for_rarely_executed_code): Revert my patch from April 9.
(reorder_basic_blocks): Revert my patch from April 9.
(insert_section_boundary_note): Revert my patch from April 9.
* dbxout.c (dbxout_function_end): Revert my patch from April 9.
* dwarf2out.c (COLD_TEXT_SECTION_LABEL): Revert my patch from April 9.
(COLD_END_LABEL): Revert my patch from April 9.
(cold_text_section_label): Revert my patch from April 9.
(cold_end_label): Revert my patch from April 9.
(dwarf2out_switch_text_section): Revert my patch from April 9.
(output_aranges): Revert my patch from April 9.
(output_ranges): Revert my patch from April 9.
(output_line_info): Revert my patch from April 9.
(add_location_or_const_value_attribute): Revert my patch from April 9.
(dwarf2out_var_location): Revert my patch from April 9.
(dwarf2out_init): Revert my patch from April 9.
(dwarf2out_finish): Revert my patch from April 9.
* function.h (struct function): Revert my patch from April 9.
* opts.c (decode_options): Revert my patch from April 9.
* output.h (unlikely_section_label, hot_section_label,
hot_section_end_label, cold_section_end_label,
unlikely_text_section_name): Revert my patch from April 9.
* passes.c (rest_of_handle_final): Revert my patch from April 9.
* varasm.c (unlikely_section_label, hot_section_label,
hot_section_end_label, cold_section_end_label,
unlikely_text_section_name): Revert my patch from April 9.
(initialize_cold_section_name): Revert my patch from April 9.
(unlikely_text_section): Revert my patch from April 9.
(in_unlikely_text_section): Revert my patch from April 9.
(named_section): Revert my patch from April 9.
(function_section): Revert my patch from April 9.
(current_function_section): Revert my patch from April 9.
(assemble_start_function): Revert my patch from April 9.
(assemble_end_function): Revert my patch from April 9.
(default_section_type_flags_1): Revert my patch from April 9.
2005-04-12 Eric Botcazou <ebotcazou@libertysurf.fr>
* config/sparc/sparc.h (APPLY_RESULT_SIZE): Set to 24 in 64-bit mode.
* config/sparc/sparc.md (untyped_call): Save the registers manually.
* config/sparc/sparc.c (legitimate_address_p): Use TARGET_ARCH32.
2005-04-12 Ulrich Weigand <uweigand@de.ibm.com>
PR middle-end/20917
* config/s390/s390.md ("*set_tp"): Use SET in pattern.
("set_tp_64", "set_tp_31"): Adapt expanded pattern.
2004-04-12 Richard Henderson <rth@redhat.com>
* config/i386/i386.md (UNSPEC_FIX, UNSPEC_MOVA, UNSPEC_SHUFFLE,
UNSPEC_PSHUFLW, UNSPEC_PSHUFHW, UNSPEC_ADDSUB, UNSPEC_HADD,
UNSPEC_HSUB, UNSPEC_MOVSHDUP, UNSPEC_MOVSLDUP, UNSPEC_MOVDDUP): Remove.
(UNSPEC_*, UNSPECV_*): Renumber.
2005-04-12 Frank Ch. Eigler <fche@redhat.com>
PR mudflap/19266
From Richard Henderson <rth@redhat.com>:
* tree-mudflap.c (mf_build_check_statement_for): Correct block
splitting logic.
2005-04-12 Dorit Naishlos <dorit@il.ibm.com>
* tree-cfg.c (tree_verify_flow_info): Use LABEL_EXPR_LABEL.
2005-04-12 Bernd Schmidt <bernd.schmidt@analog.com>
* config/bfin/bfin.c (bfin_library_id_string): Remove.
(bfin_library_id): New variable.
(bfin_expand_prologue): Use bfin_library_id and bfin_lib_id_given
instead of bfin_library_id_string.
(bfin_handle_option): New function.
(override_options): Remove most code to deal with shared library IDs,
just check they aren't used without -mid-shared-library.
(TARGET_HANDLE_OPTION): Define.
* config/bfin/bfin.h (TARGET_OPTIONS): Delete macro.
* config/bfin/bfin.opt (mshared-library-id=): New.
2005-04-12 Kazu Hirata <kazu@cs.umass.edu>
* tree-vect-transform.c: Fix comment typos.
2005-04-12 Mostafa Hagog <mustafa@il.ibm.com>
* postreload-gcse.c (eliminate_partially_redundant_load): Don't
split critical edges when not possible/profitable.
2005-04-12 Richard Sandiford <rsandifo@redhat.com>
* config/ns32k/ns32k.h (target_flags, MASK_32081, MASK_RTD)
(MASK_REGPARM, MASK_32532, MASK_32332, MASK_NO_SB, MASK_NO_BITFIELD)
(MASK_HIMEM, MASK_32381, MASK_MULT_ADD, MASK_SRC, MASK_IEEE_COMPARE)
(TARGET_32081, TARGET_32381, TARGET_MULT_ADD, TARGET_RTD)
(TARGET_REGPARM, TARGET_32532, TARGET_32332, TARGET_SB, TARGET_HIMEM)
(TARGET_BITFIELD, TARGET_IEEE_COMPARE, TARGET_SWITCHES): Delete.
(OVERRIDE_OPTIONS): Clear MASK_SB instead of setting MASK_NO_SB.
* config/ns32k/netbsd.h (TARGET_DEFAULT): Remove MASK_NO_SB and
MASK_NO_BITFIELD.
* config/ns32k/ns32k.c (ns32k_handle_option): New function.
(TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
* config/ns32k/ns32k.opt: New file.
2005-04-12 Richard Sandiford <rsandifo@redhat.com>
* config.gcc (m68k-*-linux*): Add m68k/ieee.opt to $extra_options.
* config/m68k/m68k.h (target_flags, MASK_68020, TARGET_68020)
(MASK_68030, TARGET_68030, MASK_68040, TARGET_68040, MASK_68040_ONLY)
(TARGET_68040_ONLY, MASK_68060, TARGET_68060, MASK_5200, TARGET_5200)
(MASK_CFV3, TARGET_CFV3, MASK_CFV4, TARGET_CFV4, MASK_528x)
(TARGET_528x, MASK_CF_HWDIV, TARGET_CF_HWDIV, MASK_68881, TARGET_68881)
(MASK_BITFIELD, TARGET_BITFIELD, MASK_SHORT, TARGET_SHORT)
(MASK_ALIGN_INT, TARGET_ALIGN_INT, MASK_PCREL, TARGET_PCREL)
(MASK_NO_STRICT_ALIGNMENT, TARGET_STRICT_ALIGNMENT, MASK_RTD)
(TARGET_RTD, MASK_SEP_DATA, TARGET_SEP_DATA, MASK_ID_SHARED_LIBRARY)
(TARGET_ID_SHARED_LIBRARY, MASK_ALL_CF_BITS, TARGET_SWITCHES)
(TARGET_OPTIONS, SUBTARGET_SWITCHES, SUBTARGET_OPTIONS): Delete.
(MASK_COLDFIRE): Formatting fixes.
(TARGET_COLDFIRE): Turn into a boolean value for consistency.
* config/m68k/linux.h (SUBTARGET_SWITCHES): Delete.
* config/m68k/m68k.c (m68k_library_id_string): Initialize to
"_current_shared_library_a5_offset_".
(TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
(MASK_ALL_CPU_BITS): New macro.
(m68k_handle_option): New function.
(override_options): Remove handling of m68k_library_id_string.
* config/m68k/m68k.opt: New file.
* config/m68k/ieee.opt: New file.
2005-04-11 Mark Mitchell <mark@codesourcery.com>
* target-def.h (TARGET_CXX_EXPORT_CLASS_DATA): Remove.
(TARGET_CXX_DETERMINE_CLASS_VISIBILITY): New macro.
(TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): Likewise.
(TARGET_CXX): Adjust accordingly.
* target.h (struct gcc_target): Remove epxort_class_data. Add
determine_class_data_visibility and class_data_always_comdat.
* doc/tm.texi (TARGET_CXX_EXPORT_CLASS_DATA): Remove.
(TARGET_CXX_DETERMINE_CLASS_DATA_VISIBILITY): Document.
(TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): Likewise.
* config/arm/arm.c (arm_cxx_export_class_data): Remove.
(arm_cxx_determine_class_data_visibility): New.
(arm_cxx_class_data_always_comdat): Likewise.
(TARGET_CXX_EXPORT_CLASS_DATA): Remove.
(TARGET_CXX_DETERMINE_CLASS_DATA_VISIBILITY): Define.
(TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): Likewise.
* config/arm/arm.h (TARGET_ARM_DYNAMIC_VAGUE_LINKAGE_P): Define.
* config/arm/symbian.h (TARGET_ARM_DYNAMIC_VAGUE_LINKAGE_P):
Define.
2005-04-11 Devang Patel <dpatel@apple.com>
* tree-data-ref.c (build_classic_dist_vector,
compute_subscript_distance): Make externally visible.
* tree-data-ref.h (build_classic_dist_vector,
compute_subscript_distance): Same.
* tree-vect-analyze.c (vect_analyze_data_ref_dependence):
Check distance vector against vectorization factor.
(vect_analyze_loop): Determine vectorizaion factor before
analyzing data dependences.
* tree-vectorizer.c (loops_num): Make it externally visible and
rename ...
* tree-vectorizer.c (vect_loops_num): ... new name.
* tree-vectorizer.h (vect_loops_num): New.
2005-04-11 Devang Patel <dpatel@apple.com>
* tree-vect-analyze.c (vect_analyze_operations): Check
vectorizable codition.
* tree-vect-transform.c (vect_is_simple_cond): New function.
(vectorizable_condition): New function.
(vect_transform_stmt): Handle condition_vec_info_type.
* tree-vectorizer.h (enum stmt_vec_info_type): Add
condition_vec_info_type.
(vectorizable_condition): New.
2005-04-11 Geoffrey Keating <geoffk@apple.com>
* config/i386/i386.h (TARGET_FPMATH_DEFAULT): New.
* config/i386/darwin.h (TARGET_FPMATH_DEFAULT): New.
* config/i386/i386.c (override_options): Use TARGET_FPMATH_DEFAULT.
* config/i386/darwin.h (ASM_SPEC): Use -arch i386 not -arch i686.
(SUBTARGET_EXTRA_SPECS): Always 'i386'.
* dwarf2out.c (output_line_info): Don't try to dereference
a NULL current_function_decl.
* config/t-slibgcc-darwin: Don't put shared libraries in
directories other than $(slibdir).
* config/rs6000/darwin.h: Find -m64 libgcc under the name the
OS uses for it.
2005-04-11 Diego Novillo <dnovillo@redhat.com>
PR tree-optimization/20933
* tree-ssa-alias.c (compute_flow_insensitive_aliasing): Move
logic to reject aliases between read-only and writable
variables ...
(may_alias_p): ... here.
(get_tmt_for): Do not associate read-only tags to pointers
whose pointed-to type is not read-only.
* tree-ssa.c (verify_ssa): Check that memory stores have at
least one V_MAY_DEF or V_MUST_DEF.
2005-04-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
PR/17092
* configure.ac (gcc_UNLOCKED_FUNCS): New.
(AC_CHECK_FUNCS, AC_CHECK_DECLS): Check for gcc_UNLOCKED_FUNCS.
* system.h (putchar, getc, getchar, clearerr, feof, fileno,
fflush, fgetc, fgets, ferror, fread): Redefine to the associated
_unlocked function.
(fwrite_unlocked): Fix prototype.
* configure, config.in: Regenerate.
2005-04-11 David Edelsohn <edelsohn@gnu.org>
* tree-ssa-loop-im.c: Include real.h.
(determine_invariantness_stmt): If real division divisor is
invariant and flag_unsafe_math_optimizations enabled, generate
invariant reciprocal for hoisting.
* Makefile.in (tree-ssa-loop-im.o): Add real.h dependency.
2005-04-11 Daniel Berlin <dberlin@dberlin.org>
Fix PR tree-optimization/20926
* tree-ssa-alias.c (add_type_alias): Handle subvars.
2005-04-11 Devang Patel <dpatel@apple.com>
* config/rs6000.c (rs6000_emit_vector_select): Fix vector select
operand ordering.
2005-04-11 Andrew Pinski <pinskia@physics.uc.edu>
* fold-const.c (fold_binary_op_with_conditional_arg):
use fold_buildN instead of "fold (buildN" in some
non obvious places.
(fold_unary): Likewise.
(fold_binary): Likewise.
2005-04-11 Daniel Berlin <dberlin@dberlin.org>
Fix PR tree-optimization/20612
* lambda-code.c (lambda_loopnest_to_gcc_loopnest): Fix increment
handling
(perfect_nestify): preheaderbb is *not* part of loop of the
old destination.
2005-04-11 Andrew Pinski <pinskia@physics.uc.edu>
* tree-ssa-alias.c (may_alias_p): If the variable
is a global variable and the pointer is parameter
and -fargument-noalias-global is used, then
the pointer cannot alias the variable.
2005-04-11 James A. Morrison <phython@gcc.gnu.org>
* config/sparc/sparc.c: Use gcc_assert and gcc_unreachable.
* config/sparc/sparc.h: Likewise.
* config/sparc/sparc.md: Likewise.
2005-04-11 Kazu Hirata <kazu@cs.umass.edu>
* tree-vrp.c (maybe_add_assert_expr): Move a comment.
* tree-vrp.c: Fix a comment typo.
2005-04-11 Diego Novillo <dnovillo@redhat.com>
PR tree-optimization/20920
* tree-pretty-print.c (dump_generic_node): Show '(ab)' if an
SSA_NAME flows through an abnormal edge.
* tree-vrp.c (infer_value_range): Ignore SSA names that flow
through abnormal edges.
(maybe_add_assert_expr): Likewise.
2005-04-11 Richard Sandiford <rsandifo@redhat.com>
* config/s390/s390.h (s390_tune_string, s390_arch_string)
(s390_warn_framesize_string, s390_warn_dynamicstack_string)
(s390_stack_size_string, s390_stack_guard_string, target_flags)
(MASK_HARD_FLOAT, MASK_SMALL_EXEC, MASK_DEBUG_ARG, MASK_64BIT)
(MASK_ZARCH, MASK_MVCLE, MASK_TPF_PROFILING, MASK_NO_FUSED_MADD)
(MASK_BACKCHAIN, MASK_PACKED_STACK, TARGET_HARD_FLOAT)
(TARGET_SOFT_FLOAT, TARGET_SMALL_EXEC, TARGET_DEBUG_ARG)
(TARGET_64BIT, TARGET_ZARCH, TARGET_MVCLE, TARGET_TPF_PROFILING)
(TARGET_NO_FUSED_MADD, TARGET_FUSED_MADD, TARGET_BACKCHAIN)
(TARGET_PACKED_STACK, TARGET_SWITCHES, TARGET_OPTIONS): Delete.
* config/s390/s390.c (TARGET_DEFAULT_TARGET_FLAGS): Override default.
(TARGET_HANDLE_OPTION): Likewise.
(s390_tune): Initialize to PROCESSOR_max.
(s390_arch_string): Make static.
(s390_tune_string, s390_warn_framesize_string): Delete.
(s390_warn_dynamicstack_string, s390_stack_size_string): Delete.
(s390_stack_guard_string, s390_warn_dynamicstack_p): Delete.
(s390_handle_arch_option, s390_handle_option): New functions.
(override_options): Remove parsing of option strings.
* config/s390/s390.opt: New file.
2005-04-11 Paolo Bonzini <bonzini@gnu.org>
* tree-complex.c (expand_vector_operations): Call
update_stmt_if_modified.
2005-04-11 Paolo Bonzini <bonzini@gnu.org>
* tree-vect-analyze (vect_determine_vectorization_factor):
Do not use GET_MODE_NUNITS.
* tree-vect-transform.c (vect_get_vec_def_for_operand,
(vectorizable_load, vect_transform_loop): Likewise.
2005-04-11 Uros Bizjak <uros@kss-loka.si>
* builtins.def (BUILT_IN_LCEIL, BUILT_IN_LCEILF, BUILT_IN_LCEILL)
(BUILT_IN_LLCEIL, BUILT_IN_LLCEILF, BUILT_IN_LLCEILL): New.
* optabs.h (enum optab_index): Add new OTI_lceil.
(lceil_optab): Define corresponding macro.
* optabs.c (init_optabs): Initialize lceil_optab.
* genopinit.c (optabs): Implement lceil_optab using lceilsi2
and lceildi2 patterns.
* builtins.c (expand_builtin_int_roundingfn): Handle
BUILT_IN_LCEIL{,F,L} and BUILT_IN_LLCEIL{,F,L}.
(fold_builtin_int_roundingfn): Handle BUILT_IN_LCEIL{,F,L} and
BUILT_IN_LLCEIL{,F,L}.
(fold_builtin_1): Fold BUILT_IN_LCEIL{,F,L} and
BUILT_IN_LLCEIL{,F,L} using fold_builtin_int_roundingfn.
(mathfn_built_in): Handle BUILT_IN LCEIL and BUILT_IN_LLCEIL.
(expand_builtin): Expand BUILT_IN_LCEIL{,F,L} and
BUILT_IN_LLCEIL{,F,L} using expand_builtin_int_roundingfn.
* convert.c (convert_to_integer): Convert (long int)ceil{,f,l},
into lceil built-in function and (long long int)ceil{,f,l} into
llceil built-in function.
* fold-const.c (tree_expr_nonnegative_p): Add BUILT_IN_LCEIL and
BUILT_IN_LLCEIL.
2005-04-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
* pa/quadlib.c (_U_Qfneg): Toggle sign bit instead of subtracting from
zero.
2005-04-10 Kazu Hirata <kazu@cs.umass.edu>
* config/arm/arm.c: Fix a comment typo.
* doc/tree-ssa.texi: Fix a typo.
2005-04-10 Steven Bosscher <stevenb@suse.de>
* cselib.c (clear_table): Rename to cselib_clear_table.
* cselib.h (cselib_clear_table): Add prototype.
* gcse.c (gcse_main): Make 'f' argument unused.
(alloc_gcse_mem): Do not walk the insn chain, walk the contents
of each basic block instead.
(compute_sets, compute_hash_table_work): Likewise.
(constprop_register): Change int 'alter_jumps' argument to bool.
(do_local_cprop): Likewise.
(local_cprop_pass): Likewise. Also walk basic blocks instead of
the insn chain. Explicitly clear the cselib tables after finishing
one basic block. Make sure there are no unterminated libcall blocks.
Update compute_sets call.
(cprop): Walk basic blocks instead of the insn chain.
(one_cprop_pass, compute_ld_motion_mems, compute_store_table):
Likewise.
(bypass_jumps): Update alloc_gcse_mem, compute_sets, and
one_cprop_pass calls.
2005-04-10 Richard Sandiford <rsandifo@redhat.com>
* combine.c (combine_simplify_rtx): Remove a transformation that
relies on an invalid assumption about rtl sign-extension semantics.
2005-04-10 Richard Sandiford <rsandifo@redhat.com>
* value-prof.c (tree_divmod_fixed_value_transform): Fix arguments
to build_int_cst_wide.
2005-04-09 Alexandre Oliva <aoliva@redhat.com>
PR target/20126
* loop.c (loop_givs_rescan): If replacement of DEST_ADDR failed,
set the original address pseudo to the correct value before the
original insn, if possible, and leave the insn alone, otherwise
create a new pseudo, set it and replace it in the insn.
* recog.c (validate_change_maybe_volatile): New.
* recog.h (validate_change_maybe_volatile): Declare.
2005-04-09 Caroline Tice <ctice@apple.com>
* bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
Remove targetm.have_named_sections test.
(fix_edges_for_rarely_executed_code): Likewise.
(insert_section_boundary_note): Likewise.
(reorder_basic_blocks): Check partitioning flag before calling
verify_hot_cold_block_grouping.
* dbxout.c (dbxout_function_end): Get hot/cold section labels from
the function struct rather than global variables.
* dwarf2out.c (COLD_TEXT_SECTION_LABEL): New macro.
(COLD_END_LABEL): Likewise
(cold_text_section_label): New static global variable.
(cold_end_label): Likewise.
(dwarf2out_switch_text_section): Get hot/cold section labels from
the function struct rather than global variables.
(output_aranges): Use cold_text_section_label and cold_end_label;
check partitioning flag before putting out delta.
(output_ranges): Remove incorrect code attempting to use
hot/cold labels.
(output_line_info): Get cold section label from function struct.
(add_location_or_const_value_attribute): Likewise.
(get_subprogram_die): Get hot/cold section labels from function struct.
(dwarf2out_var_location): Likewise.
(dwarf2out_init): Generate cold_text_section_label and cold_end_label;
write out cold_text_section_label if partition flag is set.
(dwarf2out_finish): Write out cold_end_label if partition flag is set;
* function.h (struct function): Add new fields to point to hot/cold
section labels: hot_section_label, cold_section_label,
hot_section_end_label and cold_section_end_label; also add new field
for cold text section name, unlikely_text_section_name.
* opts.c (decode_options): Turn off partitioning flag if
!targetm.have_named_sections.
* output.h (hot_section_label): Remove.
(hot_section_end_label): Remove.
(cold_section_end_label): Remove.
(unlikely_section_label): Remove.
(unlikely_text_section_name): Remove.
* passes.c (rest_of_handle_final): Remove code that frees
unlikely_text_section_name.
* varasm.c (unlikely_section_label): Remove.
(hot_section_label): Remove.
(hot_section_end_label): Remove.
(cold_section_end_label): Remove.
(unlikely_text_section_name): Remove.
(initialize_cold_section_name): Modify to call
targetm.strip_name_encoding; to store cold section name in current
function struct, if it exists; and to only use the decl_section_name
if flag_named_sections is true.
(unlikely_text_section): Modify to get section name out of current
function struct, if there is one; otherwise build it from
UNLIKELY_EXECUTED_TEXT_SECTION_NAME.
(in_unlikely_text_section): Likewise.
(named_section): Modify to get/put cold section name in current function
struct, if there is one.
(function_section): Change 'bool unlikely' to 'int reloc'; check
targetm.have_named_sections before calling named_section.
(current_function_section): Likewise.
(assemble_start_function): Modify to get/put unlikely_text_section_name
in current function struct; modify to get hot/cold section labels
from function struct; initialize labels using
ASM_GENERATE_INTERNAL_LABEL;
test partitioning flag before writing out hot section label.
(assemble_end_function): Test partitioning flag before writing out
hot/cold section labels.
(default_section_type_flags_1): Modify to use array instead of
char* for unlikely_text_section_name; set flags correctly for
cold text section if there is not a current function decl.
2005-04-09 Jakub Jelinek <jakub@redhat.com>
* tree.h (enum tree_index): Add TI_VA_LIST_GPR_COUNTER_FIELD
and TI_VA_LIST_FPR_COUNTER_FIELD.
(va_list_gpr_counter_field, va_list_fpr_counter_field): Define.
* tree-pass.h (pass_stdarg): Add.
* tree-optimize.c (init_tree_optimization_passes): Add pass_stdarg.
* tree-stdarg.c: New file.
* tree-stdarg.h: New file.
* Makefile.in (OBJS-common): Add tree-stdarg.o.
(tree-stdarg.o): Add dependencies.
* function.h (struct function): Add va_list_gpr_size and
va_list_fpr_size fields.
* function.c (allocate_struct_function): Initialize them.
* target.h (struct gcc_target): Add stdarg_optimize_hook.
* target-def.h (TARGET_STDARG_OPTIMIZE_HOOK): Define.
(TARGET_INITIALIZER): Add it.
* config/i386/i386.c (ix86_build_builtin_va_list): Initialize
va_list_{g,f}pr_counter_field.
(ix86_setup_incoming_varargs): Don't do anything if reg_save
area will not be used. Only save registers that tree-stdarg.c
detected they need saving.
(ix86_va_start): Don't set up fields that won't be used.
* config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Initialize
va_list_{g,f}pr_counter_field.
(setup_incoming_varargs): Don't do anything if reg_save
area will not be used. Only save registers that tree-stdarg.c
detected they need saving.
(rs6000_va_start): Don't set up fields that won't be used.
* config/alpha/alpha.c: Include tree-flow.h and tree-stdarg.h.
(alpha_build_builtin_va_list): Initialize va_list_gpr_counter_field.
(va_list_skip_additions, alpha_stdarg_optimize_hook): New functions.
(TARGET_STDARG_OPTIMIZE_HOOK): Define.
2005-04-09 Jakub Jelinek <jakub@redhat.com>
PR target/20795
* config/i386/i386.c (construct_container): Pass empty aligned
struct, union or class in memory.
2005-04-09 Kazu Hirata <kazu@cs.umass.edu>
* dominance.c, gthr-win32.h, reg-stack.c, tree-ssa-copy.c,
tree-ssa-operands.c, tree-ssa.c, tree-vrp.c, varasm.c,
config/alpha/alpha.c, config/arm/arm.c, config/m32r/m32r.h,
config/rs6000/predicates.md: Fix comment typos.
* sched-int.h (haifa_insn_data): Remove blockage and units.
(INSN_UNIT, INSN_BLOCKAGE, UNIT_BITS, BLOCKAGE_MASK,
ENCODE_BLOCKAGE, UNIT_BLOCKED, BLOCKAGE_RANGE,
MIN_BLOCKAGE_COST, MAX_BLOCKAGE_COST): Remove.
2005-04-09 Jan Hubicka <jh@suse.cz>
Steven Bosscher <stevenb@suse.de>
* cfglayout.c (copy_bbs): Rename n_edges to num_edges.
* cfgloop.c (get_loop_exit_edges): Likewise.
* cfgloopmanip.c (fix_irreducible_loops): Likewise.
(unloop): Likewise.
* loop-unroll.c (analyze_insns_in_loop): Likewise.
* tree-cfg.c (dump_cfg_status): Likewise.
2005-04-09 David Edelsohn <edelsohn@gnu.org>
* config/rs6000/predicates.md (altivec_register_operand): Remove
redundant match_code test.
(gpc_reg_operand): Same.
(cc_reg_operand): Same.
(cc_reg_not_cr0_operand): Same.
2005-04-09 Jan Hubicka <jh@suse.cz>
Forgotten hunk from my last merge patch:
* final.c (output_addr_const): Do not call mark_referenced.
2005-04-09 Andrew MacLeod <amacleod@redhat.com>
* doc/tree-ssa.texi: Add immediate use documentation.
2005-04-09 Richard Earnshaw <richard.earnshaw@arm.com>
* arm.c (FL_WBUF): Define.
(arm_tune_strongarm): Renamed from arm_is_strong. All uses changed.
(arm_is_6_or_7): Delete.
(arm_tune_wbuf): New.
(arm_override_options): Set arm_tune_wbuf.
* arm.h (arm_tune_strongarm): Renamed from arm_is_strong.
(arm_is_6_or_7): Delete declaration.
(arm_tune_wbuf): New declartion.
* arm.md (is_strongarm): Derive from arm_tune_strongarm.
(model_wbuf): Derive from arm_tune_wbuf.
* arm-cores.def (arm600, arm610, arm620, arm700, arm700i, arm710)
(arm720, arm710c, arm7100, arm7500, arm7500fe, arm710t, arm720t)
(arm740t): Mark CPUs as having a write buffer.
2005-04-09 Uros Bizjak <uros@kss-loka.si>
* config/i386/i386.md (*fp_jcc_7_387): Use 'const0_operand' instead
of 'const_double_operand' in operand 2 constraints. Update enable
condition.
2005-04-09 Uros Bizjak <uros@kss-loka.si>
* builtins.def (BUILT_IN_LFLOOR, BUILT_IN_LFLOORF, BUILT_IN_LFLOORL)
(BUILT_IN_LLFLOOR, BUILT_IN_LLFLOORF, BUILT_IN_LLFLOORL): New.
* optabs.h (enum optab_index): Add new OTI_lfloor.
(lfloor_optab): Define corresponding macro.
* optabs.c (init_optabs): Initialize lfloor_optab.
* genopinit.c (optabs): Implement lfloor_optab using lfloorsi2
and lfloordi2 patterns.
* builtins.c (expand_builtin_int_roundingfn): New prototype.
(expand_builtin_int_roundingfn): New function.
(fold_builtin_int_roundingfn): New prototype.
(fold_builtin_int_roundingfn): New function, renamed from
fold_builtin_lround.
Handle BUILT_IN_LROUND{,F,L}, BUILT_IN_LLROUND{,F,L} and
BUILT_IN_LFLOOR{,F,L}, BUILT_IN_LLFLOOR{,F,L}.
(fold_builtin_1): Fold BUILT_IN_LFLOOR{,F,L} and
BUILT_IN_LLFLOOR{,F,L} using fold_builtin_int_roundingfn.
(mathfn_built_in): Handle BUILT_IN LFLOOR and BUILT_IN_LLFLOOR.
(expand_builtin): Expand BUILT_IN_LFLOOR{,F,L} and
BUILT_IN_LLFLOOR{,F,L} using expand_builtin_int_roundingfn.
* convert.c (convert_to_integer): Convert (long int)floor{,f,l},
into lfloor built-in function and (long long int)floor{,f,l} into
llfloor built-in function.
* fold-const.c (tree_expr_nonnegative_p): Add BUILT_IN_LFLOOR and
BUILT_IN_LLFLOOR.
2005-04-08 Ian Lance Taylor <ian@airs.com>
* c-common.def: Move FOR_STMT, WHILE_STMT, DO_STMT, BREAK_STMT,
CONTINUE_STMT, and SWITCH_STMT to cp/cp-tree.def.
* c-common.h (WHILE_COND, WHILE_BODY): Move to cp/cp-tree.h.
(DO_COND, DO_BODY): Likewise.
(FOR_INIT_STMT, FOR_COND, FOR_EXPR, FOR_BODY): Likewise.
(SWITCH_STMT_COND, SWITCH_STMT_BODY, SWITCH_STMT_TYPE): Likewise.
(c_common_stmt_codes): Remove FOR_STMT, WHILE_STMT, DO_STMT,
BREAK_STMT, CONTINUE_STMT, and SWITCH_STMT.
(build_continue_stmt, build_break_stmt): Don't declare.
(c_do_switch_warnings): Update declaration.
* c-gimplify.c (enum bc_t): Remove.
(struct c_gimplify_ctx, ctxp): Remove.
(push_context, pop_context): Remove static functions.
(c_genericize): Don't call push_context or pop_context.
(begin_bc_block, finish_bc_block): Remove static functions.
(build_bc_goto): Likewise.
(gimplify_c_loop): Likewise.
(gimplify_for_stmt, gimplify_while_stmt): Likewise.
(gimplify_do_stmt, gimplify_switch_stmt): Likewise.
(c_gimplify_expr): Remove handling of FOR_STMT, WHILE_STMT,
DO_STMT, SWITCH_STMT, CONTINUE_STMT, BREAK_STMT.
* c-common.c (c_do_switch_warnings): Rename from
c_do_switch_warnings_1.
(c_do_switch_warnings) [old version]: Remove.
(c_do_switch_expr_warnings): Remove.
* c-typeck.c (c_finish_case): Call new c_do_switch_warnings
function instead of c_do_switch_expr_warnings.
* c-dump.c (c_dump_tree): Remove handling of BREAK_STMT,
CONTINUE_STMT, DO_STMT, FOR_STMT, SWITCH_STMT, and WHILE_STMT.
* c-pretty-print.c (pp_c_statement): Likewise.
* c-semantics.c (build_break_stmt, build_continue_stmt): Remove.
2005-04-08 Devang Patel <dpatel@apple.com>
* tree-if-conv.c (find_phi_replacement_condition): New parameter, loop.
While selecting replacement condition pay attention to loop header.
2005-04-08 Diego Novillo <dnovillo@redhat.com>
Merge from tree-cleanup-branch: VRP, store CCP, store
copy-prop, incremental SSA updating of FUD chains and
newly exposed symbols.
* Makefile.in (tree-ssa-copy.o): Depend on tree-ssa-propagate.h.
(OBJS-common): Add tree-vrp.o.
(tree-vrp.o): New rule.
* basic-block.h (nearest_common_dominator_for_set): Declare.
* common.opt (ftree-store-ccp): New flag.
(ftree-copy-prop): New flag.
(ftree-vrp): New flag.
(ftree-store-copy-prop): New flag.
* dominance.c (nearest_common_dominator_for_set): New.
* domwalk.c (walk_dominator_tree): Only traverse
statements in blocks marked in walk_data->interesting_blocks.
* domwalk.h (struct dom_walk_data): Add field interesting_blocks.
* fold-const.c (fold): Handle ASSERT_EXPR.
* opts.c (decode_options): Set flag_tree_copy_prop at -O1.
Set flag_tree_store_ccp, flag_tree_store_copy_prop and
flag_tree_vrp at -O2.
* timevar.def (TV_TREE_VRP): Define.
(TV_TREE_COPY_PROP): Define.
(TV_TREE_STORE_COPY_PROP): Define.
(TV_TREE_SSA_INCREMENTAL): Define.
(TV_TREE_STORE_CCP): Define.
* tree-cfg.c (tree_can_merge_blocks_p): Remove reference
to kill_redundant_phi_nodes from comment.
(verify_expr): Handle ASSERT_EXPR.
* tree-dfa.c (mark_new_vars_to_rename): Remove second
argument. Update all users.
(mark_call_clobbered_vars_to_rename): Remove. Update all
users.
* tree-flow-inline.h (unmodifiable_var_p): New.
* tree-flow.h (enum value_range_type): Declare.
(struct value_range_def): Declare.
(value_range): Declare.
(remove_all_phi_nodes_for): Remove. Update all users.
(find_phi_node_for): Declare.
(add_type_alias): Declare.
(count_uses_and_derefs): Declare.
(kill_redundant_phi_nodes): Remove.
(rewrite_into_ssa): Remove.
(rewrite_def_def_chains): Remove.
(update_ssa, register_new_name_mapping, create_new_def_for,
need_ssa_update_p, name_registered_for_update_p,
release_ssa_name_after_update_ssa, dump_repl_tbl,
debug_repl_tbl, dump_names_replaced_by,
debug_names_replaced_by, mark_sym_for_renaming,
mark_set_for_renaming, get_current_def, set_current_def,
get_value_range, dump_value_range, debug_value_range,
dump_all_value_ranges, debug_all_value_ranges,
expr_computes_nonzero, loop_depth_of_name,
unmodifiable_var_p): Declare.
* tree-gimple.c (is_gimple_formal_tmp_rhs): Handle
ASSERT_EXPR.
* tree-into-ssa.c (block_defs_stack): Update comment.
(old_ssa_names, new_ssa_names, old_virtual_ssa_names,
syms_to_rename, names_to_release, repl_tbl,
need_to_initialize_update_ssa_p, need_to_update_vops_p,
need_to_replace_names_p): New locals.
(NAME_SETS_GROWTH_FACTOR): Define.
(struct repl_map_d): Declare.
(struct mark_def_sites_global_data): Add field
interesting_blocks.
(enum rewrite_mode): Declare.
(REGISTER_DEFS_IN_THIS_STMT): Define.
(compute_global_livein): Use last_basic_block instead of
n_basic_blocks.
(set_def_block): Remove last argument. Update all callers.
(prepare_use_operand_for_rename): Remove. Update all callers.
(prepare_def_operand_for_rename): Remove. Update all callers.
(symbol_marked_for_renaming): New.
(is_old_name): New.
(is_new_name): New.
(repl_map_hash): New.
(repl_map_eq): New.
(repl_map_free): New.
(names_replaced_by): New.
(add_to_repl_tbl): New.
(add_new_name_mapping): New.
(mark_def_sites): Assume that all the operands in the
statement are in normal form.
(find_idf): Assert that the block in the stack is valid.
(get_default_def_for): New.
(insert_phi_nodes_for): Add new argument 'update_p'.
Add documentation.
If update_p is true, add a new mapping between the LHS of
each new PHI and the name that it replaces.
(insert_phi_nodes_1): Only call find_idf if needed.
(get_reaching_def): Call get_default_def_for.
(rewrite_operand): Remove.
(rewrite_stmt): Do nothing if REGISTER_DEFS_IN_THIS_STMT
and REWRITE_THIS_STMT are false.
Assume that all the operands in the statement are in
normal form.
(rewrite_add_phi_arguments): Don't use PHI_REWRITTEN.
(rewrite_virtual_phi_arguments): Remove.
(invalidate_name_tags): Remove.
(register_new_update_single, register_new_update_set,
rewrite_update_init_block, replace_use,
rewrite_update_fini_block, rewrite_update_stmt,
rewrite_update_phi_arguments): New.
rewrite_blocks): Remove argument 'fix_virtual_phis'.
Add arguments 'entry', 'what' and 'blocks'.
Initialize the dominator walker according to 'what' and
'blocks'.
Start the dominator walk at 'entry'.
(mark_def_site_blocks): Add argument 'interesting_blocks'.
Use it to configure the dominator walker.
(rewrite_into_ssa): Remove argument 'all'.
Make internal.
(rewrite_all_into_ssa): Remove.
(rewrite_def_def_chains): Remove.
(mark_def_interesting, mark_use_interesting,
prepare_phi_args_for_update, prepare_block_for_update,
prepare_def_site_for, prepare_def_sites,
dump_names_replaced_by, debug_names_replaced_by,
dump_repl_tbl, debug_repl_tbl, init_update_ssa,
delete_update_ssa, create_new_def_for,
register_new_name_mapping, mark_sym_for_renaming,
mark_set_for_renaming, need_ssa_update_p,
name_registered_for_update_p, ssa_names_to_replace,
release_ssa_name_after_update_ssa,
insert_updated_phi_nodes_for, update_ssa): New.
* tree-loop-linear.c (linear_transform_loops): Call
update_ssa instead of rewrite_into_ssa.
* tree-optimize.c (vars_to_rename): Remove.
Update all users.
(init_tree_optimization_passes): Replace
pass_redundant_phi with pass_copy_prop.
Add pass_vrp.
Replace pass_ccp with pass_store_ccp.
Add pass_store_copy_prop after pass_store_ccp.
(execute_todo): If the TODO_ flags don't include updating
the SSA form, assert that it does not need to be updated.
Call update_ssa instead of rewrite_into_ssa and
rewrite_def_def_chains.
If TODO_verify_loops is set, call verify_loop_closed_ssa.
(tree_rest_of_compilation):
* tree-pass.h (TODO_dump_func, TODO_ggc_collect,
TODO_verify_ssa, TODO_verify_flow, TODO_verify_stmts,
TODO_cleanup_cfg): Renumber.
(TODO_verify_loops, TODO_update_ssa,
TODO_update_ssa_no_phi, TODO_update_ssa_full_phi,
TODO_update_ssa_only_virtuals): Define.
(pass_copy_prop, pass_store_ccp, pass_store_copy_prop, pass_vrp):
Declare.
* tree-phinodes.c (make_phi_node): Update documentation.
(remove_all_phi_nodes_for): Remove.
(find_phi_node_for): New.
* tree-pretty-print.c (dump_generic_node): Handle ASSERT_EXPR.
* tree-scalar-evolution.c (follow_ssa_edge_in_rhs): Likewise.
(interpret_rhs_modify_expr): Likewise.
* tree-sra.c (decide_instantiations): Mark all symbols in
SRA_CANDIDATES for renaming.
(mark_all_v_defs_1): Rename from mark_all_v_defs.
(mark_all_v_defs): New function. Update all users to call it
with the whole list of scalarized statements, not just the
first one.
* tree-ssa-alias.c (count_ptr_derefs): Make extern.
(compute_flow_insensitive_aliasing): If the tag is
unmodifiable and the variable isn't or vice-versa, don't
make them alias of each other.
(setup_pointers_and_addressables): If the type tag for
VAR is about to change, mark the old one for renaming.
(add_type_alias): New.
* tree-ssa-ccp.c: Document SSA-CCP and STORE-CCP.
(ccp_lattice_t): Rename from latticevalue.
(value): Remove. Update all users.
(const_val): New local variable.
(do_store_ccp): New local variable.
(dump_lattice_value): Handle UNINITIALIZED.
(debug_lattice_value): New.
(get_default_value): Re-write.
(set_lattice_value): Re-write.
(def_to_varying): Remove. Update all users.
(likely_value): Return VARYING for statements that make
stores when STORE_CCP is false.
Return VARYING for any statement other than MODIFY_EXPR,
COND_EXPR and SWITCH_EXPR.
(ccp_initialize): Re-write.
(replace_uses_in, replace_vuse_in, substitute_and_fold):
Move to tree-ssa-propagate.c.
(ccp_lattice_meet): Handle memory stores when
DO_STORE_CCP is true.
(ccp_visit_phi_node): Likewise.
(ccp_fold): Likewise.
(evaluate_stmt): Likewise.
(visit_assignment): Likewise.
(ccp_visit_stmt): Likewise.
(execute_ssa_ccp): Add argument 'store_ccp'. Copy it
into DO_STORE_CCP.
(do_ssa_ccp): New.
(pass_ccp): Use it.
(do_ssa_store_ccp): New.
(gate_store_ccp): New.
(pass_store_ccp): Declare.
* tree-ssa-copy.c: Include tree-ssa-propagate.h.
(may_propagate_copy): Reformat.
Don't abort if ORIG is a virtual and DEST isn't.
If NEW does not have alias information but DEST does,
copy it.
(copy_of, cached_last_copy_of, do_store_copy_prop, enum
copy_prop_kind, which_copy_prop): Declare.
(stmt_may_generate_copy, get_copy_of_val,
get_last_copy_of, set_copy_of_val, dump_copy_of,
copy_prop_visit_assignment, copy_prop_visit_cond_stmt,
copy_prop_visit_stmt, copy_prop_visit_phi_node,
init_copy_prop, fini_copy_prop, execute_copy_prop,
gate_copy_prop, do_copy_prop, gate_store_copy_prop,
store_copy_prop): New.
(pass_copy_prop, pass_store_copy_prop): Declare.
* tree-ssa-dom.c (struct opt_stats_d): Add fields
'num_const_prop' and 'num_copy_prop'.
(cprop_operand): Update them.
(dump_dominator_optimization_stats): Dump them.
(tree_ssa_dominator_optimize): Call update_ssa instead of
rewrite_into_ssa.
(loop_depth_of_name): Declare extern.
(simplify_cond_and_lookup_avail_expr): Guard against NULL
values for LOW or HIGH.
(cprop_into_successor_phis): Only propagate if NEW != ORIG.
(record_equivalences_from_stmt): Call expr_computes_nonzero.
(cprop_operand): Only propagate if VAL != OP.
* tree-ssa-dse.c (dse_optimize_stmt): Mark symbols in removed
statement for renaming.
* tree-ssa-loop-im.c (move_computations): Call update_ssa.
* tree-ssa-loop-ivopts.c (rewrite_address_base): Call
add_type_alias if necessary.
Call mark_new_vars_to_rename.
(tree_ssa_iv_optimize): If new symbols need to be renamed,
mark every statement updated, call update_ssa and
rewrite_into_loop_closed_ssa.
* tree-ssa-loop-manip.c (add_exit_phis): Do not remove DEF_BB
from LIVEIN if VAR is a virtual.
* tree-ssa-loop.c (tree_loop_optimizer_init): Call update_ssa.
* tree-ssa-operands.c (get_expr_operands): Handle ASSERT_EXPR.
(get_call_expr_operands): Reformat statement.
(add_stmt_operand): Don't create V_MAY_DEFs for read-only
symbols.
* tree-ssa-propagate.c (ssa_prop_init): Initialize
SSA_NAME_VALUE for every name.
(first_vdef, stmt_makes_single_load, stmt_makes_single_store,
get_value_loaded_by): New.
(replace_uses_in, replace_vuses_in, replace_phi_args_in,
substitute_and_fold): Move from tree-ssa-ccp.c.
* tree-ssa-propagate.h (struct prop_value_d, prop_value_t,
first_vdef, stmt_makes_single_load, stmt_makes_single_store,
get_value_loaded_by, replace_uses_in, substitute_and_fold):
Declare.
* tree-ssa.c (verify_use): Fix error message.
(propagate_into_addr, replace_immediate_uses, get_eq_name,
check_phi_redundancy, kill_redundant_phi_nodes,
pass_redundant_phi): Remove. Update all users.
* tree-vect-transform.c (vect_create_data_ref_ptr): Call
add_type_alias, if necessary.
* tree-vectorizer.h (struct _stmt_vect_info): Update
documentation for field 'memtag'.
* tree-vrp.c: New file.
* tree.def (ASSERT_EXPR): Define.
* tree.h (ASSERT_EXPR_VAR): Define.
(ASSERT_EXPR_COND): Define.
(SSA_NAME_VALUE_RANGE): Define.
(struct tree_ssa_name): Add field 'value_range'.
(PHI_REWRITTEN): Remove.
(struct tree_phi_node): Remove field 'rewritten'.
* doc/invoke.texi (-fdump-tree-storeccp, -ftree-copy-prop,
-ftree-store-copy-prop): Document.
* doc/tree-ssa.texi: Remove broken link to McCAT's compiler.
Document usage of update_ssa.
2005-04-08 David Edelsohn <edelsohn@gnu.org>
PR target/20814
* config/rs6000/predicates.md (altivec_register_operand): Accept
SUBREG.
(and64_operand): Do not limit CONST_INT to mask64_operand.
(and64_2_operand): Do not limit CONST_INT to mask64_1or2_operand.
(and_operand): Do not limit CONST_INT to mask_operand.
2005-04-09 Hans-Peter Nilsson <hp@axis.com>
PR rtl-optimization/20466
* flow.c (invalidate_mems_from_set): Handle a MEM by checking it
for overlap of the address of each list member.
(mark_set_1): Call invalidate_mems_from_set for MEMs too.
2005-04-08 Mike Stump <mrs@apple.com>
* config/darwin.c (indirect_data): Fix typo in strncmp logic.
* config/rs6000/rs6000.c (rs6000_emit_prologue): Use 5 nops,
instead of 4.
2005-04-08 Kazu Hirata <kazu@cs.umass.edu>
* c-tree.h (C_LANG_TREE_NODE_CHAIN_NEXT): Remove.
* function.c (push_function_context_to): Don't set
contains_functions.
* function.h (function): Remove contains_functions.
(current_function_contains_functions): Remove.
* function.h (function): Remove instrument_entry_exit.
(current_function_instrument_entry_exit): Remove.
* function.h (nonlocal_labels): Remove.
* tree.h (STRIP_MAIN_TYPE_NOPS): Remove.
* genattrtab.c (attr_desc): Remove negative_ok and unsigned_p.
(check_attr_value, write_attr_get, write_expr_attr_cache,
find_attr, make_internal_attr): Don't reference negative_ok or
unsigned_p.
* genattrtab.h (ATTR_NEGATIVE_OK, ATTR_UNSIGNED,
ATTR_FUNC_UNITS, ATTR_BLOCKAGE): Remove.
(ATTR_STATIC): Adjust the value.
* c-common.h (C_ARTIFICIAL_STRING_P): Remove.
2005-04-08 Ulrich Weigand <uweigand@de.ibm.com>
* config/s390/tpf.h (ASM_SPEC): Define.
2005-04-08 Kazu Hirata <kazu@cs.umass.edu>
* tree-flow.h: Remove the prototype for
redirect_immediate_uses.
(TDFA_USE_OPS, TDFA_USE_VOPS): Remove.
2005-04-08 Richard Earnshaw <richard.earnshaw@arm.com>
* arm.c (arm_const_double_by_parts): New function.
* arm-protos.h (arm_const_double_by_parts): Add prototype.
* arm.md (define_split for 64-bit constants): Add another one.
2005-04-08 Andrew MacLeod <amacleod@redhat.com>
* tree-ssa-operands.c (correct_use_link): Remove linear scan.
2005-04-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* system.h: Revert last change.
2005-04-08 Richard Sandiford <rsandifo@redhat.com>
* config/xtensa/xtensa.h (target_flags, MASK_NO_FUSED_MADD)
(MASK_CONST16, TARGET_NO_FUSED_MADD, TARGET_CONST16)
(TARGET_SWITCHES): Delete.
* config/xtensa/xtensa.c (TARGET_DEFAULT_TARGET_FLAGS): Define.
* config/xtensa/xtensa.md (muladdsf3, mulsubsf3): Check
TARGET_FUSED_MADD instead of !TARGET_NO_FUSED_MADD.
* config/xtensa/xtensa.opt: New file.
2005-04-08 Ben Elliston <bje@au.ibm.com>
* config/fp-bit.c: Include L_mul_tf in #endif comment.
* config/fp-bit.h: Tidy comments.
2005-04-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* system.h: Poison PARAMS.
2005-04-07 Richard Sandiford <rsandifo@redhat.com>
* config/vax/vax.h (target_flags, MASK_UNIX_ASM, MASK_VAXC_ALIGNMENT)
(MASK_G_FLOAT, TARGET_UNIX_ASM, TARGET_VAXC_ALIGNMENT, TARGET_G_FLOAT)
(TARGET_SWITCHES): Delete.
* config/vax/vax.c (TARGET_DEFAULT_TARGET_FLAGS): Override default.
* config/vax/vax.opt: New file.
2005-04-07 Daniel Berlin <dberlin@dberlin.org>
* tree-ssa-dse.c (dse_optimize_stmt): Fix incorrect comment.
2005-04-07 Ian Lance Taylor <ian@airs.com>
* config/iq2000/iq2000.h (DONT_ACCESS_GBLS_AFTER_EPILOGUE): Don't
define.
* config/mips/mips.h (DONT_ACCESS_GBLS_AFTER_EPILOGUE): Likewise.
* config/sparc/sparc.h (DONT_ACCESS_GBLS_AFTER_EPILOGUE):
Likewise.
2005-04-07 Kazu Hirata <kazu@cs.umass.edu>
* tree-ssa-sink.c (nearest_common_dominator_of_uses): Consider
all immediate uses in PHI nodes.
2005-04-07 Richard Earnshaw <richard.earnshaw@arm.com>
* arm.c (arm_const_double_inline_cost): Handle any constant by
using gen_lowpart and gen_highpart_mode.
(note_invalid_constants): All constants in an RTX with a constraint
that permits memory are now pushed to the constant pool.
(output_move_double): Delete code to handle reg to reg and
constant to reg moves.
(const_double_needs_minipool, output_mov_immediate): Delete.
* arm.h (EXTRA_CONSTRAINT_STR_ARM): All 'D' variants now handle
CONST_INT and CONST_VECTOR.
* arm.md (ANY64): New mode macro.
(arm_movdi): Split reg-reg and const-reg moves. Simplify constraints.
(movdf_soft_insn): Split reg-reg and const-reg moves.
(split patterns for 64-bit constant and register moves): New.
* cirrus.md (cirrus_arm_movdi): Split reg-reg and const-reg moves.
(cirrus_movdf_hard_insn): Likewise.
* fpa.md (movdf_fpa): Likewise.
* iwmmxt.md (iwmmxt_arm_movdi): Likewise.
(movv8qi_internal, movv4hi_internal, movv2si_internal): Fix
constraints.
(movv2si_internal_2): Likewise.
* vfp.md (arm_movdi_vfp): Split reg-reg and const-reg moves.
(movdf_vfp): Likewise.
* arm-protos.h (output_mov_immediate): Delete prototype.
2005-04-07 Joseph S. Myers <joseph@codesourcery.com>
PR target/20093
* simplify-rtx.c (simplify_unary_operation_1): Check
SUBREG_PROMOTED_UNSIGNED_P (op) > 0 for zero-extension.
2005-04-06 James E Wilson <wilson@specifixinc.com>
PR target/20717
* cgraphunit.c (record_call_1, case FDESC_EXPR): Handle same as
ADDR_EXPR.
2004-04-06 Richard Sandiford <rsandifo@redhat.com>
* coverage.h (GCOV_TYPE_NODE): Delete.
* coverage.c (coverage_counter_alloc, tree_coverage_counter_ref)
(build_ctr_info_type): Use get_gcov_type () instead of GCOV_TYPE_NODE.
* tree-profile.c (tree_gen_edge_profiler, tree_gen_interval_profiler)
(tree_gen_pow2_profiler, tree_gen_one_value_profiler): Likewise.
* value-prof.c (tree_divmod_fixed_value_transform): Delete.
2004-04-06 Richard Sandiford <rsandifo@redhat.com>
PR other/20792
* Makefile.in (gcc.pot): Remove options.c dependency.
* optc-gen.awk: Don't quote help strings with N_().
2005-04-06 James A. Morrison <phython@gcc.gnu.org>
* c-common.c (handle_malloc_atttribute): Only set DECL_IS_MALLOC if
the function returns a pointer type.
2005-04-06 Daniel Berlin <dberlin@dberlin.org>
* params.def (PARAM_SALIAS_MAX_IMPLICIT_FIELDS): New
* params.h (SALIAS_MAX_IMPLICIT_FIELDS): New
* doc/invoke.texi: Documnet salias-max-implicit-fields.
* tree-ssa-alias.c (struct used_part): Add implicit_uses and
explicit_uses members.
(get_or_create_used_part_for): Initialize new fields.
(fieldoff_compare): New function.
(create_overlap_variables_for): Count number of fields, use
heuristic to determine whether to create subvars for vars with
only implicit uses.
Sort the field list by offset and avoid creating duplicate SFT's.
2005-04-06 Richard Sandiford <rsandifo@redhat.com>
* c.opt (-F): Remove trailing whitespace from help string.
(-finput-charset): Use a tab to separate the switch name and help
string.
* common.opt (-fsched-stalled-insns, -fsched-stalled-insns-dep)
(-ftree-vectorizer-verbose): Likewise.
2005-04-06 Kazu Hirata <kazu@cs.umass.edu>
* tree-ssa-sink.c (nearest_common_dominator_of_uses): Look at
a PHI argument where a use occurs instead of all PHI arguments.
2005-04-06 Joseph S. Myers <joseph@codesourcery.com>
* c-decl.c (finish_decl): Apply pending #pragma weak regardless of
scope.
2005-04-06 Kazu Hirata <kazu@cs.umass.edu>
* cse.c, tree-flow-inline.h, tree-flow.h, tree-ssa-operands.c,
tree-ssa-sink.c, tree.h, config/bfin/bfin.c,
config/bfin/bfin.h: Fix comment typos.
2005-04-06 Ranjit Mathew <rmathew@hotmail.com>
* doc/install.texi: Update the URL for Jacks.
* doc/sourcebuild.texi: Likewise.
2005-04-06 Eric Botcazou <ebotcazou@libertysurf.fr>
PR target/17245
* config/sparc/sparc.c (legitimate_address_p): Remove 'imm2'.
Revert 2004-10-08 patch. Reject TFmode LO_SUM in 32-bit mode.
2005-04-06 Kelley Cook <kcook@gcc.gnu.org>
* Makefile.in (LIBGCC2_CFLAGS): Revert -pipe change.
2005-04-06 Richard Sandiford <rsandifo@redhat.com>
* config/v850/v850-protos.h (override_options): Delete.
* config/v850/v850.h (target_flags, MASK_GHS, MASK_LONG_CALLS, MASK_EP)
(MASK_PROLOG_FUNCTION, MASK_DEBUG, MASK_V850, MASK_V850E)
(MASK_SMALL_SLD, MASK_BIG_SWITCH, MASK_NO_APP_REGS, MASK_DISABLE_CALLT)
(MASK_STRICT_ALIGN, MASK_US_BIT_SET, MASK_US_MASK_SET, TARGET_GHS)
(TARGET_LONG_CALLS, TARGET_EP, TARGET_PROLOG_FUNCTION, TARGET_V850)
(TARGET_BIG_SWITCH, TARGET_DEBUG, TARGET_V850E, TARGET_US_BIT_SET)
(TARGET_SMALL_SLD, TARGET_DISABLE_CALLT, TARGET_NO_APP_REGS)
(TARGET_STRICT_ALIGN, TARGET_SWITCHES, TARGET_OPTIONS)
(OVERRIDE_OPTIONS): Delete.
(MASK_CPU): Redefine as MASK_V850 | MASK_V850E.
(small_memory_info): Remove the value field.
(CONDITIONAL_REGISTER_USAGE): Check !TARGET_APP_REGS rather than
TARGET_NO_APP_REGS.
* config/v850/v850.c (small_memory): Remove the value field.
(TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
(override_options): Delete.
(v850_handle_memory_option, v850_handle_option): New functions.
* config/v850/v850.opt: New file.
2005-04-06 Geoffrey Keating <geoffk@apple.com>
* config.host: Add a section for generic hosts, and a subsection
for Darwin. Add a case for x86-darwin. Update ppc-darwin case.
* config/host-darwin.c: New, split out of config/rs6000/host-darwin.c.
* config/host-darwin.h: New.
* config/x-darwin: New.
* config/i386/host-i386-darwin.c: New.
* config/i386/x-darwin: New.
* config/rs6000/host-darwin.c: Include host-darwin.h.
(darwin_rs6000_gt_pch_get_address): Move to config/host-darwin.c.
(darwin_rs6000_gt_pch_use_address): Likewise.
* config/rs6000/x-darwin: Change name of .o built, update
dependencies for changes to rs6000/host-darwin.c.
2005-04-06 Ralf Corsepius <ralf.corsepius@rtems.org>
PR target/17824
* config/c4x/c4x.h (ASM_PROG, LD_PROG): Remove.
2005-04-06 Dorit Naishlos <dorit@il.ibm.com>
* tree-vect-analyze.c (vect_analyze_loop_form): Call
split_loop_exit_edge instead of loop_split_edge_with.
2005-04-06 Paolo Bonzini <bonzini@gnu.org>
* config/rs6000/altivec.md (UNSPEC_VSLW, UNSPEC_SUBS,
UNSPEC_SET_VSCR): New constants, used throughout.
(*andc3_v4sf): New.
(altivec_vspltisb, altivec_vsplitish, altivec_vsplitisw):
Replace with...
(altivec_vspltis<VI_char>): ... this pattern, using
a QImode const_int_operand for the immediate.
(abs<mode>2, absv4sf2, altivec_abss_<mode>): Rewrite as
define_expands.
2005-04-06 Ralf Corsepius <ralf.corsepius@rtems.org>
PR target/17822
* config/avr/t-avr (AR_FOR_TARGET,RANLIB_FOR_TARGET): Remove.
2005-04-06 Kelley Cook <kcook@gcc.gnu.org>
* Makefile.in (LIBGCC2_CFLAGS): Compile with -pipe.
2005-04-06 Ben Elliston <bje@au.ibm.com>
* gcc.c: Correct comment about DEFAULT_SWITCH_TAKES_ARG and
DEFAULT_WORD_SWITCH_TAKES_ARG which incorrectly reported these
macros as living in "this file" and not gcc.h.
2005-04-06 Ben Elliston <bje@au.ibm.com>
* doc/invoke.texi (Optimize Options): Mention -ftree-lrs, not
-ftree-live_range_split. Perhaps renamed at some point?
2005-04-06 Zdenek Dvorak <dvorakz@suse.cz>
PR target/20625
* tree-ssa-loop-ivopts.c (generic_type_for): New function.
(add_candidate_1): Use generic_type_for instead of unsigned_type_for.
2005-04-06 Zdenek Dvorak <dvorakz@suse.cz>
* tree-flow.h (number_of_iterations_cond): Declaration removed.
* tree-ssa-loop-niter.c (number_of_iterations_cond): Made static.
(number_of_iterations_special): New function.
(number_of_iterations_exit): Use number_of_iterations_special.
Use simplify_using_outer_evolutions only at -O3.
(number_of_iterations_cond, tree_simplify_using_condition,
simplify_using_initial_conditions, loop_niter_by_eval,
compare_trees, can_count_iv_in_wider_type_bound,
simplify_using_outer_evolutions): Use fold_build.
2005-04-05 Thomas Fitzsimmons <fitzsim@redhat.com>
* doc/install.texi (Configuration): Document --with-java-home.
2005-04-05 Richard Henderson <rth@redhat.com>
PR target/20342
PR target/20447
* config/i386/i386.c (print_operand): Handle vector zeros.
(ix86_split_to_parts): Handle CONST_VECTOR.
(ix86_hard_regno_mode_ok): Allow MMX modes in general regs.
(ix86_modes_tieable_p): Use ix86_hard_regno_mode_ok to decide
what modes to tie for MMX and SSE registers.
* config/i386/i386.h (MMX_REG_MODE_P): Remove.
* config/i386/i386.md: Extend move 0 -> xor peephole to apply
to vector modes as well.
* config/i386/predicates.md (const0_operand): Handle VOIDmode
properly as an input mode.
2005-04-05 Andrew MacLeod <amacleod@redhat.com>
* tree-ssa-operands.c (verify_abort): Use %p for pointers.
2005-04-05 Andrew MacLeod <amacleod@redhat.com>
* tree-pretty-print.c (dump_generic_node): Use %p for pointer.
2005-04-05 Jakub Jelinek <jakub@redhat.com>
* config/i386/i386.c (init_cumulative_args): For -m32 -mfpmath=sse
and local functions, set sse_nregs to 8 and float_in_sse.
(function_arg_advance, function_arg): If float_in_sse, pass
SFmode and DFmode arguments in SSE registers.
* config/i386/i386.h (CUMULATIVE_ARGS): Add float_in_sse field.
* config/i386/i386.c (ix86_value_regno): Only optimize local functions
of -funit-at-a-time.
2005-04-05 Paolo Bonzini <bonzini@gnu.org>
* config/i386/i386-protos.h (ix86_function_value): Accept two
arguments, like the target macro.
* config/i386/i386.h (FUNCTION_VALUE): Pass both arguments.
* config/i386/i386.c (ix86_function_value): Accept the second
argument of the target macro.
(ix86_function_ok_for_sibcall): Pass a function pointer to
ix86_function_value.
(ix86_function_value, ix86_libcall_value) [!TARGET_64BIT]: Adjust
call to ix86_value_regno).
(ix86_value_regno): Add support for returning floating point values
in SSE registers.
2005-04-05 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/20076
* tree-inline.c (inline_forbidden_p_1): Prevent inlining functions
that call __builtin_return or __builtin_apply_args.
2005-04-05 Andrew MacLeod <amacleod@redhat.com>
* lambda-code.c (lambda_loopnest_to_gcc_loopnest): Use update_stmt.
Use immediate use iterator.
(stmt_is_bumper_for_loop): Use immediate use iterator.
* predict.c (strip_builtin_expect): Use update_stmt.
* tree-cfg.c (update_modified_stmts): New. Call update_stmt_if_modified
on all elements of a STATEMENT_LIST.
(bsi_insert_before, bsi_insert_after): Call update_modified_stmts.
(bsi_remove): Remove imm_use links and mark the stmt as modified.
(bsi_replace): Mark stmt as modified and the update it.
* tree-complex.c (update_complex_assignment): Call mark_stmt_modified.
(expand_complex_libcal): Call update_stmt.
(expand_complex_comparison): Call mark_stmt_modified.
(expand_complex_operations_1): Call update_stmt_if_modified.
(expand_vector_operations_1): Call mark_stmt_modified.
* tree-dfa.c (compute_immediate_uses, free_df_for_stmt, free_df,
compute_immediate_uses_for_phi, compute_immediate_uses_for_stmt,
add_immediate_use, redirect_immediate_use,
redirect_immediate_uses, dump_immediate_uses, debug_immediate_uses,
dump_immediate_uses_for, debug_immediate_uses_for): Delete.
(mark_new_vars_to_rename): Call update_stmt.
* tree-dump.c (dump_option_value_in): Add "stmtaddr".
* tree-flow-inline.h (modify_stmt): Rename to mark_stmt_modified.
Ignore PHI nodes.
(unmodify_stmt): Delete.
(update_stmt): New. Force an update of a stmt.
(update_stmt_if_modified): update a stmt if it is out of date.
(get_stmt_operands): Verify stmt is NOT modified.
(stmt_modified_p): Update comment.
(delink_imm_use): Remove a use node from its immuse list.
(link_imm_use_to_list): Link a use node to a specific list.
(link_imm_use): Link a node to the correct list.
(set_ssa_use_from_ptr): Set a use node to a specific value, and insert
it in the correct list, if appropriate.
(link_imm_use_stmt): Link a use node, and set the stmt pointer.
(relink_imm_use): Link a use node in place of another node in a list.
(relink_imm_use_stmt): LInk a node in place of another node, and set
the stmt pointer.
(end_safe_imm_use_traverse): New. Terminate a safe immuse iterator.
(end_safe_imm_use_p): New. Check for the end of a safe immuse iterator.
(first_safe_imm_use): New. Initialize a safe immuse iterator.
(next_safe_imm_use): New. Proceed to next safe immuse iterator value.
(end_readonly_imm_use_p): New. Check for end of a fast immuse iterator.
(first_readonly_imm_use): New. Initialize a fast immuse iterator.
(next_readonly_imm_use): New. Get the next fast immuse iterator value.
(has_zero_uses): New. Return true if there are no uses of a var.
(has_single_use): New. Return true if there is only a single use of a
variable.
(single_imm_use): New. Return the simgle immediate use.
(num_imm_uses): New. Return the number of immediate uses.
(get_v_must_def_ops): Use is now a pointer.
(use_operand_p, get_v_may_def_op_ptr, get_vuse_op_ptr,
get_v_must_def_kill_ptr, get_phi_arg_def_ptr): Return the address of
the use node.
(get_immediate_uses, num_immediate_uses, immediate_use): Delete.
(delink_stmt_imm_use): Delink all immuses from a stmt.
(phi_arg_index_from_use): New. Return a phi arg index for a use.
* tree-flow.h (struct dataflow_d): Delete.
(immediate_use_iterator_d): New. Immediate use iterator struct.
(FOR_EACH_IMM_USE_FAST): New. Macro for read only immuse iteration.
(FOR_EACH_IMM_USE_SAFE): New. Macro for write-safe immuse iteration.
(BREAK_FROM_SAFE_IMM_USE): New. Macro for earlyu exit from write-safe
iteration.
(struct stmt_ann_d): Remove dataflow_t from struct.
* tree-if-conv.c (tree_if_conversion). Don't call free_df.
(if_convertible_phi_p): Use FAST immuse iterator.
(if_convertible_loop_p): Don't call compute_immediate_uses.
(replace_phi_with_cond_modify_expr): Call update_stmt.
* tree-into-ssa.c (mark_def_sites, ssa_mark_def_sites): Call
update_stmt_if_modified.
(rewrite_all_into_ssa): Initialize ssa operands.
* tree-loop-linear.c (linear_transform_loops): Don't call free_df or
compute_immediate_uses.
* tree-optimize.c (execute_todo): Call verify_ssa whenever the
ssa_property is available.
(execute_one_pass): Change parameters passed to execute_todo.
* tree-outof-ssa.c (rewrite_trees): Don't call modify_stmt.
(remove_ssa_form): Call fini_ssa_operands.
(insert_backedge_copies): Delete call to modify_stmt.
* tree-phinodes.c (make_phi_node): Initialize use nodes.
(release_phi_node): Delink any use nodes before releasing.
(resize_phi_node): Relink any use nodes.
(remove_phi_arg_num): Delink the use node.
(remove_phi_node): Release the ssa_name AFTER releasing the phi node.
(remove_all_phi_nodes_for): Release phi node first.
* tree-pretty-print.c (dump_generic_node): Print stmt address.
* tree-sra.c (mark_all_v_defs): Call update_stmt_if_modified.
(scalarize_use, scalarize_copy): Call update_stmt.
* tree-ssa-alias.c (compute_may_aliases): Update all modified stmts.
(compute_points_to_and_addr_escape): Call mark_stmt_modified.
* tree-ssa-cpp.c (need_imm_uses_for): Delete.
(ccp_initialize): Remove call to compute_immediate_uses.
(substitute_and_fold, execute_fold_all_builtins): Call update_stmt.
* tree-ssa-dom.c (tree_ssa_dominator_optimize): Update all modified
stmts.
(simplify_cond_and_lookup_avail_expr): Call mark_stmt_modified.
(simplify_switch_and_lookup_avail_expr): Call mark_stmt_modified.
(eliminate_redundant_computations): Call mark_stmt_modified.
(cprop_operand): Call mark_stmt_modified.
(optimize_stmt): Call update_stmt_if_modified and mark_stmt_modified.
* tree-ssa-dse.c (fix_phi_uses, fix_stmt_v_may_defs): Delete.
(dse_optimize_stmt): Use new immuse interface.
(tree_ssa_dse): Remove calls to compute_immediate_uses and free_df.
* tree-ssa-forwprop.c (need_imm_uses_for): Delete.
(substitute_single_use_vars): Use new immuse interface.
(tree_ssa_forward_propagate_single_use_vars): Remove calls to free_df
and compute_immediate_uses.
* tree-ssa-loop-im.c (single_reachable_address): Use new immuse
interface.
(rewrite_mem_refs): Call update_stmt.
(determine_lsm): Remove call to compute_imm_uses and free_df.
* tree-ssa-loop-ivcanon.c (create_canonical_iv): Call update_stmt.
(try_unroll_loop_completely): Call update_stmt.
* tree-ssa-loop-ivopts.c (rewrite_address_base): Call update_stmt.
(rewrite_use_compare): Call update_stmt.
(compute_phi_arg_on_exit): Insert each stmt before trying to process.
(rewrite_use) : Call update_stmt.
* tree-ssa-loop-manip.c (verify_loop_closed_ssa): Add arg to call.
* tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Call
update_stmt.
* tree-ssa-operands.c (NULL_USE_OPERAND_P): Remove declaration.
(allocate_use_optype, allocate_vuse_optype): Adjust allocation size.
(free_uses, free_vuses, free_v_may_defs, free_v_must_defs): Delink
use nodes.
(initialize_vuse_operand): New. Initialize a vuse operand.
(initialize_v_may_def_operand): New. Initialize a maydef operand.
(initialize_v_must_def_operand): New. Initialize a mustdef operand.
(finalize_ssa_defs): Use stmt parameter.
(correct_use_link): Ensure a use node is in the correct list, and has
the correct stmt pointer.
(finalize_ssa_uses, finalize_ssa_v_may_defs, finalize_ssa_vuses,
finalize_ssa_v_must_defs): Also initialize use nodes.
(finalize_ssa_stmt_operands): Pass extra stmt operands.
(build_ssa_operands): Seperate parsing from final operand construction.
(parse_ssa_operands): New. Parse entry point for operand building.
(swap_tree_operands): New. Swap 2 tree operands.
(update_stmt_operands): Ranamed from get_stmt_operands. Always builds
operands.
(get_expr_operands): Call swap_tree_operands when needed.
(copy_virtual_operands): Use initialize routines for virtual use ops.
(create_ssa_artficial_load_stmt): Add extra stmt parameter.
(verify_abort): New. Issue imm_use error.
(verify_imm_links): New Verify imm_use links for a var.
(dump_immediate_uses_for): New. Dump imm_uses for a var to file.
(dump_immediate_uses): New. Dump imm_uses for all vars to file.
(debug_immediate_uses): New. Dump imm_uses for all vars to stderr.
(debug_immediate_uses_for): New. Dump imm_uses for a var to stderr.
* tree-ssa-operands.h (struct use_operand_ptr): Delete.
(NULL_USE_OPERAND_P) Define.
(use_optype_d, v_def_use_operand_type, vuse_optype_d): Add immediate
use node.
(struct vuse_operand_type): New struct.
(SET_USE): Call set_ssa_use_from_ptr.
(USE_STMT): Define.
(PHI_ARG_INDEX_FROM_USE): Define.
* tree-ssa-phiopt.c (replace_phi_edge_with_variable): Set the phi
argument via SET_USE, not PHI_ARG_DEF_TREE.
* tree-ssa-pre.c (eliminate): Call update_stmt.
* tree-ssa-propagate.c (cfg_blocks_get): Use imm_use iterators. Don't
call free_df.
* tree-ssa-sink.c (all_immediate_uses_same_place): Use imm_use iterator.
(nearest_common_dominator_of_uses): Use imm_use iterator.
(statement_sink_location): Use imm_use iterator and interface.
(execute_sink_code): Don't call compute_immediate_uses or free-df.
* tree-ssa-threadupdate.c (create_edge_and_update_destination_phis): Use
PHI_ARG_DEF, not PHI_ARG_DEF_TREE.
* tree-ssa.c (verify_use, verify_phi_args): Verify some imm_use info.
(verify_ssa): Ensure no stmt is marked modify after optimization pass
if new parameter is true.
(init_tree_ssa): Don't initialize operand cache here.
(delete_tree_ssa): Don't destroy operand cache here.
(propagate_into_addr): Pass in a use pointer, return true if anything
was changed.
(replace_immediate_uses): Use imm_use iterator, call update_stmt.
(check_phi_redundancy): Use imm_use iterator.
(kill_redundant_phi_nodes): Don't call compute_immediate_uses or
free_df.
* tree-ssanames.c (make_ssa_name): Initialize imm_use node.
(release_ssa_name): Delink node and all elements in its imm_use list.
* tree-tailcall.c (adjust_return_value): Call update_stmt.
* tree-vect-analyze.c (vect_stmt_relevant_p): Use imm_use iterator.
* tree-vectorizer.c (need_imm_uses_for): Delete.
(vectorize_loops): Dont call compute_immediate_uses or free_df.
* tree.h (struct ssa_imm_use_d): Define.
(SSA_NAME_IMM_USE_NODE): Define.
(struct tree_ssa_name): Add imm_use node.
(PHI_DF): Delete.
(PHI_ARG_IMM_USE_NODE): Define.
(struct phi_arg_d): Add imm_use node.
(struct tree_phi_node): Remove struct dataflow_d element.
(TDF_STMTADDR): Define.
2005-04-05 Dale Johannesen <dalej@apple.com>
* doc/invoke.texi (Optimization Options): Remove
duplicate -fcse-follow-jumps. Add -fweb.
(-ftree-lim): Fix spelling (-ftree-loop-im, invariants).
(-fivcanon): Fix spelling (-ftree-loop-ivcanon).
2005-04-05 Per Bothner <per@bothner.com>
* tree-ssa.c (execute_early_warn_uninitialized): Pass context node
to talk_tree as 'data' parameter, rather than EXPR_LOCUS.
(warn_uninit): Get EXPR_LOCUS from context now instead.
This fixes a USE_MAPPED_LOCATION testsuite failure.
* tree-ssa.c (warn_uninitialized_var): Remove useless local.
2005-04-05 Per Bothner <per@bothner.com>
* c-decl.c (finish_function): If USE_MAPPED_LOCATION set the location
of the artification 'return 0' in main() to BUILTINS_LOCATION.
* tree-cfg.c (remove_bb): Check that location isn't BUILTINS_LOCATION
before warning.
2004-04-05 Devang Patel <dpatel@apple.com>
* config/rs600/altivec.md (altivec_vsr<VI_char>): Rename to ..
(lhsr<mode>3): ... new name.
(altivec_vsra<VI_char>): Rename to ..
(ashr<mode>3): ... new name.
* config/rs6000/rs6000.c (builtin_description): Rename shift
operations.
2004-04-05 Paolo Bonzini <bonzini@gnu.org>
* combine.c (RTL_HOOKS_GEN_LOWPART_NO_EMIT): Use
gen_lowpart_for_combine.
* cse.c (gen_lowpart_if_possible): Move...
* rtlhooks.c (gen_lowpart_if_possible): ... here. Also try
gen_lowpart_SUBREG.
(gen_lowpart_no_emit_general): Use it.
2005-04-05 Eric Botcazou <ebotcazou@libertysurf.fr>
* config/sparc/sparc.c (TARGET_ASM_FILE_END): Undefine before
overriding.
2005-04-05 Paolo Bonzini <bonzini@gnu.org>
* system.h: Fix typo.
2005-04-05 Bernd Schmidt <bernd.schmidt@analog.com>
* config/bfin/bfin-modes.def: New file.
* config/bfin/bfin-protos.h: New file.
* config/bfin/bfin.c: New file.
* config/bfin/bfin.h: New file.
* config/bfin/bfin.md: New file.
* config/bfin/bfin.opt: New file.
* config/bfin/crti.s: New file.
* config/bfin/crtn.s: New file.
* config/bfin/elf.h: New file.
* config/bfin/lib1funcs.asm: New file.
* config/bfin/predicates.md: New file.
* config/bfin/t-bfin: New file.
* config/bfin/t-bfin-elf: New file.
* doc/extend.texi (exception_handler, kspisusp, nesting, nmi_handler):
Document new attributes.
(interrupt, interrupt_handler, saveall): Update documentation for
these attributes.
* doc/install.texi (Specific): Add entry for the Blackfin.
* doc/invoke.texi (Blackfin Options): New section.
* doc/md.texi (Blackfin family): New section to document constraints.
* config.gcc: Add bfin*-* and bfin*-elf configurations.
2005-04-05 Olivier Hainque <hainque@adacore.com>
* config/mips/iris6.h (DWARF_FRAME_RETURN_COLUMN): Redefine to
match what the system unwinder expects.
* config/mips/mips.c (mips_frame_set): If we're saving the return
address register and the dwarf return address column number differs
from the hard register number, adjust the note reg to refer to the
former.
2004-04-05 Richard Sandiford <rsandifo@redhat.com>
* config/mn10300/mn10300-protos.h (mn10300_override_options): Declare.
* config/mn10300/mn10300.h (target_flags, TARGET_MULT_BUG)
(TARGET_SWITCHES, TARGET_DEFAULT): Delete.
(processor_type): New enum.
(mn10300_processor): New variable.
(TARGET_AM33, TARGET_AM33_2): Redefine in terms of mn10300_processor.
(PROCESSOR_DEFAULT, OVERRIDE_OPTIONS): New macros.
* config/mn10300/linux.h (TARGET_SWITCHES, TARGET_DEFAULT): Delete.
(PROCESSOR_DEFAULT): New macro.
* config/mn10300/mn10300.c (mn10300_processor): New variable.
(TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
(mn10300_handle_option, mn10300_override_options): New functions.
* config/mn10300/mn10300.opt: New file.
2005-04-05 Eric Botcazou <ebotcazou@libertysurf.fr>
Sebastian Pop <sebastian.pop@cri.ensmp.fr>
PR tree-optimization/19903
* tree-chrec.c (chrec_convert): Return chrec_dont_know for constants
that don't fit in their type after conversion.
2005-04-05 Uros Bizjak <uros@kss-loka.si>
PR target/20421
* config/i386/i386.md (frndintxf2_floor, frndintxf2_ceil)
(frndintxf2_trunc, frndintxf2_mask_pm): Add FLAGS_REG clobber.
Allocate local stack slots here. Set ix86_optimize_mode_switching.
flag here. Implement using define_insn_and_split.
(frndintxf2_floor_i387, frndintxf2_ceil_i387, frndintxf2_trunc_i387)
(frndintxf2_mask_pm_i387): New insn patterns.
(floorsf2, floordf2, floorxf2): Remove local stack slot allocations.
Do not set ix86_optimize_mode_switching flag.
(ceilsf2, ceildf2, ceilxf2): Same.
(btruncsf2, btruncdf2, btruncxf2): Same.
(nearbyintsf2, nearbyintdf2, nearbyintxf2): Same.
2005-04-05 Ian Lance Taylor <ian@airs.com>
PR debug/9963
* config/i386/cygming.h (ASM_OUTPUT_EXTERNAL): Pass DECL to
i386_pe_record_external_function.
(i386_pe_record_external_function): Update declaration.
* config/i386/winnt.c (struct extern_list): Add decl field.
(i386_pe_record_external_function): Add decl parameter.
(i386_pe_file_end): Check TREE_ASM_WRITTEN on decl, not
identifier.
* config/i386/i386-protos.h (i386_pe_record_external_function):
Update declaration.
2005-04-05 Kazu Hirata <kazu@cs.umass.edu>
* config/m68k/m68k-protos.h: Add a prototype for
valid_dbcc_comparison_p_2.
* config/m68k/m68k.c (not_sp_operand, symbolic_operand,
extend_operator, const_uint32_operand, const_sint32_operand,
general_src_operand, nonimmediate_src_operand,
memory_src_operand, post_inc_operand, pre_dec_operand,
pcrel_address): Move to predicates to predicates.md.
* config/m68k/m68k.h (PREDICATE_CODES): Remove.
* config/m68k/m68k.md: Include predicates.md.
* config/m68k/predicates.md: New.
2005-04-04 Roger Sayle <roger@eyesopen.com>
* config/i386/i386.md (*truncdfsf2_i387_1): New pattern.
* fold-const.c (maybe_lvalue_p): Delete orphaned comment.
2005-04-04 Ian Lance Taylor <ian@airs.com>
* c-typeck.c (struct c_switch): Rename switch_stmt field to
switch_expr.
(c_start_case): Build SWITCH_EXPR, not SWITCH_STMT.
(do_case): Use SWITCH_COND rather than SWITCH_STMT_COND.
(c_finish_case): Use SWITCH_BODY rather than SWITCH_STMT_BODY.
Call c_do_switch_expr_warnings rather than c_do_switch_warnings.
* c-common.c (c_do_switch_warnings_1): New static function broken
out of c_do_switch_warnings.
(c_do_switch_warnings): Call c_do_switch_warnings_1.
(c_do_switch_expr_warnings): New function.
* c-common.h (c_do_switch_expr_warnings): Declare.
2005-04-04 David Edelsohn <edelsohn@gnu.org>
Daniel Jacobowitz <dan@codesourcery.com>
* tree-eh.c (tree_could_trap_p): Allow non-constant floating point
trapping divide.
* rtlanal.c (may_trap_p): Same.
2005-04-04 Dale Johannesen <dalej@apple.com>
* ChangeLog: remove reference to ChangeLog.12.
2005-04-05 Hans-Peter Nilsson <hp@axis.com>
CRIS epilogue as RTL.
* config/cris/cris.md: Change all 0 in unspec 0 to
CRIS_UNSPEC_PLT.
(CRIS_UNSPEC_PLT, CRIS_UNSPEC_FRAME_DEALLOC): New constants.
("*cris_load_multiple", "cris_frame_deallocated_barrier"): New
patterns.
("return"): Change to define_expand. Call cris_expand_return for
actual expansion.
("*return_expanded"): New pattern.
("epilogue"): New define_expand.
* config/cris/cris.h (PREDICATE_CODES): Add
cris_load_multiple_op.
* config/cris/cris.c (ASSERT_PLT_UNSPEC): Correct test for unspec
type.
(enum cris_retinsn_type): New.
(struct machine_function): New member return_type.
(TARGET_ASM_FUNCTION_EPILOGUE): Don't override.
(cris_target_asm_function_epilogue): Remove, moving RTLified
contents to...
(cris_expand_epilogue): New function.
(cris_reg_saved_in_regsave_area, cris_movem_load_rest_p,
(cris_gen_movem_load, cris_load_multiple_op)
(cris_return_address_on_stack_for_return, cris_expand_return): New
functions.
(cris_target_asm_function_prologue)
(cris_initial_frame_pointer_offset): Call
cris_reg_saved_in_regsave_area instead of complicated expression.
Call cris_return_address_on_stack instead of an expression.
(cris_print_operand) <case 'o', case 'O'>: New cases.
(cris_return_address_on_stack): Change return-type to bool.
(cris_simple_epilogue): Ditto. Return false if registers are
saved.
* config/cris/cris-protos.h (cris_simple_epilogue)
(cris_return_address_on_stack): Adjust prototype return type.
(cris_gen_movem_load, cris_expand_epilogue, cris_expand_return)
(cris_return_address_on_stack_for_return): New prototypes.
2005-04-04 Kazu Hirata <kazu@cs.umass.edu>
* config/frv/frv.h (PREDICATE_CODES): Add CONST to
gpr_or_int12_operand.
* config/frv/frv-protos.h: Add a prototype to
frv_legitimate_memory_operand and frv_const_unspec_p.
(frv_unspec): Move from frv.c.
* config/frv/frv.c (frv_unspec): Move to frv-protos.h.
(frv_const_unspec_p, frv_legitimate_memory_operand_): Export.
(ldd_address_operand, fdpic_fptr_operand, frv_load_operand,
gpr_or_fpr_operand, gpr_or_int12_operand,
gpr_fpr_or_int12_operand, fpr_or_int6_operand,
gpr_or_int10_operand, gpr_or_int_operand, int12_operand,
int6_operand, int5_operand, uint5_operand, uint4_operand,
uint1_operand, int_2word_operand, uint16_operand,
upper_int16_operand, integer_register_operand,
gpr_no_subreg_operand, fpr_operand, even_reg_operand,
odd_reg_operand, even_gpr_operand, odd_gpr_operand,
quad_fpr_operand, even_fpr_operand, odd_fpr_operand,
dbl_memory_one_insn_operand, dbl_memory_two_insn_operand,
move_destination_operand, movcc_fp_destination_operand,
frv_function_symbol_referenced_p, move_source_operand,
condexec_dest_operand, condexec_source_operand,
reg_or_0_operand, lr_operand, fdpic_operand, got12_operand,
const_unspec_operand, gpr_or_memory_operand,
gpr_or_memory_operand_with_scratch, fpr_or_memory_operand,
icc_operand, fcc_operand, cc_operand, icr_operand,
fcr_operand, cr_operand, call_operand, sibcall_operand,
symbolic_operand, relational_operator,
integer_relational_operator, float_relational_operator,
ccr_eqne_operator, minmax_operator,
condexec_si_binary_operator, condexec_si_media_operator,
condexec_si_divide_operator, condexec_si_unary_operator,
condexec_sf_conv_operator, condexec_sf_add_operator,
condexec_memory_operand, intop_compare_operator, acc_operand,
even_acc_operand, quad_acc_operand, accg_operand: Move to
predicates.md.
* config/frv/frv.h (PREDICATE_CODES): Remove.
* config/frv/frv.md: Include predicates.md.
* config/frv/predicates.md: New.
2004-04-04 Richard Sandiford <rsandifo@redhat.com>
PR target/19537
* Makefile.in (tree-ssa-loop-ivopts.o): Depend on langhooks.h.
* tree-ssa-loop-ivopts.c: Include langhooks.h.
(add_standard_iv_candidates_for_size): New function, extracting code
from add_standard_iv_candidates and parameterizing it by type size.
(add_standard_iv_candidates): Use add_standard_iv_candidates_for_size.
2004-04-04 Richard Sandiford <rsandifo@redhat.com>
* system.h (GCOV_SIZE_TYPE): Unposion.
* gcov-io.h (GCOV_TYPE_NODE): Delete, replacing with...
(GCOV_TYPE_SIZE): ...this new macro.
* coverage.h (get_gcov_type, GCOV_TYPE_NODE): Declare.
* coverage.c (get_gcov_type, get_gcov_unsigned_t): New functions.
(rtl_coverage_counter_ref): Use GCOV_TYPE_SIZE.
(build_fn_info_type, build_fn_info_value, build_ctr_info_type)
(build_ctr_info_value, build_gcov_info): Use get_gcov_unsigned_t
instead of unsigned_intSI_type_node.
* rtl-profile.c (rtl_gen_interval_profiler, rtl_gen_pow2_profiler)
(rtl_gen_one_value_profiler_no_edge_manipulation)
(rtl_gen_const_delta_profiler): Use GCOV_TYPE_SIZE.
* value-prof.c: Include coverage.h.
2005-04-02 Daniel Berlin <dberlin@dberlin.org>
Diego Novillo <dnovillo@redhat.com>
Fix PR tree-optimization/20703
Fix PR tree-optimization/20725
* tree-ssa-pre.c (phi_translate): Handle tcc_comparison.
(create_expression_by_pieces): Ditto.
(valid_in_set): Ditto. Also handle tcc_declaration.
(find_or_generate_expression): Handle comparison class.
(insert_into_preds_of_block): Ditto.
(insert_aux): Ditto.
(create_value_expr_from): Handle comparison class, recursively
handle reference nodes.
(compute_avail): Handle comparison classes, rewrite a little cleaner.
(execute_pre): Fix spacing.
(do_fre): Renamed to execute_fre.
2005-04-04 Eric Botcazou <ebotcazou@libertysurf.fr>
* doc/invoke.texi (SPARC options): Document that
-mlittle-endian is not supported on Linux either.
2005-04-04 Eric Botcazou <ebotcazou@libertysurf.fr>
PR target/4198
PR target/12027
* config.gcc (Obsolete configurations): Remove
sparclite-*-coff*, sparclite-*-elf* and sparc86x-*-elf*.
(sparclite-*-coff*): Delete.
(sparclite-*-elf*): Likewise.
(sparc86x-*-elf*): Likewise.
(target_cpu_default) <sparc*-*-*>: Remove sparc86x.
* config/sparc/lite.h: Delete.
* config/sparc/litecoff.h: Likewise.
* config/sparc/liteelf.h: Likewise.
* config/sparc/sp86x-elf.h: Likewise.
* config/sparc/t-sparclite: Likewise.
* config/sparc/t-sp86x: Likewise.
2005-04-04 Adrian Straetling <straetling@de.ibm.com>
* config/s390/s390-protos.h: (s390_comparison,
s390_alc_comparison, s390_slb_comparison, const0_operand,
consttable_operand, larl_operand, s_operand,
shift_count_operand, bras_sym_operand, load_multiple_operation,
store_multiple_operation, s390_plus_operand): Remove prototypes.
(s390_legitimate_address_without_index_p): New prototype.
* config/s390/s390.c: (SYMBOL_FLAG_ALIGN1, DISP_IN_RANGE): Move
to s390.h.
(s390_comparison, s390_alc_comparison, s390_slb_comparison,
const0_operand, consttable_operand, larl_operand, s_operand,
shift_count_operand, bras_sym_operand, load_multiple_operation,
store_multiple_operation, s390_plus_operand): Move to
predicates.md.
(check_mode): Remove.
(s390_branch_condition_mask): Remove 'static'. Move prototype to
s390-protos.h.
(s390_legitimate_address_without_index_p): New.
* config/s390/s390.h (PREDICATE_CODES): Remove.
* config/s390/s390.md: Include predicates.md.
* config/s390/predicates.md: New.
2005-04-04 Eric Botcazou <ebotcazou@libertysurf.fr>
PR target/20446
* config/sparc/sparc.h (NEED_INDICATE_EXEC_STACK): Define to 0.
* config/sparc/linux.h (TARGET_ASM_FILE_END): Delete.
(NEED_INDICATE_EXEC_STACK): Define to 1.
* config/sparc/linux64.h (TARGET_ASM_FILE_END): Delete.
(NEED_INDICATE_EXEC_STACK): Define to 1.
* config/sparc/sparc.c (TARGET_ASM_FILE_END): Set to sparc_file_end.
(add_pc_to_pic_symbol): Rename into pic_helper_symbol.
(add_pc_to_pic_symbol_name): Rename into pic_helper_symbol_name.
(pic_helper_emitted_p): New global.
(emit_pic_helper): New function extracted from...
(load_pic_register): ...here. Add 'delay_pic_helper' parameter.
Do not call emit_pic_helper if delay_pic_helper is true.
(sparc_expand_prologue): Pass 'false' to load_pic_register.
(sparc_output_mi_thunk): Pass 'true' to load_pic_register.
(sparc_file_end): New function.
2005-04-04 Kazu Hirata <kazu@cs.umass.edu>
* config/mcore/mcore-protos.h: Remove the prototypes for
mcore_arith_reg_operand, mcore_general_movsrc_operand,
mcore_general_movdst_operand, mcore_reload_operand,
mcore_arith_J_operand, mcore_arith_K_operand,
mcore_arith_K_operand_not_0, mcore_arith_M_operand,
mcore_arith_K_S_operand, mcore_arith_imm_operand,
mcore_arith_any_imm_operand, mcore_arith_O_operand,
mcore_literal_K_operand, mcore_addsub_operand,
mcore_compare_operand, mcore_load_multiple_operation,
mcore_store_multiple_operation, mcore_call_address_operand.
Add a prototype for const_ok_for_mcore.
* config/mcore/mcore.c (mcore_call_address_operand,
mcore_general_movsrc_operand, mcore_general_movdst_operand,
mcore_arith_reg_operand, mcore_reload_operand,
mcore_arith_J_operand, mcore_arith_K_operand,
mcore_arith_K_operand_not_0, mcore_arith_K_S_operand,
mcore_arith_M_operand, mcore_arith_imm_operand,
mcore_arith_any_imm_operand, mcore_arith_O_operand,
mcore_literal_K_operand, mcore_addsub_operand,
mcore_compare_operand, mcore_load_multiple_operation,
mcore_store_multiple_operation): Move to predicates.md.
(const_ok_for_mcore): Export.
* config/mcore/mcore.h (PREDICATE_CODES): Remove.
* config/mcore/mcore.md: Include predicates.md.
* config/mcore/predicates.md: New.
* config/mcore/predicates.md: Fix a comment typo.
2005-04-04 Andreas Krebbel <krebbel1@de.ibm.com>
Adrian Straetling <straetling@de.ibm.com>
* config/s390/2064.md ("z_mul", "z_inf"): New insn reservations.
* config/s390/2084.md ("x_mul_hi", "x_mul_sidi", "x_div"): Likewise.
* config/s390/s390.md ("imulhi", "imulsi", "imuldi"): Added to "type"
attribute.
("imul"): Removed from "type" attribute.
("*muldi3_sign", "muldi3"): Changed type to imuldi.
("mulsi3/1", "mulsi3/3", "mulsi/4", "mulsidi3", "umulsidi3"):
Changed type to imulsi.
("*mulsi3_sign", "mulsi3/2"): Changed type to imulhi.
2005-04-04 Richard Sandiford <rsandifo@redhat.com>
* config/mcore/mcore.h (target_flags, HARDLIT_BIT, ALIGN8_BIT, DIV_BIT)
(RELAX_IMM_BIT, W_FIELD_BIT, OVERALIGN_FUNC_BIT, CGDATA_BIT)
(SLOW_BYTES_BIT, LITTLE_END_BIT, M340_BIT, TARGET_HARDLIT)
(TARGET_DIV, TARGET_RELAX_IMM, TARGET_W_FIELD, TARGET_OVERALIGN_FUNC)
(TARGET_CG_DATA, TARGET_SLOW_BYTES, TARGET_LITTLE_END, TARGET_M340)
(TARGET_SWITCHES, mcore_stack_increment_string)
(TARGET_OPTIONS): Delete.
(TARGET_DEFAULT, OPTIMIZATION_OPTIONS): Use MASK_* constants rather
than *_BIT constants.
(TARGET_8ALIGN): #undef old definition before redefining to 1.
* config/mcore/mcore.c (mcore_stack_increment_string): Delete.
(TARGET_DEFAULT_TARGET_FLAGS): Override default to TARGET_DEFAULT.
(mcore_override_options): Delete mcore_stack_increment code.
Change use of M340_BIT to MASK_M340.
* config/mcore/mcore.opt: New file.
2005-04-04 Ian Lance Taylor <ian@airs.com>
* config/arm/arm.c (replace_symbols_in_block): Remove static
function.
2005-04-04 Kazu Hirata <kazu@cs.umass.edu>
* config/fr30/fr30-protos.h: Remove the prototypes for
stack_add_operand, add_immediate_operand,
high_register_operand, low_register_operand, call_operand,
di_operand, and nonimmediate_di_operand.
* config/fr30/fr30.c (stack_add_operand,
add_immediate_operand, high_register_operand,
low_register_operand, call_operand, di_operand,
nonimmediate_di_operand): Move to predicates.md.
* config/fr30/fr30.h (PREDICATE_CODES): Remove.
* config/fr30/fr30.md: Include predicates.md.
* config/fr30/predicates.md: New.
* config/mcore/mcore.h (PREDICATE_CODES): Add SYMBOL_REF and
LABEL_REF to mcore_general_movsrc_operand. Add SYMBOL_REF to
mcore_call_address_operand.
* config/sh/sh.h (PREDICATE_CODES): Add CONST to
general_movsrc_operand.
2005-04-04 Alan Modra <amodra@bigpond.net.au>
* passes.c (rest_of_handle_final): NULL unlikely_text_section_name
after freeing.
2005-04-04 Richard Earnshaw <richard.earnshaw@arm.com>
PR target/14812
* arm.c (arm_select_cc_mode): Return CC_Zmode when comparing against
a negated value.
2005-04-04 Richard Henderson <rth@redhat.com>
Jakub Jelinek <jakub@redhat.com>
PR rtl-optimization/16104
* fold-const.c (fold_unary): Fix folding of vector conversions.
2005-04-04 Richard Sandiford <rsandifo@redhat.com>
* config.gcc (xstormy16-*-elf): Set extra_options.
* config/stormy16/stormy16.h (target_flags, TARGET_SWITCHES): Delete.
* config/stormy16/stormy16.opt: New file.
2005-04-04 Richard Sandiford <rsandifo@redhat.com>
* config/pdp11/pdp11.h (target_flags, TARGET_SWITCHES, TARGET_DEFAULT)
(TARGET_FPU, TARGET_SOFT_FLOAT, TARGET_AC0, TARGET_NO_AC0, TARGET_45)
(TARGET_BCOPY_BUILTIN, TARGET_INT16, TARGET_INT32, TARGET_FLOAT32)
(TARGET_FLOAT64, TARGET_ABSHI_BUILTIN, TARGET_BRANCH_EXPENSIVE)
(TARGET_BRANCH_CHEAP, TARGET_SPLIT, TARGET_NOSPLIT)
(TARGET_UNIX_ASM): Delete.
(TARGET_40_PLUS): Redefine in terms of TARGET_40 and TARGET_45.
* config/pdp11/2bsd.h (TARGET_UNIX_ASM_DEFAULT): Use MASK_UNIX_ASM.
* config/pdp11/pdp11.c (pdp11_handle_option): New function.
(TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
* config/pdp11/pdp11.opt: New file.
2005-04-03 Roger Sayle <roger@eyesopen.com>
Alexandre Oliva <aoliva@redhat.com>
PR c++/19199
* fold-const.c (non_lvalue): Split tests into...
(maybe_lvalue_p): New function.
(fold_cond_expr_with_comparison): Preserve lvalue-ness for the
C++ front-end prior to lowering into gimple form.
2005-04-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* builtins.def (BUILT_IN_STPNCPY, BUILT_IN_STRCASECMP,
BUILT_IN_STRNCASECMP): New.
* doc/extend.texi: Document stpncpy, strcasecmp, strncasecmp
and strndup.
2005-04-03 Richard Earnshaw <richard.earnshaw@arm.com>
PR target/14812
* arm.md (addsi3_compare0_for_combiner): Delete.
(addsi3_compare0_scratch_for_combiner): Delete.
(cmpsi_neg_shiftsi): Delete.
(compare_negsi_si): New pattern.
(cmpsi_negshiftsi_si): New pattern.
(negated_cbranchsi4): Restrict to equality_operator.
* arm.md (movhi_insn_arch4): delete trailing white space from assembler
template.
2005-04-03 Kazu Hirata <kazu@cs.umass.edu>
* cfghooks.c, cfgrtl.c, modulo-sched.c, config/i386/winnt.c:
Fix comment typos.
* doc/install.texi: Fix a typo.
2005-04-03 Steven Bosscher <stevenb@suse.de>
PR middle-end/20648
* bb-reorder.c (duplicate_computed_gotos): Do not unfactor
a computed goto if the edge to the computed goto block has
incoming abnormal edges. Clarify how the function works.
2005-04-03 Nathan Sidwell <nathan@codesourcery.com>
* params.c (set_param_value): Use gcc_assert & gcc_unreachable.
* passes.c (open_dump_file, rest_of_handle_final): Likewise.
* postreload-gcse.c (expr_equiv_p, oprs_unchanged_p,
hash_scan_set, reg_set_between_after_reload_p,
reg_used_between_after_reload_p, get_avail_load_store_reg,
eliminate_partially_redundant_load): Likewise.
* postreload.c (reload_cse_simplify_set,
reload_combine_note_use): Likewise.
* predict.c (predict_insn, expected_value_to_br_prob,
propagate_freq, expensive_function_p): Likewise.
* print-rtl.c (print_rtx): Likewise.
* profile.c (instrument_edges, instrument_values,
compute_branch_probabilities, branch_prob, union_groups,
tree_register_profile_hooks, rtl_register_profile_hooks): Likewise.
* protoize.c (in_system_include_dir, file_could_be_converted,
file_normally_convertible, gen_aux_info_file, seek_to_line,
do_cleaning): Likewise.
* tree-ssa-alias.c (collect_points_to_info_r): Likewise.
* tree-ssa-ccp.c (execute_fold_all_builtins): Likewise.
* tree-ssa-loop-ivopts.c (produce_memory_decl_rtl): Likewise.
2005-04-03 Mostafa Hagog <mustafa@il.ibm.com>
* cfg.c (clear_bb_flags): Don't clear BB_DISABLE_SCHEDULE.
* modulo-sched.c (undo_replace_buff_elem): New structure.
(kernel_number_of_cycles, ps_unschedule_node,
undo_generate_reg_moves,free_undo_replace_buff,
undo_permute_partial_schedule, loop_single_full_bb_p,
SIMPLE_SMS_LOOP_P, loop_canon_p, canon_loop,
build_loops_structure, get_sched_window): New.
(generate_reg_moves): Return undo_replace_buff_elem and other
fixes.
(generate_prolog_epilog): Remove old loop versioning.
(sms_schedule): Use loop information and loop_version.
(sms_schedule_by_order): Split part of it to get_sched_window.
* passes.c (rest_of_handle_sms): call cfg_layout_initialize
cfg_layout_finalize and free_dominance_info before/after SMS.
2005-04-03 Mostafa Hagog <mustafa@il.ibm.com>
* cfghooks.c (lv_flush_pending_stmts,
cfg_hook_duplicate_loop_to_header_edge, extract_cond_bb_edges,
lv_adjust_loop_header_phi, lv_add_condition_to_bb): New.
* cfghooks.h (cfg_hook_duplicate_loop_to_header_edge,
lv_add_condition_to_bb,
lv_adjust_loop_header_phi, extract_cond_bb_edges,
flush_pending_stmts): New in cfg_hooks structure.
(cfg_hook_duplicate_loop_to_header_edge, lv_flush_pending_stmts,
extract_cond_bb_edges, lv_adjust_loop_header_phi,
lv_add_condition_to_bb): New declarations.
* cfgloop.h (duplicate_loop_to_header_edge): Change return type to
bool.
(loop_version): Declare.
* cfgloopmanip.c (cfghooks.h): Include.
(duplicate_loop_to_header_edge): Change return type to bool.
(loop_version, lv_adjust_loop_entry_edge): Move here.
* cfgrtl.c (cfgloop.h): Include.
(rtl_verify_flow_info_1): Fix.
(rtl_lv_add_condition_to_bb, rtl_extract_cond_bb_edges): New.
(rtl_cfg_hooks, cfg_layout_rtl_cfg_hook): Add hooks to
initialization.
* tree-cfg.c (tree_lv_adjust_loop_header_phi,
tree_lv_add_condition_to_bb): New.
(tree_cfg_hooks): Add new hooks to initialization.
* tree-ssa-loop-manip.c (lv_adjust_loop_header_phi,
lv_adjust_loop_entry_edge, tree_ssa_loop_version): Remove.
2005-04-03 Kazu Hirata <kazu@cs.umass.edu>
* config/stormy16/stormy16.h (PREDICATE_CODES): Add SUBREG to
xstormy16_below100_or_register,
xstormy16_splittable_below100_or_register, and
nonimmediate_nonstack_operand.
* config/stormy16/stormy16-protos.h: Remove the prototypes for
xstormy16_ineqsi_operator, equality_operator,
inequality_operator, shift_operator,
xstormy16_below100_operand, xstormy16_below100_or_register,
xstormy16_splittable_below100_or_register,
xstormy16_onebit_set_operand, xstormy16_onebit_clr_operand.
* config/stormy16/stormy16.c (xstormy16_ineqsi_operator,
equality_operator, inequality_operator,
xstormy16_below100_operand, xstormy16_below100_or_register,
xstormy16_splittable_below100_or_register,
xstormy16_onebit_set_operand, xstormy16_onebit_clr_operand,
nonimmediate_nonstack_operand, shift_operator): Move to
predicates.md.
* config/stormy16/stormy16.h (PREDICATE_CODES): Remove.
* config/stormy16/stormy16.md: Include predicates.md.
* config/stormy16/predicates.md: New.
2005-04-02 Kazu Hirata <kazu@cs.umass.edu>
* config/iq2000/iq2000.c (uns_arith_operand, arith_operand,
small_int, large_int, reg_or_0_operand, simple_memory_operand,
equality_op, cmp_op, pc_or_label_operand, call_insn_operand,
move_operand, power_of_2_operand): Move to predicates.md.
* config/iq2000/iq2000.h (SPECIAL_MODE_PREDICATES,
PREDICATE_CODE): Remove.
* config/iq2000/iq2000.md: Include predicates.md.
* config/iq2000/predicates.md: New.
2005-04-02 Richard Sandiford <rsandifo@redhat.com>
* config/m68hc11/m68hc11.h (target_flags, MASK_SHORT)
(MASK_AUTO_INC_DEC, MASK_M6811, MASK_M6812, MASK_M68S12)
(MASK_NO_DIRECT_MODE, MASK_MIN_MAX, MASK_LONG_CALLS)
(TARGET_SHORT, TARGET_M6811, TARGET_M6812, TARGET_M68S12)
(TARGET_AUTO_INC_DEC, TARGET_MIN_MAX, TARGET_NO_DIRECT_MODE)
(TARGET_LONG_CALLS, TARGET_SWITCHES, TARGET_OPTIONS)
(SUBTARGET_SWITCHES, SUBTARGET_OPTIONS, m68hc11_regparm_string)
(m68hc11_reg_alloc_order, m68hc11_soft_reg_count)
(TARGET_M68HC11): Delete.
(TARGET_DEFAULT): Change the default setting from MASK_M6811 to 0.
* config/m68hc11/m68hc12.h (TARGET_M68HC12): Delete.
* config/m68hc11/m68hc11.c (m68hc11_regparm_string)
(m68hc11_reg_alloc_order, m68hc11_soft_reg_count)
(nb_soft_regs): Delete.
(TARGET_DEFAULT_TARGET_FLAGS): Override default with TARGET_DEFAULT.
(m68hc11_override_options): Remove the code that caters for MASK_M6811
and MASK_M6812 being set simultaneously. Change the code that sets
the default m68hc11_soft_reg_count to use integers instead of strings.
(m68hc11_conditional_register_usage, hard_regno_mode_ok): Use
m68hc11_soft_reg_count (which now has an int type) as the number
of soft registers.
* config/m68hc11/m68hc11.opt: New file.
2005-04-02 Kazu Hirata <kazu@cs.umass.edu>
* config/fr30/fr30.h (PREDICATE_CODES): Remove
fp_displacement_operand, sp_displacement_operand.
* config/m68hc11/m68hc11-protos.h: Add a prototype for
m68hcc_auto_inc_p.
Remove the prototypes for tst_operand, cmp_operand,
stack_register_operand, d_register_operand,
hard_addr_reg_operand, splitable_operand,
m68hc11_logical_operator, m68hc11_arith_operator,
m68hc11_non_shift_operator, m68hc11_shift_operator,
m68hc11_unary_operator, m68hc11_eq_compare_operator,
non_push_operand, hard_reg_operand, and
reg_or_some_mem_operand.
* config/m68hc11/m68hc11.c (m68hcc_auto_inc_p): Make it
extern.
(tst_operand, cmp_operand, non_push_operand,
splitable_operand, reg_or_some_mem_operand,
stack_register_operand, d_register_operand,
hard_addr_reg_operand, hard_reg_operand,
m68hc11_eq_compare_operator, m68hc11_logical_operator,
m68hc11_arith_operator, m68hc11_non_shift_operator,
m68hc11_shift_operator, m68hc11_unary_operator): Move to
predicates.md.
* config/m68hc11/m68hc11.h (PREDICATE_CODES): Remove.
* config/m68hc11/m68hc11.md: Include predicates.md.
* config/m68hc11/predicates.md: New.
2005-04-02 Alexandre Oliva <aoliva@redhat.com>
PR debug/19345
* dwarf2out.c (add_abstract_origin_attribute): Revert accidental
change checked in along with 2005-03-03's patch for debug/20253.
* tree-inline.c (remap_type): Remap TYPE_STUB_DECL.
(remap_decl): Insert type decl in map earlier.
2005-04-02 Alexandre Oliva <aoliva@redhat.com>
PR tree-optimization/20640
* tree-ssa-dce.c (remove_dead_stmt): Don't redirect edge to
post-dominator if it has phi nodes.
(eliminate_unnecessary_stmts): Remove dead phis in all blocks
before dead statements.
2005-04-02 Alexandre Oliva <aoliva@redhat.com>
PR middle-end/20491
* final.c (alter_subreg): Don't call subreg_regno for a non-REG.
2005-04-02 Alexandre Oliva <aoliva@redhat.com>
PR rtl-optimization/20290
* loop.c (for_each_insn_in_loop): Don't assume the loop body runs
in every iteration if the entry point is the exit test.
2005-04-02 Hans-Peter Nilsson <hp@axis.com>
* config/cris/cris.md (attribute "length"): Define.
2005-04-02 Geoffrey Keating <geoffk@apple.com>
* config/rs6000/predicates.md (indexed_or_indirect_operand): New.
(word_offset_memref_operand): New.
* config/rs6000/rs6000-protos.h (word_offset_memref_operand): Delete.
(indexed_or_indirect_operand): Delete.
* config/rs6000/rs6000.c (word_offset_memref_operand): Delete.
(indexed_or_indirect_operand): Delete.
* config/rs6000/t-darwin8: Comment out ppc64 multilib.
PR 20650
* config/rs6000/rs6000.md (fix_truncdfsi2): Make destination
a register.
* config/rs6000/t-darwin (TARGET_LIBGCC2_CFLAGS): Add -pipe.
* config/t-darwin (TARGET_LIBGCC2_CFLAGS): Likewise.
2005-04-01 Jan-Benedict Glaw <jbglaw@lug-owl.de>
* config/vax/vax.md: Spellcheck, fix whitespace.
2005-04-01 Ian Lance Taylor <ian@airs.com>
* gcc.c: Don't include <sys/resource.h> or declare getrusage.
(rus, prus): Remove static variables.
(execute): Use pex_run/pex_get_status rather than pexecute/pwait.
(process_command): Permit report_times and use_pipes together.
2005-04-01 Joseph S. Myers <joseph@codesourcery.com>
* c-decl.c (validate_proto_after_old_defn): Look at
TYPE_MAIN_VARIANT of argument types.
2005-04-01 Paul Brook <paul@codesourcery.com>
* config/arm/arm.c (thumb_call_via_label): Include space for SP.
(arm_output_function_epilogue): Allow call_via_SP.
(thumb_call_via_reg, arm_file_end): Ditto.
* config/arm/arm.h (struct machine_function): Include space for SP.
(thumb_call_via_label): Update declaration.
2005-04-01 Ian Lance Taylor <ian@airs.com>
* final.c (final_scan_insn): Revert part of 2005-03-30 patch: when
doing a peephole optimization, once again put any notes in the
proper position.
2005-04-01 Kazu Hirata <kazu@cs.umass.edu>
* bb-reorder.c, fold-const.c, varasm.c: Fix comment typos.
2005-04-01 Nathan Sidwell <nathan@codesourcery.com>
* local-alloc.c (update_equiv_regs): Use gcc_assert, gcc_unreachable.
(block_alloc, find_free_reg): Likewise.
* loop-doloop.c (doloop_modify): Likewise.
* loop-invariant.c (record_use): Likewise.
* loop-iv.c (get_biv_step_1, get_biv_step, iv_analyze,
get_iv_value, canon_condition, eliminate_implied_condition,
eliminate_implied_condition, simplify_using_initial_values,
shorten_into_mode, canonicalize_iv_subregs,
iv_number_of_iterations): Likewise.
* loop-unroll.c (expand_var_during_unrolling): Likewise.
* loop-unswitch.c (compare_and_jump_seq, unswitch_single_loop,
unswitch_loop): Likewise.
* loop.c (INSN_LUID, loop_optimize, rtx_equal_for_loop_p,
move_movables, replace_call_address, find_and_verify_loops,
rtx_equal_for_prefetch_p, fold_rtx_mult_add, loop_iterations,
record_giv, final_giv_value, general_induction_var,
simplify_giv_expr, extension_within_bounds_p, try_copy_prop,
loop_giv_dump): Likewise.
* gcov-io.h (GCOV_CHECK, GCOV_CHECK_READING,
GCOV_CHECK_WRITING): Remove.
(gcov_position, gcov_rewrite): Use gcc_assert.
* gcov-io.c (gcov_open, gcov_write_words, gcov_write_length,
gcov_read_words, gcov_sync, gcov_seek): Use gcc_assert.
* libgcov.c (__gcov_merge_single, __gcov_merge_delta): Use
gcc_assert.
2005-04-01 Kazu Hirata <kazu@cs.umass.edu>
* tree-inline.c: Fix a typo.
2005-04-01 Nathan Sidwell <nathan@codesourcery.com>
* configure.ac (enable-checking): Explicitly set all variables for
collective switch values. Alphabetize variables. Rename
ac_checking_valgrind to ac_valgrind_checking. Allow 'none' as
synonym for 'no'.
* doc/install.texi (enable-checking): Update documentation.
* configure: Rebuilt.
2005-04-01 Kazu Hirata <kazu@cs.umass.edu>
* tree-inline.c (copy_body_r): Use CONSTANT_CLASS_P where
possible.
2005-04-01 Richard Earnshaw <richard.earnshaw@arm.com>
* arm.c (adjacent_mem_locations): Reject volatile memory refs.
Also reject cases where this pattern will cause load delay stalls
unless optimizing for size and it will produce a shorter sequence.
* arm.md (arith_adjacent_mem): Make better use of ldm addressing
variants to avoid pre-adjusting the base when possible.
2005-04-01 Richard Earnshaw <richard.earnshaw@arm.com>
* arm.md (minmax_arithsi): Reject all eliminable registers, not just
the frame and argument pointers.
(strqi_preinc, strqi_predec, loadqi_preinc, loadqi_predec): Likewise.
(loadqisi_preinc, loadqisi_predec, strsi_preinc): Likewise.
(strsi_predec, loadsi_preinc, loadsi_predec): Likewise.
(strqi_shiftpreinc, strqi_shiftpredec, loadqi_shiftpreinc): Likewise.
(loadqi_shiftpredec, strsi_shiftpreinc, strsi_shiftpredec): Likewise.
(loadsi_shiftpreinc, loadsi_shiftpredec): Likewise.
2005-04-01 Danny Smith <dannysmith@users.sourceforge.net>
* config/i386/cygming.h (SUBTARGET_ATTRIBUTE_TABLE): Define,
with entry for selectany attribute.
* config/i386/i386-protos.h (ix86_handle_selectany_attribute):
Declare.
* config/i386/winnt.c (ix86_handle_selectany_attribute): Define.
(i386_pe_asm_named_section): Handle sections generated by
selectany attribute.
* doc/extend.texi (selectany): Document attribute.
2005-04-01 Paolo Bonzini <bonzini@gnu.org>
Jan Hubicka <jh@suse.cz>
* config/i386/i386.c (ix86_decompose_address): Look inside SUBREGs
to fix addresses involving EBP and ESP.
(aligned_operand, legitimate_address_p, ix86_address_cost): Be prepared
for SUBREGed registers.
(legitimate_address_p): Accept SUBREGed registers.
2005-04-01 Jakub Jelinek <jakub@redhat.com>
PR c++/19406
* dwarf2out.c (gen_type_die_for_member): Handle FIELD_DECL.
(dwarf2out_imported_module_or_decl): Use gen_type_die_for_member
for FIELD_DECLs.
2005-04-01 Kazu Hirata <kazu@cs.umass.edu>
* doc/contrib.texi, doc/invoke.texi, doc/tm.texi: Fix typos.
2005-04-01 James E Wilson <wilson@specifixinc.com>
PR c++/20505
* dwarf2out.c (rtl_for_decl_init): New function.
(rtl_for_decl_location): Extracted from here.
(tree_add_const_value_attribute): Call rtl_for_decl_init and
add_const_value_attribute. Delete initializer_constant_valid_p call.
2005-04-01 Kazu Hirata <kazu@cs.umass.edu>
* cgraphunit.c, dbxout.c, flow.c, gcse.c, gimplify.c,
lambda-code.c, loop.c, machmode.def, mips-tfile.c,
modulo-sched.c, passes.c, postreload-gcse.c, tree-eh.c,
tree-ssa-ccp.c, varasm.c, config/frv/frv.c, config/frv/frv.h,
config/frv/frv.md, config/i386/i386.c, config/i386/i386.h,
config/i386/i386.md, config/rs6000/predicates.md,
config/rs6000/rs6000.c, config/s390/fixdfdi.h,
config/s390/s390.c, config/stormy16/stormy16.c,
config/stormy16/stormy16.md, config/vax/vax.md: Fix comment
typos.
2005-04-01 Joseph S. Myers <joseph@codesourcery.com>
PR c/17855
* gimplify.c (gimplify_expr): Create a temporary for lvalue
COND_EXPR and CALL_EXPR.
2005-03-31 Vladimir Makarov <vmakarov@redhat.com>
PR target/20632
* genautomata.c (first_cycle_unit_presence): Check all alternative
states for unit presence.
* doc/md.texi: Remove remark about impossibility to query unit
presence in non nondeterministic automaton state.
* config/ia64/ia64.c (get_template): Change order of unit querying.
2005-03-31 Kazu Hirata <kazu@cs.umass.edu>
* tree-ssa-dom.c (cprop_into_successor_phis): Remove an
obsolete comment.
2005-03-31 Zdenek Dvorak <dvorakz@suse.cz>
* cfgloopanal.c (mark_loop_exit_edges): Clean EDGE_LOOP_EXIT
flag for edges outside any loops.
2005-03-31 Janis Johnson <janis187@us.ibm.com>
* doc/sourcebuild.texi (Test Directives): Describe cleanup-* procs.
2005-03-31 Kazu Hirata <kazu@cs.umass.edu>
* tree-ssa-alias.c: Follow spelling conventions.
* doc/tree-ssa.texi: Fix a typo.
2005-03-31 J"orn Rennecke <joern.rennecke@st.com>
* postreload-gcse.c: Include target.h.
(gcse_after_reload_main): Return early if we cannot modify jumps.
* Makefile.in (postreload-gcse.o): Depend on $(TARGET_H).
2005-03-31 David Edelsohn <edelsohn@gnu.org>
* tree-ssa-loop-im.c (stmt_cost): Add RDIV_EXPR to list of
expensive operations.
2005-03-31 Ian Lance Taylor <ian@airs.com>
* collect2.c (lderrout): New variable.
(collect_exit): Dump ldout to stdout. Dump and unlink lderrout,
if it is set, to stderr.
(handler): Unlink lderrout if it is set.
(dump_file): Add "to" parameter. Change all callers.
(main): Initialize lderrout.
(collect_execute): Add errname parameter. Change all callers.
Rename redir parameter to outname. Never pass
PEX_STDERR_TO_STDOUT to pex_run.
* collect2.h (collect_execute, dump_file): Update declarations.
* tlink.c (tlink_execute): Add errname parameter. Change all
callers.
(do_tlink): Check lderrout as well as ldout.
2005-03-31 Caroline Tice <ctice@apple.com>
* Makefile.in (varasm.o): Add basic-block.h to list of requirements.
(bb-reorder.o): Add errors.h to list of requirements.
(STAGEFEEDBACK_FLAGS_TO_PASS): Add -freorder-blocks-and-partition to
profiledbootstrap flags.
* bb-reorder.c (errors.h): Add new include.
(struct bbro_basic_block_data_def): Add new field, in_trace.
(add_unlikely_executed_notes): Remove function.
(mark_bb_for_unlikely_executed_section): Remove function.
(insert_section_boundary_note): New function.
(verify_hot_cold_block_grouping): New function.
(push_to_next_round_p): Remove variables and tests that push all
cold blocks to last round.
(find_traces): Remove code that added extra round of trace finding
when doing partitioning.
(find_traces_1_round) : Remove variable last_round; add code to
update new struct field, in_trace; correct trace_length where it was
incorrect before (after call to copy_bb); change code that pushed all
cold blocks to last round. Instead verify that all blocks going into
a trace belong in the same partition.
(connect_traces): Modify to connect the traces in two passes, if the
function contains both hot and cold blocks. The first pass connects
all the traces for blocks in the partition that the first block in
the function belongs to; the second pass connnects all the traces
containing blocks that belong in the other partition.
(find_rarely_executed_basic_blocks_and_crossing_edges): Remove
code that automatically put the first block in a function into the
hot partition if the function had any hot blocks.
(fix_crossing_unconditional_branches): Check number of succ edges
before attempting to get one.
(fix_edges_for_rarely_executed_code): Update comment describing
function.
(reorder_basic_blocks): Add code to initialize new field (in_trace);
remove call to add_unlikely_executed_notes; add call to
verify_hot_cold_block_grouping.
(duplicate_computed_gotos): Don't change computed goto if it's a
crossing edge.
(partition_hot_cold_basic_blocks): Update function comment.
* cfgcleanup.c (try_simplify_condjump): Remove redundacy from
condition.
(try_forward_edges): Likewise.
(merge_blocks_move_predecessor_nojumps): Likewise.
(merge_blocks_move_successor_nojumps): Likewise.
(merge_blocks_move): Likewise.
(try_crossjump_bb): Likewise.
* cfglayout.c (update_unlikely_executed_notes): Remove function.
(fixup_reorder_chain): Remove code for adding UNLIKELY_EXECUTED_CODE
notes to cold bb's; remove call to update_unlikely_executed_notes.
(duplicate_insn_chain): change NOTE_INSN_UNLIKELY_EXECUTED_CODE to
NOTE_INSN_SWITCH_TEXT_SECTIONS.
* cfglayout.h (scan_ahead_for_unlikely_executed_note): Remove
function declaration.
* cfgrtl.c (can_delete_note_p): Remove UNLIKELY_EXECUTED_CODE note
from consideration.
(rtl_can_merge_blocks): Remove redundancy from condition.
(try_redirect_by_replacing_jump): Likewise.
(force_nonfallthru_and_redirect): Remove code for adding
UNLIKELY_EXECUTED_CODE notes to cold bb's.
(commit_one_edge_insertion): Likewise.
(cfg_layout_can_merge_blocks_p): Remove redundancy from condition.
* dbxout.c (FORCE_TEXT): Replace function_section with
current_function_section.
(struct dbx_debug_h): Add do_nothing function for new debug_hooks
function, switch_text_section.
(struct xcoff_debug): Likewise.
(dbxout_function_end): Add code to put out label diffs for both
hot and cold sections.
* debug.c (struct do_nothing_debug_hooks): Add do_nothing function
for new debug_hooks funciton, switch_text_section..
* debug.h (struct gcc_debug_hooks): Add new function to debug_hooks,
switch_text_section.
* dwarf2out.c (struct dw_fde_struct): Add five new fields:
dw_fde_hot_section_label, dw_fde_hot_section_end_label,
dw_fde_unlikely_section_label, dw_fde_unlikely_section_end_label and
dw_fde_switched_sections.
(output_call_frame_info): Add test to see if function switches text
sections in the middle; if so, use appropriate extra hot and cold
section labels to compute size deltas for the hot and cold sections.
(dwarf2out_begin_prologue): Add code to initialize new fields in
dw_fde_struct.
(dwarf2out_switch_text_section): New function (invoked through
debug_hook); updates new fields in dw_fde_struct appropriately and
increments separate_line_info_table_in_use.
(dwarf2_debug_hooks): Initialize switch_text_section function to be
dwarf2out_switch_text_section.
(struct var_loc_node): Add new field, section_label.
(output_aranges): Add code to check whether in hot or cold section and
use the appropriate label in calculating deltas.
(output_ranges): Likewise.
(output_line_info): Add code to check which section we're in and
use appropriate hot/cold label.
(add_location_or_constant_value_attribute): Likewise.
(gen_subprogam_die): Modify arange attributes to use correct labels.
(dwarf2out_begin_block): Change call to function_section into call to
current_function_section.
(dwarf2out_end_block): Likewise.
(dwarf2out_source_line): Likewise.
(dwarf2out_var_location): Add code to check whether in hot or cold
section and use the appropriate label.
* except.c (output_function_exception_table): Change call to
function_section into call to current_function_section.
* final.c (profile_function): Likewise.
(scan_ahead_for_unlikely_executed_note): Remove function.
(final_scan_insn): Remove calls to
scan_ahead_for_unlikely_executed_note, and related code for switching
to cold section, except for the single time
NOTE_INSN_SWITCH_TEXT_SECTIONS may be encountered; add calls to
debug_hooks->switch_text_sections; replace appropriate calls to
function_section with calls to current_function_section.
* ifcvt.c (find_if_case_1): Remove redundancy from condition, add
test_bb to condition.
(find_if_case_2): Likewise.
* insn-notes.def: Change NOTE_INSN_UNLIKELY_EXECUTED_CODE to
NOTE_INSN_SWITCH_TEXT_SECTIONS. Update comment appropriately.
* opts.c (decode_options): Change warning about hot/cold partitioning
with exceptionss to inform (so as not to cause bootstrap failures);
remove warning about partitioning with DWARF debug info.
* output.h (current_function_section): Add new function decl.
(insert_section_boundary_note): Likewise.
(enum in_section): Move this declaration here from varasm.c.
(unlikely_section_label): Likewise.
(unlikely_text_section_name): Likewise.
(last_text_section_name): New global variable.
(last_text_section): Likewise.
(hot_section_label): Likewise.
(hot_section_end_label): Likewise.
(cold_section_end_label): Likewise.
* passes.c (rest_of_handle_final): Free unlikely_text_section_name.
* print-rtl.c (print_rtx): Change NOTE_INSN_UNLIKELY_EXECUTED_CODE
to NOTE_INSN_SWITCH_TEXT_SECTIONS.
* reg-stack.c (emit_swap_insn): Remove UNLIKELY_EXECUTED_CODE note
insn from consideration.
* sdbout.c (sdb_debug_hooks): Add do_nothing for new function,
switch_text_section.
* varasm.c (basic-block.h): Add new include.
(unlikely_section_label_printed): Remove global variable.
(unlikely_section_label): Make global variable not be static any more.
(unlikely_text_section_name): Likewise.
(hot_section_end_label): New global variable (not static)
(first_function_block_is_cold): Likewise.
(hot_section_label): Likewise.
(cold_section_end_label): Likewise..
(last_text_section): New global variable, not static.
(last_text_section_name): New global variable, not static.
(initialize_cold_section_name): New function.
(enum in_section): Move declaration to output.h.
(text_section): Update last_text_section.
(unlikely_text_section): Replace code to determine cold section name
with call to initialize_cold_section_name; Add code to update
last_text_section; remove code for printing out label.
(named_section_real): Add code to update last_text_section and
last_text_section_name as appropriate.
(function_section): Change test for 'unlikely' to depend on
first_function_block_is_cold (moved old test to
current_function_section).
(current_function_section): New function.
(assemble_start_function): Move code that frees
unlikely_text_section_name; initialize hot_section_end_label;
print hot and cold section labels at the start of the function;
set first_function_block_is_cold, if appropriate; initialize l
ast_text_section; add call to insert_section_boundary_note.
(assemble_end_function): Add code to write out hot and cold section
end labels.
*vmsdbgout.c (vmsdbg_debug_hooks): Add do_nothing for new function,
switch_text_section.
* config/darwin.c (machopic_select_section): Replace incorrect
function in base_funs; update reloc for cold sections if necessary.
* config/darwin.h (SECTION_FUNCTION): Add code to update
last_text_section if appropriate.
(text_unlikely_section): Remove.
* config/sparc/sparc.c (sparc_output_deferred_case_vectors): Likewise.
* config/stormy16/stormy16.c (stormy_16_output_addr_vec): Likewise.
* config/xtensa/xtensa.c (override_options): Turn off hot/cold
partitioning for this architecture.
2005-03-31 Olivier Hainque <hainque@adacore.com>
* dwarf2out.c (dwarf2out_frame_finish): Honor DWARF2_FRAME_INFO
defined and non-zero.
2005-03-31 Gabriel Dos Reis <gdr@integrable-solutions.net>
PR c++/18644
* doc/invoke.texi (-Wsynth): Don't document, as it now is void of
semantics.
2005-03-31 Alan Modra <amodra@bigpond.net.au>
PR target/20611
* config/rs6000/rs6000.md (load_toc_v4_PIC_1b): Remove inline
label operand. Remove (use (unspec..)). Don't emit a label on
the offset word.
* config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Don't
generate inline label for load_toc_v4_PIC_1b.
(rs6000_emit_load_toc_table): Likewise.
2005-03-31 Kazu Hirata <kazu@cs.umass.edu>
* config.gcc: Obsolete i860-*-sysv4*, ip2k-*-elf,
ns32k-*-netbsdelf*, and ns32k-*-netbsd*.
2005-03-29 Devang Patel <dpatel@apple.com>
* tree-sra.c (decide_block_copy): Disable scalarization of
sub-elements.
2005-03-30 Stuart Hastings <stuart@apple.com>
Dale Johannesen <dalej@apple.com>
* Makefile.in (print-tree.o): Depend on tree-iterator.h.
* print-tree.c (print_node): Add case STATEMENT_LIST.
2005-03-31 Alan Modra <amodra@bigpond.net.au>
* config.gcc (cpu_is_64bit): Set for 64-bit powerpc cpus.
(powerpc64-*-linux*): Use it. Rearrange tm_file assignment.
(powerpc-*-linux*): Build a biarch compiler when --enable-targets
is given with "powerpc64*" or "all", or when --with-cpu chooses
a 64-bit cpu.
2005-03-30 James E. Wilson <wilson@specifixinc.com>
PR debug/20268
* dwarf2out.c (add_high_low_attributes): New function, extracted from
gen_lexical_block_die.
(gen_lexical_block_die, gen_inlined_subroutine_die): Call it.
2005-03-31 Jan Hubicka <jh@suse.cz>
2004-11-02 Jan Hubicka <jh@suse.cz>
* cgraph.c (cgraph_varpool_node_name): New function.
(dump_cgraph_varpool_node): New function.
(dump_varpool): New function.
* cgraphunit.c (cgraph_optimize): Dump varpool.
2004-10-16 Jan Hubicka <jh@suse.cz>
* cgraph.c (decide_is_variable_needed): New function.
(cgraph_varpool_finalize_decl): Use it.
* cgraphunit.c (cgraph_optimize): Assemble_pending_decls when not doing
unit-at-a-time.
* final.c (output_addr_const): Do not call mark_referenced.
* passes.c (rest_of_decl_compilation): ifdef out DECL_RTL_SET_P hack;
always go via cgraph.
* toplev.c (wrapup_global_declarations): Kill non-unit-at-a-time code.
(check_global_declarations): Ifdef out code clearing DECL_RTL.
* tree-optimize.c (execute_inline): Mark functions called.
* i386.c (output_pic_addr_const): Do not call mark_decl_referenced.
2004-10-11 Jan Hubicka <jh@suse.cz>
* cgraph.c (cgraph_varpool_first_unanalyzed_node): New global voriable
(cgraph_varpool_last_needed_node): New static variable.
(enqueue_needed_varpool_node): Break out from ...; add items to the
end of queue; update first pointers.
(cgraph_varpool_mark_needed_node): ... here.
(cgraph_varpool_finalize_decl): Use enqueue_needed_varpool_node.
(cgraph_varpool_assemble_pending_decls): Move to cgraphunit.c
* cgraph.h (cgraph_varpool_node): Add analyzed field.
(cgraph_varpool_first_unanalyzed_node): Declare.
* cgraphunit.c: Include output.h.
(cgraph_varpool_analyze_pending_decls): New function.
(cgraph_varpool_assemble_pending_decls): Move from cgraph.c; bail out
for errors, analyze pending decls.
(cgraph_finalize_compilation_unit): Only analyze decls.
(cgraph_optimize): Assemble the decls after expanding.
2005-03-30 Daniel Berlin <dberlin@dberlin.org>
* tree-ssa-alias.c (compute_flow_insensitive_aliasing): Make sure
subvars get marked properly in tags for grouping.
(add_pointed_to_var): Mark only actual pointed to
variables/subvars in addresses needed.
(create_overlap_variables_for): Clear call clobbered on original
variable.
* tree-ssa-operands.c (get_asm_expr_operands): Don't let regular
addresable vars with subvars into list.
* tree-ssa.c (verify_ssa_name): Verify original is not used where
subvar should be.
2005-03-30 Richard Henderson <rth@redhat.com>
* cgraph.h (struct cgraph_node): Add alias.
* varasm.c (assemble_alias): Set it.
* cgraphunit.c (cgraph_assemble_pending_functions): Check it and
avoid calling cgraph_expand_function.
2005-03-30 Tom Tromey <tromey@redhat.com>
* tree.def (FILE_TYPE): Removed.
* typeclass.h (enum type_class): Removed file_type_class.
* dwarf2out.c (is_base_type): Updated.
(gen_type_die): Likewise.
* dbxout.c (dbxout_type): Updated.
* builtins.c (type_to_class): Updated.
* tree.c (type_contains_placeholder_1): Updated.
* config/sparc/sparc.c (sparc_type_code): Updated.
* config/ia64/ia64.c (hfa_element_mode): Updated.
* expr.c (count_type_elements): Updated.
* stor-layout.c (layout_type): Updated.
* tree-inline.c (remap_type): Updated.
* tree-pretty-print.c (dump_generic_node): Updated.
2005-03-30 Fariborz Jahanian <fjahanian@apple.com>
* builtins.c (expand_builtin_powi): Fix mode of
2nd argument to match int.
* libgcc2.h (__powisf2, __powidf2, __powixf2, __powitf2): Change
2nd argument type to int.
* libgcc2.c: Change prototype of __powi* functions to use
int.
2005-03-30 Dale Johannesen <dalej@apple.com>
PR middle-end/19225
* calls.c (expand_call): Flush pending deferrals before
throwing call.
2005-03-30 Joseph S. Myers <joseph@codesourcery.com>
PR c/772
PR c/17913
* c-tree.h (C_DECL_UNJUMPABLE_STMT_EXPR,
C_DECL_UNDEFINABLE_STMT_EXPR, struct c_label_list, struct
c_label_context, label_context_stack): New.
* c-decl.c (define_label): Check for jumps into statement
expressions. Add label to list of defined labels.
(start_function): Push context on label_context_stack.
(finish_function): Pop context from label_context_stack.
* c-typeck.c (label_context_stack): New.
(c_finish_goto_label): Check for jumps into statement
expressions. Add label to list of jumped to labels.
(struct c_switch): Add blocked_stmt_expr.
(c_start_case): Initialize it.
(do_case): Check it.
(c_finish_case): Verify !blocked_stmt_expr.
(c_begin_stmt_expr): Push context on label_context_stack.
Increment blocked_stmt_expr. Mark labels jumped to from outside
as undefinable.
(c_finish_stmt_expr): December blocked_stmt_expr. Mark labels
defined in the statement expression and no longer jumpable to.
Mark labels jumped to from just outside the statement expression
as again definable. Pop context from label_context_stack.
* doc/extend.texi (Statement Exprs): Update.
2005-03-30 Joseph S. Myers <joseph@codesourcery.com>
PR c/20368
* c-decl.c (start_function): Check for old_decl being
error_mark_node.
2005-03-30 Ian Lance Taylor <ian@airs.com>
* final.c (final): Remove prescan parameter. Change all callers.
(final_scan_insn): Remove prescan parameter. Change all callers.
2005-03-30 Kazu Hirata <kazu@cs.umass.edu>
* tree-vectorizer.c: Fix comment typos.
2005-03-30 Sebastian Pop <pop@cri.ensmp.fr>
* tree-scalar-evolution.c (instantiate_parameters_1): Return
as soon as a chrec_dont_know is detected.
2005-03-31 Danny Smith <dannysmith@users.sourceforge.net>
Merge from csl-arm-branch.
2004-02-12 Mark Mitchell <mark@codesourcery.com>
* tlink.c (recompile_files): Do not assume that "rename" can
overwrite an existing file.
2005-03-31 Paolo Bonzini <bonzini@gnu.org>
* configure.ac (TL_AC_GNU_MAKE_GCC_LIB_PATH): Remove.
* configure: Regenerate.
2005-03-30 Alan Modra <amodra@bigpond.net.au>
* doc/install.texi: Update binutils requirement for powerpc*-linux.
* config/rs6000/rs6000.c (rs6000_arg_partial_bytes): Update comments.
* calls.c (struct arg_data): Update "partial" comment.
(load_register_parameters): Update "nregs" comment.
2005-03-30 Richard Sandiford <rsandifo@redhat.com>
* config/iq2000/iq2000.h (target_flags, MASK_GPOPT, MASK_EMBEDDED_DATA)
(MASK_UNINIT_CONST_IN_RODATA, TARGET_EMBEDDED_DATA, TARGET_SWITCHES)
(TARGET_DEFAULT, TARGET_CPU_DEFAULT, SUBTARGET_TARGET_OPTIONS)
(TARGET_OPTIONS, iq2000_cpu_string, iq2000_arch_string): Delete.
(TARGET_DEBUG_MODE, TARGET_DEBUG_A_MODE, TARGET_DEBUG_B_MODE)
(TARGET_DEBUG_C_MODE, TARGET_DEBUG_D_MODE): Define to 0 rather
than target_flags & 0.
* config/iq2000/iq2000.c (iq2000_cpu_string, iq2000_arch_string)
(iq2000_arch, iq2000_parse_cpu): Delete.
(TARGET_HANDLE_OPTION): Override default.
(iq2000_handle_option): New function.
(override_options): Remove -march= and -mcpu= handling.
* config/iq2000/iq2000.opt: New file.
2005-03-30 Richard Sandiford <rsandifo@redhat.com>
* config/c4x/c4x-protos.h (c4x_rpts_cycles, c4x_cpu_version): Delete.
* config/c4x/c4x.h (SMALL_MEMORY_FLAG, MPYI_FLAG, FAST_FIX_FLAG)
(RPTS_FLAG, C3X_FLAG, TI_FLAG, PARANOID_FLAG, MEMPARM_FLAG, DEVEL_FLAG)
(RPTB_FLAG, BK_FLAG, DB_FLAG, DEBUG_FLAG, HOIST_FLAG)
(LOOP_UNSIGNED_FLAG, FORCE_FLAG, PRESERVE_FLOAT_FLAG)
(PARALLEL_INSN_FLAG, PARALLEL_MPY_FLAG, ALIASES_FLAG, C30_FLAG)
(C31_FLAG, C32_FLAG, C33_FLAG, C40_FLAG, C44_FLAG, TARGET_SWITCHES)
(TARGET_DEFAULT, TARGET_SMALL, TARGET_MPYI, TARGET_FAST_FIX)
(TARGET_RPTS, TARGET_TI, TARGET_PARANOID, TARGET_MEMPARM, TARGET_DEVEL)
(TARGET_RPTB, TARGET_BK, TARGET_DB, TARGET_DEBUG, TARGET_HOIST)
(TARGET_LOOP_UNSIGNED, TARGET_FORCE, TARGET_PRESERVE_FLOAT)
(TARGET_PARALLEL, TARGET_PARALLEL_MPY, TARGET_ALIASES)
(c4x_rpts_cycles_string, c4x_cpu_version_string)
(TARGET_OPTIONS): Delete.
(c4x_rpts_cycles, c4x_cpu_version): Declare.
(TARGET_C3X, TARGET_C30, TARGET_C31, TARGET_C32, TARGET_C33)
(TARGET_C40, TARGET_C44): Redefine in terms of c4x_cpu_version.
* config/c4x/c4x.c (c4x_rpts_cycles_string): Delete.
(c4x_cpu_version_string): Delete.
(TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
(c4x_handle_option): New function. Map -m3x and -m4x options to the
equivalent -mcpu= option.
(c4x_override_options): Remove -mrpts= and -mcpu= handling from here.
Deal with the extra conditions in the old TARGET_MPYI, TARGET_RPTB,
TARGET_DB, TARGET_PARALLEL and TARGET_PARALLEL_MPY macros by setting
or clearing the appropriate MASK_* bit.
(c4x_file_start): Use c4x_cpu_version.
* config/c4x/c4x.opt: New file.
2005-03-30 Richard Sandiford <rsandifo@redhat.com>
* doc/options.texi: Document the new MaskExists flag.
* opth-gen.awk: Don't output MASK and TARGET macros for Mask(...)
if the option has the MaskExists flag.
2005-03-30 Richard Sandiford <rsandifo@redhat.com>
* opt-functions.awk (flag_set_p, test_flag): New functions.
(switch_flags): Use them.
* opth-gen.awk: Use flag_set_p to check for flags.
* optc-gen.awk: Likewise. Use opt_args to check for Init(...) flags.
2005-03-30 Ian Lance Taylor <ian@airs.com>
* config.host (i[34567]86-*-mingw32*): Don't set
host_can_use_collect2 to no.
2005-03-30 Alan Modra <amodra@bigpond.net.au>
PR target/20203
* builtins.c (get_memory_rtx): Expand address exp using EXPAND_NORMAL.
Remove convert_memory_address call duplicating that in memory_address.
2005-03-29 Richard Henderson <rth@redhat.com>
PR c/20519
* c-decl.c (c_finish_incomplete_decl): Update complete_array_type call.
(build_compound_literal): Likewise. Propagate decl type into the
initializer.
(finish_decl): Likewise. Use new return value from complete_array_type
for zero sized arrays.
(complete_array_type): Move ...
* c-common.c (complete_array_type): ... here. Change first argument
to pointer-to-type-node. Consistently use sizetype for the index
except for zero sized arrays. Detect zero sized arrays for pedantic
mode diagnostics. Create a new type node instead of modifying the
old node in place.
* c-tree.h (complete_array_type): Move decl ...
* c-common.h (complete_array_type): ... here.
2005-03-29 Richard Henderson <rth@redhat.com>
PR tree-opt/19108
* tree-sra.c (generate_element_init_1): Handle RANGE_EXPR.
2005-03-29 Kazu Hirata <kazu@cs.umass.edu>
* builtin-types.def, c-convert.c, c-format.c, ddg.c, debug.c,
debug.h, et-forest.c, et-forest.h, gcov.c, rtl-profile.c,
rtlhooks-def.h, rtlhooks.c, sdbout.c, tree-inline.h,
tree-profile.c, tsystem.h, value-prof.h: Update copyright.
2005-03-29 Eric Christopher <echristo@redhat.com>
* config/mips/mips.c (mips_gimplify_va_arg_expr): Update for
truthvalue conversion removal.
2005-03-29 Ian Lance Taylor <ian@airs.com>
PR bootstrap/14316
* collect2.c: Never include <vfork.h>.
(VFORK_STRING, vfork): Don't define.
(pid): Remove global variable.
(handler): Call raise instead of kill (getpid(), ...).
(collect_wait): Add pex parameter. Change all callers. Use
pex_get_status rather than pwait.
(do_wait): Add pex parameter. Change all callers.
(collect_execute): Return struct pex_obj * rather than void. Use
pex routines rather than pexecute.
(fork_execute): Get pex_obj from collect_execute, and pass it to
do_wait.
(scan_prog_file): Use pex routines rather than pipe/vfork/exec.
Only declare quit_handler if SIGQUIT is defined.
(scan_libraries): Likewise.
* collect2.h (collect_execute): Update declaration.
(collect_wait): Update declaration.
* tlink.c (tlink_execute): Get pex_obj from collect_execute, and
pass it to collect_wait.
2005-03-29 Joseph S. Myers <joseph@codesourcery.com>
PR c/20672
* c-parser.c (c_parser_compound_statement_nostart): Give error
message for EOF instead of just setting parser->error.
2005-03-29 Dorit Naishlos <dorit@il.ibm.com>
* tree-vectorizer.c (slpeel_update_phi_nodes_for_guard): Removed.
(slpeel_update_phi_nodes_for_guard1): New function.
(slpeel_update_phi_nodes_for_guard2): New function.
(slpeel_tree_peel_loop_to_edge): Call above new functions instead
of slpeel_update_phi_nodes_for_guard.
(vectorize_loops): Remove call to loop_closed_rewrite.
* tree-vect-transform.c (vect_update_ivs_after_vectorizer): Remove
assertion.
2005-03-29 Richard Sandiford <rsandifo@redhat.com>
* config/m32r/little.h (TARGET_ENDIAN_DEFAULT): Delete.
(TARGET_LITTLE_ENDIAN): New macro.
* config/m32r/m32r.h (SUBTARGET_SWITCHES, target_flags)
(TARGET_RELAX_MASK, TARGET_DEBUG_MASK, TARGET_DEBUG)
(TARGET_ALIGN_LOOPS_MASK, TARGET_ALIGN_LOOPS)
(TARGET_LOW_ISSUE_RATE_MASK, TARGET_LOW_ISSUE_RATE)
(TARGET_BRANCH_COST_MASK, TARGET_BRANCH_COST, TARGET_M32RX_MASK)
(TARGET_M32RX, TARGET_M32R2_MASK, TARGET_M32R2, LITTLE_ENDIAN_BIT)
(TARGET_ENDIAN_DEFAULT, SUBTARGET_SWITCHES, TARGET_DEFAULT)
(TARGET_SWITCHES, m32r_model_string, m32r_sdata_string)
(m32r_cache_flush_trap_string, SUBTARGET_OPTIONS)
(TARGET_OPTIONS): Delete.
(M32R_MODEL_DEFAULT, M32R_SDATA_DEFAULT): Turn into enums.
(CACHE_FLUSH_TRAP): Turn into an integer.
(TARGET_LITTLE_ENDIAN): Define to 0 by default.
(INITIALIZE_TRAMPOLINE): Check m32r_cache_trap >= 0 to see if
-mflush-trap is in use.
* config/m32r/m32r.c (m32r_model_string, m32r_sdata_string)
(m32r_cache_flush_trap_string): Delete.
(m32r_model) Initialize to M32R_MODEL_DEFAULT.
(m32r_sdata): Likewise M32R_SDATA_DEFAULT.
(m32r_cache_trap): Likewise CACHE_FLUSH_TRAP.
(TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
(m32r_handle_option): New function. Move -mflush-trap=, -mflush-func=,
-mmodel= and -msdata= handling from...
(m32r_init): ...here.
* config/m32r/m32r.opt: New file.
2005-03-29 Keith Besaw <kbesaw@us.ibm.com>
* tree-ssanames.c (duplicate_ssa_name_ptr_info): New function.
(duplicate_ssa_name): Call duplicate_ssa_name_ptr_info.
* tree-vect-analyze.c (vect_object_analysis): additional parm
pass back a "struct ptr_info_def *" with the points-to info.
(vect_analyze_data_refs): set the STMT_VINFO_PTR_INFO for the
statement using info returned from vect_object_analysis.
* tree-vect-transform.c (update_vuses_to_preheader): New function.
(vect_create_data_ref_ptr): Remove updates to vars_to_rename
for virtual uses and defs when creating a replacement vector
reference. Call duplicate_ssa_name_ptr_info to define points-to
info for vector pointer replacement using STMT_VINFO_PTR_INFO.
(vectorizable_store): copy_virtual_operands and update
definition statements.
(vectorizable_load): copy_virtual_operands. Remove call to
mark_call_clobbered_vars_to_rename for call to "const" builtin.
* tree-vectorizer.c (vectorize_loops): Remove calls to
rewrite_into_ssa and bitmap_clear (vars_to_rename).
(new_stmt_vec_info): initialize STMT_VINFO_PTR_INFO for stmt.
* tree-vectorizer.h (_stmt_vec_info): add field ptr_info and
define macro STMT_VINFO_PTR_INFO for use in accessing.
* tree.h add export of duplicate_ssa_name_ptr_info.
* rs6000.c (altivec_init_builtins): Declare builtin function
__builtin_altivec_mask_for_load to be "const".
2005-03-29 Jakub Jelinek <jakub@redhat.com>
PR middle-end/20622
* cgraph.h (struct cgraph_varpool_node): Add alias field.
* cgraph.c (cgraph_varpool_assemble_pending_decls): Don't call
assemble_variable on aliases.
* varasm.c (assemble_alias): Set node->alias.
* toplev.c (wrapup_global_declarations): Don't call
rest_of_decl_compilation on aliases again.
2005-03-29 Paul Brook <paul@codesourcery.com>
* config/arm/arm-protos.h (arm_dbx_register_number): Add prototype.
* config/arm/arm.c (arm_dbx_register_number): New function.
* config/arm/arm.h (IS_FPA_REGNUM, DBX_REGISTER_NUMBER): Define.
2005-03-29 Eric Botcazou <ebotcazou@libertysurf.fr>
PR middle-end/20263
* varasm.c (make_decl_rtl) [ASM_DECLARE_REGISTER_GLOBAL]: Use
the DECL_NAME, not the DECL_ASSEMBLER_NAME.
2005-03-29 Dale Johannesen <dalej@apple.com>
* Makefile.in (value-prof.o): New dependencies on $(DIAGNOSTIC_H)
$(TREE_H) and $(COVERAGE_H).
* coverage.c (compute_checksum): Use DECL_NAME not DECL_ASSEMBLER_NAME.
* opts.c (common_handle_option): Enable tree-based value transforms.
* toplev.c (process_options): Ditto.
* value-prof.h (struct histogram_value_t): Redefine. "Adjust" below
refers to references to this type.
* tree-flow.h: (struct stmt_ann_d): Add histograms field.
* rtl-profile.c (rtl_gen_interval_profiler): Adjust. Remove checks
for may_be_more, may_be_less.
(rtl_gen_pow2_profiler): Adjust.
(rtl_gen_one_value_profiler_no_edge_manip): Adjust.
(rtl_gen_one_value_profiler): Adjust.
(rtl_gen_const_delta_profiler): Adjust.
* tree-profile.c (tree_gen_interval_profiler): Implement.
(tree_gen_pow2_profiler): Ditto.
(tree_gen_one_value_profiler): Ditto.
(tree_profiling): New.
(pass_tree_profile): Reference it.
* value-prof.c: Include tree-flow.h, tree-flow-inline.h, diagnostic.h,
tree.h, gcov-io.h.
(insn_divmod_values_to_profile): Rename to
rtl_divmod_values_to_profile. Adjust.
(insn_values_to_profile): Rename to rtl_values_to_profile. Adjust.
(insn_prefetch_values_to_profile): Adjust.
(rtl_value_profile_transformations): Adjust.
(gen_divmod_fixed_value): Rename to rtl_divmod_fixed_value.
(gen_mod_pow2): Rename to rtl_mod_pow2.
(gen_mod_subtract): Rename to rtl_mod_subtract.
(divmod_fixed_value_transform): Rename to
rtl_divmod_fixed_value_transform.
(mod_pow2_value_transform): Rename to rtl_mod_pow2_value_transform.
(mod_subtract_transform): Rename to rtl_mod_subtract_transform.
(rtl_find_values_to_profile): Adjust.
(tree_value_profile_transformations): Implement.
(tree_divmod_values_to_profile): New.
(tree_values_to_profile): New.
(tree_divmod_fixed_value): New.
(tree_mod_pow2): New.
(tree_mod_subtract): New.
(tree_divmod_fixed_value_transform): New.
(tree_mod_pow2_value_transform): New.
(tree_mod_subtract_transform): New.
(tree_find_values_to_profile): Implement.
* profile.c (instrument_values): Free histograms.
(compute_value_histograms): Adjust. Implement tree version.
2005-03-29 Uros Bizjak <uros@kss-loka.si>
* reg-stack.c (subst_stack_regs_pat): Handle <UNSPEC_FIST> case.
* config/i386/i386.c (output_fix_trunc): Add new round_mode
variable. Output "fldcw" depending on round_mode.
* config/i386/i386.md (UNSPEC_FIST): New.
(fistdi2, fistdi2_with_temp, fist<mode>2, fist<mode>2_with_temp):
New isns patterns to implement lrint and llrint built-ins as x87
intrinsic function.
(fistdi2, fist<mode>2 splitters): New splitters.
(lrint<mode>2): New expanders.
2005-03-28 Ian Lance Taylor <ian@airs.com>
* config/arc/arc.c (arc_output_function_epilogue): Pass prescan as
0 when calling final_scan_insn.
2005-03-28 Jan Hubicka <jh@suse.cz>
PR middle-end/20635
* varasm.c (mark_decl_referenced): Do not mark extern inline functions
as needed.
* tree-inline.c (estimate_num_insns_1): Use declaration to discover argument
types where possible.
2005-03-26 Per Bothner <per@bothner.com>
Make -f[no-]show-column also control non-cpp diagnostics.
* c.opt (fshow-column): Move option from here ...
* common.opt (fshow-column): ... to here.
* diagnostic.c (diagnostic_build_prefix): Only print column number
if flag_show_column.
2005-03-27 Steven Bosscher <stevenb@suse.de>
* vax-protos.h (vax_output_int_move, vax_output_int_add,
vax_output_conditional_branch): New prototypes.
* vax.c (vax_output_int_move, vax_output_int_add): New functions,
extracted from vax.md mov and add patterns.
(vax_output_conditional_branch): New function to output conditional
branch instructions.
* vax.md: Use mode macros for arithmetic and mov patterns.
Use code macros for the jump patterns.
2005-03-26 Andrew Pinski <pinskia@physics.uc.edu>
* Makefile.in (libbackend.o): Depend on version files;
add custom generation command.
2005-03-26 Andrew Pinski <pinskia@physics.uc.edu>
PR target/20636
* config/rs6000/rs6000.md (extendsfdf2_fpr): Check to make
sure that we have a REG before getting its REGNO.
2005-03-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* builtin-types.def (BT_FN_STRING_CONST_STRING_SIZE): New.
* builtins.def (BUILT_IN_STRNDUP): New.
2005-03-25 Pat Haugen <pthaugen@us.ibm.com>
PR tree-optimization/20470
* fold-const.c (fold_cond_expr_with_comparison): Recognize/fold
ABS(x-y).
2005-03-25 Mike Stump <mrs@apple.com>
* config/darwin.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Don't allow 0
sized objects.
2005-03-25 Geoffrey Keating <geoffk@apple.com>
* config/rs6000/darwin-fallback.c: Don't include <ucontext.h>.
Use our own structure definitions.
* config/rs6000/rs6000.md (UNSPEC constants): Add UNSPEC_STFIWX.
(fix_truncdfsi2): Allow registers or memory as destination.
When TARGET_PPC_GFXOPT, generate simplified pattern.
(fix_truncdfsi2_internal): Use define_insn_and_split.
(fix_truncdfsi2_internal_gfxopt): New.
(fctiwz): Don't confuse register allocation by giving it no choices.
(stfiwx): New.
* config/rs6000/rs6000.h (EXTRA_CONSTRAINT): Add 'Z'.
(EXTRA_MEMORY_CONSTRAINT): Likewise.
* config/rs6000/rs6000.c (indexed_or_indirect_operand): New.
* config/rs6000/rs6000-protos.h (indexed_or_indirect_operand): New.
2005-03-25 Kazu Hirata <kazu@cs.umass.edu>
* dominance.c (free_dominance_info): Speed up by freeing et
data structures without maintaining other nodes.
* et-forest.c (et_free_tree_force): New.
* et-forest.h: Add a prototype for et_free_tree_force.
* tree.c (get_set_constructor_bits,
get_set_constructor_bytes): Remove.
* tree.h: Remove the corresponding prototypes.
2005-03-25 John David Anglin <dave.anglin@nrc-crnc.gc.ca>
PR target/15491
* vax.c (vax_rtx_costs_1): Merge with vax_rtx_costs.
(vax_rtx_costs): Return false when passed unsupported rtx's. Handle
FLOAT_EXTEND, FLOAT_TRUNCATE and TRUNCATE. Fix costs for POST_INC,
PRE_DEC, NEG and NOT.
2005-03-25 Kazu Hirata <kazu@cs.umass.edu>
* fold-const.c: Convert uses of fold (build (...)) to
fold_buildN.
2005-03-25 Zdenek Dvorak <dvorakz@suse.cz>
PR rtl-optimization/20249
* cse.c (insert_regs): Do not record equivalence of registers in
different modes.
2005-03-24 Kazu Hirata <kazu@cs.umass.edu>
* emit-rtl.c (reverse_comparison): Remove.
* rtl.h: Remove the corresponding prototype.
2005-03-24 James E Wilson <wilson@specifixinc.com>
* doc/install.texi (--enable-altivec): Delete docs.
2005-03-24 David Edelsohn <edelsohn@gnu.org>
* config/rs6000/predicates.md (easy_fp_constant): Return 0 for
SFmode and DFmode before reload when
flag_unsafe_math_optimizations not enabled.
2005-03-24 Geoffrey Keating <geoffk@apple.com>
* c.opt (fvisibility-inlines-hidden): Allow for ObjC++.
* config/i386/darwin.h (TARGET_SUBTARGET_DEFAULT): Add
MASK_128BIT_LONG_DOUBLE, MASK_ALIGN_DOUBLE.
2005-03-24 Nathan Sidwell <nathan@codesourcery.com>
* configure.ac (enable-checking): Add 'runtime' option.
* doc/install.texi (enable-checking): Document 'runtime' checking.
* tsystem.h (gcc_assert, gcc_unreachable): Define.
* config.in: Regenerated.
* configure: Regenerated.
2005-03-23 Uros Bizjak <uros@kss-loka.si>
* optabs.h (enum optab_index): Remove OTI_llrint.
(llrint_optab): Remove macro.
* optabs.c (init_optabs): Remove llrint_optab initialization.
* genopinit.c (optabs): Remove llrint_optab implementation.
* builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LLRINT{,F,L}
using lrint_optab.
2005-03-24 Alexandre Oliva <aoliva@redhat.com>
PR rtl-optimization/20532
* simplify-rtx.c (simplify_binary_operation_1): Protect from
overflow when adding coefficients for PLUS or MINUS.
(simplify_binary_operation_1): Handle CONST_DOUBLE exact power of
two as multiplier.
2005-03-23 Joseph S. Myers <joseph@codesourcery.com>
* langhooks.h (truthvalue_conversion): Remove.
* langhooks-def.h (LANG_HOOKS_INITIALIZER): Remove
LANG_HOOKS_TRUTHVALUE_CONVERSION.
* system.h (LANG_HOOKS_TRUTHVALUE_CONVERSION): Poison.
* gimplify.c (gimple_boolify): Don't use truthvalue_conversion.
* c-objc-common.h (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove.
2005-03-23 Kazu Hirata <kazu@cs.umass.edu>
* params.def: Fix a typo.
* config/mips/mips.c: Follow the spelling convensions.
* doc/invoke.texi: Fix typos.
2005-03-23 Daniel Berlin <dberlin@dberlin.org>
Fix PR tree-optimization/20601
* tree-ssa-pre.c (insert_aux): Add missing condition to
constification.
2005-03-23 Ian Lance Taylor <ian@airs.com>
* final.c (final_scan_insn): Don't remove no-op instructions.
* reload1.c (reload): Remove simple no-op instructions even when
not optimizing.
2005-03-23 Dorit Naishlos <dorit@il.ib.com>
PR tree-optimization/20501
* tree-vect-analyze.c (vect_enhance_data_refs_alignment): Debug print
reporting that peeling for alignment is applied moved to...
* (vect_analyze_data_refs_alignment): Here.
2005-03-23 Ian Lance Taylor <ian@airs.com>
* reorg.c (dbr_schedule): Remove #if 0 code to call final.
2005-03-23 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
* config.gcc (alpha*-dec-osf[45]*): Remove target_cpu_default.
Define TARGET_SUPPORT_ARCH except on Tru64 UNIX V4.0A.
2005-03-23 Hans-Peter Nilsson <hp@axis.com>
* doc/tm.texi (TARGET_MD_ASM_CLOBBERS): Adjust wording to not
imply that this is called once, independent of asms in code.
Adjust to now being pased output and input lists. Mention helper
function decl_overlaps_hard_reg_set_p.
* hooks.c (hook_tree_tree_tree_tree_3rd_identity): Rename from
hook_tree_tree_identity and to take three trees, returning third.
* hooks.h (hook_tree_tree_tree_tree_3rd_identity): Adjust the
prototype.
* stmt.c: include hard-reg-set.h before tree.h.
(decl_overlaps_hard_reg_set_p): New function, broken out from...
(decl_conflicts_with_clobbers_p): Call
decl_overlaps_hard_reg_set_p.
(expand_asm_operands): Pass output and input lists in call to
targetm.md_asm_clobbers.
* target-def.h (TARGET_MD_ASM_CLOBBERS): Define as
hook_tree_tree_tree_tree_3rd_identity.
* target.h (struct gcc_target.md_asm_clobbers): Take three tree
parameters.
* tree.h [HARD_CONST] (decl_overlaps_hard_reg_set_p): Prototype.
* config/i386/i386.c (ix86_md_asm_clobbers): Adjust to three
parameters, first two unused.
* config/cris/cris.c (cris_md_asm_clobbers): Adjust to added
parameters. Only add MOF to clobbers if there's no 'h' mentioned
in constraint letters and MOF is not mentioned as a asm-declared
register in neither of the input and output lists.
2005-03-23 DJ Delorie <dj@redhat.com>
* optabs.c (expand_binop): Make sure the first subword's result
gets stored.
2005-03-23 Joseph S. Myers <joseph@codesourcery.com>
* c-common.c (c_common_truthvalue_conversion): Adjust comment.
Call c_common_truthvalue_conversion rather than
lang_hooks.truthvalue_conversion.
* c-convert.c (convert): Call c_objc_common_truthvalue_conversion.
* c-objc-common.c (c_objc_common_truthvalue_conversion): Move to
c-typeck.c.
* c-objc-common.h (LANG_HOOKS_TRUTHVALUE_CONVERSION): Change to
c_common_truthvalue_conversion.
* c-parser.c (c_parser_paren_condition, c_parser_for_statement,
c_parser_conditional_expression, c_parser_binary_expression): Call
c_objc_common_truthvalue_conversion.
* c-typeck.c (build_unary_op): Call
c_objc_common_truthvalue_conversion.
(build_conditional_expr): Do not call
lang_hooks.truthvalue_conversion.
(build_binary_op): Call c_common_truthvalue_conversion.
(c_objc_common_truthvalue_conversion): Moved from
c-objc-common.c. Call default_function_array_conversion instead
of default_conversion.
2005-03-23 Joseph S. Myers <joseph@codesourcery.com>
* c-common.h (default_conversion): Remove.
(perform_integral_promotions): Add.
* c-tree.h (default_conversion): Add.
* c-typeck.c (perform_integral_promotions): New, split out from
default_conversion.
* c-common.c (check_case_value): Use perform_integral_promotions,
not default_conversion.
(c_add_case_label): Don't continue processing case label after
found to be pointer.
2005-03-23 Mark Mitchell <mark@codesourcery.com>
* gcc.c (do_spec_1): Do not add a -L path for a directory in
the prefix list if we have already added a multilib directory
based on that path.
(main): Do not add MD_EXEC_PREFIX to the list of directories to
search with -L.
2005-03-22 Kazu Hirata <kazu@cs.umass.edu>
* reload1.c (indirect_symref_ok, reload_obstack): Make them
static.
* reload.h: Remove the prototype for indirect_symref_ok.
* reload1.c (indirect_symref_ok): Make it global.
* reload.h: Add a prototype for indirect_symref_ok.
2005-03-22 Kaz Kojima <kkojima@gcc.gnu.org>
* config/sh/sh.md (ashlhi3): Rename to *ashlhi3_n and add a new
ashlhi3 expander.
2005-03-22 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
* tree.h (DECL_IGNORED_P, DECL_IN_SYSTEM_HEADER): Clarify comments.
2005-03-22 Daniel Berlin <dberlin@dberlin.org>
* c-opts.c (c_common_parse_file): Only start/end main source file
if debug hooks says the writer wants it.
* dbxout.c (dbx_debug_hooks): Add start_end_main_source_file
member.
(xcoff_debug_hooks): Ditto.
* debug.c (do_nothing_hooks): Ditto.
* debug.h (gcc_debug_hooks): Ditto.
* dwarf2out.c (dwarf2_debug_hooks): Ditto.
* sdbout.c (sdb_debug_hooks): Ditto.
* vmsdbgout.c (vmsdbg_debug_hooks): Ditto.
2005-03-22 Mark Mitchell <mark@codesourcery.com>
* doc/extend.texi: Deprecate C++ min/max operators.
2005-03-22 Zdenek Dvorak <dvorakz@suse.cz>
* tree-ssa-loop-ivopts.c (determine_iv_cost): Do not try to preserve
artificial original candidates.
2005-03-22 Richard Guenther <rguenth@tat.physik.uni-tuebingen.de>
Jan Hubicka <jh@suse.cz>
Steven Bosscher <stevenb@suse.de>
* cgraphunit.c (cgraph_estimate_size_after_inlining): Compute
call cost based on argument sizes.
(cgraph_mark_inline_edge): Avoid inline unit from shrinking by
inlining.
* params.def: (max-inline-inssn-single): Set to 450.
(max-inline-insns-auto): Set to 90.
(max-inline-insns-recursive): Set to 450
(max-inline-insns-recursive-auto): Set to 450.
(large-function-insns): Set to 2700.
(inline-call-cost): New parameter.
* tree-inline.c (estimate_move_cost): New function.
(estimate_num_insns_1): Compute move sizes costs by estimate_move_cost
for non-gimple-regs, set cost to 0 for gimple-regs. Compute call size
based on arguments.
* tree-inline.h (estimate_move_cost): Declare.
* invoke.texi: (max-inline-inssn-single): Change default to 450.
(max-inline-insns-auto): Change default to 90.
(max-inline-insns-recursive): Change default to 450
(max-inline-insns-recursive-auto): Change default to 450.
(large-function-insns): Change default to 2700.
(inline-call-cost): Document new parameter.
2005-03-22 Richard Sandiford <rsandifo@redhat.com>
* config/i860/i860.h (target_flags, TARGET_XP, TARGET_SWITCHES)
(TARGET_DEFAULT): Delete.
* config/i860/i860.opt: New file.
2005-03-22 Richard Sandiford <rsandifo@redhat.com>
* config/frv/frv-protos.h (frv_branch_cost_string, frv_branch_cost_int)
(frv_cpu_string, frv_condexec_insns_str, frv_condexec_insns)
(frv_condexec_temps_str, frv_condexec_temps, frv_sched_lookahead_str)
(frv_sched_lookahead): Delete.
* config/frv/frv.h (MASK_DEFAULT_ALLOC_CC): Move to frv.c.
(target_flags, MASK_GPR_32, MASK_FPR_32, MASK_SOFT_FLOAT)
(MASK_ALLOC_CC, MASK_DWORD, MASK_DOUBLE, MASK_MEDIA, MASK_MULADD)
(MASK_LIBPIC, MASK_ACC_4, MASK_PACK, MASK_LONG_CALLS)
(MASK_ALIGN_LABELS, MASK_LINKED_FP, MASK_BIG_TLS, MASK_DEBUG_ARG)
(MASK_DEBUG_ADDR, MASK_DEBUG_STACK, MASK_DEBUG, MASK_DEBUG_LOC)
(MASK_DEBUG_COND_EXEC, MASK_NO_COND_MOVE, MASK_NO_SCC)
(MASK_NO_COND_EXEC, MASK_NO_VLIW_BRANCH, MASK_NO_MULTI_CE)
(MASK_FDPIC, MASK_INLINE_PLT, MASK_GPREL_RO, MASK_DEFAULT)
(TARGET_GPR_32, TARGET_FPR_32, TARGET_SOFT_FLOAT, TARGET_ALLOC_CC)
(TARGET_DWORD, TARGET_DOUBLE, TARGET_MEDIA, TARGET_MULADD)
(TARGET_LIBPIC, TARGET_ACC_4, TARGET_DEBUG_ARG, TARGET_DEBUG_ADDR)
(TARGET_DEBUG_STACK, TARGET_DEBUG, TARGET_DEBUG_LOC)
(TARGET_DEBUG_COND_EXEC, TARGET_NO_COND_MOVE, TARGET_NO_SCC)
(TARGET_NO_COND_EXEC, TARGET_NO_VLIW_BRANCH, TARGET_NO_MULTI_CE)
(TARGET_NO_NESTED_CE, TARGET_FDPIC, TARGET_INLINE_PLT, TARGET_BIG_TLS)
(TARGET_GPREL_RO, TARGET_PACK, TARGET_LONG_CALLS, TARGET_ALIGN_LABELS)
(TARGET_LINKED_FP, TARGET_GPR_64, TARGET_FPR_64, TARGET_HARD_FLOAT)
(TARGET_FIXED_CC, TARGET_COND_MOVE, TARGET_SCC, TARGET_COND_EXEC)
(TARGET_VLIW_BRANCH, TARGET_MULTI_CE, TARGET_NESTED_CE, TARGET_ACC_8)
(TARGET_SWITCHES, TARGET_OPTIONS, DEFAULT_CONDEXEC_TEMPS)
(DEFAULT_BRANCH_COST, DEFAULT_CONDEXEC_INSNS): Delete.
* config/frv/frv.c (frv_branch_cost_string, frv_branch_cost_int)
(frv_cpu_string, frv_condexec_insns_str, frv_condexec_insns)
(frv_condexec_temps_str, frv_condexec_temps, frv_sched_lookahead_str)
(frv_sched_lookahead): Delete.
(MASK_DEFAULT_ALLOC_CC): Moved from frv.h.
(TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
(frv_handle_option): New function. Move -mcpu= handling from...
(frv_override_options): ...here. Remove handling of other
TARGET_OPTIONS.
(frv_ifcvt_modify_tests): Check !TARGET_COND_EXEC instead of
TARGET_NO_COND_EXEC and !TARGET_NESTED_CE to TARGET_NO_NESTED_CE.
(frv_ifcvt_modify_multiple_tests): Likewise !TARGET_MULTI_CE
and TARGET_NO_MULTI_CE.
(frv_for_each_packet): Likewise TARGET_NO_VLIW_BRANCH and
!TARGET_VLIW_BRANCH.
* config/frv/frv.opt: New file.
2005-03-22 Kazu Hirata <kazu@cs.umass.edu>
* fold-const.c (fold_ternary): Take decomposed arguments of
CALL_EXPR.
(fold): Update a call to fold_ternary.
* fold-const.c (fold_build1, fold_build2, fold_build3): New.
* tree.h: Add corresponding prototypes.
2005-03-22 Jakub Jelinek <jakub@redhat.com>
PR target/20561
* cfglayout.c (reemit_insn_block_notes): Don't put block notes in
between jump table and its label.
* final.c (shorten_branches): Handle notes in between ADDR_VEC
resp. ADDR_DIFF_VEC and the label preceeding it.
(final_scan_insn): Likewise. Ensure ADDR_VEC resp. ADDR_DIFF_VEC
is emitted in the right section.
2005-03-22 Kazu Hirata <kazu@cs.umass.edu>
* fold-const.c (fold_unary, fold_binary): Update comments
about arguments.
2005-03-22 Hans-Peter Nilsson <hp@axis.com>
PR rtl-optimization/20527
* combine.c (can_combine_p) [AUTO_INC_DEC]: When INSN has an
REG_INC note, test that the register also isn't mentioned in PRED
or SUCC.
2005-03-22 Ben Elliston <bje@au.ibm.com>
* dwarf2out.c (dwarf_type_encoding_name): Remove unused prototype
and definition.
2005-03-21 Mike Stump <mrs@apple.com>
* varasm.c (default_assemble_visibility): Remove extra ().
2005-03-21 Roger Sayle <roger@eyesopen.com>
PR middle-end/20557
* bb-reorder.c (duplicate_computed_gotos): Use can_duplicate_block_p
to determine whether a block can be duplicated, rather than test
whether the block contains noncopyable insns ourselves.
2005-03-21 Kazu Hirata <kazu@cs.umass.edu>
* config/i860/i860.h (PREDICATE_CODES): Remove nonexistent
predicates.
2005-03-21 Richard Sandiford <rsandifo@redhat.com>
* config/ip2k/ip2k.h (target_flags, TARGET_SWITCHES): Delete.
2005-03-21 Richard Sandiford <rsandifo@redhat.com>
* config/fr30/fr30.h (TARGET_SMALL_MODEL_MASK, TARGET_SMALL_MODEL)
(TARGET_DEFAULT, target_flags, TARGET_SWITCHES): Delete.
* config/fr30/fr30.opt: New file.
2005-03-18 Daniel Berlin <dberlin@dberlin.org>
Fix PR tree-optimization/20542
* tree-flow-inline.h (overlap_subvar): Move to here.
* tree-ssa-operands.c: From here.
* tree-flow.h (overlap_subvar): Declare.
* tree-ssa-alias.c (add_pointed_to_var): Use overlap_subvar here.
* tree-ssa-loop-im.c (is_call_clobbered_ref): Return proper answer
for variables with subvars.
2005-03-21 Mostafa Hagog <mustafa@il.ibm.com>
PR middle-end/20177
* ddg.c (create_ddg_dependence): Ignore reg-anti dependency.
* modulo-sched.c (const_iteration_count): Return on NULL
pre-header.
(print_node_sched_params): Return on NULL dump_file.
(generate_reg_moves): Handle reg-anti dependencies and disregard
closing branch when generating register moves.
(sms_schedule): Mark the SMSed block dirty.
* passes.c (rest_of_handle_sms): Call update_life_info for all
basic-blocks.
* testsuite/gcc.dg/20050321-1.c: New test.
2005-03-21 Bob Wilson <bob.wilson@acm.org>
* config/xtensa/lib1funcs.asm (__mulsi3): Use symbolic name for ACCLO.
* config/xtensa/xtensa.md (movsi_internal, movhi_internal,
movqi_internal): Likewise.
2005-03-21 Bob Wilson <bob.wilson@acm.org>
* config/xtensa/xtensa-protos.h: (xtensa_simm7, xtensa_uimm8,
xtensa_uimm8x2, xtensa_uimm8x4, xtensa_ai4const, xtensa_lsi4x4,
xtensa_b4const): Delete prototypes.
(xtensa_simm8, xtensa_simm8x256, xtensa_simm12b, xtensa_b4constu,
xtensa_mask_immediate, xtensa_mem_offset): Update prototypes.
(xtensa_b4const_or_zero, xtensa_const_ok_for_letter_p,
xtensa_extra_constraint): New prototypes.
(add_operand, arith_operand, nonimmed_operand, mem_operand,
mask_operand, extui_fldsz_operand, sext_operand, sext_fldsz_operand,
lsbitnum_operand, branch_operand, ubranch_operand, call_insn_operand,
move_operand, const_float_1_operand, fpmem_offset_operand,
branch_operator, ubranch_operator, boolean_operator): Delete prototypes.
* config/xtensa/xtensa.c (b4const_or_zero): Rename to ...
(xtensa_b4const_or_zero): ...this. Change return type to bool and
argument type to HOST_WIDE_INT.
(xtensa_simm8, xtensa_simm8x256, xtensa_simm12b,
xtensa_mask_immediate): Likewise.
(xtensa_uimm8, xtensa_uimm8x2, xtensa_uimm8x4, xtensa_b4const):
Likewise. Also make these functions static.
(xtensa_simm7, xtensa_ai4const, xtensa_lsi4x4): Delete.
(xtensa_const_ok_for_letter_p): New.
(add_operand, arith_operand, nonimmed_operand, mem_operand,
mask_operand, extui_fldsz_operand, sext_operand, sext_fldsz_operand,
lsbitnum_operand, branch_operand, ubranch_operand, call_insn_operand,
move_operand, const_float_1_operand, fpmem_offset_operand,
branch_operator, ubranch_operator, boolean_operator): Move to
predicates.md.
(smalloffset_mem_p): Inline code from xtensa_lsi4x4.
(xtensa_mem_offset): Change return type to bool.
(xtensa_extra_constraint): New.
(gen_int_relational): Update type of const_range_p function pointer.
Use xtensa_b4const_or_zero.
* config/xtensa/xtensa.h (CONST_OK_FOR_LETTER_P): Define to
xtensa_const_ok_for_letter_p. Update comments.
(EXTRA_CONSTRAINT): Define to xtensa_extra_constraint.
(PREDICATE_CODES): Delete.
* config/xtensa/xtensa.md: Include predicates.md.
* config/xtensa/predicates.md: New file.
2005-03-21 Kazu Hirata <kazu@cs.umass.edu>
* config/v850/v850-protos.h: Remove the prototypes for
reg_or_int9_operand, reg_or_const_operand,
pattern_is_ok_for_prepare, pattern_is_ok_for_dispose,
reg_or_0_operand, reg_or_int5_operand, call_address_operand,
movsi_source_operand, power_of_two_operand,
not_power_of_two_operand, special_symbolref_operand,
pattern_is_ok_for_prologue, pattern_is_ok_for_epilogue, and
register_is_ok_for_epilogue.
* config/v850/v850.c (reg_or_0_operand, reg_or_int5_operand,
reg_or_int9_operand, reg_or_const_operand,
call_address_operand, special_symbolref_operand,
movsi_source_operand, power_of_two_operand,
not_power_of_two_operand, register_is_ok_for_epilogue,
pattern_is_ok_for_epilogue, pattern_is_ok_for_prologue,
pattern_is_ok_for_dispose, pattern_is_ok_for_prepare): Move to
predicates.md.
* config/v850/v850.h (PREDICATE_CODES): Remove.
* config/v850/v850.md: Include predicates.md.
* config/v850/predicates.md: New.
2005-03-21 Zack Weinberg <zack@codesourcery.com>
* Makefile.in (BASEVER, DEVPHASE, DATESTAMP)
(BASEVER_c, DEVPHASE_c, DATESTAMP_c)
(BASEVER_s, DEVPHASE_s, DATESTAMP_s, version): Set with :=.
(itoolsdir, itoolsdatadir): Move definition above new first use.
(install-itoolsdirs): New rule.
(install-mkheaders): Depend on install-itoolsdirs, not
install-include-dir.
2005-03-21 Kazu Hirata <kazu@cs.umass.edu>
* tree-into-ssa.c: Remove obsolete comments.
2005-03-21 Richard Guenther <rguenth@gcc.gnu.org>
* tree-ssa-loop.c (gate_tree_complete_unroll): Run complete
unrolling if -fpeel-loops is specified, too.
* tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
Remove superfluous check for flag_unroll_loops.
2005-03-21 Uros Bizjak <uros@kss-loka.si>
* optabs.h (enum optab_index): Add new OTI_lrint and OTI_llrint.
(lrint_optab, llrint_optab): Define corresponding macros.
* optabs.c (init_optabs): Initialize lrint_optab and llrint_optab.
* genopinit.c (optabs): Implement lrint_optab using lrintsi2
pattern and llrint_optab using llrintdi2 patterns.
* builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LRINT{,F,L}
using lrint_optab and BUILT_IN_LLRINT{,F,L} using llrint_optab.
(expand_builtin): Expand BUILT_IN_LRINT{,F,L} and
BUILT_IN_LLRINT{,F,L} using expand_builtin_mathfn if
flag_unsafe_math_optimizations is set.
2005-03-21 Paolo Bonzini <bonzini@gnu.org>
* combine.c (combine_simplify_rtx, simplify_if_then_else,
simplify_logical, if_then_else_cond, known_cond,
simplify_comparison): Adjust calls to reverse_comparison.
Don't use combine_reversed_comparison_code).
(combine_reversed_comparison_code): Remove.
(reversed_comparison): Using reversed_comparison_code, move it...
* jump.c (reversed_comparison): ... here.
* rtl.h (reversed_comparison): Add prototype.
2005-03-21 Kazu Hirata <kazu@cs.umass.edu>
* builtins.c (fold_builtin): Take decomposed arguments of
CALL_EXPR.
* fold-const.c (fold_ternary): Update a call to fold_builtin.
* gimplify.c (gimplify_call_expr): Likewise.
* tree-ssa-ccp.c (ccp_fold, ccp_fold_builtin): Likewise.
* tree.h: Update the prototype of fold_builtin.
2005-03-21 Paolo Bonzini <bonzini@gnu.org>
* rtl.h (struct rtx_hooks): Add gen_lowpart_no_emit.
* rtlhooks.c (gen_lowpart_no_emit_general): New.
* rtlhooks-def.h (gen_lowpart_no_emit_general): Declare.
(RTL_HOOKS_GEN_LOWPART_NO_EMIT): New.
* simplify-rtx.c (simplify_binary_operation_1): Use it.
2005-03-21 Kazu Hirata <kazu@cs.umass.edu>
* builtins.c (fold_builtin_1): Take decomposed arguments of
CALL_EXPR.
(fold_builtin): Update a call to fold_builtin_1.
2005-03-21 Nathan Sidwell <nathan@codesourcery.com>
PR other/20564
* gcov.c (output_lines): Only output function block summary when
outputting branch information.
* doc/gcov.texi: Document format of preamble and additional block
information lines.
2005-03-21 Richard Sandiford <rsandifo@redhat.com>
* libgcc2.h (LIBGCC2_HAS_SF_MODE): New macro.
(LIBGCC2_HAS_DF_MODE, LIBGCC2_HAS_TF_MODE, LIBGCC2_HAS_XF_MODE): Make
the defaults false if BITS_PER_UNIT != 8.
(SFtype, SCtype, __fixsfdi, __floatdisf, __fixunssfSI, __fixunssfDI)
(__powisf2, __divsc3, __mulsc3): Guard with LIBGCC2_HAS_SF_MODE rather
than BITS_PER_UNIT != 8.
(L_fixdfdi, L_fixsfdi, L_fixtfdi, L_fixunsdfdi, L_fixunsdfsi)
(L_fixunssfdi, L_fixunssfsi, L_fixunstfdi, L_fixunsxfdi, L_fixunsxfsi)
(L_fixxfdi, L_floatdidf, L_floatdisf, L_floatditf, L_floatdixf): Remove
#undefs.
* libgcc2.c (__fixunssfDI, __fixsfdi, __floatdisf, __fixunssfSI)
(__powisf2, __divsc3, __mulsc3): Guard with LIBGCC2_HAS_SF_MODE.
2005-03-20 Roger Sayle <roger@eyesopen.com>
PR middle-end/20539
* fold-const.c (fold_binary): Fix type mismatch between
TRUTH_{AND,OR,XOR}_EXPR nodes an their operands' types.
(fold_binary) <TRUTH_XOR_EXPR>: Avoid calling invert_truthvalue
for non-truth-valued expressions.
* c-common.c (c_common_truthvalue_conversion): Handle ERROR_MARK
and FUNCTION_DECL in the main switch.
<TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR,
TRUTH_XOR_EXPR>: When changing the result type of these tree nodes,
we also need to convert their operands to match.
<TRUTH_NOT_EXPR>: Likewise.
2005-03-21 Joseph S. Myers <joseph@codesourcery.com>
* c-common.c (lvalue_or_else): Replace by lvalue_error; only give
diagnostic without checking whether an lvalue.
* c-common.h (lvalue_p): Remove.
(enum lvalue_use): Update comment.
(lvalue_or_else): Replace by lvalue_error.
* c-typeck.c (lvalue_p): Make static.
(lvalue_or_else): New. Call lvalue_error.
2005-03-21 Alan Modra <amodra@bigpond.net.au>
* config/rs6000/rs6000.c (rs6000_parm_start): New function.
(function_arg_advance): Use rs6000_parm_start.
(function_arg, rs6000_arg_partial_bytes): Likewise.
2005-03-20 Joseph S. Myers <joseph@codesourcery.com>
* c-common.c (check_case_value): Adjust comment about stripping
NOPs.
(handle_vector_size_attribute): Don't strip NON_LVALUE_EXPR.
* c-typeck.c (default_conversion, convert_arguments,
build_modify_expr, convert_for_assignment, store_init_value,
digest_init): Use STRIP_TYPE_NOPS instead of stripping nops
manually. Remove inaccurate comments.
2005-03-20 Roger Sayle <roger@eyesopen.com>
Joseph S. Myers <joseph@codesourcery.com>
* varasm.c (do_assemble_alias): Restore comment describing function.
Annotate the target parameter as potentially unused.
2005-03-20 Marek Michalkiewicz <marekm@amelek.gda.pl>
PR target/18551
* config/avr/avr.c (avr_output_function_prologue): Do not use
current_function_name() in a label, use a local label instead.
2005-03-20 David Edelsohn <edelsohn@gnu.org>
* config/rs6000/rs6000.c (rs6000_generate_compare): Test
flag_finite_math_only, not flag_unsafe_math_optimizations.
2005-03-20 Kazu Hirata <kazu@cs.umass.edu>
* builtins.c (fold_builtin_1): Update a call to
targetm.fold_builtin.
* hooks.c (hook_tree_tree_bool_null): Rename to
hook_tree_tree_tree_bool_null. Take one more argument of type
tree.
* hooks.h: Update the prototype of hook_tree_tree_bool_null.
* target-def.h (TARGET_FOLD_BUILTIN): Define it as
hook_tree_tree_tree_bool_null.
* target.h (gcc_target): Update the prototype of fold_builtin.
* config/alpha/alpha.c (alpha_fold_builtin): Take decomposed
arguments of CALL_EXPR.
* doc/tm.texi (TARGET_FOLD_BUILTIN): Update. Mention the
new prototype.
2005-03-20 Jan Hubicka <jh@suse.cz>
* cgraph.h (cgraph_node): Add prev_clone pointer.
* cgraph.c (cgraph_remove_node): Remove from doubly linked chain.
(cgraph_clone_node): Produce doubly linked chain.
2005-03-20 Joseph S. Myers <joseph@codesourcery.com>
* c-common.c (handle_aligned_attribute, check_function_sentinel,
get_nonnull_operand, handle_sentinel_attribute,
check_function_arguments_recurse): Do not strip NOPS from
INTEGER_CSTs.
* c-decl.c (check_bitfield_type_and_width, build_enumerator):
Likewise.
* c-format.c (get_constant): Likewise.
* c-parser.c (c_parser_postfix_expression): Likewise.
* c-typeck.c (set_init_index): Likewise.
(convert_arguments): Don't check for NOP_EXPR containing integer
constant.
2005-03-20 Kazu Hirata <kazu@cs.umass.edu>
* builtins.c (fold_fixed_mathfn, fold_builtin_trunc,
fold_builtin_floor, fold_builtin_ceil, fold_builtin_lround):
Take decomposed arguments of CALL_EXPR.
(fold_builtin_1): Update calls to the functions mentioned
above.
2005-03-20 Joseph S. Myers <joseph@codesourcery.com>
* c-decl.c (check_bitfield_type_and_width): Require bit-field
width to have integer type.
(build_enumerator): Require enumerator value to have integer type.
2005-03-19 Joseph S. Myers <joseph@codesourcery.com>
* doc/extend.texi (__builtin_inf): Move statement about INFINITY
to __builtin_inff.
2005-03-19 Joseph S. Myers <joseph@codesourcery.com>
* c.opt (ansi, std=iso9899:1990, std=iso9899:1999,
std=iso9899:199x): Correct descriptions.
2005-03-19 Joseph S. Myers <joseph@codesourcery.com>
* config.gcc: Consistently use solaris2.1[0-9]* instead of
solaris2.1[0-9].
2005-03-19 Kazu Hirata <kazu@cs.umass.edu>
* builtins.c (fold_builtin_memcpy): Take decomposed arguments
of CALL_EXPR.
(expand_builtin_memcpy, fold_builtin_1): Update calls to
fold_builtin_memcpy.
* builtins.c (fold_trunc_transparent_mathfn): Take decomposed
arguments of CALL_EXPR.
(fold_builtin_trunc, fold_builtin_floor, fold_builtin_ceil,
fold_builtin_found, fold_builtin_1): Update calls to
fold_trunc_transparent_mathfn.
2005-03-19 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
PR middle-end/20493
* fold-const.c (fold_widened_comparison): Don't optimize casts of
function pointers on targets that require function pointer
canonicalization.
(fold_sign_changed_comparison): Likewise.
2005-03-19 Bernd Schmidt <bernd.schmidt@analog.com>
* combine.c (try_combine): When changing the mode of a hard reg, make
sure that doing so is valid.
2005-03-19 Richard Sandiford <rsandifo@redhat.com>
* config/avr/avr.c (avr_init_stack, avr_mcu_name): Make static.
(TARGET_HANDLE_OPTION): Override default.
(avr_handle_option): New function.
* config/avr/avr.h (MASK_ALL_DEBUG, MASK_ORDER_1, MASK_INSN_SIZE_DUMP)
(MASK_ORDER_2, MASK_NO_TABLEJUMP, MASK_INT8, MASK_NO_INTERRUPTS)
(MASK_CALL_PROLOGUES, MASK_TINY_STACK, MASK_SHORT_CALLS)
(TARGET_ORDER_1, TARGET_ORDER_2, TARGET_INT8, TARGET_NO_INTERRUPTS)
(TARGET_INSN_SIZE_DUMP, TARGET_CALL_PROLOGUES, TARGET_TINY_STACK)
(TARGET_NO_TABLEJUMP, TARGET_SHORT_CALLS, TARGET_ALL_DEBUG)
(TARGET_SWITCHES, avr_init_stack, avr_mcu_name)
(TARGET_OPTIONS): Delete.
* config/avr/avr.opt: New file.
2005-03-18 2005-03-18 Kazu Hirata <kazu@cs.umass.edu>
* config/m32r/m32r-protos.h: Remove the prototypes for
call_address_operand, symbolic_operand, seth_add3_operand,
cmp_int16_operand, uint16_operand, reg_or_int16_operand,
reg_or_uint16_operand, reg_or_cmp_int16_operand,
two_insn_const_operand, move_src_operand,
move_double_src_operand, move_dest_operand,
eqne_comparison_operator, signed_comparison_operator,
large_insn_p, conditional_move_operand, carry_compare_operand,
m32r_block_immediate_operand, extend_operand,
reg_or_eq_int16_operand, int8_operand, and
reg_or_zero_operand.
* config/m32r/m32r.c (call_address_operand, symbolic_operand,
seth_add3_operand, int8_operand, cmp_int16_operand,
uint16_operand, reg_or_int16_operand, reg_or_uint16_operand,
reg_or_eq_int16_operand, reg_or_cmp_int16_operand,
reg_or_zero_operand, two_insn_const_operand, move_src_operand,
move_double_src_operand, move_dest_operand,
eqne_comparison_operator, signed_comparison_operator,
extend_operand, small_insn_p, large_insn_p,
conditional_move_operand, carry_compare_operand,
m32r_block_immediate_operand): Move to predicates.md.
(MAX_MOVE_BYTES): Move to m32r.h.
* config/m32r/m32r.h (PREDICATE_CODES): Remove.
* config/m32r/m32r.md: Include predicates.md.
* config/m32r/predicates.md: New.
2005-03-18 James E Wilson <wilson@specifixinc.com>
PR c++/19769
* dwarf2out.c (declare_in_namespace): Ignore decls with an abstract
origin.
2005-03-18 Kazu Hirata <kazu@cs.umass.edu>
* config/mn10300/mn10300-protos.h: Remove the prototypes for
call_address_operand, const_8bit_operand.
* config/mn10300/mn10300.c (call_address_operand,
const_8bit_operand, const_1f_operand): Move to predicates.md.
* config/mn10300/mn10300.h (PREDICATE_CODES): Remove.
* config/mn10300/mn10300.md: Include predicates.md.
* config/mn10300/predicates.md: New.
2005-03-18 Joseph S. Myers <joseph@codesourcery.com>
* c-common.c, c-decl.c, c-format.c, c-typeck.c: Use %D for
declarations in diagnostics and %E for identifiers, not %s.
2005-03-18 Jan Hubicka <jh@suse.cz>
Dale Johannesen <dalej@apple.com>
* basic-block.h (scale_bbs_frequencies_int,
scale_bbs_frequencies_gcov_type): Declare.
* cfg.c (RDIV): New macro.
(update_bb_frequency_for_threading): Fix.
* basic-block.h (scale_bbs_frequencies_int,
scale_bbs_frequencies_gcov_type): New.
* cfgloopmanip.c (scale_bbs_frequencies): Kill.
(scale_loop_frequencies, duplicate_loop_to_header_edge): Use
scale_bbs_frequencies_int.
* tree-ssa-loop-ch.c (copy_loop_headers): Fix profiling info.
2005-03-18 Kazu Hirata <kazu@cs.umass.edu>
* config/m32r/m32r-protos.h: Remove the prototypes for
call_address_operand, symbolic_operand, seth_add3_operand,
cmp_int16_operand, uint16_operand, reg_or_int16_operand,
reg_or_uint16_operand, reg_or_cmp_int16_operand,
two_insn_const_operand, move_src_operand,
move_double_src_operand, move_dest_operand,
eqne_comparison_operator, signed_comparison_operator,
large_insn_p, conditional_move_operand, carry_compare_operand,
m32r_block_immediate_operand, extend_operand,
reg_or_eq_int16_operand, int8_operand, and
reg_or_zero_operand.
* config/m32r/m32r.c (call_address_operand, symbolic_operand,
seth_add3_operand, int8_operand, cmp_int16_operand,
uint16_operand, reg_or_int16_operand, reg_or_uint16_operand,
reg_or_eq_int16_operand, reg_or_cmp_int16_operand,
reg_or_zero_operand, two_insn_const_operand, move_src_operand,
move_double_src_operand, move_dest_operand,
eqne_comparison_operator, signed_comparison_operator,
extend_operand, small_insn_p, large_insn_p,
conditional_move_operand, carry_compare_operand,
m32r_block_immediate_operand): Move to predicates.md.
(MAX_MOVE_BYTES): Move to m32r.h.
* config/m32r/m32r.h (PREDICATE_CODES): Remove.
* config/m32r/m32r.md: Include predicates.md.
* config/m32r/predicates.md: New.
* config/pa/pa-protos.h: Add prototypes for magic_milli and
shadd_constant_p.
* config/pa/pa.c (reg_or_0_operand, call_operand_address,
symbolic_operand, symbolic_memory_operand,
reg_or_0_or_nonsymb_mem_operand, reg_before_reload_operand,
indexed_memory_operand, move_dest_operand, move_src_operand,
prefetch_cc_operand, prefetch_nocc_operand,
reg_or_cint_move_operand, pic_label_operand, fp_reg_operand,
arith_operand, arith11_operand, pre_cint_operand,
post_cint_operan, arith_double_operand, ireg_or_int5_operand,
ireg_operand, int5_operand, uint5_operand, int11_operand,
uint32_operand, arith5_operand, and_operand, ior_operand,
lhs_lshift_operand, lhs_lshift_cint_operand, arith32_operand,
pc_or_label_operand, div_operand, plus_xor_ior_operator,
shadd_operand, movb_comparison_operator,
cmpib_comparison_operator): Move to predicates.md.
(magic_milli, shadd_constant_p): Make it extern.
* config/pa/pa.h (PREDICATE_CODES): Remove.
* config/pa/pa.md: Include predicates.md.
* config/pa/predicates.md: New.
* config/v850/v850.h (PREDICATE_CODES): Remove a nonexistent
predicate.
2005-03-18 Kazu Hirata <kazu@cs.umass.edu>
* hooks.c, hooks.h, intl.c, opts.h, prefix.c, tree-gimple.c,
config/alpha/ev4.md, config/alpha/ev5.md, config/alpha/ev6.md,
config/alpha/freebsd.h, config/alpha/linux.h,
config/alpha/netbsd.h, config/alpha/osf5.h,
config/alpha/vms.h, config/arc/arc.c, config/arc/arc.h,
config/h8300/h8300-protos.h, config/h8300/h8300.c,
config/h8300/h8300.h, config/ia64/unwind-ia64.c,
doc/cppopts.texi: Update copyright.
2005-03-18 Jan Hubicka <jh@suse.cz>
PR middle-end/20225
* cgraph.c (cgraph_mark_reachable_node): Assert that it is not called
too late.
* varasm.c (find_decl_and_mark_needed): Mark needed only when not
called too late.
2005-03-18 Kazu Hirata <kazu@cs.umass.edu>
* tree-into-ssa.c (find_idf): Use VEC_quick_push instead of
VEC_safe_push.
2005-03-18 Paolo Bonzini <bonzini@gnu.org>
* combine.c (gen_binary): Remove.
(known_cond, simplify_shift_const, find_split_point,
combine_simplify_rtx, simplify_if_then_else, simplify_set,
simplify_logical, expand_field_assignment, extract_left_shift,
force_to_mode, if_then_else_cond, apply_distributive_law,
simplify_and_const_int, simplify_shift_const, gen_lowpart_for_combine,
simplify_comparison, reversed_comparison): Replace with
simplify_gen_binary, simplify_gen_relational or
distribute_and_simplify_rtx.
(distribute_and_simplify_rtx): New function.
2005-03-18 Alexey Neyman <alex.neyman@auriga.ru>
Paolo Bonzini <gcc.gnu.org>
* calls.c (setjmp_call_p, special_function_p): Update comments
at the head of the functions.
2005-03-18 Jan Hubicka <jh@suse.cz>
* tree-cfg.c (fold_cond_expr_cond): Use boolean types for condition.
* cgraph.c (cgraph_remove_node): Avoid loop in code deciding whether
function body should be released; do not proactively release function
bodies in non-unit-at-a-time mode.
2005-03-18 Ralf Corsepius <ralf.corsepius@rtems.org>
* config/i386/t-rtems-i386 (MULTILIBS): Remove k6, athlon,
mno-fp-ret-in-387 multilib variants.
2005-03-18 Richard Sandiford <rsandifo@redhat.com>
* common.opt (m): Remove.
* opts.c (handle_option): Pass 'm' options to set_target_switch if
table lookup fails.
(common_handle_option): Remove OPT_m case.
2005-03-18 Kazu Hirata <kazu@cs.umass.edu>
* builtins.c (fold_builtin_bitop): Take decomposed arguments
of CALL_EXPR.
(fold_builtin_1): Update a call to fold_builtin_bitop.
* builtins.c (fold_builtin_signbit): Take decomposed arguments
of CALL_EXPR.
(fold_builtin_1): Update a call to fold_builtin_signbit.
2005-03-17 Dorit Naishlos <dorit@il.ibm.com>
PR tree-optimization/20474
* tree-vect-analyze.c (vect_analyze_pointer_ref_access): Check the
size_type of the relevant pointer. Check for COMPLETE_TYPE_P.
2005-03-17 Kazu Hirata <kazu@cs.umass.edu>
* config/h8300/h8300-protos.h: Remove prototypes for
general_operand_src, general_operand_dst, single_one_operand,
single_zero_operand, call_insn_operand,
two_insn_adds_subs_operand, small_call_insn_operand,
jump_address_operand, bit_operand, bit_memory_operand,
stack_pointer_operand, const_int_gt_2_operand,
const_int_ge_8_operand, const_int_qi_operand,
const_int_hi_operand, incdec_operand, bit_operator,
nshift_operator, eqne_operator, gtle_operator,
gtuleu_operator, iorxor_operator.
Add prototypes for h8sx_shift_type h8sx_classify_shift and
h8300_ldm_stm_parallel.
* config/h8300/h8300.c (h8sx_shift_type,): Move to
h8300-protos.h.
(SYMBOL_FLAG_FUNCVEC_FUNCTION, SYMBOL_FLAG_EIGHTBIT_DATA,
SYMBOL_FLAG_TINY_DATA): Move to h8300.h.
(h8300_ldm_stm_parallel): Make it extern.
(h8300_ldm_parallel, h8300_stm_parallel,
h8300_return_parallel, general_operand_src,
general_operand_dst, h8300_dst_operand, h8300_src_operand,
nibble_operand, reg_or_nibble_operand, single_one_operand,
single_zero_operand, call_insn_operand,
two_insn_adds_subs_operand, small_call_insn_operand,
jump_address_operand, bit_operand, bit_memory_operand,
stack_pointer_operand, const_int_gt_2_operand,
const_int_ge_8_operand, const_int_qi_operand,
const_int_hi_operand, incdec_operand, eqne_operator,
gtle_operator, gtuleu_operator, iorxor_operator, bit_operator,
h8sx_binary_memory_operator, h8sx_unary_memory_operator,
h8sx_unary_shift_operator, h8sx_binary_shift_operator,
nshift_operator): Move to predicates.md.
* config/h8300/h8300.h (PREDICATE_CODES): Remove.
* config/h8300/h8300.md: Include predicates.md.
* config/h8300/predicates.md: New.
2005-03-17 Richard Henderson <rth@redhat.com>
* config.gcc (ia64*-*-hpux*): Add extra_options.
* config/ia64/hpux.h (SUBTARGET_SWITCHES): Remove.
(TARGET_DEFAULT): Remove MASK_INLINE_FLOAT_DIV_THR.
* config/ia64/ia64.c (ia64_fixed_range_string): Remove.
(ia64_tls_size_string, ia64_tune_string): Remove.
(ia64_tune): Init to PROCESSOR_ITANIUM2.
(TARGET_DEFAULT_TARGET_FLAGS): New.
(TARGET_HANDLE_OPTION): New.
(ia64_override_options): Move options parsing ...
(ia64_handle_option): ... here. New.
* config/ia64/ia64.h (target_flags, MASK_BIG_ENDIAN, MASK_GNU_AS,
MASK_GNU_LD, MASK_NO_PIC, MASK_VOL_ASM_STOP, MASK_ILP32,
MASK_REG_NAMES, MASK_NO_SDATA, MASK_CONST_GP, MASK_AUTO_PIC,
MASK_INLINE_FLOAT_DIV_LAT, MASK_INLINE_FLOAT_DIV_THR,
MASK_INLINE_INT_DIV_LAT, MASK_INLINE_INT_DIV_THR,
MASK_INLINE_SQRT_LAT, MASK_INLINE_SQRT_THR, MASK_DWARF2_ASM,
MASK_EARLY_STOP_BITS, TARGET_BIG_ENDIAN, TARGET_GNU_AS, TARGET_GNU_LD,
TARGET_NO_PIC, TARGET_VOL_ASM_STOP, TARGET_ILP32, TARGET_REG_NAMES,
TARGET_NO_SDATA, TARGET_CONST_GP, TARGET_AUTO_PIC,
TARGET_INLINE_FLOAT_DIV_LAT, TARGET_INLINE_FLOAT_DIV_THR,
TARGET_INLINE_INT_DIV_LAT, TARGET_INLINE_INT_DIV_THR,
TARGET_INLINE_FLOAT_DIV, TARGET_INLINE_INT_DIV, TARGET_INLINE_SQRT_LAT,
TARGET_INLINE_SQRT_THR, TARGET_INLINE_SQRT, TARGET_DWARF2_ASM,
TARGET_EARLY_STOP_BITS): Remove.
(TARGET_ILP32): Default false.
(TARGET_SWITCHES, SUBTARGET_SWITCHES, TARGET_OPTIONS): Remove.
(enum ia64_inline_type): New.
(TARGET_DEFAULT): Remove MASK_INLINE_FLOAT_DIV_THR.
* config/ia64/ia64.md: Update for new definitions of
TARGET_INLINE_INT_DIV, TARGET_INLINE_FLOAT_DIV, TARGET_INLINE_SQRT.
* config/ia64/ia64.opt: New file.
* config/ia64/ilp32.opt: New file.
2005-03-17 H.J. Lu <hongjiu.lu@intel.com>
PR target/18380
* config/ia64/unwind-ia64.c (_Unwind_FindTableEntry): Removed.
2005-03-17 Kazu Hirata <kazu@cs.umass.edu>
* config/h8300/h8300.c (h8300_init_once): Use MASK_H8300S_1
instead of MASK_H8300S.
* config/h8300/h8300.h (target_flags, MASK_H8300S, MASK_MAC,
MASK_INT32, MASK_ADDRESSES, MASK_QUICKCALL, MASK_SLOWBYTE,
MASK_NORMAL_MODE, MASK_RELAX, MASK_H8300H, MASK_ALIGN_300,
MASK_H8300SX, TARGET_INT32, TARGET_ADDRESSES,
TARGET_QUICKCALL, TARGET_SLOWBYTE, TARGET_H8300H,
TARGET_H8300XS, TARGET_NORMAL_MODE, TARGET_ALIGN_300,
TARGET_SWITCHES): Remove.
(TARGET_H8300S): Redefine interms of TARGET_H8300S_1 and
TARGET_H8300SX.
* config/h8300/h8300.opt: New.
* config/alpha/alpha.opt, config/arc/arc.opt,
config/h8300/h8300.opt, config/mips/mips.opt: Add copyright
notices.
2005-03-17 Ian Lance Taylor <ian@airs.com>
* gmon.c: Remove.
2005-03-17 Richard Sandiford <rsandifo@redhat.com>
* config/arc/arc.c (arc_cpu_string): Make static. Default to "base"
(arc_text_string, arc_data_string, arc_rodata_string): Make static.
(TARGET_HANDLE_OPTION): Override default.
(arc_handle_option): New function.
(arc_init): Remove code to set arch_cpu_string.
* config/arc/arc.h (target_flags, TARGET_MASK_MANGLE_CPU)
(TARGET_MANGLE_CPU, TARGET_MASK_MANGLE_CPU_LIBGCC)
(TARGET_MANGLE_CPU_LIBGCC, TARGET_MASK_ALIGN_LOOPS, TARGET_ALIGN_LOOPS)
(TARGET_MASK_BIG_ENDIAN, TARGET_BIG_ENDIAN, TARGET_MASK_NO_COND_EXEC)
(TARGET_NO_COND_EXEC, TARGET_SWITCHES, TARGET_DEFAULT)
(SUBTARGET_SWITCHES, arc_cpu_string, arc_text_string, arc_data_string)
(arc_rodata_string, TARGET_OPTIONS): Delete.
* config/arc/arc.opt: New file.
2005-03-17 Richard Henderson <rth@redhat.com>
* doc/extend.texi (Weak Pragmas): New section.
(attribute alias): Clarify that target must be in the same
translation unit.
2005-03-17 Richard Henderson <rth@redhat.com>
* config/alpha/alpha.opt: New file.
* config/alpha/alpha.c (alpha_tune): New. Rename all existing uses
of alpha_cpu.
(alpha_cpu_string, alpha_tune_string, alpha_tp_string,
alpha_fprm_string, alpha_fptm_string): Make static.
(alpha_tls_size_string): Remove.
(alpha_handle_option): New.
(override_options): Update for alpha_cpu/alpha_tune split.
(alpha_file_start): Likewise.
(TARGET_DEFAULT_TARGET_FLAGS): New.
(TARGET_HANDLE_OPTION): New.
* config/alpha/alpha.h (alpha_tune): Declare.
(MASK_FP, MASK_FPREGS, TARGET_FPREGS, MASK_GAS, TARGET_GAS,
MASK_IEEE_CONFORMANT, TARGET_IEEE_CONFORMANT, MASK_IEEE, TARGET_IEEE,
MASK_IEEE_WITH_INEXACT, TARGET_IEEE_WITH_INEXACT, MASK_BUILD_CONSTANTS,
TARGET_BUILD_CONSTANTS, MASK_FLOAT_VAX, TARGET_FLOAT_VAX, MASK_BWX,
TARGET_BWX, MASK_MAX, TARGET_MAX, MASK_FIX, TARGET_FIX, MASK_CIX,
TARGET_CIX, MASK_EXPLICIT_RELOCS, TARGET_EXPLICIT_RELOCS,
MASK_SMALL_DATA, TARGET_SMALL_DATA, MASK_TLS_KERNEL, TARGET_TLS_KERNEL,
MASK_SMALL_TEXT, TARGET_SMALL_TEXT, MASK_LONG_DOUBLE_128,
TARGET_LONG_DOUBLE_128, MASK_CPU_EV5, TARGET_CPU_EV5, MASK_CPU_EV6,
TARGET_CPU_EV6, MASK_SUPPORT_ARCH): Remove.
(TARGET_SWITCHES, TARGET_OPTIONS): Remove.
(TARGET_DEFAULT): Remove MASK_FP.
(TARGET_FP): Redefined based on TARGET_SOFT_FP.
(TARGET_SUPPORT_ARCH): Default on if HAVE_AS_EXPLICIT_RELOCS.
(alpha_cpu_string, alpha_tune_string, alpha_fprm_string,
alpha_fptm_string, alpha_tp_string, alpha_mlat_string,
alpha_tls_size_string): Remove.
* config/alpha/alpha.md (prefetch): Use alpha_cpu.
(attribute tune): Rename from attribute cpu.
* config/alpha/ev4.md: Update to match.
* config/alpha/ev5.md, config/alpha/ev6.md: Likewise.
* config/alpha/freebsd.h (TARGET_DEFAULT): Remove MASK_FP.
* config/alpha/linux.h (TARGET_DEFAULT): Likewise.
* config/alpha/netbsd.h (TARGET_DEFAULT): Likewise.
* config/alpha/osf5.h (TARGET_DEFAULT): Likewise.
* config/alpha/vms.h (TARGET_DEFAULT): Likewise.
2005-03-16 James E. Wilson <wilson@specifixinc.com>
* config/ia64/ia64.c (issue_nops_and_insn): Check first_insn attribute,
and return without creating new state if before_nops_num is nonzero.
* config/ia64/ia64.md (first_insn): New attribute.
(alloc): Set it to yes.
2005-03-16 Daniel Berlin <dberlin@dberlin.org>
* tree-vectorizer.c (new_vec_stmt_info): Initialize
STMT_VINFO_SUBVARS to NULL.
* tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
2005-03-16 Dale Johannesen <dalej@apple.com>
* rtlanal.c (find_first_parameter_load): Rewrite to
return actual first param load or the call if none,
instead of first in block, when not all loads exist.
2005-03-16 Roger Sayle <roger@eyesopen.com>
* optabs.c (expand_copysign_absneg): Make static.
* optabs.h (expand_copysign_absneg): Delete prototype.
* config/rs6000/rs6000.md (copysigntf3): Delete pattern.
2005-03-16 Richard Henderson <rth@redhat.com>
PR middle-end/15700
* varasm.c (struct alias_pair): Rename from struct output_def_pair.
(alias_pairs): Rename from output_defs.
(find_decl_and_mark_needed): Split out from assemble_alias.
(do_assemble_alias): New.
(assemble_output_def): Remove.
(finish_aliases_1, finish_aliases_2): New.
(process_pending_assemble_output_defs): Remove.
(assemble_alias): Defer aliases for which we don't yet have a
non-external decl for the target symbol.
* passes.c (rest_of_decl_compilation): Register variables with cgraph.
* cgraphunit.c (cgraph_finalize_compilation_unit): Use finish_aliases_1.
* toplev.c (compile_file): Use finish_aliases_2 instead of
process_pending_assemble_output_defs.
* tree.h (finish_aliases_1, finish_aliases_2): Declare.
(process_pending_assemble_output_defs): Remove.
2005-03-16 Daniel Berlin <dberlin@dberlin.org>
Fix PR tree-optimization/20489
* tree-ssa-alias.c (push_fields_onto_fieldstack): DTRT
for empty structures.
2005-03-16 Daniel Berlin <dberlin@dberlin.org>
Fix PR tree-optimization/20490
* tree-ssa-pre.c (create_expression_by_pieces): Use
force_gimple_operand on result of fold.
2005-03-16 Andrew Pinski <pinskia@physics.uc.edu>
* config/i386/emmintrin.h (_mm_extract_epi16): Correct the number
of closing parenthesis.
2005-03-16 Kazu Hirata <kazu@cs.umass.edu>
* builtins.c (expand_movstr): Update a call to
fold_builtin_strcpy.
(expand_builtin_strncpy): Update a call to
fold_builtin_strncpy.
(fold_builtin_strcpy, fold_builtin_strncpy): Take decomosed
arguments of CALL_EXPR.
(fold_builtin_1): Update calls to fold_builtin_strcpy and
fold_builtin_strncpy.
* tree-ssa-ccp.c (ccp_fold_builtin): Likewise.
* tree.h: Update the prototypes of fold_builtin_strcpy and
fold_builtin_strncpy.
2005-03-16 Steven Bosscher <stevenb@suse.de>
Dorit Naishlos <dorit@il.ibm.com>
* tree-vect-analyze.c (vect_enhance_data_refs_alignment): Copy
UNITS_PER_SIMD_WORD to a local variable to avoid a "division by zero"
error.
2005-03-16 Steven Bosscher <stevenb@suse.de>
* tree-inline.c (walk_type_fields, walk_tree,
walk_tree_without_duplicates): Move from here...
* tree.c: ...to here.
2005-03-15 Zack Weinberg <zack@codesourcery.com>
* BASE-VER, DATESTAMP, DEV-PHASE: New files.
* Makefile.in (gcc_version, gcc_version_trigger, ): Delete.
(BASEVER, DEVPHASE, DATESTAMP, BASEVER_c, DEVPHASE_c, DATESTAMP_c)
(BASEVER_s, DEVPHASE_s, DATESTAMP_s): New variables.
(version): Define using $(BASEVER_c).
(Makefile, config.status, build/gcov-iov.o): No longer depends on
version.c.
(version.o): Depend on version files; add custom generation command.
(prefix.o): Define BASEVER on command line.
(s-iov): Depend on version files; adjust command.
(TEXI_CPP_FILES, TEX_IGCC_FILES, TEXI_GCCINT_FILES, TEXI_CPPINT_FILES):
Add gcc-vers.texi.
(gcc-vers.texi): New rule.
(doc/%.info, doc/%.dvi): Add -I . to command line.
(doc/gccinstall.dvi): Likewise.
(PACKAGE): Delete. All uses replaced with "gcc".
* aclocal.m4: Do not include gcc-version.m4.
* configure.ac: Do not invoke TL_AC_GCC_VERSION.
Do not AC_SUBST nor AC_DEFINE PACKAGE or VERSION.
Set is_release based on contents of DEV-PHASE.
Set gcc_version based on contents of BASE-VER.
Define WIN32_REGISTRY_KEY only if the user overrode the default.
* config.in, configure: Regenerate.
* gccbug.in: Determine version of GCC in use at runtime.
* gcov-iov.c: Get version number and development phase from
command line, not by including version.c.
* intl.c: Replace all uses of PACKAGE with "gcc".
* libada-mk.in: Delete unused "gcc_version" variable.
* prefix.c: Default WIN32_REGISTRY_KEY to BASEVER.
* version.c: (VERSUFFIX): New hook for redistributors; adjust
commentary to match.
(version_string): Put together from pieces.
* config/alpha/x-vms: Do not use $(gcc_version).
* config/i386/t-nwld: Likewise.
* doc/include/gcc-common.texi: Include gcc-vers.texi for
version-GCC and DEVELOPMENT.
2005-03-15 Roger Sayle <roger@eyesopen.com>
PR tree-optimization/17454
* tree.c (tree_size): Add case for TREE_BINFO.
* fold-const.c (fold_checksum_tree): Only clear the overloaded
field TYPE_CACHED_VALUES if TYPE_CACHED_VALUES_P is set.
2005-03-15 Roger Sayle <roger@eyesopen.com>
* optabs.c (expand_doubleword_mult): Avoid clobbering op0 and
op1 whilst expanding the signed widenening multiply variant.
2005-03-15 Richard Sandiford <rsandifo@redhat.com>
* toplev.c (display_target_options): Avoid unused variable warning if
TARGET_SWITCHES and TARGET_OPTIONS are both undefined.
* config/mips/mips.c (mips_arch_string, mips_tune_string): Make static.
(mips_isa_string, mips_abi_string, mips_fix_vr4130_string): Delete.
(mips_isa): Initialize to MIPS_ABI_DEFAULT.
(mips_isa_info): New variable.
(mips_parse_cpu): Remove the first argument and leave the caller
to report errors.
(TARGET_HANDLE_OPTION): Override default.
(mips_handle_option): New function. Move option validation code from...
(override_options): ...here. Update calls to mips_parse_cpu.
* config/mips/mips.h (mips_arch_string, mips_tune_string)
(mips_isa_string, mips_abi_string, TARGET_OPTIONS)
(SUBTARGET_TARGET_OPTIONS): Delete.
* config/mips/mips.opt (mabi=, march=, mflush-func=, mips)
(mno-flush-func, mtune=): New options.
2005-03-15 Roger Sayle <roger@eyesopen.com>
Richard Henderson <rth@redhat.com>
* real.c (c4x_single_format, c4x_extended_format): Provide values
for signbit_ro for c4x's single and extended floating point formats.
* optabs.c (expand_copysign): Use the floating point format's
signbit_ro for expanding via expand_copysign_absneg, and it's
signbit_rw field for expanding via expand_copysign_bit.
2005-03-15 Dorit Naishlos <dorit@il.ibm.com>
* tree-vectorizer.h (unknown_alignment_for_access_p): Replaced by
known_alignment_for_access_p.
(known_alignment_for_access_p): New.
(do_peeling_for_alignment): Field made int instead of bool and renamed
to peeling_for_alignment.
(LOOP_DO_PEELING_FOR_ALIGNMENT): Renamed to LOOP_PEELING_FOR_ALIGNMENT.
* tree-vect-analyze.c (vect_determine_vectorization_factor): New. This
functionality used to be in vect_analyze_operations.
(vect_analyze_operations): Code to determine vectorization factor was
moved to vect_determine_vectorization_factor.
(vect_enhance_data_refs_alignment): Update to correct alignment when it
is known instead of -1. Set LOOP_PEELING_FOR_ALIGNMENT to peeling
factor.
(vect_analyze_loop): Call vect_determine_vectorization_factor (used to
be part of vect_analyze_operations).
* tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): Use fold when
creating the guard condition, as the number of iterations may be
constant.
(slpeel_tree_peel_loop_to_edge): Use new name of
LOOP_DO_PEELING_FOR_ALIGNMENT. Set it to 0 instead of false.
* tree-vect-transform.c (vect_gen_niters_for_prolog_loop): Handle known
alignment case more efficiently. Use LOOP_PEELING_FOR_ALIGNMENT.
(vect_do_peeling_for_alignment): Use fold.
(vect_transform_loop): Use new name of LOOP_DO_PEELING_FOR_ALIGNMENT.
(vect_update_inits_of_dr): Renamed to
vect_update_init_of_dr.
(vect_update_inits_of_drs): Use new name of vect_update_inits_of_dr.
(vectorizable_store): Fix assertion to use == instead of =.
2005-03-15 Daniel Jacobowitz <dan@codesourcery.com>
* config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Don't clear
call_used_regs for wCG registers.
2005-03-15 Ulrich Weigand <uweigand@de.ibm.com>
* config/s390/s390.c (s390_secondary_output_reload_class): Adapt check
for non-offsettable memory references to cope with outstanding reload
replacements, take 2.
2005-03-15 Uros Bizjak <uros@kss-loka.si>
PR target/18668
* config/i386/i386.h (x86_fisttp): New.
(TARGET_FISTTP): New macro.
* config/i386/i386.c (x86_fisttp): Set for NOCONA.
(output_fix_trunc): Add fisttp parameter. Generate fisttp x87
instruction when fisttp flag is set.
* config/i386/i386-protos.h (output_fix_trunc): Change declaration.
* config/i386/i386.md (type attribute): Add fisttp.
(unit attribute): Set to i387 for fisttp type.
(X87MODEF, X87MODEI, SSEMODEF, SSEMODEI24): New mode macros.
(fix_truncxfdi2, fix_truncxfsi2): Generate fisttp patterns for
TARGET_FISTTP.
(fix_truncdfdi2, fix_truncsfdi2, fix_truncdfsi2, fix_truncsfsi2):
Generate fisttp patterns for TARGET_FISTTP. Implement using mode
macros.
(fix_truncxfhi2, fix_truncdfhi2, fix_truncsfhi2): Generate fisttp
patterns for TARGET_FISTTP. Enable patterns for
(TARGET_FISTTP && !TARGET_SSE_MATH). Implement using mode macros.
(fix_trunc<mode>_i387_fisttp_1, fix_trunc<mode>_i387_fisttp,
fix_trunc<mode>_i387_fisttp_with_temp): New instruction patterns to
implement fisttp x87 insn.
(fix_trunc*_i387_fisttp splitters): New patterns.
(*fix_truncdi_i387, *fix_truncsi_i387, *fix_trunchi_i387):
Rename to *fix_trunc<mode>_i387_1. Implement using mode macros.
Disable patterns for TARGET_FISTTP. Add comment about FLAGS_REG
clobber.
(fix_truncdi_memory, fix_truncdi_nomemory, fix_trunchi_nomemory):
Rename to fix_trunc<mode>_i387 and fix_trunc<mode>_i387_with_temp.
Implement using mode macros. Disable patterns for TARGET_FISTTP.
(fix_truncsi_memory, fix_truncsi_nomemory, fix_trunchi_memory,
fix_trunchi_nomemory): Rename to fix_trunc<mode>_i387 and
fix_trunc<mode>_i387_with_temp. Implement using mode macros.
Disable patterns for TARGET_FISTTP.
(fix_trunc*_i387 splitters): Implement usign mode macros.
(fix_truncdfdi_sse, fix_truncsfdi_sse, fix_truncdfsi_sse,
fix_truncsfsi_sse): Disable for (TARGET_FISTTP && !TARGET_SSE_MATH).
(fix_trunx*_sse peephole2s): Implement using mode macros.
2005-03-15 J"orn Rennecke <joern.rennecke@st.com>
PR rtl-optimization/20291
* combine.c (try_combine): If splitting fails, re-try with
original combined pattern, i.e. before clobber stripping.
2005-03-14 Eric Christopher <echristo@redhat.com>
* config/mips/mips.h (DWARF_CIE_DATA_ALIGNMENT): Change for
STACK_GROWS_DOWNWARD.
2005-03-14 Roger Sayle <roger@eyesopen.com>
* real.h (struct real_format): Split the signbit field into two
two fields, signbit_ro and signbit_rw.
* real.c (ieee_single_format, mips_single_format, ieee_double_format,
mips_double_format, ieee_extended_motorola_format,
ieee_extended_intel_96_format, ieee_extended_intel_96_round_53_format,
ieee_extended_intel_128_format, ibm_extended_format,
mips_extended_format, ieee_quad_format, mips_quad_format,
vax_f_format, vax_d_format, vax_g_format, i370_single_format,
i370_double_format, c4x_single_format, c4x_extended_format,
real_internal_format): Update initializers for new field.
* builtins.c (expand_builtin_signbit): Use signbit_ro field of the
real_format structure.
* optabs.c (expand_absneg_bit, expand_copysign): Use signbit_rw
field of the real_format structure.
2005-03-14 Daniel Berlin <dberlin@dberlin.org>
Fix PR tree-optimization/20458
* tree-flow-inline.h (mark_call_clobbered): Don't fiddle
DECL_EXTERNAL on STRUCT_FIELD tags.
(clear_call_clobbered): Ditto.
* tree-ssa-operands.c (note_addressable): Make sure the original
variable doesn't slip into the addressable list if we have
subvars.
* tree-tailcall.c (suitable_for_tail_opt_p): Look at STRUCT_FIELD
tags too.
2005-03-14 Geoffrey Keating <geoffk@apple.com>
* doc/cppopts.texi (-fexec-charset): Add concept index entry.
(-fwide-exec-charset): Likewise.
(-finput-charset): Likewise.
* doc/invoke.texi (Warning Options): Document -Wnormalized=.
* c-opts.c (c_common_handle_option): Handle -Wnormalized=.
* c.opt (Wnormalized): New.
2005-03-14 Devang Patel <dpatel@apple.com>
* doc/invoke.texi: Add reference to Visibility document.
2005-03-14 Richard Sandiford <rsandifo@redhat.com>
* config.gcc (mips*-*-*): Rename MASK_SPLIT_ADDRS to
MASK_SPLIT_ADDRESSES.
* config/mips/mips.h (target_flags, mips_fix_vr4130_string): Delete.
(MASK_INT64, MASK_LONG64, MASK_SPLIT_ADDR, MASK_NO_FUSED_MADD)
(MASK_EXPLICIT_RELOCS, MASK_MEMCPY, MASK_SOFT_FLOAT)
(MASK_FLOAT64, MASK_ABICALLS, MASK_XGOT, MASK_LONG_CALLS)
(MASK_64BIT, MASK_EMBEDDED_DATA, MASK_BIG_ENDIAN)
(MASK_SINGLE_FLOAT, MASK_MAD, MASK_4300_MUL_FIX, MASK_MIPS16)
(MASK_NO_CHECK_ZERO_DIV, MASK_BRANCHLIKELY)
(MASK_UNINIT_CONST_IN_RODATA, MASK_FIX_R4000, MASK_FIX_R4400)
(MASK_FIX_SB1, MASK_FIX_VR4120, MASK_VR4130_ALIGN)
(MASK_FP_EXCEPTIONS, MASK_DIVIDE_BREAKS, MASK_PAIRED_SINGLE)
(MASK_MIPS3D, MASK_SYM32, MASK_DEBUG, MASK_DEBUG_D)
(MASK_MIPS_TFILE, TARGET_INT64, TARGET_LONG64, TARGET_FLOAT64)
(TARGET_64BIT, TARGET_SPLIT_ADDRESSES, TARGET_DEBUG_MODE)
(TARGET_DEBUG_D_MODE, TARGET_MEMCPY, TARGET_ABICALLS)
(TARGET_XGOT, TARGET_SOFT_FLOAT, TARGET_HARD_FLOAT)
(TARGET_LONG_CALLS, TARGET_EMBEDDED_DATA)
(TARGET_UNINIT_CONST_IN_RODATA, TARGET_BIG_ENDIAN)
(TARGET_SINGLE_FLOAT, TARGET_DOUBLE_FLOAT, TARGET_MAD)
(TARGET_FUSED_MADD, TARGET_4300_MUL_FIX, TARGET_CHECK_ZERO_DIV)
(TARGET_DIVIDE_TRAPS, TARGET_BRANCHLIKELY, TARGET_FIX_SB1)
(TARGET_FIX_R4000, TARGET_FIX_R4400, TARGET_FIX_VR4120)
(TARGET_FIX_VR4130, TARGET_VR4130_ALIGN, TARGET_FP_EXCEPTIONS)
(TARGET_PAIRED_SINGLE_FLOAT, TARGET_MIPS3D, TARGET_SYM32)
(TARGET_EXPLICIT_RELOCS): Delete.
(TARGET_SWITCHES, SUBTARGET_TARGET_SWITCHES): Delete.
(TARGET_OPTIONS): Remove entry for -mfix-vr4130.
* config/mips/mips.c (TARGET_DEFAULT_TARGET_FLAGS): Define.
(override_options): Set MASK_LONG64 if -mint64 is given and no
-mlongXX option is. Complain about -mint64 -mlong32.
(override_options, CMP_BUILTINS, mips_bdesc, sb1_desc): Rename
MASK_PAIRED_SINGLE to MASK_PAIRED_SINGLE_FLOAT.
* config/mips/mips.opt: New file.
2005-03-14 Richard Sandiford <rsandifo@redhat.com>
* config.gcc (extra_options): New variable for listing option files.
Add ${cpu_type}/${cpu_type}.opt to it if that file exists.
* configure.ac (extra_opt_files): New AC_SUBST variable.
(tm_file_list, tm_include_list): Include options.h first.
* configure: Regenerate.
* Makefile.in (extra_opt_files, ALL_OPT_FILES): New variables.
(s-options): Use $(ALL_OPT_FILES) instead of $(lang_opt_files)
(s-options-h): New rule.
(options.h): Depend on it.
(TEXI_GCCINT_FILES): Add options.texi.
* hooks.h (hook_bool_size_t_constcharptr_int_true): Declare.
* hooks.c (hook_bool_size_t_constcharptr_int_true): New function.
* target.h (gcc_target): Add default_target_flags and handle_option.
* target-def.h (TARGET_DEFAULT_TARGET_FLAGS)
(TARGET_HANDLE_OPTION): New macros.
(TARGET_INITIALIZER): Include them.
* opt-functions.awk (opt_args, nth_arg): New functions.
(switch_flags): Handle the "Target" flag.
(var_args): Delete.
(var_name): Use opt_args and nth_arg.
(var_set, var_ref): Likewise. Handle "Mask" and "InverseMask".
* opth-gen.awk: Declare target_flags. Declare MASK_* and TARGET_*
macros for the "Mask" and "InverseMask" options.
* opts.h (cl_var_cond): New enum.
(cl_option): Replace the "has_set_value" and "set_value" fields with
"var_cond" and "var_value".
(CL_TARGET): New macro.
(option_enabled, print_filtered_help): Declare.
(decode_options): Move definition.
* opts.c (handle_option): Search for the original option before
removing any "no-" prefix. Handle CL_TARGET. Adjust for the new
var_cond and var_value fields. Use targetm.handle_option to handle
target options.
(decode_options): Set target_flags to targetm.default_target_flags.
(print_filtered_help): Make global. Handle CL_TARGET.
(option_enabled): New function.
* toplev.c (target_switches): Guard with #ifdef TARGET_SWITCHES.
(display_target_options, set_target_switch, print_switch_values)
(default_pch_valid_p): Guard uses of target_switches with
#ifdef TARGET_SWITCHES. Also...
(display_target_options): Display the CL_TARGET entries in cl_options.
(set_target_option): Don't complain about the "" option when
TARGET_SWITCHES is undefined.
(print_switch_values): Use option_enabled.
(default_pch_valid_p): Check cl_options[] when looking for something
that has changed the value of target_flags.
* c.opt: Remove documentation from top of file.
* doc/gccint.texi: Add an "Options" chapter. Include options.texi.
* doc/sourecebuild.texi: Refer to the new options documentation
instead of c.opt. Document machine-specific .opt files.
* doc/tm.texi (target_flags): Say that this variable is declared
by options.h.
(TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Document.
(TARGET_SWITCHES, TARGET_OPTIONS): Refer to the option files as
an alternative.
* doc/options.texi: New file.
2005-03-14 Alexandre Oliva <aoliva@redhat.com>
PR middle-end/18628
* cse.c (fold_rtx_mem): Don't fold a load from a jumptable into a
register.
2005-03-14 Alexandre Oliva <aoliva@redhat.com>
PR c++/20280
* gimplify.c (gimplify_cond_expr): Add fallback argument. Use a
temporary variable of pointer type if an lvalues is required.
(gimplify_modify_expr_rhs): Request an rvalue from it.
(gimplify_expr): Pass fallback on.
2005-03-14 Kazu Hirata <kazu@cs.umass.edu>
* cfgbuild.c: Update comments.
2005-03-14 Roger Sayle <roger@eyesopen.com>
PR rtl-optimization/17236
* optabs.c (expand_doubleword_mult): New helper function split out
from expand_binop. Permute the order in which instructions are
emitted to minimize the number of simultaneously live registers.
(expand_binop): Call expand_doubleword_mult to synthesize a double
word multiplication.
2005-03-14 Kazu Hirata <kazu@cs.umass.edu>
* basic-block.h: Update the prototypes of cached_make_edge and
rtl_make_eh_edge.
* cfg.c (cached_make_edge): Take edge_cache representing one
row of the adjacency matrix of edges.
* cfgbuild.c (make_label_edge, rtl_make_eh_edge): Likewise.
(make_edges): Initialize edge_cache to represent one row of
the adjacency matrix of edges.
2005-03-14 Zdenek Dvorak <dvorakz@suse.cz>
* tree-ssa-phiopt.c (minmax_replacement, blocks_in_phiopt_order):
New functions.
(tree_ssa_phiopt): Use blocks_in_phiopt_order and minmax_replacement.
Remove unused removed_phis variable.
(conditional_replacement): Use build1/build2.
(abs_replacement): Use last_and_only_stmt and build1/build2.
2005-03-14 Zdenek Dvorak <dvorakz@suse.cz>
* builtin-attrs.def (ATTR_NOVOPS, ATTR_NOVOPS_LIST,
ATTR_PURE_NOTHROW_NOVOPS_LIST): New.
* builtins.def (ATTR_MATHFN_FPROUNDING): Use NOVOPS.
(BUILT_IN_PREFETCH): Set the NOVOPS attribute.
* c-common.c (handle_novops_attribute): New function.
(c_common_attribute_table): Add "no vops" entry.
* c-decl.c (merge_decls): Copy DECL_IS_NOVOPS.
* calls.c (flags_from_decl_or_type): Set ECF_NOVOPS.
* tree-ssa-operands.c (get_call_expr_operands): Do not
create virtual operands for calls with ECF_NOVOPS flag.
* tree.h (DECL_IS_NOVOPS): New macro.
(struct tree_decl): Add novops_flag.
(ECF_NOVOPS): New constant.
2005-03-14 Uros Bizjak <uros@kss-loka.si>
PR target/17688
* config/i386/i386.c (x86_use_himode_fiop): New.
(x86_use_simode_fiop): Rename from x86_use_fiop.
* config/i386/i386.h (x86_use_himode_fiop): Declare.
(TARGET_USE_HIMODE_FIOP): New.
(x86_use_simode_fiop): Rename from x86_use_fiop.
(TARGET_USE_SIMODE_FIOP): Rename from TARGET_USE_FIOP.
* config/i386/i386.md (X87MODEI12): New mode macro define.
(*cmpfp_<mode>): Rename from *cmpfp_si. Use X87MODEI12 mode macro
to implement x87 FP compare with HImode input operands.
(*fp_jcc_8<mode>_387, splitter): Rename from *fp_jcc_8_387.
Use X87MODEI12 mode macro to handle HImode input operands.
(*fop_sf_2<mode>_i387, *fop_sf_3<mode>_i387, *fop_df_2<mode>_i387,
*fop_df_3<mode>_i387, *fop_xf_2<mode>_i387, *fop_xf_3<mode>_i387):
Renamed from *fop_sf_2_i387, *fop_sf_3_i387, *fop_df_2_i387,
*fop_df_3_i387, *fop_xf_2_i387, *fop_xf_3_i387. Use X87MODEI12 mode
macro to implement x87 operators with HImode input operands.
(fop splitters): Use X87MODEI12 mode macro to handle HImode
input operands.
2005-03-14 Zdenek Dvorak <dvorakz@suse.cz>
* tree-cfg.c (find_taken_edge_cond_expr): Use zero_p instead of
integer_zerop.
* tree-gimple.c (is_gimple_min_invariant): Consider overflowed
constants invariant.
2005-03-14 Zdenek Dvorak <dvorakz@suse.cz>
* basic-block.h (BB_VISITED): Removed.
* cfganal.c (dfs_enumerate_from): Do not use BB_VISITED flag.
2005-03-14 Falk Hueffner <falk@debian.org>
PR bootstrap/20424
* config/alpha/alpha.c (alpha_fold_builtin_cmpbge): Fix typo.
2005-03-14 Kazu Hirata <kazu@cs.umass.edu>
* ggc-zone.c: Fix comment typos.
* alloc-pool.c, except.h, ggc-common.c, ggc-zone.c, ggc.h,
stringpool.c, config/mips/mips-protos.h: Update copyright.
2005-03-14 Alan Modra <amodra@bigpond.net.au>
* config/rs6000/rs6000-protos.h: Replace "struct rtx_def *"
throughout with its typedef, "rtx".
* config/rs6000/rs6000.c: Likewise. Formatting fixes.
(rs6000_tls_symbol_ref_1): Remove inline keyword.
* config/rs6000/rs6000.h (REG_ALLOC_ORDER): Formatting. Reorder
regs in comment to match code.
2005-03-14 Kazu Hirata <kazu@cs.umass.edu>
* except.c (check_handled): Make it static.
* except.h: Remove the corresponding prototype.
* function.c (get_func_frame_size): Make it static.
* function.h: Remove the corresponding type.
* regclass.c (reg_class_superclasses, reg_class_subclasses):
Make them static.
* hard-reg-set.h: Remove the corresponding declarations.
* tree-cfg.c (verify_stmts): Check that
bb_for_stmt (stmt) == bb for every PHI node and statement.
2005-03-14 Alan Modra <amodra@bigpond.net.au>
* config.gcc: Remove excess indentation.
(powerpc*-*-*, rs6000-*-*): Accept --with-cpu/tune power5 and 8548.
2005-03-13 Roger Sayle <roger@eyesopen.com>
PR middle-end/19331
* tree.c (get_unwidened): Treat CONVERT_EXPR and NOP_EXPR identically.
* fold-const.c (fold_sign_changed_comparison): Likewise.
(fold_binary): Optimize comparisons against widened operands if
the extension is represented by a CONVERT_EXPR, same as a NOP_EXPR.
2005-03-13 Eric Botcazou <ebotcazou@libertysurf.fr>
* config/sparc/sparc.c (struct_value_alias_set): New global variable.
(sparc_override_options): Initialize it.
(sparc_struct_value_rtx): Set it on the MEM to be returned.
2005-03-13 David Edelsohn <edelsohn@gnu.org>
* config/rs6000/predicates.md (mem_or_easy_const_operand): Delete.
(reg_or_none500mem_operand): New predicate.
(zero_reg_mem_operand): New predicate.
* config/rs6000/rs6000.md (extendsfdf2): Change operand1 predicate
to reg_or_none500mem_operand.
(extendsfdf2_fpr): Add MEM alternative.
(extenddftf2_internal): Change operand2 predicate to
zero_reg_mem_operand.
2005-03-13 Daniel Jacobowitz <dan@codesourcery.com>
* ggc-zone.c: Rewritten.
* alloc-pool.c (dump_alloc_pool_statistics): Don't print statistics
if there are none.
* configure.ac: Define GGC_ZONE for --with-gc=zone.
* config.in: Regenerated.
* configure: Regenerated.
* gengtype.c (write_types_process_field, write_func_for_structure):
Pass new argument to gt_pch_note_object.
* ggc-common.c (struct ptr_data): Add TYPE.
(gt_pch_note_object): Take TYPE argument and save it.
(call_count): Update call to ggc_pch_count_object.
(call_alloc): Update call to ggc_pch_alloc_object.
(gt_pch_save): Call ggc_pch_prepare_write after paddng the PCH
file.
* ggc-none.c (rtl_zone, garbage_zone, ggc_alloc_zone_stat): Delete.
* ggc-page.c (rtl_zone, tree_zone, garbage_zone)
(ggc_alloc_zone_stat): Delete.
(ggc_pch_count_object, ggc_pch_alloc_object): Add TYPE argument.
* ggc.h (gt_pch_note_object, ggc_pch_count_object)
(ggc_pch_alloc_object): Update prototypes.
(garbage_zone): Delete.
(tree_zone, rtl_zone, ggc_alloc_zone_stat, ggc_alloc_zone): Move to
GGC_ZONE conditional. Update. Change tree_zone and rtl_zone into
pointers.
(tree_id_zone): New variable.
(ggc_alloc_cleared_zone): Remove unused.
(ggc_alloc_zone): Define.
(ggc_alloc_rtvec, ggc_alloc_tree): Update to use ggc_alloc_zone.
* rtl.c (rtx_alloc_stat, shallow_copy_rtx_stat): Use
ggc_alloc_zone_stat.
* stringpool.c (gt_pch_n_S): Update call to gt_pch_note_object.
* tree.c (copy_node_stat, make_tree_binfo_stat, make_tree_vec_stat)
(tree_cons_stat, build1_stat): Update call to ggc_alloc_zone_stat.
(make_node_stat): Likewise. Use tree_id_zone.
2005-03-13 Daniel Jacobowitz <dan@codesourcery.com>
Joseph S. Myers <joseph@codesourcery.com>
* configure.ac: Check for MIPS TLS.
* configure: Regenerated.
* config/mips/mips-protos.h (enum mips_symbol_type): Add
SYMBOL_TLS, SYMBOL_TLSGD, SYMBOL_TLSLDM, SYMBOL_DTPREL,
SYMBOL_GOTTPREL, and SYMBOL_TPREL.
* config/mips/mips.c (mips_regno_to_class): Handle V1_REG.
(TARGET_HAVE_TLS, TARGET_CANNOT_FORCE_CONST_MEM): Define.
(mips_classify_symbol, mips_symbolic_constant_p)
(mips_symbolic_address_p, mips_symbol_insns): Handle TLS symbols.
(mips_tls_operand_p, mips_call_tls_get_addr)
(mips_legitimize_tls_address, mips_cannot_force_const_mem)
(mips_tls_symbol_ref_1): New functions.
(mips_legitimize_address, mips_legitimize_const_move): Call
mips_legitimize_tls_address.
(override_options): Handle V1_REG and TLS symbols. Disable TLS
for MIPS16.
* config/mips/mips.h (enum reg_class, REG_CLASS_NAMES)
(REG_CLASS_CONTENTS, GR_REG_CLASS_P): Include V1_REG.
(mips_char_to_class): Document V1_REG.
(HAVE_AS_TLS): Provide default.
* config/mips/mips.md (UNSPEC_TLS_LDM, UNSPEC_TLS_GET_TP): New
constants.
(load_got<mode>): Renamed from *load_got<mode>. Allow when
!TARGET_ABICALLS.
(tls_get_tp_<mode>): New instruction.
2005-03-13 Daniel Jacobowitz <dan@codesourcery.com>
* configure.ac: Update checks for target tools.
* configure: Regenerated.
2005-03-13 Daniel Jacobowitz <dan@codesourcery.com>
* varasm.c (decl_tls_model): Check flag_shlib instead of flag_pic.
2005-03-13 Roger Sayle <roger@eyesopen.com>
* expmed.c (expand_mult): Use synthetic multiplication sequences for
more classes of DImode multiplication by constant. Allow both
multiplication by small negative constants (by performing a
multiplication by a positive constant and negating the result) and
multiplications by large powers of two, by using a left shift.
2005-03-13 Kazu Hirata <kazu@cs.umass.edu>
* tree-into-ssa.c (find_idf): Speed up by putting the indexes
of basic blocks into work_stack.
* builtin-attrs.def, c-lex.c, c-pragma.h, reg-stack.c,
config/mips/vr.h: Update copyright.
* c-decl.c (c_init_decl_processing): Remove useless calls to
build_function_type.
* builtins.c (fold_trunc_transparent_mathfn,
fold_fixed_mathfn, fold_builtin_atan, fold_builtin_trunc,
fold_builtin_floor, fold_builtin_ceil, fold_builtin_round,
fold_builtin_lround, fold_builtin_bitop, fold_builtin_memcpy,
fold_builtin_strcpy, fold_builtin_strncpy,
fold_builtin_signbit): Use TYPE (TYPE (fndecl)) instead of
TREE_TYPE (exp).
* builtins.c (expand_builtin_mathfn_3): Remove local variable
before_call.
* lambda-code.c (lambda_compute_auxillary_space): Remove local
variable determinant.
* tree-cfg.c (group_case_labels): Remove local variable type.
* tree-ssa-live.c (build_tree_conflict_graph): Remove local
variable ann.
* tree-ssa-phiopt.c (value_replacement): Remove local variable
result.
2005-03-13 Andy Hutchinson <HutchinsonAndy@netscape.net>
PR target/18251
* config/avr/avr.md (movmemhi): Rewrite as RTL loop.
(*movmemqi_insn): Delete.
(*movmemhi): Delete.
2005-03-13 Kazu Hirata <kazu@cs.umass.edu>
* builtins.c (fold_builtin_classify): Take decomposed
arguments of CALL_EXPR.
(fold_builtin_1): Update a call to fold_builtin_classify.
2005-03-13 Joseph S. Myers <joseph@codesourcery.com>
PR c/20402
* c-parser.c (c_parser_struct_or_union_specifier): Don't fall
through into call to parser_xref_tag after parse error.
(c_parser_struct_declaration): Consistently return NULL_TREE on
error.
2005-03-12 Daniel Berlin <dberlin@dberlin.org>
* tree-flow-inline.h (ref_contains_array_ref): New function.
(lookup_subvars_for_var): Ditto.
(get_subvars_for_var): Ditto.
(var_can_have_subvars): Ditto.
* tree-flow.h (mem_tag_kind): Add STRUCT_FIELD.
(struct subvar): New type.
* tree-dfa.c (okay_component_ref_for_subvars): New function.
* tree-optimize.c (init_tree_optimization_passes): Call
pass_create_structure_vars.
* tree-ssa-alias.c: Include vec.h.
(init_alias_info): Don't auto-clear call clobbered on struct-field
tags.
(compute_flow_insensitive_aliasing): Handle subvars.
(group_aliases): Handle STRUCT_FIELD aliases.
(setup_pointers_and_addressables): Ditto.
Don't mark variables non-addressable if they still have
addressable subvars.
Also mark subvars addressable when the real variable is marked
addressable.
(add_pointed_to_var): Try to prune the pointed-to set by only
pointing to subvars when possible.
Otherwise, make sure we set addresses_needed and pt_vars to
properly include subvars.
(bitpos_of_field): New function.
(push_fields_onto_fieldstack): Ditto.
(get_or_create_used_part_for): Ditto.
(create_overlap_variables_for): Ditto.
(find_used_portions): Ditto.
(create_structure_vars): Ditto.
(pass_create_structure_vars): New structure.
* tree-ssa-operands.c (finalize_ssa_v_must_defs): Remove assert.
(get_expr_operands): Handle subvars. Also try to turn
COMPONENT_REF accesses into must-defs now that we can accurately
portray it.
(note_addressable): Try to only mark as addressable those subvars
we know a COMPONENT_REF touches.
(overlap_subvar): New function.
* tree-vect-analyze.c (vect_object_analysis): Add new parameter.
Handle subvar storing.
(vect_address_analysis): Update caller of vect_object_analysis.
* tree-vect-transform.c (vect_create_data_ref_ptr): Copy subvars.
* tree-vectorizer.h (struct _stmt_vec_info): Add subvars member.
(STMT_VINFO_SUBVARS): New macro.
* common.opts: add flag_tree_salias.
* opts.c (decode_options): flag_tree_salias defaults to on.
* doc/invoke.texi: Document fdump-tree-svars and -ftree-salias.
* doc/tree-ssa.texi: Document structural alias analysis.
2005-03-12 Steven Bosscher <stevenb@suse.de>
* tree-cfg.c (make_goto_expr_edges): Don't use error_mark_node.
* tree-ssa-dce.c (mark_stmt_necessary): Don't check for it.
* tree-ssa-operands.c (get_expr_operands): Likewise.
(get_expr_operands): Likewise for ERROR_MARK.
2005-03-12 Kazu Hirata <kazu@cs.umass.edu>
* tree-ssa.c (kill_redundant_phi_nodes): Remove local variable
var.
* tree-ssa-phiopt.c (tree_ssa_phiopt): Remove local variable
removed_phis.
* tree-ssa-pre.c (compute_avail): Remove local variable val.
(mark_operand_necessary): Remove local variable ver.
* tree-vect-transform.c (vect_get_new_vect_var): Remove local
variable prefix_len.
* value-prof.c (mod_subtract_transform): Remove local variable
value.
* builtins.c (fold_builtin_exponent): Take decomposed
arguments of CALL_EXPR.
(fold_builtin_1): Update a call to fold_builtin_exponent.
* builtins.c (fold_builtin_logarithm): Take decomposed
arguments of CALL_EXPR.
(fold_builtin_1): Update a call to fold_builtin_logarithm.
* c-decl.c (c_init_decl_processing): Remove local variables
ptr_ftype_void and ptr_ftype_ptr.
* gimplify.c (gimplify_expr): Remove local variables r0 and
r1.
* reg-stack.c (move_for_stack_reg): Remove local variable
push_insn.
(compare_for_stack_reg): Remove local variable flags_user.
(convert_regs_1): Remove local variable deleted.
* tree-if-conv.c (tree_if_convert_cond_expr): Remove local
variable new_cond.
(combine_blocks): Remove local variables exits and new_e.
* tree-inline.c (expand_call_inline): Remove local variable
decl.
* tree-ssa-live.c (create_ssa_var_map,
calculate_live_on_entry): Remove local variable snn.
2005-03-12 Geoffrey Keating <geoffk@apple.com>
* c-lex.c (c_lex_with_flags): Add parameter to call to
cpp_spell_token.
2005-03-11 Per Bothner <per@bothner.com>
* c-tree.h (struct c_declarator): New id_loc field.
* c-pragma.h (c_lex_with_flags): Take position reference.
* c-lex.c (c_lex_with_flags): Set passed-in location from cpp token,
iff USE_MAPPED_LOCATION. (Type doesn't match otherwise.)
(c_lex): Pass dummy location to c_lex_with_flags.
* c-parser.c (c_lex_one_token): Set c_token's location using
c_lex_with_flags, instead of input_location, which might be "ahead".
(c_parser_direct_declarator): Set declarator's id_loc from
c_token's id_loc.
* c-decl.c (grokdeclarator): Set DECL_SOURCE_LOCATION from
declarator's id_loc, rather than probably-imprecise input_location.
(build_id_declarator): Initialize c_declarator's id_loc field.
2005-03-11 Roger Sayle <roger@eyesopen.com>
PR middle-end/20419
* builtins.c (expand_builtin_signbit): Force the signbit's word
into an integer register to avoid SUBREGs of floating point modes.
2005-03-12 Kazu Hirata <kazu@cs.umass.edu>
* cfglayout.c, loop-doloop.c, profile.c, target-def.h,
target.h, targhooks.c, tracer.c, tree-ssa-loop-ch.c,
tree-ssa-loop-unswitch.c, tree-ssa-loop.c, vec.c, vmsdbgout.c,
config/m32r/m32r.md, config/xtensa/xtensa.h: Update copyright.
2005-03-11 David Edelsohn <edelsohn@gnu.org>
PR rtl-optimization/20306
* expr.c (emit_move_complex): Set try_int false if mode is
MODE_COMPLEX_FLOAT and mov_optab exists for inner mode. Only try
emit_block_move if try_int is true.
2005-03-11 Richard Henderson <rth@redhat.com>
PR target/20415
* config/i386/mmx.md (vec_dupv4hi): Fix predicate.
* config/i386/i386.c (ix86_expand_vector_init_duplicate): Update
to match.
2005-03-11 Richard Sandiford <rsandifo@redhat.com>
* config/mips/mips.h (mips_fix_vr4130_string): Declare.
(TARGET_FIX_VR4130): New macro.
(TARGET_OPTIONS): Add -mfix-vr4130.
(ISA_HAS_MACCHI): New macro.
(ASM_SPEC): Add -mfix-vr4130.
* config/mips/mips.c (mips_fix_vr4130_string): New variable.
(override_options): Handle mips_fix_vr4130_string.
(mips_avoid_hazards): Clear all_noreorder_p
if we're working around VR4130 errata and the macc alternatives
are not available.
* config/mips/mips.md (mfhilo_<mode>): Turn into a define_expand.
(*mfhilo_<mode>, *mfhilo_<mode>_macc): New insns.
* config/mips/vr.h (DEFAULT_VR_ARCH): Set to mfix-vr4130.
(MULTILIB_DEFAULTS): Remove leading "march=".
(DRIVER_SELF_SPECS): Likewise. Make -mfix-vr4130 imply -march=vr4130
if no architecture option is given.
* config/mips/t-vr (MULTILIB_OPTIONS): Use -mfix-vr4130 for the
VR4130 multilibs.
(MULTILIB_MATCHES): Map -march=vr4130 to the -mfix-vr4130 multilibs.
* doc/invoke.texi: Document -mfix-vr4130.
2005-03-11 Richard Sandiford <rsandifo@redhat.com>
* config/mips/mips.c (override_options): Only warn about -mint64
deprecation if TARGET_INT64.
2005-03-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* builtin-attrs.def (ATTR_NONNULL_LIST, ATTR_NOTHROW_NONNULL,
ATTR_CONST_NOTHROW_NONNULL, ATTR_PURE_NOTHROW_NONNULL,
ATTR_MALLOC_NOTHROW_NONNULL): New "nonnull" attribute lists which
are non-specific regarding the nonnull parameter positions.
(ATTR_NONNULL_1_2, ATTR_NONNULL_1_4, ATTR_NOTHROW_NONNULL_1_2,
ATTR_NOTHROW_NONNULL_1_4, ATTR_CONST_NOTHROW_NONNULL_1,
ATTR_PURE_NOTHROW_NONNULL_1, ATTR_PURE_NOTHROW_NONNULL_1_2,
ATTR_MALLOC_NOTHROW_NONNULL_1): Delete.
* builtins.def: Use the non-specific "nonnull" attibute lists.
2005-03-11 Zdenek Dvorak <dvorakz@suse.cz>
* basic-block.h (single_succ_p, single_pred_p, single_succ_edge,
single_pred_edge, single_succ, single_pred): Improve comments.
2005-03-11 Zdenek Dvorak <dvorakz@suse.cz>
* basic-block.h (single_succ_p, single_pred_p, single_succ_edge,
single_pred_edge, single_succ, single_pred): New inline functions.
* bb-reorder.c (rotate_loop, find_traces_1_round,
add_labels_and_missing_jumps, fix_up_fall_thru_edges,
duplicate_computed_gotos): Use the single_succ/pred functions.
* cfganal.c (forwarder_block_p): Ditto.
* cfgbuild.c (compute_outgoing_frequencies): Ditto.
* cfgcleanup.c (try_simplify_condjump, try_forward_edges,
outgoing_edges_match, try_crossjump_to_edge, try_optimize_cfg,
merge_seq_blocks): Ditto.
* cfghooks.c (split_edge, tidy_fallthru_edges): Ditto.
* cfglayout.c (fixup_reorder_chain): Ditto.
* cfgloop.c (mark_single_exit_loops, update_latch_info,
canonicalize_loop_headers, verify_loop_structure): Ditto.
* cfgloopmanip.c (remove_path, unloop, loop_delete_branch_edge,
mfb_update_loops, create_preheader, force_single_succ_latches,
create_loop_notes): Ditto.
* cfgrtl.c (rtl_can_merge_blocks, try_redirect_by_replacing_jump,
force_nonfallthru_and_redirect, rtl_tidy_fallthru_edge,
commit_one_edge_insertion, purge_dead_edges,
cfg_layout_can_merge_blocks_p): Ditto.
* except.c (sjlj_emit_function_enter): Ditto.
* flow.c (init_propagate_block_info): Ditto.
* function.c (thread_prologue_and_epilogue_insns): Ditto.
* gcse.c (find_implicit_sets, bypass_conditional_jumps,
insert_insn_end_bb): Ditto.
* ifcvt.c (merge_if_block, find_if_block, find_if_case_1,
find_if_case_2): Ditto.
* lambda-code.c (perfect_nestify): Ditto.
* lcm.c (optimize_mode_switching): Ditto.
* loop-doloop.c (doloop_modify): Ditto.
* loop-init.c (loop_optimizer_init): Ditto.
* loop-iv.c (simplify_using_initial_values): Ditto.
* loop-unroll.c (unroll_loop_runtime_iterations): Ditto.
* loop-unswitch.c (unswitch_loop): Ditto.
* modulo-sched.c (generate_prolog_epilog): Ditto.
* predict.c (combine_predictions_for_insn, estimate_probability,
tree_estimate_probability, last_basic_block_p,
estimate_bb_frequencies): Ditto.
* profile.c (branch_prob): Ditto.
* regrename.c (copyprop_hardreg_forward): Ditto.
* sched-rgn.c (is_cfg_nonregular, find_rgns, update_live): Ditto.
* tracer.c (layout_superblocks): Ditto.
* tree-cfg.c (tree_can_merge_blocks_p, tree_merge_blocks,
cfg_remove_useless_stmts_bb, cleanup_control_flow,
cleanup_control_expr_graph, disband_implicit_edges,
tree_find_edge_insert_loc, bsi_commit_edge_inserts,
tree_verify_flow_info, tree_make_forwarder_block,
tree_forwarder_block_p, remove_forwarder_block,
remove_forwarder_block_with_phi, merge_phi_nodes): Ditto.
* tree-if-conv.c (tree_if_conversion): Ditto.
* tree-mudflap.c (mf_build_check_statement_for): Ditto.
* tree-ssa-dce.c (remove_dead_stmt): Ditto.
* tree-ssa-dom.c (dom_opt_finalize_block): Ditto.
* tree-ssa-loop-ch.c (should_duplicate_loop_header_p,
copy_loop_headers): Ditto.
* tree-ssa-loop-im.c (loop_commit_inserts): Ditto.
* tree-ssa-loop-ivopts.c (compute_phi_arg_on_exit): Ditto.
* tree-ssa-loop-manip.c (split_loop_exit_edge, ip_normal_pos,
lv_adjust_loop_entry_edge, tree_ssa_loop_version): Ditto.
* tree-ssa-loop-niter.c (simplify_using_initial_conditions): Ditto.
* tree-ssa-loop-unswitch.c (simplify_using_entry_checks): Ditto.
* tree-ssa-phiopt.c (tree_ssa_phiopt, value_replacement): Ditto.
* tree-ssa-pre.c (compute_antic_aux, insert_aux, init_pre): Ditto.
* tree-ssa-threadupdate.c (redirect_edges): Ditto.
* tree-tailcall.c (independent_of_stmt_p, find_tail_calls,
eliminate_tail_call, tree_optimize_tail_calls_1): Ditto.
* tree-vect-analyze.c (vect_analyze_loop_form): Ditto.
* tree-vect-transform.c (vect_update_ivs_after_vectorizer): Ditto.
* tree-vectorizer.c (slpeel_update_phi_nodes_for_guard,
slpeel_add_loop_guard): Ditto.
2005-03-11 James A. Morrison <phython@gcc.gnu.org>
PR tree-optimization/15784
* fold-const.c (fold): Fold ~A + 1 to -A. Fold -A - 1
and -1 - A to ~A.
* stmt.c (expand_case): Don't change index_type. Convert minval
to the proper type.
PR tree-optimization/20130
* fold-const.c (fold): Fold x * -1 into -x.
2005-03-11 Kaz Kojima <kkojima@gcc.gnu.org>
PR rtl-optimization/20331
* rtlanal.c (modified_between_p): Check its address first for MEM.
(modified_in_p): Likewise.
2005-03-11 Joseph S. Myers <joseph@codesourcery.com>
* config.gcc (hppa*64*-*-hpux11*): Use pa/t-hpux-shlib.
2005-03-10 Steven Bosscher <stevenb@suse.de>
* expr.c (expand_expr_real_1): If possible, use a conditional
move for expanding MIN_EXPR and MAX_EXPR.
Use temp for moving around rtx-en.
2005-03-10 Andrew Pinski <pinskia@physics.uc.edu>
PR rtl-opt/20412
* simplify-rtx.c (simplify_relational_operation_1): Fix typo - check the
correct mode.
2005-03-10 Roger Sayle <roger@eyesopen.com>
* builtins.c (expand_builtin_signbit): Extend to handle floating
point modes wider than the largest integer type, using the
operand_subword_force function to obtain the signbit's word.
2005-03-10 Jakub Jelinek <jakub@redhat.com>
PR target/20322
* combine.c (try_combine): If recog_for_combine added CLOBBERs
to NEWI2PAT, fail to combine if they are used by NEWPAT.
2005-03-10 Aldy Hernandez <aldyh@redhat.com>
* doc/invoke.texi: Add 8540 to list of cpus in rs6000 cpu section.
2005-03-10 Kazu Hirata <kazu@cs.umass.edu>
* tree-outof-ssa.c (analyze_edges_for_bb): Make the return
type void.
(perform_edge_inserts): Unconditionally call
free_dominator_info.
* tree-outof-ssa.c (analyze_edges_for_bb): Update a comment.
2005-03-10 Bob Wilson <bob.wilson@acm.org>
* config/xtensa/xtensa.h (MEMBER_TYPE_FORCES_BLK): Define.
2005-03-10 Nathan Sidwell <nathan@codesourcery.com>
* bitmap.c (bitmap_copy): Remove manual loop unrolling.
* value-prof.c (rtl_find_values_to_profile): Use gcc_assert and
gcc_unreachable.
(rtl_register_value_prof_hooks,
tree_value_profile_transformations,
tree_register_value_prof_hooks): Likewise.
* var-tracking.c (stack_adjust_offset_pre_post,
variable_htab_free, variable_union, dataflow_set_different_2,
count_uses, variable_was_changed, set_frame_base_location,
set_variable_part, emit_note_insn_var_location, vt_emit_notes,
vt_add_function_parameters): Likewise.
* varasm.c (named_section_real, named_section, make_decl_rtl,
asm_emit_uninitialised, assemble_integer, decode_addr_const,
const_hash_1, compare_constant, copy_constant, force_const_mem,
output_constant_pool_2, output_constant_pool_1, output_constant,
output_constructor, make_decl_one_only, decl_tls_model,
default_no_named_section, default_elf_select_section_1,
default_unique_section_1): Likewise.
* vec.c (vec_gc_o_reserve, vec_heap_o_reserve): Likewise.
* vmsdbgout.c (addr_const_to_string): Likewise.
PR c++/20375
* function.c (struct assign_parm_data_one): Remove last_named
field.
(assign_parm_find_data_types): Don't determine last_named.
Reorder named_parm determination.
(assign_parms): Only setup varargs on the last non-varadic
parameter.
2005-03-10 Kazuhiro Inaoka <inaoka.lazuhiro@renesas.com>
* config/m32r/m32r.md (load_sda_base_32): New pattern. Loads
sda base address on medium model.
2005-03-10 Zdenek Dvorak <dvorakz@suse.cz>
* Makefile.in (tree-optimize.o): Add CFGLOOP_H dependence.
* cfgloop.c (flow_loop_nodes_find): Export.
* cfgloop.h (flow_loop_nodes_find, fix_loop_structure):
Declare.
* cfgloopmanip.c (fix_loop_structure): New function.
* predict.c (predict_loops): Clean up the loops information.
* tree-cfg.c (cleanup_tree_cfg_loop): New function.
(tree_can_merge_blocks_p, remove_bb, tree_forwarder_block_p): Respect
loop structure.
* tree-flow.h (cleanup_tree_cfg_loop): Declare.
(rewrite_into_loop_closed_ssa): Declaration changed.
* tree-loop-linear.c (linear_transform_loops): Add argument to
rewrite_into_loop_closed_ssa call.
* tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
* tree-ssa-loop-im.c (move_computations): Ditto.
* tree-ssa-loop.c (tree_loop_optimizer_init): Ditto.
* tree-vectorizer.c (vectorize_loops): Ditto.
* tree-optimize.c: Include cfgloop.h.
(execute_todo): Choose whether to call cleanup_tree_cfg or
cleanup_tree_cfg_loop.
* tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables,
(tree_unroll_loops_completely): Enable cleanup_tree_cfg_loop call.
* tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Enable
cleanup_tree_cfg_loop call.
* tree-ssa-loop-manip.c (find_uses_to_rename_bb): New function.
(find_uses_to_rename, rewrite_into_loop_closed_ssa): Support
work on part of cfg.
2005-03-10 Jakub Jelinek <jakub@redhat.com>
PR inline-asm/20314
* gimplify.c (gimplify_asm_expr): Handle input/output constraints
with multiple alternatives.
* stmt.c (parse_output_constraint): Fix a typo.
2005-03-09 Bob Wilson <bob.wilson@acm.org>
* config/xtensa/xtensa.h (TRAMPOLINE_TEMPLATE): Use "no-transform"
assembly directive instead of deprecated "no-generics".
2005-03-09 Ulrich Weigand <uweigand@de.ibm.com>
* config/s390/s390.c (s390_secondary_output_reload_class): Adapt check
for non-offsettable memory references to cope with outstanding reload
replacements.
* config/s390/s390.md ("reload_outti"): Call find_replacement to
avoid losing outstanding address reloads.
("reload_outdi", "reload_outdf"): Likewise.
2005-03-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* builtins.c (fold_builtin_cbrt, fold_builtin_pow): Rearrange
code. Add more cbrt transformations.
2005-03-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* fold-const.c (fold_unary_to_constant): Add FIX_ROUND_EXPR case.
2005-03-09 Kazu Hirata <kazu@cs.umass.edu>
* fold-const.c (fold_unary, fold_binary, fold_ternary): Return
NULL_TREE when a given tree is not simplified.
(fold): Return the original tree when any of the functions
mentioned above NULL_TREE.
* fold-const.c (fold_unary, fold_binary): Take decomposed
arguments, code, type, op0, and op1 in case of fold_binary.
(fold): Update calls to fold_unary and fold_binary.
2005-03-09 Roger Sayle <roger@eyesopen.com>
* builtins.c (fold_builtin_unordered_cmp): Change prototype to take
a fndecl and an arglist instead of a CALL_EXPR, exp.
2005-03-09 Kazu Hirata <kazu@cs.umass.edu>
* cfglayout.c (fixup_reorder_chain): Remove old_bb.
* cfgrtl.c (cfg_layout_merge_blocks): Remove new_e.
* expr.c (expand_assignment): Remove orig_to_rtx.
* fold-const.c (int_const_binop): Remove no_overflow.
* ifcvt.c (noce_emit_move_insn): Remove inmode.
* loop-iv.c (get_biv_step_1): Remove lhs.
* loop-unroll.c (analyze_insns_in_loop): Remove preheader.
* real.c (real_nan): Remove neg.
* function.c (thread_prologue_and_epilogue_insns): Remove i
and newinsn.
* tree-data-ref.c (array_base_name_differ_p): Remove ta and
tb.
* tree-eh.c (tree_could_trap_p): Remove idx.
* tree-into-ssa.c (ann): Remove ann.
* tree-outof-ssa.c (num_nodes): Remove num_nodes.
* tree-sra.c (decide_block_copy): Remove inst_count.
* tree-ssa-alias.c (may_alias_p): Remove v_ann.
* tree-ssa-loop-im.c (lhs): Remove.
* cfgbuild.c (state, STATE, SET_STATE,
BLOCK_USED_BY_TABLEJUMP, FULL_STATE): Move just before
make_edges.
(make_edges): Speed up by skipping blocks with BLOCK_ORIGINAL.
(find_basic_blocks): Set the state of each basic block to
BLOCK_NEW.
2005-03-08 Jeff Law <law@redhat.com>
* tree-cfg.c (cleanup_control_flow): If removal of a computed
goto results in the removal of edges in the CFG, then we need
to recompute dominators.
2005-03-09 Ben Elliston <bje@au.ibm.com>
* c-common.c (c_do_switch_warnings): Comment fix.
2005-03-08 Julian Brown <julian@codesourcery.com>
* Patch from 2005-03-08 reverted for causing regressions and
ppc-darwin bootstrap failure.
2005-03-08 Fariborz Jahanian <fjahanian@apple.com>
* config/rs6000/rs6000.c (invalid_arg_for_unprototyped_fn):
Define the real function for ppc-darwin.
* c-typeck.c (convert_arguments): Check for target-specific
invalid argument call to unprototyped function.
* target-def.h (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
New Macro.
* target.h (invalid_arg_for_unprototyped_fn): New field
in struct calls.
* targhooks.c (hook_invalid_arg_for_unprototyped_fn): New
default target hook.
* targhooks.h (hook_invalid_arg_for_unprototyped_fn):
Declare.
2005-03-08 Kazu Hirata <kazu@cs.umass.edu>
* c-typeck.c (constructor_stack, constructor_range_stack,
initializer_stack): Make them static.
* cfg.c (rbi_pool): Make it static.
* gimple-low.c (lower_stmt_body): Make it static.
* tree-flow.h: Remove the corresponding prototype. Don't
declare lower_data.
* sched-deps.c (cache_size): Make it static.
* stor-layout.c (lang_adjust_rli): Make it static.
2005-03-08 Julian Brown <julian@codesourcery.com>
* config/elfos.h (MAKE_DECL_ONE_ONLY): Redefined to stop DECL_WEAK
from being used for symbols with vague linkage when
HAVE_GAS_COMDAT_GROUP is true.
2005-03-08 J"orn Rennecke <joern.rennecke@st.com>
* jump.c (invert_jump_1): Don't call redirect_jump_1 with
nlabel == JUMP_LABEL (jump).
2005-03-08 Kazu Hirata <kazu@cs.umass.edu>
* c-common.c, c-opts.c, combine.c, cse.c, dojump.c,
gimplify.c, tree-dfa.c, tree-ssa-loop-ivopts.c,
tree-ssa-phiopt.c, tree-ssa-pre.c, tree-ssa-sink.c,
tree-vect-analyze.c, tree.def, tree.h: Fix comment formatting.
2005-03-08 Alexey Neyman <alex.neyman@auriga.ru>
PR c/14411
* calls.c (flags_from_decl_or_type): Handle eturns_twice' attribute.
* c-common.c (handle_returns_twice): New function.
(c_common_attribute_table): Declare eturns_twice' attribute.
* doc/extend.texi: Document eturns_twice' attribute.
* tree.h (DECL_IS_RETURNS_TWICE): New macro.
(struct tree_decl): Add returns_twice_flag.
2005-03-08 Kazu Hirata <kazu@cs.umass.edu>
* tree-ssa-phiopt.c: Fix a comment typo.
* c-semantics.c, cfghooks.c, diagnostic.h, loop-iv.c,
loop-unswitch.c, modulo-sched.c, stor-layout.c, tree-gimple.h,
config/i386/cygwin1.c, doc/cfg.texi, doc/objc.texi: Update
copyright.
2005-03-08 Richard Henderson <rth@redhat.com>
* config/alpha/alpha.c (code_for_builtin): Replace special-case
builtin codes with ctzdi2, clzdi2, popcountdi2.
(struct alpha_builtin_def): Add is_const.
(zero_arg_builtins, one_arg_builtins, two_arg_builtins): Init it.
(alpha_v8qi_u, alpha_v8qi_s, alpha_v4hi_u, alpha_v4hi_s): New.
(alpha_init_builtins): Init them. Set nothrow and const attributes
on builtins.
(alpha_fold_builtin_cmpbge, alpha_fold_builtin_zapnot,
alpha_fold_builtin_extxx, alpha_fold_builtin_insxx,
alpha_fold_builtin_mskxx, alpha_fold_builtin_umulh,
alpha_fold_vector_minmax, alpha_fold_builtin_perr,
alpha_fold_builtin_pklb, alpha_fold_builtin_pkwb,
alpha_fold_builtin_unpkbl, alpha_fold_builtin_unpkbw,
alpha_fold_builtin_cttz, alpha_fold_builtin_ctlz,
alpha_fold_builtin_ctpop, alpha_fold_builtin): New.
(TARGET_FOLD_BUILTIN): New.
* config/alpha/alpha.md (UNSPEC_CTTZ): Remove.
(UNSPEC_CTLZ, UNSPEC_CTPOP): Remove.
(ffsdi2): Use ctz.
(cttz, builtin_cttz, builtin_ctlz, builtin_ctpop): Remove.
2005-03-08 Ira Rosen <irar@il.ibm.com>
PR tree-optimization/20122
* tree-vect-analyze.c (vect_object_analysis): Analyze initial
condition of access function instead of base.
2005-03-07 Jeff Law <law@redhat.com>
Steven Bosscher <stevenb@suse.de>
* tree-cfg.c (find_taken_edge_computed_goto): New function.
(find_taken_edge): Call find_taken_edge_computed_goto as
appropriate. Allow any gimple invariant rather than just
INTEGER_CST for VAL.
(cleanup_control_flow): Cleanup a computed goto which has turned
into a simple goto.
(tree_merge_blocks): If block B has any forced labels, move
them to the start of block A.
* tree-ssa-dom.c (thread_across_edge): Allow threading across
computed gotos as well.
* tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Handle
removal of unnecessary computed gotos too.
(lookup_redirection_data): Fix type of INSERT argument. Callers
updated.
2005-03-08 Kazu Hirata <kazu@cs.umass.edu>
* tree-ssa-phiopt.c: Update copyright. Fix indentations.
Remove trailing spaces.
* gimplify.c (gimple_push_bind_expr, gimple_pop_bind_expr,
unshare_all_trees): Make them static.
* tree-gimple.h: Remove the corresponding prototypes.
* diagnostic.h: Remove unused prototype
debug_output_buffer.
* modulo-sched.c: Remove unused prototype
set_row_column_for_ps.
* tree-ssa-phiopt.c (tree_ssa_phiopt,
replace_phi_edge_with_variable): Remove unused variable i.
2005-03-07 Per Bothner <per@bothner.com>
* tree.h (DECL_IS_BUILTIN): Reverted my patch from earlier today.
2005-03-06 Andrew Pinski <pinskia@physics.uc.edu>
PR tree-opt/17671
* tree-ssa-phiopt.c (tree_ssa_phiopt): Rewrite so we base the
bbs on the COND_EXPR instead of the PHI_NODEs.
(candidate_bb_for_phi_optimization): Remove.
(replace_phi_with_stmt): Rename to ...
(replace_phi_edge_with_variable): this and change so that we
replace the phi argument instead of removing the PHI.
(conditional_replacement): Change so we deal with PHI with more
than two arguments.
(value_replacement): Likewise.
(abs_replacement): Likewise.
2005-03-07 Aldy Hernandez <aldyh@redhat.com>
* config/rs6000/rs6000-protos.h: Rename output_e500_flip_eq_bit to
output_e500_flip_gt_bit.
* config/rs6000/rs6000.c (print_operand): case D: Print out bit 31
as bit 31.
(rs6000_generate_compare): Fix logic to look at the correct bits.
(output_e500_flip_eq_bit): Rename to output_e500_flip_gt_bit.
Look at GT bit.
(rs6000_emit_sCOND): Rename gen_e500_flip_eq_bit to
gen_e500_flip_gt_bit. Rename gen_move_from_CR_eq_bit to
gen_move_from_CR_gt_bit.
* config/rs6000/rs6000.md ("move_from_CR_eq_bit"): Change bit
("move_from_CR_eq_bit"): Rename to move_from_CR_gt_bit.
(UNSPEC_MV_CR_EQ): Rename to UNSPEC_MV_CR_GT.
* config/rs6000/spe.md ("e500_cr_ior_compare"): New.
(E500_CR_IOR_COMPARE): New constant.
2005-03-08 Earl Chew <earl_chew@agilent.com>
David Billinghurst <David.Billinghurst@riotinto.com>
* config/i386/host-cygwin.c: New file to support precompiled
headers on cygwin
* config/i386/x-cygwin: Use host-cygwin.c on cygwin host
* config.host: Use above files for cygwin host.
2005-03-07 David Edelsohn <edelsohn@gnu.org>
* fold-const.c (fold_binary_op_with_conditional_arg): Fix typo
ordering ops from earlier change.
2005-03-07 Per Bothner <per@bothner.com>
Various fixes to allow us to again build if --enable-mapped-location:
* c-decl.c (finish_function): Use SET_EXPR_LOCATION instead of
unavailable annotate_with_file_line, if USE_MAPPED_LOCATION.
* tree-cfg.c (remove_bb): If USE_MAPPED_LOCATION, change type of
local variable loc. Change logic appropriately.
* tree-vect-transform.c (vect_finish_stmt_generation): Use
EXPR_LOCATION rather than EXPR_LOCUS if USE_MAPPED_LOCATION.
* c-parser.c (c_parser_for_statement): Initialize loc variable.
* tree.h (DECL_IS_BUILTIN): Temporarily revert definition of
DECL_IS_BUILTIN in the USE_MAPPED_LOCATION because of jc1 issues.
2005-03-07 Richard Sandiford <rsandifo@redhat.com>
PR rtl-optimization/19683
* reload1.c (choose_reload_regs): Pass the number of bits, not the
number of bytes, to smallest_int_for_mode. Fix arguments to
REG_CANNOT_CHANGE_MODE_P.
2005-03-07 Eric Botcazou <ebotcazou@libertysurf.fr>
* reorg.c (relax_delay_slots): Check that the jump is
conditional before trying to invert it.
2005-03-07 Kazu Hirata <kazu@cs.umass.edu>
* bb-reorder.c (max_entry_frequency, max_entry_frequency):
Make them static.
* calls (stack_arg_under_construction): Make it static.
* flow.c (regs_live_at_setjmp): Make it static.
* flow.h: Remove the corresponding prototype.
* reload1.c (reload_startobj, reload_firstobj,
something_needs_operands_changed, reload_inherited,
reload_inheritance_insn, reload_override_in,
reload_spill_index): Make them static.
* recog.c (verify_changes): Make it static.
* recog.h: Remove the corresponding prototype.
* cfgbuild.c (find_sub_basic_blocks): Remove.
* basic-block.h: Remove the corresponding prototype.
* cfgexpand.c, cfgrtl.c: Don't mention find_sub_basic_blocks
in comments.
* doc/cfg.texi: Don't mention find_sub_basic_blocks.
* tree-ssa-operands.c (check_build_stmt): Remove.
* stor-layout.c (set_alignment): Remove.
* tree.h: Remove the corresponding prototype.
* tree-ssa-pre.c (has_abnormal_preds): Make it static.
* tree-ssa-dce.c (control_dependence_map,
visited_control_parents): Make them static.
* cfghooks.c (verify_flow_info): Remove local variable
num_bb_notes.
* cfgrtl.c (rtl_verify_flow_info_1): Remove local variable
last_bb_seen.
* loop-unswitch.c (unswitch_loop): Remove local variable src.
2005-03-07 David Billinghurst <David.Billinghurst@riotinto.com>
* config/i386/cygwin1.c(mingw_scan): Use xstrdup in calls to putenv.
2005-03-07 Joseph S. Myers <joseph@codesourcery.com>
* config/ia64/hpux.h (LINK_SPEC): Add -z.
* config/ia64/ia64.c (ia64_function_value): Return a REG not a
PARALLEL for an empty structure.
2005-03-07 Kazu Hirata <kazu@cs.umass.edu>
* fold-const.c (fold_binary): Remove handling of RANGE_EXPR.
* fold-const.c (fold_binary): Unroll the very first "for"
loop.
2005-03-06 David Edelsohn <edelsohn@gnu.org>
* config/rs6000/predicates.md (branch_comparison_operator): Remove
redundant match_code test.
(scc_comparison_operator): Swap match_operand and match_code
tests.
(branch_positive_comparison_operator): Same.
(trap_comparison_operator): Use comparison_operator and swap with
match_code test.
2005-03-06 Marek Michalkiewicz <marekm@amelek.gda.pl>
PR target/20288
* config/avr/avr.c (print_operand): Add 'p' and 'r'.
(out_movhi_r_mr): Read low byte of volatile MEM first.
(out_movhi_mr_r): Write high byte of volatile MEM first.
2005-03-05 Kazu Hirata <kazu@cs.umass.edu>
* cselib.c (reg_values, reg_values_size): Make them static.
* cse.c (cse_reg_info_table): Make it static.
* fold-const.c (fold_unary): Use build1 instead of copy_node.
2005-03-06 Zdenek Dvorak <dvorakz@suse.cz>
* cse.c (find_best_addr): Use canon_for_address.
2005-03-06 Kazu Hirata <kazu@cs.umass.edu>
* cse.c (fold_rtx_subreg, fold_rtx_mem): New.
(fold_rtx): Call fold_rtx_subreg and fold_rtx_mem to handle
SUBREG and MEM, respectively.
* fold-const.c (fold_binary): Use code instead of t.
* fold-const.c (optimize_minmax_comparison): Take decomposed
arguments code, type, op0, and op1 instead of t.
(fold_binary): Update a call to optimize_minmax_comparison.
* fold-const.c (fold_range_test): Take decomposed arguments
code, type, op0, and op1 instead of t.
(fold_binary): Update a call to fold_range_test.
* fold-const.c (fold_binary_op_with_conditional_arg): Take
decomposed arguments code, type, op0, and op1 instead of t.
(fold_binary): Update a call to fold_range_test.
2005-03-06 Kazu Hirata <kazu@cs.umass.edu>
* fold-const.c (fold_binary): Avoid directly using the original
expression t as much as possible.
2005-03-05 Kazu Hirata <kazu@cs.umass.edu>
* c-semantics.c (build_stmt): Use TYPE_P instead of
IS_NON_TYPE_CODE_CLASS.
* tree.h (IS_NON_TYPE_CODE_CLASS): Remove.
(NON_TYPE_CHECK): Use TYPE_P instead of
IS_NON_TYPE_CODE_CLASS.
* fold-const.c (fold): Remove handling of binary expressions.
2005-03-05 James A. Morrison <phython@gcc.gnu.org>
* doc/c-tree.texi: Wrap comments in @r{}.
* doc/cpp.texi: Likewise.
* doc/cppinternals.texi: Likewise.
* doc/extend.texi: Likewise.
* doc/md.texi: Likewise.
* doc/objc.texi: Likewise.
* doc/sourcebuild.texi: Likewise.
* doc/tm.texi: Likewise.
* doc/tree-ssa.texi
2005-03-05 Kazu Hirata <kazu@cs.umass.edu>
* predict.c (apply_return_prediction): Standardize PHI chain
walking.
* tree-ssa.c (ssa_redirect_edge): Likewise.
* genattrtab.c, genemit.c, genoutput.c, genrecog.c,
gensupport.c, jump.c, tree-phinodes.c, unwind-dw2-fde-glibc.c:
Update copyright.
* tree-phinodes.c (remove_phi_node): Drop the last argument.
* tree-flow.h: Adjust the prototype for remove_phi_node.
* lambda-code.c (perfect_nestify): Adjust a call to
remove_phi_node.
* tree-cfg.c
(remove_phi_nodes_and_edges_for_unreachable_block): Likewise.
* tree-outof-ssa.c (eliminate_virtual_phis, remove_ssa_form):
Likewise.
* tree-ssa-dce.c (remove_dead_phis): Likewise.
* tree-ssa-loop-ivopts.c (remove_statement): Likewise.
* tree-ssa-pre.c (remove_dead_inserted_code): Likewise.
* tree-ssa.c (kill_redundant_phi_nodes): Likewise.
* combine.c (simplify_and_const_int): Use gen_int_mode instead
of GEN_INT (trunc_int_for_mode (...)).
* loop-iv.c (iv_number_of_iterations): Likewise.
* postreload.c (reload_cse_move2add): Likewise.
* simplify-rtx.c (simplify_const_unary_operation,
simplify_const_binary_operation): Likewise.
* stor-layout.c (get_mode_bounds): Likewise.
* fold-const.c (fold_binary): New.
(fold): Call fold_binary on binary expressions.
2005-03-05 Richard Sandiford <rsandifo@redhat.com>
* doc/invoke.texi: Document new MIPS -msym32 and -mno-sym32 options.
* config/mips/mips.h (MASK_SYM32, TARGET_SYM32): New macros.
(TARGET_SWITCHES): Add -msym32 and -mno-sym32.
(ABI_HAS_64BIT_SYMBOLS): Set to false if TARGET_SYM32.
(ASM_SPEC): Pass down -msym32 and -mno-sym32.
2005-03-04 Devang Patel <dpatel@apple.com>
PR tree-optimization/18815
* tree-if-conv.c (combine_blocks): Adjust loop header edges for
loops with zero exit edges.
2005-03-04 Devang Patel <dpatel@apple.com>
* doc/invoke.texi: Remove reference to webpage that does not exist.
2005-03-04 John David Anglin <dave.danglin@nrc-cnrc.gc.ca>
Joseph S. Myers <joseph@codesourcery.com>
PR c++/19797
* pa/elf.h, pa64-hpux.h, som.h (ASM_OUTPUT_EXTERNAL_REAL): Define.
(ASM_OUTPUT_EXTERNAL): Call pa_hpux_asm_output_external.
* pa-protos.h (pa_hpux_asm_output_external): Add prototype.
* pa.c (get_plabel): Change argument to symbol_ref. Call
maybe_get_identifier instead of get_identifier.
(pa_hpux_asm_output_external, pa_hpux_file_end): New functions.
(struct deferred_plabel): Replace name field with symbol field.
(TARGET_ASM_FILE_END): Define as pa_hpux_file_end if
ASM_OUTPUT_EXTERNAL_REAL is defined.
(output_global_address): Use output_addr_const for output of all
symbol_refs.
(output_deferred_plabels): Use symbol_ref instead of name for address
output.
* pa.h (SYMBOL_FLAG_REFERENCED, SYMBOL_REF_REFERENCED_P,
ASM_OUTPUT_SYMBOL_REF): New macros.
* som.h (ASM_OUTPUT_EXTERNAL_LIBCALL): Use assemble_name_raw. Update
comment.
(ASM_WEAKEN_LABEL): Use targetm.asm_out.globalize_label to globalize
label.
2005-03-05 Joseph S. Myers <joseph@codesourcery.com>
* config.gcc (hppa*64*-*-hpux11*): Use pa/pa-hpux1111.h for
*-*-hpux11.[1-9]*, not just for *-*-hpux11.11.
2005-03-04 Jeff Law <law@redhat.com>
* basic-block.h (rediscover_loops_after_threading): Declare.
* tree-ssa-dom.c: Include cfgloop.h.
(tree_ssa_dominator_optimize): Discover loops and some basic
properties. Remove forwarder blocks recreated by loop header
canonicalization. Also mark backedges in the CFG.
* tree-ssa-threadupdate.c: Include cfgloop.h
(rediscover_loops_after_threading): Define.
(struct local_info): New field, JUMP_THREADED.
(prune_undesirable_thread_requests): New function.
(redirect_edges): Clear EDGE_ABNORMAL. If edges were threaded
then record that fact for the callers of redirct_edges.
(thread_block): If BB has incoming backedges, then call
prune_undesirable_thraed_requests. Note when we are
going to have to rediscover loop information. Return a
boolean indicating if any jumps were threaded.
(thread_through_all_blocks): Bubble up boolean indicating
if any jumps were threaded.
* Makefile.in (tree-ssa-dom.o): Depend on cfgloop.h
(tree-ssa-threadupdate.o): Similarly.
2005-03-04 Kazu Hirata <kazu@cs.umass.edu>
* fold-const.c (fold_ternary): Unroll the "for" loop to
extract operands.
2005-03-04 Andrew Haley <aph@redhat.com>
* unwind-dw2-fde-glibc.c (struct
unw_eh_callback_data.check_cache): New field.
(frame_hdr_cache): New.
(_Unwind_IteratePhdrCallback): Add ext_dl_phdr_info.
Cache frame header info.
2005-03-04 Richard Sandiford <rsandifo@redhat.com>
* rtl.h (copy_rtx_ptr_loc, print_rtx_ptr_loc, join_c_conditions)
(print_c_condition): Declare.
* read-rtl.c (ptr_loc): New structure.
(ptr_locs, ptr_loc_obstack, joined_conditions)
(joined_conditions_obstack): New variables.
(leading_ptr_hash, leading_ptr_eq_p, set_rtx_ptr_loc)
(get_rtx_ptr_loc, copy_rtx_ptr_loc, print_rtx_ptr_loc)
(join_c_conditions, print_c_condition): New functions.
(apply_macro_to_string): Associate the new string with the same
source location as the old one.
(add_condition_to_string): Use join_c_conditions.
(read_string): Use set_rtx_ptr_loc to record a filename and line
number for the string.
(read_rtx): Initialize the new variables above.
* genattrtab.c (write_test_expr, write_attr_value): Use
print_c_condition.
* genconditions.c (write_header): Don't define MAYBE_EVAL. Move its
comment above the GCC_VERSION check.
(write_one_condition): Use print_rtx_ptr_loc and print_c_condition.
Inline the definition of MAYBE_EVAL.
* genemit.c (gen_expand, gen_split): Use print_rtx_ptr_loc.
* genoutput.c (process_template): Likewise.
* genpreds.c (write_predicate_subfunction): Likewise.
(write_predicate_expr): Use print_c_condition.
* genrecog.c (write_cond): Likewise.
* gensupport.c (process_rtx): Use join_c_conditions to join the
conditions of a define_insn_and_split. Record a source location
for the string after the "&&".
(alter_test_for_insn): Use join_c_conditions.
2005-03-04 Andrew Pinski <pinskia@physics.uc.edu>
Revert for now:
2005-03-03 James A. Morrison <phython@gcc.gnu.org>
PR tree-optimization/15784
* fold-const.c (fold): Fold ~A + 1 to -A. Fold -A - 1
and -1 - A to ~A.
2005-03-04 Ben Elliston <bje@au.ibm.com>
* gcc.c (option_map): Add --coverage.
(LINK_COMMAND_SPEC): Pass -lgcov for `coverage'.
(cc1_options): Pass -fprofile-arcs -ftest-coverage for `coverage'.
* config/darwin.h: Pass -lgcov for `coverage'.
* doc/invoke.texi (Debugging Options): Document --coverage.
2005-03-04 Kazu Hirata <kazu@cs.umass.edu>
* gcse.c (bypass_block): Use find_edge wherever possible.
2005-03-03 Daniel Berlin <dberlin@dbrelin.org>
Fix PR debug/20253
* c-opts.c (c_common_parse_file): Call start_source_file
and end_source_file at the approriate times.
* dwarf2out.c (dwarf2out_finish): Don't auto-end
the main file, it will be done for us now.
2005-03-04 Kazu Hirata <kazu@cs.umass.edu>
* fold-const.c (fold_ternary): New.
(fold): Call fold_ternary on ternary expressions. Remove
handling of ternary expressions.
2005-03-03 James A. Morrison <phython@gcc.gnu.org>
PR tree-optimization/15784
* fold-const.c (fold): Fold ~A + 1 to -A. Fold -A - 1
and -1 - A to ~A.
2005-03-03 David Edelsohn <edelsohn@gnu.org>
* config/rs6000/predicates.md (branch_comparison_operator):
Convert from C block to conditional format.
2005-03-03 Jan Hubicka <jh@suse.cz>
* tree-dfa.c (add_referenced_var): Don't walk initializer of external
and non-constant public variables.
2005-03-03 Kazu Hirata <kazu@cs.umass.edu>
* tree-cfg.c (stmt_starts_bb_p): Clean up by replacing code
with LABEL_EXPR.
* cfgexpand.c (construct_exit_block): Use EDGE_PRED instead of
EDGE_I.
* tree-phinodes.c (remove_phi_node): Clean up by factoring out
calls to release_ssa_name and release_phi_node.
* fold-const.c (fold): Remove handling of unary expressions.
* fold-const.c (fold_unary): Avoid directly using the original
expression t as much as possible.
2005-03-03 Roger Sayle <roger@eyesopen.com>
Andrew Pinski <pinskia@physics.uc.edu>
* jump.c (redirect_exp_1): If nlabel is a NULL pointer create a
RETURN rtx, and not a LABEL_REF containing a NULL pointer.
2005-03-03 Hans-Peter Nilsson <hp@axis.com>
Describe special registers SRP and MOF as allocatable registers.
* config/cris/cris.c (cris_md_asm_clobbers): New function.
(TARGET_MD_ASM_CLOBBERS): Define to cris_md_asm_clobbers.
(cris_conditional_register_usage): Enable CRIS_MOF_REGNUM if
TARGET_HAS_MUL_INSNS.
(cris_print_operand) <case 'd'>: New case.
<case REG>: Allow CRIS_MOF_REGNUM and CRIS_SRP_REGNUM.
* config/cris/cris.h (CRIS_PC_REGNUM, CRIS_SRP_REGNUM): Don't
define.
(FIRST_PSEUDO_REGISTER, FIXED_REGISTERS, CALL_USED_REGISTERS)
(REG_ALLOC_ORDER): Update for MOF.
(enum reg_class): New members MOF_REGS, GENERAL_REGS and
SPECIAL_REGS.
(GENERAL_REGS): No longer a define of ALL_REGS.
(REGNO_REG_CLASS, REG_CLASS_CONTENTS, REG_CLASS_NAMES)
(PREFERRED_RELOAD_CLASS, REGISTER_NAMES, DBX_REGISTER_NUMBER):
Adjust accordingly.
(CRIS_SPECIAL_REGS_CONTENTS): New macro.
(REG_CLASS_FROM_LETTER): Allocate 'h' and 'x'.
(SECONDARY_RELOAD_CLASS): Define.
(STACK_POINTER_REGNUM): Define as CRIS_SP_REGNUM.
(FRAME_POINTER_REGNUM): Define as CRIS_FP_REGNUM.
(ARG_POINTER_REGNUM): Define as CRIS_AP_REGNUM.
(STATIC_CHAIN_REGNUM): Define as CRIS_STATIC_CHAIN_REGNUM.
(REGISTER_MOVE_COST): Define.
(PIC_OFFSET_TABLE_REGNUM): Define in terms of CRIS_GOT_REGNUM.
* config/cris/cris.md (CRIS_GOT_REGNUM, CRIS_STATIC_CHAIN_REGNUM)
(CRIS_FP_REGNUM, CRIS_SP_REGNUM, CRIS_SRP_REGNUM, CRIS_AP_REGNUM)
(CRIS_MOF_REGNUM): New define_constants.
("*movsi_internal", "movhi", "movqi", "movsf"): Add alternatives for
special registers.
("reload_inhi", "reload_outhi", "reload_inqi", "reload_outqi"):
New patterns.
("umulhisi3", "umulqihi3", "mulsi3", "mulqihi3", "mulhisi3")
("mulsidi3", "umulsidi3", "smulsi3_highpart", "umulsi3_highpart"):
Adjust for MOF being properly described as a register.
(indir_to_reg_split): Name this split. Conditionalize on the
destination register being a general register.
(movei): Conditionalize on on operands 0 and 1 having the same
register class.
2005-03-03 Alan Modra <amodra@bigpond.net.au>
PR target/20277
* config/rs6000/rs6000.c (rs6000_override_options): Don't allow
-mcpu to override any other explicitly given flags.
2005-03-02 J"orn Rennecke <joern.rennecke@st.com>
* recog.c (verify_changes, confirm_change_group): New functions,
broken out of apply_change_group.
(apply_change_group): Use them.
* recog.h (verify_change, confirm_change_group): Declare.
* rtl.h (redirect_jump_2): Declare.
* jump.c (redirect_exp, invert_exp): Delete.
(invert_exp_1): Take second parameter. Return value. Changed caller.
(redirect_jump_2): New function, broken out of redirect_jump.
(redirect_jump): Use redirect_jump_1 and redirect_jump_2.
(invert_jump): Use invert_jump_1 and redirect_jump_2.
* ifcvt.c (dead_or_predicable): Use redirect_jump_2.
2005-03-02 Geoffrey Keating <geoffk@apple.com>
* varasm.c (named_section): Use xstrdup rather than doing it by
hand.
* config/darwin8.h (LIB_SPEC): Switch -lmx and -lSystem.
2005-03-02 Devang Patel <dpatel@apple.com>
Undo PR tree-optimization/18815 fix.
2005-03-02 Devang Patel <dpatel@apple.com>
PR tree-optimization/18815
* tree-if-conv.c (combine_blocks): Adjust loop header edges for
loops with zero exit edges.
2005-03-02 Kazu Hirata <kazu@cs.umass.edu>
* cfg.c (connect_src, connect_dest, disconnect_src,
disconnct_dest): New.
(unchecked_make_edge, remove_edge, redirect_edge_succ,
redirect_edge_pred): Use the new functions.
* tree-ssa-dom.c (tree_ssa_dominator_optimize): Call
free_dominance_info only when needed.
2005-03-02 David Edelsohn <edelsohn@gnu.org>
PR target/20276
* config/rs6000/predicates.md (reg_or_cint64_operand): Fix typo.
(reg_or_sub_cint64_operand): Same.
2005-03-02 Jeff Law <law@redhat.com>
* tree-ssa-dom.c (tree_ssa_dominator_optimize): Fix setting of
CFG_ALTERED in the main DOM iteration loop.
2005-03-02 Mark Mitchell <mark@codesourcery.com>
PR c++/19916
* varasm.c (initializer_constant_valid_p): Allow conversions
between OFFSET_TYPEs. Tidy.
2005-03-02 Hans-Peter Nilsson <hp@axis.com>
* config/cris/cris.md ("return"): Remove epilogue delay list
sanity check.
2005-03-02 Daniel Jacobowitz <dan@codesourcery.com>
* config/arm/linux-elf.h (ARM_FUNCTION_PROFILER): Do not use (PLT)
for Thumb.
* config/arm/netbsd-elf.h (ARM_FUNCTION_PROFILER): Likewise.
2005-03-02 Kazu Hirata <kazu@cs.umass.edu>
* cfgloop.h, cfgloopanal.c, cfgloopmanip.c, conflict.c,
loop-init.c, loop-unroll.c, print-tree.c, reg-notes.def,
config/m68k/m68k.c, config/mips/mips.h,
config/rs6000/rs6000-protos.h, doc/contrib.texi,
doc/include/gcc-common.texi: Update copyright.
PR middle-end/18029 and PR middle-end/18030
* expr.c (optimize_bitfield_assignment_op): Add a special case
to handle BIT_IOR_EXPR and BIT_XOR_EXPR.
* fold-const.c (fold_unary): New.
(fold): Call fold_unary on unary expressions.
2005-03-02 Richard Guenther <rguenth@gcc.gnu.org>
* cgraph.h (struct cgraph_edge): Add prev_caller and
prev_callee fields.
(cgraph_node_remove_callees): Export.
* cgraph.c (cgraph_create_edge): Initialize prev_caller
and prev_callee.
(cgraph_edge_remove_callee): New function.
(cgraph_edge_remove_caller): Likewise.
(cgraph_remove_edge): Use.
(cgraph_redirect_edge_callee): Likewise.
(cgraph_node_remove_callees): New function.
(cgraph_node_remove_callers): Likewise.
(cgraph_remove_node): Use.
* tree-optimize.c (tree_rest_of_compilation): Use
cgraph_node_remove_callees instead of manual loop.
* cgraphunit.c (cgraph_finalize_function): Likewise.
(cgraph_expand_function): Likewise.
(cgraph_remove_unreachable_nodes): Likewise.
2005-03-02 Joseph S. Myers <joseph@codesourcery.com>
PR c/8927
* c-tree.h (undeclared_variable, build_external_ref): Add extra
argument.
* c-decl.c (undeclared_variable): Take location as argument.
* c-typeck.c (build_external_ref): Likewise.
* c-parser.c (c_parser_postfix_expression): Pass location of
identifier to build_external_ref.
2005-03-01 David Edelsohn <edelsohn@gnu.org>
* config/rs6000/rs6000.md (cceq splitter): Use operand mode, not
CCEQ mode for branch_positive_comparison_operator test.
* config/rs6000/predicates (branch_comparison_operator): Revert to
define_predicate.
(scc_comparison_operator): Same.
(branch_positive_comparison_operator): Same.
2005-03-01 Hans-Peter Nilsson <hp@axis.com>
* config/cris/cris.c (cris_eligible_for_epilogue_delay)
(cris_delay_slots_for_epilogue): Remove.
(save_last): Move into cris_target_asm_function_epilogue.
(cris_target_asm_function_epilogue): Remove tests for file being
NULL.
* config/cris/cris-protos.h (cris_eligible_for_epilogue_delay)
(cris_delay_slots_for_epilogue): Remove prototypes.
* config/cris/cris.h (DELAY_SLOTS_FOR_EPILOGUE)
(ELIGIBLE_FOR_EPILOGUE_DELAY): Do not define.
2005-03-01 David Edelsohn <edelsohn@gnu.org>
* config/rs6000/predicates.md (branch_comparison_operator): Change
to define_special_predicate.
(scc_comparison_operator): Same.
(branch_positive_comparison_operator): Same.
2005-03-01 Daniel Berlin <dberlin@dberlin.org>
* Makefile.in (tree-ssa-sink.o): New.
(OBJS-common): Add tree-ssa-sink.o.
* common.opt: Add -ftree-sink
* opts.c (decode_options): flag_tree_sink is set at O1 or higher.
* timevar.def (TV_TREE_SINK): new timevar.
* tree-flow.h (is_hidden_global_store): Prototype.
* tree-optimize.c (init_tree_optimization_passes): Add
pass_sink_code.
* tree-pass.h (pass_sink_code): New.
* tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Move checking
for non-obvious global store store to is_hidden_global_store, and
call that new function.
* tree-ssa-sink.c: New file.
* doc/invoke.texi: Document -fdump-tree-sink and -ftree-sink.
* doc/passes.texi: Document forward store motion.
* testsuite/gcc.dg/tree-ssa/ssa-sink-1.c: New test
* testsuite/gcc.dg/tree-ssa/ssa-sink-2.c: New test
* testsuite/gcc.dg/tree-ssa/ssa-sink-3.c: New test
* testsuite/gcc.dg/tree-ssa/ssa-sink-4.c: New test
2005-03-01 Per Bothner <per@bothner.com>
* diagnostic.c (diagnostic_build_prefix): If USE_MAPPED_LOCATION
and we have a non-zero column-number, add it to the message.
Also factor out the diagnostic_kind_text.
2005-03-01 Zdenek Dvorak <dvorakz@suse.cz>
* cfgloop.c (flow_loop_entry_edges_find, flow_loop_exit_edges_find,
flow_loop_pre_header_scan, flow_loop_pre_header_find,
flow_loop_scan): Removed.
(flow_loop_dump): Do not dump removed fields.
(flow_loop_free): Do not free removed fields.
(flow_loops_find): Flags argument removed. Do not call flow_loop_scan.
(loop_exit_edge_p): New function.
* cfgloop.h (struct loop): Removed fields pre_header, pre_header_edges,
num_pre_header_edges, entry_edges, num_entries, exit_edges,
num_exits, exits_doms.
(LOOP_TREE, LOOP_PRE_HEADER, LOOP_ENTRY_EDGES, LOOP_EXIT_EDGES,
LOOP_EDGES, LOOP_ALL): Removed.
(flow_loop_scan): Declaration removed.
(loop_exit_edge_p, mark_loop_exit_edges): Declare.
* cfgloopmanip.c (create_loop_notes): Do not pass flags to
flow_loops_find.
* ifcvt.c (mark_loop_exit_edges): Moved to cfgloopanal.c.
(if_convert): Call flow_loops_find and flow_loops_free
when calling mark_loop_exit_edges.
* cfgloopanal.c (mark_loop_exit_edges): Moved from
ifcvt.c. Removed the flow_loops_find, flow_loops_free and
free_dominance_info calls.
* loop-init.c (flow_loops_find): Ditto.
* passes.c (rest_of_handle_branch_prob): Ditto.
* lambda-code.c (perfect_nestify): Do not call flow_loops_find.
* loop-unroll.c (analyze_insns_in_loop): Do not use
EDGE_LOOP_EXIT.
* predict.c (predict_loops): Do not call flow_loop_scan.
Use get_loop_exit_edges.
(tree_estimate_probability): Do not pass flags to flow_loops_find.
* tree-if-conv.c (bb_with_exit_edge_p): Take loop as argument.
Do not use EDGE_LOOP_EXIT.
(tree_if_convert_cond_expr, if_convertible_modify_expr_p): Pass loop
to bb_with_exit_edge_p.
(if_convertible_loop_p): Do not call flow_loop_scan. Use
loop->single_exit. Do not use EDGE_LOOP_EXIT. Pass loop
to bb_with_exit_edge_p.
(combine_blocks): Pass loop to bb_with_exit_edge_p. Do not use
EDGE_LOOP_EXIT.
* tree-loop-linear.c (linear_transform_loops): Do not call
flow_loop_scan. Use loop->single_exit.
* tree-vect-analyze.c (vect_analyze_operations): Use loop->single_exit.
(vect_analyze_loop_form): Do not call flow_loop_scan.
* tree-vect-transform.c (vect_update_ivs_after_vectorizer): Use
loop->single_exit.
(vect_do_peeling_for_loop_bound): Use loop_preheader_edge and
loop->single_exit.
* tree-vectorizer.c (slpeel_update_phis_for_duplicate_loop,
slpeel_make_loop_iterate_ntimes, slpeel_can_duplicate_loop_p,
slpeel_tree_duplicate_loop_to_edge_cfg,
slpeel_verify_cfg_after_peeling, slpeel_tree_peel_loop_to_edge):
Use loop_preheader_edge and loop->single_exit. Do not call
flow_loop_scan.
2005-03-01 Nick Clifton <nickc@redhat.com>
* config/arm/arm.c (thumb_find_work_register): Check all of the
argument registers to see if they are free, and a couple of
special cases where the last argument register but can be proved
to be available during the function's prologue.
(print_multi_reg, arm_compute_save_reg0_reg12_mask,
output_return_instruction, emit_multi_reg_push, thumb_pushpop,
thumb_unexpanded_epilogue): Use unsigned long as the type for the
register bit-mask.
(thumb_compute_save_reg_mask): Likewise. Also use
thumb_find_work_register() to ensure that there is agreement about
which work register is going to be used in the prologue.
(thumb_output_function_prologue): Use unsigned long as the type
for the register bit-mask. Also delay pushing the link register if
other high registers are going to be pushed.
(thumb_compute_save_reg_mask, emit_multi_reg_push,
print_multi-reg, number_of_first_bit_set, thumb_pushpop): Remove
redundant prototypes.
2005-02-28 John David Anglin <dave.anglin#nrc-cnrc.gc.ca>
PR target/19819
* pa.h (GO_IF_LEGITIMATE_ADDRESS): Allow allow hard registers during
and after reload in REG+REG indexed addresses without REG_POINTER
set in the base and not set in the index.
2005-02-28 Kaz Kojima <kkojima@gcc.gnu.org>
* config/sh/linux.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX):
Don't undefine here.
(HANDLE_PRAGMA_PACK_PUSH_POP): Delete.
(NO_IMPLICIT_EXTERN_C, CPLUSPLUS_CPP_SPEC): Likewise.
(TARGET_OS_CPP_BUILTINS): Use LINUX_TARGET_OS_CPP_BUILTINS.
(LIB_SPEC, LINK_EH_SPEC, STARTFILE_SPEC, ENDFILE_SPEC,
LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED, TARGET_C99_FUNCTIONS):
Delete.
* config.gcc (sh*-*-linux*): Use config/linux.h.
2005-02-28 Dale Johannesen <dalej@apple.com>
Stan Shebs <shebs@apple.com>
Rewrite of 64-bit Darwin structure-by-value pass/return.
* config/rs6000/rs6000.h (CUMULATIVE_ARGS): New fields
intoffset, use_stack, named.
* config/rs6000/rs6000.c (rs6000_darwin64_function_arg): Remove.
(rs6000_darwin64_record_arg_advance_flush): New.
(rs6000_darwin64_record_arg_advance_recurse): New.
(rs6000_darwin64_record_arg_flush): New.
(rs6000_darwin64_record_arg_recurse): New.
(rs6000_darwin64_record_arg): New.
(rs6000_return_in_memory): Remove AGGREGATE_TYPE_P check.
(function_arg_boundary): Handle 128-bit aligned structs.
(function_arg_advance): Rewrite darwin64 struct handling.
(function_arg): Call rs6000_darwin64_record_arg.
(function_arg_partial_nregs): Handle darwin64 structs.
(rs6000_darwin64_function_value): Remove.
(rs6000_function_value): Call rs6000_darwin64_record_arg.
2005-02-28 Roger Sayle <roger@eyesopen.com>
PR tree-optimization/20216
* tree-chrec.c (tree_fold_factorial): Delete.
(tree_fold_binomial): Change argument list to take a return type
and change the type of K to unsigned int. Rewrite to avoid explicit
evaluation of factorials, and (recursively) calling fold to perform
compile-time arithmetic. Return NULL on (internal) overflow.
(chrec_evaluate): Change type of K to an unsigned int. Avoid
calling tree_fold_binomial unnecessarily. Return chrec_dont_know
if any intermediate calculation overflows.
(chrec_apply): Update call to chrec_evaluate.
2005-02-28 James E Wilson <wilson@specifixinc.com>
* config/mips/mips.h (NO_PROFILE_COUNTERS): Define.
2005-02-28 Joseph S. Myers <joseph@codesourcery.com>
PR c/20245
* c-parser.c (c_parser_compound_statement): Return error_mark_node
instead of NULL_TREE on error.
2005-02-28 David Edelsohn <edelsohn@gnu.org>
* config/rs6000/rs6000.c (EASY_VECTOR_15): Remove.
(EASY_VECTOR_15_ADD_SELF): Remove.
(num_insns_constant_wide): Not static.
(validate_condition_mode): Not static.
(toc_relative_expr_p): Not static.
(legitimate_indirect_address_p): Not static.
(macho_lo_sum_memory_operand): Not static.
(invalid_e500_subreg): Not static.
(easy_vector_same): Not static.
(easy_vector_splat_const): Not static.
(RS6000_SYMBOL_REF_TLS_P): Remove.
(any_operand): Delete.
(any_parallel_operand): Delete.
(count_register_operand): Delete.
(altivec_register_operand): Delete.
(xer_operand): Delete.
(s8bit_cint_operand): Delete.
(short_cint_operand): Delete.
(u_short_cint_operand): Delete.
(non_short_cint_operand): Delete.
(exact_log2_cint_operand): Delete.
(gpc_reg_operand): Delete.
(cc_reg_operand): Delete.
(cc_reg_not_cr0_operand): Delete.
(reg_or_short_operand): Delete.
(reg_or_neg_short_operand): Delete.
(reg_or_aligned_short_operand): Delete.
(reg_or_u_short_operand): Delete.
(reg_or_cint_operand): Delete.
(reg_or_arith_cint_operand): Delete.
(reg_or_add_cint64_operand): Delete.
(reg_or_sub_cint64_operand): Delete.
(reg_or_logical_cint_operand): Delete.
(got_operand): Delete.
(got_no_const_operand): Delete.
(easy_fp_constant): Delete.
(easy_vector_constant): Delete.
(easy_vector_constant_add_self): Delete.
(zero_constant): Delete.
(zero_fp_constant): Delete.
(volatile_mem_operand): Delete.
(offsettable_mem_operand): Delete.
(mem_or_easy_const_operand): Delete.
(add_operand): Delete.
(non_add_cint_operand): Delete.
(logical_operand): Delete.
(non_logical_cint_operand): Delete.
(mask_operand): Delete.
(mask_operand_wrap): Delete.
(mask64_operand): Delete.
(mask64_2_operand): Delete.
(and64_operand): Delete.
(and64_2_operand): Delete.
(and_operand): Delete.
(reg_or_mem_operand): Delete.
(lwa_operand): Delete.
(symbol_ref_operand): Delete.
(call_operand): Delete.
(current_file_function_operand): Delete.
(input_operand): Delete.
(rs6000_nonimmediate_operand): Delete.
(rs6000_tls_symbol_ref): Delete.
(save_world_operation): Delete.
(restore_world_operation): Delete.
(load_multiple_operation): Delete.
(store_multiple_operation): Delete.
(vrsave_operation): Delete.
(mfcr_operation): Delete.
(mtcrf_operation): Delete.
(lmw_operation): Delete.
(stmw_operation): Delete.
(branch_comparison_operator): Delete.
(branch_positive_comparison_operator): Delete.
(scc_comparison_operator): Delete.
(trap_comparison_operator): Delete.
(boolean_operator): Delete.
(boolean_or_operator): Delete.
(min_max_operator): Delete.
* config/rs6000/rs6000.h (RS6000_SYMBOL_REF_TLS_P): Move to here.
(EASY_VECTOR_15): Moved to here.
(EASY_VECTOR_15_ADD_SELF): Move to here.
(PREDICATE_CODES): Delete.
* config/rs6000/rs6000-protos.h: Delete predicate functions.
Declare functions no longer static.
* config/rs6000/predicates.md: New.
* config/rs6000/rs6000.md: Include predicates.md
2005-02-28 Kazu Hirata <kazu@cs.umass.edu>
* calls.c (emit_call_1): Don't use REG_ALWAYS_RETURN.
(emit_library_call_value_1): Don't use LCT_ALWAYS_RETURN and
REG_ALWAYS_RETURN.
* cfgrtl.c (need_fake_edge_p): Likewise.
* combine.c (distribute_notes): Likewise.
* emit-rtl.c (try_split): Likewise.
* recog.c (peephole2_opimize): Likewise.
* reg-notes.def (ALWAYS_RETURN): Remove.
* rtl.h (LCT_ALWAYS_RETURN): Remove.
* tree-cfg.c (need_fake_edge_p): Don't use ECF_ALWAYS_RETURN.
* tree.h (ECF_ALWAYS_RETURN): Remove.
2005-02-28 Roger Sayle <roger@eyesopen.com>
PR middle-end/19874
* tree-ssa.c (tree_ssa_useless_type_conversion_1): A conversion
between different machine modes is never a "useless" conversion.
2005-02-28 Geert Bosch <bosch@gnat.com>
PR ada/15977
* doc/contrib.texi: List contributors for Ada front end
2005-02-28 Paolo Bonzini <bonzini@gnu.org>
* simplify-rtx.c (simplify_unary_operation_1,
simplify_const_unary_operation): New, extracted from...
(simplify_unary_operation): ... this one.
(simplify_binary_operation_1,
simplify_const_binary_operation): New, extracted from...
(simplify_binary_operation): ... this one.
* rtl.h (simplify_const_unary_operation,
simplify_const_binary_operation): Add prototypes.
2005-02-28 Julian Brown <julian@codesourcery.com>
* config/elfos.h: Revert my patch from 2005-02-25 since it broke
building libjava and caused PR regression/20228.
2005-02-28 Paolo Bonzini <bonzini@gnu.org>
PR bootstrap/17383
* Makefile.in (host_subdir): New.
(build_objdir): New. Replace ../$(build_subdir) with it throughout.
* configure: Regenerate.
2005-02-27 Zack Weinberg <zack@codesourcery.com>
* config/alpha/t-osf4, config/arm/t-netbsd, config/ia64/t-hpux
* config/pa/t-hpux-shlib (SHLIB_INSTALL): Create the
installation directory first.
2005-02-28 Hans-Peter Nilsson <hp@axis.com>
PR target/19065.
* config/cris/cris.h (EXTRA_CONSTRAINT_Q): Accept only (mem (reg)),
not including (reg). Do not check for reg being CRIS_PC_REGNUM.
(EXTRA_MEMORY_CONSTRAINT): Define as 'Q'.
* config/cris/cris.md: Tweak comments referring to Q.
("cmpsi", "cmphi", "cmpqi", "*movsi_internal", "movhi")
("movstricthi", "movqi", "movstrictqi", "movsf", "addsi3")
("addhi3", "addqi3", "subsi3", "subhi3", "subqi3")
("*expanded_andsi", "*expanded_andhi", "*andhi_lowpart", "andqi3")
("*andqi_lowpart", "iorsi3", "iorhi3", "iorqi3", "uminsi3"):
Insert spaces in constraints to align alternatives vertically for
readability.
("cmphi"): Ditto. Add separate alternative for operand 0 "r",
operand 1: "M".
2005-02-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
PR rtl-optimization/17728
* pa.md (mulsi3, divsi3, udivsi3, modsi3): Change predicate for
operand 0 from general_operand to move_dest_operand.
2005-02-26 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
* pa/elf.h, pa/som.h (ASM_OUTPUT_EXTERNAL): Use assemble_name_raw
instead of trying to save and restore TREE_SYMBOL_REFERENCED.
* pa/pa64-hpux.h (ASM_OUTPUT_TYPE_DIRECTIVE): Define.
(ASM_OUTPUT_EXTERNAL): Don't save and restore TREE_SYMBOL_REFERENCED.
2005-02-26 Nathanael Nerode <neroden@gcc.gnu.org>
* configure.ac: Rename cc_for_cross_gnattools to host_cc_for_libada.
* configure: Regenerate.
* libada-mk.in: Remove CC; rename
cc_for_cross_gnattools / cc_set_by_configure to host_cc_for_libada.
2005-02-26 Andrew Pinski <pinskia@physics.uc.edu>
PR tree-opt/20188
* tree-ssa-alias.c (count_uses_and_derefs): If we have TREE_LIST
for the lhs, also walk over the tree. Likewise for rhs.
2005-02-26 Zdenek Dvorak <dvorakz@suse.cz>
* tree-ssa-dom.c (simple_iv_increment_p): New function.
(simplify_rhs_and_lookup_avail_expr, eliminate_redundant_computations):
Do not propagate value of iv before increment over the increment.
2005-02-25 Joseph S. Myers <joseph@codesourcery.com>
* c-parser.c: New file.
* c-parse.in: Remove.
* Makefile.in (c-parse.o-warn, c-parse.o, c-parse.c, c-parse.y):
Remove.
(c-parser.o): Add dependencies.
(C_AND_OBJC_OBJC, C_OBJS, gcc.srcextra, GTFILES, distclean,
maintainer-clean, TAGS): Update.
* c-config-lang.in (gtfiles): Update.
* gengtype-lex.l: Don't handle "@@".
* stub-objc.c (objc_get_class_ivars, objc_build_throw_stmt,
objc_build_synchronized, objc_begin_try_stmt,
objc_begin_catch_clause, objc_finish_catch_clause,
objc_build_finally_clause, objc_finish_try_stmt): New.
* c-tree.h (struct c_declspecs): Add declspecs_seen_p and
type_seen_p.
(c_parse_init): Update comment.
* c-decl.c (c_init_decl_processing): Update comment.
(build_null_declspecs, declspecs_add_qual, declspecs_add_type,
declspecs_add_scspec, declspecs_add_attrs): Initialize and update
new c_declspecs members.
2005-02-25 Julian Brown <julian@codesourcery.com>
* config/elfos.h (MAKE_DECL_ONE_ONLY): Redefined to stop DECL_WEAK
from being used for symbols with vague linkage when
HAVE_GAS_COMDAT_GROUP is true.
2005-02-25 Mark Mitchell <mark@codesourcery.com>
* doc/include/gcc-common.texi (version-GCC): Update to 4.1.
2005-02-25 Steve Ellcey <sje@cup.hp.com>
PR target/19930
* doc/tm.texi (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Document.
(LIBGCC2_HAS_DF_MODE): New.
(LIBGCC2_HAS_XF_MODE): New.
(LIBGCC2_HAS_TF_MODE): New.
* libgcc2.h (LIBGCC2_HAS_XF_MODE): New name for HAVE_XFMODE.
(LIBGCC2_HAS_TF_MODE): New name for HAVE_TFMODE.
* libgcc2.c (LIBGCC2_HAS_XF_MODE): New name for HAVE_XFMODE.
(LIBGCC2_HAS_TF_MODE): New name for HAVE_TFMODE.
(LIBGCC2_HAS_DF_MODE): New name for HAVE_DFMODE.
* config/ia64/t-ia64 (LIB1ASMFUNCS): Remove __compat
and add _fixtfdi, _fixunstfdi, _floatditf
* lib1funcs.asm: Remove L__compat. Add L_fixtfdi,
L_fixunstfdi, L_floatditf.
* config/ia64/hpux.h (LIBGCC2_HAS_XF_MODE): Define.
(LIBGCC2_HAS_TF_MODE): Define.
2005-02-25 Diego Novillo <dnovillo@redhat.com>
PR tree-optimization/20204
* tree-into-ssa.c (insert_phi_nodes_for): Do not use
REWRITE_THIS_STMT markers on PHI nodes.
(rewrite_initialize_block): Likewise.
2005-02-25 Mark Mitchell <mark@codesourcery.com>
* version.c (version_string): Update to 4.1.
2005-02-25 Paolo Carlini <pcarlini@suse.de>
* doc/extend.texi (5.24 Declaring Attributes of Functions)<noreturn>:
Clarify that the alternative way doesn't work in GNU C++.
2005-02-25 Zdenek Dvorak <dvorakz@suse.cz>
PR tree-optimization/19937
* tree-ssa-loop-ivopts.c (rewrite_use_compare): Cast the final value
to the type of the induction variable.
2005-02-25 Kaz Kojima <kkojima@gcc.gnu.org>
PR rtl-optimization/20117
* bb-reorder.c (duplicate_computed_gotos): Don't duplicate
the block including noncopyable insn.
2005-02-24 Kazu Hirata <kazu@cs.umass.edu>
* cse.c (delete_trivially_dead_insns): Speed up by minimizing
calls to find_reg_note.
2005-02-24 Richard Henderson <rth@redhat.com>
PR tree-opt/20127
* tree-sra.c (instantiate_element): Copy TREE_THIS_VOLATILE from
the type.
2005-02-24 Fariborz Jahanian <fjahanian@apple.com>
* config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Check for
vector types if to use base reg for misaligned non-word ld/std.
2005-02-24 Hans-Peter Nilsson <hp@axis.com>
PR target/14619
* config/cris/cris.c (cris_target_asm_function_prologue): Create
dwarf2 label manually and put it after, not before the prologue.
2005-02-24 David Edelsohn <edelsohn@gnu.org>
PR target/19019
* reload.c (operands_match_p): Only increment register number for
SCALAR_INT_MODE_P modes in multiple hard registers.
* config/rs6000/rs6000.md (trunctfdf2): Remove register constraints.
Fix formatting.
2005-02-24 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
* ChangeLog.5: Fix log message typo(s).
* ChangeLog.7: Likewise.
* ChangeLog.tree-ssa: Likewise.
* cfgexpand.c: Fix comment typo(s).
* conflict.c: Likewise.
* defaults.h: Likewise.
* dwarf2out.c: Likewise.
* gcse.c: Likewise.
* ggc-page.c: Likewise.
* tree-eh.c: Likewise.
* tree-ssa-dom.c: Likewise.
2005-02-24 Jakub Jelinek <jakub@redhat.com>
PR target/19019
* mklibgcc.in: Pass -DSHARED when compiling all *_s${objext} objects.
* config/rs6000/darwin-ldouble.c: Only use the .symver directives
if SHARED is defined.
PR target/20196
* config/rs6000/rs6000.md (LTU, GTU sCC splitters): Add earlyclobber,
allow splitting only if operands 0 and 3 don't overlap.
2005-02-24 Richard Henderson <rth@redhat.com>
PR middle-end/19953
* builtins.c (fold_builtin_complex_mul, fold_builtin_complex_div): New.
(fold_builtin_1): Call them.
* fold-const.c (fold_complex_mult_parts): Split out from ...
(fold_complex_mult): ... here. Fix typo in both imaginary case.
(fold_complex_div_parts, fold_complex_div): New.
(fold): Use them.
* tree.h (fold_complex_mult_parts, fold_complex_div_parts): Declare.
2005-02-24 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
* tree-ssa-ccp.c (visit_assignment): Verify that result of
VIEW_CONVERT_EXPR is_gimple_min_invariant.
* print-tree.c (print_node_brief): Print LABEL_DECL_UID.
(print_node): Likewise.
Print TYPE_SIZES_GIMPLIFIED.
2005-02-24 Hans-Peter Nilsson <hp@axis.com>
* config/cris/cris.md ("umulhisi3", "umulqihi3", "mulsi3")
("mulqihi3", "mulhisi3", "mulsidi3", "umulsidi3"): Mark input
operands as commutative in constraints.
2005-02-24 Diego Novillo <dnovillo@redhat.com>
* tree-into-ssa.c: Re-organize internal functions.
2005-02-24 Richard Henderson <rth@redhat.com>
PR middle-end/18902
* c-opts.c (c_common_post_options): Set flag_complex_method to 2
for c99.
* common.opt (fcx-limited-range): New.
* opts.c (set_fast_math_flags): Set flag_cx_limited_range.
* toplev.c (flag_complex_method): Initialize to 1.
(process_options): Set flag_complex_method to 0 if
flag_cx_limited_range.
* doc/invoke.texi (-fcx-limited-range): New.
2005-02-24 Kazu Hirata <kazu@cs.umass.edu>
* cse.c (delete_trivially_dead_insns): Speed up by using
NEXT_INSN and PREV_INSN directly instead of next_real_insn and
prev_real_insn.
2005-02-24 Andrea Tarani <andrea.tarani@gilbarco.com>
* config/m68k/m68k.c (m68k_save_reg): Also save A5 for non-leaf
functions when -mid-shared-library is being used.
2005-02-23 Daniel Jacobowitz <dan@codesourcery.com>
* doc/tm.texi (LINK_LIBGCC_SPECIAL): Remove.
(LINK_LIBGCC_SPECIAL_1): Don't mention it.
* gcc.c: Don't check for LINK_LIBGCC_SPECIAL.
* system.h: Poison LINK_LIBGCC_SPECIAL.
2005-02-23 James E Wilson <wilson@specifixinc.com>
* gengtype.c (note_insn_name): Make 1 element larger.
2005-02-23 Roger Sayle <roger@eyesopen.com>
PR target/20018
PR rtl-optimization/20097
* simplify-rtx.c (simplify_relational_operation_1): Avoid creating
BImode SUBREGs of SImode registers which confuse the ia64 backend.
2005-02-23 David Edelsohn <edelsohn@gnu.org>
* t-aix43 (SHLIB_INSTALL): Create directory for shared library.
* t-aix52 (SHLIB_INSTALL): Same.
2005-02-23 Kazu Hirata <kazu@cs.umass.edu>
* genpreds.c: Update copyright.
2005-02-23 Michael Beach <michaelb@ieee.org>
PR target/20159
* config/sparc/t-elf (startup files): Assemble with CPP.
2005-02-23 Paolo Bonzini <bonzini@gnu.org>
* genpreds.c (mark_mode_tests): Handle non-VOIDmode match_operands.
(write_predicate_expr): Likewise.
2005-02-22 Diego Novillo <dnovillo@redhat.com>
PR tree-optimization/20100
PR tree-optimization/20115
* tree-optimize.c (init_tree_optimization_passes): Remove
pass_maybe_create_global_var.
* tree-pass.h (pass_maybe_create_global_var): Remove.
* tree-ssa-alias.c (aliases_computed_p): Declare.
(struct alias_info): Add field NUM_PURE_CONST_CALLS_FOUND.
(count_calls_and_maybe_create_global_var): Remove.
(pass_maybe_create_global_var): Remove.
(init_alias_info): Do not declare aliases_computed_p.
(maybe_create_global_var): If the function contains no
call-clobbered variables and a mix of pure/const and regular
function calls, create .GLOBAL_VAR.
Mark all call-clobbered variables for renaming.
(merge_pointed_to_info): Update comment.
(add_pointed_to_var): Likewise.
(is_escape_site): Likewise.
Accept struct alias_info * instead of size_t *.
Update all users.
Update AI->NUM_CALLS_FOUND and AI->NUM_PURE_CONST_CALLS_FOUND
as necessary.
* tree-ssa-operands.c (get_call_expr_operands): If
ALIASES_COMPUTED_P is false, do not add call-clobbering
operands.
* tree-ssa.c (init_tree_ssa): Set ALIASES_COMPUTED_P to false.
(delete_tree_ssa): Likewise.
2005-02-22 James E Wilson <wilson@specifixinc.com>
* toplev.c (backend_init): Don't call init_adjust_machine_modes here.
(do_compile): Do call it here.
2005-02-22 Kazu Hirata <kazu@cs.umass.edu>
PR rtl-optimization/20017.
* passes.c (rest_of_handle_combine, rest_of_handle_cse,
rest_of_handle_cse2, rest_of_handle_gcse): Call
delete_dead_jumptables immediately before calling cleanup_cfg.
2005-02-22 Devang Patel <dpatel@apple.com>
PR 19952
* tree-if-conv.c (process_phi_nodes): Use bsi_after_labels and skip
all labels
2005-02-22 David Edelsohn <edelsohn@gnu.org>
* config/rs6000/aix.h (WINT_TYPE): Define.
2005-02-22 Stan Shebs <shebs@apple.com>
* config/rs6000/rs6000.c (rs6000_override_options): Default to
natural alignment for 64-bit Darwin.
(rs6000_parse_alignment_option): Warn about uses of -malign-power
on 64-bit Darwin.
* doc/invoke.texi: Document this.
2005-02-22 DJ Delorie <dj@redhat.com>
* c-common.c (c_common_type_for_mode): Pass the mode's precision
to make_[un]signed_type, not the mode itself.
2005-02-22 Kazu Hirata <kazu@cs.umass.edu>
* cfg.c (cached_make_edge): Call make_edge if edge cache is
not available. Use tail calls wherever possible.
(make_edge): Call unchecked_make_edge to create an edge.
* tree-outof-ssa.c (SSANORM_USE_COALESCE_LIST): Remove.
(coalesce_ssa_name): Don't check for
SSANORM_USE_COALESCE_LIST.
(rewrite_out_of_ssa): Don't use SSANORM_USE_COALESCE_LIST.
2005-02-22 Diego Novillo <dnovillo@redhat.com>
* tree-into-ssa.c (rewrite_blocks): Move debug dumps from ...
(rewrite_into_ssa): ... here.
2005-02-21 Alexandre Oliva <aoliva@redhat.com>
PR tree-optimization/19786
* tree-ssa-alias.c (compute_flow_insensitive_aliasing): Add one
tag to another's may-alias bitmap when adding to the other's list.
2005-02-21 DJ Delorie <dj@redhat.com>
* tree-ssa-loop-ivopts.c (computation_cost): Start register
numbering at LAST_VIRTUAL_REGISTER+1 to avoid possibly using hard
registers in unsupported ways.
* expmed.c (init_expmed): Likewise.
2005-02-21 Stan Cox <scox@redhat.com>
* config/iq2000/iq2000.h (DWARF_FRAME_RETURN_COLUMN): Change to 31.
2005-02-21 Kazu Hirata <kazu@cs.umass.edu>
* tree-cfg.c (fold_cond_expr_cond): New.
(make_edges): Call fold_cond_expr_cond.
(find_taken_edge): Accept nothing but INTEGER_CST.
(find_taken_edge_cond_expr): Reject INTEGER_CST other than 0
and 1.
(find_taken_edge_switch_expr): Remove a check for INTEGER_CST.
* flow.c (delete_dead_jumptables): Speed up by scanning insns
that do not belong to any basic block.
2005-02-21 Jeff Law <law@redhat.com>
* cfganal.c (find_unreachable_blocks): Manually CSE load of
e->dest.
2005-02-21 Kazu Hirata <kazu@cs.umass.edu>
* tree-outof-ssa.c (SSANORM_REMOVE_ALL_PHIS): Remove.
(SSANORM_COALESCE_PARTITIONS, SSANORM_USE_COALESCE_LIST):
Adjust their definitions.
(remove_ssa_form): Don't check for SSANORM_REMOVE_ALL_PHIS.
(rewrite_out_of_ssa): Don't use SSANORM_REMOVE_ALL_PHIS.
* c-objc-common.h, c-pretty-print.c, cgraphunit.c, except.c,
genautomata.c, langhooks.c, langhooks.h, system.h,
config/arm/lib1funcs.asm: Update copyright.
2005-02-21 Ulrich Weigand <uweigand@de.ibm.com>
* dbxout.c (dbxout_function_end): Emit Lscope label always.
2005-02-21 Richard Guenther <rguenth@gcc.gnu.org>
PR bootstrap/13770
* doc/install.texi: Document --with-gc.
2005-02-21 Paolo Bonzini <bonzini@gnu.org>
* simplify-rtx.c (simplify_unary_operation): Add a missing
"break" statement.
2005-02-21 Eric Botcazou <ebotcazou@libertysurf.fr>
PR tree-optimization/18663
* tree-ssa-dom.c (extract_range_from_cond): Return 0
if the type has variable bounds.
2005-02-20 Kazu Hirata <kazu@cs.umass.edu>
* gcse.c: Remove an obsolete comment.
* cse.c (init_cse_reg_info): Use xmalloc instead of xrealloc.
2005-02-20 Hans-Peter Nilsson <hp@axis.com>
* doc/extend.texi (Function Attributes) <Attribute const>: The
attribute "pure" is below this text, not above.
2005-02-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
* pa.c (pa_assemble_integer, get_plabel): Small cleanups.
(pa_asm_output_mi_thunk): Use asm_output_insn instead of fprintf.
* som.h (ASM_OUTPUT_EXTERNAL_LIBCALL): Small cleanup.
2005-02-20 Zack Weinberg <zack@codesourcery.com>
PR 18785
* langhooks.h (struct lang_hooks): Add to_target_charset.
* langhooks.c (lhd_to_target_charset): New function.
* langhooks-def.h: Declare lhd_to_target_charset.
(LANG_HOOKS_TO_TARGET_CHARSET): New macro.
(LANG_HOOKS_INITIALIZER): Update.
* c-common.c (c_common_to_target_charset): New function.
* c-common.h: Declare it.
* c-objc-common.h (LANG_HOOKS_TO_TARGET_CHARSET): Set to
c_common_to_target_charset.
* defaults.c (TARGET_BELL, TARGET_BS, TARGET_CR, TARGET_DIGIT0)
(TARGET_ESC, TARGET_FF, TARGET_NEWLINE, TARGET_TAB, TARGET_VT):
Delete definitions.
* system.h: Poison them.
* doc/tm.texi: Don't discuss them.
* builtins.c (fold_builtin_isdigit): Use lang_hooks.to_target_charset.
* c-pretty-print.c (pp_c_integer_constant): Don't use pp_c_char.
(pp_c_char): Do not attempt to generate letter escapes for
newline, tab, etc.
* config/arm/arm.c (output_ascii_pseudo_op): Likewise.
* config/mips/mips.c (mips_output_ascii): Likewise.
2005-02-20 Dorit Naishlos <dorit@il.ibm.com>
PR tree-optimization/19951
* tree-vect-analyze.c (vect_analyze_loop_form): Check if loop exit edge
is abnormal.
2005-02-19 Steven Bosscher <stevenb@suse.de>
PR middle-end/19698
* function.h (struct function): New field `max_loop_depth'.
* cfgloop.c (establish_preds): Update maximum loop depth seen so far.
(flow_loops_find): Reset the max loop depth count before finding loops.
* flow.c (MAX_LIVENESS_ROUNDS): New constant.
(update_life_info_in_dirty_blocks): Remove 2002-05-28 workaround.
(calculate_global_regs_live): Make sure the loop will terminate
when the initial sets are not empty.
2005-02-19 Zack Weinberg <zack@codesourcery.com>
* mklibgcc.in: If libgcc_eh.a would be empty, put a dummy
object inside.
* config/ia64/hpux.h: Don't define LIBGCC_SPEC.
2005-02-19 Richard Sandiford <rsandifo@redhat.com>
PR other/19525
* doc/invoke.texi: Remove documentation of %M spec.
* gcc.c: Likewise.
(init_spec): Remove %M suffix from -lgcc_s.
(do_spec_1): Remove 'M' case.
* mklibgcc.in: Remove SHLIB_MULTILIB handling. Expect SHLIB_LINK
to put shared libraries in the multilib directory. Remove the
shlib_so_soname substitution variable. Don't add a multilib encoding
to shlib_base_name. Set shlib_slibdir_qual to the full pathname
reported by -print-multi-os-directory. Pass @multilib_dir@ to
SHLIB_INSTALL as well as SHLIB_LINK.
* config/t-slibgcc-elf-ver (SHLIB_SONAME): Use @shlib_base_name@.
(SHLIB_NAME): Delete.
(SHLIB_DIR): New macro.
(SHLIB_LINK): Put $(SHLIB_SONAME) and $(SHLIB_SOLINK) in $(SHLIB_DIR).
(SHLIB_INSTALL): Adjust accordingly.
* config/t-slibgcc-darwin: As for t-slibgcc-elf-ver.
* config/t-slibgcc-sld: Likewise.
* config/t-libunwind-elf (SHLIBUNWIND_NAME): Delete.
(SHLIBUNWIND_SONAME): Use @shlib_base_name@.
(SHLIBUNWIND_LINK): Put $(SHLIBUNWIND_SONAME) and $(SHLIB_SOLINK)
in $(SHLIB_DIR).
(SHLIBUNWIND_INSTALL): Adjust accordingly.
* config/i386/t-nwld (SHLIB_SONAME): Delete.
(SHLIB_LINK, SHLIB_INSTALL): Use SHLIB_NAME instead of SHLIB_SONAME.
Use @shlib_base_name@ instead of @shlib_so_name@.
* config/ia64/t-hpux (SHLIB_LINK): Put @shlib_base_name@.so.0
and @shlib_base_name@.so in @multilib_dir@.
(SHLIB_INSTALL): Adjust accordingly. Add @shlib_slibdir_qual@
to the install path.
* config/mips/t-slibgcc-irix: As for t-slibgcc-elf-ver.
(SHLIB_LINK): Remove previous workaround.
* config/pa/t-hpux-shlib (SHLIB_DIR, SHLIB_SLIBDIR_QUAL): New macros.
(SHLIB_LINK): Put $(SHLIB_SONAME) and $(SHLIB_NAME) in $(SHLIB_DIR).
(SHLIB_INSTALL): Adjust accordingly. Add $(SHLIB_SLIBDIR_QUAL) to
the install path.
* config/rs6000/t-aix43 (SHLIB_LINK): Put @shlib_base_name@.a in
@multilib_dir@. Use @multilib_dir@ to check for threading libraries.
(SHLIB_INSTALL): Adjust accordingly.
(SHLIB_LIBS): Use @multilib_dir@ to check for threading libraries.
* config/rs6000/t-aix52: As for config/rs6000/t-aix43.
* config/sh/t-linux (SHLIB_LINK, SHLIB_INSTALL): As for
config/t-slibgcc-elf-ver.
2005-02-19 Zdenek Dvorak <dvorakz@suse.cz>
Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/19828
* tree-ssa-loop-im.c: Add a TODO comment.
(movement_possibility): Return MOVE_PRESERVE_EXECUTION for calls
without side-effects.
2005-02-18 James A. Morrison <phython@gcc.gnu.org>
* tree-ssa-ccp.c (widen_bitfield): Pass type to build_int_cst and don't
call fold_convert.
2005-02-18 James E. Wilson <wilson@specifixinc.com>
* doc/invoke.texi (IA-64 Options): Delete -mb-step.
* config/ia64/ia64.c (last_group, group_idx): Delete variables.
(errata_find_address_regs, errata_emit_nops, fixup_errata): Delete
functions.
(ia64_reorg): Delete fixup_errata call.
* config/ia64/ia64.h (MASK_B_STEP, TARGET_B_STEP): Delete.
(TARGET_SWITCHES): Delete -mb-step entry.
2005-02-19 Jakub Jelinek <jakub@redhat.com>
PR c/20043
* c-typeck.c (composite_type): Handle quals in transparent unions.
(type_lists_compatible_p): Likewise.
2005-02-18 Stan Shebs <shebs@apple.com>
* config/darwin.c (machopic_select_rtx_section): Don't put relocatable
expressions in the .literal8 section.
2005-02-18 Geoffrey Keating <geoffk@apple.com>
* config/rs6000/darwin-tramp.asm: Remove stray 'APPLE LOCAL' marker.
2005-02-18 Roger Sayle <roger@eyesopen.com>
* fold-const.c (constant_boolean_node): Always create values of the
specified type, don't bother calling truthvalue_conversion.
2005-02-18 Joseph S. Myers <joseph@codesourcery.com>
* except.c (output_function_exception_table): Call
assemble_external_libcall (eh_personality_libfunc).
2005-02-18 Joseph S. Myers <joseph@codesourcery.com>
PR target/19886
* config/ia64/ia64.h (struct machine_function): Add state_num.
* config/ia64/ia64.c (process_epilogue,
process_for_unwind_directive): Use new unwind state numbers each
time rather than state 1.
2005-02-18 Ulrich Weigand <uweigand@de.ibm.com>
PR target/20054
* config/s390/s390.md ("*llgt_sidi", "*llgt_sidi_split"): Move to
before the "*llgt_didi" pattern.
2005-02-18 Jason Merrill <jason@redhat.com>
* gimplify.c (gimplify_modify_expr_rhs) [CALL_EXPR]: Revert again.
2005-02-18 Richard Earnshaw <rearnsha@arm.com>
* arm/lib1funcs.asm (FUNC_ALIAS): New macro.
(div0): Use it in place of ARM_FUNC_ALIAS.
(lshrdi3, ashrdi3, ashlrdi3): Likewise.
2005-02-18 Andrew Pinski <pinskia@physics.uc.edu>
PR middle-end/20030
* fold-const.c (fold_indirect_ref_1): Use the correct index for zero
access, the lower bound of the array type if it exists.
2005-02-18 Alexandre Oliva <aoliva@redhat.com>
PR c++/20008
* stmt.c (expand_case): Don't assume cleanup_tree_cfg will remove
cases that are out-of-range for the index type.
2005-02-18 James A. Morrison <phython@gcc.gnu.org>
* stmt.c (emit_case_bit_tests): Call fold_convert instead of convert.
(estimate_case_costs): Don't call convert.
* expmed.c (expand_shift): Likewise.
(make_tree): Call fold_convert instead of convert.
2005-02-18 Jakub Jelinek <jakub@redhat.com>
PR c++/19813
* emit-rtl.c (set_mem_attributes_minus_bitpos): Add assertion
that ref to be marked MEM_READONLY_P doesn't have base that needs
constructing.
2005-02-18 Joseph S. Myers <joseph@codesourcery.com>
* genautomata.c (output_get_cpu_unit_code_func,
output_cpu_unit_reservation_p): Don't generate old-style function
definitions.
2005-02-18 Jakub Jelinek <jakub@redhat.com>
PR c++/20023
PR tree-optimization/20009
* convert.c (convert_to_integer): Revert 2005-02-16 change.
PR tree-optimization/18947
* cgraphunit.c (cgraph_finalize_function): When redefining an extern
inline, remove all nodes that are inlined into the extern inline
being redefined.
2005-02-17 Kazu Hirata <kazu@cs.umass.edu>
* bt-load.c, cfgloop.c, convert.c, dominance.c, global.c,
loop-invariant.c, stmt.c, tree-ssa-forwprop.c,
tree-ssa-live.c, tree-ssanames.c, tree-vn.c,
config/host-linux.c, config/arm/fpa.md, config/avr/avr.h:
Update copyright.
2005-02-17 Roger Sayle <roger@eyesopen.com>
PR tree-optimization/19917
* tree-eh.c (tree_could_trap_p): Consider calls to weak functions
to be potentially trapping.
2005-02-17 Kazu Hirata <kazu@cs.umass.edu>
* libgcc2.c, tree-vect-analyze.c: Fix comment typos.
2005-02-17 Andreas Krebbel <krebbel1@de.ibm.com>
* builtins.c (expand_builtin_return_addr): Remove tem parameter.
tem becomes a local variable which is set to the value of the
back end defined INITIAL_FRAME_ADDRESS macro.
(expand_builtin_frame_address): Omit the base parameter to
expand_builtin_return_addr.
(expand_builtin_profile_func): Likewise.
* config/s390/s390.h (INITIAL_FRAME_ADDRESS_RTX): Define new macro.
(DYNAMIC_CHAIN_ADDRESS): Remove the case for the initial frame.
* doc/tm.texi: Documentation for INITIAL_FRAME_ADDRESS_RTX added.
2005-02-17 Jakub Jelinek <jakub@redhat.com>
* config/s390/s390.c (s390_alloc_pool, s390_free_pool,
s390_chunkify_start): Use BITMAP_ALLOC and BITMAP_FREE.
* config/frv/frv.c (frv_function_epilogue): Likewise.
2005-02-17 Daniel Berlin <dberlin@dberlin.org>
* lambda-code (perfect_nestify): Remove mark/unmark
for rewriting hack.
* tree-loop-linear.c (linear_transform_loops): Add
rewrite_into_ssa call so that ssa is correct for
rewriting into loop closed.
2005-02-17 Nathan Sidwell <nathan@codesourcery.com>
* bitmap.h (BITMAP_XMALLOC, BITMAP_XFREE): Remove.
* bb-reorder.c (duplicate_computed_gotos): Use BITMAP_ALLOC and
BITMAP_FREE.
* bt-load.c (btr_def_live_range, combine_btr_defs,
migrate_btr_def, migrate_btr_defs): Likewise.
* cfgcleanup.c (thread_jump): Likewise.
* cfgloop.c (get_loop_body_in_bfs_order): Likewise.
* df.c (df_insn_table_realloc, df_bitmaps_alloc, df_bitmaps_free,
df_alloc, df_free, df_du_chain_create, df_bb_rd_local_compute,
df_rd_local_compute, df_reg_info_compute): Likewise.
* dominance.c (init_dom_info, free_dom_info): Likewise.
* flow.c (init_propagate_block_info,
free_propagate_block_info): Likewise.
* gcse.c (alloc_gcse_mem, free_gcse_mem): Likewise.
* global.c (allocate_bb_info, free_bb_info, calculate_reg_pav,
modify_reg_pav): Likewise.
* loop-invariant.c (find_defs, find_invariant_insn,
find_invariants, free_inv_motion_data): Likewise.
* predict.c (tree_predict_by_opcode,
estimate_bb_frequencies): Likewise.
* stmt.c (expand_case): Likewise.
* tree-cfg.c (tree_duplicate_sese_region): Likewise.
* tree-dfa.c (mark_new_vars_to_rename): Likewise.
* tree-if-conv.c (get_loop_body_in_if_conv_order): Likewise.
* tree-into-ssa.c (insert_phi_nodes_for, def_blocks_free,
get_def_blocks_for, mark_def_site_blocks, rewrite_into_ssa,
rewrite_ssa_into_ssa): Likewise.
* tree-optimize.c (tree_rest_of_compilation): Likewise.
* tree-outof-ssa.c (new_temp_expr_table, free_temp_expr_table,
analyze_edges_for_bb, perform_edge_inserts): Likewise.
* tree-scalar-evolution.c (scev_initialize, scev_finalize): Likewise.
* tree-sra.c (tree_sra): Likewise.
* tree-ssa-alias.c (init_alias_info, delete_alias_info): Likewise.
* tree-ssa-ccp.c (ccp_fold_builtin): Likewise.
* tree-ssa-dce.c (tree_dce_init, tree_dce_done): Likewise.
* tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
* tree-ssa-dse.c (tree_ssa_dse): Likewise.
* tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_var):
Likewise.
* tree-ssa-live.c (new_tree_live_info, delete_tree_live_info,
calculate_live_on_entry, calculate_live_on_exit,
build_tree_conflict_graph): Likewise.
* tree-ssa-loop-ivopts.c (tree_ssa_iv_optimize_init, record_use,
record_important_candidates, set_use_iv_cost, find_depends,
determine_use_iv_costs, iv_ca_new, iv_ca_free, free_loop_data,
tree_ssa_iv_optimize_finalize): Likewise.
* tree-ssa-loop-manip.c (add_exit_phis_var, get_loops_exit,
find_uses_to_rename_use, rewrite_into_loop_closed_ssa,
tree_duplicate_loop_to_header_edge): Likewise.
* tree-ssa-pre.c (init_pre, fini_pre): Likewise.
* tree-ssa.c (verify_flow_insensitive_alias_info,
verify_name_tags, verify_ssa, init_tree_ssa,
delete_tree_ssa): Likewise.
* tree-ssanames.c (marked_ssa_names, init_ssanames,
fini_ssanames): Likewise.
* tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): Likewise.
2005-02-17 Ralf Corsepius <ralf.corsepius@rtems.org>
* config/rs6000/t-rtems: Completely reworked.
2005-02-17 Ira Rosen <irar@il.ibm.com>
* tree-data-ref.c (array_base_name_differ_p): Remove gcc_assert.
2005-02-17 Ira Rosen <irar@il.ibm.com>
* tree-vect-analyze.c (vect_analyze_pointer_ref_access): Use
POINTER_TYPE_P when checking that type is a pointer.
(vect_get_memtag): Remove.
(vect_address_analysis): Use POINTER_TYPE_P. Call
vect_object_analysis with dummy parameter for memtag.
(vect_object_analysis): Extract memtag (functionality that
used to be in vect_get_memtag and moved here). Fix printings.
(vect_analyze_data_refs): Fix comment. Call vect_object_analysis
with correct parameters. Remove call to vect_get_memtag.
2005-02-17 Dorit Naishlos <dorit@il.ibm.com>
* Makefile.in (tree-vect-analyze.o, tree-vect-transform.o): New.
(tree-vectorizer.o): Added missing dependencies.
* tree-vectorizer.h (vect_dump, vect_verbosity_level): Added extern
decleration.
(slpeel_tree_peel_loop_to_edge): Function externalized (had a static
declaration in tree-vectorizer.c, now has an extern declaration in
tree-vectorizer.h).
(slpeel_make_loop_iterate_ntimes, slpeel_can_duplicate_loop_p,
slpeel_verify_cfg_after_peeling, vect_strip_conversion,
get_vectype_for_scalar_type, vect_is_simple_use,
vect_is_simple_iv_evolution, vect_can_force_dr_alignment_p,
vect_supportable_dr_alignment, new_loop_vec_info, destroy_loop_vec_info,
new_stmt_vec_info, vect_analyze_loop, vectorizable_load,
vectorizable_store, vectorizable_operation, vectorizable_assignment,
vect_transform_loop, vect_print_dump_info, vect_set_verbosity_level,
find_loop_location): Likewise.
* tree-vectorizer.c (langhooks.h): #include removed.
(slpeel_tree_peel_loop_to_edge): Function externalized. Declaration
moved to tree-vectorized.h.
(slpeel_make_loop_iterate_ntimes, slpeel_can_duplicate_loop_p,
slpeel_verify_cfg_after_peeling, vect_strip_conversion,
get_vectype_for_scalar_type, vect_is_simple_use,
vect_is_simple_iv_evolution, vect_can_force_dr_alignment_p,
vect_supportable_dr_alignment, new_loop_vec_info,
destroy_loop_vec_info, new_stmt_vec_info, vect_print_dump_info,
vect_set_verbosity_level, find_loop_location): Likewise.
(vect_analyze_loop): Function externalized. Declaration moved to
tree-vectorized.h. Function definition moved to tree-vect-analyze.c.
(vect_analyze_loop_form): Moved to tree-vect-analyze.c.
(vect_mark_stmts_to_be_vectorized, vect_analyze_scalar_cycles,
vect_analyze_data_ref_accesses, vect_analyze_data_ref_dependences,
vect_analyze_data_refs_alignment, vect_compute_data_refs_alignment,
vect_enhance_data_refs_alignment, vect_analyze_operations,
exist_non_indexing_operands_for_use_p, vect_mark_relevant,
vect_stmt_relevant_p, vect_get_loop_niters,
vect_analyze_data_ref_dependence, vect_compute_data_ref_alignment,
vect_analyze_data_ref_access, vect_analyze_pointer_ref_access,
vect_can_advance_ivs_p, vect_get_ptr_offset, vect_analyze_offset_expr,
vect_base_addr_differ_p, vect_object_analysis, vect_address_analysis,
vect_get_memtag): Likewise.
(vectorizable_load): Function externalized. Declaration moved to
tree-vectorized.h. Function definition moved to tree-vect-transform.c.
(vectorizable_store, vectorizable_operation, vectorizable_assignment,
vect_transform_loop): Likewise.
(vect_transform_stmt): Moved to tree-vect-transform.c.
(vect_align_data_ref, vect_create_destination_var,
vect_create_data_ref_ptr, vect_create_index_for_vector_ref,
vect_create_addr_base_for_vector_ref, vect_get_new_vect_var,
vect_get_vec_def_for_operand, vect_init_vector,
vect_finish_stmt_generation, vect_generate_tmps_on_preheader,
vect_build_loop_niters, vect_update_ivs_after_vectorizer,
vect_gen_niters_for_prolog_loop, vect_update_inits_of_dr,
vect_update_inits_of_drs, vect_do_peeling_for_alignment,
vect_do_peeling_for_loop_bound): Likewise.
* tree-vect-analyze.c: New file.
* tree-vect-transform.c: New file.
2005-02-17 Jason Merrill <jason@redhat.com>
PR mudflap/19319, c++/19317
* gimplify.c (gimplify_modify_expr_rhs) [CALL_EXPR]: Make return
slot explicit.
2005-02-17 Gerald Pfeifer <gerald@pfeifer.com>
* doc/install.texi (Specific): Update link for Darwin-specific
tool binary site.
2005-02-16 James A. Morrison <phython@gcc.gnu.org>
* fold-const.c (invert_truthvalue): <INTEGER_CST>: Call
constant_boolean_node.
2005-02-16 David Edelsohn <edelsohn@gnu.org>
PR target/19019
* config/rs6000/t-aix43 (SHLIB_MAPFILES): Add libgcc-ppc64.ver.
* config/rs6000/t-aix52 (SHLIB_MAPFILES): Same.
2005-02-16 Richard Henderson <rth@redhat.com>
PR 19920
* libgcc2.c (WORD_SIZE): Remove all definitions; replace uses
with W_TYPE_SIZE.
(HIGH_WORD_COEFF, HIGH_HALFWORD_COEFF): Remove all definitions;
replace uses with Wtype_MAXp1_F.
(L_fixunstfdi, L_fixtfdi, L_floatditf, L_fixunsxfdi, L_fixxfdi,
L_floatdixf, L_fixunsxfsi, L_fixunsdfdi, L_floatdidf, L_fixunsdfsi,
L_powidf2, L_powixf2, L_powitf2, L_muldc3, L_divdc3, L_mulxc3,
L_divxc3, L_multc3, L_divtc3): Protect with HAVE_DFMODE, HAVE_XFMODE,
and HAVE_TFMODE as appropriate.
(__fixunssfDI): Provide an implementation that doesn't need DFmode.
(__floatdisf): Likewise.
* libgcc2.h (LIBGCC2_DOUBLE_TYPE_SIZE): New.
(HAVE_DFMODE, HAVE_XFMODE, HAVE_TFMODE): New.
(Wtype_MAXp1_F): New.
(DFtype, DCtype, __fixdfdi, __floatdidf, __fixunsdfSI, __fixunsdfDI,
__powidf2, __divdc3, __muldc3): Protect with HAVE_DFMODE.
2005-02-16 Richard Earnshaw <rearnsha@arm.com>
* PR target/19162
* arm.c (arm_apply_result_size): New function.
* arm.h (APPLY_RESULT_SIZE): Define.
* arm-protos.h (arm_apply_result_size): Add prototype.
* arm.md (RO_REGNUM, FPA_F0_REGNUM, FPA_F7_REGNUM): New constants.
(movxf): New expand.
(ldmsi_postinc4_thumb, stmsi_postinc4_thumb): New patterns for Thumb.
(call_value_symbol): Remove predicate for operand 0.
(call_value_insn, sibcall_value, sibcall_value_insn): Likewise.
(untyped_call): Rework to correclty return values for any type.
(untyped_return): New expand.
* fpa.md (movxf_fpa): Simplify and use sfm/lfm when appropriate.
2005-02-16 Stan Shebs <shebs@apple.com>
* config.gcc (powerpc-*-darwin*): Use fragment for Darwin 8 or later.
* config/rs6000/t-darwin8: New, for 64-bit multilib.
2005-02-16 Eric Botcazou <ebotcazou@libertysurf.fr>
* doc/install.texi (sparc-sun-solaris2*): Document required GMP
configure settings on Solaris 7 and later.
2005-02-16 Diego Novillo <dnovillo@redhat.com>
PR tree-optimization/19865
* tree-optimize.c (init_tree_optimization_passes): Run
pass_may_alias after pass_sra.
2005-02-16 Richard Henderson <rth@redhat.com>
Stuart Hastings <stuart@apple.com>
PR debug/19521
* dbxout.c (dbxout_function_end): Take decl parameter; update callers.
Do nothing if debug info suppressed for this function.
(dbxout_begin_function): Early exit if debug info suppressed for
this function.
2005-02-16 Kazu Hirata <kazu@cs.umass.edu>
PR target/20007
* config/ip2k/ip2k.c (ip2k_reorg): Adjust calls to
find_basic_blocks.
* config/sh/sh.c (sh_output_mi_thunk): Likewise.
PR tree-optimization/19967
* builtins.c (expand_builtin_strstr, expand_builtin_strpbrk,
expand_builtin_strchr, expand_builtin_strrchr): Take a new
argument TYPE. Adjust calls to fold_builtin_XXX.
(expand_builtin, fold_builtin_1): Adjust calls to
expand_builtin_XXX.
(fold_builtin_strchr, fold_builtin_strpbrk,
fold_builtin_strstr, fold_builtin_strrchr): Convert the folded
result to a requested type TYPE.
2005-02-16 Jakub Jelinek <jakub@redhat.com>
PR middle-end/19857
* fold-const.c (fold): Don't optimize (T)(x & cst) to
(T)x & (T)cst if (T)cst overflows.
* convert.c (convert_to_integer) <case POINTER_TYPE>: Pass
TYPE_UNSIGNED (type) as type_for_size's UNSIGNEDP argument.
2005-02-15 Jeff Law <law@redhat.com>
* gcse.c (blocks_with_calls): New bitmap.
(alloc_gcse_mem): Allocate it.
(free_gcse_mem): Free it.
(clear_modifY_mem_tables): Clear it.
(record_last_mem_set_info): Set the proper bit in BLOCK_WITH_CALLS
when we encounter CALL_INSNs.
(compute_transp, case MEM): Handle blocks with calls separate
from blocks without calls. Use bitmap iterators rather than
FOR_EACH_BB.
2005-02-15 Peter O'Gorman <peter@pogma.com>
PR bootstrap/18810
* mklibgcc.in (vis_hide): Use a temporary object file, not
-o /dev/null.
2005-02-15 Andy Hutchinson <HutchinsonAndy@netscape.net>
PR target/19924
* config/avr/avr.h (MODES_TIEABLE_P): Define to 1 to allow subreg
access optimization.
2005-02-15 David Edelsohn <edelsohn@gnu.org>
Alan Modra <amodra@bigpond.net.au>
PR target/19019
* config/rs6000/darwin-ldouble.c (_xlqadd): Rename to __gcc_qadd.
(_xlqsub): Rename to __gcc_qsub.
(_xlqmul): Rename to __gcc_qmul.
(_xlqdiv): Rename to __gcc_qdiv.
Provide versioned symbol aliases with old names.
* config/rs6000/libgcc-ppc64.ver: Rename symbols.
* config/rs6000/rs6000.c (rs6000_init_libfuncs): Rename symbols.
* config/rs6000/t-aix43 (LIB2FUNCS_EXTRA): New.
* config/rs6000/t-aix52 (LIB2FUNCS_EXTRA): New.
* config/rs6000/t-newas (LIB2FUNCS_EXTRA): New.
2005-02-15 James A. Morrison <phython@gcc.gnu.org>
* fold-const.c (fold): Fold -(~A) to A + 1. Fold ~(-A) to A - 1.
Fold ~(A - 1) and ~(A + -1) to -A.
2005-02-15 James A. Morrison <phython@gcc.gnu.org>
PR pch/14940
PR target/19300
* config/host-linux.c (linux_gt_pch_use_address): Copy from
config/pa/pa-host.c:pa_gt_pch_use_address.
2005-02-15 Daniel Berlin <dberlin@dberlin.org>
* tree-vn.c (get_value_handle): Make sure that given an
is_gimple_min_invariant expression, we always return it.
2005-02-15 Kazu Hirata <kazu@cs.umass.edu>
* passes.c (rest_of_handle_gcse): Fix a comment.
2005-02-15 Jeff Law <law@redhat.com>
* gcse.c (canon_modify_mem_set_list_set): Kill unnecessary
bitmap.
(alloc_gcse_mem, free_gcse_mem): Corresponding changes.
(canon_list_insert, record_last_mem_set_info): Similarly.
(clear_modify_mem_tables): Similarly.
2005-02-15 Kazu Hirata <kazu@cs.umass.edu>
* bitmap.c, bitmap.h, lambda-code.c, tree-dfa.c, tree-dump.c,
tree-dump.h, tree-ssa-loop-manip.c, value-prof.c,
config/mips/mips.md, config/rs6000/aix.h,
config/rs6000/beos.h, config/rs6000/sysv4.h: Update copyright.
2005-02-15 Richard Henderson <rth@redhat.com>
* bb-reorder.c (find_traces_1_round): Force fallthru edge from a
call to be best_edge.
2005-02-14 Kazu Hirata <kazu@cs.umass.edu>
* basic-block.h: Adjust the prototype for find_basic_blocks.
* cfgbuild.c (find_basic_blocks): Remove unused arguments.
* passes.c (rest_of_handle_loop_optimize): Adjust the call to
find_basic_blocks.
* flow.c (recompute_reg_usage): Remove all arguments.
* passes.c (rest_of_compilation): Adjust the call to
recompute_reg_usage.
* rtl.h: Adjust the prototype for recompute_reg_usage.
2005-02-14 Daniel Berlin <dberlin@dberlin.org>
* tree-dump.c (dump_files): Update to reflect new member
of dump_file_info.
(dump_register): Add new argument.
Set glob name.
(dump_switch_p_1): Check against glob name if doglob was passed.
(dump_switch_p): Check against regular first, then glob if
we didn't have any hits on the dump name.
* tree-optimize.c (register_one_dump_file):
Pass in glob name as well.
* tree-pass.h (struct dump_file_info): Add glob
member.
2005-02-14 Joseph S. Myers <joseph@codesourcery.com>
PR preprocessor/16323
* doc/invoke.texi: Document that -Wendif-labels is on by default.
2005-02-14 David Edelsohn <edelsohn@gnu.org>
PR target/19019
* config/rs6000/rs6000.md (trunctfdf2): Change to define_expand.
(trunctfdf2_internal1): New.
(trunctfdf2_internal2): Renamed from trunctfdf2.
2005-02-14 Diego Novillo <dnovillo@redhat.com>
PR tree-optimization/19853
* tree-dfa.c (add_referenced_var): Always examine DECL_INITIAL.
2005-02-14 Kazu Hirata <kazu@cs.umass.edu>
* passes.c (rest_of_handle_loop_optimize): Remove calls to
delete_dead_jumptables and cleanup_cfg.
2005-02-14 Ulrich Weigand <uweigand@de.ibm.com>
* reload.c (find_reloads): Swap address_reloaded flags when
swapping commutative operands.
2005-02-14 Sebastian Pop <pop@cri.ensmp.fr>
* lambda-code.c (lambda_loopnest_to_gcc_loopnest, perfect_nestify):
Use standard_iv_increment_position for computing the bsi position
for create_iv.
* tree-ssa-loop-manip.c (create_iv): Add a comment on how to compute
the bsi position.
2005-02-13 Zdenek Dvorak <dvorakz@suse.cz>
PR target/17428
* cfgrtl.c (safe_insert_insn_on_edge): Avoid extending
life range of hard registers.
* value-prof.c (insn_prefetch_values_to_profile): Only
scan normal insns.
* value-prof.c (rtl_find_values_to_profile): Do not look for values to
profile in libcalls.
2005-02-13 Nathan Sidwell <nathan@codesourcery.com>
* bitmap.h (bitmap_and_compl_into): Return bool.
* bitmap.c (bitmap_and_compl_into): Return changed flag.
2005-02-13 James A. Morrison <phython@gcc.gnu.org>
PR tree-optimization/19944
* fold-const.c (fold): Re-add ABS_EXPR folding.
2005-02-13 David Edelsohn <edelsohn@gnu.org>
PR target/19019
* config/rs6000/aix.h ({TARGET,MASK}_XL_CALL): Rename to
{TARGET,MASK}_XL_COMPAT.
(SUBTARGET_SWITCHES): Rename xl-call to xl-compat. Use
MASK_XL_COMPAT.
* config/rs6000/beos.h ({TARGET,MASK}_XL_CALL): Remove.
* config/rs6000/rs6000.c (function_arg): Change TARGET_XL_CALL to
TARGET_XL_COMPAT.
(rs6000_arg_partial_bytes): Same.
(rs6000_generate_compare): Generate PARALLEL for compare if TFmode
and XL compatibility enabled.
* config/rs6000/rs6000.h (TARGET_XL_CALL): Rename to TARGET_XL_COMPAT.
* config/rs6000/rs6000.md (cmptf_internal1): Add !TARGET_XL_COMPAT
test to final condition.
(cmptf_internal2): New.
* doc/invoke.texi (RS/6000 Subtarget Options): Change xl-call to
xl-compat. Add TFmode information to description.
2005-02-13 Kazu Hirata <kazu@cs.umass.edu>
* flags.h, read-rtl.c, tree-ssa-live.h: Update copyright.
2005-02-13 Jason Merrill <jason@redhat.com>
PR c++/16405
* fold-const.c (fold_indirect_ref_1): Split out from...
(build_fold_indirect_ref): Here.
(fold_indirect_ref): New fn.
* tree.h: Declare it.
* gimplify.c (gimplify_compound_lval): Call fold_indirect_ref.
(gimplify_modify_expr_rhs): Likewise.
(gimplify_expr): Likewise.
2005-02-13 James A. Morrison <phython@gcc.gnu.org>
PR tree-optimization/14303
PR tree-optimization/15784
* fold-const.c (fold): Fold ABS_EXPR<x> >= 0 to true, when possible.
Fold ABS_EXPR<x> < 0 to false. Fold ABS_EXPR<x> == 0 to x == 0 and
ABS_EXPR<x> != 0 to x != 0.
2005-02-12 Kazu Hirata <kazu@cs.umass.edu>
* c-tree.h, combine.c, expmed.c, flow.c, libgcc2.c,
simplify-rtx.c, tree-ssa-live.h: Fix comment typos. Follow
spelling conventions.
* passes.c (rest_of_handle_gcse): Don't run cse_main and
delete_trivially_dead_insns too many times.
* passes.c (rest_of_handle_gcse): Remove dead assignments to
tem and tem2.
2005-02-12 Ira Rosen <irar@il.ibm.com>
* tree-vectorizer.c (vect_get_base_and_offset): Remove.
(vect_is_simple_iv_evolution): Remove redundant parameter
and step check.
(vect_analyze_scalar_cycles): Call vect_is_simple_iv_evolution
without last parameter.
(vect_analyze_pointer_ref_access): Get access_fn as parameter.
Return pointer step. Call vect_is_simple_iv_evolution without
last parameter. Check only that the step is multiple of size
type. Remove stmt_vinfo updates.
(vect_get_memtag_and_dr): Remove.
(vect_get_memtag): New function.
(vect_address_analysis): New function.
(vect_object_analysis): New function.
(vect_analyze_data_refs): Call vect_object_analysis and
vect_get_memtag. Update stmt_vinfo fields.
2005-02-12 Ira Rosen <irar@il.ibm.com>
* tree-data-ref.c (array_base_name_differ_p): Check that the bases
exist and are objects. Remove checks for pointer.
* tree-vectorizer.c (vect_create_addr_base_for_vector_ref): Use
STMT_VINFO_VECT_DR_BASE_ADDRESS instead of DR_BASE_NAME.
(vect_create_data_ref_ptr): Likewise.
(vect_base_addr_differ_p): New function.
(vect_analyze_data_ref_dependence): Call vect_base_addr_differ_p.
(vect_analyze_pointer_ref_access): Add output parameter - ptr_init.
Don't set the DR_BASE_NAME field of data-ref.
(vect_get_memtag_and_dr): Use ptr_init instead of DR_BASE_NAME.
2005-02-12 Uros Bizjak <uros@kss-loka.si>
* optabs.h (enum optab_index): Add new OTI_ldexp.
(ldexp_optab): Define corresponding macro.
* optabs.c (init_optabs): Initialize ldexp_optab.
* genopinit.c (optabs): Implement ldexp_optab using ldexp?f3
patterns.
* builtins.c (expand_builtin_mathfn_2): Handle BUILT_IN_LDEXP{,F,L}
using ldexp_optab.
(expand_builtin): Expand BUILT_IN_LDEXP{,F,L} using
expand_builtin_mathfn_2 if flag_unsafe_math_optimizations is set.
* config/i386/i386.md (ldexpsf3, ldexpdf3, ldexpxf3): New expanders
to implement ldexpf, ldexp and ldexpl built-ins as inline x87
intrinsics.
2005-02-12 Ira Rosen <irar@il.ibm.com>
* tree-vectorizer.h (struct _stmt_vec_info): Rename a field: base
to base_address.
* tree-vectorizer.c (new_stmt_vec_info): Rename the above field of
stmt_vec_info.
(vect_get_base_and_offset): Always return an address.
(vect_create_addr_base_for_vector_ref): Remove treatment for
different data reference types.
(vect_compute_data_ref_alignment): Rename base to base_address in
stmt_vec_info. Get the object in order to force its alignment.
(vect_get_memtag_and_dr): Rename base to base_address in
stmt_vec_info. Extract the object for memtag analysis.
2005-02-12 Hans-Peter Nilsson <hp@axis.com>
PR regression/19898.
* config/cris/cris.c (cris_notice_update_cc): When testing if insn
changes cc_status, use apply modified_in_p to part of cc_status
and insn, not cris_reg_overlap_mentioned_p on SET_DEST of insn
body.
2005-02-11 Richard Henderson <rth@redhat.com>
* tree-complex.c (expand_complex_libcall): New.
(expand_complex_multiplication): Use it for c99 compliance.
(expand_complex_division): Likewise.
* fold-const.c (fold_complex_add, fold_complex_mult): New.
(fold): Call them.
* builtins.c (built_in_names): Remove const.
* tree.c (build_common_builtin_nodes): Build complex arithmetic
builtins.
* tree.h (BUILT_IN_COMPLEX_MUL_MIN, BUILT_IN_COMPLEX_MUL_MAX): New.
(BUILT_IN_COMPLEX_DIV_MIN, BUILT_IN_COMPLEX_DIV_MAX): New.
(built_in_names): Remove const.
* c-common.c (c_common_type_for_mode): Handle complex modes.
* flags.h, toplev.c (flag_complex_method): Rename from
flag_complex_divide_method.
* libgcc2.c (__divsc3, __divdc3, __divxc3, __divtc3,
__mulsc3, __muldc3, __mulxc3, __multc3): New.
* libgcc2.h: Declare them.
* libgcc-std.ver: Export them.
* mklibgcc.in (lib2funcs): Build them.
2005-02-11 Steven Bosscher <stevenb@suse.de>
PR tree-optimization/19876
Partially revert my change from 2005-01-14
* tree-ssa-pre.c (compute_antic_aux): Make recursive once again...
(compute_antic): ...and remove the loop here.
2005-02-11 Jakub Jelinek <jakub@redhat.com>
PR middle-end/19858
* fold-const.c (make_bit_field_ref): If bitpos == 0 and bitsize
is number of inner's bits, avoid creating a BIT_FIELD_REF.
* config/rs6000/sysv4.h (ENDFILE_LINUX_SPEC): Use crtendS.o instead of
crtend.o if -pie. Use %{x:a;:b} spec syntax.
2005-02-11 Daniel Jacobowitz <dan@codesourcery.com>
* config/mips/linux-unwind.h (mips_fallback_frame_state): Adjust
offsets for the big-endian 32-bit case.
2005-02-11 Joseph S. Myers <joseph@codesourcery.com>
* config/ia64/hpux.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.
2005-02-11 Dale Johannesen <dalej@apple.com>
* cselib.c (cselib_process_insn): Clear out regs where
HARD_REGNO_CALL_PART_CLOBBERED is true at a call.
* reload.c (find_equiv_reg): Ditto.
2005-02-11 Ian Lance Taylor <ian@airs.com>
* read-rtl.c (read_rtx_1): Give fatal error if we see a vector
with no elements.
* tree.c (build_function_type_list): Work correctly if there are
no arguments.
2005-02-11 Ulrich Weigand <uweigand@de.ibm.com>
* config/s390/s390.md ("*cmpdi_cct", "*cmpsi_cct", "*cmpdi_ccs",
"*cmpsi_ccs"): Use %h instead of %c to print immediate operand.
("*zero_extendhisi2_64", "*zero_extendhisi2_31"): Choose based on
TARGET_ZARCH instead of TARGET_64BIT.
2005-02-11 Ralf Corsepius <ralf.corsepius@rtems.org>
* config/rs6000/t-rtems:
(MULTILIB_OPTIONS): Remove mcpu=602.
(MUTLILIB_DIRNAMES): Remove m602.
(MULTILIB_MATCHES): Add ${MULTILIB_MATCHES_FLOAT}.
Let mcpu=602 match mcpu=603.
(MULTILIB_NEW_EXCEPTIONS_ONLY): Add mcpu=601, mcpu=602, mcpu=m603.
2005-02-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
* pa/linux-unwind.h (pa32_fallback_frame_state): Handle misaligned
signal trampolines.
2005-02-10 David Daney <ddaney@avtrex.com>
* config/alpha/linux-unwind.h: Add exception clause to copyright.
* config/i386/linux-unwind.h: Likewise.
* config/ia64/linux-unwind.h: Likewise.
* config/mips/linux-unwind.h: Likewise.
* config/pa/linux-unwind.h: Likewise.
* config/rs6000/linux-unwind.h: Likewise.
* config/s390/linux-unwind.h: Likewise.
* config/sh/linux-unwind.h: Likewise.
* config/sparc/linux-unwind.h: Likewise.
2005-02-10 Steven Bosscher <stevenb@suse.de>
PR tree-optimization/17549
* tree-outof-ssa.c (find_replaceable_in_bb): Do not allow
TER to replace a DEF with its expression if the DEF and the
rhs of the expression we replace into have the same root
variable.
2005-02-10 Richard Sandiford <rsandifo@redhat.com>
* config/mips/mips.md: Fix the placement of the match_scratch in the
lea64 peephole2.
2005-02-10 Kazu Hirata <kazu@cs.umass.edu>
* cse.c, tree-ssa-loop-ivopts.c, config/rs6000/linux-unwind.h:
Fix comment typos.
2005-02-10 Zdenek Dvorak <dvorakz@suse.cz>
* tree-ssa-loop-ivopts.c (determine_base_object): Ignore casts.
(strip_offset): Handle addresses.
(add_address_candidates): Use strip_offset.
(difference_cost): Reflect strip_offset change.
(force_var_cost, difference_cost): Strip nops.
2005-02-10 Kazu Hirata <kazu@cs.umass.edu>
* df.h (DF_REF_MODE_CHANGE, DF_REF_MEM_OK): Remove.
* builtins.def, haifa-sched.c, libgcc2.c, libgcc2.h,
tree-ssa-loop-ivcanon.c, tree-ssa-loop-niter.c,
config/cris/cris-protos.h, config/cris/cris.c: Update
copyright.
2005-02-10 Jeff Law <law@redhat.com>
* tree-ssa-dom.c (thread_across_edge): Use xmalloc, not xcalloc.
(lookup_avail_expr): Similarly.
2005-02-10 Richard Guenther <rguenth@gcc.gnu.org>
* builtins.c (fold_builtin_powi): New function.
(fold_builtin_1): Call it.
2005-02-10 Steven Bosscher <stevenb@suse.de>
PR documentation/19309
* doc/cpp.texi: The __GNUC__ and related predefined macros
are also defined for the "standalone" cpp.
Some non-GCC compilers may also define __GNUC__.
2005-02-10 Jakub Jelinek <jakub@redhat.com>
PR c/19342
* c-typeck.c (common_type): New routine. Old common_type renamed
to...
(c_common_type): ...this.
(build_conditional_expr, build_binary_op): Use c_common_type instead
of common_type.
2005-02-10 Steven Bosscher <stevenb@suse.de>
* doc/md.texi: Replace @samp{length} with @code{length}.
2005-02-09 Zdenek Dvorak <dvorakz@suse.cz>
PR tree-optimization/18687
* tree-flow.h (find_loop_niter): Declare.
* tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables):
Try using scev even for loops with more than one exit.
* tree-ssa-loop-ivopts.c (struct loop_data): Removed niter field.
(struct ivopts_data): Added niters field.
(struct nfe_cache_elt): New.
(nfe_hash, nfe_eq, niter_for_exit, niter_for_single_dom_exit): New
functions.
(tree_ssa_iv_optimize_init): Initialize niters cache.
(determine_number_of_iterations): Removed.
(find_induction_variables): Do not call determine_number_of_iterations.
Access niters for single exit through niter_for_single_dom_exit.
(add_iv_outer_candidates): Access niters for single exit through
niter_for_single_dom_exit.
(may_eliminate_iv): Take data argument. Use niter_for_exit. Do not use
number_of_iterations_cond.
(iv_period): New function.
(determine_use_iv_cost_condition): Pass data to may_eliminate_iv.
(may_replace_final_value): Take data argument. Use
niter_for_single_dom_exit.
(determine_use_iv_cost_outer): Pass data to may_replace_final_value.
(rewrite_use_compare): Pass data to may_eliminate_iv.
(rewrite_use_outer): Pass data to may_replace_final_value.
(free_loop_data): Clean up the niters cache.
(tree_ssa_iv_optimize_finalize): Free the niters cache.
(tree_ssa_iv_optimize_loop): Do not call loop_commit_inserts.
* tree-ssa-loop-niter.c (find_loop_niter): New function.
(find_loop_niter_by_eval): Use tree_int_cst_lt.
(num_ending_zeros): Moved to tree.c.
* tree.h (num_ending_zeros): Declare.
* tree.c (num_ending_zeros): Moved from tree.c.
2005-02-09 Richard Henderson <rth@redhat.com>
* builtins.c (DEF_BUILTIN): Add COND argument.
* tree.h (DEF_BUILTIN): Likewise.
* builtins.def (DEF_GCC_BUILTIN, DEF_LIB_BUILTIN, DEF_EXT_LIB_BUILTIN,
DEF_C94_BUILTIN, DEF_C99_BUILTIN, DEF_C99_C90RES_BUILTIN): Update to
match.
(DEF_BUILTIN_STUB): New.
(BUILT_IN_STACK_SAVE, BUILT_IN_STACK_RESTORE, BUILT_IN_INIT_TRAMPOLINE,
BUILT_IN_ADJUST_TRAMPOLINE, BUILT_IN_NONLOCAL_GOTO,
BUILT_IN_PROFILE_FUNC_ENTER, BUILT_IN_PROFILE_FUNC_EXIT): Use it.
* c-common.c (DEF_BUILTIN): Add COND argument.
* tree.c (local_define_builtin): New.
(build_common_builtin_nodes): New.
2005-02-09 Roger Sayle <roger@eyesopen.com>
* fold-const.c (fold_strip_sign_ops): New function to simplify a
floating point expression ignoring the sign of the result.
(fold) <ABS_EXPR>: Use it to simplify fabs(x).
(fold) <MULT_EXPR>: Use it to simplify x*x.
* tree.h (fold_strip_sign_ops): Prototype here.
* builtins.c (fold_builtin_copysign): Take an additional FNDECL
argument. Use fold_strip_sign_ops to simplify the first argument.
(fold_builtin_pow): Use fold_strip_sign_ops to simplify the
first argument when the second argument is an even integer
constant, but only with -funsafe_math_optimizations.
(fold_builtin_1): Update call to fold_builtin_copysign.
2005-02-09 Ian Lance Taylor <ian@airs.com>
PR middle-end/19583
* gimple-low.c (try_catch_may_fallthru): In EH_FILTER_EXPR case,
just check whether EH_FILTER_FAILURE falls through.
2005-02-09 Andreas Krebbel <krebbel1@de.ibm.com>
* haifa-sched.c (schedule_block): Make queued sched group
insns return to ready list in the next turn.
2005-02-09 Richard Guenther <rguenth@gcc.gnu.org>
PR middle-end/19402
* builtins.def: New __builtin_powi[lf].
* builtins.c (mathfn_built_in): Handle BUILT_IN_POWI.
(expand_builtin_powi): New function.
(expand_builtin): Dispatch to expand_builtin_powi.
* libgcc2.h: Add prototypes for __builtin_powi[lf].
* libgcc2.c: Add __builtin_powi[lf] implementation.
* mklibgcc.in: Add __builtin_powi[lf] to lib2funcs.
* optabs.h: Add powi_optab.
* optabs.c (init_optabs): Initialize powi_optab.
* doc/extend.texi: Document __builtin_powi[lf].
2005-02-09 Dorit Naishlos <dorit@il.ibm.com>
* tree-vectorizer.c (vect_set_dump_settings): Check that dump_file
exists.
2005-02-09 Richard Guenther <rguenth@gcc.gnu.org>
PR middle-end/19854
* fold-const.c (try_move_mult_to_index): Remove redundant
type argument. Create ADDR_EXPR with correct type.
(fold): Update callers of try_move_mult_to_index. Convert
result to the appropriate type.
2005-02-09 Roger Sayle <roger@eyesopen.com>
PR target/19597
* config/avr/avr.c (default_rtx_costs): Delete.
(avr_operand_rtx_cost): New function.
(avr_rtx_costs): Completely rewrite.
2005-02-08 Hans-Peter Nilsson <hp@axis.com>
PR target/19806
* config/cris/cris.c (in_code): New variable.
(cris_output_addr_const): Now a static function, a wrapper for
output_addr_const.
(cris_asm_output_symbol_ref): New function, broken out SYMBOL_REF
case from old cris_output_addr_const.
(cris_asm_output_label_ref): Similar for LABEL_REF.
(cris_output_addr_const_extra): Similar for UNSPEC.
* config/cris/cris.h (OUTPUT_ADDR_CONST_EXTRA)
(ASM_OUTPUT_SYMBOL_REF, ASM_OUTPUT_LABEL_REF): Define.
* config/cris/cris-protos.h (cris_output_addr_const): Remove
declaration.
(cris_asm_output_symbol_ref, cris_output_addr_const_extra)
(cris_asm_output_label_ref): Declare.
2005-02-08 Paolo Bonzini <bonzini@gnu.org>
PR preprocessor/19801
* doc/cppinternals.texi (Conventions, Lexer, Files): Adjust
filenames that changed when libcpp was moved to the toplevel.
2005-02-07 Roger Sayle <roger@eyesopen.com>
* simplify-rtx.c (simplify_relational_operation_1): Avoid creating
zero extensions of BImode operands. Call lowpart_subreg instead
of gen_lowpart_common and gen_lowpart_SUBREG.
2005-02-07 Nathanael Nerode <neroden@gcc.gnu.org>
PR ada/19489
* libada-mk.in: Use cc_for_cross_gnattools, not cc_set_by_configure.
* configure.ac: Set cc_for_cross_gnattools.
* configure: Regenerate.
2005-02-08 Alan Modra <amodra@bigpond.net.au>
PR target/19803
* predict.c (PROB_VERY_UNLIKELY): Use 1% instead of 10%.
2005-02-07 Eric Botcazou <ebotcazou@libertysurf.fr>
PR debug/19327
* dbxout.c (dbxout_symbol) <FUNCTION_DECL>: Skip inline instance
of nested functions.
2005-02-07 Jonathan Wakely <redi@gcc.gnu.org>
* doc/extend.texi: Document deprecated extensions allowing
static floating-point members to have initializers and allowing
floating-point literals in integral constant expressions.
2005-02-07 Kazu Hirata <kazu@cs.umass.edu>
* cfgcleanup.c, df.h, diagnostic.c, rtl.c, tree-vectorizer.h,
config/darwin7.h, config/mips/mips.c,
config/rs6000/altivec.md, config/rs6000/darwin-tramp.asm:
Update copyright.
* cse.c: Update comments.
2005-02-07 Richard Guenther <rguenth@gcc.gnu.org>
PR middle-end/19775
* builtins.c (fold_builtin_sqrt): Transform
sqrt(pow(x,y)) to pow(fabs(x),y*0.5), not
pow(x,y*0.5).
2005-02-07 Leehod Baruch <leehod@il.ibm.com>
Dorit Naishlos <dorit@il.ibm.com>
* doc/invoke.texi (ftree-vectorizer-verbose): New.
* opts.c (OPT_ftree_vectorizer_verbose_): New case for switch.
* common.opt (ftree-vectorizer-verbose): New Flag for the vectorizer
was added.
* tree.h (vect_set_verbosity_level): New extern function declaration
added.
* tree-vectorizer.h (verbosity_levels): New enum type.
* tree-vectorizer.c (vect_debug_stats): Function removed.
(vect_debug_details): Likewise.
(vect_verbosity_level): Global variable was defined and initialized.
(vect_dump): Global variable definition.
(vect_print_dump_info): New function.
(vect_set_dump_settings): New function.
(vect_set_verbosity_level): New function.
(vectorize_loops): Add call to vect_set_dump_settings.
(slpeel_make_loop_iterate_ntimes): Dump condition was changed.
(slpeel_tree_duplicate_loop_to_edge_cfg): Likewise.
(slpeel_tree_peel_loop_to_edge): Likewise.
(vect_analyze_offset_expr): Call to vect_print_dump_info with
appropriate verbosity level instead of call to vect_debug_details
or vect_debug_stats.
(vect_get_base_and_offset):
(vect_create_addr_base_for_vector_ref):
(get_vectype_for_scalar_type):
(vect_create_data_ref_ptr):
(vect_init_vector):
(vect_get_vec_def_for_operand):
(vect_finish_stmt_generation):
(vectorizable_assignment):
(vectorizable_operation):
(vectorizable_store):
(vectorizable_load):
(vect_transform_stmt):
(vect_update_ivs_after_vectorizer):
(vect_do_peeling_for_loop_bound):
(vect_update_inits_of_drs):
(vect_do_peeling_for_alignment):
(vect_transform_loop):
(vect_is_simple_use):
(vect_analyze_operations):
(vect_is_simple_iv_evolution):
(vect_analyze_scalar_cycles):
(vect_analyze_data_ref_dependence):
(vect_analyze_data_ref_dependences):
(vect_compute_data_ref_alignment):
(vect_enhance_data_refs_alignment):
(vect_analyze_data_refs_alignment):
(vect_analyze_data_ref_access):
(vect_analyze_data_ref_accesses):
(vect_analyze_pointer_ref_access):
(vect_get_memtag_and_dr):
(vect_analyze_data_refs):
(vect_mark_relevant):
(vect_stmt_relevant_p):
(vect_mark_stmts_to_be_vectorized):
(vect_can_advance_ivs_p):
(vect_get_loop_niters):
(vect_analyze_loop_form):
(vect_analyze_loop):
(vectorize_loops): Likewise.
(vect_do_peeling_for_loop_bound): Dump format slightly changed.
(vect_update_inits_of_drs):
(vect_do_peeling_for_alignment):
(vect_transform_loop):
(vect_analyze_operations):
(vect_analyze_scalar_cycles):
(vect_analyze_data_ref_dependences):
(vect_analyze_data_refs_alignment):
(vect_analyze_data_ref_accesses):
(vect_analyze_data_refs):
(vect_mark_stmts_to_be_vectorized):
(vect_get_loop_niters):
(vect_analyze_loop_form):
(vect_analyze_loop): Likewise.
(vect_mark_stmts_to_be_vectorized): Add call to print_generic_expr.
2005-02-07 Richard Sandiford <rsandifo@redhat.com>
PR bootstrap/19796
Revert:
2005-01-26 Richard Sandiford <rsandifo@redhat.com>
* config/mips/iris6.h (ENDFILE_SPEC): Don't link in irix-csr.o if
either -ffast-math or -funsafe-math-optimizations is in use.
2005-01-24 Richard Sandiford <rsandifo@redhat.com>
* config/mips/irix-csr.c: New file.
* config/mips/t-iris6 (irix-csr.o): New rule to build it.
(EXTRA_MULTILIB_PARTS): Add irix-csr.o.
* config/mips/iris6.h (ENDFILE_SPEC): Include it in n32 and n64
executables.
2005-02-07 Alexandre Oliva <aoliva@redhat.com>
* config/mn10300/linux.h (LIB_SPEC, STARTFILE_SPEC): Remove
redundant, incorrect definitions.
* config/frv/frv.md ("tls_indirect_call"): Turn into libcall-like
expand.
("*tls_indirect_call"): New, reference hard regs directly.
* config/frv/frv.c (gen_inlined_tls_plt): Adjust.
2005-02-07 Ralf Corsepius <ralf.corsepius@rtems.org>
* config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC):
Let !-mhard-float !-msoft-float imply -mfpu=softfpa.
2005-02-06 Roger Sayle <roger@eyesopen.com>
PR rtl-optimization/19800
* simplify_rtx.c (simplify_relational_operation_1): Explicitly
call gen_lowpart_common and gen_lowpart_SUBREG instead of calling
gen_lowpart.
2005-02-07 Ralf Corsepius <ralf.corsepius@rtems.org>
* config/m68k/t-rtems (MULTILIB_MATCHES): Let m528x match m5200.
2005-02-07 Joseph S. Myers <joseph@codesourcery.com>
PR other/17135
* doc/invoke.texi: Correct documentation of -freorder-functions.
2005-02-06 Joseph S. Myers <joseph@codesourcery.com>
PR other/14402
* doc/invoke.texi: Don't mention gccbug.
2005-02-06 Roger Sayle <roger@eyesopen.com>
Andrew Pinski <pinskia@physics.uc.edu>
Paolo Bonzini <paolo.bonzini@lu.unisi.ch>
* simplify-rtx.c (simplify_relational_operation_1): Simplify
(ne:SI (zero_extract:SI FOO (const_int 1) BAR) (const_int 0))
into just (zero_extract:SI FOO (const_int 1) BAR).
2005-02-06 Joseph S. Myers <joseph@codesourcery.com>
* doc/cpp.texi: Include gcc-common.texi. Don't define gcctabopt
macro locally. Don't give last revision date. Use GCC version
number from gcc-common.texi.
* doc/cppinternals.texi: Include gcc-common.texi. Don't give last
revision date. Use GCC version number from gcc-common.texi.
Describe being a library as current state rather than as 3.x
history.
* doc/gcc.texi: Remove last update date.
* doc/gccint.texi: Likewise. Update copyright dates.
* doc/install.texi: Update copyright dates.
2005-02-06 Joseph S. Myers <joseph@codesourcery.com>
PR other/7549
* doc/invoke.texi: Mention for each option included in -Wall that
it is included in -Wall.
* doc/gcc.texi: Update copyright and last modification date.
2005-02-06 Zdenek Dvorak <dvorakz@suse.cz>
* tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Do not add
unnecessary cast to original induction variable increments.
2005-02-06 Zdenek Dvorak <dvorakz@suse.cz>
PR tree-optimization/18219
* tree-ssa-loop-ivopts.c (get_computation_at): Produce computations
in distributed form.
2005-02-06 Richard Sandiford <rsandifo@redhat.com>
* expmed.c (store_bit_field): Make the SUBREG code adjust bitnum.
Set bitpos and offset later in the function. Do nothing if the
target is a register and if the bitfield lies completely outside
that register.
(extract_bit_field): Make the same SUBREG, bitpos and offset changes
here. Return an uninitialised register if the source value is stored
in a register and the bitfield lies completely outside that register.
2005-02-06 Steven Bosscher <stevenb@suse.de>
* df.c (df_insn_refs_record): Use XEXP to get the operand of a USE,
not SET_DEST.
2005-02-06 Marcin Dalecki <martin@dalecki.de>
* diagnostic.c (default_diagnostic_finalizer): Fix use of attribute.
2005-02-06 Geoffrey Keating <geoffk@apple.com>
* config.gcc (*-*-darwin*): Separate darwin7 and darwin8 configs.
* config/darwin8.h: New.
* config/darwin7.h: Update comment.
2005-02-03 Leehod Baruch <leehod@il.ibm.com>
Dorit Naishlos <dorit@il.ibm.com>
* tree-vectorizer.h (LOC): New type.
(UNKNOWN_LOC, EXPR_LOC, LOC_FILE, LOC_LINE): New macros.
(loop_line_number): New field in struct _loop_vec_info.
(LOOP_VINFO_LOC, LOOP_LOC): New macros.
* tree-vectorizer.c (input.h): Included.
(find_loop_location): New function.
(vect_debug_stats): Argument changed from loop to LOC. Computation of
loop line number removed.
(vect_debug_details): Likewise.
(new_loop_vec_info): Initialize new field LOOP_VINFO_LOC.
(slpeel_make_loop_iterate_ntimes): Call find_loop_location. Argument in
call to vect_debug_details/stats changed from loop to loop_loc.
(slpeel_tree_duplicate_loop_to_edge_cfg): Likewise.
(slpeel_tree_peel_loop_to_edge): Likewise.
(vect_analyze_offset_expr): Argument in call to vect_debug_details/stats
changed from NULL to UNKNOWN_LOC.
(vect_get_base_and_offset):
(vect_create_addr_base_for_vector_ref):
(get_vectype_for_scalar_type):
(vect_create_data_ref_ptr):
(vect_init_vector):
(vect_get_vec_def_for_operand):
(vect_finish_stmt_generation):
(vectorizable_assignment):
(vectorizable_operation):
(vectorizable_store):
(vectorizable_load):
(vect_transform_stmt):
(vect_update_ivs_after_vectorizer):
(vect_do_peeling_for_loop_bound):
(vect_do_peeling_for_alignment):
(vect_transform_loop):
(vect_is_simple_use):
(vect_analyze_operations):
(vect_is_simple_iv_evolution):
(vect_analyze_scalar_cycles):
(vect_analyze_data_ref_dependences):
(vect_compute_data_ref_alignment):
(vect_enhance_data_refs_alignment):
(vect_analyze_data_ref_access):
(vect_analyze_data_ref_accesses):
(vect_analyze_pointer_ref_access):
(vect_get_memtag_and_dr):
(vect_analyze_data_refs):
(vect_mark_relevant):
(vect_stmt_relevant_p):
(vect_mark_stmts_to_be_vectorized):
(vect_can_advance_ivs_p):
(vect_get_loop_niters):
(vect_analyze_loop):
(vectorize_loops): Likewise.
(vectorizable_load): Argument in call to vect_debug_details/stats
changed from loop to LOOP_LOC (loop_vinfo).
(vect_transform_loop):
(vect_analyze_operations):
(vect_analyze_scalar_cycles):
(vect_analyze_data_ref_dependence):
(vect_enhance_data_refs_alignment):
(vect_analyze_data_ref_accesses):
(vect_analyze_pointer_ref_access):
(vect_analyze_data_refs):
(vect_analyze_loop): Likewise.
(vect_analyze_loop_form): Argument in call to vect_debug_details/stats
changed from loop to loop_loc.
(vect_enhance_data_refs_alignment): Removed unused variable loop.
2005-02-03 Leehod Baruch <leehod@il.ibm.com>
Dorit Naishlos <dorit@il.ibm.com>
* tree-vectorizer.c (vect_analyze_data_ref_dependence): Function
declaration added.
(vect_analyze_data_ref_dependences): Likewise.
(vect_is_simple_use): Argument changed from loop structure to
loop_vect_info structure.
(vect_can_advance_ivs_p): Likewise.
(vect_create_index_for_vector_ref): Likewise.
(vect_update_ivs_after_vectorizer): Likewise.
(new_stmt_vec_info): Likewise.
(new_loop_vec_info): Second argument in call to new_stmt_vec_info was
changed from loop to loop_vinfo.
(vect_create_data_ref_ptr): First argument in call to
vect_create_index_for_vector_ref was changed from loop to loop_vinfo.
(vectorizable_assignment): Second argument in call to vect_is_simple_use
was changed from loop to loop_vinfo.
(vectorizable_operation): Likewise.
(vectorizable_store): Likewise.
(vect_mark_stmts_to_be_vectorized): Likewise.
(vect_do_peeling_for_loop_bound): First argument in call to
vect_update_ivs_after_vectorizer was changed from loop to loop_vinfo.
(vect_analyze_operations): Argument in call to vect_can_advance_ivs_p
was changed from loop to loop_vinfo.
(vect_analyze_data_ref_dependences): Third argument in call to
vect_analyze_data_ref_dependence was changed from loop to loop_vinfo.
(vect_create_index_for_vector_ref): Get the loop from loop_vinfo.
(vect_create_data_ref_ptr): Likewise.
(vect_init_vector): Likewise.
(vect_get_vec_def_for_operand): Likewise.
(vectorizable_assignment): Likewise.
(vectorizable_operation): Likewise.
(vectorizable_store): Likewise.
(vectorizable_load): Likewise.
(vect_update_ivs_after_vectorizer): Likewise.
(vect_is_simple_use): Likewise.
(vect_analyze_data_ref_dependence): Likewise.
(vect_analyze_pointer_ref_access): Likewise.
(vect_can_advance_ivs_p): Likewise.
* tree-vectorizer.h: (_loop_vec_info): Definition and macros moved
before _stmt_vec_info.
(_stmt_vec_info): Loop field replaced by loop_vec_info.
(STMT_VINFO_LOOP): Replaced with STMT_VINFO_LOOP_VINFO.
(new_stmt_vec_info): Argument changed from loop structure to
loop_vect_info structure
(vect_analyze_data_ref_dependences): Unnecessary line was removed.
(vect_analyze_offset_expr): Avoid 80 columns overflow.
(vect_create_addr_base_for_vector_ref): Likewise.
(vect_analyze_pointer_ref_access): Likewise.
2005-02-03 Andrew Pinski <pinskia@physics.uc.edu>
PR tree-opt/19768
* tree-ssa-dse.c (fix_phi_uses): Update the occurs in abnormal
phi flag if the phi is abnormal.
2005-02-03 Andrew Pinski <pinskia@physics.uc.edu>
PR tree-opt/19736
* tree-ssa.c (replace_immediate_uses): Update the immediate_uses
information for the new statement.
2005-02-03 Joseph S. Myers <joseph@codesourcery.com>
PR driver/19117
* gcc.c (main): Include the target in -v output.
2005-02-03 Alexandre Oliva <aoliva@redhat.com>
* combine.c (simplify_comparison, case SIGN_EXTEND, ZERO_EXTEND):
Do not drop the extend if we'd have to add a paradoxical subreg
later. Include optabs.h and insn-codes.h.
* Makefile.in (combine.o): Depend on $(OPTABS_H).
2005-02-02 Roger Sayle <roger@eyesopen.com>
PR middle-end/19405
* real.h (REAL_MODE_FORMAT_COMPOSITE_P): New macro.
* fold-const.c (const_binop): Avoid constant folding floating
point operations in modes that use composite representations.
* simplify-rtx.c (simplify_binary_operation): Likewise.
2005-02-02 Geoffrey Keating <geoffk@apple.com>
* config/rs6000/altivec.md (altivec_dst): Make the first operand
a REG, not a MEM.
(altivec_dstt): Likewise.
(altivec_dstst): Likewise.
(altivec_dststt): Likewise.
* config/rs6000/rs6000.c (altivec_expand_dst_builtin): Adjust creation
of first operand.
2005-02-03 Dorit Naishlos <dorit@il.ibm.com>
* tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Copy
EXPR_LOCUS from orig_cond to the new cond_stmt.
(vect_finish_stmt_generation): Copy EXPR_LOCUS from stmt to
the new vec_stmt.
2005-02-03 Dorit Naishlos <dorit@il.ibm.com>
* tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Call
standard_iv_increment_position. Remove call to bsi_next
(no need to bump the iterator anymore).
(vect_create_index_for_vector_ref): Call
standard_iv_increment_position. Remove second function argument.
(vect_finish_stmt_generation): Remove call to bsi_next
(no need to bump the iterator anymore).
(vect_create_data_ref_ptr): Remove second argument (bsi) in call
to vect_create_index_for_vector_ref.
2005-02-03 Dorit Naishlos <dorit@il.ibm.com>
* tree-vectorizer.c (vect_mark_stmts_to_be_vectorized): Check if
phis are used out of the loop.
2005-02-03 Joseph S. Myers <joseph@codesourcery.com>
PR c/17807
* c-decl.c (undef_nested_function): New variable.
(pop_scope): Diagnose undefined nested functions.
(finish_function): Don't attempt cgraph processing or genericizing
if current top-level function contained an undefined nested
function. Reset undef_nested_function at the end of a top-level
function.
2005-02-02 Zdenek Dvorak <dvorakz@suse.cz>
* tree.c (build_int_cst_type): Take sign of the value into account
when deciding whether sign extend the value.
2005-02-02 Joseph S. Myers <joseph@codesourcery.com>
PR c/18502
* gcc.c (cpp_unique_options): Remove %{trigraphs}.
(cpp_options, cc1_options): Change %{std*&ansi} to
%{std*&ansi&trigraphs}.
2005-02-02 Kazu Hirata <kazu@cs.umass.edu>
* cse.c: Update comments.
2005-02-02 Aldy Hernandez <aldyh@redhat.com>
* config/rs6000/rs6000.c (rs6000_spe_function_arg): Multi-reg
arguments go on the stack. Do not put complex doubles in odd/even
pairs.
2005-02-02 Steven Bosscher <stevenb@suse.de>
* doc/invoke.texi: Update the options enabled at -O1, -O2,
and -O3. Update the documentation for -fgcse-sm, -fgcse-las,
-ftree-pre, and -fthread-jumps.
2005-02-02 Richard Sandiford <rsandifo@redhat.com>
PR tree-optimization/19578
* tree-flow.h (modified_noreturn_calls): Declare.
(noreturn_call_p): Declare.
* tree-flow-inline.h (noreturn_call_p): New function.
(modify_stmt): Add modified noreturn calls to modified_noreturn_calls.
* tree-cfg.c (modified_noreturn_calls): New variable.
(cleanup_control_flow): Use noreturn_call_p. Split basic blocks
that contain a mid-block noreturn call.
* tree-ssa.c (delete_tree_ssa): Clear modified_noreturn_calls.
2005-02-02 Kazu Hirata <kazu@cs.umass.edu>
* df.c (df_def_record_1, df_uses_record): Don't use
DF_FOR_REGALLOC.
* df.h (DF_FOR_REGALLOC): Remove.
2005-02-02 Joseph S. Myers <joseph@codesourcery.com>
PR c/19435
* c-typeck.c (really_start_incremental_init): Reset
constructor_max_index for arrays of incomplete type.
2005-02-02 Jeff Law <law@redhat.com>
* gcse.c (struct reg_set): Store the block index where the register
was set rather than the setting insn.
(record_one_set, compute_transp): Corresponding changes.
(pre_insert_copy_insn): Do not call replace_one_set.
(replace_one_set): Remove.
2005-02-02 Joseph S. Myers <joseph@codesourcery.com>
PR other/15514
* doc/gcov.texi: Fix typo.
2005-02-01 Richard Henderson <rth@redhat.com
PR target/19680
* config/i386/i386.h (MODES_TIEABLE_P): Use ix86_modes_tieable_p.
* config/i386/i386.c (ix86_hard_regno_mode_ok): Change return
type to bool.
(ix86_tieable_integer_mode_p, ix86_modes_tieable_p): New.
* config/i386/i386-protos.h: Update.
2005-02-01 Steven Bosscher <stevenb@suse.de>
PR tree-optimization/19217
* tree-cfg.c (verify_expr): Use the data field to see if TP was
seen inside a PHI node. Do not do the ADDR_EXPR check if it was.
(verify_stmts): Pass (void*)1 as data to verify_expr to signal
that it is walking a PHI node.
2005-02-01 Joseph S. Myers <joseph@codesourcery.com>
* doc/extend.texi (Nested Functions): Update.
2005-02-01 Richard Henderson <rth@redhat.com>
PR 19696
* optabs.c (expand_copysign_absneg): Export.
* optabs.h (expand_copysign_absneg): Declare.
* config/rs6000/rs6000.md (copysigntf3): New.
2005-02-01 Diego Novillo <dnovillo@redhat.com>
PR tree-optimization/19633
* tree-flow.h (struct ptr_info_def): Add field 'pt_null'.
* tree-ssa-alias.c (init_alias_info): Initialize.
(merge_pointed_to_info): Set.
(add_pointed_to_expr): Set pt_null if EXPR is a NULL pointer.
(dump_points_to_info_for): Show value of pt_null.
(struct count_ptr_d): Declare.
(find_ptr_dereference): Remove.
(ptr_is_dereferenced_by): Remove.
(count_ptr_derefs): New local function.
(count_uses_and_derefs): New local function.
(compute_points_to_and_addr_escape): Call it. If the number
of dereferences is greater than zero, mark the pointer as
dereferenced. If there are fewer dereferences than uses of
the pointer, the pointer's value escapes.
2005-02-01 Diego Novillo <dnovillo@redhat.com>
PR tree-optimization/19670
* tree-ssa.c (verify_ssa_name): Don't set TREE_VISITED
here...
(verify_use): ... set it here, instead.
2005-02-01 Janis Johnson <janis187@us.ibm.com>
* doc/sourcebuild.texi (Test directives): Fix formatting.
* doc/sourcebuild.texi (Test directives): Describe selector
expressions.
2005-02-01 Segher Boessenkool <segher@kernel.crashing.org>
* config.gcc (powerpc64-*-linux*): Default to -m64 also for
specific 64-bit CPUs.
2005-02-01 Richard Earnshaw <rearnsha@arm.com>
PR target/16201
* arm.c (arm_eliminable_register): New function.
(adjacent_mem_locations): Don't allow eliminable registers. Use
HOST_WIDE_INT for address offsets.
* arm-protos.h (arm_eliminable_register): Add prototype.
2005-02-01 Steven Bosscher <stevenb@suse.de>
PR optimization/15242
* params.def (PARAM_MAX_GOTO_DUPLICATION_INSNS): New param.
* basic-block.h (duplicate_computed_gotos): Add prototype.
* bb-reorder.c (duplicate_computed_gotos): New function to
duplicate sufficiently small blocks ending in a computed jump.
* passes.c (rest_of_compilation): Call duplicate_computed_gotos
if not optimizing for size.
* cfgcleanup.c (try_crossjump_bb): If not optimizing for size,
never do tail merging for blocks ending in a computed jump.
* doc/invoke.texi: Document the max-goto-duplication-insns param.
2005-02-01 Eric Botcazou <ebotcazou@libertysurf.fr>
Patch from Richard Sandiford <rsandifo@redhat.com>
* reload1.c (choose_reload_regs): Prevent the find_equiv_reg() code
from inheriting a subreg equivalence with a non-spill register.
* tree.h (DECL_FUNCTION_CODE): Document that it is overloaded.
2005-02-01 Alexandre Oliva <aoliva@redhat.com>
* config/frv/frv.c (movcc_fp_destination_operand): New.
(gpr_or_memory_operand): Fix typo in comment.
(gpr_or_memory_operand_with_scratch): New.
* config/frv/frv.h (PREDICATE_CODES): Add the two new predicates.
* config/frv/frv.md (movcc_fp, movcc_fp_internal): Use
movcc_fp_destination_operand.
(reload_incc_fp): Use gpr_or_memory_operand_with_scratch.
Legitimize memory addresses using a scratch register.
2005-01-31 Jeff Law <law@redhat.com>
* tree-into-ssa.c (mark_def_sites_global_data): Make KILLS
bitmap a sparse bitmap instead of a simple bitmap.
(mark_def_sites_initialize_block): Corresponding changes.
(ssa_mark_def_sites_initialize_block): Likewise.
(ssa_mark_phi_uses): Likewise.
(mark_def_site, ssa_mark_def_sites): Likewise.
(mark_def_site_blocks): Likewise.
(rewrite_ssa_into_ssa): Likewise.
* tree-ssa-dom.c (record_cond): Pass correct variable type
for last argument to htab_find_slot_with_hash.
* fold-const.c (fold, case CEIL_MOD_EXPR): Do not lose side
effects when optimizing 0 % X. Do not try to optimize X % 0.
2005-01-31 James E. Wilson <wilson@specifixinc.com>
* config/ia64/itanium1.md (1_scall bypass): Change 2_mmalua to
1_mmalua.
2005-02-01 Eric Christopher <echristo@redhat.com>
* config/mips/mips.c (override_options): Warn if -mint64
is used.
* doc/invoke.texi (MIPS Options): Document that -mint64 is
deprecated.
2005-02-01 Kazu Hirata <kazu@cs.umass.edu>
* cse.c (cse_reg_info): Remove hash_next, next, regno. Add
timestamp.
(cse_reg_info_list, cse_reg_info_list_free, REGHASH_SHIFT,
REGHASH_SIZE, REGHASH_MASK, reg_hash, REGHASH_FN,
cached_cse_reg_info, GET_CSE_REG_INFO): Remove.
(cached_regno): Initialize to INVALID_REGNUM.
(cse_reg_info_table_size,
cse_reg_info_table_first_uninitialized,
cse_reg_info_timestamp): New.
(REG_TICK, REG_IN_TABLE, SUBREG_TICKED, REG_QTY): Use
get_cse_reg_info.
(init_cse_reg_info, get_cse_reg_info_1): New.
(get_cse_reg_info): Cache the last look-up.
(new_basic_block): Update the code to clear mappings from
registers to cse_reg_info entries.
(cse_main): Call init_cse_reg_info.
* cse.c (get_cse_reg_info): Update a comment.
2005-01-31 Steven Bosscher <stevenb@suse.de>
PR c/19333
* c-decl.c (start_decl): Do not warn about arrays of elements with
an incomplete type here.
(grokdeclarator): Do it here by making a pedwarn an error.
* c-typeck.c (push_init_level): If there were previous errors with
the constructor type, do not warn about braces for initializers.
(process_init_element): Likewise for excess initializer elements.
2005-01-31 Kazu Hirata <kazu@cs.umass.edu>
* cse.c (delete_trivially_dead_insn): Don't iterate.
2005-01-31 Andrew Pinski <pinskia@physics.uc.edu>
* config/rs6000/rs6000.md (copysignsf3): New expand.
(copysigndf3): Likewise.
2005-01-31 Steven Bosscher <stevenb@suse.de>
* recog.c (constrain_operands): Only look for earlyclobber operand
conflicts if an '&' constraint was seen.
2005-01-31 Marc Espie <espie@openbsd.org>
* config.gcc: Don't include embedded systems fragment, switches default
debugging format to ELF.
* config/i386/openbsdelf.h: Add DBX_REGISTER_NUMBER since we no
longer pick it up there.
2005-01-31 Dale Johannesen <dalej@apple.com>
* doc/extend.texi (nested functions): Fix linkage description.
Clarify that static is not allowed.
2005-01-31 Dale Johannesen <dalej@apple.com>
* config/rs6000/darwin.md (movsf_low_di): Make work.
(movdf_low_di): Make work.
2005-01-31 Dale Johannesen <dalej@apple.com>
* config/rs6000/darwin-tramp.asm (__trampoline_setup):
Make work for 64 bit.
2005-01-31 Roger Sayle <roger@eyesopen.com>
Dale Johannesen <dalej@apple.com>
PR middle-end/19650
* fold-const.c (fold_binary_op_with_conditional_arg):
Make types match original operands, before STRIP_NOPS.
2005-01-31 Alan Modra <amodra@bigpond.net.au>
* config/rs6000/linux-unwind.h (struct gcc_vregs): New.
(struct gcc_regs): Rename from gcc_pt_regs. Add more regs.
(struct gcc_sigcontext): Delete. Merge contents to..
(struct gcc_ucontext): ..here.
(get_sigcontext): Delete.
(get_regs): New function, like get_sigcontext but return regs ptr.
64-bit version finds regs from r1 to support vdso.
(ppc_linux_aux_vector): New function.
(ppc_fallback_frame_state): Modify for get_regs. Restore fprs
and vector regs.
2005-01-31 Ira Rosen <irar@il.ibm.com>
* tree-vectorizer.c (vect_analyze_offset_expr): Use ssizetype instead
sizetype.
(vect_get_base_and_offset): Use ssizetype instead sizetype. Remove
redundant fold. Fix misalignment for MINUS_EXPR.
(vect_compute_data_ref_alignment): Use ssizetype instead sizetype.
(vect_analyze_pointer_ref_access): Likewise.
(vect_get_memtag_and_dr): Likewise.
2005-01-31 Richard Henderson <rth@redhat.com>
* config/i386/i386.c (absnegsf2_mixed): Remove all of the # hackery.
(absnegsf2_sse, absnegsf2_i387, absnegdf2_mixed, absnegdf2_sse,
absnegdf2_i387, absnegxf2_i387): Likewise.
2005-01-31 Richard Henderson <rth@redhat.com>
PR 19696
* optabs.c (expand_copysign_absneg): New.
(expand_copysign_bit): Split out from ...
(expand_copysign): ... here. Use expand_copysign_absneg.
2005-01-30 Roger Sayle <roger@eyesopen.com>
PR middle-end/19697
* config/pa/pa.md (anddi3, iordi3): On HPPA64, disallow an integer
constant as the second operand and a register as the third.
2005-01-31 Danny Smith <dannysmith@users.sourceforge.net>
PR target/19704
* config/i386/i386.c (ix86_function_ok_for_sibcall): Also check
that dllimport'd functions do not use all call-clobbered registers
to pass parameters.
2005-01-30 Richard Henderson <rth@redhat.com>
PR 19696
* optabs.c (expand_absneg_bit): Split out from expand_unop and
expand_abs_nojump and generalize. Use operand_subword and
emit_no_conflict_block. Support large modes.
(expand_abs_nojump): Use it. Use HONOR_SIGNED_ZEROS to fall
back to maximum.
(expand_unop): Likewise. Use HONOR_SIGNED_ZEROS to fall back
negation to subtraction.
(expand_copysign): Check that the format has signed zeros.
Use operand_subword and emit_no_conflict_block. Support large modes.
2005-01-30 Daniel Berlin <dberlin@dberlin.org>
Fix PR tree-optimization/19624
* Makefile.in (tree-ssa-pre.o): Add CFGLOOP_H.
* tree-ssa-pre.c: Add cfgloop.h.
Update comment.
(pre_stats): New member, constified.
(inserted_exprs): New static variable.
(NECESSARY): New macro.
(create_expression_by_pieces): Fold the expression, and
mark it as defaulting to not necessary. Also put in
inserted_exprs.
(fully_constant_expression): New function.
(insert_into_preds_of_block): Modify to not insert phis when we
are playing with induction variables.
Push phis onto the inserted_exprs vector, and mark them as not
necessary by default.
(insert_aux): Call fully_constant_expression on eprime.
If all edges produce the same value, mark it constant.
(mark_operand_necessary): New function.
(remove_dead_inserted_code): New function.
(init_pre): Init loop optimizer to get loop info.
(fini_pre): Free loop_optimizer, and inserted_exprs vec.
(execute_pre): Commit edge inserts, then remove dead code.
2005-01-30 Richard Henderson <rth@redhat.com>
* rtl.c (rtx_equal_p): No early exit for CONST_VECTOR.
* varasm.c (const_rtx_hash_1): Handle CONST_VECTOR.
2005-01-30 Richard Henderson <rth@redhat.com>
PR target/19700
* config/i386/i386.c (ix86_expand_copysign): New.
(ix86_split_copysign_const): New.
(ix86_split_copysign_var): Rename from ix86_split_copysign,
rearrange op1/nmask operands.
* config/i386/i386-protos.h: Update.
* config/i386/i386.md (copysignsf3): Use ix86_expand_copysign.
(copysigndf3): Likewise.
(copysignsf3_const, copysigndf3_const): New.
(copysignsf3_var): Rename from copysignsf3, split out splitter
and fix split predicate for X constraint.
(copysigndf3_var): Similarly.
2005-01-30 Kazu Hirata <kazu@cs.umass.edu>
* optabs.c, doc/c-tree.texi, doc/install.texi, doc/md.texi,
doc/passes.texi, doc/rtl.texi, doc/sourcebuild.texi,
doc/tm.texi, doc/tree-ssa.texi: Update copyright.
2005-01-29 Richard Henderson <rth@redhat.com>
PR target/19690
* config/i386/i386.md (movdf_nointeger, movdf_integer): Fix ordering
of # and * in constraints.
2005-01-29 Richard Henderson <rth@redhat.com>
PR middle-end/19689
* expr.c (store_field): Don't strip sub-mode cast when the input
data is even smaller.
2005-01-29 Richard Henderson <rth@redhat.com>
PR middle-end/19687
* expr.c (categorize_ctor_elements_1): Check for CONSTRUCTOR of a
union being empty.
2005-01-29 Richard Henderson <rth@redhat.com>
* combine.c (make_field_assignment): Fix argument order
to gen_int_mode.
2005-01-29 Richard Guenther <richard.guenther@uni-tuebingen.de>
PR tree-optimization/15791
* fold-const.c (extract_array_ref): New function.
(fold): Fold comparisons between &a[i] and &a[j] or
semantically equivalent trees.
2005-01-29 Jeff Law <law@redhat.com>
* gcse.c (insert_expr_in_table): Revamp handling of available
and anticipatable occurrence lists to avoid unnecessary list
walking.
(insert_set_in_table): Similarly.
2005-01-29 Joseph S. Myers <joseph@codesourcery.com>
* c-common.c (fix_string_type): Just use c_build_qualified_type to
build string type.
(c_build_qualified_type): Build qualified array types with
TYPE_MAIN_VARIANT pointing to corresponding unqualified type.
* c-decl.c (c_make_fname_decl): Build unqualified array type
before qualified type.
(grokdeclarator): Use TYPE_MAIN_VARIANT of typedef type if element
type is qualified, not just if type itself is. Don't apply
qualifiers to array type when declarator is processed. Apply
qualifiers to field type whether or not it is an array type.
Don't handle array types specially for applying qualifiers to
variables.
* c-typeck.c (composite_type): Build unqualified element type and
array type when forming composite of array types.
(common_pointer_type, comptypes, comp_target_types,
type_lists_compatible_p, build_indirect_ref, build_array_ref,
convert_for_assignment): Don't apply TYPE_MAIN_VARIANT to array
types.
(type_lists_compatible_p): Cache TREE_VALUE (args1) and TREE_VALUE
(args2) in variables a1 and a2.
2005-01-29 Kazu Hirata <kazu@cs.umass.edu>
* cse.c (n_elements_made, max_elements_made): Remove.
(insert): Don't touch n_elements_made.
(cse_main): Don't touch n_elements_made or max_elements_made.
2005-01-28 Stephane Carrez <stcarrez@nerim.fr>
PR target/15384
* config/m68hc11/t-m68hc11-gas (dp-bit.c): Fix typo causing a
configuration part of dp-bit.c to be lost.
2005-01-28 Roger Sayle <roger@eyesopen.com>
* expmed.c (expand_mult_highpart_optab): When attempting to use
a non-widening multiplication in a wider mode, the operands need
to be converted (zero or sign extended) to that mode.
2005-01-28 Ian Lance Taylor <ian@airs.com>
PR middle-end/16558
PR middle-end/19583
* gimple-low.c (block_may_fallthru): TRY_FINALLY_EXPR only falls
through if both operands fall through.
2005-01-28 Kazu Hirata <kazu@cs.umass.edu>
* cse.c (fold_rtx) <PC>: Don't optimize.
2005-01-28 Jeff Law <law@redhat.com>
* fold-const.c (fold, case CEIL_MOD_EXPR): Optimize 0 % X.
(case FLOOR_MOD_EXPR, ROUND_MOD_EXPR, TRUNC_MOD_EXPR): Similarly.
2005-01-28 Kazu Hirata <kazu@cs.umass.edu>
* cse.c (cse_reg_info_free_list, cse_reg_info_used_list,
cse_reg_info_used_list_end): Remove.
(cse_reg_info_list, cse_reg_info_list_free): New.
(get_cse_reg_info): When allocating an instance of
cse_reg_info, add it to the beginning of the cse_reg_info_list
list. Remove code to maintain cse_reg_info_used_list.
(new_basic_block): Reset the free list to the beginning of
cse_reg_info_list.
2005-01-28 Richard Sandiford <rsandifo@redhat.com>
* config/frv/frv.c (bdesc_2arg): Remove __MDPACKH.
(frv_init_builtins): Change its prototype to take 4 uhalf arguments.
(frv_expand_mdpackh_builtin): New function.
(frv_expand_builtin): Use it to expand __MDPACKH.
* doc/extend.texi (__MDPACKH): Update documentation.
2005-01-28 Uros Bizjak <uros@kss-loka.si>
* config/i386/i386.c (ix86_expand_fp_absneg_operator): Use
SSE_FLOAT_MODE_P for use_sse computation.
2005-01-28 Ralf Corsepius <ralf.corsepius@rtems.org>
PR target/19663
* config/sparc/rtemself.h (LINK_GCC_C_SEQUENCE_SPEC): undefine.
2005-01-27 Richard Henderson <rth@redhat.com>
* builtins.c (expand_builtin_copysign): New.
(expand_builtin): Call it.
* genopinit.c (optabs): Add copysign_optab.
* optabs.c (init_optabs): Initialize it.
(expand_copysign): New.
* optabs.h (OTI_copysign, copysign_optab): New.
(expand_copysign): Declare.
* config/alpha/alpha.md (UNSPEC_COPYSIGN): New.
(copysignsf3, ncopysignsf3, copysigndf3, ncopysigndf3): New.
* config/i386/i386.c (ix86_build_signbit_mask): Split from ...
(ix86_expand_fp_absneg_operator): ... here.
(ix86_split_copysign): New.
* config/i386/i386-protos.h: Update.
* config/i386/i386.md (UNSPEC_COPYSIGN): New.
(copysignsf3, copysigndf3): New.
* config/ia64/ia64.md (UNSPEC_COPYSIGN): New.
(copysignsf3, ncopysignsf3): New.
(copysigndf3, ncopysigndf3): New.
(copysignxf3, ncopysignxf3): New.
* config/ia64/ia64.c (rtx_needs_barrier): Handle UNSPEC_COPYSIGN.
2005-01-27 Arend Bayer <arend.bayer@web.de>
Kazu Hirata <kazu@cs.umass.edu>
* cse.c: (find_best_addr): Don't call copy_rtx before calling
fold_rtx. Save cost recomputation if fold_rtx did nothing.
(fold_rtx) <ASM_OPERANDS>: Don't do anything if INSN is
NULL_RTX.
2005-01-27 Jeff Law <law@redhat.com>
* tree-into-ssa.c (ssa_rewrite_initialize_block): Do not register
definitions of SSA_NAMEs which are not being rewritten.
(rewrite_ssa_into_ssa): Only initialize the current definition
of an SSA_NAME if that SSA_NAME has been marked for rewriting.
If checking is enabled, assert that SSA_NAME_AUX is clear for all
SSA_NAMEs before returning.
2005-01-27 Kazu Hirata <kazu@cs.umass.edu>
* c-common.def, c-dump.c, c-gimplify.c, c-objc-common.c,
cfgexpand.c, dbxout.c, function.h, opts.c, tree-flow-inline.h,
tree-ssa-operands.h, tree-ssa-threadupdate.c, tree-tailcall.c,
config/avr/avr.md, config/cris/aout.h, config/cris/cris.h,
config/mips/iris6.h, config/sh/sh.c: Update copyright.
2005-01-27 Steven Bosscher <stevenb@suse.de>
PR middle-end/17278
* opts.c (decode_options): Move flag_thread_jumps from -O1 and
higher to -O2 and higher. Likewise for tree PRE.
* tree-ssa-dom.c (tree_ssa_dominator_optimize): Only iterate at -O2
and better.
2005-01-27 Ian Lance Taylor <ian@airs.com>
PR middle-end/19583
* gimple-low.c (try_catch_may_fallthru): New static function.
(block_may_fallthru): Handle TRY_CATCH_EXPR.
* tree-inline.c (expand_call_inline): Don't warn about reaching
the end of a non-void function being inlined if the function uses
a return slot.
2005-01-27 Jakub Jelinek <jakub@redhat.com>
* config/i386/i386.h (CALL_USED_REGISTERS): Fix comment pastos.
PR c/18946
* c-decl.c (warn_if_shadowing): Handle old_decl error_mark_node.
(pushdecl): Only use DECL_FILE_SCOPE_P if DECL_P.
(implicitly_declare): Handle error_mark_node.
2005-01-27 Richard Henderson <rth@redhat.com>
PR tree-opt/14329
* tree.h (struct tree_decl): Add debug_expr_is_from.
(DECL_DEBUG_EXPR_IS_FROM): New.
(DECL_DEBUG_EXPR): Rename from DECL_DEBUG_ALIAS_OF.
* dwarf2out.c (dwarf2out_var_location): Update to match.
* tree-outof-ssa.c (create_temp): Likewise.
* var-tracking.c (track_expr_p): Likewise.
* tree-sra.c (instantiate_element): Set DECL_DEBUG_EXPR.
* c-objc-common.c (c_tree_printer) <'D'>: Handle DECL_DEBUG_EXPR.
* toplev.c (default_tree_printer): Likewise.
2005-01-27 Alexandre Oliva <aoliva@redhat.com>
* config/frv/frv.c (frv_class_likely_spilled_p): Add GR8_REGS,
GR9_REGS, GR89_REGS, FDPIC_FPTR_REGS, FDPIC_REGS.
2005-01-27 Steven Bosscher <stevenb@suse.de>
* tree.h (SWITCH_COND, SWITCH_BODY, SWITCH_LABELS, CASE_LOW,
CASE_HIGH, CASE_LABEL, ASM_STRING, ASM_OUTPUTS, ASM_INPUTS,
ASM_CLOBBERS): Add tree checks.
* c-common.h (SWITCH_TYPE): Rename to SWITCH_STMT_TYPE.
(SWITCH_STMT_COND, SWITCH_STMT_BODY): New.
* c-common.def (SWITCH_STMT): Update to match.
* c-common.c (c_do_switch_warnings): Use SWITCH_STMT accessor
macros instead of SWITCH_EXPR ones.
* c-dump.c (c_dump_tree): Likewise.
* c-gimplify.c (gimplify_switch_stmt): Likewise.
* c-typeck.c (c_start_case, do_case, c_finish_case): Likewise.
* doc/c-tree.texi (SWITCH_STMT): Update accessor macro names.
2005-01-27 Alan Modra <amodra@bigpond.net.au>
* unwind-dw2.c (execute_stack_op): Add missing cases for
DW_OP_shl, DW_OP_shr, DW_OP_shra, DW_OP_xor.
2005-01-27 Eric Botcazou <ebotcazou@libertysurf.fr>
* config.gcc (Obsolete configurations): Remove 'dummy', add
sparclite-*-coff*, sparclite-*-elf*, sparc86x-*-elf* and
sparc-*-openbsd*.
2005-01-26 Diego Novillo <dnovillo@redhat.com>
PR tree-optimization/19633
* tree-ssa-alias.c (ptr_is_dereferenced_by): Also handle
CALL_EXPRs.
(maybe_create_global_var): Do not create .GLOBAL_VAR if there
are no call-clobbered variables.
* tree-outof-ssa.c (check_replaceable): Return false for calls
with side-effects.
2005-01-26 Ulrich Weigand <uweigand@de.ibm.com>
* dbxout.c (dbxout_symbol_location): Resolve constant pool references
even for variables with NULL DECL_INITIAL.
2005-01-26 Stuart Hastings <stuart@apple.com>
* gimplify.c (shortcut_cond_expr): Re-compute side-effects.
2005-01-26 Richard Henderson <rth@redhat.com>
PR middle-end/18008
* c-decl.c (finish_struct): Set DECL_MODE after resetting a
field's type.
* expr.c (store_field): Strip conversions to odd-bit-sized types
if the destination field width matches.
2005-01-26 Richard Henderson <rth@redhat.com>
* c-decl.c, expmed.c, expr.c: Revert last change.
2005-01-26 Richard Henderson <rth@redhat.com>
PR middle-end/18008
* c-decl.c (finish_struct): Set DECL_MODE after resetting a
field's type.
* expmed.c (store_fixed_bit_field): Create a paradoxical subreg
if we don't need the bits above those present in the current mode.
* expr.c (store_field): Strip conversions to odd-bit-sized types
if the destination field width matches.
2005-01-26 Richard Sandiford <rsandifo@redhat.com>
* config/mips/iris6.h (ENDFILE_SPEC): Don't link in irix-csr.o if
either -ffast-math or -funsafe-math-optimizations is in use.
2005-01-26 Marek Michalkiewicz <marekm@amelek.gda.pl>
PR target/19293
PR target/19329
* config/avr/avr.c (notice_update_cc): Only set condition code for
ashrqi3 if shift count > 0.
(out_shift_with_cnt): Handle shift count <= 0 as a no-op.
(ashlqi3_out, ashlhi3_out, ashlsi3_out, ashrqi3_out, ashrhi3_out,
ashrsi3_out, lshrqi3_out, lshrhi3_out, lshrsi3_out): Handle shift
count <= 0 as a no-op, and shift count >= width by copying zero
or sign bit to all bits of the result.
* config/avr/avr.md (all shifts): Add alternatives for zero shift
count, with attribute "length" set to 0 and "cc" set to "none".
2005-01-26 Aldy Hernandez <aldyh@redhat.com>
* doc/invoke.texi: Document -mTLS.
* testsuite/gcc.target/frv/all-tls-global-dynamic.c: New.
* testsuite/gcc.target/frv/all-tls-initial-exec.c: New.
* testsuite/gcc.target/frv/all-tls-initial-exec-pic.c: New.
* testsuite/gcc.target/frv/all-tls-local-dynamic.c: New.
* testsuite/gcc.target/frv/all-tls-local-dynamic-plt.c: New.
* testsuite/gcc.target/frv/all-tls-local-dynamic-plt-pic.c: New.
* testsuite/gcc.target/frv/all-tls-local-exec.c: New.
* testsuite/gcc.target/frv/all-tls-local-exec-TLS.c: New.
* configure.ac: Check for a TLS capable gas.
* configure: Regenerate.
2005-01-26 Richard Henderson <rth@redhat.com>
PR middle-end/18008
* combine.c (make_field_assignment): Simplify store to zero_extract
from a source with an overlapping mask.
2005-01-26 Aldy Hernandez <aldyh@redhat.com>
2004-11-11 Eric Christopher <echristo@redhat.com>
* config/frv/frv.md: Add fr400_integer automaton. Don't
allow TYPE_MUL, TYPE_MACC, or TYPE_CUT to issue in parallel
to TYPE_MACC.
2005-01-26 Steven Bosscher <stevenb@suse.de>
PR middle-end/16585
* cfgbuild.c (make_edges): Do not clear or set
current_function_has_computed_jump.
* function.h (struct function): Remove the has_computed_jump field.
(current_function_has_computed_jump): Do not define.
* sched-rgn.c (is_cfg_nonregular): Return true if a basic block ends
in a computed jump. Ignore current_function_has_computed_jump.
2005-01-26 Richard Henderson <rth@redhat.com>
PR middle-end/19515
* expr.c (categorize_ctor_elements): New argument p_must_clear.
(categorize_ctor_elements_1): Likewise. Detect a union that isn't
fully initialized.
(mostly_zeros_p): Update for new categorize_ctor_elements argument.
* gimplify.c (gimplify_init_constructor): Likewise. Only shove
objects into static storage if they have more than one non-zero value.
* tree.h (categorize_ctor_elements): Update decl.
2005-01-26 Steven Bosscher <stevenb@suse.de>
PR middle-end/19616
* tree.h (CALL_EXPR_TAILCALL): Add comment.
* calls.c (check_sibcall_argument_overlap_1): Revert the change
to this function from 2004-07-10.
* tree-tailcall.c (suitable_for_tail_opt_p): Do not consider the
the current function for tail call optimizations if the address
of one of it its arguments is taken.
2005-01-26 Kazu Hirata <kazu@cs.umass.edu>
* cse.c (fold_rtx): Call equiv_constant only when necessary.
2005-01-26 Bernd Schmidt <bernd.schmidt@analog.com>
* function.c (expand_function_end): If current_function_calls_alloca,
emit stack restore in a place that is reached when the function falls
through at the end.
2005-01-26 Alexandre Oliva <aoliva@redhat.com>
* Makefile.in (../$(build_subdir)/fixincludes/fixincl): Add dummy
rule to avoid matching inappropriate suffix rule.
2005-01-26 Jan Hubicka <jh@suse.cz>
PR tree-optimization/19241
* tree-inline.c (copy_body_r): Do not walk subtrees after substituting.
2005-01-26 Hans-Peter Nilsson <hp@axis.com>
* config/cris/cris.h (LIB_SPEC) <sim*>: Use -lsyslinux, not
-lsyssim. Wrap -lc -lsyssim in --start-group --end-group instead
of doubling.
(STARTFILE_SPEC): Add crti.o, before crtbegin.o.
<sim*>: Always use crt1.o, regardless of N in simN.
<!sim>: Drop support for -pg and -p variants; always use crt0.o.
(ENDFILE_SPEC): Add crtn.o, after crtend.o.
(CRT_CALL_STATIC_FUNCTION): Remove.
* config/cris/aout.h (STARTFILE_SPEC): <!melinux && sim*>: Always
use crt1.o, regardless of N in simN.
<!sim>: Drop support for -pg and -p variants; always use crt0.o.
(LIB_SPEC): Do not define; default to the one in config/cris/cris.h.
(CRIS_CPP_SUBTARGET_SPEC) <melinux && !nostdinc>: Remove special
case isystem setting.
(MAX_OFILE_ALIGNMENT): Correct to 32, not 16.
2005-01-25 Ian Lance Taylor <ian@airs.com>
* gimple-low.c (block_may_fallthru): Correct handling of
SWITCH_EXPR--may fall through if SWITCH_LABELS is NULL.
2005-01-26 Hans-Peter Nilsson <hp@axis.com>
* config/cris/cris.h (CPP_SPEC): Adjust the various mtune=
handlers to match indentation; nested under the mtune=* handler.
Similar for mcpu= and march=.
2005-01-25 Daniel Jacobowitz <dan@codesourcery.com>
* config/mips/linux.h (LIB_SPEC): Remove -rpath-link.
* config/mips/linux64.h (LIB_SPEC): Likewise.
* config/mn10300/linux.h (LIB_SPEC): Likewise.
* config/sh/linux.h (LIB_SPEC): Likewise.
2005-01-25 Aldy Hernandez <aldyh@redhat.com>
* config/frv/frv.c (frv_legitimize_tls_address): New.
(TARGET_HAVE_TLS): Define.
(FRV_SYMBOL_REF_TLS_P): Define.
(frv_override_options): Handle new register classes.
(frv_legitimate_address_p): Reject tls addresses.
(frv_legitimize_address): Handle TLS addresses.
(gen_inlined_tls_plt): New.
(gen_tlsmoff): New.
(frv_legitimize_tls_address): New.
(unspec_got_name): Add TLS entries.
(got12_operand): Add R_FRV_TLSMOFF12 case.
(frv_emit_move): Fixup TLS addresses.
(frv_emit_movsi): Legitimize TLS addresses.
* config/frv/frv.h (MASK_BIG_TLS): New.
(TARGET_BIG_TLS): New.
(HAVE_AS_TLS): Define.
(TARGET_SWITCHES): Add -mTLS and -mtls options.
(enum reg_class): Add GR8_REGS, GR9_REGS, GR89_REGS.
(REG_CLASS_NAMES): Same.
(REG_CLASS_CONTENTS): Same.
(CONSTRAINT_LEN): New.
(REG_CLASS_FROM_CONSTRAINT): New.
(PREDICATE_CODES): Add symbolic_operand.
* config/frv/frv.md (define_constants): Add UNSPEC_GETTLSOFF,
UNSPEC_TLS_LOAD_GOTTLSOFF12, UNSPEC_TLS_INDIRECT_CALL,
UNSPEC_TLS_TLSDESC_LDD, UNSPEC_TLS_TLSDESC_LDD_AUX,
UNSPEC_TLS_TLSOFF_LD, UNSPEC_TLS_LDDI, UNSPEC_TLSOFF_HILO,
R_FRV_GOTTLSOFF_HI, R_FRV_GOTTLSOFF_LO, R_FRV_TLSMOFFHI,
R_FRV_TLSMOFFLO, R_FRV_TLSMOFF12, R_FRV_TLSDESCHI,
R_FRV_TLSDESCLO, R_FRV_GOTTLSDESCHI, R_FRV_GOTTLSDESCLO, GR8_REG,
GR9_REG, GR14_REG, LRREG.
(type): Add load_or_call attribute.
("load_or_call"): New reservation.
("call_gettlsoff"): New.
("tls_indirect_call"): New.
("tls_load_gottlsoff12"): New.
("tlsoff_hilo"): New.
("tls_tlsdesc_ldd"): New.
("tls_tlsoff_ld"): New.
("tls_lddi"): New.
* config/frv/frv-protos.h (symbolic_operand): Protoize.
2005-01-25 Alexandre Oliva <aoliva@redhat.com>
* config/frv/frv.h (ASM_OUTPUT_DWARF_DTPREL): Define.
* config/frv/frv-protos.h (frv_output_dwarf_dtprel): Declare.
* config/frv/frv.c (TLS_BIAS): Define.
(frv_output_dwarf_dtprel): New.
2005-01-26 Jakub Jelinek <jakub@redhat.com>
PR rtl-optimization/19579
* ifcvt.c (noce_try_cmove_arith): If emitting instructions to set up
both A and B, see if they don't clobber registers the other expr uses.
2005-01-25 J"orn Rennecke <joern.rennecke@st.com>
* real.c (do_add): Initialize signalling and canonical members.
* real.c (real_from_integer): Zero out destination.
2005-01-18 Jan Hubicka <jh@suse.cz>
PR tree-optimize/19337
* tree-inline.c (initialize_inlined_parameters): Copy
saved_static_chain_decl only.
2005-01-25 Richard Henderson <rth@redhat.com>
PR target/19556
PR target/19584
* config/i386/i386.c (x86_inter_unit_moves): Zero.
(ix86_preferred_reload_class): Rewrite fp-constant section, with
80387 enabled, to return a proper subclass. Return the subset that
overlaps with GENERAL_REGS for PLUS.
* config/i386/i386.md (movsi_1, movdi_2): Set type to "mmx" for pxor.
2005-01-25 Richard Henderson <rth@redhat.com>
PR middle-end/19609
* tree-complex.c (expand_complex_div_wide): Use the correct formulae.
2005-01-25 Roger Sayle <roger@eyesopen.com>
* expmed.c (choose_multiplier): Change interface to return the
multiplier lowpart as an rtx instead of an unsigned HOST_WIDE_INT.
(expand_divmod): Update calls to choose_multiplier.
2005-01-24 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
PR middle-end/19330
* expmed.c (extract_bit_field): Use adjust_address instead of
gen_lowpart when op0 is a MEM.
2005-01-24 Steven Bosscher <stevenb@suse.de>
* cfgexpand.c (expand_gimple_tailcall): Fix typo.
2005-01-24 Richard Sandiford <rsandifo@redhat.com>
* config/mips/irix-csr.c: New file.
* config/mips/t-iris6 (irix-csr.o): New rule to build it.
(EXTRA_MULTILIB_PARTS): Add irix-csr.o.
* config/mips/iris6.h (ENDFILE_SPEC): Include it in n32 and n64
executables.
2005-01-24 Eric Botcazou <ebotcazou@libertysurf.fr>
PR bootstrap/19364
* config.gcc (sparc-*-elf*): Remove sol2.h, sparc/sol2.h and
sparc/elf.h, add sparc/sp-elf.h.
(sparc-*-rtems*): Likewise.
(sparclite-*-elf*): Remove sol2.h, sparc/sol2.h, sparc/elf.h and
tm-dwarf2.h, add sparc/sp-elf.h.
(sparc86x-*-elf): Likewise.
(sparc64-*-elf*): Remove sol2.h, sparc/sol2.h and tm-dwarf2.h.
* config/sparc/liteelf.h (TARGET_SUB_OS_CPP_BUILTINS): Rename into
TARGET_OS_CPP_BUILTINS.
* config/sparc/sp86x-elf (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
* config/sparc/rtemself.h (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
Undefine it.
* config/sparc/openbsd64.h (NO_IMPLICIT_EXTERN_C): Undefine.
* config/sparc/sp64-elf.h (NO_IMPLICIT_EXTERN_C): New macro.
(SWITCH_TAKES_ARG): Likewise.
(LOCAL_LABEL_PREFIX): Likewise.
(ASM_GENERATE_INTERNAL_LABEL): Likewise.
(TARGET_N_FORMAT_TYPES): Delete.
(TARGET_FORMAT_TYPES): Likewise.
(ASM_DECLARE_FUNCTION_SIZE): Likewise.
* config/sparc/elf.h: Delete.
* config/sparc/sp-elf.h: New file.
2005-01-24 Kazu Hirata <kazu@cs.umass.edu>
* tree-flow-inline.h (phi_arg_from_edge): Remove.
* tree-flow.h: Remove the corresponding prototype.
* tree-ssa-operands.h, tree-ssa-threadupdate.c, tree-ssa.c,
tree-vectorizer.c: Use dest_idx instead of phi_arg_from_edge.
2005-01-24 Jakub Jelinek <jakub@redhat.com>
PR target/17751
* config/rs6000/rs6000.c (rs6000_file_start): Create toc section
for AIX ABI or ELF -fPIC.
(rs6000_emit_load_toc_table): Don't create toc_section here.
(rs6000_xcoff_file_start): Nor here.
2005-01-24 J"orn Rennecke <joern.rennecke@st.com>
* sh.c (ra.h): Don't #include.
(hard_regs_intersect_p): New function, resurrected from ra.c.
* sh.c: Fix 1996 Copyright.
2005-01-24 Richard Henderson <rth@redhat.com>
Aldy Hernandez <aldyh@redhat.com>
* regrename.c (note_sets): Handle subregs.
2005-01-24 Joseph S. Myers <joseph@codesourcery.com>
PR bootstrap/18058
* genconditions.c (write_header, write_conditions): Elide file if
not GCC >= 3.0.1.
2005-01-24 Kazu Hirata <kazu@cs.umass.edu>
* c-opts.c, expmed.c, gengtype.c, tree-complex.c,
config/arm/iwmmxt.md, config/avr/avr.c, config/s390/s390.h:
Update copyright.
2005-01-24 Jakub Jelinek <jakub@redhat.com>
* builtins.c (get_pointer_alignment, gimplify_va_arg_expr,
expand_builtin_printf, expand_builtin_fprintf,
expand_builtin_sprintf): Use POINTER_TYPE_P instead TREE_CODE
checking against POINTER_TYPE.
(validate_arglist): Handle POINTER_TYPE code by checking
POINTER_TYPE_P.
2005-01-24 Paolo Bonzini <bonzini@gnu.org>
* rtlanal.c (non_rtx_starting_operands, for_each_rtx_1,
init_rtlanal): New.
(for_each_rtx): Call for_each_rtx_1.
* rtl.h (init_rtlanal): Declare.
* toplev.c (backend_init): Call init_rtlanal.
2005-01-24 Jakub Jelinek <jakub@redhat.com>
* flow.c (propagate_one_insn): Formatting.
PR middle-end/19551
* flow.c (libcall_dead_p): Be more conservative if unsure.
If there are any instructions between insn and call, see if they are
all dead before saying the libcall is dead.
2005-01-24 Uros Bizjak <uros@kss-loka.si>
* config/i386/i386.md (*extendsfdf2_sse): Use "nonimmediate_operand"
operand constraint for operand 0.
2005-01-23 Richard Henderson <rth@redhat.com>
PR 19486
* tree-complex.c (expand_complex_div_wide): Set EDGE_FALLTHRU on
edges leading to join block.
2005-01-23 Roger Sayle <roger@eyesopen.com>
* expmed.c (expand_mult_highpart): Make static. Change type of
constant multiplier argument from unsigned HOST_WIDE_INT to rtx.
(expand_divmod): Updates calls to expand_mult_highpart by using
gen_int_mode to pass a CONST_INT rtx.
* rtl.h (expand_mult_highpart): Remove prototype.
2005-01-23 Kazu Hirata <kazu@cs.umass.edu>
* flow.c (regset_bytes, regset_size): Remove.
* cfganal.c: Fix a reference to Harvey's paper.
2005-01-23 Steven Bosscher <stevenb@suse.de>
PR rtl-optimization/19464
* tree-optimize.c (init_tree_optimization_passes): Add one more
copyrename pass just before out-of-ssa.
2005-01-23 Joseph S. Myers <joseph@codesourcery.com>
PR bootstrap/18058
* recog.c (recog_memoized): Don't define if GENERATOR_FILE.
* ggc-none.c (ggc_free): Define.
2005-01-23 Kazu Hirata <kazu@cs.umass.edu>
* cse.c (max_reg, max_insn_uid): Remove.
(cse_main): Don't access max_reg or max_insn_uid.
* c-common.c (explicit_flag_signed_bitfields,
lang_statement_code_p, lang_expand_function_end): Remove.
* c-common.h: Remove the corresponding declarations.
* c-opts.c (c_common_handle_option): Remove all write access
to explicit_flag_signed_bitfields.
* cgraph.c (cgraph_varpool_n_nodes): Remove.
(cgraph_varpool_node): Don't access cgraph_varpool_n_nodes.
* cgraph.h: Remove the corresponding declaration.
* gcse.c (null_pointer_info): Remove.
2005-01-23 Roger Sayle <roger@eyesopen.com>
Eric Botcazou <ebotcazou@libertysurf.fr>
* combine.c (simplify_logical): Only simplify logical expressions
of the form ior(and(x,y),z) by the inverse distributive law if the
result is cheaper than the original.
2005-01-23 Kazu Hirata <kazu@cs.umass.edu>
* alias.c, c-common.h, c-incpath.c, c-incpath.h, expr.c,
fold-const.c, gimplify.c, params.h, tree-data-ref.c,
tree-if-conv.c, tree-nested.c, tree-outof-ssa.c,
tree-ssa-dom.c, tree-vectorizer.c, tree.def, config/darwin.c,
config/freebsd-spec.h, config/arm/arm.h,
config/h8300/h8300.md, config/i386/i386.md,
config/i386/predicates.md, config/i386/sse.md,
config/ia64/ia64.c, config/ip2k/ip2k.c, config/s390/s390.c,
config/vax/vax.md: Fix comment typos. Follow spelling
conventions.
2005-01-23 Steven Bosscher <stevenb@suse.de>
* gengtype.c (walk_type): Produce `not equal to' compares for loop
tests, instead of `less than'.
2005-01-23 Richard Sandiford <rsandifo@redhat.com>
* function.c (assign_parm_setup_block): When creating a new stack slot
for a parameter, get its alignment from the parameter's DECL_ALIGN
rather than the type's TYPE_ALIGN. Make sure that the parameter
is at least word aligned.
2005-01-22 Roger Sayle <roger@eyesopen.com>
PR middle-end/19378
* config/avr/avr.c (avr_hard_regno_mode_ok): Rewrite.
2005-01-22 Richard Henderson <rth@redhat.com>
PR target/19506
* config/i386/i386.md (movsfcc_1_sse_max): Use nonimmediate_operand
in both compare operands.
(movdfcc_1_sse_max): Likewise.
(movsfcc_1_sse): Likewise. Add earlyclobber for scratch.
(movdfcc_1_sse): Likewise.
* config/i386/i386.c (ix86_split_sse_movcc): Emit copies into the
scratch register as needed.
2005-01-22 Richard Henderson <rth@redhat.com>
* config/i386/i386.md (smaxsf3): Fix mnemonic typo.
* config/i386/i386.c (ix86_prepare_fp_compare_args): Fix is_sse test.
2005-01-22 Richard Henderson <rth@redhat.com>
* genopinit.c (optabs): Use smin/smax for floating point too.
* doc/md.texi: Update to match. Clarify that floating point
results are undefined for +0/-0 and NaN.
* doc/rtl.texi: Likewise.
* rtl.def (SMIN, SMAX): Likewise
* tree.def (MIN_EXPR, MAX_EXPR): Likewise.
* config/alpha/alpha.md (smaxdf3, smindf3, smaxsf3, sminsf3): Add
leading 's' to the name.
* config/ia64/ia64.md (smaxsf3, sminsf3, smaxdf3, smindf3,
smaxxf3, sminxf3): Likewise.
* config/rs6000/rs6000.md (smaxdf3, smindf3, smaxsf3, sminsf3):
Likewise.
2005-01-22 Paul Brook <paul@codesourcery.com>
* config/arm/arm.md: Use "Uy" constraint for wcgr load/stores.
2005-01-21 Mark Dettinger <dettinge@de.ibm.com>
* config/s390/s390.c (struct processor_costs): New fields
dlgr, dlr, dr, dsgfr, dsgr.
(z900_cost, z990_cost): Values for new fields.
(s390_rtx_costs): New cases MEM und COMPARE in switch
statement. Modified handling of SIGN_EXTEND, ZERO_EXTEND,
DIV, MOD, UDIV, UMOD.
2005-01-21 Ulrich Weigand <uweigand@de.ibm.com>
* config/s390/s390.md ("doloop_si64"): Reload input value directly
into the register being decremented.
("doloop_si31", "doloop_di"): Likewise.
("*doloop_si_long"): Adapt pattern.
2005-01-21 Ulrich Weigand <uweigand@de.ibm.com>
* config/s390/s390.h (HARD_REGNO_NREGS): Fix computation for
access registers.
(CLASS_MAX_NREGS): Likewise.
2005-01-21 Daniel Berlin <dberlin@dberlin.org>
* doc/tree-ssa.texi (Statement Operands): Add example for new
must-def macro. Note deprecation of old operands interface.
2005-01-22 Richard Sandiford <rsandifo@redhat.com>
PR tree-optimization/19484
* tree-cfg.c (remove_fallthru_edge): New function.
(cleanup_control_flow): Remove fallthru edges from calls that are
now known not to return.
2005-01-20 Daniel Berlin <dberlin@dberlin.org>
Fix PR tree-optimization/19038
* tree-ssa-dom.c (cprop_operand): Don't replace loop invaeriant
copies with loop variant ones.
2005-01-22 Kazu Hirata <kazu@cs.umass.edu>
* cfganal.c, real.h, reorg.c, timevar.def, tree-ssa-ccp.c,
config/alpha/alpha-protos.h, config/alpha/alpha.h,
config/alpha/alpha.md, config/alpha/predicates.md,
config/sparc/freebsd.h, config/sparc/netbsd-elf.h,
config/sparc/sol2.h: Update copyright.
* tree-cfg.c (remove_forwarder_block_with_phi): Look at the
first label to see if it is a nonlocal label.
2005-01-22 David Edelsohn <edelsohn@gnu.org>
Andrew Pinski <pinskia@physics.uc.edu>
PR target/19491
* config/rs6000/rs6000.c (rs6000_va_start): Saturate n_gpr at
maximum number of GPRs. Saturate n_fpr at maximum number of FPRs.
2005-01-22 Ralf Corsepius <ralf.corsepius@rtems.org>
* config/rs6000/rtems.h: Update copyright.
2005-01-22 Ralf Corsepius <ralf.corsepius@rtems.org>
PR target/19548
* config/rs6000/rtems.h: Resurrect cpp_os_rtems_spec from gcc < 3.4.
(CPP_OS_RTEMS_SPEC): New (From gcc-3.3's config/rs6000/sys4.h).
(SUBSUBTARGET_EXTRA_SPECS): Use CPP_OS_RTEMS_SPEC.
2005-01-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
PR c/18809
* c-typeck.c (convert_arguments): Check for error_mark_node.
2005-01-21 Ian Lance Taylor <ian@airs.com>
PR tree-optimization/13000
* tree-inline.c: Include "tree-flow.h".
(expand_call_inline): If warn_return_type, warn if non-void inline
function falls through.
* tree-cfg.c (execute_warn_function_return): Don't warn about
control reaching end if TREE_NO_WARNING is set. Set
TREE_NO_WARNING.
* gimple-low.c (block_may_fallthru): Don't assume that SWITCH_EXPR
has been lowered.
* gimplify.c (shortcut_cond_expr): Don't emit a jump over the else
branch if we don't need one.
* c-typeck.c: Include "tree-flow.h"
(c_finish_bc_stmt): Don't add a goto if the current statement
list doesn't fall through to the current point.
2005-01-21 Roger Sayle <roger@eyesopen.com>
PR rtl-optimization/576
* real.c (real_arithmetic): Change return type from void to bool
to return an indication that the result may be inexact.
* real.h (real_arithmeric): Update prototype.
* fold-const.c (const_binop): Don't constant fold floating
point expressions when the user specifies -frounding-math and
the result may depend upon the run-time rounding mode.
(fold_convert_const_real_from_real): Clean-up.
(fold_initializer): Ignore flag_rounding_math for initializers.
* simplify-rtx.c (simplify_binary_operation): Likewise, don't
constant fold FP operations with flag_rounding_math if the
result may depend upon the run-time rounding mode.
2005-01-21 Tom Tromey <tromey@redhat.com>
* c-cppbuiltin.c (define__GNUC__): Correct assertion.
2005-01-21 Kazu Hirata <kazu@cs.umass.edu>
* tree-cfg.c: Fix comment typos.
2005-01-21 J"orn Rennecke <joern.rennecke@st.com>
* passes.c (rest_of_handle_flow2): Close / open the flow2 dump file
around the call to rest_of_handle_branch_target_load_optimize.
2005-01-21 Eric Botcazou <ebotcazou@libertysurf.fr>
* config.gcc (sparc-*-netbsdelf*): Include dbxelf.h
(sparc64-*-openbsd*): Likewise.
(sparclite-*-elf*): Include tm-dwarf2.h.
(sparc86x-*-elf*): Likewise.
(sparc64-*-elf*): Likewise.
* config/sparc/linux64.h (DWARF2_DEBUGGING_INFO): Delete.
(DBX_DEBUGGING_INFO): Likewise.
* config/sparc/liteelf.h (DWARF2_DEBUGGING_INFO): Likewise.
(PREFERRED_DEBUGGING_TYPE): Likewise.
* config/sparc/netbsd-elf.h (PREFERRED_DEBUGGING_TYPE): Likewise.
* config/sparc/sp64-elf.h (DBX_DEBUGGING_INFO): Likewise.
(PREFERRED_DEBUGGING_TYPE): Likewise.
* config/sparc/sp86x-elf.h (DWARF2_DEBUGGING_INFO): Likewise.
(PREFERRED_DEBUGGING_TYPE): Likewise.
* config/sparc/sparc.h (DBX_DEBUGGING_INFO): Likewise.
2005-01-21 Hans-Peter Nilsson <hp@bitrange.com>
PR target/18701
* combine.c (combine_simplify_rtx): Revert change of 2004-12-31.
2005-01-20 Paul Brook <paul@codesourcery.com>
* doc/rtl.texi: Document value extension requirements for CONST_INT.
2005-01-20 Kazu Hirata <kazu@cs.umass.edu>
* tree-cfg.c (tree_verify_flow_info): Check that a nonlocal
label is first in a sequence of labels.
* tree-cfg.c (tree_verify_flow_info): Fix a typo.
2005-01-20 Janis Johnson <janis187@us.ibm.com>
Giovanni Bajo <giovannibajo@gcc.gnu.org>
* doc/sourcebuild.texi (Test Directives): New.
2005-01-20 Roger Sayle <roger@eyesopen.com>
* real.c (real_floor): Don't leave the result uninitialized when
mode is VOIDMode, but return the unrounded intermediate value.
(real_ceil): Likewise.
2005-01-20 Paul Brook <paul@codesourcery.com>
* config/arm/arm.md (insv): Use gen_int_mode.
2005-01-20 Eric Botcazou <ebotcazou@libertysurf.fr>
* config/sparc/freebsd.h (ASM_OUTPUT_INTERNAL_LABELREF): Delete.
* config/sparc/linux.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
* config/sparc/linux64.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
* config/sparc/netbsd-elf.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
* config/sparc/sol2.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
2005-01-20 Daniel Berlin <dberlin@dberlin.org>
Fix PR debug/19124
* dwarf2out.c (concat_loc_descriptor): We don't know we can use
fbreg, so we have to assume we can't.
(loc_descriptor_from_tree_1): Ditto.
(containing_function_has_frame_base): New function.
(add_location_or_const_value_attribute): Use it.
Also try to generate a frame_base from a single element location
list.
2005-01-20 Kazu Hirata <kazu@cs.umass.edu>
PR tree-optimization/15349
* timevar.def (TV_TREE_MERGE_PHI): New.
* tree-cfg.c (tree_forwarder_block_p): Add a new argument
PHI_WANTED.
(remove_forwarder_block, cleanup_forwarder_blocks): Adjust the
calls to tree_forwarder_block_p.
(remove_forwarder_block_with_phi, merge_phi_nodes,
gate_merge_phi, pass_merge_phi): New.
* tree-optimize.c (init_tree_optimization_passes): Add
pass_merge_phi.
* tree-pass.h: Add an extern for pass_merge_phi;
2005-01-20 Richard Henderson <rth@redhat.com>
PR target/19418
* config/i386/emmintrin.h (_mm_castpd_ps, _mm_castpd_si128): New.
(_mm_castps_pd, _mm_castps_si128): New.
(_mm_castsi128_ps, _mm_castsi128_pd): New.
2005-01-20 Richard Henderson <rth@redhat.com>
PR target/19530
* config/i386/mmintrin.h (_mm_cvtsi32_si64): Use
__builtin_ia32_vec_init_v2si.
(_mm_cvtsi64_si32): Use __builtin_ia32_vec_ext_v2si.
* config/i386/i386.c (IX86_BUILTIN_VEC_EXT_V2SI): New.
(ix86_init_mmx_sse_builtins): Create it.
(ix86_expand_builtin): Expand it.
(ix86_expand_vector_set): Handle V2SFmode and V2SImode.
* config/i386/mmx.md (vec_extractv2sf_0, vec_extractv2sf_1): New.
(vec_extractv2si_0, vec_extractv2si_1): New.
2005-01-20 Richard Henderson <rth@redhat.com>
PR target/16533
* config/i386/i386.c (ix86_expand_push): New.
* config/i386/mmx.md (push<MMXMODE>1): New.
* config/i386/sse.md (push<SSEMODE>1): New.
* config/i386/i386-protos.h: Update.
2005-01-20 Kazu Hirata <kazu@cs.umass.edu>
* params.def, params.h, predict.c, tree-ssa-loop-im.c: Update
copyright.
2005-01-20 Richard Henderson <rth@redhat.com>
* rtl.def (CONST_VECTOR): Use RTX_CONST_OBJ.
* rtl.h (CONSTANT_P): Don't special case CONST_VECTOR.
2005-01-19 Richard Henderson <rth@redhat.com>
PR target/19350
* config/i386/i386.c (ix86_expand_vector_move_misalign): Convert
to V4SFmode in SSE1 fallback load path.
2005-01-19 Richard Henderson <rth@redhat.com>
* config/i386/i386.c (ix86_expand_vector_init_one_var): Fix typo
in QImode expansion to ix86_expand_vector_set.
(ix86_expand_vector_init_general): Fix typo in V8HImode recursive call.
2005-01-19 Richard Henderson <rth@redhat.com>
PR target/19511
* config/i386/i386.c (ix86_preferred_reload_class): Return a proper
subclass of the input class.
(ix86_secondary_memory_needed): Always true for cross-MMX classes.
Always true for cross-SSE1 classes. Rationalize conditionals.
* config/i386/i386.h (SSE_CLASS_P, MMX_CLASS_P): Use straight equality.
* config/i386/i386.md (movsi_1): Add MMX/SSE zeros. Fix alternatives
for SSE1. Don't check TARGET_INTER_UNIT_MOVES.
(movdi_2): Add MMX/SSE zeros.
(movdi_1_rex64): Likewise. Don't check TARGET_INTER_UNIT_MOVES.
(movsf_1): Don't check TARGET_INTER_UNIT_MOVES.
(zero_extendsidi2_32, zero_extendsidi2_rex64): Likewise.
(movsi_1_nointernunit, movdi_1_rex64_nointerunit): Remove.
(movsf_1_nointerunit, zero_extendsidi2_32_1): Remove.
(zero_extendsidi2_rex64_1): Remove.
(MOV0 peephole): Check GENERAL_REG_P.
2005-01-19 Richard Henderson <rth@redhat.com>
PR target/19427
* config/i386/i386.c (ix86_expand_vector_set): Fix third and fourth
shufps elements.
(ix86_expand_vector_extract): Likewise.
2005-01-19 Richard Henderson <rth@redhat.com>
PR middle-end/19304
* expr.c (emit_move_change_mode): New argument force; use
simplify_gen_subreg if true.
(emit_move_via_alt_mode): Merge into ...
(emit_move_via_integer): ... here.
(emit_move_ccmode): Use emit_move_change_mode directly.
2005-01-19 Richard Henderson <rth@redhat.com>
PR target/19518
* config/alpha/alpha.c (alpha_rtx_costs): Handle HIGH.
(alpha_preferred_reload_class): Handle CONST_VECTOR.
(alpha_emit_set_const_1): Add no_output parameter; don't emit
rtl if true.
(alpha_emit_set_const): Likewise. Make static.
(alpha_emit_set_long_const): Make static.
(alpha_extract_integer): Split out from alpha_expand_mov.
(alpha_split_const_mov): Likewise.
(alpha_expand_mov): Use them. Handle CONST_VECTOR.
(alpha_legitimate_constant_p): New.
* config/alpha/alpha-protos.h: Update.
* config/alpha/alpha.h (REGISTER_MOVE_COST): Correct fp<->gp cost.
(LEGITIMATE_CONSTANT_P): Re-implement with a function.
* config/alpha/alpha.md (movsi): Add n alternative.
(movsi_nt_vms, movdi_er_nofix, movdi_er_fix, movdi_fix): Likewise.
(mov<VEC>_fix, mov<VEC>_nofix): Add i alternative.
(splitters for all of the above): Use alpha_split_const_mov.
* config/alpha/predicates.md (non_add_const_operand): New.
(non_zero_const_operand): New.
(input_operand): Use alpha_legitimate_constant_p after reload.
2005-01-19 Zdenek Dvorak <dvorakz@suse.cz>
PR tree-optimization/19038
* tree-ssa-loop-ivopts.c (allow_ip_end_pos_p): New function.
(add_candidate): Add ivs with increment in latch only if
allow_ip_end_pos_p is true.
(determine_iv_cost): Use empty_block_p.
2005-01-19 Daniel Berlin <dberlin@dberlin.org>
* cfganal.c (compute_dominance_frontiers_1): Replace with new algorithm
(compute_dominance_frontiers): Ditto.
2005-01-19 Ralf Corsepius <ralf.corsepius@rtems.org>
PR target/19529
* config/sh/t-rtems: New.
* config.gcc (sh-*-rtems*): Reflect having added config/sh/t-rtems.
2005-01-19 Zdenek Dvorak <dvorakz@suse.cz>
* tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Always subtract
the offset of the selected field.
2005-01-19 Kazu Hirata <kazu@cs.umass.edu>
* tree-cfg.c (remove_forwarder_block): Fix the check to
prevent a nonlocal label from appearing in the middle of a
basic block.
2005-01-19 Hans-Peter Nilsson <hp@axis.com>
PR rtl-optimization/19462
* reorg.c (find_end_label): Create return insn only if
current_function_epilogue_delay_list is empty.
2005-01-19 Paolo Bonzini <bonzini@gnu.org>
* doc/passes.texi: Remove paragraph mentioning new-ra.
2005-01-19 Jakub Jelinek <jakub@redhat.com>
PR rtl-optimization/15139
* combine.c: Include params.h.
(count_rtxs): New function.
(record_value_for_reg): If replace_rtx would replace at least
2 occurrences of REG in VALUE and TEM is really large, replace REG with
(clobber (const_int 0)) instead of TEM.
* params.def (PARAM_MAX_LAST_VALUE_RTL): New.
* params.h (MAX_LAST_VALUE_RTL): New.
* Makefile.in (combine.o): Depend on $(PARAMS_H).
* doc/invoke.texi (--param max-last-value-rtl=N): Document.
PR c/17297
* c-typeck.c (digest_init): Only call build_vector if all constructor
elements are *_CST nodes.
* gimplify.c (gimplify_init_constructor): Likewise.
PR middle-end/19164
* c-typeck.c (digest_init): Only call build_vector if inside_init
is a CONSTRUCTOR.
2005-01-18 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
* toplev.c (init_asm_output): Remove dead #ifdef.
2005-01-18 Kaz Kojima <kkojima@gcc.gnu.org>
* config/sh/linux.h (TARGET_C99_FUNCTIONS): Define.
2005-01-18 Eric Botcazou <ebotcazou@libertysurf.fr>
* calls.c (expand_call): Check DECL_BUILT_IN_CLASS before
accessing DECL_FUNCTION_CODE.
* dojump.c (do_jump): Likewise.
* gimplify.c (gimplify_call_expr): Likewise.
* predict.c (expr_expected_value): Likewise.
(strip_builtin_expect): Likewise.
* tree-inline.c (estimate_num_insns_1): Likewise.
* tree-ssa-loop-im.c (stmt_cost): Likewise
* fold-const.c (fold): Test for BUILT_IN_NORMAL.
(tree_expr_nonnegative_p): Likewise.
2005-01-18 Eric Botcazou <ebotcazou@libertysurf.fr>
* config/sparc/sparc.c (load_pic_register): Emit the appropriate
variant of the load_pcrel_sym pattern.
* config/sparc/sparc.md (P macro): Move to the top.
(load_pcrel_sym): Macroize using P.
(save_register_window): Likewise.
2005-01-18 Aldy Hernandez <aldyh@redhat.com>
* config/rs6000/rs6000.md ("sunordered"): Disable for e500.
("sordered"): Same.
2005-01-18 Andrew Pinski <pinskia@physics.uc.edu>
PR C/19472
* c-typeck.c (build_asm_expr): Strip nops off
input memory operands.
2005-01-18 David Edelsohn <edelsohn@gnu.org>
* config/rs6000/aix43.h (CPLUSPLUS_CPP_SPEC): Delete
_XOPEN_SOURCE, _XOPEN_SOURCE_EXTENDED, _LARGE_FILE_API.
* config/rs6000/aix51.h (CPLUSPLUS_CPP_SPEC): Same.
* config/rs6000/aix52.h (CPLUSPLUS_CPP_SPEC): Same.
2005-01-18 Joel Sherrill <joel.sherrill@oarcorp.com>
PR target/19379
* config/i386/i386.c (override_options): If the 80387 is disabled,
then do not return FP values using FP registers.
2005-01-18 Kazu Hirata <kazu@cs.umass.edu>
* basic-block.h, c-common.c, c-cppbuiltin.c, c-lang.c,
c-tree.h, cfgbuild.c, cgraph.c, cgraph.h, collect2.c,
combine.c, config.gcc, coverage.h, cse.c, cselib.c,
defaults.h, df.c, dwarf2asm.c, dwarf2out.c, explow.c, expr.c,
flow.c, fold-const.c, gcse.c, ggc-page.c, gimple-low.c,
gimplify.c, ifcvt.c, langhooks-def.h, lcm.c, optabs.h,
output.h, postreload-gcse.c, postreload.c, recog.c,
resource.c, rtl.def, rtlanal.c, sched-deps.c, sched-rgn.c,
targhooks.h, toplev.c, tree-data-ref.c, tree-eh.c,
tree-flow.h, tree-loop-linear.c, tree-mudflap.h, tree-nrv.c,
tree-optimize.c, tree-outof-ssa.c, tree-pass.h,
tree-scalar-evolution.c, tree-ssa-copy.c, tree-ssa-dce.c,
tree-ssa-dse.c, tree-ssa-loop-ivopts.c, tree-ssa-operands.c,
tree-ssa-pre.c, tree-ssa.c, tree-vectorizer.c, tree.def,
unwind-dw2-fde-darwin.c, var-tracking.c: Update copyright.
* config/darwin.c, config/darwin.h, config/freebsd-spec.h,
config/alpha/alpha.c, config/arm/vfp.md,
config/i386/emmintrin.h, config/i386/i386-modes.def,
config/i386/i386-protos.h, config/i386/i386.h,
config/i386/pmmintrin.h, config/i386/ppro.md,
config/i386/predicates.md, config/i386/xmmintrin.h,
config/i860/i860.c, config/ia64/ia64-modes.def,
config/ia64/ia64-protos.h, config/ia64/ia64.h,
config/ia64/ia64.md, config/ia64/itanium1.md,
config/ia64/itanium2.md, config/ia64/predicates.md,
config/iq2000/iq2000.h, config/mips/linux64.h,
config/rs6000/aix41.h, config/rs6000/aix43.h,
config/rs6000/aix52.h, config/rs6000/darwin-fallback.c,
config/rs6000/rs6000.c, config/rs6000/rs6000.h,
config/rs6000/spe.md, config/sh/sh.md, config/sparc/linux.h,
config/sparc/linux64.h, config/sparc/litecoff.h,
config/sparc/sp64-elf.h, config/sparc/sparc.c,
config/sparc/sparc.h, config/sparc/sparc.md,
config/sparc/sysv4-only.h: Update copyright.
2005-01-18 Richard Henderson <rth@redhat.com>
PR target/19496
* config/i386/i386.c (ix86_expand_fp_movcc): Fail for LTGT and UNEQ.
2005-01-18 Marc Espie <espie@openbsd.org>
* config/i386/openbsdelf.h: Typo.
2005-01-18 Richard Henderson <rth@redhat.com>
* config/i386/i386.c (ix86_expand_fp_movcc): Remove TARGET_IEEE_FP
special case for sse.
* config/i386/predicates.md (sse_comparison_operator): Likewise.
2005-01-18 Dorit Naishlos <dorit@il.ibm.com>
* tree-inline.c (estimate_num_insns_1): Added cases for
ALIGN_INDIRECT_REF, MISALIGNED_INDIRECT_REF, and REALIGN_LOAD_EXPR.
2005-01-18 Eric Botcazou <ebotcazou@libertysurf.fr>
PR rtl-optimization/19296
* combine.c (simplify_comparison): Rewrite the condition under
which a non-paradoxical SUBREG of a PLUS can be lifted when
compared against a constant.
2005-01-18 Andi Kleen <ak@muc.de>
* c-typeck.c: (convert_for_assignment): Check warn_pointer_sign.
* c.opt (-Wpointer-sign): Add.
* doc/invoke.texi: (-Wpointer-sign): Add.
2005-01-18 Uros Bizjak <uros@kss-loka.si>
* config/i386/i386.c (override_options): Revert 2004-11-24 change.
* config/i386/i386.md (fmodsf3, dremsf3, *sinsf2, *cossf2, sincossf3,
*tansf3_1, tansf2, atan2sf3_1, atan2sf3, atansf2, asinsf2, acossf2,
logsf2, log10sf2, log2sf2, log1psf2, logbsf2, ilogbsf2, expsf2,
exp10sf2, exp2sf2, expm1sf2, rintsf2, floorsf2, ceilsf2, btruncsf2,
nearbyintsf2): Disable for TARGET_SSE_MATH. Leave patterns enabled
for TARGET_MIX_SSE_I387.
(fmoddf3, dremdf3, *sindf2, *sinextendsfdf2, *cosdf2, *cosextendsfdf2,
sincosdf3, *sincosextendsfdf3, *tandf3_1, tandf2, atan2df3_1,
atan2df3, atandf2, asindf2, acosdf2, logdf2, log10df2, log2df2,
log1pdf2, logbdf2, expdf2, exp10df2, exp2df2, expm1df2, rintdf2,
floordf2, ceildf2, btruncdf2, nearbyintdf2): Disable for
(TARGET_SSE2 && TARGET_SSE_MATH). Leave patterns enabled for
TARGET_MIX_SSE_I387.
(atan2sf3, atan2df3, atan2xf3): Remove register constraints
from expander.
2005-01-18 Uros Bizjak <uros@kss-loka.si>
PR target/19424
* config/i386/mmx.md (*movv2sf_internal_rex64, *movv2sf_internal):
Add movaps alternative for xmm reg->reg move.
2005-01-17 Jeff Law <law@redhat.com>
* tree-ssa-dom.c (tree_ssa_dominator_optimize): Clear SSA_NAME_VALUE
at the end of the main DOM loop rather than just before DOM exits.
2005-01-17 Diego Novillo <dnovillo@redhat.com>
PR tree-optimization/19121
* tree-ssa-alias.c (compute_flow_sensitive_aliasing): When
adding aliases to a name tag, also add them to the pointer's
type tag.
* tree-ssa-copy.c (merge_alias_info): Do not merge flow
sensitive alias info at all. Only check that the two pointers
have compatible pointed-to sets.
* tree-ssa.c (verify_name_tags): Verify that the alias set of
a pointer's type tag is a superset of the alias set of the
pointer's name tag.
2005-01-17 James E Wilson <wilson@specifixinc.com>
PR target/19357
* config/ia64/ia64.md (movxf): Handle general register source. Adjust
comment to document why.
2005-01-17 Richard Henderson <rth@redhat.com>
* config/i386/sse.md (smaxv4sf3_finite, sse_vmsmaxv4sf3_finite,
sminv4sf3_finite, sse_vmsminv4sf3_finite, smaxv2df3_finite,
sse2_vmsmaxv2df3_finite, sminv2df3_finite,
sse2_vmsminv2df3_finite): New.
(smaxv4sf3, sse_vmsmaxv4sf3, sminv4sf3, sse_vmsminv4sf3, smaxv2df3,
sse2_vmsmaxv2df3, sminv2df3, sse2_vmsminv2df3): Remove commutative.
Force op1 into register.
2005-01-17 Kelley Cook <kcook@gcc.gnu.org>
* Makefile.in (STAGEMOVESTUFF): Stage all the stamp files to prevent
bubblestrap from always rebuilding build directory.
2005-01-17 Ulrich Weigand <uweigand@de.ibm.com>
* config/s390/s390.md ("*clc"): Remove incorrect '='.
("*cmpmem_short"): Likewise.
2005-01-17 Steven Bosscher <stevenb@suse.de>
* basic-block.h: Document BB_* flags.
* regrename.c (copyprop_hardreg_forward): Don't use BB_VISITED,
use an sbitmap instead.
* sched-rgn.c (compute_trg_info): Likewise.
2005-01-17 Richard Sandiford <rsandifo@redhat.com>
* config.gcc (mips64*-*-linux*): Set the default abi to n32. Remove
redundant target_cpu_default and extra_parts lines. Use the default
"from-abi" ISA.
* config/mips/linux64.h (DRIVER_DEFAULT_ABI_SELF_SPEC): Delete.
(SUBTARGET_EXTRA_SPECS): Delete.
(DRIVER_SELF_SPECS): Remove architecture lines. Set the ABI directly.
(SUBTARGET_ASM_SPEC): Remove -mabi=n32 and -mabi=64 mappings.
* config/mips/t-linux64 (MULTILIB_DIRNAMES): Use "32" for -mabi=32
and "n32" for -mabi=n32.
2005-01-17 Ian Lance Taylor <ian@airs.com>
PR c/5675
* c-typeck.c (build_c_cast): Revert patch of 2003-02-16: don't
fold constant variables into initial values.
2005-01-17 Kazu Hirata <kazu@cs.umass.edu>
* tree-cfg.c (tree_can_merge_blocks_p): Reorder two checks.
* tree-cfg.c (tree_forwarder_block_p): Speed up by walking
through the statements backward.
2005-01-17 Ian Lance Taylor <ian@airs.com>
PR middle-end/13127:
* tree-inline.c (expand_call_inline): Set TREE_NO_WARNING on
a variable set to the return value of the inlined function.
2005-01-17 Mark Dettinger <dettinge@de.ibm.com>
* rtlanal.c (rtx_cost): Assign cost of 0 to a SUBREG
when modes are tieable.
2005-01-17 Ranjit Mathew <rmathew@hotmail.com>
* gthr-posix.h (__gthread_active_p): Use pthread_cancel instead
of pthread_create to find out if threads are enabled.
* gthr-posix95.h (__gthread_active_p): Likewise.
2005-01-17 Paolo Bonzini <bonzini@gnu.org>
* common.opt (-fnew-ra): Remove.
* ra*.*: Remove.
* toplev.h (flag_new_regalloc): Remove.
* Makefile.in (ra*.*): Don't mention.
* passes.c (rest_of_handle_new_regalloc): Remove.
(rest_of_handle_combine, rest_of_compilation): Always consider
flag_new_regalloc as false.
* doc/invoke.texi: Don't document -fnew-ra.
2005-01-17 Paolo Bonzini <bonzini@gnu.org>
* bb-reorder.c (fix_edges_for_rarely_executed_code): Remove
last parameter to reg_scan.
* loop.c (loop_optimize): Likewise.
* passes.c (rest_of_handle_tracer, rest_of_handle_if_conversion,
rest_of_handle_web, rest_of_handle_cfg, rest_of_handle_jump_bypass,
rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2,
rest_of_handle_gcse, rest_of_handle_loop_optimize,
rest_of_handle_loop2, rest_of_handle_jump2): Likewise.
* regclass.c (reg_scan): Likewise, for the declaration.
* rtl.h (reg_scan): Likewise, for the prototype.
2005-01-17 Kazu Hirata <kazu@cs.umass.edu>
* tree-ssa-dom.c (tree_ssa_dominator_optimize): Don't call
mark_dfs_back_edges.
2005-01-16 Daniel Berlin <dberlin@dberlin.org>
* tree-ssa-pre.c (add_to_sets): s1 may be NULL.
(compute_avail): Uses don't go in tmp_gen.
2005-01-16 Steven Bosscher <stevenb@suse.de>
* ggc-page.c (ggc_alloc_stat): Use __builtin_ctzl instead of a
loop to look for a free slot in a page entry.
2005-01-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
PR target/16304
* defaults.h (TARGET_DEFERRED_OUTPUT_DEFS): Provide default.
* toplev.c (compile_file): Call process_pending_assemble_output_defs
just before targetm.asm_out.file_end.
* tree.h (process_pending_assemble_output_defs): Declare.
* varasm.c (assemble_output_def, process_pending_assemble_output_defs):
New functions.
(assemble_alias): Defer generation of assembly code for defines when
TARGET_DEFERRED_OUTPUT_DEFS is true.
* config/rs6000/aix41.h (TARGET_DEFERRED_OUTPUT_DEFS): Define.
* config/rs6000/aix43.h (TARGET_DEFERRED_OUTPUT_DEFS): Define.
* doc/tm.texi (TARGET_DEFERRED_OUTPUT_DEFS): document.
2005-01-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
PR target/19336
* pa.c (pa_scalar_mode_supported_p): New function.
(TARGET_SCALAR_MODE_SUPPORTED_P): Define.
* pa.h (MIN_UNITS_PER_WORD): Add comment.
* pa-protos.h (prefetch_operand): Delete.
(prefetch_cc_operand, prefetch_nocc_operand): New declations.
* pa.c (prefetch_operand): Delete.
(prefetch_cc_operand, prefetch_nocc_operand): New functions.
* pa.h (EXTRA_CONSTRAINT): Add `W' constraint.
(PREDICATE_CODES): Delete prefetch_operand. Add prefetch_cc_operand
and prefetch_nocc_operand.
* pa.md (prefetch): Rework to avoid reload problems handling short
displacements when a cache control completer needs to be provided.
(prefetch_32, prefetch_64): Delete.
(prefetch_cc, prefetch_nocc): New patterns.
2005-01-15 David Edelsohn <edelsohn@gnu.org>
* config/rs6000/aix52.h (CPLUSPLUS_CPP_SPEC): Revert previous change.
2005-01-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
PR ada/19388
* pa.c (pa_asm_output_aligned_common): Warn if specified alignment
exceeds maximum alignment for global common data.
* pa64-hpux.h (MAX_OFILE_ALIGNMENT): Define to 32768.
* som.h (MAX_OFILE_ALIGNMENT): Likewise.
2004-01-15 Roger Sayle <roger@eyesopen.com>
* tree-ssa-dom.c (extract_range_from_cond): Correct condition.
2004-01-15 Roger Sayle <roger@eyesopen.com>
* harg-reg-set.h (reg_class_names): Prototype global array.
* regclass.c (reg_class_names): Declare here and initialize to
REG_CLASS_NAMES.
(dump_regclass): Remove local declaration of reg_class_names.
(regclass): Likewise.
* cfg.c (dump_flow_info): Likewise.
* ra-debug.c (reg_class_names): Likewise.
* regrename.c (reg_class_names): Likewise.
* reload.c (reg_class_names): Likewise.
* reload1.c (spill_failure): Likewise.
* config/m68hc11/m68hc11.c (reg_class_names): Likewise.
2005-01-15 Ulrich Weigand <uweigand@de.ibm.com>
* config/s390/s390.md ("reload_outti"): Remove predicate for
output operand. Abort if operand is not a MEM.
("reload_outdi", "reload_outdf"): Likewise.
2005-01-15 Marc Espie <espie@openbsd.org>
* config.gcc (*-*-openbsd*): Set HAS_LIBC_R for OpenBSD <= 3.2.
(i[34567]86-*-openbsd*): Switch to ELF for OpenBSD >= 3.4.
* config/openbsd.h: Fix C++ includes for native configurations.
Add proper OS_CPP_BUILTINS. Fix libspec for recent OpenBSD.
Add trampoline support.
* config/i386/openbsdelf.h: New.
2005-01-15 Marc Espie <espie@openbsd.org>
* collect2.c (main): Explicitly parse -dynamic-linker option.
2005-01-15 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/19060
* tree-ssa-dom.c (extract_range_from_cond) <case LT_EXPR, GT_EXPR>:
Return 0 if op1 <= TYPE_MIN_VALUE () resp. op1 >= TYPE_MAX_VALUE ().
(simplify_cond_and_lookup_avail_expr): Add assert for dummy == 0
and handle extract_range_from_cond returning false.
* fold-const.c (fold): Optimize comparisons with min/max even for
width > HOST_BITS_PER_WIDE_INT.
2005-01-15 Ralf Corsepius <ralf.corsepius@rtems.org>
* config/mips/rtems.h (MIPS_DEFAULT_GVALUE): Set to 0.
* config/mips/t-rtems (MULTILIBS_DIRNAMES,MULTILIB_OPTIONS):
Remove little endian multilib variants.
Add mips32 multilib variant.
2005-01-15 Kazu Hirata <kazu@cs.umass.edu>
* explow.c (copy_all_reg, stabilize): Remove.
* expr.h: Remove the corresponding prototypes.
* rtlanal.c (regs_set_between_p): Remove.
* rtl.h: Remove the corresponding prototype.
2005-01-14 David Edelsohn <edelsohn@gnu.org>
* config/rs6000/rs6000.c (rs6k_nonimmediate_operand): Rename
to rs6000_nonimmediate_operand.
* config/rs6000/rs6000.h (PREDICATE_CODES): Rename
rs6k_nonimmediate_operand to rs6000_nonimmediate_operand.
* config/rs6000/rs6000.md (movsi_internal1): Rename predicate to
rs6000_nonimmediate_operand.
* config/rs6000/spe.md (movdf_e500_double): Rename predicate to
rs6000_nonimmediate_operand.
2005-01-14 Andrew Pinski <pinskia@physics.uc.edu>
* tree-ssa-alias.c (pass_may_alias): Add TODO_verify_stmts.
2005-01-14 Aldy Hernandez <aldyh@redhat.com>
* config/rs6000/rs6000.h (CLASS_MAX_NREGS): DF goes in 1 register
on e500v2.
(CANNOT_CHANGE_MODE_CLASS): Restrict DI mode changes on e500v2.
(PREDICATE_CODES): Add rs6k_nonimmediate_operand.
* config/rs6000/rs6000.c (invalid_e500_subreg): New.
(rs6k_nonimmediate_operand): New.
(rs6000_legitimate_offset_address_p): Handle DI modes on e500v2
correctly.
(legitimate_lo_sum_address_p): Same.
(rs6000_legitimize_address): Same.
(rs6000_legitimize_reload_address): Same.
(rs6000_legitimate_address): Same.
(spe_build_register_parallel): Pass DF and DC modes in a DI
register.
* config/rs6000/rs6000.md ("*movsi_internal1"): Change predicate
to rs6k_nonimmediate_operand.
* config/rs6000/spe.md ("*frob_df_di"): New.
("*frob_di_df"): New.
("*frob_di_df_2"): New.
("*mov_sidf_e500_subreg0"): New.
("*mov_sidf_e500_subreg4"): New.
("*movdf_e500_double"): Change predicate to
rs6k_nonimmediate_operand.
2005-01-14 Aldy Hernandez <aldyh@redhat.com>
* postreload.c (move2add_note_store): Only call
trunc_int_for_mode on scalar integers.
2005-01-14 Steven Bosscher <stevenb@suse.de>
* tree-ssa-dce.c (visited_control_parents): New sbitmap to
replace BB_VISITED uses.
(find_obviously_necessary_stmts): Don't clear BB_VISITED.
(propagate_necessity): Check the bitmap instead of BB_VISITED.
(tree_dce_done): Free visited_control_parents.
(perform_tree_ssa_dce): Allocate and clear it.
* tree-ssa-pre.c (compute_antic_aux): Make non-recursive.
(compute_antic): Iterate from here using a DFS. Use an sbitmap
instead of BB_VISITED.
2005-01-14 Kazu Hirata <kazu@cs.umass.edu>
* c-tree.h, coverage.h, langhooks-def.h, optabs.h, output.h,
rtl.h, targhooks.h, tree-flow.h, tree-mudflap.h, tree.h:
Remove unused prototypes.
2005-01-14 Aldy Hernandez <aldyh@redhat.com>
* config/rs6000/rs6000.c (rs6000_stack_info): Fix caching of SPE
64-bit register usage.
(spe_func_has_64bit_regs_p): Add FIXME note.
2005-01-14 Aldy Hernandez <aldyh@redhat.com>
* config/rs6000/rs6000.c (rs6000_generate_compare): Replace
flag_finite_math_only with flag_unsafe_math_optimizations.
2005-01-14 J. D. Johnston <jjohnst@us.ibm.com>
* config/s390/tpf-unwind.h (s390_fallback_frame_state): Correct
end-of-stack check.
(__tpf_eh_return): Copy TPF private stack area from the module
boundary stack frame. Add check for when module addresses are
equal, but no stub address is found.
2005-01-14 Richard Earnshaw <rearnsha@arm.com>
PR target/7525
* arm.h (struct machine_function): Add call_via field.
(thumb_call_via_label): Declare.
* arm.c (thumb_call_via_label): New variable.
(thumb_call_reg_needed): New variable.
(arm_output_function_epilogue): For Thumb code, output any per-function
call-indirect trampolines.
(thumb_call_via_reg): New function.
(arm_file_end): New function.
(TARGET_ASM_FILE_END): Call arm_file_end.
(aof_file_end): Likewise.
* arm-protos.h (thumb_call_via_reg): Declare.
* arm.md (call_reg_thumb, call_value_reg_thumb): Call
thumb_call_via_reg in normal case.
2005-01-14 Jakub Jelinek <jakub@redhat.com>
PR middle-end/19084
PR rtl-optimization/19348
* recog.c (peephole2_optimize): Do global life update if some peephole
decides it doesn't need at least one of its inputs and that change
influences liveness at the start of the basic block.
* basic-block.h (EXECUTE_IF_AND_COMPL_IN_REG_SET): Needs 2 REGSET
arguments instead of 1.
2005-01-14 Eric Botcazou <ebotcazou@libertysurf.fr>
PR middle-end/18820
* varasm.c (initializer_constant_valid_p) <ADDR_EXPR>: Return
zero for nested functions needing a static chain or functions
with a non-constant address.
2005-01-13 Roger Sayle <roger@eyesopen.com>
* simplify-rtx.c (simplify_binary_operation) <AND>: Optimize
(and (sign_extend X) C) into (zero_extend (and X C)).
2005-01-13 David O'Brien <obrien@FreeBSD.org>
* config/freebsd-spec.h: Make KSE pthread lib logic the default.
2005-01-13 Richard Henderson <rth@redhat.com>
PR target/19009
PR target/19250
PR target/19252
* config/i386/i386.md (cmpdf, cmpsf, bunordered, bordered, buneq,
bunge, bungt, bunle, bunlt, bltgt): Enable for TARGET_SSE_MATH,
not just TARGET_SSE.
(cmpfp_i_387): Rename from cmpfp_i. Move after sse patterns.
(cmpfp_i_mixed): Rename from cmpfp_i_sse; use for TARGET_MIX_SSE_I387.
(cmpfp_i_sse): Rename from cmpfp_i_sse_only; use for TARGET_SSE_MATH.
(cmpfp_iu_mixed, cmpfp_iu_sse, cmpfp_iu_387): Similarly.
(fp_jcc_1_mixed, fp_jcc_1_sse, fp_jcc_1_387): Similarly.
(fp_jcc_2_mixed, fp_jcc_2_sse, fp_jcc_2_387): Similarly.
(fp_jcc_3_387, fp_jcc_4_387, fp_jcc_5_387, fp_jcc_6_387,
fp_jcc_7_387, fp_jcc_8_387): Rename from fp_jcc_N.
(movdicc_c_rex64): Rename with '*'.
(movsfcc, movdfcc): Add checks for 387 and sse math to condition.
(movsfcc_1_sse_min, movsfcc_1_sse_max, movsfcc_1_sse): New.
(movsfcc_1_387): Rename from movsfcc_1.
(movdfcc_1_sse_min, movdfcc_1_sse_max, movdfcc_1_sse): New.
(movdfcc_1, movdfcc_1_rex64): Add check for 387.
(sminsf3, smaxsf3, smindf3, smaxdf3): New.
(minsf3, minsf, minsf_nonieee, minsf_sse, mindf3, mindf,
mindf_nonieee, mindf_sse, maxsf3, maxsf, maxsf_nonieee, maxsf_sse,
maxdf3, maxdf, maxdf_nonieee, maxdf_sse, sse_movsfcc, sse_movsfcc_eq,
sse_movdfcc, sse_movdfcc_eq, sse_movsfcc_const0_1,
sse_movsfcc_const0_2, sse_movsfcc_const0_3, sse_movsfcc_const0_4,
sse_movdfcc_const0_1, sse_movdfcc_const0_2, sse_movdfcc_const0_3,
sse_movdfcc_const0_4): Remove.
* config/i386/i386.c (ix86_expand_fp_movcc): For TARGET_SSE_MATH,
recognize min/max early. Update for changed sse cmove patterns.
(ix86_split_sse_movcc): New.
* config/i386/i386-protos.h: Update.
2005-01-13 Steven Bosscher <stevenb@suse.de>
* tree-ssa-dse.c (fix_phi_uses): Use SSA operand iterators.
(fix_stmt_v_may_defs): Likewise.
2005-01-13 Richard Henderson <rth@redhat.com>
* config/i386/i386.c (ix86_expand_fp_absneg_operator): Use elt_mode
for converting the mask.
2005-01-13 David Edelsohn <edelsohn@gnu.org>
* config/rs6000/aix52.h (CPLUSPLUS_CPP_SPEC): Change _XOPEN_SOURCE
definition to 600.
2005-01-13 Richard Henderson <rth@redhat.com>
* config/i386/i386.c (IX86_BUILTIN_MOVQ, IX86_BUILTIN_LOADD,
IX86_BUILTIN_STORED, IX86_BUILTIN_MOVQ2DQ,
IX86_BUILTIN_MOVDQ2Q): Remove.
(IX86_BUILTIN_VEC_EXT_V4SI): New.
(ix86_init_mmx_sse_builtins, ix86_expand_builtin): Update to match.
(ix86_expand_vector_extract): For V4S[FI], extract element 0 after
shuffling.
* config/i386/sse.md (sse_concatv2sf): Accept zero operand 2.
(sse2_pextrw): Fix immediate constraint.
(sse2_loadq, sse2_loadq_rex64): Remove.
* config/i386/emmintrin.h (_mm_cvtsi128_si32, _mm_cvtsi128_si64x):
Use __builtin_ia32_vec_ext_<size>.
(_mm_cvtsi32_si128, _mm_cvtsi64x_si128): Use _mm_set_epi<size>.
2005-01-13 Aldy Hernandez <aldyh@redhat.com>
* function.c (assign_parm_setup_block): Look inside original
entry_parm when inspecting PARALLEL.
2005-01-13 Ralf Corsepius <ralf.corsepius@rtems.org>
Joel Sherrill <joel@oarcorp.com>
PR target/19399
* gthr-rtems.h (__gthread_recursive_mutex_t): New type.
(__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION): Define to
rtems_gxx_recursive_mutex_init.
(__gthread_recursive_mutex_lock): New function.
(__gthread_recursive_mutex_trylock): Likewise.
(__gthread_recursive_mutex_unlock): Likewise.
2005-01-13 Ralf Corsepius <ralf.corsepius@rtems.org>
* config/i386/t-rtems-i386: Multilib on -mtune instead of -mcpu.
2005-01-13 Jan Beulich <jbeulich@novell.com>
* config/ia64/ia64.md (ashlti3, ashlti3_internal): New.
(ashrti3_internal): Indicate output is early clobber. Generate result
into output rather than first input. Use move for low word of output
if shift count is exactly 64.
(lshrti3_internal): Likewise.
2005-01-13 Hans-Peter Nilsson <hp@bitrange.com>
PR target/18329
PR target/18330
* reload1.c (delete_output_reload): Don't delete an output reload
if the pseudo lives longer than a single basic block. Adjust and
improve wording of comment.
2005-01-12 Andrew Pinski <pinskia@physics.uc.edu>
PR target/19334
* config/darwin.c (machopic_select_section): Use TYPE_SIZE_UNIT instead
of TYPE_SIZE where we mean the number of bytes.
2005-01-12 Aldy Hernandez <aldyh@redhat.com>
* function.c (assign_parm_setup_block): Relax condition on
multi-register optimization.
2005-01-12 Nick Clifton <nickc@redhat.com>
* config/sh/sh.md (udivsi3_sh2a, divsi3_sh2a): Give these patterns
an "in_delay_slot" attribute of "no" to prevent them being used in
delay slots. This is forbidden because they might generate
exceptions.
2005-01-12 Alan Modra <amodra@bigpond.net.au>
PR target/19389
* config/rs6000/rs6000.md (movtf_internal): Replace r->o and m->r
with r->Y and Y->r.
2005-01-12 Nick Clifton <nickc@redhat.com>
* config/iq2000/iq2000.h (ASM_SPEC): Undefine (to stop -Qy being
passed on to GAS) but do not define, as GAS no longer supports or
needs the -m2000 option.
2005-01-11 Roger Sayle <roger@eyesopen.com>
* builtins.c (fold_builtin_fabs): Convert argument to the appropriate
type as args of unprototyped builtins aren't automatically promoted.
(fold_builtin_abs): Likewise.
2005-01-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* Makefile.in: Set a `build-warn' variable.
2005-01-11 Zdenek Dvorak <dvorakz@suse.cz>
PR tree-optimization/17949
* tree-ssa-loop-ivopts.c (may_be_unaligned_p): New function.
(find_interesting_uses_address): Use it.
2005-01-11 Aldy Hernandez <aldyh@redhat.com>
* regrename.c (kill_value): Handle subreg's that won't simplify.
2005-01-11 Richard Henderson <rth@redhat.com>
PR target/13366
* config/i386/i386.h (enum ix86_builtins): Move ...
* config/i386/i386.c: ... here.
(IX86_BUILTIN_MOVDDUP, IX86_BUILTIN_MMX_ZERO, IX86_BUILTIN_PEXTRW,
IX86_BUILTIN_PINSRW, IX86_BUILTIN_LOADAPS, IX86_BUILTIN_LOADSS,
IX86_BUILTIN_STORESS, IX86_BUILTIN_SSE_ZERO, IX86_BUILTIN_PEXTRW128,
IX86_BUILTIN_PINSRW128, IX86_BUILTIN_LOADAPD, IX86_BUILTIN_LOADSD,
IX86_BUILTIN_STOREAPD, IX86_BUILTIN_STORESD, IX86_BUILTIN_STOREHPD,
IX86_BUILTIN_STORELPD, IX86_BUILTIN_SETPD1, IX86_BUILTIN_SETPD,
IX86_BUILTIN_CLRPD, IX86_BUILTIN_LOADPD1, IX86_BUILTIN_LOADRPD,
IX86_BUILTIN_STOREPD1, IX86_BUILTIN_STORERPD, IX86_BUILTIN_LOADDQA,
IX86_BUILTIN_STOREDQA, IX86_BUILTIN_CLRTI,
IX86_BUILTIN_LOADDDUP): Remove.
(IX86_BUILTIN_VEC_INIT_V2SI, IX86_BUILTIN_VEC_INIT_V4HI,
IX86_BUILTIN_VEC_INIT_V8QI, IX86_BUILTIN_VEC_EXT_V2DF,
IX86_BUILTIN_VEC_EXT_V2DI, IX86_BUILTIN_VEC_EXT_V4SF,
IX86_BUILTIN_VEC_EXT_V8HI, IX86_BUILTIN_VEC_EXT_V4HI,
IX86_BUILTIN_VEC_SET_V8HI, IX86_BUILTIN_VEC_SET_V4HI): New.
(ix86_init_builtins): Make static.
(ix86_init_mmx_sse_builtins): Update for changed builtins.
(ix86_expand_binop_builtin): Only use ix86_fixup_binary_operands
if all the modes match. Otherwise, fake it.
(get_element_number, ix86_expand_vec_init_builtin,
ix86_expand_vec_ext_builtin, ix86_expand_vec_set_builtin): New.
(ix86_expand_builtin): Make static. Update for changed builtins.
(ix86_expand_vector_move_misalign): Use sse2_loadlpd with zero
operand instead of sse2_loadsd. Cast sse1 fallback to V4SFmode.
(ix86_expand_vector_init_duplicate): New.
(ix86_expand_vector_init_low_nonzero): New.
(ix86_expand_vector_init_one_var, ix86_expand_vector_init_general):
Split out from ix86_expand_vector_init; handle integer modes.
(ix86_expand_vector_init): Use them.
(ix86_expand_vector_set, ix86_expand_vector_extract): New.
* config/i386/i386-protos.h: Update.
* config/i386/predicates.md (reg_or_0_operand): New.
* config/i386/mmx.md (mov<MMXMODEI>_internal): Add 'r' variants.
(movv2sf_internal): Likewise. And a splitter to match them all.
(vec_dupv2sf, mmx_concatv2sf, vec_setv2sf, vec_extractv2sf,
vec_initv2sf, vec_dupv4hi, vec_dupv2si, mmx_concatv2si, vec_setv2si,
vec_extractv2si, vec_initv2si, vec_setv4hi, vec_extractv4hi,
vec_initv4hi, vec_setv8qi, vec_extractv8qi, vec_initv8qi): New.
(mmx_pinsrw): Fix operand ordering.
* config/i386/sse.md (movv4sf splitter): Use direct pattern,
rather than sse_loadss expander.
(movv2df splitter): Similarly.
(sse_loadss, sse_loadlss): Remove.
(vec_dupv4sf, sse_concatv2sf, sse_concatv4sf, vec_extractv4sf_0): New.
(vec_setv4sf, vec_setv2df): Use ix86_expand_vector_set.
(vec_extractv4sf, vec_extractv2df): Use ix86_expand_vector_extract.
(sse3_movddup): Rename with '*'.
(sse3_movddup splitter): Use gen_rtx_REG instead of gen_lowpart.
(sse2_loadsd): Remove.
(vec_dupv2df_sse3): Rename from sse3_loadddup.
(vec_dupv2df, vec_concatv2df_sse3, vec_concatv2df): New.
(sse2_pinsrw): Fix argument ordering.
(sse2_loadld, sse2_loadq): Add sse1 alternatives.
(sse2_stored): Remove 'r' destination.
(vec_dupv4si, vec_dupv2di, sse2_concatv2si, sse1_concatv2si,
vec_concatv4si_1, vec_concatv2di, vec_setv2di, vec_extractv2di,
vec_initv2di, vec_setv4si, vec_extractv4si, vec_initv4si,
vec_setv8hi, vec_extractv8hi, vec_initv8hi, vec_setv16qi,
vec_extractv16qi, vec_initv16qi): New.
* config/i386/emmintrin.h (__m128i, __m128d): Use typedef, not define.
(_mm_set_sd, _mm_set1_pd, _mm_setzero_pd, _mm_set_epi64x,
_mm_set_epi32, _mm_set_epi16, _mm_set_epi8, _mm_setzero_si128): Use
constructor form.
(_mm_load_pd, _mm_store_pd): Use plain dereference.
(_mm_load_si128, _mm_store_si128): Likewise.
(_mm_load1_pd): Use _mm_set1_pd.
(_mm_load_sd): Use _mm_set_sd.
(_mm_store_sd, _mm_storeh_pd): Use __builtin_ia32_vec_ext_v2df.
(_mm_store1_pd, _mm_storer_pd): Use _mm_store_pd.
(_mm_set_epi64): Use _mm_set_epi64x.
(_mm_set1_epi64x, _mm_set1_epi64, _mm_set1_epi32, _mm_set_epi16,
_mm_set1_epi8, _mm_setr_epi64, _mm_setr_epi32, _mm_setr_epi16,
_mm_setr_epi8): Use _mm_set_foo form.
(_mm_loadl_epi64, _mm_movpi64_epi64, _mm_move_epi64): Use _mm_set_epi64.
(_mm_storel_epi64, _mm_movepi64_pi64): Use __builtin_ia32_vec_ext_v2di.
(_mm_extract_epi16): Use __builtin_ia32_vec_ext_v8hi.
(_mm_insert_epi16): Use __builtin_ia32_vec_set_v8hi.
* config/i386/mmintrin.h (_mm_setzero_si64): Use plain cast.
(_mm_set_pi32): Use __builtin_ia32_vec_init_v2si.
(_mm_set_pi16): Use __builtin_ia32_vec_init_v4hi.
(_mm_set_pi8): Use __builtin_ia32_vec_init_v8qi.
(_mm_set1_pi16, _mm_set1_pi8): Use _mm_set_piN variant.
* config/i386/pmmintrin.h (_mm_loaddup_pd): Use _mm_load1_pd.
(_mm_movedup_pd): Use _mm_shuffle_pd.
* config/i386/xmmintrin.h (_mm_setzero_ps, _mm_set_ss,
_mm_set1_ps, _mm_set_ps, _mm_setr_ps): Use constructor form.
(_mm_cvtpi16_ps, _mm_cvtpu16_ps, _mm_cvtpi8_ps, _mm_cvtpu8_ps,
_mm_cvtps_pi8, _mm_cvtpi32x2_ps): Avoid __builtin_ia32_mmx_zero;
Use _mm_setzero_ps.
(_mm_load_ss, _mm_load1_ps): Use _mm_set* form.
(_mm_load_ps, _mm_loadr_ps): Use raw dereference.
(_mm_store_ss): Use __builtin_ia32_vec_ext_v4sf.
(_mm_store_ps): Use raw dereference.
(_mm_store1_ps): Use _mm_storeu_ps.
(_mm_storer_ps): Use _mm_store_ps.
(_mm_extract_pi16): Use __builtin_ia32_vec_ext_v4hi.
(_mm_insert_pi16): Use __builtin_ia32_vec_set_v4hi.
2005-01-11 Stan Shebs <shebs@apple.com>
* config/rs6000/rs6000.c (machopic_output_stub): Issue
ldu instead of lwzu if 64-bit -mdynamic-no-pic.
2005-01-11 Andrew Pinski <pinskia@physics.uc.edu>
PR target/18761
* config/rs6000/rs6000.c (rs6000_special_round_type_align):
Skip all DECLs except for FIELD_DECLs.
2005-01-11 Andreas Krebbel <krebbel1@de.ibm.com>
* config/s390/s390.c (override_options): Return error if
-mbackchain, -mpacked-stack and -mhard-float are used together.
(s390_va_start): Remove the backchain && packed-stack special case.
(s390_gimplify_va_arg): Likewise.
* doc/invoke.texi: Remove the ABI incompatibility note.
2005-01-11 Andreas Krebbel <krebbel1@de.ibm.com>
* config/s390/s390.c (struct s390_frame_layout): Remove
save_backchain_p.
(s390_frame_info, s390_emit_prologue): Replace occurrences of
save_backchain_p with TARGET_BACKCHAIN.
2005-01-11 Alan Modra <amodra@bigpond.net.au>
PR target/18916
* builtins.c (std_gimplify_va_arg_expr): Adjust alignment of *ap.
* expr.h (struct locate_and_pad_arg_data): Add "boundary".
* function.c (locate_and_pad_parm): Set new field.
(assign_parm_find_stack_rtl): Use it instead of FUNCTION_ARG_BOUNDARY.
Tweak where_pad test to include "none". Always set mem align for
stack_parm.
(assign_parm_adjust_stack_rtl): Discard stack_parm if alignment
not sufficient for type.
(assign_parm_setup_block): If stack_parm is zero on entry, always
make a new stack local. Block move old stack parm if necessary
to new aligned stack local.
(assign_parm_setup_stack): Use a block move to handle
potentially misaligned entry_parm.
(assign_parms_unsplit_complex): Specify required alignment when
creating stack local.
* calls.c (compute_argument_addresses): Override alignment of stack
arg calculated from its type with the alignment given by
FUNCTION_ARG_BOUNDARY.
(store_one_arg): Likewise.
2005-01-11 Jan Beulich <jbeulich@novell.com>
* config/ia64/ia64.md (zero_extendsidi2): Replace zxt4 by addp4.
Change respective itanium_class attribute to ialu.
(shladdp4_internal): New.
* config/ia64/predicates.md (shladd_log2_operand): New.
2005-01-11 Richard Henderson <rth@redhat.com>
* expr.c (store_constructor): Use rtvec_alloc instead of
alloca+gen_rtvec_v, and an incorrect number passed to alloca.
2005-01-11 Kazu Hirata <kazu@cs.umass.edu>
* config/alpha/alpha.c, config/i386/mmx.md: Fix comment typos.
2005-01-11 Alan Modra <amodra@bigpond.net.au>
* varasm.c (default_section_type_flags_1): Don't set SECTION_SMALL.
* config/ia64/ia64.c (TARGET_SECTION_TYPE_FLAGS): Define.
(TARGET_RWRELOC): Define.
(ia64_rwreloc_section_type_flags): Delete.
(ia64_section_type_flags): New function.
* config/ia64/hpux.h (TARGET_SECTION_TYPE_FLAGS): Don't define.
(TARGET_RWRELOC): Define.
2005-01-10 David Mosberger <davidm@hpl.hp.com>
PR target/18987
* config/ia64/ia64.c (process_set): For alloc insn, only call
process_epilogue is !frame_pointer_needed.
2005-01-10 Roger Sayle <roger@eyesopen.com>
PR c++/19355
* c-common.c (c_common_truthvalue_conversion): TRUTH_NOT_EXPR is a
unary operator and can't be treated as a binary/comparison operator.
2005-01-10 Richard Henderson <rth@redhat.com>
* config/i386/i386.c (ix86_function_value): Use type_natural_mode.
(ix86_return_in_memory): Likewise.
(function_arg_advance): Likewise. Mirror structure in function_arg
for choosing register to advance.
2005-01-10 Kazu Hirata <kazu@cs.umass.edu>
* tree-vectorizer.c, tree.def: Fix comment typos.
2005-01-10 Mark Dettinger <dettinge@de.ibm.com>
* config/s390/s390.c (struct processor_costs): 4 new fields:
ddbr, ddr, debr, der.
(s390_rtx_costs): More precise handling of divide instructions.
2005-01-10 David Edelsohn <edelsohn@gnu.org>
* config/rs6000/t-aix43 (BOOT_LDFLAGS): Define.
2005-01-10 Jan Beulich <jbeulich@novell.com>
* config/ia64/ia64.c (ia64_in_small_data_p): Also handle the section
names resulting from -ffunction-sections/-fdata-sections and linkonce
ones.
* varasm.c (default_section_type_flags_1): Also set SECTION_SMALL
based on the section name. Rearrange the section name comparison logic
slightly so that each section name is compared against at most once.
2005-01-10 Ben Elliston <bje@au.ibm.com>
* doc/invoke.texi (Code Gen Options): Add PowerPC to the list of
targets for which -fPIC reduces limitations on the GOT size.
2005-01-09 Falk Hueffner <falk@debian.org>
* fold-const.c (fold): Also handle EXACT_DIV_EXPR when folding
X/C1 cmpop C2.
2005-01-09 David Edelsohn <edelsohn@gnu.org>
PR target/18720
* collect2.c (main): Set aixrtl_flag for -brtl option.
(resolve_lib_name): Search for .so file extension before .a
if aixrtl_flag set.
2005-01-09 Dorit Naishlos <dorit@il.ibm.com>
* tree-vectorizer.c (vect_enhance_data_refs_alignment): Add dump prints.
(vect_analyze_data_refs_alignment): Add dump prints.
2005-01-09 Ira Rosen <irar@il.ibm.com>
* tree-vectorizer.c (vect_analyze_offset_expr): Use
expr_invariant_in_loop_p.
Initialize outputs first thing in the function.
(vect_update_ivs_after_vectorizer): Call initial_condition_in_loop_num.
(vect_is_simple_iv_evolution): Call initial_condition_in_loop_num.
(vect_analyze_pointer_ref_access): Check that the initial condition of
the access function is loop invariant.
2005-01-09 Richard Henderson <rth@redhat.com>
* config/i386/i386.c (bdesc_2arg): Update names for mmx_ prefixes.
(ix86_expand_builtin): Likewise. Frob MASKMOVQ wrt the input mem
just like MASKMOVDQU. Return plain zero for MMX_ZERO.
* config/i386/i386.md (MMXMODEI, mov<MMXMODEI>,
mov<MMXMODEI>_internal_rex64, mov<MMXMODEI>_internal, movv2sf,
movv2sf_internal_rex64, movv2sf_internal, MMXMODE,
movmisalign<MMXMODE>, mmx_pmovmskb, mmx_maskmovq, mmx_maskmovq_rex,
sse_movntdi, addv8qi3, addv4hi3, addv2si3, mmx_adddi3, ssaddv8qi3,
ssaddv4hi3, usaddv8qi3, usaddv4hi3, subv8qi3, subv4hi3, subv2si3,
mmx_subdi3, sssubv8qi3, sssubv4hi3, ussubv8qi3, ussubv4hi3,
mulv4hi3, smulv4hi3_highpart, umulv4hi3_highpart, mmx_pmaddwd,
sse2_umulsidi3, mmx_iordi3, mmx_xordi3, mmx_anddi3, mmx_nanddi3,
mmx_uavgv8qi3, mmx_uavgv4hi3, mmx_psadbw, mmx_pinsrw, mmx_pinsrw,
mmx_pextrw, mmx_pshufw, eqv8qi3, eqv4hi3, eqv2si3, gtv8qi3, gtv4hi3,
gtv2si3, umaxv8qi3, smaxv4hi3, uminv8qi3, sminv4hi3, ashrv4hi3,
ashrv2si3, lshrv4hi3, lshrv2si3, mmx_lshrdi3, ashlv4hi3, ashlv2si3,
mmx_ashldi3, mmx_packsswb, mmx_packssdw, mmx_packuswb, mmx_punpckhbw,
mmx_punpckhwd, mmx_punpckhdq, mmx_punpcklbw, mmx_punpcklwd,
mmx_punpckldq, emms, addv2sf3, subv2sf3, subrv2sf3, gtv2sf3, gev2sf3,
eqv2sf3, pfmaxv2sf3, pfminv2sf3, mulv2sf3, femms, pf2id, pf2iw,
pfacc, pfnacc, pfpnacc, pi2fw, floatv2si2, pfrcpv2sf2, pfrcpit1v2sf3,
pfrcpit2v2sf3, pfrsqrtv2sf2, pfrsqit1v2sf3, pmulhrwv4hi3, pswapdv2si2,
pswapdv2sf2): Move to mmx.md; rename as necessary with leading
mmx_ prefix.
(mmx_clrdi, pavgusb): Remove.
(ldmxcsr, stmxcsr, sfence, sfence_insn): Move to sse.md; rename
with leading sse_ prefix.
* config/i386/sse.md: Receive them.
* config/i386/mmx.md: New file.
(MMXMODE12, MMXMODE24, mmxvecsize): New.
(subrv2sf3): Turn into expander for normal subtraction.
(mmx_addv2sf3, mmx_mulv2sf3, mmx_smaxv2sf3, mmx_sminv2sf3,
mmx_eqv2sf3, mmx_mulv4hi3, mmx_smulv4hi3_highpart,
mmx_umulv4hi3_highpart, mmx_pmaddwd, mmx_pmulhrwv4hi3, sse2_umulsidi3,
mmx_umaxv8qi3, mmx_smaxv4hi3, mmx_uminv8qi3, mmx_sminv4hi3): Mark
commutative; use ix86_binary_operator_ok.
(mmx_add<MMXMODEI>3, mmx_ssadd<MMXMODE12>3, mmx_usadd<MMXMODE12>3,
mmx_sub<MMXMODEI>3, mmx_sssub<MMXMODE12>3, mmx_ussub<MMXMODE12>3
mmx_ashr<MMXMODE24>3, mmx_lshr<MMXMODE23>3, mmx_ashl<MMXMODE24>3
mmx_eq<MMXMODEI>3, mmx_gt<MMXMODEI>3, mmx_and<MMXMODEI>3,
mmx_nand<MMXMODEI>3, mmx_ior<MMXMODEI>3, mmx_xor<MMXMODEI>3):
Macroize from existing patterns; use ix86_binary_operator_ok.
(mmx_packsswb, mmx_packssdw, mmx_packuswb): Add memory alternative.
(mmx_punpckhbw, mmx_punpcklbw, mmx_punpckhwd, mmx_punpcklwd,
mmx_punpckhdq, mmx_punpckhdq, mmx_punpckldq): Likewise. Model
with vec_select+vec_concat.
(mmx_pshufw, mmx_pshufw_1): Likewise.
(mmx_uavgv8qi3): Merge pavgusb. Model correcty.
(mmx_uavgv4hi3): Model correctly.
* config/i386/mmintrin.h (_mm_and_si64, _mm_andnot_si64, _mm_or_si64,
_mm_xor_si64): Remove casts.
2005-01-09 Zdenek Dvorak <dvorakz@suse.cz>
PR tree-optimization/19224
* tree-scalar-evolution.c (get_instantiated_value,
set_instantiated_value): New functions.
(instantiate_parameters_1): Cache the results.
(instantiate_parameters, resolve_mixers): Initialize and free
the cache.
2005-01-08 David Edelsohn <edelsohn@gnu.org>
* config/i386/i386.md (addhi_4): Correct reference in comment.
(addqi_4): Same.
2005-01-08 Richard Henderson <rth@redhat.com>
* config/i386/emmintrin.h (_mm_cvtsi128_si32): Move earlier.
(_mm_cvtsi128_si64x): Likewise.
(_mm_srl_epi64, _mm_srl_epi32, _mm_srl_epi16, _mm_sra_epi32,
_mm_sra_epi16, _mm_sll_epi64, _mm_sll_epi32, _mm_sll_epi16): Use
the _mm_{srl,sll}i_foo counterpart, and _mm_cvtsi128_si32.
* config/i386/i386-modes.def: Add V16HI, V32QI, V4DF, V8SF.
* config/i386/i386-protos.h: Update.
* config/i386/i386.c (print_operand): Add 'H'.
(ix86_fixup_binary_operands): Split out from ...
(ix86_expand_binary_operator): ... here.
(ix86_fixup_binary_operands_no_copy): New.
(ix86_expand_fp_absneg_operator): Handle vector mode results.
(bdesc_2arg): Update names for sse{,2,3}_ prefixes.
(ix86_init_mmx_sse_builtins): Remove *maskncmp* special cases.
(safe_vector_operand): Use CONST0_RTX.
(ix86_expand_binop_builtin): Use ix86_fixup_binary_operands.
(ix86_expand_builtin): Merge CODE_FOR_sse2_maskmovdqu_rex64 and
CODE_FOR_sse2_maskmovdqu. Special case SSE version of MASKMOVDQU
expansion. Update names for sse{,2,3}_ prefixes. Remove *maskncmp*
special cases.
* config/i386/i386.h (IX86_BUILTIN_CMPNGTSS): New.
(IX86_BUILTIN_CMPNGESS): New.
* config/i386/i386.md (UNSPEC_FIX_NOTRUNC): New.
(attr type): Add sselog1.
(attr unit, attr memory): Handle it.
(movti, movti_internal, movti_rex64): Move near other integer moves.
(movtf, movtf_internal): Move near other fp moves.
(SSEMODE, SSEMODEI, vec_setv2df, vec_extractv2df, vec_initv2df,
vec_setv4sf, vec_extractv4sf, vec_initv4sf, movv4sf, movv4sf_internal,
movv2df, movv2df_internal, mov<SSEMODEI>, mov<SSEMODEI>_internal,
movmisalign<SSEMODE>, sse_movups_1, sse_movmskps, sse_movntv4sf,
sse_movhlps, sse_movlhps, sse_storehps, sse_loadhps, sse_storelps,
sse_loadlps, sse_loadss, sse_loadss_1, sse_movss, sse_storess,
sse_shufps, addv4sf3, vmaddv4sf3, subv4sf3, vmsubv4sf3, negv4sf2,
mulv4sf3, vmmulv4sf3, divv4sf3, vmdivv4sf3, rcpv4sf2, vmrcpv4sf2,
rsqrtv4sf2, vmrsqrtv4sf2, sqrtv4sf2, vmsqrtv4sf2, sse_andv4sf3,
sse_nandv4sf3, sse_iorv4sf3, sse_xorv4sf3, sse2_andv2df3,
sse2_nandv2df3, sse2_iorv2df3, sse2_xorv2df3, sse2_andv2di3,
sse2_nandv2di3, sse2_iorv2di3, sse2_xorv2di3, maskcmpv4sf3,
vmmaskcmpv4sf3, sse_comi, sse_ucomi, sse_unpckhps, sse_unpcklps,
smaxv4sf3, vmsmaxv4sf3, sminv4sf3, vmsminv4sf3, cvtpi2ps, cvtps2pi,
cvttps2pi, cvtsi2ss, cvtsi2ssq, cvtss2si, cvtss2siq, cvttss2si,
cvttss2siq, addv2df3, vmaddv2df3, subv2df3, vmsubv2df3, mulv2df3,
vmmulv2df3, divv2df3, vmdivv2df3, smaxv2df3, vmsmaxv2df3, sminv2df3,
vmsminv2df3, sqrtv2df2, vmsqrtv2df2, maskcmpv2df3, vmmaskcmpv2df3,
sse2_comi, sse2_ucomi, sse2_movmskpd, sse2_pmovmskb, sse2_maskmovdqu,
sse2_maskmovdqu_rex64, sse2_movntv2df, sse2_movntv2di, sse2_movntsi,
cvtdq2ps, cvtps2dq, cvttps2dq, cvtdq2pd, cvtpd2dq, cvttpd2dq,
cvtpd2pi, cvttpd2pi, cvtpi2pd, cvtsd2si, cvtsd2siq, cvttsd2si,
cvttsd2siq, cvtsi2sd, cvtsi2sdq, cvtsd2ss, cvtss2sd, cvtpd2ps,
cvtps2pd, addv16qi3, addv8hi3, addv4si3, addv2di3, ssaddv16qi3,
ssaddv8hi3, usaddv16qi3, usaddv8hi3, subv16qi3, subv8hi3, subv4si3,
subv2di3, sssubv16qi3, sssubv8hi3, ussubv16qi3, ussubv8hi3, mulv8hi3,
smulv8hi3_highpart, umulv8hi3_highpart, sse2_umulsidi3,
sse2_umulv2siv2di3, sse2_pmaddwd, sse2_uavgv16qi3, sse2_uavgv8hi3,
sse2_psadbw, sse2_pinsrw, sse2_pextrw, sse2_pshufd, sse2_pshuflw,
sse2_pshufhw, eqv16qi3, eqv8hi3, eqv4si3, gtv16qi3, gtv8hi3,
gtv4si3, umaxv16qi3, smaxv8hi3, uminv16qi3, sminv8hi3, ashrv8hi3,
ashrv4si3, lshrv8hi3, lshrv4si3, lshrv2di3, ashlv8hi3, ashlv4si3,
ashlv2di3, sse2_ashlti3, sse2_lshrti3, sse2_unpckhpd, sse2_unpcklpd,
sse2_packsswb, sse2_packssdw, sse2_packuswb, sse2_punpckhbw,
sse2_punpckhwd, sse2_punpckhdq, sse2_punpcklbw, sse2_punpcklwd,
sse2_punpckldq, sse2_punpcklqdq, sse2_punpckhqdq, sse2_movupd,
sse2_movdqu, sse2_movdq2q, sse2_movdq2q_rex64, sse2_movq2dq,
sse2_movq2dq_rex64, sse2_loadd, sse2_stored, sse2_storehpd,
sse2_loadhpd, sse2_storelpd, sse2_loadlpd, sse2_movsd, sse2_loadsd,
sse2_loadsd_1, sse2_storesd, sse2_shufpd, sse2_clflush, sse2_mfence,
mfence_insn, sse2_lfence, lfence_insn, mwait, monitor, addsubv4sf3,
addsubv2df3, haddv4sf3, haddv2df3, hsubv4sf3, hsubv2df3, movshdup,
movsldup, lddqu, loadddup, movddup): Move to sse.md. Any with
non-optabs meanings renamed with an "sse{,2,3}_" prefix at the
same time.
(SSEPUSH, push<SSEPUSH>): Remove.
(MMXPUSH, push<MMXPUSH>): Remove.
(sse_movaps, sse_movaps_1, sse_movups): Remove.
(sse2_movapd, sse2_movdqa, sse2_movq): Remove.
(sse2_andti3, sse2_nandti3, sse2_iorti3, sse2_xorti3): Remove.
(sse_clrv4sf, sse_clrv2df, sse2_clrti): Remove.
(maskncmpv4sf3, vmmaskncmpv4sf3): Remove.
(maskncmpv2df3, vmmaskncmpv2df3): Remove.
(ashrv8hi3_ti, ashrv4si3_ti, lshrv8hi3_ti, lshrv4si3_ti): Remove.
(lshrv2di3_ti, ashlv8hi3_ti, ashlv4si3_ti, ashlv2di3_ti): Remove.
* config/i386/athlon.md (athlon_sselog_load): Handle sselog1.
(athlon_sselog_load_k8, athlon_sselog, athlon_sselog_k8): Likewise.
* config/i386/ppro.md (ppro_sse_div_V4SF_load): Fix memory attr.
(ppro_sse_log_V4SF_load): Similarly. Handle sselog1.
(ppro_sse_log_V4SF): Handle sselog1.
* config/i386/predicates.md (const_0_to_1_operand): New.
(const_0_to_255_mul_8_operand): New.
(const_1_to_31_operand): Rename from const_int_1_31_operand.
(const_2_to_3_operand, const_4_to_7_operand): New.
* config/i386/sse.md: New file.
(SSEMODE12, SSEMODE24, SSEMODE124, SSEMODE248, ssevecsize): New.
(sse_movups): Rename from sse_movups_1.
(sse_loadlss): Rename from sse_loadss_1.
(andv4sf3, iorv4sf3, xorv4sf3, andv2df3): Remove the sse prefix
from the name.
(negv4sf2): Use ix86_expand_fp_absneg_operator.
(absv4sf2, negv2df, absv2df): New.
(addv4sf3): Add expander to call ix86_fixup_binary_operands_no_copy.
(subv4sf3, mulv4sf3, divv4sf3, smaxv4sf3, sminv4sf3, andv4sf3,
iorv4sf3, xorv4sf3, addv2df3, subv2df3, mulv2df3, divv2df3,
smaxv2df3, sminv2df3, andv2df3, iorv2df3, xorv2df3, mulv8hi3,
umaxv16qi3, smaxv8hi3, uminv16qi3, sminv8hi3): Likewise.
(sse3_addsubv4sf3): Model correctly.
sse3_haddv4sf3, sse3_hsubv4sf3, sse3_addsubv2df3, sse3_haddv2df3,
sse3_hsubv2df3, sse2_ashlti3, sse2_lshrti3): Likewise.
(sse_movhlps): Model with vec_select+vec_concat.
(sse_movlhps, sse_unpckhps, sse_unpcklps, sse3_movshdup,
sse3_movsldup, sse_shufps, sse_shufps_1, sse2_unpckhpd, sse3_movddup,
sse2_unpcklpd, sse2_shufpd, sse2_shufpd_1, sse2_punpckhbw,
sse2_punpcklbw, sse2_punpckhwd, sse2_punpcklwd, sse2_punpckhdq,
sse2_punpckldq, sse2_punpckhqdq, sse2_punpcklqdq, sse2_pshufd,
sse2_pshufd_1, sse2_pshuflw, sse2_pshuflw_1, sse2_pshufhw,
sse2_pshufhw_1): Likewise.
(neg<SSEMODEI>2, one_cmpl<SSEMODEI>2): New.
(add<SSEMODEI>3, sse2_ssadd<SSEMODE12>3, sse2_usadd<SSEMODE12>3,
sub<SSEMODEI>3, sse2_sssub<SSEMODE12>3, sse2_ussub<SSEMODE12>3,
ashr<SSEMODE24>3, lshr<SSEMODE248>3, sse2_eq<SSEMODE124>3,
sse2_gt<SSEMODDE124>3, and<SSEMODEI>3, sse_nand<SSEMODEI>3,
ior<SSEMODEI>3, xor<SSEMODEI>3): Macroize from existing patterns.
(addv4sf3, sse_vmaddv4sf3, mulv4sf3, sse_vmmulv4sf3, smaxv4sf3,
sse_vmsmaxv4sf3, sminv4sf3, sse_vmsminv4sf3, addv2df3, sse2_vmaddv2df3,
mulv2df3, sse2_vmmulv2df3, smaxv2df3, sse2_vmsmaxv2df3, sminv2df3,
sse2_vmsminv2df3, umaxv16qi3, smaxv8hi3, uminv16qi3
sminv8hi3): Mark commutative
operands. Use ix86_binary_operator_ok.
(sse_unpckhps, sse_unpcklps, sse2_packsswb, sse2_packssdw,
sse2_packuswb, sse2_punpckhbw, sse2_punpcklbw, sse2_punpckhwd,
sse2_punpcklwd, sse2_punpckhdq, sse2_punpckldq, sse2_punpckhqdq,
sse2_punpcklqdq): Allow operand2 in memory.
(sse_movhlps, sse_movlhps, sse2_unpckhpd, sse2_unpcklpd
sse2_movsd): Add memory alternatives.
(sse_storelps): Turn expander into an insn; split after reload.
(sse_storess, sse2_loadhpd, sse2_loadlpd): Add non-xmm inputs.
(sse2_storehpd, sse2_storelpd): Add non-xmm outputs.
2005-01-08 Eric Botcazou <ebotcazou@libertysurf.fr>
* configure.ac (DWARF-2 debug_line): Use objdump.
* configure: Regenerate.
2005-01-08 Jeff Law <law@redhat.com>
Diego Novillo <dnovillo@redhat.com>
PR tree-optimization/18241
* tree-nrv.c (tree_nrv): Ignore volatile return values.
* tree-ssa-dse.c (dse_optimize_stmt): Do not optimize
statements with volatile operands.
* tree-ssa-operands.c (add_stmt_operand): Do add volatile
operands after marking a statement with has_volatile_ops.
2005-01-08 Roger Sayle <roger@eyesopen.com>
* tree.c (int_fits_type_p): Always honor integer constant
TYPE_MIN_VALUE and TYPE_MAX_VALUE if they exist.
2005-01-08 Roger Sayle <roger@eyesopen.com>
* ifcvt.c (find_if_case_1): Reinstate 2005-01-04 change, now that
the latent bug in rtl_delete_block has been resolved.
2005-01-08 Richard Sandiford <rsandifo@redhat.com>
* config/mips/t-iris6 (MULTILIB_DIRNAMES): Use -mabi argument values.
(MULTILIB_OSDIRNAMES): Use the standard lib, lib32 and lib64.
2005-01-08 Richard Sandiford <rsandifo@redhat.com>
* config/mips/t-slibgcc-irix (SHLIB_LINK): Install a copy of the
library as @multilib_dir@/$(SHLIB_SONAME).
2005-01-07 Eric Botcazou <ebotcazou@libertysurf.fr>
* configure.ac (HAVE_AS_OFFSETABLE_LO10): Fix typo.
* configure: Regenerate.
2005-01-07 Jakub Jelinek <jakub@redhat.com>
* c-common.c (handle_mode_attribute): For ENUMERAL_TYPE, also copy
TYPE_MODE.
2005-01-07 David Edelsohn <edelsohn@gnu.org>
PR target/13674
* config/rs6000/rs6000.c (rs6000_legitimize_reload_address):
Convert non-word aligned offset address using ld/std into
indirect address.
2005-01-07 Richard Henderson <rth@redhat.com>
* config/i386/i386.md (sse_loadhps splitter): Fix operand number typo.
2005-01-07 Richard SAndiford <rsandifo@redhat.com>
* tree.h (IS_EXPR_CODE_CLASS): Use a straight-forward range check.
2005-01-07 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/19283
* fold-const.c (fold_widened_comparison): Return NULL if shorter_type
is not shorter than the original type.
PR rtl-optimization/19012
* config/i386/i386.md (addqi_1_slp): Set memory attribute.
PR rtl-optimization/18861
* cfgbuild.c (BLOCK_USED_BY_TABLEJUMP): Define.
(FULL_STATE): Define.
(mark_tablejump_edge): New function.
(purge_dead_tablejump_edges): New function.
(find_bb_boundaries): Use it.
PR tree-optimization/18828
* builtins.c (expand_builtin_next_arg): Remove argument and all
the argument checking.
(expand_builtin): Adjust caller.
(expand_builtin_va_start): Likewise. Remove error for too many
arguments.
(fold_builtin_next_arg): Issue error for too many arguments.
After checking arguments, replace them with magic arguments that
prevent further checking of the args.
2005-01-06 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
* pa64-hpux.h (STARTFILE_SPEC): Fix typo in spec.
2005-01-06 Roger Sayle <roger@eyesopen.com>
PR target/6077
* gcc.c (input_suffix_matches): Tweak the semantics of %{.s:...}
and %{.S:...} (and their negative variants) to test whether the
input file is assembler or pre-processed-assembler independent of
the actual filename extension.
2005-01-06 Roger Sayle <roger@eyesopen.com>
* simplify-rtx.c (simplify_subreg): Simplify truncations of shifts
of sign or zero extended values.
2005-01-06 Geoffrey Keating <geoffk@apple.com>
* c-cppbuiltin.c (builtin_define_float_constants): Set __*_EPSILON__
for IBM long double format correctly.
2005-01-06 Daniel Berlin <dberlin@dberlin.org>
Fix PR tree-optimization/18792
* tree-data-ref.c (build_classic_dist_vector): Change first_loop
to first_loop_depth, and use loop depth instead of loop number.
(build_classic_dir_vector): Ditto.
(compute_data_dependences_for_loop): Use depth, not loop number.
* tree-loop-linear.c (try_interchange_loops): Use loop depth, not loop
number. Pass in loops, instead of loop numbers.
(gather_interchange_stats): Ditto.
(linear_transform_loops): Ditto.
2005-01-06 Richard Sandiford <rsandifo@redhat.com>
PR rtl-opt/13299
* loop.c (get_monotonic_increment, biased_biv_fits_mode_p,
biv_fits_mode_p, extension_within_bounds_p): New functions.
(check_ext_dependent_givs): Use them.
2005-01-06 Roger Sayle <roger@eyesopen.com>
* cfgrtl.c (rtl_delete_block): A basic block may be followed by
more than one barrier, in which case we should delete them all.
2005-01-06 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
* gcc.c (process_command): Change year in 'gcc --version' to 2005.
2005-01-05 Daniel Berlin <dberlin@dberlin.org>
Fix PR middle-end/19286
Fix PR debug/19267
* dwarf2out.c (gen_subprogram_die): If we've already tried to
output this subprogram, simply ignore this attempt to do it again.
(add_abstract_origin_attribute): Don't abort trying to add the abstract
origin attribute if it's not possible.
(gen_block_die): Don't ignore subblocks of "unused" blocks.
(decls_for_scope): Ditto.
* gimple-low.c (mark_blocks_with_used_subblocks): Remove.
(mark_used_blocks): Don't call mark_blocks_with_used_subblocks.
2005-01-05 Richard Henderson <rth@redhat.com>
PR target/11327
* config/i386/i386.c (BUILTIN_DESC_SWAP_OPERANDS): New.
(bdesc_2arg): Use it.
(ix86_expand_binop_builtin): Force operands into registers
when optimizing.
(ix86_expand_unop_builtin, ix86_expand_unop1_builtin,
ix86_expand_sse_compare, ix86_expand_sse_comi,
ix86_expand_builtin): Likewise.
2005-01-05 Richard Henderson <rth@redhat.com>
* config/ia64/ia64.c (rtx_needs_barrier): Handle CONST_VECTOR
and VEC_SELECT.
* config/ia64/vect.md (mulv8qi3): Re-implement with mix_[rl].
(mulv4hi3): Set itanium_class mmmul.
(fpack_sfxf, fpack_xfsf, fpack_xfxf): Remove.
(fpack): Rename from fpack_sfsf.
2005-01-05 Richard Henderson <rth@redhat.com>
PR rtl-opt/10692
* reload1.c (do_input_reload): Restrict the optimization deleteing
a previous output reload to RELOAD_FOR_INPUT.
2005-01-05 Steven Bosscher <stevenb@suse.de>
* combine.c (expand_compound_operation) <ZERO_EXTRACT>: Add
comment that we fall through after case.
(mark_used_regs_combine): Don't expect a SIGN_EXTRACT in a SET_DEST.
(distribute_links): Likewise.
* cse.c (cse_insn): Likewise.
* cselib.c (cselib_invalidate_mem): Likewise.
* df.c: Update comments at the top of the file.
(read_modify_subreg_p): Update comments here too.
(df_def_record_1): Don't expect a SIGN_EXTRACT in a SET_DEST.
* flow.c (mark_set_1): Likewise.
(mark_used_regs): Likewise.
* gcse.c (mems_conflict_for_gcse_p): Likewise.
(canon_list_insert): Likewise.
(mark_set): Likewise.
(try_replace_reg): Likewise.
(store_killed_in_insn): Likewise.
* loop.c (count_one_set): Likewise.
(basic_induction_var): Likewise.
* postreload-gcse.c (find_mem_conflicts): Likewise.
* postreload.c (reload_combine_note_store): Likewise.
(move2add_note_store): Likewise.
* reload.c (find_equiv_reg): Likewise.
(mark_referenced_resources): Likewise.
* rtlanal.c (set_noop_p): Likewise.
(note_stores): Likewise.
(note_uses): Likewise.
* sched-deps.c (sched_analyze_1): Likewise.
* sched-rgn.c (check_live_1): Likewise.
(update_live_1): Likewise.
* config/i860/i860.c: Likewise.
* rtl.dec (SIGN_EXTRACT): Document that this cannot appear as
an lvalue.
(ZERO_EXTRACT): Mention that this one can be an lvalue.
* doc/rtl.texi: Update documentation for bit-fields and SET.
2005-01-05 Roger Sayle <roger@eyesopen.com>
* ifcvt.c (find_if_case_1): Revert 2005-01-04 change.
2005-01-05 Jan Hubicka <jh@suse.cz>
Richard Henderson <rth@redhat.com>
PR target/18910
* config/i386/i386.c (ix86_expand_move): Handle tls symbols
with an offset.
2005-01-05 Richard Henderson <rth@redhat.com>
PR target/12902
* config/i386/i386.md (sse_movhps, sse_movlps): Remove.
(sse_shufps): Change operand 3 to const_int_operand.
(sse2_storelps): Fix typo in template.
(sse_storehps, sse_loadhps, sse_storelps, sse_loadlps): New.
* config/i386/i386.c (ix86_expand_vector_move_misalign): Use them.
(ix86_expand_builtin): Likewise.
2005-01-05 Julian Brown <julian@codesourcery.com>
* config/arm/arm.c (arm_return_in_memory): Treat complex types
as aggregates for AAPCS ABIs.
2005-01-05 Stan Shebs <shebs@apple.com>
* unwind-dw2-fde-darwin.c (examine_objects): Use 64-bit
Mach-O getters if ppc64.
* config/darwin.c (darwin_asm_output_dwarf_delta): Obey
size argument.
* config/darwin.h (ASM_PREFERRED_EH_DATA_FORMAT): Use
signed four-byte field for global code case.
(STARTFILE_SPEC): Avoid crt2.o for 64-bit compilation.
2005-01-05 Roger Sayle <roger@eyesopen.com>
PR middle-end/19100
* c-common.c: Include real.h.
(c_common_truthvalue_conversion): Avoid destructively modifying expr.
Correctly handle TREE_CONSTANT_OVERFLOW for INTEGER_CST.
Correctly handle TREE_CONSTANT_OVERFLOW and NaNs for REAL_CST.
* Makefile.in (c-common.o): Update dependencies.
2005-01-05 Joseph S. Myers <joseph@codesourcery.com>
* c-parse.in (asm_string): Add trailing semicolon.
2005-01-05 Joseph S. Myers <joseph@codesourcery.com>
* c-parse.in (asm_string): New. Don't allow wide strings in
'asm'.
(simple_asm_expr, asm_argument, asm_operand, asm_clobbers): Use
asm_string instead of STRING.
2005-01-05 Joseph S. Myers <joseph@codesourcery.com>
* c-typeck.c (constructor_no_implicit): Remove.
(set_designator, process_init_element): Don't check
constructor_no_implicit.
2005-01-05 J"orn Rennecke <joern.rennecke@st.com>
Kaz Kojima <kkojima@gcc.gnu.org>
PR target/16482
* lcm.c (create_pre_exit): New.
(optimize_mode_switching): In MODE_ENTRY / MODE_EXIT case, set
ENTRY_EXIT_EXTRA to 3. Use create_pre_exit.
2004-01-05 Richard Earnshaw <rearnsha@arm.com>
* arm.h (TARGET_OPTIONS): Correctly record -mhard-float and
-msoft-float in target_float_switch.
* arm.c (arm_override_options): Fix processing of target_float_switch.
2004-01-05 Richard Earnshaw <rearnsha@arm.com>
* arm/vfp.md (arm_movsi_vfp): Hide VFP register classes from register
preferencing.
2004-01-05 Uros Bizjak <uros@kss-loka.si>
* doc/invoke.texi (Intel 386 and AMD x86-64 Options):
Replace i387 with 'i386 compiler' in -mfpmath=sse option.
2005-01-04 Roger Sayle <roger@eyesopen.com>
* ifcvt.c (find_if_case_1): Avoid creating an empty forwarder block,
if deleting the then-block allows the test-block to fallthru to the
else-block.
2005-01-04 Andrew Pinski <pinskia@physics.uc.edu>
PR c/19152
* c-decl.c (diagnose_mismatched_decls): Accept "extern inline" declared
after the full declaration if the are in two different TUs.
2005-01-04 Richard Henderson <rth@redhat.com>
PR tree-opt/19158
* tree-sra.c (generate_one_element_init): Just
call gimplify_and_add.
(generate_element_init): Record the
new referenced variables and mark them for renaming
and split out to ...
(generate_element_init_1): This.
(scalarize_init): Don't call push_gimplify_context/
pop_gimplify_context.
2005-01-04 Geoffrey Keating <geoffk@apple.com>
* toplev.c (get_src_pwd): Handle failure of getpwd().
2005-01-04 Roger Sayle <roger@eyesopen.com>
* fold-const.c (fold_single_bit_test): Delete unreachable handling
of TRUTH_NOT_EXPR.
(fold): Don't call fold_single_bit_test with a TRUTH_NOT_EXPR, as
all the cases handled by it are inverted by invert_truthvalue.
2005-01-04 Eric Botcazou <ebotcazou@libertysurf.fr>
* config/sparc/sparc.md (save_register_windowdi): Add missing mode.
(save_register_windowsi): Likewise.
2005-01-04 Richard Henderson <rth@redhat.com>
* tree-mudflap.c (mf_varname_tree): Fix thinko setting declname.
2005-01-04 Uros Bizjak <uros@kss-loka.si>
PR middle-end/17767
* cse.c (fold_rtx) [RTX_COMPARE, RTX_COMM_COMPARE]: Don't attempt
any simplifications of vector mode comparison operators.
* simplify-rtx.c (simplify_relational_operation): Fix variable name.
2005-01-04 Paolo Bonzini <bonzini@gnu.org>
Devang Patel <dpatel@apple.com>
PR tree-optimization/18308
* tree-if-conv.c (add_to_dst_predicate_list): Gimplify
the operands before creating a new expression.
* dojump.c (do_jump): Make drop_through_label available
for all cases. Add expansion of COND_EXPR.
2005-01-04 Ira Rosen <irar@il.ibm.com>
* tree-vectorizer.c (vect_analyze_offset_expr): Test for
INTEGER_CST instead of TREE_CONSTANT.
(vect_gen_niters_for_prolog_loop): Test for INTEGER_CST
instead of TREE_CONSTANT.
(vect_analyze_pointer_ref_access): Test for INTEGER_CST
instead of TREE_CONSTANT.
2005-01-04 Eric Botcazou <ebotcazou@libertysurf.fr>
* tree-eh.c (replace_goto_queue): Return early if the queue is empty.
2005-01-04 Uros Bizjak <uros@kss-loka.si>
PR target/19240
* config/i386/i386.md (*fop_df_1_i387): Disable for TARGET_SSE_MATH.
(*fop_df_1_i387): Disable for (TARGET_SSE2 && TARGET_SSE_MATH).
2005-01-03 Richard Henderson <rth@redhat.com>
* fold-const.c (force_fit_type): Cope with types larger than 2 HWI.
(fold_convert_const_int_from_int, fold_convert_const_int_from_real,
fold_convert_const_real_from_real): Split out from ...
(fold_convert_const): ... here.
2005-01-03 Richard Henderson <rth@redhat.com>
PR target/19235
* config/i386/i386.md (movdi_2): Separate SSE1 and SSE2 alternatives.
(mov<MMXMODEI>_internal): Likewise.
(movdf_nointeger): Prefer Y while not preferring, but allowing, x.
Add V2SF case; use it for SSE1; don't use TI.
(movdf_integer): Likewise.
(mov<SSEMODEI>_internal, movti_internal): Force V4SF for SSE1.
2005-01-03 Ira Rosen <irar@il.ibm.com>
* tree-vectorizer.c (vect_strip_conversions): New function.
(vect_analyze_offset_expr): Call vect_strip_conversions. Add
check for binary class.
2005-01-03 Daniel Berlin <dberlin@dberlin.org>
Fix PR debug/17924
Fix PR debug/19191
* dwarf2out.c (block_ultimate_origin): Follow decl origin if origin
is a decl.
* gimple-low.c (mark_blocks_with_used_vars): New function.
(mark_blocks_with_used_subblocks): Ditto.
(mark_used_blocks): Ditto.
(pass_mark_used_blocks): New pass.
* tree-inline.c: Include debug.h.
(expand_call_inline): Call outlining_inline_function here.
* tree-optimize.c (init_tree_optimization_passes): Add
pass_mark_used_blocks.
* tree-pass.h (pass_mark_used_blocks): New.
* Makefile.in (tree-inline.o): Add debug.h dependency.
2005-01-03 Geoffrey Keating <geoffk@apple.com>
* config/darwin.c (darwin_handle_weak_import_attribute): Permit
VAR_DECLs to have weak_import attribute.
* config/rs6000/darwin-fallback.c: Use 'ucontext_t' rather than
'struct ucontext'.
2004-01-03 Steven Bosscher <stevenb@suse.de>
* passes.c (rest_of_compilation): Don't run regmove if only
flag_expensive_optimizations, require flag_regmove instead.
2005-01-03 Eric Botcazou <ebotcazou@libertysurf.fr>
* config/sparc/litecoff.h (TARGET_OS_CPP_BUILTINS): Do not
register "sparc".
* config/sparc/sysv4-only.h (TARGET_OS_CPP_BUILTINS): Likewise.
* config/sparc/rtemself.h (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
* config/sparc/sol2-64.h (TARGET_SUB_OS_CPP_BUILTINS): Delete.
* config/sparc/sp64-elf.h (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
2005-01-03 Richard Henderson <rth@redhat.com>
* config/ia64/ia64.c (TARGET_VECTOR_MODE_SUPPORTED_P): New.
(ia64_const_ok_for_letter_p): New.
(ia64_const_double_ok_for_letter_p): New.
(ia64_extra_constraint): New.
(ia64_expand_vecint_compare): New.
(ia64_expand_vcondu_v2si): New.
(ia64_expand_vecint_cmov): New.
(ia64_expand_vecint_minmax): New.
(ia64_print_operand): Add 'v'.
(ia64_preferred_reload_class): New.
(ia64_vector_mode_supported_p): New.
* config/ia64/ia64.h (UNITS_PER_SIMD_WORD): New.
(PREFERRED_RELOAD_CLASS): Move to function.
(CONST_OK_FOR_LETTER_P): Move to function.
(CONST_DOUBLE_OK_FOR_LETTER_P): Move to function.
(CONSTRAINT_OK_FOR_Q, CONSTRAINT_OK_FOR_R): Remove.
(CONSTRAINT_OK_FOR_S, CONSTRAINT_OK_FOR_T): Remove.
(EXTRA_CONSTRAINT): Move to function.
* config/ia64/ia64.md: Include vect.md.
(itanium_class): Add mmalua.
(type): Handle it.
* config/ia64/itanium1.md (1_mmalua): New. Add it to bypasses.
(1b_mmalua): New.
* config/ia64/itanium2.md (2_mmalua, 2b_mmalua): Similarly.
* config/ia64/predicates.md (gr_reg_or_0_operand): Accept any
CONST0_RTX.
(const_int_2bit_operand): New.
(fr_reg_or_0_operand): New.
* config/ia64/ia64-modes.def: Add vector modes.
* config/ia64/ia64-protos.h: Update.
* config/ia64/vect.md: New file.
2005-01-03 Richard Henderson <rth@redhat.com>
* simplify-rtx.c (simplify_binary_operation): Handle VEC_CONCAT.
2005-01-03 Uros Bizjak <uros@kss-loka.si>
PR target/19236
* config/i386/i386.c (log1psf2): Change mode of operands[0,1]
to SFmode.
(log1pdf2): Change mode of operands[0,1] to DFmode.
2005-01-03 Eric Botcazou <ebotcazou@libertysurf.fr>
* config/sparc/sparc.h (SPARC_RELAXED_ORDERING): Define to false.
* config/sparc/linux.h (SPARC_RELAXED_ORDERING): Define to true.
* config/sparc/linux64.h (SPARC_RELAXED_ORDERING): Likewise.
* config/sparc/sparc.c (TARGET_RELAXED_ORDERING): Define to
SPARC_RELAXED_ORDERING.
2005-01-03 Richard Henderson <rth@redhat.com>
Uros Bizjak <uros@kss-loka.si>
PR target/14631
* config/i386/i386.c (ix86_expand_builtin): [IX86_BUILTIN_PINSRW,
IX86_BUILTIN_PINSRW128]: Fix wrong selector range in error message.
* config/i386/i386.md (mmx_pinsrw, sse2_pinsrw): Fix selector
handling.
(*mmx_pinsrw, *sse2_pinsrw): New patterns.
* config/i386/i386/predicates.md (const_pow2_1_to_8_operand,
const_pow2_1_to_128_operand): New predicates.
2005-01-02 Greg McGary <greg@mcgary.org>
* tree-mudflap.c (mf_varname_tree): decl_printable_name handles
anonymous decls.
(mf_xform_derefs_1) [RESULT_DECL, STRING_CST]: Handle as innermost
object. [ptr_type]: Remove unused variable.
Remember nearest addressable array-element or record-component
when checking bitfield components. Tolerate empty BIND_EXPR.
2005-01-01 Richard Henderson <rth@redhat.com>
* tree-vectorizer.c (vect_analyze_offset_expr): Strip conversions
that don't narrow the value. Fail for other conversions.
2005-01-01 Richard Henderson <rth@redhat.com>
PR c/19031
* c-decl.c (pop_file_scope): Call maybe_apply_pending_pragma_weaks.
* c-lang.c (finish_file): Don't do it here.
* objc/objc-act.c (objc_finish_file): Likewise.
* cgraph.c (decl_assembler_name_equal): New.
(cgraph_node_for_asm, cgraph_varpool_node_for_asm): New.
(cgraph_varpool_node): Actually link up cgraph_varpool_nodes.
* cgraph.h (struct cgraph_varpool_node): Add next.
(cgraph_node_for_asm, cgraph_varpool_node_for_asm): Declare.
* varasm.c (assemble_alias): Mark the target as needed.
2005-01-01 Andrew Pinski <pinskia@physics.uc.edu>
PR middle-end/19221
* function.c (get_arg_pointer_save_area): Use entry_of_function
instead of get_insns.
2005-01-01 Roger Sayle <roger@eyesopen.com>
Andrew Pinski <pinskia@physics.uc.edu>
James E. Wilson <wilson@specifixinc.com>
PR rtl-optimization/12092
* loop.c (emit_prefetch_instructions): Do nothing if PREFETCH_BLOCK
is zero.
2005-01-01 Roger Sayle <roger@eyesopen.com>
Olivier Hainque <hainque@act-europe.fr>
* tree.c (int_fits_type_p): A narrower type always fits in a
wider one, except for negative values into unsigned types.
2005-01-01 Roger Sayle <roger@eyesopen.com>
* tree.c (int_fits_type_p): Compare the result of force_fit_type
with the original constant rather than require TREE_OVERFLOW.
2005-01-01 Steven Bosscher <stevenb@suse.de>
PR middle-end/17544
* c-decl.c (finish_function): If compiling C99, annotate the
compiler generated return with the current file name and line 0.
* tree-cfg.c (remove_useless_stmts_warn_notreached): Only warn if
the source line is greater than 0.
(remove_bb): Likewise.
|