Chromium Code Reviews| Index: src/lithium-allocator.cc |
| =================================================================== |
| --- src/lithium-allocator.cc (revision 7662) |
| +++ src/lithium-allocator.cc (working copy) |
| @@ -1047,9 +1047,10 @@ |
| } |
| } |
| + // Insert spill-move in the first section of the first gap. |
| LiveRange* live_range = LiveRangeFor(phi->id()); |
| - LLabel* label = chunk_->GetLabel(phi->block()->block_id()); |
| - label->GetOrCreateParallelMove(LGap::START)-> |
| + LGap* gap = chunk_->GetFirstGap(phi->block()); |
| + gap->GetOrCreateParallelMove(LGap::BEFORE)-> |
| AddMove(phi_operand, live_range->GetSpillOperand()); |
| live_range->SetSpillStartIndex(phi->block()->first_instruction_index()); |
| } |
| @@ -1124,7 +1125,8 @@ |
| if (!pred_op->Equals(cur_op)) { |
| LGap* gap = NULL; |
|
Vyacheslav Egorov (Chromium)
2011/04/19 15:01:08
you can duplicate&move this variable into branches
fschneider
2011/04/19 16:01:05
Done.
|
| if (block->predecessors()->length() == 1) { |
| - gap = GapAt(block->first_instruction_index()); |
| + gap = GapAt(block->first_instruction_index() + 1); |
|
Vyacheslav Egorov (Chromium)
2011/04/19 15:01:08
GetFirstGap()?
fschneider
2011/04/19 16:01:05
Done.
|
| + gap->GetOrCreateParallelMove(LGap::BEFORE)->AddMove(pred_op, cur_op); |
| } else { |
| ASSERT(pred->end()->SecondSuccessor() == NULL); |
| gap = GetLastGap(pred); |
| @@ -1143,8 +1145,8 @@ |
| branch->pointer_map()->RecordPointer(cur_op); |
| } |
| } |
| + gap->GetOrCreateParallelMove(LGap::START)->AddMove(pred_op, cur_op); |
| } |
| - gap->GetOrCreateParallelMove(LGap::START)->AddMove(pred_op, cur_op); |
| } |
| } |
| } |