dart-sdk/benchmarks
Clement Skau 4d5055805f [VM/FFI] Adds FFI leaf calls.
This CL adds FFI leaf calls by adding `lookupFunction(.., isLeaf)`
and `_asFunctionInternal(.., isLeaf)`, which generate FFI leaf calls.
These calls skip a lot of the usual frame building and generated <->
native transition overhead.

`benchmark/FfiCall/` shows a 1.1x - 4.3x speed-up between the regular
FFI calls and their leaf call counterparts (JIT, x64, release).

TEST=Adds `tests/ffi{,_2}/vmspecific_leaf_call_test.dart`. Tested FFI tests.

Closes: https://github.com/dart-lang/sdk/issues/36707
Cq-Include-Trybots: luci.dart.try:vm-precomp-ffi-qemu-linux-release-arm-try,vm-ffi-android-release-arm64-try,vm-ffi-android-release-arm-try,vm-ffi-android-product-arm64-try,vm-ffi-android-product-arm-try,vm-ffi-android-debug-arm64-try,vm-ffi-android-debug-arm-try,vm-kernel-linux-debug-ia32-try,vm-kernel-win-debug-ia32-try,vm-kernel-win-debug-x64-try,vm-kernel-win-release-x64-try,vm-kernel-mac-debug-x64-try,vm-kernel-precomp-nnbd-mac-release-simarm64-try,vm-kernel-precomp-android-release-arm64-try,vm-kernel-precomp-asan-linux-release-x64-try,vm-kernel-precomp-linux-release-simarm_x64-try,vm-kernel-precomp-obfuscate-linux-release-x64-try,vm-kernel-precomp-ubsan-linux-release-x64-try,vm-kernel-precomp-tsan-linux-release-x64-try,vm-kernel-precomp-win-release-x64-try,vm-precomp-ffi-qemu-linux-release-arm-try,vm-kernel-reload-rollback-linux-debug-x64-try,vm-kernel-reload-linux-debug-x64-try
Bug: https://github.com/dart-lang/sdk/issues/36707
Change-Id: Id8824f36b0006bf09951207bd004356fe6e9f46e
Cq-Do-Not-Cancel-Tryjobs: true
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/179768
Commit-Queue: Clement Skau <cskau@google.com>
Reviewed-by: Daco Harkes <dacoharkes@google.com>
Reviewed-by: Martin Kustermann <kustermann@google.com>
2021-05-21 11:12:02 +00:00
..
BigIntParsePrint [benchmark] BigIntParsePrint: fix lints 2021-01-11 17:42:06 +00:00
Calls [benchmark] Add language version comments to benchmarks. 2020-10-13 01:43:22 +00:00
Dynamic [benchmark] Add language version comments to benchmarks. 2020-10-13 01:43:22 +00:00
EventLoopLatencyJson [vm] Change EventLoopLatency benchmark to use RunTimeRaw latency 2020-10-23 18:31:01 +00:00
EventLoopLatencyJson350KB [vm/concurrency] Add EventLoopLatencyJson350KB bechmark 2020-10-28 16:28:38 +00:00
Example [benchmark] Add language version comments to benchmarks. 2020-10-13 01:43:22 +00:00
FfiBoringssl Reland "[vm/ffi] Roll package:ffi to Allocator and Opaque" 2021-02-10 10:19:28 +00:00
FfiCall [VM/FFI] Adds FFI leaf calls. 2021-05-21 11:12:02 +00:00
FfiMemory [vm/ffi] Exercise unaligned reads/writes 2021-03-16 20:17:31 +00:00
FfiStruct Reland "[vm/ffi] Roll package:ffi to Allocator and Opaque" 2021-02-10 10:19:28 +00:00
Isolate [benchmark] Add language version comments to benchmarks. 2020-10-13 01:43:22 +00:00
IsolateJson [benchmark] Add language version comments to benchmarks. 2020-10-13 01:43:22 +00:00
IsolateSpawn [benchmark] Add language version comments to benchmarks. 2020-10-13 01:43:22 +00:00
IsolateSpawnMemory [benchmark] Add language version comments to benchmarks. 2020-10-13 01:43:22 +00:00
ListCopy [benchmark] Add language version comments to benchmarks. 2020-10-13 01:43:22 +00:00
MD5 [benchmark] Add language version comments to benchmarks. 2020-10-13 01:43:22 +00:00
Omnibus [benchmarks] Fix lints in Omnibus benchmarks 2021-04-23 20:11:52 +00:00
OmnibusDeferred [benchmarks] Fix lints in Omnibus benchmarks 2021-04-23 20:11:52 +00:00
Richards [benchmarks] Move Richards from internal benchmarks to SDK benchmarks 2021-04-15 22:29:07 +00:00
RuntimeType [benchmark] Add language version comments to benchmarks. 2020-10-13 01:43:22 +00:00
SHA1 [benchmark] Add language version comments to benchmarks. 2020-10-13 01:43:22 +00:00
SHA256 [benchmark] Add language version comments to benchmarks. 2020-10-13 01:43:22 +00:00
SkeletalAnimation [benchmark] Add language version comments to benchmarks. 2020-10-13 01:43:22 +00:00
SkeletalAnimationSIMD [benchmark] Add language version comments to benchmarks. 2020-10-13 01:43:22 +00:00
SoundSplayTreeSieve [benchmark] Add language version comments to benchmarks. 2020-10-13 01:43:22 +00:00
TypedDataDuplicate [benchmark] Add language version comments to benchmarks. 2020-10-13 01:43:22 +00:00
Utf8Decode [benchmark] Add language version comments to benchmarks. 2020-10-13 01:43:22 +00:00
Utf8Encode [benchmark] Add language version comments to benchmarks. 2020-10-13 01:43:22 +00:00
analysis_options.yaml Roll benchmarks-internal to 02695da98bcf006b95630d3c386f4169d7ec4ecf 2020-06-26 01:56:03 +00:00