Commit 2fe47b9
committed
Auto merge of rust-lang#111634 - marc0246:arc-new-uninit-bloat, r=thomcc
Fix duplicate `arcinner_layout_for_value_layout` calls when using the uninit `Arc` constructors
What this fixes is the duplicate calls to `arcinner_layout_for_value_layout` seen here: https://godbolt.org/z/jr5Gxozhj
The issue was discovered alongside rust-lang#111603 but is otherwise unrelated to the duplicate `alloca`s, which remain unsolved. Everything I tried to solve said main issue has failed.
As for the duplicate layout calculations, I also tried slapping `#[inline]` and `#[inline(always)]` on everything in sight but the only thing that worked in the end is to dedup the calls by hand.File tree
2 files changed
+47
-6
lines changed- library/alloc/src
- tests/codegen/issues
2 files changed
+47
-6
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
502 | 502 | | |
503 | 503 | | |
504 | 504 | | |
| 505 | + | |
505 | 506 | | |
506 | 507 | | |
507 | 508 | | |
| |||
535 | 536 | | |
536 | 537 | | |
537 | 538 | | |
| 539 | + | |
538 | 540 | | |
539 | 541 | | |
540 | 542 | | |
| |||
844 | 846 | | |
845 | 847 | | |
846 | 848 | | |
| 849 | + | |
847 | 850 | | |
848 | 851 | | |
849 | 852 | | |
| |||
871 | 874 | | |
872 | 875 | | |
873 | 876 | | |
| 877 | + | |
874 | 878 | | |
875 | 879 | | |
876 | 880 | | |
| |||
1300 | 1304 | | |
1301 | 1305 | | |
1302 | 1306 | | |
1303 | | - | |
1304 | | - | |
1305 | | - | |
1306 | | - | |
| 1307 | + | |
| 1308 | + | |
| 1309 | + | |
| 1310 | + | |
1307 | 1311 | | |
1308 | 1312 | | |
1309 | 1313 | | |
| |||
1321 | 1325 | | |
1322 | 1326 | | |
1323 | 1327 | | |
1324 | | - | |
| 1328 | + | |
| 1329 | + | |
| 1330 | + | |
| 1331 | + | |
| 1332 | + | |
| 1333 | + | |
| 1334 | + | |
| 1335 | + | |
| 1336 | + | |
| 1337 | + | |
1325 | 1338 | | |
1326 | 1339 | | |
1327 | 1340 | | |
| |||
1330 | 1343 | | |
1331 | 1344 | | |
1332 | 1345 | | |
1333 | | - | |
| 1346 | + | |
1334 | 1347 | | |
1335 | 1348 | | |
1336 | 1349 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 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 | + | |
0 commit comments