dart-sdk/runtime
Ryan Macnak bc0f02e4c8 [vm, gc] Incremental compaction.
At the beginning of a major GC cycle, select some mostly-empty pages to be evacuated. Mark the pages and the objects on these pages. Apply a write barrier for stores creating old -> evacuation candidate pointers, and discover any such pointers that already exist during marking.

At the end of a major GC cycle, evacuate objects from these pages. Forward pointers of objects in the remembered set and new-space. Free the evacuated pages.

This compaction is incremental in the sense that creating the remembered set is interleaved with mutator execution. The evacuation step, however, is stop-the-world.

Write-barrier elimination for x.slot = x is removed. Write-barrier elimination for x.slot = constant is removed in the JIT, kept for AOT but snapshot pages are marked as never-evacuate.

TEST=ci
Bug: https://github.com/dart-lang/sdk/issues/52513
Change-Id: Icbc29ef7cb662ef8759b8c1d7a63b7af60766281
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/357760
Reviewed-by: Alexander Aprelev <aam@google.com>
Commit-Queue: Ryan Macnak <rmacnak@google.com>
2024-05-16 23:26:08 +00:00
..
bin [vm] Remove MSAN_UNPOISONs around print and sort functions. 2024-05-16 16:33:52 +00:00
docs [vm, gc] Incremental compaction. 2024-05-16 23:26:08 +00:00
include [vm/sendports] Introduce an api that can be safely used to rebuild SendPort. 2024-05-01 17:19:16 +00:00
lib [vm] Unsound mode cleanup: remove legacy types from the VM 2024-04-30 17:49:37 +00:00
observatory observatory: replace unsupported [this] comment references with this. 2024-05-16 19:24:38 +00:00
platform [vm, gc] Incremental compaction. 2024-05-16 23:26:08 +00:00
tests [vm] Enable test pattern (a&b == 0) fusion in AOT on X64/ARM64 2024-05-11 08:53:29 +00:00
tools [dartfuzz] Set dart:io's exitCode, not the shadowing local. 2024-05-06 21:22:28 +00:00
vm [vm, gc] Incremental compaction. 2024-05-16 23:26:08 +00:00
.clang-tidy
.gitignore
BUILD.gn [vm, compiler] Allow targeting TSAN or MSAN by passing a flag to gen_snapshot. 2024-05-08 17:03:59 +00:00
codereview.settings
configs.gni [Runtime] Add extra_product_deps and extra_nonproduct_deps params to "library_for_all_configs_with_compiler" template 2023-04-14 19:51:40 +00:00
CPPLINT.cfg [cpplint] Disable runtime/references lint 2023-01-23 18:21:48 +00:00
OWNERS [infra] Add OWNERS to the Dart SDK 2022-02-14 14:06:34 +00:00
PRESUBMIT.py Reland "Reland "[VM] Begin supporting Perfetto file recorder"" 2023-04-18 19:39:05 +00:00
runtime_args.gni Reland "[Fuchsia] Remove the legacy gn build rules for fuchsia" 2024-03-14 20:22:12 +00:00
vm-jit.shard.cml [test] Cleanup building Fuchsia packages/components. 2023-10-31 17:11:51 +00:00
vm.shard.cml [fuchsia][sysmem2] route fuchsia.sysmem2.Allocator 2024-05-10 17:00:29 +00:00