| 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;
|
| }
|
|
|
|
|