dart-sdk/runtime/vm/compiler
Alexander Aprelev dabfda5770 Revert "[vm/compiler] Check def/use relation for PushArguments in environment."
This reverts commit 88e94994b1 as it breaks flutter:

```
[ +192 ms] executing: $FH/engine/src/out/ios_profile_arm/clang_x64/gen_snapshot --causal_async_stacks
--deterministic --snapshot_kind=app-aot-elf --elf=build/aot/app.so --strip --no-sim-use-hardfp
--no-use-integer-division build/aot/app.dill
[+12798 ms] ===== CRASH =====
[   +1 ms] si_signo=Segmentation fault: 11(11), si_code=1, si_addr=0x28
[        ] version=2.6.0-dev.0.0.flutter-88e94994b1 (Wed Sep 11 12:00:07 2019 +0000) on "macos_simarm"
[        ] thread=775, isolate=isolate(0x7fe116011200)
[        ]   pc 0x000000010afd1970 fp 0x00007ffee4e6cc30

dart::AotCallSpecializer::TryExpandCallThroughGetter(dart::Class const&, dart::InstanceCallInstr*)
[        ]   pc 0x000000010afd0ee0 fp 0x00007ffee4e6ccf0
dart::AotCallSpecializer::VisitInstanceCall(dart::InstanceCallInstr*)
[        ]   pc 0x000000010b047199 fp 0x00007ffee4e6cd30 dart::FlowGraphVisitor::VisitBlocks()
[        ]   pc 0x000000010b0f9e32 fp 0x00007ffee4e6cd50
dart::CompilerPass_ApplyICData::DoBody(dart::CompilerPassState*) const
[        ]   pc 0x000000010b0f8d84 fp 0x00007ffee4e6cde0 dart::CompilerPass::Run(dart::CompilerPassState*) const
[        ]   pc 0x000000010b0f8fc1 fp 0x00007ffee4e6ce00
dart::CompilerPass::RunInliningPipeline(dart::CompilerPass::PipelineMode, dart::CompilerPassState*)
[        ]   pc 0x000000010b0a3280 fp 0x00007ffee4e6d2f0 dart::CallSiteInliner::TryInlining(dart::Function const&,
dart::Array const&, dart::InlinedCallData*, bool)
[        ]   pc 0x000000010b0af278 fp 0x00007ffee4e6d3d0 dart::CallSiteInliner::InlineStaticCalls()
[        ]   pc 0x000000010b0aa115 fp 0x00007ffee4e6d4e0 dart::CallSiteInliner::InlineCalls()
[        ]   pc 0x000000010b0a9d01 fp 0x00007ffee4e6d5d0 dart::FlowGraphInliner::Inline()
[        ]   pc 0x000000010b0f9fdf fp 0x00007ffee4e6d640
dart::CompilerPass_Inlining::DoBody(dart::CompilerPassState*) const
[        ]   pc 0x000000010b0f8d84 fp 0x00007ffee4e6d6d0 dart::CompilerPass::Run(dart::CompilerPassState*) const
[        ]   pc 0x000000010b0f9271 fp 0x00007ffee4e6d700
dart::CompilerPass::RunPipeline(dart::CompilerPass::PipelineMode, dart::CompilerPassState*)
[        ]   pc 0x000000010afde14e fp 0x00007ffee4e6dd00
dart::PrecompileParsedFunctionHelper::Compile(dart::CompilationPipeline*)
[        ]   pc 0x000000010afdf725 fp 0x00007ffee4e6ded0 dart::PrecompileFunctionHelper(dart::Precompiler*,
dart::CompilationPipeline*, dart::Function const&, bool)
[        ]   pc 0x000000010afdb95c fp 0x00007ffee4e6df80 dart::Precompiler::CompileFunction(dart::Precompiler*,
dart::Thread*, dart::Zone*, dart::Function const&)
[        ]   pc 0x000000010afda83d fp 0x00007ffee4e6dfe0 dart::Precompiler::ProcessFunction(dart::Function const&)
[        ]   pc 0x000000010afd7294 fp 0x00007ffee4e6e010 dart::Precompiler::Iterate()
[        ]   pc 0x000000010afd5274 fp 0x00007ffee4e6e1c0 dart::Precompiler::DoCompileAll()
[        ]   pc 0x000000010afd4ddc fp 0x00007ffee4e6e570 dart::Precompiler::CompileAll()
[        ]   pc 0x000000010b200102 fp 0x00007ffee4e6e630 Dart_Precompile
[        ]   pc 0x000000010ad939cc fp 0x00007ffee4e6e7d0 dart::bin::main(int, char**)
[        ]   pc 0x00007fff5ae163d5 fp 0x00007ffee4e6e7e0 start
[        ] -- End of DumpStackTrace
[   +1 ms] Dart snapshot generator failed with exit code -6
```
Change-Id: I609493026eeed1fbe68adc9aa52a5b872d08bca0
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/116888
Reviewed-by: Alexander Aprelev <aam@google.com>
Commit-Queue: Alexander Aprelev <aam@google.com>
2019-09-12 01:03:36 +00:00
..
aot Revert "[vm/compiler] Check def/use relation for PushArguments in environment." 2019-09-12 01:03:36 +00:00
assembler Revert Reland '[vm/ffi] Implement FFI callbacks on AOT for ELF and Asm snapshots (excl. blobs).' as it breaks flutter profile execution on ios 32-bit platform. 2019-09-12 00:10:09 +00:00
backend Revert "[vm/compiler] Check def/use relation for PushArguments in environment." 2019-09-12 01:03:36 +00:00
frontend Revert Reland '[vm/ffi] Implement FFI callbacks on AOT for ELF and Asm snapshots (excl. blobs).' as it breaks flutter profile execution on ios 32-bit platform. 2019-09-12 00:10:09 +00:00
jit [vm] Remove dead --load_deferred_eagerly and dependent code tracking for library prefixes. 2019-09-06 23:37:33 +00:00
asm_intrinsifier.cc [vm] Decouple intrinsifier code from runtime 2019-02-13 17:22:56 +00:00
asm_intrinsifier.h [vm] Decouple intrinsifier code from runtime 2019-02-13 17:22:56 +00:00
asm_intrinsifier_arm.cc [gardening] Always tag class_id register on arm64 in subtype test cache stub 2019-09-10 15:34:46 +00:00
asm_intrinsifier_arm64.cc [gardening] Always tag class_id register on arm64 in subtype test cache stub 2019-09-10 15:34:46 +00:00
asm_intrinsifier_dbc.cc [vm] Decouple intrinsifier code from runtime 2019-02-13 17:22:56 +00:00
asm_intrinsifier_ia32.cc [vm] Namespace constants like offsets and sizeofs to use runtime_api.h 2019-06-10 02:55:25 +00:00
asm_intrinsifier_x64.cc [vm] Namespace constants like offsets and sizeofs to use runtime_api.h 2019-06-10 02:55:25 +00:00
call_specializer.cc [gardening] Migrate most files to be implicit-bool-conversion free 2019-09-05 21:41:42 +00:00
call_specializer.h [vm, compiler] Consistently use CallTargets instead of ICData or MegamorphicCache. 2019-09-04 18:49:40 +00:00
cha.cc [vm] Free readonly header bit so it can be used for other uses. 2019-03-22 23:46:51 +00:00
cha.h [vm/compiler] Move compiler state (CHA, deopt id) from Thread to a special class 2018-09-03 16:01:24 +00:00
cha_test.cc [vm] Add missing safepoint transitions. 2018-08-28 16:40:17 +00:00
compiler_pass.cc [vm/ffi] Refactor and fix pipeline for force-optimized code. 2019-08-27 11:06:53 +00:00
compiler_pass.h [vm/ffi] Refactor and fix pipeline for force-optimized code. 2019-08-27 11:06:53 +00:00
compiler_sources.gni [vm/compiler] Add the framework for the IL deserializer. 2019-08-26 08:58:23 +00:00
compiler_state.cc [vm/ffi] Remove LocalVariable references from Allocate/CloneContext instructions 2019-07-08 17:11:34 +00:00
compiler_state.h [vm, compiler] Consistently use CallTargets instead of ICData or MegamorphicCache. 2019-09-04 18:49:40 +00:00
ffi.cc Revert Reland '[vm/ffi] Implement FFI callbacks on AOT for ELF and Asm snapshots (excl. blobs).' as it breaks flutter profile execution on ios 32-bit platform. 2019-09-12 00:10:09 +00:00
ffi.h Revert Reland '[vm/ffi] Implement FFI callbacks on AOT for ELF and Asm snapshots (excl. blobs).' as it breaks flutter profile execution on ios 32-bit platform. 2019-09-12 00:10:09 +00:00
ffi_dbc_trampoline.h Revert "Rereland "[vm/ffi] SimDBC on Arm64 Android"" 2019-07-08 21:38:48 +00:00
ffi_dbc_trampoline_x64_linux_mac.S [vm/ffi] SimDBC64 align stack frame 2019-06-13 16:26:40 +00:00
graph_intrinsifier.cc [vm/compiler] Avoid unnessary checks on 64-bit 2019-08-26 20:34:22 +00:00
graph_intrinsifier.h [vm] Decouple intrinsifier code from runtime 2019-02-13 17:22:56 +00:00
graph_intrinsifier_arm.cc [vm] Decouple intrinsifier code from runtime 2019-02-13 17:22:56 +00:00
graph_intrinsifier_arm64.cc [vm] Decouple intrinsifier code from runtime 2019-02-13 17:22:56 +00:00
graph_intrinsifier_ia32.cc [vm] Decouple intrinsifier code from runtime 2019-02-13 17:22:56 +00:00
graph_intrinsifier_x64.cc [vm] Decouple intrinsifier code from runtime 2019-02-13 17:22:56 +00:00
intrinsifier.cc [vm] Namespace constants like offsets and sizeofs to use runtime_api.h 2019-06-10 02:55:25 +00:00
intrinsifier.h [vm] Decouple intrinsifier code from runtime 2019-02-13 17:22:56 +00:00
method_recognizer.cc [vm] Repair fingerprinting of recognized methods. 2019-09-11 01:11:34 +00:00
method_recognizer.h Reland "[vm/compiler] Use pragmas instead of separately-maintained lists for inlining." 2019-07-30 13:14:57 +00:00
offsets_extractor.cc [vm] Fix gcc build. 2019-07-17 16:23:45 +00:00
README.md
recognized_methods_list.h Revert Reland '[vm/ffi] Implement FFI callbacks on AOT for ELF and Asm snapshots (excl. blobs).' as it breaks flutter profile execution on ios 32-bit platform. 2019-09-12 00:10:09 +00:00
relocation.cc [vm] Fix offset that was breaking bare_instructions_trampolines_test 2019-07-01 21:54:39 +00:00
relocation.h [vm] Fix errors compiling with GCC. 2019-04-24 23:12:45 +00:00
runtime_api.cc [gardening] Migrate most files to be implicit-bool-conversion free 2019-09-05 21:41:42 +00:00
runtime_api.h Revert Reland '[vm/ffi] Implement FFI callbacks on AOT for ELF and Asm snapshots (excl. blobs).' as it breaks flutter profile execution on ios 32-bit platform. 2019-09-12 00:10:09 +00:00
runtime_offsets_extracted.h [vm/concurrency] Move all information except for the class pointers out of [ClassTable] into [SharedClassTable] 2019-09-10 12:48:16 +00:00
runtime_offsets_list.h [vm/concurrency] Move all information except for the class pointers out of [ClassTable] into [SharedClassTable] 2019-09-10 12:48:16 +00:00
stub_code_compiler.h Reland "[vm/ffi] Dispatch native callbacks through trampolines if we can't ensure callbacks will always be executable." 2019-08-21 13:33:37 +00:00
stub_code_compiler_arm.cc [vm] Make v8_snapshot_profile_writer_test less flaky and avoid user error with crossword config. 2019-08-29 12:03:43 +00:00
stub_code_compiler_arm64.cc [gardening] Always tag class_id register on arm64 in subtype test cache stub 2019-09-10 15:34:46 +00:00
stub_code_compiler_dbc.cc Reland "[vm] Decouple stub code from runtime" 2019-02-12 13:52:28 +00:00
stub_code_compiler_ia32.cc Reland "[vm/ffi] Dispatch native callbacks through trampolines if we can't ensure callbacks will always be executable." 2019-08-21 13:33:37 +00:00
stub_code_compiler_x64.cc [vm/concurrency] Move all information except for the class pointers out of [ClassTable] into [SharedClassTable] 2019-09-10 12:48:16 +00:00

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.