mirror of
https://github.com/dart-lang/sdk
synced 2024-11-05 18:22:09 +00:00
700ba716cd
To avoid a O(n) traversal of isolates in order to find pending deopts, we'll move the pending deopt state to the Thread. It's really a property of a thread: when the thread's stack gets unwound - via return or exceptional flow - we remove pending deopts. This CL also encapsulates the pending deopt logic into a [PendingDeopts] class - thereby avoiding logic around manipulating this array being spread around. It simplifies the already very big [Isolate] class. TEST=Refactoring of existing code. Issue https://github.com/dart-lang/sdk/issues/36097 Closes https://github.com/dart-lang/sdk/issues/45168 Change-Id: I5a9b18c577f21a0f2a88332b1bc26641ec39d2af Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/188521 Commit-Queue: Martin Kustermann <kustermann@google.com> Reviewed-by: Alexander Aprelev <aam@google.com>
468 lines
10 KiB
Text
468 lines
10 KiB
Text
# 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.
|
|
|
|
# This file contains all sources (vm and tests) for the dart virtual machine.
|
|
# Unit test files need to have a "_test" suffix appended to the name.
|
|
vm_sources = [
|
|
"allocation.cc",
|
|
"allocation.h",
|
|
"base64.cc",
|
|
"base64.h",
|
|
"base_isolate.h",
|
|
"bit_vector.cc",
|
|
"bit_vector.h",
|
|
"bitfield.h",
|
|
"bitmap.cc",
|
|
"bitmap.h",
|
|
"boolfield.h",
|
|
"bootstrap.h",
|
|
"bootstrap_natives.cc",
|
|
"bootstrap_natives.h",
|
|
"bss_relocs.cc",
|
|
"bss_relocs.h",
|
|
"canonical_tables.cc",
|
|
"canonical_tables.h",
|
|
"class_finalizer.cc",
|
|
"class_finalizer.h",
|
|
"class_id.h",
|
|
"class_table.cc",
|
|
"class_table.h",
|
|
"closure_functions_cache.cc",
|
|
"closure_functions_cache.h",
|
|
"clustered_snapshot.cc",
|
|
"clustered_snapshot.h",
|
|
"code_comments.cc",
|
|
"code_comments.h",
|
|
"code_descriptors.cc",
|
|
"code_descriptors.h",
|
|
"code_entry_kind.h",
|
|
"code_observers.cc",
|
|
"code_observers.h",
|
|
"code_patcher.cc",
|
|
"code_patcher.h",
|
|
"code_patcher_arm.cc",
|
|
"code_patcher_arm64.cc",
|
|
"code_patcher_ia32.cc",
|
|
"code_patcher_x64.cc",
|
|
"compilation_trace.cc",
|
|
"compilation_trace.h",
|
|
"constants_arm.cc",
|
|
"constants_arm.h",
|
|
"constants_arm64.cc",
|
|
"constants_arm64.h",
|
|
"constants_base.h",
|
|
"constants_ia32.cc",
|
|
"constants_ia32.h",
|
|
"constants_x64.cc",
|
|
"constants_x64.h",
|
|
"cpu.h",
|
|
"cpu_arm.cc",
|
|
"cpu_arm64.cc",
|
|
"cpu_ia32.cc",
|
|
"cpu_x64.cc",
|
|
"cpuid.cc",
|
|
"cpuid.h",
|
|
"cpuinfo.h",
|
|
"cpuinfo_android.cc",
|
|
"cpuinfo_fuchsia.cc",
|
|
"cpuinfo_linux.cc",
|
|
"cpuinfo_macos.cc",
|
|
"cpuinfo_win.cc",
|
|
"dart.cc",
|
|
"dart.h",
|
|
"dart_api_impl.h",
|
|
"dart_api_message.cc",
|
|
"dart_api_message.h",
|
|
"dart_api_state.cc",
|
|
"dart_api_state.h",
|
|
"dart_entry.cc",
|
|
"dart_entry.h",
|
|
"datastream.cc",
|
|
"datastream.h",
|
|
"debugger.cc",
|
|
"debugger.h",
|
|
"debugger_arm.cc",
|
|
"debugger_arm64.cc",
|
|
"debugger_ia32.cc",
|
|
"debugger_x64.cc",
|
|
"deferred_objects.cc",
|
|
"deferred_objects.h",
|
|
"deopt_instructions.cc",
|
|
"deopt_instructions.h",
|
|
"dispatch_table.cc",
|
|
"dispatch_table.h",
|
|
"double_conversion.cc",
|
|
"double_conversion.h",
|
|
"double_internals.h",
|
|
"dwarf.cc",
|
|
"dwarf.h",
|
|
"elf.cc",
|
|
"elf.h",
|
|
"exceptions.cc",
|
|
"exceptions.h",
|
|
"experimental_features.cc",
|
|
"experimental_features.h",
|
|
"ffi_callback_trampolines.cc",
|
|
"ffi_callback_trampolines.h",
|
|
"field_table.cc",
|
|
"field_table.h",
|
|
"finalizable_data.h",
|
|
"fixed_cache.h",
|
|
"flag_list.h",
|
|
"flags.cc",
|
|
"flags.h",
|
|
"frame_layout.h",
|
|
"gdb_helpers.cc",
|
|
"globals.h",
|
|
"growable_array.h",
|
|
"handle_visitor.h",
|
|
"handles.cc",
|
|
"handles.h",
|
|
"handles_impl.h",
|
|
"hash_map.h",
|
|
"hash_table.h",
|
|
"image_snapshot.cc",
|
|
"image_snapshot.h",
|
|
"instructions.h",
|
|
"instructions_arm.cc",
|
|
"instructions_arm.h",
|
|
"instructions_arm64.cc",
|
|
"instructions_arm64.h",
|
|
"instructions_ia32.cc",
|
|
"instructions_ia32.h",
|
|
"instructions_x64.cc",
|
|
"instructions_x64.h",
|
|
"intrusive_dlist.h",
|
|
"isolate.cc",
|
|
"isolate.h",
|
|
"isolate_reload.cc",
|
|
"isolate_reload.h",
|
|
"json_stream.cc",
|
|
"json_stream.h",
|
|
"json_writer.cc",
|
|
"json_writer.h",
|
|
"kernel.cc",
|
|
"kernel.h",
|
|
"kernel_binary.cc",
|
|
"kernel_binary.h",
|
|
"kernel_isolate.cc",
|
|
"kernel_isolate.h",
|
|
"kernel_loader.cc",
|
|
"kernel_loader.h",
|
|
"lockers.cc",
|
|
"lockers.h",
|
|
"log.cc",
|
|
"log.h",
|
|
"longjump.cc",
|
|
"longjump.h",
|
|
"malloc_hooks.h",
|
|
"malloc_hooks_arm.cc",
|
|
"malloc_hooks_arm64.cc",
|
|
"malloc_hooks_ia32.cc",
|
|
"malloc_hooks_tcmalloc.cc",
|
|
"malloc_hooks_unsupported.cc",
|
|
"malloc_hooks_x64.cc",
|
|
"megamorphic_cache_table.cc",
|
|
"megamorphic_cache_table.h",
|
|
"memory_region.cc",
|
|
"memory_region.h",
|
|
"message.cc",
|
|
"message.h",
|
|
"message_handler.cc",
|
|
"message_handler.h",
|
|
"metrics.cc",
|
|
"metrics.h",
|
|
"native_arguments.h",
|
|
"native_entry.cc",
|
|
"native_entry.h",
|
|
"native_message_handler.cc",
|
|
"native_message_handler.h",
|
|
"native_symbol.h",
|
|
"native_symbol_android.cc",
|
|
"native_symbol_fuchsia.cc",
|
|
"native_symbol_linux.cc",
|
|
"native_symbol_macos.cc",
|
|
"native_symbol_win.cc",
|
|
"object.cc",
|
|
"object.h",
|
|
"object_graph.cc",
|
|
"object_graph.h",
|
|
"object_id_ring.cc",
|
|
"object_id_ring.h",
|
|
"object_reload.cc",
|
|
"object_service.cc",
|
|
"object_set.h",
|
|
"object_store.cc",
|
|
"object_store.h",
|
|
"os.h",
|
|
"os_android.cc",
|
|
"os_fuchsia.cc",
|
|
"os_linux.cc",
|
|
"os_macos.cc",
|
|
"os_thread.cc",
|
|
"os_thread.h",
|
|
"os_thread_android.cc",
|
|
"os_thread_android.h",
|
|
"os_thread_fuchsia.cc",
|
|
"os_thread_fuchsia.h",
|
|
"os_thread_linux.cc",
|
|
"os_thread_linux.h",
|
|
"os_thread_macos.cc",
|
|
"os_thread_macos.h",
|
|
"os_thread_win.cc",
|
|
"os_thread_win.h",
|
|
"os_win.cc",
|
|
"parser.cc",
|
|
"parser.h",
|
|
"pending_deopts.cc",
|
|
"pending_deopts.h",
|
|
"pointer_tagging.h",
|
|
"port.cc",
|
|
"port.h",
|
|
"port_set.h",
|
|
"proccpuinfo.cc",
|
|
"proccpuinfo.h",
|
|
"profiler.cc",
|
|
"profiler.h",
|
|
"profiler_service.cc",
|
|
"profiler_service.h",
|
|
"program_visitor.cc",
|
|
"program_visitor.h",
|
|
"random.cc",
|
|
"random.h",
|
|
"raw_object.cc",
|
|
"raw_object.h",
|
|
"raw_object_fields.cc",
|
|
"raw_object_fields.h",
|
|
"raw_object_snapshot.cc",
|
|
"regexp.cc",
|
|
"regexp.h",
|
|
"regexp_assembler.cc",
|
|
"regexp_assembler.h",
|
|
"regexp_assembler_bytecode.cc",
|
|
"regexp_assembler_bytecode.h",
|
|
"regexp_assembler_bytecode_inl.h",
|
|
"regexp_assembler_ir.cc",
|
|
"regexp_assembler_ir.h",
|
|
"regexp_ast.cc",
|
|
"regexp_ast.h",
|
|
"regexp_bytecodes.h",
|
|
"regexp_interpreter.cc",
|
|
"regexp_interpreter.h",
|
|
"regexp_parser.cc",
|
|
"regexp_parser.h",
|
|
"report.cc",
|
|
"report.h",
|
|
"resolver.cc",
|
|
"resolver.h",
|
|
"reusable_handles.h",
|
|
"reverse_pc_lookup_cache.cc",
|
|
"reverse_pc_lookup_cache.h",
|
|
"ring_buffer.h",
|
|
"runtime_entry.cc",
|
|
"runtime_entry.h",
|
|
"runtime_entry_arm.cc",
|
|
"runtime_entry_arm64.cc",
|
|
"runtime_entry_ia32.cc",
|
|
"runtime_entry_list.h",
|
|
"runtime_entry_x64.cc",
|
|
"scope_timer.h",
|
|
"scopes.cc",
|
|
"scopes.h",
|
|
"service.cc",
|
|
"service.h",
|
|
"service_event.cc",
|
|
"service_event.h",
|
|
"service_isolate.cc",
|
|
"service_isolate.h",
|
|
"signal_handler.h",
|
|
"signal_handler_android.cc",
|
|
"signal_handler_fuchsia.cc",
|
|
"signal_handler_linux.cc",
|
|
"signal_handler_macos.cc",
|
|
"signal_handler_win.cc",
|
|
"simulator.h",
|
|
"simulator_arm.cc",
|
|
"simulator_arm.h",
|
|
"simulator_arm64.cc",
|
|
"simulator_arm64.h",
|
|
"snapshot.cc",
|
|
"snapshot.h",
|
|
"snapshot_ids.h",
|
|
"source_report.cc",
|
|
"source_report.h",
|
|
"stack_frame.cc",
|
|
"stack_frame.h",
|
|
"stack_frame_arm.h",
|
|
"stack_frame_arm64.h",
|
|
"stack_frame_ia32.h",
|
|
"stack_frame_x64.h",
|
|
"stack_trace.cc",
|
|
"stack_trace.h",
|
|
"static_type_exactness_state.h",
|
|
"stub_code.cc",
|
|
"stub_code.h",
|
|
"stub_code_list.h",
|
|
"symbols.cc",
|
|
"symbols.h",
|
|
"tags.cc",
|
|
"tags.h",
|
|
"thread.cc",
|
|
"thread.h",
|
|
"thread_barrier.h",
|
|
"thread_interrupter.cc",
|
|
"thread_interrupter.h",
|
|
"thread_interrupter_android.cc",
|
|
"thread_interrupter_fuchsia.cc",
|
|
"thread_interrupter_linux.cc",
|
|
"thread_interrupter_macos.cc",
|
|
"thread_interrupter_win.cc",
|
|
"thread_pool.cc",
|
|
"thread_pool.h",
|
|
"thread_registry.cc",
|
|
"thread_registry.h",
|
|
"thread_stack_resource.cc",
|
|
"thread_stack_resource.h",
|
|
"thread_state.cc",
|
|
"thread_state.h",
|
|
"timeline.cc",
|
|
"timeline.h",
|
|
"timeline_analysis.cc",
|
|
"timeline_analysis.h",
|
|
"timeline_android.cc",
|
|
"timeline_fuchsia.cc",
|
|
"timeline_linux.cc",
|
|
"timeline_macos.cc",
|
|
"timer.cc",
|
|
"timer.h",
|
|
"token.cc",
|
|
"token.h",
|
|
"token_position.cc",
|
|
"token_position.h",
|
|
"type_testing_stubs.cc",
|
|
"type_testing_stubs.h",
|
|
"unibrow-inl.h",
|
|
"unibrow.cc",
|
|
"unibrow.h",
|
|
"unicode.cc",
|
|
"unicode_data.cc",
|
|
"uri.cc",
|
|
"uri.h",
|
|
"v8_snapshot_writer.cc",
|
|
"v8_snapshot_writer.h",
|
|
"virtual_memory.cc",
|
|
"virtual_memory.h",
|
|
"virtual_memory_compressed.cc",
|
|
"virtual_memory_compressed.h",
|
|
"virtual_memory_fuchsia.cc",
|
|
"virtual_memory_posix.cc",
|
|
"virtual_memory_win.cc",
|
|
"visitor.cc",
|
|
"visitor.h",
|
|
"zone.cc",
|
|
"zone.h",
|
|
"zone_text_buffer.cc",
|
|
"zone_text_buffer.h",
|
|
]
|
|
|
|
vm_sources_tests = [
|
|
"allocation_test.cc",
|
|
"assert_test.cc",
|
|
"atomic_test.cc",
|
|
"base64_test.cc",
|
|
"benchmark_test.cc",
|
|
"benchmark_test.h",
|
|
"bit_set_test.cc",
|
|
"bit_vector_test.cc",
|
|
"bitfield_test.cc",
|
|
"bitmap_test.cc",
|
|
"boolfield_test.cc",
|
|
"catch_entry_moves_test.cc",
|
|
"class_finalizer_test.cc",
|
|
"code_descriptors_test.cc",
|
|
"code_patcher_arm64_test.cc",
|
|
"code_patcher_arm_test.cc",
|
|
"code_patcher_ia32_test.cc",
|
|
"code_patcher_x64_test.cc",
|
|
"compiler_test.cc",
|
|
"cpu_test.cc",
|
|
"cpuinfo_test.cc",
|
|
"custom_isolate_test.cc",
|
|
"dart_api_impl_test.cc",
|
|
"datastream_test.cc",
|
|
"debugger_api_impl_test.cc",
|
|
"exceptions_test.cc",
|
|
"fixed_cache_test.cc",
|
|
"flags_test.cc",
|
|
"growable_array_test.cc",
|
|
"guard_field_test.cc",
|
|
"handles_test.cc",
|
|
"hash_map_test.cc",
|
|
"hash_table_test.cc",
|
|
"instructions_arm64_test.cc",
|
|
"instructions_arm_test.cc",
|
|
"instructions_ia32_test.cc",
|
|
"instructions_x64_test.cc",
|
|
"intrusive_dlist_test.cc",
|
|
"isolate_reload_test.cc",
|
|
"isolate_test.cc",
|
|
"json_test.cc",
|
|
"log_test.cc",
|
|
"longjump_test.cc",
|
|
"malloc_hooks_test.cc",
|
|
"memory_region_test.cc",
|
|
"message_handler_test.cc",
|
|
"message_test.cc",
|
|
"metrics_test.cc",
|
|
"mixin_test.cc",
|
|
"native_entry_test.cc",
|
|
"native_entry_test.h",
|
|
"object_arm64_test.cc",
|
|
"object_arm_test.cc",
|
|
"object_graph_test.cc",
|
|
"object_ia32_test.cc",
|
|
"object_id_ring_test.cc",
|
|
"object_store_test.cc",
|
|
"object_test.cc",
|
|
"object_x64_test.cc",
|
|
"os_test.cc",
|
|
"port_test.cc",
|
|
"profiler_test.cc",
|
|
"regexp_test.cc",
|
|
"ring_buffer_test.cc",
|
|
"scopes_test.cc",
|
|
"service_test.cc",
|
|
"snapshot_test.cc",
|
|
"source_report_test.cc",
|
|
"stack_frame_test.cc",
|
|
"stub_code_test.cc",
|
|
"stub_code_arm64_test.cc",
|
|
"stub_code_arm_test.cc",
|
|
"stub_code_ia32_test.cc",
|
|
"stub_code_x64_test.cc",
|
|
"thread_barrier_test.cc",
|
|
"thread_pool_test.cc",
|
|
"thread_test.cc",
|
|
"timeline_test.cc",
|
|
"type_testing_stubs_test.cc",
|
|
"unicode_test.cc",
|
|
"unit_test.cc",
|
|
"unit_test.h",
|
|
"uri_test.cc",
|
|
"utils_test.cc",
|
|
"virtual_memory_test.cc",
|
|
"zone_test.cc",
|
|
]
|
|
|
|
constants_sources = [
|
|
"constants_arm.cc",
|
|
"constants_arm.h",
|
|
"constants_arm64.cc",
|
|
"constants_arm64.h",
|
|
"constants_base.h",
|
|
"constants_ia32.cc",
|
|
"constants_ia32.h",
|
|
"constants_x64.cc",
|
|
"constants_x64.h",
|
|
]
|