dart-sdk/runtime
Tess Strickland da9b3409e6 [vm/compiler] Make TemplateLoadField::CanCallDart more precise.
Only return true if the stub being invoked will call the
initializer function directly. Notably, return false if the stub
just calls the runtime.

This removes some write barriers in legacy code that were added
after 37d45743.

TEST=New asserts that check CanCallDart() is false when calling runtime
     and is true when calling stubs that call initializer functions
     directly, combined with legacy code tests that use non-late fields.

Change-Id: I4118968b6ea42371d068c35d50339574939556e5
Bug: b/208619946
Cq-Include-Trybots: luci.dart.try:vm-kernel-linux-release-simarm-try,vm-kernel-linux-release-simarm64-try,vm-kernel-linux-release-ia32-try,vm-kernel-linux-release-x64-try,vm-kernel-nnbd-linux-release-ia32-try,vm-kernel-nnbd-linux-release-simarm-try,vm-kernel-nnbd-linux-release-simarm64-try,vm-kernel-nnbd-linux-release-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,vm-kernel-precomp-nnbd-linux-release-simarm64-try,vm-kernel-precomp-nnbd-linux-release-simarm_x64-try,vm-kernel-precomp-nnbd-linux-release-x64-try
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/221943
Reviewed-by: Alexander Markov <alexmarkov@google.com>
Reviewed-by: Martin Kustermann <kustermann@google.com>
Commit-Queue: Tess Strickland <sstrickl@google.com>
2021-12-08 12:32:30 +00:00
..
bin [vm] Elaborate on DartDev missing error. 2021-11-18 06:56:57 +00:00
docs [vm/infra] Improve IL testing framework 2021-11-16 12:39:11 +00:00
include [vm] runtime/include fix documentation 2021-11-19 09:43:38 +00:00
lib [vm/ffi] Optimize Pointer<T>.asTypedList() 2021-11-29 17:38:04 +00:00
observatory Revert "[vm] Emit timeline events around virtual memory allocation / deallocation." 2021-12-01 23:21:46 +00:00
observatory_2 Revert "[vm] Emit timeline events around virtual memory allocation / deallocation." 2021-12-01 23:21:46 +00:00
platform Revert "[vm] When run under TSAN use longjmp() to skip over C++ frames before manually unwinding to the catch entry" 2021-11-29 09:34:23 +00:00
tests Revert "[vm] When run under TSAN use longjmp() to skip over C++ frames before manually unwinding to the catch entry" 2021-11-29 09:34:23 +00:00
third_party Revert "Update double-conversion to 162356679e310566c8c36cb76703d9cfabe4cee8." 2021-12-01 22:59:28 +00:00
tools [vm/ffi] Optimize Pointer<T>.asTypedList() 2021-11-29 17:38:04 +00:00
vm [vm/compiler] Make TemplateLoadField::CanCallDart more precise. 2021-12-08 12:32:30 +00:00
.clang-tidy
.gitignore
BUILD.gn [VM] error: ‘mallinfo mallinfo()’ is deprecated 2021-12-08 00:25:10 +00:00
codereview.settings
configs.gni
CPPLINT.cfg
PRESUBMIT.py [python3] Migrate PRESUBMIT.py files 2021-08-16 08:29:54 +00:00
runtime_args.gni [VM] error: ‘mallinfo mallinfo()’ is deprecated 2021-12-08 00:25:10 +00:00