Index: src/compiler.cc |
diff --git a/src/compiler.cc b/src/compiler.cc |
index 2d0cf06cbd0a8572b2192a2a284ac0d023652729..e21f1f2efbc160352c2b290bd32136b4679b5e54 100644 |
--- a/src/compiler.cc |
+++ b/src/compiler.cc |
@@ -98,6 +98,8 @@ CompilationJob::Status CompilationJob::ExecuteJob() { |
no_handles.reset(new DisallowHandleAllocation()); |
no_deref.reset(new DisallowHandleDereference()); |
no_dependency_change.reset(new DisallowCodeDependencyChange()); |
+ executed_on_background_thread_ = |
+ !ThreadId::Current().Equals(info()->isolate()->thread_id()); |
} else { |
DCHECK(ThreadId::Current().Equals(info()->isolate()->thread_id())); |
} |
@@ -461,6 +463,8 @@ bool CompileUnoptimizedCode(CompilationInfo* info) { |
} |
MUST_USE_RESULT MaybeHandle<Code> GetUnoptimizedCode(CompilationInfo* info) { |
+ RuntimeCallTimerScope runtimeTimer( |
+ info->isolate(), &RuntimeCallStats::CompileGetUnoptimizedCode); |
VMState<COMPILER> state(info->isolate()); |
PostponeInterruptsScope postpone(info->isolate()); |
@@ -480,6 +484,9 @@ MUST_USE_RESULT MaybeHandle<Code> GetUnoptimizedCode(CompilationInfo* info) { |
MUST_USE_RESULT MaybeHandle<Code> GetCodeFromOptimizedCodeMap( |
Handle<JSFunction> function, BailoutId osr_ast_id) { |
+ RuntimeCallTimerScope runtimeTimer( |
+ function->GetIsolate(), |
+ &RuntimeCallStats::CompileGetFromOptimizedCodeMap); |
Handle<SharedFunctionInfo> shared(function->shared()); |
DisallowHeapAllocation no_gc; |
CodeAndLiterals cached = shared->SearchOptimizedCodeMap( |
@@ -863,8 +870,6 @@ MaybeHandle<Code> GetLazyCode(Handle<JSFunction> function) { |
DCHECK(!isolate->has_pending_exception()); |
DCHECK(!function->is_compiled()); |
TimerEventScope<TimerEventCompileCode> compile_timer(isolate); |
- RuntimeCallTimerScope runtimeTimer(isolate, |
- &RuntimeCallStats::CompileCodeLazy); |
TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("v8.compile"), "V8.CompileCode"); |
AggregatedHistogramTimerScope timer(isolate->counters()->compile_lazy()); |
@@ -1023,6 +1028,8 @@ Handle<SharedFunctionInfo> CompileToplevel(CompilationInfo* info) { |
bool Compiler::Analyze(ParseInfo* info) { |
DCHECK_NOT_NULL(info->literal()); |
+ RuntimeCallTimerScope runtimeTimer(info->isolate(), |
+ &RuntimeCallStats::CompileAnalyse); |
if (!Rewriter::Rewrite(info)) return false; |
DeclarationScope::Analyze(info, AnalyzeMode::kRegular); |
if (!Renumber(info)) return false; |