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

Unified Diff: runtime/vm/object.h

Issue 11040058: Compress deoptimization information by sharing common suffixes. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Ditto. Created 8 years, 2 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
« no previous file with comments | « runtime/vm/message.cc ('k') | runtime/vm/object.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: runtime/vm/object.h
diff --git a/runtime/vm/object.h b/runtime/vm/object.h
index 1fbca5a5d2808f5fa1eee4d65a1d720949de305b..fbbfabc1b17133da72486ae233ff086c6b6d99a4 100644
--- a/runtime/vm/object.h
+++ b/runtime/vm/object.h
@@ -28,6 +28,7 @@ CLASS_LIST(DEFINE_FORWARD_DECLARATION)
class Api;
class Assembler;
class Code;
+class DeoptInstr;
class LocalScope;
class Symbols;
@@ -2328,8 +2329,13 @@ class DeoptInfo : public Object {
};
public:
+ // The number of instructions.
intptr_t Length() const;
+ // The number of real (non-suffix) instructions needed to execute the
+ // deoptimization translation.
+ intptr_t TranslationLength() const;
+
static RawDeoptInfo* New(intptr_t num_commands);
static const intptr_t kBytesPerElement = (kNumberOfEntries * kWordSize);
@@ -2357,6 +2363,11 @@ class DeoptInfo : public Object {
return index;
}
+ // Unpack the entire translation into an array of deoptimization
+ // instructions. This copies any shared suffixes into the array.
+ void ToInstructions(const Array& table,
+ GrowableArray<DeoptInstr*>* instructions) const;
+
private:
intptr_t* EntryAddr(intptr_t index, intptr_t entry_offset) const {
ASSERT((index >=0) && (index < Length()));
« no previous file with comments | « runtime/vm/message.cc ('k') | runtime/vm/object.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698