# `Beaver.MLIR.CAPI`

This module ships MLIR's C API. These NIFs are generated from headers in LLVM repo and this repo's headers providing supplemental functions.

## MLIR CAPIs might trigger Elixir code execution
Some MLIR CAPIs might trigger Elixir callbacks through a context worker.
Their entry points use an asynchronous or dirty-scheduler boundary so a
normal BEAM scheduler never waits for a callback that it must itself run.
Callback implementations must not synchronously re-enter the same callback
attachment.

Here are the list of these MLIR CAPIs and the Elixir code to execute they might trigger:
- `mlirPassManagerRunOnOp`: the MLIR pass implemented in Elixir.
- `mlirTransformApplyNamedSequence`: Transform operations implemented in Elixir.
- `mlirOperationVerify`, `mlirAttributeParseGet`, `mlirTypeParseGet`, `mlirModuleCreateParse`: native diagnostic collection and any external operation interface reached during parsing or verification.

# `beaver_raw_action_tracing_attach`

# `beaver_raw_action_tracing_detach`

# `beaver_raw_action_tracing_drain`

# `beaver_raw_apply_conversion_async`

# `beaver_raw_apply_rewrite_pattern_set_with_module`

# `beaver_raw_apply_rewrite_pattern_set_with_op`

# `beaver_raw_callback_reply`

# `beaver_raw_callback_reply_code`

# `beaver_raw_conditionally_speculatable_attach_fallback_model`

Attach a new FallbackModel for the ConditionallySpeculatable interface to
the named operation. The FallbackModel will call the provided callbacks.

# `beaver_raw_conditionally_speculatable_query_async`

# `beaver_raw_context_attach_diagnostic_handler`

# `beaver_raw_conversion_pattern_add`

Create a conversion pattern that matches the operation with the given
rootName, corresponding to mlir::OpConversionPattern.

# `beaver_raw_conversion_target_add_dynamic_dialect`

Register the given dialect as dynamically legal, with a callback to
determine per-instance legality for all operations in the dialect. The
callback must not be NULL.

# `beaver_raw_conversion_target_add_dynamic_op`

Register the given operation as dynamically legal, with a callback to
determine per-instance legality. The callback must not be NULL.

# `beaver_raw_conversion_target_add_static`

# `beaver_raw_conversion_target_create`

# `beaver_raw_conversion_target_destroy`

# `beaver_raw_conversion_target_mark_recursively_legal`

Mark the given operation as recursively legal. The optional callback (may
be NULL) determines whether a specific instance is recursively legal; a NULL
callback marks the operation as unconditionally recursively legal.

# `beaver_raw_conversion_target_mark_unknown_dynamic`

Mark unknown operations as dynamically legal, with a callback. The callback
must not be NULL.

# `beaver_raw_create_mlir_pass`

# `beaver_raw_create_mlir_rewrite_pattern`

# `beaver_raw_deallocate_opaque_ptr`

# `beaver_raw_destroy_frozen_rewrite_pattern_set`

# `beaver_raw_destroy_pm_async`

# `beaver_raw_destroy_rewrite_pattern_set`

# `beaver_raw_enif_functions`

# `beaver_raw_enif_signatures`

# `beaver_raw_external_interface_release`

# `beaver_raw_get_null_ptr`

# `beaver_raw_get_string_ref`

# `beaver_raw_jit_invoke_with_terms`

# `beaver_raw_jit_invoke_with_terms_cpu_bound`

# `beaver_raw_jit_invoke_with_terms_io_bound`

# `beaver_raw_jit_register_enif`

# `beaver_raw_memory_effects_attach_fallback_model`

Attach a new FallbackModel for the MemoryEffectsOpInterface to the named
operation. The FallbackModel will call the provided callbacks.

# `beaver_raw_memref_type_get_strides_and_offset`

# `beaver_raw_mlir_type_of_enif_obj`

# `beaver_raw_pattern_descriptor_op_interface_attach_fallback_model`

Attach PatternDescriptorOpInterface to the operation with the given name
using the provided callbacks.

# `beaver_raw_read_opaque_ptr`

# `beaver_raw_registered_dialects`

# `beaver_raw_registered_ops`

# `beaver_raw_run_pm_on_op_async`

# `beaver_raw_string_printer_callback`

# `beaver_raw_string_printer_flush`

# `beaver_raw_to_string_AffineMap`

# `beaver_raw_to_string_Attribute`

# `beaver_raw_to_string_Diagnostic`

# `beaver_raw_to_string_Identifier`

# `beaver_raw_to_string_Location`

# `beaver_raw_to_string_Operation`

# `beaver_raw_to_string_OperationBytecode`

# `beaver_raw_to_string_OperationGeneric`

# `beaver_raw_to_string_OperationSpecialized`

# `beaver_raw_to_string_OpPassManager`

# `beaver_raw_to_string_StringRef`

# `beaver_raw_to_string_Type`

# `beaver_raw_to_string_Value`

# `beaver_raw_transform_op_interface_attach_fallback_model`

Attach TransformOpInterface to the operation with the given name using
the provided callbacks.

# `beaver_raw_transform_state_params`

# `beaver_raw_transform_state_payload_ops`

# `beaver_raw_transform_state_payload_values`

# `beaver_raw_triton_register_dialects`

# `beaver_raw_triton_register_passes`

# `beaver_raw_type_converter_add_1_to_n_conversion`

Add a 1:N type conversion function to the given TypeConverter.

# `beaver_raw_type_converter_add_1_to_n_target_materialization`

Register a 1:N target materialization with the given TypeConverter.

# `beaver_raw_type_converter_add_conversion`

Add a type conversion function to the given TypeConverter.

# `beaver_raw_type_converter_add_source_materialization`

Register a source materialization with the given TypeConverter. This is
invoked when a replacement value must be converted back to its original
source type because some uses persist beyond the main conversion.

# `beaver_raw_type_converter_add_target_materialization`

Register a target materialization with the given TypeConverter. This is
invoked when a value must be converted to a target type according to a
pattern's type converter.

# `beaver_raw_type_converter_convert_async`

# `beaver_raw_type_converter_create`

# `beaver_raw_type_converter_destroy`

# `beaver_raw_type_converter_reply_callback`

# `beaver_raw_type_converter_reply_types`

# `beaver_raw_type_converter_reply_value`

# `beaver_raw_type_converter_reply_values`

# `beaver_raw_unranked_memref_descriptor_deallocate_with_c`

# `beaver_raw_unranked_memref_descriptor_deallocate_with_enif`

# `beaver_raw_unranked_memref_descriptor_empty`

# `beaver_raw_unranked_memref_descriptor_get_offset`

# `beaver_raw_unranked_memref_descriptor_get_rank`

# `beaver_raw_unranked_memref_descriptor_get_sizes`

# `beaver_raw_unranked_memref_descriptor_get_strides`

# `beaver_raw_value_replace_uses_with_if`

# `beaverContextAddWork`

Schedules callback-bridging work on the context's LLVM pool, outside BEAM
scheduler threads. An elastic pool prevents nested pass/rewrite callbacks
from starving a pool shared by multiple contexts.

# `beaverContextGetDialects`

# `beaverContextGetOps`

# `beaverDenseElementsAttrGetType`

# `beaverGetContainerModuleAttrName`

# `beaverGetLLVMVersion`

Returns the LLVM version and source revision used to build Beaver. The
returned string has static storage duration and must not be freed.

# `beaverGetNumWorkgroupAttributionsAttrName`

# `beaverGetReassociationIndicesForReshape`

# `beaverGreedyRewriteDriverConfigGet`

# `beaverIRDLGetDefinedAttr`

# `beaverIRDLGetDefinedType`

# `beaverIRMappingClear`

# `beaverIsNullAttribute`

# `beaverIsNullBlock`

# `beaverIsNullContext`

# `beaverIsNullDialect`

# `beaverIsNullDialectRegistry`

# `beaverIsNullExecutionEngine`

# `beaverIsNullLocation`

# `beaverIsNullModule`

# `beaverIsNullOperation`

# `beaverIsNullRegion`

# `beaverIsNullSymbolTable`

# `beaverIsNullType`

# `beaverIsNullValue`

# `beaverIsOpNameTerminator`

# `beaverLlvmThreadPoolCreateElastic`

Creates a reusable thread pool that grows beyond its reported parallelism
when every worker is blocked by nested synchronous callback work.

# `beaverLocationPrint`

# `beaverLogicalResultIsFailure`

# `beaverLogicalResultIsSuccess`

# `beaverNamedAttributeGetAttribute`

# `beaverNamedAttributeGetName`

# `beaverOperationDumpGeneric`

# `beaverOperationPrintGenericOpForm`

# `beaverOperationPrintSpecializedFrom`

# `beaverOperationStateGetContext`

# `beaverOperationStateGetLocation`

# `beaverOperationStateGetName`

# `beaverOperationStateGetNumAttributes`

# `beaverOperationStateGetNumOperands`

# `beaverOperationStateGetNumRegions`

# `beaverOperationStateGetNumResults`

# `beaverOperationStructuralHashValue`

# `beaverPassCreate`

# `beaverPassGetArgument`

# `beaverPassGetDescription`

# `beaverPassGetName`

# `beaverPassManagerEnableTiming`

# `beaverPassManagerGetContext`

# `beaverSetGlobalDebugTypes`

# `beaverShapedTypeGetNumElements`

# `beaverStringRefGetData`

# `beaverStringRefGetLength`

# `load_nif`

# `mlirAffineAddExprGet`

Creates an affine add expression with 'lhs' and 'rhs'.

# `mlirAffineBinaryOpExprGetLHS`

Returns the left hand side affine expression of the given affine binary
operation expression.

# `mlirAffineBinaryOpExprGetRHS`

Returns the right hand side affine expression of the given affine binary
operation expression.

# `mlirAffineCeilDivExprGet`

Creates an affine ceildiv expression with 'lhs' and 'rhs'.

# `mlirAffineConstantExprGet`

Creates an affine constant expression with 'constant' in the context.

# `mlirAffineConstantExprGetValue`

Returns the value of the given affine constant expression.

# `mlirAffineDimExprGet`

Creates an affine dimension expression with 'position' in the context.

# `mlirAffineDimExprGetPosition`

Returns the position of the given affine dimension expression.

# `mlirAffineExprCompose`

Composes the given map with the given expression.

# `mlirAffineExprDump`

Prints the affine expression to the standard error stream.

# `mlirAffineExprEqual`

Returns `true` if the two affine expressions are equal.

# `mlirAffineExprGetContext`

Gets the context that owns the affine expression.

# `mlirAffineExprGetLargestKnownDivisor`

Returns the greatest known integral divisor of this affine expression. The
result is always positive.

# `mlirAffineExprIsAAdd`

Checks whether the given affine expression is an add expression.

# `mlirAffineExprIsABinary`

Checks whether the given affine expression is binary.

# `mlirAffineExprIsACeilDiv`

Checks whether the given affine expression is an ceildiv expression.

# `mlirAffineExprIsAConstant`

Checks whether the given affine expression is a constant expression.

# `mlirAffineExprIsADim`

Checks whether the given affine expression is a dimension expression.

# `mlirAffineExprIsAFloorDiv`

Checks whether the given affine expression is an floordiv expression.

# `mlirAffineExprIsAMod`

Checks whether the given affine expression is an mod expression.

# `mlirAffineExprIsAMul`

Checks whether the given affine expression is an mul expression.

# `mlirAffineExprIsASymbol`

Checks whether the given affine expression is a symbol expression.

# `mlirAffineExprIsFunctionOfDim`

Checks whether the given affine expression involves AffineDimExpr
'position'.

# `mlirAffineExprIsMultipleOf`

Checks whether the given affine expression is a multiple of 'factor'.

# `mlirAffineExprIsNull`

Returns `true` if the given affine expression is a null expression. Note
constant zero is not a null expression.

# `mlirAffineExprIsPureAffine`

Checks whether the given affine expression is a pure affine expression, i.e.
mul, floordiv, ceildic, and mod is only allowed w.r.t constants.

# `mlirAffineExprIsSymbolicOrConstant`

Checks whether the given affine expression is made out of only symbols and
constants.

# `mlirAffineExprPrint`

Prints an affine expression by sending chunks of the string representation
and forwarding `userData to `callback`. Note that the callback may be called
several times with consecutive chunks of the string.

# `mlirAffineExprShiftDims`

Replace dims[offset ... numDims)
by dims[offset + shift ... shift + numDims).

# `mlirAffineExprShiftSymbols`

Replace symbols[offset ... numSymbols)
by symbols[offset + shift ... shift + numSymbols).

# `mlirAffineFloorDivExprGet`

Creates an affine floordiv expression with 'lhs' and 'rhs'.

# `mlirAffineMapAttrGet`

Creates an affine map attribute wrapping the given map. The attribute
belongs to the same context as the affine map.

# `mlirAffineMapAttrGetName`

# `mlirAffineMapAttrGetTypeID`

Returns the typeID of an AffineMap attribute.

# `mlirAffineMapAttrGetValue`

Returns the affine map wrapped in the given affine map attribute.

# `mlirAffineMapCompressUnusedSymbols`

Returns the simplified affine map resulting from dropping the symbols that
do not appear in any of the individual maps in `affineMaps`.
Asserts that all maps in `affineMaps` are normalized to the same number of
dims and symbols.
Takes a callback `populateResult` to fill the `res` container with value
`m` at entry `idx`. This allows returning without worrying about ownership
considerations.

# `mlirAffineMapConstantGet`

Creates a single constant result affine map in the context. The affine map
is owned by the context.

# `mlirAffineMapDump`

Prints the affine map to the standard error stream.

# `mlirAffineMapEmptyGet`

Creates a zero result affine map with no dimensions or symbols in the
context. The affine map is owned by the context.

# `mlirAffineMapEqual`

Checks if two affine maps are equal.

# `mlirAffineMapGet`

Creates an affine map with results defined by the given list of affine
expressions. The map resulting map also has the requested number of input
dimensions and symbols, regardless of them being used in the results.

# `mlirAffineMapGetContext`

Gets the context that the given affine map was created with

# `mlirAffineMapGetMajorSubMap`

Returns the affine map consisting of the most major `numResults` results.
Returns the null AffineMap if the `numResults` is equal to zero.
Returns the `affineMap` if `numResults` is greater or equals to number of
results of the given affine map.

# `mlirAffineMapGetMinorSubMap`

Returns the affine map consisting of the most minor `numResults` results.
Returns the null AffineMap if the `numResults` is equal to zero.
Returns the `affineMap` if `numResults` is greater or equals to number of
results of the given affine map.

# `mlirAffineMapGetNumDims`

Returns the number of dimensions of the given affine map.

# `mlirAffineMapGetNumInputs`

Returns the number of inputs (dimensions + symbols) of the given affine
map.

# `mlirAffineMapGetNumResults`

Returns the number of results of the given affine map.

# `mlirAffineMapGetNumSymbols`

Returns the number of symbols of the given affine map.

# `mlirAffineMapGetResult`

Returns the result at the given position.

# `mlirAffineMapGetSingleConstantResult`

Returns the constant result of the given affine map. The function asserts
that the map has a single constant result.

# `mlirAffineMapGetSubMap`

Returns the affine map consisting of the `resultPos` subset.

# `mlirAffineMapIsEmpty`

Checks whether the given affine map is an empty affine map.

# `mlirAffineMapIsIdentity`

Checks whether the given affine map is an identity affine map. The function
asserts that the number of dimensions is greater or equal to the number of
results.

# `mlirAffineMapIsMinorIdentity`

Checks whether the given affine map is a minor identity affine map.

# `mlirAffineMapIsNull`

Checks whether an affine map is null.

# `mlirAffineMapIsPermutation`

Checks whether the given affine map represents a symbol-less permutation
map.

# `mlirAffineMapIsProjectedPermutation`

Checks whether the given affine map represents a subset of a symbol-less
permutation map.

# `mlirAffineMapIsSingleConstant`

Checks whether the given affine map is a single result constant affine
map.

# `mlirAffineMapMinorIdentityGet`

Creates an identity affine map on the most minor dimensions in the context.
The affine map is owned by the context. The function asserts that the number
of dimensions is greater or equal to the number of results.

# `mlirAffineMapMultiDimIdentityGet`

Creates an affine map with 'numDims' identity in the context. The affine map
is owned by the context.

# `mlirAffineMapPermutationGet`

Creates an affine map with a permutation expression and its size in the
context. The permutation expression is a non-empty vector of integers.
The elements of the permutation vector must be continuous from 0 and cannot
be repeated (i.e. `[1,2,0]` is a valid permutation. `[2,0]` or `[1,1,2]` is
an invalid permutation.) The affine map is owned by the context.

# `mlirAffineMapPrint`

Prints an affine map by sending chunks of the string representation and
forwarding `userData to `callback`. Note that the callback may be called
several times with consecutive chunks of the string.

# `mlirAffineMapReplace`

Apply AffineExpr::replace(`map`) to each of the results and return a new
new AffineMap with the new results and the specified number of dims and
symbols.

# `mlirAffineMapZeroResultGet`

Creates a zero result affine map of the given dimensions and symbols in the
context. The affine map is owned by the context.

# `mlirAffineModExprGet`

Creates an affine mod expression with 'lhs' and 'rhs'.

# `mlirAffineMulExprGet`

Creates an affine mul expression with 'lhs' and 'rhs'.

# `mlirAffineSymbolExprGet`

Creates an affine symbol expression with 'position' in the context.

# `mlirAffineSymbolExprGetPosition`

Returns the position of the given affine symbol expression.

# `mlirAMDGPUTDMBaseTypeGet`

# `mlirAMDGPUTDMBaseTypeGetName`

# `mlirAMDGPUTDMBaseTypeGetTypeID`

# `mlirAMDGPUTDMDescriptorTypeGet`

# `mlirAMDGPUTDMDescriptorTypeGetName`

# `mlirAMDGPUTDMDescriptorTypeGetTypeID`

# `mlirAMDGPUTDMGatherBaseTypeGet`

# `mlirAMDGPUTDMGatherBaseTypeGetName`

# `mlirAMDGPUTDMGatherBaseTypeGetTypeID`

# `mlirAnyQuantizedTypeGet`

Creates an instance of AnyQuantizedType with the given parameters in the
same context as `storageType` and returns it. The instance is owned by the
context.

# `mlirAnyQuantizedTypeGetName`

# `mlirAnyQuantizedTypeGetTypeID`

# `mlirApplyFullConversion`

Apply a full conversion on the given operation.

# `mlirApplyPartialConversion`

Apply a partial conversion on the given operation.

# `mlirApplyPatternsAndFoldGreedily`

# `mlirApplyPatternsAndFoldGreedilyWithOp`

# `mlirArrayAttrGet`

Creates an array element containing the given list of elements in the given
context.

# `mlirArrayAttrGetElement`

Returns pos-th element stored in the given array attribute.

# `mlirArrayAttrGetName`

# `mlirArrayAttrGetNumElements`

Returns the number of elements stored in the given array attribute.

# `mlirArrayAttrGetTypeID`

Returns the typeID of an Array attribute.

# `mlirAsmStateCreateForOperation`

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().

# `mlirAsmStateCreateForValue`

Creates new AsmState from value.
Must be freed with a call to mlirAsmStateDestroy().

# `mlirAsmStateDestroy`

Destroys printing flags created with mlirAsmStateCreate.

# `mlirAttributeDump`

Prints the attribute to the standard error stream.

# `mlirAttributeEqual`

Checks if two attributes are equal.

# `mlirAttributeGetContext`

Gets the context that an attribute was created with.

# `mlirAttributeGetDialect`

Gets the dialect of the attribute.

# `mlirAttributeGetNull`

Returns an empty attribute.

# `mlirAttributeGetType`

Gets the type of this attribute.

# `mlirAttributeGetTypeID`

Gets the type id of the attribute.

# `mlirAttributeIsAAffineMap`

Checks whether the given attribute is an affine map attribute.

# `mlirAttributeIsAArray`

Checks whether the given attribute is an array attribute.

# `mlirAttributeIsABool`

Checks whether the given attribute is a bool attribute.

# `mlirAttributeIsAComplex`

Checks whether the given attribute is a complex attribute.

# `mlirAttributeIsADenseBoolArray`

Checks whether the given attribute is a dense array attribute.

# `mlirAttributeIsADenseElements`

Checks whether the given attribute is a dense elements attribute.

# `mlirAttributeIsADenseF32Array`

# `mlirAttributeIsADenseF64Array`

# `mlirAttributeIsADenseFPElements`

# `mlirAttributeIsADenseI8Array`

# `mlirAttributeIsADenseI16Array`

# `mlirAttributeIsADenseI32Array`

# `mlirAttributeIsADenseI64Array`

# `mlirAttributeIsADenseIntElements`

# `mlirAttributeIsADenseResourceElements`

# `mlirAttributeIsADictionary`

Checks whether the given attribute is a dictionary attribute.

# `mlirAttributeIsADynamicAttr`

Check if the given attribute is a dynamic attribute.

# `mlirAttributeIsAElements`

Checks whether the given attribute is an elements attribute.

# `mlirAttributeIsAEmitCCmpPredicate`

# `mlirAttributeIsAEmitCOpaque`

# `mlirAttributeIsAFlatSymbolRef`

Checks whether the given attribute is a flat symbol reference attribute.

# `mlirAttributeIsAFloat`

Checks whether the given attribute is a floating point attribute.

# `mlirAttributeIsAGPUObjectAttr`

# `mlirAttributeIsAInteger`

Checks whether the given attribute is an integer attribute.

# `mlirAttributeIsAIntegerSet`

Checks whether the given attribute is an integer set attribute.

# `mlirAttributeIsALocation`

# `mlirAttributeIsAOpaque`

Checks whether the given attribute is an opaque attribute.

# `mlirAttributeIsASparseElements`

Checks whether the given attribute is a sparse elements attribute.

# `mlirAttributeIsASparseTensorEncodingAttr`

Checks whether the given attribute is a `sparse_tensor.encoding` attribute.

# `mlirAttributeIsAStridedLayout`

# `mlirAttributeIsAString`

Checks whether the given attribute is a string attribute.

# `mlirAttributeIsASymbolRef`

Checks whether the given attribute is a symbol reference attribute.

# `mlirAttributeIsAType`

Checks whether the given attribute is a type attribute.

# `mlirAttributeIsAUnit`

Checks whether the given attribute is a unit attribute.

# `mlirAttributeIsNull`

Checks whether an attribute is null.

# `mlirAttributeParseGet`

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

# `mlirAttributeParseGetWithDiagnostics`

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

# `mlirAttributePrint`

