[vm/concurrency] Add --experimental_enable_isolate_groups_jit flag, make --enable_isolate_groups AOT only.

Issue b/177800357.

TEST=existing test suite
Change-Id: Id6b113932ab7014b8fa6c105845c5c490b60f5e8
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/181320
Commit-Queue: Alexander Aprelev <aam@google.com>
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
This commit is contained in:
Alexander Aprelev
2021-01-27 17:11:29 +00:00
committed by commit-bot@chromium.org
parent 10abe4edab
commit 6b3abe0a98
278 changed files with 325 additions and 292 deletions
+1 -1
View File
@@ -586,7 +586,7 @@ class SpawnIsolateTask : public ThreadPool::Task {
ASSERT(name != nullptr);
auto group = state_->isolate_group();
if (!FLAG_enable_isolate_groups || group == nullptr) {
if (!IsolateGroup::AreIsolateGroupsEnabled() || group == nullptr) {
RunHeavyweight(name);
} else {
RunLightweight(name);
@@ -4,7 +4,7 @@
// SharedObjects=ffi_test_functions
// VMOptions=
// VMOptions=--enable-isolate-groups --disable-heap-verification
// VMOptions=--enable-isolate-groups --experimental-enable-isolate-groups-jit --disable-heap-verification
import 'dart:async';
import 'dart:ffi';
@@ -18,8 +18,10 @@ import '../../../../../tests/ffi/calloc.dart';
import '../../../../../tests/ffi/dylib_utils.dart';
final bool isAOT = Platform.executable.contains('dart_precompiled_runtime');
final bool isolateGropusEnabled =
final bool isolateGroupsEnabled =
Platform.executableArguments.contains('--enable-isolate-groups');
final bool isolateGroupsEnabledInJIT = Platform.executableArguments
.contains('--experimental-enable-isolate-groups-jit');
final sdkRoot = Platform.script.resolve('../../../../../');
class Isolate extends Opaque {}
@@ -242,13 +244,17 @@ Future testJit() async {
}
Future main(args) async {
if (!isolateGropusEnabled) {
if (!isolateGroupsEnabled) {
await testNotSupported();
return;
}
if (isAOT) {
await testAot();
} else {
await testJit();
if (isolateGroupsEnabledInJIT) {
await testJit();
} else {
await testNotSupported();
}
}
}
@@ -2,7 +2,7 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
// VMOptions=--enable-isolate-groups --disable-heap-verification
// VMOptions=--enable-isolate-groups --experimental-enable-isolate-groups-jit --disable-heap-verification
import 'dart:isolate';
@@ -2,7 +2,7 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
// VMOptions=--enable-isolate-groups --disable-heap-verification
// VMOptions=--enable-isolate-groups --experimental-enable-isolate-groups-jit --disable-heap-verification
import 'dart:isolate';
@@ -3,7 +3,7 @@
// BSD-style license that can be found in the LICENSE file.
// SharedObjects=ffi_test_functions
// VMOptions=--enable-isolate-groups --disable-heap-verification --disable-thread-pool-limit
// VMOptions=--enable-isolate-groups --experimental-enable-isolate-groups-jit --disable-heap-verification --disable-thread-pool-limit
import 'dart:async';
import 'dart:math' as math;
@@ -2,7 +2,7 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
// VMOptions=--enable-isolate-groups --disable-heap-verification
// VMOptions=--enable-isolate-groups --experimental-enable-isolate-groups-jit --disable-heap-verification
import 'dart:math' as math;
@@ -2,7 +2,7 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
// VMOptions=--enable-isolate-groups --disable-heap-verification
// VMOptions=--enable-isolate-groups --experimental-enable-isolate-groups-jit --disable-heap-verification
import 'dart:async';
import 'dart:math' as math;
@@ -2,7 +2,7 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
// VMOptions=--enable-isolate-groups
// VMOptions=--enable-isolate-groups --experimental-enable-isolate-groups-jit
// VMOptions=--no-enable-isolate-groups
import 'dart:isolate';
@@ -2,7 +2,7 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
// VMOptions=--enable-isolate-groups --disable-heap-verification
// VMOptions=--enable-isolate-groups --experimental-enable-isolate-groups-jit --disable-heap-verification
import 'dart:isolate';
@@ -2,7 +2,7 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
// VMOptions=--enable-isolate-groups --disable-heap-verification
// VMOptions=--enable-isolate-groups --experimental-enable-isolate-groups-jit --disable-heap-verification
import 'dart:isolate';
@@ -2,7 +2,7 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
// VMOptions=--enable-isolate-groups --disable-heap-verification
// VMOptions=--enable-isolate-groups --experimental-enable-isolate-groups-jit --disable-heap-verification
import 'dart:isolate';
@@ -2,7 +2,7 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
// VMOptions=--enable-isolate-groups --disable-heap-verification
// VMOptions=--enable-isolate-groups --experimental-enable-isolate-groups-jit --disable-heap-verification
import 'dart:isolate';
@@ -3,7 +3,7 @@
// BSD-style license that can be found in the LICENSE file.
// SharedObjects=ffi_test_functions
// VMOptions=--enable-isolate-groups --disable-heap-verification
// VMOptions=--enable-isolate-groups --experimental-enable-isolate-groups-jit --disable-heap-verification
import 'dart:async';
import 'dart:ffi';
@@ -2,7 +2,7 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
// VMOptions=--enable-isolate-groups
// VMOptions=--enable-isolate-groups --experimental-enable-isolate-groups-jit
// VMOptions=--no-enable-isolate-groups
import 'dart:async';
+1 -1
View File
@@ -2,7 +2,7 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
//
// VMOptions=--enable-isolate-groups
// VMOptions=--enable-isolate-groups --experimental-enable-isolate-groups-jit
//
// Validates functionality of sendAndExit.
@@ -2,7 +2,7 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
// VMOptions=--enable-isolate-groups
// VMOptions=--enable-isolate-groups --experimental-enable-isolate-groups-jit
// VMOptions=--no-enable-isolate-groups
import 'dart:isolate';
+1 -1
View File
@@ -2,7 +2,7 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
// VMOptions=--enable-isolate-groups
// VMOptions=--enable-isolate-groups --experimental-enable-isolate-groups-jit
// VMOptions=--no-enable-isolate-groups
// Test that validates that transferables are faster than regular typed data.
@@ -2,7 +2,7 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
// VMOptions=--enable-isolate-groups
// VMOptions=--enable-isolate-groups --experimental-enable-isolate-groups-jit
// VMOptions=--no-enable-isolate-groups
// Test that ensures correct exceptions are thrown when misusing
@@ -4,7 +4,7 @@
// SharedObjects=ffi_test_functions
// VMOptions=
// VMOptions=--enable-isolate-groups --disable-heap-verification
// VMOptions=--enable-isolate-groups --experimental-enable-isolate-groups-jit --disable-heap-verification
import 'dart:async';
import 'dart:ffi';
@@ -18,8 +18,10 @@ import '../../../../../tests/ffi/calloc.dart';
import '../../../../../tests/ffi/dylib_utils.dart';
final bool isAOT = Platform.executable.contains('dart_precompiled_runtime');
final bool isolateGropusEnabled =
final bool isolateGroupsEnabled =
Platform.executableArguments.contains('--enable-isolate-groups');
final bool isolateGroupsEnabledInJIT = Platform.executableArguments
.contains('--experimental-enable-isolate-groups-jit');
final sdkRoot = Platform.script.resolve('../../../../../');
class Isolate extends Opaque {}
@@ -242,13 +244,17 @@ Future testJit() async {
}
Future main(args) async {
if (!isolateGropusEnabled) {
if (!isolateGroupsEnabled) {
await testNotSupported();
return;
}
if (isAOT) {
await testAot();
} else {
await testJit();
if (isolateGroupsEnabledInJIT) {
await testJit();
} else {
await testNotSupported();
}
}
}
@@ -2,7 +2,7 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
// VMOptions=--enable-isolate-groups --disable-heap-verification
// VMOptions=--enable-isolate-groups --experimental-enable-isolate-groups-jit --disable-heap-verification
import 'dart:isolate';
@@ -2,7 +2,7 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
// VMOptions=--enable-isolate-groups --disable-heap-verification
// VMOptions=--enable-isolate-groups --experimental-enable-isolate-groups-jit --disable-heap-verification
import 'dart:isolate';
@@ -3,7 +3,7 @@
// BSD-style license that can be found in the LICENSE file.
// SharedObjects=ffi_test_functions
// VMOptions=--enable-isolate-groups --disable-heap-verification --disable-thread-pool-limit
// VMOptions=--enable-isolate-groups --experimental-enable-isolate-groups-jit --disable-heap-verification --disable-thread-pool-limit
import 'dart:async';
import 'dart:math' as math;
@@ -2,7 +2,7 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
// VMOptions=--enable-isolate-groups --disable-heap-verification
// VMOptions=--enable-isolate-groups --experimental-enable-isolate-groups-jit --disable-heap-verification
import 'dart:math' as math;
@@ -2,7 +2,7 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
// VMOptions=--enable-isolate-groups --disable-heap-verification
// VMOptions=--enable-isolate-groups --experimental-enable-isolate-groups-jit --disable-heap-verification
import 'dart:async';
import 'dart:math' as math;
@@ -2,7 +2,7 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
// VMOptions=--enable-isolate-groups
// VMOptions=--enable-isolate-groups --experimental-enable-isolate-groups-jit
// VMOptions=--no-enable-isolate-groups
import 'dart:isolate';
@@ -2,7 +2,7 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
// VMOptions=--enable-isolate-groups --disable-heap-verification
// VMOptions=--enable-isolate-groups --experimental-enable-isolate-groups-jit --disable-heap-verification
import 'dart:isolate';
@@ -2,7 +2,7 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
// VMOptions=--enable-isolate-groups --disable-heap-verification
// VMOptions=--enable-isolate-groups --experimental-enable-isolate-groups-jit --disable-heap-verification
import 'dart:isolate';
@@ -2,7 +2,7 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
// VMOptions=--enable-isolate-groups --disable-heap-verification
// VMOptions=--enable-isolate-groups --experimental-enable-isolate-groups-jit --disable-heap-verification
import 'dart:isolate';
@@ -2,7 +2,7 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
// VMOptions=--enable-isolate-groups --disable-heap-verification
// VMOptions=--enable-isolate-groups --experimental-enable-isolate-groups-jit --disable-heap-verification
import 'dart:isolate';
@@ -3,7 +3,7 @@
// BSD-style license that can be found in the LICENSE file.
// SharedObjects=ffi_test_functions
// VMOptions=--enable-isolate-groups --disable-heap-verification
// VMOptions=--enable-isolate-groups --experimental-enable-isolate-groups-jit --disable-heap-verification
import 'dart:async';
import 'dart:ffi';
@@ -2,7 +2,7 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
// VMOptions=--enable-isolate-groups
// VMOptions=--enable-isolate-groups --experimental-enable-isolate-groups-jit
// VMOptions=--no-enable-isolate-groups
import 'dart:async';
@@ -2,7 +2,7 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
//
// VMOptions=--enable-isolate-groups
// VMOptions=--enable-isolate-groups --experimental-enable-isolate-groups-jit
//
// Validates functionality of sendAndExit.
@@ -2,7 +2,7 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
// VMOptions=--enable-isolate-groups
// VMOptions=--enable-isolate-groups --experimental-enable-isolate-groups-jit
// VMOptions=--no-enable-isolate-groups
import 'dart:isolate';
@@ -2,7 +2,7 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
// VMOptions=--enable-isolate-groups
// VMOptions=--enable-isolate-groups --experimental-enable-isolate-groups-jit
// VMOptions=--no-enable-isolate-groups
// Test that validates that transferables are faster than regular typed data.
@@ -2,7 +2,7 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
// VMOptions=--enable-isolate-groups
// VMOptions=--enable-isolate-groups --experimental-enable-isolate-groups-jit
// VMOptions=--no-enable-isolate-groups
// Test that ensures correct exceptions are thrown when misusing
@@ -209,7 +209,7 @@ bool FlowGraphCompiler::IsUnboxedField(const Field& field) {
ASSERT(!field.is_non_nullable_integer() || FLAG_precompiled_mode);
// Unboxed fields in JIT lightweight isolates mode are not supported yet.
const bool valid_class =
(FLAG_precompiled_mode || !FLAG_enable_isolate_groups) &&
(FLAG_precompiled_mode || !IsolateGroup::AreIsolateGroupsEnabled()) &&
((SupportsUnboxedDoubles() && (field.guarded_cid() == kDoubleCid)) ||
(SupportsUnboxedSimd128() && (field.guarded_cid() == kFloat32x4Cid)) ||
(SupportsUnboxedSimd128() && (field.guarded_cid() == kFloat64x2Cid)) ||
@@ -225,7 +225,8 @@ bool FlowGraphCompiler::IsPotentialUnboxedField(const Field& field) {
return IsUnboxedField(field);
}
// Unboxed fields in JIT lightweight isolates mode are not supported yet.
return !FLAG_enable_isolate_groups && field.is_unboxing_candidate() &&
return !IsolateGroup::AreIsolateGroupsEnabled() &&
field.is_unboxing_candidate() &&
(FlowGraphCompiler::IsUnboxedField(field) ||
(field.guarded_cid() == kIllegalCid));
}
+2 -2
View File
@@ -212,7 +212,7 @@ DEFINE_RUNTIME_ENTRY(CompileFunction, 1) {
ASSERT(thread->IsMutatorThread());
const Function& function = Function::CheckedHandle(zone, arguments.ArgAt(0));
if (FLAG_enable_isolate_groups) {
if (IsolateGroup::AreIsolateGroupsEnabled()) {
// Another isolate's mutator thread may have created [function] and
// published it via an ICData, MegamorphicCache etc. Entering the lock below
// is an acquire operation that pairs with the release operation when the
@@ -225,7 +225,7 @@ DEFINE_RUNTIME_ENTRY(CompileFunction, 1) {
// there's no existing code. In multi-isolate scenarios with shared JITed code
// we can end up in the lazy compile runtime entry here with code being
// installed.
ASSERT(!function.HasCode() || FLAG_enable_isolate_groups);
ASSERT(!function.HasCode() || IsolateGroup::AreIsolateGroupsEnabled());
// Will throw if compilation failed (e.g. with compile-time error).
function.EnsureHasCode();
+1 -1
View File
@@ -1408,7 +1408,7 @@ Dart_CreateIsolateInGroup(Dart_Isolate group_member,
*error = nullptr;
if (!FLAG_enable_isolate_groups) {
if (!IsolateGroup::AreIsolateGroupsEnabled()) {
*error = Utils::StrDup(
"Lightweight isolates are only implemented in AOT "
"mode and need to be explicitly enabled by passing "
+6 -1
View File
@@ -189,7 +189,12 @@ constexpr bool kDartUseBackgroundCompilation = true;
P(retain_function_objects, bool, true, \
"Serialize function objects for all code objects even if not otherwise " \
"needed in the precompiled runtime.") \
P(enable_isolate_groups, bool, false, "Enable isolate group support.") \
P(enable_isolate_groups, bool, false, \
"Enable isolate group support in AOT.") \
P(experimental_enable_isolate_groups_jit, bool, false, \
"As an experimental feature enable isolate group support in JIT" \
"(goes into effect only when enable_isolate_groups is turned on as " \
"well).") \
P(show_invisible_frames, bool, false, \
"Show invisible frames in stack traces.") \
R(support_il_printer, false, bool, true, "Support the IL printer.") \
+2 -1
View File
@@ -5,6 +5,7 @@
#include "vm/flags.h"
#include "platform/assert.h"
#include "vm/isolate.h"
#include "vm/json_stream.h"
#include "vm/os.h"
@@ -472,7 +473,7 @@ char* Flags::ProcessCommandLineFlags(int number_of_vm_flags,
// graudally remove those restrictions.
#if !defined(DART_PRCOMPILED_RUNTIME)
if (!FLAG_precompiled_mode && FLAG_enable_isolate_groups) {
if (!FLAG_precompiled_mode && IsolateGroup::AreIsolateGroupsEnabled()) {
// Our compiler should not make rely on a global field being initialized at
// compile-time, since that compiled code might be re-used in another
// isolate that has not yet initialized the global field.
+2 -2
View File
@@ -576,7 +576,7 @@ class MergeIsolatesHeapsHandler : public MessageHandler {
VM_UNIT_TEST_CASE(CleanupBequestNeverReceived) {
// This test uses features from isolate groups
FLAG_enable_isolate_groups = true;
IsolateGroup::ForceEnableIsolateGroupsForTesting();
const char* TEST_MESSAGE = "hello, world";
Dart_Isolate parent = TestCase::CreateTestIsolate("parent");
@@ -611,7 +611,7 @@ VM_UNIT_TEST_CASE(CleanupBequestNeverReceived) {
VM_UNIT_TEST_CASE(ReceivesSendAndExitMessage) {
// This test uses features from isolate groups
FLAG_enable_isolate_groups = true;
IsolateGroup::ForceEnableIsolateGroupsForTesting();
const char* TEST_MESSAGE = "hello, world";
Dart_Isolate parent = TestCase::CreateTestIsolate("parent");
+1 -1
View File
@@ -104,7 +104,7 @@ void VerifyCanonicalVisitor::VisitObject(ObjectPtr obj) {
// other isolates. We should either scan live objects from the roots of each
// individual isolate, or wait until we are ready to share constants across
// isolates.
if (!FLAG_enable_isolate_groups || FLAG_precompiled_mode) {
if (!IsolateGroup::AreIsolateGroupsEnabled() || FLAG_precompiled_mode) {
if ((obj->GetClassId() >= kInstanceCid) &&
(obj->GetClassId() != kTypeArgumentsCid)) {
if (obj->untag()->IsCanonical()) {
+4 -4
View File
@@ -1984,7 +1984,7 @@ bool IsolateGroup::ReloadSources(JSONStream* js,
ASSERT(!IsReloading());
// TODO(dartbug.com/36097): Support multiple isolates within an isolate group.
RELEASE_ASSERT(!FLAG_enable_isolate_groups);
RELEASE_ASSERT(!IsolateGroup::AreIsolateGroupsEnabled());
RELEASE_ASSERT(isolates_.First() == isolates_.Last());
RELEASE_ASSERT(isolates_.First() == Isolate::Current());
@@ -2017,7 +2017,7 @@ bool IsolateGroup::ReloadKernel(JSONStream* js,
ASSERT(!IsReloading());
// TODO(dartbug.com/36097): Support multiple isolates within an isolate group.
RELEASE_ASSERT(!FLAG_enable_isolate_groups);
RELEASE_ASSERT(!IsolateGroup::AreIsolateGroupsEnabled());
RELEASE_ASSERT(isolates_.First() == isolates_.Last());
RELEASE_ASSERT(isolates_.First() == Isolate::Current());
@@ -2534,7 +2534,7 @@ void Isolate::LowLevelCleanup(Isolate* isolate) {
Dart::thread_pool()->Run<ShutdownGroupTask>(isolate_group);
}
} else {
if (FLAG_enable_isolate_groups) {
if (IsolateGroup::AreIsolateGroupsEnabled()) {
// TODO(dartbug.com/36097): An isolate just died. A significant amount of
// memory might have become unreachable. We should evaluate how to best
// inform the GC about this situation.
@@ -2696,7 +2696,7 @@ void IsolateGroup::RunWithStoppedMutatorsCallable(
bool use_force_growth_in_otherwise) {
auto thread = Thread::Current();
if (thread->IsMutatorThread() && !FLAG_enable_isolate_groups) {
if (thread->IsMutatorThread() && !IsolateGroup::AreIsolateGroupsEnabled()) {
single_current_mutator->Call();
return;
}
+14
View File
@@ -708,6 +708,20 @@ class IsolateGroup : public IntrusiveDListEntry<IsolateGroup> {
void RegisterStaticField(const Field& field, const Instance& initial_value);
static bool AreIsolateGroupsEnabled() {
#if defined(DART_PRECOMPILED_RUNTIME)
return FLAG_enable_isolate_groups;
#else
return FLAG_enable_isolate_groups &&
FLAG_experimental_enable_isolate_groups_jit;
#endif
}
static void ForceEnableIsolateGroupsForTesting() {
FLAG_enable_isolate_groups = true;
FLAG_experimental_enable_isolate_groups_jit = true;
}
private:
friend class Dart; // For `object_store_ = ` in Dart::Init
friend class Heap;
+1 -1
View File
@@ -565,7 +565,7 @@ bool IsolateGroupReloadContext::Reload(bool force_reload,
// All isolates within an isolate group need to share one heap.
// TODO(dartbug.com/36097): Remove this assert once the shared heap CL has
// landed.
RELEASE_ASSERT(!FLAG_enable_isolate_groups);
RELEASE_ASSERT(!IsolateGroup::AreIsolateGroupsEnabled());
Heap* heap = IG->heap();
num_old_libs_ =
+2 -2
View File
@@ -685,7 +685,7 @@ static void UpdateTypeTestCache(
new_cache.WriteEntryToBuffer(zone, &buffer, colliding_index, " ");
OS::PrintErr("%s\n", buffer.buffer());
}
if (!FLAG_enable_isolate_groups) {
if (!IsolateGroup::AreIsolateGroupsEnabled()) {
FATAL("Duplicate subtype test cache entry");
}
if (old_result.ptr() != result.ptr()) {
@@ -1048,7 +1048,7 @@ DEFINE_RUNTIME_ENTRY(PatchStaticCall, 0) {
const Code& target_code = Code::Handle(zone, target_function.EnsureHasCode());
// Before patching verify that we are not repeatedly patching to the same
// target.
ASSERT(FLAG_enable_isolate_groups ||
ASSERT(IsolateGroup::AreIsolateGroupsEnabled() ||
target_code.ptr() != CodePatcher::GetStaticCallTargetAt(
caller_frame->pc(), caller_code));
if (target_code.ptr() !=
+3 -3
View File
@@ -366,7 +366,7 @@ StringPtr Symbols::NewSymbol(Thread* thread, const StringType& str) {
// TODO(https://dartbug.com/41943): Get rid of the symbol table accesses
// within safepoint operation scope.
RELEASE_ASSERT(group->safepoint_handler()->IsOwnedByTheThread(thread));
RELEASE_ASSERT(FLAG_enable_isolate_groups || !USING_PRODUCT);
RELEASE_ASSERT(IsolateGroup::AreIsolateGroupsEnabled() || !USING_PRODUCT);
// Uncommon case: We are at a safepoint, all mutators are stopped and we
// have therefore exclusive access to the symbol table.
@@ -395,7 +395,7 @@ StringPtr Symbols::NewSymbol(Thread* thread, const StringType& str) {
};
SafepointWriteRwLocker sl(thread, group->symbols_lock());
if (FLAG_enable_isolate_groups || !USING_PRODUCT) {
if (IsolateGroup::AreIsolateGroupsEnabled() || !USING_PRODUCT) {
// NOTE: Strictly speaking we should use a safepoint operation scope
// here to ensure the lock-free usage inside safepoint operations (see
// above) is safe. Though this would really kill the performance.
@@ -440,7 +440,7 @@ StringPtr Symbols::Lookup(Thread* thread, const StringType& str) {
// In DEBUG mode the snapshot writer also calls this method inside a
// safepoint.
#if !defined(DEBUG)
RELEASE_ASSERT(FLAG_enable_isolate_groups || !USING_PRODUCT);
RELEASE_ASSERT(IsolateGroup::AreIsolateGroupsEnabled() || !USING_PRODUCT);
#endif
data = object_store->symbol_table();
CanonicalStringSet table(&key, &value, &data);
+1 -1
View File
@@ -2,7 +2,7 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
// VMOptions=--enable-isolate-groups
// VMOptions=--enable-isolate-groups --experimental-enable-isolate-groups-jit
// VMOptions=--no-enable-isolate-groups
//
// Checks that the VM throws an appropriate exception when FFI objects are
@@ -2,7 +2,7 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
// VMOptions=--enable-testing-pragmas --enable-isolate-groups
// VMOptions=--enable-testing-pragmas --enable-isolate-groups --experimental-enable-isolate-groups-jit
// VMOptions=--enable-testing-pragmas --no-enable-isolate-groups
//
// Dart test program for testing dart:ffi function pointers with callbacks.
+1 -1
View File
@@ -2,7 +2,7 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
// VMOptions=--enable-isolate-groups
// VMOptions=--enable-isolate-groups --experimental-enable-isolate-groups-jit
// VMOptions=--no-enable-isolate-groups
//
// Checks that the VM throws an appropriate exception when FFI objects are
@@ -2,7 +2,7 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
// VMOptions=--enable-testing-pragmas --enable-isolate-groups
// VMOptions=--enable-testing-pragmas --enable-isolate-groups --experimental-enable-isolate-groups-jit
// VMOptions=--enable-testing-pragmas --no-enable-isolate-groups
//
// Dart test program for testing dart:ffi function pointers with callbacks.
@@ -2,7 +2,7 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
// VMOptions=--enable-isolate-groups
// VMOptions=--enable-isolate-groups --experimental-enable-isolate-groups-jit
// VMOptions=--no-enable-isolate-groups
// Regression test case for http://dartbug.com/23244
@@ -2,7 +2,7 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
// VMOptions=--enable-isolate-groups
// VMOptions=--enable-isolate-groups --experimental-enable-isolate-groups-jit
// VMOptions=--no-enable-isolate-groups
// VMOptions=--optimization_counter_threshold=100 --no-background_compilation
@@ -2,7 +2,7 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
// VMOptions=--enable-isolate-groups
// VMOptions=--enable-isolate-groups --experimental-enable-isolate-groups-jit
// VMOptions=--no-enable-isolate-groups
// Regression test case for http://dartbug.com/23244
@@ -2,7 +2,7 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
// VMOptions=--enable-isolate-groups
// VMOptions=--enable-isolate-groups --experimental-enable-isolate-groups-jit
// VMOptions=--no-enable-isolate-groups
// VMOptions=--optimization_counter_threshold=100 --no-background_compilation
@@ -2,7 +2,7 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
// VMOptions=--enable-isolate-groups
// VMOptions=--enable-isolate-groups --experimental-enable-isolate-groups-jit
// VMOptions=--no-enable-isolate-groups
import "dart:isolate";
+1 -1
View File
@@ -2,7 +2,7 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
// VMOptions=--enable-isolate-groups
// VMOptions=--enable-isolate-groups --experimental-enable-isolate-groups-jit
// VMOptions=--no-enable-isolate-groups
import "dart:isolate";
@@ -2,7 +2,7 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
// VMOptions=--enable-isolate-groups
// VMOptions=--enable-isolate-groups --experimental-enable-isolate-groups-jit
// VMOptions=--no-enable-isolate-groups
// Dart test program for testing that errors thrown from isolates are
+1 -1
View File
@@ -2,7 +2,7 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
// VMOptions=--enable-isolate-groups
// VMOptions=--enable-isolate-groups --experimental-enable-isolate-groups-jit
// VMOptions=--no-enable-isolate-groups
library CountTest;
@@ -2,7 +2,7 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
// VMOptions=--enable-isolate-groups
// VMOptions=--enable-isolate-groups --experimental-enable-isolate-groups-jit
// VMOptions=--no-enable-isolate-groups
// Dart test program for testing that isolates can communicate to isolates
@@ -2,7 +2,7 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
// VMOptions=--enable-isolate-groups
// VMOptions=--enable-isolate-groups --experimental-enable-isolate-groups-jit
// VMOptions=--no-enable-isolate-groups
library deferred_in_isolate2_test;
@@ -2,7 +2,7 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
// VMOptions=--enable-isolate-groups
// VMOptions=--enable-isolate-groups --experimental-enable-isolate-groups-jit
// VMOptions=--no-enable-isolate-groups
// Test that deferred libraries are supported from isolates other than the root
+1 -1
View File
@@ -2,7 +2,7 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
// VMOptions=--enable-isolate-groups
// VMOptions=--enable-isolate-groups --experimental-enable-isolate-groups-jit
// VMOptions=--no-enable-isolate-groups
import "dart:isolate";
+1 -1
View File
@@ -2,7 +2,7 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
// VMOptions=--enable-isolate-groups
// VMOptions=--enable-isolate-groups --experimental-enable-isolate-groups-jit
// VMOptions=--no-enable-isolate-groups
library error_at_spawn;
@@ -2,7 +2,7 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
// VMOptions=--enable-isolate-groups
// VMOptions=--enable-isolate-groups --experimental-enable-isolate-groups-jit
// VMOptions=--no-enable-isolate-groups
library error_at_spawnuri;
@@ -2,7 +2,7 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
// VMOptions=--enable-isolate-groups
// VMOptions=--enable-isolate-groups --experimental-enable-isolate-groups-jit
// VMOptions=--no-enable-isolate-groups
library error_exit_at_spawn;
@@ -2,7 +2,7 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
// VMOptions=--enable-isolate-groups
// VMOptions=--enable-isolate-groups --experimental-enable-isolate-groups-jit
// VMOptions=--no-enable-isolate-groups
library error_exit_at_spawnuri;
+1 -1
View File
@@ -2,7 +2,7 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
// VMOptions=--enable-isolate-groups
// VMOptions=--enable-isolate-groups --experimental-enable-isolate-groups-jit
// VMOptions=--no-enable-isolate-groups
library exit_at_spawn;
+1 -1
View File
@@ -2,7 +2,7 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
// VMOptions=--enable-isolate-groups
// VMOptions=--enable-isolate-groups --experimental-enable-isolate-groups-jit
// VMOptions=--no-enable-isolate-groups
library exit_at_spawn;
+1 -1
View File
@@ -2,7 +2,7 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
// VMOptions=--enable-isolate-groups
// VMOptions=--enable-isolate-groups --experimental-enable-isolate-groups-jit
// VMOptions=--no-enable-isolate-groups
import "dart:isolate";
+1 -1
View File
@@ -2,7 +2,7 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
// VMOptions=--enable-isolate-groups
// VMOptions=--enable-isolate-groups --experimental-enable-isolate-groups-jit
// VMOptions=--no-enable-isolate-groups
import "dart:isolate";
+1 -1
View File
@@ -2,7 +2,7 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
// VMOptions=--enable-isolate-groups
// VMOptions=--enable-isolate-groups --experimental-enable-isolate-groups-jit
// VMOptions=--no-enable-isolate-groups
library handle_error_test;
+1 -1
View File
@@ -2,7 +2,7 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
// VMOptions=--enable-isolate-groups
// VMOptions=--enable-isolate-groups --experimental-enable-isolate-groups-jit
// VMOptions=--no-enable-isolate-groups
library handle_error_test;
+1 -1
View File
@@ -2,7 +2,7 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
// VMOptions=--enable-isolate-groups
// VMOptions=--enable-isolate-groups --experimental-enable-isolate-groups-jit
// VMOptions=--no-enable-isolate-groups
library handle_error_test;
@@ -2,7 +2,7 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
// VMOptions=--enable-isolate-groups
// VMOptions=--enable-isolate-groups --experimental-enable-isolate-groups-jit
// VMOptions=--no-enable-isolate-groups
library illegal_msg_function_test;
@@ -2,7 +2,7 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
// VMOptions=--enable-isolate-groups
// VMOptions=--enable-isolate-groups --experimental-enable-isolate-groups-jit
// VMOptions=--no-enable-isolate-groups
library illegal_msg_mirror_test;
@@ -2,7 +2,7 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
// VMOptions=--enable-isolate-groups
// VMOptions=--enable-isolate-groups --experimental-enable-isolate-groups-jit
// VMOptions=--no-enable-isolate-groups
import "dart:async";
@@ -2,7 +2,7 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
// VMOptions=--enable-isolate-groups
// VMOptions=--enable-isolate-groups --experimental-enable-isolate-groups-jit
// VMOptions=--no-enable-isolate-groups
import "dart:isolate";
@@ -2,7 +2,7 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
// VMOptions=--enable-isolate-groups
// VMOptions=--enable-isolate-groups --experimental-enable-isolate-groups-jit
// VMOptions=--no-enable-isolate-groups
// Dart test program for testing isolate communication with
+1 -1
View File
@@ -2,7 +2,7 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
// VMOptions=--enable-isolate-groups
// VMOptions=--enable-isolate-groups --experimental-enable-isolate-groups-jit
// VMOptions=--no-enable-isolate-groups
library isolate_current_test;
+1 -1
View File
@@ -2,7 +2,7 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
// VMOptions=--enable-isolate-groups
// VMOptions=--enable-isolate-groups --experimental-enable-isolate-groups-jit
// VMOptions=--no-enable-isolate-groups
library IsolateImportNegativeTest;
@@ -2,7 +2,7 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
// VMOptions=--enable-isolate-groups
// VMOptions=--enable-isolate-groups --experimental-enable-isolate-groups-jit
// VMOptions=--no-enable-isolate-groups
import 'dart:isolate';
@@ -2,7 +2,7 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
// VMOptions=--enable-isolate-groups
// VMOptions=--enable-isolate-groups --experimental-enable-isolate-groups-jit
// VMOptions=--no-enable-isolate-groups
import 'dart:isolate';
@@ -2,7 +2,7 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
// VMOptions=--enable-isolate-groups
// VMOptions=--enable-isolate-groups --experimental-enable-isolate-groups-jit
// VMOptions=--no-enable-isolate-groups
import 'dart:isolate';
+1 -1
View File
@@ -2,7 +2,7 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
// VMOptions=--enable-isolate-groups
// VMOptions=--enable-isolate-groups --experimental-enable-isolate-groups-jit
// VMOptions=--no-enable-isolate-groups
import "dart:isolate";
@@ -2,7 +2,7 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
// VMOptions=--enable-isolate-groups
// VMOptions=--enable-isolate-groups --experimental-enable-isolate-groups-jit
// VMOptions=--no-enable-isolate-groups
import 'dart:collection';
+1 -1
View File
@@ -2,7 +2,7 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
// VMOptions=--enable-isolate-groups
// VMOptions=--enable-isolate-groups --experimental-enable-isolate-groups-jit
// VMOptions=--no-enable-isolate-groups
// Tests that sets of enums can be set through ports.
+1 -1
View File
@@ -2,7 +2,7 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
// VMOptions=--enable-isolate-groups
// VMOptions=--enable-isolate-groups --experimental-enable-isolate-groups-jit
// VMOptions=--no-enable-isolate-groups
// Testing that Isolate.spawn copies the source code of the parent isolate,
+1 -1
View File
@@ -2,7 +2,7 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
// VMOptions=--enable-isolate-groups
// VMOptions=--enable-isolate-groups --experimental-enable-isolate-groups-jit
// VMOptions=--no-enable-isolate-groups
import "dart:isolate";
@@ -2,7 +2,7 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
// VMOptions=--enable-isolate-groups
// VMOptions=--enable-isolate-groups --experimental-enable-isolate-groups-jit
// VMOptions=--no-enable-isolate-groups
import "dart:isolate";
+1 -1
View File
@@ -2,7 +2,7 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
// VMOptions=--enable-isolate-groups
// VMOptions=--enable-isolate-groups --experimental-enable-isolate-groups-jit
// VMOptions=--no-enable-isolate-groups
import "dart:isolate";
+1 -1
View File
@@ -2,7 +2,7 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
// VMOptions=--enable-isolate-groups
// VMOptions=--enable-isolate-groups --experimental-enable-isolate-groups-jit
// VMOptions=--no-enable-isolate-groups
import "dart:isolate";
@@ -2,7 +2,7 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
// VMOptions=--enable-isolate-groups
// VMOptions=--enable-isolate-groups --experimental-enable-isolate-groups-jit
// VMOptions=--no-enable-isolate-groups
import "dart:async";
+1 -1
View File
@@ -2,7 +2,7 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
// VMOptions=--enable-isolate-groups
// VMOptions=--enable-isolate-groups --experimental-enable-isolate-groups-jit
// VMOptions=--no-enable-isolate-groups
import "dart:async";
+1 -1
View File
@@ -2,7 +2,7 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
// VMOptions=--enable-isolate-groups
// VMOptions=--enable-isolate-groups --experimental-enable-isolate-groups-jit
// VMOptions=--no-enable-isolate-groups
library MandelIsolateTest;
+1 -1
View File
@@ -2,7 +2,7 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
// VMOptions=--enable-isolate-groups
// VMOptions=--enable-isolate-groups --experimental-enable-isolate-groups-jit
// VMOptions=--no-enable-isolate-groups
// Dart test program for testing serialization of messages.
+1 -1
View File
@@ -2,7 +2,7 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
// VMOptions=--enable-isolate-groups
// VMOptions=--enable-isolate-groups --experimental-enable-isolate-groups-jit
// VMOptions=--no-enable-isolate-groups
// Dart test program for testing serialization of messages.
+1 -1
View File
@@ -2,7 +2,7 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
// VMOptions=--enable-isolate-groups
// VMOptions=--enable-isolate-groups --experimental-enable-isolate-groups-jit
// VMOptions=--no-enable-isolate-groups
// Dart test program for testing serialization of messages with static
@@ -2,7 +2,7 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
// VMOptions=--enable-isolate-groups
// VMOptions=--enable-isolate-groups --experimental-enable-isolate-groups-jit
// VMOptions=--no-enable-isolate-groups
// https://github.com/dart-lang/sdk/issues/35778
@@ -2,7 +2,7 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
// VMOptions=--enable-isolate-groups
// VMOptions=--enable-isolate-groups --experimental-enable-isolate-groups-jit
// VMOptions=--no-enable-isolate-groups
// https://github.com/dart-lang/sdk/issues/35778

Some files were not shown because too many files have changed in this diff Show More