From 16c9afb25cb7af801ef92eee178b7fb89c4ef867 Mon Sep 17 00:00:00 2001 From: "anton.bashirov" Date: Thu, 21 Nov 2024 20:20:02 +0400 Subject: [PATCH 1/3] fixes --- runtime/vm/compiler/stub_code_compiler.cc | 10 +++++----- runtime/vm/flag_list.h | 12 ++++++------ runtime/vm/object.cc | 6 ++++++ 3 files changed, 17 insertions(+), 11 deletions(-) diff --git a/runtime/vm/compiler/stub_code_compiler.cc b/runtime/vm/compiler/stub_code_compiler.cc index d9ad433ae37e..880cea95cf46 100644 --- a/runtime/vm/compiler/stub_code_compiler.cc +++ b/runtime/vm/compiler/stub_code_compiler.cc @@ -3247,7 +3247,7 @@ void StubCodeCompiler::GenerateCoroutineInitializeStub() { __ Drop(1); __ PushRegister(FPREG); - __ StoreFieldToOffset(SPREG, kCoroutine, Coroutine::native_stack_base_offset()); + __ StoreCompressedIntoObjectOffset(kCoroutine, Coroutine::native_stack_base_offset(), SPREG); __ LoadFieldFromOffset(SPREG, kCoroutine, Coroutine::stack_base_offset()); __ PushRegister(kCoroutine); @@ -3260,7 +3260,7 @@ void StubCodeCompiler::GenerateCoroutineInitializeStub() { __ Call(compiler::FieldAddress(FUNCTION_REG, Function::entry_point_offset())); __ PopRegister(kCoroutine); - __ StoreFieldToOffset(SPREG, kCoroutine, Coroutine::stack_base_offset()); + __ StoreCompressedIntoObjectOffset(kCoroutine, Coroutine::stack_base_offset(), SPREG); __ LoadFieldFromOffset(SPREG, kCoroutine, Coroutine::native_stack_base_offset()); __ PopRegister(FPREG); @@ -3294,7 +3294,7 @@ void StubCodeCompiler::GenerateCoroutineForkStub() { __ LoadCompressedFieldFromOffset(kCallerCoroutine, kForkedCoroutine, Coroutine::caller_offset()); __ PushRegister(FPREG); - __ StoreFieldToOffset(SPREG, kCallerCoroutine, Coroutine::stack_base_offset()); + __ StoreCompressedIntoObjectOffset(kCallerCoroutine, Coroutine::stack_base_offset(), SPREG); __ LoadFieldFromOffset(SPREG, kForkedCoroutine, Coroutine::stack_base_offset()); __ PushRegister(kForkedCoroutine); @@ -3308,7 +3308,7 @@ void StubCodeCompiler::GenerateCoroutineForkStub() { __ call(TMP); __ PopRegister(kForkedCoroutine); - __ StoreFieldToOffset(SPREG, kForkedCoroutine, Coroutine::stack_base_offset()); + __ StoreCompressedIntoObjectOffset(kForkedCoroutine, Coroutine::stack_base_offset(), SPREG); __ LoadCompressedFieldFromOffset(kCallerCoroutine, kForkedCoroutine, Coroutine::caller_offset()); @@ -3348,7 +3348,7 @@ void StubCodeCompiler::GenerateCoroutineTransferStub() { __ StoreFieldToOffset(TMP, kToCoroutine, Coroutine::attributes_offset()); __ PushRegister(FPREG); - __ StoreFieldToOffset(SPREG, kFromCoroutine, Coroutine::stack_base_offset()); + __ StoreCompressedIntoObjectOffset(kFromCoroutine, Coroutine::stack_base_offset(), SPREG); __ LoadFieldFromOffset(SPREG, kToCoroutine, Coroutine::stack_base_offset()); __ PopRegister(FPREG); diff --git a/runtime/vm/flag_list.h b/runtime/vm/flag_list.h index 534da93b0df6..fbfa3cb162d4 100644 --- a/runtime/vm/flag_list.h +++ b/runtime/vm/flag_list.h @@ -90,7 +90,7 @@ constexpr bool FLAG_support_il_printer = false; "Check validity of token positions while compiling flow graphs") \ P(collect_dynamic_function_names, bool, true, \ "Collects all dynamic function names to identify unique targets") \ - P(compactor_tasks, int, 2, \ + P(compactor_tasks, int, 0, \ "The number of tasks to use for parallel compaction.") \ P(concurrent_mark, bool, true, "Concurrent mark for old generation.") \ P(concurrent_sweep, bool, true, "Concurrent sweep for old generation.") \ @@ -222,15 +222,15 @@ constexpr bool FLAG_support_il_printer = false; P(use_field_guards, bool, true, "Use field guards and track field types") \ C(use_osr, false, true, bool, true, "Use OSR") \ P(use_slow_path, bool, false, "Whether to avoid inlined fast paths.") \ - P(verbose_gc, bool, false, "Enables verbose GC.") \ + P(verbose_gc, bool, true, "Enables verbose GC.") \ P(verbose_gc_hdr, int, 40, "Print verbose GC header interval.") \ - R(verify_after_gc, false, bool, false, \ + R(verify_after_gc, true, bool, true, \ "Enables heap verification after GC.") \ - R(verify_before_gc, false, bool, false, \ + R(verify_before_gc, true, bool, true, \ "Enables heap verification before GC.") \ - R(verify_store_buffer, false, bool, false, \ + R(verify_store_buffer, true, bool, true, \ "Enables store buffer verification before and after scavenges.") \ - R(verify_after_marking, false, bool, false, \ + R(verify_after_marking, true, bool, true, \ "Enables heap verification after marking.") \ P(enable_slow_path_sharing, bool, true, "Enable sharing of slow-path code.") \ P(shared_slow_path_triggers_gc, bool, false, \ diff --git a/runtime/vm/object.cc b/runtime/vm/object.cc index 36147a28c52f..dd062341dac9 100644 --- a/runtime/vm/object.cc +++ b/runtime/vm/object.cc @@ -26660,6 +26660,7 @@ CodePtr SuspendState::GetCodeObject() const { } CoroutinePtr Coroutine::New(uintptr_t size, FunctionPtr trampoline) { + GcSafepointOperationScope safepoint(Thread::Current()); auto isolate = Isolate::Current(); // auto finished = isolate->finished_coroutines(); auto active = isolate->active_coroutines(); @@ -26795,6 +26796,7 @@ const char* Coroutine::ToCString() const { } void Coroutine::HandleJumpToFrame(Thread* thread, uword stack_pointer) { + GcSafepointOperationScope safepoint(Thread::Current()); auto zone = thread->zone(); auto& coroutines = GrowableObjectArray::Handle(zone, thread->isolate()->coroutines_registry()); auto& found = Coroutine::Handle(zone); @@ -26823,10 +26825,12 @@ void Coroutine::HandleJumpToFrame(Thread* thread, uword stack_pointer) { } void Coroutine::HandleRootEnter(Thread* thread, Zone* zone) { + GcSafepointOperationScope safepoint(Thread::Current()); thread->EnterCoroutine(ptr()); } void Coroutine::HandleRootExit(Thread* thread, Zone* zone) { + GcSafepointOperationScope safepoint(Thread::Current()); auto& coroutines = GrowableObjectArray::Handle(zone, thread->isolate()->coroutines_registry()); auto& coroutine = Coroutine::Handle(zone); @@ -26863,12 +26867,14 @@ void Coroutine::HandleRootExit(Thread* thread, Zone* zone) { } void Coroutine::HandleForkedEnter(Thread* thread, Zone* zone) { + GcSafepointOperationScope safepoint(Thread::Current()); auto active = Isolate::Current()->active_coroutines(); CoroutineLink::StealHead(active, to_state()); thread->EnterCoroutine(ptr()); } void Coroutine::HandleForkedExit(Thread* thread, Zone* zone) { + GcSafepointOperationScope safepoint(Thread::Current()); auto saved_caller = caller(); auto new_caller_state = (saved_caller->untag()->attributes() & ~CoroutineAttributes::suspended) | CoroutineAttributes::running; saved_caller->untag()->set_attributes(new_caller_state); From 8eb87aa13df85b057b9342fd517dc02f6e9e7985 Mon Sep 17 00:00:00 2001 From: "anton.bashirov" Date: Thu, 21 Nov 2024 20:26:08 +0400 Subject: [PATCH 2/3] fixes --- runtime/vm/compiler/backend/il.cc | 4 +++- runtime/vm/compiler/backend/il.h | 3 +++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/runtime/vm/compiler/backend/il.cc b/runtime/vm/compiler/backend/il.cc index 24016b3ac3b9..541f917ee1a2 100644 --- a/runtime/vm/compiler/backend/il.cc +++ b/runtime/vm/compiler/backend/il.cc @@ -8589,13 +8589,15 @@ void CoroutineForkInstr::EmitNativeCode(FlowGraphCompiler* compiler) { LocationSummary* CoroutineTransferInstr::MakeLocationSummary(Zone* zone, bool opt) const { const intptr_t kNumInputs = 2; - const intptr_t kNumTemps = 0; + const intptr_t kNumTemps = 1; LocationSummary* locs = new (zone) LocationSummary(zone, kNumInputs, kNumTemps, LocationSummary::kCall); locs->set_in( 0, Location::RegisterLocation(CoroutineTransferABI::kFromCoroutineReg)); locs->set_in( 1, Location::RegisterLocation(CoroutineTransferABI::kToCoroutineReg)); + locs->set_in( + 0, Location::RegisterLocation(CoroutineTransferABI::kToStackLimitReg)); return locs; } diff --git a/runtime/vm/compiler/backend/il.h b/runtime/vm/compiler/backend/il.h index b50c1fa26e2a..c83f571aa424 100644 --- a/runtime/vm/compiler/backend/il.h +++ b/runtime/vm/compiler/backend/il.h @@ -11492,6 +11492,7 @@ class CoroutineInitializeInstr : public TemplateDefinition<1, Throws> { virtual intptr_t NumberOfInputsConsumedBeforeCall() const { return InputCount(); } + virtual bool MayCreateUnsafeUntaggedPointer() const { return true; } DECLARE_INSTRUCTION(CoroutineInitialize); PRINT_OPERANDS_TO_SUPPORT @@ -11520,6 +11521,7 @@ class CoroutineTransferInstr : public TemplateDefinition<2, Throws> { virtual intptr_t NumberOfInputsConsumedBeforeCall() const { return InputCount(); } + virtual bool MayCreateUnsafeUntaggedPointer() const { return true; } DECLARE_INSTRUCTION(CoroutineTransfer); PRINT_OPERANDS_TO_SUPPORT @@ -11548,6 +11550,7 @@ class CoroutineForkInstr : public TemplateDefinition<2, Throws> { virtual intptr_t NumberOfInputsConsumedBeforeCall() const { return InputCount(); } + virtual bool MayCreateUnsafeUntaggedPointer() const { return true; } DECLARE_INSTRUCTION(CoroutineFork); PRINT_OPERANDS_TO_SUPPORT From cf9a2eff00cf0580465048b621c9ee3523cd0894 Mon Sep 17 00:00:00 2001 From: "anton.bashirov" Date: Thu, 21 Nov 2024 21:03:22 +0400 Subject: [PATCH 3/3] fixes --- runtime/vm/compiler/backend/il.cc | 2 +- .../vm/compiler/runtime_offsets_extracted.h | 60 +++++++++---------- runtime/vm/coroutine.h | 20 ------- runtime/vm/coroutine_test.cc | 12 ---- runtime/vm/flag_list.h | 6 +- runtime/vm/isolate.cc | 31 +--------- runtime/vm/isolate.h | 3 - runtime/vm/object.cc | 57 +++++++++--------- runtime/vm/raw_object.cc | 1 - runtime/vm/vm_sources.gni | 1 - test-sdk-deug.sh | 3 +- 11 files changed, 66 insertions(+), 130 deletions(-) delete mode 100644 runtime/vm/coroutine_test.cc diff --git a/runtime/vm/compiler/backend/il.cc b/runtime/vm/compiler/backend/il.cc index 541f917ee1a2..a82e0a8c924a 100644 --- a/runtime/vm/compiler/backend/il.cc +++ b/runtime/vm/compiler/backend/il.cc @@ -8596,7 +8596,7 @@ LocationSummary* CoroutineTransferInstr::MakeLocationSummary(Zone* zone, 0, Location::RegisterLocation(CoroutineTransferABI::kFromCoroutineReg)); locs->set_in( 1, Location::RegisterLocation(CoroutineTransferABI::kToCoroutineReg)); - locs->set_in( + locs->set_temp( 0, Location::RegisterLocation(CoroutineTransferABI::kToStackLimitReg)); return locs; } diff --git a/runtime/vm/compiler/runtime_offsets_extracted.h b/runtime/vm/compiler/runtime_offsets_extracted.h index da307e996c8f..cc8790f3d79f 100644 --- a/runtime/vm/compiler/runtime_offsets_extracted.h +++ b/runtime/vm/compiler/runtime_offsets_extracted.h @@ -450,7 +450,7 @@ static constexpr dart::compiler::target::word Sentinel_InstanceSize = 0x4; static constexpr dart::compiler::target::word SingleTargetCache_InstanceSize = 0x14; static constexpr dart::compiler::target::word StackTrace_InstanceSize = 0x14; static constexpr dart::compiler::target::word SuspendState_HeaderSize = 0x1c; -static constexpr dart::compiler::target::word Coroutine_InstanceSize = 0x60; +static constexpr dart::compiler::target::word Coroutine_InstanceSize = 0x54; static constexpr dart::compiler::target::word String_InstanceSize = 0xc; static constexpr dart::compiler::target::word SubtypeTestCache_InstanceSize = 0x10; static constexpr dart::compiler::target::word LoadingUnit_InstanceSize = 0x14; @@ -907,7 +907,7 @@ static constexpr dart::compiler::target::word Sentinel_InstanceSize = 0x8; static constexpr dart::compiler::target::word SingleTargetCache_InstanceSize = 0x20; static constexpr dart::compiler::target::word StackTrace_InstanceSize = 0x28; static constexpr dart::compiler::target::word SuspendState_HeaderSize = 0x38; -static constexpr dart::compiler::target::word Coroutine_InstanceSize = 0xc0; +static constexpr dart::compiler::target::word Coroutine_InstanceSize = 0xa8; static constexpr dart::compiler::target::word String_InstanceSize = 0x10; static constexpr dart::compiler::target::word SubtypeTestCache_InstanceSize = 0x18; static constexpr dart::compiler::target::word LoadingUnit_InstanceSize = 0x28; @@ -1364,7 +1364,7 @@ static constexpr dart::compiler::target::word Sentinel_InstanceSize = 0x4; static constexpr dart::compiler::target::word SingleTargetCache_InstanceSize = 0x14; static constexpr dart::compiler::target::word StackTrace_InstanceSize = 0x14; static constexpr dart::compiler::target::word SuspendState_HeaderSize = 0x1c; -static constexpr dart::compiler::target::word Coroutine_InstanceSize = 0x60; +static constexpr dart::compiler::target::word Coroutine_InstanceSize = 0x54; static constexpr dart::compiler::target::word String_InstanceSize = 0xc; static constexpr dart::compiler::target::word SubtypeTestCache_InstanceSize = 0x10; static constexpr dart::compiler::target::word LoadingUnit_InstanceSize = 0x14; @@ -1821,7 +1821,7 @@ static constexpr dart::compiler::target::word Sentinel_InstanceSize = 0x8; static constexpr dart::compiler::target::word SingleTargetCache_InstanceSize = 0x20; static constexpr dart::compiler::target::word StackTrace_InstanceSize = 0x28; static constexpr dart::compiler::target::word SuspendState_HeaderSize = 0x38; -static constexpr dart::compiler::target::word Coroutine_InstanceSize = 0xc0; +static constexpr dart::compiler::target::word Coroutine_InstanceSize = 0xa8; static constexpr dart::compiler::target::word String_InstanceSize = 0x10; static constexpr dart::compiler::target::word SubtypeTestCache_InstanceSize = 0x18; static constexpr dart::compiler::target::word LoadingUnit_InstanceSize = 0x28; @@ -2279,7 +2279,7 @@ static constexpr dart::compiler::target::word Sentinel_InstanceSize = 0x8; static constexpr dart::compiler::target::word SingleTargetCache_InstanceSize = 0x20; static constexpr dart::compiler::target::word StackTrace_InstanceSize = 0x18; static constexpr dart::compiler::target::word SuspendState_HeaderSize = 0x30; -static constexpr dart::compiler::target::word Coroutine_InstanceSize = 0xa0; +static constexpr dart::compiler::target::word Coroutine_InstanceSize = 0x88; static constexpr dart::compiler::target::word String_InstanceSize = 0x10; static constexpr dart::compiler::target::word SubtypeTestCache_InstanceSize = 0x18; static constexpr dart::compiler::target::word LoadingUnit_InstanceSize = 0x20; @@ -2737,7 +2737,7 @@ static constexpr dart::compiler::target::word Sentinel_InstanceSize = 0x8; static constexpr dart::compiler::target::word SingleTargetCache_InstanceSize = 0x20; static constexpr dart::compiler::target::word StackTrace_InstanceSize = 0x18; static constexpr dart::compiler::target::word SuspendState_HeaderSize = 0x30; -static constexpr dart::compiler::target::word Coroutine_InstanceSize = 0xa0; +static constexpr dart::compiler::target::word Coroutine_InstanceSize = 0x88; static constexpr dart::compiler::target::word String_InstanceSize = 0x10; static constexpr dart::compiler::target::word SubtypeTestCache_InstanceSize = 0x18; static constexpr dart::compiler::target::word LoadingUnit_InstanceSize = 0x20; @@ -3194,7 +3194,7 @@ static constexpr dart::compiler::target::word Sentinel_InstanceSize = 0x4; static constexpr dart::compiler::target::word SingleTargetCache_InstanceSize = 0x14; static constexpr dart::compiler::target::word StackTrace_InstanceSize = 0x14; static constexpr dart::compiler::target::word SuspendState_HeaderSize = 0x1c; -static constexpr dart::compiler::target::word Coroutine_InstanceSize = 0x60; +static constexpr dart::compiler::target::word Coroutine_InstanceSize = 0x54; static constexpr dart::compiler::target::word String_InstanceSize = 0xc; static constexpr dart::compiler::target::word SubtypeTestCache_InstanceSize = 0x10; static constexpr dart::compiler::target::word LoadingUnit_InstanceSize = 0x14; @@ -3651,7 +3651,7 @@ static constexpr dart::compiler::target::word Sentinel_InstanceSize = 0x8; static constexpr dart::compiler::target::word SingleTargetCache_InstanceSize = 0x20; static constexpr dart::compiler::target::word StackTrace_InstanceSize = 0x28; static constexpr dart::compiler::target::word SuspendState_HeaderSize = 0x38; -static constexpr dart::compiler::target::word Coroutine_InstanceSize = 0xc0; +static constexpr dart::compiler::target::word Coroutine_InstanceSize = 0xa8; static constexpr dart::compiler::target::word String_InstanceSize = 0x10; static constexpr dart::compiler::target::word SubtypeTestCache_InstanceSize = 0x18; static constexpr dart::compiler::target::word LoadingUnit_InstanceSize = 0x28; @@ -4103,7 +4103,7 @@ static constexpr dart::compiler::target::word Sentinel_InstanceSize = 0x4; static constexpr dart::compiler::target::word SingleTargetCache_InstanceSize = 0x14; static constexpr dart::compiler::target::word StackTrace_InstanceSize = 0x14; static constexpr dart::compiler::target::word SuspendState_HeaderSize = 0x1c; -static constexpr dart::compiler::target::word Coroutine_InstanceSize = 0x60; +static constexpr dart::compiler::target::word Coroutine_InstanceSize = 0x54; static constexpr dart::compiler::target::word String_InstanceSize = 0xc; static constexpr dart::compiler::target::word SubtypeTestCache_InstanceSize = 0x10; static constexpr dart::compiler::target::word LoadingUnit_InstanceSize = 0x14; @@ -4555,7 +4555,7 @@ static constexpr dart::compiler::target::word Sentinel_InstanceSize = 0x8; static constexpr dart::compiler::target::word SingleTargetCache_InstanceSize = 0x20; static constexpr dart::compiler::target::word StackTrace_InstanceSize = 0x28; static constexpr dart::compiler::target::word SuspendState_HeaderSize = 0x38; -static constexpr dart::compiler::target::word Coroutine_InstanceSize = 0xc0; +static constexpr dart::compiler::target::word Coroutine_InstanceSize = 0xa8; static constexpr dart::compiler::target::word String_InstanceSize = 0x10; static constexpr dart::compiler::target::word SubtypeTestCache_InstanceSize = 0x18; static constexpr dart::compiler::target::word LoadingUnit_InstanceSize = 0x28; @@ -5007,7 +5007,7 @@ static constexpr dart::compiler::target::word Sentinel_InstanceSize = 0x4; static constexpr dart::compiler::target::word SingleTargetCache_InstanceSize = 0x14; static constexpr dart::compiler::target::word StackTrace_InstanceSize = 0x14; static constexpr dart::compiler::target::word SuspendState_HeaderSize = 0x1c; -static constexpr dart::compiler::target::word Coroutine_InstanceSize = 0x60; +static constexpr dart::compiler::target::word Coroutine_InstanceSize = 0x54; static constexpr dart::compiler::target::word String_InstanceSize = 0xc; static constexpr dart::compiler::target::word SubtypeTestCache_InstanceSize = 0x10; static constexpr dart::compiler::target::word LoadingUnit_InstanceSize = 0x14; @@ -5459,7 +5459,7 @@ static constexpr dart::compiler::target::word Sentinel_InstanceSize = 0x8; static constexpr dart::compiler::target::word SingleTargetCache_InstanceSize = 0x20; static constexpr dart::compiler::target::word StackTrace_InstanceSize = 0x28; static constexpr dart::compiler::target::word SuspendState_HeaderSize = 0x38; -static constexpr dart::compiler::target::word Coroutine_InstanceSize = 0xc0; +static constexpr dart::compiler::target::word Coroutine_InstanceSize = 0xa8; static constexpr dart::compiler::target::word String_InstanceSize = 0x10; static constexpr dart::compiler::target::word SubtypeTestCache_InstanceSize = 0x18; static constexpr dart::compiler::target::word LoadingUnit_InstanceSize = 0x28; @@ -5912,7 +5912,7 @@ static constexpr dart::compiler::target::word Sentinel_InstanceSize = 0x8; static constexpr dart::compiler::target::word SingleTargetCache_InstanceSize = 0x20; static constexpr dart::compiler::target::word StackTrace_InstanceSize = 0x18; static constexpr dart::compiler::target::word SuspendState_HeaderSize = 0x30; -static constexpr dart::compiler::target::word Coroutine_InstanceSize = 0xa0; +static constexpr dart::compiler::target::word Coroutine_InstanceSize = 0x88; static constexpr dart::compiler::target::word String_InstanceSize = 0x10; static constexpr dart::compiler::target::word SubtypeTestCache_InstanceSize = 0x18; static constexpr dart::compiler::target::word LoadingUnit_InstanceSize = 0x20; @@ -6365,7 +6365,7 @@ static constexpr dart::compiler::target::word Sentinel_InstanceSize = 0x8; static constexpr dart::compiler::target::word SingleTargetCache_InstanceSize = 0x20; static constexpr dart::compiler::target::word StackTrace_InstanceSize = 0x18; static constexpr dart::compiler::target::word SuspendState_HeaderSize = 0x30; -static constexpr dart::compiler::target::word Coroutine_InstanceSize = 0xa0; +static constexpr dart::compiler::target::word Coroutine_InstanceSize = 0x88; static constexpr dart::compiler::target::word String_InstanceSize = 0x10; static constexpr dart::compiler::target::word SubtypeTestCache_InstanceSize = 0x18; static constexpr dart::compiler::target::word LoadingUnit_InstanceSize = 0x20; @@ -6817,7 +6817,7 @@ static constexpr dart::compiler::target::word Sentinel_InstanceSize = 0x4; static constexpr dart::compiler::target::word SingleTargetCache_InstanceSize = 0x14; static constexpr dart::compiler::target::word StackTrace_InstanceSize = 0x14; static constexpr dart::compiler::target::word SuspendState_HeaderSize = 0x1c; -static constexpr dart::compiler::target::word Coroutine_InstanceSize = 0x60; +static constexpr dart::compiler::target::word Coroutine_InstanceSize = 0x54; static constexpr dart::compiler::target::word String_InstanceSize = 0xc; static constexpr dart::compiler::target::word SubtypeTestCache_InstanceSize = 0x10; static constexpr dart::compiler::target::word LoadingUnit_InstanceSize = 0x14; @@ -7269,7 +7269,7 @@ static constexpr dart::compiler::target::word Sentinel_InstanceSize = 0x8; static constexpr dart::compiler::target::word SingleTargetCache_InstanceSize = 0x20; static constexpr dart::compiler::target::word StackTrace_InstanceSize = 0x28; static constexpr dart::compiler::target::word SuspendState_HeaderSize = 0x38; -static constexpr dart::compiler::target::word Coroutine_InstanceSize = 0xc0; +static constexpr dart::compiler::target::word Coroutine_InstanceSize = 0xa8; static constexpr dart::compiler::target::word String_InstanceSize = 0x10; static constexpr dart::compiler::target::word SubtypeTestCache_InstanceSize = 0x18; static constexpr dart::compiler::target::word LoadingUnit_InstanceSize = 0x28; @@ -7723,7 +7723,7 @@ static constexpr dart::compiler::target::word AOT_Sentinel_InstanceSize = 0x4; static constexpr dart::compiler::target::word AOT_SingleTargetCache_InstanceSize = 0x14; static constexpr dart::compiler::target::word AOT_StackTrace_InstanceSize = 0x14; static constexpr dart::compiler::target::word AOT_SuspendState_HeaderSize = 0x18; -static constexpr dart::compiler::target::word AOT_Coroutine_InstanceSize = 0x60; +static constexpr dart::compiler::target::word AOT_Coroutine_InstanceSize = 0x54; static constexpr dart::compiler::target::word AOT_String_InstanceSize = 0xc; static constexpr dart::compiler::target::word AOT_SubtypeTestCache_InstanceSize = 0x10; static constexpr dart::compiler::target::word AOT_LoadingUnit_InstanceSize = 0x14; @@ -8177,7 +8177,7 @@ static constexpr dart::compiler::target::word AOT_Sentinel_InstanceSize = 0x8; static constexpr dart::compiler::target::word AOT_SingleTargetCache_InstanceSize = 0x20; static constexpr dart::compiler::target::word AOT_StackTrace_InstanceSize = 0x28; static constexpr dart::compiler::target::word AOT_SuspendState_HeaderSize = 0x30; -static constexpr dart::compiler::target::word AOT_Coroutine_InstanceSize = 0xc0; +static constexpr dart::compiler::target::word AOT_Coroutine_InstanceSize = 0xa8; static constexpr dart::compiler::target::word AOT_String_InstanceSize = 0x10; static constexpr dart::compiler::target::word AOT_SubtypeTestCache_InstanceSize = 0x18; static constexpr dart::compiler::target::word AOT_LoadingUnit_InstanceSize = 0x28; @@ -8636,7 +8636,7 @@ static constexpr dart::compiler::target::word AOT_Sentinel_InstanceSize = 0x8; static constexpr dart::compiler::target::word AOT_SingleTargetCache_InstanceSize = 0x20; static constexpr dart::compiler::target::word AOT_StackTrace_InstanceSize = 0x28; static constexpr dart::compiler::target::word AOT_SuspendState_HeaderSize = 0x30; -static constexpr dart::compiler::target::word AOT_Coroutine_InstanceSize = 0xc0; +static constexpr dart::compiler::target::word AOT_Coroutine_InstanceSize = 0xa8; static constexpr dart::compiler::target::word AOT_String_InstanceSize = 0x10; static constexpr dart::compiler::target::word AOT_SubtypeTestCache_InstanceSize = 0x18; static constexpr dart::compiler::target::word AOT_LoadingUnit_InstanceSize = 0x28; @@ -9091,7 +9091,7 @@ static constexpr dart::compiler::target::word AOT_Sentinel_InstanceSize = 0x8; static constexpr dart::compiler::target::word AOT_SingleTargetCache_InstanceSize = 0x20; static constexpr dart::compiler::target::word AOT_StackTrace_InstanceSize = 0x18; static constexpr dart::compiler::target::word AOT_SuspendState_HeaderSize = 0x28; -static constexpr dart::compiler::target::word AOT_Coroutine_InstanceSize = 0xa0; +static constexpr dart::compiler::target::word AOT_Coroutine_InstanceSize = 0x88; static constexpr dart::compiler::target::word AOT_String_InstanceSize = 0x10; static constexpr dart::compiler::target::word AOT_SubtypeTestCache_InstanceSize = 0x18; static constexpr dart::compiler::target::word AOT_LoadingUnit_InstanceSize = 0x20; @@ -9546,7 +9546,7 @@ static constexpr dart::compiler::target::word AOT_Sentinel_InstanceSize = 0x8; static constexpr dart::compiler::target::word AOT_SingleTargetCache_InstanceSize = 0x20; static constexpr dart::compiler::target::word AOT_StackTrace_InstanceSize = 0x18; static constexpr dart::compiler::target::word AOT_SuspendState_HeaderSize = 0x28; -static constexpr dart::compiler::target::word AOT_Coroutine_InstanceSize = 0xa0; +static constexpr dart::compiler::target::word AOT_Coroutine_InstanceSize = 0x88; static constexpr dart::compiler::target::word AOT_String_InstanceSize = 0x10; static constexpr dart::compiler::target::word AOT_SubtypeTestCache_InstanceSize = 0x18; static constexpr dart::compiler::target::word AOT_LoadingUnit_InstanceSize = 0x20; @@ -10000,7 +10000,7 @@ static constexpr dart::compiler::target::word AOT_Sentinel_InstanceSize = 0x4; static constexpr dart::compiler::target::word AOT_SingleTargetCache_InstanceSize = 0x14; static constexpr dart::compiler::target::word AOT_StackTrace_InstanceSize = 0x14; static constexpr dart::compiler::target::word AOT_SuspendState_HeaderSize = 0x18; -static constexpr dart::compiler::target::word AOT_Coroutine_InstanceSize = 0x60; +static constexpr dart::compiler::target::word AOT_Coroutine_InstanceSize = 0x54; static constexpr dart::compiler::target::word AOT_String_InstanceSize = 0xc; static constexpr dart::compiler::target::word AOT_SubtypeTestCache_InstanceSize = 0x10; static constexpr dart::compiler::target::word AOT_LoadingUnit_InstanceSize = 0x14; @@ -10454,7 +10454,7 @@ static constexpr dart::compiler::target::word AOT_Sentinel_InstanceSize = 0x8; static constexpr dart::compiler::target::word AOT_SingleTargetCache_InstanceSize = 0x20; static constexpr dart::compiler::target::word AOT_StackTrace_InstanceSize = 0x28; static constexpr dart::compiler::target::word AOT_SuspendState_HeaderSize = 0x30; -static constexpr dart::compiler::target::word AOT_Coroutine_InstanceSize = 0xc0; +static constexpr dart::compiler::target::word AOT_Coroutine_InstanceSize = 0xa8; static constexpr dart::compiler::target::word AOT_String_InstanceSize = 0x10; static constexpr dart::compiler::target::word AOT_SubtypeTestCache_InstanceSize = 0x18; static constexpr dart::compiler::target::word AOT_LoadingUnit_InstanceSize = 0x28; @@ -10903,7 +10903,7 @@ static constexpr dart::compiler::target::word AOT_Sentinel_InstanceSize = 0x4; static constexpr dart::compiler::target::word AOT_SingleTargetCache_InstanceSize = 0x14; static constexpr dart::compiler::target::word AOT_StackTrace_InstanceSize = 0x14; static constexpr dart::compiler::target::word AOT_SuspendState_HeaderSize = 0x18; -static constexpr dart::compiler::target::word AOT_Coroutine_InstanceSize = 0x60; +static constexpr dart::compiler::target::word AOT_Coroutine_InstanceSize = 0x54; static constexpr dart::compiler::target::word AOT_String_InstanceSize = 0xc; static constexpr dart::compiler::target::word AOT_SubtypeTestCache_InstanceSize = 0x10; static constexpr dart::compiler::target::word AOT_LoadingUnit_InstanceSize = 0x14; @@ -11352,7 +11352,7 @@ static constexpr dart::compiler::target::word AOT_Sentinel_InstanceSize = 0x8; static constexpr dart::compiler::target::word AOT_SingleTargetCache_InstanceSize = 0x20; static constexpr dart::compiler::target::word AOT_StackTrace_InstanceSize = 0x28; static constexpr dart::compiler::target::word AOT_SuspendState_HeaderSize = 0x30; -static constexpr dart::compiler::target::word AOT_Coroutine_InstanceSize = 0xc0; +static constexpr dart::compiler::target::word AOT_Coroutine_InstanceSize = 0xa8; static constexpr dart::compiler::target::word AOT_String_InstanceSize = 0x10; static constexpr dart::compiler::target::word AOT_SubtypeTestCache_InstanceSize = 0x18; static constexpr dart::compiler::target::word AOT_LoadingUnit_InstanceSize = 0x28; @@ -11806,7 +11806,7 @@ static constexpr dart::compiler::target::word AOT_Sentinel_InstanceSize = 0x8; static constexpr dart::compiler::target::word AOT_SingleTargetCache_InstanceSize = 0x20; static constexpr dart::compiler::target::word AOT_StackTrace_InstanceSize = 0x28; static constexpr dart::compiler::target::word AOT_SuspendState_HeaderSize = 0x30; -static constexpr dart::compiler::target::word AOT_Coroutine_InstanceSize = 0xc0; +static constexpr dart::compiler::target::word AOT_Coroutine_InstanceSize = 0xa8; static constexpr dart::compiler::target::word AOT_String_InstanceSize = 0x10; static constexpr dart::compiler::target::word AOT_SubtypeTestCache_InstanceSize = 0x18; static constexpr dart::compiler::target::word AOT_LoadingUnit_InstanceSize = 0x28; @@ -12256,7 +12256,7 @@ static constexpr dart::compiler::target::word AOT_Sentinel_InstanceSize = 0x8; static constexpr dart::compiler::target::word AOT_SingleTargetCache_InstanceSize = 0x20; static constexpr dart::compiler::target::word AOT_StackTrace_InstanceSize = 0x18; static constexpr dart::compiler::target::word AOT_SuspendState_HeaderSize = 0x28; -static constexpr dart::compiler::target::word AOT_Coroutine_InstanceSize = 0xa0; +static constexpr dart::compiler::target::word AOT_Coroutine_InstanceSize = 0x88; static constexpr dart::compiler::target::word AOT_String_InstanceSize = 0x10; static constexpr dart::compiler::target::word AOT_SubtypeTestCache_InstanceSize = 0x18; static constexpr dart::compiler::target::word AOT_LoadingUnit_InstanceSize = 0x20; @@ -12706,7 +12706,7 @@ static constexpr dart::compiler::target::word AOT_Sentinel_InstanceSize = 0x8; static constexpr dart::compiler::target::word AOT_SingleTargetCache_InstanceSize = 0x20; static constexpr dart::compiler::target::word AOT_StackTrace_InstanceSize = 0x18; static constexpr dart::compiler::target::word AOT_SuspendState_HeaderSize = 0x28; -static constexpr dart::compiler::target::word AOT_Coroutine_InstanceSize = 0xa0; +static constexpr dart::compiler::target::word AOT_Coroutine_InstanceSize = 0x88; static constexpr dart::compiler::target::word AOT_String_InstanceSize = 0x10; static constexpr dart::compiler::target::word AOT_SubtypeTestCache_InstanceSize = 0x18; static constexpr dart::compiler::target::word AOT_LoadingUnit_InstanceSize = 0x20; @@ -13155,7 +13155,7 @@ static constexpr dart::compiler::target::word AOT_Sentinel_InstanceSize = 0x4; static constexpr dart::compiler::target::word AOT_SingleTargetCache_InstanceSize = 0x14; static constexpr dart::compiler::target::word AOT_StackTrace_InstanceSize = 0x14; static constexpr dart::compiler::target::word AOT_SuspendState_HeaderSize = 0x18; -static constexpr dart::compiler::target::word AOT_Coroutine_InstanceSize = 0x60; +static constexpr dart::compiler::target::word AOT_Coroutine_InstanceSize = 0x54; static constexpr dart::compiler::target::word AOT_String_InstanceSize = 0xc; static constexpr dart::compiler::target::word AOT_SubtypeTestCache_InstanceSize = 0x10; static constexpr dart::compiler::target::word AOT_LoadingUnit_InstanceSize = 0x14; @@ -13604,7 +13604,7 @@ static constexpr dart::compiler::target::word AOT_Sentinel_InstanceSize = 0x8; static constexpr dart::compiler::target::word AOT_SingleTargetCache_InstanceSize = 0x20; static constexpr dart::compiler::target::word AOT_StackTrace_InstanceSize = 0x28; static constexpr dart::compiler::target::word AOT_SuspendState_HeaderSize = 0x30; -static constexpr dart::compiler::target::word AOT_Coroutine_InstanceSize = 0xc0; +static constexpr dart::compiler::target::word AOT_Coroutine_InstanceSize = 0xa8; static constexpr dart::compiler::target::word AOT_String_InstanceSize = 0x10; static constexpr dart::compiler::target::word AOT_SubtypeTestCache_InstanceSize = 0x18; static constexpr dart::compiler::target::word AOT_LoadingUnit_InstanceSize = 0x28; diff --git a/runtime/vm/coroutine.h b/runtime/vm/coroutine.h index afdb9bebe400..7785621f04e5 100644 --- a/runtime/vm/coroutine.h +++ b/runtime/vm/coroutine.h @@ -12,13 +12,6 @@ #endif namespace dart { - -struct CoroutineState { - uword nsp; - uword sp; - uword attributes; -}; - class CoroutineLink { public: DART_FORCE_INLINE @@ -42,16 +35,6 @@ class CoroutineLink { DART_FORCE_INLINE void SetValue(CoroutinePtr value) { value_ = value; - native_sp_ = 0; - sp_ = 0; - attributes_ = 0; - } - - DART_FORCE_INLINE - void Synchronize(uword native_sp, uword sp, uword attributes) { - attributes_ = attributes; - native_sp_ = native_sp; - sp_ = sp; } DART_FORCE_INLINE @@ -83,9 +66,6 @@ class CoroutineLink { CoroutineLink* next_; CoroutineLink* previous_; CoroutinePtr value_; - uword native_sp_; - uword sp_; - uword attributes_; }; } // namespace dart diff --git a/runtime/vm/coroutine_test.cc b/runtime/vm/coroutine_test.cc deleted file mode 100644 index 04c8dffa0a9c..000000000000 --- a/runtime/vm/coroutine_test.cc +++ /dev/null @@ -1,12 +0,0 @@ -// Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file -// 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. - -#include "platform/assert.h" -#include "vm/isolate.h" -#include "vm/unit_test.h" - -namespace dart { -TEST_CASE(Coroutine_test) { -} -} // namespace dart diff --git a/runtime/vm/flag_list.h b/runtime/vm/flag_list.h index fbfa3cb162d4..4c379df4db94 100644 --- a/runtime/vm/flag_list.h +++ b/runtime/vm/flag_list.h @@ -90,10 +90,10 @@ constexpr bool FLAG_support_il_printer = false; "Check validity of token positions while compiling flow graphs") \ P(collect_dynamic_function_names, bool, true, \ "Collects all dynamic function names to identify unique targets") \ - P(compactor_tasks, int, 0, \ + P(compactor_tasks, int, 2, \ "The number of tasks to use for parallel compaction.") \ - P(concurrent_mark, bool, true, "Concurrent mark for old generation.") \ - P(concurrent_sweep, bool, true, "Concurrent sweep for old generation.") \ + P(concurrent_mark, bool, false, "Concurrent mark for old generation.") \ + P(concurrent_sweep, bool, false, "Concurrent sweep for old generation.") \ C(deoptimize_alot, false, false, bool, false, \ "Deoptimizes we are about to return to Dart code from native entries.") \ C(deoptimize_every, 0, 0, int, 0, \ diff --git a/runtime/vm/isolate.cc b/runtime/vm/isolate.cc index 56d01f772eca..eea9b73aeba3 100644 --- a/runtime/vm/isolate.cc +++ b/runtime/vm/isolate.cc @@ -1777,8 +1777,8 @@ Isolate::Isolate(IsolateGroup* isolate_group, // how the vm_tag (kEmbedderTagId) can be set, these tags need to // move to the OSThread structure. set_user_tag(UserTags::kDefaultUserTag); - active_coroutines()->Initialize(); - finished_coroutines()->Initialize(); + // active_coroutines()->Initialize(); + // finished_coroutines()->Initialize(); } #undef REUSABLE_HANDLE_SCOPE_INIT @@ -2783,16 +2783,6 @@ void Isolate::VisitStackPointers(ObjectPointerVisitor* visitor, if (mutator_thread_ != nullptr) { if (mutator_thread_->has_coroutine()) { mutator_thread_->VisitObjectPointersCoroutine(this, visitor, validate_frames); - // if (coroutines_ != nullptr) { - // for (uword index = 0; index < coroutines_count_; index++) { - // auto item = coroutines_[index]; - // UntaggedCoroutine::VisitStack(*item, visitor); - // delete coroutines_[index]; - // } - // delete[] coroutines_; - // coroutines_ = nullptr; - // coroutines_count_ = 0; - // } return; } mutator_thread_->VisitObjectPointers(visitor, validate_frames); @@ -2939,21 +2929,6 @@ void IsolateGroup::VisitObjectPointers(ObjectPointerVisitor* visitor, ValidationPolicy validate_frames) { VisitSharedPointers(visitor); for (Isolate* isolate : isolates_) { - if (isolate->coroutines_registry() != Object::null()) { - auto count = Smi::Value(isolate->coroutines_registry().untag()->length()); - isolate->coroutines_count_ = count; - isolate->coroutines_ = new CoroutineState*[count]; - auto elements = isolate->coroutines_registry().untag()->data().untag(); - for (auto index = 0; index < count; index ++) { - isolate->coroutines_[index] = new CoroutineState(); - auto item = elements->element(index); - if (item.IsHeapObject() && item.IsWellFormed() && item.IsCoroutine()) { - isolate->coroutines_[index]->nsp = Coroutine::RawCast(item).untag()->native_stack_base(); - isolate->coroutines_[index]->sp = Coroutine::RawCast(item).untag()->stack_base(); - isolate->coroutines_[index]->attributes = Coroutine::RawCast(item).untag()->attributes(); - } - } - } isolate->VisitObjectPointers(visitor, validate_frames); } VisitStackPointers(visitor, validate_frames); @@ -3023,8 +2998,6 @@ void IsolateGroup::VisitStackPointers(ObjectPointerVisitor* visitor, } visitor->clear_gc_root_type(); - - // visitor->VisitPointer(reinterpret_cast(&disabled_coroutine_)); } void IsolateGroup::VisitObjectIdRingPointers(ObjectPointerVisitor* visitor) { diff --git a/runtime/vm/isolate.h b/runtime/vm/isolate.h index 35b9be58d792..00e1b439911b 100644 --- a/runtime/vm/isolate.h +++ b/runtime/vm/isolate.h @@ -1579,9 +1579,6 @@ class Isolate : public BaseIsolate, public IntrusiveDListEntry { bool is_system_isolate_ = false; std::unique_ptr isolate_object_store_; GrowableObjectArrayPtr coroutines_registry_; - - CoroutineState** coroutines_; - uword coroutines_count_; // End accessed from generated code. IsolateGroup* const isolate_group_; diff --git a/runtime/vm/object.cc b/runtime/vm/object.cc index dd062341dac9..0af8fb756e58 100644 --- a/runtime/vm/object.cc +++ b/runtime/vm/object.cc @@ -26663,7 +26663,7 @@ CoroutinePtr Coroutine::New(uintptr_t size, FunctionPtr trampoline) { GcSafepointOperationScope safepoint(Thread::Current()); auto isolate = Isolate::Current(); // auto finished = isolate->finished_coroutines(); - auto active = isolate->active_coroutines(); +// auto active = isolate->active_coroutines(); auto& registry = GrowableObjectArray::Handle(isolate->coroutines_registry()); auto page_size = VirtualMemory::PageSize(); @@ -26719,29 +26719,29 @@ CoroutinePtr Coroutine::New(uintptr_t size, FunctionPtr trampoline) { coroutine.untag()->stack_base_ = stack_base; coroutine.untag()->stack_limit_ = stack_limit; coroutine.untag()->overflow_stack_limit_ = stack_limit + CalculateHeadroom(stack_base - stack_limit); - coroutine.untag()->to_state_.Initialize(); - coroutine.untag()->to_state_.SetValue(coroutine.ptr()); + // coroutine.untag()->to_state_.Initialize(); + // coroutine.untag()->to_state_.SetValue(coroutine.ptr()); coroutine.untag()->set_trampoline(trampoline); coroutine.untag()->set_index(registry.Length()); registry.Add(coroutine); - CoroutineLink::AddHead(active, coroutine.to_state()); + //CoroutineLink::AddHead(active, coroutine.to_state()); return coroutine.ptr(); } void Coroutine::recycle(Zone* zone) const { change_state(CoroutineAttributes::created | CoroutineAttributes::running | CoroutineAttributes::suspended, CoroutineAttributes::finished); - auto finished = Isolate::Current()->finished_coroutines(); + //auto finished = Isolate::Current()->finished_coroutines(); untag()->stack_base_ = untag()->stack_root_; untag()->native_stack_base_ = (uword) nullptr; - CoroutineLink::StealHead(finished, to_state()); + //CoroutineLink::StealHead(finished, to_state()); } void Coroutine::dispose(Thread* thread, Zone* zone, bool remove_from_registry) const { change_state(CoroutineAttributes::created | CoroutineAttributes::running | CoroutineAttributes::suspended, CoroutineAttributes::disposed); - CoroutineLink::Remove(to_state()); +// CoroutineLink::Remove(to_state()); untag()->set_name(String::null()); untag()->set_entry(Closure::null()); untag()->set_trampoline(Function::null()); @@ -26762,29 +26762,30 @@ void Coroutine::dispose(Thread* thread, Zone* zone, bool remove_from_registry) c untag()->stack_base_ = (uword) nullptr; untag()->stack_limit_ = (uword) nullptr; untag()->overflow_stack_limit_ = (uword) nullptr; + untag()->set_index(-1); - if (!remove_from_registry) { - untag()->set_index(-1); - return; - } + // if (!remove_from_registry) { + // untag()->set_index(-1); + // return; + // } - auto& coroutines = GrowableObjectArray::Handle(zone, thread->isolate()->coroutines_registry()); - coroutines.RemoveAt(index()); - untag()->set_index(-1); + // auto& coroutines = GrowableObjectArray::Handle(zone, thread->isolate()->coroutines_registry()); + // coroutines.RemoveAt(index()); + // untag()->set_index(-1); - if (coroutines.Capacity() < FLAG_coroutines_registry_shrink_capacity) { - return; - } + // if (coroutines.Capacity() < FLAG_coroutines_registry_shrink_capacity) { + // return; + // } - auto& new_coroutines = GrowableObjectArray::Handle(GrowableObjectArray::New(std::max(coroutines.Length(), (intptr_t)FLAG_coroutines_registry_initial_capacity))); - auto& new_coroutine = Coroutine::Handle(); - for (intptr_t index = 0; index < coroutines.Length(); index++) { - new_coroutine ^= coroutines.At(index); - new_coroutine.set_index(new_coroutines.Length()); - new_coroutines.Add(new_coroutine); - } - Array::Handle(coroutines.data()).Truncate(0); - thread->isolate()->set_coroutines_registry(new_coroutines.ptr()); + // auto& new_coroutines = GrowableObjectArray::Handle(GrowableObjectArray::New(std::max(coroutines.Length(), (intptr_t)FLAG_coroutines_registry_initial_capacity))); + // auto& new_coroutine = Coroutine::Handle(); + // for (intptr_t index = 0; index < coroutines.Length(); index++) { + // new_coroutine ^= coroutines.At(index); + // new_coroutine.set_index(new_coroutines.Length()); + // new_coroutines.Add(new_coroutine); + // } + // Array::Handle(coroutines.data()).Truncate(0); + // thread->isolate()->set_coroutines_registry(new_coroutines.ptr()); } const char* Coroutine::ToCString() const { @@ -26868,8 +26869,8 @@ void Coroutine::HandleRootExit(Thread* thread, Zone* zone) { void Coroutine::HandleForkedEnter(Thread* thread, Zone* zone) { GcSafepointOperationScope safepoint(Thread::Current()); - auto active = Isolate::Current()->active_coroutines(); - CoroutineLink::StealHead(active, to_state()); +// auto active = Isolate::Current()->active_coroutines(); + //CoroutineLink::StealHead(active, to_state()); thread->EnterCoroutine(ptr()); } diff --git a/runtime/vm/raw_object.cc b/runtime/vm/raw_object.cc index f3cd3c4b6886..dd017a1dbc47 100644 --- a/runtime/vm/raw_object.cc +++ b/runtime/vm/raw_object.cc @@ -650,7 +650,6 @@ intptr_t UntaggedSuspendState::VisitSuspendStatePointers( } intptr_t UntaggedCoroutine::VisitCoroutinePointers(CoroutinePtr raw_obj, ObjectPointerVisitor* visitor) { - if (!visitor->CanVisitCoroutinePointers(raw_obj)) return Coroutine::InstanceSize(); visitor->VisitCompressedPointers(raw_obj->heap_base(), raw_obj->untag()->from(), raw_obj->untag()->to()); return Coroutine::InstanceSize(); } diff --git a/runtime/vm/vm_sources.gni b/runtime/vm/vm_sources.gni index b4eaa8e2ff0b..758e2f2178e0 100644 --- a/runtime/vm/vm_sources.gni +++ b/runtime/vm/vm_sources.gni @@ -401,7 +401,6 @@ vm_sources_tests = [ "code_patcher_ia32_test.cc", "code_patcher_riscv_test.cc", "code_patcher_x64_test.cc", - "coroutine_test.cc", "compiler_test.cc", "cpu_test.cc", "cpuinfo_test.cc", diff --git a/test-sdk-deug.sh b/test-sdk-deug.sh index 07cda536fd5b..a34578a3b905 100755 --- a/test-sdk-deug.sh +++ b/test-sdk-deug.sh @@ -1,4 +1,3 @@ #!/bin/bash export CPATH="" -./tools/build.py -m debug -a x64 runtime dart_precompiled_runtime ddc dartanalyzer analysis_server create_common_sdk create_platform_sdk -out/DebugX64/run_vm_tests Coroutine_test \ No newline at end of file +./tools/build.py -m debug -a x64 runtime dart_precompiled_runtime ddc dartanalyzer analysis_server create_common_sdk create_platform_sdk \ No newline at end of file