Index: src/deoptimizer.cc |
diff --git a/src/deoptimizer.cc b/src/deoptimizer.cc |
index f6eafd87589a891c56c5e15ddf41f3e9fcc98df9..6daa249b41ce82030281a7bdc196d7382f35b01d 100644 |
--- a/src/deoptimizer.cc |
+++ b/src/deoptimizer.cc |
@@ -493,19 +493,18 @@ int Deoptimizer::GetDeoptimizationId(Address addr, BailoutType type) { |
int Deoptimizer::GetOutputInfo(DeoptimizationOutputData* data, |
- unsigned id, |
+ BailoutId id, |
SharedFunctionInfo* shared) { |
// TODO(kasperl): For now, we do a simple linear search for the PC |
// offset associated with the given node id. This should probably be |
// changed to a binary search. |
int length = data->DeoptPoints(); |
- Smi* smi_id = Smi::FromInt(id); |
for (int i = 0; i < length; i++) { |
- if (data->AstId(i) == smi_id) { |
+ if (data->AstId(i) == id) { |
return data->PcAndState(i)->value(); |
} |
} |
- PrintF("[couldn't find pc offset for node=%u]\n", id); |
+ PrintF("[couldn't find pc offset for node=%d]\n", id.ToInt()); |
PrintF("[method: %s]\n", *shared->DebugName()->ToCString()); |
// Print the source code if available. |
HeapStringAllocator string_allocator; |
@@ -552,7 +551,7 @@ void Deoptimizer::DoComputeOutputFrames() { |
// described by the input data. |
DeoptimizationInputData* input_data = |
DeoptimizationInputData::cast(optimized_code_->deoptimization_data()); |
- unsigned node_id = input_data->AstId(bailout_id_)->value(); |
+ BailoutId node_id = input_data->AstId(bailout_id_); |
ByteArray* translations = input_data->TranslationByteArray(); |
unsigned translation_index = |
input_data->TranslationIndex(bailout_id_)->value(); |
@@ -604,9 +603,9 @@ void Deoptimizer::DoComputeOutputFrames() { |
PrintF("[deoptimizing: end 0x%08" V8PRIxPTR " ", |
reinterpret_cast<intptr_t>(function)); |
function->PrintName(); |
- PrintF(" => node=%u, pc=0x%08" V8PRIxPTR ", state=%s, alignment=%s," |
+ PrintF(" => node=%d, pc=0x%08" V8PRIxPTR ", state=%s, alignment=%s," |
" took %0.3f ms]\n", |
- node_id, |
+ node_id.ToInt(), |
output_[index]->GetPc(), |
FullCodeGenerator::State2String( |
static_cast<FullCodeGenerator::State>( |
@@ -1358,9 +1357,11 @@ void Translation::BeginArgumentsAdaptorFrame(int literal_id, unsigned height) { |
} |
-void Translation::BeginJSFrame(int node_id, int literal_id, unsigned height) { |
+void Translation::BeginJSFrame(BailoutId node_id, |
+ int literal_id, |
+ unsigned height) { |
buffer_->Add(JS_FRAME, zone()); |
- buffer_->Add(node_id, zone()); |
+ buffer_->Add(node_id.ToInt(), zone()); |
buffer_->Add(literal_id, zone()); |
buffer_->Add(height, zone()); |
} |
@@ -1578,7 +1579,7 @@ Vector<SlotRef> SlotRef::ComputeSlotMappingForArguments( |
int inlined_jsframe_index, |
int formal_parameter_count) { |
AssertNoAllocation no_gc; |
- int deopt_index = AstNode::kNoNumber; |
+ int deopt_index = Safepoint::kNoDeoptimizationIndex; |
DeoptimizationInputData* data = |
static_cast<OptimizedFrame*>(frame)->GetDeoptimizationData(&deopt_index); |
TranslationIterator it(data->TranslationByteArray(), |