MLIR  19.0.0git
Classes | Macros | Typedefs | Enumerations | Functions
IR.h File Reference
#include <stdbool.h>
#include <stdint.h>
#include "mlir-c/Support.h"

Go to the source code of this file.

Classes

struct  MlirNamedAttribute
 Named MLIR attribute. More...
 
struct  MlirDialectHandle
 
struct  MlirOperationState
 An auxiliary class for constructing operations. More...
 

Macros

#define DEFINE_C_API_STRUCT(name, storage)
 Opaque type declarations. More...
 
#define MLIR_DECLARE_CAPI_DIALECT_REGISTRATION(Name, Namespace)
 

Typedefs

typedef struct MlirNamedAttribute MlirNamedAttribute
 
typedef struct MlirDialectHandle MlirDialectHandle
 
typedef struct MlirOperationState MlirOperationState
 
typedef enum MlirWalkOrder MlirWalkOrder
 Traversal order for operation walk. More...
 
typedef void(* MlirOperationWalkCallback) (MlirOperation, void *userData)
 Operation walker type. More...
 

Enumerations

enum  MlirWalkOrder { MlirWalkPreOrder , MlirWalkPostOrder }
 Traversal order for operation walk. More...
 

Functions

 DEFINE_C_API_STRUCT (MlirAsmState, void)
 
 DEFINE_C_API_STRUCT (MlirBytecodeWriterConfig, void)
 
 DEFINE_C_API_STRUCT (MlirContext, void)
 
 DEFINE_C_API_STRUCT (MlirDialect, void)
 
 DEFINE_C_API_STRUCT (MlirDialectRegistry, void)
 
 DEFINE_C_API_STRUCT (MlirOperation, void)
 
 DEFINE_C_API_STRUCT (MlirOpOperand, void)
 
 DEFINE_C_API_STRUCT (MlirOpPrintingFlags, void)
 
 DEFINE_C_API_STRUCT (MlirBlock, void)
 
 DEFINE_C_API_STRUCT (MlirRegion, void)
 
 DEFINE_C_API_STRUCT (MlirSymbolTable, void)
 
 DEFINE_C_API_STRUCT (MlirAttribute, const void)
 
 DEFINE_C_API_STRUCT (MlirIdentifier, const void)
 
 DEFINE_C_API_STRUCT (MlirLocation, const void)
 
 DEFINE_C_API_STRUCT (MlirModule, const void)
 
 DEFINE_C_API_STRUCT (MlirType, const void)
 
 DEFINE_C_API_STRUCT (MlirValue, const void)
 
MLIR_CAPI_EXPORTED MlirContext mlirContextCreate (void)
 Creates an MLIR context and transfers its ownership to the caller. More...
 
MLIR_CAPI_EXPORTED MlirContext mlirContextCreateWithThreading (bool threadingEnabled)
 Creates an MLIR context with an explicit setting of the multithreading setting and transfers its ownership to the caller. More...
 
MLIR_CAPI_EXPORTED MlirContext mlirContextCreateWithRegistry (MlirDialectRegistry registry, bool threadingEnabled)
 Creates an MLIR context, setting the multithreading setting explicitly and pre-loading the dialects from the provided DialectRegistry. More...
 
MLIR_CAPI_EXPORTED bool mlirContextEqual (MlirContext ctx1, MlirContext ctx2)
 Checks if two contexts are equal. More...
 
static bool mlirContextIsNull (MlirContext context)
 Checks whether a context is null. More...
 
MLIR_CAPI_EXPORTED void mlirContextDestroy (MlirContext context)
 Takes an MLIR context owned by the caller and destroys it. More...
 
MLIR_CAPI_EXPORTED void mlirContextSetAllowUnregisteredDialects (MlirContext context, bool allow)
 Sets whether unregistered dialects are allowed in this context. More...
 
MLIR_CAPI_EXPORTED bool mlirContextGetAllowUnregisteredDialects (MlirContext context)
 Returns whether the context allows unregistered dialects. More...
 
MLIR_CAPI_EXPORTED intptr_t mlirContextGetNumRegisteredDialects (MlirContext context)
 Returns the number of dialects registered with the given context. More...
 
MLIR_CAPI_EXPORTED void mlirContextAppendDialectRegistry (MlirContext ctx, MlirDialectRegistry registry)
 Append the contents of the given dialect registry to the registry associated with the context. More...
 
MLIR_CAPI_EXPORTED intptr_t mlirContextGetNumLoadedDialects (MlirContext context)
 Returns the number of dialects loaded by the context. More...
 
MLIR_CAPI_EXPORTED 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...
 
MLIR_CAPI_EXPORTED void mlirContextEnableMultithreading (MlirContext context, bool enable)
 Set threading mode (must be set to false to mlir-print-ir-after-all). More...
 
MLIR_CAPI_EXPORTED void mlirContextLoadAllAvailableDialects (MlirContext context)
 Eagerly loads all available dialects registered with a context, making them available for use for IR construction. More...
 
