| Index: runtime/vm/deopt_instructions.cc
|
| ===================================================================
|
| --- runtime/vm/deopt_instructions.cc (revision 35455)
|
| +++ runtime/vm/deopt_instructions.cc (working copy)
|
| @@ -36,7 +36,7 @@
|
| cpu_registers_(cpu_registers),
|
| fpu_registers_(fpu_registers),
|
| num_args_(0),
|
| - deopt_reason_(kDeoptUnknown),
|
| + deopt_reason_(ICData::kDeoptUnknown),
|
| isolate_(Isolate::Current()),
|
| deferred_boxes_(NULL),
|
| deferred_object_refs_(NULL),
|
| @@ -44,12 +44,12 @@
|
| deferred_objects_(NULL) {
|
| object_table_ = code.object_table();
|
|
|
| - intptr_t deopt_reason = kDeoptUnknown;
|
| + ICData::DeoptReasonId deopt_reason = ICData::kDeoptUnknown;
|
| const DeoptInfo& deopt_info =
|
| DeoptInfo::Handle(code.GetDeoptInfoAtPc(frame->pc(), &deopt_reason));
|
| ASSERT(!deopt_info.IsNull());
|
| deopt_info_ = deopt_info.raw();
|
| - deopt_reason_ = static_cast<DeoptReasonId>(deopt_reason);
|
| + deopt_reason_ = deopt_reason;
|
|
|
| const Function& function = Function::Handle(code.function());
|
|
|
| @@ -96,9 +96,9 @@
|
|
|
| if (FLAG_trace_deoptimization || FLAG_trace_deoptimization_verbose) {
|
| OS::PrintErr(
|
| - "Deoptimizing (reason %" Pd " '%s') at pc %#" Px " '%s' (count %d)\n",
|
| + "Deoptimizing (reason %d '%s') at pc %#" Px " '%s' (count %d)\n",
|
| deopt_reason,
|
| - DeoptReasonToText(deopt_reason_),
|
| + DeoptReasonToCString(deopt_reason_),
|
| frame->pc(),
|
| function.ToFullyQualifiedCString(),
|
| function.deoptimization_counter());
|
| @@ -615,9 +615,10 @@
|
| ICData& ic_data = ICData::Handle();
|
| CodePatcher::GetInstanceCallAt(pc, code, &ic_data);
|
| if (!ic_data.IsNull()) {
|
| - ic_data.set_deopt_reason(deopt_context->deopt_reason());
|
| + ic_data.AddDeoptReason(deopt_context->deopt_reason());
|
| }
|
| - } else if (deopt_context->deopt_reason() == kDeoptHoistedCheckClass) {
|
| + } else if (deopt_context->deopt_reason() ==
|
| + ICData::kDeoptHoistedCheckClass) {
|
| // Prevent excessive deoptimization.
|
| Function::Handle(code.function()).set_allows_hoisting_check_class(false);
|
| }
|
|
|