540dde6329
When loading and compiling a function for expression evaluation we might reference synthetic class of that function in types (e.g. receiver type). However, that class is not registered (so it could be garbage collected) and it has kIllegalCid. Types constructed using such class are not very useful and may crash if class is queried (for example if type is finalized). This change attempts to replace such synthetic classes with real classes in types constructed during loading. TEST=ci Issue: https://github.com/dart-lang/sdk/issues/48024 Change-Id: I6c5c1b1d20ac2ce4c43e5a7e456d5a8756a43727 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/226603 Reviewed-by: Ryan Macnak <rmacnak@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.