Index: src/stub-cache.cc |
=================================================================== |
--- src/stub-cache.cc (revision 12182) |
+++ src/stub-cache.cc (working copy) |
@@ -35,6 +35,7 @@ |
#include "ic-inl.h" |
#include "stub-cache.h" |
#include "vm-state-inl.h" |
+#include "third_party/vtune/vtune-jit.h" |
namespace v8 { |
namespace internal { |
@@ -96,6 +97,7 @@ |
primary->value = code; |
primary->map = map; |
isolate()->counters()->megamorphic_stub_cache_updates()->Increment(); |
+ VTUNEJIT(AddCode(name, code)); |
return code; |
} |
@@ -128,6 +130,7 @@ |
compiler.CompileLoadNonexistent(cache_name, receiver, last); |
PROFILE(isolate_, CodeCreateEvent(Logger::LOAD_IC_TAG, *code, *cache_name)); |
GDBJIT(AddCode(GDBJITInterface::LOAD_IC, *cache_name, *code)); |
+ VTUNEJIT(AddCode(cache_name, code)); |
JSObject::UpdateMapCodeCache(receiver, cache_name, code); |
return code; |
} |
@@ -147,6 +150,7 @@ |
compiler.CompileLoadField(receiver, holder, field_index, name); |
PROFILE(isolate_, CodeCreateEvent(Logger::LOAD_IC_TAG, *code, *name)); |
GDBJIT(AddCode(GDBJITInterface::LOAD_IC, *name, *code)); |
+ VTUNEJIT(AddCode(name, code)); |
JSObject::UpdateMapCodeCache(receiver, name, code); |
return code; |
} |
@@ -168,6 +172,7 @@ |
compiler.CompileLoadCallback(name, receiver, holder, callback); |
PROFILE(isolate_, CodeCreateEvent(Logger::LOAD_IC_TAG, *code, *name)); |
GDBJIT(AddCode(GDBJITInterface::LOAD_IC, *name, *code)); |
+ VTUNEJIT(AddCode(name, code)); |
JSObject::UpdateMapCodeCache(receiver, name, code); |
return code; |
} |
@@ -208,6 +213,7 @@ |
compiler.CompileLoadConstant(receiver, holder, value, name); |
PROFILE(isolate_, CodeCreateEvent(Logger::LOAD_IC_TAG, *code, *name)); |
GDBJIT(AddCode(GDBJITInterface::LOAD_IC, *name, *code)); |
+ VTUNEJIT(AddCode(name, code)); |
JSObject::UpdateMapCodeCache(receiver, name, code); |
return code; |
} |
@@ -227,6 +233,7 @@ |
compiler.CompileLoadInterceptor(receiver, holder, name); |
PROFILE(isolate_, CodeCreateEvent(Logger::LOAD_IC_TAG, *code, *name)); |
GDBJIT(AddCode(GDBJITInterface::LOAD_IC, *name, *code)); |
+ VTUNEJIT(AddCode(name, code)); |
JSObject::UpdateMapCodeCache(receiver, name, code); |
return code; |
} |
@@ -253,6 +260,7 @@ |
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)); |
+ VTUNEJIT(AddCode(name, code)); |
JSObject::UpdateMapCodeCache(receiver, name, code); |
return code; |
} |
@@ -273,6 +281,7 @@ |
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)); |
+ VTUNEJIT(AddCode(name, code)); |
JSObject::UpdateMapCodeCache(receiver, name, code); |
return code; |
} |
@@ -293,6 +302,7 @@ |
compiler.CompileLoadConstant(name, receiver, holder, value); |
PROFILE(isolate_, CodeCreateEvent(Logger::KEYED_LOAD_IC_TAG, *code, *name)); |
GDBJIT(AddCode(GDBJITInterface::KEYED_LOAD_IC, *name, *code)); |
+ VTUNEJIT(AddCode(name, code)); |
JSObject::UpdateMapCodeCache(receiver, name, code); |
return code; |
} |
@@ -311,6 +321,7 @@ |
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)); |
+ VTUNEJIT(AddCode(name, code)); |
JSObject::UpdateMapCodeCache(receiver, name, code); |
return code; |
} |
@@ -332,6 +343,7 @@ |
compiler.CompileLoadCallback(name, receiver, holder, callback); |
PROFILE(isolate_, CodeCreateEvent(Logger::KEYED_LOAD_IC_TAG, *code, *name)); |
GDBJIT(AddCode(GDBJITInterface::KEYED_LOAD_IC, *name, *code)); |
+ VTUNEJIT(AddCode(name, code)); |
JSObject::UpdateMapCodeCache(receiver, name, code); |
return code; |
} |
@@ -348,6 +360,7 @@ |
Handle<Code> code = compiler.CompileLoadArrayLength(name); |
PROFILE(isolate_, CodeCreateEvent(Logger::KEYED_LOAD_IC_TAG, *code, *name)); |
GDBJIT(AddCode(GDBJITInterface::KEYED_LOAD_IC, *name, *code)); |
+ VTUNEJIT(AddCode(name, code)); |
JSObject::UpdateMapCodeCache(receiver, name, code); |
return code; |
} |
@@ -365,6 +378,7 @@ |
Handle<Code> code = compiler.CompileLoadStringLength(name); |
PROFILE(isolate_, CodeCreateEvent(Logger::KEYED_LOAD_IC_TAG, *code, *name)); |
GDBJIT(AddCode(GDBJITInterface::KEYED_LOAD_IC, *name, *code)); |
+ VTUNEJIT(AddCode(name, code)); |
Map::UpdateCodeCache(map, name, code); |
return code; |
} |
@@ -382,6 +396,7 @@ |
Handle<Code> code = compiler.CompileLoadFunctionPrototype(name); |
PROFILE(isolate_, CodeCreateEvent(Logger::KEYED_LOAD_IC_TAG, *code, *name)); |
GDBJIT(AddCode(GDBJITInterface::KEYED_LOAD_IC, *name, *code)); |
+ VTUNEJIT(AddCode(name, code)); |
JSObject::UpdateMapCodeCache(receiver, name, code); |
return code; |
} |
@@ -404,6 +419,7 @@ |
compiler.CompileStoreField(receiver, field_index, transition, name); |
PROFILE(isolate_, CodeCreateEvent(Logger::STORE_IC_TAG, *code, *name)); |
GDBJIT(AddCode(GDBJITInterface::STORE_IC, *name, *code)); |
+ VTUNEJIT(AddCode(name, code)); |
JSObject::UpdateMapCodeCache(receiver, name, code); |
return code; |
} |
@@ -472,6 +488,7 @@ |
} else { |
PROFILE(isolate_, CodeCreateEvent(Logger::KEYED_STORE_IC_TAG, *code, 0)); |
} |
+ VTUNEJIT(AddCode("Keyed_STR/LD_IC", code)); |
Map::UpdateCodeCache(receiver_map, name, code); |
return code; |
} |
@@ -497,6 +514,7 @@ |
Handle<Code> code = compiler.CompileStoreGlobal(receiver, cell, name); |
PROFILE(isolate_, CodeCreateEvent(Logger::STORE_IC_TAG, *code, *name)); |
GDBJIT(AddCode(GDBJITInterface::STORE_IC, *name, *code)); |
+ VTUNEJIT(AddCode(name, code)); |
JSObject::UpdateMapCodeCache(receiver, name, code); |
return code; |
} |
@@ -516,6 +534,7 @@ |
Handle<Code> code = compiler.CompileStoreCallback(receiver, callback, name); |
PROFILE(isolate_, CodeCreateEvent(Logger::STORE_IC_TAG, *code, *name)); |
GDBJIT(AddCode(GDBJITInterface::STORE_IC, *name, *code)); |
+ VTUNEJIT(AddCode(name, code)); |
JSObject::UpdateMapCodeCache(receiver, name, code); |
return code; |
} |
@@ -553,6 +572,7 @@ |
Handle<Code> code = compiler.CompileStoreInterceptor(receiver, name); |
PROFILE(isolate_, CodeCreateEvent(Logger::STORE_IC_TAG, *code, *name)); |
GDBJIT(AddCode(GDBJITInterface::STORE_IC, *name, *code)); |
+ VTUNEJIT(AddCode(name, code)); |
JSObject::UpdateMapCodeCache(receiver, name, code); |
return code; |
} |
@@ -575,6 +595,7 @@ |
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)); |
+ VTUNEJIT(AddCode(name, code)); |
JSObject::UpdateMapCodeCache(receiver, name, code); |
return code; |
} |
@@ -619,6 +640,7 @@ |
PROFILE(isolate_, |
CodeCreateEvent(CALL_LOGGER_TAG(kind, CALL_IC_TAG), *code, *name)); |
GDBJIT(AddCode(GDBJITInterface::CALL_IC, *name, *code)); |
+ VTUNEJIT(AddCode(name, code)); |
JSObject::UpdateMapCodeCache(map_holder, name, code); |
return code; |
} |
@@ -657,6 +679,7 @@ |
PROFILE(isolate_, |
CodeCreateEvent(CALL_LOGGER_TAG(kind, CALL_IC_TAG), *code, *name)); |
GDBJIT(AddCode(GDBJITInterface::CALL_IC, *name, *code)); |
+ VTUNEJIT(AddCode(name, code)); |
JSObject::UpdateMapCodeCache(map_holder, name, code); |
return code; |
} |
@@ -694,6 +717,7 @@ |
PROFILE(isolate(), |
CodeCreateEvent(CALL_LOGGER_TAG(kind, CALL_IC_TAG), *code, *name)); |
GDBJIT(AddCode(GDBJITInterface::CALL_IC, *name, *code)); |
+ VTUNEJIT(AddCode(name, code)); |
JSObject::UpdateMapCodeCache(map_holder, name, code); |
return code; |
} |
@@ -723,6 +747,7 @@ |
PROFILE(isolate(), |
CodeCreateEvent(CALL_LOGGER_TAG(kind, CALL_IC_TAG), *code, *name)); |
GDBJIT(AddCode(GDBJITInterface::CALL_IC, *name, *code)); |
+ VTUNEJIT(AddCode(name, code)); |
JSObject::UpdateMapCodeCache(map_holder, name, code); |
return code; |
} |
@@ -1203,6 +1228,7 @@ |
CodeCreateEvent(CALL_LOGGER_TAG(kind, CALL_INITIALIZE_TAG), |
*code, code->arguments_count())); |
GDBJIT(AddCode(GDBJITInterface::CALL_INITIALIZE, *code)); |
+ VTUNEJIT(AddCode("CALL_INITIALIZE", code)); |
return code; |
} |
@@ -1224,6 +1250,7 @@ |
CodeCreateEvent(CALL_LOGGER_TAG(kind, CALL_PRE_MONOMORPHIC_TAG), |
*code, code->arguments_count())); |
GDBJIT(AddCode(GDBJITInterface::CALL_PRE_MONOMORPHIC, *code)); |
+ VTUNEJIT(AddCode("CALL_PRE_MONOMORPHIC", code)); |
return code; |
} |
@@ -1245,6 +1272,7 @@ |
CodeCreateEvent(CALL_LOGGER_TAG(kind, CALL_NORMAL_TAG), |
*code, code->arguments_count())); |
GDBJIT(AddCode(GDBJITInterface::CALL_NORMAL, *code)); |
+ VTUNEJIT(AddCode("CALL_NORMAL", code)); |
return code; |
} |
@@ -1264,6 +1292,7 @@ |
CodeCreateEvent(CALL_LOGGER_TAG(kind, CALL_MEGAMORPHIC_TAG), |
*code, code->arguments_count())); |
GDBJIT(AddCode(GDBJITInterface::CALL_MEGAMORPHIC, *code)); |
+ VTUNEJIT(AddCode("CALL_MEGAMORPHIC", code)); |
return code; |
} |
@@ -1277,6 +1306,7 @@ |
CALL_MEGAMORPHIC_TAG), |
*code, code->arguments_count())); |
GDBJIT(AddCode(GDBJITInterface::CALL_MEGAMORPHIC, *code)); |
+ VTUNEJIT(AddCode("CALL_MEGAMORPHIC", code)); |
return code; |
} |
@@ -1296,6 +1326,7 @@ |
CodeCreateEvent(CALL_LOGGER_TAG(kind, CALL_MISS_TAG), |
*code, code->arguments_count())); |
GDBJIT(AddCode(GDBJITInterface::CALL_MISS, *code)); |
+ VTUNEJIT(AddCode("CALL_MISS", code)); |
return code; |
} |
@@ -1308,6 +1339,7 @@ |
CodeCreateEvent(CALL_LOGGER_TAG(Code::ExtractKindFromFlags(flags), |
CALL_DEBUG_BREAK_TAG), |
*code, code->arguments_count())); |
+ VTUNEJIT(AddCode("call_debug_prepare", code)); |
return code; |
} |
@@ -1329,6 +1361,7 @@ |
CALL_LOGGER_TAG(kind, CALL_DEBUG_PREPARE_STEP_IN_TAG), |
*code, |
code->arguments_count())); |
+ VTUNEJIT(AddCode("call_debug_prepare", code)); |
return code; |
} |
#endif // ENABLE_DEBUGGER_SUPPORT |
@@ -1373,6 +1406,7 @@ |
Handle<Code> code = GetCodeWithFlags(flags, name); |
PROFILE(isolate(), CodeCreateEvent(Logger::LOAD_IC_TAG, *code, *name)); |
GDBJIT(AddCode(GDBJITInterface::LOAD_IC, *name, *code)); |
+ VTUNEJIT(AddCode(name, code)); |
return code; |
} |
@@ -1385,6 +1419,7 @@ |
Handle<Code> code = GetCodeWithFlags(flags, name); |
PROFILE(isolate(), CodeCreateEvent(Logger::KEYED_LOAD_IC_TAG, *code, *name)); |
GDBJIT(AddCode(GDBJITInterface::LOAD_IC, *name, *code)); |
+ VTUNEJIT(AddCode(name, code)); |
return code; |
} |
@@ -1396,6 +1431,7 @@ |
Handle<Code> code = GetCodeWithFlags(flags, name); |
PROFILE(isolate(), CodeCreateEvent(Logger::STORE_IC_TAG, *code, *name)); |
GDBJIT(AddCode(GDBJITInterface::STORE_IC, *name, *code)); |
+ VTUNEJIT(AddCode(name, code)); |
return code; |
} |
@@ -1410,6 +1446,7 @@ |
Handle<Code> code = GetCodeWithFlags(flags, name); |
PROFILE(isolate(), CodeCreateEvent(Logger::KEYED_STORE_IC_TAG, *code, *name)); |
GDBJIT(AddCode(GDBJITInterface::KEYED_STORE_IC, *name, *code)); |
+ VTUNEJIT(AddCode(name, code)); |
return code; |
} |
@@ -1504,6 +1541,7 @@ |
Handle<Code> code = GetCodeWithFlags(flags, "ConstructStub"); |
PROFILE(isolate(), CodeCreateEvent(Logger::STUB_TAG, *code, "ConstructStub")); |
GDBJIT(AddCode(GDBJITInterface::STUB, "ConstructStub", *code)); |
+ VTUNEJIT(AddCode("ConstructStub", code)); |
return code; |
} |