dart-sdk/runtime/vm/compiler
Alexander Markov 4f3293c70e [vm/compiler] Recognize List.filled factory
Recognized factories have known result type and its type arguments
and length are automatically forwarded (length is forwarded only for
fixed-size lists).

List.filled factory is recognized only if optional 'growable' parameter
is not passed.

Fixes https://github.com/dart-lang/sdk/issues/42019

Change-Id: I0d63428f1c4667f3981447a939dbef67170e542e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/149385
Reviewed-by: Ryan Macnak <rmacnak@google.com>
Commit-Queue: Alexander Markov <alexmarkov@google.com>
2020-05-29 03:12:48 +00:00
..
aot [vm/aot] Clean static fields handling in precompiler.cc 2020-05-27 10:22:19 +00:00
api [vm/compiler] Split compiler sources out of normal VM sources. 2020-04-16 22:59:03 +00:00
assembler [vm/concurrency] Move locks up from Isolate to IsolateGroup 2020-05-27 17:04:30 +00:00
backend [vm/compiler] Recognize List.filled factory 2020-05-29 03:12:48 +00:00
ffi [vm] Fix gcc build. 2020-05-04 21:15:27 +00:00
frontend [vm] Check prefix.loadLibrary is called and returns before prefix members are used. 2020-05-28 23:13:12 +00:00
jit [vm/compiler] Include linear scan tracing code in release builds 2020-05-11 20:24:49 +00:00
asm_intrinsifier.cc [vm/compiler] Add check to prevent inclusion of compiler headers into AOT runtime 2020-04-17 13:11:08 +00:00
asm_intrinsifier.h [vm/compiler] Add check to prevent inclusion of compiler headers into AOT runtime 2020-04-17 13:11:08 +00:00
asm_intrinsifier_arm.cc [vm] Add _allocate and _setAt methods to _TwoByteString. 2020-05-12 17:33:50 +00:00
asm_intrinsifier_arm64.cc [vm] Add _allocate and _setAt methods to _TwoByteString. 2020-05-12 17:33:50 +00:00
asm_intrinsifier_ia32.cc [vm] Add _allocate and _setAt methods to _TwoByteString. 2020-05-12 17:33:50 +00:00
asm_intrinsifier_x64.cc [vm] Add _allocate and _setAt methods to _TwoByteString. 2020-05-12 17:33:50 +00:00
call_specializer.cc [vm/compiler] Fix code determining if object can be a smi in LoadClassId. 2020-05-27 10:06:49 +00:00
call_specializer.h [vm] Represent tagged pointers as C++ value types instead of C++ pointer types. 2020-04-25 05:21:27 +00:00
cha.cc [vm/compiler] Add check to prevent inclusion of compiler headers into AOT runtime 2020-04-17 13:11:08 +00:00
cha.h [vm/compiler] Add check to prevent inclusion of compiler headers into AOT runtime 2020-04-17 13:11:08 +00:00
cha_test.cc [vm] Add missing safepoint transitions. 2018-08-28 16:40:17 +00:00
compiler_pass.cc [vm/compiler] Add check to prevent inclusion of compiler headers into AOT runtime 2020-04-17 13:11:08 +00:00
compiler_pass.h [vm/compiler] Add check to prevent inclusion of compiler headers into AOT runtime 2020-04-17 13:11:08 +00:00
compiler_sources.gni [vm/compiler] Use PC-relative calls in AssertAssignable when calling TTS 2020-04-18 20:27:38 +00:00
compiler_state.cc [vm/compiler] Fix code determining if object can be a smi in LoadClassId. 2020-05-27 10:06:49 +00:00
compiler_state.h [vm/compiler] Fix code determining if object can be a smi in LoadClassId. 2020-05-27 10:06:49 +00:00
graph_intrinsifier.cc [vm] Cleanup flags which disable argument type checks and strong mode types 2020-05-08 15:53:09 +00:00
graph_intrinsifier.h [vm/compiler] Add check to prevent inclusion of compiler headers into AOT runtime 2020-04-17 13:11:08 +00:00
graph_intrinsifier_arm.cc [vm/compiler] Add check to prevent inclusion of compiler headers into AOT runtime 2020-04-17 13:11:08 +00:00
graph_intrinsifier_arm64.cc [vm/compiler] Add check to prevent inclusion of compiler headers into AOT runtime 2020-04-17 13:11:08 +00:00
graph_intrinsifier_ia32.cc [vm/compiler] Add check to prevent inclusion of compiler headers into AOT runtime 2020-04-17 13:11:08 +00:00
graph_intrinsifier_x64.cc [vm/compiler] Add check to prevent inclusion of compiler headers into AOT runtime 2020-04-17 13:11:08 +00:00
intrinsifier.cc [vm] Add _allocate and _setAt methods to _TwoByteString. 2020-05-12 17:33:50 +00:00
intrinsifier.h [vm/compiler] Add check to prevent inclusion of compiler headers into AOT runtime 2020-04-17 13:11:08 +00:00
method_recognizer.cc [vm/compiler] Recognize List.filled factory 2020-05-29 03:12:48 +00:00
method_recognizer.h [vm] Represent tagged pointers as C++ value types instead of C++ pointer types. 2020-04-25 05:21:27 +00:00
offsets_extractor.cc [vm] Represent tagged pointers as C++ value types instead of C++ pointer types. 2020-04-25 05:21:27 +00:00
README.md
recognized_methods_list.h [vm] Add _allocate and _setAt methods to _TwoByteString. 2020-05-12 17:33:50 +00:00
relocation.cc [vm] Fix crash in disassembler on trampolines 2020-05-26 17:31:58 +00:00
relocation.h [vm] Represent tagged pointers as C++ value types instead of C++ pointer types. 2020-04-25 05:21:27 +00:00
runtime_api.cc [vm/nnbd] NNBD-related fixes for bytecode mode 2020-05-08 22:10:06 +00:00
runtime_api.h [vm/nnbd] NNBD-related fixes for bytecode mode 2020-05-08 22:10:06 +00:00
runtime_offsets_extracted.h [vm] Check prefix.loadLibrary is called and returns before prefix members are used. 2020-05-28 23:13:12 +00:00
runtime_offsets_list.h [vm, gc] Rename HeapPage to OldPage for symmetry. 2020-05-08 18:28:06 +00:00
stub_code_compiler.cc [vm/nnbd] NNBD-related fixes for bytecode mode 2020-05-08 22:10:06 +00:00
stub_code_compiler.h [vm] Move megamorphic miss handling into the megamorphic call stub. 2020-05-15 20:28:21 +00:00
stub_code_compiler_arm.cc [vm/concurrency] Move locks up from Isolate to IsolateGroup 2020-05-27 17:04:30 +00:00
stub_code_compiler_arm64.cc [vm/concurrency] Move locks up from Isolate to IsolateGroup 2020-05-27 17:04:30 +00:00
stub_code_compiler_ia32.cc [vm/concurrency] Move locks up from Isolate to IsolateGroup 2020-05-27 17:04:30 +00:00
stub_code_compiler_x64.cc [vm/concurrency] Move locks up from Isolate to IsolateGroup 2020-05-27 17:04:30 +00:00
type_testing_stubs_arm.cc [vm/compiler] Use PC-relative calls in AssertAssignable when calling TTS 2020-04-18 20:27:38 +00:00
type_testing_stubs_arm64.cc [vm/compiler] Use PC-relative calls in AssertAssignable when calling TTS 2020-04-18 20:27:38 +00:00
type_testing_stubs_x64.cc [vm/compiler] Use PC-relative calls in AssertAssignable when calling TTS 2020-04-18 20:27:38 +00:00
write_barrier_elimination.cc [vm] Represent tagged pointers as C++ value types instead of C++ pointer types. 2020-04-25 05:21:27 +00:00
write_barrier_elimination.h [vm/compiler] Add check to prevent inclusion of compiler headers into AOT runtime 2020-04-17 13:11:08 +00:00
write_barrier_elimination_test.cc [ VM ] Migrate VM tests to support null safety and return errors from Dart_GetType and Dart_NewListOf when --null-safety is enabled 2020-05-26 22:40:52 +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.