%PDF- %PDF-
| Direktori : /home/vacivi36/vittasync.vacivitta.com.br/vittasync/node/deps/v8/src/compiler/turboshaft/ |
| Current File : /home/vacivi36/vittasync.vacivitta.com.br/vittasync/node/deps/v8/src/compiler/turboshaft/tracing.h |
// Copyright 2023 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_COMPILER_TURBOSHAFT_TRACING_H_
#define V8_COMPILER_TURBOSHAFT_TRACING_H_
#include "src/base/contextual.h"
#include "src/codegen/optimized-compilation-info.h"
#include "src/compiler/turboshaft/graph-visualizer.h"
#include "src/compiler/turboshaft/graph.h"
namespace v8::internal::compiler::turboshaft {
class Tracing : public base::ContextualClass<Tracing> {
public:
explicit Tracing(OptimizedCompilationInfo* info) : info_(info) {
DCHECK_NOT_NULL(info_);
}
using OperationDataPrinter =
std::function<bool(std::ostream&, const Graph&, OpIndex)>;
using BlockDataPrinter =
std::function<bool(std::ostream&, const Graph&, BlockIndex)>;
inline bool is_enabled() const { return info_->trace_turbo_json(); }
void PrintPerOperationData(const char* data_name, const Graph& graph,
OperationDataPrinter printer) {
DCHECK(printer);
if (!is_enabled()) return;
PrintTurboshaftCustomDataPerOperation(info_, data_name, graph, printer);
}
void PrintPerBlockData(const char* data_name, const Graph& graph,
BlockDataPrinter printer) {
DCHECK(printer);
if (!is_enabled()) return;
PrintTurboshaftCustomDataPerBlock(info_, data_name, graph, printer);
}
private:
OptimizedCompilationInfo* info_;
};
} // namespace v8::internal::compiler::turboshaft
#endif // V8_COMPILER_TURBOSHAFT_TRACING_H_