Halide
Halide::Internal::PipelineFeatures Struct Reference

#include <Featurization.h>

Public Types

enum  OpType {
  OpType::Const, OpType::Cast, OpType::Variable, OpType::Param,
  OpType::Add, OpType::Sub, OpType::Mod, OpType::Mul,
  OpType::Div, OpType::Min, OpType::Max, OpType::EQ,
  OpType::NE, OpType::LT, OpType::LE, OpType::And,
  OpType::Or, OpType::Not, OpType::Select, OpType::ImageCall,
  OpType::FuncCall, OpType::SelfCall, OpType::ExternCall, OpType::Let,
  OpType::NumOpTypes, OpType::Const, OpType::Cast, OpType::Variable,
  OpType::Param, OpType::Add, OpType::Sub, OpType::Mod,
  OpType::Mul, OpType::Div, OpType::Min, OpType::Max,
  OpType::EQ, OpType::NE, OpType::LT, OpType::LE,
  OpType::And, OpType::Or, OpType::Not, OpType::Select,
  OpType::ImageCall, OpType::FuncCall, OpType::SelfCall, OpType::ExternCall,
  OpType::Let, OpType::NumOpTypes
}
 
enum  ScalarType {
  ScalarType::Bool, ScalarType::UInt8, ScalarType::UInt16, ScalarType::UInt32,
  ScalarType::UInt64, ScalarType::Float, ScalarType::Double, ScalarType::NumScalarTypes,
  ScalarType::Bool, ScalarType::UInt8, ScalarType::UInt16, ScalarType::UInt32,
  ScalarType::UInt64, ScalarType::Float, ScalarType::Double, ScalarType::NumScalarTypes
}
 
enum  AccessType {
  AccessType::LoadFunc, AccessType::LoadSelf, AccessType::LoadImage, AccessType::Store,
  AccessType::NumAccessTypes, AccessType::LoadFunc, AccessType::LoadSelf, AccessType::LoadImage,
  AccessType::Store, AccessType::NumAccessTypes
}
 
enum  OpType {
  OpType::Const, OpType::Cast, OpType::Variable, OpType::Param,
  OpType::Add, OpType::Sub, OpType::Mod, OpType::Mul,
  OpType::Div, OpType::Min, OpType::Max, OpType::EQ,
  OpType::NE, OpType::LT, OpType::LE, OpType::And,
  OpType::Or, OpType::Not, OpType::Select, OpType::ImageCall,
  OpType::FuncCall, OpType::SelfCall, OpType::ExternCall, OpType::Let,
  OpType::NumOpTypes, OpType::Const, OpType::Cast, OpType::Variable,
  OpType::Param, OpType::Add, OpType::Sub, OpType::Mod,
  OpType::Mul, OpType::Div, OpType::Min, OpType::Max,
  OpType::EQ, OpType::NE, OpType::LT, OpType::LE,
  OpType::And, OpType::Or, OpType::Not, OpType::Select,
  OpType::ImageCall, OpType::FuncCall, OpType::SelfCall, OpType::ExternCall,
  OpType::Let, OpType::NumOpTypes
}
 
enum  ScalarType {
  ScalarType::Bool, ScalarType::UInt8, ScalarType::UInt16, ScalarType::UInt32,
  ScalarType::UInt64, ScalarType::Float, ScalarType::Double, ScalarType::NumScalarTypes,
  ScalarType::Bool, ScalarType::UInt8, ScalarType::UInt16, ScalarType::UInt32,
  ScalarType::UInt64, ScalarType::Float, ScalarType::Double, ScalarType::NumScalarTypes
}
 
enum  AccessType {
  AccessType::LoadFunc, AccessType::LoadSelf, AccessType::LoadImage, AccessType::Store,
  AccessType::NumAccessTypes, AccessType::LoadFunc, AccessType::LoadSelf, AccessType::LoadImage,
  AccessType::Store, AccessType::NumAccessTypes
}
 

Public Member Functions

int & operator[] (int idx)
 
int operator[] (int idx) const
 
void dump (std::ostream &os) const
 
int & operator[] (int idx)
 
int operator[] (int idx) const
 
template<typename OS >
void dump (OS &os) const
 
void dump () const
 

Static Public Member Functions

static constexpr size_t num_features ()
 
static constexpr uint32_t version ()
 
static constexpr size_t num_features ()
 
static constexpr uint32_t version ()
 

Public Attributes

int types_in_use [(int) ScalarType::NumScalarTypes] = {}
 
int op_histogram [(int) OpType::NumOpTypes][(int) ScalarType::NumScalarTypes] = {}
 
int pointwise_accesses [(int) AccessType::NumAccessTypes][(int) ScalarType::NumScalarTypes] = {}
 
int transpose_accesses [(int) AccessType::NumAccessTypes][(int) ScalarType::NumScalarTypes] = {}
 
int broadcast_accesses [(int) AccessType::NumAccessTypes][(int) ScalarType::NumScalarTypes] = {}
 
int slice_accesses [(int) AccessType::NumAccessTypes][(int) ScalarType::NumScalarTypes] = {}
 

Detailed Description

Definition at line 13 of file Featurization.h.

Member Enumeration Documentation

◆ OpType [1/2]