MLIR_CAPI_EXPORTED bool mlirContextIsRegisteredOperation (MlirContext context, MlirStringRef name)
 Returns whether the given fully-qualified operation (i.e. More...
 
MLIR_CAPI_EXPORTED void mlirContextSetThreadPool (MlirContext context, MlirLlvmThreadPool threadPool)
 Sets the thread pool of the context explicitly, enabling multithreading in the process. More...
 
MLIR_CAPI_EXPORTED MlirContext mlirDialectGetContext (MlirDialect dialect)
 Returns the context that owns the dialect. More...
 
static bool mlirDialectIsNull (MlirDialect dialect)
 Checks if the dialect is null. More...
 
MLIR_CAPI_EXPORTED bool mlirDialectEqual (MlirDialect dialect1, MlirDialect dialect2)
 Checks if two dialects that belong to the same context are equal. More...
 
MLIR_CAPI_EXPORTED MlirStringRef mlirDialectGetNamespace (MlirDialect dialect)
 Returns the namespace of the given dialect. More...
 
MLIR_CAPI_EXPORTED MlirStringRef mlirDialectHandleGetNamespace (MlirDialectHandle)
 Returns the namespace associated with the provided dialect handle. More...
 
MLIR_CAPI_EXPORTED void mlirDialectHandleInsertDialect (MlirDialectHandle, MlirDialectRegistry)
 Inserts the dialect associated with the provided dialect handle into the provided dialect registry. More...
 
MLIR_CAPI_EXPORTED void mlirDialectHandleRegisterDialect (MlirDialectHandle, MlirContext)
 Registers the dialect associated with the provided dialect handle. More...
 
MLIR_CAPI_EXPORTED MlirDialect mlirDialectHandleLoadDialect (MlirDialectHandle, MlirContext)
 Loads the dialect associated with the provided dialect handle. More...
 
MLIR_CAPI_EXPORTED MlirDialectRegistry mlirDialectRegistryCreate (void)
 Creates a dialect registry and transfers its ownership to the caller. More...
 
static bool mlirDialectRegistryIsNull (MlirDialectRegistry registry)
 Checks if the dialect registry is null. More...
 
MLIR_CAPI_EXPORTED void mlirDialectRegistryDestroy (MlirDialectRegistry registry)
 Takes a dialect registry owned by the caller and destroys it. More...
 
MLIR_CAPI_EXPORTED MlirAttribute mlirLocationGetAttribute (MlirLocation location)
 Returns the underlying location attribute of this location. More...
 
MLIR_CAPI_EXPORTED MlirLocation mlirLocationFromAttribute (MlirAttribute attribute)
 Creates a location from a location attribute. More...
 
MLIR_CAPI_EXPORTED MlirLocation mlirLocationFileLineColGet (MlirContext context, MlirStringRef filename, unsigned line, unsigned col)
 Creates an File/Line/Column location owned by the given context. More...
 
MLIR_CAPI_EXPORTED MlirLocation mlirLocationCallSiteGet (MlirLocation callee, MlirLocation caller)
 Creates a call site location with a callee and a caller. More...
 
MLIR_CAPI_EXPORTED MlirLocation mlirLocationFusedGet (MlirContext ctx, intptr_t nLocations, MlirLocation const *locations, MlirAttribute metadata)
 Creates a fused location with an array of locations and metadata. More...
 
MLIR_CAPI_EXPORTED MlirLocation mlirLocationNameGet (MlirContext context, MlirStringRef name, MlirLocation childLoc)
 Creates a name location owned by the given context. More...
 
MLIR_CAPI_EXPORTED MlirLocation mlirLocationUnknownGet (MlirContext context)
 Creates a location with unknown position owned by the given context. More...
 
MLIR_CAPI_EXPORTED MlirContext mlirLocationGetContext (MlirLocation location)
 Gets the context that a location was created with. More...
 
static bool mlirLocationIsNull (MlirLocation location)
 Checks if the location is null. More...
 
MLIR_CAPI_EXPORTED bool mlirLocationEqual (MlirLocation l1, MlirLocation l2)
 Checks if two locations are equal. More...
 
MLIR_CAPI_EXPORTED void mlirLocationPrint (MlirLocation location, MlirStringCallback callback, void *userData)
 Prints a location by sending chunks of the string representation and forwarding userData tocallback`. More...
 
MLIR_CAPI_EXPORTED MlirModule mlirModuleCreateEmpty (MlirLocation location)
 Creates a new, empty module and transfers ownership to the caller. More...
 
MLIR_CAPI_EXPORTED MlirModule mlirModuleCreateParse (MlirContext context, MlirStringRef module)
 Parses a module from the string and transfers ownership to the caller. More...
 
MLIR_CAPI_EXPORTED MlirContext mlirModuleGetContext (MlirModule module)
 Gets the context that a module was created with. More...
 
MLIR_CAPI_EXPORTED MlirBlock mlirModuleGetBody (MlirModule module)
 Gets the body of the module, i.e. the only block it contains. More...
 
static bool mlirModuleIsNull (MlirModule module)
 Checks whether a module is null. More...
 
MLIR_CAPI_EXPORTED void mlirModuleDestroy (MlirModule module)
 Takes a module owned by the caller and deletes it. More...
 
MLIR_CAPI_EXPORTED MlirOperation mlirModuleGetOperation (MlirModule module)
 Views the module as a generic operation. More...
 
MLIR_CAPI_EXPORTED MlirModule mlirModuleFromOperation (MlirOperation op)
 Views the generic operation as a module. More...
 
MLIR_CAPI_EXPORTED MlirOperationState mlirOperationStateGet (MlirStringRef name, MlirLocation loc)
 Constructs an operation state from a name and a location. More...
 
MLIR_CAPI_EXPORTED void mlirOperationStateAddResults (MlirOperationState *state, intptr_t n, MlirType const *results)
 Adds a list of components to the operation state. More...
 
MLIR_CAPI_EXPORTED void mlirOperationStateAddOperands (MlirOperationState *state, intptr_t n, MlirValue const *operands)
 
MLIR_CAPI_EXPORTED void mlirOperationStateAddOwnedRegions (MlirOperationState *state, intptr_t n, MlirRegion const *regions)
 
MLIR_CAPI_EXPORTED void mlirOperationStateAddSuccessors (MlirOperationState *state, intptr_t n, MlirBlock const *successors)
 
MLIR_CAPI_EXPORTED void mlirOperationStateAddAttributes (MlirOperationState *state, intptr_t n, MlirNamedAttribute const *attributes)
 
MLIR_CAPI_EXPORTED void mlirOperationStateEnableResultTypeInference (MlirOperationState *state)
 Enables result type inference for the operation under construction. More...
 
MLIR_CAPI_EXPORTED MlirAsmState mlirAsmStateCreateForOperation (MlirOperation op, MlirOpPrintingFlags flags)
 Creates new AsmState, as with AsmState the IR should not be mutated in-between using this state. More...
 
MLIR_CAPI_EXPORTED MlirAsmState mlirAsmStateCreateForValue (MlirValue value, MlirOpPrintingFlags flags)
 Creates new AsmState from value. More...
 
MLIR_CAPI_EXPORTED void mlirAsmStateDestroy (MlirAsmState state)
 Destroys printing flags created with mlirAsmStateCreate. More...
 
MLIR_CAPI_EXPORTED MlirOpPrintingFlags mlirOpPrintingFlagsCreate (void)
 Creates new printing flags with defaults, intended for customization. More...
 
MLIR_CAPI_EXPORTED void mlirOpPrintingFlagsDestroy (MlirOpPrintingFlags flags)
 Destroys printing flags created with mlirOpPrintingFlagsCreate. More...
 
MLIR_CAPI_EXPORTED 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...
 
MLIR_CAPI_EXPORTED void mlirOpPrintingFlagsEnableDebugInfo (MlirOpPrintingFlags flags, bool enable, bool prettyForm)
 Enable or disable printing of debug information (based on enable). More...
 
MLIR_CAPI_EXPORTED void mlirOpPrintingFlagsPrintGenericOpForm (MlirOpPrintingFlags flags)
 Always print operations in the generic form. More...
 
MLIR_CAPI_EXPORTED void mlirOpPrintingFlagsUseLocalScope (MlirOpPrintingFlags flags)
 Use local scope when printing the operation. More...
 
MLIR_CAPI_EXPORTED void mlirOpPrintingFlagsAssumeVerified (MlirOpPrintingFlags flags)
 Do not verify the operation when using custom operation printers. More...
 
MLIR_CAPI_EXPORTED MlirBytecodeWriterConfig mlirBytecodeWriterConfigCreate (void)
 Creates new printing flags with defaults, intended for customization. More...
 
MLIR_CAPI_EXPORTED void mlirBytecodeWriterConfigDestroy (MlirBytecodeWriterConfig config)
 Destroys printing flags created with mlirBytecodeWriterConfigCreate. More...
 
MLIR_CAPI_EXPORTED void mlirBytecodeWriterConfigDesiredEmitVersion (MlirBytecodeWriterConfig flags, int64_t version)
 Sets the version to emit in the writer config. More...
 
MLIR_CAPI_EXPORTED MlirOperation mlirOperationCreate (MlirOperationState *state)
 Creates an operation and transfers ownership to the caller. More...
 
MLIR_CAPI_EXPORTED MlirOperation mlirOperationCreateParse (MlirContext context, MlirStringRef sourceStr, MlirStringRef sourceName)
 Parses an operation, giving ownership to the caller. More...
 
MLIR_CAPI_EXPORTED MlirOperation mlirOperationClone (MlirOperation op)
 Creates a deep copy of an operation. More...
 
MLIR_CAPI_EXPORTED void mlirOperationDestroy (MlirOperation op)
 Takes an operation owned by the caller and destroys it. More...
 
MLIR_CAPI_EXPORTED void mlirOperationRemoveFromParent (MlirOperation op)
 Removes the given operation from its parent block. More...
 
static bool mlirOperationIsNull (MlirOperation op)
 Checks whether the underlying operation is null. More...
 
MLIR_CAPI_EXPORTED bool mlirOperationEqual (MlirOperation op, MlirOperation other)
 Checks whether two operation handles point to the same operation. More...
 
MLIR_CAPI_EXPORTED MlirContext mlirOperationGetContext (MlirOperation op)
 Gets the context this operation is associated with. More...
 
MLIR_CAPI_EXPORTED MlirLocation mlirOperationGetLocation (MlirOperation op)
 Gets the location of the operation. More...
 
MLIR_CAPI_EXPORTED MlirTypeID mlirOperationGetTypeID (MlirOperation op)
 Gets the type id of the operation. More...
 
MLIR_CAPI_EXPORTED MlirIdentifier mlirOperationGetName (MlirOperation op)
 Gets the name of the operation as an identifier. More...
 
MLIR_CAPI_EXPORTED MlirBlock mlirOperationGetBlock (MlirOperation op)
 Gets the block that owns this operation, returning null if the operation is not owned. More...
 
MLIR_CAPI_EXPORTED MlirOperation mlirOperationGetParentOperation (MlirOperation op)
 Gets the operation that owns this operation, returning null if the operation is not owned. More...
 
MLIR_CAPI_EXPORTED intptr_t mlirOperationGetNumRegions (MlirOperation op)
 Returns the number of regions attached to the given operation. More...
 
MLIR_CAPI_EXPORTED MlirRegion mlirOperationGetRegion (MlirOperation op, intptr_t pos)
 Returns pos-th region attached to the operation. More...
 
MLIR_CAPI_EXPORTED MlirOperation mlirOperationGetNextInBlock (MlirOperation op)
 Returns an operation immediately following the given operation it its enclosing block. More...
 
MLIR_CAPI_EXPORTED intptr_t mlirOperationGetNumOperands (MlirOperation op)
 Returns the number of operands of the operation. More...
 
MLIR_CAPI_EXPORTED MlirValue mlirOperationGetOperand (MlirOperation op, intptr_t pos)
 Returns pos-th operand of the operation. More...
 
MLIR_CAPI_EXPORTED void mlirOperationSetOperand (MlirOperation op, intptr_t pos, MlirValue newValue)
 Sets the pos-th operand of the operation. More...
 
MLIR_CAPI_EXPORTED void mlirOperationSetOperands (MlirOperation op, intptr_t nOperands, MlirValue const *operands)
 Replaces the operands of the operation. More...
 
MLIR_CAPI_EXPORTED intptr_t mlirOperationGetNumResults (MlirOperation op)
 Returns the number of results of the operation. More...
 
MLIR_CAPI_EXPORTED MlirValue mlirOperationGetResult (MlirOperation op, intptr_t pos)
 Returns pos-th result of the operation. More...
 
MLIR_CAPI_EXPORTED intptr_t mlirOperationGetNumSuccessors (MlirOperation op)
 Returns the number of successor blocks of the operation. More...
 
MLIR_CAPI_EXPORTED MlirBlock mlirOperationGetSuccessor (MlirOperation op, intptr_t pos)
 Returns pos-th successor of the operation. More...
 
MLIR_CAPI_EXPORTED void mlirOperationSetSuccessor (MlirOperation op, intptr_t pos, MlirBlock block)
 Set pos-th successor of the operation. More...
 
MLIR_CAPI_EXPORTED bool mlirOperationHasInherentAttributeByName (MlirOperation op, MlirStringRef name)
 Returns true if this operation defines an inherent attribute with this name. More...
 
MLIR_CAPI_EXPORTED MlirAttribute mlirOperationGetInherentAttributeByName (MlirOperation op, MlirStringRef name)
 Returns an inherent attribute attached to the operation given its name. More...
 
MLIR_CAPI_EXPORTED void mlirOperationSetInherentAttributeByName (MlirOperation op, MlirStringRef name, MlirAttribute attr)
 Sets an inherent attribute by name, replacing the existing if it exists. More...
 
MLIR_CAPI_EXPORTED intptr_t mlirOperationGetNumDiscardableAttributes (MlirOperation op)
 Returns the number of discardable attributes attached to the operation. More...
 
MLIR_CAPI_EXPORTED MlirNamedAttribute mlirOperationGetDiscardableAttribute (MlirOperation op, intptr_t pos)
 Return pos-th discardable attribute of the operation. More...
 
MLIR_CAPI_EXPORTED MlirAttribute mlirOperationGetDiscardableAttributeByName (MlirOperation op, MlirStringRef name)
 Returns a discardable attribute attached to the operation given its name. More...
 
MLIR_CAPI_EXPORTED void mlirOperationSetDiscardableAttributeByName (MlirOperation op, MlirStringRef name, MlirAttribute attr)
 Sets a discardable attribute by name, replacing the existing if it exists or adding a new one otherwise. More...
 
MLIR_CAPI_EXPORTED bool mlirOperationRemoveDiscardableAttributeByName (MlirOperation op, MlirStringRef name)
 Removes a discardable attribute by name. More...
 
MLIR_CAPI_EXPORTED intptr_t mlirOperationGetNumAttributes (MlirOperation op)
 Returns the number of attributes attached to the operation. More...
 
MLIR_CAPI_EXPORTED MlirNamedAttribute mlirOperationGetAttribute (MlirOperation op, intptr_t pos)
 Return pos-th attribute of the operation. More...
 
MLIR_CAPI_EXPORTED MlirAttribute mlirOperationGetAttributeByName (MlirOperation op, MlirStringRef name)
 Returns an attribute attached to the operation given its name. More...
 
MLIR_CAPI_EXPORTED 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...
 
MLIR_CAPI_EXPORTED bool mlirOperationRemoveAttributeByName (MlirOperation op, MlirStringRef name)
 Removes an attribute by name. More...
 
MLIR_CAPI_EXPORTED void mlirOperationPrint (MlirOperation op, MlirStringCallback callback, void *userData)
 Prints an operation by sending chunks of the string representation and forwarding userData tocallback`. More...
 
MLIR_CAPI_EXPORTED void mlirOperationPrintWithFlags (MlirOperation op, MlirOpPrintingFlags flags, MlirStringCallback callback, void *userData)
 Same as mlirOperationPrint but accepts flags controlling the printing behavior. More...
 
MLIR_CAPI_EXPORTED void mlirOperationPrintWithState (MlirOperation op, MlirAsmState state, MlirStringCallback callback, void *userData)
 Same as mlirOperationPrint but accepts AsmState controlling the printing behavior as well as caching computed names. More...
 
MLIR_CAPI_EXPORTED void mlirOperationWriteBytecode (MlirOperation op, MlirStringCallback callback, void *userData)
 Same as mlirOperationPrint but writing the bytecode format. More...
 
MLIR_CAPI_EXPORTED MlirLogicalResult mlirOperationWriteBytecodeWithConfig (MlirOperation op, MlirBytecodeWriterConfig config, MlirStringCallback callback, void *userData)
 Same as mlirOperationWriteBytecode but with writer config and returns failure only if desired bytecode could not be honored. More...
 
MLIR_CAPI_EXPORTED void mlirOperationDump (MlirOperation op)
 Prints an operation to stderr. More...
 
MLIR_CAPI_EXPORTED bool mlirOperationVerify (MlirOperation op)
 Verify the operation and return true if it passes, false if it fails. More...
 
MLIR_CAPI_EXPORTED void mlirOperationMoveAfter (MlirOperation op, MlirOperation other)
 Moves the given operation immediately after the other operation in its parent block. More...
 
MLIR_CAPI_EXPORTED void mlirOperationMoveBefore (MlirOperation op, MlirOperation other)
 Moves the given operation immediately before the other operation in its parent block. More...
 
MLIR_CAPI_EXPORTED void mlirOperationWalk (MlirOperation op, MlirOperationWalkCallback callback, void *userData, MlirWalkOrder walkOrder)
 Walks operation op in walkOrder and calls callback on that operation. More...
 
MLIR_CAPI_EXPORTED MlirRegion mlirRegionCreate (void)
 Creates a new empty region and transfers ownership to the caller. More...
 
MLIR_CAPI_EXPORTED void mlirRegionDestroy (MlirRegion region)
 Takes a region owned by the caller and destroys it. More...
 
static bool mlirRegionIsNull (MlirRegion region)
 Checks whether a region is null. More...
 
MLIR_CAPI_EXPORTED bool mlirRegionEqual (MlirRegion region, MlirRegion other)
 Checks whether two region handles point to the same region. More...
 
MLIR_CAPI_EXPORTED MlirBlock mlirRegionGetFirstBlock (MlirRegion region)
 Gets the first block in the region. More...
 
MLIR_CAPI_EXPORTED void mlirRegionAppendOwnedBlock (MlirRegion region, MlirBlock block)
 Takes a block owned by the caller and appends it to the given region. More...
 
MLIR_CAPI_EXPORTED 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...
 
MLIR_CAPI_EXPORTED 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...
 
MLIR_CAPI_EXPORTED 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...
 
MLIR_CAPI_EXPORTED MlirRegion mlirOperationGetFirstRegion (MlirOperation op)
 Returns first region attached to the operation. More...
 
MLIR_CAPI_EXPORTED MlirRegion mlirRegionGetNextInOperation (MlirRegion region)
 Returns the region immediately following the given region in its parent operation. More...
 
MLIR_CAPI_EXPORTED void mlirRegionTakeBody (MlirRegion target, MlirRegion source)
 Moves the entire content of the source region to the target region. More...
 
MLIR_CAPI_EXPORTED 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...
 
MLIR_CAPI_EXPORTED void mlirBlockDestroy (MlirBlock block)
 Takes a block owned by the caller and destroys it. More...
 
MLIR_CAPI_EXPORTED void mlirBlockDetach (MlirBlock block)
 Detach a block from the owning region and assume ownership. More...
 
static bool mlirBlockIsNull (MlirBlock block)
 Checks whether a block is null. More...
 
MLIR_CAPI_EXPORTED bool mlirBlockEqual (MlirBlock block, MlirBlock other)
 Checks whether two blocks handles point to the same block. More...
 
MLIR_CAPI_EXPORTED MlirOperation mlirBlockGetParentOperation (MlirBlock)
 Returns the closest surrounding operation that contains this block. More...
 
MLIR_CAPI_EXPORTED MlirRegion mlirBlockGetParentRegion (MlirBlock block)
 Returns the region that contains this block. More...
 
MLIR_CAPI_EXPORTED MlirBlock mlirBlockGetNextInRegion (MlirBlock block)
 Returns the block immediately following the given block in its parent region. More...
 
MLIR_CAPI_EXPORTED MlirOperation mlirBlockGetFirstOperation (MlirBlock block)
 Returns the first operation in the block. More...
 
MLIR_CAPI_EXPORTED MlirOperation mlirBlockGetTerminator (MlirBlock block)
 Returns the terminator operation in the block or null if no terminator. More...
 
MLIR_CAPI_EXPORTED void mlirBlockAppendOwnedOperation (MlirBlock block, MlirOperation operation)
 Takes an operation owned by the caller and appends it to the block. More...
 
MLIR_CAPI_EXPORTED 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...
 
MLIR_CAPI_EXPORTED 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...
 
MLIR_CAPI_EXPORTED 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...
 
MLIR_CAPI_EXPORTED intptr_t mlirBlockGetNumArguments (MlirBlock block)
 Returns the number of arguments of the block. More...
 
MLIR_CAPI_EXPORTED MlirValue mlirBlockAddArgument (MlirBlock block, MlirType type, MlirLocation loc)
 Appends an argument of the specified type to the block. More...
 
MLIR_CAPI_EXPORTED MlirValue mlirBlockInsertArgument (MlirBlock block, intptr_t pos, MlirType type, MlirLocation loc)
 Inserts an argument of the specified type at a specified index to the block. More...
 
MLIR_CAPI_EXPORTED MlirValue mlirBlockGetArgument (MlirBlock block, intptr_t pos)
 Returns pos-th argument of the block. More...
 
MLIR_CAPI_EXPORTED void mlirBlockPrint (MlirBlock block, MlirStringCallback callback, void *userData)
 Prints a block by sending chunks of the string representation and forwarding userData tocallback`. More...
 
static bool mlirValueIsNull (MlirValue value)
 Returns whether the value is null. More...
 
MLIR_CAPI_EXPORTED bool mlirValueEqual (MlirValue value1, MlirValue value2)
 Returns 1 if two values are equal, 0 otherwise. More...
 
MLIR_CAPI_EXPORTED bool mlirValueIsABlockArgument (MlirValue value)
 Returns 1 if the value is a block argument, 0 otherwise. More...
 
MLIR_CAPI_EXPORTED bool mlirValueIsAOpResult (MlirValue value)
 Returns 1 if the value is an operation result, 0 otherwise. More...
 
MLIR_CAPI_EXPORTED MlirBlock mlirBlockArgumentGetOwner (MlirValue value)
 Returns the block in which this value is defined as an argument. More...
 
MLIR_CAPI_EXPORTED intptr_t mlirBlockArgumentGetArgNumber (MlirValue value)
 Returns the position of the value in the argument list of its block. More...
 
MLIR_CAPI_EXPORTED void mlirBlockArgumentSetType (MlirValue value, MlirType type)
 Sets the type of the block argument to the given type. More...
 
MLIR_CAPI_EXPORTED MlirOperation mlirOpResultGetOwner (MlirValue value)
 Returns an operation that produced this value as its result. More...
 
MLIR_CAPI_EXPORTED intptr_t mlirOpResultGetResultNumber (MlirValue value)
 Returns the position of the value in the list of results of the operation that produced it. More...
 
MLIR_CAPI_EXPORTED MlirType mlirValueGetType (MlirValue value)
 Returns the type of the value. More...
 
MLIR_CAPI_EXPORTED void mlirValueSetType (MlirValue value, MlirType type)
 Set the type of the value. More...
 
MLIR_CAPI_EXPORTED void mlirValueDump (MlirValue value)
 Prints the value to the standard error stream. More...
 
MLIR_CAPI_EXPORTED void mlirValuePrint (MlirValue value, MlirStringCallback callback, void *userData)
 Prints a value by sending chunks of the string representation and forwarding userData tocallback`. More...
 
MLIR_CAPI_EXPORTED void mlirValuePrintAsOperand (MlirValue value, MlirAsmState state, MlirStringCallback callback, void *userData)
 Prints a value as an operand (i.e., the ValueID). More...
 
MLIR_CAPI_EXPORTED MlirOpOperand mlirValueGetFirstUse (MlirValue value)
 Returns an op operand representing the first use of the value, or a null op operand if there are no uses. More...
 
MLIR_CAPI_EXPORTED void mlirValueReplaceAllUsesOfWith (MlirValue of, MlirValue with)
 Replace all uses of 'of' value with the 'with' value, updating anything in the IR that uses 'of' to use the other value instead. More...
 
MLIR_CAPI_EXPORTED bool mlirOpOperandIsNull (MlirOpOperand opOperand)
 Returns whether the op operand is null. More...
 
MLIR_CAPI_EXPORTED MlirValue mlirOpOperandGetValue (MlirOpOperand opOperand)
 Returns the value of an op operand. More...
 
MLIR_CAPI_EXPORTED MlirOperation mlirOpOperandGetOwner (MlirOpOperand opOperand)
 Returns the owner operation of an op operand. More...
 
MLIR_CAPI_EXPORTED unsigned mlirOpOperandGetOperandNumber (MlirOpOperand opOperand)
 Returns the operand number of an op operand. More...
 
MLIR_CAPI_EXPORTED MlirOpOperand mlirOpOperandGetNextUse (MlirOpOperand opOperand)
 Returns an op operand representing the next use of the value, or a null op operand if there is no next use. More...
 
MLIR_CAPI_EXPORTED MlirType mlirTypeParseGet (MlirContext context, MlirStringRef type)
 Parses a type. The type is owned by the context. More...
 
MLIR_CAPI_EXPORTED MlirContext mlirTypeGetContext (MlirType type)
 Gets the context that a type was created with. More...
 
MLIR_CAPI_EXPORTED MlirTypeID mlirTypeGetTypeID (MlirType type)
 Gets the type ID of the type. More...
 
MLIR_CAPI_EXPORTED MlirDialect mlirTypeGetDialect (MlirType type)
 Gets the dialect a type belongs to. More...
 
static bool mlirTypeIsNull (MlirType type)
 Checks whether a type is null. More...
 
MLIR_CAPI_EXPORTED bool mlirTypeEqual (MlirType t1, MlirType t2)
 Checks if two types are equal. More...
 
MLIR_CAPI_EXPORTED void mlirTypePrint (MlirType type, MlirStringCallback callback, void *userData)
 Prints a location by sending chunks of the string representation and forwarding userData tocallback`. More...
 
MLIR_CAPI_EXPORTED void mlirTypeDump (MlirType type)
 Prints the type to the standard error stream. More...
 
MLIR_CAPI_EXPORTED MlirAttribute mlirAttributeParseGet (MlirContext context, MlirStringRef attr)
 Parses an attribute. The attribute is owned by the context. More...
 
MLIR_CAPI_EXPORTED MlirContext mlirAttributeGetContext (MlirAttribute attribute)
 Gets the context that an attribute was created with. More...
 
MLIR_CAPI_EXPORTED MlirType mlirAttributeGetType (MlirAttribute attribute)
 Gets the type of this attribute. More...
 
MLIR_CAPI_EXPORTED MlirTypeID mlirAttributeGetTypeID (MlirAttribute attribute)
 Gets the type id of the attribute. More...
 
MLIR_CAPI_EXPORTED MlirDialect mlirAttributeGetDialect (MlirAttribute attribute)
 Gets the dialect of the attribute. More...
 
static bool mlirAttributeIsNull (MlirAttribute attr)
 Checks whether an attribute is null. More...
 
MLIR_CAPI_EXPORTED bool mlirAttributeEqual (MlirAttribute a1, MlirAttribute a2)
 Checks if two attributes are equal. More...
 
MLIR_CAPI_EXPORTED void mlirAttributePrint (MlirAttribute attr, MlirStringCallback callback, void *userData)
 Prints an attribute by sending chunks of the string representation and forwarding userData tocallback`. More...
 
MLIR_CAPI_EXPORTED void mlirAttributeDump (MlirAttribute attr)
 Prints the attribute to the standard error stream. More...
 
MLIR_CAPI_EXPORTED MlirNamedAttribute mlirNamedAttributeGet (MlirIdentifier name, MlirAttribute attr)
 Associates an attribute with the name. Takes ownership of neither. More...
 
MLIR_CAPI_EXPORTED MlirIdentifier mlirIdentifierGet (MlirContext context, MlirStringRef str)
 Gets an identifier with the given string value. More...
 
MLIR_CAPI_EXPORTED MlirContext mlirIdentifierGetContext (MlirIdentifier)
 Returns the context associated with this identifier. More...
 
MLIR_CAPI_EXPORTED bool mlirIdentifierEqual (MlirIdentifier ident, MlirIdentifier other)
 Checks whether two identifiers are the same. More...
 
MLIR_CAPI_EXPORTED MlirStringRef mlirIdentifierStr (MlirIdentifier ident)
 Gets the string value of the identifier. More...
 
MLIR_CAPI_EXPORTED MlirStringRef mlirSymbolTableGetSymbolAttributeName (void)
 Returns the name of the attribute used to store symbol names compatible with symbol tables. More...
 
MLIR_CAPI_EXPORTED MlirStringRef mlirSymbolTableGetVisibilityAttributeName (void)
 Returns the name of the attribute used to store symbol visibility. More...
 
MLIR_CAPI_EXPORTED MlirSymbolTable mlirSymbolTableCreate (MlirOperation operation)
 Creates a symbol table for the given operation. More...
 
static bool mlirSymbolTableIsNull (MlirSymbolTable symbolTable)
 Returns true if the symbol table is null. More...
 
MLIR_CAPI_EXPORTED void mlirSymbolTableDestroy (MlirSymbolTable symbolTable)
 Destroys the symbol table created with mlirSymbolTableCreate. More...
 
MLIR_CAPI_EXPORTED 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...
 
MLIR_CAPI_EXPORTED MlirAttribute mlirSymbolTableInsert (MlirSymbolTable symbolTable, MlirOperation operation)
 Inserts the given operation into the given symbol table. More...
 
MLIR_CAPI_EXPORTED void mlirSymbolTableErase (MlirSymbolTable symbolTable, MlirOperation operation)
 Removes the given operation from the symbol table and erases it. More...
 
MLIR_CAPI_EXPORTED 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...
 
MLIR_CAPI_EXPORTED 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...
 

Macro Definition Documentation

◆ DEFINE_C_API_STRUCT

#define DEFINE_C_API_STRUCT (   name,
  storage 
)
Value:
struct name { \
storage *ptr; \
}; \
typedef struct name name

