Halide 19.0.0
Halide compiler and libraries
Loading...
Searching...
No Matches
Halide::Internal::CompilerLogger Class Referenceabstract

#include <CompilerLogger.h>

Inheritance diagram for Halide::Internal::CompilerLogger:
Halide::Internal::JSONCompilerLogger

Public Types

enum class  Phase { HalideLowering , LLVM }
 The "Phase" of compilation, used for some calls. More...
 

Public Member Functions

 CompilerLogger ()=default
 
virtual ~CompilerLogger ()=default
 
virtual void record_matched_simplifier_rule (const std::string &rulename, Expr expr)=0
 Record when a particular simplifier rule matches.
 
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.
 
virtual void record_failed_to_prove (Expr failed_to_prove, Expr original_expr)=0
 Record when can_prove() fails, but cannot find a counterexample.
 
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).
 
virtual void record_compilation_time (Phase phase, double duration)=0
 Record the compilation time (in seconds) for a given phase.
 
virtual std::ostream & emit_to_stream (std::ostream &o)=0
 Emit all the gathered data to the given stream.
 

Detailed Description

Definition at line 25 of file CompilerLogger.h.

Member Enumeration Documentation

◆ Phase

The "Phase" of compilation, used for some calls.

Enumerator
HalideLowering 
LLVM 

Definition at line 28 of file CompilerLogger.h.

Constructor & Destructor Documentation

◆ CompilerLogger()

Halide::Internal::CompilerLogger::CompilerLogger ( )
default

◆ ~CompilerLogger()

virtual Halide::Internal::CompilerLogger::~CompilerLogger ( )
virtualdefault

Member Function Documentation

◆ record_matched_simplifier_rule()

virtual void Halide::Internal::CompilerLogger::record_matched_simplifier_rule ( const std::string & rulename,
Expr expr )
pure virtual

Record when a particular simplifier rule matches.

Implemented in Halide::Internal::JSONCompilerLogger.

◆ record_non_monotonic_loop_var()

virtual void Halide::Internal::CompilerLogger::record_non_monotonic_loop_var ( const std::string & loop_var,
Expr expr )
pure virtual

Record when an expression is non-monotonic in a loop variable.

Implemented in Halide::Internal::JSONCompilerLogger.

◆ record_failed_to_prove()

virtual void Halide::Internal::CompilerLogger::record_failed_to_prove ( Expr failed_to_prove,
Expr original_expr )
pure virtual

Record when can_prove() fails, but cannot find a counterexample.

Implemented in Halide::Internal::JSONCompilerLogger.

◆ record_object_code_size()

virtual void Halide::Internal::CompilerLogger::record_object_code_size ( uint64_t bytes)
pure virtual

Record total size (in bytes) of final generated object code (e.g., file size of .o output).

Implemented in Halide::Internal::JSONCompilerLogger.

◆ record_compilation_time()

virtual void Halide::Internal::CompilerLogger::record_compilation_time ( Phase phase,
double duration )
pure virtual

Record the compilation time (in seconds) for a given phase.

Implemented in Halide::Internal::JSONCompilerLogger.

◆ emit_to_stream()

virtual std::ostream & Halide::Internal::CompilerLogger::emit_to_stream ( std::ostream & o)
pure virtual

Emit all the gathered data to the given stream.

This may be called multiple times.

Implemented in Halide::Internal::JSONCompilerLogger.


The documentation for this class was generated from the following file: