13ea0b3e9f
This addresses an issue that AOT snapshot, disassembly and flowgraph are different when generated on Windows vs Linux. Difference is caused by different order of targets in CallTargets, caused by the fact that qsort doesn't have to preserve the order of equal elements in the original list. While qsort on Linux preserves original (by id) order, on Windows it does not. See https://github.com/flutter/flutter/issues/44425 for context. Change-Id: I74c17fd83e5ae21f9733712a87de8f55a1ba94fd Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/149496 Reviewed-by: Ryan Macnak <rmacnak@google.com> Commit-Queue: Alexander Aprelev <aam@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.