v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
basic-block-instrumentor.h
Go to the documentation of this file.
1
// Copyright 2014 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_COMPILER_BASIC_BLOCK_INSTRUMENTOR_H_
6
#define V8_COMPILER_BASIC_BLOCK_INSTRUMENTOR_H_
7
8
#include "
src/diagnostics/basic-block-profiler.h
"
9
#include "
src/utils/allocation.h
"
10
11
namespace
v8
{
12
namespace
internal
{
13
14
class
OptimizedCompilationInfo;
15
16
namespace
compiler {
17
18
class
TFGraph;
19
class
Schedule;
20
21
namespace
turboshaft {
22
class
Graph;
23
}
// namespace turboshaft
24
25
class
BasicBlockInstrumentor
:
public
AllStatic
{
26
public
:
27
static
BasicBlockProfilerData
*
Instrument
(
OptimizedCompilationInfo
* info,
28
TFGraph
* graph,
Schedule
*
schedule
,
29
Isolate
* isolate);
30
};
31
32
// A profiler which works when reorder_builtins flag was set as true, it will
33
// store the call graph between builtins, the call graph will be used to reorder
34
// builtins.
35
class
BasicBlockCallGraphProfiler
:
public
AllStatic
{
36
public
:
37
// The method will iterate all the basic blocks and visit all the nodes inside
38
// the block, if there is a Call/TailCall node to another builtin, it will
39
// save a record line (like builtin A calls builtin B at block N).
40
static
void
StoreCallGraph
(
OptimizedCompilationInfo
* info,
41
Schedule
*
schedule
);
42
static
void
StoreCallGraph
(
OptimizedCompilationInfo
* info,
43
const
turboshaft::Graph
& graph);
44
};
45
46
}
// namespace compiler
47
}
// namespace internal
48
}
// namespace v8
49
50
#endif
// V8_COMPILER_BASIC_BLOCK_INSTRUMENTOR_H_
schedule
Schedule * schedule
Definition
add-type-assertions-reducer.cc:17
basic-block-profiler.h
v8::internal::AllStatic
Definition
globals.h:364
v8::internal::BasicBlockProfilerData
Definition
basic-block-profiler.h:24
v8::internal::Isolate
Definition
isolate.h:586
v8::internal::OptimizedCompilationInfo
Definition
optimized-compilation-info.h:54
v8::internal::compiler::BasicBlockCallGraphProfiler
Definition
basic-block-instrumentor.h:35
v8::internal::compiler::BasicBlockCallGraphProfiler::StoreCallGraph
static void StoreCallGraph(OptimizedCompilationInfo *info, Schedule *schedule)
Definition
basic-block-instrumentor.cc:192
v8::internal::compiler::BasicBlockInstrumentor
Definition
basic-block-instrumentor.h:25
v8::internal::compiler::BasicBlockInstrumentor::Instrument
static BasicBlockProfilerData * Instrument(OptimizedCompilationInfo *info, TFGraph *graph, Schedule *schedule, Isolate *isolate)
Definition
basic-block-instrumentor.cc:58
v8::internal::compiler::Schedule
Definition
schedule.h:210
v8::internal::compiler::TFGraph
Definition
turbofan-graph.h:32
v8::internal::compiler::turboshaft::Graph
Definition
graph.h:578
v8::internal::internal
internal
Definition
wasm-objects-inl.h:458
v8
Definition
api-arguments-inl.h:19
allocation.h
src
compiler
basic-block-instrumentor.h
Generated on Sun Apr 6 2025 21:08:51 for v8 by
1.12.0