Chromium Code Reviews| Index: src/log.cc |
| diff --git a/src/log.cc b/src/log.cc |
| index d26279bb24ad03e9098683adbda34794b06505c9..8e2e18f2407fa56f9a17225a377cfd966395375e 100644 |
| --- a/src/log.cc |
| +++ b/src/log.cc |
| @@ -54,6 +54,12 @@ static const char* const kLogEventsNames[Logger::NUMBER_OF_LOG_EVENTS] = { |
| #undef DECLARE_EVENT |
| +#define PROFILER_LOG(Call) \ |
|
Sven Panne
2013/07/23 08:04:20
This macro is unsafe because of 2 reasons (well, a
loislo
2013/07/23 08:12:55
Done.
|
| + CpuProfiler* cpu_profiler = isolate_->cpu_profiler(); \ |
| + if (cpu_profiler->is_profiling()) { \ |
| + cpu_profiler->Call; \ |
| + } |
| + |
| // ComputeMarker must only be used when SharedFunctionInfo is known. |
| static const char* ComputeMarker(Code* code) { |
| switch (code->kind()) { |
| @@ -543,7 +549,7 @@ class JitLogger : public CodeEventLogger { |
| public: |
| explicit JitLogger(JitCodeEventHandler code_event_handler); |
| - void CodeMovedEvent(Address from, Address to); |
| + void CodeMoveEvent(Address from, Address to); |
| void CodeDeleteEvent(Address from); |
| void AddCodeLinePosInfoEvent( |
| void* jit_handler_data, |
| @@ -588,7 +594,7 @@ void JitLogger::LogRecordedBuffer(Code* code, |
| } |
| -void JitLogger::CodeMovedEvent(Address from, Address to) { |
| +void JitLogger::CodeMoveEvent(Address from, Address to) { |
| Code* from_code = Code::cast(HeapObject::FromAddress(from)); |
| JitCodeEvent event; |
| @@ -1209,7 +1215,7 @@ void Logger::DeleteEventStatic(const char* name, void* object) { |
| void Logger::CallbackEventInternal(const char* prefix, Name* name, |
| Address entry_point) { |
| - if (!log_->IsEnabled() || !FLAG_log_code) return; |
| + if (!FLAG_log_code || !log_->IsEnabled()) return; |
| Log::MessageBuilder msg(log_); |
| msg.Append("%s,%s,-2,", |
| kLogEventsNames[CODE_CREATION_EVENT], |
| @@ -1235,19 +1241,19 @@ void Logger::CallbackEventInternal(const char* prefix, Name* name, |
| void Logger::CallbackEvent(Name* name, Address entry_point) { |
| - if (!log_->IsEnabled() || !FLAG_log_code) return; |
| + PROFILER_LOG(CallbackEvent(name, entry_point)); |
| CallbackEventInternal("", name, entry_point); |
| } |
| void Logger::GetterCallbackEvent(Name* name, Address entry_point) { |
| - if (!log_->IsEnabled() || !FLAG_log_code) return; |
| + PROFILER_LOG(GetterCallbackEvent(name, entry_point)); |
| CallbackEventInternal("get ", name, entry_point); |
| } |
| void Logger::SetterCallbackEvent(Name* name, Address entry_point) { |
| - if (!log_->IsEnabled() || !FLAG_log_code) return; |
| + PROFILER_LOG(SetterCallbackEvent(name, entry_point)); |
| CallbackEventInternal("set ", name, entry_point); |
| } |
| @@ -1268,8 +1274,9 @@ static void AppendCodeCreateHeader(Log::MessageBuilder* msg, |
| void Logger::CodeCreateEvent(LogEventsAndTags tag, |
| Code* code, |
| const char* comment) { |
| - if (!is_logging_code_events()) return; |
| + PROFILER_LOG(CodeCreateEvent(tag, code, comment)); |
| + if (!is_logging_code_events()) return; |
| JIT_LOG(CodeCreateEvent(tag, code, comment)); |
| LL_LOG(CodeCreateEvent(tag, code, comment)); |
| CODE_ADDRESS_MAP_LOG(CodeCreateEvent(tag, code, comment)); |
| @@ -1286,8 +1293,9 @@ void Logger::CodeCreateEvent(LogEventsAndTags tag, |
| void Logger::CodeCreateEvent(LogEventsAndTags tag, |
| Code* code, |
| Name* name) { |
| - if (!is_logging_code_events()) return; |
| + PROFILER_LOG(CodeCreateEvent(tag, code, name)); |
| + if (!is_logging_code_events()) return; |
| JIT_LOG(CodeCreateEvent(tag, code, name)); |
| LL_LOG(CodeCreateEvent(tag, code, name)); |
| CODE_ADDRESS_MAP_LOG(CodeCreateEvent(tag, code, name)); |
| @@ -1312,8 +1320,9 @@ void Logger::CodeCreateEvent(LogEventsAndTags tag, |
| SharedFunctionInfo* shared, |
| CompilationInfo* info, |
| Name* name) { |
| - if (!is_logging_code_events()) return; |
| + PROFILER_LOG(CodeCreateEvent(tag, code, shared, info, name)); |
| + if (!is_logging_code_events()) return; |
| JIT_LOG(CodeCreateEvent(tag, code, shared, info, name)); |
| LL_LOG(CodeCreateEvent(tag, code, shared, info, name)); |
| CODE_ADDRESS_MAP_LOG(CodeCreateEvent(tag, code, shared, info, name)); |
| @@ -1348,8 +1357,9 @@ void Logger::CodeCreateEvent(LogEventsAndTags tag, |
| SharedFunctionInfo* shared, |
| CompilationInfo* info, |
| Name* source, int line) { |
| - if (!is_logging_code_events()) return; |
| + PROFILER_LOG(CodeCreateEvent(tag, code, shared, info, source, line)); |
| + if (!is_logging_code_events()) return; |
| JIT_LOG(CodeCreateEvent(tag, code, shared, info, source, line)); |
| LL_LOG(CodeCreateEvent(tag, code, shared, info, source, line)); |
| CODE_ADDRESS_MAP_LOG(CodeCreateEvent(tag, code, shared, info, source, line)); |
| @@ -1378,8 +1388,9 @@ void Logger::CodeCreateEvent(LogEventsAndTags tag, |
| void Logger::CodeCreateEvent(LogEventsAndTags tag, |
| Code* code, |
| int args_count) { |
| - if (!is_logging_code_events()) return; |
| + PROFILER_LOG(CodeCreateEvent(tag, code, args_count)); |
| + if (!is_logging_code_events()) return; |
| JIT_LOG(CodeCreateEvent(tag, code, args_count)); |
| LL_LOG(CodeCreateEvent(tag, code, args_count)); |
| CODE_ADDRESS_MAP_LOG(CodeCreateEvent(tag, code, args_count)); |
| @@ -1394,6 +1405,9 @@ void Logger::CodeCreateEvent(LogEventsAndTags tag, |
| void Logger::CodeMovingGCEvent() { |
| + PROFILER_LOG(CodeMovingGCEvent()); |
| + |
| + if (!is_logging_code_events()) return; |
| if (!log_->IsEnabled() || !FLAG_ll_prof) return; |
| LL_LOG(CodeMovingGCEvent()); |
| OS::SignalCodeMovingGC(); |
| @@ -1401,8 +1415,9 @@ void Logger::CodeMovingGCEvent() { |
| void Logger::RegExpCodeCreateEvent(Code* code, String* source) { |
| - if (!is_logging_code_events()) return; |
| + PROFILER_LOG(RegExpCodeCreateEvent(code, source)); |
| + if (!is_logging_code_events()) return; |
| JIT_LOG(RegExpCodeCreateEvent(code, source)); |
| LL_LOG(RegExpCodeCreateEvent(code, source)); |
| CODE_ADDRESS_MAP_LOG(RegExpCodeCreateEvent(code, source)); |
| @@ -1419,8 +1434,10 @@ void Logger::RegExpCodeCreateEvent(Code* code, String* source) { |
| void Logger::CodeMoveEvent(Address from, Address to) { |
| - JIT_LOG(CodeMovedEvent(from, to)); |
| - if (!log_->IsEnabled()) return; |
| + PROFILER_LOG(CodeMoveEvent(from, to)); |
| + |
| + if (!is_logging_code_events()) return; |
| + JIT_LOG(CodeMoveEvent(from, to)); |
| LL_LOG(CodeMoveEvent(from, to)); |
| CODE_ADDRESS_MAP_LOG(CodeMoveEvent(from, to)); |
| MoveEventInternal(CODE_MOVE_EVENT, from, to); |
| @@ -1428,12 +1445,14 @@ void Logger::CodeMoveEvent(Address from, Address to) { |
| void Logger::CodeDeleteEvent(Address from) { |
| + PROFILER_LOG(CodeDeleteEvent(from)); |
| + |
| + if (!is_logging_code_events()) return; |
| JIT_LOG(CodeDeleteEvent(from)); |
| - if (!log_->IsEnabled()) return; |
| LL_LOG(CodeDeleteEvent(from)); |
| CODE_ADDRESS_MAP_LOG(CodeDeleteEvent(from)); |
| - if (!log_->IsEnabled() || !FLAG_log_code) return; |
| + if (!FLAG_log_code || !log_->IsEnabled()) return; |
| Log::MessageBuilder msg(log_); |
| msg.Append("%s,", kLogEventsNames[CODE_DELETE_EVENT]); |
| msg.AppendAddress(from); |
| @@ -1498,6 +1517,9 @@ void Logger::SnapshotPositionEvent(Address addr, int pos) { |
| void Logger::SharedFunctionInfoMoveEvent(Address from, Address to) { |
| + PROFILER_LOG(SharedFunctionInfoMoveEvent(from, to)); |
| + |
| + if (!is_logging_code_events()) return; |
| MoveEventInternal(SHARED_FUNC_MOVE_EVENT, from, to); |
| } |
| @@ -1505,7 +1527,7 @@ void Logger::SharedFunctionInfoMoveEvent(Address from, Address to) { |
| void Logger::MoveEventInternal(LogEventsAndTags event, |
| Address from, |
| Address to) { |
| - if (!log_->IsEnabled() || !FLAG_log_code) return; |
| + if (!FLAG_log_code || !log_->IsEnabled()) return; |
| Log::MessageBuilder msg(log_); |
| msg.Append("%s,", kLogEventsNames[event]); |
| msg.AppendAddress(from); |