b1a3629547
This refactoring moves receiver variable (previously known as this_variable) from ScopeBuildingResult into ParsedFunction, like other special variables. This is done as ScopeBuildingResult is AST-specific and not available in bytecode, but certain flow graph builders use receiver variable (for example to load instantiator type arguments for type arguments checks). This CL also introduces convenience ParsedFunction::ParameterVariable() method to reduce repetitive incantations parsed_function->node_sequence()->scope()->VariableAt(..) to a more readable parsed_function->ParameterVariable(..) Change-Id: I427536abfa412de9916b79cf2e56e06f2f2f1d71 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/96842 Commit-Queue: Alexander Markov <alexmarkov@google.com> Auto-Submit: Alexander Markov <alexmarkov@google.com> Reviewed-by: Aart Bik <ajcbik@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.