Commit 51959f2
authored
Prepare FACT for supporting more memory types (bytecodealliance#12972)
This commit refactors the internals of FACT, wasmtime's
component-to-component trampoline compiler, to better handle memories of
different types. When FACT was originally written it had support for
memory64, despite components not having support for memory64, but since
then more types of memories have showed up in core wasm. For example
FACT didn't handle shared memories or custom-page-sizes memories well.
This commit manually updates some `memory64: bool` fields/etc to `ty:
Memory` to have a full-fledged memory type on-hand during translation.
This affects how the memory is imported, for example, as well as bounds
checks.
Note that components do not currently support 64-bit memories, nor
shared memories, nor custom-page-size memories. This refactoring is for
future support of these features internally within FACT itself, but more
support will be necessary to fully support these features throughout the
runtime.1 parent 1ff5fca commit 51959f2
5 files changed
Lines changed: 116 additions & 137 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
115 | 115 | | |
116 | 116 | | |
117 | 117 | | |
118 | | - | |
119 | 118 | | |
120 | 119 | | |
| 120 | + | |
121 | 121 | | |
122 | 122 | | |
123 | 123 | | |
| |||
150 | 150 | | |
151 | 151 | | |
152 | 152 | | |
153 | | - | |
154 | | - | |
155 | | - | |
156 | | - | |
| 153 | + | |
| 154 | + | |
157 | 155 | | |
158 | 156 | | |
159 | 157 | | |
| |||
416 | 414 | | |
417 | 415 | | |
418 | 416 | | |
419 | | - | |
420 | | - | |
421 | | - | |
422 | | - | |
423 | | - | |
424 | | - | |
| 417 | + | |
| 418 | + | |
425 | 419 | | |
426 | 420 | | |
427 | 421 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
46 | 46 | | |
47 | 47 | | |
48 | 48 | | |
49 | | - | |
| 49 | + | |
50 | 50 | | |
51 | 51 | | |
52 | 52 | | |
| |||
1520 | 1520 | | |
1521 | 1521 | | |
1522 | 1522 | | |
1523 | | - | |
| 1523 | + | |
1524 | 1524 | | |
1525 | 1525 | | |
1526 | 1526 | | |
1527 | 1527 | | |
1528 | | - | |
| 1528 | + | |
1529 | 1529 | | |
1530 | | - | |
1531 | | - | |
1532 | | - | |
1533 | | - | |
1534 | | - | |
1535 | | - | |
1536 | | - | |
| 1530 | + | |
1537 | 1531 | | |
1538 | 1532 | | |
1539 | 1533 | | |
1540 | 1534 | | |
1541 | | - | |
1542 | | - | |
1543 | | - | |
1544 | | - | |
| 1535 | + | |
1545 | 1536 | | |
1546 | 1537 | | |
1547 | 1538 | | |
1548 | 1539 | | |
1549 | 1540 | | |
1550 | | - | |
| 1541 | + | |
1551 | 1542 | | |
1552 | 1543 | | |
1553 | 1544 | | |
| |||
1562 | 1553 | | |
1563 | 1554 | | |
1564 | 1555 | | |
1565 | | - | |
1566 | | - | |
1567 | | - | |
1568 | | - | |
1569 | | - | |
1570 | | - | |
| 1556 | + | |
1571 | 1557 | | |
1572 | | - | |
1573 | | - | |
1574 | | - | |
1575 | | - | |
1576 | | - | |
| 1558 | + | |
1577 | 1559 | | |
1578 | 1560 | | |
1579 | 1561 | | |
| |||
1603 | 1585 | | |
1604 | 1586 | | |
1605 | 1587 | | |
1606 | | - | |
1607 | | - | |
1608 | | - | |
1609 | | - | |
1610 | | - | |
1611 | | - | |
1612 | | - | |
1613 | | - | |
| 1588 | + | |
| 1589 | + | |
| 1590 | + | |
| 1591 | + | |
| 1592 | + | |
| 1593 | + | |
1614 | 1594 | | |
1615 | 1595 | | |
1616 | 1596 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
20 | 20 | | |
21 | 21 | | |
22 | 22 | | |
23 | | - | |
24 | | - | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
25 | 26 | | |
26 | 27 | | |
27 | | - | |
28 | | - | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
29 | 33 | | |
30 | 34 | | |
31 | 35 | | |
| |||
142 | 146 | | |
143 | 147 | | |
144 | 148 | | |
145 | | - | |
146 | | - | |
147 | 149 | | |
148 | 150 | | |
149 | | - | |
| 151 | + | |
150 | 152 | | |
151 | 153 | | |
152 | 154 | | |
153 | 155 | | |
154 | 156 | | |
155 | 157 | | |
156 | 158 | | |
157 | | - | |
| 159 | + | |
158 | 160 | | |
159 | 161 | | |
160 | 162 | | |
161 | 163 | | |
162 | 164 | | |
163 | 165 | | |
164 | 166 | | |
165 | | - | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
| 170 | + | |
| 171 | + | |
| 172 | + | |
| 173 | + | |
| 174 | + | |
| 175 | + | |
| 176 | + | |
| 177 | + | |
| 178 | + | |
| 179 | + | |
| 180 | + | |
| 181 | + | |
| 182 | + | |
166 | 183 | | |
167 | 184 | | |
168 | 185 | | |
| |||
345 | 362 | | |
346 | 363 | | |
347 | 364 | | |
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 | + | |
365 | 385 | | |
366 | 386 | | |
367 | 387 | | |
368 | | - | |
369 | | - | |
370 | | - | |
371 | | - | |
| 388 | + | |
| 389 | + | |
| 390 | + | |
372 | 391 | | |
373 | 392 | | |
374 | 393 | | |
| |||
378 | 397 | | |
379 | 398 | | |
380 | 399 | | |
381 | | - | |
382 | | - | |
383 | | - | |
384 | | - | |
385 | | - | |
| 400 | + | |
386 | 401 | | |
387 | 402 | | |
388 | 403 | | |
| |||
907 | 922 | | |
908 | 923 | | |
909 | 924 | | |
910 | | - | |
| 925 | + | |
911 | 926 | | |
912 | 927 | | |
913 | 928 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
215 | 215 | | |
216 | 216 | | |
217 | 217 | | |
218 | | - | |
| 218 | + | |
219 | 219 | | |
220 | 220 | | |
221 | 221 | | |
| |||
0 commit comments