13a69b5631
VM no longer relies on distinct ICData entries in constant pool, and it no longer creates actual ICData objects. This change introduces new DynamicCall constant pool entry which is * de-duplicated; * stores arguments descriptor inline instead of allocating a separate constant pool entry and referencing it by index; * reserves extra slot in constant pool (like other call constants), so we can eventually remove creation of extra UnlinkedCall objects. Change-Id: I8d21954803ca5be5b6fc8335b700e8a9086245cf Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/116120 Reviewed-by: Ryan Macnak <rmacnak@google.com> Reviewed-by: Régis Crelier <regis@google.com> Commit-Queue: Alexander Markov <alexmarkov@google.com>
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.