Halide
|
A reference-counted handle to a parameter to a halide pipeline. More...
#include <Parameter.h>
Public Member Functions | |
Parameter ()=default | |
Construct a new undefined handle. More... | |
Parameter (const Type &t, bool is_buffer, int dimensions) | |
Construct a new parameter of the given type. More... | |
Parameter (const Type &t, bool is_buffer, int dimensions, const std::string &name) | |
Construct a new parameter of the given type with name given by the third argument. More... | |
Parameter (const Parameter &)=default | |
Parameter & | operator= (const Parameter &)=default |
Parameter (Parameter &&)=default | |
Parameter & | operator= (Parameter &&)=default |
Type | type () const |
Get the type of this parameter. More... | |
int | dimensions () const |
Get the dimensionality of this parameter. More... | |
const std::string & | name () const |
Get the name of this parameter. More... | |
bool | is_buffer () const |
Does this parameter refer to a buffer/image? More... | |
template<typename T > | |
HALIDE_NO_USER_CODE_INLINE T | scalar () const |
If the parameter is a scalar parameter, get its currently bound value. More... | |
Expr | scalar_expr () const |
This returns the current value of scalar<type()>() as an Expr. More... | |
template<typename T > | |
HALIDE_NO_USER_CODE_INLINE void | set_scalar (T val) |
If the parameter is a scalar parameter, set its current value. More... | |
HALIDE_NO_USER_CODE_INLINE void | set_scalar (const Type &val_type, halide_scalar_value_t val) |
If the parameter is a scalar parameter, set its current value. More... | |
Buffer< void > | buffer () const |
If the parameter is a buffer parameter, get its currently bound buffer. More... | |
const halide_buffer_t * | raw_buffer () const |
Get the raw currently-bound buffer. More... | |
void | set_buffer (const Buffer< void > &b) |
If the parameter is a buffer parameter, set its current value. More... | |
void * | scalar_address () const |
Get the pointer to the current value of the scalar parameter. More... | |
bool | same_as (const Parameter &other) const |
Tests if this handle is the same as another handle. More... | |
bool | defined () const |
Tests if this handle is non-nullptr. More... | |
void | set_min_constraint (int dim, Expr e) |
Get and set constraints for the min, extent, stride, and estimates on the min/extent. More... | |
void | set_extent_constraint (int dim, Expr e) |
void | set_stride_constraint (int dim, Expr e) |
void | set_min_constraint_estimate (int dim, Expr min) |
void | set_extent_constraint_estimate (int dim, Expr extent) |
void | set_host_alignment (int bytes) |
Expr | min_constraint (int dim) const |
Expr | extent_constraint (int dim) const |
Expr | stride_constraint (int dim) const |
Expr | min_constraint_estimate (int dim) const |
Expr | extent_constraint_estimate (int dim) const |
int | host_alignment () const |
void | set_min_value (const Expr &e) |
Get and set constraints for scalar parameters. More... | |
Expr | min_value () const |
void | set_max_value (const Expr &e) |
Expr | max_value () const |
void | set_estimate (Expr e) |
Expr | estimate () const |
void | set_default_value (const Expr &e) |
Get and set the default values for scalar parameters. More... | |
Expr | default_value () const |
bool | operator< (const Parameter &other) const |
Order Parameters by their IntrusivePtr so they can be used to index maps. More... | |
ArgumentEstimates | get_argument_estimates () const |
Get the ArgumentEstimates appropriate for this Parameter. More... | |
void | store_in (MemoryType memory_type) |
MemoryType | memory_type () const |
Protected Attributes | |
IntrusivePtr< ParameterContents > | contents |
A reference-counted handle to a parameter to a halide pipeline.
May be a scalar parameter or a buffer
Definition at line 28 of file Parameter.h.
|
default |
Construct a new undefined handle.
Halide::Internal::Parameter::Parameter | ( | const Type & | t, |
bool | is_buffer, | ||
int | dimensions | ||
) |
Construct a new parameter of the given type.
If the second argument is true, this is a buffer parameter of the given dimensionality, otherwise, it is a scalar parameter (and the dimensionality should be zero). The parameter will be given a unique auto-generated name.
Halide::Internal::Parameter::Parameter | ( | const Type & | t, |
bool | is_buffer, | ||
int | dimensions, | ||
const std::string & | name | ||
) |
Construct a new parameter of the given type with name given by the third argument.
If the second argument is true, this is a buffer parameter, otherwise, it is a scalar parameter. The third argument gives the dimensionality of the buffer parameter. It should be zero for scalar parameters. If the fifth argument is true, the the name being passed in was explicitly specified (as opposed to autogenerated).
|
default |
|
default |
Type Halide::Internal::Parameter::type | ( | ) | const |
Get the type of this parameter.
Referenced by Halide::Internal::Call::make(), Halide::Param< T >::operator Expr(), Halide::Param< T >::set(), Halide::Param< T >::set_estimate(), Halide::Param< T >::set_max_value(), Halide::Param< T >::set_min_value(), and Halide::Param< T >::type().
int Halide::Internal::Parameter::dimensions | ( | ) | const |
Get the dimensionality of this parameter.
Zero for scalars.
const std::string& Halide::Internal::Parameter::name | ( | ) | const |
Get the name of this parameter.
Referenced by Halide::Internal::Call::make(), and Halide::Param< T >::name().
bool Halide::Internal::Parameter::is_buffer | ( | ) | const |
Does this parameter refer to a buffer/image?
Referenced by Halide::ExternFuncArgument::ExternFuncArgument().
|
inline |
If the parameter is a scalar parameter, get its currently bound value.
Only relevant when jitting
Definition at line 78 of file Parameter.h.
References scalar_address().
Referenced by Halide::Param< T >::get().
Expr Halide::Internal::Parameter::scalar_expr | ( | ) | const |
This returns the current value of scalar<type()>() as an Expr.
|
inline |
If the parameter is a scalar parameter, set its current value.
Only relevant when jitting
Definition at line 90 of file Parameter.h.
References scalar_address().
Referenced by Halide::Param< T >::set(), and Halide::Internal::GeneratorInput_Scalar< T >::set_def_min_max().
|
inline |
If the parameter is a scalar parameter, set its current value.
Only relevant when jitting
Definition at line 97 of file Parameter.h.
References Halide::Type::bytes(), memcpy(), and scalar_address().
Buffer<void> Halide::Internal::Parameter::buffer | ( | ) | const |
If the parameter is a buffer parameter, get its currently bound buffer.
Only relevant when jitting
const halide_buffer_t* Halide::Internal::Parameter::raw_buffer | ( | ) | const |
Get the raw currently-bound buffer.
null if unbound
void Halide::Internal::Parameter::set_buffer | ( | const Buffer< void > & | b | ) |
If the parameter is a buffer parameter, set its current value.
Only relevant when jitting
void* Halide::Internal::Parameter::scalar_address | ( | ) | const |
Get the pointer to the current value of the scalar parameter.
For a given parameter, this address will never change. Only relevant when jitting.
Referenced by scalar(), and set_scalar().
bool Halide::Internal::Parameter::same_as | ( | const Parameter & | other | ) | const |
Tests if this handle is the same as another handle.
bool Halide::Internal::Parameter::defined | ( | ) | const |
Tests if this handle is non-nullptr.
void Halide::Internal::Parameter::set_min_constraint | ( | int | dim, |
Expr | e | ||
) |
Get and set constraints for the min, extent, stride, and estimates on the min/extent.
void Halide::Internal::Parameter::set_extent_constraint | ( | int | dim, |
Expr | e | ||
) |
void Halide::Internal::Parameter::set_stride_constraint | ( | int | dim, |
Expr | e | ||
) |
void Halide::Internal::Parameter::set_min_constraint_estimate | ( | int | dim, |
Expr | min | ||
) |
void Halide::Internal::Parameter::set_extent_constraint_estimate | ( | int | dim, |
Expr | extent | ||
) |
void Halide::Internal::Parameter::set_host_alignment | ( | int | bytes | ) |
Expr Halide::Internal::Parameter::min_constraint | ( | int | dim | ) | const |
Expr Halide::Internal::Parameter::extent_constraint | ( | int | dim | ) | const |
Expr Halide::Internal::Parameter::stride_constraint | ( | int | dim | ) | const |
Expr Halide::Internal::Parameter::min_constraint_estimate | ( | int | dim | ) | const |
Expr Halide::Internal::Parameter::extent_constraint_estimate | ( | int | dim | ) | const |
int Halide::Internal::Parameter::host_alignment | ( | ) | const |
void Halide::Internal::Parameter::set_min_value | ( | const Expr & | e | ) |
Get and set constraints for scalar parameters.
These are used directly by Param, so they must be exported.
Referenced by Halide::Internal::GeneratorInput_Arithmetic< T >::set_def_min_max(), and Halide::Param< T >::set_min_value().
Expr Halide::Internal::Parameter::min_value | ( | ) | const |
Referenced by Halide::Param< T >::min_value().
void Halide::Internal::Parameter::set_max_value | ( | const Expr & | e | ) |
Expr Halide::Internal::Parameter::max_value | ( | ) | const |
Referenced by Halide::Param< T >::max_value().
void Halide::Internal::Parameter::set_estimate | ( | Expr | e | ) |
Expr Halide::Internal::Parameter::estimate | ( | ) | const |
void Halide::Internal::Parameter::set_default_value | ( | const Expr & | e | ) |
Get and set the default values for scalar parameters.
At present, these are used only to emit the default values in the metadata. There isn't yet a public API in Param<> for them (this is used internally by the Generator code).
Referenced by Halide::Internal::GeneratorInput_Scalar< T >::set_def_min_max().
Expr Halide::Internal::Parameter::default_value | ( | ) | const |
|
inline |
Order Parameters by their IntrusivePtr so they can be used to index maps.
Definition at line 163 of file Parameter.h.
References contents.
ArgumentEstimates Halide::Internal::Parameter::get_argument_estimates | ( | ) | const |
Get the ArgumentEstimates appropriate for this Parameter.
Referenced by Halide::Param< T >::operator Argument().
void Halide::Internal::Parameter::store_in | ( | MemoryType | memory_type | ) |
MemoryType Halide::Internal::Parameter::memory_type | ( | ) | const |
|
protected |
Definition at line 36 of file Parameter.h.
Referenced by operator<().