Commit 8327b5a
committed
Auto merge of #37429 - camlorn:univariant_layout_optimization, r=eddyb
struct field reordering and optimization
This is work in progress. The goal is to divorce the order of fields in source code from the order of fields in the LLVM IR, then optimize structs (and tuples/enum variants)by always ordering fields from least to most aligned. It does not work yet. I intend to check compiler memory usage as a benchmark, and a crater run will probably be required.
I don't know enough of the compiler to complete this work unaided. If you see places that still need updating, please mention them. The only one I know of currently is debuginfo, which I'm putting off intentionally until a bit later.
r? @eddybFile tree
28 files changed
+538
-232
lines changed- src
- librustc_data_structures
- librustc_lint
- librustc_trans
- debuginfo
- mir
- librustc
- session
- ty
- test
- debuginfo
- run-pass
- ui/print_type_sizes
28 files changed
+538
-232
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
142 | 142 | | |
143 | 143 | | |
144 | 144 | | |
145 | | - | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
146 | 151 | | |
147 | 152 | | |
148 | 153 | | |
| |||
Large diffs are not rendered by default.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
31 | 31 | | |
32 | 32 | | |
33 | 33 | | |
| 34 | + | |
34 | 35 | | |
35 | 36 | | |
36 | 37 | | |
| |||
53 | 54 | | |
54 | 55 | | |
55 | 56 | | |
| 57 | + | |
56 | 58 | | |
57 | 59 | | |
58 | 60 | | |
| |||
76 | 78 | | |
77 | 79 | | |
78 | 80 | | |
| 81 | + | |
79 | 82 | | |
80 | 83 | | |
81 | 84 | | |
| |||
98 | 101 | | |
99 | 102 | | |
100 | 103 | | |
| 104 | + | |
101 | 105 | | |
102 | 106 | | |
103 | 107 | | |
| |||
119 | 123 | | |
120 | 124 | | |
121 | 125 | | |
| 126 | + | |
122 | 127 | | |
123 | 128 | | |
124 | 129 | | |
| |||
141 | 146 | | |
142 | 147 | | |
143 | 148 | | |
| 149 | + | |
144 | 150 | | |
145 | 151 | | |
146 | 152 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
750 | 750 | | |
751 | 751 | | |
752 | 752 | | |
753 | | - | |
| 753 | + | |
| 754 | + | |
754 | 755 | | |
755 | 756 | | |
756 | 757 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
151 | 151 | | |
152 | 152 | | |
153 | 153 | | |
154 | | - | |
155 | | - | |
| 154 | + | |
| 155 | + | |
156 | 156 | | |
157 | | - | |
| 157 | + | |
158 | 158 | | |
159 | 159 | | |
160 | | - | |
161 | | - | |
| 160 | + | |
| 161 | + | |
162 | 162 | | |
163 | 163 | | |
164 | 164 | | |
| |||
188 | 188 | | |
189 | 189 | | |
190 | 190 | | |
191 | | - | |
| 191 | + | |
192 | 192 | | |
193 | 193 | | |
194 | 194 | | |
| |||
203 | 203 | | |
204 | 204 | | |
205 | 205 | | |
206 | | - | |
| 206 | + | |
207 | 207 | | |
208 | 208 | | |
209 | 209 | | |
| |||
291 | 291 | | |
292 | 292 | | |
293 | 293 | | |
| 294 | + | |
294 | 295 | | |
| 296 | + | |
295 | 297 | | |
296 | | - | |
297 | | - | |
| 298 | + | |
| 299 | + | |
298 | 300 | | |
299 | | - | |
| 301 | + | |
300 | 302 | | |
301 | 303 | | |
302 | 304 | | |
| |||
564 | 566 | | |
565 | 567 | | |
566 | 568 | | |
567 | | - | |
568 | 569 | | |
| 570 | + | |
569 | 571 | | |
570 | 572 | | |
571 | 573 | | |
572 | 574 | | |
573 | 575 | | |
574 | 576 | | |
575 | | - | |
576 | | - | |
| 577 | + | |
| 578 | + | |
577 | 579 | | |
578 | 580 | | |
579 | 581 | | |
| |||
585 | 587 | | |
586 | 588 | | |
587 | 589 | | |
588 | | - | |
589 | | - | |
| 590 | + | |
| 591 | + | |
590 | 592 | | |
591 | 593 | | |
592 | 594 | | |
593 | 595 | | |
594 | 596 | | |
595 | 597 | | |
596 | | - | |
| 598 | + | |
597 | 599 | | |
598 | 600 | | |
599 | 601 | | |
| |||
755 | 757 | | |
756 | 758 | | |
757 | 759 | | |
758 | | - | |
759 | | - | |
| 760 | + | |
| 761 | + | |
| 762 | + | |
| 763 | + | |
| 764 | + | |
| 765 | + | |
760 | 766 | | |
761 | 767 | | |
762 | 768 | | |
| |||
807 | 813 | | |
808 | 814 | | |
809 | 815 | | |
810 | | - | |
| 816 | + | |
| 817 | + | |
| 818 | + | |
| 819 | + | |
811 | 820 | | |
812 | | - | |
813 | | - | |
814 | | - | |
815 | | - | |
816 | | - | |
817 | | - | |
818 | 821 | | |
819 | 822 | | |
820 | 823 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
827 | 827 | | |
828 | 828 | | |
829 | 829 | | |
830 | | - | |
| 830 | + | |
| 831 | + | |
| 832 | + | |
831 | 833 | | |
832 | 834 | | |
833 | 835 | | |
| |||
1868 | 1870 | | |
1869 | 1871 | | |
1870 | 1872 | | |
1871 | | - | |
| 1873 | + | |
| 1874 | + | |
1872 | 1875 | | |
1873 | 1876 | | |
1874 | 1877 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
870 | 870 | | |
871 | 871 | | |
872 | 872 | | |
| 873 | + | |
873 | 874 | | |
874 | 875 | | |
875 | | - | |
876 | 876 | | |
877 | 877 | | |
878 | 878 | | |
879 | 879 | | |
880 | 880 | | |
881 | 881 | | |
882 | | - | |
883 | | - | |
884 | | - | |
885 | | - | |
886 | | - | |
887 | | - | |
888 | | - | |
889 | | - | |
890 | | - | |
891 | | - | |
| 882 | + | |
| 883 | + | |
| 884 | + | |
| 885 | + | |
| 886 | + | |
| 887 | + | |
| 888 | + | |
| 889 | + | |
| 890 | + | |
| 891 | + | |
| 892 | + | |
| 893 | + | |
| 894 | + | |
892 | 895 | | |
893 | 896 | | |
894 | 897 | | |
| |||
899 | 902 | | |
900 | 903 | | |
901 | 904 | | |
902 | | - | |
903 | | - | |
904 | | - | |
905 | | - | |
906 | | - | |
| 905 | + | |
907 | 906 | | |
908 | 907 | | |
909 | 908 | | |
| |||
945 | 944 | | |
946 | 945 | | |
947 | 946 | | |
| 947 | + | |
948 | 948 | | |
949 | 949 | | |
950 | | - | |
951 | 950 | | |
952 | 951 | | |
953 | 952 | | |
| |||
959 | 958 | | |
960 | 959 | | |
961 | 960 | | |
| 961 | + | |
962 | 962 | | |
963 | 963 | | |
964 | 964 | | |
965 | 965 | | |
966 | 966 | | |
967 | 967 | | |
968 | 968 | | |
| 969 | + | |
| 970 | + | |
| 971 | + | |
| 972 | + | |
| 973 | + | |
| 974 | + | |
| 975 | + | |
969 | 976 | | |
970 | 977 | | |
971 | 978 | | |
| |||
974 | 981 | | |
975 | 982 | | |
976 | 983 | | |
977 | | - | |
| 984 | + | |
978 | 985 | | |
979 | 986 | | |
980 | 987 | | |
| |||
1001 | 1008 | | |
1002 | 1009 | | |
1003 | 1010 | | |
| 1011 | + | |
1004 | 1012 | | |
1005 | 1013 | | |
1006 | 1014 | | |
| |||
1239 | 1247 | | |
1240 | 1248 | | |
1241 | 1249 | | |
1242 | | - | |
| 1250 | + | |
1243 | 1251 | | |
1244 | 1252 | | |
1245 | 1253 | | |
| |||
1262 | 1270 | | |
1263 | 1271 | | |
1264 | 1272 | | |
1265 | | - | |
| 1273 | + | |
1266 | 1274 | | |
1267 | 1275 | | |
1268 | 1276 | | |
1269 | 1277 | | |
1270 | | - | |
| 1278 | + | |
1271 | 1279 | | |
1272 | 1280 | | |
1273 | 1281 | | |
| |||
1289 | 1297 | | |
1290 | 1298 | | |
1291 | 1299 | | |
| 1300 | + | |
| 1301 | + | |
1292 | 1302 | | |
1293 | 1303 | | |
1294 | 1304 | | |
| |||
1305 | 1315 | | |
1306 | 1316 | | |
1307 | 1317 | | |
1308 | | - | |
| 1318 | + | |
1309 | 1319 | | |
1310 | 1320 | | |
1311 | 1321 | | |
| |||
1325 | 1335 | | |
1326 | 1336 | | |
1327 | 1337 | | |
1328 | | - | |
| 1338 | + | |
1329 | 1339 | | |
1330 | 1340 | | |
1331 | 1341 | | |
| |||
1409 | 1419 | | |
1410 | 1420 | | |
1411 | 1421 | | |
| 1422 | + | |
1412 | 1423 | | |
1413 | 1424 | | |
1414 | 1425 | | |
| |||
0 commit comments