1
0
mirror of https://github.com/dart-lang/sdk synced 2024-07-08 12:06:26 +00:00
dart-sdk/runtime
Alexander Markov 97164b3a01 [vm/jit] Disable field guards for late fields
Late field inialization stubs don't update field guard state which
causes incorrect optimizations when they rely on that state.
This change disables field guards for late fields in order to fix this
bug.

As an alternative, we could have added the code to update field guard
state from late field initialization stubs. However, it would require
duplicating and generalizing a lot of code used to implement
GuardFieldClass, GuardFieldLength and GuardFieldType instructions.
At the moment it is not clear if field guards provide sufficient
performance improvements to justify this.

Another possible approach would be to outline initializing field
stores from the stubs back to the application code
but that would cause either substantial increase in AOT code size
or an undesired discrenacy between JIT and AOT.

TEST=runtime/tests/vm/dart/regress_flutter142532_test.dart
Fixes https://github.com/flutter/flutter/issues/142532

Change-Id: I15e737aa5d1b73e71e0cb935580a3b9a2dcbb77a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/350985
Commit-Queue: Alexander Markov <alexmarkov@google.com>
Reviewed-by: Slava Egorov <vegorov@google.com>
Reviewed-by: Martin Kustermann <kustermann@google.com>
2024-02-09 14:59:40 +00:00
..
bin [vm] Remove bin/*_android{.cc,.h} and use Linux implementations. 2024-02-09 14:10:49 +00:00
docs [vm, gc] Mark through new-space. 2024-01-26 18:58:54 +00:00
include Expose Dart_Null_DL from dart_api_dl.h 2023-12-11 21:06:37 +00:00
lib [ VM ] Inherit system isolate property on child isolate spawn 2024-02-06 23:38:53 +00:00
observatory [ Service ] Remove steal_breakpoint_test.dart 2024-01-31 20:23:10 +00:00
platform [vm, gc] Avoid TSAN warning for accessing Page::top_. 2024-02-06 22:53:59 +00:00
tests [vm/jit] Disable field guards for late fields 2024-02-09 14:59:40 +00:00
tools [vm/ffi] Refactor dart:ffi generator 2024-02-02 18:11:00 +00:00
vm [vm/jit] Disable field guards for late fields 2024-02-09 14:59:40 +00:00
.clang-tidy
.gitignore
BUILD.gn [build] Omit SDK and Git hashes on RBE. 2023-12-20 12:23:56 +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 [vm] Cleanup old TODO. 2024-01-18 22:56:40 +00:00
vm-jit.shard.cml [test] Cleanup building Fuchsia packages/components. 2023-10-31 17:11:51 +00:00
vm.shard.cml [test] Cleanup building Fuchsia packages/components. 2023-10-31 17:11:51 +00:00