Index: src/compiler.cc |
diff --git a/src/compiler.cc b/src/compiler.cc |
index 8d6f52abddf697f15c1af6246e3c4a5af5775705..b9376f2ad511cf6508f1d3e6a264548397948367 100644 |
--- a/src/compiler.cc |
+++ b/src/compiler.cc |
@@ -928,10 +928,12 @@ static bool GetOptimizedCodeNow(CompilationInfo* info) { |
Isolate* isolate = info->isolate(); |
CanonicalHandleScope canonical(isolate); |
TimerEventScope<TimerEventOptimizeCode> optimize_code_timer(isolate); |
+ TRACE_EVENT0("v8", "V8.OptimizeCode"); |
if (!Compiler::ParseAndAnalyze(info->parse_info())) return false; |
TimerEventScope<TimerEventRecompileSynchronous> timer(isolate); |
+ TRACE_EVENT0("v8", "V8.RecompileSynchronous"); |
OptimizedCompileJob job(info); |
if (job.CreateGraph() != OptimizedCompileJob::SUCCEEDED || |
@@ -958,6 +960,7 @@ static bool GetOptimizedCodeLater(CompilationInfo* info) { |
Isolate* isolate = info->isolate(); |
CanonicalHandleScope canonical(isolate); |
TimerEventScope<TimerEventOptimizeCode> optimize_code_timer(isolate); |
+ TRACE_EVENT0("v8", "V8.OptimizeCode"); |
if (!isolate->optimizing_compile_dispatcher()->IsQueueAvailable()) { |
if (FLAG_trace_concurrent_recompilation) { |
@@ -976,6 +979,7 @@ static bool GetOptimizedCodeLater(CompilationInfo* info) { |
info->parse_info()->ReopenHandlesInNewHandleScope(); |
TimerEventScope<TimerEventRecompileSynchronous> timer(info->isolate()); |
+ TRACE_EVENT0("v8", "V8.RecompileSynchronous"); |
OptimizedCompileJob* job = new (info->zone()) OptimizedCompileJob(info); |
OptimizedCompileJob::Status status = job->CreateGraph(); |
@@ -1016,6 +1020,7 @@ MaybeHandle<Code> Compiler::GetLazyCode(Handle<JSFunction> function) { |
DCHECK(!isolate->has_pending_exception()); |
DCHECK(!function->is_compiled()); |
TimerEventScope<TimerEventCompileCode> compile_timer(isolate); |
+ TRACE_EVENT0("v8", "V8.CompileCode"); |
AggregatedHistogramTimerScope timer(isolate->counters()->compile_lazy()); |
// If the debugger is active, do not compile with turbofan unless we can |
// deopt from turbofan code. |
@@ -1224,6 +1229,7 @@ void Compiler::CompileForLiveEdit(Handle<Script> script) { |
static Handle<SharedFunctionInfo> CompileToplevel(CompilationInfo* info) { |
Isolate* isolate = info->isolate(); |
TimerEventScope<TimerEventCompileCode> timer(isolate); |
+ TRACE_EVENT0("v8", "V8.CompileCode"); |
PostponeInterruptsScope postpone(isolate); |
DCHECK(!isolate->native_context().is_null()); |
ParseInfo* parse_info = info->parse_info(); |
@@ -1283,6 +1289,7 @@ static Handle<SharedFunctionInfo> CompileToplevel(CompilationInfo* info) { |
? info->isolate()->counters()->compile_eval() |
: info->isolate()->counters()->compile(); |
HistogramTimerScope timer(rate); |
+ TRACE_EVENT0("v8", info->is_eval() ? "V8.CompileEval" : "V8.Compile"); |
// Compile the code. |
if (!CompileBaselineCode(info)) { |
@@ -1453,6 +1460,7 @@ Handle<SharedFunctionInfo> Compiler::CompileScript( |
!isolate->debug()->is_loaded()) { |
// Then check cached code provided by embedder. |
HistogramTimerScope timer(isolate->counters()->compile_deserialize()); |
+ TRACE_EVENT0("v8", "V8.CompileDeserialize"); |
Handle<SharedFunctionInfo> result; |
if (CodeSerializer::Deserialize(isolate, *cached_data, source) |
.ToHandle(&result)) { |
@@ -1521,6 +1529,7 @@ Handle<SharedFunctionInfo> Compiler::CompileScript( |
compile_options == ScriptCompiler::kProduceCodeCache) { |
HistogramTimerScope histogram_timer( |
isolate->counters()->compile_serialize()); |
+ TRACE_EVENT0("v8", "V8.CompileSerialize"); |
*cached_data = CodeSerializer::Serialize(isolate, result, source); |
if (FLAG_profile_deserialization) { |
PrintF("[Compiling and serializing took %0.3f ms]\n", |
@@ -1622,6 +1631,7 @@ Handle<SharedFunctionInfo> Compiler::GetSharedFunctionInfo( |
// Generate code |
TimerEventScope<TimerEventCompileCode> timer(isolate); |
+ TRACE_EVENT0("v8", "V8.CompileCode"); |
Handle<ScopeInfo> scope_info; |
if (lazy) { |
Handle<Code> code = isolate->builtins()->CompileLazy(); |
@@ -1801,6 +1811,7 @@ MaybeHandle<Code> Compiler::GetConcurrentlyOptimizedCode( |
VMState<COMPILER> state(isolate); |
TimerEventScope<TimerEventRecompileSynchronous> timer(info->isolate()); |
+ TRACE_EVENT0("v8", "V8.RecompileSynchronous"); |
Handle<SharedFunctionInfo> shared = info->shared_info(); |
shared->code()->set_profiler_ticks(0); |