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

Unified Diff: src/stub-cache.cc

Issue 10795074: Add a new API V8::SetJitCodeEventHandler to push code name and location to users such as profilers. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Ready for review Created 8 years, 5 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/stub-cache.cc
diff --git a/src/stub-cache.cc b/src/stub-cache.cc
index b118b360fce8ce0fc9002dcef4e2f75926b56b0a..491bd24233350a39fc3ec411733a254bf0a0ba21 100644
--- a/src/stub-cache.cc
+++ b/src/stub-cache.cc
@@ -30,8 +30,8 @@
#include "api.h"
#include "arguments.h"
#include "ast.h"
+#include "code-events.h"
#include "code-stubs.h"
-#include "gdb-jit.h"
#include "ic-inl.h"
#include "stub-cache.h"
#include "vm-state-inl.h"
@@ -127,7 +127,7 @@ Handle<Code> StubCache::ComputeLoadNonexistent(Handle<String> name,
Handle<Code> code =
compiler.CompileLoadNonexistent(cache_name, receiver, last);
PROFILE(isolate_, CodeCreateEvent(Logger::LOAD_IC_TAG, *code, *cache_name));
- GDBJIT(AddCode(GDBJITInterface::LOAD_IC, *cache_name, *code));
+ JIT_CODE_EVENT(AddCode(*cache_name, *code));
JSObject::UpdateMapCodeCache(receiver, cache_name, code);
return code;
}
@@ -146,7 +146,7 @@ Handle<Code> StubCache::ComputeLoadField(Handle<String> name,
Handle<Code> code =
compiler.CompileLoadField(receiver, holder, field_index, name);
PROFILE(isolate_, CodeCreateEvent(Logger::LOAD_IC_TAG, *code, *name));
- GDBJIT(AddCode(GDBJITInterface::LOAD_IC, *name, *code));
+ JIT_CODE_EVENT(AddCode(*name, *code));
JSObject::UpdateMapCodeCache(receiver, name, code);
return code;
}
@@ -167,7 +167,7 @@ Handle<Code> StubCache::ComputeLoadCallback(Handle<String> name,
Handle<Code> code =
compiler.CompileLoadCallback(name, receiver, holder, callback);
PROFILE(isolate_, CodeCreateEvent(Logger::LOAD_IC_TAG, *code, *name));
- GDBJIT(AddCode(GDBJITInterface::LOAD_IC, *name, *code));
+ JIT_CODE_EVENT(AddCode(*name, *code));
JSObject::UpdateMapCodeCache(receiver, name, code);
return code;
}
@@ -187,7 +187,7 @@ Handle<Code> StubCache::ComputeLoadViaGetter(Handle<String> name,
Handle<Code> code =
compiler.CompileLoadViaGetter(name, receiver, holder, getter);
PROFILE(isolate_, CodeCreateEvent(Logger::LOAD_IC_TAG, *code, *name));
- GDBJIT(AddCode(GDBJITInterface::LOAD_IC, *name, *code));
+ JIT_CODE_EVENT(AddCode(*name, *code));
JSObject::UpdateMapCodeCache(receiver, name, code);
return code;
}
@@ -207,7 +207,7 @@ Handle<Code> StubCache::ComputeLoadConstant(Handle<String> name,
Handle<Code> code =
compiler.CompileLoadConstant(receiver, holder, value, name);
PROFILE(isolate_, CodeCreateEvent(Logger::LOAD_IC_TAG, *code, *name));
- GDBJIT(AddCode(GDBJITInterface::LOAD_IC, *name, *code));
+ JIT_CODE_EVENT(AddCode(*name, *code));
JSObject::UpdateMapCodeCache(receiver, name, code);
return code;
}
@@ -226,7 +226,7 @@ Handle<Code> StubCache::ComputeLoadInterceptor(Handle<String> name,
Handle<Code> code =
compiler.CompileLoadInterceptor(receiver, holder, name);
PROFILE(isolate_, CodeCreateEvent(Logger::LOAD_IC_TAG, *code, *name));
- GDBJIT(AddCode(GDBJITInterface::LOAD_IC, *name, *code));
+ JIT_CODE_EVENT(AddCode(*name, *code));
JSObject::UpdateMapCodeCache(receiver, name, code);
return code;
}
@@ -252,7 +252,7 @@ Handle<Code> StubCache::ComputeLoadGlobal(Handle<String> name,
Handle<Code> code =
compiler.CompileLoadGlobal(receiver, holder, cell, name, is_dont_delete);
PROFILE(isolate_, CodeCreateEvent(Logger::LOAD_IC_TAG, *code, *name));
- GDBJIT(AddCode(GDBJITInterface::LOAD_IC, *name, *code));
+ JIT_CODE_EVENT(AddCode(*name, *code));
JSObject::UpdateMapCodeCache(receiver, name, code);
return code;
}
@@ -272,7 +272,7 @@ Handle<Code> StubCache::ComputeKeyedLoadField(Handle<String> name,
Handle<Code> code =
compiler.CompileLoadField(name, receiver, holder, field_index);
PROFILE(isolate_, CodeCreateEvent(Logger::KEYED_LOAD_IC_TAG, *code, *name));
- GDBJIT(AddCode(GDBJITInterface::KEYED_LOAD_IC, *name, *code));
+ JIT_CODE_EVENT(AddCode(*name, *code));
JSObject::UpdateMapCodeCache(receiver, name, code);
return code;
}
@@ -292,7 +292,7 @@ Handle<Code> StubCache::ComputeKeyedLoadConstant(Handle<String> name,
Handle<Code> code =
compiler.CompileLoadConstant(name, receiver, holder, value);
PROFILE(isolate_, CodeCreateEvent(Logger::KEYED_LOAD_IC_TAG, *code, *name));
- GDBJIT(AddCode(GDBJITInterface::KEYED_LOAD_IC, *name, *code));
+ JIT_CODE_EVENT(AddCode(*name, *code));
JSObject::UpdateMapCodeCache(receiver, name, code);
return code;
}
@@ -310,7 +310,7 @@ Handle<Code> StubCache::ComputeKeyedLoadInterceptor(Handle<String> name,
KeyedLoadStubCompiler compiler(isolate_);
Handle<Code> code = compiler.CompileLoadInterceptor(receiver, holder, name);
PROFILE(isolate_, CodeCreateEvent(Logger::KEYED_LOAD_IC_TAG, *code, *name));
- GDBJIT(AddCode(GDBJITInterface::KEYED_LOAD_IC, *name, *code));
+ JIT_CODE_EVENT(AddCode(*name, *code));
JSObject::UpdateMapCodeCache(receiver, name, code);
return code;
}
@@ -331,7 +331,7 @@ Handle<Code> StubCache::ComputeKeyedLoadCallback(
Handle<Code> code =
compiler.CompileLoadCallback(name, receiver, holder, callback);
PROFILE(isolate_, CodeCreateEvent(Logger::KEYED_LOAD_IC_TAG, *code, *name));
- GDBJIT(AddCode(GDBJITInterface::KEYED_LOAD_IC, *name, *code));
+ JIT_CODE_EVENT(AddCode(*name, *code));
JSObject::UpdateMapCodeCache(receiver, name, code);
return code;
}
@@ -347,7 +347,7 @@ Handle<Code> StubCache::ComputeKeyedLoadArrayLength(Handle<String> name,
KeyedLoadStubCompiler compiler(isolate_);
Handle<Code> code = compiler.CompileLoadArrayLength(name);
PROFILE(isolate_, CodeCreateEvent(Logger::KEYED_LOAD_IC_TAG, *code, *name));
- GDBJIT(AddCode(GDBJITInterface::KEYED_LOAD_IC, *name, *code));
+ JIT_CODE_EVENT(AddCode(*name, *code));
JSObject::UpdateMapCodeCache(receiver, name, code);
return code;
}
@@ -364,7 +364,7 @@ Handle<Code> StubCache::ComputeKeyedLoadStringLength(Handle<String> name,
KeyedLoadStubCompiler compiler(isolate_);
Handle<Code> code = compiler.CompileLoadStringLength(name);
PROFILE(isolate_, CodeCreateEvent(Logger::KEYED_LOAD_IC_TAG, *code, *name));
- GDBJIT(AddCode(GDBJITInterface::KEYED_LOAD_IC, *name, *code));
+ JIT_CODE_EVENT(AddCode(*name, *code));
Map::UpdateCodeCache(map, name, code);
return code;
}
@@ -381,7 +381,7 @@ Handle<Code> StubCache::ComputeKeyedLoadFunctionPrototype(
KeyedLoadStubCompiler compiler(isolate_);
Handle<Code> code = compiler.CompileLoadFunctionPrototype(name);
PROFILE(isolate_, CodeCreateEvent(Logger::KEYED_LOAD_IC_TAG, *code, *name));
- GDBJIT(AddCode(GDBJITInterface::KEYED_LOAD_IC, *name, *code));
+ JIT_CODE_EVENT(AddCode(*name, *code));
JSObject::UpdateMapCodeCache(receiver, name, code);
return code;
}
@@ -403,7 +403,7 @@ Handle<Code> StubCache::ComputeStoreField(Handle<String> name,
Handle<Code> code =
compiler.CompileStoreField(receiver, field_index, transition, name);
PROFILE(isolate_, CodeCreateEvent(Logger::STORE_IC_TAG, *code, *name));
- GDBJIT(AddCode(GDBJITInterface::STORE_IC, *name, *code));
+ JIT_CODE_EVENT(AddCode(*name, *code));
JSObject::UpdateMapCodeCache(receiver, name, code);
return code;
}
@@ -469,8 +469,10 @@ Handle<Code> StubCache::ComputeKeyedLoadOrStoreElement(
if (stub_kind == KeyedIC::LOAD) {
PROFILE(isolate_, CodeCreateEvent(Logger::KEYED_LOAD_IC_TAG, *code, 0));
+ JIT_CODE_EVENT(AddCode(*name, *code));
} else {
PROFILE(isolate_, CodeCreateEvent(Logger::KEYED_STORE_IC_TAG, *code, 0));
+ JIT_CODE_EVENT(AddCode(*name, *code));
}
Map::UpdateCodeCache(receiver_map, name, code);
return code;
@@ -496,7 +498,7 @@ Handle<Code> StubCache::ComputeStoreGlobal(Handle<String> name,
StoreStubCompiler compiler(isolate_, strict_mode);
Handle<Code> code = compiler.CompileStoreGlobal(receiver, cell, name);
PROFILE(isolate_, CodeCreateEvent(Logger::STORE_IC_TAG, *code, *name));
- GDBJIT(AddCode(GDBJITInterface::STORE_IC, *name, *code));
+ JIT_CODE_EVENT(AddCode(*name, *code));
JSObject::UpdateMapCodeCache(receiver, name, code);
return code;
}
@@ -515,7 +517,7 @@ Handle<Code> StubCache::ComputeStoreCallback(Handle<String> name,
StoreStubCompiler compiler(isolate_, strict_mode);
Handle<Code> code = compiler.CompileStoreCallback(receiver, callback, name);
PROFILE(isolate_, CodeCreateEvent(Logger::STORE_IC_TAG, *code, *name));
- GDBJIT(AddCode(GDBJITInterface::STORE_IC, *name, *code));
+ JIT_CODE_EVENT(AddCode(*name, *code));
JSObject::UpdateMapCodeCache(receiver, name, code);
return code;
}
@@ -535,7 +537,7 @@ Handle<Code> StubCache::ComputeStoreViaSetter(Handle<String> name,
Handle<Code> code =
compiler.CompileStoreViaSetter(name, receiver, holder, setter);
PROFILE(isolate_, CodeCreateEvent(Logger::STORE_IC_TAG, *code, *name));
- GDBJIT(AddCode(GDBJITInterface::STORE_IC, *name, *code));
+ JIT_CODE_EVENT(AddCode(*name, *code));
JSObject::UpdateMapCodeCache(receiver, name, code);
return code;
}
@@ -552,7 +554,7 @@ Handle<Code> StubCache::ComputeStoreInterceptor(Handle<String> name,
StoreStubCompiler compiler(isolate_, strict_mode);
Handle<Code> code = compiler.CompileStoreInterceptor(receiver, name);
PROFILE(isolate_, CodeCreateEvent(Logger::STORE_IC_TAG, *code, *name));
- GDBJIT(AddCode(GDBJITInterface::STORE_IC, *name, *code));
+ JIT_CODE_EVENT(AddCode(*name, *code));
JSObject::UpdateMapCodeCache(receiver, name, code);
return code;
}
@@ -574,7 +576,7 @@ Handle<Code> StubCache::ComputeKeyedStoreField(Handle<String> name,
Handle<Code> code =
compiler.CompileStoreField(receiver, field_index, transition, name);
PROFILE(isolate_, CodeCreateEvent(Logger::KEYED_STORE_IC_TAG, *code, *name));
- GDBJIT(AddCode(GDBJITInterface::KEYED_STORE_IC, *name, *code));
+ JIT_CODE_EVENT(AddCode(*name, *code));
JSObject::UpdateMapCodeCache(receiver, name, code);
return code;
}
@@ -618,7 +620,7 @@ Handle<Code> StubCache::ComputeCallConstant(int argc,
ASSERT_EQ(flags, code->flags());
PROFILE(isolate_,
CodeCreateEvent(CALL_LOGGER_TAG(kind, CALL_IC_TAG), *code, *name));
- GDBJIT(AddCode(GDBJITInterface::CALL_IC, *name, *code));
+ JIT_CODE_EVENT(AddCode(*name, *code));
JSObject::UpdateMapCodeCache(map_holder, name, code);
return code;
}
@@ -656,7 +658,7 @@ Handle<Code> StubCache::ComputeCallField(int argc,
ASSERT_EQ(flags, code->flags());
PROFILE(isolate_,
CodeCreateEvent(CALL_LOGGER_TAG(kind, CALL_IC_TAG), *code, *name));
- GDBJIT(AddCode(GDBJITInterface::CALL_IC, *name, *code));
+ JIT_CODE_EVENT(AddCode(*name, *code));
JSObject::UpdateMapCodeCache(map_holder, name, code);
return code;
}
@@ -693,7 +695,7 @@ Handle<Code> StubCache::ComputeCallInterceptor(int argc,
ASSERT_EQ(flags, code->flags());
PROFILE(isolate(),
CodeCreateEvent(CALL_LOGGER_TAG(kind, CALL_IC_TAG), *code, *name));
- GDBJIT(AddCode(GDBJITInterface::CALL_IC, *name, *code));
+ JIT_CODE_EVENT(AddCode(*name, *code));
JSObject::UpdateMapCodeCache(map_holder, name, code);
return code;
}
@@ -722,7 +724,7 @@ Handle<Code> StubCache::ComputeCallGlobal(int argc,
ASSERT_EQ(flags, code->flags());
PROFILE(isolate(),
CodeCreateEvent(CALL_LOGGER_TAG(kind, CALL_IC_TAG), *code, *name));
- GDBJIT(AddCode(GDBJITInterface::CALL_IC, *name, *code));
+ JIT_CODE_EVENT(AddCode(*name, *code));
JSObject::UpdateMapCodeCache(map_holder, name, code);
return code;
}
@@ -1202,7 +1204,7 @@ Handle<Code> StubCompiler::CompileCallInitialize(Code::Flags flags) {
PROFILE(isolate(),
CodeCreateEvent(CALL_LOGGER_TAG(kind, CALL_INITIALIZE_TAG),
*code, code->arguments_count()));
- GDBJIT(AddCode(GDBJITInterface::CALL_INITIALIZE, *code));
+ JIT_CODE_EVENT(AddCode(*code));
return code;
}
@@ -1223,7 +1225,7 @@ Handle<Code> StubCompiler::CompileCallPreMonomorphic(Code::Flags flags) {
PROFILE(isolate(),
CodeCreateEvent(CALL_LOGGER_TAG(kind, CALL_PRE_MONOMORPHIC_TAG),
*code, code->arguments_count()));
- GDBJIT(AddCode(GDBJITInterface::CALL_PRE_MONOMORPHIC, *code));
+ JIT_CODE_EVENT(AddCode(*code));
return code;
}
@@ -1244,7 +1246,7 @@ Handle<Code> StubCompiler::CompileCallNormal(Code::Flags flags) {
PROFILE(isolate(),
CodeCreateEvent(CALL_LOGGER_TAG(kind, CALL_NORMAL_TAG),
*code, code->arguments_count()));
- GDBJIT(AddCode(GDBJITInterface::CALL_NORMAL, *code));
+ JIT_CODE_EVENT(AddCode(*code));
return code;
}
@@ -1263,7 +1265,7 @@ Handle<Code> StubCompiler::CompileCallMegamorphic(Code::Flags flags) {
PROFILE(isolate(),
CodeCreateEvent(CALL_LOGGER_TAG(kind, CALL_MEGAMORPHIC_TAG),
*code, code->arguments_count()));
- GDBJIT(AddCode(GDBJITInterface::CALL_MEGAMORPHIC, *code));
+ JIT_CODE_EVENT(AddCode(*code));
return code;
}
@@ -1276,7 +1278,7 @@ Handle<Code> StubCompiler::CompileCallArguments(Code::Flags flags) {
CodeCreateEvent(CALL_LOGGER_TAG(Code::ExtractKindFromFlags(flags),
CALL_MEGAMORPHIC_TAG),
*code, code->arguments_count()));
- GDBJIT(AddCode(GDBJITInterface::CALL_MEGAMORPHIC, *code));
+ JIT_CODE_EVENT(AddCode(*code));
return code;
}
@@ -1295,7 +1297,7 @@ Handle<Code> StubCompiler::CompileCallMiss(Code::Flags flags) {
PROFILE(isolate(),
CodeCreateEvent(CALL_LOGGER_TAG(kind, CALL_MISS_TAG),
*code, code->arguments_count()));
- GDBJIT(AddCode(GDBJITInterface::CALL_MISS, *code));
+ JIT_CODE_EVENT(AddCode(*code));
return code;
}
@@ -1372,7 +1374,7 @@ Handle<Code> LoadStubCompiler::GetCode(Code::StubType type,
Code::Flags flags = Code::ComputeMonomorphicFlags(Code::LOAD_IC, type);
Handle<Code> code = GetCodeWithFlags(flags, name);
PROFILE(isolate(), CodeCreateEvent(Logger::LOAD_IC_TAG, *code, *name));
- GDBJIT(AddCode(GDBJITInterface::LOAD_IC, *name, *code));
+ JIT_CODE_EVENT(AddCode(*name, *code));
return code;
}
@@ -1384,7 +1386,7 @@ Handle<Code> KeyedLoadStubCompiler::GetCode(Code::StubType type,
Code::KEYED_LOAD_IC, state, Code::kNoExtraICState, type);
Handle<Code> code = GetCodeWithFlags(flags, name);
PROFILE(isolate(), CodeCreateEvent(Logger::KEYED_LOAD_IC_TAG, *code, *name));
- GDBJIT(AddCode(GDBJITInterface::LOAD_IC, *name, *code));
+ JIT_CODE_EVENT(AddCode(*name, *code));
return code;
}
@@ -1395,7 +1397,7 @@ Handle<Code> StoreStubCompiler::GetCode(Code::StubType type,
Code::ComputeMonomorphicFlags(Code::STORE_IC, type, strict_mode_);
Handle<Code> code = GetCodeWithFlags(flags, name);
PROFILE(isolate(), CodeCreateEvent(Logger::STORE_IC_TAG, *code, *name));
- GDBJIT(AddCode(GDBJITInterface::STORE_IC, *name, *code));
+ JIT_CODE_EVENT(AddCode(*name, *code));
return code;
}
@@ -1409,7 +1411,7 @@ Handle<Code> KeyedStoreStubCompiler::GetCode(Code::StubType type,
Code::ComputeFlags(Code::KEYED_STORE_IC, state, extra_state, type);
Handle<Code> code = GetCodeWithFlags(flags, name);
PROFILE(isolate(), CodeCreateEvent(Logger::KEYED_STORE_IC_TAG, *code, *name));
- GDBJIT(AddCode(GDBJITInterface::KEYED_STORE_IC, *name, *code));
+ JIT_CODE_EVENT(AddCode(*name, *code));
return code;
}
@@ -1503,7 +1505,7 @@ Handle<Code> ConstructStubCompiler::GetCode() {
Code::Flags flags = Code::ComputeFlags(Code::STUB);
Handle<Code> code = GetCodeWithFlags(flags, "ConstructStub");
PROFILE(isolate(), CodeCreateEvent(Logger::STUB_TAG, *code, "ConstructStub"));
- GDBJIT(AddCode(GDBJITInterface::STUB, "ConstructStub", *code));
+ JIT_CODE_EVENT(AddCode("ConstructStub", *code));
return code;
}

Powered by Google App Engine
This is Rietveld 408576698