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

Side by Side Diff: src/log.h

Issue 2111793002: Simplify JIT event logging. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: fix forward declaration Created 4 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 unified diff | Download patch
« no previous file with comments | « src/interpreter/bytecode-array-writer.cc ('k') | src/log.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef V8_LOG_H_ 5 #ifndef V8_LOG_H_
6 #define V8_LOG_H_ 6 #define V8_LOG_H_
7 7
8 #include <string> 8 #include <string>
9 9
10 #include "src/allocation.h" 10 #include "src/allocation.h"
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
59 // 59 //
60 // --prof 60 // --prof
61 // Collect statistical profiling information (ticks), default is off. The 61 // Collect statistical profiling information (ticks), default is off. The
62 // tick profiler requires code events, so --prof implies --log-code. 62 // tick profiler requires code events, so --prof implies --log-code.
63 63
64 // Forward declarations. 64 // Forward declarations.
65 class CodeEventListener; 65 class CodeEventListener;
66 class CpuProfiler; 66 class CpuProfiler;
67 class Isolate; 67 class Isolate;
68 class Log; 68 class Log;
69 class PositionsRecorder;
70 class Profiler; 69 class Profiler;
71 class Ticker; 70 class Ticker;
72 struct TickSample; 71 struct TickSample;
73 class RuntimeCallTimer; 72 class RuntimeCallTimer;
74 73
75 #undef LOG 74 #undef LOG
76 #define LOG(isolate, Call) \ 75 #define LOG(isolate, Call) \
77 do { \ 76 do { \
78 v8::internal::Logger* logger = (isolate)->logger(); \ 77 v8::internal::Logger* logger = (isolate)->logger(); \
79 if (logger->is_logging()) logger->Call; \ 78 if (logger->is_logging()) logger->Call; \
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after
186 void CodeMoveEvent(AbstractCode* from, Address to); 185 void CodeMoveEvent(AbstractCode* from, Address to);
187 // Emits a code line info add event with Postion type. 186 // Emits a code line info add event with Postion type.
188 void CodeLinePosInfoAddPositionEvent(void* jit_handler_data, 187 void CodeLinePosInfoAddPositionEvent(void* jit_handler_data,
189 int pc_offset, 188 int pc_offset,
190 int position); 189 int position);
191 // Emits a code line info add event with StatementPostion type. 190 // Emits a code line info add event with StatementPostion type.
192 void CodeLinePosInfoAddStatementPositionEvent(void* jit_handler_data, 191 void CodeLinePosInfoAddStatementPositionEvent(void* jit_handler_data,
193 int pc_offset, 192 int pc_offset,
194 int position); 193 int position);
195 // Emits a code line info start to record event 194 // Emits a code line info start to record event
196 void CodeStartLinePosInfoRecordEvent(PositionsRecorder* pos_recorder); 195 void CodeStartLinePosInfoRecordEvent(void** jit_handler_data_out);
197 // Emits a code line info finish record event. 196 // Emits a code line info finish record event.
198 // It's the callee's responsibility to dispose the parameter jit_handler_data. 197 // It's the callee's responsibility to dispose the parameter jit_handler_data.
199 void CodeEndLinePosInfoRecordEvent(AbstractCode* code, 198 void CodeEndLinePosInfoRecordEvent(AbstractCode* code,
200 void* jit_handler_data); 199 void* jit_handler_data);
201 200
202 void SharedFunctionInfoMoveEvent(Address from, Address to); 201 void SharedFunctionInfoMoveEvent(Address from, Address to);
203 202
204 void CodeNameEvent(Address addr, int pos, const char* code_name); 203 void CodeNameEvent(Address addr, int pos, const char* code_name);
205 204
206 void CodeDeoptEvent(Code* code, Address pc, int fp_to_sp_delta); 205 void CodeDeoptEvent(Code* code, Address pc, int fp_to_sp_delta);
(...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after
344 std::unique_ptr<ProfilerListener> profiler_listener_; 343 std::unique_ptr<ProfilerListener> profiler_listener_;
345 List<CodeEventListener*> listeners_; 344 List<CodeEventListener*> listeners_;
346 345
347 // Guards against multiple calls to TearDown() that can happen in some tests. 346 // Guards against multiple calls to TearDown() that can happen in some tests.
348 // 'true' between SetUp() and TearDown(). 347 // 'true' between SetUp() and TearDown().
349 bool is_initialized_; 348 bool is_initialized_;
350 349
351 base::ElapsedTimer timer_; 350 base::ElapsedTimer timer_;
352 351
353 friend class CpuProfiler; 352 friend class CpuProfiler;
353 friend class SourcePositionTableBuilder;
354 }; 354 };
355 355
356 #define TIMER_EVENTS_LIST(V) \ 356 #define TIMER_EVENTS_LIST(V) \
357 V(RecompileSynchronous, true) \ 357 V(RecompileSynchronous, true) \
358 V(RecompileConcurrent, true) \ 358 V(RecompileConcurrent, true) \
359 V(CompileIgnition, true) \ 359 V(CompileIgnition, true) \
360 V(CompileFullCode, true) \ 360 V(CompileFullCode, true) \
361 V(OptimizeCode, true) \ 361 V(OptimizeCode, true) \
362 V(CompileCode, true) \ 362 V(CompileCode, true) \
363 V(DeoptimizeCode, true) \ 363 V(DeoptimizeCode, true) \
(...skipping 19 matching lines...) Expand all
383 } 383 }
384 384
385 ~TimerEventScope() { LogTimerEvent(Logger::END); } 385 ~TimerEventScope() { LogTimerEvent(Logger::END); }
386 386
387 void LogTimerEvent(Logger::StartEnd se); 387 void LogTimerEvent(Logger::StartEnd se);
388 388
389 private: 389 private:
390 Isolate* isolate_; 390 Isolate* isolate_;
391 }; 391 };
392 392
393 class PositionsRecorder BASE_EMBEDDED {
394 public:
395 PositionsRecorder() { jit_handler_data_ = NULL; }
396
397 void AttachJITHandlerData(void* user_data) { jit_handler_data_ = user_data; }
398
399 void* DetachJITHandlerData() {
400 void* old_data = jit_handler_data_;
401 jit_handler_data_ = NULL;
402 return old_data;
403 }
404
405 protected:
406 // Currently jit_handler_data_ is used to store JITHandler-specific data
407 // over the lifetime of a PositionsRecorder
408 void* jit_handler_data_;
409
410 private:
411 DISALLOW_COPY_AND_ASSIGN(PositionsRecorder);
412 };
413
414 class CodeEventLogger : public CodeEventListener { 393 class CodeEventLogger : public CodeEventListener {
415 public: 394 public:
416 CodeEventLogger(); 395 CodeEventLogger();
417 ~CodeEventLogger() override; 396 ~CodeEventLogger() override;
418 397
419 void CodeCreateEvent(LogEventsAndTags tag, AbstractCode* code, 398 void CodeCreateEvent(LogEventsAndTags tag, AbstractCode* code,
420 const char* comment) override; 399 const char* comment) override;
421 void CodeCreateEvent(LogEventsAndTags tag, AbstractCode* code, 400 void CodeCreateEvent(LogEventsAndTags tag, AbstractCode* code,
422 Name* name) override; 401 Name* name) override;
423 void CodeCreateEvent(LogEventsAndTags tag, AbstractCode* code, 402 void CodeCreateEvent(LogEventsAndTags tag, AbstractCode* code,
(...skipping 20 matching lines...) Expand all
444 423
445 NameBuffer* name_buffer_; 424 NameBuffer* name_buffer_;
446 }; 425 };
447 426
448 427
449 } // namespace internal 428 } // namespace internal
450 } // namespace v8 429 } // namespace v8
451 430
452 431
453 #endif // V8_LOG_H_ 432 #endif // V8_LOG_H_
OLDNEW
« no previous file with comments | « src/interpreter/bytecode-array-writer.cc ('k') | src/log.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698