[vm] Reorder fields in LinkedHashBase

Split off https://dart-review.googlesource.com/c/sdk/+/203765 to make
that diff smaller.

Serializing the index incurs a large size penalty to snapshots. Rather
than serializing, we reconstruct the index based on the hashes that we
do serialize for all canonical objects. (Reconstructing the index is a
relatively cheap operation, recomputing the hashes is not.)

Note that to_snapshot is currently dead code, because we never serialize
non-const maps and sets in clustered snapshots.

Of course we do exercise the layout of the maps and sets itself.

Bug: https://github.com/dart-lang/sdk/issues/45908

TEST=The whole test suite including all map and set tests.

Change-Id: If54117497029e4da212c702a76c82de6d1531092
Cq-Include-Trybots: luci.dart.try:vm-kernel-precomp-linux-debug-simarm_x64-try,vm-kernel-reload-rollback-linux-debug-x64-try,vm-kernel-nnbd-linux-debug-x64-try
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/208086
Reviewed-by: Tess Strickland <sstrickl@google.com>
Commit-Queue: Daco Harkes <dacoharkes@google.com>
diff --git a/runtime/vm/compiler/runtime_offsets_extracted.h b/runtime/vm/compiler/runtime_offsets_extracted.h
index cb011a5..99f76c0 100644
--- a/runtime/vm/compiler/runtime_offsets_extracted.h
+++ b/runtime/vm/compiler/runtime_offsets_extracted.h
@@ -195,16 +195,16 @@
     IsolateGroup_cached_class_table_table_offset = 16;
 static constexpr dart::compiler::target::word Isolate_single_step_offset = 36;
 static constexpr dart::compiler::target::word Isolate_user_tag_offset = 16;
-static constexpr dart::compiler::target::word LinkedHashBase_data_offset = 16;
+static constexpr dart::compiler::target::word LinkedHashBase_data_offset = 12;
 static constexpr dart::compiler::target::word
-    LinkedHashBase_deleted_keys_offset = 24;
+    LinkedHashBase_deleted_keys_offset = 20;
 static constexpr dart::compiler::target::word LinkedHashBase_hash_mask_offset =
-    12;
-static constexpr dart::compiler::target::word LinkedHashBase_index_offset = 8;
+    8;
+static constexpr dart::compiler::target::word LinkedHashBase_index_offset = 24;
 static constexpr dart::compiler::target::word
     LinkedHashBase_type_arguments_offset = 4;
 static constexpr dart::compiler::target::word LinkedHashBase_used_data_offset =
-    20;
+    16;
 static constexpr dart::compiler::target::word LocalHandle_ptr_offset = 0;
 static constexpr dart::compiler::target::word
     MarkingStackBlock_pointers_offset = 8;
@@ -738,16 +738,16 @@
     IsolateGroup_cached_class_table_table_offset = 32;
 static constexpr dart::compiler::target::word Isolate_single_step_offset = 72;
 static constexpr dart::compiler::target::word Isolate_user_tag_offset = 32;
-static constexpr dart::compiler::target::word LinkedHashBase_data_offset = 32;
+static constexpr dart::compiler::target::word LinkedHashBase_data_offset = 24;
 static constexpr dart::compiler::target::word
-    LinkedHashBase_deleted_keys_offset = 48;
+    LinkedHashBase_deleted_keys_offset = 40;
 static constexpr dart::compiler::target::word LinkedHashBase_hash_mask_offset =
-    24;
-static constexpr dart::compiler::target::word LinkedHashBase_index_offset = 16;
+    16;
+static constexpr dart::compiler::target::word LinkedHashBase_index_offset = 48;
 static constexpr dart::compiler::target::word
     LinkedHashBase_type_arguments_offset = 8;
 static constexpr dart::compiler::target::word LinkedHashBase_used_data_offset =
-    40;
+    32;
 static constexpr dart::compiler::target::word LocalHandle_ptr_offset = 0;
 static constexpr dart::compiler::target::word
     MarkingStackBlock_pointers_offset = 16;
@@ -1286,16 +1286,16 @@
     IsolateGroup_cached_class_table_table_offset = 16;
 static constexpr dart::compiler::target::word Isolate_single_step_offset = 36;
 static constexpr dart::compiler::target::word Isolate_user_tag_offset = 16;
