bf096c2bb4
Before this change, each function and field had its own kernel data blob in the VM heap. With this change, the entire kernel data of a library is stored as one single blob in the VM heap. Functions and fields store an offset which points to the kernel data, specific to them, in that single blob. The pointer to the kernel data for a library is saved in two places: 1. With the library objects themselves. 2. With all the patch classes of the library. 3. With the patch classes created during hot reload. Change-Id: Ie03e738c4d20f16056a5ef04341b75506fda9c60 Bug: Reviewed-on: https://dart-review.googlesource.com/6601 Commit-Queue: Siva Chandra <sivachandra@google.com> Reviewed-by: Jens Johansen <jensj@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.