mirror of
https://github.com/dart-lang/sdk
synced 2024-10-14 10:18:13 +00:00
[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:
parent
a1a942f960
commit
ed2899ea4a
|
@ -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() {
|
||||
|
|
Loading…
Reference in a new issue