|
Halide 21.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 |
References array_size(), dims(), kind(), and name().
Referenced by GIOBase(), GIOBase(), operator=(), and operator=().
| void Halide::Internal::GIOBase::set_type | ( | const Type & | type | ) |
References Halide::Internal::Type.
| void Halide::Internal::GIOBase::set_dimensions | ( | int | dims | ) |
References dims().
| void Halide::Internal::GIOBase::set_array_size | ( | int | size | ) |
|
protected |
|
protected |
Referenced by Halide::Internal::GeneratorInput_Arithmetic< T >::GeneratorInput_Arithmetic(), Halide::Internal::GeneratorInput_Arithmetic< T >::GeneratorInput_Arithmetic(), Halide::Internal::GeneratorInput_Arithmetic< T >::GeneratorInput_Arithmetic(), Halide::Internal::GeneratorInput_Func< T >::GeneratorInput_Func(), Halide::Internal::GeneratorInput_Func< T >::GeneratorInput_Func(), Halide::Internal::GeneratorInput_Func< T >::GeneratorInput_Func(), Halide::Internal::GeneratorInput_Func< T >::GeneratorInput_Func(), Halide::Internal::GeneratorInput_Scalar< T >::GeneratorInput_Scalar(), Halide::Internal::GeneratorInput_Scalar< T >::GeneratorInput_Scalar(), Halide::Internal::GeneratorInputBase::GeneratorInputBase(), Halide::Internal::GeneratorOutput_Arithmetic< T >::GeneratorOutput_Arithmetic(), Halide::Internal::GeneratorOutput_Buffer< T >::GeneratorOutput_Buffer(), Halide::Internal::GeneratorOutput_Buffer< T >::GeneratorOutput_Buffer(), Halide::Internal::GeneratorOutput_Buffer< T >::GeneratorOutput_Buffer(), Halide::Internal::GeneratorOutput_Buffer< T >::GeneratorOutput_Buffer(), Halide::Internal::GeneratorOutput_Func< T >::GeneratorOutput_Func(), Halide::Internal::GeneratorOutputBase::GeneratorOutputBase(), and GIOBase().
|
protectedvirtual |
|
protected |
Referenced by Halide::Internal::GeneratorInput_Arithmetic< T >::GeneratorInput_Arithmetic(), Halide::Internal::GeneratorInput_Arithmetic< T >::GeneratorInput_Arithmetic(), Halide::Internal::GeneratorInput_Arithmetic< T >::GeneratorInput_Arithmetic(), Halide::Internal::GeneratorInput_Arithmetic< T >::GeneratorInput_Arithmetic(), Halide::Internal::GeneratorInput_Arithmetic< T >::GeneratorInput_Arithmetic(), Halide::Internal::GeneratorInput_Arithmetic< T >::GeneratorInput_Arithmetic(), Halide::Internal::GeneratorInput_Buffer< T >::GeneratorInput_Buffer(), Halide::Internal::GeneratorInput_Buffer< T >::GeneratorInput_Buffer(), Halide::Internal::GeneratorInput_Buffer< T >::GeneratorInput_Buffer(), Halide::Internal::GeneratorInput_Buffer< T >::GeneratorInput_Buffer(), Halide::Internal::GeneratorInput_DynamicScalar< T >::GeneratorInput_DynamicScalar(), Halide::Internal::GeneratorInput_Func< T >::GeneratorInput_Func(), Halide::Internal::GeneratorInput_Func< T >::GeneratorInput_Func(), Halide::Internal::GeneratorInput_Func< T >::GeneratorInput_Func(), Halide::Internal::GeneratorInput_Func< T >::GeneratorInput_Func(), Halide::Internal::GeneratorInput_Func< T >::GeneratorInput_Func(), Halide::Internal::GeneratorInput_Func< T >::GeneratorInput_Func(), Halide::Internal::GeneratorInput_Func< T >::GeneratorInput_Func(), Halide::Internal::GeneratorInput_Func< T >::GeneratorInput_Func(), Halide::Internal::GeneratorInput_Scalar< T >::GeneratorInput_Scalar(), Halide::Internal::GeneratorInput_Scalar< T >::GeneratorInput_Scalar(), Halide::Internal::GeneratorInput_Scalar< T >::GeneratorInput_Scalar(), Halide::Internal::GeneratorInput_Scalar< T >::GeneratorInput_Scalar(), Halide::Internal::GeneratorInputBase::GeneratorInputBase(), Halide::Internal::GeneratorInputBase::GeneratorInputBase(), Halide::Internal::GeneratorInputImpl< T, Func >::GeneratorInputImpl(), Halide::Internal::GeneratorOutput_Arithmetic< T >::GeneratorOutput_Arithmetic(), Halide::Internal::GeneratorOutput_Arithmetic< T >::GeneratorOutput_Arithmetic(), Halide::Internal::GeneratorOutput_Buffer< T >::GeneratorOutput_Buffer(), Halide::Internal::GeneratorOutput_Buffer< T >::GeneratorOutput_Buffer(), Halide::Internal::GeneratorOutput_Buffer< T >::GeneratorOutput_Buffer(), Halide::Internal::GeneratorOutput_Buffer< T >::GeneratorOutput_Buffer(), Halide::Internal::GeneratorOutput_Buffer< T >::GeneratorOutput_Buffer(), Halide::Internal::GeneratorOutput_Buffer< T >::GeneratorOutput_Buffer(), Halide::Internal::GeneratorOutput_Buffer< T >::GeneratorOutput_Buffer(), Halide::Internal::GeneratorOutput_Buffer< T >::GeneratorOutput_Buffer(), Halide::Internal::GeneratorOutput_Func< T >::GeneratorOutput_Func(), Halide::Internal::GeneratorOutput_Func< T >::GeneratorOutput_Func(), Halide::Internal::GeneratorOutput_Func< T >::GeneratorOutput_Func(), Halide::Internal::GeneratorOutput_Func< T >::GeneratorOutput_Func(), Halide::Internal::GeneratorOutput_Func< T >::GeneratorOutput_Func(), Halide::Internal::GeneratorOutputBase::GeneratorOutputBase(), Halide::Internal::GeneratorOutputBase::GeneratorOutputBase(), Halide::Internal::GeneratorOutputImpl< T >::GeneratorOutputImpl(), GIOBase(), Halide::Internal::GeneratorInput_Buffer< T >::operator ImageParam(), Halide::Internal::GeneratorOutput_Buffer< T >::operator OutputImageParam(), Halide::Internal::GeneratorInput_Buffer< T >::operator StubInputBuffer< T2 >(), Halide::Internal::GeneratorOutput_Buffer< T >::operator=(), and Halide::Internal::GeneratorOutput_Buffer< T >::set_estimates().
|
protected |
Referenced by Halide::Internal::GeneratorOutputBase::as(), Halide::Internal::GeneratorInputBase::GeneratorInputBase(), Halide::Internal::GeneratorInputBase::GeneratorInputBase(), Halide::Internal::GeneratorInputImpl< T, Func >::GeneratorInputImpl(), Halide::Internal::GeneratorOutputBase::GeneratorOutputBase(), Halide::Internal::GeneratorOutputBase::GeneratorOutputBase(), Halide::Internal::GeneratorOutputImpl< T >::GeneratorOutputImpl(), and GIOBase().
|
protected |
Referenced by Halide::Internal::GeneratorOutput_Buffer< T >::operator=().
|
protected |
|
protected |
References Halide::Internal::Type.
Referenced by Halide::Internal::GeneratorOutput_Buffer< T >::operator=().
|
protected |
Referenced by Halide::Internal::GeneratorOutput_Buffer< T >::operator=().
|
protected |
Referenced by GIOBase(), Halide::Internal::GeneratorOutput_Buffer< T >::operator=(), and set_dimensions().
|
protected |
|
protected |
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().
|
protected |
|
protectedvirtual |
Reimplemented in Halide::Internal::GeneratorInputBase.
|
protected |
|
protected |
|
protected |
|
protected |
Referenced by Halide::Internal::GeneratorInputImpl< T, Func >::at(), Halide::Internal::GeneratorOutputImpl< T >::at(), Halide::Internal::GeneratorInputImpl< T, Func >::begin(), Halide::Internal::GeneratorOutputImpl< T >::begin(), Halide::Internal::GeneratorInputImpl< T, Func >::end(), Halide::Internal::GeneratorOutputImpl< T >::end(), Halide::Internal::GeneratorOutputImpl< T >::operator Func(), Halide::Internal::GeneratorOutputImpl< T >::operator Stage(), Halide::Internal::GeneratorOutputImpl< T >::operator()(), Halide::Internal::GeneratorOutputImpl< T >::operator()(), Halide::Internal::GeneratorInputImpl< T, Func >::operator[](), Halide::Internal::GeneratorOutput_Buffer< T >::operator[](), Halide::Internal::GeneratorOutput_Buffer< T >::operator[](), Halide::Internal::GeneratorOutputImpl< T >::operator[](), Halide::Internal::GeneratorInputImpl< T, Func >::size(), and Halide::Internal::GeneratorOutputImpl< T >::size().
|
protected |
Referenced by Halide::Internal::GeneratorInput_Buffer< T >::at(), Halide::Internal::GeneratorInputImpl< T, Func >::at(), Halide::Internal::GeneratorOutputImpl< T >::at(), Halide::Internal::GeneratorInputImpl< T, Func >::begin(), Halide::Internal::GeneratorOutputImpl< T >::begin(), Halide::Internal::GeneratorInputImpl< T, Func >::end(), Halide::Internal::GeneratorOutputImpl< T >::end(), Halide::Internal::GeneratorInput_Buffer< T >::in(), Halide::Internal::GeneratorInput_Buffer< T >::in(), Halide::Internal::GeneratorInput_Buffer< T >::in(), Halide::Internal::GeneratorInput_Func< T >::in(), Halide::Internal::GeneratorInput_Func< 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_DynamicScalar< T >::operator ExternFuncArgument(), Halide::Internal::GeneratorInput_Func< 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_Buffer< T >::operator()(), Halide::Internal::GeneratorInput_Func< T >::operator()(), Halide::Internal::GeneratorInput_Func< T >::operator()(), Halide::Internal::GeneratorOutputImpl< T >::operator()(), Halide::Internal::GeneratorOutputImpl< T >::operator()(), Halide::Internal::GeneratorOutput_Buffer< T >::operator=(), Halide::Internal::GeneratorOutput_Buffer< T >::operator=(), Halide::Internal::GeneratorOutput_Buffer< T >::operator=(), Halide::Internal::GeneratorOutput_Func< T >::operator=(), Halide::Internal::GeneratorInput_Buffer< T >::operator[](), Halide::Internal::GeneratorInputImpl< T, Func >::operator[](), Halide::Internal::GeneratorOutput_Buffer< T >::operator[](), Halide::Internal::GeneratorOutput_Buffer< T >::operator[](), Halide::Internal::GeneratorOutput_Func< T >::operator[](), Halide::Internal::GeneratorOutput_Func< T >::operator[](), Halide::Internal::GeneratorOutputImpl< T >::operator[](), Halide::Internal::GeneratorOutputImpl< T >::resize(), Halide::Internal::GeneratorInput_Buffer< T >::set_estimate(), Halide::Internal::GeneratorInput_DynamicScalar< T >::set_estimate(), Halide::Internal::GeneratorInput_Func< T >::set_estimate(), Halide::Internal::GeneratorInput_Scalar< T >::set_estimate(), Halide::Internal::GeneratorInput_Scalar< T >::set_estimate(), Halide::Internal::GeneratorOutput_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::GeneratorInput_Buffer< T >::size(), Halide::Internal::GeneratorInputImpl< T, Func >::size(), and Halide::Internal::GeneratorOutputImpl< T >::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.
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(), Halide::Internal::GeneratorOutput_Buffer< T >::set_estimates(), and Halide::Internal::GeneratorOutput_Func< T >::set_estimates().
|
protected |
Definition at line 1490 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(), Halide::Internal::GeneratorOutput_Buffer< T >::set_estimates(), and Halide::Internal::GeneratorOutput_Func< T >::set_estimates().
|
protected |
Definition at line 1497 of file Generator.h.