-static constexpr dart::compiler::target::word LinkedHashBase_data_offset = 16;
+static constexpr dart::compiler::target::word LinkedHashBase_data_offset = 12;
 static constexpr dart::compiler::target::word
-    LinkedHashBase_deleted_keys_offset = 24;
+    LinkedHashBase_deleted_keys_offset = 20;
 static constexpr dart::compiler::target::word LinkedHashBase_hash_mask_offset =
-    12;
-static constexpr dart::compiler::target::word LinkedHashBase_index_offset = 8;
+    8;
+static constexpr dart::compiler::target::word LinkedHashBase_index_offset = 24;
 static constexpr dart::compiler::target::word
     LinkedHashBase_type_arguments_offset = 4;
 static constexpr dart::compiler::target::word LinkedHashBase_used_data_offset =
-    20;
+    16;
 static constexpr dart::compiler::target::word LocalHandle_ptr_offset = 0;
 static constexpr dart::compiler::target::word
     MarkingStackBlock_pointers_offset = 8;
@@ -1826,16 +1826,16 @@
     IsolateGroup_cached_class_table_table_offset = 32;
 static constexpr dart::compiler::target::word Isolate_single_step_offset = 72;
 static constexpr dart::compiler::target::word Isolate_user_tag_offset = 32;
-static constexpr dart::compiler::target::word LinkedHashBase_data_offset = 32;
+static constexpr dart::compiler::target::word LinkedHashBase_data_offset = 24;
 static constexpr dart::compiler::target::word
-    LinkedHashBase_deleted_keys_offset = 48;
+    LinkedHashBase_deleted_keys_offset = 40;
 static constexpr dart::compiler::target::word LinkedHashBase_hash_mask_offset =
-    24;
-static constexpr dart::compiler::target::word LinkedHashBase_index_offset = 16;
+    16;
+static constexpr dart::compiler::target::word LinkedHashBase_index_offset = 48;
 static constexpr dart::compiler::target::word
     LinkedHashBase_type_arguments_offset = 8;
 static constexpr dart::compiler::target::word LinkedHashBase_used_data_offset =
-    40;
+    32;
 static constexpr dart::compiler::target::word LocalHandle_ptr_offset = 0;
 static constexpr dart::compiler::target::word
     MarkingStackBlock_pointers_offset = 16;
@@ -2375,16 +2375,16 @@
     IsolateGroup_cached_class_table_table_offset = 32;
 static constexpr dart::compiler::target::word Isolate_single_step_offset = 72;
 static constexpr dart::compiler::target::word Isolate_user_tag_offset = 32;
-static constexpr dart::compiler::target::word LinkedHashBase_data_offset = 20;
+static constexpr dart::compiler::target::word LinkedHashBase_data_offset = 16;
 static constexpr dart::compiler::target::word
-    LinkedHashBase_deleted_keys_offset = 28;
+    LinkedHashBase_deleted_keys_offset = 24;
 static constexpr dart::compiler::target::word LinkedHashBase_hash_mask_offset =
-    16;
-static constexpr dart::compiler::target::word LinkedHashBase_index_offset = 12;
+    12;
+static constexpr dart::compiler::target::word LinkedHashBase_index_offset = 28;
 static constexpr dart::compiler::target::word
     LinkedHashBase_type_arguments_offset = 8;
 static constexpr dart::compiler::target::word LinkedHashBase_used_data_offset =
-    24;
+    20;
 static constexpr dart::compiler::target::word LocalHandle_ptr_offset = 0;
 static constexpr dart::compiler::target::word
     MarkingStackBlock_pointers_offset = 16;
@@ -2923,16 +2923,16 @@
     IsolateGroup_cached_class_table_table_offset = 32;
 static constexpr dart::compiler::target::word Isolate_single_step_offset = 72;
 static constexpr dart::compiler::target::word Isolate_user_tag_offset = 32;
-static constexpr dart::compiler::target::word LinkedHashBase_data_offset = 20;
+static constexpr dart::compiler::target::word LinkedHashBase_data_offset = 16;
 static constexpr dart::compiler::target::word
-    LinkedHashBase_deleted_keys_offset = 28;
+    LinkedHashBase_deleted_keys_offset = 24;
 static constexpr dart::compiler::target::word LinkedHashBase_hash_mask_offset =
-    16;
-static constexpr dart::compiler::target::word LinkedHashBase_index_offset = 12;
+    12;
+static constexpr dart::compiler::target::word LinkedHashBase_index_offset = 28;
 static constexpr dart::compiler::target::word
     LinkedHashBase_type_arguments_offset = 8;
 static constexpr dart::compiler::target::word LinkedHashBase_used_data_offset =
