Index: src/interpreter/interpreter.cc |
diff --git a/src/interpreter/interpreter.cc b/src/interpreter/interpreter.cc |
index 5084300dfee60294b3af19832d026410b5834c6f..2543a2503e3a66def7cadd13b665a410486d31d4 100644 |
--- a/src/interpreter/interpreter.cc |
+++ b/src/interpreter/interpreter.cc |
@@ -33,6 +33,12 @@ void Interpreter::Initialize() { |
Zone zone(isolate_->allocator()); |
HandleScope scope(isolate_); |
+ if (FLAG_trace_ignition_dispatches) { |
+ handlers_dispatch_counters_.Reset(new uintptr_t[kCountersTableRowSize]); |
+ memset(handlers_dispatch_counters_.get(), 0, |
+ sizeof(uintptr_t) * kCountersTableRowSize); |
+ } |
+ |
// Generate bytecode handlers for all bytecodes and scales. |
for (OperandScale operand_scale = OperandScale::kSingle; |
operand_scale <= OperandScale::kMaxValid; |
@@ -148,9 +154,11 @@ bool Interpreter::MakeBytecode(CompilationInfo* info) { |
} |
bool Interpreter::IsDispatchTableInitialized() { |
- if (FLAG_trace_ignition || FLAG_trace_ignition_codegen) { |
- // Regenerate table to add bytecode tracing operations |
- // or to print the assembly code generated by TurboFan. |
+ if (FLAG_trace_ignition || FLAG_trace_ignition_codegen || |
+ FLAG_trace_ignition_dispatches) { |
+ // Regenerate table to add bytecode tracing operations, |
+ // print the assembly code generated by TurboFan, |
+ // or instrument handlers with dispatch counters. |
return false; |
} |
return dispatch_table_[0] != nullptr; |