Revision: 15404
Author: [email protected]
Date: Mon Jul 1 02:14:15 2013
Log: 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=
Review URL: https://codereview.chromium.org/18129003
http://code.google.com/p/v8/source/detail?r=15404
Modified:
/branches/bleeding_edge/src/runtime.cc
=======================================
--- /branches/bleeding_edge/src/runtime.cc Wed Jun 26 09:18:00 2013
+++ /branches/bleeding_edge/src/runtime.cc Mon Jul 1 02:14:15 2013
@@ -8314,8 +8314,13 @@
ASSERT(args.length() == 1);
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 is in optimization pipeline, it is marked
accordingly.
+ // Note that if the debugger is activated during parallel
recompilation,
+ // the function will be marked with the lazy-recompile builtin, which
is
+ // not related to parallel recompilation.
+ 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.