-    24;
+    20;
 static constexpr dart::compiler::target::word LocalHandle_ptr_offset = 0;
 static constexpr dart::compiler::target::word
     MarkingStackBlock_pointers_offset = 16;
@@ -3468,16 +3468,16 @@
 static constexpr dart::compiler::target::word
     IsolateGroup_cached_class_table_table_offset = 16;
 static constexpr dart::compiler::target::word Isolate_user_tag_offset = 16;
-static constexpr dart::compiler::target::word LinkedHashBase_data_offset = 16;
+static constexpr dart::compiler::target::word LinkedHashBase_data_offset = 12;
 static constexpr dart::compiler::target::word
-    LinkedHashBase_deleted_keys_offset = 24;
+    LinkedHashBase_deleted_keys_offset = 20;
 static constexpr dart::compiler::target::word LinkedHashBase_hash_mask_offset =
-    12;
-static constexpr dart::compiler::target::word LinkedHashBase_index_offset = 8;
+    8;
+static constexpr dart::compiler::target::word LinkedHashBase_index_offset = 24;
 static constexpr dart::compiler::target::word
     LinkedHashBase_type_arguments_offset = 4;
 static constexpr dart::compiler::target::word LinkedHashBase_used_data_offset =
-    20;
+    16;
 static constexpr dart::compiler::target::word LocalHandle_ptr_offset = 0;
 static constexpr dart::compiler::target::word
     MarkingStackBlock_pointers_offset = 8;
@@ -4005,16 +4005,16 @@
 static constexpr dart::compiler::target::word
     IsolateGroup_cached_class_table_table_offset = 32;
 static constexpr dart::compiler::target::word Isolate_user_tag_offset = 32;
-static constexpr dart::compiler::target::word LinkedHashBase_data_offset = 32;
+static constexpr dart::compiler::target::word LinkedHashBase_data_offset = 24;
 static constexpr dart::compiler::target::word
-    LinkedHashBase_deleted_keys_offset = 48;
+    LinkedHashBase_deleted_keys_offset = 40;
 static constexpr dart::compiler::target::word LinkedHashBase_hash_mask_offset =
-    24;
-static constexpr dart::compiler::target::word LinkedHashBase_index_offset = 16;
+    16;
+static constexpr dart::compiler::target::word LinkedHashBase_index_offset = 48;
 static constexpr dart::compiler::target::word
     LinkedHashBase_type_arguments_offset = 8;
 static constexpr dart::compiler::target::word LinkedHashBase_used_data_offset =
-    40;
+    32;
 static constexpr dart::compiler::target::word LocalHandle_ptr_offset = 0;
 static constexpr dart::compiler::target::word
     MarkingStackBlock_pointers_offset = 16;
@@ -4547,16 +4547,16 @@
 static constexpr dart::compiler::target::word
     IsolateGroup_cached_class_table_table_offset = 16;
 static constexpr dart::compiler::target::word Isolate_user_tag_offset = 16;
-static constexpr dart::compiler::target::word LinkedHashBase_data_offset = 16;
+static constexpr dart::compiler::target::word LinkedHashBase_data_offset = 12;
 static constexpr dart::compiler::target::word
-    LinkedHashBase_deleted_keys_offset = 24;
+    LinkedHashBase_deleted_keys_offset = 20;
 static constexpr dart::compiler::target::word LinkedHashBase_hash_mask_offset =
-    12;
-static constexpr dart::compiler::target::word LinkedHashBase_index_offset = 8;
+    8;
+static constexpr dart::compiler::target::word LinkedHashBase_index_offset = 24;
 static constexpr dart::compiler::target::word
     LinkedHashBase_type_arguments_offset = 4;
 static constexpr dart::compiler::target::word LinkedHashBase_used_data_offset =
-    20;
+    16;
 static constexpr dart::compiler::target::word LocalHandle_ptr_offset = 0;
 static constexpr dart::compiler::target::word
     MarkingStackBlock_pointers_offset = 8;
@@ -5081,16 +5081,16 @@
 static constexpr dart::compiler::target::word
     IsolateGroup_cached_class_table_table_offset = 32;
 static constexpr dart::compiler::target::word Isolate_user_tag_offset = 32;
