Index: src/interpreter/bytecode-register-allocator.h |
diff --git a/src/interpreter/bytecode-register-allocator.h b/src/interpreter/bytecode-register-allocator.h |
index a4f68459cbc4696e8501394dbf812ee0de773b73..b8f737be79386641907f6903123f592f23be838b 100644 |
--- a/src/interpreter/bytecode-register-allocator.h |
+++ b/src/interpreter/bytecode-register-allocator.h |
@@ -14,6 +14,7 @@ namespace interpreter { |
class BytecodeArrayBuilder; |
class Register; |
+class TemporaryRegisterObserver; |
class TemporaryRegisterAllocator final { |
public: |
@@ -54,6 +55,9 @@ class TemporaryRegisterAllocator final { |
// Returns the number of temporary register allocations made. |
int allocation_count() const { return allocation_count_; } |
+ // Sets an observer for temporary register events. |
+ void set_observer(TemporaryRegisterObserver* observer); |
+ |
private: |
// Allocate a temporary register. |
int AllocateTemporaryRegister(); |
@@ -61,10 +65,17 @@ class TemporaryRegisterAllocator final { |
ZoneSet<int> free_temporaries_; |
int allocation_base_; |
int allocation_count_; |
+ TemporaryRegisterObserver* observer_; |
DISALLOW_COPY_AND_ASSIGN(TemporaryRegisterAllocator); |
}; |
+class TemporaryRegisterObserver { |
+ public: |
+ virtual ~TemporaryRegisterObserver() {} |
+ virtual void TemporaryRegisterFreeEvent(Register reg) = 0; |
+}; |
+ |
// A class that allows the instantiator to allocate temporary registers that are |
// cleaned up when scope is closed. |
class BytecodeRegisterAllocator final { |