Opaque type declarations.

Types are exposed to C bindings as structs containing opaque pointers. They are not supposed to be inspected from C. This allows the underlying representation to change without affecting the API users. The use of structs instead of typedefs enables some type safety as structs are not implicitly convertible to each other.

Instances of these types may or may not own the underlying object (most often only point to an IR fragment without owning it). The ownership semantics is defined by how an instance of the type was obtained.

Definition at line 45 of file IR.h.

◆ MLIR_DECLARE_CAPI_DIALECT_REGISTRATION

#define MLIR_DECLARE_CAPI_DIALECT_REGISTRATION (   Name,
  Namespace 
)
Value:
MLIR_CAPI_EXPORTED MlirDialectHandle mlirGetDialectHandle__##Namespace##__( \
void)
#define MLIR_CAPI_EXPORTED
Definition: Support.h:46

Definition at line 206 of file IR.h.

Typedef Documentation

◆ MlirDialectHandle

Definition at line 183 of file IR.h.

◆ MlirNamedAttribute

Definition at line 68 of file IR.h.

◆ MlirOperationState

Definition at line 324 of file IR.h.

◆ MlirOperationWalkCallback

typedef void(* MlirOperationWalkCallback) (MlirOperation, void *userData)

Operation walker type.

The handler is passed an (opaque) reference to an operation and a pointer to a userData.

Definition at line 716 of file IR.h.

◆ MlirWalkOrder

Traversal order for operation walk.

Enumeration Type Documentation

◆ MlirWalkOrder

Traversal order for operation walk.

Enumerator
MlirWalkPreOrder 
MlirWalkPostOrder 

Definition at line 709 of file IR.h.

Function Documentation

◆ DEFINE_C_API_STRUCT() [1/17]

DEFINE_C_API_STRUCT ( MlirAsmState  ,
void   
)

