Make deopt testing compatible with runtime optimization status queries.

When deopt testing is activated, a new status code will be returned by optimization status queries (status=maybe deopted).

This will make those tests work that test for 'not status=no', when performing deopt testing.

R=jkummerow@chromium.org

Review URL: https://codereview.chromium.org/19184002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15681 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
parent 38a87d2c
......@@ -8464,15 +8464,13 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_CompleteOptimization) {
RUNTIME_FUNCTION(MaybeObject*, Runtime_GetOptimizationStatus) {
HandleScope scope(isolate);
ASSERT(args.length() == 1);
// The least significant bit (after untagging) indicates whether the
// function is currently optimized, regardless of reason.
if (!V8::UseCrankshaft()) {
return Smi::FromInt(4); // 4 == "never".
}
CONVERT_ARG_HANDLE_CHECKED(JSFunction, function, 0);
if (FLAG_parallel_recompilation) {
if (function->IsMarkedForLazyRecompilation()) {
return Smi::FromInt(5);
return Smi::FromInt(5); // 5 == "parallel recompilation".
}
}
if (FLAG_always_opt) {
......@@ -8481,6 +8479,9 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_GetOptimizationStatus) {
return function->IsOptimized() ? Smi::FromInt(3) // 3 == "always".
: Smi::FromInt(2); // 2 == "no".
}
if (FLAG_deopt_every_n_times) {
return Smi::FromInt(6); // 6 == "maybe deopted".
}
return function->IsOptimized() ? Smi::FromInt(1) // 1 == "yes".
: Smi::FromInt(2); // 2 == "no".
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment