1 #ifndef HALIDE_COMPILER_LOGGER_H_ 2 #define HALIDE_COMPILER_LOGGER_H_ 65 std::unique_ptr<CompilerLogger>
set_compiler_logger(std::unique_ptr<CompilerLogger> compiler_logger);
126 #endif // HALIDE_COMPILER_LOGGER_H_ virtual void record_non_monotonic_loop_var(const std::string &loop_var, Expr expr)=0
Record when an expression is non-monotonic in a loop variable.
std::unique_ptr< CompilerLogger > set_compiler_logger(std::unique_ptr< CompilerLogger > compiler_logger)
Set the active CompilerLogger object, replacing any existing one.
std::ostream & emit_to_stream(std::ostream &o) override
Emit all the gathered data to the given stream.
A fragment of Halide syntax.
virtual void record_failed_to_prove(Expr failed_to_prove, Expr original_expr)=0
Record when can_prove() fails, but cannot find a counterexample.
void record_object_code_size(uint64_t bytes) override
Record total size (in bytes) of final generated object code (e.g., file size of .o output)...
void record_matched_simplifier_rule(const std::string &rulename, Expr expr) override
Record when a particular simplifier rule matches.
void record_failed_to_prove(Expr failed_to_prove, Expr original_expr) override
Record when can_prove() fails, but cannot find a counterexample.
A struct representing a target machine and os to generate code for.
Phase
The "Phase" of compilation, used for some calls.
const std::string generator_name
virtual void record_compilation_time(Phase phase, double duration)=0
Record the compilation time (in seconds) for a given phase.
std::map< std::string, std::vector< Expr > > non_monotonic_loop_vars
This file defines the class FunctionDAG, which is our representation of a Halide pipeline, and contains methods to using Halide's bounds tools to query properties of it.
Defines the structure that describes a Halide target.
virtual void record_matched_simplifier_rule(const std::string &rulename, Expr expr)=0
Record when a particular simplifier rule matches.
virtual void record_object_code_size(uint64_t bytes)=0
Record total size (in bytes) of final generated object code (e.g., file size of .o output)...
Base classes for Halide expressions (Halide::Expr) and statements (Halide::Internal::Stmt) ...
virtual ~CompilerLogger()=default
CompilerLogger * get_compiler_logger()
Return the currently active CompilerLogger object.
Not visible externally, similar to 'static' linkage in C.
uint64_t object_code_size
void record_non_monotonic_loop_var(const std::string &loop_var, Expr expr) override
Record when an expression is non-monotonic in a loop variable.
void record_compilation_time(Phase phase, double duration) override
Record the compilation time (in seconds) for a given phase.
const std::string autoscheduler_name
const std::string function_name
const bool obfuscate_exprs
virtual std::ostream & emit_to_stream(std::ostream &o)=0
Emit all the gathered data to the given stream.
JSONCompilerLogger()=default
const std::string generator_args
unsigned __INT64_TYPE__ uint64_t
std::map< Phase, double > compilation_time
JSONCompilerLogger is a basic implementation of the CompilerLogger interface that saves logged data...
std::vector< std::pair< Expr, Expr > > failed_to_prove_exprs
std::map< std::string, std::vector< Expr > > matched_simplifier_rules