| Index: src/hydrogen.h
|
| diff --git a/src/hydrogen.h b/src/hydrogen.h
|
| index 5be839b62fdb4e062a04b11f1e016c3565d1eb0a..b359db3f7dd3a4dffe5207e796e54b988d06fce8 100644
|
| --- a/src/hydrogen.h
|
| +++ b/src/hydrogen.h
|
| @@ -192,40 +192,13 @@ class HLoopInformation: public ZoneObject {
|
| };
|
|
|
|
|
| -class HSubgraph: public ZoneObject {
|
| - public:
|
| - explicit HSubgraph(HGraph* graph)
|
| - : graph_(graph),
|
| - entry_block_(NULL),
|
| - exit_block_(NULL) {
|
| - }
|
| -
|
| - HGraph* graph() const { return graph_; }
|
| - HBasicBlock* entry_block() const { return entry_block_; }
|
| - HBasicBlock* exit_block() const { return exit_block_; }
|
| - void set_exit_block(HBasicBlock* block) {
|
| - exit_block_ = block;
|
| - }
|
| -
|
| - void Initialize(HBasicBlock* block) {
|
| - ASSERT(entry_block_ == NULL);
|
| - entry_block_ = block;
|
| - exit_block_ = block;
|
| - }
|
| -
|
| - protected:
|
| - HGraph* graph_; // The graph this is a subgraph of.
|
| - HBasicBlock* entry_block_;
|
| - HBasicBlock* exit_block_;
|
| -};
|
| -
|
| -
|
| -class HGraph: public HSubgraph {
|
| +class HGraph: public ZoneObject {
|
| public:
|
| explicit HGraph(CompilationInfo* info);
|
|
|
| const ZoneList<HBasicBlock*>* blocks() const { return &blocks_; }
|
| const ZoneList<HPhi*>* phi_list() const { return phi_list_; }
|
| + HBasicBlock* entry_block() const { return entry_block_; }
|
| HEnvironment* start_environment() const { return start_environment_; }
|
|
|
| void InitializeInferredTypes();
|
| @@ -304,6 +277,7 @@ class HGraph: public HSubgraph {
|
| void CheckForBackEdge(HBasicBlock* block, HBasicBlock* successor);
|
|
|
| int next_block_id_;
|
| + HBasicBlock* entry_block_;
|
| HEnvironment* start_environment_;
|
| ZoneList<HBasicBlock*> blocks_;
|
| ZoneList<HValue*> values_;
|
| @@ -315,8 +289,6 @@ class HGraph: public HSubgraph {
|
| SetOncePointer<HConstant> constant_false_;
|
| SetOncePointer<HArgumentsObject> arguments_object_;
|
|
|
| - friend class HSubgraph;
|
| -
|
| DISALLOW_COPY_AND_ASSIGN(HGraph);
|
| };
|
|
|
| @@ -643,7 +615,7 @@ class HGraphBuilder: public AstVisitor {
|
| ast_context_(NULL),
|
| break_scope_(NULL),
|
| graph_(NULL),
|
| - current_subgraph_(NULL),
|
| + current_block_(NULL),
|
| inlined_count_(0) {
|
| // This is not initialized in the initializer list because the
|
| // constructor for the initial state relies on function_state_ == NULL
|
| @@ -655,14 +627,11 @@ class HGraphBuilder: public AstVisitor {
|
|
|
| // Simple accessors.
|
| HGraph* graph() const { return graph_; }
|
| - HSubgraph* subgraph() const { return current_subgraph_; }
|
| BreakAndContinueScope* break_scope() const { return break_scope_; }
|
| void set_break_scope(BreakAndContinueScope* head) { break_scope_ = head; }
|
|
|
| - HBasicBlock* current_block() const { return subgraph()->exit_block(); }
|
| - void set_current_block(HBasicBlock* block) {
|
| - subgraph()->set_exit_block(block);
|
| - }
|
| + HBasicBlock* current_block() const { return current_block_; }
|
| + void set_current_block(HBasicBlock* block) { current_block_ = block; }
|
| HEnvironment* environment() const {
|
| return current_block()->last_environment();
|
| }
|
| @@ -753,10 +722,6 @@ class HGraphBuilder: public AstVisitor {
|
| HBasicBlock* exit_block,
|
| HBasicBlock* continue_block);
|
|
|
| - void AddToSubgraph(HSubgraph* graph, ZoneList<Statement*>* stmts);
|
| - void AddToSubgraph(HSubgraph* graph, Statement* stmt);
|
| - void AddToSubgraph(HSubgraph* graph, Expression* expr);
|
| -
|
| HValue* Top() const { return environment()->Top(); }
|
| void Drop(int n) { environment()->Drop(n); }
|
| void Bind(Variable* var, HValue* value) { environment()->Bind(var, value); }
|
| @@ -908,7 +873,7 @@ class HGraphBuilder: public AstVisitor {
|
| BreakAndContinueScope* break_scope_;
|
|
|
| HGraph* graph_;
|
| - HSubgraph* current_subgraph_;
|
| + HBasicBlock* current_block_;
|
|
|
| int inlined_count_;
|
|
|
|
|