MLIR
21.0.0git
|
#include "mlir-c/IR.h"
Go to the source code of this file.
Macros | |
#define | DEFINE_C_API_STRUCT(name, storage) |
Functions | |
DEFINE_C_API_STRUCT (MlirAffineExpr, const void) | |
MLIR_CAPI_EXPORTED MlirContext | mlirAffineExprGetContext (MlirAffineExpr affineExpr) |
Gets the context that owns the affine expression. More... | |
MLIR_CAPI_EXPORTED bool | mlirAffineExprEqual (MlirAffineExpr lhs, MlirAffineExpr rhs) |
Returns true if the two affine expressions are equal. More... | |
static bool | mlirAffineExprIsNull (MlirAffineExpr affineExpr) |
Returns true if the given affine expression is a null expression. More... | |
MLIR_CAPI_EXPORTED void | mlirAffineExprPrint (MlirAffineExpr affineExpr, MlirStringCallback callback, void *userData) |
Prints an affine expression by sending chunks of the string representation and forwarding userData to callback`. More... | |
MLIR_CAPI_EXPORTED void | mlirAffineExprDump (MlirAffineExpr affineExpr) |
Prints the affine expression to the standard error stream. More... | |
MLIR_CAPI_EXPORTED bool | mlirAffineExprIsSymbolicOrConstant (MlirAffineExpr affineExpr) |
Checks whether the given affine expression is made out of only symbols and constants. More... | |
MLIR_CAPI_EXPORTED bool | mlirAffineExprIsPureAffine (MlirAffineExpr affineExpr) |
Checks whether the given affine expression is a pure affine expression, i.e. More... | |
MLIR_CAPI_EXPORTED int64_t | mlirAffineExprGetLargestKnownDivisor (MlirAffineExpr affineExpr) |
Returns the greatest known integral divisor of this affine expression. More... | |
MLIR_CAPI_EXPORTED bool | mlirAffineExprIsMultipleOf (MlirAffineExpr affineExpr, int64_t factor) |
Checks whether the given affine expression is a multiple of 'factor'. More... | |
MLIR_CAPI_EXPORTED bool | mlirAffineExprIsFunctionOfDim (MlirAffineExpr affineExpr, intptr_t position) |
Checks whether the given affine expression involves AffineDimExpr 'position'. More... | |
MLIR_CAPI_EXPORTED MlirAffineExpr | mlirAffineExprCompose (MlirAffineExpr affineExpr, struct MlirAffineMap affineMap) |
Composes the given map with the given expression. More... | |
MLIR_CAPI_EXPORTED MlirAffineExpr | mlirAffineExprShiftDims (MlirAffineExpr affineExpr, uint32_t numDims, uint32_t shift, uint32_t offset) |
Replace dims[offset ... More... | |
MLIR_CAPI_EXPORTED MlirAffineExpr | mlirAffineExprShiftSymbols (MlirAffineExpr affineExpr, uint32_t numSymbols, uint32_t shift, uint32_t offset) |
Replace symbols[offset ... More... | |
MLIR_CAPI_EXPORTED MlirAffineExpr | mlirSimplifyAffineExpr (MlirAffineExpr expr, uint32_t numDims, uint32_t numSymbols) |
Simplify an affine expression by flattening and some amount of simple analysis. More... | |
MLIR_CAPI_EXPORTED bool | mlirAffineExprIsADim (MlirAffineExpr affineExpr) |
Checks whether the given affine expression is a dimension expression. More... | |
MLIR_CAPI_EXPORTED MlirAffineExpr | mlirAffineDimExprGet (MlirContext ctx, intptr_t position) |
Creates an affine dimension expression with 'position' in the context. More... | |
MLIR_CAPI_EXPORTED intptr_t | mlirAffineDimExprGetPosition (MlirAffineExpr affineExpr) |
Returns the position of the given affine dimension expression. More... | |
MLIR_CAPI_EXPORTED bool | mlirAffineExprIsASymbol (MlirAffineExpr affineExpr) |
Checks whether the given affine expression is a symbol expression. More... | |
MLIR_CAPI_EXPORTED MlirAffineExpr | mlirAffineSymbolExprGet (MlirContext ctx, intptr_t position) |
Creates an affine symbol expression with 'position' in the context. More... | |
MLIR_CAPI_EXPORTED intptr_t | mlirAffineSymbolExprGetPosition (MlirAffineExpr affineExpr) |
Returns the position of the given affine symbol expression. More... | |
MLIR_CAPI_EXPORTED bool | mlirAffineExprIsAConstant (MlirAffineExpr affineExpr) |
Checks whether the given affine expression is a constant expression. More... | |
MLIR_CAPI_EXPORTED MlirAffineExpr | mlirAffineConstantExprGet (MlirContext ctx, int64_t constant) |
Creates an affine constant expression with 'constant' in the context. More... | |
MLIR_CAPI_EXPORTED int64_t | mlirAffineConstantExprGetValue (MlirAffineExpr affineExpr) |
Returns the value of the given affine constant expression. More... | |
MLIR_CAPI_EXPORTED bool | mlirAffineExprIsAAdd (MlirAffineExpr affineExpr) |
Checks whether the given affine expression is an add expression. More... | |
MLIR_CAPI_EXPORTED MlirAffineExpr | mlirAffineAddExprGet (MlirAffineExpr lhs, MlirAffineExpr rhs) |
Creates an affine add expression with 'lhs' and 'rhs'. More... | |
MLIR_CAPI_EXPORTED bool | mlirAffineExprIsAMul (MlirAffineExpr affineExpr) |
Checks whether the given affine expression is an mul expression. More... | |
MLIR_CAPI_EXPORTED MlirAffineExpr | mlirAffineMulExprGet (MlirAffineExpr lhs, MlirAffineExpr rhs) |
Creates an affine mul expression with 'lhs' and 'rhs'. More... | |
MLIR_CAPI_EXPORTED bool | mlirAffineExprIsAMod (MlirAffineExpr affineExpr) |
Checks whether the given affine expression is an mod expression. More... | |
MLIR_CAPI_EXPORTED MlirAffineExpr | mlirAffineModExprGet (MlirAffineExpr lhs, MlirAffineExpr rhs) |
Creates an affine mod expression with 'lhs' and 'rhs'. More... | |
MLIR_CAPI_EXPORTED bool | mlirAffineExprIsAFloorDiv (MlirAffineExpr affineExpr) |
Checks whether the given affine expression is an floordiv expression. More... | |
MLIR_CAPI_EXPORTED MlirAffineExpr | mlirAffineFloorDivExprGet (MlirAffineExpr lhs, MlirAffineExpr rhs) |
Creates an affine floordiv expression with 'lhs' and 'rhs'. More... | |
MLIR_CAPI_EXPORTED bool | mlirAffineExprIsACeilDiv (MlirAffineExpr affineExpr) |
Checks whether the given affine expression is an ceildiv expression. More... | |
MLIR_CAPI_EXPORTED MlirAffineExpr | mlirAffineCeilDivExprGet (MlirAffineExpr lhs, MlirAffineExpr rhs) |
Creates an affine ceildiv expression with 'lhs' and 'rhs'. More... | |
MLIR_CAPI_EXPORTED bool | mlirAffineExprIsABinary (MlirAffineExpr affineExpr) |
Checks whether the given affine expression is binary. More... | |
MLIR_CAPI_EXPORTED MlirAffineExpr | mlirAffineBinaryOpExprGetLHS (MlirAffineExpr affineExpr) |
Returns the left hand side affine expression of the given affine binary operation expression. More... | |
MLIR_CAPI_EXPORTED MlirAffineExpr | mlirAffineBinaryOpExprGetRHS (MlirAffineExpr affineExpr) |
Returns the right hand side affine expression of the given affine binary operation expression. More... | |
#define DEFINE_C_API_STRUCT | ( | name, | |
storage | |||
) |
Definition at line 32 of file AffineExpr.h.
DEFINE_C_API_STRUCT | ( | MlirAffineExpr | , |
const void | |||
) |
MLIR_CAPI_EXPORTED MlirAffineExpr mlirAffineAddExprGet | ( | MlirAffineExpr | lhs, |
MlirAffineExpr | rhs | ||
) |
Creates an affine add expression with 'lhs' and 'rhs'.
Definition at line 137 of file AffineExpr.cpp.
References mlir::Add, mlir::getAffineBinaryOpExpr(), unwrap(), and wrap().
MLIR_CAPI_EXPORTED MlirAffineExpr mlirAffineBinaryOpExprGetLHS | ( | MlirAffineExpr | affineExpr | ) |
Returns the left hand side affine expression of the given affine binary operation expression.
Definition at line 204 of file AffineExpr.cpp.
MLIR_CAPI_EXPORTED MlirAffineExpr mlirAffineBinaryOpExprGetRHS | ( | MlirAffineExpr | affineExpr | ) |
Returns the right hand side affine expression of the given affine binary operation expression.
Definition at line 208 of file AffineExpr.cpp.
MLIR_CAPI_EXPORTED MlirAffineExpr mlirAffineCeilDivExprGet | ( | MlirAffineExpr | lhs, |
MlirAffineExpr | rhs | ||
) |
Creates an affine ceildiv expression with 'lhs' and 'rhs'.
Definition at line 190 of file AffineExpr.cpp.
References mlir::CeilDiv, mlir::getAffineBinaryOpExpr(), unwrap(), and wrap().
MLIR_CAPI_EXPORTED MlirAffineExpr mlirAffineConstantExprGet | ( | MlirContext | ctx, |
int64_t | constant | ||
) |
Creates an affine constant expression with 'constant' in the context.
Definition at line 121 of file AffineExpr.cpp.
References mlir::getAffineConstantExpr(), unwrap(), and wrap().
MLIR_CAPI_EXPORTED int64_t mlirAffineConstantExprGetValue | ( | MlirAffineExpr | affineExpr | ) |
Returns the value of the given affine constant expression.
Definition at line 125 of file AffineExpr.cpp.
References unwrap().
MLIR_CAPI_EXPORTED MlirAffineExpr mlirAffineDimExprGet | ( | MlirContext | ctx, |
intptr_t | position | ||
) |
Creates an affine dimension expression with 'position' in the context.
Definition at line 89 of file AffineExpr.cpp.
References mlir::getAffineDimExpr(), unwrap(), and wrap().
MLIR_CAPI_EXPORTED intptr_t mlirAffineDimExprGetPosition | ( | MlirAffineExpr | affineExpr | ) |
Returns the position of the given affine dimension expression.
Definition at line 93 of file AffineExpr.cpp.
References unwrap().
MLIR_CAPI_EXPORTED MlirAffineExpr mlirAffineExprCompose | ( | MlirAffineExpr | affineExpr, |
struct MlirAffineMap | affineMap | ||
) |
Composes the given map with the given expression.
Definition at line 59 of file AffineExpr.cpp.
MLIR_CAPI_EXPORTED void mlirAffineExprDump | ( | MlirAffineExpr | affineExpr | ) |
Prints the affine expression to the standard error stream.
Definition at line 34 of file AffineExpr.cpp.
References unwrap().
MLIR_CAPI_EXPORTED bool mlirAffineExprEqual | ( | MlirAffineExpr | lhs, |
MlirAffineExpr | rhs | ||
) |
Returns true
if the two affine expressions are equal.
Definition at line 24 of file AffineExpr.cpp.
References unwrap().
Referenced by mlir::python::PyAffineExpr::operator==().
MLIR_CAPI_EXPORTED MlirContext mlirAffineExprGetContext | ( | MlirAffineExpr | affineExpr | ) |
Gets the context that owns the affine expression.
Definition at line 20 of file AffineExpr.cpp.
References getContext(), unwrap(), and wrap().
Referenced by mlir::python::PyAffineExpr::createFromCapsule().
MLIR_CAPI_EXPORTED int64_t mlirAffineExprGetLargestKnownDivisor | ( | MlirAffineExpr | affineExpr | ) |
Returns the greatest known integral divisor of this affine expression.
The result is always positive.
Definition at line 46 of file AffineExpr.cpp.
References unwrap().
MLIR_CAPI_EXPORTED bool mlirAffineExprIsAAdd | ( | MlirAffineExpr | affineExpr | ) |
Checks whether the given affine expression is an add expression.
Definition at line 133 of file AffineExpr.cpp.
MLIR_CAPI_EXPORTED bool mlirAffineExprIsABinary | ( | MlirAffineExpr | affineExpr | ) |
Checks whether the given affine expression is binary.
Definition at line 200 of file AffineExpr.cpp.
References unwrap().
MLIR_CAPI_EXPORTED bool mlirAffineExprIsACeilDiv | ( | MlirAffineExpr | affineExpr | ) |
Checks whether the given affine expression is an ceildiv expression.
Definition at line 186 of file AffineExpr.cpp.
References mlir::CeilDiv, and unwrap().
MLIR_CAPI_EXPORTED bool mlirAffineExprIsAConstant | ( | MlirAffineExpr | affineExpr | ) |
Checks whether the given affine expression is a constant expression.
Definition at line 117 of file AffineExpr.cpp.
References unwrap().
MLIR_CAPI_EXPORTED bool mlirAffineExprIsADim | ( | MlirAffineExpr | affineExpr | ) |
Checks whether the given affine expression is a dimension expression.
Definition at line 85 of file AffineExpr.cpp.
References unwrap().
MLIR_CAPI_EXPORTED bool mlirAffineExprIsAFloorDiv | ( | MlirAffineExpr | affineExpr | ) |
Checks whether the given affine expression is an floordiv expression.
Definition at line 172 of file AffineExpr.cpp.
References mlir::FloorDiv, and unwrap().
MLIR_CAPI_EXPORTED bool mlirAffineExprIsAMod | ( | MlirAffineExpr | affineExpr | ) |
Checks whether the given affine expression is an mod expression.
Definition at line 159 of file AffineExpr.cpp.
MLIR_CAPI_EXPORTED bool mlirAffineExprIsAMul | ( | MlirAffineExpr | affineExpr | ) |
Checks whether the given affine expression is an mul expression.
Definition at line 146 of file AffineExpr.cpp.
MLIR_CAPI_EXPORTED bool mlirAffineExprIsASymbol | ( | MlirAffineExpr | affineExpr | ) |
Checks whether the given affine expression is a symbol expression.
Definition at line 101 of file AffineExpr.cpp.
References unwrap().
MLIR_CAPI_EXPORTED bool mlirAffineExprIsFunctionOfDim | ( | MlirAffineExpr | affineExpr, |
intptr_t | position | ||
) |
Checks whether the given affine expression involves AffineDimExpr 'position'.
Definition at line 54 of file AffineExpr.cpp.
References unwrap().
MLIR_CAPI_EXPORTED bool mlirAffineExprIsMultipleOf | ( | MlirAffineExpr | affineExpr, |
int64_t | factor | ||
) |
Checks whether the given affine expression is a multiple of 'factor'.
Definition at line 50 of file AffineExpr.cpp.
References unwrap().
|
inlinestatic |
Returns true
if the given affine expression is a null expression.
Note constant zero is not a null expression.
Definition at line 54 of file AffineExpr.h.
Referenced by mlir::python::PyAffineExpr::createFromCapsule().
MLIR_CAPI_EXPORTED bool mlirAffineExprIsPureAffine | ( | MlirAffineExpr | affineExpr | ) |
Checks whether the given affine expression is a pure affine expression, i.e.
mul, floordiv, ceildic, and mod is only allowed w.r.t constants.
Definition at line 42 of file AffineExpr.cpp.
References unwrap().
MLIR_CAPI_EXPORTED bool mlirAffineExprIsSymbolicOrConstant | ( | MlirAffineExpr | affineExpr | ) |
Checks whether the given affine expression is made out of only symbols and constants.
Definition at line 38 of file AffineExpr.cpp.
References unwrap().
MLIR_CAPI_EXPORTED void mlirAffineExprPrint | ( | MlirAffineExpr | affineExpr, |
MlirStringCallback | callback, | ||
void * | userData | ||
) |
Prints an affine expression 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 28 of file AffineExpr.cpp.
References mlir::Diagnostic::print(), and unwrap().
MLIR_CAPI_EXPORTED MlirAffineExpr mlirAffineExprShiftDims | ( | MlirAffineExpr | affineExpr, |
uint32_t | numDims, | ||
uint32_t | shift, | ||
uint32_t | offset | ||
) |
Replace dims[offset ...
numDims) by dims[offset + shift ... shift + numDims).
Definition at line 64 of file AffineExpr.cpp.
MLIR_CAPI_EXPORTED MlirAffineExpr mlirAffineExprShiftSymbols | ( | MlirAffineExpr | affineExpr, |
uint32_t | numSymbols, | ||
uint32_t | shift, | ||
uint32_t | offset | ||
) |
Replace symbols[offset ...
numSymbols) by symbols[offset + shift ... shift + numSymbols).
Definition at line 70 of file AffineExpr.cpp.
MLIR_CAPI_EXPORTED MlirAffineExpr mlirAffineFloorDivExprGet | ( | MlirAffineExpr | lhs, |
MlirAffineExpr | rhs | ||
) |
Creates an affine floordiv expression with 'lhs' and 'rhs'.
Definition at line 176 of file AffineExpr.cpp.
References mlir::FloorDiv, mlir::getAffineBinaryOpExpr(), unwrap(), and wrap().
MLIR_CAPI_EXPORTED MlirAffineExpr mlirAffineModExprGet | ( | MlirAffineExpr | lhs, |
MlirAffineExpr | rhs | ||
) |
Creates an affine mod expression with 'lhs' and 'rhs'.
Definition at line 163 of file AffineExpr.cpp.
References mlir::getAffineBinaryOpExpr(), mlir::Mod, unwrap(), and wrap().
MLIR_CAPI_EXPORTED MlirAffineExpr mlirAffineMulExprGet | ( | MlirAffineExpr | lhs, |
MlirAffineExpr | rhs | ||
) |
Creates an affine mul expression with 'lhs' and 'rhs'.
Definition at line 150 of file AffineExpr.cpp.
References mlir::getAffineBinaryOpExpr(), mlir::Mul, unwrap(), and wrap().
MLIR_CAPI_EXPORTED MlirAffineExpr mlirAffineSymbolExprGet | ( | MlirContext | ctx, |
intptr_t | position | ||
) |
Creates an affine symbol expression with 'position' in the context.
Definition at line 105 of file AffineExpr.cpp.
References mlir::getAffineSymbolExpr(), unwrap(), and wrap().
MLIR_CAPI_EXPORTED intptr_t mlirAffineSymbolExprGetPosition | ( | MlirAffineExpr | affineExpr | ) |
Returns the position of the given affine symbol expression.
Definition at line 109 of file AffineExpr.cpp.
References unwrap().
MLIR_CAPI_EXPORTED MlirAffineExpr mlirSimplifyAffineExpr | ( | MlirAffineExpr | expr, |
uint32_t | numDims, | ||
uint32_t | numSymbols | ||
) |
Simplify an affine expression by flattening and some amount of simple analysis.
This has complexity linear in the number of nodes in 'expr'. Returns the simplified expression, which is the same as the input expression if it can't be simplified. When expr
is semi-affine, a simplified semi-affine expression is constructed in the sorted order of dimension and symbol positions.
Definition at line 76 of file AffineExpr.cpp.
References mlir::simplifyAffineExpr(), unwrap(), and wrap().