6ab62add0d
Before this change we would replace unboxed definitions (those with representation not equal to kTagged) which is too loose and causes issues in subsequent passes, which assume that replacements have normalised representation. After this change we make sure that replacement has a matching representation. Closes https://github.com/dart-lang/sdk/issues/35371 Fixes https://github.com/dart-lang/sdk/issues/41971 Cq-Include-Trybots: luci.dart.try:vm-kernel-precomp-linux-release-x64-try,vm-kernel-precomp-linux-debug-x64-try Change-Id: I48543893562acf4f8516651196eba7c0c0769a22 Fixed: 35371,41971 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/103139 Commit-Queue: Vyacheslav Egorov <vegorov@google.com> Reviewed-by: Daco Harkes <dacoharkes@google.com> Reviewed-by: 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.