◆ DEFINE_C_API_STRUCT() [2/17]

DEFINE_C_API_STRUCT ( MlirAttribute  ,
const void   
)

◆ DEFINE_C_API_STRUCT() [3/17]

DEFINE_C_API_STRUCT ( MlirBlock  ,
void   
)

◆ DEFINE_C_API_STRUCT() [4/17]

DEFINE_C_API_STRUCT ( MlirBytecodeWriterConfig  ,
void   
)

◆ DEFINE_C_API_STRUCT() [5/17]

DEFINE_C_API_STRUCT ( MlirContext  ,
void   
)

◆ DEFINE_C_API_STRUCT() [6/17]

DEFINE_C_API_STRUCT ( MlirDialect  ,
void   
)

◆ DEFINE_C_API_STRUCT() [7/17]

DEFINE_C_API_STRUCT ( MlirDialectRegistry  ,
void   
)

◆ DEFINE_C_API_STRUCT() [8/17]

DEFINE_C_API_STRUCT ( MlirIdentifier  ,
const void   
)

◆ DEFINE_C_API_STRUCT() [9/17]

DEFINE_C_API_STRUCT ( MlirLocation  ,
const void   
)

◆ DEFINE_C_API_STRUCT() [10/17]

DEFINE_C_API_STRUCT ( MlirModule  ,
const void   
)

◆ DEFINE_C_API_STRUCT() [11/17]

DEFINE_C_API_STRUCT ( MlirOperation  ,
void   
)

◆ DEFINE_C_API_STRUCT() [12/17]

DEFINE_C_API_STRUCT ( MlirOpOperand  ,
void   
)

◆ DEFINE_C_API_STRUCT() [13/17]

DEFINE_C_API_STRUCT ( MlirOpPrintingFlags  ,
void   
)

◆ DEFINE_C_API_STRUCT() [14/17]

DEFINE_C_API_STRUCT ( MlirRegion  ,
void   
)

◆ DEFINE_C_API_STRUCT() [15/17]

DEFINE_C_API_STRUCT ( MlirSymbolTable  ,
void   
)

◆ DEFINE_C_API_STRUCT() [16/17]

DEFINE_C_API_STRUCT ( MlirType  ,
const void   
)

◆ DEFINE_C_API_STRUCT() [17/17]

DEFINE_C_API_STRUCT ( MlirValue  ,
const void   
)

◆ mlirAsmStateCreateForOperation()

MLIR_CAPI_EXPORTED MlirAsmState mlirAsmStateCreateForOperation ( MlirOperation  op,
MlirOpPrintingFlags  flags 
)

Creates new AsmState, as with AsmState the IR should not be mutated in-between using this state.

Must be freed with a call to mlirAsmStateDestroy().

Definition at line 147 of file IR.cpp.

Referenced by mlir::python::PyAsmState::PyAsmState().

◆ mlirAsmStateCreateForValue()

MLIR_CAPI_EXPORTED MlirAsmState mlirAsmStateCreateForValue ( MlirValue  value,
MlirOpPrintingFlags  flags 
)

Creates new AsmState from value.

Must be freed with a call to mlirAsmStateDestroy().

Definition at line 168 of file IR.cpp.

Referenced by mlir::python::PyAsmState::PyAsmState().

◆ mlirAsmStateDestroy()

MLIR_CAPI_EXPORTED void mlirAsmStateDestroy ( MlirAsmState  state)

Destroys printing flags created with mlirAsmStateCreate.

Definition at line 186 of file IR.cpp.

◆ mlirAttributeDump()

MLIR_CAPI_EXPORTED void mlirAttributeDump ( MlirAttribute  attr)

Prints the attribute to the standard error stream.

Definition at line 1081 of file IR.cpp.

References unwrap().

◆ mlirAttributeEqual()

MLIR_CAPI_EXPORTED bool mlirAttributeEqual ( MlirAttribute  a1,
MlirAttribute  a2 
)

Checks if two attributes are equal.

Definition at line 1071 of file IR.cpp.

References unwrap().

Referenced by mlir::python::PyAttribute::operator==().

◆ mlirAttributeGetContext()

MLIR_CAPI_EXPORTED MlirContext mlirAttributeGetContext ( MlirAttribute  attribute)

Gets the context that an attribute was created with.

Definition at line 1052 of file IR.cpp.

References getContext(), unwrap(), and wrap().

Referenced by mlir::python::PyAttribute::createFromCapsule(), and mlir::python::PyNamedAttribute::PyNamedAttribute().

◆ mlirAttributeGetDialect()

MLIR_CAPI_EXPORTED MlirDialect mlirAttributeGetDialect ( MlirAttribute  attribute)

Gets the dialect of the attribute.

Definition at line 1067 of file IR.cpp.

References unwrap(), and wrap().

◆ mlirAttributeGetType()

MLIR_CAPI_EXPORTED MlirType mlirAttributeGetType ( MlirAttribute  attribute)

Gets the type of this attribute.

Definition at line 1056 of file IR.cpp.

References mlir::get(), mlir::Attribute::getContext(), unwrap(), and wrap().

Referenced by mlir::python::PyConcreteAttribute< DerivedTy, BaseTy >::bind().

◆ mlirAttributeGetTypeID()

MLIR_CAPI_EXPORTED MlirTypeID mlirAttributeGetTypeID ( MlirAttribute  attribute)

Gets the type id of the attribute.

Definition at line 1063 of file IR.cpp.

References unwrap(), and wrap().

◆ mlirAttributeIsNull()

static bool mlirAttributeIsNull ( MlirAttribute  attr)
inlinestatic

◆ mlirAttributeParseGet()

MLIR_CAPI_EXPORTED MlirAttribute mlirAttributeParseGet ( MlirContext  context,
MlirStringRef  attr 
)

Parses an attribute. The attribute is owned by the context.

Definition at line 1048 of file IR.cpp.

References mlir::parseAttribute(), unwrap(), and wrap().

◆ mlirAttributePrint()

MLIR_CAPI_EXPORTED void mlirAttributePrint ( MlirAttribute  attr,
MlirStringCallback  callback,
void *  userData 
)

Prints an attribute by sending chunks of the string representation and forwarding userData tocallback`.

Note that the callback may be called several times with consecutive chunks of the string.

Definition at line 1075 of file IR.cpp.

References mlir::Diagnostic::print(), and unwrap().

Referenced by mlir::python::PyConcreteAttribute< DerivedTy, BaseTy >::bind().

◆ mlirBlockAddArgument()

MLIR_CAPI_EXPORTED 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 887 of file IR.cpp.

References unwrap(), and wrap().

◆ mlirBlockAppendOwnedOperation()

MLIR_CAPI_EXPORTED void mlirBlockAppendOwnedOperation ( MlirBlock  block,
MlirOperation  operation 
)

Takes an operation owned by the caller and appends it to the block.

Definition at line 839 of file IR.cpp.

References unwrap().

Referenced by mlirBlockInsertOwnedOperationBefore().

◆ mlirBlockArgumentGetArgNumber()

MLIR_CAPI_EXPORTED intptr_t mlirBlockArgumentGetArgNumber ( MlirValue  value)

Returns the position of the value in the argument list of its block.

Definition at line 927 of file IR.cpp.

References unwrap().

◆ mlirBlockArgumentGetOwner()

MLIR_CAPI_EXPORTED 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 923 of file IR.cpp.

References unwrap(), and wrap().

Referenced by mlir::python::PyValue::createFromCapsule().

◆ mlirBlockArgumentSetType()

MLIR_CAPI_EXPORTED void mlirBlockArgumentSetType ( MlirValue  value,
MlirType  type 
)

Sets the type of the block argument to the given type.

Definition at line 932 of file IR.cpp.

References unwrap().

◆ mlirBlockCreate()

MLIR_CAPI_EXPORTED 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 798 of file IR.cpp.

References mlir::Block::addArgument(), unwrap(), and wrap().

Referenced by createBlock().

◆ mlirBlockDestroy()

MLIR_CAPI_EXPORTED void mlirBlockDestroy ( MlirBlock  block)

Takes a block owned by the caller and destroys it.

Definition at line 876 of file IR.cpp.

References unwrap().

◆ mlirBlockDetach()

MLIR_CAPI_EXPORTED void mlirBlockDetach ( MlirBlock  block)

Detach a block from the owning region and assume ownership.

Definition at line 878 of file IR.cpp.

References mlir::Region::getBlocks(), mlir::Block::getParent(), and unwrap().

◆ mlirBlockEqual()

MLIR_CAPI_EXPORTED 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 806 of file IR.cpp.

References unwrap().

◆ mlirBlockGetArgument()

MLIR_CAPI_EXPORTED MlirValue mlirBlockGetArgument ( MlirBlock  block,
intptr_t  pos 
)

Returns pos-th argument of the block.

Definition at line 897 of file IR.cpp.

References unwrap(), and wrap().

◆ mlirBlockGetFirstOperation()

MLIR_CAPI_EXPORTED MlirOperation mlirBlockGetFirstOperation ( MlirBlock  block)

Returns the first operation in the block.

Definition at line 822 of file IR.cpp.

References mlir::Block::empty(), mlir::Block::front(), unwrap(), and wrap().

Referenced by mlir::python::PyInsertionPoint::atBlockBegin().

◆ mlirBlockGetNextInRegion()

MLIR_CAPI_EXPORTED MlirBlock mlirBlockGetNextInRegion ( MlirBlock  block)

Returns the block immediately following the given block in its parent region.

Definition at line 818 of file IR.cpp.

References unwrap(), and wrap().

◆ mlirBlockGetNumArguments()

MLIR_CAPI_EXPORTED intptr_t mlirBlockGetNumArguments ( MlirBlock  block)

Returns the number of arguments of the block.

Definition at line 883 of file IR.cpp.

References unwrap().

◆ mlirBlockGetParentOperation()

MLIR_CAPI_EXPORTED MlirOperation mlirBlockGetParentOperation ( MlirBlock  block)

Returns the closest surrounding operation that contains this block.

Definition at line 810 of file IR.cpp.

References unwrap(), and wrap().

Referenced by mlir::python::PyValue::createFromCapsule().

◆ mlirBlockGetParentRegion()

MLIR_CAPI_EXPORTED MlirRegion mlirBlockGetParentRegion ( MlirBlock  block)

Returns the region that contains this block.

Definition at line 814 of file IR.cpp.

References unwrap(), and wrap().

◆ mlirBlockGetTerminator()

MLIR_CAPI_EXPORTED MlirOperation mlirBlockGetTerminator ( MlirBlock  block)

Returns the terminator operation in the block or null if no terminator.

Definition at line 829 of file IR.cpp.

References mlir::Block::back(), mlir::Block::empty(), mlir::Operation::hasTrait(), unwrap(), and wrap().

Referenced by mlir::python::PyInsertionPoint::atBlockTerminator(), and mlir::python::PyInsertionPoint::insert().

◆ mlirBlockInsertArgument()

MLIR_CAPI_EXPORTED MlirValue mlirBlockInsertArgument ( MlirBlock  block,
intptr_t  pos,
MlirType  type,
MlirLocation  loc 
)

Inserts an argument of the specified type at a specified index to the block.

Returns the newly added argument.

Definition at line 892 of file IR.cpp.

References unwrap(), and wrap().

◆ mlirBlockInsertOwnedOperation()

MLIR_CAPI_EXPORTED 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 843 of file IR.cpp.

References unwrap().

◆ mlirBlockInsertOwnedOperationAfter()

MLIR_CAPI_EXPORTED 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 849 of file IR.cpp.

References mlir::Block::begin(), mlir::Block::getOperations(), mlirOperationIsNull(), and unwrap().

◆ mlirBlockInsertOwnedOperationBefore()

MLIR_CAPI_EXPORTED 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 864 of file IR.cpp.

References mlirBlockAppendOwnedOperation(), mlirOperationIsNull(), and unwrap().

Referenced by mlir::python::PyInsertionPoint::insert().

◆ mlirBlockIsNull()

static bool mlirBlockIsNull ( MlirBlock  block)
inlinestatic

◆ mlirBlockPrint()

MLIR_CAPI_EXPORTED void mlirBlockPrint ( MlirBlock  block,
MlirStringCallback  callback,
void *  userData 
)

Prints a block by sending chunks of the string representation and forwarding userData tocallback`.

Note that the callback may be called several times with consecutive chunks of the string.

Definition at line 901 of file IR.cpp.

References mlir::Diagnostic::print(), and unwrap().

