Reviewers: Hannes Payer,
Description:
Fix infinite loop in regress-opt-after-deopt.
%CompleteOptimization attempts to install optimized functions
that the parallel thread has put on the output queue, as long as
the function is marked with a builtin. However, activating the
debugger will set all functions to the lazy recompile builtin,
without the function being on the parallel recompilation pipeline.
So we wait for the function to finish parallel recompilation
while it's marked by a builtin that's unrelated to parallel
recompilation.
[email protected]
BUG=
Please review this at https://codereview.chromium.org/18129003/
SVN Base: https://v8.googlecode.com/svn/branches/bleeding_edge
Affected files:
M src/runtime.cc
Index: src/runtime.cc
diff --git a/src/runtime.cc b/src/runtime.cc
index
081774f21a614d5ea61234735c7789098aa7da2c..1283daaa4cfcb10519ec3d71e3e6823da3d4d3c0
100644
--- a/src/runtime.cc
+++ b/src/runtime.cc
@@ -8315,7 +8315,9 @@ RUNTIME_FUNCTION(MaybeObject*,
Runtime_CompleteOptimization) {
CONVERT_ARG_HANDLE_CHECKED(JSFunction, function, 0);
if (FLAG_parallel_recompilation && V8::UseCrankshaft()) {
// While function is in optimization pipeline, it is marked with
builtins.
- while (function->code()->kind() == Code::BUILTIN) {
+ while (function->IsMarkedForParallelRecompilation() ||
+ function->IsInRecompileQueue() ||
+ function->IsMarkedForInstallingRecompiledCode()) {
isolate->optimizing_compiler_thread()->InstallOptimizedFunctions();
OS::Sleep(50);
}
--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
---
You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.