dart-sdk/runtime
Alexander Markov b9dfd1a651 [vm] Specialize allocation for small records
This change introduces specialized stubs and IL instruction for
allocating records with 2 or 3 fields. This makes allocation of
small records slightly faster compared to a construction of similar
class instances and makes code size of record allocation smaller.

Benchmark:
MultipleReturns.NotInlined.Record(RunTime) 77150 -> 66222
MultipleReturns.NotInlined.RecordNamed(RunTime) 78073 -> 67044
MultipleReturns.Forwarded.Record(RunTime) 97130 -> 77635
MultipleReturns.Forwarded.RecordNamed(RunTime) 96495 -> 77904

TEST=ci

Issue: https://github.com/dart-lang/sdk/issues/49719
Change-Id: I8ed7add06b39ba79dfd78bbe2afaefe606cc505b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/266420
Commit-Queue: Alexander Markov <alexmarkov@google.com>
Reviewed-by: Slava Egorov <vegorov@google.com>
2022-11-03 15:06:35 +00:00
..
bin [vm/ffi] FfiNative process lookup 2022-10-25 10:57:07 +00:00
docs [vm/inliner] Tweak inlining heuristic, improve List.of inlining. 2022-08-15 21:14:36 +00:00
include [vm] Rename Dart_NotifyDetach to Dart_NotifyDestroyed. 2022-10-17 18:23:59 +00:00
lib [vm/ffi] FfiNative process lookup 2022-10-25 10:57:07 +00:00
observatory [vm, service] Include Smis in heap snapshots. 2022-10-26 16:04:29 +00:00
observatory_2 [vm, service] Include Smis in heap snapshots. 2022-10-26 16:04:29 +00:00
platform [vm, gc] Extend alignment helpers to work with alignment offsets. 2022-10-06 00:50:45 +00:00
tests [tests] Migrate away from native 2022-10-28 09:16:40 +00:00
third_party [build] Switch builds to the ninja in DEPS 2022-09-27 11:24:03 +00:00
tools [graphexplorer] Rename bounds variables for successor and predecessor iteration. 2022-10-28 20:07:24 +00:00
vm [vm] Specialize allocation for small records 2022-11-03 15:06:35 +00:00
.clang-tidy
.gitignore
BUILD.gn [vm/ffi] FfiNative process lookup 2022-10-25 10:57:07 +00:00
codereview.settings
configs.gni [vm/ffi] FfiNative process lookup 2022-10-25 10:57:07 +00:00
CPPLINT.cfg
OWNERS [infra] Add OWNERS to the Dart SDK 2022-02-14 14:06:34 +00:00
PRESUBMIT.py [python3] Migrate PRESUBMIT.py files 2021-08-16 08:29:54 +00:00
runtime_args.gni [VM] error: ‘mallinfo mallinfo()’ is deprecated 2021-12-08 00:25:10 +00:00