6349882b7a
Also replace any null flag entries left in the parameter names array to zero Smi values, so that after truncation, no null checks are needed for retrieved flag entries. Now that all appropriate places truncate the parameter names array after setting any required bits, dynamic closure call dispatchers can simply check for any post-name flag entries to detect missing required named parameters if no named arguments were passed. Without the added truncate calls, then vm/dart/minimal_kernel_bytecode_test fails when dynamic closure call dispatchers use that shortcut as seen on patchset 1 of CL 160725. Bug: https://github.com/dart-lang/sdk/issues/40813 Change-Id: I25abd23ad3ce42b03ec5ca29b4e067c162826066 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/160860 Commit-Queue: Tess Strickland <sstrickl@google.com> Reviewed-by: Martin Kustermann <kustermann@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.