912577baec
* Avoid calling memmove(dst, nullptr, 0) as this is flagged by UBSAN. * Avoid hitting a bug[1] in the linker: LLD's identical code folding (ICF) happens to replace RecordCoverageInstr::DebugName() with DispatchTable::LargestSmallOffset() because they happen to contain the same machine code, ICF fails to accomodate that DebugName also contains a relocation to constant string. To avoid this we simply eliminate LargestSmallOffset and replace it with a constant. Same for OriginElement. TEST=manually tested previously failing tests [1]: reported https://github.com/llvm/llvm-project/issues/57693 Change-Id: I38637df6475c7670081b7af0a2de75ca37f6f07c Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/258801 Reviewed-by: Daco Harkes <dacoharkes@google.com> Commit-Queue: Slava 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.