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

Unified Diff: runtime/vm/deopt_instructions.h

Issue 1054393003: Compress deopt instructions in memory using variable length encoding. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: fix other architectures Created 5 years, 8 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 side-by-side diff with in-line comments
Download patch
Index: runtime/vm/deopt_instructions.h
diff --git a/runtime/vm/deopt_instructions.h b/runtime/vm/deopt_instructions.h
index 6583010cc92c05c5de6bdb91a77c7366eb818073..47ea0958e0015b67a834e347b494bf21b47f4827 100644
--- a/runtime/vm/deopt_instructions.h
+++ b/runtime/vm/deopt_instructions.h
@@ -98,7 +98,7 @@ class DeoptContext {
return (deopt_flags_ & flag) != 0;
}
- RawDeoptInfo* deopt_info() const { return deopt_info_; }
+ RawTypedData* deopt_info() const { return deopt_info_; }
// Fills the destination frame but defers materialization of
// objects.
@@ -206,7 +206,7 @@ class DeoptContext {
RawCode* code_;
RawArray* object_table_;
- RawDeoptInfo* deopt_info_;
+ RawTypedData* deopt_info_;
bool dest_frame_is_allocated_;
intptr_t* dest_frame_;
intptr_t dest_frame_size_;
@@ -257,7 +257,6 @@ class DeoptInstr : public ZoneAllocated {
kCallerFp,
kCallerPp,
kCallerPc,
- kSuffix,
kMaterializedObjectRef,
kMaterializeObject
};
@@ -285,10 +284,6 @@ class DeoptInstr : public ZoneAllocated {
return (kind() == other.kind()) && (source_index() == other.source_index());
}
- // Decode the payload of a suffix command. Return the suffix length and
- // set the output parameter info_number to the index of the shared suffix.
- static intptr_t DecodeSuffix(intptr_t source_index, intptr_t* info_number);
-
// Get the code and return address which is encoded in this
// kRetAfterAddress deopt instruction.
static uword GetRetAddress(DeoptInstr* instr,
@@ -457,7 +452,7 @@ class DeoptInfoBuilder : public ValueObject {
// Returns the index of the next stack slot. Used for verification.
intptr_t EmitMaterializationArguments(intptr_t dest_index);
- RawDeoptInfo* CreateDeoptInfo(const Array& deopt_table);
+ RawTypedData* CreateDeoptInfo(const Array& deopt_table);
// Mark the actual start of the frame description after all materialization
// instructions were emitted. Used for verification purposes.
@@ -517,7 +512,7 @@ class DeoptTable : public AllStatic {
static void SetEntry(const Array& table,
intptr_t index,
const Smi& offset,
- const DeoptInfo& info,
+ const TypedData& info,
const Smi& reason_and_flags);
// Return the length of the table in entries.
@@ -528,7 +523,7 @@ class DeoptTable : public AllStatic {
static void GetEntry(const Array& table,
intptr_t index,
Smi* offset,
- DeoptInfo* info,
+ TypedData* info,
Smi* reason_and_flags);
static RawSmi* EncodeReasonAndFlags(ICData::DeoptReasonId reason,

Powered by Google App Engine
This is Rietveld 408576698