[vm] Don't unroll initialization code based on macro lists.

-30k (-0.07%) out/ReleaseX64/exe.stripped/dart
-29k (-0.25%) out/ReleaseX64/exe.stripped/dart_precompiled_runtime

TEST=ci
Change-Id: I7c05705ada10dcaa388d9c8a8abd4edd9495cdc0
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/273009
Reviewed-by: Alexander Aprelev <aam@google.com>
Commit-Queue: Ryan Macnak <rmacnak@google.com>
This commit is contained in:
Ryan Macnak 2022-12-02 18:45:03 +00:00 committed by Commit Queue
parent a1a942f960
commit ed2899ea4a

View file

@ -299,13 +299,13 @@ bool is_compressed_pointer() {
}
void OffsetsTable::Init() {
static const OffsetsTable::OffsetsTableEntry table[] {
#define DEFINE_OFFSETS_TABLE_ENTRY(class_name, field_name) \
field_offsets_table.Add( \
{class_name::kClassId, #field_name, \
is_compressed_pointer<decltype(Untagged##class_name::field_name)>(), \
OFFSET_OF(Untagged##class_name, field_name)});
{class_name::kClassId, #field_name, \
is_compressed_pointer<decltype(Untagged##class_name::field_name)>(), \
OFFSET_OF(Untagged##class_name, field_name)},
COMMON_CLASSES_AND_FIELDS(DEFINE_OFFSETS_TABLE_ENTRY)
COMMON_CLASSES_AND_FIELDS(DEFINE_OFFSETS_TABLE_ENTRY)
#if !defined(PRODUCT)
NON_PRODUCT_CLASSES_AND_FIELDS(DEFINE_OFFSETS_TABLE_ENTRY)
#endif
@ -327,6 +327,11 @@ void OffsetsTable::Init() {
#endif
#undef DEFINE_OFFSETS_TABLE_ENTRY
};
for (const OffsetsTableEntry& entry : table) {
field_offsets_table.Add(entry);
}
}
void OffsetsTable::Cleanup() {