Halide
Halide::Internal::CompilerLogger Class Referenceabstract

#include <CompilerLogger.h>

Inherited by Halide::Internal::JSONCompilerLogger.

Public Types

enum  Phase { Phase::HalideLowering, Phase::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. More...
 
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. More...
 
virtual void record_failed_to_prove (Expr failed_to_prove, Expr original_expr)=0
 Record when can_prove() fails, but cannot find a counterexample. More...
 
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). More...
 
virtual void record_compilation_time (Phase phase, double duration)=0
 Record the compilation time (in seconds) for a given phase. More...
 
virtual std::ostream & emit_to_stream (std::ostream &o)=0
 Emit all the gathered data to the given stream. More...
 

Detailed Description

Definition at line 26 of file CompilerLogger.h.

Member Enumeration Documentation

◆ Phase

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

Enumerator
HalideLowering 
LLVM 

Definition at line 29 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.

◆ 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: