Halide
12.0.1
Halide compiler and libraries
|
GIOBase is the base class for all GeneratorInput<> and GeneratorOutput<> instantiations; it is not part of the public API and should never be used directly by user code. More...
#include <Generator.h>
Inherited by Halide::Internal::GeneratorInputBase, and Halide::Internal::GeneratorOutputBase.
Public Member Functions | |
bool | array_size_defined () const |
size_t | array_size () const |
virtual bool | is_array () const |
const std::string & | name () const |
IOKind | kind () const |
bool | types_defined () const |
const std::vector< Type > & | types () const |
Type | type () const |
bool | dims_defined () const |
int | dims () const |
const std::vector< Func > & | funcs () const |
const std::vector< Expr > & | exprs () const |
virtual | ~GIOBase ()=default |
void | set_type (const Type &type) |
void | set_dimensions (int dims) |
void | set_array_size (int size) |
GIOBase (const GIOBase &)=delete | |
GIOBase & | operator= (const GIOBase &)=delete |
GIOBase (GIOBase &&)=delete | |
GIOBase & | operator= (GIOBase &&)=delete |
Protected Member Functions | |
GIOBase (size_t array_size, const std::string &name, IOKind kind, const std::vector< Type > &types, int dims) | |
std::string | array_name (size_t i) const |
virtual void | verify_internals () |
void | check_matching_array_size (size_t size) const |
void | check_matching_types (const std::vector< Type > &t) const |
void | check_matching_dims (int d) const |
template<typename ElemType > | |
const std::vector< ElemType > & | get_values () const |
void | check_gio_access () const |
virtual void | check_value_writable () const =0 |
virtual const char * | input_or_output () const =0 |
template<> | |
const std::vector< Expr > & | get_values () const |
template<> | |
const std::vector< Func > & | get_values () const |
Protected Attributes | |
int | array_size_ |
const std::string | name_ |
const IOKind | kind_ |
std::vector< Type > | types_ |
int | dims_ |
std::vector< Func > | funcs_ |
std::vector< Expr > | exprs_ |
GeneratorBase * | generator {nullptr} |
GIOBase is the base class for all GeneratorInput<> and GeneratorOutput<> instantiations; it is not part of the public API and should never be used directly by user code.
Every GIOBase instance can be either a single value or an array-of-values; each of these values can be an Expr or a Func. (Note that for an array-of-values, the types/dimensions of all values in the array must match.)
A GIOBase can have multiple Types, in which case it represents a Tuple. (Note that Tuples are currently only supported for GeneratorOutput, but it is likely that GeneratorInput will be extended to support Tuple as well.)
The array-size, type(s), and dimensions can all be left "unspecified" at creation time, in which case they may assume values provided by a Stub. (It is important to note that attempting to use a GIOBase with unspecified values will assert-fail; you must ensure that all unspecified values are filled in prior to use.)
Definition at line 1431 of file Generator.h.
|
virtualdefault |
|
protected |
|
delete |
|
delete |
bool Halide::Internal::GIOBase::array_size_defined | ( | ) | const |
size_t Halide::Internal::GIOBase::array_size | ( | ) | const |
|
virtual |
const std::string& Halide::Internal::GIOBase::name | ( | ) | const |
Referenced by Halide::Internal::GeneratorInput_Buffer< T >::operator ImageParam(), Halide::Internal::GeneratorOutput_Buffer< T >::operator OutputImageParam(), Halide::Internal::GeneratorInput_Buffer< T >::operator StubInputBuffer< T2 >(), and Halide::Internal::GeneratorOutput_Buffer< T >::operator=().
IOKind Halide::Internal::GIOBase::kind | ( | ) | const |
Referenced by Halide::Internal::GeneratorOutputBase::as().
bool Halide::Internal::GIOBase::types_defined | ( | ) | const |
Referenced by Halide::Internal::GeneratorOutput_Buffer< T >::operator=().
const std::vector<Type>& Halide::Internal::GIOBase::types | ( | ) | const |
Type Halide::Internal::GIOBase::type | ( | ) | const |
Referenced by Halide::Internal::GeneratorOutput_Buffer< T >::operator=().
bool Halide::Internal::GIOBase::dims_defined | ( | ) | const |
Referenced by Halide::Internal::GeneratorOutput_Buffer< T >::operator=().
int Halide::Internal::GIOBase::dims | ( | ) | const |
Referenced by Halide::Internal::GeneratorOutput_Buffer< T >::operator=().
const std::vector<Func>& Halide::Internal::GIOBase::funcs | ( | ) | const |
const std::vector<Expr>& Halide::Internal::GIOBase::exprs | ( | ) | const |
Referenced by get_values(), Halide::Internal::GeneratorInput_DynamicScalar< T >::operator Expr(), Halide::Internal::GeneratorInput_Scalar< T >::operator Expr(), Halide::Internal::GeneratorInput_DynamicScalar< T >::operator ExternFuncArgument(), and Halide::Internal::GeneratorInput_Scalar< T >::operator ExternFuncArgument().
void Halide::Internal::GIOBase::set_type | ( | const Type & | type | ) |
void Halide::Internal::GIOBase::set_dimensions | ( | int | dims | ) |
void Halide::Internal::GIOBase::set_array_size | ( | int | size | ) |
|
protected |
|
protectedvirtual |
Reimplemented in Halide::Internal::GeneratorInputBase.
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
Referenced by Halide::Internal::GeneratorInputImpl< T, ValueType >::at(), Halide::Internal::GeneratorInput_Buffer< T >::at(), Halide::Internal::GeneratorOutputImpl< T >::at(), Halide::Internal::GeneratorInputImpl< T, ValueType >::begin(), Halide::Internal::GeneratorOutputImpl< T >::begin(), Halide::Internal::GeneratorInputImpl< T, ValueType >::end(), Halide::Internal::GeneratorOutputImpl< T >::end(), Halide::Internal::GeneratorInput_Buffer< T >::in(), Halide::Internal::GeneratorInput_Func< T >::in(), Halide::Internal::GeneratorInput_DynamicScalar< T >::operator Expr(), Halide::Internal::GeneratorInput_Scalar< T >::operator Expr(), Halide::Internal::GeneratorInput_Buffer< T >::operator ExternFuncArgument(), Halide::Internal::GeneratorInput_Func< T >::operator ExternFuncArgument(), Halide::Internal::GeneratorInput_DynamicScalar< T >::operator ExternFuncArgument(), Halide::Internal::GeneratorInput_Scalar< T >::operator ExternFuncArgument(), Halide::Internal::GeneratorInput_Buffer< T >::operator Func(), Halide::Internal::GeneratorInput_Func< T >::operator Func(), Halide::Internal::GeneratorOutputImpl< T >::operator Func(), Halide::Internal::GeneratorInput_Buffer< T >::operator ImageParam(), Halide::Internal::GeneratorOutput_Buffer< T >::operator OutputImageParam(), Halide::Internal::GeneratorOutputImpl< T >::operator Stage(), Halide::Internal::GeneratorInput_Buffer< T >::operator()(), Halide::Internal::GeneratorInput_Func< T >::operator()(), Halide::Internal::GeneratorOutputImpl< T >::operator()(), Halide::Internal::GeneratorOutput_Buffer< T >::operator=(), Halide::Internal::GeneratorOutput_Func< T >::operator=(), Halide::Internal::GeneratorOutput_Func< T >::operator[](), Halide::Internal::GeneratorInputImpl< T, ValueType >::operator[](), Halide::Internal::GeneratorInput_Buffer< T >::operator[](), Halide::Internal::GeneratorOutputImpl< T >::operator[](), Halide::Internal::GeneratorOutputImpl< T >::resize(), Halide::Internal::GeneratorInput_DynamicScalar< T >::set_estimate(), Halide::Internal::GeneratorInput_Scalar< T >::set_estimate(), Halide::Internal::GeneratorOutput_Func< T >::set_estimate(), Halide::Internal::GeneratorInput_Buffer< T >::set_estimate(), Halide::Internal::GeneratorInput_Func< T >::set_estimate(), Halide::Internal::GeneratorInput_Buffer< T >::set_estimates(), Halide::Internal::GeneratorInput_Func< T >::set_estimates(), Halide::Internal::GeneratorOutput_Func< T >::set_estimates(), Halide::Internal::GeneratorInputImpl< T, ValueType >::size(), Halide::Internal::GeneratorInput_Buffer< T >::size(), and Halide::Internal::GeneratorOutputImpl< T >::size().
|
protectedpure virtual |
Implemented in Halide::Internal::GeneratorOutputBase, and Halide::Internal::GeneratorInputBase.
|
protectedpure virtual |
Implemented in Halide::Internal::GeneratorOutputBase, and Halide::Internal::GeneratorInputBase.
|
inlineprotected |
Definition at line 1514 of file Generator.h.
References exprs().
|
inlineprotected |
Definition at line 1519 of file Generator.h.
References funcs().
|
mutableprotected |
Definition at line 1466 of file Generator.h.
|
protected |
Definition at line 1469 of file Generator.h.
|
protected |
Definition at line 1470 of file Generator.h.
|
mutableprotected |
Definition at line 1471 of file Generator.h.
|
mutableprotected |
Definition at line 1472 of file Generator.h.
|
protected |
Definition at line 1475 of file Generator.h.
Referenced by Halide::Internal::GeneratorOutputBase::as(), Halide::Internal::GeneratorOutput_Buffer< T >::operator OutputImageParam(), Halide::Internal::GeneratorOutput_Buffer< T >::operator=(), Halide::Internal::GeneratorOutput_Func< T >::set_estimate(), and Halide::Internal::GeneratorOutput_Func< T >::set_estimates().
|
protected |
Definition at line 1476 of file Generator.h.
Referenced by Halide::Internal::GeneratorOutputBase::as(), Halide::Internal::GeneratorOutput_Buffer< T >::operator OutputImageParam(), Halide::Internal::GeneratorOutput_Buffer< T >::operator=(), Halide::Internal::GeneratorOutput_Func< T >::set_estimate(), and Halide::Internal::GeneratorOutput_Func< T >::set_estimates().
|
protected |
Definition at line 1483 of file Generator.h.