| Index: src/compiler/move-optimizer.cc
|
| diff --git a/src/compiler/move-optimizer.cc b/src/compiler/move-optimizer.cc
|
| index b869185e60ed2aed9dbc939878d1874e92e4eda6..6d71ef2e1b6b0098bb8ee1f26979ffaaf3dbfafb 100644
|
| --- a/src/compiler/move-optimizer.cc
|
| +++ b/src/compiler/move-optimizer.cc
|
| @@ -59,6 +59,14 @@ void MoveOptimizer::Run() {
|
| }
|
| for (auto block : code()->instruction_blocks()) {
|
| if (block->PredecessorCount() <= 1) continue;
|
| + bool has_only_deferred = true;
|
| + for (RpoNumber pred_id : block->predecessors()) {
|
| + if (!code()->InstructionBlockAt(pred_id)->IsDeferred()) {
|
| + has_only_deferred = false;
|
| + break;
|
| + }
|
| + }
|
| + if (has_only_deferred) continue;
|
| OptimizeMerge(block);
|
| }
|
| for (auto gap : to_finalize_) {
|
|
|