-static constexpr dart::compiler::target::word LinkedHashBase_data_offset = 32;
+static constexpr dart::compiler::target::word LinkedHashBase_data_offset = 24;
 static constexpr dart::compiler::target::word
-    LinkedHashBase_deleted_keys_offset = 48;
+    LinkedHashBase_deleted_keys_offset = 40;
 static constexpr dart::compiler::target::word LinkedHashBase_hash_mask_offset =
-    24;
-static constexpr dart::compiler::target::word LinkedHashBase_index_offset = 16;
+    16;
+static constexpr dart::compiler::target::word LinkedHashBase_index_offset = 48;
 static constexpr dart::compiler::target::word
     LinkedHashBase_type_arguments_offset = 8;
 static constexpr dart::compiler::target::word LinkedHashBase_used_data_offset =
-    40;
+    32;
 static constexpr dart::compiler::target::word LocalHandle_ptr_offset = 0;
 static constexpr dart::compiler::target::word
     MarkingStackBlock_pointers_offset = 16;
@@ -5624,16 +5624,16 @@
 static constexpr dart::compiler::target::word
     IsolateGroup_cached_class_table_table_offset = 32;
 static constexpr dart::compiler::target::word Isolate_user_tag_offset = 32;
-static constexpr dart::compiler::target::word LinkedHashBase_data_offset = 20;
+static constexpr dart::compiler::target::word LinkedHashBase_data_offset = 16;
 static constexpr dart::compiler::target::word
-    LinkedHashBase_deleted_keys_offset = 28;
+    LinkedHashBase_deleted_keys_offset = 24;
 static constexpr dart::compiler::target::word LinkedHashBase_hash_mask_offset =
-    16;
-static constexpr dart::compiler::target::word LinkedHashBase_index_offset = 12;
+    12;
+static constexpr dart::compiler::target::word LinkedHashBase_index_offset = 28;
 static constexpr dart::compiler::target::word
     LinkedHashBase_type_arguments_offset = 8;
 static constexpr dart::compiler::target::word LinkedHashBase_used_data_offset =
-    24;
+    20;
 static constexpr dart::compiler::target::word LocalHandle_ptr_offset = 0;
 static constexpr dart::compiler::target::word
     MarkingStackBlock_pointers_offset = 16;
@@ -6166,16 +6166,16 @@
 static constexpr dart::compiler::target::word
     IsolateGroup_cached_class_table_table_offset = 32;
 static constexpr dart::compiler::target::word Isolate_user_tag_offset = 32;
-static constexpr dart::compiler::target::word LinkedHashBase_data_offset = 20;
+static constexpr dart::compiler::target::word LinkedHashBase_data_offset = 16;
 static constexpr dart::compiler::target::word
-    LinkedHashBase_deleted_keys_offset = 28;
+    LinkedHashBase_deleted_keys_offset = 24;
 static constexpr dart::compiler::target::word LinkedHashBase_hash_mask_offset =
-    16;
-static constexpr dart::compiler::target::word LinkedHashBase_index_offset = 12;
+    12;
+static constexpr dart::compiler::target::word LinkedHashBase_index_offset = 28;
 static constexpr dart::compiler::target::word
     LinkedHashBase_type_arguments_offset = 8;
 static constexpr dart::compiler::target::word LinkedHashBase_used_data_offset =
-    24;
+    20;
 static constexpr dart::compiler::target::word LocalHandle_ptr_offset = 0;
 static constexpr dart::compiler::target::word
     MarkingStackBlock_pointers_offset = 16;
@@ -6735,17 +6735,17 @@
     36;
 static constexpr dart::compiler::target::word AOT_Isolate_user_tag_offset = 16;
 static constexpr dart::compiler::target::word AOT_LinkedHashBase_data_offset =
-    16;
+    12;
 static constexpr dart::compiler::target::word
-    AOT_LinkedHashBase_deleted_keys_offset = 24;
+    AOT_LinkedHashBase_deleted_keys_offset = 20;
 static constexpr dart::compiler::target::word
-    AOT_LinkedHashBase_hash_mask_offset = 12;
+    AOT_LinkedHashBase_hash_mask_offset = 8;
 static constexpr dart::compiler::target::word AOT_LinkedHashBase_index_offset =
-    8;
+    24;
 static constexpr dart::compiler::target::word
     AOT_LinkedHashBase_type_arguments_offset = 4;
 static constexpr dart::compiler::target::word
