Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(164)

Side by Side Diff: runtime/vm/raw_object.h

Issue 2161853002: Remove dead full snapshot support from the recursive descent serializer. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: . Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « runtime/vm/object.cc ('k') | runtime/vm/raw_object_snapshot.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 #ifndef VM_RAW_OBJECT_H_ 5 #ifndef VM_RAW_OBJECT_H_
6 #define VM_RAW_OBJECT_H_ 6 #define VM_RAW_OBJECT_H_
7 7
8 #include "platform/assert.h" 8 #include "platform/assert.h"
9 #include "vm/atomic.h" 9 #include "vm/atomic.h"
10 #include "vm/globals.h" 10 #include "vm/globals.h"
(...skipping 1153 matching lines...) Expand 10 before | Expand all | Expand 10 after
1164 RawObject* raw_obj_; 1164 RawObject* raw_obj_;
1165 uword raw_value_; 1165 uword raw_value_;
1166 }; 1166 };
1167 }; 1167 };
1168 Entry* data() { OPEN_ARRAY_START(Entry, Entry); } 1168 Entry* data() { OPEN_ARRAY_START(Entry, Entry); }
1169 Entry const* data() const { OPEN_ARRAY_START(Entry, Entry); } 1169 Entry const* data() const { OPEN_ARRAY_START(Entry, Entry); }
1170 1170
1171 Entry* first_entry() { return &ptr()->data()[0]; } 1171 Entry* first_entry() { return &ptr()->data()[0]; }
1172 1172
1173 friend class Object; 1173 friend class Object;
1174 friend class SnapshotReader;
1175 }; 1174 };
1176 1175
1177 1176
1178 class RawInstructions : public RawObject { 1177 class RawInstructions : public RawObject {
1179 RAW_HEAP_OBJECT_IMPLEMENTATION(Instructions); 1178 RAW_HEAP_OBJECT_IMPLEMENTATION(Instructions);
1180 1179
1181 int32_t size_; 1180 int32_t size_;
1182 1181
1183 // Variable length data follows here. 1182 // Variable length data follows here.
1184 uint8_t* data() { OPEN_ARRAY_START(uint8_t, uint8_t); } 1183 uint8_t* data() { OPEN_ARRAY_START(uint8_t, uint8_t); }
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
1247 private: 1246 private:
1248 RAW_HEAP_OBJECT_IMPLEMENTATION(PcDescriptors); 1247 RAW_HEAP_OBJECT_IMPLEMENTATION(PcDescriptors);
1249 1248
1250 int32_t length_; // Number of descriptors. 1249 int32_t length_; // Number of descriptors.
1251 1250
1252 // Variable length data follows here. 1251 // Variable length data follows here.
1253 uint8_t* data() { OPEN_ARRAY_START(uint8_t, intptr_t); } 1252 uint8_t* data() { OPEN_ARRAY_START(uint8_t, intptr_t); }
1254 const uint8_t* data() const { OPEN_ARRAY_START(uint8_t, intptr_t); } 1253 const uint8_t* data() const { OPEN_ARRAY_START(uint8_t, intptr_t); }
1255 1254
1256 friend class Object; 1255 friend class Object;
1257 friend class SnapshotReader;
1258 }; 1256 };
1259 1257
1260 1258
1261 // CodeSourceMap stores a mapping between code PC ranges and source token 1259 // CodeSourceMap stores a mapping between code PC ranges and source token
1262 // positions. 1260 // positions.
1263 class RawCodeSourceMap : public RawObject { 1261 class RawCodeSourceMap : public RawObject {
1264 private: 1262 private:
1265 RAW_HEAP_OBJECT_IMPLEMENTATION(CodeSourceMap); 1263 RAW_HEAP_OBJECT_IMPLEMENTATION(CodeSourceMap);
1266 1264
1267 int32_t length_; // Number of entries. 1265 int32_t length_; // Number of entries.
1268 1266
1269 // Variable length data follows here. 1267 // Variable length data follows here.
1270 uint8_t* data() { OPEN_ARRAY_START(uint8_t, intptr_t); } 1268 uint8_t* data() { OPEN_ARRAY_START(uint8_t, intptr_t); }
1271 const uint8_t* data() const { OPEN_ARRAY_START(uint8_t, intptr_t); } 1269 const uint8_t* data() const { OPEN_ARRAY_START(uint8_t, intptr_t); }
1272 1270
1273 friend class Object; 1271 friend class Object;
1274 friend class SnapshotReader;
1275 }; 1272 };
1276 1273
1277 1274
1278 // Stackmap is an immutable representation of the layout of the stack at a 1275 // Stackmap is an immutable representation of the layout of the stack at a
1279 // PC. The stack map representation consists of a bit map which marks each 1276 // PC. The stack map representation consists of a bit map which marks each
1280 // live object index starting from the base of the frame. 1277 // live object index starting from the base of the frame.
1281 // 1278 //
1282 // The bit map representation is optimized for dense and small bit maps, without 1279 // The bit map representation is optimized for dense and small bit maps, without
1283 // any upper bound. 1280 // any upper bound.
1284 class RawStackmap : public RawObject { 1281 class RawStackmap : public RawObject {
1285 RAW_HEAP_OBJECT_IMPLEMENTATION(Stackmap); 1282 RAW_HEAP_OBJECT_IMPLEMENTATION(Stackmap);
1286 1283
1287 // Regarding changing this to a bitfield: ARM64 requires register_bit_count_ 1284 // Regarding changing this to a bitfield: ARM64 requires register_bit_count_
1288 // to be as large as 96, meaning 7 bits, leaving 25 bits for the length, or 1285 // to be as large as 96, meaning 7 bits, leaving 25 bits for the length, or
1289 // as large as ~33 million entries. If that is sufficient, then these two 1286 // as large as ~33 million entries. If that is sufficient, then these two
1290 // fields can be merged into a BitField. 1287 // fields can be merged into a BitField.
1291 int32_t length_; // Length of payload, in bits. 1288 int32_t length_; // Length of payload, in bits.
1292 int32_t slow_path_bit_count_; // Slow path live values, included in length_. 1289 int32_t slow_path_bit_count_; // Slow path live values, included in length_.
1293 1290
1294 // Offset from code entry point corresponding to this stack map 1291 // Offset from code entry point corresponding to this stack map
1295 // representation. 1292 // representation.
1296 uint32_t pc_offset_; 1293 uint32_t pc_offset_;
1297 1294
1298 // Variable length data follows here (bitmap of the stack layout). 1295 // Variable length data follows here (bitmap of the stack layout).
1299 uint8_t* data() { OPEN_ARRAY_START(uint8_t, uint8_t); } 1296 uint8_t* data() { OPEN_ARRAY_START(uint8_t, uint8_t); }
1300 const uint8_t* data() const { OPEN_ARRAY_START(uint8_t, uint8_t); } 1297 const uint8_t* data() const { OPEN_ARRAY_START(uint8_t, uint8_t); }
1301
1302 friend class SnapshotReader;
1303 }; 1298 };
1304 1299
1305 1300
1306 class RawLocalVarDescriptors : public RawObject { 1301 class RawLocalVarDescriptors : public RawObject {
1307 public: 1302 public:
1308 enum VarInfoKind { 1303 enum VarInfoKind {
1309 kStackVar = 1, 1304 kStackVar = 1,
1310 kContextVar, 1305 kContextVar,
1311 kContextLevel, 1306 kContextLevel,
1312 kSavedCurrentContext, 1307 kSavedCurrentContext,
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
1366 RawObject** to(intptr_t num_entries) { 1361 RawObject** to(intptr_t num_entries) {
1367 return reinterpret_cast<RawObject**>(nameAddrAt(num_entries - 1)); 1362 return reinterpret_cast<RawObject**>(nameAddrAt(num_entries - 1));
1368 } 1363 }
1369 1364
1370 // Variable info with [num_entries_] entries. 1365 // Variable info with [num_entries_] entries.
1371 VarInfo* data() { 1366 VarInfo* data() {
1372 return reinterpret_cast<VarInfo*>(nameAddrAt(ptr()->num_entries_)); 1367 return reinterpret_cast<VarInfo*>(nameAddrAt(ptr()->num_entries_));
1373 } 1368 }
1374 1369
1375 friend class Object; 1370 friend class Object;
1376 friend class SnapshotReader;
1377 }; 1371 };
1378 1372
1379 1373
1380 class RawExceptionHandlers : public RawObject { 1374 class RawExceptionHandlers : public RawObject {
1381 public: 1375 public:
1382 // The index into the ExceptionHandlers table corresponds to 1376 // The index into the ExceptionHandlers table corresponds to
1383 // the try_index of the handler. 1377 // the try_index of the handler.
1384 struct HandlerInfo { 1378 struct HandlerInfo {
1385 uint32_t handler_pc_offset; // PC offset value of handler. 1379 uint32_t handler_pc_offset; // PC offset value of handler.
1386 int16_t outer_try_index; // Try block index of enclosing try block. 1380 int16_t outer_try_index; // Try block index of enclosing try block.
1387 int8_t needs_stacktrace; // True if a stacktrace is needed. 1381 int8_t needs_stacktrace; // True if a stacktrace is needed.
1388 int8_t has_catch_all; // Catches all exceptions. 1382 int8_t has_catch_all; // Catches all exceptions.
1389 }; 1383 };
1390 1384
1391 private: 1385 private:
1392 RAW_HEAP_OBJECT_IMPLEMENTATION(ExceptionHandlers); 1386 RAW_HEAP_OBJECT_IMPLEMENTATION(ExceptionHandlers);
1393 1387
1394 // Number of exception handler entries. 1388 // Number of exception handler entries.
1395 int32_t num_entries_; 1389 int32_t num_entries_;
1396 1390
1397 // Array with [num_entries_] entries. Each entry is an array of all handled 1391 // Array with [num_entries_] entries. Each entry is an array of all handled
1398 // exception types. 1392 // exception types.
1399 RawArray* handled_types_data_; 1393 RawArray* handled_types_data_;
1400 1394
1401 // Exception handler info of length [num_entries_]. 1395 // Exception handler info of length [num_entries_].
1402 const HandlerInfo* data() const { OPEN_ARRAY_START(HandlerInfo, intptr_t); } 1396 const HandlerInfo* data() const { OPEN_ARRAY_START(HandlerInfo, intptr_t); }
1403 HandlerInfo* data() { OPEN_ARRAY_START(HandlerInfo, intptr_t); } 1397 HandlerInfo* data() { OPEN_ARRAY_START(HandlerInfo, intptr_t); }
1404 1398
1405 friend class Object; 1399 friend class Object;
1406 friend class SnapshotReader;
1407 }; 1400 };
1408 1401
1409 1402
1410 class RawContext : public RawObject { 1403 class RawContext : public RawObject {
1411 RAW_HEAP_OBJECT_IMPLEMENTATION(Context); 1404 RAW_HEAP_OBJECT_IMPLEMENTATION(Context);
1412 1405
1413 int32_t num_variables_; 1406 int32_t num_variables_;
1414 1407
1415 RawObject** from() { return reinterpret_cast<RawObject**>(&ptr()->parent_); } 1408 RawObject** from() { return reinterpret_cast<RawObject**>(&ptr()->parent_); }
1416 RawContext* parent_; 1409 RawContext* parent_;
(...skipping 1009 matching lines...) Expand 10 before | Expand all | Expand 10 after
2426 COMPILE_ASSERT(kExternalTypedDataInt8ArrayCid == 2419 COMPILE_ASSERT(kExternalTypedDataInt8ArrayCid ==
2427 kTypedDataInt8ArrayViewCid + 15); 2420 kTypedDataInt8ArrayViewCid + 15);
2428 COMPILE_ASSERT(kByteBufferCid == kExternalTypedDataInt8ArrayCid + 14); 2421 COMPILE_ASSERT(kByteBufferCid == kExternalTypedDataInt8ArrayCid + 14);
2429 COMPILE_ASSERT(kNullCid == kByteBufferCid + 1); 2422 COMPILE_ASSERT(kNullCid == kByteBufferCid + 1);
2430 return (kNullCid - kTypedDataInt8ArrayCid); 2423 return (kNullCid - kTypedDataInt8ArrayCid);
2431 } 2424 }
2432 2425
2433 } // namespace dart 2426 } // namespace dart
2434 2427
2435 #endif // VM_RAW_OBJECT_H_ 2428 #endif // VM_RAW_OBJECT_H_
OLDNEW
« no previous file with comments | « runtime/vm/object.cc ('k') | runtime/vm/raw_object_snapshot.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698