Commit 67dfc17
committed
Auto merge of #25323 - eddyb:coherent-coherence, r=pnkfelix
The loop to load all the known impls from external crates seems to have been used because `ty::populate_implementations_for_trait_if_necessary` wasn't doing its job, and solely relying on it resulted in loading only impls in the same crate as the trait.
Coherence for `librustc` was reduced from 18.310s to 0.610s, from stage1 to stage2.
Interestingly, type checking also went from 46.232s to 42.003s, though that could be noise or unrelated improvements.
On a smaller scale, `fn main() {}` now spends 0.003s in coherence instead of 0.368s, which fixes #22068.
It also peaks at only 1.2MB, instead of 16MB of heap usage.File tree
9 files changed
+148
-244
lines changed- src
- librustc_typeck
- check/method
- coherence
- librustc
- metadata
- middle
- librustdoc/clean
9 files changed
+148
-244
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
189 | 189 | | |
190 | 190 | | |
191 | 191 | | |
| 192 | + | |
192 | 193 | | |
193 | 194 | | |
194 | 195 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
304 | 304 | | |
305 | 305 | | |
306 | 306 | | |
307 | | - | |
308 | | - | |
309 | | - | |
310 | | - | |
311 | | - | |
312 | | - | |
313 | | - | |
314 | | - | |
315 | | - | |
316 | | - | |
317 | | - | |
318 | | - | |
| 307 | + | |
| 308 | + | |
| 309 | + | |
319 | 310 | | |
320 | 311 | | |
321 | 312 | | |
322 | | - | |
| 313 | + | |
323 | 314 | | |
324 | 315 | | |
325 | 316 | | |
326 | 317 | | |
327 | | - | |
| 318 | + | |
328 | 319 | | |
329 | 320 | | |
330 | | - | |
331 | | - | |
| 321 | + | |
| 322 | + | |
| 323 | + | |
332 | 324 | | |
333 | 325 | | |
334 | 326 | | |
| |||
Large diffs are not rendered by default.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
91 | 91 | | |
92 | 92 | | |
93 | 93 | | |
94 | | - | |
95 | | - | |
| 94 | + | |
| 95 | + | |
96 | 96 | | |
97 | 97 | | |
98 | 98 | | |
| |||
122 | 122 | | |
123 | 123 | | |
124 | 124 | | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
125 | 129 | | |
126 | 130 | | |
127 | 131 | | |
| |||
153 | 157 | | |
154 | 158 | | |
155 | 159 | | |
156 | | - | |
157 | | - | |
158 | | - | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
159 | 163 | | |
160 | 164 | | |
161 | 165 | | |
| |||
260 | 264 | | |
261 | 265 | | |
262 | 266 | | |
263 | | - | |
| 267 | + | |
264 | 268 | | |
265 | 269 | | |
266 | 270 | | |
| |||
275 | 279 | | |
276 | 280 | | |
277 | 281 | | |
278 | | - | |
| 282 | + | |
279 | 283 | | |
280 | 284 | | |
281 | 285 | | |
| |||
358 | 362 | | |
359 | 363 | | |
360 | 364 | | |
361 | | - | |
362 | | - | |
| 365 | + | |
| 366 | + | |
363 | 367 | | |
364 | 368 | | |
365 | 369 | | |
| |||
495 | 499 | | |
496 | 500 | | |
497 | 501 | | |
498 | | - | |
499 | | - | |
| 502 | + | |
| 503 | + | |
500 | 504 | | |
501 | 505 | | |
502 | 506 | | |
| |||
526 | 530 | | |
527 | 531 | | |
528 | 532 | | |
529 | | - | |
530 | | - | |
| 533 | + | |
| 534 | + | |
531 | 535 | | |
532 | 536 | | |
533 | | - | |
534 | | - | |
| 537 | + | |
| 538 | + | |
535 | 539 | | |
536 | 540 | | |
537 | 541 | | |
| |||
541 | 545 | | |
542 | 546 | | |
543 | 547 | | |
544 | | - | |
545 | | - | |
| 548 | + | |
546 | 549 | | |
547 | 550 | | |
548 | 551 | | |
| |||
619 | 622 | | |
620 | 623 | | |
621 | 624 | | |
622 | | - | |
623 | | - | |
| 625 | + | |
624 | 626 | | |
625 | 627 | | |
626 | 628 | | |
| |||
725 | 727 | | |
726 | 728 | | |
727 | 729 | | |
728 | | - | |
729 | | - | |
| 730 | + | |
| 731 | + | |
730 | 732 | | |
731 | 733 | | |
732 | 734 | | |
| |||
1089 | 1091 | | |
1090 | 1092 | | |
1091 | 1093 | | |
1092 | | - | |
1093 | | - | |
| 1094 | + | |
| 1095 | + | |
1094 | 1096 | | |
1095 | 1097 | | |
1096 | 1098 | | |
| |||
1335 | 1337 | | |
1336 | 1338 | | |
1337 | 1339 | | |
1338 | | - | |
1339 | | - | |
| 1340 | + | |
| 1341 | + | |
1340 | 1342 | | |
1341 | 1343 | | |
1342 | 1344 | | |
| |||
1893 | 1895 | | |
1894 | 1896 | | |
1895 | 1897 | | |
| 1898 | + | |
1896 | 1899 | | |
1897 | 1900 | | |
1898 | 1901 | | |
| |||
1932 | 1935 | | |
1933 | 1936 | | |
1934 | 1937 | | |
1935 | | - | |
1936 | | - | |
| 1938 | + | |
| 1939 | + | |
1937 | 1940 | | |
1938 | 1941 | | |
1939 | | - | |
1940 | | - | |
| 1942 | + | |
| 1943 | + | |
1941 | 1944 | | |
1942 | 1945 | | |
1943 | 1946 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2564 | 2564 | | |
2565 | 2565 | | |
2566 | 2566 | | |
| 2567 | + | |
| 2568 | + | |
| 2569 | + | |
2567 | 2570 | | |
2568 | 2571 | | |
2569 | | - | |
2570 | 2572 | | |
2571 | 2573 | | |
2572 | 2574 | | |
| |||
6336 | 6338 | | |
6337 | 6339 | | |
6338 | 6340 | | |
6339 | | - | |
6340 | | - | |
6341 | | - | |
6342 | | - | |
| 6341 | + | |
| 6342 | + | |
| 6343 | + | |
| 6344 | + | |
6343 | 6345 | | |
6344 | 6346 | | |
6345 | 6347 | | |
| |||
6348 | 6350 | | |
6349 | 6351 | | |
6350 | 6352 | | |
6351 | | - | |
| 6353 | + | |
6352 | 6354 | | |
6353 | 6355 | | |
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 | | - | |
| 6356 | + | |
| 6357 | + | |
| 6358 | + | |
6380 | 6359 | | |
6381 | 6360 | | |
| 6361 | + | |
6382 | 6362 | | |
6383 | 6363 | | |
6384 | 6364 | | |
| |||
6388 | 6368 | | |
6389 | 6369 | | |
6390 | 6370 | | |
6391 | | - | |
6392 | | - | |
6393 | | - | |
| 6371 | + | |
6394 | 6372 | | |
6395 | 6373 | | |
6396 | 6374 | | |
6397 | 6375 | | |
6398 | 6376 | | |
6399 | 6377 | | |
6400 | | - | |
| 6378 | + | |
6401 | 6379 | | |
6402 | 6380 | | |
| 6381 | + | |
| 6382 | + | |
6403 | 6383 | | |
6404 | 6384 | | |
6405 | 6385 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
371 | 371 | | |
372 | 372 | | |
373 | 373 | | |
374 | | - | |
| 374 | + | |
375 | 375 | | |
376 | 376 | | |
377 | 377 | | |
| |||
0 commit comments