[vm] Function::packed_fields is not used in AOT.

flutter_gallery
Isolate(CodeSize): 2199986 -> 2181807 (-0.83%)
  Total(CodeSize): 7312019 -> 7293839 (-0.25%)

TEST=ci
Change-Id: I5f71df4f0020b7702162fd44b5c0f1a9ce4c143f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/243563
Commit-Queue: Ryan Macnak <rmacnak@google.com>
Reviewed-by: Alexander Aprelev <aam@google.com>
This commit is contained in:
Ryan Macnak 2022-05-05 22:36:56 +00:00 committed by Commit Bot
parent d437877c50
commit 322410e5cd
8 changed files with 26 additions and 75 deletions

View file

@ -1030,9 +1030,9 @@ class FunctionSerializationCluster : public SerializationCluster {
s->WriteTokenPosition(func->untag()->token_pos_);
s->WriteTokenPosition(func->untag()->end_token_pos_);
s->Write<uint32_t>(func->untag()->kernel_offset_);
s->Write<uint32_t>(func->untag()->packed_fields_);
}
s->Write<uint32_t>(func->untag()->packed_fields_);
s->Write<uint32_t>(func->untag()->kind_tag_);
}
}
@ -1192,8 +1192,8 @@ class FunctionDeserializationCluster : public DeserializationCluster {
func->untag()->end_token_pos_ = d.ReadTokenPosition();
func->untag()->kernel_offset_ = d.Read<uint32_t>();
func->untag()->unboxed_parameters_info_.Reset();
#endif
func->untag()->packed_fields_ = d.Read<uint32_t>();
#endif
func->untag()->kind_tag_ = d.Read<uint32_t>();
#if !defined(DART_PRECOMPILED_RUNTIME)
func->untag()->usage_counter_ = 0;

View file

@ -177,7 +177,6 @@ NONNULLABLE_BOXED_NATIVE_SLOTS_LIST(FOR_EACH_NATIVE_SLOT)
V(FinalizerEntry, UntaggedFinalizerEntry, external_size, IntPtr, VAR) \
V(Function, UntaggedFunction, entry_point, Uword, FINAL) \
V(Function, UntaggedFunction, kind_tag, Uint32, FINAL) \
V(Function, UntaggedFunction, packed_fields, Uint32, FINAL) \
V(FunctionType, UntaggedFunctionType, packed_parameter_counts, Uint32, \
FINAL) \
V(FunctionType, UntaggedFunctionType, packed_type_parameter_counts, Uint16, \

View file

@ -508,7 +508,6 @@ class Function : public AllStatic {
static word data_offset();
static word entry_point_offset(CodeEntryKind kind = CodeEntryKind::kNormal);
static word kind_tag_offset();
static word packed_fields_offset();
static word signature_offset();
static word usage_counter_offset();
static word InstanceSize();

View file

@ -161,8 +161,6 @@ static constexpr dart::compiler::target::word Function_data_offset = 24;
static constexpr dart::compiler::target::word Function_entry_point_offset[] = {
4, 8};
static constexpr dart::compiler::target::word Function_kind_tag_offset = 64;
static constexpr dart::compiler::target::word Function_packed_fields_offset =
83;
static constexpr dart::compiler::target::word Function_signature_offset = 20;
static constexpr dart::compiler::target::word FutureOr_type_arguments_offset =
4;
@ -782,8 +780,6 @@ static constexpr dart::compiler::target::word Function_data_offset = 48;
static constexpr dart::compiler::target::word Function_entry_point_offset[] = {
8, 16};
static constexpr dart::compiler::target::word Function_kind_tag_offset = 104;
static constexpr dart::compiler::target::word Function_packed_fields_offset =
123;
static constexpr dart::compiler::target::word Function_signature_offset = 40;
static constexpr dart::compiler::target::word FutureOr_type_arguments_offset =
8;
@ -1408,8 +1404,6 @@ static constexpr dart::compiler::target::word Function_data_offset = 24;
static constexpr dart::compiler::target::word Function_entry_point_offset[] = {
4, 8};
static constexpr dart::compiler::target::word Function_kind_tag_offset = 64;
static constexpr dart::compiler::target::word Function_packed_fields_offset =
83;
static constexpr dart::compiler::target::word Function_signature_offset = 20;
static constexpr dart::compiler::target::word FutureOr_type_arguments_offset =
4;
@ -2026,8 +2020,6 @@ static constexpr dart::compiler::target::word Function_data_offset = 48;
static constexpr dart::compiler::target::word Function_entry_point_offset[] = {
8, 16};
static constexpr dart::compiler::target::word Function_kind_tag_offset = 104;
static constexpr dart::compiler::target::word Function_packed_fields_offset =
123;
static constexpr dart::compiler::target::word Function_signature_offset = 40;
static constexpr dart::compiler::target::word FutureOr_type_arguments_offset =
8;
@ -2653,8 +2645,6 @@ static constexpr dart::compiler::target::word Function_data_offset = 36;
static constexpr dart::compiler::target::word Function_entry_point_offset[] = {
8, 16};
static constexpr dart::compiler::target::word Function_kind_tag_offset = 72;
static constexpr dart::compiler::target::word Function_packed_fields_offset =
91;
static constexpr dart::compiler::target::word Function_signature_offset = 32;
static constexpr dart::compiler::target::word FutureOr_type_arguments_offset =
8;
@ -3279,8 +3269,6 @@ static constexpr dart::compiler::target::word Function_data_offset = 36;
static constexpr dart::compiler::target::word Function_entry_point_offset[] = {
8, 16};
static constexpr dart::compiler::target::word Function_kind_tag_offset = 72;
static constexpr dart::compiler::target::word Function_packed_fields_offset =
91;
static constexpr dart::compiler::target::word Function_signature_offset = 32;
static constexpr dart::compiler::target::word FutureOr_type_arguments_offset =
8;
@ -3906,8 +3894,6 @@ static constexpr dart::compiler::target::word Function_data_offset = 24;
static constexpr dart::compiler::target::word Function_entry_point_offset[] = {
4, 8};
static constexpr dart::compiler::target::word Function_kind_tag_offset = 64;
static constexpr dart::compiler::target::word Function_packed_fields_offset =
83;
static constexpr dart::compiler::target::word Function_signature_offset = 20;
static constexpr dart::compiler::target::word FutureOr_type_arguments_offset =
4;
@ -4529,8 +4515,6 @@ static constexpr dart::compiler::target::word Function_data_offset = 48;
static constexpr dart::compiler::target::word Function_entry_point_offset[] = {
8, 16};
static constexpr dart::compiler::target::word Function_kind_tag_offset = 104;
static constexpr dart::compiler::target::word Function_packed_fields_offset =
123;
static constexpr dart::compiler::target::word Function_signature_offset = 40;
static constexpr dart::compiler::target::word FutureOr_type_arguments_offset =
8;
@ -5153,8 +5137,6 @@ static constexpr dart::compiler::target::word Function_data_offset = 24;
static constexpr dart::compiler::target::word Function_entry_point_offset[] = {
4, 8};
static constexpr dart::compiler::target::word Function_kind_tag_offset = 64;
static constexpr dart::compiler::target::word Function_packed_fields_offset =
83;
static constexpr dart::compiler::target::word Function_signature_offset = 20;
static constexpr dart::compiler::target::word FutureOr_type_arguments_offset =
4;
@ -5768,8 +5750,6 @@ static constexpr dart::compiler::target::word Function_data_offset = 48;
static constexpr dart::compiler::target::word Function_entry_point_offset[] = {
8, 16};
static constexpr dart::compiler::target::word Function_kind_tag_offset = 104;
static constexpr dart::compiler::target::word Function_packed_fields_offset =
123;
static constexpr dart::compiler::target::word Function_signature_offset = 40;
static constexpr dart::compiler::target::word FutureOr_type_arguments_offset =
8;
@ -6388,8 +6368,6 @@ static constexpr dart::compiler::target::word Function_data_offset = 24;
static constexpr dart::compiler::target::word Function_entry_point_offset[] = {
4, 8};
static constexpr dart::compiler::target::word Function_kind_tag_offset = 64;
static constexpr dart::compiler::target::word Function_packed_fields_offset =
83;
static constexpr dart::compiler::target::word Function_signature_offset = 20;
static constexpr dart::compiler::target::word FutureOr_type_arguments_offset =
4;
@ -7000,8 +6978,6 @@ static constexpr dart::compiler::target::word Function_data_offset = 48;
static constexpr dart::compiler::target::word Function_entry_point_offset[] = {
8, 16};
static constexpr dart::compiler::target::word Function_kind_tag_offset = 104;
static constexpr dart::compiler::target::word Function_packed_fields_offset =
123;
static constexpr dart::compiler::target::word Function_signature_offset = 40;
static constexpr dart::compiler::target::word FutureOr_type_arguments_offset =
8;
@ -7621,8 +7597,6 @@ static constexpr dart::compiler::target::word Function_data_offset = 36;
static constexpr dart::compiler::target::word Function_entry_point_offset[] = {
8, 16};
static constexpr dart::compiler::target::word Function_kind_tag_offset = 72;
static constexpr dart::compiler::target::word Function_packed_fields_offset =
91;
static constexpr dart::compiler::target::word Function_signature_offset = 32;
static constexpr dart::compiler::target::word FutureOr_type_arguments_offset =
8;
@ -8241,8 +8215,6 @@ static constexpr dart::compiler::target::word Function_data_offset = 36;
static constexpr dart::compiler::target::word Function_entry_point_offset[] = {
8, 16};
static constexpr dart::compiler::target::word Function_kind_tag_offset = 72;
static constexpr dart::compiler::target::word Function_packed_fields_offset =
91;
static constexpr dart::compiler::target::word Function_signature_offset = 32;
static constexpr dart::compiler::target::word FutureOr_type_arguments_offset =
8;
@ -8862,8 +8834,6 @@ static constexpr dart::compiler::target::word Function_data_offset = 24;
static constexpr dart::compiler::target::word Function_entry_point_offset[] = {
4, 8};
static constexpr dart::compiler::target::word Function_kind_tag_offset = 64;
static constexpr dart::compiler::target::word Function_packed_fields_offset =
83;
static constexpr dart::compiler::target::word Function_signature_offset = 20;
static constexpr dart::compiler::target::word FutureOr_type_arguments_offset =
4;
@ -9479,8 +9449,6 @@ static constexpr dart::compiler::target::word Function_data_offset = 48;
static constexpr dart::compiler::target::word Function_entry_point_offset[] = {
8, 16};
static constexpr dart::compiler::target::word Function_kind_tag_offset = 104;
static constexpr dart::compiler::target::word Function_packed_fields_offset =
123;
static constexpr dart::compiler::target::word Function_signature_offset = 40;
static constexpr dart::compiler::target::word FutureOr_type_arguments_offset =
8;
@ -10119,8 +10087,6 @@ static constexpr dart::compiler::target::word AOT_Function_data_offset = 24;
static constexpr dart::compiler::target::word
AOT_Function_entry_point_offset[] = {4, 8};
static constexpr dart::compiler::target::word AOT_Function_kind_tag_offset = 36;
static constexpr dart::compiler::target::word
AOT_Function_packed_fields_offset = 40;
static constexpr dart::compiler::target::word AOT_Function_signature_offset =
20;
static constexpr dart::compiler::target::word
@ -10581,7 +10547,7 @@ static constexpr dart::compiler::target::word AOT_NativeFinalizer_InstanceSize =
24;
static constexpr dart::compiler::target::word AOT_Float32x4_InstanceSize = 24;
static constexpr dart::compiler::target::word AOT_Float64x2_InstanceSize = 24;
static constexpr dart::compiler::target::word AOT_Function_InstanceSize = 44;
static constexpr dart::compiler::target::word AOT_Function_InstanceSize = 40;
static constexpr dart::compiler::target::word AOT_FunctionType_InstanceSize =
40;
static constexpr dart::compiler::target::word AOT_FutureOr_InstanceSize = 8;
@ -10816,8 +10782,6 @@ static constexpr dart::compiler::target::word AOT_Function_data_offset = 48;
static constexpr dart::compiler::target::word
AOT_Function_entry_point_offset[] = {8, 16};
static constexpr dart::compiler::target::word AOT_Function_kind_tag_offset = 72;
static constexpr dart::compiler::target::word
AOT_Function_packed_fields_offset = 76;
static constexpr dart::compiler::target::word AOT_Function_signature_offset =
40;
static constexpr dart::compiler::target::word
@ -11519,8 +11483,6 @@ static constexpr dart::compiler::target::word AOT_Function_data_offset = 48;
static constexpr dart::compiler::target::word
AOT_Function_entry_point_offset[] = {8, 16};
static constexpr dart::compiler::target::word AOT_Function_kind_tag_offset = 72;
static constexpr dart::compiler::target::word
AOT_Function_packed_fields_offset = 76;
static constexpr dart::compiler::target::word AOT_Function_signature_offset =
40;
static constexpr dart::compiler::target::word
@ -12219,8 +12181,6 @@ static constexpr dart::compiler::target::word AOT_Function_data_offset = 36;
static constexpr dart::compiler::target::word
AOT_Function_entry_point_offset[] = {8, 16};
static constexpr dart::compiler::target::word AOT_Function_kind_tag_offset = 48;
static constexpr dart::compiler::target::word
AOT_Function_packed_fields_offset = 52;
static constexpr dart::compiler::target::word AOT_Function_signature_offset =
32;
static constexpr dart::compiler::target::word
@ -12918,8 +12878,6 @@ static constexpr dart::compiler::target::word AOT_Function_data_offset = 36;
static constexpr dart::compiler::target::word
AOT_Function_entry_point_offset[] = {8, 16};
static constexpr dart::compiler::target::word AOT_Function_kind_tag_offset = 48;
static constexpr dart::compiler::target::word
AOT_Function_packed_fields_offset = 52;
static constexpr dart::compiler::target::word AOT_Function_signature_offset =
32;
static constexpr dart::compiler::target::word
@ -13618,8 +13576,6 @@ static constexpr dart::compiler::target::word AOT_Function_data_offset = 24;
static constexpr dart::compiler::target::word
AOT_Function_entry_point_offset[] = {4, 8};
static constexpr dart::compiler::target::word AOT_Function_kind_tag_offset = 36;
static constexpr dart::compiler::target::word
AOT_Function_packed_fields_offset = 40;
static constexpr dart::compiler::target::word AOT_Function_signature_offset =
20;
static constexpr dart::compiler::target::word
@ -14082,7 +14038,7 @@ static constexpr dart::compiler::target::word AOT_NativeFinalizer_InstanceSize =
24;
static constexpr dart::compiler::target::word AOT_Float32x4_InstanceSize = 24;
static constexpr dart::compiler::target::word AOT_Float64x2_InstanceSize = 24;
static constexpr dart::compiler::target::word AOT_Function_InstanceSize = 44;
static constexpr dart::compiler::target::word AOT_Function_InstanceSize = 40;
static constexpr dart::compiler::target::word AOT_FunctionType_InstanceSize =
40;
static constexpr dart::compiler::target::word AOT_FutureOr_InstanceSize = 8;
@ -14317,8 +14273,6 @@ static constexpr dart::compiler::target::word AOT_Function_data_offset = 48;
static constexpr dart::compiler::target::word
AOT_Function_entry_point_offset[] = {8, 16};
static constexpr dart::compiler::target::word AOT_Function_kind_tag_offset = 72;
static constexpr dart::compiler::target::word
AOT_Function_packed_fields_offset = 76;
static constexpr dart::compiler::target::word AOT_Function_signature_offset =
40;
static constexpr dart::compiler::target::word
@ -15014,8 +14968,6 @@ static constexpr dart::compiler::target::word AOT_Function_data_offset = 24;
static constexpr dart::compiler::target::word
AOT_Function_entry_point_offset[] = {4, 8};
static constexpr dart::compiler::target::word AOT_Function_kind_tag_offset = 36;
static constexpr dart::compiler::target::word
AOT_Function_packed_fields_offset = 40;
static constexpr dart::compiler::target::word AOT_Function_signature_offset =
20;
static constexpr dart::compiler::target::word
@ -15474,7 +15426,7 @@ static constexpr dart::compiler::target::word AOT_NativeFinalizer_InstanceSize =
24;
static constexpr dart::compiler::target::word AOT_Float32x4_InstanceSize = 24;
static constexpr dart::compiler::target::word AOT_Float64x2_InstanceSize = 24;
static constexpr dart::compiler::target::word AOT_Function_InstanceSize = 44;
static constexpr dart::compiler::target::word AOT_Function_InstanceSize = 40;
static constexpr dart::compiler::target::word AOT_FunctionType_InstanceSize =
40;
static constexpr dart::compiler::target::word AOT_FutureOr_InstanceSize = 8;
@ -15704,8 +15656,6 @@ static constexpr dart::compiler::target::word AOT_Function_data_offset = 48;
static constexpr dart::compiler::target::word
AOT_Function_entry_point_offset[] = {8, 16};
static constexpr dart::compiler::target::word AOT_Function_kind_tag_offset = 72;
static constexpr dart::compiler::target::word
AOT_Function_packed_fields_offset = 76;
static constexpr dart::compiler::target::word AOT_Function_signature_offset =
40;
static constexpr dart::compiler::target::word
@ -16400,8 +16350,6 @@ static constexpr dart::compiler::target::word AOT_Function_data_offset = 48;
static constexpr dart::compiler::target::word
AOT_Function_entry_point_offset[] = {8, 16};
static constexpr dart::compiler::target::word AOT_Function_kind_tag_offset = 72;
static constexpr dart::compiler::target::word
AOT_Function_packed_fields_offset = 76;
static constexpr dart::compiler::target::word AOT_Function_signature_offset =
40;
static constexpr dart::compiler::target::word
@ -17093,8 +17041,6 @@ static constexpr dart::compiler::target::word AOT_Function_data_offset = 36;
static constexpr dart::compiler::target::word
AOT_Function_entry_point_offset[] = {8, 16};
static constexpr dart::compiler::target::word AOT_Function_kind_tag_offset = 48;
static constexpr dart::compiler::target::word
AOT_Function_packed_fields_offset = 52;
static constexpr dart::compiler::target::word AOT_Function_signature_offset =
32;
static constexpr dart::compiler::target::word
@ -17785,8 +17731,6 @@ static constexpr dart::compiler::target::word AOT_Function_data_offset = 36;
static constexpr dart::compiler::target::word
AOT_Function_entry_point_offset[] = {8, 16};
static constexpr dart::compiler::target::word AOT_Function_kind_tag_offset = 48;
static constexpr dart::compiler::target::word
AOT_Function_packed_fields_offset = 52;
static constexpr dart::compiler::target::word AOT_Function_signature_offset =
32;
static constexpr dart::compiler::target::word
@ -18478,8 +18422,6 @@ static constexpr dart::compiler::target::word AOT_Function_data_offset = 24;
static constexpr dart::compiler::target::word
AOT_Function_entry_point_offset[] = {4, 8};
static constexpr dart::compiler::target::word AOT_Function_kind_tag_offset = 36;
static constexpr dart::compiler::target::word
AOT_Function_packed_fields_offset = 40;
static constexpr dart::compiler::target::word AOT_Function_signature_offset =
20;
static constexpr dart::compiler::target::word
@ -18940,7 +18882,7 @@ static constexpr dart::compiler::target::word AOT_NativeFinalizer_InstanceSize =
24;
static constexpr dart::compiler::target::word AOT_Float32x4_InstanceSize = 24;
static constexpr dart::compiler::target::word AOT_Float64x2_InstanceSize = 24;
static constexpr dart::compiler::target::word AOT_Function_InstanceSize = 44;
static constexpr dart::compiler::target::word AOT_Function_InstanceSize = 40;
static constexpr dart::compiler::target::word AOT_FunctionType_InstanceSize =
40;
static constexpr dart::compiler::target::word AOT_FutureOr_InstanceSize = 8;
@ -19170,8 +19112,6 @@ static constexpr dart::compiler::target::word AOT_Function_data_offset = 48;
static constexpr dart::compiler::target::word
AOT_Function_entry_point_offset[] = {8, 16};
static constexpr dart::compiler::target::word AOT_Function_kind_tag_offset = 72;
static constexpr dart::compiler::target::word
AOT_Function_packed_fields_offset = 76;
static constexpr dart::compiler::target::word AOT_Function_signature_offset =
40;
static constexpr dart::compiler::target::word

View file

@ -133,7 +133,6 @@
RANGE(Function, entry_point_offset, CodeEntryKind, CodeEntryKind::kNormal, \
CodeEntryKind::kUnchecked, [](CodeEntryKind value) { return true; }) \
FIELD(Function, kind_tag_offset) \
FIELD(Function, packed_fields_offset) \
FIELD(Function, signature_offset) \
FIELD(FutureOr, type_arguments_offset) \
FIELD(GrowableObjectArray, data_offset) \

View file

@ -8064,7 +8064,11 @@ void Function::set_kind_tag(uint32_t value) const {
}
void Function::set_packed_fields(uint32_t packed_fields) const {
#if defined(DART_PRECOMPILED_RUNTIME)
UNREACHABLE();
#else
StoreNonPointer(&untag()->packed_fields_, packed_fields);
#endif
}
bool Function::IsOptimizable() const {

View file

@ -3141,11 +3141,14 @@ class Function : public Object {
// Returns the size of the source for this function.
intptr_t SourceSize() const;
uint32_t packed_fields() const { return untag()->packed_fields_; }
void set_packed_fields(uint32_t packed_fields) const;
static intptr_t packed_fields_offset() {
return OFFSET_OF(UntaggedFunction, packed_fields_);
uint32_t packed_fields() const {
#if defined(DART_PRECOMPILED_RUNTIME)
UNREACHABLE();
#else
return untag()->packed_fields_;
#endif
}
void set_packed_fields(uint32_t packed_fields) const;
// Returns the number of required positional parameters.
intptr_t num_fixed_parameters() const;
@ -3881,11 +3884,19 @@ class Function : public Object {
// some functions known to be execute infrequently and functions
// which have been de-optimized too many times.
bool is_optimizable() const {
#if defined(DART_PRECOMPILED_RUNTIME)
UNREACHABLE();
#else
return untag()->packed_fields_.Read<UntaggedFunction::PackedOptimizable>();
#endif
}
void set_is_optimizable(bool value) const {
#if defined(DART_PRECOMPILED_RUNTIME)
UNREACHABLE();
#else
untag()->packed_fields_.UpdateBool<UntaggedFunction::PackedOptimizable>(
value);
#endif
}
enum KindTagBits {

View file

@ -1346,14 +1346,13 @@ class UntaggedFunction : public UntaggedObject {
JIT_FUNCTION_COUNTERS(DECLARE)
#undef DECLARE
#endif // !defined(DART_PRECOMPILED_RUNTIME)
AtomicBitFieldContainer<uint8_t> packed_fields_;
static constexpr intptr_t kMaxOptimizableBits = 1;
using PackedOptimizable =
BitField<decltype(packed_fields_), bool, 0, kMaxOptimizableBits>;
#endif // !defined(DART_PRECOMPILED_RUNTIME)
};
class UntaggedClosureData : public UntaggedObject {