Home | History | Annotate | Download | only in profiler
      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