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_PROFILER_PROFILE_GENERATOR_INL_H_ 6 #define V8_PROFILER_PROFILE_GENERATOR_INL_H_ 7 8 #include "src/profiler/profile-generator.h" 9 10 namespace v8 { 11 namespace internal { 12 13 CodeEntry::CodeEntry(CodeEventListener::LogEventsAndTags tag, const char* name, 14 const char* name_prefix, const char* resource_name, 15 int line_number, int column_number, 16 JITLineInfoTable* line_info, Address instruction_start) 17 : bit_field_(TagField::encode(tag) | 18 BuiltinIdField::encode(Builtins::builtin_count)), 19 name_prefix_(name_prefix), 20 name_(name), 21 resource_name_(resource_name), 22 line_number_(line_number), 23 column_number_(column_number), 24 script_id_(v8::UnboundScript::kNoScriptId), 25 position_(0), 26 bailout_reason_(kEmptyBailoutReason), 27 deopt_reason_(kNoDeoptReason), 28 deopt_id_(kNoDeoptimizationId), 29 line_info_(line_info), 30 instruction_start_(instruction_start) {} 31 32 ProfileNode::ProfileNode(ProfileTree* tree, CodeEntry* entry, 33 ProfileNode* parent) 34 : tree_(tree), 35 entry_(entry), 36 self_ticks_(0), 37 children_(CodeEntriesMatch), 38 parent_(parent), 39 id_(tree->next_node_id()), 40 line_ticks_(LineTickMatch) { 41 tree_->EnqueueNode(this); 42 } 43 44 inline unsigned ProfileNode::function_id() const { 45 return tree_->GetFunctionId(this); 46 } 47 48 inline Isolate* ProfileNode::isolate() const { return tree_->isolate(); } 49 50 } // namespace internal 51 } // namespace v8 52 53 #endif // V8_PROFILER_PROFILE_GENERATOR_INL_H_ 54