-    AOT_LinkedHashBase_used_data_offset = 20;
+    AOT_LinkedHashBase_used_data_offset = 16;
 static constexpr dart::compiler::target::word AOT_LocalHandle_ptr_offset = 0;
 static constexpr dart::compiler::target::word
     AOT_MarkingStackBlock_pointers_offset = 8;
@@ -7342,17 +7342,17 @@
     72;
 static constexpr dart::compiler::target::word AOT_Isolate_user_tag_offset = 32;
 static constexpr dart::compiler::target::word AOT_LinkedHashBase_data_offset =
-    32;
+    24;
 static constexpr dart::compiler::target::word
-    AOT_LinkedHashBase_deleted_keys_offset = 48;
+    AOT_LinkedHashBase_deleted_keys_offset = 40;
 static constexpr dart::compiler::target::word
-    AOT_LinkedHashBase_hash_mask_offset = 24;
+    AOT_LinkedHashBase_hash_mask_offset = 16;
 static constexpr dart::compiler::target::word AOT_LinkedHashBase_index_offset =
-    16;
+    48;
 static constexpr dart::compiler::target::word
     AOT_LinkedHashBase_type_arguments_offset = 8;
 static constexpr dart::compiler::target::word
-    AOT_LinkedHashBase_used_data_offset = 40;
+    AOT_LinkedHashBase_used_data_offset = 32;
 static constexpr dart::compiler::target::word AOT_LocalHandle_ptr_offset = 0;
 static constexpr dart::compiler::target::word
     AOT_MarkingStackBlock_pointers_offset = 16;
@@ -7955,17 +7955,17 @@
     72;
 static constexpr dart::compiler::target::word AOT_Isolate_user_tag_offset = 32;
 static constexpr dart::compiler::target::word AOT_LinkedHashBase_data_offset =
-    32;
+    24;
 static constexpr dart::compiler::target::word
-    AOT_LinkedHashBase_deleted_keys_offset = 48;
+    AOT_LinkedHashBase_deleted_keys_offset = 40;
 static constexpr dart::compiler::target::word
-    AOT_LinkedHashBase_hash_mask_offset = 24;
+    AOT_LinkedHashBase_hash_mask_offset = 16;
 static constexpr dart::compiler::target::word AOT_LinkedHashBase_index_offset =
-    16;
+    48;
 static constexpr dart::compiler::target::word
     AOT_LinkedHashBase_type_arguments_offset = 8;
 static constexpr dart::compiler::target::word
-    AOT_LinkedHashBase_used_data_offset = 40;
+    AOT_LinkedHashBase_used_data_offset = 32;
 static constexpr dart::compiler::target::word AOT_LocalHandle_ptr_offset = 0;
 static constexpr dart::compiler::target::word
     AOT_MarkingStackBlock_pointers_offset = 16;
@@ -8565,17 +8565,17 @@
     72;
 static constexpr dart::compiler::target::word AOT_Isolate_user_tag_offset = 32;
 static constexpr dart::compiler::target::word AOT_LinkedHashBase_data_offset =
-    20;
+    16;
 static constexpr dart::compiler::target::word
-    AOT_LinkedHashBase_deleted_keys_offset = 28;
+    AOT_LinkedHashBase_deleted_keys_offset = 24;
 static constexpr dart::compiler::target::word
-    AOT_LinkedHashBase_hash_mask_offset = 16;
+    AOT_LinkedHashBase_hash_mask_offset = 12;
 static constexpr dart::compiler::target::word AOT_LinkedHashBase_index_offset =
-    12;
+    28;
 static constexpr dart::compiler::target::word
     AOT_LinkedHashBase_type_arguments_offset = 8;
 static constexpr dart::compiler::target::word
-    AOT_LinkedHashBase_used_data_offset = 24;
+    AOT_LinkedHashBase_used_data_offset = 20;
 static constexpr dart::compiler::target::word AOT_LocalHandle_ptr_offset = 0;
 static constexpr dart::compiler::target::word
     AOT_MarkingStackBlock_pointers_offset = 16;
@@ -9174,17 +9174,17 @@
     72;
 static constexpr dart::compiler::target::word AOT_Isolate_user_tag_offset = 32;
 static constexpr dart::compiler::target::word AOT_LinkedHashBase_data_offset =
-    20;
+    16;
 static constexpr dart::compiler::target::word
