| Index: runtime/vm/flow_graph_optimizer.h
|
| ===================================================================
|
| --- runtime/vm/flow_graph_optimizer.h (revision 10885)
|
| +++ runtime/vm/flow_graph_optimizer.h (working copy)
|
| @@ -14,8 +14,8 @@
|
|
|
| class FlowGraphOptimizer : public FlowGraphVisitor {
|
| public:
|
| - explicit FlowGraphOptimizer(const FlowGraph& flow_graph)
|
| - : FlowGraphVisitor(flow_graph.reverse_postorder()) {}
|
| + FlowGraphOptimizer(const FlowGraph& flow_graph, bool use_ssa)
|
| + : FlowGraphVisitor(flow_graph.reverse_postorder()), use_ssa_(use_ssa) {}
|
| virtual ~FlowGraphOptimizer() {}
|
|
|
| void ApplyICData();
|
| @@ -46,6 +46,8 @@
|
|
|
| bool TryInlineInstanceMethod(BindInstr* instr, InstanceCallComp* comp);
|
|
|
| + bool use_ssa_;
|
| +
|
| DISALLOW_COPY_AND_ASSIGN(FlowGraphOptimizer);
|
| };
|
|
|
| @@ -107,6 +109,21 @@
|
| DISALLOW_COPY_AND_ASSIGN(FlowGraphTypePropagator);
|
| };
|
|
|
| +
|
| +class LocalCSE : public ValueObject {
|
| + public:
|
| + explicit LocalCSE(const FlowGraph& flow_graph)
|
| + : blocks_(flow_graph.reverse_postorder()) { }
|
| +
|
| + void Optimize();
|
| +
|
| + private:
|
| + const GrowableArray<BlockEntryInstr*>& blocks_;
|
| +
|
| + DISALLOW_COPY_AND_ASSIGN(LocalCSE);
|
| +};
|
| +
|
| +
|
| } // namespace dart
|
|
|
| #endif // VM_FLOW_GRAPH_OPTIMIZER_H_
|
|
|