Chromium Code Reviews| Index: src/cpu-profiler.h |
| diff --git a/src/cpu-profiler.h b/src/cpu-profiler.h |
| index 4dc5643aa1bc73fe8ccbcba72492e07f0d71ed2a..7fa7b918dab1ca9347b23e846c20f8840a7b5303 100644 |
| --- a/src/cpu-profiler.h |
| +++ b/src/cpu-profiler.h |
| @@ -23,12 +23,13 @@ class CpuProfile; |
| class CpuProfilesCollection; |
| class ProfileGenerator; |
| -#define CODE_EVENTS_TYPE_LIST(V) \ |
| - V(CODE_CREATION, CodeCreateEventRecord) \ |
| - V(CODE_MOVE, CodeMoveEventRecord) \ |
| - V(CODE_DISABLE_OPT, CodeDisableOptEventRecord) \ |
| - V(SHARED_FUNC_MOVE, SharedFunctionInfoMoveEventRecord) \ |
| - V(REPORT_BUILTIN, ReportBuiltinEventRecord) |
| +#define CODE_EVENTS_TYPE_LIST(V) \ |
| + V(CODE_CREATION, CodeCreateEventRecord) \ |
| + V(CODE_MOVE, CodeMoveEventRecord) \ |
| + V(CODE_DISABLE_OPT, CodeDisableOptEventRecord) \ |
| + V(CODE_DEOPT, CodeDeoptEventRecord) \ |
| + V(SHARED_FUNC_MOVE, SharedFunctionInfoMoveEventRecord) \ |
| + V(REPORT_BUILTIN, ReportBuiltinEventRecord) |
| class CodeEventRecord { |
| @@ -75,6 +76,16 @@ class CodeDisableOptEventRecord : public CodeEventRecord { |
| }; |
| +class CodeDeoptEventRecord : public CodeEventRecord { |
| + public: |
| + Address start; |
| + const char* deopt_reason; |
| + int raw_position; |
| + |
| + INLINE(void UpdateCodeMap(CodeMap* code_map)); |
| +}; |
| + |
| + |
| class SharedFunctionInfoMoveEventRecord : public CodeEventRecord { |
| public: |
| Address from; |
| @@ -137,6 +148,7 @@ class ProfilerEventsProcessor : public base::Thread { |
| // Puts current stack into tick sample events buffer. |
| void AddCurrentStack(Isolate* isolate); |
| + void AddDeoptStack(Isolate* isolate, Address from, int fp_to_sp_delta); |
| // Tick sample events are filled directly in the buffer of the circular |
| // queue (because the structure is of fixed width, but usually not all |
| @@ -233,6 +245,8 @@ class CpuProfiler : public CodeEventListener { |
| virtual void CodeMovingGCEvent() {} |
| virtual void CodeMoveEvent(Address from, Address to); |
| virtual void CodeDisableOptEvent(Code* code, SharedFunctionInfo* shared); |
| + virtual void CodeDeoptEvent(Code* code, int bailout_id, Address from, |
|
yurys
2015/02/10 08:27:14
from -> pc ?
loislo
2015/02/10 08:54:33
Done.
|
| + int fp_to_sp_delta); |
| virtual void CodeDeleteEvent(Address from); |
| virtual void GetterCallbackEvent(Name* name, Address entry_point); |
| virtual void RegExpCodeCreateEvent(Code* code, String* source); |