Enumerator
Const 
Cast 
Variable 
Param 
Add 
Sub 
Mod 
Mul 
Div 
Min 
Max 
EQ 
NE 
LT 
LE 
And 
Or 
Not 
Select 
ImageCall 
FuncCall 
SelfCall 
ExternCall 
Let 
NumOpTypes 
Const 
Cast 
Variable 
Param 
Add 
Sub 
Mod 
Mul 
Div 
Min 
Max 
EQ 
NE 
LT 
LE 
And 
Or 
Not 
Select 
ImageCall 
FuncCall 
SelfCall 
ExternCall 
Let 
NumOpTypes 

Definition at line 31 of file Featurization.h.

◆ ScalarType [1/2]

Enumerator
Bool 
UInt8 
UInt16 
UInt32 
UInt64 
Float 
Double 
NumScalarTypes 
Bool 
UInt8 
UInt16 
UInt32 
UInt64 
Float 
Double 
NumScalarTypes 

Definition at line 59 of file Featurization.h.

◆ AccessType [1/2]

Enumerator
LoadFunc 
LoadSelf 
LoadImage 
Store 
NumAccessTypes 
LoadFunc 
LoadSelf 
LoadImage 
Store 
NumAccessTypes 

Definition at line 75 of file Featurization.h.

◆ OpType [2/2]

Enumerator
Const 
Cast 
Variable 
Param 
Add 
Sub 
Mod 
Mul 
Div 
Min 
Max 
EQ 
NE 
LT 
LE 
And 
Or 
Not 
Select 
ImageCall 
FuncCall 
SelfCall 
ExternCall 
Let 
NumOpTypes 
Const 
Cast 
Variable 
Param 
Add 
Sub 
Mod 
Mul 
Div 
Min 
Max 
EQ 
NE 
LT 
LE 
And 
Or 
Not 
Select 
ImageCall 
FuncCall 
SelfCall 
ExternCall 
Let 
NumOpTypes 

Definition at line 33 of file Featurization.h.

◆ ScalarType [2/2]

Enumerator
Bool 
UInt8 
UInt16 
UInt32 
UInt64 
Float 
Double 
NumScalarTypes 
Bool 
UInt8 
UInt16 
UInt32 
UInt64 
Float 
Double 
NumScalarTypes 

Definition at line 61 of file Featurization.h.

◆ AccessType [2/2]

Enumerator
LoadFunc 
LoadSelf 
LoadImage 
Store 
NumAccessTypes 
LoadFunc 
LoadSelf 
LoadImage 
Store 
NumAccessTypes 

Definition at line 77 of file Featurization.h.

Member Function Documentation

◆ num_features() [1/2]

static constexpr size_t Halide::Internal::PipelineFeatures::num_features ( )
inlinestaticconstexpr

Definition at line 14 of file Featurization.h.

◆ version() [1/2]

static constexpr uint32_t Halide::Internal::PipelineFeatures::version ( )
inlinestaticconstexpr

Definition at line 18 of file Featurization.h.

◆ operator[]() [1/4]

int& Halide::Internal::PipelineFeatures::operator[] ( int  idx)
inline

Definition at line 23 of file Featurization.h.

◆ operator[]() [2/4]

int Halide::Internal::PipelineFeatures::operator[] ( int  idx) const
inline

Definition at line 27 of file Featurization.h.

◆ dump() [1/3]

void Halide::Internal::PipelineFeatures::dump ( std::ostream &  os) const
inline

◆ num_features() [2/2]

static constexpr size_t Halide::Internal::PipelineFeatures::num_features ( )
inlinestaticconstexpr

Definition at line 16 of file Featurization.h.

◆ version() [2/2]

static constexpr uint32_t Halide::Internal::PipelineFeatures::version ( )
inlinestaticconstexpr

Definition at line 20 of file Featurization.h.

◆ operator[]() [3/4]

int& Halide::Internal::PipelineFeatures::operator[] ( int  idx)
inline

Definition at line 25 of file Featurization.h.

◆ operator[]() [4/4]

int Halide::Internal::PipelineFeatures::operator[] ( int  idx) const
inline

Definition at line 29 of file Featurization.h.

◆ dump() [2/3]

template<typename OS >
void Halide::Internal::PipelineFeatures::dump ( OS &  os) const
inline

◆ dump() [3/3]

void Halide::Internal::PipelineFeatures::dump ( ) const
inline

Definition at line 160 of file Featurization.h.

Member Data Documentation

◆ types_in_use

int Halide::Internal::PipelineFeatures::types_in_use = {}

Definition at line 71 of file Featurization.h.

Referenced by dump().

◆ op_histogram

int Halide::Internal::PipelineFeatures::op_histogram = {}

Definition at line 73 of file Featurization.h.

Referenced by dump().

◆ pointwise_accesses

int Halide::Internal::PipelineFeatures::pointwise_accesses = {}

Definition at line 92 of file Featurization.h.

Referenced by dump().

◆ transpose_accesses

int Halide::Internal::PipelineFeatures::transpose_accesses = {}

Definition at line 94 of file Featurization.h.

Referenced by dump().

◆ broadcast_accesses

int Halide::Internal::PipelineFeatures::broadcast_accesses = {}

Definition at line 96 of file Featurization.h.

Referenced by dump().

◆ slice_accesses

int Halide::Internal::PipelineFeatures::slice_accesses = {}

Definition at line 98 of file Featurization.h.

Referenced by dump().


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