mirror of
https://github.com/dart-lang/sdk
synced 2024-11-05 18:22:09 +00:00
02a8dd90e1
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> |
||
---|---|---|
.. | ||
bin | ||
docs | ||
include | ||
lib | ||
observatory | ||
observatory_2 | ||
platform | ||
tests | ||
third_party | ||
tools | ||
vm | ||
.clang-tidy | ||
.gitignore | ||
BUILD.gn | ||
codereview.settings | ||
configs.gni | ||
CPPLINT.cfg | ||
PRESUBMIT.py | ||
runtime_args.gni |