1d026781b5
- Update the flow graph and block order in the call specializer after round trip serialization. This ensures that compiler passes using the call specializer operate on the deserialized flow graph rather than the original one. - Add 2 instead of 1 to the highest seen SSA temp index after deserialization to obtain the current SSA temp index. This makes room for values that expand into two SSA slots during some optimizations, e.g. unboxed integers on 32-bit platforms. The changes expose an issue with early round-trip serialization, described in https://github.com/dart-lang/sdk/issues/40120 Change-Id: I21e22fa1bab595fb5764ab72b599a3c663b4ff47 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/128405 Commit-Queue: Aske Simon Christensen <askesc@google.com> Reviewed-by: Teagan Strickland <sstrickl@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.