diff options
Diffstat (limited to 'compiler/optimizing/nodes.cc')
| -rw-r--r-- | compiler/optimizing/nodes.cc | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/compiler/optimizing/nodes.cc b/compiler/optimizing/nodes.cc index 47da9cc17c..483c09e5a9 100644 --- a/compiler/optimizing/nodes.cc +++ b/compiler/optimizing/nodes.cc @@ -19,6 +19,7 @@ #include "code_generator.h" #include "ssa_builder.h" #include "base/bit_vector-inl.h" +#include "base/bit_utils.h" #include "utils/growable_array.h" #include "scoped_thread_state_change.h" @@ -1290,11 +1291,16 @@ void HGraph::DeleteDeadBlock(HBasicBlock* block) { block->RemovePhi(it.Current()->AsPhi()); } + if (block->IsExitBlock()) { + exit_block_ = nullptr; + } + reverse_post_order_.Delete(block); blocks_.Put(block->GetBlockId(), nullptr); } void HGraph::InlineInto(HGraph* outer_graph, HInvoke* invoke) { + DCHECK(HasExitBlock()) << "Unimplemented scenario"; if (GetBlocks().Size() == 3) { // Simple case of an entry block, a body block, and an exit block. // Put the body block's instruction into `invoke`'s block. |