◆ mlirBytecodeWriterConfigCreate()

MLIR_CAPI_EXPORTED MlirBytecodeWriterConfig mlirBytecodeWriterConfigCreate ( void  )

Creates new printing flags with defaults, intended for customization.

Must be freed with a call to mlirBytecodeWriterConfigDestroy().

Definition at line 226 of file IR.cpp.

References wrap().

Referenced by mlir::python::PyOperationBase::writeBytecode().

◆ mlirBytecodeWriterConfigDesiredEmitVersion()

MLIR_CAPI_EXPORTED void mlirBytecodeWriterConfigDesiredEmitVersion ( MlirBytecodeWriterConfig  flags,
int64_t  version 
)

Sets the version to emit in the writer config.

Definition at line 234 of file IR.cpp.

References unwrap().

Referenced by mlir::python::PyOperationBase::writeBytecode().

◆ mlirBytecodeWriterConfigDestroy()

MLIR_CAPI_EXPORTED void mlirBytecodeWriterConfigDestroy ( MlirBytecodeWriterConfig  config)

Destroys printing flags created with mlirBytecodeWriterConfigCreate.

Definition at line 230 of file IR.cpp.

References unwrap().

Referenced by mlir::python::PyOperationBase::writeBytecode().

◆ mlirContextAppendDialectRegistry()

MLIR_CAPI_EXPORTED void mlirContextAppendDialectRegistry ( MlirContext  ctx,
MlirDialectRegistry  registry 
)

Append the contents of the given dialect registry to the registry associated with the context.

Definition at line 82 of file IR.cpp.

References unwrap().

◆ mlirContextCreate()

MLIR_CAPI_EXPORTED MlirContext mlirContextCreate ( void  )

Creates an MLIR context and transfers its ownership to the caller.

This sets the default multithreading option (enabled).

Definition at line 43 of file IR.cpp.

References wrap().

◆ mlirContextCreateWithRegistry()

MLIR_CAPI_EXPORTED MlirContext mlirContextCreateWithRegistry ( MlirDialectRegistry  registry,
bool  threadingEnabled 
)

Creates an MLIR context, setting the multithreading setting explicitly and pre-loading the dialects from the provided DialectRegistry.

Definition at line 58 of file IR.cpp.

References toThreadingEnum(), unwrap(), and wrap().

◆ mlirContextCreateWithThreading()

MLIR_CAPI_EXPORTED MlirContext mlirContextCreateWithThreading ( bool  threadingEnabled)

Creates an MLIR context with an explicit setting of the multithreading setting and transfers its ownership to the caller.

Definition at line 53 of file IR.cpp.

References toThreadingEnum(), and wrap().

Referenced by mlir::python::PyMlirContext::createNewContextForInit().

◆ mlirContextDestroy()

MLIR_CAPI_EXPORTED void mlirContextDestroy ( MlirContext  context)

Takes an MLIR context owned by the caller and destroys it.

Definition at line 69 of file IR.cpp.

References unwrap().

Referenced by mlir::python::PyMlirContext::~PyMlirContext().

◆ mlirContextEnableMultithreading()

MLIR_CAPI_EXPORTED void mlirContextEnableMultithreading ( MlirContext  context,
bool  enable 
)

Set threading mode (must be set to false to mlir-print-ir-after-all).

Definition at line 102 of file IR.cpp.

References unwrap().

◆ mlirContextEqual()

MLIR_CAPI_EXPORTED bool mlirContextEqual ( MlirContext  ctx1,
MlirContext  ctx2 
)

Checks if two contexts are equal.

Definition at line 65 of file IR.cpp.

References unwrap().

◆ mlirContextGetAllowUnregisteredDialects()

MLIR_CAPI_EXPORTED bool mlirContextGetAllowUnregisteredDialects ( MlirContext  context)

Returns whether the context allows unregistered dialects.

Definition at line 75 of file IR.cpp.

References unwrap().

◆ mlirContextGetNumLoadedDialects()

MLIR_CAPI_EXPORTED intptr_t mlirContextGetNumLoadedDialects ( MlirContext  context)

Returns the number of dialects loaded by the context.

Definition at line 89 of file IR.cpp.

References unwrap().

◆ mlirContextGetNumRegisteredDialects()

MLIR_CAPI_EXPORTED 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 78 of file IR.cpp.

References unwrap().

◆ mlirContextGetOrLoadDialect()

MLIR_CAPI_EXPORTED 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 93 of file IR.cpp.

References unwrap(), and wrap().

Referenced by mlir::python::PyDialects::getDialectForKey().

◆ mlirContextIsNull()

static bool mlirContextIsNull ( MlirContext  context)
inlinestatic

Checks whether a context is null.

Definition at line 104 of file IR.h.

Referenced by mlir::python::PyMlirContext::createFromCapsule(), and pybind11::detail::type_caster< MlirContext >::load().

◆ mlirContextIsRegisteredOperation()

MLIR_CAPI_EXPORTED 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 98 of file IR.cpp.

References unwrap().

◆ mlirContextLoadAllAvailableDialects()

MLIR_CAPI_EXPORTED void mlirContextLoadAllAvailableDialects ( MlirContext  context)

Eagerly loads all available dialects registered with a context, making them available for use for IR construction.

Definition at line 106 of file IR.cpp.

References unwrap().

◆ mlirContextSetAllowUnregisteredDialects()

MLIR_CAPI_EXPORTED void mlirContextSetAllowUnregisteredDialects ( MlirContext  context,
bool  allow 
)

Sets whether unregistered dialects are allowed in this context.

Definition at line 71 of file IR.cpp.

References unwrap().

◆ mlirContextSetThreadPool()

MLIR_CAPI_EXPORTED void mlirContextSetThreadPool ( MlirContext  context,
MlirLlvmThreadPool  threadPool 
)

Sets the thread pool of the context explicitly, enabling multithreading in the process.

This API should be used to avoid re-creating thread pools in long-running applications that perform multiple compilations, see the C++ documentation for MLIRContext for details.

Definition at line 110 of file IR.cpp.

◆ mlirDialectEqual()

MLIR_CAPI_EXPORTED 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 123 of file IR.cpp.

References unwrap().

◆ mlirDialectGetContext()

MLIR_CAPI_EXPORTED MlirContext mlirDialectGetContext ( MlirDialect  dialect)

Returns the context that owns the dialect.

Definition at line 119 of file IR.cpp.

References getContext(), unwrap(), and wrap().

◆ mlirDialectGetNamespace()

MLIR_CAPI_EXPORTED MlirStringRef mlirDialectGetNamespace ( MlirDialect  dialect)

Returns the namespace of the given dialect.

Definition at line 127 of file IR.cpp.

References unwrap(), and wrap().

Referenced by mlir::python::PyGlobals::lookupTypeCaster(), and mlir::python::PyGlobals::lookupValueCaster().

◆ mlirDialectHandleGetNamespace()

MLIR_CAPI_EXPORTED MlirStringRef mlirDialectHandleGetNamespace ( MlirDialectHandle  handle)

Returns the namespace associated with the provided dialect handle.

Definition at line 16 of file DialectHandle.cpp.

References MlirDialectRegistrationHooks::getNamespaceHook, and unwrap().

◆ mlirDialectHandleInsertDialect()

MLIR_CAPI_EXPORTED void mlirDialectHandleInsertDialect ( MlirDialectHandle  handle,
MlirDialectRegistry  registry 
)

Inserts the dialect associated with the provided dialect handle into the provided dialect registry.

Definition at line 20 of file DialectHandle.cpp.

References MlirDialectRegistrationHooks::insertHook, and unwrap().

Referenced by mlir::ExternalPass::getDependentDialects(), and mlirDialectHandleRegisterDialect().

◆ mlirDialectHandleLoadDialect()

MLIR_CAPI_EXPORTED MlirDialect mlirDialectHandleLoadDialect ( MlirDialectHandle  handle,
MlirContext  ctx 
)

Loads the dialect associated with the provided dialect handle.

Definition at line 32 of file DialectHandle.cpp.

References MlirDialectRegistrationHooks::loadHook, and unwrap().

◆ mlirDialectHandleRegisterDialect()

MLIR_CAPI_EXPORTED void mlirDialectHandleRegisterDialect ( MlirDialectHandle  handle,
MlirContext  ctx 
)

Registers the dialect associated with the provided dialect handle.

Definition at line 25 of file DialectHandle.cpp.

References mlirDialectHandleInsertDialect(), unwrap(), and wrap().

◆ mlirDialectIsNull()

static bool mlirDialectIsNull ( MlirDialect  dialect)
inlinestatic

Checks if the dialect is null.

Definition at line 173 of file IR.h.

Referenced by mlir::python::PyDialects::getDialectForKey().

◆ mlirDialectRegistryCreate()

MLIR_CAPI_EXPORTED MlirDialectRegistry mlirDialectRegistryCreate ( void  )

Creates a dialect registry and transfers its ownership to the caller.

Definition at line 135 of file IR.cpp.

References wrap().

◆ mlirDialectRegistryDestroy()

MLIR_CAPI_EXPORTED void mlirDialectRegistryDestroy ( MlirDialectRegistry  registry)

Takes a dialect registry owned by the caller and destroys it.

Definition at line 139 of file IR.cpp.

References unwrap().

Referenced by mlir::python::PyDialectRegistry::~PyDialectRegistry().

◆ mlirDialectRegistryIsNull()

static bool mlirDialectRegistryIsNull ( MlirDialectRegistry  registry)
inlinestatic

◆ mlirIdentifierEqual()

MLIR_CAPI_EXPORTED bool mlirIdentifierEqual ( MlirIdentifier  ident,
MlirIdentifier  other 
)

Checks whether two identifiers are the same.

Definition at line 1100 of file IR.cpp.

References unwrap().

◆ mlirIdentifierGet()

MLIR_CAPI_EXPORTED MlirIdentifier mlirIdentifierGet ( MlirContext  context,
MlirStringRef  str 
)

Gets an identifier with the given string value.

Definition at line 1092 of file IR.cpp.

References mlir::get(), unwrap(), and wrap().

Referenced by mlir::python::PyNamedAttribute::PyNamedAttribute().

◆ mlirIdentifierGetContext()

MLIR_CAPI_EXPORTED MlirContext mlirIdentifierGetContext ( MlirIdentifier  ident)

Returns the context associated with this identifier.

Definition at line 1096 of file IR.cpp.

References getContext(), unwrap(), and wrap().

◆ mlirIdentifierStr()

MLIR_CAPI_EXPORTED MlirStringRef mlirIdentifierStr ( MlirIdentifier  ident)

Gets the string value of the identifier.

Definition at line 1104 of file IR.cpp.

References unwrap(), and wrap().

Referenced by mlir::python::PyOperation::createOpView(), and mlir::python::PyConcreteOpInterface< ConcreteIface >::PyConcreteOpInterface().

◆ mlirLocationCallSiteGet()

MLIR_CAPI_EXPORTED MlirLocation mlirLocationCallSiteGet ( MlirLocation  callee,
MlirLocation  caller 
)

Creates a call site location with a callee and a caller.

Definition at line 258 of file IR.cpp.

References mlir::get(), unwrap(), and wrap().

◆ mlirLocationEqual()

MLIR_CAPI_EXPORTED bool mlirLocationEqual ( MlirLocation  l1,
MlirLocation  l2 
)

Checks if two locations are equal.

Definition at line 283 of file IR.cpp.

References unwrap().

◆ mlirLocationFileLineColGet()

MLIR_CAPI_EXPORTED MlirLocation mlirLocationFileLineColGet ( MlirContext  context,
MlirStringRef  filename,
unsigned  line,
unsigned  col 
)

Creates an File/Line/Column location owned by the given context.

Definition at line 251 of file IR.cpp.

References mlir::get(), unwrap(), and wrap().

◆ mlirLocationFromAttribute()

MLIR_CAPI_EXPORTED MlirLocation mlirLocationFromAttribute ( MlirAttribute  attribute)

Creates a location from a location attribute.

Definition at line 247 of file IR.cpp.

References unwrap(), and wrap().

◆ mlirLocationFusedGet()

MLIR_CAPI_EXPORTED 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 262 of file IR.cpp.

References mlir::get(), unwrap(), unwrapList(), and wrap().

◆ mlirLocationGetAttribute()

MLIR_CAPI_EXPORTED MlirAttribute mlirLocationGetAttribute ( MlirLocation  location)

Returns the underlying location attribute of this location.

Definition at line 243 of file IR.cpp.

References unwrap(), and wrap().

