| Index: src/compiler/graph-reducer.h
|
| diff --git a/src/compiler/graph-reducer.h b/src/compiler/graph-reducer.h
|
| index e0e4f7a3d30b14b53f246efe8b3f5d221be17052..d54c3186c045c7197526c5fa7ddf4dbca1bb7f33 100644
|
| --- a/src/compiler/graph-reducer.h
|
| +++ b/src/compiler/graph-reducer.h
|
| @@ -55,20 +55,39 @@ class Reducer {
|
| // Performs an iterative reduction of a node graph.
|
| class GraphReducer FINAL {
|
| public:
|
| - explicit GraphReducer(Graph* graph);
|
| + GraphReducer(Graph* graph, Zone* zone);
|
|
|
| Graph* graph() const { return graph_; }
|
|
|
| - void AddReducer(Reducer* reducer) { reducers_.push_back(reducer); }
|
| + void AddReducer(Reducer* reducer);
|
|
|
| // Reduce a single node.
|
| - void ReduceNode(Node* node);
|
| + void ReduceNode(Node* const);
|
| // Reduce the whole graph.
|
| void ReduceGraph();
|
|
|
| private:
|
| + enum class State : uint8_t;
|
| +
|
| + // Reduce a single node.
|
| + Reduction Reduce(Node* const);
|
| + // Reduce the node on top of the stack.
|
| + void ReduceTop();
|
| +
|
| + // Node stack operations.
|
| + void Pop();
|
| + void Push(Node* const);
|
| + Node* Top() const;
|
| +
|
| + // Revisit queue operations.
|
| + bool Recurse(Node* const);
|
| + void Revisit(Node* const);
|
| +
|
| Graph* graph_;
|
| ZoneVector<Reducer*> reducers_;
|
| + ZoneStack<Node*> revisit_;
|
| + ZoneStack<Node*> stack_;
|
| + ZoneDeque<State> state_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(GraphReducer);
|
| };
|
|
|