Merge V8 5.2.361.47 DO NOT MERGE
https://chromium.googlesource.com/v8/v8/+/5.2.361.47
FPIIM-449
Change-Id: Ibec421b85a9b88cb3a432ada642e469fe7e78346
(cherry picked from commit bcf72ee8e3b26f1d0726869c7ddb3921c68b09a8)
diff --git a/src/optimizing-compile-dispatcher.cc b/src/optimizing-compile-dispatcher.cc
index ed20224..7077339 100644
--- a/src/optimizing-compile-dispatcher.cc
+++ b/src/optimizing-compile-dispatcher.cc
@@ -15,15 +15,12 @@
namespace {
-void DisposeOptimizedCompileJob(OptimizedCompileJob* job,
- bool restore_function_code) {
- // The recompile job is allocated in the CompilationInfo's zone.
- CompilationInfo* info = job->info();
+void DisposeCompilationJob(CompilationJob* job, bool restore_function_code) {
if (restore_function_code) {
- Handle<JSFunction> function = info->closure();
+ Handle<JSFunction> function = job->info()->closure();
function->ReplaceCode(function->shared()->code());
}
- delete info;
+ delete job;
}
} // namespace
@@ -85,35 +82,29 @@
DeleteArray(input_queue_);
}
-
-OptimizedCompileJob* OptimizingCompileDispatcher::NextInput(
- bool check_if_flushing) {
+CompilationJob* OptimizingCompileDispatcher::NextInput(bool check_if_flushing) {
base::LockGuard<base::Mutex> access_input_queue_(&input_queue_mutex_);
if (input_queue_length_ == 0) return NULL;
- OptimizedCompileJob* job = input_queue_[InputQueueIndex(0)];
+ CompilationJob* job = input_queue_[InputQueueIndex(0)];
DCHECK_NOT_NULL(job);
input_queue_shift_ = InputQueueIndex(1);
input_queue_length_--;
if (check_if_flushing) {
if (static_cast<ModeFlag>(base::Acquire_Load(&mode_)) == FLUSH) {
- if (!job->info()->is_osr()) {
- AllowHandleDereference allow_handle_dereference;
- DisposeOptimizedCompileJob(job, true);
- }
+ AllowHandleDereference allow_handle_dereference;
+ DisposeCompilationJob(job, true);
return NULL;
}
}
return job;
}
-
-void OptimizingCompileDispatcher::CompileNext(OptimizedCompileJob* job) {
+void OptimizingCompileDispatcher::CompileNext(CompilationJob* job) {
if (!job) return;
// The function may have already been optimized by OSR. Simply continue.
- OptimizedCompileJob::Status status = job->OptimizeGraph();
- USE(status); // Prevent an unused-variable error in release mode.
- DCHECK(status != OptimizedCompileJob::FAILED);
+ CompilationJob::Status status = job->OptimizeGraph();
+ USE(status); // Prevent an unused-variable error.
// The function may have already been optimized by OSR. Simply continue.
// Use a mutex to make sure that functions marked for install
@@ -126,7 +117,7 @@
void OptimizingCompileDispatcher::FlushOutputQueue(bool restore_function_code) {
for (;;) {
- OptimizedCompileJob* job = NULL;
+ CompilationJob* job = NULL;
{
base::LockGuard<base::Mutex> access_output_queue_(&output_queue_mutex_);
if (output_queue_.empty()) return;
@@ -134,10 +125,7 @@
output_queue_.pop();
}
- // OSR jobs are dealt with separately.
- if (!job->info()->is_osr()) {
- DisposeOptimizedCompileJob(job, restore_function_code);
- }
+ DisposeCompilationJob(job, restore_function_code);
}
}
@@ -181,7 +169,7 @@
HandleScope handle_scope(isolate_);
for (;;) {
- OptimizedCompileJob* job = NULL;
+ CompilationJob* job = NULL;
{
base::LockGuard<base::Mutex> access_output_queue_(&output_queue_mutex_);
if (output_queue_.empty()) return;
@@ -196,16 +184,14 @@
function->ShortPrint();
PrintF(" as it has already been optimized.\n");
}
- DisposeOptimizedCompileJob(job, false);
+ DisposeCompilationJob(job, false);
} else {
- Compiler::FinalizeOptimizedCompileJob(job);
+ Compiler::FinalizeCompilationJob(job);
}
}
}
-
-void OptimizingCompileDispatcher::QueueForOptimization(
- OptimizedCompileJob* job) {
+void OptimizingCompileDispatcher::QueueForOptimization(CompilationJob* job) {
DCHECK(IsQueueAvailable());
{
// Add job to the back of the input queue.