dart-sdk/runtime/platform
Vyacheslav Egorov 72eb59f32a [vm/compiler] Allow WB elimination for small arrays.
Previously all arrays were excluded from WB elimination pass
to avoid invariant restoration code creating excessive work
for the GC and to avoid dealing with card marking in the
invariant restoration code.

It seems reasonable to enable this for small arrays of up to 8
elements. The cut of point of 8 elements was chosen based on the
cut of point for literal<N> specialisations provided by the
core library for creating small literal arrays.

TEST=vm/cc/IRTest_WriteBarrierElimination_Arrays

Cq-Include-Trybots: luci.dart.try:vm-kernel-precomp-dwarf-linux-product-x64-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-simarm-try,vm-kernel-precomp-linux-release-simarm64-try,vm-kernel-precomp-linux-release-simarm_x64-try,vm-kernel-precomp-linux-release-x64-try
Change-Id: I2b3169865f07c3ff95820c1bc6718943e96bd33b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/229903
Reviewed-by: Alexander Markov <alexmarkov@google.com>
Reviewed-by: Ryan Macnak <rmacnak@google.com>
Commit-Queue: Slava Egorov <vegorov@google.com>
2022-02-07 10:47:12 +00:00
..
address_sanitizer.h [vm] Fix LSAN when used without ASAN. 2020-05-12 17:38:19 +00:00
allocation.cc [vm] Produce clearer error messages for malloc/realloc failures. 2020-11-13 22:10:54 +00:00
allocation.h [vm] Produce clearer error messages for malloc/realloc failures. 2020-11-13 22:10:54 +00:00
assert.cc [vm/compiler] Reduce number of subtype comparisons in AOT. 2021-08-19 18:32:01 +00:00
assert.h [gardening] Fix MSAN failure in assert.h. 2021-12-15 13:49:56 +00:00
atomic.h [ VM / Service ] Allow for CpuSamples to be streamed when samples are about to be overwritten. 2021-07-16 20:50:58 +00:00
BUILD.gn [fuchsia] allow injecting the inspect node 2021-03-22 17:38:24 +00:00
elf.h [vm] Support RISC-V. 2022-01-20 00:57:57 +00:00
floating_point.h [gardening] Fix import to fix Flutter build 2019-09-06 09:08:49 +00:00
floating_point_win.cc [vm] Reland: Prefix HOST_OS_* and TARGET_OS_* with DART_ 2021-07-02 19:06:45 +00:00
floating_point_win.h Make header include guards great again 2016-10-26 00:26:03 -07:00
globals.h [vm] Support RISC-V. 2022-01-20 00:57:57 +00:00
growable_array.h [vm/concurrency] Implement a fast transitive object copy for isolate message passing 2021-07-13 19:04:20 +00:00
hashmap.cc [vm] Produce clearer error messages when operator new fails. 2020-11-13 19:07:20 +00:00
hashmap.h [vm] Propagate more UTF8 conversion errors 2018-09-06 02:23:21 +00:00
leak_sanitizer.h [vm] Fix LSAN when used without ASAN. 2020-05-12 17:38:19 +00:00
memory_sanitizer.h [vm, io] Fix some MemorySanitizer issues. 2020-02-27 17:50:43 +00:00
platform_sources.gni [vm] Produce clearer error messages for malloc/realloc failures. 2020-11-13 22:10:54 +00:00
priority_queue.h [vm] Make event handler use appropriate data structure for timers 2020-12-16 10:55:12 +00:00
safe_stack.h [vm] Fix various UBSan failures. 2020-05-07 19:40:18 +00:00
signal_blocker.h [vm] Reland: Prefix HOST_OS_* and TARGET_OS_* with DART_ 2021-07-02 19:06:45 +00:00
splay-tree-inl.h [ VM ] Updated splay-tree licenses, added V8 project authors to AUTHORS 2019-04-30 19:50:46 +00:00
splay-tree.h [ VM ] Updated splay-tree licenses, added V8 project authors to AUTHORS 2019-04-30 19:50:46 +00:00
syslog.h [build] Remove last platform -> vm and bin -> vm dependencies. Fix some ODR violations. 2019-04-22 20:15:43 +00:00
syslog_android.cc [standalone] Fix reuse of va_list in syslog_android.cc. 2021-12-15 22:22:36 +00:00
syslog_fuchsia.cc [vm] Reland: Prefix HOST_OS_* and TARGET_OS_* with DART_ 2021-07-02 19:06:45 +00:00
syslog_linux.cc [vm] Reland: Prefix HOST_OS_* and TARGET_OS_* with DART_ 2021-07-02 19:06:45 +00:00
syslog_macos.cc [vm] Reland: Prefix HOST_OS_* and TARGET_OS_* with DART_ 2021-07-02 19:06:45 +00:00
syslog_win.cc [vm] Reland: Prefix HOST_OS_* and TARGET_OS_* with DART_ 2021-07-02 19:06:45 +00:00
text_buffer.cc [vm] Add buffering of --trace_precompiler_to output in memory 2020-12-11 18:19:39 +00:00
text_buffer.h [vm] Add buffering of --trace_precompiler_to output in memory 2020-12-11 18:19:39 +00:00
thread_sanitizer.h Reland "[vm] When run under TSAN use longjmp() to skip over C++ frames before manually unwinding to the catch entry" 2021-12-08 20:41:18 +00:00
unaligned.h [vm] Fix various UBSan failures. 2020-05-07 19:40:18 +00:00
undefined_behavior_sanitizer.h [vm] Fix various UBSan failures. 2020-05-07 19:40:18 +00:00
unicode.cc [dart/fuzzer] Mechanism for target functions 2019-05-02 18:12:19 +00:00
unicode.h [vm] Adjust internal UTF-8 encoder to match dart:convert. 2020-06-29 16:10:13 +00:00
utils.cc [VM / Runtime] Fix GetLastErrorAsString to use the correct status on 2021-12-14 16:27:44 +00:00
utils.h [vm/compiler] Allow WB elimination for small arrays. 2022-02-07 10:47:12 +00:00
utils_android.cc [vm] Reland: Prefix HOST_OS_* and TARGET_OS_* with DART_ 2021-07-02 19:06:45 +00:00
utils_android.h [vm/compiler] bit utilities 2019-10-07 18:13:06 +00:00
utils_fuchsia.cc [vm] Reland: Prefix HOST_OS_* and TARGET_OS_* with DART_ 2021-07-02 19:06:45 +00:00
utils_fuchsia.h [fuchsia] allow injecting the inspect node 2021-03-22 17:38:24 +00:00
utils_linux.cc [vm] Reland: Prefix HOST_OS_* and TARGET_OS_* with DART_ 2021-07-02 19:06:45 +00:00
utils_linux.h [vm/compiler] bit utilities 2019-10-07 18:13:06 +00:00
utils_macos.cc [vm] Reland: Prefix HOST_OS_* and TARGET_OS_* with DART_ 2021-07-02 19:06:45 +00:00
utils_macos.h [vm/compiler] bit utilities 2019-10-07 18:13:06 +00:00
utils_win.cc [vm] Reland: Prefix HOST_OS_* and TARGET_OS_* with DART_ 2021-07-02 19:06:45 +00:00
utils_win.h [vm/compiler] bit utilities 2019-10-07 18:13:06 +00:00