16ddfc1565
This makes explicit downcasts more efficient by re-using the optimizations we already have for implicit downcasts. For implicit/explicit as checks we use the symbol to distinguish which exception to throw if the check fails. So this does not actually require unification of _CastError and _TypeError. Issue https://github.com/dart-lang/sdk/issues/34582 Issue https://github.com/dart-lang/sdk/issues/30632 Issue https://github.com/dart-lang/sdk/issues/30571 Change-Id: I7b8818d2698e249c90a3e1b8790bad69ada649a9 Reviewed-on: https://dart-review.googlesource.com/c/78748 Commit-Queue: Martin Kustermann <kustermann@google.com> Reviewed-by: Alexander Markov <alexmarkov@google.com> Reviewed-by: Vyacheslav Egorov <vegorov@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.