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

Unified Diff: src/interpreter/interpreter.cc

Issue 1817033002: [Interpreter] Add dispatch counters for each bytecode. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@fix-abort
Patch Set: Rebase on master. Created 4 years, 9 months 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
Index: src/interpreter/interpreter.cc
diff --git a/src/interpreter/interpreter.cc b/src/interpreter/interpreter.cc
index 2284eef10efe903bf68d5419407ea96be1284110..f50ffdfbc20c1c8d94153d828bac0de1cb55e0b6 100644
--- a/src/interpreter/interpreter.cc
+++ b/src/interpreter/interpreter.cc
@@ -33,24 +33,30 @@ void Interpreter::Initialize() {
Zone zone;
HandleScope scope(isolate_);
+ if (FLAG_ignition_count_handler_dispatches) {
+ memset(handlers_dispatch_counters_, 0, sizeof(handlers_dispatch_counters_));
+ }
+
// Generate bytecode handlers for all bytecodes and scales.
for (OperandScale operand_scale = OperandScale::kSingle;
operand_scale <= OperandScale::kMaxValid;
operand_scale = Bytecodes::NextOperandScale(operand_scale)) {
-#define GENERATE_CODE(Name, ...) \
- { \
- if (BytecodeHasHandler(Bytecode::k##Name, operand_scale)) { \
- InterpreterAssembler assembler(isolate_, &zone, Bytecode::k##Name, \
- operand_scale); \
- Do##Name(&assembler); \
- Handle<Code> code = assembler.GenerateCode(); \
- size_t index = GetDispatchTableIndex(Bytecode::k##Name, operand_scale); \
- dispatch_table_[index] = *code; \
- TraceCodegen(code); \
- LOG_CODE_EVENT(isolate_, \
- CodeCreateEvent(Logger::BYTECODE_HANDLER_TAG, \
- AbstractCode::cast(*code), #Name)); \
- } \
+#define GENERATE_CODE(Name, ...) \
+ { \
+ if (BytecodeHasHandler(Bytecode::k##Name, operand_scale)) { \
+ InterpreterAssembler assembler(isolate_, &zone, Bytecode::k##Name, \
+ operand_scale); \
+ Do##Name(&assembler); \
+ Handle<Code> code = assembler.GenerateCode(); \
+ size_t index = GetDispatchTableIndex(Bytecode::k##Name, operand_scale); \
+ dispatch_table_[index] = *code; \
+ TraceCodegen(code); \
+ LOG_CODE_EVENT( \
+ isolate_, \
+ CodeCreateEvent( \
+ Logger::BYTECODE_HANDLER_TAG, AbstractCode::cast(*code), \
+ Bytecodes::ToString(Bytecode::k##Name, operand_scale).c_str())); \
+ } \
}
BYTECODE_LIST(GENERATE_CODE)
#undef GENERATE_CODE
@@ -153,7 +159,8 @@ bool Interpreter::MakeBytecode(CompilationInfo* info) {
}
bool Interpreter::IsDispatchTableInitialized() {
- if (FLAG_trace_ignition || FLAG_trace_ignition_codegen) {
+ if (FLAG_trace_ignition || FLAG_trace_ignition_codegen ||
+ FLAG_ignition_count_handler_dispatches) {
// Regenerate table to add bytecode tracing operations
// or to print the assembly code generated by TurboFan.
return false;

Powered by Google App Engine
This is Rietveld 408576698