From 44f518b5845f6da3e2f37a978164ced6015bff5f Mon Sep 17 00:00:00 2001 From: Clemen Deng Date: Tue, 6 Aug 2019 13:31:01 -0400 Subject: [PATCH] Have run_code_generation only call vpython when needed gen_builtin_symbols.py uses a vpython module to generate a perfect hash function Also seeded the perfect hash function to make it deterministic Bug: angleproject:3747 Change-Id: I660fe71bd6b2213be9d4ccc2f68641637a49a047 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1738747 Commit-Queue: Clemen Deng Reviewed-by: Geoff Lang --- .../ESSL_static_builtins.json | 4 +- scripts/run_code_generation.py | 18 +- .../translator/ImmutableString_autogen.cpp | 284 ++++++++---------- .../translator/gen_builtin_symbols.py | 3 +- 4 files changed, 147 insertions(+), 162 deletions(-) diff --git a/scripts/code_generation_hashes/ESSL_static_builtins.json b/scripts/code_generation_hashes/ESSL_static_builtins.json index 6e5a6bc51..2d7c8e927 100644 --- a/scripts/code_generation_hashes/ESSL_static_builtins.json +++ b/scripts/code_generation_hashes/ESSL_static_builtins.json @@ -1,6 +1,6 @@ { "src/compiler/translator/ImmutableString_autogen.cpp": - "325dc410635436401990388b73531c11", + "e7c9b98db7d7b435f57ff26fc265efb3", "src/compiler/translator/ParseContext_autogen.h": "58786d2f352ee1a58d529fb7572c86a4", "src/compiler/translator/SymbolTable_autogen.cpp": @@ -12,7 +12,7 @@ "src/compiler/translator/builtin_variables.json": "04f763459cfbd47831bec22299287e82", "src/compiler/translator/gen_builtin_symbols.py": - "5fca8cb433dcbbd956ec27dc583ccee8", + "466747c0158bab9d4792f066b70bf5ed", "src/compiler/translator/tree_util/BuiltIn_autogen.h": "69268b2f3bda048ba8aaabe60c9b9912", "src/tests/compiler_tests/ImmutableString_test_autogen.cpp": diff --git a/scripts/run_code_generation.py b/scripts/run_code_generation.py index f28db8e6e..904324cf7 100755 --- a/scripts/run_code_generation.py +++ b/scripts/run_code_generation.py @@ -38,12 +38,18 @@ def rebase_script_path(script_path, relative_path): return os.path.relpath(os.path.join(os.path.dirname(script_path), relative_path), root_dir) -def get_executable_name(): - return 'vpython.bat' if platform.system() == 'Windows' else 'vpython' +# Check if we need a module from vpython +def get_executable_name(first_line): + if 'vpython' in first_line: + return 'vpython.bat' if platform.system() == 'Windows' else 'vpython' + return 'python' def grab_from_script(script, param): - res = subprocess.check_output([get_executable_name(), script, param]).strip() + res = '' + f = open(os.path.basename(script), "r") + res = subprocess.check_output([get_executable_name(f.readline()), script, param]).strip() + f.close() if res == '': return [] return [clean_path_slashes(rebase_script_path(script, name)) for name in res.split(',')] @@ -190,8 +196,12 @@ def main(): os.chdir(get_child_script_dirname(script)) print('Running ' + name + ' code generator') - if subprocess.call([get_executable_name(), os.path.basename(script)]) != 0: + + f = open(os.path.basename(script), "r") + if subprocess.call([get_executable_name(f.readline()), + os.path.basename(script)]) != 0: sys.exit(1) + f.close() # Update the hash dictionary. all_new_hashes[fname] = new_hashes diff --git a/src/compiler/translator/ImmutableString_autogen.cpp b/src/compiler/translator/ImmutableString_autogen.cpp index b43ddc916..079db67d0 100644 --- a/src/compiler/translator/ImmutableString_autogen.cpp +++ b/src/compiler/translator/ImmutableString_autogen.cpp @@ -24,160 +24,134 @@ std::ostream &operator<<(std::ostream &os, const sh::ImmutableString &str) namespace { -constexpr int kT1[] = {1449, 850, 687, 94, 1160, 2137, 389, 55, 2314, 1465, 1942, 1342, - 1619, 2259, 2238, 725, 2029, 881, 2320, 1229, 684, 853, 1921, 239, - 413, 1657, 236, 654, 237, 1663, 2284, 2208, 952, 1152, 691}; -constexpr int kT2[] = {1352, 2323, 1943, 1117, 1361, 512, 1103, 2213, 1371, 523, 1964, 995, - 1843, 714, 179, 1093, 1916, 1705, 1050, 1026, 1497, 2043, 438, 1129, - 1461, 2114, 344, 618, 1274, 1858, 1343, 1528, 1923, 1407, 838}; +constexpr int kT1[] = {854, 583, 1017, 1261, 74, 1264, 17, 772, 177, 1669, 50, 1311, + 893, 984, 500, 729, 837, 870, 944, 1614, 1220, 358, 887, 44, + 685, 841, 335, 1676, 1170, 1028, 99, 444, 879, 1844, 1182}; +constexpr int kT2[] = {736, 1561, 1876, 1663, 997, 1012, 1216, 1376, 1420, 1081, 773, 536, + 1426, 114, 1851, 1914, 1734, 1715, 1851, 1162, 1616, 1379, 341, 310, + 1449, 1759, 1789, 384, 1106, 1661, 1460, 1570, 539, 640, 724}; constexpr int kG[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2303, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 380, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 169, 1553, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 619, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 186, 702, 0, 0, 2256, 0, 0, 630, 0, 0, - 0, 0, 0, 0, 2032, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 654, 2017, 963, 2266, 0, 0, 0, 0, 0, 0, 0, 0, - 1496, 0, 0, 0, 0, 0, 0, 0, 610, 0, 0, 0, 2309, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 356, 0, 2071, 0, 1778, 0, 0, - 48, 0, 0, 0, 0, 0, 0, 0, 689, 1754, 30, 494, 0, 0, 590, 0, - 0, 0, 455, 1392, 0, 0, 0, 0, 0, 103, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 2098, 0, 0, 0, 0, 1983, 629, 0, 0, 0, 106, - 0, 0, 1403, 0, 1644, 0, 0, 0, 0, 0, 0, 0, 2272, 197, 1880, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1093, 0, 0, 0, 0, 749, 437, 560, 918, 0, 0, 0, 0, - 1871, 0, 0, 0, 787, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1035, 0, 0, 501, 0, 2246, 0, 0, 939, 0, 0, 81, 0, - 0, 0, 0, 355, 943, 0, 0, 0, 0, 858, 0, 1029, 0, 939, 870, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 321, 367, 0, 0, 0, 585, 0, 1685, - 0, 0, 0, 0, 0, 379, 0, 0, 0, 0, 0, 0, 0, 372, 0, 0, - 0, 11, 0, 0, 0, 0, 0, 2035, 0, 0, 2194, 0, 0, 323, 0, 2291, - 1876, 0, 447, 0, 417, 0, 0, 0, 0, 0, 0, 0, 221, 0, 927, 0, - 0, 0, 2268, 0, 0, 0, 0, 0, 1738, 738, 32, 367, 0, 0, 0, 0, - 150, 0, 0, 1724, 0, 1169, 0, 0, 392, 0, 2156, 2042, 0, 0, 0, 2333, - 894, 234, 0, 437, 0, 2072, 0, 561, 0, 1005, 165, 775, 0, 0, 0, 0, - 0, 814, 0, 0, 682, 0, 0, 73, 1035, 0, 0, 0, 47, 0, 541, 0, - 0, 0, 0, 396, 0, 0, 0, 0, 0, 2315, 223, 786, 379, 0, 872, 0, - 2121, 62, 0, 0, 0, 907, 0, 0, 0, 335, 0, 0, 0, 2210, 406, 0, - 0, 339, 0, 0, 0, 1047, 0, 0, 2026, 2304, 0, 0, 582, 1909, 0, 0, - 0, 0, 0, 661, 0, 0, 0, 0, 711, 0, 0, 0, 0, 0, 0, 0, - 0, 438, 0, 0, 725, 0, 701, 1019, 0, 4, 264, 0, 0, 822, 0, 1021, - 641, 0, 0, 0, 617, 0, 999, 1863, 0, 189, 83, 319, 0, 0, 1893, 239, - 1026, 0, 916, 0, 846, 0, 0, 0, 0, 2171, 0, 260, 0, 0, 1310, 0, - 470, 0, 255, 0, 601, 0, 1885, 0, 0, 0, 0, 530, 0, 0, 527, 0, - 0, 460, 782, 0, 1981, 0, 0, 0, 965, 333, 0, 0, 954, 0, 2313, 0, - 0, 303, 1234, 0, 0, 51, 0, 75, 0, 0, 112, 0, 0, 0, 1008, 0, - 0, 0, 0, 1602, 0, 0, 0, 0, 2132, 1056, 1020, 1726, 2236, 1057, 992, 0, - 0, 0, 767, 0, 0, 853, 0, 0, 879, 81, 0, 0, 0, 483, 299, 0, - 0, 645, 0, 0, 2045, 0, 0, 0, 431, 0, 2126, 0, 0, 432, 0, 987, - 0, 1075, 1152, 0, 326, 1902, 0, 0, 723, 0, 0, 607, 0, 2190, 406, 0, - 964, 321, 600, 0, 0, 0, 0, 0, 1977, 0, 0, 0, 0, 1255, 0, 1681, - 0, 0, 1091, 0, 0, 1551, 885, 0, 532, 0, 0, 362, 0, 0, 1478, 0, - 0, 0, 418, 0, 1003, 0, 0, 274, 544, 0, 0, 147, 821, 0, 828, 327, - 0, 0, 0, 0, 0, 2198, 0, 139, 222, 0, 345, 0, 1473, 145, 1013, 0, - 2307, 2166, 0, 1844, 0, 321, 0, 0, 2010, 0, 0, 0, 0, 0, 0, 0, - 0, 1189, 386, 0, 0, 0, 0, 0, 0, 1463, 1159, 908, 0, 0, 0, 0, - 0, 1284, 2129, 0, 838, 0, 0, 0, 0, 2149, 342, 67, 924, 0, 0, 2161, - 878, 0, 0, 1870, 520, 0, 724, 622, 822, 676, 0, 0, 2145, 0, 52, 0, - 0, 0, 0, 0, 0, 0, 222, 0, 0, 0, 1901, 8, 0, 0, 0, 311, - 0, 2202, 509, 667, 0, 642, 199, 0, 268, 1717, 0, 0, 0, 0, 1389, 2325, - 0, 1202, 0, 766, 496, 0, 559, 95, 0, 277, 0, 0, 0, 1827, 2182, 0, - 79, 879, 0, 289, 0, 0, 0, 0, 260, 982, 541, 689, 0, 1725, 0, 0, - 0, 0, 246, 1589, 576, 0, 2201, 0, 238, 967, 0, 0, 683, 0, 0, 270, - 0, 0, 0, 375, 1, 465, 0, 0, 0, 0, 0, 0, 0, 0, 0, 595, - 152, 0, 996, 560, 603, 297, 0, 2175, 330, 284, 0, 178, 0, 0, 0, 757, - 0, 859, 0, 641, 0, 479, 1020, 0, 676, 697, 0, 0, 0, 2165, 2044, 2140, - 470, 0, 2250, 0, 2048, 0, 2313, 0, 0, 0, 96, 1840, 0, 1328, 0, 0, - 1990, 0, 338, 1977, 0, 781, 0, 206, 293, 991, 383, 467, 1961, 269, 0, 714, - 0, 0, 0, 845, 0, 0, 531, 0, 0, 1841, 0, 1740, 0, 163, 372, 644, - 0, 1055, 0, 410, 568, 439, 1611, 0, 0, 0, 0, 0, 581, 470, 1052, 0, - 1583, 0, 0, 659, 0, 245, 0, 175, 0, 195, 0, 880, 0, 0, 381, 0, - 0, 1030, 0, 126, 0, 0, 0, 344, 0, 0, 32, 98, 0, 1792, 0, 2117, - 176, 0, 0, 0, 268, 0, 0, 0, 0, 2261, 0, 0, 0, 97, 0, 702, - 0, 25, 0, 194, 0, 0, 439, 1868, 350, 829, 1784, 754, 0, 0, 0, 0, - 582, 313, 0, 268, 0, 0, 250, 0, 0, 463, 1567, 2308, 0, 100, 0, 1743, - 428, 149, 0, 492, 587, 0, 0, 301, 0, 808, 217, 0, 0, 0, 1518, 1799, - 0, 0, 485, 0, 362, 2212, 0, 0, 0, 518, 42, 0, 0, 1462, 1016, 730, - 0, 0, 0, 2261, 382, 0, 94, 0, 0, 580, 0, 0, 0, 153, 0, 0, - 0, 0, 719, 210, 382, 0, 0, 1191, 2078, 0, 228, 1014, 385, 0, 0, 397, - 0, 0, 0, 692, 0, 105, 0, 500, 0, 0, 500, 0, 686, 0, 1268, 0, - 565, 892, 0, 0, 436, 0, 0, 566, 62, 0, 351, 0, 0, 1670, 0, 696, - 685, 0, 934, 243, 379, 593, 332, 0, 0, 0, 0, 0, 2258, 1512, 2033, 0, - 948, 0, 2343, 2233, 308, 224, 1802, 0, 0, 512, 0, 0, 0, 0, 0, 2029, - 1038, 0, 0, 210, 0, 0, 0, 0, 1428, 542, 0, 1753, 171, 266, 1787, 405, - 1408, 0, 0, 0, 1424, 0, 518, 0, 547, 728, 530, 0, 0, 619, 0, 0, - 647, 0, 379, 814, 312, 2081, 1700, 92, 0, 0, 1331, 698, 0, 87, 0, 0, - 0, 2174, 0, 460, 1074, 1215, 1849, 13, 9, 0, 0, 0, 729, 955, 784, 399, - 993, 0, 167, 0, 0, 647, 186, 0, 0, 0, 0, 1075, 0, 984, 125, 1917, - 1429, 0, 306, 705, 0, 0, 0, 0, 0, 1405, 0, 1000, 0, 0, 0, 1480, - 0, 0, 334, 1776, 800, 1497, 1938, 0, 7, 67, 0, 662, 656, 181, 489, 0, - 655, 263, 0, 0, 961, 0, 653, 920, 1416, 232, 0, 733, 0, 2, 2192, 2322, - 0, 0, 387, 1850, 547, 639, 2292, 2197, 2083, 445, 0, 0, 474, 0, 357, 465, - 1124, 1479, 476, 0, 0, 0, 340, 0, 1743, 1317, 170, 0, 0, 989, 0, 1837, - 290, 811, 0, 38, 0, 1198, 0, 61, 0, 772, 543, 0, 0, 0, 905, 707, - 138, 2225, 176, 2284, 0, 0, 2344, 0, 0, 0, 1218, 0, 0, 0, 1503, 1015, - 0, 251, 442, 0, 0, 0, 1631, 0, 210, 1257, 179, 1903, 0, 0, 0, 59, - 0, 0, 0, 0, 371, 558, 359, 188, 588, 0, 0, 670, 103, 1580, 942, 963, - 0, 55, 1935, 510, 2236, 589, 1834, 2340, 0, 721, 0, 1067, 0, 0, 110, 1764, - 49, 402, 0, 0, 0, 0, 1990, 430, 0, 0, 243, 282, 0, 978, 408, 226, - 0, 0, 0, 517, 0, 2103, 2331, 0, 0, 0, 0, 0, 0, 736, 0, 0, - 685, 0, 291, 14, 0, 0, 618, 231, 0, 0, 744, 0, 0, 442, 1084, 0, - 857, 1857, 0, 463, 2262, 0, 908, 507, 99, 1547, 379, 0, 629, 0, 0, 273, - 2184, 0, 0, 0, 0, 0, 0, 814, 1301, 1283, 1060, 761, 1767, 5, 0, 0, - 780, 0, 2280, 0, 908, 0, 319, 0, 996, 2331, 1575, 618, 2334, 0, 0, 0, - 0, 0, 0, 240, 0, 0, 796, 1006, 0, 55, 0, 0, 603, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2038, 907, 1081, 0, 0, 0, 2117, 0, 440, 0, - 2343, 0, 712, 0, 365, 162, 1116, 296, 407, 0, 0, 930, 0, 0, 616, 568, - 1308, 0, 0, 1054, 819, 0, 2204, 0, 0, 1391, 865, 0, 0, 2197, 869, 185, - 551, 456, 0, 681, 0, 0, 582, 112, 0, 2298, 580, 0, 0, 0, 810, 0, - 867, 900, 990, 0, 2335, 320, 0, 485, 723, 0, 553, 866, 0, 1556, 0, 0, - 0, 0, 0, 0, 0, 2172, 157, 2049, 0, 10, 2301, 0, 851, 1913, 2269, 439, - 0, 0, 0, 0, 0, 1377, 0, 0, 0, 0, 0, 148, 0, 425, 1929, 212, - 2083, 668, 826, 0, 190, 0, 0, 0, 0, 310, 28, 0, 0, 0, 2310, 856, - 2210, 0, 1813, 556, 0, 383, 0, 184, 481, 0, 0, 121, 0, 0, 156, 61, - 0, 1854, 0, 856, 740, 0, 986, 584, 932, 977, 805, 0, 258, 0, 0, 1685, - 495, 0, 2250, 1524, 107, 0, 0, 0, 0, 1159, 0, 107, 433, 37, 0, 0, - 1105, 0, 0, 342, 1687, 1448, 836, 5, 1971, 2219, 0, 0, 448, 465, 0, 1619, - 0, 0, 577, 0, 0, 0, 76, 0, 0, 142, 0, 0, 0, 0, 0, 1037, - 879, 171, 291, 0, 700, 2228, 0, 0, 0, 2270, 0, 896, 77, 0, 0, 796, - 235, 0, 0, 0, 269, 112, 1039, 1560, 0, 0, 2262, 0, 0, 861, 113, 0, - 904, 0, 0, 0, 0, 0, 568, 2022, 110, 1027, 648, 374, 0, 759, 0, 356, - 0, 0, 2111, 456, 0, 285, 0, 0, 203, 0, 657, 53, 643, 0, 74, 335, - 1939, 103, 2165, 30, 192, 2072, 97, 562, 454, 316, 2061, 172, 0, 0, 926, 0, - 0, 750, 1934, 0, 0, 0, 0, 0, 816, 0, 941, 0, 897, 0, 690, 615, - 0, 853, 0, 662, 1910, 0, 350, 0, 0, 0, 0, 759, 0, 988, 0, 281, - 0, 0, 0, 447, 420, 58, 0, 124, 51, 2228, 0, 0, 0, 138, 0, 0, - 127, 0, 0, 0, 185, 970, 0, 2205, 230, 468, 0, 448, 287, 0, 66, 1665, - 302, 1430, 2080, 0, 1109, 1863, 0, 180, 0, 467, 771, 2147, 0, 2129, 0, 441, - 89, 498, 448, 1076, 0, 1966, 0, 2263, 2293, 0, 0, 3, 0, 1053, 0, 1065, - 2059, 240, 261, 1134, 644, 0, 197, 342, 0, 0, 631, 0, 19, 1053, 0, 214, - 0, 0, 0, 0, 0, 336, 16, 0, 0, 809, 0, 0, 214, 193, 0, 449, - 0, 139, 0, 0, 0, 355, 580, 123, 478, 187, 550, 0, 0, 0, 0, 704, - 791, 812, 0, 0, 0, 0, 302, 721, 829, 414, 0, 204, 163, 0, 331, 2233, - 18, 9, 687, 0, 0, 974, 82, 959, 0, 0, 938, 570, 475, 650, 833, 0, - 347, 0, 115, 0, 1415, 623, 227, 0, 804, 0, 2347, 2242, 0, 258, 0, 1808, - 0, 0, 602, 0, 501, 893, 0, 0, 155, 928, 15, 0, 190, 1271, 1076, 1028, - 155, 0, 679, 1043, 0, 738, 287, 711, 0, 0, 0, 0, 0, 0, 1809, 0, - 0, 1043, 0, 370, 0, 0, 0, 768, 0, 0, 994, 0, 0, 0, 2324, 618, - 1924, 0, 64, 0, 0, 0, 0, 7, 1816, 418, 1083, 0, 0, 54, 85, 0, - 216, 0, 0, 2048, 0, 0, 0, 807, 187, 0, 131, 524, 973, 670, 0, 1860, - 0, 0, 0, 986, 0, 317, 202, 0, 0, 0, 608, 618, 2262, 0, 0, 0, - 92, 150, 699, 0, 68, 844, 0, 0, 567, 158, 921, 868, 0, 0, 937, 0, - 2202, 846, 0, 111, 352, 958, 0, 435, 434, 301, 847, 0, 0, 953, 2216, 134, - 0, 0, 0, 358, 916, 515, 2284, 0, 0, 0, 522, 0, 0, 214, 0, 890, - 188, 169, 0, 0, 0, 837, 2128, 0, 636, 691, 0, 712, 685, 0, 221, 0, - 1031, 0, 0, 0, 273, 583, 571, 0, 1487, 0, 239, 93, 0, 33, 0, 1861, - 624, 1357, 2214, 641, 1493, 65, 0, 36, 0, 634, 883, 0, 0, 517, 574, 373, - 380, 624, 987, 0, 303, 698, 1287, 33, 0, 0, 490, 1025, 645, 219, 1058, 719, - 378, 524, 508, 338, 627, 341, 753, 0, 253, 0, 713, 0, 0, 0, 295, 0, - 852, 2244, 141, 0, 0, 466, 578, 0, 0, 121, 0, 169, 890, 0, 0, 0, - 0, 0, 0, 361, 841, 0, 351, 1005, 0, 0, 0, 0, 0, 311, 0, 0, - 246, 5, 849, 182, 2142, 2198, 0, 391, 1259, 0, 0, 709, 116, 114, 364, 1986, - 204, 0, 398, 321, 816, 777, 0, 0, 894, 0, 1046, 0, 319, 0, 590, 240, - 0, 0, 1866, 0, 0, 0, 629, 0, 763, 1826, 452, 28, 872, 0, 451, 891, - 696, 1055, 2199, 0, 0, 2135, 499, 0, 792, 200, 0, 0, 1068, 750, 2124, 2257, - 542, 835, 0, 57, 0, 2, 718, 0, 0, 2163, 322, 1799}; + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1929, 0, 0, 1733, 0, + 0, 0, 0, 0, 0, 181, 0, 0, 0, 0, 0, 1394, 0, 763, 0, 0, + 0, 0, 0, 1624, 0, 0, 0, 0, 0, 0, 0, 0, 1575, 0, 0, 0, + 0, 0, 0, 1807, 0, 1619, 1061, 0, 0, 430, 0, 0, 1033, 0, 0, 336, + 0, 0, 1633, 1714, 0, 0, 0, 0, 0, 472, 668, 1687, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1913, 1079, 0, 0, 0, 1411, 0, 521, 0, 0, 0, + 0, 0, 0, 1865, 0, 314, 0, 0, 0, 0, 0, 1494, 1065, 893, 413, 1505, + 111, 0, 495, 0, 0, 1835, 892, 68, 0, 214, 1310, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1227, 0, 0, 1496, 0, 0, 0, 0, 335, 125, 0, 514, + 0, 0, 0, 458, 980, 0, 0, 0, 718, 437, 0, 0, 0, 0, 921, 0, + 0, 1675, 1586, 0, 0, 0, 0, 0, 106, 0, 0, 720, 0, 1684, 0, 0, + 1733, 0, 1223, 0, 0, 1854, 0, 0, 260, 395, 0, 0, 0, 344, 0, 0, + 0, 0, 1611, 1879, 0, 703, 1701, 1301, 0, 0, 0, 0, 0, 0, 0, 776, + 0, 397, 1751, 0, 0, 0, 0, 1244, 828, 0, 0, 0, 0, 0, 1108, 0, + 0, 0, 0, 0, 0, 0, 1795, 637, 0, 0, 0, 251, 1542, 0, 1794, 0, + 1895, 0, 372, 0, 245, 0, 0, 0, 0, 155, 0, 0, 0, 0, 0, 761, + 0, 0, 1269, 0, 0, 193, 0, 501, 1237, 517, 1509, 0, 223, 0, 380, 0, + 0, 0, 0, 0, 935, 0, 0, 0, 832, 1474, 0, 0, 1475, 752, 0, 377, + 79, 165, 0, 0, 521, 0, 1041, 969, 273, 602, 26, 0, 1838, 180, 0, 0, + 494, 445, 1059, 0, 0, 351, 0, 312, 0, 0, 0, 530, 1745, 0, 365, 1108, + 0, 0, 1042, 613, 72, 1244, 508, 547, 0, 0, 0, 0, 0, 0, 1262, 0, + 354, 833, 0, 70, 1004, 0, 101, 342, 0, 0, 557, 0, 0, 341, 264, 0, + 0, 988, 0, 0, 0, 931, 50, 1703, 0, 144, 384, 1729, 0, 390, 531, 0, + 0, 437, 1463, 0, 846, 1632, 0, 0, 9, 491, 283, 0, 790, 0, 0, 916, + 0, 285, 1839, 0, 1885, 1555, 1, 0, 924, 0, 0, 0, 1618, 795, 0, 0, + 1554, 540, 0, 0, 119, 0, 0, 955, 1458, 0, 0, 927, 1798, 1170, 0, 275, + 457, 0, 0, 0, 1875, 653, 0, 0, 0, 675, 0, 621, 0, 0, 419, 0, + 551, 0, 0, 1104, 0, 0, 0, 1907, 1848, 0, 0, 762, 0, 1621, 0, 0, + 0, 0, 1568, 0, 393, 529, 0, 0, 0, 297, 0, 0, 988, 298, 1400, 0, + 1747, 0, 0, 497, 583, 0, 175, 1136, 718, 786, 0, 94, 741, 0, 0, 0, + 1526, 0, 1595, 386, 0, 661, 0, 0, 0, 0, 1868, 1383, 1201, 357, 0, 183, + 1926, 0, 126, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, + 1070, 15, 0, 773, 199, 488, 0, 968, 974, 0, 0, 0, 832, 593, 580, 0, + 1364, 0, 954, 0, 925, 309, 673, 1893, 0, 0, 0, 300, 0, 442, 0, 1003, + 0, 0, 306, 0, 1409, 0, 734, 1107, 1230, 0, 186, 8, 692, 0, 0, 840, + 0, 1002, 1695, 0, 847, 806, 0, 1595, 482, 0, 0, 935, 0, 0, 915, 0, + 0, 1590, 433, 0, 0, 949, 68, 96, 698, 0, 0, 1929, 0, 0, 464, 0, + 0, 216, 0, 0, 0, 0, 33, 1314, 0, 0, 222, 0, 0, 758, 0, 1911, + 0, 868, 1845, 938, 1337, 0, 287, 151, 0, 1382, 639, 0, 0, 0, 1481, 1160, + 1199, 667, 0, 0, 0, 0, 0, 0, 280, 0, 0, 0, 1275, 87, 1604, 340, + 260, 1427, 0, 1856, 28, 764, 594, 595, 423, 0, 0, 0, 948, 1619, 0, 0, + 0, 1864, 471, 0, 103, 634, 1279, 124, 0, 27, 479, 1041, 275, 1435, 479, 368, + 0, 0, 1557, 662, 64, 0, 0, 957, 574, 0, 0, 444, 0, 0, 0, 699, + 0, 0, 0, 197, 0, 0, 0, 1305, 1220, 0, 0, 615, 483, 915, 121, 0, + 0, 792, 0, 0, 447, 1652, 1039, 1795, 1371, 732, 542, 19, 345, 337, 1108, 0, + 0, 56, 0, 0, 0, 622, 750, 0, 898, 0, 1256, 0, 0, 455, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 694, 646, 0, 888, 0, 794, 0, 415, 195, + 0, 962, 1200, 0, 0, 1435, 0, 0, 0, 1643, 581, 0, 433, 580, 52, 0, + 1777, 665, 0, 623, 0, 688, 581, 429, 0, 222, 434, 0, 0, 0, 134, 0, + 892, 177, 595, 826, 1442, 0, 0, 1913, 0, 0, 449, 0, 722, 0, 508, 749, + 0, 0, 0, 1299, 0, 0, 0, 0, 0, 0, 316, 1540, 566, 0, 203, 0, + 498, 861, 911, 770, 1007, 398, 0, 768, 124, 663, 0, 0, 173, 0, 0, 0, + 0, 993, 1109, 745, 421, 870, 494, 1874, 0, 157, 82, 0, 1082, 1390, 472, 326, + 1291, 0, 557, 797, 0, 384, 0, 0, 1382, 1514, 0, 994, 0, 0, 0, 1123, + 0, 822, 0, 854, 0, 1735, 0, 198, 195, 1791, 898, 0, 1588, 577, 370, 0, + 0, 0, 626, 1341, 54, 0, 0, 816, 1911, 0, 0, 0, 0, 381, 966, 0, + 0, 996, 0, 728, 0, 300, 0, 477, 0, 1227, 0, 1717, 1760, 986, 1442, 583, + 458, 1088, 0, 819, 229, 1344, 348, 0, 1816, 58, 0, 0, 0, 1379, 0, 0, + 1461, 487, 0, 1255, 0, 58, 0, 0, 1710, 1821, 0, 812, 0, 0, 1232, 468, + 1866, 0, 135, 343, 477, 0, 0, 1901, 828, 0, 863, 665, 227, 0, 210, 1140, + 1231, 0, 0, 758, 154, 0, 651, 32, 1381, 0, 720, 978, 431, 1063, 0, 419, + 733, 0, 170, 0, 0, 0, 235, 0, 86, 1574, 549, 10, 0, 1266, 0, 0, + 542, 0, 693, 579, 0, 0, 0, 0, 248, 277, 1215, 19, 253, 0, 1797, 724, + 0, 821, 516, 417, 169, 1702, 5, 0, 584, 0, 0, 954, 0, 0, 0, 945, + 183, 241, 0, 566, 1557, 425, 0, 417, 558, 0, 0, 0, 0, 799, 0, 364, + 371, 552, 1225, 0, 0, 0, 987, 13, 1713, 947, 0, 1723, 0, 898, 1878, 883, + 586, 0, 599, 713, 0, 1207, 192, 1878, 262, 188, 0, 763, 503, 989, 0, 0, + 1701, 0, 963, 1568, 0, 0, 0, 370, 102, 19, 1699, 198, 1737, 658, 1262, 947, + 690, 831, 0, 688, 1290, 735, 0, 102, 80, 130, 1785, 1855, 695, 0, 0, 612, + 320, 0, 0, 0, 1414, 328, 0, 1890, 966, 0, 267, 496, 165, 1301, 104, 188, + 808, 0, 161, 0, 906, 0, 1844, 1042, 1829, 912, 0, 0, 0, 0, 560, 211, + 0, 0, 964, 0, 0, 0, 0, 0, 1527, 16, 115, 649, 51, 455, 859, 1271, + 1363, 0, 1843, 870, 983, 1519, 0, 0, 91, 0, 535, 491, 0, 0, 209, 964, + 0, 186, 0, 0, 135, 629, 798, 1422, 0, 0, 0, 903, 658, 0, 951, 1149, + 510, 284, 1530, 329, 395, 443, 0, 256, 0, 3, 0, 276, 127, 0, 6, 498, + 1079, 1401, 0, 121, 523, 223, 7, 313, 0, 0, 813, 1004, 0, 0, 1155, 0, + 59, 204, 25, 1652, 1458, 1833, 950, 0, 605, 0, 173, 0, 1850, 461, 631, 0, + 1734, 151, 403, 0, 0, 0, 1407, 926, 60, 111, 0, 0, 51, 0, 1590, 843, + 706, 1761, 496, 1355, 0, 0, 0, 0, 6, 13, 1855, 0, 8, 365, 70, 0, + 0, 1051, 712, 0, 0, 1923, 1511, 497, 1685, 1859, 142, 0, 0, 1899, 0, 0, + 0, 0, 1063, 204, 1834, 0, 565, 749, 0, 191, 1674, 985, 0, 1544, 310, 501, + 175, 286, 0, 0, 0, 134, 201, 0, 0, 309, 335, 0, 0, 1039, 962, 0, + 0, 0, 139, 0, 0, 0, 440, 0, 1172, 1709, 0, 1255, 1883, 0, 344, 118, + 0, 1087, 1398, 0, 1352, 250, 1521, 1902, 583, 0, 0, 583, 766, 0, 1590, 484, + 834, 1425, 141, 400, 728, 225, 0, 0, 0, 1111, 417, 1237, 39, 0, 307, 0, + 800, 0, 0, 0, 337, 0, 0, 188, 1540, 1052, 0, 0, 1044, 199, 289, 417, + 426, 313, 676, 886, 0, 0, 1468, 0, 0, 1629, 1559, 1778, 0, 133, 108, 0, + 0, 80, 1014, 68, 622, 710, 0, 0, 179, 458, 0, 1458, 0, 1064, 1667, 67, + 380, 818, 480, 0, 440, 0, 907, 1275, 655, 0, 1569, 0, 0, 402, 839, 225, + 917, 1034, 783, 379, 303, 144, 0, 1183, 743, 488, 869, 1552, 0, 1475, 0, 1535, + 1550, 1303, 0, 1736, 0, 1352, 506, 1609, 1219, 756, 812, 0, 712, 273, 0, 387, + 0, 1707, 326, 0, 107, 1123, 1932, 0, 981, 47, 0, 0, 654, 1272, 1619, 1930, + 0, 0, 0, 0, 1023, 285, 1594, 1753, 0, 736, 1905, 31, 0, 1808, 483, 1393, + 213, 360, 931, 1638, 283, 0, 1680, 1342, 0, 0, 287, 1041, 0, 163, 430, 0, + 0, 1527, 521, 0, 509, 597, 0, 566, 68, 870, 625, 0, 258, 82, 757, 718, + 541, 162, 871, 0, 0, 334, 113, 881, 1025, 0, 1669, 1879, 0, 0, 0, 1912, + 840, 94, 0, 262, 115, 0, 1012, 0, 1068, 537, 473, 1305, 1750, 1912, 1725, 22, + 1579, 746, 0, 900, 0, 0, 0, 844, 128, 934, 0, 0, 1427, 661, 0, 212, + 0, 594, 1485, 0, 722, 1026, 0, 0, 609, 792, 0, 487, 270, 0, 1242, 666, + 0, 0, 0, 388, 0, 1622, 181, 0, 374, 877, 955, 252, 376, 291, 583, 151, + 666, 553, 0, 279, 349, 880, 1564, 450, 0, 417, 584, 0, 0, 1771, 1831, 196, + 212, 269, 536, 249, 111, 1763, 1903, 0, 200, 0, 210, 1530, 787, 1141, 1679, 878, + 0, 992, 628, 0, 1672, 136, 0, 734, 0, 711, 842, 1911, 705, 0, 0, 951, + 0, 0, 1415, 117, 1674, 1768, 0, 1065, 1422, 979, 1234, 0, 0, 0, 774, 113, + 807, 587, 310, 1225, 535, 0, 0, 0, 1367, 0, 0, 1799, 0, 475, 0, 1927, + 1024, 750, 0, 0, 521, 0, 118, 1375, 1809, 729, 0, 281, 562, 1431, 0, 462, + 0, 0, 617, 262, 1080, 159, 0, 1824, 1342, 0, 0, 1854, 0, 1009, 311, 0, + 1002, 612, 0, 0, 0, 1615, 357, 676, 1831, 445, 803, 0, 863, 1225, 1001, 692, + 331, 0, 473, 1885, 271, 0, 544, 930, 1091, 0, 0, 1053, 998, 1209, 495, 213, + 454, 892, 0, 0, 1044, 0, 1839, 153, 1675, 0, 0, 632, 0, 0, 0, 364, + 0, 0, 85, 269, 1145, 0, 0, 1690, 1455, 500, 868, 0, 0, 444, 212, 1449, + 1557, 1880, 0, 0, 136, 807, 522, 0, 207, 1341, 1400, 1915, 215, 757, 715, 993, + 0, 0, 1406, 0, 844, 187, 746, 476, 0, 505, 703, 1325, 0, 137, 547, 935, + 0, 0, 44, 449, 641, 0, 1482, 1128, 2, 0, 0, 332, 1727, 403, 0, 1896, + 644, 0, 308, 605, 1868, 327, 0, 0, 0, 755, 0, 0, 0, 960, 0, 982, + 0, 1131, 818, 1544, 1055, 0, 120, 1867, 436, 771, 659, 0, 609, 0, 0, 866, + 0, 1860, 0, 1486, 0, 273, 624, 0, 229, 407, 0, 294, 284, 0, 551, 106, + 0, 1666, 0, 420, 0, 22, 0, 0, 432, 125, 0, 509, 1172, 1921, 0, 339, + 966, 1659, 1278, 16, 726, 24, 0, 632, 0, 0, 0, 1322, 326, 0, 815, 502, + 0, 979, 391, 0, 0, 595, 0, 1569, 470, 307, 772, 149, 15, 0, 832, 0, + 0, 0, 0, 0, 572, 1491, 1247, 140, 0, 177, 0, 0, 1486, 0}; int HashG(const char *key, const int *T) { @@ -186,7 +160,7 @@ int HashG(const char *key, const int *T) for (int i = 0; key[i] != '\0'; i++) { sum += T[i] * key[i]; - sum %= 2348; + sum %= 1934; } return kG[sum]; } @@ -196,7 +170,7 @@ int PerfectHash(const char *key) if (strlen(key) > 35) return 0; - return (HashG(key, kT1) + HashG(key, kT2)) % 2348; + return (HashG(key, kT1) + HashG(key, kT2)) % 1934; } } // namespace diff --git a/src/compiler/translator/gen_builtin_symbols.py b/src/compiler/translator/gen_builtin_symbols.py index 09d6478e0..2fbcfff6b 100644 --- a/src/compiler/translator/gen_builtin_symbols.py +++ b/src/compiler/translator/gen_builtin_symbols.py @@ -23,6 +23,7 @@ import json import re import os import sys +import random template_immutablestring_cpp = """// GENERATED FILE - DO NOT EDIT. // Generated by {script_name} using data from {variable_data_source_name} and @@ -1248,7 +1249,7 @@ def process_variable_group(parent_condition, group_name, group, builtin_id_decla def main(): - + random.seed(0) set_working_dir() parser = argparse.ArgumentParser()