| Index: runtime/vm/flow_graph.h
|
| diff --git a/runtime/vm/flow_graph.h b/runtime/vm/flow_graph.h
|
| index 3d7c51d12e2f90d7b0c58fd43ef695a2fe34d4cb..31e3217d6d09863f8b7ba5188634f6ec91cfa26a 100644
|
| --- a/runtime/vm/flow_graph.h
|
| +++ b/runtime/vm/flow_graph.h
|
| @@ -10,11 +10,15 @@
|
|
|
| namespace dart {
|
|
|
| +class BindInstr;
|
| class BlockEntryInstr;
|
| +class StaticCallComp;
|
| class Definition;
|
| class FlowGraphBuilder;
|
| class GraphEntryInstr;
|
| class PhiInstr;
|
| +class ReturnInstr;
|
| +class Value;
|
|
|
| // Class to incapsulate the construction and manipulation of the flow graph.
|
| class FlowGraph: public ZoneAllocated {
|
| @@ -60,12 +64,19 @@ class FlowGraph: public ZoneAllocated {
|
| return graph_entry_;
|
| }
|
|
|
| + ZoneGrowableArray<ReturnInstr*>* exits() const { return exits_; }
|
| + void set_exits(ZoneGrowableArray<ReturnInstr*>* exits) { exits_ = exits; }
|
| +
|
| intptr_t alloc_ssa_temp_index() { return current_ssa_temp_index_++; }
|
|
|
| // Operations on the flow graph.
|
| - void ComputeSSA();
|
| + void ComputeSSA(intptr_t next_virtual_register_number = 0);
|
| void ComputeUseLists();
|
|
|
| + void InlineCall(BindInstr* caller_instr,
|
| + StaticCallComp* caller_comp,
|
| + FlowGraph* callee_graph);
|
| +
|
| // TODO(zerny): Once the SSA is feature complete this should be removed.
|
| void Bailout(const char* reason) const;
|
|
|
| @@ -121,6 +132,7 @@ class FlowGraph: public ZoneAllocated {
|
| GrowableArray<BlockEntryInstr*> preorder_;
|
| GrowableArray<BlockEntryInstr*> postorder_;
|
| GrowableArray<BlockEntryInstr*> reverse_postorder_;
|
| + ZoneGrowableArray<ReturnInstr*>* exits_;
|
| };
|
|
|
| } // namespace dart
|
|
|