Halide 19.0.0
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>
Public Member Functions | |
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 | |
bool | array_size_defined () const |
size_t | array_size () const |
virtual bool | is_array () const |
const std::string & | name () const |
ArgInfoKind | kind () const |
bool | gio_types_defined () const |
const std::vector< Type > & | gio_types () const |
Type | gio_type () const |
bool | dims_defined () const |
int | dims () const |
const std::vector< Func > & | funcs () const |
const std::vector< Expr > & | exprs () const |
GIOBase (size_t array_size, const std::string &name, ArgInfoKind 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 ArgInfoKind | 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 1443 of file Generator.h.
|
virtualdefault |
|
protected |
|
delete |
|
delete |
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 |
|
protected |
|
protectedvirtual |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
Referenced by get_values().
|
protected |
Referenced by get_values().
|
protected |
|
protectedvirtual |
Reimplemented in Halide::Internal::GeneratorInputBase.
|
protected |
|
protected |
|
protected |
|
protected |
Referenced by Halide::Internal::GeneratorInputImpl< T, ValueType >::at(), Halide::Internal::GeneratorInputImpl< T, ValueType >::begin(), Halide::Internal::GeneratorInputImpl< T, ValueType >::end(), Halide::Internal::GeneratorInputImpl< T, ValueType >::operator[](), and Halide::Internal::GeneratorInputImpl< T, ValueType >::size().
|
protected |
Referenced by Halide::Internal::GeneratorInputImpl< T, ValueType >::at(), Halide::Internal::GeneratorInputImpl< T, ValueType >::begin(), Halide::Internal::GeneratorInputImpl< T, ValueType >::end(), Halide::Internal::GeneratorInputImpl< T, ValueType >::operator[](), and Halide::Internal::GeneratorInputImpl< T, ValueType >::size().
|
protectedpure virtual |
Implemented in Halide::Internal::GeneratorInputBase, and Halide::Internal::GeneratorOutputBase.
|
protectedpure virtual |
Implemented in Halide::Internal::GeneratorInputBase, and Halide::Internal::GeneratorOutputBase.
|
inlineprotected |
Definition at line 1529 of file Generator.h.
References exprs().
|
inlineprotected |
Definition at line 1534 of file Generator.h.
References funcs().
|
mutableprotected |
Definition at line 1480 of file Generator.h.
|
protected |
Definition at line 1483 of file Generator.h.
|
protected |
Definition at line 1484 of file Generator.h.
|
mutableprotected |
Definition at line 1485 of file Generator.h.
|
mutableprotected |
Definition at line 1486 of file Generator.h.
|
protected |
Definition at line 1489 of file Generator.h.
|
protected |
Definition at line 1490 of file Generator.h.
|
protected |
Definition at line 1497 of file Generator.h.