-    AOT_LinkedHashBase_deleted_keys_offset = 28;
+    AOT_LinkedHashBase_deleted_keys_offset = 24;
 static constexpr dart::compiler::target::word
-    AOT_LinkedHashBase_hash_mask_offset = 16;
+    AOT_LinkedHashBase_hash_mask_offset = 12;
 static constexpr dart::compiler::target::word AOT_LinkedHashBase_index_offset =
-    12;
+    28;
 static constexpr dart::compiler::target::word
     AOT_LinkedHashBase_type_arguments_offset = 8;
 static constexpr dart::compiler::target::word
-    AOT_LinkedHashBase_used_data_offset = 24;
+    AOT_LinkedHashBase_used_data_offset = 20;
 static constexpr dart::compiler::target::word AOT_LocalHandle_ptr_offset = 0;
 static constexpr dart::compiler::target::word
     AOT_MarkingStackBlock_pointers_offset = 16;
@@ -9779,17 +9779,17 @@
     AOT_IsolateGroup_cached_class_table_table_offset = 16;
 static constexpr dart::compiler::target::word AOT_Isolate_user_tag_offset = 16;
 static constexpr dart::compiler::target::word AOT_LinkedHashBase_data_offset =
-    16;
+    12;
 static constexpr dart::compiler::target::word
-    AOT_LinkedHashBase_deleted_keys_offset = 24;
+    AOT_LinkedHashBase_deleted_keys_offset = 20;
 static constexpr dart::compiler::target::word
-    AOT_LinkedHashBase_hash_mask_offset = 12;
+    AOT_LinkedHashBase_hash_mask_offset = 8;
 static constexpr dart::compiler::target::word AOT_LinkedHashBase_index_offset =
-    8;
+    24;
 static constexpr dart::compiler::target::word
     AOT_LinkedHashBase_type_arguments_offset = 4;
 static constexpr dart::compiler::target::word
-    AOT_LinkedHashBase_used_data_offset = 20;
+    AOT_LinkedHashBase_used_data_offset = 16;
 static constexpr dart::compiler::target::word AOT_LocalHandle_ptr_offset = 0;
 static constexpr dart::compiler::target::word
     AOT_MarkingStackBlock_pointers_offset = 8;
@@ -10379,17 +10379,17 @@
     AOT_IsolateGroup_cached_class_table_table_offset = 32;
 static constexpr dart::compiler::target::word AOT_Isolate_user_tag_offset = 32;
 static constexpr dart::compiler::target::word AOT_LinkedHashBase_data_offset =
-    32;
+    24;
 static constexpr dart::compiler::target::word
-    AOT_LinkedHashBase_deleted_keys_offset = 48;
+    AOT_LinkedHashBase_deleted_keys_offset = 40;
 static constexpr dart::compiler::target::word
-    AOT_LinkedHashBase_hash_mask_offset = 24;
+    AOT_LinkedHashBase_hash_mask_offset = 16;
 static constexpr dart::compiler::target::word AOT_LinkedHashBase_index_offset =
-    16;
+    48;
 static constexpr dart::compiler::target::word
     AOT_LinkedHashBase_type_arguments_offset = 8;
 static constexpr dart::compiler::target::word
-    AOT_LinkedHashBase_used_data_offset = 40;
+    AOT_LinkedHashBase_used_data_offset = 32;
 static constexpr dart::compiler::target::word AOT_LocalHandle_ptr_offset = 0;
 static constexpr dart::compiler::target::word
     AOT_MarkingStackBlock_pointers_offset = 16;
@@ -10985,17 +10985,17 @@
     AOT_IsolateGroup_cached_class_table_table_offset = 32;
 static constexpr dart::compiler::target::word AOT_Isolate_user_tag_offset = 32;
 static constexpr dart::compiler::target::word AOT_LinkedHashBase_data_offset =
-    32;
+    24;
 static constexpr dart::compiler::target::word
-    AOT_LinkedHashBase_deleted_keys_offset = 48;
+    AOT_LinkedHashBase_deleted_keys_offset = 40;
 static constexpr dart::compiler::target::word
-    AOT_LinkedHashBase_hash_mask_offset = 24;
+    AOT_LinkedHashBase_hash_mask_offset = 16;
 static constexpr dart::compiler::target::word AOT_LinkedHashBase_index_offset =
-    16;
+    48;
 static constexpr dart::compiler::target::word
     AOT_LinkedHashBase_type_arguments_offset = 8;
 static constexpr dart::compiler::target::word