Prints an attribute by sending chunks of the string representation and
forwarding `userData to `callback`. Note that the callback may be called
several times with consecutive chunks of the string.

# `mlirBF16TypeGet`

Creates a bf16 type in the given context. The type is owned by the
context.

# `mlirBF16TypeGetName`

# `mlirBFloat16TypeGetTypeID`

Returns the typeID of an BFloat16 type.

# `mlirBlockAddArgument`

Appends an argument of the specified type to the block. Returns the newly
added argument.

# `mlirBlockAppendOwnedOperation`

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

# `mlirBlockArgumentGetArgNumber`

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

# `mlirBlockArgumentGetOwner`

Returns the block in which this value is defined as an argument. Asserts if
the value is not a block argument.

# `mlirBlockArgumentSetLocation`

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

# `mlirBlockArgumentSetType`

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

# `mlirBlockCreate`

Creates a new empty block with the given argument types and transfers
ownership to the caller.

# `mlirBlockDestroy`

Takes a block owned by the caller and destroys it.

# `mlirBlockDetach`

Detach a block from the owning region and assume ownership.

# `mlirBlockEqual`

Checks whether two blocks handles point to the same block. This does not
perform deep comparison.

# `mlirBlockEraseArgument`

Erase the argument at 'index' and remove it from the argument list.

# `mlirBlockGetArgument`

Returns `pos`-th argument of the block.

# `mlirBlockGetFirstOperation`

Returns the first operation in the block.

# `mlirBlockGetNextInRegion`

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

# `mlirBlockGetNumArguments`

Returns the number of arguments of the block.

# `mlirBlockGetNumPredecessors`

Returns the number of predecessor blocks of the block.

# `mlirBlockGetNumSuccessors`

Returns the number of successor blocks of the block.

# `mlirBlockGetParentOperation`

Returns the closest surrounding operation that contains this block.

# `mlirBlockGetParentRegion`

Returns the region that contains this block.

# `mlirBlockGetPredecessor`

Returns `pos`-th predecessor of the block.
WARNING: This getter is more expensive than the others here because
the impl actually iterates the use-def chain (of block operands) anew for
each indexed access.

# `mlirBlockGetSuccessor`

Returns `pos`-th successor of the block.

# `mlirBlockGetTerminator`

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

# `mlirBlockInsertArgument`

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

# `mlirBlockInsertOwnedOperation`

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.

# `mlirBlockInsertOwnedOperationAfter`

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.

# `mlirBlockInsertOwnedOperationBefore`

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.

# `mlirBlockIsNull`

Checks whether a block is null.

# `mlirBlockPrint`

Prints a block by sending chunks of the string representation and
forwarding `userData to `callback`. Note that the callback may be called
several times with consecutive chunks of the string.

# `mlirBoolAttrGet`

Creates a bool attribute in the given context with the given value.

# `mlirBoolAttrGetValue`

Returns the value stored in the given bool attribute.

# `mlirBytecodeWriterConfigCreate`

Creates new printing flags with defaults, intended for customization.
Must be freed with a call to mlirBytecodeWriterConfigDestroy().

# `mlirBytecodeWriterConfigDesiredEmitVersion`

Sets the version to emit in the writer config.

# `mlirBytecodeWriterConfigDestroy`

Destroys printing flags created with mlirBytecodeWriterConfigCreate.

# `mlirCalibratedQuantizedTypeGet`

Creates an instance of CalibratedQuantizedType with the given parameters
in the same context as `expressedType` and returns it. The instance is owned
by the context.

# `mlirCalibratedQuantizedTypeGetMax`

Returns the max value of the given calibrated quantized type.

# `mlirCalibratedQuantizedTypeGetMin`

Returns the min value of the given calibrated quantized type.

# `mlirCalibratedQuantizedTypeGetName`

# `mlirCalibratedQuantizedTypeGetTypeID`

# `mlirComplexAttrDoubleGet`

Creates a complex attribute in the given context with the given
double real and imaginary values and double-precision FP semantics.

# `mlirComplexAttrDoubleGetChecked`

Same as "mlirComplexAttrDoubleGet", but if the type is not valid for a
construction of a ComplexAttr, returns a null MlirAttribute.

# `mlirComplexAttrDoubleGetCheckedWithDiagnostics`

Same as "mlirComplexAttrDoubleGet", but if the type is not valid for a
construction of a ComplexAttr, returns a null MlirAttribute.

# `mlirComplexAttrGetImagDouble`

Returns the imaginaryvalue stored in the given complex attribute,
interpreting the value as double.

# `mlirComplexAttrGetRealDouble`

Returns the real value stored in the given complex attribute, interpreting
the value as double.

# `mlirComplexAttrGetTypeID`

Returns the typeID of a Complex attribute.

# `mlirComplexTypeGet`

Creates a complex type with the given element type in the same context as
the element type. The type is owned by the context.

# `mlirComplexTypeGetElementType`

Returns the element type of the given complex type.

# `mlirComplexTypeGetName`

# `mlirComplexTypeGetTypeID`

Returns the typeID of an Complex type.

# `mlirConditionallySpeculatableOpInterfaceGetSpeculatability`

Returns the speculatability of the given operation.
The operation must implement the ConditionallySpeculatable interface.

# `mlirConditionallySpeculatableOpInterfaceTypeID`

Returns the interface TypeID of the ConditionallySpeculatable interface.

# `mlirContextAppendDialectRegistry`

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

# `mlirContextAttachDiagnosticHandler`

Attaches the diagnostic handler to the context. Handlers are invoked in the
reverse order of attachment until one of them processes the diagnostic
completely. When a handler is invoked it is passed the `userData` that was
provided when it was attached. If non-NULL, `deleteUserData` is called once
the system no longer needs to call the handler (for instance after the
handler is detached or the context is destroyed). Returns an identifier that
can be used to detach the handler.

# `mlirContextCreate`

Creates an MLIR context and transfers its ownership to the caller.
This sets the default multithreading option (enabled).

# `mlirContextCreateWithRegistry`

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

# `mlirContextCreateWithThreading`

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

# `mlirContextDestroy`

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

# `mlirContextDetachDiagnosticHandler`

Detaches an attached diagnostic handler from the context given its
identifier.

# `mlirContextEnableMultithreading`

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

# `mlirContextEqual`

Checks if two contexts are equal.

# `mlirContextGetAllowUnregisteredDialects`

Returns whether the context allows unregistered dialects.

# `mlirContextGetLoadedDialect`

Gets the dialect instance owned by the given context using the dialect
namespace to identify it. If the dialect is not loaded by the context,
returns null. Use mlirContextGetOrLoadDialect to load a dialect if it is
registered with the context.

# `mlirContextGetNumLoadedDialects`

Returns the number of dialects loaded by the context.

# `mlirContextGetNumRegisteredDialects`

Returns the number of dialects registered with the given context. A
registered dialect will be loaded if needed by the parser.

# `mlirContextGetNumThreads`

Gets the number of threads of the thread pool of the context when
multithreading is enabled. Returns 1 if no multithreading.

# `mlirContextGetOrLoadDialect`

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.

# `mlirContextGetThreadPool`

Gets the thread pool of the context when enabled multithreading, otherwise
an assertion is raised.

# `mlirContextIsNull`

Checks whether a context is null.

# `mlirContextIsRegisteredOperation`

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.

# `mlirContextLoadAllAvailableDialects`

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

# `mlirContextSetAllowUnregisteredDialects`

Sets whether unregistered dialects are allowed in this context.

# `mlirContextSetThreadPool`

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.

# `mlirConversionConfigCreate`

Create a default ConversionConfig.

# `mlirConversionConfigDestroy`

Destroy the given ConversionConfig.

# `mlirConversionConfigEnableBuildMaterializations`

Enable or disable building materializations during conversion.

# `mlirConversionConfigGetFoldingMode`

Get the folding mode for the given ConversionConfig.

# `mlirConversionConfigIsBuildMaterializationsEnabled`

Check if building materializations during conversion is enabled.

# `mlirConversionConfigSetFoldingMode`

Set the folding mode for the given ConversionConfig.

# `mlirConversionPatternAsRewritePattern`

Cast the ConversionPattern to a RewritePattern.

# `mlirConversionPatternGetTypeConverter`

Get the type converter used by this conversion pattern.

# `mlirConversionPatternRewriterAsPatternRewriter`

Cast the ConversionPatternRewriter to a PatternRewriter

# `mlirConversionPatternRewriterConvertRegionTypes`

Apply a signature conversion to each block in the given region.

# `mlirConversionPatternRewriterReplaceOpWithMultiple`

Replace the given operation with multiple value ranges -- one range per
result of `op` -- and erase it. `nRanges` must equal the number of results
of `op`. `rangeSizes[i]` is the number of values in the i-th range, and
`values` is the flat concatenation of all ranges (its length is the sum of
`rangeSizes[0..nRanges)`).

# `mlirConversionTargetAddIllegalDialect`

Register the operations of the given dialect as illegal.

# `mlirConversionTargetAddIllegalOp`

Register the given operations as illegal.

# `mlirConversionTargetAddLegalDialect`

Register the operations of the given dialect as legal.

# `mlirConversionTargetAddLegalOp`

Register the given operations as legal.

# `mlirConversionTargetCreate`

Create an empty ConversionTarget.

# `mlirConversionTargetDestroy`

Destroy the given ConversionTarget.

# `mlirCreateAffineAffineDataCopyGeneration`

# `mlirCreateAffineAffineExpandIndexOps`

# `mlirCreateAffineAffineExpandIndexOpsAsAffine`

# `mlirCreateAffineAffineFoldMemRefAliasOps`

# `mlirCreateAffineAffineLoopFusion`

# `mlirCreateAffineAffineLoopInvariantCodeMotion`

# `mlirCreateAffineAffineLoopNormalize`

# `mlirCreateAffineAffineLoopTiling`

# `mlirCreateAffineAffineLoopUnroll`

# `mlirCreateAffineAffineLoopUnrollAndJam`

# `mlirCreateAffineAffineParallelize`

# `mlirCreateAffineAffinePipelineDataTransfer`

# `mlirCreateAffineAffineScalarReplacement`

# `mlirCreateAffineAffineVectorize`

# `mlirCreateAffineLoopCoalescing`

# `mlirCreateAffineRaiseMemrefDialect`

# `mlirCreateAffineSimplifyAffineMinMaxPass`

# `mlirCreateAffineSimplifyAffineStructures`

# `mlirCreateAffineSimplifyAffineWithBounds`

# `mlirCreateAMDGPUAmdgpuEmulateAtomicsPass`

# `mlirCreateAMDGPUAmdgpuMaskedloadToLoadPass`

# `mlirCreateAMDGPUAmdgpuResolveStridedMetadataPass`

# `mlirCreateArithArithEmulateUnsupportedFloats`

# `mlirCreateArithArithEmulateWideInt`

# `mlirCreateArithArithExpandOpsPass`

# `mlirCreateArithArithIntRangeNarrowing`

# `mlirCreateArithArithIntRangeOpts`

# `mlirCreateArithArithUnsignedWhenEquivalentPass`

# `mlirCreateArmSMEEnableArmStreaming`

# `mlirCreateArmSMEOuterProductFusion`

# `mlirCreateArmSMETestTileAllocation`

# `mlirCreateArmSMEVectorLegalization`

# `mlirCreateAsyncAsyncFuncToAsyncRuntimePass`

# `mlirCreateAsyncAsyncParallelForPass`

# `mlirCreateAsyncAsyncRuntimePolicyBasedRefCountingPass`

# `mlirCreateAsyncAsyncRuntimeRefCountingOptPass`

# `mlirCreateAsyncAsyncRuntimeRefCountingPass`

# `mlirCreateAsyncAsyncToAsyncRuntimePass`

# `mlirCreateBufferizationBufferDeallocationSimplificationPass`

# `mlirCreateBufferizationBufferHoistingPass`

# `mlirCreateBufferizationBufferLoopHoistingPass`

# `mlirCreateBufferizationBufferResultsToOutParamsPass`

# `mlirCreateBufferizationDropEquivalentBufferResultsPass`

# `mlirCreateBufferizationEmptyTensorEliminationPass`

# `mlirCreateBufferizationEmptyTensorToAllocTensorPass`

# `mlirCreateBufferizationLowerDeallocationsPass`

# `mlirCreateBufferizationOneShotBufferizePass`

# `mlirCreateBufferizationOptimizeAllocationLivenessPass`

# `mlirCreateBufferizationOwnershipBasedBufferDeallocationPass`

# `mlirCreateBufferizationPromoteBuffersToStackPass`

# `mlirCreateBufferizationStaticMemoryPlannerAnalysisPass`

# `mlirCreateConversionArithToAMDGPUConversionPass`

# `mlirCreateConversionArithToAPFloatConversionPass`

# `mlirCreateConversionArithToArmSMEConversionPass`

# `mlirCreateConversionArithToLLVMConversionPass`

# `mlirCreateConversionConvertACCToLLVMPass`

# `mlirCreateConversionConvertAffineForToGPUPass`

# `mlirCreateConversionConvertAMDGPUToROCDLPass`

# `mlirCreateConversionConvertArithToEmitC`

# `mlirCreateConversionConvertArithToSPIRVPass`

# `mlirCreateConversionConvertArmNeon2dToIntrPass`

# `mlirCreateConversionConvertArmSMEToLLVM`

# `mlirCreateConversionConvertArmSMEToSCFPass`

# `mlirCreateConversionConvertAsyncToLLVMPass`

# `mlirCreateConversionConvertBufferizationToMemRefPass`

# `mlirCreateConversionConvertComplexToLibm`

# `mlirCreateConversionConvertComplexToLLVMPass`

# `mlirCreateConversionConvertComplexToROCDLLibraryCalls`

# `mlirCreateConversionConvertComplexToSPIRVPass`

# `mlirCreateConversionConvertComplexToStandardPass`

# `mlirCreateConversionConvertControlFlowToLLVMPass`

# `mlirCreateConversionConvertControlFlowToSPIRVPass`

# `mlirCreateConversionConvertFuncToEmitC`

# `mlirCreateConversionConvertFuncToLLVMPass`

# `mlirCreateConversionConvertFuncToSPIRVPass`

# `mlirCreateConversionConvertGPUToSPIRV`

# `mlirCreateConversionConvertGpuOpsToLLVMSPVOps`

# `mlirCreateConversionConvertGpuOpsToNVVMOps`

# `mlirCreateConversionConvertGpuOpsToROCDLOps`

# `mlirCreateConversionConvertIndexToLLVMPass`

# `mlirCreateConversionConvertIndexToSPIRVPass`

# `mlirCreateConversionConvertLinalgToStandardPass`

# `mlirCreateConversionConvertMathToEmitC`

# `mlirCreateConversionConvertMathToFuncs`

# `mlirCreateConversionConvertMathToLibmPass`

# `mlirCreateConversionConvertMathToLLVMPass`

# `mlirCreateConversionConvertMathToNVVM`

# `mlirCreateConversionConvertMathToROCDL`

# `mlirCreateConversionConvertMathToSPIRVPass`

# `mlirCreateConversionConvertMathToXeVM`

# `mlirCreateConversionConvertMemRefToEmitC`

# `mlirCreateConversionConvertMemRefToSPIRVPass`

# `mlirCreateConversionConvertNVGPUToNVVMPass`

# `mlirCreateConversionConvertNVVMToLLVMPass`

# `mlirCreateConversionConvertOpenACCToSCFPass`

# `mlirCreateConversionConvertOpenMPToLLVMPass`

# `mlirCreateConversionConvertParallelLoopToGpuPass`

# `mlirCreateConversionConvertPDLToPDLInterpPass`

# `mlirCreateConversionConvertSCFToOpenMPPass`

# `mlirCreateConversionConvertShapeConstraintsPass`

# `mlirCreateConversionConvertShapeToStandardPass`

# `mlirCreateConversionConvertShardToMPIPass`

# `mlirCreateConversionConvertSPIRVToLLVMPass`

# `mlirCreateConversionConvertTensorToLinalgPass`

# `mlirCreateConversionConvertTensorToSPIRVPass`

# `mlirCreateConversionConvertToEmitC`

# `mlirCreateConversionConvertToLLVMPass`

# `mlirCreateConversionConvertVectorToAMX`

# `mlirCreateConversionConvertVectorToArmSMEPass`

# `mlirCreateConversionConvertVectorToGPU`

# `mlirCreateConversionConvertVectorToLLVMPass`

# `mlirCreateConversionConvertVectorToSCF`

# `mlirCreateConversionConvertVectorToSPIRVPass`

# `mlirCreateConversionConvertVectorToXeGPU`

# `mlirCreateConversionConvertXeGPUToXeVMPass`

# `mlirCreateConversionConvertXeVMToLLVMPass`

# `mlirCreateConversionFinalizeMemRefToLLVMConversionPass`

# `mlirCreateConversionGpuToLLVMConversionPass`

# `mlirCreateConversionLiftControlFlowToSCFPass`

# `mlirCreateConversionLowerAffinePass`

# `mlirCreateConversionLowerHostCodeToLLVMPass`

# `mlirCreateConversionMapMemRefStorageClass`

# `mlirCreateConversionMathToAPFloatConversionPass`

# `mlirCreateConversionRaiseSCFToAffinePass`

# `mlirCreateConversionRaiseWasmMLIR`

# `mlirCreateConversionReconcileUnrealizedCastsPass`

# `mlirCreateConversionSCFToControlFlowPass`

# `mlirCreateConversionSCFToEmitC`

# `mlirCreateConversionSCFToSPIRV`

# `mlirCreateConversionSetLLVMModuleDataLayoutPass`

# `mlirCreateConversionTosaToArithPass`

# `mlirCreateConversionTosaToLinalg`

# `mlirCreateConversionTosaToLinalgNamed`

# `mlirCreateConversionTosaToMLProgram`

# `mlirCreateConversionTosaToSCFPass`

# `mlirCreateConversionTosaToSPIRVTosa`

# `mlirCreateConversionTosaToSPIRVTosaMarkGraphConstants`

# `mlirCreateConversionTosaToTensorPass`

# `mlirCreateConversionUBToLLVMConversionPass`

# `mlirCreateConversionUBToSPIRVConversionPass`

# `mlirCreateEmitCFormExpressionsPass`

# `mlirCreateEmitCMLGOAddReflectionMapPass`

# `mlirCreateEmitCWrapFuncInClassPass`

# `mlirCreateExternalPass`

Creates an external `MlirPass` that calls the supplied `callbacks` using the
supplied `userData`. If `opName` is empty, the pass is a generic operation
pass. Otherwise it is an operation pass specific to the specified pass name.

# `mlirCreateFuncDuplicateFunctionEliminationPass`

# `mlirCreateGPUGpuAsyncRegionPass`

# `mlirCreateGPUGpuDecomposeMemrefsPass`

# `mlirCreateGPUGpuEliminateBarriers`

# `mlirCreateGPUGpuKernelOutliningPass`

# `mlirCreateGPUGpuLaunchSinkIndexComputationsPass`

# `mlirCreateGPUGpuMapParallelLoopsPass`

# `mlirCreateGPUGpuModuleToBinaryPass`

# `mlirCreateGPUGpuNVVMAttachTarget`

# `mlirCreateGPUGpuROCDLAttachTarget`

# `mlirCreateGPUGpuSPIRVAttachTarget`

# `mlirCreateGPUGpuXeVMAttachTarget`

# `mlirCreateLinalgConvertElementwiseToLinalgPass`

# `mlirCreateLinalgConvertLinalgToAffineLoopsPass`

# `mlirCreateLinalgConvertLinalgToLoopsPass`

# `mlirCreateLinalgConvertLinalgToParallelLoopsPass`

# `mlirCreateLinalgLinalgBlockPackMatmul`

# `mlirCreateLinalgLinalgElementwiseOpFusionPass`

# `mlirCreateLinalgLinalgFoldIntoElementwisePass`

# `mlirCreateLinalgLinalgFoldUnitExtentDimsPass`

# `mlirCreateLinalgLinalgGeneralizeNamedOpsPass`

# `mlirCreateLinalgLinalgInlineScalarOperandsPass`

# `mlirCreateLinalgLinalgMorphOpsPass`

# `mlirCreateLinalgLinalgSpecializeGenericOpsPass`

# `mlirCreateLinalgSimplifyDepthwiseConvPass`

# `mlirCreateLLVMDIScopeForLLVMFuncOpPass`

# `mlirCreateLLVMLLVMAddComdats`

# `mlirCreateLLVMLLVMLegalizeForExportPass`

# `mlirCreateLLVMLLVMRequestCWrappersPass`

# `mlirCreateLLVMLLVMUseDefaultVisibilityPass`

# `mlirCreateMathMathExpandOpsPass`

# `mlirCreateMathMathExtendToSupportedTypes`

# `mlirCreateMathMathSincosFusionPass`

# `mlirCreateMathMathUpliftToFMA`

# `mlirCreateMemRefElideReinterpretCastPass`

# `mlirCreateMemRefExpandOpsPass`

# `mlirCreateMemRefExpandReallocPass`

# `mlirCreateMemRefExpandStridedMetadataPass`

# `mlirCreateMemRefFlattenMemrefsPass`

# `mlirCreateMemRefFoldMemRefAliasOpsPass`

# `mlirCreateMemRefMemRefEmulateWideInt`

# `mlirCreateMemRefNormalizeMemRefsPass`

# `mlirCreateMemRefReifyResultShapesPass`

# `mlirCreateMemRefResolveRankedShapeTypeResultDimsPass`

# `mlirCreateMemRefResolveShapedTypeResultDimsPass`

# `mlirCreateMLProgramMLProgramPipelineGlobalsPass`

# `mlirCreateNVGPUOptimizeSharedMemory`

# `mlirCreateOpenACCACCBindRoutine`

# `mlirCreateOpenACCACCCGToGPU`

# `mlirCreateOpenACCACCComputeLowering`

# `mlirCreateOpenACCACCDeclareGPUModuleInsertion`

# `mlirCreateOpenACCACCEmitRemarksData`

# `mlirCreateOpenACCACCEmitRemarksLoop`

# `mlirCreateOpenACCACCEmitRemarksPrivate`

# `mlirCreateOpenACCACCIfClauseLowering`

# `mlirCreateOpenACCACCImplicitData`

# `mlirCreateOpenACCACCImplicitDeclare`

# `mlirCreateOpenACCACCImplicitRoutine`

# `mlirCreateOpenACCACCLegalizeSerial`

# `mlirCreateOpenACCACCLoopTiling`

# `mlirCreateOpenACCACCRecipeMaterialization`

# `mlirCreateOpenACCACCRoutineLowering`

# `mlirCreateOpenACCACCRoutineToGPUFunc`

# `mlirCreateOpenACCACCSpecializeForDevice`

# `mlirCreateOpenACCACCSpecializeForHost`

# `mlirCreateOpenACCLegalizeDataValuesInRegion`

# `mlirCreateOpenACCOffloadLiveInValueCanonicalization`

# `mlirCreateOpenACCOffloadTargetVerifier`

# `mlirCreateSCFSCFForallToForLoop`

# `mlirCreateSCFSCFForallToParallelLoop`

# `mlirCreateSCFSCFForLoopCanonicalization`

# `mlirCreateSCFSCFForLoopPeeling`

# `mlirCreateSCFSCFForLoopRangeFolding`

# `mlirCreateSCFSCFForLoopSpecialization`

# `mlirCreateSCFSCFForToWhileLoop`

# `mlirCreateSCFSCFParallelForToNestedFors`

# `mlirCreateSCFSCFParallelLoopFusion`

# `mlirCreateSCFSCFParallelLoopSpecialization`

# `mlirCreateSCFSCFParallelLoopTiling`

# `mlirCreateSCFTestSCFParallelLoopCollapsing`

# `mlirCreateShapeOutlineShapeComputationPass`

# `mlirCreateShapeRemoveShapeConstraintsPass`

# `mlirCreateShapeShapeToShapeLoweringPass`

# `mlirCreateShardPartition`

# `mlirCreateShardShardingPropagation`

# `mlirCreateShardShardSimplify`

# `mlirCreateSPIRVSPIRVCanonicalizeGLPass`

# `mlirCreateSPIRVSPIRVCompositeTypeLayoutPass`

