dart-sdk/runtime/vm/compiler
Alexander Markov 3bcb19455f [vm/compiler] Cleanup yield_index from Return instruction
TEST=ci

Change-Id: Ib41689681a171ec93366dc6f5a09aa7d5707c5cd
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/268780
Reviewed-by: Martin Kustermann <kustermann@google.com>
Commit-Queue: Alexander Markov <alexmarkov@google.com>
2022-11-10 15:03:57 +00:00
..
aot [vm] Stricter checks when sending isolate messages between groups. 2022-10-28 19:18:51 +00:00
api
assembler [vm, compiler] Don't clobber preserved register in assembler test. 2022-11-08 01:01:37 +00:00
backend [vm/compiler] Cleanup yield_index from Return instruction 2022-11-10 15:03:57 +00:00
ffi
frontend [vm/compiler] Cleanup yield_index from Return instruction 2022-11-10 15:03:57 +00:00
jit [gardening] Make --optimization-counter-threshold= not affect system isolates 2022-10-31 14:38:44 +00:00
asm_intrinsifier.cc
asm_intrinsifier.h
asm_intrinsifier_arm.cc [vm] Better implementation of hashCode function. 2022-10-20 20:31:20 +00:00
asm_intrinsifier_arm64.cc [vm] Better implementation of hashCode function. 2022-10-20 20:31:20 +00:00
asm_intrinsifier_ia32.cc [vm] Better implementation of hashCode function. 2022-10-20 20:31:20 +00:00
asm_intrinsifier_riscv.cc [vm] Better implementation of hashCode function. 2022-10-20 20:31:20 +00:00
asm_intrinsifier_test.cc
asm_intrinsifier_x64.cc [vm] Better implementation of hashCode function. 2022-10-20 20:31:20 +00:00
call_specializer.cc
call_specializer.h
cha.cc
cha.h
cha_test.cc
compiler_pass.cc
compiler_pass.h
compiler_sources.gni
compiler_state.cc
compiler_state.h
compiler_timings.cc
compiler_timings.h
graph_intrinsifier.cc [vm] Remove dynamic field unboxing in JIT 2022-09-20 13:42:45 +00:00
graph_intrinsifier.h
intrinsifier.cc [vm] Remove dynamic field unboxing in JIT 2022-09-20 13:42:45 +00:00
intrinsifier.h
method_recognizer.cc
method_recognizer.h
offsets_extractor.cc
README.md
recognized_methods_list.h Deprecate checkValidIndex and avoid using it in the core library. 2022-11-08 19:02:35 +00:00
relocation.cc [vm, gc] Common page structure for both generations. 2022-09-27 21:34:05 +00:00
relocation.h
relocation_test.cc [vm, gc] Common page structure for both generations. 2022-09-27 21:34:05 +00:00
runtime_api.cc [vm] More efficient 'is' tests for record types 2022-11-07 22:27:31 +00:00
runtime_api.h [vm] More efficient 'is' tests for record types 2022-11-07 22:27:31 +00:00
runtime_offsets_extracted.h [vm] More efficient 'is' tests for record types 2022-11-07 22:27:31 +00:00
runtime_offsets_list.h [vm] More efficient 'is' tests for record types 2022-11-07 22:27:31 +00:00
stub_code_compiler.cc [vm] More efficient 'is' tests for record types 2022-11-07 22:27:31 +00:00
stub_code_compiler.h [vm] Specialize allocation for small records 2022-11-03 15:06:35 +00:00
stub_code_compiler_arm.cc [vm, gc] Common page structure for both generations. 2022-09-27 21:34:05 +00:00
stub_code_compiler_arm64.cc [vm, gc] Common page structure for both generations. 2022-09-27 21:34:05 +00:00
stub_code_compiler_ia32.cc [vm, gc] Implement the incremental marking barrier for IA32. 2022-10-05 18:08:32 +00:00
stub_code_compiler_riscv.cc [vm, gc] Common page structure for both generations. 2022-09-27 21:34:05 +00:00
stub_code_compiler_x64.cc [vm, gc] Common page structure for both generations. 2022-09-27 21:34:05 +00:00
write_barrier_elimination.cc
write_barrier_elimination.h
write_barrier_elimination_test.cc

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.