Revision: 17570
Author: [email protected]
Date: Thu Nov 7 16:25:20 2013 UTC
Log: Disable concurrent osr when concurrent recompilation is disabled.
Also introduce a flag for a quick check that concurrency is on.
[email protected]
BUG=
Review URL: https://codereview.chromium.org/64543004
http://code.google.com/p/v8/source/detail?r=17570
Modified:
/branches/bleeding_edge/src/isolate.h
/branches/bleeding_edge/src/optimizing-compiler-thread.cc
/branches/bleeding_edge/src/v8.cc
=======================================
--- /branches/bleeding_edge/src/isolate.h Thu Oct 31 11:43:23 2013 UTC
+++ /branches/bleeding_edge/src/isolate.h Thu Nov 7 16:25:20 2013 UTC
@@ -305,7 +305,7 @@
enum ParallelSystemComponent {
PARALLEL_SWEEPING,
CONCURRENT_SWEEPING,
- PARALLEL_RECOMPILATION
+ CONCURRENT_RECOMPILATION
};
static int NumberOfParallelSystemThreads(ParallelSystemComponent type);
=======================================
--- /branches/bleeding_edge/src/optimizing-compiler-thread.cc Wed Oct 16
16:27:17 2013 UTC
+++ /branches/bleeding_edge/src/optimizing-compiler-thread.cc Thu Nov 7
16:25:20 2013 UTC
@@ -346,23 +346,23 @@
void OptimizingCompilerThread::AddToOsrBuffer(RecompileJob* job) {
ASSERT(!IsOptimizerThread());
// Find the next slot that is empty or has a stale job.
+ RecompileJob* stale = NULL;
while (true) {
- RecompileJob* stale = osr_buffer_[osr_buffer_cursor_];
+ stale = osr_buffer_[osr_buffer_cursor_];
if (stale == NULL || stale->IsWaitingForInstall()) break;
osr_buffer_cursor_ = (osr_buffer_cursor_ + 1) % osr_buffer_capacity_;
}
// Add to found slot and dispose the evicted job.
- RecompileJob* evicted = osr_buffer_[osr_buffer_cursor_];
- if (evicted != NULL) {
- ASSERT(evicted->IsWaitingForInstall());
- CompilationInfo* info = evicted->info();
+ if (stale != NULL) {
+ ASSERT(stale->IsWaitingForInstall());
+ CompilationInfo* info = stale->info();
if (FLAG_trace_osr) {
PrintF("[COSR - Discarded ");
info->closure()->PrintName();
PrintF(", AST id %d]\n", info->osr_ast_id().ToInt());
}
- DisposeRecompileJob(evicted, false);
+ DisposeRecompileJob(stale, false);
}
osr_buffer_[osr_buffer_cursor_] = job;
osr_buffer_cursor_ = (osr_buffer_cursor_ + 1) % osr_buffer_capacity_;
=======================================
--- /branches/bleeding_edge/src/v8.cc Wed Oct 2 09:01:40 2013 UTC
+++ /branches/bleeding_edge/src/v8.cc Thu Nov 7 16:25:20 2013 UTC
@@ -206,6 +206,7 @@
if (FLAG_concurrent_recompilation &&
(FLAG_trace_hydrogen || FLAG_trace_hydrogen_stubs)) {
FLAG_concurrent_recompilation = false;
+ FLAG_concurrent_osr = false;
PrintF("Concurrent recompilation has been disabled for tracing.\n");
}
@@ -229,8 +230,9 @@
if (FLAG_concurrent_recompilation &&
SystemThreadManager::NumberOfParallelSystemThreads(
- SystemThreadManager::PARALLEL_RECOMPILATION) == 0) {
+ SystemThreadManager::CONCURRENT_RECOMPILATION) == 0) {
FLAG_concurrent_recompilation = false;
+ FLAG_concurrent_osr = false;
}
Sampler::SetUp();
--
--
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.