Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1147)

Unified Diff: src/optimizing-compiler-thread.h

Issue 816363003: Implement missing functionality for job based recompilation (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: updates Created 6 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/flag-definitions.h ('k') | src/optimizing-compiler-thread.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/optimizing-compiler-thread.h
diff --git a/src/optimizing-compiler-thread.h b/src/optimizing-compiler-thread.h
index 60f95f4ea44ee4c89cc84f89a53ecdb5d9a3b2ee..3088843309fbe31b3eed34d8d079719f2431241b 100644
--- a/src/optimizing-compiler-thread.h
+++ b/src/optimizing-compiler-thread.h
@@ -35,11 +35,13 @@ class OptimizingCompilerThread : public base::Thread {
input_queue_shift_(0),
osr_buffer_capacity_(FLAG_concurrent_recompilation_queue_length + 4),
osr_buffer_cursor_(0),
+ task_count_(0),
osr_hits_(0),
osr_attempts_(0),
blocked_jobs_(0),
tracing_enabled_(FLAG_trace_concurrent_recompilation),
- job_based_recompilation_(FLAG_job_based_recompilation) {
+ job_based_recompilation_(FLAG_job_based_recompilation),
+ recompilation_delay_(FLAG_concurrent_recompilation_delay) {
base::NoBarrier_Store(&stop_thread_,
static_cast<base::AtomicWord>(CONTINUE));
input_queue_ = NewArray<OptimizedCompileJob*>(input_queue_capacity_);
@@ -93,8 +95,8 @@ class OptimizingCompilerThread : public base::Thread {
void FlushInputQueue(bool restore_function_code);
void FlushOutputQueue(bool restore_function_code);
void FlushOsrBuffer(bool restore_function_code);
- void CompileNext();
- OptimizedCompileJob* NextInput();
+ void CompileNext(OptimizedCompileJob* job);
+ OptimizedCompileJob* NextInput(StopFlag* flag = NULL);
// Add a recompilation task for OSR to the cyclic buffer, awaiting OSR entry.
// Tasks evicted from the cyclic buffer are discarded.
@@ -138,18 +140,27 @@ class OptimizingCompilerThread : public base::Thread {
base::TimeDelta time_spent_compiling_;
base::TimeDelta time_spent_total_;
+ int task_count_;
+ // TODO(jochen): This is currently a RecursiveMutex since both Flush/Stop and
+ // Unblock try to get it, but the former methods both can call Unblock. Once
+ // job based recompilation is on by default, and the dedicated thread can be
+ // removed, this should be refactored to not use a RecursiveMutex.
+ base::RecursiveMutex task_count_mutex_;
+
int osr_hits_;
int osr_attempts_;
int blocked_jobs_;
- // Copies of FLAG_trace_concurrent_recompilation and
+ // Copies of FLAG_trace_concurrent_recompilation,
+ // FLAG_concurrent_recompilation_delay and
// FLAG_job_based_recompilation that will be used from the background thread.
//
// Since flags might get modified while the background thread is running, it
// is not safe to access them directly.
bool tracing_enabled_;
bool job_based_recompilation_;
+ int recompilation_delay_;
};
} } // namespace v8::internal
« no previous file with comments | « src/flag-definitions.h ('k') | src/optimizing-compiler-thread.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698