Index: src/hydrogen.h |
diff --git a/src/hydrogen.h b/src/hydrogen.h |
index 3a8d242b8c14d5bcceae6e3207ee15526c228f8f..f80aca1e3cddfb3317ce33a4d08853efdfebf32e 100644 |
--- a/src/hydrogen.h |
+++ b/src/hydrogen.h |
@@ -46,6 +46,7 @@ class FunctionState; |
class HEnvironment; |
class HGraph; |
class HLoopInformation; |
+class HOsrBuilder; |
class HTracer; |
class LAllocator; |
class LChunk; |
@@ -358,24 +359,16 @@ class HGraph: public ZoneObject { |
void Verify(bool do_full_verify) const; |
#endif |
- bool has_osr_loop_entry() { |
- return osr_loop_entry_.is_set(); |
+ bool has_osr() { |
+ return osr_ != NULL; |
} |
- HBasicBlock* osr_loop_entry() { |
- return osr_loop_entry_.get(); |
+ void set_osr(HOsrBuilder* osr) { |
+ osr_ = osr; |
} |
- 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); |
+ HOsrBuilder* osr() { |
+ return osr_; |
} |
int update_type_change_checksum(int delta) { |
@@ -495,8 +488,7 @@ class HGraph: public ZoneObject { |
SetOncePointer<HConstant> constant_invalid_context_; |
SetOncePointer<HArgumentsObject> arguments_object_; |
- SetOncePointer<HBasicBlock> osr_loop_entry_; |
- SetOncePointer<ZoneList<HUnknownOSRValue*> > osr_values_; |
+ HOsrBuilder* osr_; |
CompilationInfo* info_; |
Zone* zone_; |
@@ -1438,7 +1430,6 @@ class HGraphBuilder { |
int no_side_effects_scope_count_; |
}; |
- |
class HOptimizedGraphBuilder: public HGraphBuilder, public AstVisitor { |
public: |
// A class encapsulating (lazily-allocated) break and continue blocks for |
@@ -1596,8 +1587,6 @@ class HOptimizedGraphBuilder: public HGraphBuilder, public AstVisitor { |
void VisitArithmeticExpression(BinaryOperation* expr); |
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, |
HBasicBlock* loop_entry, |
BreakAndContinueInfo* break_info); |
@@ -1959,9 +1948,12 @@ class HOptimizedGraphBuilder: public HGraphBuilder, public AstVisitor { |
bool inline_bailout_; |
+ HOsrBuilder* osr_; |
+ |
friend class FunctionState; // Pushes and pops the state stack. |
friend class AstContext; // Pushes and pops the AST context stack. |
friend class KeyedLoadFastElementStub; |
+ friend class HOsrBuilder; |
DISALLOW_COPY_AND_ASSIGN(HOptimizedGraphBuilder); |
}; |