MLIR
20.0.0git
|
Go to the source code of this file.
Macros | |
#define | DEFINE_C_API_STRUCT(name, storage) |
Functions | |
DEFINE_C_API_STRUCT (MlirAffineMap, const void) | |
MLIR_CAPI_EXPORTED MlirContext | mlirAffineMapGetContext (MlirAffineMap affineMap) |
Gets the context that the given affine map was created with. More... | |
static bool | mlirAffineMapIsNull (MlirAffineMap affineMap) |
Checks whether an affine map is null. More... | |
MLIR_CAPI_EXPORTED bool | mlirAffineMapEqual (MlirAffineMap a1, MlirAffineMap a2) |
Checks if two affine maps are equal. More... | |
MLIR_CAPI_EXPORTED void | mlirAffineMapPrint (MlirAffineMap affineMap, MlirStringCallback callback, void *userData) |
Prints an affine map by sending chunks of the string representation and forwarding userData to callback`. More... | |
MLIR_CAPI_EXPORTED void | mlirAffineMapDump (MlirAffineMap affineMap) |
Prints the affine map to the standard error stream. More... | |
MLIR_CAPI_EXPORTED MlirAffineMap | mlirAffineMapEmptyGet (MlirContext ctx) |
Creates a zero result affine map with no dimensions or symbols in the context. More... | |
MLIR_CAPI_EXPORTED MlirAffineMap | mlirAffineMapZeroResultGet (MlirContext ctx, intptr_t dimCount, intptr_t symbolCount) |
Creates a zero result affine map of the given dimensions and symbols in the context. More... | |
MLIR_CAPI_EXPORTED MlirAffineMap | mlirAffineMapGet (MlirContext ctx, intptr_t dimCount, intptr_t symbolCount, intptr_t nAffineExprs, MlirAffineExpr *affineExprs) |
Creates an affine map with results defined by the given list of affine expressions. More... | |
MLIR_CAPI_EXPORTED MlirAffineMap | mlirAffineMapConstantGet (MlirContext ctx, int64_t val) |
Creates a single constant result affine map in the context. More... | |
MLIR_CAPI_EXPORTED MlirAffineMap | mlirAffineMapMultiDimIdentityGet (MlirContext ctx, intptr_t numDims) |
Creates an affine map with 'numDims' identity in the context. More... | |
MLIR_CAPI_EXPORTED MlirAffineMap | mlirAffineMapMinorIdentityGet (MlirContext ctx, intptr_t dims, intptr_t results) |
Creates an identity affine map on the most minor dimensions in the context. More... | |
MLIR_CAPI_EXPORTED MlirAffineMap | mlirAffineMapPermutationGet (MlirContext ctx, intptr_t size, unsigned *permutation) |
Creates an affine map with a permutation expression and its size in the context. More... | |
MLIR_CAPI_EXPORTED bool | mlirAffineMapIsIdentity (MlirAffineMap affineMap) |
Checks whether the given affine map is an identity affine map. More... | |
MLIR_CAPI_EXPORTED bool | mlirAffineMapIsMinorIdentity (MlirAffineMap affineMap) |
Checks whether the given affine map is a minor identity affine map. More... | |
MLIR_CAPI_EXPORTED bool | mlirAffineMapIsEmpty (MlirAffineMap affineMap) |
Checks whether the given affine map is an empty affine map. More... | |
MLIR_CAPI_EXPORTED bool | mlirAffineMapIsSingleConstant (MlirAffineMap affineMap) |
Checks whether the given affine map is a single result constant affine map. More... | |
MLIR_CAPI_EXPORTED int64_t | mlirAffineMapGetSingleConstantResult (MlirAffineMap affineMap) |
Returns the constant result of the given affine map. More... | |
MLIR_CAPI_EXPORTED intptr_t | mlirAffineMapGetNumDims (MlirAffineMap affineMap) |
Returns the number of dimensions of the given affine map. More... | |
MLIR_CAPI_EXPORTED intptr_t | mlirAffineMapGetNumSymbols (MlirAffineMap affineMap) |
Returns the number of symbols of the given affine map. More... | |
MLIR_CAPI_EXPORTED intptr_t | mlirAffineMapGetNumResults (MlirAffineMap affineMap) |
Returns the number of results of the given affine map. More... | |
MLIR_CAPI_EXPORTED MlirAffineExpr | mlirAffineMapGetResult (MlirAffineMap affineMap, intptr_t pos) |
Returns the result at the given position. More... | |
MLIR_CAPI_EXPORTED intptr_t | mlirAffineMapGetNumInputs (MlirAffineMap affineMap) |
Returns the number of inputs (dimensions + symbols) of the given affine map. More... | |
MLIR_CAPI_EXPORTED bool | mlirAffineMapIsProjectedPermutation (MlirAffineMap affineMap) |
Checks whether the given affine map represents a subset of a symbol-less permutation map. More... | |
MLIR_CAPI_EXPORTED bool | mlirAffineMapIsPermutation (MlirAffineMap affineMap) |
Checks whether the given affine map represents a symbol-less permutation map. More... | |
MLIR_CAPI_EXPORTED MlirAffineMap | mlirAffineMapGetSubMap (MlirAffineMap affineMap, intptr_t size, intptr_t *resultPos) |
Returns the affine map consisting of the resultPos subset. More... | |
MLIR_CAPI_EXPORTED MlirAffineMap | mlirAffineMapGetMajorSubMap (MlirAffineMap affineMap, intptr_t numResults) |
Returns the affine map consisting of the most major numResults results. More... | |
MLIR_CAPI_EXPORTED MlirAffineMap | mlirAffineMapGetMinorSubMap (MlirAffineMap affineMap, intptr_t numResults) |
Returns the affine map consisting of the most minor numResults results. More... | |
MLIR_CAPI_EXPORTED MlirAffineMap | mlirAffineMapReplace (MlirAffineMap affineMap, MlirAffineExpr expression, MlirAffineExpr replacement, intptr_t numResultDims, intptr_t numResultSyms) |
Apply AffineExpr::replace(map ) to each of the results and return a new new AffineMap with the new results and the specified number of dims and symbols. More... | |
MLIR_CAPI_EXPORTED void | mlirAffineMapCompressUnusedSymbols (MlirAffineMap *affineMaps, intptr_t size, void *result, void(*populateResult)(void *res, intptr_t idx, MlirAffineMap m)) |
Returns the simplified affine map resulting from dropping the symbols that do not appear in any of the individual maps in affineMaps . More... | |
#define DEFINE_C_API_STRUCT | ( | name, | |
storage | |||
) |
Definition at line 33 of file AffineMap.h.
DEFINE_C_API_STRUCT | ( | MlirAffineMap | , |
const void | |||
) |
MLIR_CAPI_EXPORTED void mlirAffineMapCompressUnusedSymbols | ( | MlirAffineMap * | affineMaps, |
intptr_t | size, | ||
void * | result, | ||
void(*)(void *res, intptr_t idx, MlirAffineMap m) | populateResult | ||
) |
Returns the simplified affine map resulting from dropping the symbols that do not appear in any of the individual maps in affineMaps
.
Asserts that all maps in affineMaps
are normalized to the same number of dims and symbols. Takes a callback populateResult
to fill the res
container with value m
at entry idx
. This allows returning without worrying about ownership considerations.
Definition at line 150 of file AffineMap.cpp.
MLIR_CAPI_EXPORTED MlirAffineMap mlirAffineMapConstantGet | ( | MlirContext | ctx, |
int64_t | val | ||
) |
Creates a single constant result affine map in the context.
The affine map is owned by the context.
Definition at line 54 of file AffineMap.cpp.
References mlir::AffineMap::getConstantMap(), unwrap(), and wrap().
MLIR_CAPI_EXPORTED void mlirAffineMapDump | ( | MlirAffineMap | affineMap | ) |
Prints the affine map to the standard error stream.
Definition at line 35 of file AffineMap.cpp.
References unwrap().
MLIR_CAPI_EXPORTED MlirAffineMap mlirAffineMapEmptyGet | ( | MlirContext | ctx | ) |
Creates a zero result affine map with no dimensions or symbols in the context.
The affine map is owned by the context.
Definition at line 37 of file AffineMap.cpp.
References mlir::AffineMap::get(), unwrap(), and wrap().
MLIR_CAPI_EXPORTED bool mlirAffineMapEqual | ( | MlirAffineMap | a1, |
MlirAffineMap | a2 | ||
) |
Checks if two affine maps are equal.
Definition at line 25 of file AffineMap.cpp.
References unwrap().
Referenced by mlir::python::PyAffineMap::operator==().
MLIR_CAPI_EXPORTED MlirAffineMap mlirAffineMapGet | ( | MlirContext | ctx, |
intptr_t | dimCount, | ||
intptr_t | symbolCount, | ||
intptr_t | nAffineExprs, | ||
MlirAffineExpr * | affineExprs | ||
) |
Creates an affine map with results defined by the given list of affine expressions.
The map resulting map also has the requested number of input dimensions and symbols, regardless of them being used in the results.
Definition at line 46 of file AffineMap.cpp.
References mlir::AffineMap::get(), unwrap(), unwrapList(), and wrap().
MLIR_CAPI_EXPORTED MlirContext mlirAffineMapGetContext | ( | MlirAffineMap | affineMap | ) |
Gets the context that the given affine map was created with.
Definition at line 21 of file AffineMap.cpp.
References getContext(), unwrap(), and wrap().
Referenced by mlir::python::PyAffineMap::createFromCapsule().
MLIR_CAPI_EXPORTED MlirAffineMap mlirAffineMapGetMajorSubMap | ( | MlirAffineMap | affineMap, |
intptr_t | numResults | ||
) |
Returns the affine map consisting of the most major numResults
results.
Returns the null AffineMap if the numResults
is equal to zero. Returns the affineMap
if numResults
is greater or equals to number of results of the given affine map.
Definition at line 131 of file AffineMap.cpp.
MLIR_CAPI_EXPORTED MlirAffineMap mlirAffineMapGetMinorSubMap | ( | MlirAffineMap | affineMap, |
intptr_t | numResults | ||
) |
Returns the affine map consisting of the most minor numResults
results.
Returns the null AffineMap if the numResults
is equal to zero. Returns the affineMap
if numResults
is greater or equals to number of results of the given affine map.
Definition at line 136 of file AffineMap.cpp.
MLIR_CAPI_EXPORTED intptr_t mlirAffineMapGetNumDims | ( | MlirAffineMap | affineMap | ) |
Returns the number of dimensions of the given affine map.
Definition at line 94 of file AffineMap.cpp.
References unwrap().
MLIR_CAPI_EXPORTED intptr_t mlirAffineMapGetNumInputs | ( | MlirAffineMap | affineMap | ) |
Returns the number of inputs (dimensions + symbols) of the given affine map.
Definition at line 110 of file AffineMap.cpp.
References unwrap().
MLIR_CAPI_EXPORTED intptr_t mlirAffineMapGetNumResults | ( | MlirAffineMap | affineMap | ) |
Returns the number of results of the given affine map.
Definition at line 102 of file AffineMap.cpp.
References unwrap().
MLIR_CAPI_EXPORTED intptr_t mlirAffineMapGetNumSymbols | ( | MlirAffineMap | affineMap | ) |
Returns the number of symbols of the given affine map.
Definition at line 98 of file AffineMap.cpp.
References unwrap().
MLIR_CAPI_EXPORTED MlirAffineExpr mlirAffineMapGetResult | ( | MlirAffineMap | affineMap, |
intptr_t | pos | ||
) |
Returns the result at the given position.
Definition at line 106 of file AffineMap.cpp.
MLIR_CAPI_EXPORTED int64_t mlirAffineMapGetSingleConstantResult | ( | MlirAffineMap | affineMap | ) |
Returns the constant result of the given affine map.
The function asserts that the map has a single constant result.
Definition at line 90 of file AffineMap.cpp.
References unwrap().
MLIR_CAPI_EXPORTED MlirAffineMap mlirAffineMapGetSubMap | ( | MlirAffineMap | affineMap, |
intptr_t | size, | ||
intptr_t * | resultPos | ||
) |
Returns the affine map consisting of the resultPos
subset.
Definition at line 122 of file AffineMap.cpp.
MLIR_CAPI_EXPORTED bool mlirAffineMapIsEmpty | ( | MlirAffineMap | affineMap | ) |
Checks whether the given affine map is an empty affine map.
Definition at line 82 of file AffineMap.cpp.
References unwrap().
MLIR_CAPI_EXPORTED bool mlirAffineMapIsIdentity | ( | MlirAffineMap | affineMap | ) |
Checks whether the given affine map is an identity affine map.
The function asserts that the number of dimensions is greater or equal to the number of results.
Definition at line 74 of file AffineMap.cpp.
References unwrap().
MLIR_CAPI_EXPORTED bool mlirAffineMapIsMinorIdentity | ( | MlirAffineMap | affineMap | ) |
Checks whether the given affine map is a minor identity affine map.
Definition at line 78 of file AffineMap.cpp.
References unwrap().
|
inlinestatic |
Checks whether an affine map is null.
Definition at line 47 of file AffineMap.h.
Referenced by mlir::python::PyAffineMap::createFromCapsule(), nanobind::detail::type_caster< MlirAffineMap >::from_python(), and pybind11::detail::type_caster< MlirAffineMap >::load().
MLIR_CAPI_EXPORTED bool mlirAffineMapIsPermutation | ( | MlirAffineMap | affineMap | ) |
Checks whether the given affine map represents a symbol-less permutation map.
Definition at line 118 of file AffineMap.cpp.
References unwrap().
MLIR_CAPI_EXPORTED bool mlirAffineMapIsProjectedPermutation | ( | MlirAffineMap | affineMap | ) |
Checks whether the given affine map represents a subset of a symbol-less permutation map.
Definition at line 114 of file AffineMap.cpp.
References unwrap().
MLIR_CAPI_EXPORTED bool mlirAffineMapIsSingleConstant | ( | MlirAffineMap | affineMap | ) |
Checks whether the given affine map is a single result constant affine map.
Definition at line 86 of file AffineMap.cpp.
References unwrap().
MLIR_CAPI_EXPORTED MlirAffineMap mlirAffineMapMinorIdentityGet | ( | MlirContext | ctx, |
intptr_t | dims, | ||
intptr_t | results | ||
) |
Creates an identity affine map on the most minor dimensions in the context.
The affine map is owned by the context. The function asserts that the number of dimensions is greater or equal to the number of results.
Definition at line 63 of file AffineMap.cpp.
References mlir::AffineMap::getMinorIdentityMap(), unwrap(), and wrap().
MLIR_CAPI_EXPORTED MlirAffineMap mlirAffineMapMultiDimIdentityGet | ( | MlirContext | ctx, |
intptr_t | numDims | ||
) |
Creates an affine map with 'numDims' identity in the context.
The affine map is owned by the context.
Definition at line 58 of file AffineMap.cpp.
References mlir::AffineMap::getMultiDimIdentityMap(), unwrap(), and wrap().
MLIR_CAPI_EXPORTED MlirAffineMap mlirAffineMapPermutationGet | ( | MlirContext | ctx, |
intptr_t | size, | ||
unsigned * | permutation | ||
) |
Creates an affine map with a permutation expression and its size in the context.
The permutation expression is a non-empty vector of integers. The elements of the permutation vector must be continuous from 0 and cannot be repeated (i.e. [1,2,0]
is a valid permutation. [2,0]
or [1,1,2]
is an invalid permutation.) The affine map is owned by the context.
Definition at line 68 of file AffineMap.cpp.
References mlir::AffineMap::getPermutationMap(), unwrap(), and wrap().
MLIR_CAPI_EXPORTED void mlirAffineMapPrint | ( | MlirAffineMap | affineMap, |
MlirStringCallback | callback, | ||
void * | userData | ||
) |
Prints an affine map by sending chunks of the string representation and forwarding userData to
callback`.
Note that the callback may be called several times with consecutive chunks of the string.
Definition at line 29 of file AffineMap.cpp.
References mlir::Diagnostic::print(), and unwrap().
MLIR_CAPI_EXPORTED MlirAffineMap mlirAffineMapReplace | ( | MlirAffineMap | affineMap, |
MlirAffineExpr | expression, | ||
MlirAffineExpr | replacement, | ||
intptr_t | numResultDims, | ||
intptr_t | numResultSyms | ||
) |
Apply AffineExpr::replace(map
) to each of the results and return a new new AffineMap with the new results and the specified number of dims and symbols.
Definition at line 141 of file AffineMap.cpp.
MLIR_CAPI_EXPORTED MlirAffineMap mlirAffineMapZeroResultGet | ( | MlirContext | ctx, |
intptr_t | dimCount, | ||
intptr_t | symbolCount | ||
) |
Creates a zero result affine map of the given dimensions and symbols in the context.
The affine map is owned by the context.
Definition at line 41 of file AffineMap.cpp.
References mlir::AffineMap::get(), unwrap(), and wrap().