| Index: src/cpu-profiler.h
|
| diff --git a/src/cpu-profiler.h b/src/cpu-profiler.h
|
| index c66f99e17f7af025f64111dc109a413b704946ba..455c89332870caa7a2a87107d77890309e951057 100644
|
| --- a/src/cpu-profiler.h
|
| +++ b/src/cpu-profiler.h
|
| @@ -63,7 +63,7 @@ class CodeEventRecord {
|
| #undef DECLARE_TYPE
|
|
|
| Type type;
|
| - mutable unsigned order;
|
| + unsigned order;
|
| };
|
|
|
|
|
| @@ -122,21 +122,6 @@ class TickSampleEventRecord {
|
| };
|
|
|
|
|
| -class CodeEventsContainer {
|
| - public:
|
| - explicit CodeEventsContainer(
|
| - CodeEventRecord::Type type = CodeEventRecord::NONE) {
|
| - generic.type = type;
|
| - }
|
| - union {
|
| - CodeEventRecord generic;
|
| -#define DECLARE_CLASS(ignore, type) type type##_;
|
| - CODE_EVENTS_TYPE_LIST(DECLARE_CLASS)
|
| -#undef DECLARE_TYPE
|
| - };
|
| -};
|
| -
|
| -
|
| // This class implements both the profile events processor thread and
|
| // methods called by event producers: VM and stack sampler threads.
|
| class ProfilerEventsProcessor : public Thread {
|
| @@ -149,8 +134,29 @@ class ProfilerEventsProcessor : public Thread {
|
| virtual void Run();
|
| inline void Stop() { running_ = false; }
|
| INLINE(bool running()) { return running_; }
|
| - void Enqueue(const CodeEventsContainer& event);
|
|
|
| + // Events adding methods. Called by VM threads.
|
| + void CallbackCreateEvent(Logger::LogEventsAndTags tag,
|
| + const char* prefix, Name* name,
|
| + Address start);
|
| + void CodeCreateEvent(Logger::LogEventsAndTags tag,
|
| + Name* name,
|
| + String* resource_name, int line_number,
|
| + Address start, unsigned size,
|
| + Address shared,
|
| + CompilationInfo* info);
|
| + void CodeCreateEvent(Logger::LogEventsAndTags tag,
|
| + const char* name,
|
| + Address start, unsigned size);
|
| + void CodeCreateEvent(Logger::LogEventsAndTags tag,
|
| + int args_count,
|
| + Address start, unsigned size);
|
| + void CodeMoveEvent(Address from, Address to);
|
| + void CodeDeleteEvent(Address from);
|
| + void SharedFunctionInfoMoveEvent(Address from, Address to);
|
| + void RegExpCodeCreateEvent(Logger::LogEventsAndTags tag,
|
| + const char* prefix, String* name,
|
| + Address start, unsigned size);
|
| // Puts current stack into tick sample events buffer.
|
| void AddCurrentStack();
|
|
|
| @@ -161,10 +167,19 @@ class ProfilerEventsProcessor : public Thread {
|
| INLINE(TickSample* TickSampleEvent());
|
|
|
| private:
|
| + union CodeEventsContainer {
|
| + CodeEventRecord generic;
|
| +#define DECLARE_CLASS(ignore, type) type type##_;
|
| + CODE_EVENTS_TYPE_LIST(DECLARE_CLASS)
|
| +#undef DECLARE_TYPE
|
| + };
|
| +
|
| // Called from events processing thread (Run() method.)
|
| bool ProcessCodeEvent(unsigned* dequeue_order);
|
| bool ProcessTicks(unsigned dequeue_order);
|
|
|
| + INLINE(static bool FilterOutCodeCreateEvent(Logger::LogEventsAndTags tag));
|
| +
|
| ProfileGenerator* generator_;
|
| CpuProfilesCollection* profiles_;
|
| bool running_;
|
| @@ -189,12 +204,6 @@ class ProfilerEventsProcessor : public Thread {
|
| class CpuProfiler {
|
| public:
|
| explicit CpuProfiler(Isolate* isolate);
|
| -
|
| - CpuProfiler(Isolate* isolate,
|
| - CpuProfilesCollection* test_collection,
|
| - ProfileGenerator* test_generator,
|
| - ProfilerEventsProcessor* test_processor);
|
| -
|
| ~CpuProfiler();
|
|
|
| void StartProfiling(const char* title, bool record_samples = false);
|
|
|