Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(197)

Unified Diff: src/deoptimizer.cc

Issue 16381006: Change PC for OSR entries to point to something more sensible (i.e. the first UnknownOsrValue), rem… (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 7 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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.
« no previous file with comments | « src/deoptimizer.h ('k') | src/ia32/lithium-codegen-ia32.cc » ('j') | src/lithium-allocator.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698