◆ mlirLocationGetContext()

MLIR_CAPI_EXPORTED MlirContext mlirLocationGetContext ( MlirLocation  location)

Gets the context that a location was created with.

Definition at line 287 of file IR.cpp.

References getContext(), unwrap(), and wrap().

Referenced by mlir::python::PyLocation::createFromCapsule(), mlir::python::PyDiagnostic::getLocation(), and populateDialectLLVMSubmodule().

◆ mlirLocationIsNull()

static bool mlirLocationIsNull ( MlirLocation  location)
inlinestatic

Checks if the location is null.

Definition at line 282 of file IR.h.

Referenced by mlir::python::PyLocation::createFromCapsule(), pybind11::detail::type_caster< MlirLocation >::load(), and mlirLocationNameGet().

◆ mlirLocationNameGet()

MLIR_CAPI_EXPORTED 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 270 of file IR.cpp.

References mlir::get(), mlirLocationIsNull(), unwrap(), and wrap().

◆ mlirLocationPrint()

MLIR_CAPI_EXPORTED void mlirLocationPrint ( MlirLocation  location,
MlirStringCallback  callback,
void *  userData 
)

Prints a location by sending chunks of the string representation and forwarding userData tocallback`.

Note that the callback may be called several times with consecutive chunks of the string.

Definition at line 291 of file IR.cpp.

References mlir::Diagnostic::print(), and unwrap().

◆ mlirLocationUnknownGet()

MLIR_CAPI_EXPORTED MlirLocation mlirLocationUnknownGet ( MlirContext  context)

Creates a location with unknown position owned by the given context.

Definition at line 279 of file IR.cpp.

References mlir::get(), unwrap(), and wrap().

◆ mlirModuleCreateEmpty()

MLIR_CAPI_EXPORTED MlirModule mlirModuleCreateEmpty ( MlirLocation  location)

Creates a new, empty module and transfers ownership to the caller.

Definition at line 301 of file IR.cpp.

References unwrap(), and wrap().

◆ mlirModuleCreateParse()

MLIR_CAPI_EXPORTED MlirModule mlirModuleCreateParse ( MlirContext  context,
MlirStringRef  module 
)

Parses a module from the string and transfers ownership to the caller.

Definition at line 305 of file IR.cpp.

References mlir::OwningOpRef< OpTy >::release(), and unwrap().

◆ mlirModuleDestroy()

MLIR_CAPI_EXPORTED void mlirModuleDestroy ( MlirModule  module)

Takes a module owned by the caller and deletes it.

Definition at line 321 of file IR.cpp.

References unwrap().

Referenced by mlir::python::PyModule::~PyModule().

◆ mlirModuleFromOperation()

MLIR_CAPI_EXPORTED 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 331 of file IR.cpp.

◆ mlirModuleGetBody()

MLIR_CAPI_EXPORTED MlirBlock mlirModuleGetBody ( MlirModule  module)

Gets the body of the module, i.e. the only block it contains.

Definition at line 317 of file IR.cpp.

References unwrap(), and wrap().

◆ mlirModuleGetContext()

MLIR_CAPI_EXPORTED MlirContext mlirModuleGetContext ( MlirModule  module)

Gets the context that a module was created with.

Definition at line 313 of file IR.cpp.

References getContext(), unwrap(), and wrap().

Referenced by mlir::python::PyModule::forModule().

◆ mlirModuleGetOperation()

MLIR_CAPI_EXPORTED MlirOperation mlirModuleGetOperation ( MlirModule  module)

Views the module as a generic operation.

Definition at line 327 of file IR.cpp.

References unwrap(), and wrap().

◆ mlirModuleIsNull()

static bool mlirModuleIsNull ( MlirModule  module)
inlinestatic

Checks whether a module is null.

Definition at line 314 of file IR.h.

Referenced by mlir::python::PyModule::createFromCapsule(), and pybind11::detail::type_caster< MlirModule >::load().

◆ mlirNamedAttributeGet()

MLIR_CAPI_EXPORTED MlirNamedAttribute mlirNamedAttributeGet ( MlirIdentifier  name,
MlirAttribute  attr 
)

Associates an attribute with the name. Takes ownership of neither.

Definition at line 1083 of file IR.cpp.

Referenced by mlir::python::PyNamedAttribute::PyNamedAttribute().

◆ mlirOperationClone()

MLIR_CAPI_EXPORTED 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 494 of file IR.cpp.

Referenced by mlir::python::PyOperation::clone().

◆ mlirOperationCreate()

MLIR_CAPI_EXPORTED 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:

  • Result type inference is enabled and cannot be performed.

Definition at line 448 of file IR.cpp.

◆ mlirOperationCreateParse()

MLIR_CAPI_EXPORTED MlirOperation mlirOperationCreateParse ( MlirContext  context,
MlirStringRef  sourceStr,
MlirStringRef  sourceName 
)

Parses an operation, giving ownership to the caller.

If parsing fails a null operation will be returned, and an error diagnostic emitted.

sourceStr may be either the text assembly format, or binary bytecode format. sourceName is used as the file name of the source; any IR without locations will get a FileLineColLoc location with sourceName as the file name.

Definition at line 485 of file IR.cpp.

References mlir::parseSourceString(), unwrap(), and wrap().

◆ mlirOperationDestroy()

MLIR_CAPI_EXPORTED void mlirOperationDestroy ( MlirOperation  op)

Takes an operation owned by the caller and destroys it.

Definition at line 498 of file IR.cpp.

Referenced by mlir::python::PyOperation::erase(), and mlir::python::PyOperation::~PyOperation().

◆ mlirOperationDump()

MLIR_CAPI_EXPORTED void mlirOperationDump ( MlirOperation  op)

Prints an operation to stderr.

Definition at line 706 of file IR.cpp.

◆ mlirOperationEqual()

MLIR_CAPI_EXPORTED 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 502 of file IR.cpp.

◆ mlirOperationGetAttribute()

MLIR_CAPI_EXPORTED MlirNamedAttribute mlirOperationGetAttribute ( MlirOperation  op,
intptr_t  pos 
)

Return pos-th attribute of the operation.

Deprecated, please use mlirOperationGetInherentAttribute or mlirOperationGetDiscardableAttribute.

Definition at line 653 of file IR.cpp.

◆ mlirOperationGetAttributeByName()

MLIR_CAPI_EXPORTED MlirAttribute mlirOperationGetAttributeByName ( MlirOperation  op,
MlirStringRef  name 
)

Returns an attribute attached to the operation given its name.

Deprecated, please use mlirOperationGetInherentAttributeByName or mlirOperationGetDiscardableAttributeByName.

Definition at line 658 of file IR.cpp.

Referenced by mlir::python::PySymbolTable::getSymbolName(), mlir::python::PySymbolTable::getVisibility(), mlir::python::PySymbolTable::insert(), mlir::python::PySymbolTable::setSymbolName(), and mlir::python::PySymbolTable::setVisibility().

◆ mlirOperationGetBlock()

MLIR_CAPI_EXPORTED MlirBlock mlirOperationGetBlock ( MlirOperation  op)

Gets the block that owns this operation, returning null if the operation is not owned.

Definition at line 524 of file IR.cpp.

Referenced by mlir::python::PyOperation::getBlock().

◆ mlirOperationGetContext()

MLIR_CAPI_EXPORTED MlirContext mlirOperationGetContext ( MlirOperation  op)

Gets the context this operation is associated with.

Definition at line 506 of file IR.cpp.

Referenced by mlir::python::PyOperation::createFromCapsule(), mlir::python::PyValue::createFromCapsule(), and populateTransformInterpreterSubmodule().

◆ mlirOperationGetDiscardableAttribute()

MLIR_CAPI_EXPORTED MlirNamedAttribute mlirOperationGetDiscardableAttribute ( MlirOperation  op,
intptr_t  pos 
)

Return pos-th discardable attribute of the operation.

Definition at line 621 of file IR.cpp.

◆ mlirOperationGetDiscardableAttributeByName()

MLIR_CAPI_EXPORTED MlirAttribute mlirOperationGetDiscardableAttributeByName ( MlirOperation  op,
MlirStringRef  name 
)

Returns a discardable attribute attached to the operation given its name.

Definition at line 628 of file IR.cpp.

◆ mlirOperationGetFirstRegion()

MLIR_CAPI_EXPORTED MlirRegion mlirOperationGetFirstRegion ( MlirOperation  op)

Returns first region attached to the operation.

Definition at line 540 of file IR.cpp.

◆ mlirOperationGetInherentAttributeByName()

MLIR_CAPI_EXPORTED MlirAttribute mlirOperationGetInherentAttributeByName ( MlirOperation  op,
MlirStringRef  name 
)

Returns an inherent attribute attached to the operation given its name.

Definition at line 601 of file IR.cpp.

◆ mlirOperationGetLocation()

MLIR_CAPI_EXPORTED MlirLocation mlirOperationGetLocation ( MlirOperation  op)

Gets the location of the operation.

Definition at line 510 of file IR.cpp.

◆ mlirOperationGetName()

MLIR_CAPI_EXPORTED MlirIdentifier mlirOperationGetName ( MlirOperation  op)

Gets the name of the operation as an identifier.

Definition at line 520 of file IR.cpp.

Referenced by mlir::python::PyOperation::createOpView(), and mlir::python::PyConcreteOpInterface< ConcreteIface >::PyConcreteOpInterface().

◆ mlirOperationGetNextInBlock()

MLIR_CAPI_EXPORTED MlirOperation mlirOperationGetNextInBlock ( MlirOperation  op)

Returns an operation immediately following the given operation it its enclosing block.

Definition at line 556 of file IR.cpp.

◆ mlirOperationGetNumAttributes()

MLIR_CAPI_EXPORTED intptr_t mlirOperationGetNumAttributes ( MlirOperation  op)

Returns the number of attributes attached to the operation.

Deprecated, please use mlirOperationGetNumInherentAttributes or mlirOperationGetNumDiscardableAttributes.

Definition at line 649 of file IR.cpp.

◆ mlirOperationGetNumDiscardableAttributes()

MLIR_CAPI_EXPORTED intptr_t mlirOperationGetNumDiscardableAttributes ( MlirOperation  op)

Returns the number of discardable attributes attached to the operation.

Definition at line 616 of file IR.cpp.

◆ mlirOperationGetNumOperands()

MLIR_CAPI_EXPORTED intptr_t mlirOperationGetNumOperands ( MlirOperation  op)

Returns the number of operands of the operation.

Definition at line 560 of file IR.cpp.

◆ mlirOperationGetNumRegions()

MLIR_CAPI_EXPORTED intptr_t mlirOperationGetNumRegions ( MlirOperation  op)

Returns the number of regions attached to the given operation.

Definition at line 532 of file IR.cpp.

◆ mlirOperationGetNumResults()

MLIR_CAPI_EXPORTED intptr_t mlirOperationGetNumResults ( MlirOperation  op)

Returns the number of results of the operation.

Definition at line 579 of file IR.cpp.

◆ mlirOperationGetNumSuccessors()

MLIR_CAPI_EXPORTED intptr_t mlirOperationGetNumSuccessors ( MlirOperation  op)

Returns the number of successor blocks of the operation.

Definition at line 587 of file IR.cpp.

◆ mlirOperationGetOperand()

MLIR_CAPI_EXPORTED MlirValue mlirOperationGetOperand ( MlirOperation  op,
intptr_t  pos 
)

Returns pos-th operand of the operation.

Definition at line 564 of file IR.cpp.

◆ mlirOperationGetParentOperation()

MLIR_CAPI_EXPORTED MlirOperation mlirOperationGetParentOperation ( MlirOperation  op)

Gets the operation that owns this operation, returning null if the operation is not owned.

Definition at line 528 of file IR.cpp.

Referenced by mlir::python::PyOperation::getParentOperation().

◆ mlirOperationGetRegion()

MLIR_CAPI_EXPORTED MlirRegion mlirOperationGetRegion ( MlirOperation  op,
intptr_t  pos 
)

Returns pos-th region attached to the operation.

Definition at line 536 of file IR.cpp.

◆ mlirOperationGetResult()

MLIR_CAPI_EXPORTED MlirValue mlirOperationGetResult ( MlirOperation  op,
intptr_t  pos 
)

Returns pos-th result of the operation.

Definition at line 583 of file IR.cpp.

◆ mlirOperationGetSuccessor()

MLIR_CAPI_EXPORTED MlirBlock mlirOperationGetSuccessor ( MlirOperation  op,
intptr_t  pos 
)

Returns pos-th successor of the operation.

Definition at line 591 of file IR.cpp.

◆ mlirOperationGetTypeID()

MLIR_CAPI_EXPORTED 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 514 of file IR.cpp.

◆ mlirOperationHasInherentAttributeByName()

MLIR_CAPI_EXPORTED bool mlirOperationHasInherentAttributeByName ( MlirOperation  op,
MlirStringRef  name 
)

Returns true if this operation defines an inherent attribute with this name.

Note: the attribute can be optional, so mlirOperationGetInherentAttributeByName can still return a null attribute.

Definition at line 596 of file IR.cpp.

◆ mlirOperationIsNull()

static bool mlirOperationIsNull ( MlirOperation  op)
inlinestatic

◆ mlirOperationMoveAfter()

MLIR_CAPI_EXPORTED 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 712 of file IR.cpp.

Referenced by mlir::python::PyOperationBase::moveAfter().

◆ mlirOperationMoveBefore()

MLIR_CAPI_EXPORTED 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 716 of file IR.cpp.

Referenced by mlir::python::PyOperationBase::moveBefore().

◆ mlirOperationPrint()

MLIR_CAPI_EXPORTED void mlirOperationPrint ( MlirOperation  op,
MlirStringCallback  callback,
void *  userData 
)

Prints an operation by sending chunks of the string representation and forwarding userData tocallback`.

