|
MLIR 22.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. | |
| static bool | mlirAffineMapIsNull (MlirAffineMap affineMap) |
| Checks whether an affine map is null. | |
| MLIR_CAPI_EXPORTED bool | mlirAffineMapEqual (MlirAffineMap a1, MlirAffineMap a2) |
| Checks if two affine maps are equal. | |
| MLIR_CAPI_EXPORTED void | mlirAffineMapCompressUnusedSymbols (MlirAffineMap *affineMaps, intptr_t size, void *result, void(*populateResult)(void *res, intptr_t idx, MlirAffineMap m)) |
| Prints an affine map by sending chunks of the string representation and forwarding userData to callback`. | |
| #define DEFINE_C_API_STRUCT | ( | name, | |
| storage ) |
Definition at line 33 of file AffineMap.h.
| DEFINE_C_API_STRUCT | ( | MlirAffineMap | , |
| const void | ) |
References MLIR_CAPI_EXPORTED.
| MLIR_CAPI_EXPORTED void mlirAffineMapCompressUnusedSymbols | ( | MlirAffineMap * | affineMaps, |
| intptr_t | size, | ||
| void * | result, | ||
| void(* | populateResult )(void *res, intptr_t idx, MlirAffineMap m) ) |
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. MLIR_CAPI_EXPORTED void mlirAffineMapPrint(MlirAffineMap affineMap, MlirStringCallback callback, void *userData);
/ Prints the affine map to the standard error stream. MLIR_CAPI_EXPORTED void mlirAffineMapDump(MlirAffineMap affineMap);
/ Creates a zero result affine map with no dimensions or symbols in the / context. The affine map is owned by the context. MLIR_CAPI_EXPORTED MlirAffineMap mlirAffineMapEmptyGet(MlirContext ctx);
/ Creates a zero result affine map of the given dimensions and symbols in the / context. The affine map is owned by the context. MLIR_CAPI_EXPORTED MlirAffineMap mlirAffineMapZeroResultGet( MlirContext ctx, intptr_t dimCount, intptr_t symbolCount);
/ 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.
MLIR_CAPI_EXPORTED MlirAffineMap mlirAffineMapGet(MlirContext ctx, intptr_t dimCount, intptr_t symbolCount, intptr_t nAffineExprs, MlirAffineExpr *affineExprs);
/ Creates a single constant result affine map in the context. The affine map / is owned by the context. MLIR_CAPI_EXPORTED MlirAffineMap mlirAffineMapConstantGet(MlirContext ctx, int64_t val);
/ Creates an affine map with 'numDims' identity in the context. The affine map / is owned by the context. MLIR_CAPI_EXPORTED MlirAffineMap mlirAffineMapMultiDimIdentityGet(MlirContext ctx, intptr_t numDims);
/ 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. MLIR_CAPI_EXPORTED MlirAffineMap mlirAffineMapMinorIdentityGet(MlirContext ctx, intptr_t dims, intptr_t results);
/ 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. MLIR_CAPI_EXPORTED MlirAffineMap mlirAffineMapPermutationGet( MlirContext ctx, intptr_t size, unsigned *permutation);
/ 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. MLIR_CAPI_EXPORTED bool mlirAffineMapIsIdentity(MlirAffineMap affineMap);
/ Checks whether the given affine map is a minor identity affine map. MLIR_CAPI_EXPORTED bool mlirAffineMapIsMinorIdentity(MlirAffineMap affineMap);
/ Checks whether the given affine map is an empty affine map. MLIR_CAPI_EXPORTED bool mlirAffineMapIsEmpty(MlirAffineMap affineMap);
/ Checks whether the given affine map is a single result constant affine / map. MLIR_CAPI_EXPORTED bool mlirAffineMapIsSingleConstant(MlirAffineMap affineMap);
/ Returns the constant result of the given affine map. The function asserts / that the map has a single constant result. MLIR_CAPI_EXPORTED int64_t mlirAffineMapGetSingleConstantResult(MlirAffineMap affineMap);
/ Returns the number of dimensions of the given affine map. MLIR_CAPI_EXPORTED intptr_t mlirAffineMapGetNumDims(MlirAffineMap affineMap);
/ Returns the number of symbols of the given affine map. MLIR_CAPI_EXPORTED intptr_t mlirAffineMapGetNumSymbols(MlirAffineMap affineMap);
/ Returns the number of results of the given affine map. MLIR_CAPI_EXPORTED intptr_t mlirAffineMapGetNumResults(MlirAffineMap affineMap);
/ Returns the result at the given position. MLIR_CAPI_EXPORTED MlirAffineExpr mlirAffineMapGetResult(MlirAffineMap affineMap, intptr_t pos);
/ Returns the number of inputs (dimensions + symbols) of the given affine / map. MLIR_CAPI_EXPORTED intptr_t mlirAffineMapGetNumInputs(MlirAffineMap affineMap);
/ Checks whether the given affine map represents a subset of a symbol-less / permutation map. MLIR_CAPI_EXPORTED bool mlirAffineMapIsProjectedPermutation(MlirAffineMap affineMap);
/ Checks whether the given affine map represents a symbol-less permutation / map. MLIR_CAPI_EXPORTED bool mlirAffineMapIsPermutation(MlirAffineMap affineMap);
/ Returns the affine map consisting of the resultPos subset. MLIR_CAPI_EXPORTED MlirAffineMap mlirAffineMapGetSubMap(MlirAffineMap affineMap, intptr_t size, intptr_t *resultPos);
/ 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. MLIR_CAPI_EXPORTED MlirAffineMap mlirAffineMapGetMajorSubMap(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. MLIR_CAPI_EXPORTED MlirAffineMap mlirAffineMapGetMinorSubMap(MlirAffineMap affineMap, intptr_t numResults);
/ 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. MLIR_CAPI_EXPORTED MlirAffineMap mlirAffineMapReplace( MlirAffineMap affineMap, MlirAffineExpr expression, MlirAffineExpr replacement, intptr_t numResultDims, intptr_t numResultSyms);
/ 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.
References mlir::compressUnusedSymbols(), result, 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 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().
|
inlinestatic |
Checks whether an affine map is null.
Definition at line 47 of file AffineMap.h.
Referenced by mlir::python::PyAffineMap::createFromCapsule(), pybind11::detail::type_caster< MlirAffineMap >::load(), and populateDialectSparseTensorSubmodule().