34 void HMarkUnreachableBlocksPhase::MarkUnreachableBlocks() {
38 const ZoneList<HBasicBlock*>* blocks =
graph()->blocks();
41 for (
int i = 0; i < blocks->length(); i++) {
42 HBasicBlock* block = blocks->at(i);
43 if (!block->IsReachable())
continue;
44 bool is_reachable = blocks->at(0) == block;
45 for (HPredecessorIterator it(block); !it.Done(); it.Advance()) {
46 HBasicBlock* predecessor = it.Current();
51 if (predecessor->IsReachable() && !predecessor->IsDeoptimizing()) {
52 HBasicBlock* pred_succ;
53 bool known_pred_succ =
54 predecessor->end()->KnownSuccessorBlock(&pred_succ);
55 if (!known_pred_succ || pred_succ == block) {
60 if (block->is_osr_entry()) {
65 block->MarkUnreachable();
74 MarkUnreachableBlocks();