Note that the callback may be called several times with consecutive chunks of the string.

Definition at line 672 of file IR.cpp.

◆ mlirOperationPrintWithFlags()

MLIR_CAPI_EXPORTED void mlirOperationPrintWithFlags ( MlirOperation  op,
MlirOpPrintingFlags  flags,
MlirStringCallback  callback,
void *  userData 
)

Same as mlirOperationPrint but accepts flags controlling the printing behavior.

Definition at line 678 of file IR.cpp.

Referenced by mlir::python::PyOperationBase::print().

◆ mlirOperationPrintWithState()

MLIR_CAPI_EXPORTED void mlirOperationPrintWithState ( MlirOperation  op,
MlirAsmState  state,
MlirStringCallback  callback,
void *  userData 
)

Same as mlirOperationPrint but accepts AsmState controlling the printing behavior as well as caching computed names.

Definition at line 684 of file IR.cpp.

◆ mlirOperationRemoveAttributeByName()

MLIR_CAPI_EXPORTED bool mlirOperationRemoveAttributeByName ( MlirOperation  op,
MlirStringRef  name 
)

Removes an attribute by name.

Returns false if the attribute was not found and true if removed. Deprecated, please use mlirOperationRemoveInherentAttributeByName or mlirOperationRemoveDiscardableAttributeByName.

Definition at line 668 of file IR.cpp.

◆ mlirOperationRemoveDiscardableAttributeByName()

MLIR_CAPI_EXPORTED bool mlirOperationRemoveDiscardableAttributeByName ( MlirOperation  op,
MlirStringRef  name 
)

Removes a discardable attribute by name.

Returns false if the attribute was not found and true if removed.

Definition at line 639 of file IR.cpp.

◆ mlirOperationRemoveFromParent()

MLIR_CAPI_EXPORTED 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 500 of file IR.cpp.

Referenced by mlir::python::PyOperation::detachFromParent().

◆ mlirOperationSetAttributeByName()

MLIR_CAPI_EXPORTED 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.

Deprecated, please use mlirOperationSetInherentAttributeByName or mlirOperationSetDiscardableAttributeByName.

Definition at line 663 of file IR.cpp.

Referenced by mlir::python::PySymbolTable::setSymbolName(), and mlir::python::PySymbolTable::setVisibility().

◆ mlirOperationSetDiscardableAttributeByName()

MLIR_CAPI_EXPORTED void mlirOperationSetDiscardableAttributeByName ( MlirOperation  op,
MlirStringRef  name,
MlirAttribute  attr 
)

Sets a discardable attribute by name, replacing the existing if it exists or adding a new one otherwise.

The new attr Attribute is not allowed to be null, use mlirOperationRemoveDiscardableAttributeByName to remove an Attribute instead.

Definition at line 633 of file IR.cpp.

◆ mlirOperationSetInherentAttributeByName()

MLIR_CAPI_EXPORTED void mlirOperationSetInherentAttributeByName ( MlirOperation  op,
MlirStringRef  name,
MlirAttribute  attr 
)

Sets an inherent attribute by name, replacing the existing if it exists.

This has no effect if "name" does not match an inherent attribute.

Definition at line 609 of file IR.cpp.

◆ mlirOperationSetOperand()

MLIR_CAPI_EXPORTED void mlirOperationSetOperand ( MlirOperation  op,
intptr_t  pos,
MlirValue  newValue 
)

Sets the pos-th operand of the operation.

Definition at line 568 of file IR.cpp.

◆ mlirOperationSetOperands()

MLIR_CAPI_EXPORTED void mlirOperationSetOperands ( MlirOperation  op,
intptr_t  nOperands,
MlirValue const *  operands 
)

Replaces the operands of the operation.

Definition at line 573 of file IR.cpp.

◆ mlirOperationSetSuccessor()

MLIR_CAPI_EXPORTED void mlirOperationSetSuccessor ( MlirOperation  op,
intptr_t  pos,
MlirBlock  block 
)

Set pos-th successor of the operation.

Definition at line 644 of file IR.cpp.

◆ mlirOperationStateAddAttributes()

MLIR_CAPI_EXPORTED void mlirOperationStateAddAttributes ( MlirOperationState state,
intptr_t  n,
MlirNamedAttribute const *  attributes 
)

Definition at line 380 of file IR.cpp.

◆ mlirOperationStateAddOperands()

MLIR_CAPI_EXPORTED void mlirOperationStateAddOperands ( MlirOperationState state,
intptr_t  n,
MlirValue const *  operands 
)

Definition at line 368 of file IR.cpp.

◆ mlirOperationStateAddOwnedRegions()

MLIR_CAPI_EXPORTED void mlirOperationStateAddOwnedRegions ( MlirOperationState state,
intptr_t  n,
MlirRegion const *  regions 
)

Definition at line 372 of file IR.cpp.

◆ mlirOperationStateAddResults()

MLIR_CAPI_EXPORTED void mlirOperationStateAddResults ( MlirOperationState state,
intptr_t  n,
MlirType const *  results 
)

Adds a list of components to the operation state.

Definition at line 363 of file IR.cpp.

◆ mlirOperationStateAddSuccessors()

MLIR_CAPI_EXPORTED void mlirOperationStateAddSuccessors ( MlirOperationState state,
intptr_t  n,
MlirBlock const *  successors 
)

Definition at line 376 of file IR.cpp.

◆ mlirOperationStateEnableResultTypeInference()

MLIR_CAPI_EXPORTED 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 385 of file IR.cpp.

◆ mlirOperationStateGet()

MLIR_CAPI_EXPORTED MlirOperationState mlirOperationStateGet ( MlirStringRef  name,
MlirLocation  loc 
)

Constructs an operation state from a name and a location.

Definition at line 339 of file IR.cpp.

◆ mlirOperationVerify()

MLIR_CAPI_EXPORTED bool mlirOperationVerify ( MlirOperation  op)

Verify the operation and return true if it passes, false if it fails.

Definition at line 708 of file IR.cpp.

◆ mlirOperationWalk()

MLIR_CAPI_EXPORTED void mlirOperationWalk ( MlirOperation  op,
MlirOperationWalkCallback  callback,
void *  userData,
MlirWalkOrder  walkOrder 
)

Walks operation op in walkOrder and calls callback on that operation.

*userData is passed to the callback as well and can be used to tunnel some context or other data into the callback.

Definition at line 720 of file IR.cpp.

◆ mlirOperationWriteBytecode()

MLIR_CAPI_EXPORTED void mlirOperationWriteBytecode ( MlirOperation  op,
MlirStringCallback  callback,
void *  userData 
)

Same as mlirOperationPrint but writing the bytecode format.

Definition at line 692 of file IR.cpp.

Referenced by mlir::python::PyOperationBase::writeBytecode().

◆ mlirOperationWriteBytecodeWithConfig()

MLIR_CAPI_EXPORTED MlirLogicalResult mlirOperationWriteBytecodeWithConfig ( MlirOperation  op,
MlirBytecodeWriterConfig  config,
MlirStringCallback  callback,
void *  userData 
)

Same as mlirOperationWriteBytecode but with writer config and returns failure only if desired bytecode could not be honored.

Definition at line 699 of file IR.cpp.

Referenced by mlir::python::PyOperationBase::writeBytecode().

◆ mlirOpOperandGetNextUse()

MLIR_CAPI_EXPORTED MlirOpOperand mlirOpOperandGetNextUse ( MlirOpOperand  opOperand)

Returns an op operand representing the next use of the value, or a null op operand if there is no next use.

Definition at line 1000 of file IR.cpp.

References mlirOpOperandIsNull(), unwrap(), and wrap().

◆ mlirOpOperandGetOperandNumber()

MLIR_CAPI_EXPORTED unsigned mlirOpOperandGetOperandNumber ( MlirOpOperand  opOperand)

Returns the operand number of an op operand.

Definition at line 996 of file IR.cpp.

References unwrap().

◆ mlirOpOperandGetOwner()

MLIR_CAPI_EXPORTED MlirOperation mlirOpOperandGetOwner ( MlirOpOperand  opOperand)

Returns the owner operation of an op operand.

Definition at line 988 of file IR.cpp.

References unwrap(), and wrap().

◆ mlirOpOperandGetValue()

MLIR_CAPI_EXPORTED MlirValue mlirOpOperandGetValue ( MlirOpOperand  opOperand)

Returns the value of an op operand.

Definition at line 992 of file IR.cpp.

References mlir::get(), unwrap(), and wrap().

◆ mlirOpOperandIsNull()

MLIR_CAPI_EXPORTED bool mlirOpOperandIsNull ( MlirOpOperand  opOperand)

Returns whether the op operand is null.

Definition at line 986 of file IR.cpp.

Referenced by mlirOpOperandGetNextUse().

◆ mlirOpPrintingFlagsAssumeVerified()

MLIR_CAPI_EXPORTED void mlirOpPrintingFlagsAssumeVerified ( MlirOpPrintingFlags  flags)

Do not verify the operation when using custom operation printers.

Definition at line 218 of file IR.cpp.

References unwrap().

Referenced by mlir::python::PyOperationBase::print().

◆ mlirOpPrintingFlagsCreate()

MLIR_CAPI_EXPORTED MlirOpPrintingFlags mlirOpPrintingFlagsCreate ( void  )

Creates new printing flags with defaults, intended for customization.

Must be freed with a call to mlirOpPrintingFlagsDestroy().

Definition at line 192 of file IR.cpp.

References wrap().

Referenced by mlir::python::PyOperationBase::print(), and mlir::python::PyAsmState::PyAsmState().

◆ mlirOpPrintingFlagsDestroy()

MLIR_CAPI_EXPORTED void mlirOpPrintingFlagsDestroy ( MlirOpPrintingFlags  flags)

Destroys printing flags created with mlirOpPrintingFlagsCreate.

Definition at line 196 of file IR.cpp.

References unwrap().

Referenced by mlir::python::PyOperationBase::print(), and mlir::python::PyAsmState::~PyAsmState().

◆ mlirOpPrintingFlagsElideLargeElementsAttrs()

MLIR_CAPI_EXPORTED 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 200 of file IR.cpp.

References unwrap().

Referenced by mlir::python::PyOperationBase::print().

◆ mlirOpPrintingFlagsEnableDebugInfo()

MLIR_CAPI_EXPORTED void mlirOpPrintingFlagsEnableDebugInfo ( MlirOpPrintingFlags  flags,
bool  enable,
bool  prettyForm 
)

Enable or disable printing of debug information (based on enable).

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 205 of file IR.cpp.

References unwrap().

Referenced by mlir::python::PyOperationBase::print().

◆ mlirOpPrintingFlagsPrintGenericOpForm()

MLIR_CAPI_EXPORTED void mlirOpPrintingFlagsPrintGenericOpForm ( MlirOpPrintingFlags  flags)

Always print operations in the generic form.

Definition at line 210 of file IR.cpp.

References unwrap().

Referenced by mlir::python::PyOperationBase::print().

◆ mlirOpPrintingFlagsUseLocalScope()

MLIR_CAPI_EXPORTED 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 214 of file IR.cpp.

References unwrap().

Referenced by mlir::python::PyOperationBase::print(), and mlir::python::PyAsmState::PyAsmState().

