Index: src/hydrogen.h |
diff --git a/src/hydrogen.h b/src/hydrogen.h |
index 6cc06c6fc7302afcbd542862c4d9e485e8a8c45a..7262299c9a335ddd6029bf3215877cc427f481b8 100644 |
--- a/src/hydrogen.h |
+++ b/src/hydrogen.h |
@@ -313,6 +313,26 @@ class HGraph: public ZoneObject { |
void Verify(bool do_full_verify) const; |
#endif |
+ bool has_osr_loop_entry() { |
+ return osr_loop_entry_.is_set(); |
+ } |
+ |
+ HBasicBlock* osr_loop_entry() { |
+ return osr_loop_entry_.get(); |
+ } |
+ |
+ void set_osr_loop_entry(HBasicBlock* entry) { |
+ osr_loop_entry_.set(entry); |
+ } |
+ |
+ ZoneList<HUnknownOSRValue*>* osr_values() { |
+ return osr_values_.get(); |
+ } |
+ |
+ void set_osr_values(ZoneList<HUnknownOSRValue*>* values) { |
+ osr_values_.set(values); |
+ } |
+ |
private: |
void Postorder(HBasicBlock* block, |
BitVector* visited, |
@@ -353,6 +373,9 @@ class HGraph: public ZoneObject { |
SetOncePointer<HConstant> constant_hole_; |
SetOncePointer<HArgumentsObject> arguments_object_; |
+ SetOncePointer<HBasicBlock> osr_loop_entry_; |
+ SetOncePointer<ZoneList<HUnknownOSRValue*> > osr_values_; |
+ |
DISALLOW_COPY_AND_ASSIGN(HGraph); |
}; |
@@ -886,7 +909,7 @@ class HGraphBuilder: public AstVisitor { |
void VisitLogicalExpression(BinaryOperation* expr); |
void VisitArithmeticExpression(BinaryOperation* expr); |
- void PreProcessOsrEntry(IterationStatement* statement); |
+ bool PreProcessOsrEntry(IterationStatement* statement); |
// True iff. we are compiling for OSR and the statement is the entry. |
bool HasOsrEntryAt(IterationStatement* statement); |
void VisitLoopBody(IterationStatement* stmt, |