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_ |