◆ mlirOpResultGetOwner()

MLIR_CAPI_EXPORTED 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 936 of file IR.cpp.

References unwrap(), and wrap().

Referenced by mlir::python::PyValue::createFromCapsule().

◆ mlirOpResultGetResultNumber()

MLIR_CAPI_EXPORTED 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 940 of file IR.cpp.

References unwrap().

◆ mlirRegionAppendOwnedBlock()

MLIR_CAPI_EXPORTED void mlirRegionAppendOwnedBlock ( MlirRegion  region,
MlirBlock  block 
)

Takes a block owned by the caller and appends it to the given region.

Definition at line 751 of file IR.cpp.

References unwrap().

Referenced by mlirRegionInsertOwnedBlockBefore().

◆ mlirRegionCreate()

MLIR_CAPI_EXPORTED MlirRegion mlirRegionCreate ( void  )

Creates a new empty region and transfers ownership to the caller.

Definition at line 738 of file IR.cpp.

References wrap().

◆ mlirRegionDestroy()

MLIR_CAPI_EXPORTED void mlirRegionDestroy ( MlirRegion  region)

Takes a region owned by the caller and destroys it.

Definition at line 786 of file IR.cpp.

◆ mlirRegionEqual()

MLIR_CAPI_EXPORTED 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 740 of file IR.cpp.

References unwrap().

◆ mlirRegionGetFirstBlock()

MLIR_CAPI_EXPORTED MlirBlock mlirRegionGetFirstBlock ( MlirRegion  region)

Gets the first block in the region.

Definition at line 744 of file IR.cpp.

References mlir::Region::empty(), mlir::Region::front(), unwrap(), and wrap().

◆ mlirRegionGetNextInOperation()

MLIR_CAPI_EXPORTED MlirRegion mlirRegionGetNextInOperation ( MlirRegion  region)

Returns the region immediately following the given region in its parent operation.

Definition at line 547 of file IR.cpp.

References mlir::Operation::getNumRegions(), mlir::Region::getParentOp(), mlir::Operation::getRegion(), mlir::Region::getRegionNumber(), unwrap(), and wrap().

◆ mlirRegionInsertOwnedBlock()

MLIR_CAPI_EXPORTED 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 755 of file IR.cpp.

References unwrap().

◆ mlirRegionInsertOwnedBlockAfter()

MLIR_CAPI_EXPORTED 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 761 of file IR.cpp.

References mlir::Region::begin(), mlir::Region::getBlocks(), mlirBlockIsNull(), and unwrap().

◆ mlirRegionInsertOwnedBlockBefore()

MLIR_CAPI_EXPORTED 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 775 of file IR.cpp.

References mlirBlockIsNull(), mlirRegionAppendOwnedBlock(), and unwrap().

◆ mlirRegionIsNull()

static bool mlirRegionIsNull ( MlirRegion  region)
inlinestatic

Checks whether a region is null.

Definition at line 736 of file IR.h.

Referenced by mlir::python::PyRegion::PyRegion().

◆ mlirRegionTakeBody()

MLIR_CAPI_EXPORTED void mlirRegionTakeBody ( MlirRegion  target,
MlirRegion  source 
)

Moves the entire content of the source region to the target region.

Definition at line 790 of file IR.cpp.

References unwrap().

◆ mlirSymbolTableCreate()

MLIR_CAPI_EXPORTED 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 1120 of file IR.cpp.

References unwrap(), and wrap().

Referenced by mlir::python::PySymbolTable::PySymbolTable().

◆ mlirSymbolTableDestroy()

MLIR_CAPI_EXPORTED void mlirSymbolTableDestroy ( MlirSymbolTable  symbolTable)

Destroys the symbol table created with mlirSymbolTableCreate.

This does not affect the operations in the table.

Definition at line 1126 of file IR.cpp.

References unwrap().

Referenced by mlir::python::PySymbolTable::~PySymbolTable().

◆ mlirSymbolTableErase()

MLIR_CAPI_EXPORTED void mlirSymbolTableErase ( MlirSymbolTable  symbolTable,
MlirOperation  operation 
)

Removes the given operation from the symbol table and erases it.

Definition at line 1140 of file IR.cpp.

References unwrap().

Referenced by mlir::python::PySymbolTable::erase().

◆ mlirSymbolTableGetSymbolAttributeName()

MLIR_CAPI_EXPORTED MlirStringRef mlirSymbolTableGetSymbolAttributeName ( void  )

Returns the name of the attribute used to store symbol names compatible with symbol tables.

Definition at line 1112 of file IR.cpp.

References mlir::SymbolTable::getSymbolAttrName(), and wrap().

Referenced by mlir::python::PySymbolTable::getSymbolName(), mlir::python::PySymbolTable::insert(), and mlir::python::PySymbolTable::setSymbolName().

◆ mlirSymbolTableGetVisibilityAttributeName()

MLIR_CAPI_EXPORTED MlirStringRef mlirSymbolTableGetVisibilityAttributeName ( void  )

Returns the name of the attribute used to store symbol visibility.

Definition at line 1116 of file IR.cpp.

References mlir::SymbolTable::getVisibilityAttrName(), and wrap().

Referenced by mlir::python::PySymbolTable::getVisibility(), and mlir::python::PySymbolTable::setVisibility().

◆ mlirSymbolTableInsert()

MLIR_CAPI_EXPORTED 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 1135 of file IR.cpp.

References unwrap(), and wrap().

Referenced by mlir::python::PySymbolTable::insert().

◆ mlirSymbolTableIsNull()

static bool mlirSymbolTableIsNull ( MlirSymbolTable  symbolTable)
inlinestatic

Returns true if the symbol table is null.

Definition at line 1066 of file IR.h.

Referenced by mlir::python::PySymbolTable::PySymbolTable().

◆ mlirSymbolTableLookup()

MLIR_CAPI_EXPORTED 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 1130 of file IR.cpp.

References MlirStringRef::data, MlirStringRef::length, unwrap(), and wrap().

Referenced by mlir::python::PySymbolTable::dunderGetItem().

◆ mlirSymbolTableReplaceAllSymbolUses()

MLIR_CAPI_EXPORTED 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 1145 of file IR.cpp.

References mlir::get(), mlir::SymbolTable::replaceAllSymbolUses(), unwrap(), and wrap().

Referenced by mlir::python::PySymbolTable::replaceAllSymbolUses().

◆ mlirSymbolTableWalkSymbolTables()

MLIR_CAPI_EXPORTED 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 1156 of file IR.cpp.

References unwrap(), mlir::SymbolTable::walkSymbolTables(), and wrap().

Referenced by mlir::python::PySymbolTable::walkSymbolTables().

◆ mlirTypeDump()

MLIR_CAPI_EXPORTED void mlirTypeDump ( MlirType  type)

Prints the type to the standard error stream.

Definition at line 1042 of file IR.cpp.

References unwrap().

◆ mlirTypeEqual()

MLIR_CAPI_EXPORTED bool mlirTypeEqual ( MlirType  t1,
MlirType  t2 
)

Checks if two types are equal.

Definition at line 1033 of file IR.cpp.

References unwrap().

Referenced by mlir::python::PyType::operator==().

◆ mlirTypeGetContext()

MLIR_CAPI_EXPORTED MlirContext mlirTypeGetContext ( MlirType  type)

Gets the context that a type was created with.

Definition at line 1021 of file IR.cpp.

References getContext(), unwrap(), and wrap().

Referenced by mlir::python::PyType::createFromCapsule().

◆ mlirTypeGetDialect()

MLIR_CAPI_EXPORTED MlirDialect mlirTypeGetDialect ( MlirType  type)

Gets the dialect a type belongs to.

Definition at line 1029 of file IR.cpp.

References unwrap(), and wrap().

Referenced by mlir::python::PyValue::maybeDownCast().

◆ mlirTypeGetTypeID()

MLIR_CAPI_EXPORTED MlirTypeID mlirTypeGetTypeID ( MlirType  type)

Gets the type ID of the type.

Definition at line 1025 of file IR.cpp.

References unwrap(), and wrap().

Referenced by mlir::python::PyValue::maybeDownCast().

◆ mlirTypeIsNull()

static bool mlirTypeIsNull ( MlirType  type)
inlinestatic

◆ mlirTypeParseGet()

MLIR_CAPI_EXPORTED MlirType mlirTypeParseGet ( MlirContext  context,
MlirStringRef  type 
)

Parses a type. The type is owned by the context.

Definition at line 1017 of file IR.cpp.

References mlir::parseType(), unwrap(), and wrap().

◆ mlirTypePrint()

MLIR_CAPI_EXPORTED void mlirTypePrint ( MlirType  type,
MlirStringCallback  callback,
void *  userData 
)

Prints a location by sending chunks of the string representation and forwarding userData tocallback`.

Note that the callback may be called several times with consecutive chunks of the string.

Definition at line 1037 of file IR.cpp.

References mlir::Diagnostic::print(), and unwrap().

Referenced by mlir::python::PyConcreteType< DerivedTy, BaseTy >::bind().

◆ mlirValueDump()

MLIR_CAPI_EXPORTED void mlirValueDump ( MlirValue  value)

Prints the value to the standard error stream.

Definition at line 953 of file IR.cpp.

References unwrap().

◆ mlirValueEqual()

MLIR_CAPI_EXPORTED bool mlirValueEqual ( MlirValue  value1,
MlirValue  value2 
)

Returns 1 if two values are equal, 0 otherwise.

Definition at line 911 of file IR.cpp.

References unwrap().

◆ mlirValueGetFirstUse()

MLIR_CAPI_EXPORTED MlirOpOperand mlirValueGetFirstUse ( MlirValue  value)

Returns an op operand representing the first use of the value, or a null op operand if there are no uses.

Definition at line 968 of file IR.cpp.

References mlir::ValueUseIterator< OperandType >::getOperand(), unwrap(), mlir::Value::use_begin(), mlir::Value::use_empty(), and wrap().

◆ mlirValueGetType()

MLIR_CAPI_EXPORTED MlirType mlirValueGetType ( MlirValue  value)

Returns the type of the value.

Definition at line 945 of file IR.cpp.

References unwrap(), and wrap().

Referenced by mlir::python::PyValue::maybeDownCast().

◆ mlirValueIsABlockArgument()

MLIR_CAPI_EXPORTED bool mlirValueIsABlockArgument ( MlirValue  value)

Returns 1 if the value is a block argument, 0 otherwise.

Definition at line 915 of file IR.cpp.

References unwrap().

Referenced by mlir::python::PyValue::createFromCapsule().

◆ mlirValueIsAOpResult()

MLIR_CAPI_EXPORTED bool mlirValueIsAOpResult ( MlirValue  value)

Returns 1 if the value is an operation result, 0 otherwise.

Definition at line 919 of file IR.cpp.

References unwrap().

Referenced by mlir::python::PyValue::createFromCapsule().

◆ mlirValueIsNull()

static bool mlirValueIsNull ( MlirValue  value)
inlinestatic

Returns whether the value is null.

Definition at line 875 of file IR.h.

Referenced by mlir::python::PyValue::createFromCapsule(), and pybind11::detail::type_caster< MlirValue >::load().

◆ mlirValuePrint()

MLIR_CAPI_EXPORTED void mlirValuePrint ( MlirValue  value,
MlirStringCallback  callback,
void *  userData 
)

Prints a value by sending chunks of the string representation and forwarding userData tocallback`.

Note that the callback may be called several times with consecutive chunks of the string.

Definition at line 955 of file IR.cpp.

References mlir::Diagnostic::print(), and unwrap().

◆ mlirValuePrintAsOperand()

MLIR_CAPI_EXPORTED void mlirValuePrintAsOperand ( MlirValue  value,
MlirAsmState  state,
MlirStringCallback  callback,
void *  userData 
)

Prints a value as an operand (i.e., the ValueID).

Definition at line 961 of file IR.cpp.

◆ mlirValueReplaceAllUsesOfWith()

MLIR_CAPI_EXPORTED void mlirValueReplaceAllUsesOfWith ( MlirValue  of,
MlirValue  with 
)

Replace all uses of 'of' value with the 'with' value, updating anything in the IR that uses 'of' to use the other value instead.

When this returns there are zero uses of 'of'.

Definition at line 978 of file IR.cpp.

References unwrap().

◆ mlirValueSetType()

MLIR_CAPI_EXPORTED void mlirValueSetType ( MlirValue  value,
MlirType  type 
)

Set the type of the value.

Definition at line 949 of file IR.cpp.

References unwrap().