27 : caller_graph_(caller_graph), call_(call), exits_(4) {}
55 BlockEntryInstr* ExitBlockAt(intptr_t i)
const {
56 ASSERT(exits_[i].exit_block !=
nullptr);
57 return exits_[i].exit_block;
60 Instruction* LastInstructionAt(intptr_t i)
const {
64 Value* ValueAt(intptr_t i)
const {
return ReturnAt(i)->
value(); }
66 DartReturnInstr* ReturnAt(intptr_t i)
const {
return exits_[i].exit_return; }
68 static int LowestBlockIdFirst(
const Data*
a,
const Data*
b);
70 void RemoveUnreachableExits(FlowGraph* callee_graph);
72 Definition* JoinReturns(BlockEntryInstr** exit_block,
73 Instruction** last_instruction,
76 Zone* zone()
const {
return caller_graph_->
zone(); }
78 FlowGraph* caller_graph_;
80 GrowableArray<Data> exits_;