| Index: src/cpu-profiler.h
|
| ===================================================================
|
| --- src/cpu-profiler.h (revision 7006)
|
| +++ src/cpu-profiler.h (working copy)
|
| @@ -50,7 +50,7 @@
|
| V(CODE_CREATION, CodeCreateEventRecord) \
|
| V(CODE_MOVE, CodeMoveEventRecord) \
|
| V(CODE_DELETE, CodeDeleteEventRecord) \
|
| - V(CODE_ALIAS, CodeAliasEventRecord)
|
| + V(SFI_MOVE, SFIMoveEventRecord)
|
|
|
|
|
| class CodeEventRecord {
|
| @@ -73,6 +73,7 @@
|
| Address start;
|
| CodeEntry* entry;
|
| unsigned size;
|
| + Address sfi_address;
|
|
|
| INLINE(void UpdateCodeMap(CodeMap* code_map));
|
| };
|
| @@ -95,11 +96,10 @@
|
| };
|
|
|
|
|
| -class CodeAliasEventRecord : public CodeEventRecord {
|
| +class SFIMoveEventRecord : public CodeEventRecord {
|
| public:
|
| - Address start;
|
| - CodeEntry* entry;
|
| - Address code_start;
|
| + Address from;
|
| + Address to;
|
|
|
| INLINE(void UpdateCodeMap(CodeMap* code_map));
|
| };
|
| @@ -135,7 +135,7 @@
|
| public:
|
| explicit ProfilerEventsProcessor(Isolate* isolate,
|
| ProfileGenerator* generator);
|
| - virtual ~ProfilerEventsProcessor();
|
| + virtual ~ProfilerEventsProcessor() {}
|
|
|
| // Thread control.
|
| virtual void Run();
|
| @@ -149,7 +149,8 @@
|
| void CodeCreateEvent(Logger::LogEventsAndTags tag,
|
| String* name,
|
| String* resource_name, int line_number,
|
| - Address start, unsigned size);
|
| + Address start, unsigned size,
|
| + Address sfi_address);
|
| void CodeCreateEvent(Logger::LogEventsAndTags tag,
|
| const char* name,
|
| Address start, unsigned size);
|
| @@ -158,17 +159,12 @@
|
| Address start, unsigned size);
|
| void CodeMoveEvent(Address from, Address to);
|
| void CodeDeleteEvent(Address from);
|
| - void FunctionCreateEvent(Address alias, Address start, int security_token_id);
|
| - void FunctionMoveEvent(Address from, Address to);
|
| - void FunctionDeleteEvent(Address from);
|
| + void SFIMoveEvent(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();
|
| - bool IsKnownFunction(Address start);
|
| - void ProcessMovedFunctions();
|
| - void RememberMovedFunction(JSFunction* function);
|
|
|
| // Tick sample events are filled directly in the buffer of the circular
|
| // queue (because the structure is of fixed width, but usually not all
|
| @@ -189,13 +185,6 @@
|
| bool ProcessTicks(unsigned dequeue_order);
|
|
|
| INLINE(static bool FilterOutCodeCreateEvent(Logger::LogEventsAndTags tag));
|
| - INLINE(static bool AddressesMatch(void* key1, void* key2)) {
|
| - return key1 == key2;
|
| - }
|
| - INLINE(static uint32_t AddressHash(Address addr)) {
|
| - return ComputeIntegerHash(
|
| - static_cast<uint32_t>(reinterpret_cast<uintptr_t>(addr)));
|
| - }
|
|
|
| ProfileGenerator* generator_;
|
| bool running_;
|
| @@ -203,10 +192,6 @@
|
| SamplingCircularQueue ticks_buffer_;
|
| UnboundQueue<TickSampleEventRecord> ticks_from_vm_buffer_;
|
| unsigned enqueue_order_;
|
| -
|
| - // Used from the VM thread.
|
| - HashMap* known_functions_;
|
| - List<JSFunction*> moved_functions_;
|
| };
|
|
|
| } } // namespace v8::internal
|
| @@ -254,23 +239,22 @@
|
| static void CodeCreateEvent(Logger::LogEventsAndTags tag,
|
| Code* code, String* name);
|
| static void CodeCreateEvent(Logger::LogEventsAndTags tag,
|
| - Code* code, String* name,
|
| + Code* code,
|
| + SharedFunctionInfo *shared,
|
| + String* name);
|
| + static void CodeCreateEvent(Logger::LogEventsAndTags tag,
|
| + Code* code,
|
| + SharedFunctionInfo *shared,
|
| String* source, int line);
|
| static void CodeCreateEvent(Logger::LogEventsAndTags tag,
|
| Code* code, int args_count);
|
| static void CodeMovingGCEvent() {}
|
| static void CodeMoveEvent(Address from, Address to);
|
| static void CodeDeleteEvent(Address from);
|
| - static void FunctionCreateEvent(JSFunction* function);
|
| - // Reports function creation in case we had missed it (e.g.
|
| - // if it was created from compiled code).
|
| - static void FunctionCreateEventFromMove(Heap* heap, JSFunction* function);
|
| - static void FunctionMoveEvent(Heap* heap, Address from, Address to);
|
| - static void FunctionDeleteEvent(Address from);
|
| static void GetterCallbackEvent(String* name, Address entry_point);
|
| static void RegExpCodeCreateEvent(Code* code, String* source);
|
| - static void ProcessMovedFunctions();
|
| static void SetterCallbackEvent(String* name, Address entry_point);
|
| + static void SFIMoveEvent(Address from, Address to);
|
|
|
| // TODO(isolates): this doesn't have to use atomics anymore.
|
|
|
|
|