# `mlirCreateSPIRVSPIRVLowerABIAttributesPass`

# `mlirCreateSPIRVSPIRVReplicatedConstantCompositePass`

# `mlirCreateSPIRVSPIRVRewriteInsertsPass`

# `mlirCreateSPIRVSPIRVUnifyAliasedResourcePass`

# `mlirCreateSPIRVSPIRVUpdateVCEPass`

# `mlirCreateSPIRVSPIRVWebGPUPreparePass`

# `mlirCreateSparseTensorLowerForeachToSCF`

# `mlirCreateSparseTensorLowerSparseIterationToSCF`

# `mlirCreateSparseTensorLowerSparseOpsToForeach`

# `mlirCreateSparseTensorPreSparsificationRewrite`

# `mlirCreateSparseTensorSparseAssembler`

# `mlirCreateSparseTensorSparseBufferRewrite`

# `mlirCreateSparseTensorSparseGPUCodegen`

# `mlirCreateSparseTensorSparseReinterpretMap`

# `mlirCreateSparseTensorSparseSpaceCollapse`

# `mlirCreateSparseTensorSparseTensorCodegen`

# `mlirCreateSparseTensorSparseTensorConversionPass`

# `mlirCreateSparseTensorSparseVectorization`

# `mlirCreateSparseTensorSparsificationAndBufferization`

# `mlirCreateSparseTensorSparsificationPass`

# `mlirCreateSparseTensorStageSparseOperations`

# `mlirCreateSparseTensorStorageSpecifierToLLVM`

# `mlirCreateTensorFoldTensorSubsetOpsPass`

# `mlirCreateTensorScalarizeSingleElementTensorReturnPass`

# `mlirCreateTosaTosaArithConstantToTosaConstPass`

# `mlirCreateTosaTosaAttachTarget`

# `mlirCreateTosaTosaConvertIntegerTypeToSignless`

# `mlirCreateTosaTosaDowngrade1p1To1p0Pass`

# `mlirCreateTosaTosaInferShapesPass`

# `mlirCreateTosaTosaInputShape`

# `mlirCreateTosaTosaLayerwiseConstantFoldPass`

# `mlirCreateTosaTosaMakeBroadcastablePass`

# `mlirCreateTosaTosaNarrowF64ToF32Pass`

# `mlirCreateTosaTosaNarrowI64ToI32Pass`

# `mlirCreateTosaTosaOptionalDecompositionsPass`

# `mlirCreateTosaTosaReduceTransposes`

# `mlirCreateTosaTosaValidation`

# `mlirCreateTransformCheckUsesPass`

# `mlirCreateTransformInferEffectsPass`

# `mlirCreateTransformInterpreterPass`

# `mlirCreateTransformPreloadLibraryPass`

# `mlirCreateTransformsBubbleDownMemorySpaceCasts`

# `mlirCreateTransformsCanonicalizerPass`

# `mlirCreateTransformsCompositeFixedPointPass`

# `mlirCreateTransformsControlFlowSinkPass`

# `mlirCreateTransformsCSEPass`

# `mlirCreateTransformsGenerateRuntimeVerificationPass`

# `mlirCreateTransformsInlinerPass`

# `mlirCreateTransformsLocationSnapshot`

# `mlirCreateTransformsLoopInvariantCodeMotionPass`

# `mlirCreateTransformsLoopInvariantSubsetHoistingPass`

# `mlirCreateTransformsMem2Reg`

# `mlirCreateTransformsPrintIRPass`

# `mlirCreateTransformsPrintOpStatsPass`

# `mlirCreateTransformsRemoveDeadValuesPass`

# `mlirCreateTransformsSCCPPass`

# `mlirCreateTransformsSROA`

# `mlirCreateTransformsStripDebugInfoPass`

# `mlirCreateTransformsSymbolDCEPass`

# `mlirCreateTransformsSymbolPrivatizePass`

# `mlirCreateTransformsTopologicalSortPass`

# `mlirCreateTransformsTrivialDeadCodeEliminationPass`

# `mlirCreateTransformsViewOpGraphPass`

# `mlirCreateVectorLowerVectorMaskPass`

# `mlirCreateVectorLowerVectorMultiReduction`

# `mlirCreateVectorLowerVectorToFromElementsToShuffleTree`

# `mlirDenseArrayAttrGetTypeID`

# `mlirDenseArrayGetNumElements`

Get the size of a dense array.

# `mlirDenseBoolArrayGet`

Create a dense array attribute with the given elements.

# `mlirDenseBoolArrayGetElement`

Get an element of a dense array.

# `mlirDenseBoolResourceElementsAttrGetValue`

Returns the pos-th value (flat contiguous indexing) of a specific type
contained by the given dense resource elements attribute.

# `mlirDenseDoubleResourceElementsAttrGetValue`

# `mlirDenseElementsAttrBFloat16Get`

# `mlirDenseElementsAttrBoolGet`

Creates a dense elements attribute with the given shaped type from elements
of a specific type. Expects the element type of the shaped type to match the
data element type.

# `mlirDenseElementsAttrBoolSplatGet`

# `mlirDenseElementsAttrDoubleGet`

# `mlirDenseElementsAttrDoubleSplatGet`

# `mlirDenseElementsAttrFloat16Get`

# `mlirDenseElementsAttrFloatGet`

# `mlirDenseElementsAttrFloatSplatGet`

# `mlirDenseElementsAttrGet`

Creates a dense elements attribute with the given Shaped type and elements
in the same context as the type.

# `mlirDenseElementsAttrGetBoolSplatValue`

# `mlirDenseElementsAttrGetBoolValue`

Returns the pos-th value (flat contiguous indexing) of a specific type
contained by the given dense elements attribute.

# `mlirDenseElementsAttrGetDoubleSplatValue`

# `mlirDenseElementsAttrGetDoubleValue`

# `mlirDenseElementsAttrGetFloatSplatValue`

# `mlirDenseElementsAttrGetFloatValue`

# `mlirDenseElementsAttrGetIndexValue`

# `mlirDenseElementsAttrGetInt8SplatValue`

# `mlirDenseElementsAttrGetInt8Value`

# `mlirDenseElementsAttrGetInt16Value`

# `mlirDenseElementsAttrGetInt32SplatValue`

# `mlirDenseElementsAttrGetInt32Value`

# `mlirDenseElementsAttrGetInt64SplatValue`

# `mlirDenseElementsAttrGetInt64Value`

# `mlirDenseElementsAttrGetRawData`

Returns the raw data of the given dense elements attribute.

# `mlirDenseElementsAttrGetSplatValue`

Returns the single replicated value (splat) of a specific type contained by
the given dense elements attribute.

# `mlirDenseElementsAttrGetStringSplatValue`

# `mlirDenseElementsAttrGetStringValue`

# `mlirDenseElementsAttrGetUInt8SplatValue`

# `mlirDenseElementsAttrGetUInt8Value`

# `mlirDenseElementsAttrGetUInt16Value`

# `mlirDenseElementsAttrGetUInt32SplatValue`

# `mlirDenseElementsAttrGetUInt32Value`

# `mlirDenseElementsAttrGetUInt64SplatValue`

# `mlirDenseElementsAttrGetUInt64Value`

# `mlirDenseElementsAttrInt8Get`

# `mlirDenseElementsAttrInt8SplatGet`

# `mlirDenseElementsAttrInt16Get`

# `mlirDenseElementsAttrInt32Get`

# `mlirDenseElementsAttrInt32SplatGet`

# `mlirDenseElementsAttrInt64Get`

# `mlirDenseElementsAttrInt64SplatGet`

# `mlirDenseElementsAttrIsSplat`

Checks whether the given dense elements attribute contains a single
replicated value (splat).

# `mlirDenseElementsAttrRawBufferGet`

Creates a dense elements attribute with the given Shaped type and elements
populated from a packed, row-major opaque buffer of contents.
The format of the raw buffer is a densely packed array of values that
can be bitcast to the storage format of the element type specified.
Types that are not byte aligned will be:
- For bitwidth > 1: Rounded up to the next byte.
- For bitwidth = 1: Packed into 8bit bytes with bits corresponding to
the linear order of the shape type from MSB to LSB, padded to on the
right.
A raw buffer of a single element (or for 1-bit, a byte of value 0 or 255)
will be interpreted as a splat. User code should be prepared for additional,
conformant patterns to be identified as splats in the future.

# `mlirDenseElementsAttrReshapeGet`

Creates a dense elements attribute that has the same data as the given dense
elements attribute and a different shaped type. The new type must have the
same total number of elements.

# `mlirDenseElementsAttrSplatGet`

Creates a dense elements attribute with the given Shaped type containing a
single replicated element (splat).

# `mlirDenseElementsAttrStringGet`

Creates a dense elements attribute with the given shaped type from string
elements.

# `mlirDenseElementsAttrUInt8Get`

# `mlirDenseElementsAttrUInt8SplatGet`

# `mlirDenseElementsAttrUInt16Get`

# `mlirDenseElementsAttrUInt32Get`

# `mlirDenseElementsAttrUInt32SplatGet`

# `mlirDenseElementsAttrUInt64Get`

# `mlirDenseElementsAttrUInt64SplatGet`

# `mlirDenseF32ArrayGet`

# `mlirDenseF32ArrayGetElement`

# `mlirDenseF64ArrayGet`

# `mlirDenseF64ArrayGetElement`

# `mlirDenseFloatResourceElementsAttrGetValue`

# `mlirDenseI8ArrayGet`

# `mlirDenseI8ArrayGetElement`

# `mlirDenseI16ArrayGet`

# `mlirDenseI16ArrayGetElement`

# `mlirDenseI32ArrayGet`

# `mlirDenseI32ArrayGetElement`

# `mlirDenseI64ArrayGet`

# `mlirDenseI64ArrayGetElement`

# `mlirDenseInt8ResourceElementsAttrGetValue`

# `mlirDenseInt16ResourceElementsAttrGetValue`

# `mlirDenseInt32ResourceElementsAttrGetValue`

# `mlirDenseInt64ResourceElementsAttrGetValue`

# `mlirDenseIntOrFPElementsAttrGetTypeID`

Deprecated API. Will be removed in the future.

# `mlirDenseResourceElementsAttrGetName`

# `mlirDenseTypedElementsAttrGetTypeID`

Returns the typeID of a DenseTypedElements attribute.

# `mlirDenseUInt8ResourceElementsAttrGetValue`

# `mlirDenseUInt16ResourceElementsAttrGetValue`

# `mlirDenseUInt32ResourceElementsAttrGetValue`

# `mlirDenseUInt64ResourceElementsAttrGetValue`

# `mlirDiagnosticGetLocation`

Returns the location at which the diagnostic is reported.

# `mlirDiagnosticGetNote`

Returns `pos`-th note attached to the diagnostic. Expects `pos` to be a
valid zero-based index into the list of notes.

# `mlirDiagnosticGetNumNotes`

Returns the number of notes attached to the diagnostic.

# `mlirDiagnosticGetSeverity`

Returns the severity of the diagnostic.

# `mlirDiagnosticPrint`

Prints a diagnostic using the provided callback.

# `mlirDialectEqual`

Checks if two dialects that belong to the same context are equal. Dialects
from different contexts will not compare equal.

# `mlirDialectGetContext`

Returns the context that owns the dialect.

# `mlirDialectGetNamespace`

Returns the namespace of the given dialect.

# `mlirDialectHandleGetNamespace`

Returns the namespace associated with the provided dialect handle.

# `mlirDialectHandleInsertDialect`

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

# `mlirDialectHandleLoadDialect`

Loads the dialect associated with the provided dialect handle.

# `mlirDialectHandleRegisterDialect`

Registers the dialect associated with the provided dialect handle.

# `mlirDialectIsAExtensibleDialect`

Check if the given dialect is an extensible dialect.

# `mlirDialectIsNull`

Checks if the dialect is null.

# `mlirDialectRegistryCreate`

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

# `mlirDialectRegistryDestroy`

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

# `mlirDialectRegistryIsNull`

Checks if the dialect registry is null.

# `mlirDictionaryAttrGet`

Creates a dictionary attribute containing the given list of elements in the
provided context.

# `mlirDictionaryAttrGetElement`

Returns pos-th element of the given dictionary attribute.

# `mlirDictionaryAttrGetElementByName`

Returns the dictionary attribute element with the given name or NULL if the
given name does not exist in the dictionary.

# `mlirDictionaryAttrGetName`

# `mlirDictionaryAttrGetNumElements`

Returns the number of attributes contained in a dictionary attribute.

# `mlirDictionaryAttrGetTypeID`

Returns the typeID of a Dictionary attribute.

# `mlirDistinctAttrCreate`

Creates a DistinctAttr with the referenced attribute.

# `mlirDominanceInfoCreate`

Creates a DominanceInfo for the given operation (typically a FuncOp or
ModuleOp). The caller owns the returned object and must destroy it.

# `mlirDominanceInfoDestroy`

Destroys the given DominanceInfo.

# `mlirDominanceInfoDominatesBlock`

Returns true if block A dominates block B.

# `mlirDominanceInfoDominatesOperation`

Returns true if operation A dominates operation B (A == B or A properly
dominates B).

# `mlirDominanceInfoFindNearestCommonDominator`

Finds the nearest common dominator of blocks A and B. Returns a null block
if none exists.

# `mlirDominanceInfoInvalidate`

Invalidates all cached dominance information.

# `mlirDominanceInfoIsReachableFromEntry`

Returns true if the given block is reachable from the entry block of its
region.

# `mlirDominanceInfoProperlyDominatesBlock`

Returns true if block A properly dominates block B.

# `mlirDominanceInfoProperlyDominatesOperation`

Returns true if operation A properly dominates operation B.

# `mlirDominanceInfoValueDominates`

Returns true if value A dominates operation B (the operation defining A is B
or A properly dominates B).

# `mlirDominanceInfoValueProperlyDominates`

Returns true if value A properly dominates operation B.

# `mlirDynamicAttrDefinitionGetDialect`

Get the dialect that the given dynamic attribute definition belongs to.

# `mlirDynamicAttrDefinitionGetName`

Get the name of the given dynamic attribute definition.

# `mlirDynamicAttrDefinitionGetTypeID`

Get the type ID of a dynamic attribute definition.

# `mlirDynamicAttrGet`

Get a dynamic attribute by instantiating the given attribute definition with
the provided attributes.

# `mlirDynamicAttrGetAttrDef`

Get the attribute definition of the given dynamic attribute.

# `mlirDynamicAttrGetNumParams`

Get the number of parameters in the given dynamic attribute.

# `mlirDynamicAttrGetParam`

Get the parameter at the given index in the provided dynamic attribute.

# `mlirDynamicOpTraitAttach`

Attach a dynamic op trait to the given operation name.
Note that the operation name must be modeled by dynamic dialect and must be
registered.
The ownership of the trait will be transferred to the operation name
after this call.

# `mlirDynamicOpTraitDestroy`

Destroy the dynamic op trait.

# `mlirDynamicOpTraitIsIsolatedFromAboveCreate`

Get the dynamic op trait that indicates regions are isolated from above.

# `mlirDynamicOpTraitIsIsolatedFromAboveGetTypeID`

Get the type ID of the dynamic op trait that indicates regions are isolated
from above.

# `mlirDynamicOpTraitIsTerminatorCreate`

Get the dynamic op trait that indicates the operation is a terminator.

# `mlirDynamicOpTraitIsTerminatorGetTypeID`

Get the type ID of the dynamic op trait that indicates the operation is a
terminator.

# `mlirDynamicOpTraitNoTerminatorCreate`

Get the dynamic op trait that indicates regions have no terminator.

# `mlirDynamicOpTraitNoTerminatorGetTypeID`

Get the type ID of the dynamic op trait that indicates regions have no
terminator.

# `mlirDynamicTypeDefinitionGetDialect`

Get the dialect that the given dynamic type definition belongs to.

# `mlirDynamicTypeDefinitionGetName`

Get the name of the given dynamic type definition.

# `mlirDynamicTypeDefinitionGetTypeID`

Get the type ID of a dynamic type definition.

# `mlirDynamicTypeGet`

Get a dynamic type by instantiating the given type definition with the
provided attributes.

# `mlirDynamicTypeGetNumParams`

Get the number of parameters in the given dynamic type.

# `mlirDynamicTypeGetParam`

Get the parameter at the given index in the provided dynamic type.

# `mlirDynamicTypeGetTypeDef`

Get the type definition of the given dynamic type.

# `mlirElementsAttrGetNumElements`

Gets the total number of elements in the given elements attribute. In order
to iterate over the attribute, obtain its type, which must be a statically
shaped type and use its sizes to build a multi-dimensional index.

# `mlirElementsAttrGetValue`

Returns the element at the given rank-dimensional index.

# `mlirElementsAttrIsValidIndex`

Checks whether the given rank-dimensional index is valid in the given
elements attribute.

# `mlirEmitCArrayTypeGet`

# `mlirEmitCArrayTypeGetName`

# `mlirEmitCArrayTypeGetTypeID`

# `mlirEmitCCmpPredicateAttrGet`

# `mlirEmitCCmpPredicateAttrGetName`

# `mlirEmitCCmpPredicateAttrGetTypeID`

# `mlirEmitCCmpPredicateAttrGetValue`

# `mlirEmitCLValueTypeGet`

# `mlirEmitCLValueTypeGetName`

# `mlirEmitCLValueTypeGetTypeID`

# `mlirEmitCOpaqueAttrGet`

# `mlirEmitCOpaqueAttrGetName`

# `mlirEmitCOpaqueAttrGetTypeID`

# `mlirEmitCOpaqueAttrGetValue`

# `mlirEmitCOpaqueTypeGet`

# `mlirEmitCOpaqueTypeGetName`

# `mlirEmitCOpaqueTypeGetTypeID`

# `mlirEmitCPointerTypeGet`

# `mlirEmitCPointerTypeGetName`

# `mlirEmitCPointerTypeGetTypeID`

# `mlirEmitCPtrDiffTTypeGet`

# `mlirEmitCPtrDiffTTypeGetName`

# `mlirEmitCPtrDiffTTypeGetTypeID`

# `mlirEmitCSignedSizeTTypeGet`

# `mlirEmitCSignedSizeTTypeGetName`

# `mlirEmitCSignedSizeTTypeGetTypeID`

# `mlirEmitCSizeTTypeGet`

# `mlirEmitCSizeTTypeGetName`

# `mlirEmitCSizeTTypeGetTypeID`

# `mlirEmitError`

Emits an error at the given location through the diagnostics engine. Used
for testing purposes.

# `mlirEnableGlobalDebug`

Sets the global debugging flag.

# `mlirExecutionEngineCreate`

Creates an ExecutionEngine for the provided ModuleOp. The ModuleOp is
expected to be "translatable" to LLVM IR (only contains operations in
dialects that implement the `LLVMTranslationDialectInterface`). The module
ownership stays with the client and can be destroyed as soon as the call
returns. `optLevel` is the optimization level to be used for transformation
and code generation. LLVM passes at `optLevel` are run before code
generation. The number and array of paths corresponding to shared libraries
that will be loaded are specified via `numPaths` and `sharedLibPaths`
respectively.
The `enablePIC` arguments controls the relocation model, when true the
generated code is emitted as "position independent", making it possible to
save it and reload it as a shared object in another process.
TODO: figure out other options.

# `mlirExecutionEngineCreateWithDiagnostics`

Creates an ExecutionEngine for the provided ModuleOp. The ModuleOp is
expected to be "translatable" to LLVM IR (only contains operations in
dialects that implement the `LLVMTranslationDialectInterface`). The module
ownership stays with the client and can be destroyed as soon as the call
returns. `optLevel` is the optimization level to be used for transformation
and code generation. LLVM passes at `optLevel` are run before code
generation. The number and array of paths corresponding to shared libraries
that will be loaded are specified via `numPaths` and `sharedLibPaths`
respectively.
The `enablePIC` arguments controls the relocation model, when true the
generated code is emitted as "position independent", making it possible to
save it and reload it as a shared object in another process.
TODO: figure out other options.

# `mlirExecutionEngineDestroy`

Destroy an ExecutionEngine instance.

# `mlirExecutionEngineDumpToObjectFile`

Dump as an object in `fileName`.

# `mlirExecutionEngineInitialize`

Initialize the ExecutionEngine. Global constructors specified by
`llvm.mlir.global_ctors` will be run. One common scenario is that kernel
binary compiled from `gpu.module` gets loaded during initialization. Make
sure all symbols are resolvable before initialization by calling
`mlirExecutionEngineRegisterSymbol` or including shared libraries.

# `mlirExecutionEngineInvokePacked`

