Auto Tiler Library
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
ArgumentBinding

Functions

ArgBindingDescr_T ** Bindings (int BCount,...)
 Create a list of bindings between an argument and an actual value. More...
 
ArgBindingDescr_TC_Arg (char *ArgName)
 Binds argument to a C user kernel or user kernel group. More...
 
ArgBindingDescr_TC_ArgPlusImmOffset (char *ArgName, int Offset)
 Binds argument to a C user kernel or user kernel group argument and adds an immediate Offset. More...
 
ArgBindingDescr_TC_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_TC_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_TC_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_TC_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_TC_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_TC_ArgIndex (char *ArgName, KernelIteratorT Sel, int Mult)
 Binds argument to a C user kernel or user kernel group subscripted by an Index. More...
 
ArgBindingDescr_TC_ArgIndirect (char *ArgName, int Offset)
 Binds argument to a C user kernel or user kernel group subscripted by an Offset. More...
 
ArgBindingDescr_TImm (int Value)
 Binds argument to an immediate integer value. More...
 
ArgBindingDescr_TUserSymb (char *Name)
 Binds argument to a user defined symbol's associated value. More...
 
ArgBindingDescr_TKerDim (KernelDimT Dim)
 Binds argument to one of the user kernel dimension InPlane/OutPlane/Width/Height. More...
 
ArgBindingDescr_TKer_IteratorIndex (KernelIteratorT Sel)
 Binds argument to one of the user kernel iterator actual value. More...
 
ArgBindingDescr_TK_Arg (char *ArgName, KernelArgSelect_T ArgSelect)
 Binds argument to a user kernel argument (a tiled argument). More...
 
ArgBindingDescr_TK_ArgPar (char *ArgName, KernelArgSelect_T ArgSelect, KernelIteratorT ItSpace)
 Binds argument to one of the parametric sub space of a user kernel argument. More...
 
ArgBindingDescr_TK_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_TK_ArgPredList (ArgBindingT Conj, int N,...)
 Binds to a list of anded/ored predicates. More...
 
ArgBindingDescr_TK_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_TK_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...
 

Description

Functions in this group should be used to specify how a given basic kernel call argument is bound

Function Documentation

ArgBindingDescr_T** Bindings ( int  BCount,
  ... 
)

Create a list of bindings between an argument and an actual value

Parameters
BCountNumber 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

Parameters
ArgNameA 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.
Parameters
ArgNameA C argument name, usually a C argument of the user kernel
OperThe operation to be performed passed as a char, can be +,-,*,/,%
CvarName 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.
Parameters
ArgNameA C argument name, usually a C argument of the user kernel
OperThe operation to be performed passed as a char, can be +,-,*,/,%
ValueAn 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.
Parameters
ArgNameA C kernel argument, expected to be of pointer type
SelWhich 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
MultA 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)
Parameters
ArgNameA user kernel C argument content: *Arg C argument is expected to be a pointer
OffsetIf 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.
Parameters
ArgNameA C argument name, usually a C argument of the user kernel
CvarA 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.
Parameters
ArgNameA C argument name, usually a C argument of the user kernel
OffsetAn 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.
Parameters
ArgNameA C argument name, usually a C argument of the user kernel
SelWhich 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
MultA 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.
Parameters
ValueAn integer value to be combined with ArgName using Oper
OperThe operation to be performed passed as a char, can be +,-,*,/,%,<<,>>
ArgNameA C argument name, usually a C argument of the user kernel
ArgBindingDescr_T* Imm ( int  Value)

Binds argument to an immediate integer value.

Parameters
ValueAn 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.
Parameters
ArgNameA tiled user kernel argument name
ArgSelectSelect 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.

Parameters
ArgNameA tiled user kernel argument name
KerIterSelect kernel iteration space
OperOperation, see ArgBindingOper. Valid: + - * / %
ValueA 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

Parameters
ArgNameA tiled user kernel argument name
ArgSelectSelect which user kernel argument property to be used
ItSpaceWhich 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

Parameters
ArgNameA tiled user kernel argument name
ArgSelectSelect which user kernel argument property to be used
ItSpaceWhich iteration space
ArgBindingDescr_T* K_ArgPredList ( ArgBindingT  Conj,
int  N,
  ... 
)

Binds to a list of anded/ored predicates

Parameters
ConjPredicate conjonctor: BIND_PRED_AND or BIND_PRED_OR
NNumber 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

Parameters
ArgNameA tiled user kernel argument name
ArgAccessTypeWhich type should be usedd when accessing the tile
OperOperation, see ArgBindingOper. Valid: + - * / % @
ValueA signed immediate value
ArgBindingDescr_T* Ker_IteratorIndex ( KernelIteratorT  Sel)

Binds argument to one of the user kernel iterator actual value

Parameters
SelSelected iteration space
ArgBindingDescr_T* KerDim ( KernelDimT  Dim)

Binds argument to one of the user kernel dimension InPlane/OutPlane/Width/Height

Parameters
DimUser 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

Parameters
NameA user symbol name