Chromium Code Reviews| 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; |
|
Jarin
2015/08/04 19:39:43
Could you explain why we skip the optimization her
Mircea Trofin
2015/08/04 20:34:46
This would pull down common fills. If the fills oc
Mircea Trofin
2015/08/04 20:39:04
Should have added: the last statement of the Multi
|
| OptimizeMerge(block); |
| } |
| for (auto gap : to_finalize_) { |