dart-sdk/runtime/vm/compiler
Ryan Macnak a7e20dd2b0 Revert "[vm, gc] Mark through new-space."
This reverts commit 6194209b28.

Reason for revert: issues on arm32

Original change's description:
> [vm, gc] Mark through new-space.
>
>  - Initial and final marking no longer visit all of new-space, reducing the STW pause for major GC.
>  - A scavenge during concurrent marking must forward / filter objects in the marking worklist that are moved / collected, increasing the STW pause for minor GC.
>  - Unreachable intergenerational cycles and weak references are collected in the next mark-sweep instead of first requiring enough scavenges to promote the whole cycle or weak target into old-space.
>  - Artificial minor GCs are no longer needed to avoid memory leaks from back-to-back major GCs.
>  - reachabilityBarrier is now just a count of major GCs.
>
> TEST=ci
> Change-Id: I3668a2e56821f9eadf96e38c228dab27be656016
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/309826
> Reviewed-by: Siva Annamalai <asiva@google.com>
> Commit-Queue: Ryan Macnak <rmacnak@google.com>

Change-Id: I434eb595c9e7858efc8c9b07cbca954e5649f506
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/319321
Commit-Queue: Ryan Macnak <rmacnak@google.com>
Reviewed-by: Siva Annamalai <asiva@google.com>
2023-08-09 18:13:17 +00:00
..
aot [vm/ffi] Closure callbacks for async callbacks 2023-07-26 23:23:26 +00:00
api Fix typos 2022-07-12 19:35:22 +00:00
assembler [vm] Clean up New() methods of Dart classes. 2023-07-12 07:37:16 +00:00
backend [vm] When marking an instruction as deopt to before an instruction, ensure prune-count=0 2023-08-09 11:31:47 +00:00
ffi [vm, compiler] Refactor the A3/A4/A5 trick so it applies to EmitParamMoves. 2023-08-01 17:01:41 +00:00
frontend [vm] Fix expression evaluation in context of closures 2023-08-04 11:07:46 +00:00
jit [vm/ffi] Closure callbacks for async callbacks 2023-07-26 23:23:26 +00:00
asm_intrinsifier.cc [vm] Factor StringEqual out of platform-specific intrinsifiers into single asm_intrinsifier. 2022-12-11 02:49:28 +00:00
asm_intrinsifier.h [vm] Factor StringEqual out of platform-specific intrinsifiers into single asm_intrinsifier. 2022-12-11 02:49:28 +00:00
asm_intrinsifier_arm.cc [vm, compiler] Honor kNewAllocatableSize. 2023-06-12 19:48:37 +00:00
asm_intrinsifier_arm64.cc [vm, compiler] Honor kNewAllocatableSize. 2023-06-12 19:48:37 +00:00
asm_intrinsifier_ia32.cc [vm, compiler] Honor kNewAllocatableSize. 2023-06-12 19:48:37 +00:00
asm_intrinsifier_riscv.cc [vm, compiler] Honor kNewAllocatableSize. 2023-06-12 19:48:37 +00:00
asm_intrinsifier_test.cc [vm] Refactor generation of identity hashes. 2021-12-13 22:31:46 +00:00
asm_intrinsifier_x64.cc [vm, compiler] Honor kNewAllocatableSize. 2023-06-12 19:48:37 +00:00
call_specializer.cc [vm/compiler] Avoid specialization of calls to setters of late final fields 2023-05-31 14:04:39 +00:00
call_specializer.h [vm] Recognize unmodifiable typed data views. 2022-08-11 18:10:48 +00:00
cha.cc [vm] Deoptimize code if can-be-Future property of a class changes due to dynamic loading 2023-06-20 17:17:34 +00:00
cha.h [vm] Deoptimize code if can-be-Future property of a class changes due to dynamic loading 2023-06-20 17:17:34 +00:00
cha_test.cc [vm] Deoptimize code if can-be-Future property of a class changes due to dynamic loading 2023-06-20 17:17:34 +00:00
compiler_pass.cc [vm, gc] Add flag to disable write barrier elimination. 2023-07-12 15:46:27 +00:00
compiler_pass.h [vm] Update NULL to nullptr in runtime/vm/compiler. 2023-03-30 18:23:53 +00:00
compiler_sources.gni [vm/compiler] Split ParallelMove codegen into scheduling and emission 2023-02-28 12:21:41 +00:00
compiler_state.cc [vm] Support multiple local variables with the same name in the same scope 2023-01-31 18:47:46 +00:00
compiler_state.h [vm] Include compiler state in crash reports. 2021-11-11 14:30:52 +00:00
compiler_timings.cc [vm/compiler] Add --print-precompiler-timings 2021-05-11 11:15:53 +00:00
compiler_timings.h [vm/compiler] Minor improvements for AOT compilation time 2021-09-13 21:25:30 +00:00
graph_intrinsifier.cc [vm] Remove graph intrinsics for implicit getters and setters 2023-06-09 14:15:28 +00:00
graph_intrinsifier.h [vm] Remove graph intrinsics for implicit getters and setters 2023-06-09 14:15:28 +00:00
intrinsifier.cc [vm] Remove graph intrinsics for implicit getters and setters 2023-06-09 14:15:28 +00:00
intrinsifier.h [vm] Remove graph intrinsics for implicit getters and setters 2023-06-09 14:15:28 +00:00
method_recognizer.cc [vm] Update NULL to nullptr in runtime/vm/compiler. 2023-03-30 18:23:53 +00:00
method_recognizer.h [vm/ffi] ABI-specific integers 2021-12-16 22:07:00 +00:00
offsets_extractor.cc [vm] Rewrite tools/offset_extractors.sh in Dart 2023-07-24 12:47:52 +00:00
README.md
recognized_methods_list.h [vm/ffi] Closure callbacks for async callbacks 2023-07-26 23:23:26 +00:00
relocation.cc [vm, gc] Common page structure for both generations. 2022-09-27 21:34:05 +00:00
relocation.h [vm/compiler] Improve precision of AOT code relocator 2021-04-29 15:12:15 +00:00
relocation_test.cc [vm] Update to constexpr in runtime/vm/compiler. 2023-04-11 21:50:56 +00:00
runtime_api.cc Revert "[vm, gc] Mark through new-space." 2023-08-09 18:13:17 +00:00
runtime_api.h Revert "[vm, gc] Mark through new-space." 2023-08-09 18:13:17 +00:00
runtime_offsets_extracted.h Revert "[vm, gc] Mark through new-space." 2023-08-09 18:13:17 +00:00
runtime_offsets_list.h Revert "[vm, gc] Mark through new-space." 2023-08-09 18:13:17 +00:00
stub_code_compiler.cc Revert "[vm, gc] Mark through new-space." 2023-08-09 18:13:17 +00:00
stub_code_compiler.h [vm, compiler] Honor --no_inline_alloc in suspend state and record stubs. 2023-07-10 22:03:08 +00:00
stub_code_compiler_arm.cc Revert "[vm, gc] Mark through new-space." 2023-08-09 18:13:17 +00:00
stub_code_compiler_arm64.cc Revert "[vm, gc] Mark through new-space." 2023-08-09 18:13:17 +00:00
stub_code_compiler_ia32.cc Revert "[vm, gc] Mark through new-space." 2023-08-09 18:13:17 +00:00
stub_code_compiler_riscv.cc Revert "[vm, gc] Mark through new-space." 2023-08-09 18:13:17 +00:00
stub_code_compiler_x64.cc Revert "[vm, gc] Mark through new-space." 2023-08-09 18:13:17 +00:00
write_barrier_elimination.cc [vm] Initial implementation of record type checks 2022-09-16 18:05:00 +00:00
write_barrier_elimination.h [vm/compiler] Add check to prevent inclusion of compiler headers into AOT runtime 2020-04-17 13:11:08 +00:00
write_barrier_elimination_test.cc [vm, compiler] Rename StoreInstanceFieldInstr to StoreFieldInstr to match LoadFieldInstr and GuardFieldXYZInstr. 2022-07-27 20:00:49 +00:00

Dart VM Compilation Pipeline

This folder contains Dart VM compilation pipeline.

Compilation pipeline is mainly responsible for converting AST or Kernel AST into IL flow graphs and then generating native code from IL.

It has the following structure:

Directory What goes there
assembler/ Assemblers and disassemblers
backend/ IL based compilation backend: optimization passes and architecture specific code generation rules
frontend/ Frontends responsible for converting AST into IL
jit/ JIT specific passes and compilation pipeline entry points
aot/ AOT specific passes and compilation pipeline entry points
. Shared code or code without clear designation.

Currently there are no layering restrictions and components from different subfolders can reference each other.