dart-sdk/runtime/vm/compiler
Martin Kustermann 142e15c2af [vm/compiler] Use unboxed index/length for GenericCheckBoundInstr on 64-bit architectures
flutter-release:

  * flutter_app_so_size: -0.47%
  * flutter_app_so_brotli_size: -0.48%
  * flutter_app_so_gzip_size: -0.57%

flutter-release-sizeopt:

  * flutter_app_so_size: -0.45%
  * flutter_app_so_brotli_size: -0.64%
  * flutter_app_so_gzip_size: -0.65%

Issue https://github.com/dart-lang/sdk/issues/32165

Change-Id: If63b71e5d52f6ddb55fe05668a6480eb00a13303
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/150300
Commit-Queue: Martin Kustermann <kustermann@google.com>
Reviewed-by: Alexander Markov <alexmarkov@google.com>
2020-06-22 19:55:36 +00:00
..
aot Reland "[VM/nnbd] Canonicalize TypeParameter objects in the VM." 2020-06-11 00:44:05 +00:00
api [vm/compiler] Split compiler sources out of normal VM sources. 2020-04-16 22:59:03 +00:00
assembler [vm, gardening] Initialize target array in movs tests to satisfy msan. 2020-06-12 12:03:02 +00:00
backend [vm/compiler] Use unboxed index/length for GenericCheckBoundInstr on 64-bit architectures 2020-06-22 19:55:36 +00:00
ffi [vm/ffi] Convert Objects to Dart_Handles in FFI calls 2020-06-12 11:14:22 +00:00
frontend [vm/nnbd] Non-null assertions in NNBD weak mode 2020-06-18 20:02:42 +00:00
jit Remove divisive terms 2020-06-17 14:01:54 +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] Optimize lazy field initialization 2020-06-01 21:28:18 +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 extra call specialization pass during inlining 2020-06-18 15:46:40 +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] IL instruction for UTF-8 scan. 2020-06-08 15:03:34 +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/ffi] Convert Objects to Dart_Handles in FFI calls 2020-06-12 11:14:22 +00:00
README.md
recognized_methods_list.h Reland "[vm] MemoryCopy instruction for copying between typed data and strings." 2020-06-11 12:29:19 +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/ffi] Convert Objects to Dart_Handles in FFI calls 2020-06-12 11:14:22 +00:00
runtime_api.h [vm/ffi] Convert Objects to Dart_Handles in FFI calls 2020-06-12 11:14:22 +00:00
runtime_offsets_extracted.h Reland "[vm] Check prefix.loadLibrary is called and returns before prefix members are used." 2020-06-16 21:11:40 +00:00
runtime_offsets_list.h [vm/ffi] Convert Objects to Dart_Handles in FFI calls 2020-06-12 11:14:22 +00:00
stub_code_compiler.cc [vm/compiler] Use unboxed index/length for GenericCheckBoundInstr on 64-bit architectures 2020-06-22 19:55:36 +00:00
stub_code_compiler.h [vm/compiler] Use unboxed index/length for GenericCheckBoundInstr on 64-bit architectures 2020-06-22 19:55:36 +00:00
stub_code_compiler_arm.cc [vm/compiler] Use unboxed index/length for GenericCheckBoundInstr on 64-bit architectures 2020-06-22 19:55:36 +00:00
stub_code_compiler_arm64.cc [vm/compiler] Use unboxed index/length for GenericCheckBoundInstr on 64-bit architectures 2020-06-22 19:55:36 +00:00
stub_code_compiler_ia32.cc [vm/ffi] Convert Objects to Dart_Handles in FFI calls 2020-06-12 11:14:22 +00:00
stub_code_compiler_x64.cc [vm/compiler] Use unboxed index/length for GenericCheckBoundInstr on 64-bit architectures 2020-06-22 19:55:36 +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/ffi] Convert Objects to Dart_Handles in FFI calls 2020-06-12 11:14:22 +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/nnbd] Support NNBD weak mode in vm/cc tests 2020-06-02 20:40:03 +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.