Commit 02a8dd9
[vm] Add a bare-bones AllocateClosure stub.
Also create a subclass of AllocationInstr, AllocateClosureInstr,
which is used when allocating closures.
Followup CLs add inputs to this instruction and to the AllocateClosure
stub, starting with the closure function. Adding these inputs allows
the related field to be set within the stub, instead of using
StoreInstanceField manually at each closure allocation point.
Since this CL only adds the initial stub/instruction implementation,
the overhead on snapshots is minimal: just the addition of the new
stub to each isolate.
-----
This CL also adds virtual and non-virtual methods to assembler_base.h
revolving around field loads and stores and attempted inline object
allocation, to ensure all architectures have these methods.
It also adds LoadFromSlot/StoreToSlot/StoreToSlotNoBarrier, which
appropriately calls one of the other methods based on whether the slot
is compressed or not and whether it is a boxed or unboxed field.
With these additions, the AllocateClosure stub generator can be defined
in an architecture-independent way.
TEST=Basically a refactoring, so check using current test suites.
Cq-Include-Trybots: luci.dart.try:vm-kernel-precomp-linux-debug-simarm64c-try,vm-kernel-precomp-linux-debug-simarm_x64-try,vm-kernel-precomp-linux-debug-x64-try,vm-kernel-precomp-linux-debug-x64c-try,vm-kernel-precomp-linux-product-x64-try,vm-kernel-precomp-linux-release-x64-try,vm-kernel-precomp-linux-release-simarm64-try,vm-kernel-precomp-linux-release-simarm-try,vm-kernel-linux-debug-ia32-try,vm-kernel-linux-debug-x64-try,vm-kernel-linux-product-x64-try,vm-kernel-linux-release-simarm64-try,vm-kernel-linux-release-simarm-try,vm-kernel-linux-release-x64-try,vm-kernel-linux-debug-x64c-try
Change-Id: I71f5691307679f8d5e3604007699de4706f86eb8
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/198284
Commit-Queue: Tess Strickland <sstrickl@google.com>
Reviewed-by: Alexander Markov <alexmarkov@google.com>
Reviewed-by: Martin Kustermann <kustermann@google.com>1 parent 010523e commit 02a8dd9
File tree
42 files changed
+902
-574
lines changed- runtime/vm
- compiler
- assembler
- backend
- frontend
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
42 files changed
+902
-574
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3421 | 3421 | | |
3422 | 3422 | | |
3423 | 3423 | | |
3424 | | - | |
3425 | | - | |
3426 | | - | |
3427 | | - | |
3428 | | - | |
| 3424 | + | |
| 3425 | + | |
| 3426 | + | |
| 3427 | + | |
| 3428 | + | |
| 3429 | + | |
3429 | 3430 | | |
3430 | | - | |
| 3431 | + | |
| 3432 | + | |
| 3433 | + | |
| 3434 | + | |
| 3435 | + | |
| 3436 | + | |
| 3437 | + | |
| 3438 | + | |
3431 | 3439 | | |
3432 | 3440 | | |
3433 | | - | |
3434 | | - | |
3435 | | - | |
3436 | | - | |
3437 | 3441 | | |
3438 | 3442 | | |
3439 | 3443 | | |
3440 | | - | |
3441 | | - | |
3442 | | - | |
| 3444 | + | |
| 3445 | + | |
3443 | 3446 | | |
3444 | 3447 | | |
3445 | | - | |
| 3448 | + | |
3446 | 3449 | | |
3447 | 3450 | | |
3448 | 3451 | | |
| |||
3453 | 3456 | | |
3454 | 3457 | | |
3455 | 3458 | | |
3456 | | - | |
3457 | | - | |
| 3459 | + | |
3458 | 3460 | | |
3459 | 3461 | | |
3460 | 3462 | | |
3461 | | - | |
3462 | | - | |
| 3463 | + | |
| 3464 | + | |
3463 | 3465 | | |
3464 | 3466 | | |
3465 | 3467 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
388 | 388 | | |
389 | 389 | | |
390 | 390 | | |
391 | | - | |
392 | | - | |
393 | | - | |
| 391 | + | |
| 392 | + | |
394 | 393 | | |
395 | 394 | | |
396 | 395 | | |
| |||
854 | 853 | | |
855 | 854 | | |
856 | 855 | | |
857 | | - | |
858 | | - | |
859 | | - | |
860 | | - | |
861 | | - | |
862 | 856 | | |
863 | 857 | | |
864 | 858 | | |
| |||
867 | 861 | | |
868 | 862 | | |
869 | 863 | | |
870 | | - | |
| 864 | + | |
871 | 865 | | |
872 | 866 | | |
873 | 867 | | |
| |||
879 | 873 | | |
880 | 874 | | |
881 | 875 | | |
882 | | - | |
| 876 | + | |
883 | 877 | | |
884 | 878 | | |
885 | 879 | | |
| |||
1274 | 1268 | | |
1275 | 1269 | | |
1276 | 1270 | | |
1277 | | - | |
1278 | | - | |
1279 | | - | |
1280 | | - | |
1281 | | - | |
1282 | | - | |
1283 | | - | |
1284 | | - | |
1285 | | - | |
| 1271 | + | |
| 1272 | + | |
| 1273 | + | |
| 1274 | + | |
| 1275 | + | |
| 1276 | + | |
1286 | 1277 | | |
1287 | 1278 | | |
1288 | 1279 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1841 | 1841 | | |
1842 | 1842 | | |
1843 | 1843 | | |
1844 | | - | |
1845 | | - | |
1846 | | - | |
1847 | | - | |
1848 | | - | |
1849 | | - | |
| 1844 | + | |
| 1845 | + | |
| 1846 | + | |
| 1847 | + | |
| 1848 | + | |
| 1849 | + | |
1850 | 1850 | | |
1851 | | - | |
| 1851 | + | |
| 1852 | + | |
| 1853 | + | |
| 1854 | + | |
| 1855 | + | |
1852 | 1856 | | |
1853 | 1857 | | |
1854 | 1858 | | |
1855 | 1859 | | |
1856 | 1860 | | |
1857 | | - | |
1858 | | - | |
1859 | | - | |
1860 | | - | |
1861 | | - | |
1862 | | - | |
| 1861 | + | |
1863 | 1862 | | |
1864 | 1863 | | |
1865 | | - | |
| 1864 | + | |
1866 | 1865 | | |
| 1866 | + | |
| 1867 | + | |
1867 | 1868 | | |
1868 | 1869 | | |
1869 | | - | |
1870 | | - | |
1871 | | - | |
| 1870 | + | |
| 1871 | + | |
| 1872 | + | |
| 1873 | + | |
| 1874 | + | |
1872 | 1875 | | |
1873 | | - | |
| 1876 | + | |
1874 | 1877 | | |
1875 | | - | |
| 1878 | + | |
| 1879 | + | |
| 1880 | + | |
1876 | 1881 | | |
1877 | 1882 | | |
1878 | | - | |
1879 | | - | |
1880 | | - | |
1881 | | - | |
1882 | | - | |
1883 | | - | |
| 1883 | + | |
| 1884 | + | |
| 1885 | + | |
1884 | 1886 | | |
1885 | 1887 | | |
1886 | 1888 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
547 | 547 | | |
548 | 548 | | |
549 | 549 | | |
550 | | - | |
551 | | - | |
| 550 | + | |
| 551 | + | |
| 552 | + | |
| 553 | + | |
552 | 554 | | |
553 | 555 | | |
554 | 556 | | |
| |||
1762 | 1764 | | |
1763 | 1765 | | |
1764 | 1766 | | |
1765 | | - | |
1766 | | - | |
1767 | | - | |
1768 | | - | |
1769 | | - | |
1770 | 1767 | | |
1771 | 1768 | | |
1772 | 1769 | | |
| |||
1778 | 1775 | | |
1779 | 1776 | | |
1780 | 1777 | | |
1781 | | - | |
1782 | | - | |
1783 | | - | |
1784 | | - | |
1785 | | - | |
| 1778 | + | |
| 1779 | + | |
| 1780 | + | |
| 1781 | + | |
| 1782 | + | |
| 1783 | + | |
1786 | 1784 | | |
1787 | 1785 | | |
1788 | 1786 | | |
| |||
1800 | 1798 | | |
1801 | 1799 | | |
1802 | 1800 | | |
1803 | | - | |
| 1801 | + | |
1804 | 1802 | | |
1805 | 1803 | | |
1806 | | - | |
| 1804 | + | |
1807 | 1805 | | |
1808 | 1806 | | |
1809 | 1807 | | |
| |||
1990 | 1988 | | |
1991 | 1989 | | |
1992 | 1990 | | |
1993 | | - | |
1994 | | - | |
1995 | | - | |
1996 | | - | |
1997 | | - | |
1998 | | - | |
1999 | | - | |
2000 | | - | |
2001 | | - | |
2002 | | - | |
2003 | | - | |
2004 | | - | |
2005 | | - | |
| 1991 | + | |
| 1992 | + | |
| 1993 | + | |
| 1994 | + | |
| 1995 | + | |
| 1996 | + | |
2006 | 1997 | | |
2007 | 1998 | | |
2008 | 1999 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
| 8 | + | |
8 | 9 | | |
9 | 10 | | |
10 | 11 | | |
| |||
26 | 27 | | |
27 | 28 | | |
28 | 29 | | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
29 | 77 | | |
30 | 78 | | |
31 | 79 | | |
| |||
0 commit comments