chromium/v8/src/profiler/profile-generator.h

// Copyright 2011 the V8 project authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef V8_PROFILER_PROFILE_GENERATOR_H_
#define V8_PROFILER_PROFILE_GENERATOR_H_

#include <atomic>
#include <deque>
#include <limits>
#include <map>
#include <memory>
#include <unordered_map>
#include <utility>
#include <vector>

#include "include/v8-profiler.h"
#include "src/base/platform/time.h"
#include "src/builtins/builtins.h"
#include "src/execution/vm-state.h"
#include "src/logging/code-events.h"
#include "src/profiler/output-stream-writer.h"
#include "src/profiler/strings-storage.h"
#include "src/utils/allocation.h"

namespace v8 {
namespace internal {

struct TickSample;

// Provides a mapping from the offsets within generated code or a bytecode array
// to the source line and inlining id.
class V8_EXPORT_PRIVATE SourcePositionTable : public Malloced {};

struct CodeEntryAndLineNumber;

class CodeEntry {};

struct CodeEntryAndLineNumber {};

using ProfileStackTrace = std::vector<CodeEntryAndLineNumber>;

// Filters stack frames from sources other than a target native context.
class ContextFilter {};

class ProfileTree;

class V8_EXPORT_PRIVATE ProfileNode {};

class CodeEntryStorage;

class V8_EXPORT_PRIVATE ProfileTree {};

class CpuProfiler;

class CpuProfile {};

class CpuProfileMaxSamplesCallbackTask : public v8::Task {};

class V8_EXPORT_PRIVATE InstructionStreamMap {};

// Manages the lifetime of CodeEntry objects, and stores shared resources
// between them.
class V8_EXPORT_PRIVATE CodeEntryStorage {};

class V8_EXPORT_PRIVATE CpuProfilesCollection {};

class CpuProfileJSONSerializer {};

}  // namespace internal
}  // namespace v8

#endif  // V8_PROFILER_PROFILE_GENERATOR_H_