13#ifdef V8_ENABLE_WEBASSEMBLY
31#ifdef V8_ENABLE_WEBASSEMBLY
33 return e->allocator();
40 CodeTracer* code_tracer,
const char* phase_name) {
41 if (data->info()->trace_turbo_json()) {
48 data->node_origins(), temp_zone);
51 if (data->info()->trace_turbo_graph()) {
57 tracing_scope.
stream() <<
"\n----- " << phase_name <<
" -----\n"
64 const char* phase_name,
67 stream <<
"{\"name\":\"" << phase_name
68 <<
"\",\"type\":\"turboshaft_graph\",\"data\":"
69 <<
AsJSON(graph, node_origins, temp_zone) <<
"},\n";
72 stream,
"Properties", graph,
75 const auto& op = graph.Get(index);
76 op.PrintOptions(stream);
80 stream,
"Types", graph,
84 if (!type.IsInvalid() && !type.IsNone()) {
91 stream,
"Representations", graph,
99 stream,
"Use Count (saturated)", graph,
102 stream << static_cast<int>(graph.Get(index).saturated_use_count.Get());
107 stream,
"Type Refinements", graph,
110 const std::vector<std::pair<turboshaft::OpIndex, turboshaft::Type>>&
111 refinements = graph.block_type_refinement()[
index];
112 if (refinements.empty())
return false;
114 for (
const auto& [op, type] : refinements) {
115 stream << op <<
" : " << type <<
"\\n";
123#if V8_ENABLE_WEBASSEMBLY
124 if (
info_->IsWasm() ||
info_->IsWasmBuiltin()) {
AccountingAllocator * allocator()
CodeTracer * GetCodeTracer()
TickCounter & tick_counter()
AccountingAllocator * allocator() const
void InitializeRegisterComponent(const RegisterConfiguration *config, CallDescriptor *call_descriptor)
std::unique_ptr< char[]> debug_name_
CodeTracer * GetCodeTracer() const
InstructionSequence * sequence() const
OptimizedCompilationInfo * info_
std::optional< RegisterComponent > register_component_
OptimizedCompilationInfo * info() const
ZoneStats * zone_stats() const
CodeTracer * GetCodeTracer()
void PrintTurboshaftGraph(PipelineData *data, Zone *temp_zone, CodeTracer *code_tracer, const char *phase_name)
void PrintTurboshaftGraphForTurbolizer(std::ofstream &stream, const Graph &graph, const char *phase_name, NodeOriginTable *node_origins, Zone *temp_zone)
V8_INLINE V8_EXPORT_PRIVATE TurboshaftGraphAsJSON AsJSON(const Graph &graph, NodeOriginTable *origins, Zone *temp_zone)
void PrintTurboshaftCustomDataPerBlock(std::ofstream &stream, const char *data_name, const Graph &graph, std::function< bool(std::ostream &, const Graph &, BlockIndex)> printer)
void PrintTurboshaftCustomDataPerOperation(std::ofstream &stream, const char *data_name, const Graph &graph, std::function< bool(std::ostream &, const Graph &, OpIndex)> printer)
WasmEngine * GetWasmEngine()
auto PrintCollection(const T &collection) -> PrintIteratorRange< typename std::common_type< decltype(std::begin(collection)), decltype(std::end(collection))>::type >
#define DCHECK_NOT_NULL(val)
#define DCHECK(condition)
base::Vector< const RegisterRepresentation > outputs_rep() const