Chromium Code Reviews| Index: src/deoptimizer.cc |
| diff --git a/src/deoptimizer.cc b/src/deoptimizer.cc |
| index 723d3f692e6b3e45e415534d20d21e1eb977ee03..ea27bc55112b92837f444b34ca142b7993cd30ec 100644 |
| --- a/src/deoptimizer.cc |
| +++ b/src/deoptimizer.cc |
| @@ -787,7 +787,6 @@ void Deoptimizer::DoComputeOutputFrames() { |
| case Translation::DOUBLE_STACK_SLOT: |
| case Translation::LITERAL: |
| case Translation::ARGUMENTS_OBJECT: |
| - case Translation::DUPLICATE: |
| default: |
| UNREACHABLE(); |
| break; |
| @@ -1715,14 +1714,8 @@ void Deoptimizer::DoTranslateCommand(TranslationIterator* iterator, |
| const intptr_t kPlaceholder = reinterpret_cast<intptr_t>(Smi::FromInt(0)); |
| bool is_native = value_type == TRANSLATED_VALUE_IS_NATIVE; |
| - // Ignore commands marked as duplicate and act on the first non-duplicate. |
| Translation::Opcode opcode = |
| static_cast<Translation::Opcode>(iterator->Next()); |
| - while (opcode == Translation::DUPLICATE) { |
| - opcode = static_cast<Translation::Opcode>(iterator->Next()); |
| - iterator->Skip(Translation::NumberOfOperandsFor(opcode)); |
| - opcode = static_cast<Translation::Opcode>(iterator->Next()); |
| - } |
| switch (opcode) { |
| case Translation::BEGIN: |
| @@ -1732,9 +1725,6 @@ void Deoptimizer::DoTranslateCommand(TranslationIterator* iterator, |
| case Translation::GETTER_STUB_FRAME: |
| case Translation::SETTER_STUB_FRAME: |
| case Translation::COMPILED_STUB_FRAME: |
| - case Translation::DUPLICATE: |
| - UNREACHABLE(); |
|
Michael Starzinger
2013/06/11 17:24:07
Don't remove the unreachable assertion, other case
titzer
2013/06/12 09:30:04
Done.
|
| - return; |
| case Translation::REGISTER: { |
| int input_reg = iterator->Next(); |
| @@ -1998,10 +1988,6 @@ bool Deoptimizer::DoOsrTranslateCommand(TranslationIterator* iterator, |
| Translation::Opcode opcode = |
| static_cast<Translation::Opcode>(iterator->Next()); |
| - bool duplicate = (opcode == Translation::DUPLICATE); |
| - if (duplicate) { |
| - opcode = static_cast<Translation::Opcode>(iterator->Next()); |
| - } |
| switch (opcode) { |
| case Translation::BEGIN: |
| @@ -2011,9 +1997,6 @@ bool Deoptimizer::DoOsrTranslateCommand(TranslationIterator* iterator, |
| case Translation::GETTER_STUB_FRAME: |
| case Translation::SETTER_STUB_FRAME: |
| case Translation::COMPILED_STUB_FRAME: |
| - case Translation::DUPLICATE: |
| - UNREACHABLE(); // Malformed input. |
|
Michael Starzinger
2013/06/11 17:24:07
Don't remove the unreachable assertion, other case
titzer
2013/06/12 09:30:04
Done.
|
| - return false; |
| case Translation::REGISTER: { |
| int output_reg = iterator->Next(); |
| @@ -2170,7 +2153,7 @@ bool Deoptimizer::DoOsrTranslateCommand(TranslationIterator* iterator, |
| } |
| } |
| - if (!duplicate) *input_offset -= kPointerSize; |
| + *input_offset -= kPointerSize; |
| return true; |
| } |
| @@ -2620,15 +2603,8 @@ void Translation::StoreArgumentsObject(bool args_known, |
| } |
| -void Translation::MarkDuplicate() { |
| - buffer_->Add(DUPLICATE, zone()); |
| -} |
| - |
| - |
| int Translation::NumberOfOperandsFor(Opcode opcode) { |
| switch (opcode) { |
| - case DUPLICATE: |
| - return 0; |
| case GETTER_STUB_FRAME: |
| case SETTER_STUB_FRAME: |
| case REGISTER: |
| @@ -2693,8 +2669,6 @@ const char* Translation::StringFor(Opcode opcode) { |
| return "LITERAL"; |
| case ARGUMENTS_OBJECT: |
| return "ARGUMENTS_OBJECT"; |
| - case DUPLICATE: |
| - return "DUPLICATE"; |
| } |
| UNREACHABLE(); |
| return ""; |
| @@ -2746,7 +2720,6 @@ SlotRef SlotRef::ComputeSlotForNextArgument(TranslationIterator* iterator, |
| case Translation::INT32_REGISTER: |
| case Translation::UINT32_REGISTER: |
| case Translation::DOUBLE_REGISTER: |
| - case Translation::DUPLICATE: |
| // We are at safepoint which corresponds to call. All registers are |
| // saved by caller so there would be no live registers at this |
| // point. Thus these translation commands should not be used. |