Auto Tiler Library
|
Functions | |
ArgBindingDescr_T ** | Bindings (int BCount,...) |
Create a list of bindings between an argument and an actual value. More... | |
ArgBindingDescr_T * | C_Arg (char *ArgName) |
Binds argument to a C user kernel or user kernel group. More... | |
ArgBindingDescr_T * | C_ArgPlusImmOffset (char *ArgName, int Offset) |
Binds argument to a C user kernel or user kernel group argument and adds an immediate Offset. More... | |
ArgBindingDescr_T * | C_ArgImmOper (char *ArgName, char Oper, int Value) |
Binds argument to a C user kernel or user kernel group argument and combines it with an immediate Value. More... | |
ArgBindingDescr_T * | C_ImmArgOper (int Value, char *Oper, char *ArgName) |
Binds argument to an immediate value combined to a C user kernel or user kernel group argument through oper. More... | |
ArgBindingDescr_T * | C_ArgCOper (char *ArgName, char Oper, char *Cvar) |
Binds argument to a C user kernel or user kernel group argument and combines it with a C variable. More... | |
ArgBindingDescr_T * | C_ArgPlusCvarOffset (char *ArgName, char *Cvar) |
Binds argument to a C user kernel or user kernel group argument and adds an Offset which is another C argument. More... | |
ArgBindingDescr_T * | C_ArgPlusPlaneOffset (char *ArgName, KernelIteratorT Sel, int Mult) |
Binds argument to a C user kernel or user kernel group argument and adds the current plane index given by Sel multiplied by Mult. More... | |
ArgBindingDescr_T * | C_ArgIndex (char *ArgName, KernelIteratorT Sel, int Mult) |
Binds argument to a C user kernel or user kernel group subscripted by an Index. More... | |
ArgBindingDescr_T * | C_ArgIndirect (char *ArgName, int Offset) |
Binds argument to a C user kernel or user kernel group subscripted by an Offset. More... | |
ArgBindingDescr_T * | Imm (int Value) |
Binds argument to an immediate integer value. More... | |
ArgBindingDescr_T * | UserSymb (char *Name) |
Binds argument to a user defined symbol's associated value. More... | |
ArgBindingDescr_T * | KerDim (KernelDimT Dim) |
Binds argument to one of the user kernel dimension InPlane/OutPlane/Width/Height. More... | |
ArgBindingDescr_T * | Ker_IteratorIndex (KernelIteratorT Sel) |
Binds argument to one of the user kernel iterator actual value. More... | |
ArgBindingDescr_T * | K_Arg (char *ArgName, KernelArgSelect_T ArgSelect) |
Binds argument to a user kernel argument (a tiled argument). More... | |
ArgBindingDescr_T * | K_ArgPar (char *ArgName, KernelArgSelect_T ArgSelect, KernelIteratorT ItSpace) |
Binds argument to one of the parametric sub space of a user kernel argument. More... | |
ArgBindingDescr_T * | K_ArgPred (char *ArgName, KernelArgSelect_T ArgSelect, KernelIteratorT ItSpace) |
Binds argument to kernel argument tile attribute predicate for a given sub space of this kernel argument. More... | |
ArgBindingDescr_T * | K_ArgPredList (ArgBindingT Conj, int N,...) |
Binds to a list of anded/ored predicates. More... | |
ArgBindingDescr_T * | K_ArgOper (char *ArgName, KernelIteratorT KerIter, char Oper, int Value) |
Binds argument to a user kernel argument (a tiled argument) and combine it with Value using Oper. More... | |
ArgBindingDescr_T * | K_TileOper (char *ArgName, char *ArgAccessType, char Oper, int Value) |
Binds argument to a user kernel argument (a tiled argument) and combine it with Value using Oper. More... | |
Functions in this group should be used to specify how a given basic kernel call argument is bound
ArgBindingDescr_T** Bindings | ( | int | BCount, |
... | |||
) |
Create a list of bindings between an argument and an actual value
BCount | Number of bindings |
... | List of bindings: C_Arg(), C_ArgIndex(), C_ArgPlusImmOffset(), C_ArgPlusCvarOffset(), C_ArgIndirect(), Imm(), K_Arg() |
ArgBindingDescr_T* C_Arg | ( | char * | ArgName | ) |
Binds argument to a C user kernel or user kernel group
ArgName | A C argument name, usually a C argument of the user kernel |
ArgBindingDescr_T* C_ArgCOper | ( | char * | ArgName, |
char | Oper, | ||
char * | Cvar | ||
) |
Binds argument to a C user kernel or user kernel group argument and combines it with an C variable
Oper can be +,-,*,/,% In case ArgName is a pointer Offset is subject to usual C pointer type promotion.
ArgName | A C argument name, usually a C argument of the user kernel |
Oper | The operation to be performed passed as a char, can be +,-,*,/,% |
Cvar | Name of the C variable used in the right hqnd side part of the expressionn |
ArgBindingDescr_T* C_ArgImmOper | ( | char * | ArgName, |
char | Oper, | ||
int | Value | ||
) |
Binds argument to a C user kernel or user kernel group argument and combines it with an immediate Value
Oper can be +,-,*,/,% In case ArgName is a pointer Offset is subject to usual C pointer type promotion.
ArgName | A C argument name, usually a C argument of the user kernel |
Oper | The operation to be performed passed as a char, can be +,-,*,/,% |
Value | An integer value to be combined with ArgName using Oper |
ArgBindingDescr_T* C_ArgIndex | ( | char * | ArgName, |
KernelIteratorT | Sel, | ||
int | Mult | ||
) |
Binds argument to a C user kernel or user kernel group subscripted by an Index.
ArgName should be of pointer type and the subscript index is taken from one of the iterators. The binding scheme is ArgName[Index(Sel)*Mult]. Index(Sel) is the current value of the iteration counter of the selected iteration space.
ArgName | A C kernel argument, expected to be of pointer type |
Sel | Which index: KER_TILE: the current tile index in the data plane, KER_IN_PLANE: the in plane current index KER_OUT_PLANE: the out plane current index |
Mult | A multiplication factor to be applied to selected index |
ArgBindingDescr_T* C_ArgIndirect | ( | char * | ArgName, |
int | Offset | ||
) |
Binds argument to a C user kernel or user kernel group subscripted by an Offset
ArgName should be of pointer type and Offset undergoes type conversion The binding scheme is *(ArgName+Offset)
ArgName | A user kernel C argument content: *Arg C argument is expected to be a pointer |
Offset | If not null use offset as *(Arg+Offset) |
ArgBindingDescr_T* C_ArgPlusCvarOffset | ( | char * | ArgName, |
char * | Cvar | ||
) |
Binds argument to a C user kernel or user kernel group argument and adds an Offset which is another C argument.
In case ArgName is a pointer Offset is subject to usual C pointer type promotion.
ArgName | A C argument name, usually a C argument of the user kernel |
Cvar | A C argument name, usually a C argument of the user kernel |
ArgBindingDescr_T* C_ArgPlusImmOffset | ( | char * | ArgName, |
int | Offset | ||
) |
Binds argument to a C user kernel or user kernel group argument and adds an immediate Offset.
In case ArgName is a pointer Offset is subject to usual C pointer type promotion.
ArgName | A C argument name, usually a C argument of the user kernel |
Offset | An integer offset to be added to ArgName |
ArgBindingDescr_T* C_ArgPlusPlaneOffset | ( | char * | ArgName, |
KernelIteratorT | Sel, | ||
int | Mult | ||
) |
Binds argument to a C user kernel or user kernel group argument and adds the current plane index given by Sel multiplied by Mult.
In case ArgName is a pointer plane index corresponding to Sel is subject to usual C pointer type promotion.
ArgName | A C argument name, usually a C argument of the user kernel |
Sel | Which index: KER_TILE: the current tile index in the data plane, KER_IN_PLANE: the in plane current index KER_OUT_PLANE: the out plane current index |
Mult | A multiplication factor to be applied to selected index |
ArgBindingDescr_T* C_ImmArgOper | ( | int | Value, |
char * | Oper, | ||
char * | ArgName | ||
) |
Binds argument to an immediate value combined to a C user kernel or user kernel group argument through oper
Oper can be +,-,*,/,%,<<,>> In case ArgName is a pointer Offset is subject to usual C pointer type promotion.
Value | An integer value to be combined with ArgName using Oper |
Oper | The operation to be performed passed as a char, can be +,-,*,/,%,<<,>> |
ArgName | A C argument name, usually a C argument of the user kernel |
ArgBindingDescr_T* Imm | ( | int | Value | ) |
Binds argument to an immediate integer value.
Value | An immediate value |
ArgBindingDescr_T* K_Arg | ( | char * | ArgName, |
KernelArgSelect_T | ArgSelect | ||
) |
Binds argument to a user kernel argument (a tiled argument).
Argument selection can be:
KER_ARG_TILE: Pointer to the current tile. KER_ARG_TILE_OFF Pointer to the current tile plus byte offset. KER_ARG_TILE_1_2 Pointer to the current tile plus 1/2 of tile size offset. KER_ARG_TILE_W Width of the current tile. KER_ARG_TILE_H Height of the current tile. KER_ARG_TILE_W0 Standard width of the tile (last tile excluded). KER_ARG_TILE_H0 Standard height of the tile (last tile excluded). KER_ARG Pointer to the data plane. KER_ARG_W Width of the data plane. KER_ARG_H Height of the data plane. KER_ARG_NTILES Number of tiles in the data plane. KER_ARG_TILEINDEX Index of the current tile, starts at 0.
ArgName | A tiled user kernel argument name |
ArgSelect | Select which user kernel argument property to be used |
ArgBindingDescr_T* K_ArgOper | ( | char * | ArgName, |
KernelIteratorT | KerIter, | ||
char | Oper, | ||
int | Value | ||
) |
Binds argument to a user kernel argument (a tiled argument) and combine it with Value using Oper
See K_Arg() for ArgName and ArgSelect. Supported operation are defined in ArgBindingOper. Value is a signed immediate constant.
ArgName | A tiled user kernel argument name |
KerIter | Select kernel iteration space |
Oper | Operation, see ArgBindingOper. Valid: + - * / % |
Value | A signed immediate value |
ArgBindingDescr_T* K_ArgPar | ( | char * | ArgName, |
KernelArgSelect_T | ArgSelect, | ||
KernelIteratorT | ItSpace | ||
) |
Binds argument to one of the parametric sub space of a user kernel argument.
Argument selection can be: KER_ARG_PARTILE_DIM Actual dimension of the parametric space after tiling KER_ARG_PARTILE_SIZE Dimension of one tile of the parametric space after tiling
ArgName | A tiled user kernel argument name |
ArgSelect | Select which user kernel argument property to be used |
ItSpace | Which Iteration space, has to a parametric one |
ArgBindingDescr_T* K_ArgPred | ( | char * | ArgName, |
KernelArgSelect_T | ArgSelect, | ||
KernelIteratorT | ItSpace | ||
) |
Binds argument to kernel argument tile attribute predicate for a given sub space of this kernel argument.
Argument selection can be: KER_ARG_TILEFIRST True if current tile is the first according to ItSpace dimension KER_ARG_TILELAST True if current tile is the last according to ItSpace dimension
ArgName | A tiled user kernel argument name |
ArgSelect | Select which user kernel argument property to be used |
ItSpace | Which iteration space |
ArgBindingDescr_T* K_ArgPredList | ( | ArgBindingT | Conj, |
int | N, | ||
... | |||
) |
Binds to a list of anded/ored predicates
Conj | Predicate conjonctor: BIND_PRED_AND or BIND_PRED_OR |
N | Number of predicate |
ArgBindingDescr_T* K_TileOper | ( | char * | ArgName, |
char * | ArgAccessType, | ||
char | Oper, | ||
int | Value | ||
) |
Binds argument to a user kernel argument (a tiled argument) and combine it with Value using Oper
ArgName | A tiled user kernel argument name |
ArgAccessType | Which type should be usedd when accessing the tile |
Oper | Operation, see ArgBindingOper. Valid: + - * / % @ |
Value | A signed immediate value |
ArgBindingDescr_T* Ker_IteratorIndex | ( | KernelIteratorT | Sel | ) |
Binds argument to one of the user kernel iterator actual value
Sel | Selected iteration space |
ArgBindingDescr_T* KerDim | ( | KernelDimT | Dim | ) |
Binds argument to one of the user kernel dimension InPlane/OutPlane/Width/Height
Dim | User kernel dimension: K_INP, K_OUTP, K_W, K_H |
ArgBindingDescr_T* UserSymb | ( | char * | Name | ) |
Binds argument to a user defined symbol's associated value
Name | A user symbol name |