1// Copyright 2010 the V8 project authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#ifndef V8_CPU_PROFILER_INL_H_ 6#define V8_CPU_PROFILER_INL_H_ 7 8#include "src/cpu-profiler.h" 9 10#include <new> 11#include "src/circular-queue-inl.h" 12#include "src/profile-generator-inl.h" 13#include "src/unbound-queue-inl.h" 14 15namespace v8 { 16namespace internal { 17 18void CodeCreateEventRecord::UpdateCodeMap(CodeMap* code_map) { 19 code_map->AddCode(start, entry, size); 20 if (shared != NULL) { 21 entry->set_shared_id(code_map->GetSharedId(shared)); 22 } 23} 24 25 26void CodeMoveEventRecord::UpdateCodeMap(CodeMap* code_map) { 27 code_map->MoveCode(from, to); 28} 29 30 31void CodeDisableOptEventRecord::UpdateCodeMap(CodeMap* code_map) { 32 CodeEntry* entry = code_map->FindEntry(start); 33 if (entry != NULL) { 34 entry->set_bailout_reason(bailout_reason); 35 } 36} 37 38 39void SharedFunctionInfoMoveEventRecord::UpdateCodeMap(CodeMap* code_map) { 40 code_map->MoveCode(from, to); 41} 42 43 44void ReportBuiltinEventRecord::UpdateCodeMap(CodeMap* code_map) { 45 CodeEntry* entry = code_map->FindEntry(start); 46 if (!entry) { 47 // Code objects for builtins should already have been added to the map but 48 // some of them have been filtered out by CpuProfiler. 49 return; 50 } 51 entry->SetBuiltinId(builtin_id); 52} 53 54 55TickSample* CpuProfiler::StartTickSample() { 56 if (is_profiling_) return processor_->StartTickSample(); 57 return NULL; 58} 59 60 61void CpuProfiler::FinishTickSample() { 62 processor_->FinishTickSample(); 63} 64 65 66TickSample* ProfilerEventsProcessor::StartTickSample() { 67 void* address = ticks_buffer_.StartEnqueue(); 68 if (address == NULL) return NULL; 69 TickSampleEventRecord* evt = 70 new(address) TickSampleEventRecord(last_code_event_id_); 71 return &evt->sample; 72} 73 74 75void ProfilerEventsProcessor::FinishTickSample() { 76 ticks_buffer_.FinishEnqueue(); 77} 78 79} } // namespace v8::internal 80 81#endif // V8_CPU_PROFILER_INL_H_ 82