MLIR
16.0.0git
|
#include "mlir-c/IR.h"
#include "mlir-c/Support.h"
#include "mlir/AsmParser/AsmParser.h"
#include "mlir/CAPI/IR.h"
#include "mlir/CAPI/Support.h"
#include "mlir/CAPI/Utils.h"
#include "mlir/IR/Attributes.h"
#include "mlir/IR/BuiltinOps.h"
#include "mlir/IR/Dialect.h"
#include "mlir/IR/Location.h"
#include "mlir/IR/Operation.h"
#include "mlir/IR/Types.h"
#include "mlir/IR/Verifier.h"
#include "mlir/Interfaces/InferTypeOpInterface.h"
#include "mlir/Parser/Parser.h"
#include "llvm/Support/Debug.h"
#include <cstddef>
Go to the source code of this file.
Macros | |
#define | APPEND_ELEMS(type, sizeName, elemName) |
Functions | |
MlirContext | mlirContextCreate () |
Creates an MLIR context and transfers its ownership to the caller. More... | |
bool | mlirContextEqual (MlirContext ctx1, MlirContext ctx2) |
Checks if two contexts are equal. More... | |
void | mlirContextDestroy (MlirContext context) |
Takes an MLIR context owned by the caller and destroys it. More... | |
void | mlirContextSetAllowUnregisteredDialects (MlirContext context, bool allow) |
Sets whether unregistered dialects are allowed in this context. More... | |
bool | mlirContextGetAllowUnregisteredDialects (MlirContext context) |
Returns whether the context allows unregistered dialects. More... | |
intptr_t | mlirContextGetNumRegisteredDialects (MlirContext context) |
Returns the number of dialects registered with the given context. More... | |
void | mlirContextAppendDialectRegistry (MlirContext ctx, MlirDialectRegistry registry) |
Append the contents of the given dialect registry to the registry associated with the context. More... | |
intptr_t | mlirContextGetNumLoadedDialects (MlirContext context) |
Returns the number of dialects loaded by the context. More... | |
MlirDialect | mlirContextGetOrLoadDialect (MlirContext context, MlirStringRef name) |
Gets the dialect instance owned by the given context using the dialect namespace to identify it, loads (i.e., constructs the instance of) the dialect if necessary. More... | |
bool | mlirContextIsRegisteredOperation (MlirContext context, MlirStringRef name) |
Returns whether the given fully-qualified operation (i.e. More... | |
void | mlirContextEnableMultithreading (MlirContext context, bool enable) |
Set threading mode (must be set to false to mlir-print-ir-after-all). More... | |
void | mlirContextLoadAllAvailableDialects (MlirContext context) |
Eagerly loads all available dialects registered with a context, making them available for use for IR construction. More... | |
MlirContext | mlirDialectGetContext (MlirDialect dialect) |
Returns the context that owns the dialect. More... | |
bool | mlirDialectEqual (MlirDialect dialect1, MlirDialect dialect2) |
Checks if two dialects that belong to the same context are equal. More... | |
MlirStringRef | mlirDialectGetNamespace (MlirDialect dialect) |
Returns the namespace of the given dialect. More... | |
MlirDialectRegistry | mlirDialectRegistryCreate () |
Creates a dialect registry and transfers its ownership to the caller. More... | |
void | mlirDialectRegistryDestroy (MlirDialectRegistry registry) |
Takes a dialect registry owned by the caller and destroys it. More... | |
MlirOpPrintingFlags | mlirOpPrintingFlagsCreate () |
Creates new printing flags with defaults, intended for customization. More... | |
void | mlirOpPrintingFlagsDestroy (MlirOpPrintingFlags flags) |
Destroys printing flags created with mlirOpPrintingFlagsCreate. More... | |
void | mlirOpPrintingFlagsElideLargeElementsAttrs (MlirOpPrintingFlags flags, intptr_t largeElementLimit) |
Enables the elision of large elements attributes by printing a lexically valid but otherwise meaningless form instead of the element data. More... | |
void | mlirOpPrintingFlagsEnableDebugInfo (MlirOpPrintingFlags flags, bool prettyForm) |
Enable printing of debug information. More... | |
void | mlirOpPrintingFlagsPrintGenericOpForm (MlirOpPrintingFlags flags) |
Always print operations in the generic form. More... | |
void | mlirOpPrintingFlagsUseLocalScope (MlirOpPrintingFlags flags) |
Use local scope when printing the operation. More... | |
MlirLocation | mlirLocationFileLineColGet (MlirContext context, MlirStringRef filename, unsigned line, unsigned col) |
Creates an File/Line/Column location owned by the given context. More... | |
MlirLocation | mlirLocationCallSiteGet (MlirLocation callee, MlirLocation caller) |
Creates a call site location with a callee and a caller. More... | |
MlirLocation | mlirLocationFusedGet (MlirContext ctx, intptr_t nLocations, MlirLocation const *locations, MlirAttribute metadata) |
Creates a fused location with an array of locations and metadata. More... | |
MlirLocation | mlirLocationNameGet (MlirContext context, MlirStringRef name, MlirLocation childLoc) |
Creates a name location owned by the given context. More... | |
MlirLocation | mlirLocationUnknownGet (MlirContext context) |
Creates a location with unknown position owned by the given context. More... | |
bool | mlirLocationEqual (MlirLocation l1, MlirLocation l2) |
Checks if two locations are equal. More... | |
MlirContext | mlirLocationGetContext (MlirLocation location) |
Gets the context that a location was created with. More... | |
void | mlirLocationPrint (MlirLocation location, MlirStringCallback callback, void *userData) |
Prints a location by sending chunks of the string representation and forwarding userData to callback`. More... | |
MlirModule | mlirModuleCreateEmpty (MlirLocation location) |
Creates a new, empty module and transfers ownership to the caller. More... | |
MlirModule | mlirModuleCreateParse (MlirContext context, MlirStringRef module) |
Parses a module from the string and transfers ownership to the caller. More... | |
MlirContext | mlirModuleGetContext (MlirModule module) |
Gets the context that a module was created with. More... | |
MlirBlock | mlirModuleGetBody (MlirModule module) |
Gets the body of the module, i.e. the only block it contains. More... | |
void | mlirModuleDestroy (MlirModule module) |
Takes a module owned by the caller and deletes it. More... | |
MlirOperation | mlirModuleGetOperation (MlirModule module) |
Views the module as a generic operation. More... | |
MlirModule | mlirModuleFromOperation (MlirOperation op) |
Views the generic operation as a module. More... | |
MlirOperationState | mlirOperationStateGet (MlirStringRef name, MlirLocation loc) |
Constructs an operation state from a name and a location. More... | |
void | mlirOperationStateAddResults (MlirOperationState *state, intptr_t n, MlirType const *results) |
Adds a list of components to the operation state. More... | |
void | mlirOperationStateAddOperands (MlirOperationState *state, intptr_t n, MlirValue const *operands) |
void | mlirOperationStateAddOwnedRegions (MlirOperationState *state, intptr_t n, MlirRegion const *regions) |
void | mlirOperationStateAddSuccessors (MlirOperationState *state, intptr_t n, MlirBlock const *successors) |
void | mlirOperationStateAddAttributes (MlirOperationState *state, intptr_t n, MlirNamedAttribute const *attributes) |
void | mlirOperationStateEnableResultTypeInference (MlirOperationState *state) |
Enables result type inference for the operation under construction. More... | |
static LogicalResult | inferOperationTypes (OperationState &state) |
MlirOperation | mlirOperationCreate (MlirOperationState *state) |
Creates an operation and transfers ownership to the caller. More... | |
MlirOperation | mlirOperationClone (MlirOperation op) |
Creates a deep copy of an operation. More... | |
void | mlirOperationDestroy (MlirOperation op) |
Takes an operation owned by the caller and destroys it. More... | |
void | mlirOperationRemoveFromParent (MlirOperation op) |
Removes the given operation from its parent block. More... | |
bool | mlirOperationEqual (MlirOperation op, MlirOperation other) |
Checks whether two operation handles point to the same operation. More... | |
MlirContext | mlirOperationGetContext (MlirOperation op) |
Gets the context this operation is associated with. More... | |
MlirLocation | mlirOperationGetLocation (MlirOperation op) |
Gets the location of the operation. More... | |
MlirTypeID | mlirOperationGetTypeID (MlirOperation op) |
Gets the type id of the operation. More... | |
MlirIdentifier | mlirOperationGetName (MlirOperation op) |
Gets the name of the operation as an identifier. More... | |
MlirBlock | mlirOperationGetBlock (MlirOperation op) |
Gets the block that owns this operation, returning null if the operation is not owned. More... | |
MlirOperation | mlirOperationGetParentOperation (MlirOperation op) |
Gets the operation that owns this operation, returning null if the operation is not owned. More... | |
intptr_t | mlirOperationGetNumRegions (MlirOperation op) |
Returns the number of regions attached to the given operation. More... | |
MlirRegion | mlirOperationGetRegion (MlirOperation op, intptr_t pos) |
Returns pos -th region attached to the operation. More... | |
MlirRegion | mlirOperationGetFirstRegion (MlirOperation op) |
Returns first region attached to the operation. More... | |
MlirRegion | mlirRegionGetNextInOperation (MlirRegion region) |
Returns the region immediately following the given region in its parent operation. More... | |
MlirOperation | mlirOperationGetNextInBlock (MlirOperation op) |
Returns an operation immediately following the given operation it its enclosing block. More... | |
intptr_t | mlirOperationGetNumOperands (MlirOperation op) |
Returns the number of operands of the operation. More... | |
MlirValue | mlirOperationGetOperand (MlirOperation op, intptr_t pos) |
Returns pos -th operand of the operation. More... | |
void | mlirOperationSetOperand (MlirOperation op, intptr_t pos, MlirValue newValue) |
Sets the pos -th operand of the operation. More... | |
intptr_t | mlirOperationGetNumResults (MlirOperation op) |
Returns the number of results of the operation. More... | |
MlirValue | mlirOperationGetResult (MlirOperation op, intptr_t pos) |
Returns pos -th result of the operation. More... | |
intptr_t | mlirOperationGetNumSuccessors (MlirOperation op) |
Returns the number of successor blocks of the operation. More... | |
MlirBlock | mlirOperationGetSuccessor (MlirOperation op, intptr_t pos) |
Returns pos -th successor of the operation. More... | |
intptr_t | mlirOperationGetNumAttributes (MlirOperation op) |
Returns the number of attributes attached to the operation. More... | |
MlirNamedAttribute | mlirOperationGetAttribute (MlirOperation op, intptr_t pos) |
Return pos -th attribute of the operation. More... | |
MlirAttribute | mlirOperationGetAttributeByName (MlirOperation op, MlirStringRef name) |
Returns an attribute attached to the operation given its name. More... | |
void | mlirOperationSetAttributeByName (MlirOperation op, MlirStringRef name, MlirAttribute attr) |
Sets an attribute by name, replacing the existing if it exists or adding a new one otherwise. More... | |
bool | mlirOperationRemoveAttributeByName (MlirOperation op, MlirStringRef name) |
Removes an attribute by name. More... | |
void | mlirOperationPrint (MlirOperation op, MlirStringCallback callback, void *userData) |
Prints an operation by sending chunks of the string representation and forwarding userData to callback`. More... | |
void | mlirOperationPrintWithFlags (MlirOperation op, MlirOpPrintingFlags flags, MlirStringCallback callback, void *userData) |
Same as mlirOperationPrint but accepts flags controlling the printing behavior. More... | |
void | mlirOperationDump (MlirOperation op) |
Prints an operation to stderr. More... | |
bool | mlirOperationVerify (MlirOperation op) |
Verify the operation and return true if it passes, false if it fails. More... | |
void | mlirOperationMoveAfter (MlirOperation op, MlirOperation other) |
Moves the given operation immediately after the other operation in its parent block. More... | |
void | mlirOperationMoveBefore (MlirOperation op, MlirOperation other) |
Moves the given operation immediately before the other operation in its parent block. More... | |
MlirRegion | mlirRegionCreate () |
Creates a new empty region and transfers ownership to the caller. More... | |
bool | mlirRegionEqual (MlirRegion region, MlirRegion other) |
Checks whether two region handles point to the same region. More... | |
MlirBlock | mlirRegionGetFirstBlock (MlirRegion region) |
Gets the first block in the region. More... | |
void | mlirRegionAppendOwnedBlock (MlirRegion region, MlirBlock block) |
Takes a block owned by the caller and appends it to the given region. More... | |
void | mlirRegionInsertOwnedBlock (MlirRegion region, intptr_t pos, MlirBlock block) |
Takes a block owned by the caller and inserts it at pos to the given region. More... | |
void | mlirRegionInsertOwnedBlockAfter (MlirRegion region, MlirBlock reference, MlirBlock block) |
Takes a block owned by the caller and inserts it after the (non-owned) reference block in the given region. More... | |
void | mlirRegionInsertOwnedBlockBefore (MlirRegion region, MlirBlock reference, MlirBlock block) |
Takes a block owned by the caller and inserts it before the (non-owned) reference block in the given region. More... | |
void | mlirRegionDestroy (MlirRegion region) |
Takes a region owned by the caller and destroys it. More... | |
MlirBlock | mlirBlockCreate (intptr_t nArgs, MlirType const *args, MlirLocation const *locs) |
Creates a new empty block with the given argument types and transfers ownership to the caller. More... | |
bool | mlirBlockEqual (MlirBlock block, MlirBlock other) |
Checks whether two blocks handles point to the same block. More... | |
MlirOperation | mlirBlockGetParentOperation (MlirBlock block) |
Returns the closest surrounding operation that contains this block. More... | |
MlirRegion | mlirBlockGetParentRegion (MlirBlock block) |
Returns the region that contains this block. More... | |
MlirBlock | mlirBlockGetNextInRegion (MlirBlock block) |
Returns the block immediately following the given block in its parent region. More... | |
MlirOperation | mlirBlockGetFirstOperation (MlirBlock block) |
Returns the first operation in the block. More... | |
MlirOperation | mlirBlockGetTerminator (MlirBlock block) |
Returns the terminator operation in the block or null if no terminator. More... | |
void | mlirBlockAppendOwnedOperation (MlirBlock block, MlirOperation operation) |
Takes an operation owned by the caller and appends it to the block. More... | |
void | mlirBlockInsertOwnedOperation (MlirBlock block, intptr_t pos, MlirOperation operation) |
Takes an operation owned by the caller and inserts it as pos to the block. More... | |
void | mlirBlockInsertOwnedOperationAfter (MlirBlock block, MlirOperation reference, MlirOperation operation) |
Takes an operation owned by the caller and inserts it after the (non-owned) reference operation in the given block. More... | |
void | mlirBlockInsertOwnedOperationBefore (MlirBlock block, MlirOperation reference, MlirOperation operation) |
Takes an operation owned by the caller and inserts it before the (non-owned) reference operation in the given block. More... | |
void | mlirBlockDestroy (MlirBlock block) |
Takes a block owned by the caller and destroys it. More... | |
void | mlirBlockDetach (MlirBlock block) |
Detach a block from the owning region and assume ownership. More... | |
intptr_t | mlirBlockGetNumArguments (MlirBlock block) |
Returns the number of arguments of the block. More... | |
MlirValue | mlirBlockAddArgument (MlirBlock block, MlirType type, MlirLocation loc) |
Appends an argument of the specified type to the block. More... | |
MlirValue | mlirBlockGetArgument (MlirBlock block, intptr_t pos) |
Returns pos -th argument of the block. More... | |
void | mlirBlockPrint (MlirBlock block, MlirStringCallback callback, void *userData) |
Prints a block by sending chunks of the string representation and forwarding userData to callback`. More... | |
bool | mlirValueEqual (MlirValue value1, MlirValue value2) |
Returns 1 if two values are equal, 0 otherwise. More... | |
bool | mlirValueIsABlockArgument (MlirValue value) |
Returns 1 if the value is a block argument, 0 otherwise. More... | |
bool | mlirValueIsAOpResult (MlirValue value) |
Returns 1 if the value is an operation result, 0 otherwise. More... | |
MlirBlock | mlirBlockArgumentGetOwner (MlirValue value) |
Returns the block in which this value is defined as an argument. More... | |
intptr_t | mlirBlockArgumentGetArgNumber (MlirValue value) |
Returns the position of the value in the argument list of its block. More... | |
void | mlirBlockArgumentSetType (MlirValue value, MlirType type) |
Sets the type of the block argument to the given type. More... | |
MlirOperation | mlirOpResultGetOwner (MlirValue value) |
Returns an operation that produced this value as its result. More... | |
intptr_t | mlirOpResultGetResultNumber (MlirValue value) |
Returns the position of the value in the list of results of the operation that produced it. More... | |
MlirType | mlirValueGetType (MlirValue value) |
Returns the type of the value. More... | |
void | mlirValueDump (MlirValue value) |
Prints the value to the standard error stream. More... | |
void | mlirValuePrint (MlirValue value, MlirStringCallback callback, void *userData) |
Prints a value by sending chunks of the string representation and forwarding userData to callback`. More... | |
MlirType | mlirTypeParseGet (MlirContext context, MlirStringRef type) |
Parses a type. The type is owned by the context. More... | |
MlirContext | mlirTypeGetContext (MlirType type) |
Gets the context that a type was created with. More... | |
MlirTypeID | mlirTypeGetTypeID (MlirType type) |
Gets the type ID of the type. More... | |
bool | mlirTypeEqual (MlirType t1, MlirType t2) |
Checks if two types are equal. More... | |
void | mlirTypePrint (MlirType type, MlirStringCallback callback, void *userData) |
Prints a location by sending chunks of the string representation and forwarding userData to callback`. More... | |
void | mlirTypeDump (MlirType type) |
Prints the type to the standard error stream. More... | |
MlirAttribute | mlirAttributeParseGet (MlirContext context, MlirStringRef attr) |
Parses an attribute. The attribute is owned by the context. More... | |
MlirContext | mlirAttributeGetContext (MlirAttribute attribute) |
Gets the context that an attribute was created with. More... | |
MlirType | mlirAttributeGetType (MlirAttribute attribute) |
Gets the type of this attribute. More... | |
MlirTypeID | mlirAttributeGetTypeID (MlirAttribute attr) |
Gets the type id of the attribute. More... | |
bool | mlirAttributeEqual (MlirAttribute a1, MlirAttribute a2) |
Checks if two attributes are equal. More... | |
void | mlirAttributePrint (MlirAttribute attr, MlirStringCallback callback, void *userData) |
Prints an attribute by sending chunks of the string representation and forwarding userData to callback`. More... | |
void | mlirAttributeDump (MlirAttribute attr) |
Prints the attribute to the standard error stream. More... | |
MlirNamedAttribute | mlirNamedAttributeGet (MlirIdentifier name, MlirAttribute attr) |
Associates an attribute with the name. Takes ownership of neither. More... | |
MlirIdentifier | mlirIdentifierGet (MlirContext context, MlirStringRef str) |
Gets an identifier with the given string value. More... | |
MlirContext | mlirIdentifierGetContext (MlirIdentifier ident) |
Returns the context associated with this identifier. More... | |
bool | mlirIdentifierEqual (MlirIdentifier ident, MlirIdentifier other) |
Checks whether two identifiers are the same. More... | |
MlirStringRef | mlirIdentifierStr (MlirIdentifier ident) |
Gets the string value of the identifier. More... | |
MlirStringRef | mlirSymbolTableGetSymbolAttributeName () |
Returns the name of the attribute used to store symbol names compatible with symbol tables. More... | |
MlirStringRef | mlirSymbolTableGetVisibilityAttributeName () |
Returns the name of the attribute used to store symbol visibility. More... | |
MlirSymbolTable | mlirSymbolTableCreate (MlirOperation operation) |
Creates a symbol table for the given operation. More... | |
void | mlirSymbolTableDestroy (MlirSymbolTable symbolTable) |
Destroys the symbol table created with mlirSymbolTableCreate. More... | |
MlirOperation | mlirSymbolTableLookup (MlirSymbolTable symbolTable, MlirStringRef name) |
Looks up a symbol with the given name in the given symbol table and returns the operation that corresponds to the symbol. More... | |
MlirAttribute | mlirSymbolTableInsert (MlirSymbolTable symbolTable, MlirOperation operation) |
Inserts the given operation into the given symbol table. More... | |
void | mlirSymbolTableErase (MlirSymbolTable symbolTable, MlirOperation operation) |
Removes the given operation from the symbol table and erases it. More... | |
MlirLogicalResult | mlirSymbolTableReplaceAllSymbolUses (MlirStringRef oldSymbol, MlirStringRef newSymbol, MlirOperation from) |
Attempt to replace all uses that are nested within the given operation of the given symbol 'oldSymbol' with the provided 'newSymbol'. More... | |
void | mlirSymbolTableWalkSymbolTables (MlirOperation from, bool allSymUsesVisible, void(*callback)(MlirOperation, bool, void *userData), void *userData) |
Walks all symbol table operations nested within, and including, op . More... | |
#define APPEND_ELEMS | ( | type, | |
sizeName, | |||
elemName | |||
) |
Definition at line 253 of file IR.cpp.
Referenced by mlirOperationStateAddAttributes(), mlirOperationStateAddOperands(), mlirOperationStateAddOwnedRegions(), mlirOperationStateAddResults(), and mlirOperationStateAddSuccessors().
|
static |
Definition at line 289 of file IR.cpp.
References mlir::OperationState::attributes, mlir::emitError(), mlir::failure(), mlir::OperationState::getContext(), mlir::NamedAttrList::getDictionary(), mlir::OperationName::getRegisteredInfo(), mlir::OperationState::location, mlir::OperationState::name, mlir::OperationState::operands, mlir::OperationState::regions, mlir::succeeded(), mlir::success(), and mlir::OperationState::types.
Referenced by mlirOperationCreate().
void mlirAttributeDump | ( | MlirAttribute | attr | ) |
Prints the attribute to the standard error stream.
Definition at line 776 of file IR.cpp.
References unwrap().
Referenced by mlirAttributeIsNull(), and mlir::python::PySymbolTable::walkSymbolTables().
bool mlirAttributeEqual | ( | MlirAttribute | a1, |
MlirAttribute | a2 | ||
) |
Checks if two attributes are equal.
Definition at line 766 of file IR.cpp.
References unwrap().
Referenced by mlirAttributeIsNull(), and mlir::python::PyAttribute::operator==().
MlirContext mlirAttributeGetContext | ( | MlirAttribute | attribute | ) |
Gets the context that an attribute was created with.
Definition at line 751 of file IR.cpp.
References unwrap(), and wrap().
Referenced by mlir::python::PyOperation::create(), mlir::python::PyAttribute::createFromCapsule(), mlirTypeIsNull(), mlir::python::PyNamedAttribute::PyNamedAttribute(), and mlir::python::PySymbolTable::walkSymbolTables().
MlirType mlirAttributeGetType | ( | MlirAttribute | attribute | ) |
Gets the type of this attribute.
Definition at line 755 of file IR.cpp.
References mlir::Attribute::dyn_cast(), mlir::Attribute::getContext(), unwrap(), and wrap().
Referenced by mlir::python::PyConcreteAttribute< DerivedTy, BaseTy >::bind(), mlirTypeIsNull(), and mlir::python::PySymbolTable::walkSymbolTables().
MlirTypeID mlirAttributeGetTypeID | ( | MlirAttribute | attr | ) |
Gets the type id of the attribute.
Definition at line 762 of file IR.cpp.
References unwrap(), and wrap().
Referenced by mlirTypeIsNull().
MlirAttribute mlirAttributeParseGet | ( | MlirContext | context, |
MlirStringRef | attr | ||
) |
Parses an attribute. The attribute is owned by the context.
Definition at line 747 of file IR.cpp.
References mlir::parseAttribute(), unwrap(), and wrap().
Referenced by mlirTypeIsNull(), and mlir::python::PySymbolTable::walkSymbolTables().
void mlirAttributePrint | ( | MlirAttribute | attr, |
MlirStringCallback | callback, | ||
void * | userData | ||
) |
Prints an attribute 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 770 of file IR.cpp.
References mlir::Diagnostic::print(), and unwrap().
Referenced by mlirAttributeIsNull(), and mlir::python::PySymbolTable::walkSymbolTables().
MlirValue mlirBlockAddArgument | ( | MlirBlock | block, |
MlirType | type, | ||
MlirLocation | loc | ||
) |
Appends an argument of the specified type to the block.
Returns the newly added argument.
Definition at line 651 of file IR.cpp.
References unwrap(), and wrap().
Referenced by mlirBlockIsNull().
void mlirBlockAppendOwnedOperation | ( | MlirBlock | block, |
MlirOperation | operation | ||
) |
Takes an operation owned by the caller and appends it to the block.
Definition at line 603 of file IR.cpp.
References unwrap().
Referenced by mlirBlockInsertOwnedOperationBefore(), mlirBlockIsNull(), and mlir::python::PySymbolTable::walkSymbolTables().
intptr_t mlirBlockArgumentGetArgNumber | ( | MlirValue | value | ) |
Returns the position of the value in the argument list of its block.
Definition at line 686 of file IR.cpp.
References unwrap().
Referenced by mlirValueIsNull(), and mlir::python::PySymbolTable::walkSymbolTables().
MlirBlock mlirBlockArgumentGetOwner | ( | MlirValue | value | ) |
Returns the block in which this value is defined as an argument.
Asserts if the value is not a block argument.
Definition at line 682 of file IR.cpp.
References unwrap(), and wrap().
Referenced by mlir::python::PyValue::createFromCapsule(), mlirValueIsNull(), and mlir::python::PySymbolTable::walkSymbolTables().
void mlirBlockArgumentSetType | ( | MlirValue | value, |
MlirType | type | ||
) |
Sets the type of the block argument to the given type.
Definition at line 691 of file IR.cpp.
References unwrap().
Referenced by mlirValueIsNull(), and mlir::python::PySymbolTable::walkSymbolTables().
MlirBlock mlirBlockCreate | ( | intptr_t | nArgs, |
MlirType const * | args, | ||
MlirLocation const * | locs | ||
) |
Creates a new empty block with the given argument types and transfers ownership to the caller.
Definition at line 562 of file IR.cpp.
References mlir::Block::addArgument(), unwrap(), and wrap().
Referenced by PyGlobalDebugFlag::bind(), mlirRegionIsNull(), and mlir::python::PySymbolTable::walkSymbolTables().
void mlirBlockDestroy | ( | MlirBlock | block | ) |
Takes a block owned by the caller and destroys it.
Definition at line 640 of file IR.cpp.
References unwrap().
Referenced by mlirRegionIsNull().
void mlirBlockDetach | ( | MlirBlock | block | ) |
Detach a block from the owning region and assume ownership.
Definition at line 642 of file IR.cpp.
References mlir::Region::getBlocks(), mlir::Block::getParent(), and unwrap().
Referenced by mlirRegionIsNull(), and mlir::python::PySymbolTable::walkSymbolTables().
bool mlirBlockEqual | ( | MlirBlock | block, |
MlirBlock | other | ||
) |
Checks whether two blocks handles point to the same block.
This does not perform deep comparison.
Definition at line 570 of file IR.cpp.
References unwrap().
Referenced by mlirBlockIsNull().
MlirValue mlirBlockGetArgument | ( | MlirBlock | block, |
intptr_t | pos | ||
) |
Returns pos
-th argument of the block.
Definition at line 656 of file IR.cpp.
References unwrap(), and wrap().
Referenced by mlirBlockIsNull(), and mlir::python::PySymbolTable::walkSymbolTables().
MlirOperation mlirBlockGetFirstOperation | ( | MlirBlock | block | ) |
Returns the first operation in the block.
Definition at line 586 of file IR.cpp.
References mlir::Block::empty(), mlir::Block::front(), unwrap(), and wrap().
Referenced by mlir::python::PyInsertionPoint::atBlockBegin(), PyGlobalDebugFlag::bind(), mlirBlockIsNull(), and mlir::python::PySymbolTable::walkSymbolTables().
MlirBlock mlirBlockGetNextInRegion | ( | MlirBlock | block | ) |
Returns the block immediately following the given block in its parent region.
Definition at line 582 of file IR.cpp.
References unwrap(), and wrap().
Referenced by PyGlobalDebugFlag::bind(), and mlirBlockIsNull().
intptr_t mlirBlockGetNumArguments | ( | MlirBlock | block | ) |
Returns the number of arguments of the block.
Definition at line 647 of file IR.cpp.
References unwrap().
Referenced by mlirBlockIsNull(), and mlir::python::PySymbolTable::walkSymbolTables().
MlirOperation mlirBlockGetParentOperation | ( | MlirBlock | block | ) |
Returns the closest surrounding operation that contains this block.
Definition at line 574 of file IR.cpp.
References unwrap(), and wrap().
Referenced by mlir::python::PyValue::createFromCapsule(), mlirBlockIsNull(), and mlir::python::PySymbolTable::walkSymbolTables().
MlirRegion mlirBlockGetParentRegion | ( | MlirBlock | block | ) |
Returns the region that contains this block.
Definition at line 578 of file IR.cpp.
References unwrap(), and wrap().
Referenced by mlirBlockIsNull(), and mlir::python::PySymbolTable::walkSymbolTables().
MlirOperation mlirBlockGetTerminator | ( | MlirBlock | block | ) |
Returns the terminator operation in the block or null if no terminator.
Definition at line 593 of file IR.cpp.
References mlir::Block::back(), mlir::Block::empty(), mlir::Operation::hasTrait(), unwrap(), and wrap().
Referenced by mlir::python::PyInsertionPoint::atBlockTerminator(), mlir::python::PyInsertionPoint::insert(), and mlirBlockIsNull().
void mlirBlockInsertOwnedOperation | ( | MlirBlock | block, |
intptr_t | pos, | ||
MlirOperation | operation | ||
) |
Takes an operation owned by the caller and inserts it as pos
to the block.
This is an expensive operation that scans the block linearly, prefer insertBefore/After instead.
Definition at line 607 of file IR.cpp.
References unwrap().
Referenced by mlirBlockIsNull().
void mlirBlockInsertOwnedOperationAfter | ( | MlirBlock | block, |
MlirOperation | reference, | ||
MlirOperation | operation | ||
) |
Takes an operation owned by the caller and inserts it after the (non-owned) reference operation in the given block.
If the reference is null, prepends the operation. Otherwise, the reference must belong to the block.
Definition at line 613 of file IR.cpp.
References mlir::Block::begin(), mlir::Block::getOperations(), mlirOperationIsNull(), and unwrap().
Referenced by mlirBlockIsNull().
void mlirBlockInsertOwnedOperationBefore | ( | MlirBlock | block, |
MlirOperation | reference, | ||
MlirOperation | operation | ||
) |
Takes an operation owned by the caller and inserts it before the (non-owned) reference operation in the given block.
If the reference is null, appends the operation. Otherwise, the reference must belong to the block.
Definition at line 628 of file IR.cpp.
References mlirBlockAppendOwnedOperation(), mlirOperationIsNull(), and unwrap().
Referenced by mlir::python::PyInsertionPoint::insert(), and mlirBlockIsNull().
void mlirBlockPrint | ( | MlirBlock | block, |
MlirStringCallback | callback, | ||
void * | userData | ||
) |
Prints a block 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 660 of file IR.cpp.
References mlir::Diagnostic::print(), and unwrap().
Referenced by mlirBlockIsNull(), and mlir::python::PySymbolTable::walkSymbolTables().
void mlirContextAppendDialectRegistry | ( | MlirContext | ctx, |
MlirDialectRegistry | registry | ||
) |
Append the contents of the given dialect registry to the registry associated with the context.
Definition at line 57 of file IR.cpp.
References unwrap().
Referenced by mlirContextIsNull(), and mlir::python::PySymbolTable::walkSymbolTables().
MlirContext mlirContextCreate | ( | ) |
Creates an MLIR context and transfers its ownership to the caller.
Definition at line 35 of file IR.cpp.
References wrap().
Referenced by mlir::python::PyMlirContext::createNewContextForInit().
void mlirContextDestroy | ( | MlirContext | context | ) |
Takes an MLIR context owned by the caller and destroys it.
Definition at line 44 of file IR.cpp.
References unwrap().
Referenced by mlirContextIsNull(), and mlir::python::PyMlirContext::~PyMlirContext().
void mlirContextEnableMultithreading | ( | MlirContext | context, |
bool | enable | ||
) |
Set threading mode (must be set to false to mlir-print-ir-after-all).
Definition at line 77 of file IR.cpp.
References unwrap().
Referenced by mlirContextIsNull(), and mlir::python::PySymbolTable::walkSymbolTables().
bool mlirContextEqual | ( | MlirContext | ctx1, |
MlirContext | ctx2 | ||
) |
bool mlirContextGetAllowUnregisteredDialects | ( | MlirContext | context | ) |
Returns whether the context allows unregistered dialects.
Definition at line 50 of file IR.cpp.
References unwrap().
Referenced by mlirContextIsNull(), and mlir::python::PySymbolTable::walkSymbolTables().
intptr_t mlirContextGetNumLoadedDialects | ( | MlirContext | context | ) |
Returns the number of dialects loaded by the context.
Definition at line 64 of file IR.cpp.
References unwrap().
Referenced by mlirContextIsNull().
intptr_t mlirContextGetNumRegisteredDialects | ( | MlirContext | context | ) |
Returns the number of dialects registered with the given context.
A registered dialect will be loaded if needed by the parser.
Definition at line 53 of file IR.cpp.
References unwrap().
Referenced by mlirContextIsNull().
MlirDialect mlirContextGetOrLoadDialect | ( | MlirContext | context, |
MlirStringRef | name | ||
) |
Gets the dialect instance owned by the given context using the dialect namespace to identify it, loads (i.e., constructs the instance of) the dialect if necessary.
If the dialect is not registered with the context, returns null. Use mlirContextLoad<Name>Dialect to load an unregistered dialect.
Definition at line 68 of file IR.cpp.
References unwrap(), and wrap().
Referenced by mlir::python::PyDialects::getDialectForKey(), mlirContextIsNull(), and mlir::python::PySymbolTable::walkSymbolTables().
bool mlirContextIsRegisteredOperation | ( | MlirContext | context, |
MlirStringRef | name | ||
) |
Returns whether the given fully-qualified operation (i.e.
'dialect.operation') is registered with the context. This will return true if the dialect is loaded and the operation is registered within the dialect.
Definition at line 73 of file IR.cpp.
References unwrap().
Referenced by mlirContextIsNull(), and mlir::python::PySymbolTable::walkSymbolTables().
void mlirContextLoadAllAvailableDialects | ( | MlirContext | context | ) |
Eagerly loads all available dialects registered with a context, making them available for use for IR construction.
Definition at line 81 of file IR.cpp.
References unwrap().
Referenced by mlirContextIsNull(), and mlir::python::PySymbolTable::walkSymbolTables().
void mlirContextSetAllowUnregisteredDialects | ( | MlirContext | context, |
bool | allow | ||
) |
Sets whether unregistered dialects are allowed in this context.
Definition at line 46 of file IR.cpp.
References unwrap().
Referenced by mlirContextIsNull(), and mlir::python::PySymbolTable::walkSymbolTables().
bool mlirDialectEqual | ( | MlirDialect | dialect1, |
MlirDialect | dialect2 | ||
) |
Checks if two dialects that belong to the same context are equal.
Dialects from different contexts will not compare equal.
Definition at line 93 of file IR.cpp.
References unwrap().
Referenced by mlirDialectIsNull().
MlirContext mlirDialectGetContext | ( | MlirDialect | dialect | ) |
Returns the context that owns the dialect.
Definition at line 89 of file IR.cpp.
References unwrap(), and wrap().
Referenced by mlirContextIsNull().
MlirStringRef mlirDialectGetNamespace | ( | MlirDialect | dialect | ) |
Returns the namespace of the given dialect.
Definition at line 97 of file IR.cpp.
References unwrap(), and wrap().
Referenced by mlirDialectIsNull(), and mlir::python::PySymbolTable::walkSymbolTables().
MlirDialectRegistry mlirDialectRegistryCreate | ( | ) |
void mlirDialectRegistryDestroy | ( | MlirDialectRegistry | registry | ) |
Takes a dialect registry owned by the caller and destroys it.
Definition at line 109 of file IR.cpp.
References unwrap().
Referenced by mlirDialectRegistryIsNull(), and mlir::python::PyDialectRegistry::~PyDialectRegistry().
bool mlirIdentifierEqual | ( | MlirIdentifier | ident, |
MlirIdentifier | other | ||
) |
Checks whether two identifiers are the same.
Definition at line 795 of file IR.cpp.
References unwrap().
Referenced by mlirAttributeIsNull().
MlirIdentifier mlirIdentifierGet | ( | MlirContext | context, |
MlirStringRef | str | ||
) |
Gets an identifier with the given string value.
Definition at line 787 of file IR.cpp.
References unwrap(), and wrap().
Referenced by mlir::python::PyOperation::create(), mlirAttributeIsNull(), and mlir::python::PyNamedAttribute::PyNamedAttribute().
MlirContext mlirIdentifierGetContext | ( | MlirIdentifier | ident | ) |
Returns the context associated with this identifier.
Definition at line 791 of file IR.cpp.
References unwrap(), and wrap().
Referenced by mlirAttributeIsNull().
MlirStringRef mlirIdentifierStr | ( | MlirIdentifier | ident | ) |
Gets the string value of the identifier.
Definition at line 799 of file IR.cpp.
References unwrap(), and wrap().
Referenced by mlir::python::PyOperation::createOpView(), mlirAttributeIsNull(), mlir::python::PyConcreteOpInterface< PyInferTypeOpInterface >::PyConcreteOpInterface(), and mlir::python::PySymbolTable::walkSymbolTables().
MlirLocation mlirLocationCallSiteGet | ( | MlirLocation | callee, |
MlirLocation | caller | ||
) |
Creates a call site location with a callee and a caller.
Definition at line 154 of file IR.cpp.
References unwrap(), and wrap().
Referenced by mlirDialectRegistryIsNull(), and mlir::python::PySymbolTable::walkSymbolTables().
bool mlirLocationEqual | ( | MlirLocation | l1, |
MlirLocation | l2 | ||
) |
Checks if two locations are equal.
Definition at line 179 of file IR.cpp.
References unwrap().
Referenced by mlirLocationIsNull(), and mlir::python::PySymbolTable::walkSymbolTables().
MlirLocation mlirLocationFileLineColGet | ( | MlirContext | context, |
MlirStringRef | filename, | ||
unsigned | line, | ||
unsigned | col | ||
) |
Creates an File/Line/Column location owned by the given context.
Definition at line 147 of file IR.cpp.
References unwrap(), and wrap().
Referenced by mlirDialectRegistryIsNull(), and mlir::python::PySymbolTable::walkSymbolTables().
MlirLocation mlirLocationFusedGet | ( | MlirContext | ctx, |
intptr_t | nLocations, | ||
MlirLocation const * | locations, | ||
MlirAttribute | metadata | ||
) |
Creates a fused location with an array of locations and metadata.
Definition at line 158 of file IR.cpp.
References unwrap(), unwrapList(), and wrap().
Referenced by mlirDialectRegistryIsNull(), and mlir::python::PySymbolTable::walkSymbolTables().
MlirContext mlirLocationGetContext | ( | MlirLocation | location | ) |
Gets the context that a location was created with.
Definition at line 183 of file IR.cpp.
References unwrap(), and wrap().
Referenced by mlir::python::PyLocation::createFromCapsule(), mlir::python::PyDiagnostic::getLocation(), and mlirDialectRegistryIsNull().
MlirLocation mlirLocationNameGet | ( | MlirContext | context, |
MlirStringRef | name, | ||
MlirLocation | childLoc | ||
) |
Creates a name location owned by the given context.
Providing null location for childLoc is allowed and if childLoc is null location, then the behavior is the same as having unknown child location.
Definition at line 166 of file IR.cpp.
References mlirLocationIsNull(), unwrap(), and wrap().
Referenced by mlirDialectRegistryIsNull(), and mlir::python::PySymbolTable::walkSymbolTables().
void mlirLocationPrint | ( | MlirLocation | location, |
MlirStringCallback | callback, | ||
void * | userData | ||
) |
Prints a location 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 187 of file IR.cpp.
References mlir::Diagnostic::print(), and unwrap().
Referenced by mlirLocationIsNull(), and mlir::python::PySymbolTable::walkSymbolTables().
MlirLocation mlirLocationUnknownGet | ( | MlirContext | context | ) |
Creates a location with unknown position owned by the given context.
Definition at line 175 of file IR.cpp.
References unwrap(), and wrap().
Referenced by PyGlobalDebugFlag::bind(), mlirDialectRegistryIsNull(), and mlir::python::PySymbolTable::walkSymbolTables().
MlirModule mlirModuleCreateEmpty | ( | MlirLocation | location | ) |
Creates a new, empty module and transfers ownership to the caller.
Definition at line 197 of file IR.cpp.
References unwrap(), and wrap().
Referenced by mlirLocationIsNull(), and mlir::python::PySymbolTable::walkSymbolTables().
MlirModule mlirModuleCreateParse | ( | MlirContext | context, |
MlirStringRef | module | ||
) |
Parses a module from the string and transfers ownership to the caller.
Definition at line 201 of file IR.cpp.
References mlir::OwningOpRef< OpTy >::release(), and unwrap().
Referenced by mlirLocationIsNull(), and mlir::python::PySymbolTable::walkSymbolTables().
void mlirModuleDestroy | ( | MlirModule | module | ) |
Takes a module owned by the caller and deletes it.
Definition at line 217 of file IR.cpp.
References unwrap().
Referenced by mlirModuleIsNull(), and mlir::python::PyModule::~PyModule().
MlirModule mlirModuleFromOperation | ( | MlirOperation | op | ) |
Views the generic operation as a module.
The returned module is null when the input operation was not a ModuleOp.
Definition at line 227 of file IR.cpp.
References unwrap(), and wrap().
Referenced by mlirModuleIsNull().
MlirBlock mlirModuleGetBody | ( | MlirModule | module | ) |
Gets the body of the module, i.e. the only block it contains.
Definition at line 213 of file IR.cpp.
References unwrap(), and wrap().
Referenced by mlirLocationIsNull(), and mlir::python::PySymbolTable::walkSymbolTables().
MlirContext mlirModuleGetContext | ( | MlirModule | module | ) |
Gets the context that a module was created with.
Definition at line 209 of file IR.cpp.
References unwrap(), and wrap().
Referenced by mlir::python::PyModule::forModule(), and mlirLocationIsNull().
MlirOperation mlirModuleGetOperation | ( | MlirModule | module | ) |
Views the module as a generic operation.
Definition at line 223 of file IR.cpp.
References unwrap(), and wrap().
Referenced by mlirModuleIsNull(), and mlir::python::PySymbolTable::walkSymbolTables().
MlirNamedAttribute mlirNamedAttributeGet | ( | MlirIdentifier | name, |
MlirAttribute | attr | ||
) |
Associates an attribute with the name. Takes ownership of neither.
Definition at line 778 of file IR.cpp.
Referenced by mlir::python::PyOperation::create(), mlirAttributeIsNull(), and mlir::python::PyNamedAttribute::PyNamedAttribute().
MlirOperation mlirOperationClone | ( | MlirOperation | op | ) |
Creates a deep copy of an operation.
The operation is not inserted and ownership is transferred to the caller.
Definition at line 358 of file IR.cpp.
References unwrap(), and wrap().
Referenced by mlir::python::PyOperation::clone().
MlirOperation mlirOperationCreate | ( | MlirOperationState * | state | ) |
Creates an operation and transfers ownership to the caller.
Note that caller owned child objects are transferred in this call and must not be further used. Particularly, this applies to any regions added to the state (the implementation may invalidate any such pointers).
This call can fail under the following conditions, in which case, it will return a null operation and emit diagnostics:
Definition at line 320 of file IR.cpp.
References mlir::OperationState::addAttribute(), mlir::OperationState::addOperands(), mlir::OperationState::addRegion(), mlir::OperationState::addSuccessors(), mlir::OperationState::addTypes(), MlirNamedAttribute::attribute, MlirOperationState::attributes, mlir::OperationState::attributes, mlir::Operation::create(), MlirOperationState::enableResultTypeInference, mlir::failed(), inferOperationTypes(), MlirOperationState::location, MlirNamedAttribute::name, MlirOperationState::name, MlirOperationState::nAttributes, MlirOperationState::nOperands, MlirOperationState::nRegions, MlirOperationState::nResults, MlirOperationState::nSuccessors, MlirOperationState::operands, MlirOperationState::regions, mlir::NamedAttrList::reserve(), MlirOperationState::results, MlirOperationState::successors, mlir::OperationState::types, unwrap(), unwrapList(), and wrap().
Referenced by mlir::python::PyOperation::create().
void mlirOperationDestroy | ( | MlirOperation | op | ) |
Takes an operation owned by the caller and destroys it.
Definition at line 362 of file IR.cpp.
References unwrap().
Referenced by mlir::python::PyOperation::erase(), and mlir::python::PyOperation::~PyOperation().
void mlirOperationDump | ( | MlirOperation | op | ) |
Prints an operation to stderr.
Definition at line 488 of file IR.cpp.
References unwrap().
Referenced by mlirOperationIsNull(), and mlir::python::PySymbolTable::walkSymbolTables().
bool mlirOperationEqual | ( | MlirOperation | op, |
MlirOperation | other | ||
) |
Checks whether two operation handles point to the same operation.
This does not perform deep comparison.
Definition at line 366 of file IR.cpp.
References unwrap().
Referenced by mlirOperationIsNull(), and mlir::python::PySymbolTable::walkSymbolTables().
MlirNamedAttribute mlirOperationGetAttribute | ( | MlirOperation | op, |
intptr_t | pos | ||
) |
Return pos
-th attribute of the operation.
Definition at line 457 of file IR.cpp.
References mlir::NamedAttribute::getName(), mlir::NamedAttribute::getValue(), unwrap(), and wrap().
Referenced by mlirOperationIsNull(), and mlir::python::PySymbolTable::walkSymbolTables().
MlirAttribute mlirOperationGetAttributeByName | ( | MlirOperation | op, |
MlirStringRef | name | ||
) |
Returns an attribute attached to the operation given its name.
Definition at line 462 of file IR.cpp.
References unwrap(), and wrap().
Referenced by mlir::python::PySymbolTable::getSymbolName(), mlir::python::PySymbolTable::getVisibility(), mlir::python::PySymbolTable::insert(), mlirOperationIsNull(), mlir::python::PySymbolTable::setSymbolName(), mlir::python::PySymbolTable::setVisibility(), and mlir::python::PySymbolTable::walkSymbolTables().
MlirBlock mlirOperationGetBlock | ( | MlirOperation | op | ) |
Gets the block that owns this operation, returning null if the operation is not owned.
Definition at line 388 of file IR.cpp.
References unwrap(), and wrap().
Referenced by mlir::python::PyOperation::getBlock(), and mlirOperationIsNull().
MlirContext mlirOperationGetContext | ( | MlirOperation | op | ) |
Gets the context this operation is associated with.
Definition at line 370 of file IR.cpp.
References unwrap(), and wrap().
Referenced by mlir::python::PyOperation::createFromCapsule(), mlir::python::PyValue::createFromCapsule(), and mlirOperationIsNull().
MlirRegion mlirOperationGetFirstRegion | ( | MlirOperation | op | ) |
Returns first region attached to the operation.
Definition at line 404 of file IR.cpp.
References mlir::Operation::getNumRegions(), mlir::Operation::getRegion(), unwrap(), and wrap().
Referenced by mlirRegionIsNull().
MlirLocation mlirOperationGetLocation | ( | MlirOperation | op | ) |
Gets the location of the operation.
Definition at line 374 of file IR.cpp.
References unwrap(), and wrap().
Referenced by mlirOperationIsNull(), and mlir::python::PySymbolTable::walkSymbolTables().
MlirIdentifier mlirOperationGetName | ( | MlirOperation | op | ) |
Gets the name of the operation as an identifier.
Definition at line 384 of file IR.cpp.
References unwrap(), and wrap().
Referenced by mlir::python::PyOperation::createOpView(), mlirOperationIsNull(), mlir::python::PyConcreteOpInterface< PyInferTypeOpInterface >::PyConcreteOpInterface(), and mlir::python::PySymbolTable::walkSymbolTables().
MlirOperation mlirOperationGetNextInBlock | ( | MlirOperation | op | ) |
Returns an operation immediately following the given operation it its enclosing block.
Definition at line 420 of file IR.cpp.
References unwrap(), and wrap().
Referenced by PyGlobalDebugFlag::bind(), and mlirOperationIsNull().
intptr_t mlirOperationGetNumAttributes | ( | MlirOperation | op | ) |
Returns the number of attributes attached to the operation.
Definition at line 453 of file IR.cpp.
References unwrap().
Referenced by mlirOperationIsNull(), and mlir::python::PySymbolTable::walkSymbolTables().
intptr_t mlirOperationGetNumOperands | ( | MlirOperation | op | ) |
Returns the number of operands of the operation.
Definition at line 424 of file IR.cpp.
References unwrap().
Referenced by mlirOperationIsNull(), and mlir::python::PySymbolTable::walkSymbolTables().
intptr_t mlirOperationGetNumRegions | ( | MlirOperation | op | ) |
Returns the number of regions attached to the given operation.
Definition at line 396 of file IR.cpp.
References unwrap().
Referenced by PyGlobalDebugFlag::bind(), and mlirOperationIsNull().
intptr_t mlirOperationGetNumResults | ( | MlirOperation | op | ) |
Returns the number of results of the operation.
Definition at line 437 of file IR.cpp.
References unwrap().
Referenced by mlirOperationIsNull(), and mlir::python::PySymbolTable::walkSymbolTables().
intptr_t mlirOperationGetNumSuccessors | ( | MlirOperation | op | ) |
Returns the number of successor blocks of the operation.
Definition at line 445 of file IR.cpp.
References unwrap().
Referenced by mlirOperationIsNull().
MlirValue mlirOperationGetOperand | ( | MlirOperation | op, |
intptr_t | pos | ||
) |
Returns pos
-th operand of the operation.
Definition at line 428 of file IR.cpp.
References unwrap(), and wrap().
Referenced by mlirOperationIsNull(), and mlir::python::PySymbolTable::walkSymbolTables().
MlirOperation mlirOperationGetParentOperation | ( | MlirOperation | op | ) |
Gets the operation that owns this operation, returning null if the operation is not owned.
Definition at line 392 of file IR.cpp.
References unwrap(), and wrap().
Referenced by mlir::python::PyOperation::getParentOperation(), and mlirOperationIsNull().
MlirRegion mlirOperationGetRegion | ( | MlirOperation | op, |
intptr_t | pos | ||
) |
Returns pos
-th region attached to the operation.
Definition at line 400 of file IR.cpp.
References unwrap(), and wrap().
Referenced by PyGlobalDebugFlag::bind(), and mlirOperationIsNull().
MlirValue mlirOperationGetResult | ( | MlirOperation | op, |
intptr_t | pos | ||
) |
Returns pos
-th result of the operation.
Definition at line 441 of file IR.cpp.
References unwrap(), and wrap().
Referenced by mlirOperationIsNull(), and mlir::python::PySymbolTable::walkSymbolTables().
MlirBlock mlirOperationGetSuccessor | ( | MlirOperation | op, |
intptr_t | pos | ||
) |
Returns pos
-th successor of the operation.
Definition at line 449 of file IR.cpp.
References unwrap(), and wrap().
Referenced by mlirOperationIsNull().
MlirTypeID mlirOperationGetTypeID | ( | MlirOperation | op | ) |
Gets the type id of the operation.
Returns null if the operation does not have a registered operation description.
Definition at line 378 of file IR.cpp.
References unwrap(), and wrap().
Referenced by mlirOperationIsNull().
void mlirOperationMoveAfter | ( | MlirOperation | op, |
MlirOperation | other | ||
) |
Moves the given operation immediately after the other operation in its parent block.
The given operation may be owned by the caller or by its current block. The other operation must belong to a block. In any case, the ownership is transferred to the block of the other operation.
Definition at line 494 of file IR.cpp.
References unwrap().
Referenced by mlirOperationIsNull(), and mlir::python::PyOperationBase::moveAfter().
void mlirOperationMoveBefore | ( | MlirOperation | op, |
MlirOperation | other | ||
) |
Moves the given operation immediately before the other operation in its parent block.
The given operation may be owner by the caller or by its current block. The other operation must belong to a block. In any case, the ownership is transferred to the block of the other operation.
Definition at line 498 of file IR.cpp.
References unwrap().
Referenced by mlirOperationIsNull(), and mlir::python::PyOperationBase::moveBefore().
void mlirOperationPrint | ( | MlirOperation | op, |
MlirStringCallback | callback, | ||
void * | userData | ||
) |
Prints an operation 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 476 of file IR.cpp.
References mlir::Diagnostic::print(), and unwrap().
Referenced by mlirOperationIsNull().
void mlirOperationPrintWithFlags | ( | MlirOperation | op, |
MlirOpPrintingFlags | flags, | ||
MlirStringCallback | callback, | ||
void * | userData | ||
) |
Same as mlirOperationPrint but accepts flags controlling the printing behavior.
Definition at line 482 of file IR.cpp.
References mlir::Diagnostic::print(), and unwrap().
Referenced by mlirOperationIsNull(), and mlir::python::PyOperationBase::print().
bool mlirOperationRemoveAttributeByName | ( | MlirOperation | op, |
MlirStringRef | name | ||
) |
Removes an attribute by name.
Returns false if the attribute was not found and true if removed.
Definition at line 472 of file IR.cpp.
References unwrap().
Referenced by mlirOperationIsNull(), and mlir::python::PySymbolTable::walkSymbolTables().
void mlirOperationRemoveFromParent | ( | MlirOperation | op | ) |
Removes the given operation from its parent block.
The operation is not destroyed. The ownership of the operation is transferred to the caller.
Definition at line 364 of file IR.cpp.
References unwrap().
Referenced by mlir::python::PyOperation::detachFromParent().
void mlirOperationSetAttributeByName | ( | MlirOperation | op, |
MlirStringRef | name, | ||
MlirAttribute | attr | ||
) |
Sets an attribute by name, replacing the existing if it exists or adding a new one otherwise.
Definition at line 467 of file IR.cpp.
References unwrap().
Referenced by mlirOperationIsNull(), mlir::python::PySymbolTable::setSymbolName(), mlir::python::PySymbolTable::setVisibility(), and mlir::python::PySymbolTable::walkSymbolTables().
void mlirOperationSetOperand | ( | MlirOperation | op, |
intptr_t | pos, | ||
MlirValue | newValue | ||
) |
Sets the pos
-th operand of the operation.
Definition at line 432 of file IR.cpp.
References unwrap().
Referenced by mlirOperationIsNull(), and mlir::python::PySymbolTable::walkSymbolTables().
void mlirOperationStateAddAttributes | ( | MlirOperationState * | state, |
intptr_t | n, | ||
MlirNamedAttribute const * | attributes | ||
) |
Definition at line 276 of file IR.cpp.
References APPEND_ELEMS.
Referenced by mlir::python::PyOperation::create().
void mlirOperationStateAddOperands | ( | MlirOperationState * | state, |
intptr_t | n, | ||
MlirValue const * | operands | ||
) |
Definition at line 264 of file IR.cpp.
References APPEND_ELEMS.
Referenced by mlir::python::PyOperation::create().
void mlirOperationStateAddOwnedRegions | ( | MlirOperationState * | state, |
intptr_t | n, | ||
MlirRegion const * | regions | ||
) |
Definition at line 268 of file IR.cpp.
References APPEND_ELEMS.
Referenced by mlir::python::PyOperation::create().
void mlirOperationStateAddResults | ( | MlirOperationState * | state, |
intptr_t | n, | ||
MlirType const * | results | ||
) |
Adds a list of components to the operation state.
Definition at line 259 of file IR.cpp.
References APPEND_ELEMS.
Referenced by mlir::python::PyOperation::create().
void mlirOperationStateAddSuccessors | ( | MlirOperationState * | state, |
intptr_t | n, | ||
MlirBlock const * | successors | ||
) |
Definition at line 272 of file IR.cpp.
References APPEND_ELEMS.
Referenced by mlir::python::PyOperation::create().
void mlirOperationStateEnableResultTypeInference | ( | MlirOperationState * | state | ) |
Enables result type inference for the operation under construction.
If enabled, then the caller must not have called mlirOperationStateAddResults(). Note that if enabled, the mlirOperationCreate() call is failable: it will return a null operation on inference failure and will emit diagnostics.
Definition at line 281 of file IR.cpp.
References MlirOperationState::enableResultTypeInference.
MlirOperationState mlirOperationStateGet | ( | MlirStringRef | name, |
MlirLocation | loc | ||
) |
Constructs an operation state from a name and a location.
Definition at line 235 of file IR.cpp.
References MlirOperationState::attributes, MlirOperationState::enableResultTypeInference, MlirOperationState::location, MlirOperationState::name, MlirOperationState::nAttributes, MlirOperationState::nOperands, MlirOperationState::nRegions, MlirOperationState::nResults, MlirOperationState::nSuccessors, MlirOperationState::operands, MlirOperationState::regions, MlirOperationState::results, and MlirOperationState::successors.
Referenced by mlir::python::PyOperation::create().
bool mlirOperationVerify | ( | MlirOperation | op | ) |
Verify the operation and return true if it passes, false if it fails.
Definition at line 490 of file IR.cpp.
References mlir::succeeded(), unwrap(), and mlir::verify().
Referenced by mlirOperationIsNull(), mlir::python::PyOperationBase::print(), and mlir::python::PySymbolTable::walkSymbolTables().
MlirOpPrintingFlags mlirOpPrintingFlagsCreate | ( | ) |
Creates new printing flags with defaults, intended for customization.
Must be freed with a call to mlirOpPrintingFlagsDestroy().
Definition at line 117 of file IR.cpp.
References wrap().
Referenced by mlir::python::PyOperationBase::print().
void mlirOpPrintingFlagsDestroy | ( | MlirOpPrintingFlags | flags | ) |
Destroys printing flags created with mlirOpPrintingFlagsCreate.
Definition at line 121 of file IR.cpp.
References unwrap().
Referenced by mlir::python::PyOperationBase::print().
void mlirOpPrintingFlagsElideLargeElementsAttrs | ( | MlirOpPrintingFlags | flags, |
intptr_t | largeElementLimit | ||
) |
Enables the elision of large elements attributes by printing a lexically valid but otherwise meaningless form instead of the element data.
The largeElementLimit
is used to configure what is considered to be a "large" ElementsAttr by providing an upper limit to the number of elements.
Definition at line 125 of file IR.cpp.
References unwrap().
Referenced by mlir::python::PyOperationBase::print().
void mlirOpPrintingFlagsEnableDebugInfo | ( | MlirOpPrintingFlags | flags, |
bool | prettyForm | ||
) |
Enable printing of debug information.
If 'prettyForm' is set to true, debug information is printed in a more readable 'pretty' form. Note: The IR generated with 'prettyForm' is not parsable.
Definition at line 130 of file IR.cpp.
References unwrap().
Referenced by mlir::python::PyOperationBase::print().
void mlirOpPrintingFlagsPrintGenericOpForm | ( | MlirOpPrintingFlags | flags | ) |
Always print operations in the generic form.
Definition at line 135 of file IR.cpp.
References unwrap().
Referenced by mlir::python::PyOperationBase::print().
void mlirOpPrintingFlagsUseLocalScope | ( | MlirOpPrintingFlags | flags | ) |
Use local scope when printing the operation.
This allows for using the printer in a more localized and thread-safe setting, but may not necessarily be identical to what the IR will look like when dumping the full module.
Definition at line 139 of file IR.cpp.
References unwrap().
Referenced by mlir::python::PyOperationBase::print().
MlirOperation mlirOpResultGetOwner | ( | MlirValue | value | ) |
Returns an operation that produced this value as its result.
Asserts if the value is not an op result.
Definition at line 695 of file IR.cpp.
References unwrap(), and wrap().
Referenced by mlir::python::PyValue::createFromCapsule(), mlirValueIsNull(), and mlir::python::PySymbolTable::walkSymbolTables().
intptr_t mlirOpResultGetResultNumber | ( | MlirValue | value | ) |
Returns the position of the value in the list of results of the operation that produced it.
Definition at line 699 of file IR.cpp.
References unwrap().
Referenced by mlirValueIsNull(), and mlir::python::PySymbolTable::walkSymbolTables().
void mlirRegionAppendOwnedBlock | ( | MlirRegion | region, |
MlirBlock | block | ||
) |
Takes a block owned by the caller and appends it to the given region.
Definition at line 519 of file IR.cpp.
References unwrap().
Referenced by PyGlobalDebugFlag::bind(), mlirRegionInsertOwnedBlockBefore(), mlirRegionIsNull(), and mlir::python::PySymbolTable::walkSymbolTables().
MlirRegion mlirRegionCreate | ( | ) |
Creates a new empty region and transfers ownership to the caller.
Definition at line 506 of file IR.cpp.
References wrap().
Referenced by mlir::python::PyOperation::create(), and mlirOperationIsNull().
void mlirRegionDestroy | ( | MlirRegion | region | ) |
Takes a region owned by the caller and destroys it.
Definition at line 554 of file IR.cpp.
Referenced by mlirOperationIsNull().
bool mlirRegionEqual | ( | MlirRegion | region, |
MlirRegion | other | ||
) |
Checks whether two region handles point to the same region.
This does not perform deep comparison.
Definition at line 508 of file IR.cpp.
References unwrap().
Referenced by mlirRegionIsNull().
MlirBlock mlirRegionGetFirstBlock | ( | MlirRegion | region | ) |
Gets the first block in the region.
Definition at line 512 of file IR.cpp.
References mlir::Region::empty(), mlir::Region::front(), unwrap(), and wrap().
Referenced by PyGlobalDebugFlag::bind(), mlirRegionIsNull(), and mlir::python::PySymbolTable::walkSymbolTables().
MlirRegion mlirRegionGetNextInOperation | ( | MlirRegion | region | ) |
Returns the region immediately following the given region in its parent operation.
Definition at line 411 of file IR.cpp.
References mlir::Operation::getNumRegions(), mlir::Region::getParentOp(), mlir::Operation::getRegion(), mlir::Region::getRegionNumber(), unwrap(), and wrap().
Referenced by mlirRegionIsNull().
void mlirRegionInsertOwnedBlock | ( | MlirRegion | region, |
intptr_t | pos, | ||
MlirBlock | block | ||
) |
Takes a block owned by the caller and inserts it at pos
to the given region.
This is an expensive operation that linearly scans the region, prefer insertAfter/Before instead.
Definition at line 523 of file IR.cpp.
References unwrap().
Referenced by mlirRegionIsNull(), and mlir::python::PySymbolTable::walkSymbolTables().
void mlirRegionInsertOwnedBlockAfter | ( | MlirRegion | region, |
MlirBlock | reference, | ||
MlirBlock | block | ||
) |
Takes a block owned by the caller and inserts it after the (non-owned) reference block in the given region.
The reference block must belong to the region. If the reference block is null, prepends the block to the region.
Definition at line 529 of file IR.cpp.
References mlir::Region::begin(), mlir::Region::getBlocks(), mlirBlockIsNull(), and unwrap().
Referenced by mlirRegionIsNull(), and mlir::python::PySymbolTable::walkSymbolTables().
void mlirRegionInsertOwnedBlockBefore | ( | MlirRegion | region, |
MlirBlock | reference, | ||
MlirBlock | block | ||
) |
Takes a block owned by the caller and inserts it before the (non-owned) reference block in the given region.
The reference block must belong to the region. If the reference block is null, appends the block to the region.
Definition at line 543 of file IR.cpp.
References mlirBlockIsNull(), mlirRegionAppendOwnedBlock(), and unwrap().
Referenced by mlirRegionIsNull(), and mlir::python::PySymbolTable::walkSymbolTables().
MlirSymbolTable mlirSymbolTableCreate | ( | MlirOperation | operation | ) |
Creates a symbol table for the given operation.
If the operation does not have the SymbolTable trait, returns a null symbol table.
Definition at line 815 of file IR.cpp.
References unwrap(), and wrap().
Referenced by mlirAttributeIsNull(), and mlir::python::PySymbolTable::PySymbolTable().
void mlirSymbolTableDestroy | ( | MlirSymbolTable | symbolTable | ) |
Destroys the symbol table created with mlirSymbolTableCreate.
This does not affect the operations in the table.
Definition at line 821 of file IR.cpp.
References unwrap().
Referenced by mlirSymbolTableIsNull(), and mlir::python::PySymbolTable::~PySymbolTable().
void mlirSymbolTableErase | ( | MlirSymbolTable | symbolTable, |
MlirOperation | operation | ||
) |
Removes the given operation from the symbol table and erases it.
Definition at line 835 of file IR.cpp.
References unwrap().
Referenced by mlir::python::PySymbolTable::erase(), and mlirSymbolTableIsNull().
MlirStringRef mlirSymbolTableGetSymbolAttributeName | ( | ) |
Returns the name of the attribute used to store symbol names compatible with symbol tables.
Definition at line 807 of file IR.cpp.
References mlir::SymbolTable::getSymbolAttrName(), and wrap().
Referenced by mlir::python::PySymbolTable::getSymbolName(), mlir::python::PySymbolTable::insert(), mlirAttributeIsNull(), and mlir::python::PySymbolTable::setSymbolName().
MlirStringRef mlirSymbolTableGetVisibilityAttributeName | ( | ) |
Returns the name of the attribute used to store symbol visibility.
Definition at line 811 of file IR.cpp.
References mlir::SymbolTable::getVisibilityAttrName(), and wrap().
Referenced by mlir::python::PySymbolTable::getVisibility(), mlirAttributeIsNull(), and mlir::python::PySymbolTable::setVisibility().
MlirAttribute mlirSymbolTableInsert | ( | MlirSymbolTable | symbolTable, |
MlirOperation | operation | ||
) |
Inserts the given operation into the given symbol table.
The operation must have the symbol trait. If the symbol table already has a symbol with the same name, renames the symbol being inserted to ensure name uniqueness. Note that this does not move the operation itself into the block of the symbol table operation, this should be done separately. Returns the name of the symbol after insertion.
Definition at line 830 of file IR.cpp.
References unwrap(), and wrap().
Referenced by mlir::python::PySymbolTable::insert(), and mlirSymbolTableIsNull().
MlirOperation mlirSymbolTableLookup | ( | MlirSymbolTable | symbolTable, |
MlirStringRef | name | ||
) |
Looks up a symbol with the given name in the given symbol table and returns the operation that corresponds to the symbol.
If the symbol cannot be found, returns a null operation.
Definition at line 825 of file IR.cpp.
References MlirStringRef::data, MlirStringRef::length, unwrap(), and wrap().
Referenced by mlir::python::PySymbolTable::dunderGetItem(), mlirSymbolTableIsNull(), and mlir::python::PySymbolTable::walkSymbolTables().
MlirLogicalResult mlirSymbolTableReplaceAllSymbolUses | ( | MlirStringRef | oldSymbol, |
MlirStringRef | newSymbol, | ||
MlirOperation | from | ||
) |
Attempt to replace all uses that are nested within the given operation of the given symbol 'oldSymbol' with the provided 'newSymbol'.
This does not traverse into nested symbol tables. Will fail atomically if there are any unknown operations that may be potential symbol tables.
Definition at line 840 of file IR.cpp.
References mlir::SymbolTable::replaceAllSymbolUses(), unwrap(), and wrap().
Referenced by mlirSymbolTableIsNull(), and mlir::python::PySymbolTable::replaceAllSymbolUses().
void mlirSymbolTableWalkSymbolTables | ( | MlirOperation | from, |
bool | allSymUsesVisible, | ||
void(*)(MlirOperation, bool, void *userData) | callback, | ||
void * | userData | ||
) |
Walks all symbol table operations nested within, and including, op
.
For each symbol table operation, the provided callback is invoked with the op and a boolean signifying if the symbols within that symbol table can be treated as if all uses within the IR are visible to the caller. allSymUsesVisible
identifies whether all of the symbol uses of symbols within op
are visible.
Definition at line 851 of file IR.cpp.
References unwrap(), mlir::SymbolTable::walkSymbolTables(), and wrap().
Referenced by mlirSymbolTableIsNull(), and mlir::python::PySymbolTable::walkSymbolTables().
void mlirTypeDump | ( | MlirType | type | ) |
Prints the type to the standard error stream.
Definition at line 741 of file IR.cpp.
References unwrap().
Referenced by mlirTypeIsNull(), and mlir::python::PySymbolTable::walkSymbolTables().
bool mlirTypeEqual | ( | MlirType | t1, |
MlirType | t2 | ||
) |
Checks if two types are equal.
Definition at line 732 of file IR.cpp.
References unwrap().
Referenced by mlirTypeIsNull(), and mlir::python::PyType::operator==().
MlirContext mlirTypeGetContext | ( | MlirType | type | ) |
Gets the context that a type was created with.
Definition at line 724 of file IR.cpp.
References unwrap(), and wrap().
Referenced by PyGlobalDebugFlag::bind(), mlir::python::PyType::createFromCapsule(), mlirValueIsNull(), and mlir::python::PySymbolTable::walkSymbolTables().
MlirTypeID mlirTypeGetTypeID | ( | MlirType | type | ) |
Gets the type ID of the type.
Definition at line 728 of file IR.cpp.
References unwrap(), and wrap().
Referenced by mlirValueIsNull().
MlirType mlirTypeParseGet | ( | MlirContext | context, |
MlirStringRef | type | ||
) |
Parses a type. The type is owned by the context.
Definition at line 720 of file IR.cpp.
References mlir::parseType(), unwrap(), and wrap().
Referenced by mlirValueIsNull(), and mlir::python::PySymbolTable::walkSymbolTables().
void mlirTypePrint | ( | MlirType | type, |
MlirStringCallback | callback, | ||
void * | userData | ||
) |
Prints a location 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 736 of file IR.cpp.
References mlir::Diagnostic::print(), and unwrap().
Referenced by mlirTypeIsNull(), and mlir::python::PySymbolTable::walkSymbolTables().
void mlirValueDump | ( | MlirValue | value | ) |
Prints the value to the standard error stream.
Definition at line 708 of file IR.cpp.
References unwrap().
Referenced by mlirValueIsNull(), and mlir::python::PySymbolTable::walkSymbolTables().
bool mlirValueEqual | ( | MlirValue | value1, |
MlirValue | value2 | ||
) |
Returns 1 if two values are equal, 0 otherwise.
Definition at line 670 of file IR.cpp.
References unwrap().
Referenced by mlirValueIsNull().
MlirType mlirValueGetType | ( | MlirValue | value | ) |
Returns the type of the value.
Definition at line 704 of file IR.cpp.
References unwrap(), and wrap().
Referenced by mlirValueIsNull(), and mlir::python::PySymbolTable::walkSymbolTables().
bool mlirValueIsABlockArgument | ( | MlirValue | value | ) |
Returns 1 if the value is a block argument, 0 otherwise.
Definition at line 674 of file IR.cpp.
References unwrap().
Referenced by mlir::python::PyValue::createFromCapsule(), mlirValueIsNull(), and mlir::python::PySymbolTable::walkSymbolTables().
bool mlirValueIsAOpResult | ( | MlirValue | value | ) |
Returns 1 if the value is an operation result, 0 otherwise.
Definition at line 678 of file IR.cpp.
References unwrap().
Referenced by mlir::python::PyValue::createFromCapsule(), mlirValueIsNull(), and mlir::python::PySymbolTable::walkSymbolTables().
void mlirValuePrint | ( | MlirValue | value, |
MlirStringCallback | callback, | ||
void * | userData | ||
) |
Prints a value 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 710 of file IR.cpp.
References mlir::Diagnostic::print(), and unwrap().
Referenced by mlirValueIsNull(), and mlir::python::PySymbolTable::walkSymbolTables().