Invoke a native function in the execution engine by name with the arguments
and result of the invoked function passed as an array of pointers. The
function must have been tagged with the `llvm.emit_c_interface` attribute.
Returns a failure if the execution fails for any reason (the function name
can't be resolved for instance).

# `mlirExecutionEngineInvokePacked_dirty_cpu`

Invoke a native function in the execution engine by name with the arguments
and result of the invoked function passed as an array of pointers. The
function must have been tagged with the `llvm.emit_c_interface` attribute.
Returns a failure if the execution fails for any reason (the function name
can't be resolved for instance).

# `mlirExecutionEngineInvokePacked_dirty_io`

Invoke a native function in the execution engine by name with the arguments
and result of the invoked function passed as an array of pointers. The
function must have been tagged with the `llvm.emit_c_interface` attribute.
Returns a failure if the execution fails for any reason (the function name
can't be resolved for instance).

# `mlirExecutionEngineIsNull`

Checks whether an execution engine is null.

# `mlirExecutionEngineLookup`

Lookup a native function in the execution engine by name, returns nullptr
if the name can't be looked-up.

# `mlirExecutionEngineLookupPacked`

Lookup the wrapper of the native function in the execution engine with the
given name, returns nullptr if the function can't be looked-up.

# `mlirExecutionEngineRegisterSymbol`

Register a symbol with the jit: this symbol will be accessible to the jitted
code.

# `mlirExtensibleDialectLookupAttrDefinition`

Look up a registered attribute definition by attribute name in the given
dialect. Note that the dialect must be an extensible dialect.

# `mlirExtensibleDialectLookupTypeDefinition`

Look up a registered type definition by type name in the given dialect.
Note that the dialect must be an extensible dialect.

# `mlirExternalPassSignalFailure`

This signals that the pass has failed. This is only valid to call during
the `run` callback of `MlirExternalPassCallbacks`.
See Pass::signalPassFailure().

# `mlirF16TypeGet`

Creates an f16 type in the given context. The type is owned by the
context.

# `mlirF16TypeGetName`

# `mlirF32TypeGet`

Creates an f32 type in the given context. The type is owned by the
context.

# `mlirF32TypeGetName`

# `mlirF64TypeGet`

Creates a f64 type in the given context. The type is owned by the
context.

# `mlirF64TypeGetName`

# `mlirFlatSymbolRefAttrGet`

Creates a flat symbol reference attribute in the given context referencing a
symbol identified by the given string.

# `mlirFlatSymbolRefAttrGetName`

# `mlirFlatSymbolRefAttrGetValue`

Returns the referenced symbol as a string reference. The data remains live
as long as the context in which the attribute lives.

# `mlirFloat4E2M1FNTypeGet`

Creates an f4E2M1FN type in the given context. The type is owned by the
context.

# `mlirFloat4E2M1FNTypeGetName`

# `mlirFloat4E2M1FNTypeGetTypeID`

Returns the typeID of an Float4E2M1FN type.

# `mlirFloat6E2M3FNTypeGet`

Creates an f6E2M3FN type in the given context. The type is owned by the
context.

# `mlirFloat6E2M3FNTypeGetName`

# `mlirFloat6E2M3FNTypeGetTypeID`

Returns the typeID of an Float6E2M3FN type.

# `mlirFloat6E3M2FNTypeGet`

Creates an f6E3M2FN type in the given context. The type is owned by the
context.

# `mlirFloat6E3M2FNTypeGetName`

# `mlirFloat6E3M2FNTypeGetTypeID`

Returns the typeID of an Float6E3M2FN type.

# `mlirFloat8E3M4TypeGet`

Creates an f8E3M4 type in the given context. The type is owned by the
context.

# `mlirFloat8E3M4TypeGetName`

# `mlirFloat8E3M4TypeGetTypeID`

Returns the typeID of an Float8E3M4 type.

# `mlirFloat8E4M3B11FNUZTypeGet`

Creates an f8E4M3B11FNUZ type in the given context. The type is owned by the
context.

# `mlirFloat8E4M3B11FNUZTypeGetName`

# `mlirFloat8E4M3B11FNUZTypeGetTypeID`

Returns the typeID of an Float8E4M3B11FNUZ type.

# `mlirFloat8E4M3FNTypeGet`

Creates an f8E4M3FN type in the given context. The type is owned by the
context.

# `mlirFloat8E4M3FNTypeGetName`

# `mlirFloat8E4M3FNTypeGetTypeID`

Returns the typeID of an Float8E4M3FN type.

# `mlirFloat8E4M3FNUZTypeGet`

Creates an f8E4M3FNUZ type in the given context. The type is owned by the
context.

# `mlirFloat8E4M3FNUZTypeGetName`

# `mlirFloat8E4M3FNUZTypeGetTypeID`

Returns the typeID of an Float8E4M3FNUZ type.

# `mlirFloat8E4M3TypeGet`

Creates an f8E4M3 type in the given context. The type is owned by the
context.

# `mlirFloat8E4M3TypeGetName`

# `mlirFloat8E4M3TypeGetTypeID`

Returns the typeID of an Float8E4M3 type.

# `mlirFloat8E5M2FNUZTypeGet`

Creates an f8E5M2FNUZ type in the given context. The type is owned by the
context.

# `mlirFloat8E5M2FNUZTypeGetName`

# `mlirFloat8E5M2FNUZTypeGetTypeID`

Returns the typeID of an Float8E5M2FNUZ type.

# `mlirFloat8E5M2TypeGet`

Creates an f8E5M2 type in the given context. The type is owned by the
context.

# `mlirFloat8E5M2TypeGetName`

# `mlirFloat8E5M2TypeGetTypeID`

Returns the typeID of an Float8E5M2 type.

# `mlirFloat8E5M3FNUTypeGet`

Creates an f8E5M3FNU type in the given context. The type is owned by the
context.

# `mlirFloat8E5M3FNUTypeGetName`

# `mlirFloat8E5M3FNUTypeGetTypeID`

Returns the typeID of a Float8E5M3FNU type.

# `mlirFloat8E8M0FNUTypeGet`

Creates an f8E8M0FNU type in the given context. The type is owned by the
context.

# `mlirFloat8E8M0FNUTypeGetName`

# `mlirFloat8E8M0FNUTypeGetTypeID`

Returns the typeID of an Float8E8M0FNU type.

# `mlirFloat16TypeGetTypeID`

Returns the typeID of an Float16 type.

# `mlirFloat32TypeGetTypeID`

Returns the typeID of an Float32 type.

# `mlirFloat64TypeGetTypeID`

Returns the typeID of an Float64 type.

# `mlirFloatAttrDoubleGet`

Creates a floating point attribute in the given context with the given
double value and double-precision FP semantics.

# `mlirFloatAttrDoubleGetChecked`

Same as "mlirFloatAttrDoubleGet", but if the type is not valid for a
construction of a FloatAttr, returns a null MlirAttribute.

# `mlirFloatAttrDoubleGetCheckedWithDiagnostics`

Same as "mlirFloatAttrDoubleGet", but if the type is not valid for a
construction of a FloatAttr, returns a null MlirAttribute.

# `mlirFloatAttrGetName`

# `mlirFloatAttrGetTypeID`

Returns the typeID of a Float attribute.

# `mlirFloatAttrGetValueDouble`

Returns the value stored in the given floating point attribute, interpreting
the value as double.

# `mlirFloatTF32TypeGetTypeID`

Returns the typeID of a TF32 type.

# `mlirFloatTypeGetWidth`

Returns the bitwidth of a floating-point type.

# `mlirFreezeRewritePattern`

Freeze the given MlirRewritePatternSet to a MlirFrozenRewritePatternSet.
Note that the ownership of the input set is transferred into the frozen set
after this call.

# `mlirFrozenRewritePatternSetDestroy`

Destroy the given MlirFrozenRewritePatternSet.

# `mlirFuncSetArgAttr`

Sets the argument attribute 'name' of an argument at index 'pos'.
Asserts that the operation is a FuncOp.

# `mlirFuncSetResultAttr`

# `mlirFunctionTypeGet`

Creates a function type, mapping a list of input types to result types.

# `mlirFunctionTypeGetInput`

Returns the pos-th input type.

# `mlirFunctionTypeGetName`

# `mlirFunctionTypeGetNumInputs`

Returns the number of input types.

# `mlirFunctionTypeGetNumResults`

Returns the number of result types.

# `mlirFunctionTypeGetResult`

Returns the pos-th result type.

# `mlirFunctionTypeGetTypeID`

Returns the typeID of an Function type.

# `mlirGetDialectHandle__acc__`

# `mlirGetDialectHandle__affine__`

# `mlirGetDialectHandle__amdgpu__`

# `mlirGetDialectHandle__arith__`

# `mlirGetDialectHandle__arm_neon__`

# `mlirGetDialectHandle__arm_sme__`

# `mlirGetDialectHandle__async__`

# `mlirGetDialectHandle__bufferization__`

# `mlirGetDialectHandle__cf__`

# `mlirGetDialectHandle__complex__`

# `mlirGetDialectHandle__dlti__`

# `mlirGetDialectHandle__emitc__`

# `mlirGetDialectHandle__func__`

# `mlirGetDialectHandle__gpu__`

# `mlirGetDialectHandle__index__`

# `mlirGetDialectHandle__irdl__`

# `mlirGetDialectHandle__linalg__`

# `mlirGetDialectHandle__llvm__`

# `mlirGetDialectHandle__math__`

# `mlirGetDialectHandle__memref__`

# `mlirGetDialectHandle__ml_program__`

# `mlirGetDialectHandle__mpi__`

# `mlirGetDialectHandle__nvgpu__`

# `mlirGetDialectHandle__nvvm__`

# `mlirGetDialectHandle__omp__`

# `mlirGetDialectHandle__pdl__`

# `mlirGetDialectHandle__pdl_interp__`

# `mlirGetDialectHandle__ptr__`

# `mlirGetDialectHandle__quant__`

# `mlirGetDialectHandle__rocdl__`

# `mlirGetDialectHandle__scf__`

# `mlirGetDialectHandle__shape__`

# `mlirGetDialectHandle__shard__`

# `mlirGetDialectHandle__smt__`

# `mlirGetDialectHandle__sparse_tensor__`

# `mlirGetDialectHandle__spirv__`

# `mlirGetDialectHandle__tensor__`

# `mlirGetDialectHandle__tosa__`

# `mlirGetDialectHandle__transform__`

# `mlirGetDialectHandle__ub__`

# `mlirGetDialectHandle__vcix__`

# `mlirGetDialectHandle__vector__`

# `mlirGetDialectHandle__wasmssa__`

# `mlirGetDialectHandle__x86__`

# `mlirGetDialectHandle__xegpu__`

# `mlirGetDialectHandle__xevm__`

# `mlirGPUAsyncTokenTypeGet`

# `mlirGPUAsyncTokenTypeGetName`

# `mlirGPUObjectAttrGet`

# `mlirGPUObjectAttrGetFormat`

# `mlirGPUObjectAttrGetKernels`

# `mlirGPUObjectAttrGetName`

# `mlirGPUObjectAttrGetObject`

# `mlirGPUObjectAttrGetProperties`

# `mlirGPUObjectAttrGetTarget`

# `mlirGPUObjectAttrGetWithKernels`

# `mlirGPUObjectAttrHasKernels`

# `mlirGPUObjectAttrHasProperties`

# `mlirGreedyRewriteDriverConfigCreate`

Creates a greedy rewrite driver configuration with default settings.

# `mlirGreedyRewriteDriverConfigDestroy`

Destroys a greedy rewrite driver configuration.

# `mlirGreedyRewriteDriverConfigEnableConstantCSE`

Enables or disables constant CSE.

# `mlirGreedyRewriteDriverConfigEnableFolding`

Enables or disables folding during greedy rewriting.

# `mlirGreedyRewriteDriverConfigGetMaxIterations`

Gets the maximum number of iterations for the greedy rewrite driver.

# `mlirGreedyRewriteDriverConfigGetMaxNumRewrites`

Gets the maximum number of rewrites within an iteration.

# `mlirGreedyRewriteDriverConfigGetRegionSimplificationLevel`

Gets the region simplification level.

# `mlirGreedyRewriteDriverConfigGetStrictness`

Gets the strictness level for the greedy rewrite driver.

# `mlirGreedyRewriteDriverConfigGetUseTopDownTraversal`

Gets whether top-down traversal is used for initial worklist population.

# `mlirGreedyRewriteDriverConfigIsConstantCSEEnabled`

Gets whether constant CSE is enabled.

# `mlirGreedyRewriteDriverConfigIsFoldingEnabled`

Gets whether folding is enabled during greedy rewriting.

# `mlirGreedyRewriteDriverConfigSetMaxIterations`

Sets the maximum number of iterations for the greedy rewrite driver.
Use -1 for no limit.

# `mlirGreedyRewriteDriverConfigSetMaxNumRewrites`

Sets the maximum number of rewrites within an iteration.
Use -1 for no limit.

# `mlirGreedyRewriteDriverConfigSetRegionSimplificationLevel`

Sets the region simplification level.

# `mlirGreedyRewriteDriverConfigSetStrictness`

Sets the strictness level for the greedy rewrite driver.

# `mlirGreedyRewriteDriverConfigSetUseTopDownTraversal`

Sets whether to use top-down traversal for the initial population of the
worklist.

# `mlirIdentifierEqual`

Checks whether two identifiers are the same.

# `mlirIdentifierGet`

Gets an identifier with the given string value.

# `mlirIdentifierGetContext`

Returns the context associated with this identifier

# `mlirIdentifierPrint`

# `mlirIdentifierStr`

Gets the string value of the identifier.

# `mlirIndexTypeGet`

Creates an index type in the given context. The type is owned by the
context.

# `mlirIndexTypeGetName`

# `mlirIndexTypeGetTypeID`

Returns the typeID of an Index type.

# `mlirInferShapedTypeOpInterfaceTypeID`

Returns the interface TypeID of the InferShapedTypeOpInterface.

# `mlirInferTypeOpInterfaceTypeID`

Returns the interface TypeID of the InferTypeOpInterface.

# `mlirIntegerAttrGet`

Creates an integer attribute of the given type with the given integer
value.

# `mlirIntegerAttrGetFromWords`

Creates an integer attribute of the given type from an array of 64-bit
words. This is useful for creating integer attributes with values with
widths larger than 64 bits. Words are in little-endian order (least
significant word first). The number of words must match the bit width of the
type: numWords = ceil(bitWidth / 64).

# `mlirIntegerAttrGetName`

# `mlirIntegerAttrGetTypeID`

Returns the typeID of an Integer attribute.

# `mlirIntegerAttrGetValueBitWidth`

Returns the bit width of the integer attribute's underlying APInt value.
This is useful for determining the size of the integer, especially for
values larger than 64 bits.

# `mlirIntegerAttrGetValueInt`

Returns the value stored in the given integer attribute, assuming the value
is of signless type and fits into a signed 64-bit integer.

# `mlirIntegerAttrGetValueNumWords`

Returns the number of 64-bit words that make up the integer attribute's
underlying APInt value. For integers
<
= 64 bits, this returns 1.

# `mlirIntegerAttrGetValueSInt`

Returns the value stored in the given integer attribute, assuming the value
is of signed type and fits into a signed 64-bit integer.

# `mlirIntegerAttrGetValueUInt`

Returns the value stored in the given integer attribute, assuming the value
is of unsigned type and fits into an unsigned 64-bit integer.

# `mlirIntegerAttrGetValueWords`

Copies the 64-bit words making up the integer attribute's APInt value into
the provided buffer. The buffer must have space for at least
mlirIntegerAttrGetValueNumWords(attr) elements. Words are stored in
little-endian order (least significant word first). The sign information
is not encoded in the words themselves; use the type's signedness to
interpret the value correctly.

# `mlirIntegerSetAttrGet`

Creates an integer set attribute wrapping the given set. The attribute
belongs to the same context as the integer set.

# `mlirIntegerSetAttrGetName`

# `mlirIntegerSetAttrGetTypeID`

Returns the typeID of an IntegerSet attribute.

# `mlirIntegerSetAttrGetValue`

Returns the integer set wrapped in the given integer set attribute.

# `mlirIntegerSetDump`

Prints an integer set to the standard error stream.

# `mlirIntegerSetEmptyGet`

Gets or creates a new canonically empty integer set with the give number of
dimensions and symbols in the given context.

# `mlirIntegerSetEqual`

Checks if two integer set objects are equal. This is a "shallow" comparison
of two objects. Only the sets with some small number of constraints are
uniqued and compare equal here. Set objects that represent the same integer
set with different constraints may be considered non-equal by this check.
Set difference followed by an (expensive) emptiness check should be used to
check equivalence of the underlying integer sets.

# `mlirIntegerSetGet`

Gets or creates a new integer set in the given context. The set is defined
by a list of affine constraints, with the given number of input dimensions
and symbols, which are treated as either equalities (eqFlags is 1) or
inequalities (eqFlags is 0). Both `constraints` and `eqFlags` are expected
to point to at least `numConstraint` consecutive values.

# `mlirIntegerSetGetConstraint`

Returns `pos`-th constraint of the set.

# `mlirIntegerSetGetContext`

Gets the context in which the given integer set lives.

# `mlirIntegerSetGetNumConstraints`

Returns the number of constraints (equalities + inequalities) in the given
set.

# `mlirIntegerSetGetNumDims`

Returns the number of dimensions in the given set.

# `mlirIntegerSetGetNumEqualities`

Returns the number of equalities in the given set.

# `mlirIntegerSetGetNumInequalities`

Returns the number of inequalities in the given set.

# `mlirIntegerSetGetNumInputs`

Returns the number of inputs (dimensions + symbols) in the given set.

# `mlirIntegerSetGetNumSymbols`

Returns the number of symbols in the given set.

# `mlirIntegerSetIsCanonicalEmpty`

Checks whether the given set is a canonical empty set, e.g., the set
returned by mlirIntegerSetEmptyGet.

# `mlirIntegerSetIsConstraintEq`

Returns `true` of the `pos`-th constraint of the set is an equality
constraint, `false` otherwise.

# `mlirIntegerSetIsNull`

Checks whether an integer set is a null object.

# `mlirIntegerSetPrint`

Prints an integer set by sending chunks of the string representation and
forwarding `userData to `callback`. Note that the callback may be called
several times with consecutive chunks of the string.

# `mlirIntegerSetReplaceGet`

Gets or creates a new integer set in which the values and dimensions of the
given set are replaced with the given affine expressions. `dimReplacements`
and `symbolReplacements` are expected to point to at least as many
consecutive expressions as the given set has dimensions and symbols,
respectively. The new set will have `numResultDims` and `numResultSymbols`
dimensions and symbols, respectively.

# `mlirIntegerTypeGet`

Creates a signless integer type of the given bitwidth in the context. The
type is owned by the context.

# `mlirIntegerTypeGetName`

# `mlirIntegerTypeGetTypeID`

Returns the typeID of an Integer type.

# `mlirIntegerTypeGetWidth`

Returns the bitwidth of an integer type.

# `mlirIntegerTypeIsSigned`

Checks whether the given integer type is signed.

# `mlirIntegerTypeIsSignless`

Checks whether the given integer type is signless.

# `mlirIntegerTypeIsUnsigned`

Checks whether the given integer type is unsigned.

# `mlirIntegerTypeSignedGet`

Creates a signed integer type of the given bitwidth in the context. The type
is owned by the context.

# `mlirIntegerTypeUnsignedGet`

Creates an unsigned integer type of the given bitwidth in the context. The
type is owned by the context.

# `mlirIRDLVariadicityArrayAttrGet`

# `mlirIRDLVariadicityArrayAttrGetName`

# `mlirIRDLVariadicityAttrGet`

# `mlirIRDLVariadicityAttrGetName`

# `mlirIRMappingClear`

Clears all mappings.

# `mlirIRMappingContainsBlock`

Returns true if the mapping contains a mapping for the given block.

# `mlirIRMappingContainsOperation`

Returns true if the mapping contains a mapping for the given operation.

# `mlirIRMappingContainsValue`

Returns true if the mapping contains a mapping for the given value.

# `mlirIRMappingCreate`

Creates a new empty IRMapping.

# `mlirIRMappingDestroy`

Destroys the given IRMapping.

# `mlirIRMappingEraseBlock`

Erases a block mapping.

# `mlirIRMappingEraseOperation`

Erases an operation mapping.

# `mlirIRMappingEraseValue`

Erases a value mapping.

# `mlirIRMappingIsNull`

Checks whether an IRMapping is null.

# `mlirIRMappingLookupOrDefaultBlock`

Looks up a mapped Block. Returns the mapped block, or the input block if
no mapping exists.

# `mlirIRMappingLookupOrDefaultOperation`

Looks up a mapped Operation. Returns the mapped operation, or the input
operation if no mapping exists.

# `mlirIRMappingLookupOrDefaultValue`

Looks up a mapped Value. Returns the mapped value, or the input value if
no mapping exists.

# `mlirIRMappingLookupOrNullBlock`

Looks up a mapped Block. Returns a null MlirBlock if no mapping exists.

# `mlirIRMappingLookupOrNullOperation`

Looks up a mapped Operation. Returns a null MlirOperation if no mapping
exists.

# `mlirIRMappingLookupOrNullValue`

Looks up a mapped Value. Returns a null MlirValue if no mapping exists.

# `mlirIRMappingMapBlock`

Maps a Block in the mapping.

# `mlirIRMappingMapOperation`

Maps an Operation in the mapping.

# `mlirIRMappingMapValue`

Maps a Value in the mapping.

# `mlirIRRewriterCreate`

Create an IRRewriter and transfer ownership to the caller.

# `mlirIRRewriterCreateFromOp`

Create an IRRewriter and transfer ownership to the caller. Additionally
set the insertion point before the operation.

# `mlirIRRewriterDestroy`

Takes an IRRewriter owned by the caller and destroys it. It is the
responsibility of the user to only pass an IRRewriter class.

# `mlirIsCurrentDebugType`

Checks if `type` is set as the current debug type.

# `mlirIsGlobalDebugEnabled`

Retuns `true` if the global debugging flag is set, false otherwise.

# `mlirLinalgFillBuiltinNamedOpRegion`

Apply the special region builder for the builtin named Linalg op.
Assert that `mlirOp` is a builtin named Linalg op.

# `mlirLinalgGetIndexingMapsAttribute`

# `mlirLinalgInferContractionDimensions`

# `mlirLinalgInferContractionDimensionsFromMaps`

# `mlirLinalgInferConvolutionDimensions`

# `mlirLinalgInferConvolutionDimensionsFromMaps`

# `mlirLinalgIsAContractionOp`

# `mlirLinalgIsAConvolutionOp`

# `mlirLLVMArrayTypeGet`

Creates an llvm.array type.

# `mlirLLVMArrayTypeGetElementType`

Returns the element type of the llvm.array type.

# `mlirLLVMArrayTypeGetName`

# `mlirLLVMArrayTypeGetNumElements`

Returns the number of elements in the llvm.array type.

# `mlirLLVMArrayTypeGetTypeID`

# `mlirLLVMAttrIsAMDConstantAttr`

Returns `true` if the attribute is an LLVM MDConstantAttr.

# `mlirLLVMAttrIsAMDGlobalValueAttr`

Returns `true` if the attribute is an LLVM MDGlobalValueAttr.

# `mlirLLVMAttrIsAMDNodeAttr`

Returns `true` if the attribute is an LLVM MDNodeAttr.

# `mlirLLVMAttrIsAMDStringAttr`

Returns `true` if the attribute is an LLVM MDStringAttr.

# `mlirLLVMCConvAttrGet`

Creates a LLVM CConv attribute.

# `mlirLLVMCConvAttrGetName`

# `mlirLLVMComdatAttrGet`

Creates a LLVM Comdat attribute.

# `mlirLLVMComdatAttrGetName`

# `mlirLLVMDIAnnotationAttrGet`

Creates a LLVM DIAnnotation attribute.

# `mlirLLVMDIAnnotationAttrGetName`

# `mlirLLVMDIBasicTypeAttrGet`

Creates a LLVM DIBasicType attribute.

# `mlirLLVMDIBasicTypeAttrGetName`

# `mlirLLVMDICompileUnitAttrGet`

Creates a LLVM DICompileUnit attribute.

# `mlirLLVMDICompileUnitAttrGetName`

# `mlirLLVMDICompileUnitAttrGetRecSelf`

Creates a self-referencing LLVM DICompileUnitAttr attribute.

# `mlirLLVMDICompositeTypeAttrGet`

Creates a LLVM DICompositeType attribute.

# `mlirLLVMDICompositeTypeAttrGetName`

# `mlirLLVMDICompositeTypeAttrGetRecSelf`

Creates a self-referencing LLVM DICompositeType attribute.

# `mlirLLVMDIDerivedTypeAttrGet`

Creates a LLVM DIDerivedType attribute. Note that `dwarfAddressSpace` is an
optional field, where `MLIR_CAPI_DWARF_ADDRESS_SPACE_NULL` indicates null
and non-negative values indicate a value present.

# `mlirLLVMDIDerivedTypeAttrGetBaseType`

Gets the base type from a LLVM DIDerivedType attribute.

# `mlirLLVMDIDerivedTypeAttrGetName`

# `mlirLLVMDIExpressionAttrGet`

Creates a LLVM DIExpression attribute.

# `mlirLLVMDIExpressionAttrGetName`

# `mlirLLVMDIExpressionElemAttrGet`

Creates a LLVM DIExpressionElem attribute.

# `mlirLLVMDIExpressionElemAttrGetName`

# `mlirLLVMDIFileAttrGet`

Creates a LLVM DIFileAttr attribute.

# `mlirLLVMDIFileAttrGetName`

# `mlirLLVMDIFlagsAttrGet`

Creates a LLVM DIFlags attribute.

# `mlirLLVMDIFlagsAttrGetName`

# `mlirLLVMDIImportedEntityAttrGet`

Creates a LLVM DIImportedEntityAttr attribute.

# `mlirLLVMDIImportedEntityAttrGetName`

# `mlirLLVMDILexicalBlockAttrGet`

Creates a LLVM DILexicalBlock attribute.

# `mlirLLVMDILexicalBlockAttrGetName`

# `mlirLLVMDILexicalBlockFileAttrGet`

Creates a LLVM DILexicalBlockFile attribute.

# `mlirLLVMDILexicalBlockFileAttrGetName`

# `mlirLLVMDILocalVariableAttrGet`

Creates a LLVM DILocalVariableAttr attribute.

# `mlirLLVMDILocalVariableAttrGetName`

# `mlirLLVMDIModuleAttrGet`

Creates a LLVM DIModuleAttr attribute.

# `mlirLLVMDIModuleAttrGetName`

# `mlirLLVMDIModuleAttrGetScope`

Gets the scope of this DIModuleAttr.

# `mlirLLVMDINullTypeAttrGet`

Creates a LLVM DINullType attribute.

# `mlirLLVMDINullTypeAttrGetName`

# `mlirLLVMDIStringTypeAttrGet`

# `mlirLLVMDIStringTypeAttrGetName`

# `mlirLLVMDISubprogramAttrGet`

Creates a LLVM DISubprogramAttr attribute.

# `mlirLLVMDISubprogramAttrGetCompileUnit`

Gets the compile unit from this DISubprogram.

# `mlirLLVMDISubprogramAttrGetFile`

Gets the file from this DISubprogramAttr.

# `mlirLLVMDISubprogramAttrGetLine`

Gets the line from this DISubprogramAttr.

# `mlirLLVMDISubprogramAttrGetName`

# `mlirLLVMDISubprogramAttrGetRecSelf`

Creates a self-referencing LLVM DISubprogramAttr attribute.

# `mlirLLVMDISubprogramAttrGetScope`

Gets the scope from this DISubprogramAttr.

# `mlirLLVMDISubprogramAttrGetScopeLine`

Gets the scope line from this DISubprogram.

# `mlirLLVMDISubprogramAttrGetType`

Gets the type from this DISubprogramAttr.

# `mlirLLVMDISubroutineTypeAttrGet`

Creates a LLVM DISubroutineTypeAttr attribute.

# `mlirLLVMDISubroutineTypeAttrGetName`

# `mlirLLVMFunctionTypeGet`

Creates an llvm.func type.

# `mlirLLVMFunctionTypeGetInput`

Returns the pos-th input type.

# `mlirLLVMFunctionTypeGetName`

# `mlirLLVMFunctionTypeGetNumInputs`

Returns the number of input types.

# `mlirLLVMFunctionTypeGetReturnType`

Returns the return type of the function type.

# `mlirLLVMFunctionTypeGetTypeID`

Returns the TypeID of an LLVM function type.

# `mlirLLVMFunctionTypeIsVarArg`

Returns `true` if the function type is variadic.

# `mlirLLVMLinkageAttrGet`

Creates a LLVM Linkage attribute.

# `mlirLLVMLinkageAttrGetName`

# `mlirLLVMMDConstantAttrGet`

Creates an LLVM MDConstantAttr wrapping an attribute.

# `mlirLLVMMDConstantAttrGetTypeID`

Returns the TypeID of MDConstantAttr.

# `mlirLLVMMDConstantAttrGetValue`

Returns the attribute value of an LLVM MDConstantAttr.

# `mlirLLVMMDGlobalValueAttrGet`

Creates an LLVM MDGlobalValueAttr referencing a symbol-backed global value.

# `mlirLLVMMDGlobalValueAttrGetName`

Returns the symbol name of an LLVM MDGlobalValueAttr.

# `mlirLLVMMDGlobalValueAttrGetTypeID`

Returns the TypeID of MDGlobalValueAttr.

# `mlirLLVMMDNodeAttrGet`

Creates an LLVM MDNodeAttr.

# `mlirLLVMMDNodeAttrGetNumOperands`

Returns the number of operands in an LLVM MDNodeAttr.

# `mlirLLVMMDNodeAttrGetOperand`

Returns the operand at the given index of an LLVM MDNodeAttr.

# `mlirLLVMMDNodeAttrGetTypeID`

Returns the TypeID of MDNodeAttr.

# `mlirLLVMMDStringAttrGet`

Creates an LLVM MDStringAttr.

# `mlirLLVMMDStringAttrGetTypeID`

Returns the TypeID of MDStringAttr.

# `mlirLLVMMDStringAttrGetValue`

Returns the string value of an LLVM MDStringAttr.

# `mlirLLVMPointerTypeGet`

Creates an llvm.ptr type.

# `mlirLLVMPointerTypeGetAddressSpace`

Returns address space of llvm.ptr

# `mlirLLVMPointerTypeGetName`

# `mlirLLVMPointerTypeGetTypeID`

# `mlirLLVMStructTypeGetElementType`

Returns the `positions`-th field of the struct. Asserts if the struct is
opaque, not yet initialized or if the position is out of range.

# `mlirLLVMStructTypeGetIdentifier`

Returns the identifier of the identified struct. Asserts that the struct is
identified, i.e., not literal.

# `mlirLLVMStructTypeGetName`

# `mlirLLVMStructTypeGetNumElementTypes`

Returns the number of fields in the struct. Asserts if the struct is opaque
or not yet initialized.

# `mlirLLVMStructTypeGetTypeID`

# `mlirLLVMStructTypeIdentifiedGet`

Creates an LLVM identified struct type with no body. If a struct type with
this name already exists in the context, returns that type. Use
mlirLLVMStructTypeIdentifiedNewGet to create a fresh struct type,
potentially renaming it. The body should be set separatelty by calling
mlirLLVMStructTypeSetBody, if it isn't set already.

# `mlirLLVMStructTypeIdentifiedNewGet`

Creates an LLVM identified struct type with no body and a name starting with
the given prefix. If a struct with the exact name as the given prefix
already exists, appends an unspecified suffix to the name so that the name
is unique in context.

# `mlirLLVMStructTypeIsLiteral`

Returns `true` if the type is a literal (unnamed) LLVM struct type.

# `mlirLLVMStructTypeIsOpaque`

Returns `true` is the struct is explicitly opaque (will not have a body) or
uninitialized (will eventually have a body).

# `mlirLLVMStructTypeIsPacked`

Returns `true` if the struct is packed.

# `mlirLLVMStructTypeLiteralGet`

Creates an LLVM literal (unnamed) struct type. This may assert if the fields
have types not compatible with the LLVM dialect. For a graceful failure, use
the checked version.

# `mlirLLVMStructTypeLiteralGetChecked`

Creates an LLVM literal (unnamed) struct type if possible. Emits a
diagnostic at the given location and returns null otherwise.

# `mlirLLVMStructTypeLiteralGetCheckedWithDiagnostics`

Creates an LLVM literal (unnamed) struct type if possible. Emits a
diagnostic at the given location and returns null otherwise.

# `mlirLLVMStructTypeOpaqueGet`

# `mlirLLVMStructTypeSetBody`

Sets the body of the identified struct if it hasn't been set yet. Returns
whether the operation was successful.

# `mlirLLVMVoidTypeGet`

Creates an llmv.void type.

# `mlirLLVMVoidTypeGetName`

# `mlirLlvmRawFdOStreamCreate`

Create a raw_fd_ostream for the given path. This wrapper is needed because
std::ostream does not provide the file sharing semantics required on
Windows.
- `path`: output file path.
- `binary`: controls text vs binary mode.
- `errorCallback`: called with an error message on failure (optional).
- `userData`: forwarded to `errorCallback` so it can copy the error message
into caller-owned storage (e.g., a `std::string`).
On failure, returns a null stream and invokes the optional error callback
with the error message.

# `mlirLlvmRawFdOStreamDestroy`

Destroy a raw_fd_ostream created with mlirLlvmRawFdOStreamCreate.

# `mlirLlvmRawFdOStreamIsNull`

Checks if a raw_fd_ostream is null.

# `mlirLlvmRawFdOStreamWrite`

Write a string to a raw_fd_ostream created with mlirLlvmRawFdOStreamCreate.

# `mlirLlvmThreadPoolCreate`

Create an LLVM thread pool. This is reexported here to avoid directly
pulling in the LLVM headers directly.

# `mlirLlvmThreadPoolDestroy`

Destroy an LLVM thread pool.

# `mlirLlvmThreadPoolGetMaxConcurrency`

Returns the maximum number of threads in the thread pool.

# `mlirLoadIRDLDialects`

Loads all IRDL dialects in the provided module, registering the dialects in
the module's associated context.

# `mlirLocationCallSiteGet`

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

# `mlirLocationCallSiteGetCallee`

Getter for callee of CallSite.

# `mlirLocationCallSiteGetCaller`

Getter for caller of CallSite.

# `mlirLocationCallSiteGetTypeID`

TypeID Getter for CallSite.

# `mlirLocationEqual`

Checks if two locations are equal.

# `mlirLocationFileLineColGet`

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

# `mlirLocationFileLineColRangeGet`

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

# `mlirLocationFileLineColRangeGetEndColumn`

Getter for end_column of FileLineColRange.

# `mlirLocationFileLineColRangeGetEndLine`

Getter for end_line of FileLineColRange.

# `mlirLocationFileLineColRangeGetFilename`

Getter for filename of FileLineColRange.

# `mlirLocationFileLineColRangeGetStartColumn`

Getter for start_column of FileLineColRange.

# `mlirLocationFileLineColRangeGetStartLine`

Getter for start_line of FileLineColRange.

# `mlirLocationFileLineColRangeGetTypeID`

TypeID Getter for FileLineColRange.

# `mlirLocationFromAttribute`

Creates a location from a location attribute.

# `mlirLocationFusedGet`

Creates a fused location with an array of locations and metadata.

# `mlirLocationFusedGetLocations`

Getter for locations of Fused. Requires pre-allocated memory of
#fusedLocations X sizeof(MlirLocation).

# `mlirLocationFusedGetMetadata`

Getter for metadata of Fused.

# `mlirLocationFusedGetNumLocations`

Getter for number of locations fused together.

# `mlirLocationFusedGetTypeID`

TypeID Getter for Fused.

# `mlirLocationGetAttribute`

Returns the underlying location attribute of this location.

# `mlirLocationGetContext`

Gets the context that a location was created with.

# `mlirLocationIsACallSite`

Checks whether the given location is an CallSite.

# `mlirLocationIsAFileLineColRange`

Checks whether the given location is an FileLineColRange.

# `mlirLocationIsAFused`

Checks whether the given location is an Fused.

# `mlirLocationIsAName`

Checks whether the given location is an Name.

# `mlirLocationIsAUnknown`

Checks whether the given location is an Unknown.

# `mlirLocationIsNull`

Checks if the location is null.

# `mlirLocationNameGet`

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.

# `mlirLocationNameGetChildLoc`

Getter for childLoc of Name.

# `mlirLocationNameGetName`

Getter for name of Name.

# `mlirLocationNameGetTypeID`

TypeID Getter for Name.

# `mlirLocationPrint`

Prints a location by sending chunks of the string representation and
forwarding `userData to `callback`. Note that the callback may be called
several times with consecutive chunks of the string.

# `mlirLocationUnknownGet`

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

# `mlirLocationUnknownGetTypeID`

TypeID Getter for Unknown.

# `mlirLogicalResultFailure`

Creates a logical result representing a failure.

# `mlirLogicalResultIsFailure`

Checks if the given logical result represents a failure.

# `mlirLogicalResultIsSuccess`

Checks if the given logical result represents a success.

# `mlirLogicalResultSuccess`

Creates a logical result representing a success.

# `mlirMemoryEffectInstanceCreate`

Creates a memory effect instance without an associated IR entity.
`parameters` may be a null attribute. The caller owns the returned instance
and must destroy it with `mlirMemoryEffectInstanceDestroy`.

# `mlirMemoryEffectInstanceCreateForBlockArgument`

Creates a memory effect instance associated with a block argument.
`blockArgument` must wrap a BlockArgument. `parameters` may be a null
attribute. The caller owns the returned instance and must destroy it with
`mlirMemoryEffectInstanceDestroy`.

# `mlirMemoryEffectInstanceCreateForOpOperand`

Creates a memory effect instance associated with an operation operand.
`parameters` may be a null attribute. The caller owns the returned instance
and must destroy it with `mlirMemoryEffectInstanceDestroy`.

# `mlirMemoryEffectInstanceCreateForOpResult`

Creates a memory effect instance associated with an operation result.
`result` must wrap an OpResult. `parameters` may be a null attribute. The
caller owns the returned instance and must destroy it with
`mlirMemoryEffectInstanceDestroy`.

# `mlirMemoryEffectInstanceCreateForSymbol`

Creates a memory effect instance associated with a symbol. `symbol` must be
a SymbolRefAttr. `parameters` may be a null attribute. The caller owns the
returned instance and must destroy it with
`mlirMemoryEffectInstanceDestroy`.

# `mlirMemoryEffectInstanceDestroy`

Destroys a memory effect instance created by one of the functions above.

# `mlirMemoryEffectInstancesListAppend`

Appends a copy of `instance` to the given list. This does not take ownership
of `instance`; the caller remains responsible for destroying it.

# `mlirMemoryEffectsAllocateGet`

Returns the borrowed singleton instance of the allocate memory effect.

# `mlirMemoryEffectsFreeGet`

Returns the borrowed singleton instance of the free memory effect.

# `mlirMemoryEffectsOpInterfaceTypeID`

Returns the interface TypeID of the MemoryEffectsOpInterface.

# `mlirMemoryEffectsReadGet`

Returns the borrowed singleton instance of the read memory effect.

# `mlirMemoryEffectsWriteGet`

Returns the borrowed singleton instance of the write memory effect.

# `mlirMemRefTypeContiguousGet`

Creates a MemRef type with the given rank, shape, memory space and element
type in the same context as the element type. The type has no affine maps,
i.e. represents a default row-major contiguous memref. The type is owned by
the context.

# `mlirMemRefTypeContiguousGetChecked`

Same as "mlirMemRefTypeContiguousGet" but returns a nullptr wrapping
MlirType on illegal arguments, emitting appropriate diagnostics.

# `mlirMemRefTypeContiguousGetCheckedWithDiagnostics`

Same as "mlirMemRefTypeContiguousGet" but returns a nullptr wrapping
MlirType on illegal arguments, emitting appropriate diagnostics.

# `mlirMemRefTypeGet`

Creates a MemRef type with the given rank and shape, a potentially empty
list of affine layout maps, the given memory space and element type, in the
same context as element type. The type is owned by the context.

# `mlirMemRefTypeGetAffineMap`

Returns the affine map of the given MemRef type.

# `mlirMemRefTypeGetChecked`

Same as "mlirMemRefTypeGet" but returns a nullptr-wrapping MlirType o
illegal arguments, emitting appropriate diagnostics.

# `mlirMemRefTypeGetCheckedWithDiagnostics`

Same as "mlirMemRefTypeGet" but returns a nullptr-wrapping MlirType o
illegal arguments, emitting appropriate diagnostics.

# `mlirMemRefTypeGetLayout`

Returns the layout of the given MemRef type.

# `mlirMemRefTypeGetMemorySpace`

Returns the memory space of the given MemRef type.

# `mlirMemRefTypeGetName`

# `mlirMemRefTypeGetStridesAndOffset`

Returns the strides of the MemRef if the layout map is in strided form.
Both strides and offset are out params. strides must point to pre-allocated
memory of length equal to the rank of the memref.

# `mlirMemRefTypeGetTypeID`

Returns the typeID of an MemRef type.

# `mlirMergeSymbolsIntoFromClone`

Merge the symbols from `other` into `target`, potentially renaming them to
avoid conflicts. Private symbols may be renamed during the merge, public
symbols must have at most one declaration. A name conflict in public symbols
is reported as an error before returning a failure.
Note that this clones the `other` operation unlike the C++ counterpart that
takes ownership.

# `mlirModuleCreateEmpty`

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

# `mlirModuleCreateParse`

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

# `mlirModuleCreateParseFromFile`

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

# `mlirModuleCreateParseWithDiagnostics`

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

# `mlirModuleDestroy`

Takes a module owned by the caller and deletes it.

# `mlirModuleEqual`

Checks if two modules are equal.

# `mlirModuleFromOperation`

Views the generic operation as a module.
The returned module is null when the input operation was not a ModuleOp.

# `mlirModuleGetBody`

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

# `mlirModuleGetContext`

Gets the context that a module was created with.

# `mlirModuleGetOperation`

Views the module as a generic operation.

# `mlirModuleHashValue`

Compute a hash for the given module.

# `mlirModuleIsNull`

Checks whether a module is null.

# `mlirNamedAttributeGet`

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

# `mlirNoneTypeGet`

Creates a None type in the given context. The type is owned by the
context.

# `mlirNoneTypeGetName`

# `mlirNoneTypeGetTypeID`

Returns the typeID of an None type.

# `mlirNVGPUTensorMapDescriptorTypeGet`

# `mlirNVGPUTensorMapDescriptorTypeGetName`

# `mlirOpaqueAttrGet`

Creates an opaque attribute in the given context associated with the dialect
identified by its namespace. The attribute contains opaque byte data of the
specified length (data need not be null-terminated).

# `mlirOpaqueAttrGetData`

Returns the raw data as a string reference. The data remains live as long as
the context in which the attribute lives.

# `mlirOpaqueAttrGetDialectNamespace`

Returns the namespace of the dialect with which the given opaque attribute
is associated. The namespace string is owned by the context.

# `mlirOpaqueAttrGetName`

# `mlirOpaqueAttrGetTypeID`

Returns the typeID of an Opaque attribute.

# `mlirOpaqueTypeGet`

Creates an opaque type in the given context associated with the dialect
identified by its namespace. The type contains opaque byte data of the
specified length (data need not be null-terminated).

# `mlirOpaqueTypeGetData`

Returns the raw data as a string reference. The data remains live as long as
the context in which the type lives.

# `mlirOpaqueTypeGetDialectNamespace`

Returns the namespace of the dialect with which the given opaque type
is associated. The namespace string is owned by the context.

# `mlirOpaqueTypeGetName`

# `mlirOpaqueTypeGetTypeID`

Returns the typeID of an Opaque type.

# `mlirOperationClone`

Creates a deep copy of an operation. The operation is not inserted and
ownership is transferred to the caller.

# `mlirOperationCloneWithMapping`

Clones the operation with the given mapping. The mapping is updated with
the cloned operation's results and regions.

# `mlirOperationCreate`

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.

# `mlirOperationCreateParse`

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.

# `mlirOperationDestroy`

Takes an operation owned by the caller and destroys it.

# `mlirOperationDump`

Prints an operation to stderr.

# `mlirOperationEqual`

Checks whether two operation handles point to the same operation. This does
not perform deep comparison.

# `mlirOperationGetAttribute`

Return `pos`-th attribute of the operation.
Deprecated, please use `mlirOperationGetInherentAttribute` or
`mlirOperationGetDiscardableAttribute`.

# `mlirOperationGetAttributeByName`

Returns an attribute attached to the operation given its name.
Deprecated, please use `mlirOperationGetInherentAttributeByName` or
`mlirOperationGetDiscardableAttributeByName`.

# `mlirOperationGetBlock`

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

# `mlirOperationGetContext`

Gets the context this operation is associated with

# `mlirOperationGetDiscardableAttribute`

Return `pos`-th discardable attribute of the operation.

# `mlirOperationGetDiscardableAttributeByName`

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

# `mlirOperationGetFirstRegion`

Returns first region attached to the operation.

# `mlirOperationGetInherentAttributeByName`

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

# `mlirOperationGetLocation`

Gets the location of the operation.

# `mlirOperationGetName`

Gets the name of the operation as an identifier.

# `mlirOperationGetNextInBlock`

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

# `mlirOperationGetNumAttributes`

Returns the number of attributes attached to the operation.
Deprecated, please use `mlirOperationGetNumInherentAttributes` or
`mlirOperationGetNumDiscardableAttributes`.

# `mlirOperationGetNumDiscardableAttributes`

Returns the number of discardable attributes attached to the operation.

# `mlirOperationGetNumOperands`

Returns the number of operands of the operation.

# `mlirOperationGetNumRegions`

Returns the number of regions attached to the given operation.

# `mlirOperationGetNumResults`

Returns the number of results of the operation.

# `mlirOperationGetNumSuccessors`

Returns the number of successor blocks of the operation.

# `mlirOperationGetOperand`

Returns `pos`-th operand of the operation.

# `mlirOperationGetOpOperand`

Returns `pos`-th OpOperand of the operation.

# `mlirOperationGetParentOperation`

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

# `mlirOperationGetRegion`

Returns `pos`-th region attached to the operation.

# `mlirOperationGetResult`

Returns `pos`-th result of the operation.

# `mlirOperationGetSuccessor`

Returns `pos`-th successor of the operation.

# `mlirOperationGetTypeID`

Gets the type id of the operation.
Returns null if the operation does not have a registered operation
description.

# `mlirOperationHashValue`

Compute a hash for the given operation. Operand and result SSA values are
hashed by identity and locations are significant, so equivalent-but-distinct
operations hash differently; use mlirOperationStructuralHashValue for a hash
that pairs with mlirOperationIsStructurallyEquivalent.

# `mlirOperationHasInherentAttributeByName`

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.

# `mlirOperationImplementsInterface`

Returns `true` if the given operation implements an interface identified by
its TypeID.

# `mlirOperationImplementsInterfaceStatic`

Returns `true` if the operation identified by its canonical string name
implements the interface identified by its TypeID in the given context.
Note that interfaces may be attached to operations in some contexts and not
others.

# `mlirOperationIsBeforeInBlock`

Given an operation 'other' that is within the same parent block, return
whether the current operation is before 'other' in the operation list
of the parent block.
Note: This function has an average complexity of O(1), but worst case may
take O(N) where N is the number of operations within the parent block.

# `mlirOperationIsNull`

Checks whether the underlying operation is null.

# `mlirOperationIsStructurallyEquivalent`

Checks whether two operations are structurally equivalent, i.e. they have
the same name, attributes, operand and result types, and recursively
equivalent regions. Operand equivalence is tracked structurally while
recursing into regions, so operands defined inside the compared regions need
not be the exact same SSA values; operands defined outside must be. `flags`
is a bitwise OR of MlirOperationEquivalenceFlags values.

# `mlirOperationMoveAfter`

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.

# `mlirOperationMoveBefore`

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.

# `mlirOperationNameHasTrait`

Checks if the operation name has a trait identified by the given type id.

# `mlirOperationPrint`

Prints an operation by sending chunks of the string representation and
forwarding `userData to `callback`. Note that the callback may be called
several times with consecutive chunks of the string.

# `mlirOperationPrintWithFlags`

Same as mlirOperationPrint but accepts flags controlling the printing
behavior.

# `mlirOperationPrintWithState`

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

# `mlirOperationRemoveAttributeByName`

Removes an attribute by name. Returns false if the attribute was not found
and true if removed.
Deprecated, please use `mlirOperationRemoveInherentAttributeByName` or
`mlirOperationRemoveDiscardableAttributeByName`.

# `mlirOperationRemoveDiscardableAttributeByName`

Removes a discardable attribute by name. Returns false if the attribute was
not found and true if removed.

# `mlirOperationRemoveFromParent`

Removes the given operation from its parent block. The operation is not
destroyed. The ownership of the operation is transferred to the caller.

# `mlirOperationReplaceUsesOfWith`

Replace uses of 'of' value with the 'with' value inside the 'op' operation.

# `mlirOperationSetAttributeByName`

Sets an attribute by name, replacing the existing if it exists or
adding a new one otherwise.
Deprecated, please use `mlirOperationSetInherentAttributeByName` or
`mlirOperationSetDiscardableAttributeByName`.

# `mlirOperationSetDiscardableAttributeByName`

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.

# `mlirOperationSetInherentAttributeByName`

Sets an inherent attribute by name, replacing the existing if it exists.
This has no effect if "name" does not match an inherent attribute.

# `mlirOperationSetLocation`

Sets the location of the operation.

# `mlirOperationSetOperand`

Sets the `pos`-th operand of the operation.

# `mlirOperationSetOperands`

Replaces the operands of the operation.

# `mlirOperationSetSuccessor`

Set `pos`-th successor of the operation.

# `mlirOperationStateAddAttributes`

# `mlirOperationStateAddOperands`

# `mlirOperationStateAddOwnedRegions`

# `mlirOperationStateAddResults`

Adds a list of components to the operation state.

# `mlirOperationStateAddSuccessors`

# `mlirOperationStateEnableResultTypeInference`

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.

# `mlirOperationStateGet`

Constructs an operation state from a name and a location.

# `mlirOperationStructuralHashValue`

Computes a hash for the given operation that pairs with
mlirOperationIsStructurallyEquivalent: two operations that are structurally
equivalent under the same `flags` hash equally. Operands are hashed by
identity, results are not hashed at all, and regions do not participate in
the hash. `flags` is a bitwise OR of MlirOperationEquivalenceFlags values.

# `mlirOperationVerify`

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

# `mlirOperationVerifyWithDiagnostics`

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

# `mlirOperationWalk`

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.

# `mlirOperationWriteBytecode`

Same as mlirOperationPrint but writing the bytecode format.

# `mlirOperationWriteBytecodeWithConfig`

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

# `mlirOpOperandGetNextUse`

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

# `mlirOpOperandGetOperandNumber`

Returns the operand number of an op operand.

# `mlirOpOperandGetOwner`

Returns the owner operation of an op operand.

# `mlirOpOperandGetValue`

Returns the value of an op operand.

# `mlirOpOperandIsNull`

Returns whether the op operand is null.

# `mlirOpPassManagerAddOwnedPass`

Add a pass and transfer ownership to the provided mlirOpPassManager. If the
pass is not a generic operation pass or matching the type of the provided
PassManager, a new OpPassManager is implicitly nested under the provided
PassManager.

# `mlirOpPassManagerAddPipeline`

Parse a sequence of textual MLIR pass pipeline elements and add them to the
provided OpPassManager. If parsing fails an error message is reported using
the provided callback.

# `mlirOpPassManagerGetNestedUnder`

Nest an OpPassManager under the provided OpPassManager, the nested
passmanager will only run on operations matching the provided name.
The returned OpPassManager will be destroyed when the parent is destroyed.

# `mlirOpPrintingFlagsAssumeVerified`

Do not verify the operation when using custom operation printers.

# `mlirOpPrintingFlagsCreate`

Creates new printing flags with defaults, intended for customization.
Must be freed with a call to mlirOpPrintingFlagsDestroy().

# `mlirOpPrintingFlagsDestroy`

Destroys printing flags created with mlirOpPrintingFlagsCreate.

# `mlirOpPrintingFlagsElideLargeElementsAttrs`

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.

# `mlirOpPrintingFlagsElideLargeResourceString`

Enables the elision of large resources strings by omitting them from the
`dialect_resources` section. The `largeResourceLimit` is used to configure
what is considered to be a "large" resource by providing an upper limit to
the string size.

# `mlirOpPrintingFlagsEnableDebugInfo`

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.

# `mlirOpPrintingFlagsPrintGenericOpForm`

Always print operations in the generic form.

# `mlirOpPrintingFlagsPrintNameLocAsPrefix`

Print the name and location, if NamedLoc, as a prefix to the SSA ID.

# `mlirOpPrintingFlagsSkipRegions`

Skip printing regions.

# `mlirOpPrintingFlagsUseLocalScope`

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.

# `mlirOpResultGetOwner`

Returns an operation that produced this value as its result. Asserts if the
value is not an op result.

# `mlirOpResultGetResultNumber`

Returns the position of the value in the list of results of the operation
that produced it.

# `mlirOpRewritePatternCreate`

Create a rewrite pattern that matches the operation
with the given rootName, corresponding to mlir::OpRewritePattern.

# `mlirParsePassPipeline`

Parse a textual MLIR pass pipeline and assign it to the provided
OpPassManager. If parsing fails an error message is reported using the
provided callback.

# `mlirPassManagerAddOwnedPass`

Add a pass and transfer ownership to the provided top-level mlirPassManager.
If the pass is not a generic operation pass or a ModulePass, a new
OpPassManager is implicitly nested under the provided PassManager.

# `mlirPassManagerCreate`

Create a new top-level PassManager with the default anchor.

# `mlirPassManagerCreateOnOperation`

Create a new top-level PassManager anchored on `anchorOp`.

# `mlirPassManagerDestroy`

Destroy the provided PassManager.

# `mlirPassManagerEnableIRPrinting`

Enable IR printing.
The treePrintingPath argument is an optional path to a directory
where the dumps will be produced. If it isn't provided then dumps
are produced to stderr.

# `mlirPassManagerEnableStatistics`

Enable pass statistics.

# `mlirPassManagerEnableTiming`

Enable pass timing.

# `mlirPassManagerEnableVerifier`

Enable / disable verify-each.

# `mlirPassManagerGetAsOpPassManager`

Cast a top-level PassManager to a generic OpPassManager.

# `mlirPassManagerGetNestedUnder`

Nest an OpPassManager under the top-level PassManager, the nested
passmanager will only run on operations matching the provided name.
The returned OpPassManager will be destroyed when the parent is destroyed.
To further nest more OpPassManager under the newly returned one, see
`mlirOpPassManagerNest` below.

# `mlirPassManagerIsNull`

Checks if a PassManager is null.

# `mlirPassManagerRunOnOp`

Run the provided `passManager` on the given `op`.

# `mlirPatternDescriptorOpInterfaceTypeID`

Returns the interface TypeID of the PatternDescriptorOpInterface.

# `mlirPatternRewriterAsBase`

Cast the PatternRewriter to a RewriterBase

# `mlirPDLAttributeTypeGet`

# `mlirPDLAttributeTypeGetName`

# `mlirPDLAttributeTypeGetTypeID`

# `mlirPDLOperationTypeGet`

# `mlirPDLOperationTypeGetName`

# `mlirPDLOperationTypeGetTypeID`

# `mlirPDLPatternModuleDestroy`

# `mlirPDLPatternModuleFromModule`

# `mlirPDLPatternModuleRegisterConstraintFunction`

Register a constraint function into the given PDL pattern module.
`userData` will be provided as an argument to the constraint function.

# `mlirPDLPatternModuleRegisterRewriteFunction`

Register a rewrite function into the given PDL pattern module.
`userData` will be provided as an argument to the rewrite function.

# `mlirPDLRangeTypeGet`

# `mlirPDLRangeTypeGetElementType`

# `mlirPDLRangeTypeGetName`

# `mlirPDLRangeTypeGetTypeID`

# `mlirPDLResultListPushBackAttribute`

Push the MlirAttribute into the given MlirPDLResultList.

# `mlirPDLResultListPushBackOperation`

Push the MlirOperation into the given MlirPDLResultList.

# `mlirPDLResultListPushBackType`

Push the MlirType into the given MlirPDLResultList.

# `mlirPDLResultListPushBackValue`

Push the MlirValue into the given MlirPDLResultList.

# `mlirPDLTypeTypeGet`

# `mlirPDLTypeTypeGetName`

# `mlirPDLTypeTypeGetTypeID`

# `mlirPDLValueAsAttribute`

Cast the MlirPDLValue to an MlirAttribute.
Return a null value if the cast fails, just like llvm::dyn_cast.

# `mlirPDLValueAsOperation`

Cast the MlirPDLValue to an MlirOperation.
Return a null value if the cast fails, just like llvm::dyn_cast.

# `mlirPDLValueAsType`

Cast the MlirPDLValue to an MlirType.
Return a null value if the cast fails, just like llvm::dyn_cast.

# `mlirPDLValueAsValue`

Cast the MlirPDLValue to an MlirValue.
Return a null value if the cast fails, just like llvm::dyn_cast.

# `mlirPDLValueTypeGet`

# `mlirPDLValueTypeGetName`

# `mlirPDLValueTypeGetTypeID`

# `mlirPostDominanceInfoCreate`

Creates a PostDominanceInfo for the given operation.

# `mlirPostDominanceInfoDestroy`

Destroys the given PostDominanceInfo.

# `mlirPostDominanceInfoInvalidate`

Invalidates all cached post-dominance information.

# `mlirPostDominanceInfoPostDominatesBlock`

Returns true if block A post-dominates block B.

# `mlirPostDominanceInfoPostDominatesOperation`

Returns true if operation A post-dominates operation B.

# `mlirPostDominanceInfoProperlyPostDominatesBlock`

Returns true if block A properly post-dominates block B.

# `mlirPostDominanceInfoProperlyPostDominatesOperation`

Returns true if operation A properly post-dominates operation B.

# `mlirPrintPassPipeline`

Print a textual MLIR pass pipeline by sending chunks of the string
representation and forwarding `userData to `callback`. Note that the
callback may be called several times with consecutive chunks of the string.

# `mlirQuantizedTypeCastExpressedToStorageType`

Casts from a type based on the expressed type of the given quantized type to
equivalent type based on storage type of the same quantized type.

# `mlirQuantizedTypeCastFromExpressedType`

Casts from a type based on the expressed type of the given type to a
corresponding type based on the given type. Returns a null type if the cast
is not valid.

# `mlirQuantizedTypeCastFromStorageType`

Casts from a type based on the storage type of the given type to a
corresponding type based on the given type. Returns a null type if the cast
is not valid.

# `mlirQuantizedTypeCastToExpressedType`

Casts from a type based on a quantized type to a corresponding typed based
on the expressed type. Returns a null type if the cast is not valid.

# `mlirQuantizedTypeCastToStorageType`

Casts from a type based on a quantized type to a corresponding typed based
on the storage type. Returns a null type if the cast is not valid.

# `mlirQuantizedTypeGetDefaultMaximumForInteger`

Returns the maximum possible value stored by a quantized type.

# `mlirQuantizedTypeGetDefaultMinimumForInteger`

Returns the minimum possible value stored by a quantized type.

# `mlirQuantizedTypeGetExpressedType`

Gets the original type approximated by the given quantized type.

# `mlirQuantizedTypeGetFlags`

Gets the flags associated with the given quantized type.

# `mlirQuantizedTypeGetQuantizedElementType`

Returns the element type of the given quantized type as another quantized
type.

# `mlirQuantizedTypeGetSignedFlag`

Returns the bit flag used to indicate signedness of a quantized type.

# `mlirQuantizedTypeGetStorageType`

Returns the underlying type used to store the values.

# `mlirQuantizedTypeGetStorageTypeIntegralWidth`

Returns the integral bitwidth that the storage type of the given quantized
type can represent exactly.

# `mlirQuantizedTypeGetStorageTypeMax`

Returns the maximum value that the storage type of the given quantized type
can take.

# `mlirQuantizedTypeGetStorageTypeMin`

Returns the minimum value that the storage type of the given quantized type
can take.

# `mlirQuantizedTypeIsCompatibleExpressedType`

Returns `true` if the `candidate` type is compatible with the given
quantized `type`.

# `mlirQuantizedTypeIsSigned`

Returns `true` if the given type is signed, `false` otherwise.

# `mlirRankedTensorTypeGet`

Creates a tensor type of a fixed rank with the given shape, element type,
and optional encoding in the same context as the element type. The type is
owned by the context. Tensor types without any specific encoding field
should assign mlirAttributeGetNull() to this parameter.

# `mlirRankedTensorTypeGetChecked`

Same as "mlirRankedTensorTypeGet" but returns a nullptr wrapping MlirType on
illegal arguments, emitting appropriate diagnostics.

# `mlirRankedTensorTypeGetCheckedWithDiagnostics`

Same as "mlirRankedTensorTypeGet" but returns a nullptr wrapping MlirType on
illegal arguments, emitting appropriate diagnostics.

# `mlirRankedTensorTypeGetEncoding`

Gets the 'encoding' attribute from the ranked tensor type, returning a null
attribute if none.

# `mlirRankedTensorTypeGetName`

# `mlirRankedTensorTypeGetTypeID`

Returns the typeID of an RankedTensor type.

# `mlirRegionAppendOwnedBlock`

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

# `mlirRegionCreate`

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

# `mlirRegionDestroy`

Takes a region owned by the caller and destroys it.

# `mlirRegionEqual`

Checks whether two region handles point to the same region. This does not
perform deep comparison.

# `mlirRegionGetFirstBlock`

Gets the first block in the region.

# `mlirRegionGetNextInOperation`

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

# `mlirRegionInsertOwnedBlock`

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.

# `mlirRegionInsertOwnedBlockAfter`

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.

# `mlirRegionInsertOwnedBlockBefore`

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.

# `mlirRegionIsNull`

Checks whether a region is null.

# `mlirRegionTakeBody`

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

# `mlirRegisterAffineAffineDataCopyGeneration`

# `mlirRegisterAffineAffineExpandIndexOps`

# `mlirRegisterAffineAffineExpandIndexOpsAsAffine`

# `mlirRegisterAffineAffineFoldMemRefAliasOps`

# `mlirRegisterAffineAffineLoopFusion`

# `mlirRegisterAffineAffineLoopInvariantCodeMotion`

# `mlirRegisterAffineAffineLoopNormalize`

# `mlirRegisterAffineAffineLoopTiling`

# `mlirRegisterAffineAffineLoopUnroll`

# `mlirRegisterAffineAffineLoopUnrollAndJam`

# `mlirRegisterAffineAffineParallelize`

# `mlirRegisterAffineAffinePipelineDataTransfer`

# `mlirRegisterAffineAffineScalarReplacement`

# `mlirRegisterAffineAffineVectorize`

# `mlirRegisterAffineLoopCoalescing`

# `mlirRegisterAffinePasses`

# `mlirRegisterAffineRaiseMemrefDialect`

# `mlirRegisterAffineSimplifyAffineMinMaxPass`

# `mlirRegisterAffineSimplifyAffineStructures`

# `mlirRegisterAffineSimplifyAffineWithBounds`

# `mlirRegisterAllDialects`

Appends all upstream dialects and extensions to the dialect registry.

# `mlirRegisterAllLLVMTranslations`

Register all translations to LLVM IR for dialects that can support it.

# `mlirRegisterAllPasses`

Register all compiler passes of MLIR.

# `mlirRegisterAMDGPUAmdgpuEmulateAtomicsPass`

# `mlirRegisterAMDGPUAmdgpuMaskedloadToLoadPass`

# `mlirRegisterAMDGPUAmdgpuResolveStridedMetadataPass`

# `mlirRegisterAMDGPUPasses`

# `mlirRegisterArithArithEmulateUnsupportedFloats`

# `mlirRegisterArithArithEmulateWideInt`

# `mlirRegisterArithArithExpandOpsPass`

# `mlirRegisterArithArithIntRangeNarrowing`

# `mlirRegisterArithArithIntRangeOpts`

# `mlirRegisterArithArithUnsignedWhenEquivalentPass`

# `mlirRegisterArithPasses`

# `mlirRegisterArmSMEEnableArmStreaming`

# `mlirRegisterArmSMEOuterProductFusion`

# `mlirRegisterArmSMEPasses`

# `mlirRegisterArmSMETestTileAllocation`

# `mlirRegisterArmSMEVectorLegalization`

# `mlirRegisterAsyncAsyncFuncToAsyncRuntimePass`

# `mlirRegisterAsyncAsyncParallelForPass`

# `mlirRegisterAsyncAsyncRuntimePolicyBasedRefCountingPass`

# `mlirRegisterAsyncAsyncRuntimeRefCountingOptPass`

# `mlirRegisterAsyncAsyncRuntimeRefCountingPass`

# `mlirRegisterAsyncAsyncToAsyncRuntimePass`

# `mlirRegisterAsyncPasses`

# `mlirRegisterBufferizationBufferDeallocationSimplificationPass`

# `mlirRegisterBufferizationBufferHoistingPass`

# `mlirRegisterBufferizationBufferLoopHoistingPass`

# `mlirRegisterBufferizationBufferResultsToOutParamsPass`

# `mlirRegisterBufferizationDropEquivalentBufferResultsPass`

# `mlirRegisterBufferizationEmptyTensorEliminationPass`

# `mlirRegisterBufferizationEmptyTensorToAllocTensorPass`

# `mlirRegisterBufferizationLowerDeallocationsPass`

# `mlirRegisterBufferizationOneShotBufferizePass`

# `mlirRegisterBufferizationOptimizeAllocationLivenessPass`

# `mlirRegisterBufferizationOwnershipBasedBufferDeallocationPass`

# `mlirRegisterBufferizationPasses`

# `mlirRegisterBufferizationPromoteBuffersToStackPass`

# `mlirRegisterBufferizationStaticMemoryPlannerAnalysisPass`

# `mlirRegisterConversionArithToAMDGPUConversionPass`

# `mlirRegisterConversionArithToAPFloatConversionPass`

# `mlirRegisterConversionArithToArmSMEConversionPass`

# `mlirRegisterConversionArithToLLVMConversionPass`

# `mlirRegisterConversionConvertACCToLLVMPass`

# `mlirRegisterConversionConvertAffineForToGPUPass`

# `mlirRegisterConversionConvertAMDGPUToROCDLPass`

# `mlirRegisterConversionConvertArithToEmitC`

# `mlirRegisterConversionConvertArithToSPIRVPass`

# `mlirRegisterConversionConvertArmNeon2dToIntrPass`

# `mlirRegisterConversionConvertArmSMEToLLVM`

# `mlirRegisterConversionConvertArmSMEToSCFPass`

# `mlirRegisterConversionConvertAsyncToLLVMPass`

# `mlirRegisterConversionConvertBufferizationToMemRefPass`

# `mlirRegisterConversionConvertComplexToLibm`

# `mlirRegisterConversionConvertComplexToLLVMPass`

# `mlirRegisterConversionConvertComplexToROCDLLibraryCalls`

# `mlirRegisterConversionConvertComplexToSPIRVPass`

# `mlirRegisterConversionConvertComplexToStandardPass`

# `mlirRegisterConversionConvertControlFlowToLLVMPass`

# `mlirRegisterConversionConvertControlFlowToSPIRVPass`

# `mlirRegisterConversionConvertFuncToEmitC`

# `mlirRegisterConversionConvertFuncToLLVMPass`

# `mlirRegisterConversionConvertFuncToSPIRVPass`

# `mlirRegisterConversionConvertGPUToSPIRV`

# `mlirRegisterConversionConvertGpuOpsToLLVMSPVOps`

# `mlirRegisterConversionConvertGpuOpsToNVVMOps`

# `mlirRegisterConversionConvertGpuOpsToROCDLOps`

# `mlirRegisterConversionConvertIndexToLLVMPass`

# `mlirRegisterConversionConvertIndexToSPIRVPass`

# `mlirRegisterConversionConvertLinalgToStandardPass`

# `mlirRegisterConversionConvertMathToEmitC`

# `mlirRegisterConversionConvertMathToFuncs`

# `mlirRegisterConversionConvertMathToLibmPass`

# `mlirRegisterConversionConvertMathToLLVMPass`

# `mlirRegisterConversionConvertMathToNVVM`

# `mlirRegisterConversionConvertMathToROCDL`

# `mlirRegisterConversionConvertMathToSPIRVPass`

# `mlirRegisterConversionConvertMathToXeVM`

# `mlirRegisterConversionConvertMemRefToEmitC`

# `mlirRegisterConversionConvertMemRefToSPIRVPass`

# `mlirRegisterConversionConvertNVGPUToNVVMPass`

# `mlirRegisterConversionConvertNVVMToLLVMPass`

# `mlirRegisterConversionConvertOpenACCToSCFPass`

# `mlirRegisterConversionConvertOpenMPToLLVMPass`

# `mlirRegisterConversionConvertParallelLoopToGpuPass`

# `mlirRegisterConversionConvertPDLToPDLInterpPass`

# `mlirRegisterConversionConvertSCFToOpenMPPass`

# `mlirRegisterConversionConvertShapeConstraintsPass`

# `mlirRegisterConversionConvertShapeToStandardPass`

# `mlirRegisterConversionConvertShardToMPIPass`

# `mlirRegisterConversionConvertSPIRVToLLVMPass`

# `mlirRegisterConversionConvertTensorToLinalgPass`

# `mlirRegisterConversionConvertTensorToSPIRVPass`

# `mlirRegisterConversionConvertToEmitC`

# `mlirRegisterConversionConvertToLLVMPass`

# `mlirRegisterConversionConvertVectorToAMX`

# `mlirRegisterConversionConvertVectorToArmSMEPass`

# `mlirRegisterConversionConvertVectorToGPU`

# `mlirRegisterConversionConvertVectorToLLVMPass`

# `mlirRegisterConversionConvertVectorToSCF`

# `mlirRegisterConversionConvertVectorToSPIRVPass`

# `mlirRegisterConversionConvertVectorToXeGPU`

# `mlirRegisterConversionConvertXeGPUToXeVMPass`

# `mlirRegisterConversionConvertXeVMToLLVMPass`

# `mlirRegisterConversionFinalizeMemRefToLLVMConversionPass`

# `mlirRegisterConversionGpuToLLVMConversionPass`

# `mlirRegisterConversionLiftControlFlowToSCFPass`

# `mlirRegisterConversionLowerAffinePass`

# `mlirRegisterConversionLowerHostCodeToLLVMPass`

# `mlirRegisterConversionMapMemRefStorageClass`

# `mlirRegisterConversionMathToAPFloatConversionPass`

# `mlirRegisterConversionPasses`

# `mlirRegisterConversionRaiseSCFToAffinePass`

# `mlirRegisterConversionRaiseWasmMLIR`

# `mlirRegisterConversionReconcileUnrealizedCastsPass`

# `mlirRegisterConversionSCFToControlFlowPass`

# `mlirRegisterConversionSCFToEmitC`

# `mlirRegisterConversionSCFToSPIRV`

# `mlirRegisterConversionSetLLVMModuleDataLayoutPass`

# `mlirRegisterConversionTosaToArithPass`

# `mlirRegisterConversionTosaToLinalg`

# `mlirRegisterConversionTosaToLinalgNamed`

# `mlirRegisterConversionTosaToMLProgram`

# `mlirRegisterConversionTosaToSCFPass`

# `mlirRegisterConversionTosaToSPIRVTosa`

# `mlirRegisterConversionTosaToSPIRVTosaMarkGraphConstants`

# `mlirRegisterConversionTosaToTensorPass`

# `mlirRegisterConversionUBToLLVMConversionPass`

# `mlirRegisterConversionUBToSPIRVConversionPass`

# `mlirRegisterEmitCFormExpressionsPass`

# `mlirRegisterEmitCMLGOAddReflectionMapPass`

# `mlirRegisterEmitCPasses`

# `mlirRegisterEmitCWrapFuncInClassPass`

# `mlirRegisterFuncDuplicateFunctionEliminationPass`

# `mlirRegisterFuncPasses`

# `mlirRegisterGPUGpuAsyncRegionPass`

# `mlirRegisterGPUGpuDecomposeMemrefsPass`

# `mlirRegisterGPUGpuEliminateBarriers`

# `mlirRegisterGPUGpuKernelOutliningPass`

# `mlirRegisterGPUGpuLaunchSinkIndexComputationsPass`

# `mlirRegisterGPUGpuMapParallelLoopsPass`

# `mlirRegisterGPUGpuModuleToBinaryPass`

# `mlirRegisterGPUGpuNVVMAttachTarget`

# `mlirRegisterGPUGpuROCDLAttachTarget`

# `mlirRegisterGPUGpuSPIRVAttachTarget`

# `mlirRegisterGPUGpuXeVMAttachTarget`

# `mlirRegisterGPUPasses`

# `mlirRegisterLinalgConvertElementwiseToLinalgPass`

# `mlirRegisterLinalgConvertLinalgToAffineLoopsPass`

# `mlirRegisterLinalgConvertLinalgToLoopsPass`

# `mlirRegisterLinalgConvertLinalgToParallelLoopsPass`

# `mlirRegisterLinalgLinalgBlockPackMatmul`

# `mlirRegisterLinalgLinalgElementwiseOpFusionPass`

# `mlirRegisterLinalgLinalgFoldIntoElementwisePass`

# `mlirRegisterLinalgLinalgFoldUnitExtentDimsPass`

# `mlirRegisterLinalgLinalgGeneralizeNamedOpsPass`

# `mlirRegisterLinalgLinalgInlineScalarOperandsPass`

# `mlirRegisterLinalgLinalgMorphOpsPass`

# `mlirRegisterLinalgLinalgSpecializeGenericOpsPass`

# `mlirRegisterLinalgPasses`

# `mlirRegisterLinalgSimplifyDepthwiseConvPass`

# `mlirRegisterLLVMDIScopeForLLVMFuncOpPass`

# `mlirRegisterLLVMLLVMAddComdats`

# `mlirRegisterLLVMLLVMLegalizeForExportPass`

# `mlirRegisterLLVMLLVMRequestCWrappersPass`

# `mlirRegisterLLVMLLVMUseDefaultVisibilityPass`

# `mlirRegisterLLVMPasses`

# `mlirRegisterMathMathExpandOpsPass`

# `mlirRegisterMathMathExtendToSupportedTypes`

# `mlirRegisterMathMathSincosFusionPass`

# `mlirRegisterMathMathUpliftToFMA`

# `mlirRegisterMathPasses`

# `mlirRegisterMemRefElideReinterpretCastPass`

# `mlirRegisterMemRefExpandOpsPass`

# `mlirRegisterMemRefExpandReallocPass`

# `mlirRegisterMemRefExpandStridedMetadataPass`

# `mlirRegisterMemRefFlattenMemrefsPass`

# `mlirRegisterMemRefFoldMemRefAliasOpsPass`

# `mlirRegisterMemRefMemRefEmulateWideInt`

# `mlirRegisterMemRefNormalizeMemRefsPass`

# `mlirRegisterMemRefPasses`

# `mlirRegisterMemRefReifyResultShapesPass`

# `mlirRegisterMemRefResolveRankedShapeTypeResultDimsPass`

# `mlirRegisterMemRefResolveShapedTypeResultDimsPass`

# `mlirRegisterMLProgramMLProgramPipelineGlobalsPass`

# `mlirRegisterMLProgramPasses`

# `mlirRegisterNVGPUOptimizeSharedMemory`

# `mlirRegisterNVGPUPasses`

# `mlirRegisterOpenACCACCBindRoutine`

# `mlirRegisterOpenACCACCCGToGPU`

# `mlirRegisterOpenACCACCComputeLowering`

# `mlirRegisterOpenACCACCDeclareGPUModuleInsertion`

# `mlirRegisterOpenACCACCEmitRemarksData`

# `mlirRegisterOpenACCACCEmitRemarksLoop`

# `mlirRegisterOpenACCACCEmitRemarksPrivate`

# `mlirRegisterOpenACCACCIfClauseLowering`

# `mlirRegisterOpenACCACCImplicitData`

# `mlirRegisterOpenACCACCImplicitDeclare`

# `mlirRegisterOpenACCACCImplicitRoutine`

# `mlirRegisterOpenACCACCLegalizeSerial`

# `mlirRegisterOpenACCACCLoopTiling`

# `mlirRegisterOpenACCACCRecipeMaterialization`

# `mlirRegisterOpenACCACCRoutineLowering`

# `mlirRegisterOpenACCACCRoutineToGPUFunc`

# `mlirRegisterOpenACCACCSpecializeForDevice`

# `mlirRegisterOpenACCACCSpecializeForHost`

# `mlirRegisterOpenACCLegalizeDataValuesInRegion`

# `mlirRegisterOpenACCOffloadLiveInValueCanonicalization`

# `mlirRegisterOpenACCOffloadTargetVerifier`

# `mlirRegisterOpenACCPasses`

# `mlirRegisterSCFPasses`

# `mlirRegisterSCFSCFForallToForLoop`

# `mlirRegisterSCFSCFForallToParallelLoop`

# `mlirRegisterSCFSCFForLoopCanonicalization`

# `mlirRegisterSCFSCFForLoopPeeling`

# `mlirRegisterSCFSCFForLoopRangeFolding`

# `mlirRegisterSCFSCFForLoopSpecialization`

# `mlirRegisterSCFSCFForToWhileLoop`

# `mlirRegisterSCFSCFParallelForToNestedFors`

# `mlirRegisterSCFSCFParallelLoopFusion`

# `mlirRegisterSCFSCFParallelLoopSpecialization`

# `mlirRegisterSCFSCFParallelLoopTiling`

# `mlirRegisterSCFTestSCFParallelLoopCollapsing`

# `mlirRegisterShapeOutlineShapeComputationPass`

# `mlirRegisterShapePasses`

# `mlirRegisterShapeRemoveShapeConstraintsPass`

# `mlirRegisterShapeShapeToShapeLoweringPass`

# `mlirRegisterShardPartition`

# `mlirRegisterShardPasses`

# `mlirRegisterShardShardingPropagation`

# `mlirRegisterShardShardSimplify`

# `mlirRegisterSPIRVPasses`

# `mlirRegisterSPIRVSPIRVCanonicalizeGLPass`

# `mlirRegisterSPIRVSPIRVCompositeTypeLayoutPass`

# `mlirRegisterSPIRVSPIRVLowerABIAttributesPass`

# `mlirRegisterSPIRVSPIRVReplicatedConstantCompositePass`

# `mlirRegisterSPIRVSPIRVRewriteInsertsPass`

# `mlirRegisterSPIRVSPIRVUnifyAliasedResourcePass`

# `mlirRegisterSPIRVSPIRVUpdateVCEPass`

# `mlirRegisterSPIRVSPIRVWebGPUPreparePass`

# `mlirRegisterSparseTensorLowerForeachToSCF`

# `mlirRegisterSparseTensorLowerSparseIterationToSCF`

# `mlirRegisterSparseTensorLowerSparseOpsToForeach`

# `mlirRegisterSparseTensorPasses`

# `mlirRegisterSparseTensorPreSparsificationRewrite`

# `mlirRegisterSparseTensorSparseAssembler`

# `mlirRegisterSparseTensorSparseBufferRewrite`

# `mlirRegisterSparseTensorSparseGPUCodegen`

# `mlirRegisterSparseTensorSparseReinterpretMap`

# `mlirRegisterSparseTensorSparseSpaceCollapse`

# `mlirRegisterSparseTensorSparseTensorCodegen`

# `mlirRegisterSparseTensorSparseTensorConversionPass`

# `mlirRegisterSparseTensorSparseVectorization`

# `mlirRegisterSparseTensorSparsificationAndBufferization`

# `mlirRegisterSparseTensorSparsificationPass`

# `mlirRegisterSparseTensorStageSparseOperations`

# `mlirRegisterSparseTensorStorageSpecifierToLLVM`

# `mlirRegisterTensorFoldTensorSubsetOpsPass`

# `mlirRegisterTensorPasses`

# `mlirRegisterTensorScalarizeSingleElementTensorReturnPass`

# `mlirRegisterTosaPasses`

# `mlirRegisterTosaTosaArithConstantToTosaConstPass`

# `mlirRegisterTosaTosaAttachTarget`

# `mlirRegisterTosaTosaConvertIntegerTypeToSignless`

# `mlirRegisterTosaTosaDowngrade1p1To1p0Pass`

# `mlirRegisterTosaTosaInferShapesPass`

# `mlirRegisterTosaTosaInputShape`

# `mlirRegisterTosaTosaLayerwiseConstantFoldPass`

# `mlirRegisterTosaTosaMakeBroadcastablePass`

# `mlirRegisterTosaTosaNarrowF64ToF32Pass`

# `mlirRegisterTosaTosaNarrowI64ToI32Pass`

# `mlirRegisterTosaTosaOptionalDecompositionsPass`

# `mlirRegisterTosaTosaReduceTransposes`

# `mlirRegisterTosaTosaValidation`

# `mlirRegisterTransformCheckUsesPass`

# `mlirRegisterTransformInferEffectsPass`

# `mlirRegisterTransformInterpreterPass`

# `mlirRegisterTransformPasses`

# `mlirRegisterTransformPreloadLibraryPass`

# `mlirRegisterTransformsBubbleDownMemorySpaceCasts`

# `mlirRegisterTransformsCanonicalizerPass`

# `mlirRegisterTransformsCompositeFixedPointPass`

# `mlirRegisterTransformsControlFlowSinkPass`

# `mlirRegisterTransformsCSEPass`

# `mlirRegisterTransformsGenerateRuntimeVerificationPass`

# `mlirRegisterTransformsInlinerPass`

# `mlirRegisterTransformsLocationSnapshot`

# `mlirRegisterTransformsLoopInvariantCodeMotionPass`

# `mlirRegisterTransformsLoopInvariantSubsetHoistingPass`

# `mlirRegisterTransformsMem2Reg`

# `mlirRegisterTransformsPasses`

# `mlirRegisterTransformsPrintIRPass`

# `mlirRegisterTransformsPrintOpStatsPass`

# `mlirRegisterTransformsRemoveDeadValuesPass`

# `mlirRegisterTransformsSCCPPass`

# `mlirRegisterTransformsSROA`

# `mlirRegisterTransformsStripDebugInfoPass`

# `mlirRegisterTransformsSymbolDCEPass`

# `mlirRegisterTransformsSymbolPrivatizePass`

# `mlirRegisterTransformsTopologicalSortPass`

# `mlirRegisterTransformsTrivialDeadCodeEliminationPass`

# `mlirRegisterTransformsViewOpGraphPass`

# `mlirRegisterVectorLowerVectorMaskPass`

# `mlirRegisterVectorLowerVectorMultiReduction`

# `mlirRegisterVectorLowerVectorToFromElementsToShuffleTree`

# `mlirRegisterVectorPasses`

# `mlirRewritePatternSetAdd`

Add the given MlirRewritePattern into a MlirRewritePatternSet.
Note that the ownership of the pattern is transferred to the set after this
call.

# `mlirRewritePatternSetCreate`

Create an empty MlirRewritePatternSet.

# `mlirRewritePatternSetDestroy`

Destruct the given MlirRewritePatternSet.

# `mlirRewritePatternSetFromPDLPatternModule`

# `mlirRewritePatternSetGetContext`

Get the context associated with a MlirRewritePatternSet.

# `mlirRewriterBaseCancelOpModification`

This method cancels a pending in-place modification. This can only be
called on operations that were provided to a call to
`startOpModification`.

# `mlirRewriterBaseClearInsertionPoint`

Reset the insertion point to no location. Creating an operation without a
set insertion point is an error, but this can still be useful when the
current insertion point a builder refers to is being removed.

# `mlirRewriterBaseClone`

Creates a deep copy of the specified operation.

# `mlirRewriterBaseCloneRegionBefore`

Clone the blocks that belong to "region" before the given position in
another region "parent".

# `mlirRewriterBaseCloneWithMapping`

Clones the given operation using the rewriter and the provided IRMapping.
The mapping is updated with the results of the cloned operation.

# `mlirRewriterBaseCloneWithoutRegions`

Creates a deep copy of this operation but keep the operation regions
empty.

# `mlirRewriterBaseCreateBlockBefore`

Add new block with 'argTypes' arguments and set the insertion point to the
end of it. The block is placed before 'insertBefore'. `locs` contains the
locations of the inserted arguments, and should match the size of
`argTypes`.

# `mlirRewriterBaseEraseBlock`

Erases a block along with all operations inside it.

# `mlirRewriterBaseEraseOp`

Erases an operation that is known to have no uses.

# `mlirRewriterBaseFinalizeOpModification`

This method is used to signal the end of an in-place modification of the
given operation. This can only be called on operations that were provided
to a call to `startOpModification`.

# `mlirRewriterBaseGetBlock`

Returns the current block of the rewriter.

# `mlirRewriterBaseGetContext`

Get the MLIR context referenced by the rewriter.

# `mlirRewriterBaseGetInsertionBlock`

Return the block the current insertion point belongs to. Note that the
insertion point is not necessarily the end of the block.

# `mlirRewriterBaseGetOperationAfterInsertion`

Returns the operation right after the current insertion point
of the rewriter. A null MlirOperation will be returned

# `mlirRewriterBaseInlineBlockBefore`

Inline the operations of block 'source' before the operation 'op'. The
source block will be deleted and must have no uses. 'argValues' is used to
replace the block arguments of 'source'
The source block must have no successors. Otherwise, the resulting IR
would have unreachable operations.

# `mlirRewriterBaseInlineRegionBefore`

Move the blocks that belong to "region" before the given position in
another region "parent". The two regions must be different. The caller
is responsible for creating or updating the operation transferring flow
of control to the region and passing it the correct block arguments.

# `mlirRewriterBaseInsert`

Insert the given operation at the current insertion point and return it.

# `mlirRewriterBaseMergeBlocks`

Inline the operations of block 'source' into the end of block 'dest'. The
source block will be deleted and must have no uses. 'argValues' is used to
replace the block arguments of 'source'
The dest block must have no successors. Otherwise, the resulting IR would
have unreachable operation.

# `mlirRewriterBaseMoveBlockBefore`

Unlink this block and insert it right before `existingBlock`.

# `mlirRewriterBaseMoveOpAfter`

Unlink this operation from its current block and insert it right after
`existingOp` which may be in the same or another block in the same
function.

# `mlirRewriterBaseMoveOpBefore`

Unlink this operation from its current block and insert it right before
`existingOp` which may be in the same or another block in the same
function.

# `mlirRewriterBaseReplaceAllOpUsesWithOperation`

Find uses of `from` and replace them with `to`. Also notify the listener
about every in-place op modification (for every use that was replaced)
and that the `from` operation is about to be replaced.

# `mlirRewriterBaseReplaceAllOpUsesWithValueRange`

Find uses of `from` and replace them with `to`. Also notify the listener
about every in-place op modification (for every use that was replaced)
and that the `from` operation is about to be replaced.

# `mlirRewriterBaseReplaceAllUsesExcept`

Find uses of `from` and replace them with `to` except if the user is
`exceptedUser`. Also notify the listener about every in-place op
modification (for every use that was replaced).

# `mlirRewriterBaseReplaceAllUsesWith`

Find uses of `from` and replace them with `to`. Also notify the listener
about every in-place op modification (for every use that was replaced).

# `mlirRewriterBaseReplaceAllValueRangeUsesWith`

Find uses of `from` and replace them with `to`. Also notify the listener
about every in-place op modification (for every use that was replaced).

# `mlirRewriterBaseReplaceOpUsesWithinBlock`

Find uses of `from` within `block` and replace them with `to`. Also notify
the listener about every in-place op modification (for every use that was
replaced). The optional `allUsesReplaced` flag is set to "true" if all
uses were replaced.

# `mlirRewriterBaseReplaceOpWithOperation`

Replace the results of the given (original) operation with the specified
new op (replacement). The result types of the two ops must match. The
original op is erased.

# `mlirRewriterBaseReplaceOpWithValues`

Replace the results of the given (original) operation with the specified
list of values (replacements). The result types of the given op and the
replacements must match. The original op is erased.

# `mlirRewriterBaseRestoreInsertionPoint`

Restores a previously saved insertion point.

# `mlirRewriterBaseSaveInsertionPoint`

Returns the current insertion point of the rewriter so that it can be
restored later with mlirRewriterBaseRestoreInsertionPoint.

# `mlirRewriterBaseSetInsertionPointAfter`

Sets the insertion point to the node after the specified operation, which
will cause subsequent insertions to go right after it.

# `mlirRewriterBaseSetInsertionPointAfterValue`

Sets the insertion point to the node after the specified value. If value
has a defining operation, sets the insertion point to the node after such
defining operation. This will cause subsequent insertions to go right
after it. Otherwise, value is a BlockArgument. Sets the insertion point to
the start of its block.

# `mlirRewriterBaseSetInsertionPointBefore`

Sets the insertion point to the specified operation, which will cause
subsequent insertions to go right before it.

# `mlirRewriterBaseSetInsertionPointToEnd`

Sets the insertion point to the end of the specified block.

# `mlirRewriterBaseSetInsertionPointToStart`

Sets the insertion point to the start of the specified block.

# `mlirRewriterBaseStartOpModification`

This method is used to notify the rewriter that an in-place operation
modification is about to happen. A call to this function *must* be
followed by a call to either `finalizeOpModification` or
`cancelOpModification`. This is a minor efficiency win (it avoids creating
a new operation and removing the old one) but also often allows simpler
code in the client.

# `mlirSetGlobalDebugType`

Sets the current debug type, similarly to `-debug-only=type` in the
command-line tools. Note that global debug should be enabled for any output
to be produced.

# `mlirSetGlobalDebugTypes`

Sets multiple current debug types, similarly to `-debug-only=type1,type2" in
the command-line tools. Note that global debug should be enabled for any
output to be produced.

# `mlirShapedTypeGetDimSize`

Returns the dim-th dimension of the given ranked shaped type.

# `mlirShapedTypeGetDynamicSize`

Returns the value indicating a dynamic size in a shaped type. Prefer
mlirShapedTypeIsDynamicSize and mlirShapedTypeIsStaticSize to direct
comparisons with this value.

# `mlirShapedTypeGetDynamicStrideOrOffset`

Returns the value indicating a dynamic stride or offset in a shaped type.
Prefer mlirShapedTypeIsDynamicStrideOrOffset and
mlirShapedTypeIsStaticStrideOrOffset to direct comparisons with this value.

# `mlirShapedTypeGetElementType`

Returns the element type of the shaped type.

# `mlirShapedTypeGetRank`

Returns the rank of the given ranked shaped type.

# `mlirShapedTypeHasRank`

Checks whether the given shaped type is ranked.

# `mlirShapedTypeHasStaticShape`

Checks whether the given shaped type has a static shape.

# `mlirShapedTypeIsDynamicDim`

Checks whether the dim-th dimension of the given shaped type is dynamic.

# `mlirShapedTypeIsDynamicSize`

Checks whether the given value is used as a placeholder for dynamic sizes
in shaped types.

# `mlirShapedTypeIsDynamicStrideOrOffset`

Checks whether the given value is used as a placeholder for dynamic strides
and offsets in shaped types.

# `mlirShapedTypeIsStaticDim`

Checks whether the dim-th dimension of the given shaped type is static.

# `mlirShapedTypeIsStaticSize`

Checks whether the given shaped type dimension value is statically-sized.

# `mlirShapedTypeIsStaticStrideOrOffset`

Checks whether the given dimension value of a stride or an offset is
statically-sized.

# `mlirSideEffectsDefaultResourceGet`

Returns the borrowed singleton instance of the default side effect
resource.

# `mlirSimplifyAffineExpr`

Simplify an affine expression by flattening and some amount of simple
analysis. This has complexity linear in the number of nodes in 'expr'.
Returns the simplified expression, which is the same as the input expression
if it can't be simplified. When `expr` is semi-affine, a simplified
semi-affine expression is constructed in the sorted order of dimension and
symbol positions.

# `mlirSMTAttrCheckBVCmpPredicate`

Checks if the given string is a valid smt::BVCmpPredicate.

# `mlirSMTAttrCheckIntPredicate`

Checks if the given string is a valid smt::IntPredicate.

# `mlirSMTAttrGetBitVector`

Creates a smt::BitVectorAttr with the given value and width.

# `mlirSMTAttrGetBVCmpPredicate`

Creates a smt::BVCmpPredicateAttr with the given string.

# `mlirSMTAttrGetIntPredicate`

Creates a smt::IntPredicateAttr with the given string.

# `mlirSMTAttrIsASMTAttribute`

Checks if the given attribute is a smt::SMTAttribute.

# `mlirSMTBitVectorTypeGetName`

# `mlirSMTBitVectorTypeGetTypeID`

# `mlirSMTBoolTypeGetName`

# `mlirSMTBoolTypeGetTypeID`

# `mlirSMTIntTypeGetName`

# `mlirSMTIntTypeGetTypeID`

# `mlirSMTTypeGetArray`

Creates an array type with the given domain and range types.

# `mlirSMTTypeGetBitVector`

Creates a smt::BitVectorType with the given width.

# `mlirSMTTypeGetBool`

Creates a smt::BoolType.

# `mlirSMTTypeGetInt`

Creates a smt::IntType.

# `mlirSMTTypeGetSMTFunc`

Creates a smt::FuncType with the given domain and range types.

# `mlirSMTTypeGetSort`

Creates a smt::SortType with the given identifier and sort parameters.

# `mlirSMTTypeIsAArray`

Checks if the given type is a smt::ArrayType.

# `mlirSMTTypeIsABitVector`

Checks if the given type is a smt::BitVectorType.

# `mlirSMTTypeIsABool`

Checks if the given type is a smt::BoolType.

# `mlirSMTTypeIsAInt`

Checks if the given type is a smt::IntType.

# `mlirSMTTypeIsAnyNonFuncSMTValueType`

Checks if the given type is any non-func SMT value type.

# `mlirSMTTypeIsAnySMTValueType`

Checks if the given type is any SMT value type.

# `mlirSMTTypeIsASMTFunc`

Checks if the given type is a smt::FuncType.

# `mlirSMTTypeIsASort`

Checks if the given type is a smt::SortType.

# `mlirSparseElementsAttrGetIndices`

Returns the dense elements attribute containing 64-bit integer indices of
non-null elements in the given sparse elements attribute.

# `mlirSparseElementsAttrGetTypeID`

Returns the typeID of a SparseElements attribute.

# `mlirSparseElementsAttrGetValues`

Returns the dense elements attribute containing the non-null elements in the
given sparse elements attribute.

# `mlirSparseElementsAttribute`

Creates a sparse elements attribute of the given shape from a list of
indices and a list of associated values. Both lists are expected to be dense
elements attributes with the same number of elements. The list of indices is
expected to contain 64-bit integers. The attribute is created in the same
context as the type.

# `mlirSparseTensorEncodingAttrBuildLvlType`

# `mlirSparseTensorEncodingAttrGet`

Creates a `sparse_tensor.encoding` attribute with the given parameters.

# `mlirSparseTensorEncodingAttrGetCrdWidth`

Returns the coordinate bitwidth of the `sparse_tensor.encoding` attribute.

# `mlirSparseTensorEncodingAttrGetDimToLvl`

Returns the dimension-to-level mapping of the `sparse_tensor.encoding`
attribute.

# `mlirSparseTensorEncodingAttrGetExplicitVal`

Returns the explicit value of the `sparse_tensor.encoding` attribute.

# `mlirSparseTensorEncodingAttrGetImplicitVal`

Returns the implicit value of the `sparse_tensor.encoding` attribute.

# `mlirSparseTensorEncodingAttrGetLvlFmt`

Returns a specified level-format of the `sparse_tensor.encoding` attribute.

# `mlirSparseTensorEncodingAttrGetLvlToDim`

Returns the level-to-dimension mapping of the `sparse_tensor.encoding`
attribute.

# `mlirSparseTensorEncodingAttrGetLvlType`

Returns a specified level-type of the `sparse_tensor.encoding` attribute.

# `mlirSparseTensorEncodingAttrGetName`

# `mlirSparseTensorEncodingAttrGetPosWidth`

Returns the position bitwidth of the `sparse_tensor.encoding` attribute.

# `mlirSparseTensorEncodingAttrGetStructuredM`

# `mlirSparseTensorEncodingAttrGetStructuredN`

# `mlirSparseTensorEncodingGetLvlRank`

Returns the level-rank of the `sparse_tensor.encoding` attribute.

# `mlirStridedLayoutAttrGet`

# `mlirStridedLayoutAttrGetName`

# `mlirStridedLayoutAttrGetNumStrides`

# `mlirStridedLayoutAttrGetOffset`

# `mlirStridedLayoutAttrGetStride`

# `mlirStridedLayoutAttrGetTypeID`

Returns the typeID of a StridedLayout attribute.

# `mlirStringAttrGet`

Creates a string attribute in the given context containing the given string.

# `mlirStringAttrGetName`

# `mlirStringAttrGetTypeID`

Returns the typeID of a String attribute.

# `mlirStringAttrGetValue`

Returns the attribute values as a string reference. The data remains live as
long as the context in which the attribute lives.

# `mlirStringAttrTypedGet`

Creates a string attribute in the given context containing the given string.
Additionally, the attribute has the given type.

# `mlirStringRefCreate`

Constructs a string reference from the pointer and length. The pointer need
not reference to a null-terminated string.

# `mlirStringRefCreateFromCString`

Constructs a string reference from a null-terminated C string. Prefer
mlirStringRefCreate if the length of the string is known.

# `mlirStringRefEqual`

Returns true if two string references are equal, false otherwise.

# `mlirSymbolRefAttrGet`

Creates a symbol reference attribute in the given context referencing a
symbol identified by the given string inside a list of nested references.
Each of the references in the list must not be nested.

# `mlirSymbolRefAttrGetLeafReference`

Returns the string reference to the leaf referenced symbol. The data remains
live as long as the context in which the attribute lives.

# `mlirSymbolRefAttrGetName`

# `mlirSymbolRefAttrGetNestedReference`

Returns pos-th reference nested in the given symbol reference attribute.

# `mlirSymbolRefAttrGetNumNestedReferences`

Returns the number of references nested in the given symbol reference
attribute.

# `mlirSymbolRefAttrGetRootReference`

Returns the string reference to the root referenced symbol. The data remains
live as long as the context in which the attribute lives.

# `mlirSymbolRefAttrGetTypeID`

Returns the typeID of an SymbolRef attribute.

# `mlirSymbolTableCreate`

Creates a symbol table for the given operation. If the operation does not
have the SymbolTable trait, returns a null symbol table.

# `mlirSymbolTableDestroy`

Destroys the symbol table created with mlirSymbolTableCreate. This does not
affect the operations in the table.

# `mlirSymbolTableErase`

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

# `mlirSymbolTableGetSymbolAttributeName`

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

# `mlirSymbolTableGetVisibilityAttributeName`

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

# `mlirSymbolTableInsert`

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.

# `mlirSymbolTableIsNull`

Returns true if the symbol table is null.

# `mlirSymbolTableLookup`

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.

# `mlirSymbolTableReplaceAllSymbolUses`

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.

# `mlirSymbolTableWalkSymbolTables`

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.

# `mlirTF32TypeGet`

Creates a TF32 type in the given context. The type is owned by the
context.

# `mlirTF32TypeGetName`

# `mlirTransformAnyOpTypeGet`

# `mlirTransformAnyOpTypeGetName`

# `mlirTransformAnyOpTypeGetTypeID`

# `mlirTransformAnyParamTypeGet`

# `mlirTransformAnyParamTypeGetName`

# `mlirTransformAnyParamTypeGetTypeID`

# `mlirTransformAnyValueTypeGet`

# `mlirTransformAnyValueTypeGetName`

# `mlirTransformAnyValueTypeGetTypeID`

# `mlirTransformApplyNamedSequence`

Applies the transformation script starting at the given transform root
operation to the given payload operation. The module containing the
transform root as well as the transform options should be provided. The
transform operation must implement TransformOpInterface and the module must
be a ModuleOp. Returns the status of the application.

# `mlirTransformApplyNamedSequenceWithDiagnostics`

Applies the transformation script starting at the given transform root
operation to the given payload operation. The module containing the
transform root as well as the transform options should be provided. The
transform operation must implement TransformOpInterface and the module must
be a ModuleOp. Returns the status of the application.

# `mlirTransformConsumesHandle`

Helper to mark operands as consuming handles.

# `mlirTransformModifiesPayload`

Helper to mark potential modifications to the payload IR.

# `mlirTransformOnlyReadsHandle`

Helper to mark operands as only reading handles.

# `mlirTransformOnlyReadsPayload`

Helper to mark potential reads from the payload IR.

# `mlirTransformOperationTypeGet`

# `mlirTransformOperationTypeGetName`

# `mlirTransformOperationTypeGetOperationName`

# `mlirTransformOperationTypeGetTypeID`

# `mlirTransformOpInterfaceTypeID`

Returns the interface TypeID of the TransformOpInterface.

# `mlirTransformOptionsCreate`

Creates a default-initialized transform options object.

# `mlirTransformOptionsDestroy`

Destroys a transform options object previously created by
mlirTransformOptionsCreate.

# `mlirTransformOptionsEnableExpensiveChecks`

Enables or disables expensive checks in transform options.

# `mlirTransformOptionsEnforceSingleTopLevelTransformOp`

Enables or disables the enforcement of the top-level transform op being
single in transform options.

# `mlirTransformOptionsGetEnforceSingleTopLevelTransformOp`

Returns true if the enforcement of the top-level transform op being single
is enabled in transform options.

# `mlirTransformOptionsGetExpensiveChecksEnabled`

Returns true if expensive checks are enabled in transform options.

# `mlirTransformParamTypeGet`

# `mlirTransformParamTypeGetName`

# `mlirTransformParamTypeGetType`

# `mlirTransformParamTypeGetTypeID`

# `mlirTransformProducesHandle`

Helper to mark results as producing handles.

# `mlirTransformResultsSetOps`

Set the payload operations for a transform result by iterating over a list.

# `mlirTransformResultsSetParams`

Set the parameters for a transform result by iterating over a list.

# `mlirTransformResultsSetValues`

Set the payload values for a transform result by iterating over a list.

# `mlirTransformRewriterAsBase`

Cast the TransformRewriter to a RewriterBase

# `mlirTranslateModuleToSMTLIB`

Emits SMTLIB for the specified module using the provided callback and user
data

# `mlirTranslateOperationToSMTLIB`

# `mlirTupleTypeGet`

Creates a tuple type that consists of the given list of elemental types. The
type is owned by the context.

# `mlirTupleTypeGetName`

# `mlirTupleTypeGetNumTypes`

Returns the number of types contained in a tuple.

# `mlirTupleTypeGetType`

Returns the pos-th type in the tuple type.

# `mlirTupleTypeGetTypeID`

Returns the typeID of an Tuple type.

# `mlirTypeAttrGet`

Creates a type attribute wrapping the given type in the same context as the
type.

# `mlirTypeAttrGetName`

# `mlirTypeAttrGetTypeID`

Returns the typeID of a Type attribute.

# `mlirTypeAttrGetValue`

Returns the type stored in the given type attribute.

# `mlirTypeConverterConversionResultsAppend`

Append a converted result type to the given 1:N conversion result
accumulator.

# `mlirTypeConverterConvertType`

Convert the given type using the given TypeConverter. This is the 1:1
convenience form: it returns the single converted type, or a null MlirType
on failure or if the type converts to anything other than exactly one type
(e.g. a 1:N conversion registered via mlirTypeConverterAdd1ToNConversion, or
an erasure to zero types).

# `mlirTypeConverterCreate`

Create a TypeConverter.

# `mlirTypeConverterDestroy`

Destroy the given TypeConverter.

# `mlirTypeDump`

Prints the type to the standard error stream.

# `mlirTypeEqual`

Checks if two types are equal.

# `mlirTypeGetContext`

Gets the context that a type was created with.

# `mlirTypeGetDialect`

Gets the dialect a type belongs to.

# `mlirTypeGetTypeID`

Gets the type ID of the type.

# `mlirTypeIDAllocatorAllocateTypeID`

Allocates a type id that is valid for the lifetime of the allocator

# `mlirTypeIDAllocatorCreate`

Creates a type id allocator for dynamic type id creation

# `mlirTypeIDAllocatorDestroy`

Deallocates the allocator and all allocated type ids

# `mlirTypeIDCreate`

`ptr` must be 8 byte aligned and unique to a type valid for the duration of
the returned type id's usage

# `mlirTypeIDEqual`

Checks if two type ids are equal.

# `mlirTypeIDHashValue`

Returns the hash value of the type id.

# `mlirTypeIDIsNull`

Checks whether a type id is null.

# `mlirTypeIsAAMDGPUTDMBaseType`

# `mlirTypeIsAAMDGPUTDMDescriptorType`

# `mlirTypeIsAAMDGPUTDMGatherBaseType`

# `mlirTypeIsAAnyQuantizedType`

Returns `true` if the given type is an AnyQuantizedType.

# `mlirTypeIsABF16`

Checks whether the given type is a bf16 type.

# `mlirTypeIsACalibratedQuantizedType`

Returns `true` if the given type is a CalibratedQuantizedType.

# `mlirTypeIsAComplex`

Checks whether the given type is a Complex type.

# `mlirTypeIsADynamicType`

Check if the given type is a dynamic type.

# `mlirTypeIsAEmitCArrayType`

# `mlirTypeIsAEmitCLValueType`

# `mlirTypeIsAEmitCOpaqueType`

# `mlirTypeIsAEmitCPointerType`

# `mlirTypeIsAEmitCPtrDiffTType`

# `mlirTypeIsAEmitCSignedSizeTType`

# `mlirTypeIsAEmitCSizeTType`

# `mlirTypeIsAF16`

Checks whether the given type is an f16 type.

# `mlirTypeIsAF32`

Checks whether the given type is an f32 type.

# `mlirTypeIsAF64`

Checks whether the given type is an f64 type.

# `mlirTypeIsAFloat4E2M1FN`

Checks whether the given type is an f4E2M1FN type.

# `mlirTypeIsAFloat6E2M3FN`

Checks whether the given type is an f6E2M3FN type.

# `mlirTypeIsAFloat6E3M2FN`

Checks whether the given type is an f6E3M2FN type.

# `mlirTypeIsAFloat8E3M4`

Checks whether the given type is an f8E3M4 type.

# `mlirTypeIsAFloat8E4M3`

Checks whether the given type is an f8E4M3 type.

# `mlirTypeIsAFloat8E4M3B11FNUZ`

Checks whether the given type is an f8E4M3B11FNUZ type.

# `mlirTypeIsAFloat8E4M3FN`

Checks whether the given type is an f8E4M3FN type.

# `mlirTypeIsAFloat8E4M3FNUZ`

Checks whether the given type is an f8E4M3FNUZ type.

# `mlirTypeIsAFloat8E5M2`

Checks whether the given type is an f8E5M2 type.

# `mlirTypeIsAFloat8E5M2FNUZ`

Checks whether the given type is an f8E5M2FNUZ type.

# `mlirTypeIsAFloat8E5M3FNU`

Checks whether the given type is an f8E5M3FNU type.

# `mlirTypeIsAFloat8E8M0FNU`

Checks whether the given type is an f8E8M0FNU type.

# `mlirTypeIsAFloat`

Checks whether the given type is a floating-point type.

# `mlirTypeIsAFunction`

Checks whether the given type is a function type.

# `mlirTypeIsAGPUAsyncTokenType`

# `mlirTypeIsAIndex`

Checks whether the given type is an index type.

# `mlirTypeIsAInteger`

Checks whether the given type is an integer type.

# `mlirTypeIsALLVMArrayType`

Returns `true` if the type is an LLVM dialect array type.

# `mlirTypeIsALLVMFunctionType`

Returns `true` if the type is an LLVM dialect function type.

# `mlirTypeIsALLVMPointerType`

Returns `true` if the type is an LLVM dialect pointer type.

# `mlirTypeIsALLVMStructType`

Returns `true` if the type is an LLVM dialect struct type.

# `mlirTypeIsAMemRef`

Checks whether the given type is a MemRef type.

# `mlirTypeIsANone`

Checks whether the given type is a None type.

# `mlirTypeIsANVGPUTensorMapDescriptorType`

# `mlirTypeIsAOpaque`

Checks whether the given type is an opaque type.

# `mlirTypeIsAPDLAttributeType`

# `mlirTypeIsAPDLOperationType`

# `mlirTypeIsAPDLRangeType`

# `mlirTypeIsAPDLType`

# `mlirTypeIsAPDLTypeType`

# `mlirTypeIsAPDLValueType`

# `mlirTypeIsAQuantizedType`

Returns `true` if the given type is a quantization dialect type.

# `mlirTypeIsARankedTensor`

Checks whether the given type is a ranked tensor type.

# `mlirTypeIsAShaped`

Checks whether the given type is a Shaped type.

# `mlirTypeIsATensor`

Checks whether the given type is a Tensor type.

# `mlirTypeIsATF32`

Checks whether the given type is an TF32 type.

# `mlirTypeIsATransformAnyOpType`

# `mlirTypeIsATransformAnyParamType`

# `mlirTypeIsATransformAnyValueType`

# `mlirTypeIsATransformOperationType`

# `mlirTypeIsATransformParamType`

# `mlirTypeIsATuple`

Checks whether the given type is a tuple type.

# `mlirTypeIsAUniformQuantizedPerAxisType`

Returns `true` if the given type is a UniformQuantizedPerAxisType.

# `mlirTypeIsAUniformQuantizedSubChannelType`

Returns `true` if the given type is a UniformQuantizedSubChannel.

# `mlirTypeIsAUniformQuantizedType`

Returns `true` if the given type is a UniformQuantizedType.

# `mlirTypeIsAUnrankedMemRef`

Checks whether the given type is an UnrankedMemRef type.

# `mlirTypeIsAUnrankedTensor`

Checks whether the given type is an unranked tensor type.

# `mlirTypeIsAVector`

Checks whether the given type is a Vector type.

# `mlirTypeIsNull`

Checks whether a type is null.

# `mlirTypeParseGet`

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

# `mlirTypeParseGetWithDiagnostics`

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

# `mlirTypePrint`

Prints a location by sending chunks of the string representation and
forwarding `userData to `callback`. Note that the callback may be called
several times with consecutive chunks of the string.

# `mlirUniformQuantizedPerAxisTypeGet`

Creates an instance of UniformQuantizedPerAxisType with the given parameters
in the same context as `storageType` and returns it. `scales` and
`zeroPoints` point to `nDims` number of elements. The instance is owned
by the context.

# `mlirUniformQuantizedPerAxisTypeGetName`

# `mlirUniformQuantizedPerAxisTypeGetNumDims`

Returns the number of axes in the given quantized per-axis type.

# `mlirUniformQuantizedPerAxisTypeGetQuantizedDimension`

Returns the index of the quantized dimension in the given quantized per-axis
type.

# `mlirUniformQuantizedPerAxisTypeGetScale`

Returns `pos`-th scale of the given quantized per-axis type.

# `mlirUniformQuantizedPerAxisTypeGetTypeID`

# `mlirUniformQuantizedPerAxisTypeGetZeroPoint`

Returns `pos`-th zero point of the given quantized per-axis type.

# `mlirUniformQuantizedPerAxisTypeIsFixedPoint`

Returns `true` if the given uniform quantized per-axis type is fixed-point.

# `mlirUniformQuantizedSubChannelTypeGet`

Creates a UniformQuantizedSubChannelType with the given parameters.
The type is owned by the context. `scalesAttr` and `zeroPointsAttr` must be
DenseElementsAttrs. `quantizedDimensions` and `blockSizes`
point to `blockSizeInfoLength` number of elements, describing respectively
the quantization axis and corresponding block size.

# `mlirUniformQuantizedSubChannelTypeGetBlockSize`

Returns the block size at the given position.

# `mlirUniformQuantizedSubChannelTypeGetName`

# `mlirUniformQuantizedSubChannelTypeGetNumBlockSizes`

Returns the number of block sizes provided in type.

# `mlirUniformQuantizedSubChannelTypeGetQuantizedDimension`

Returns the quantized dimension at the given position.

# `mlirUniformQuantizedSubChannelTypeGetScales`

Returns the scales of the quantized type.

# `mlirUniformQuantizedSubChannelTypeGetTypeID`

# `mlirUniformQuantizedSubChannelTypeGetZeroPoints`

Returns the zero-points of the quantized type.

# `mlirUniformQuantizedTypeGet`

Creates an instance of UniformQuantizedType with the given parameters in the
same context as `storageType` and returns it. The instance is owned by the
context.

# `mlirUniformQuantizedTypeGetName`

# `mlirUniformQuantizedTypeGetScale`

Returns the scale of the given uniform quantized type.

# `mlirUniformQuantizedTypeGetTypeID`

# `mlirUniformQuantizedTypeGetZeroPoint`

Returns the zero point of the given uniform quantized type.

# `mlirUniformQuantizedTypeIsFixedPoint`

Returns `true` if the given uniform quantized type is fixed-point.

# `mlirUnitAttrGet`

Creates a unit attribute in the given context.

# `mlirUnitAttrGetName`

# `mlirUnitAttrGetTypeID`

Returns the typeID of a Unit attribute.

# `mlirUnmanagedDenseBoolResourceElementsAttrGet`

# `mlirUnmanagedDenseDoubleResourceElementsAttrGet`

# `mlirUnmanagedDenseFloatResourceElementsAttrGet`

# `mlirUnmanagedDenseInt8ResourceElementsAttrGet`

# `mlirUnmanagedDenseInt16ResourceElementsAttrGet`

# `mlirUnmanagedDenseInt32ResourceElementsAttrGet`

# `mlirUnmanagedDenseInt64ResourceElementsAttrGet`

# `mlirUnmanagedDenseResourceElementsAttrGet`

Unlike the typed accessors below, constructs the attribute with a raw
data buffer and no type/alignment checking. Use a more strongly typed
accessor if possible. If dataIsMutable is false, then an immutable
AsmResourceBlob will be created and that passed data contents will be
treated as const.
If the deleter is non NULL, then it will be called when the data buffer
can no longer be accessed (passing userData to it).

# `mlirUnmanagedDenseUInt8ResourceElementsAttrGet`

# `mlirUnmanagedDenseUInt16ResourceElementsAttrGet`

# `mlirUnmanagedDenseUInt32ResourceElementsAttrGet`

# `mlirUnmanagedDenseUInt64ResourceElementsAttrGet`

# `mlirUnrankedMemRefTypeGet`

Creates an Unranked MemRef type with the given element type and in the given
memory space. The type is owned by the context of element type.

# `mlirUnrankedMemRefTypeGetChecked`

Same as "mlirUnrankedMemRefTypeGet" but returns a nullptr wrapping
MlirType on illegal arguments, emitting appropriate diagnostics.

# `mlirUnrankedMemRefTypeGetCheckedWithDiagnostics`

Same as "mlirUnrankedMemRefTypeGet" but returns a nullptr wrapping
MlirType on illegal arguments, emitting appropriate diagnostics.

# `mlirUnrankedMemRefTypeGetName`

# `mlirUnrankedMemRefTypeGetTypeID`

Returns the typeID of an UnrankedMemRef type.

# `mlirUnrankedMemrefGetMemorySpace`

Returns the memory spcae of the given Unranked MemRef type.

# `mlirUnrankedTensorTypeGet`

Creates an unranked tensor type with the given element type in the same
context as the element type. The type is owned by the context.

# `mlirUnrankedTensorTypeGetChecked`

Same as "mlirUnrankedTensorTypeGet" but returns a nullptr wrapping MlirType
on illegal arguments, emitting appropriate diagnostics.

# `mlirUnrankedTensorTypeGetCheckedWithDiagnostics`

Same as "mlirUnrankedTensorTypeGet" but returns a nullptr wrapping MlirType
on illegal arguments, emitting appropriate diagnostics.

# `mlirUnrankedTensorTypeGetName`

# `mlirUnrankedTensorTypeGetTypeID`

Returns the typeID of an UnrankedTensor type.

# `mlirValueDump`

Prints the value to the standard error stream.

# `mlirValueEqual`

Returns 1 if two values are equal, 0 otherwise.

# `mlirValueGetContext`

Gets the context that a value was created with.

# `mlirValueGetFirstUse`

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

# `mlirValueGetLocation`

Gets the location of the value.

# `mlirValueGetType`

Returns the type of the value.

# `mlirValueIsABlockArgument`

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

# `mlirValueIsAOpResult`

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

# `mlirValueIsNull`

Returns whether the value is null.

# `mlirValuePrint`

Prints a value by sending chunks of the string representation and
forwarding `userData to `callback`. Note that the callback may be called
several times with consecutive chunks of the string.

# `mlirValuePrintAsOperand`

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

# `mlirValueReplaceAllUsesExcept`

Replace all uses of 'of' value with 'with' value, updating anything in the
IR that uses 'of' to use 'with' instead, except if the user is listed in
'exceptions'. The 'exceptions' parameter is an array of MlirOperation
pointers with a length of 'numExceptions'.

# `mlirValueReplaceAllUsesOfWith`

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

# `mlirValueSetType`

Set the type of the value.

# `mlirVectorTypeGet`

Creates a vector type of the shape identified by its rank and dimensions,
with the given element type in the same context as the element type. The
type is owned by the context.

# `mlirVectorTypeGetChecked`

Same as "mlirVectorTypeGet" but returns a nullptr wrapping MlirType on
illegal arguments, emitting appropriate diagnostics.

# `mlirVectorTypeGetCheckedWithDiagnostics`

Same as "mlirVectorTypeGet" but returns a nullptr wrapping MlirType on
illegal arguments, emitting appropriate diagnostics.

# `mlirVectorTypeGetName`

# `mlirVectorTypeGetScalable`

Creates a scalable vector type with the shape identified by its rank and
dimensions. A subset of dimensions may be marked as scalable via the
corresponding flag list, which is expected to have as many entries as the
rank of the vector. The vector is created in the same context as the element
type.

# `mlirVectorTypeGetScalableChecked`

Same as "mlirVectorTypeGetScalable" but returns a nullptr wrapping MlirType
on illegal arguments, emitting appropriate diagnostics.

# `mlirVectorTypeGetTypeID`

Returns the typeID of an Vector type.

# `mlirVectorTypeIsDimScalable`

Checks whether the "dim"-th dimension of the given vector is scalable.

# `mlirVectorTypeIsScalable`

Checks whether the given vector type is scalable, i.e., has at least one
scalable dimension.

# `mlirWalkAndApplyPatterns`

Applies the given patterns to the given op by a fast walk-based pattern
rewrite driver.