-    AOT_LinkedHashBase_used_data_offset = 40;
+    AOT_LinkedHashBase_used_data_offset = 32;
 static constexpr dart::compiler::target::word AOT_LocalHandle_ptr_offset = 0;
 static constexpr dart::compiler::target::word
     AOT_MarkingStackBlock_pointers_offset = 16;
@@ -11588,17 +11588,17 @@
     AOT_IsolateGroup_cached_class_table_table_offset = 32;
 static constexpr dart::compiler::target::word AOT_Isolate_user_tag_offset = 32;
 static constexpr dart::compiler::target::word AOT_LinkedHashBase_data_offset =
-    20;
+    16;
 static constexpr dart::compiler::target::word
-    AOT_LinkedHashBase_deleted_keys_offset = 28;
+    AOT_LinkedHashBase_deleted_keys_offset = 24;
 static constexpr dart::compiler::target::word
-    AOT_LinkedHashBase_hash_mask_offset = 16;
+    AOT_LinkedHashBase_hash_mask_offset = 12;
 static constexpr dart::compiler::target::word AOT_LinkedHashBase_index_offset =
-    12;
+    28;
 static constexpr dart::compiler::target::word
     AOT_LinkedHashBase_type_arguments_offset = 8;
 static constexpr dart::compiler::target::word
-    AOT_LinkedHashBase_used_data_offset = 24;
+    AOT_LinkedHashBase_used_data_offset = 20;
 static constexpr dart::compiler::target::word AOT_LocalHandle_ptr_offset = 0;
 static constexpr dart::compiler::target::word
     AOT_MarkingStackBlock_pointers_offset = 16;
@@ -12190,17 +12190,17 @@
     AOT_IsolateGroup_cached_class_table_table_offset = 32;
 static constexpr dart::compiler::target::word AOT_Isolate_user_tag_offset = 32;
 static constexpr dart::compiler::target::word AOT_LinkedHashBase_data_offset =
-    20;
+    16;
 static constexpr dart::compiler::target::word
-    AOT_LinkedHashBase_deleted_keys_offset = 28;
+    AOT_LinkedHashBase_deleted_keys_offset = 24;
 static constexpr dart::compiler::target::word
-    AOT_LinkedHashBase_hash_mask_offset = 16;
+    AOT_LinkedHashBase_hash_mask_offset = 12;
 static constexpr dart::compiler::target::word AOT_LinkedHashBase_index_offset =
-    12;
+    28;
 static constexpr dart::compiler::target::word
     AOT_LinkedHashBase_type_arguments_offset = 8;
 static constexpr dart::compiler::target::word
-    AOT_LinkedHashBase_used_data_offset = 24;
+    AOT_LinkedHashBase_used_data_offset = 20;
 static constexpr dart::compiler::target::word AOT_LocalHandle_ptr_offset = 0;
 static constexpr dart::compiler::target::word
     AOT_MarkingStackBlock_pointers_offset = 16;
diff --git a/runtime/vm/raw_object.h b/runtime/vm/raw_object.h
index 3f7adfe..ac076be 100644
--- a/runtime/vm/raw_object.h
+++ b/runtime/vm/raw_object.h
@@ -3011,13 +3011,17 @@
 
   COMPRESSED_POINTER_FIELD(TypeArgumentsPtr, type_arguments)
   VISIT_FROM(type_arguments)
-  COMPRESSED_POINTER_FIELD(TypedDataPtr, index)
   COMPRESSED_POINTER_FIELD(SmiPtr, hash_mask)
   COMPRESSED_POINTER_FIELD(ArrayPtr, data)
   COMPRESSED_POINTER_FIELD(SmiPtr, used_data)
   COMPRESSED_POINTER_FIELD(SmiPtr, deleted_keys)
-  VISIT_TO(deleted_keys)
-  CompressedObjectPtr* to_snapshot(Snapshot::Kind kind) { return to(); }
+  COMPRESSED_POINTER_FIELD(TypedDataPtr, index)
+  VISIT_TO(index)
+
+  CompressedObjectPtr* to_snapshot(Snapshot::Kind kind) {
+    // Do not serialize index.
+    return reinterpret_cast<CompressedObjectPtr*>(&deleted_keys_);
+  }
 };
 
 class UntaggedLinkedHashMap : public UntaggedLinkedHashBase {