dart-sdk/benchmarks
Martin Kustermann af1b5b8044 [dart2wasm] Switch binaryen optimization levels from -O3 to -Os
We want dart2wasm be comparable to dart2js / dart2aot, the ladder two
are much more conservative with inlining compared to current dart2wasm.

The -O3 is described in the binaryen sources as agressive for
performance and therefore willing to compromise code size.

The -Os is more nuanced: It will perform many optimizations that are
done in -O3 (and e.g. not in -O2) but it will make inlining less
agressive.

This reduces flute compile-time by 10% and code size by 10%
This benchmark results are mixed (some things get faster, some things
slower). Naturally there'll be specialized micro benchmarks that
get hit hard by this.

Where performance matters we should rather make dart2wasm use better
inlining heuristics and annotate code with
`@pragma('wasm:prefer-inline')`

Change-Id: Idf7e75e4e385629c9cec66359efe0afe50db3e72
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/352523
Reviewed-by: Slava Egorov <vegorov@google.com>
Commit-Queue: Martin Kustermann <kustermann@google.com>
2024-02-14 13:45:13 +00:00
..
AsyncLiveVars [dart2wasm] Switch binaryen optimization levels from -O3 to -Os 2024-02-14 13:45:13 +00:00
BigIntParsePrint Spelling sdk 2023-01-20 12:37:49 +00:00
Calls [dart2wasm] Switch binaryen optimization levels from -O3 to -Os 2024-02-14 13:45:13 +00:00
DartCLIStartup
Dynamic [dart2wasm] Switch binaryen optimization levels from -O3 to -Os 2024-02-14 13:45:13 +00:00
EventLoopLatencyJson Fix analysis issues in benchmarks/ directory 2023-05-17 09:14:50 +00:00
EventLoopLatencyJson350KB Fix analysis issues in benchmarks/ directory 2023-05-17 09:14:50 +00:00
EventLoopLatencyRegexp Fix analysis issues in benchmarks/ directory 2023-05-17 09:14:50 +00:00
Example Spelling benchmarks 2022-12-20 12:36:37 +00:00
FfiAsTypedList/dart [benchmarks/ffi] Cleanup benchmarks 2023-05-09 09:50:24 +00:00
FfiBoringssl [benchmarks/ffi] Cleanup benchmarks 2023-05-09 09:50:24 +00:00
FfiCall Revert "[ffi]: Remove pointer elementAt method." 2024-01-22 12:20:48 +00:00
FfiMemory/dart [benchmarks/ffi] Cleanup benchmarks 2023-05-09 09:50:24 +00:00
FfiStruct [benchmarks/ffi] Cleanup benchmarks 2023-05-09 09:50:24 +00:00
FfiStructCopy [benchmarks] Add verbose flag to FfiStructCopy benchmark suite. 2023-08-08 11:59:29 +00:00
FileIOSink/dart Await the benchmark reports 2023-03-08 22:38:21 +00:00
ForEachLoop [benchmarks] Publish some more Dart benchmarks 2023-09-04 15:57:53 +00:00
ForInGeneratedLoop [benchmarks] Publish some more Dart benchmarks 2023-09-04 15:57:53 +00:00
ForInLoop [benchmarks] Publish some more Dart benchmarks 2023-09-04 15:57:53 +00:00
ForLoop [benchmarks] Publish some more Dart benchmarks 2023-09-04 15:57:53 +00:00
InstantiateTypeArgs [dart2wasm] Switch binaryen optimization levels from -O3 to -Os 2024-02-14 13:45:13 +00:00
IntegerSetLookup Fix analysis issues in benchmarks/ directory 2023-05-17 09:14:50 +00:00
Isolate
IsolateBaseOverhead
IsolateFibonacci
IsolateJson [benchmarks] Remove unnecessary utf8.encode() as Uint8List downcast 2023-08-21 08:21:37 +00:00
IsolateRegExp/dart Fix analysis issues in benchmarks/ directory 2023-05-17 09:14:50 +00:00
IsolateSendExitLatency Fix analysis issues in benchmarks/ directory 2023-05-17 09:14:50 +00:00
IsolateSpawn [benchmarks] Use gen_kernel instead of dart2js for isolate group benchmarks. 2022-11-21 22:25:59 +00:00
IsolateSpawnMemory Trivial cleanup to make VSCode workspace for the SDK 2023-11-07 17:49:53 +00:00
Iterators [dart2wasm] Switch binaryen optimization levels from -O3 to -Os 2024-02-14 13:45:13 +00:00
ListCopy
LongStringCompare/dart Trivial cleanup to make VSCode workspace for the SDK 2023-11-07 17:49:53 +00:00
MapCopy
MapLookup
MD5 [benchmarks] Update legacy benchmarks to use the List.filled constructor 2023-05-22 14:14:42 +00:00
MemoryCopy/dart [benchmarks] Change the MemoryCopy memcpy benchmarks to use memmove. 2023-08-11 13:17:17 +00:00
MultipleReturns/dart [dart2wasm] Switch binaryen optimization levels from -O3 to -Os 2024-02-14 13:45:13 +00:00
NativeCall Fix analysis issues in benchmarks/ directory 2023-05-17 09:14:50 +00:00
ObjectHash Fix analysis issues in benchmarks/ directory 2023-05-17 09:14:50 +00:00
Omnibus Fix analysis issues in benchmarks/ directory 2023-05-17 09:14:50 +00:00
OmnibusDeferred Fix analysis issues in benchmarks/ directory 2023-05-17 09:14:50 +00:00
RecordCollections/dart [dart2wasm] Switch binaryen optimization levels from -O3 to -Os 2024-02-14 13:45:13 +00:00
Richards [benchmarks] Update legacy benchmarks to use the List.filled constructor 2023-05-22 14:14:42 +00:00
RuntimeType
SDKArtifactSizes [benchmark] Rename dds to dds_aot in SDKArtifactSizes. 2023-10-27 12:23:23 +00:00
SendPort
SHA1 [benchmarks] Update legacy benchmarks to use the List.filled constructor 2023-05-22 14:14:42 +00:00
SHA256 [benchmarks] Update legacy benchmarks to use the List.filled constructor 2023-05-22 14:14:42 +00:00
SkeletalAnimation
SkeletalAnimationSIMD
SoundSplayTreeSieve Fix analysis issues in benchmarks/ directory 2023-05-17 09:14:50 +00:00
Startup [benchmarks] Use gen_kernel instead of dart2js for isolate group benchmarks. 2022-11-21 22:25:59 +00:00
StringPool
SubtypeTestCache [dart2wasm] Switch binaryen optimization levels from -O3 to -Os 2024-02-14 13:45:13 +00:00
SwitchFSM/dart Trivial cleanup to make VSCode workspace for the SDK 2023-11-07 17:49:53 +00:00
TearOff/dart [dart2wasm] Switch binaryen optimization levels from -O3 to -Os 2024-02-14 13:45:13 +00:00
TypedData Trivial cleanup to make VSCode workspace for the SDK 2023-11-07 17:49:53 +00:00
TypedDataCopy Trivial cleanup to make VSCode workspace for the SDK 2023-11-07 17:49:53 +00:00
TypedDataDuplicate
TypedDataPoly/dart [dart2wasm] Switch binaryen optimization levels from -O3 to -Os 2024-02-14 13:45:13 +00:00
TypeLiteral/dart [dart2wasm] Switch binaryen optimization levels from -O3 to -Os 2024-02-14 13:45:13 +00:00
UiMatrix/dart Trivial cleanup to make VSCode workspace for the SDK 2023-11-07 17:49:53 +00:00
Utf8Decode [benchmarks] Remove unnecessary utf8.encode() as Uint8List downcast 2023-08-21 08:21:37 +00:00
Utf8DecodeComplex/dart [benchmark] Utf8Decode chunked and polymorphic benchmark 2023-11-15 18:21:23 +00:00
Utf8Encode [benchmarks] Update legacy benchmarks to use the List.filled constructor 2023-05-22 14:14:42 +00:00
analysis_options.yaml linter: Remove two deprecated linter rules 2023-11-09 17:03:15 +00:00
OWNERS