Chromium Code Reviews| Index: src/hydrogen.cc |
| diff --git a/src/hydrogen.cc b/src/hydrogen.cc |
| index 3fb867bde3d5ed6403c6ee474a2e5dca71469d1c..a0f6c22ed991495e7e6981790916dcae247698a0 100644 |
| --- a/src/hydrogen.cc |
| +++ b/src/hydrogen.cc |
| @@ -3915,7 +3915,13 @@ void HGraph::RestoreActualValues() { |
| for (HInstructionIterator it(block); !it.Done(); it.Advance()) { |
| HInstruction* instruction = it.Current(); |
| - if (instruction->ActualValue() != instruction) { |
| + if (instruction->CheckFlag(HValue::kIsDead)) { |
| + // The instruction was marked as deleted but left in the graph |
| + // as a control flow dependency point for subsequent |
| + // instructions. |
| + instruction->DeleteAndReplaceWith(instruction->ActualValue()); |
|
titzer
2014/01/23 18:34:46
Not sure this is safe for every kind of instructio
Igor Sheludko
2014/01/28 17:45:05
Done.
|
| + |
| + } else if (instruction->ActualValue() != instruction) { |
| ASSERT(instruction->IsInformativeDefinition()); |
| if (instruction->IsPurelyInformativeDefinition()) { |
| instruction->DeleteAndReplaceWith(instruction->RedefinedOperand()); |