MLIR
20.0.0git
|
Include the generated interface declarations. More...
Namespaces | |
acc | |
affine | |
amdgpu | |
arith | |
arm_neon | |
arm_sme | |
arm_sve | |
async | |
AttributeTrait | |
This trait is used to determine if an attribute is a dynamic attribute or not; it should only be implemented by dynamic attributes. | |
bufferization | |
builtin | |
builtin_dialect_detail | |
bytecode | |
call_interface_impl | |
cf | |
dataflow | |
detail | |
AttrTypeReplacer. | |
dialect_extension_detail | |
dlti | |
emitc | |
func | |
function_interface_impl | |
gpu | |
impl | |
Attribute collections provide a dictionary-like interface. | |
index | |
intrange | |
irdl | |
khr | |
linalg | |
LLVM | |
lsp | |
matchers | |
math | |
MemoryEffects | |
memref | |
mesh | |
ml_program | |
nvgpu | |
NVVM | |
omp | |
op_definition_impl | |
OpTrait | |
pdl | |
pdl_to_pdl_interp | |
pdll | |
polynomial | |
presburger | |
python | |
quant | |
query | |
ROCDL | |
runtime | |
scf | |
shape | |
SideEffects | |
sparse_tensor | |
Speculation | |
spirv | |
tblgen | |
tensor | |
tosa | |
tracing | |
transform | |
TypeTrait | |
This trait is used to determine if a type is a dynamic type or not; it should only be implemented by dynamic types. | |
ub | |
utils | |
vector | |
x86vector | |
xegpu | |
Classes | |
class | LocalAliasAnalysis |
This class implements a local form of alias analysis that tries to identify the underlying values addressed by each value and performs a few basic checks to see if they alias. More... | |
class | AliasResult |
The possible results of an alias query. More... | |
class | ModRefResult |
The possible results of whether a memory access modifies or references a memory location. More... | |
class | AliasAnalysis |
This class represents the main alias analysis interface in MLIR. More... | |
class | CallGraphNode |
This class represents a single callable in the callgraph. More... | |
class | CallGraph |
class | CFGLoop |
Representation of a single loop formed by blocks. More... | |
class | CFGLoopInfo |
An LLVM LoopInfo instantiation for MLIR that provides access to CFG loops found in the dominator tree. More... | |
struct | ProgramPoint |
Program point represents a specific location in the execution of a program. More... | |
class | GenericLatticeAnchor |
Abstract class for generic lattice anchor. More... | |
class | GenericLatticeAnchorBase |
Base class for generic lattice anchor based on a concrete lattice anchor type and a content key. More... | |
struct | LatticeAnchor |
Fundamental IR components are supported as first-class lattice anchor. More... | |
class | DataFlowConfig |
Configuration class for data flow solver and child analyses. More... | |
class | DataFlowSolver |
The general data-flow analysis solver. More... | |
class | AnalysisState |
Base class for generic analysis states. More... | |
class | DataFlowAnalysis |
Base class for all data-flow analyses. More... | |
class | DataLayoutAnalysis |
Stores data layout objects for each operation that specifies the data layout above and below the given operation. More... | |
class | FlatLinearConstraints |
FlatLinearConstraints is an extension of IntegerPolyhedron. More... | |
class | FlatLinearValueConstraints |
FlatLinearValueConstraints represents an extension of FlatLinearConstraints where each non-local variable can have an SSA Value attached to it. More... | |
class | Liveness |
Represents an analysis for computing liveness information from a given top-level operation. More... | |
class | LivenessBlockInfo |
This class represents liveness information on block level. More... | |
struct | SliceOptions |
struct | BackwardSliceOptions |
class | WalkContinuation |
A class to signal how to proceed with the walk of the backward slice: More... | |
class | SymbolTableAnalysis |
This is a simple analysis that contains a symbol table collection and, for simplicity, a reference to the top-level symbol table. More... | |
class | AsmParserState |
This class represents state from a parsed MLIR textual format string. More... | |
class | AsmParserCodeCompleteContext |
This class provides an abstract interface into the parser for hooking in code completion events. More... | |
class | PyShapedType |
Shaped Type Interface - ShapedType. More... | |
class | DialectVersion |
This class is used to represent the version of a dialect, for the purpose of polymorphic destruction. More... | |
class | DialectBytecodeReader |
This class defines a virtual interface for reading a bytecode stream, providing hooks into the bytecode reader. More... | |
class | DialectBytecodeWriter |
This class defines a virtual interface for writing to a bytecode stream, providing hooks into the bytecode writer. More... | |
class | BytecodeDialectInterface |
class | BytecodeReader |
The BytecodeReader allows to load MLIR bytecode files, while keeping the state explicitly available in order to support lazy loading. More... | |
class | AttrTypeBytecodeReader |
A class to interact with the attributes and types parser when parsing MLIR bytecode. More... | |
class | BytecodeReaderConfig |
A class containing bytecode-specific configurations of the ParserConfig . More... | |
class | AttrTypeBytecodeWriter |
A class to interact with the attributes and types printer when emitting MLIR bytecode. More... | |
class | BytecodeWriterConfig |
This class contains the configuration used for the bytecode writer. More... | |
class | OperationPass |
Pass to transform an operation of a specific type. More... | |
class | ComplexStructBuilder |
class | ControlFlowToSCFTransformation |
Implementation of CFGToSCFInterface used to lift Control Flow Dialect operations to SCF Dialect operations. More... | |
class | ConvertToLLVMPatternInterface |
Base class for dialect interfaces providing translation to LLVM IR. More... | |
struct | FunctionCallBuilder |
class | LLVMConversionTarget |
Derived class that automatically populates legalization information for different LLVM ops. More... | |
class | LowerToLLVMOptions |
Options to control the LLVM lowering. More... | |
class | MemRefDescriptor |
Helper class to produce LLVM dialect operations extracting or inserting elements of a MemRef descriptor. More... | |
class | MemRefDescriptorView |
Helper class allowing the user to access a range of Values that correspond to an unpacked memref descriptor using named accessors. More... | |
class | UnrankedMemRefDescriptor |
class | ConvertToLLVMPattern |
Base class for operation conversions targeting the LLVM IR dialect. More... | |
class | ConvertOpToLLVMPattern |
Utility class for operation conversions targeting the LLVM dialect that match exactly one source operation. More... | |
class | OneToOneConvertToLLVMPattern |
Generic implementation of one-to-one conversion from "SourceOp" to "TargetOp" where the latter belongs to the LLVM dialect or an equivalent. More... | |
class | StructBuilder |
Helper class to produce LLVM dialect operations extracting or inserting values to a struct. More... | |
class | LLVMTypeConverter |
Conversion from types to the LLVM IR dialect. More... | |
class | AttrConvertPassThrough |
class | VectorConvertToLLVMPattern |
Basic lowering implementation to rewrite Ops with just one result to the LLVM Dialect. More... | |
struct | AllocationOpLLVMLowering |
Lowering for memory allocation ops. More... | |
struct | AllocLikeOpLLVMLowering |
Lowering for AllocOp and AllocaOp. More... | |
class | InterfacePass |
Pass to transform an operation that implements the given interface. More... | |
struct | ScfToSPIRVContext |
class | SPIRVToLLVMConversion |
struct | VectorTransferToSCFOptions |
When lowering an N-d vector transfer op to an (N-1)-d vector transfer op, a temporary buffer is created through which individual (N-1)-d vector are staged. More... | |
struct | ArithBuilder |
Helper struct to build simple arithmetic quantities with minimal type inference support. More... | |
class | BufferViewFlowAnalysis |
A straight-forward alias analysis which ensures that all dependencies of all values will be determined. More... | |
class | BufferOriginAnalysis |
An is-same-buffer analysis that checks if two SSA values belong to the same buffer allocation or not. More... | |
class | HasDefaultDLTIDataLayout |
Trait to be used by operations willing to use the implementation of the data layout interfaces provided by the Target dialect. More... | |
struct | MathPolynomialApproximationOptions |
struct | UnrolledLoopInfo |
struct | SparsificationOptions |
Options for the Sparsification pass. More... | |
struct | SparseIterationTypeConverter |
Type converter for iter_space and iterator. More... | |
class | SparseTensorTypeToPtrConverter |
Sparse tensor type converter into an opaque pointer. More... | |
class | SparseTensorTypeToBufferConverter |
Sparse tensor type converter into an actual buffer. More... | |
class | StorageSpecifierToLLVMTypeConverter |
struct | SPIRVConversionOptions |
class | SPIRVTypeConverter |
Type conversion from builtin types to SPIR-V types for shader interface. More... | |
class | SPIRVConversionTarget |
class | VulkanLayoutUtils |
According to the Vulkan spec "15.6.4. Offset and Stride Assignment": "There are different alignment requirements depending on the specific resources and on the features enabled on the device. More... | |
class | OwningOpRef |
This class acts as an owning reference to an op, and will automatically destroy the held op on destruction if the held op is valid. More... | |
class | DiagnosedSilenceableFailure |
The result of a transform IR operation application. More... | |
class | DiagnosedDefiniteFailure |
A compatibility class connecting InFlightDiagnostic to DiagnosedSilenceableFailure while providing an interface similar to the former. More... | |
class | RaggedArray |
A 2D array where each row may have different length. More... | |
class | StaticTileOffsetRange |
A range-style iterator that allows for iterating over the offsets of all potential tiles of size tileShape within the larger shape shape , using an ordering specified by loopOrder . More... | |
struct | ComposeReassociativeReshapeOps |
Pattern to collapse producer/consumer reshape ops that are both collapsing dimensions or are both expanding dimensions. More... | |
struct | ComposeCollapseOfExpandOp |
Pattern to compose collapse_shape(expand_shape(src, reassociation_1), reassociation_2) . More... | |
struct | ComposeExpandOfCollapseOp |
struct | Range |
Represents a range (offset, size, and stride) where each element of the triple may be dynamic or static. More... | |
struct | SaturatedInteger |
Idiomatic saturated operations on values like offsets, sizes, and strides. More... | |
class | StructuredGenerator |
Helper StructuredGenerator class to manipulate and rewrite ops with StructuredOpInterface . More... | |
class | SimpleObjectCache |
A simple object cache following Lang's LLJITWithObjectCache example. More... | |
struct | ExecutionEngineOptions |
class | ExecutionEngine |
JIT-backed execution engine for MLIR. More... | |
struct | JitRunnerOptions |
JitRunner command line options used by JitRunnerConfig methods. More... | |
struct | JitRunnerConfig |
Configuration to override functionality of the JitRunner. More... | |
class | OwningMemRef |
Owning MemRef type that abstracts over the runtime type for ranked strided memref. More... | |
struct | CallInterfaceCallable |
A callable is either a symbol, or an SSA value, that is referenced by a call-like operation. More... | |
class | SuccessorOperands |
This class models how operands are forwarded to block arguments in control flow. More... | |
class | RegionSuccessor |
This class represents a successor of a region. More... | |
class | RegionBranchPoint |
This class represents a point being branched from in the methods of the RegionBranchOpInterface . More... | |
class | InvocationBounds |
This class represents upper and lower bounds on the number of times a region of a RegionBranchOpInterface can be invoked. More... | |
class | DataLayoutDialectInterface |
An interface to be implemented by dialects that can have identifiers in the data layout specification entries. More... | |
class | DataLayout |
The main mechanism for performing data layout queries. More... | |
class | DialectFoldInterface |
Define a fold interface to allow for dialects to control specific aspects of the folding behavior for operations they define. More... | |
class | ConstantIntRanges |
A set of arbitrary-precision integers representing bounds on a given integer value. More... | |
class | IntegerValueRange |
This lattice value represents the integer range of an SSA value. More... | |
class | ShapeAdaptor |
Adaptor class to abstract the differences between whether value is from a ShapedType or ShapedTypeComponents or DenseIntElementsAttribute. More... | |
class | ShapedTypeComponents |
ShapedTypeComponents that represents the components of a ShapedType. More... | |
class | ValueShapeRange |
Range of values and shapes (corresponding effectively to Shapes dialect's ValueShape type concept). More... | |
struct | JamBlockGatherer |
struct | MemorySlot |
Represents a slot in memory. More... | |
struct | DestructurableMemorySlot |
Memory slot attached with information about its destructuring procedure. More... | |
struct | TilingResult |
Container for result values of tiling. More... | |
struct | MergeResult |
Container for the result of merge operation of tiling. More... | |
class | HyperrectangularSlice |
A hyperrectangular slice, represented as a list of offsets, sizes and strides. More... | |
class | ValueBoundsConstraintSet |
A helper class to be used with ValueBoundsOpInterface . More... | |
class | OpWithOffsetSizesAndStridesConstantArgumentFolder |
Pattern to rewrite dynamic offsets/sizes/strides of view/slice-like ops as constant arguments. More... | |
class | AffineExpr |
Base type for affine expression. More... | |
class | AffineBinaryOpExpr |
Affine binary operation expression. More... | |
class | AffineDimExpr |
A dimensional identifier appearing in an affine expression. More... | |
class | AffineSymbolExpr |
A symbolic identifier appearing in an affine expression. More... | |
class | AffineConstantExpr |
An integer constant appearing in affine expression. More... | |
class | AffineExprVisitorBase |
Base class for AffineExpr visitors/walkers. More... | |
class | AffineExprVisitor |
See documentation for AffineExprVisitorBase. More... | |
class | AffineExprVisitor< SubClass, LogicalResult > |
class | SimpleAffineExprFlattener |
class | AffineMap |
A multi-dimensional affine map Affine map's are immutable like Type's, and they are uniqued. More... | |
struct | MutableAffineMap |
A mutable affine map. Its affine expressions are however unique. More... | |
class | AsmResourceBlob |
This class represents a processed binary blob of data. More... | |
class | HeapAsmResourceBlob |
This class provides a simple utility wrapper for creating heap allocated AsmResourceBlobs. More... | |
class | UnmanagedAsmResourceBlob |
This class provides a simple utility wrapper for creating "unmanaged" AsmResourceBlobs. More... | |
class | AsmResourceBuilder |
This class is used to build resource entries for use by the printer. More... | |
class | AsmParsedResourceEntry |
This class represents a single parsed resource entry. More... | |
class | AsmResourceParser |
This class represents an instance of a resource parser. More... | |
class | AsmResourcePrinter |
This class represents an instance of a resource printer. More... | |
class | FallbackAsmResourceMap |
A fallback map containing external resources not explicitly handled by another parser/printer. More... | |
class | ParserConfig |
This class represents a configuration for the MLIR assembly parser. More... | |
class | AsmState |
This class provides management for the lifetime of the state used when printing the IR. More... | |
class | Attribute |
Attributes are known-constant values of operations. More... | |
class | NamedAttribute |
NamedAttribute represents a combination of a name and an Attribute value. More... | |
struct | AttrTypeSubElementHandler< NamedAttribute > |
Allow walking and replacing the subelements of a NamedAttribute. More... | |
class | AttributeInterface |
This class represents the base of an attribute interface. More... | |
class | AbstractAttribute |
This class contains all of the static information common to all instances of a registered Attribute. More... | |
class | AttributeStorage |
Base storage class appearing in an attribute. More... | |
class | AttrTypeWalker |
AttrTypeWalker. More... | |
class | AttrTypeReplacer |
This is an attribute/type replacer that is naively cached. More... | |
class | CyclicAttrTypeReplacer |
This is an attribute/type replacer that supports custom handling of cycles in the replacer logic. More... | |
class | AttrTypeImmediateSubElementWalker |
AttrTypeSubElementHandler. More... | |
class | AttrTypeSubElementReplacements |
This class is used by AttrTypeSubElementHandler instances to process sub element replacements. More... | |
struct | AttrTypeSubElementHandler |
This class provides support for interacting with the SubElementInterfaces for different types of parameters. More... | |
struct | AttrTypeSubElementHandler< T, std::enable_if_t< std::is_base_of_v< Attribute, T >||std::is_base_of_v< Type, T > > > |
Implementation for derived Attributes and Types. More... | |
struct | AttrTypeSubElementHandler< ArrayRef< T >, std::enable_if_t< has_sub_attr_or_type_v< T > > > |
Implementation for derived ArrayRef. More... | |
struct | AttrTypeSubElementHandler< std::tuple< Ts... >, std::enable_if_t< has_sub_attr_or_type_v< Ts... > > > |
Implementation for Tuple. More... | |
class | ValueTypeRange |
This class implements iteration on the types of a given range of values. More... | |
class | Block |
Block represents an ordered list of Operation s. More... | |
class | BlockOperand |
A block operand represents an operand that holds a reference to a Block, e.g. More... | |
class | PredecessorIterator |
Implement a predecessor iterator for blocks. More... | |
class | SuccessorRange |
This class implements the successor iterators for Block. More... | |
class | BlockRange |
This class provides an abstraction over the different types of ranges over Blocks. More... | |
class | Builder |
This class is a general helper class for creating context-global objects like types, attributes, and affine expressions. More... | |
class | OpBuilder |
This class helps build Operations. More... | |
struct | DialectResourceBlobHandle |
This class defines a dialect specific handle to a resource blob. More... | |
class | DenseElementsAttr |
An attribute that represents a reference to a dense vector or tensor object. More... | |
class | SplatElementsAttr |
An attribute that represents a reference to a splat vector or tensor constant, meaning all of the elements have the same value. More... | |
class | BoolAttr |
Special case of IntegerAttr to represent boolean integers, i.e., signless i1 integers. More... | |
class | FlatSymbolRefAttr |
A symbol reference with a reference path containing a single element. More... | |
class | DenseFPElementsAttr |
An attribute that represents a reference to a dense float vector or tensor object. More... | |
class | DenseIntElementsAttr |
An attribute that represents a reference to a dense integer vector or tensor object. More... | |
class | DistinctAttr |
An attribute that associates a referenced attribute with a unique identifier. More... | |
class | ValueSemantics |
Type trait indicating that the type has value semantics. More... | |
class | FloatType |
class | TensorType |
Tensor types represent multi-dimensional arrays, and have two variants: RankedTensorType and UnrankedTensorType. More... | |
class | BaseMemRefType |
This class provides a shared interface for ranked and unranked memref types. More... | |
class | ScalableVectorType |
A vector type containing at least one scalable dimension. More... | |
class | FixedVectorType |
A vector type with no scalable dimensions. More... | |
class | DiagnosticArgument |
A variant type that holds a single argument for a diagnostic. More... | |
class | Diagnostic |
This class contains all of the information necessary to report a diagnostic to the DiagnosticEngine. More... | |
class | InFlightDiagnostic |
This class represents a diagnostic that is inflight and set to be reported. More... | |
class | DiagnosticEngine |
This class is the main interface for diagnostics. More... | |
class | ScopedDiagnosticHandler |
This diagnostic handler is a simple RAII class that registers and erases a diagnostic handler on a given context. More... | |
class | SourceMgrDiagnosticHandler |
This class is a utility diagnostic handler for use with llvm::SourceMgr. More... | |
class | SourceMgrDiagnosticVerifierHandler |
This class is a utility diagnostic handler for use with llvm::SourceMgr that verifies that emitted diagnostics match 'expected-*' lines on the corresponding line of the source file. More... | |
class | ParallelDiagnosticHandler |
This class is a utility diagnostic handler for use when multi-threading some part of the compiler where diagnostics may be emitted. More... | |
class | Dialect |
Dialects are groups of MLIR operations, types and attributes, as well as behavior associated with the entire group. More... | |
class | DialectAsmPrinter |
This is a pure-virtual base class that exposes the asmprinter hooks necessary to implement a custom printAttribute/printType() method on a dialect. More... | |
class | DialectAsmParser |
The DialectAsmParser has methods for interacting with the asm parser when parsing attributes and types. More... | |
struct | FieldParser |
Provide a template class that can be specialized by users to dispatch to parsers. More... | |
struct | FieldParser< AttributeT, std::enable_if_t< std::is_base_of< Attribute, AttributeT >::value, AttributeT > > |
Parse an attribute. More... | |
struct | FieldParser< TypeT, std::enable_if_t< std::is_base_of< Type, TypeT >::value, TypeT > > |
Parse an attribute. More... | |
struct | FieldParser< IntT, std::enable_if_t< std::is_integral< IntT >::value, IntT > > |
Parse any integer. More... | |
struct | FieldParser< std::string > |
Parse a string. More... | |
struct | FieldParser< std::optional< AttributeT >, std::enable_if_t< std::is_base_of< Attribute, AttributeT >::value, std::optional< AttributeT > > > |
Parse an Optional attribute. More... | |
struct | FieldParser< std::optional< IntT >, std::enable_if_t< std::is_integral< IntT >::value, std::optional< IntT > > > |
Parse an Optional integer. More... | |
struct | FieldParser< ContainerT, std::enable_if_t< llvm::is_detected< detail::has_push_back_t, ContainerT >::value, ContainerT > > |
Parse any container that supports back insertion as a list. More... | |
struct | FieldParser< AffineMap > |
Parse an affine map. More... | |
class | DialectInterface |
This class represents an interface overridden for a single dialect. More... | |
class | DialectInterfaceCollection |
A collection of dialect interfaces within a context, for a given concrete interface type. More... | |
class | DialectExtensionBase |
This class represents an opaque dialect extension. More... | |
class | DialectExtension |
This class represents a dialect extension anchored on the given set of dialects. More... | |
class | DialectRegistry |
The DialectRegistry maps a dialect namespace to a constructor for the matching dialect. More... | |
class | DialectResourceBlobManager |
This class defines a manager for dialect resource blobs. More... | |
class | ResourceBlobManagerDialectInterface |
This class implements a dialect interface that provides common functionality for interacting with a resource blob manager. More... | |
class | ResourceBlobManagerDialectInterfaceBase |
This class provides a base class for dialects implementing the resource blob interface. More... | |
class | DominanceInfo |
A class for computing basic dominance information. More... | |
class | PostDominanceInfo |
A class for computing basic postdominance information. More... | |
class | DynamicAttrDefinition |
The definition of a dynamic attribute. More... | |
class | DynamicAttr |
A dynamic attribute instance. More... | |
class | DynamicTypeDefinition |
The definition of a dynamic type. More... | |
class | DynamicType |
A dynamic type instance. More... | |
class | DynamicOpDefinition |
The definition of a dynamic op. More... | |
class | ExtensibleDialect |
A dialect that can be extended with new operations/types/attributes at runtime. More... | |
class | DynamicDialect |
A dialect that can be defined at runtime. More... | |
class | ImplicitLocOpBuilder |
ImplicitLocOpBuilder maintains a 'current location', allowing use of the create<> method without specifying the location. More... | |
class | IntegerSet |
An integer set representing a conjunction of one or more affine equalities and inequalities. More... | |
class | IRMapping |
This is a utility class for mapping one set of IR entities to another. More... | |
struct | ReverseIterator |
This iterator enumerates elements in "reverse" order. More... | |
struct | ForwardDominanceIterator |
This iterator enumerates elements according to their dominance relationship. More... | |
struct | ReverseDominanceIterator |
This iterator enumerates elements according to their reverse dominance relationship. More... | |
class | LocationAttr |
Location objects represent source locations information in MLIR. More... | |
class | Location |
This class defines the main interface for locations in MLIR and acts as a non-nullable wrapper around a LocationAttr. More... | |
class | FusedLocWith |
This class represents a fused location whose metadata is known to be an instance of the given type. More... | |
class | FileLineColLoc |
An instance of this location represents a tuple of file, line number, and column number. More... | |
struct | AttrTypeSubElementHandler< Location > |
Enable locations to be introspected as sub-elements. More... | |
class | MLIRContext |
MLIRContext is the top-level object for a collection of MLIR operations. More... | |
class | OptionalParseResult |
This class implements Optional functionality for ParseResult. More... | |
struct | EmptyProperties |
Structure used by default as a "marker" when no "Properties" are set on an Operation. More... | |
struct | PropertiesSelector |
Traits to detect whether an Operation defined a Properties type, otherwise it'll default to EmptyProperties . More... | |
struct | PropertiesSelector< Op, std::void_t< typename Op::Properties > > |
class | OpState |
This is the concrete base class that holds the operation pointer and has non-generic methods that only depend on State (to avoid having them instantiated on template types that don't affect them. More... | |
class | OpFoldResult |
This class represents a single result from folding an operation. More... | |
class | Op |
This provides public APIs that all operations should have. More... | |
class | OpInterface |
This class represents the base of an operation interface. More... | |
class | Operation |
Operation is the basic unit of execution within MLIR. More... | |
class | OpaqueProperties |
Simple wrapper around a void* in order to express generically how to pass in op properties through APIs. More... | |
class | OperationName |
class | RegisteredOperationName |
This is a "type erased" representation of a registered operation. More... | |
class | NamedAttrList |
NamedAttrList is array of NamedAttributes that tracks whether it is sorted and does some basic work to remain sorted. More... | |
struct | OperationState |
This represents an operation in an abstracted form, suitable for use with the builder APIs. More... | |
class | OpPrintingFlags |
Set of flags used to control the behavior of the various IR print methods (e.g. More... | |
struct | OperationEquivalence |
This class provides utilities for computing if two operations are equivalent. More... | |
class | OperationFingerPrint |
A unique fingerprint for a specific operation, and all of it's internal operations (if includeNested is set). More... | |
class | AsmDialectResourceHandle |
This class represents an opaque handle to a dialect resource entry. More... | |
class | AsmDialectResourceHandleBase |
This class represents a CRTP base class for dialect resource handles. More... | |
class | AsmPrinter |
This base class exposes generic asm printer hooks, usable across the various derived printers. More... | |
class | OpAsmPrinter |
This is a pure-virtual base class that exposes the asmprinter hooks necessary to implement a custom print() method. More... | |
class | AsmParser |
This base class exposes generic asm parser hooks, usable across the various derived parsers. More... | |
class | OpAsmParser |
The OpAsmParser has methods for interacting with the asm parser: parsing things from it, emitting errors etc. More... | |
class | OpAsmDialectInterface |
class | PatternBenefit |
This class represents the benefit of a pattern match in a unitless scheme that ranges from 0 (very little benefit) to 65K. More... | |
class | Pattern |
This class contains all of the data related to a pattern, but does not contain any methods or logic for the actual matching. More... | |
class | RewritePattern |
RewritePattern is the common base class for all DAG to DAG replacements. More... | |
struct | OpRewritePattern |
OpRewritePattern is a wrapper around RewritePattern that allows for matching and rewriting against an instance of a derived operation class as opposed to a raw Operation. More... | |
struct | OpInterfaceRewritePattern |
OpInterfaceRewritePattern is a wrapper around RewritePattern that allows for matching and rewriting against an instance of an operation interface instead of a raw Operation. More... | |
class | OpTraitRewritePattern |
OpTraitRewritePattern is a wrapper around RewritePattern that allows for matching and rewriting against instances of an operation that possess a given trait. More... | |
class | RewriterBase |
This class coordinates the application of a rewrite on a set of IR, providing a way for clients to track mutations and create new operations. More... | |
class | IRRewriter |
This class coordinates rewriting a piece of IR outside of a pattern rewrite, providing a way to keep track of the mutations made to the IR. More... | |
class | PatternRewriter |
A special type of RewriterBase that coordinates the application of a rewrite pattern on the current IR being matched, providing a way to keep track of any mutations made. More... | |
class | RewritePatternSet |
class | Region |
This class contains a list of basic blocks and a link to the parent operation it is attached to. More... | |
class | RegionRange |
This class provides an abstraction over the different types of ranges over Regions. More... | |
class | SymbolTable |
This class allows for representing and managing the symbol table used by operations with the 'SymbolTable' trait. More... | |
class | SymbolTableCollection |
This class represents a collection of SymbolTable s. More... | |
class | LockedSymbolTableCollection |
This class implements a lock-based shared wrapper around a symbol table collection that allows shared access to the collection of symbol tables. More... | |
class | SymbolUserMap |
This class represents a map of symbols to users, and provides efficient implementations of symbol queries related to users; such as collecting the users of a symbol, replacing all uses, etc. More... | |
class | TypeRange |
This class provides an abstraction over the various different ranges of value types. More... | |
class | TypeRangeRange |
This class provides an abstraction for a range of TypeRange. More... | |
class | ValueTypeIterator |
This class implements iteration on the types of a given range of values. More... | |
struct | AttrTypeSubElementHandler< TypeRange > |
Enable TypeRange to be introspected for sub-elements. More... | |
class | Type |
Instances of the Type class are uniqued, have an immutable identifier and an optional mutable component. More... | |
class | TypeInterface |
This class represents the base of a type interface. More... | |
class | AbstractType |
This class contains all of the static information common to all instances of a registered Type. More... | |
class | TypeStorage |
Base storage class appearing in a Type. More... | |
class | OperandElementTypeIterator |
class | ResultElementTypeIterator |
class | IRUnit |
IRUnit is a union of the different types of IR objects that consistute the IR structure (other than Type and Attribute), that is Operation, Region, and Block. More... | |
class | ValueUseIterator |
An iterator class that allows for iterating over the uses of an IR operand type. More... | |
class | ValueUserIterator |
An iterator over the users of an IRObject. More... | |
class | IROperand |
A reference to a value, suitable for use as an operand of an operation. More... | |
class | IRObjectWithUseList |
This class represents a single IR object that contains a use list. More... | |
class | Value |
This class represents an instance of an SSA value in the MLIR system, representing a computable value that has a type and a set of users. More... | |
class | OpOperand |
This class represents an operand of an operation. More... | |
class | BlockArgument |
This class represents an argument of a Block. More... | |
class | OpResult |
This is a value defined by a result of an operation. More... | |
class | OperandRange |
This class implements the operand iterators for the Operation class. More... | |
class | OperandRangeRange |
This class represents a contiguous range of operand ranges, e.g. More... | |
class | MutableOperandRange |
This class provides a mutable adaptor for a range of operands. More... | |
class | MutableOperandRangeRange |
This class represents a contiguous range of mutable operand ranges, e.g. More... | |
class | ResultRange |
This class implements the result iterators for the Operation class. More... | |
class | ValueRange |
This class provides an abstraction over the different types of ranges over Values. More... | |
class | WalkResult |
A utility result that is used to signal how to proceed with an ongoing walk: More... | |
struct | ForwardIterator |
This iterator enumerates the elements in "forward" order. More... | |
class | WalkStage |
A utility class to encode the current walk stage for "generic" walkers. More... | |
class | AnalysisManager |
This class represents an analysis manager for a particular operation instance. More... | |
class | ModuleAnalysisManager |
An analysis manager class specifically for the top-level operation. More... | |
class | Pass |
The abstract base pass class. More... | |
class | OperationPass< void > |
Pass to transform an operation. More... | |
class | PassWrapper |
This class provides a CRTP wrapper around a base pass class to define several necessary utility methods. More... | |
class | PassExecutionAction |
This class encapsulates the "action" of executing a single pass. More... | |
class | PassInstrumentation |
PassInstrumentation provides several entry points into the pass manager infrastructure. More... | |
class | PassInstrumentor |
This class holds a collection of PassInstrumentation objects, and invokes their respective call backs. More... | |
class | OpPassManager |
This class represents a pass manager that runs passes on either a specific operation type, or any isolated operation. More... | |
struct | ReproducerStream |
Streams on which to output crash reproducer. More... | |
class | PassManager |
The main pass manager and pipeline builder. More... | |
class | PassPipelineOptions |
Subclasses of PassPipelineOptions provide a set of options that can be used to initialize a pass pipeline. More... | |
struct | EmptyPipelineOptions |
A default empty option struct to be used for passes that do not need to take any options. More... | |
class | PassRegistryEntry |
Structure to group information about a passes and pass pipelines (argument to invoke via mlir-opt, description, pass pipeline builder). More... | |
class | PassPipelineInfo |
A structure to represent the information of a registered pass pipeline. More... | |
class | PassInfo |
A structure to represent the information for a derived pass class. More... | |
struct | PassRegistration |
PassRegistration provides a global initializer that registers a Pass allocation routine for a concrete pass instance. More... | |
struct | PassPipelineRegistration |
PassPipelineRegistration provides a global initializer that registers a Pass pipeline builder routine. More... | |
struct | PassPipelineRegistration< EmptyPipelineOptions > |
Convenience specialization of PassPipelineRegistration for EmptyPassOptions that does not pass an empty options struct to the pass builder function. More... | |
class | PassPipelineCLParser |
This class implements a command-line parser for MLIR passes. More... | |
class | PassNameCLParser |
This class implements a command-line parser specifically for MLIR pass names. More... | |
struct | PassReproducerOptions |
class | ReductionNode |
ReductionTreePass will build a reduction tree during module reduction and the ReductionNode represents the vertex of the tree. More... | |
class | DialectReductionPatternInterface |
This is used to report the reduction patterns for a Dialect. More... | |
class | Tester |
This class is used to keep track of the testing environment of the tool. More... | |
class | FrozenRewritePatternSet |
This class represents a frozen set of patterns that can be processed by a pattern applicator. More... | |
class | ApplyPatternAction |
This is the type of Action that is dispatched when a pattern is applied. More... | |
class | PatternApplicator |
This class manages the application of a group of rewrite patterns, with a user-provided cost model. More... | |
class | CopyOnWriteArrayRef |
class | CyclicReplacerCache |
A cache for replacer-like functions that map values between two domains. More... | |
class | CachedCyclicReplacer |
A helper class for cases where the input/output types of the replacer function is identical to the types stored in the cache. More... | |
class | raw_indented_ostream |
raw_ostream subclass that simplifies indention a sequence of code. More... | |
class | StorageUniquer |
A utility class to get or create instances of "storage classes". More... | |
class | ThreadLocalCache |
This class provides support for defining a thread local object with non static storage duration. More... | |
class | TimingIdentifier |
This class represesents a uniqued string owned by a TimingManager . More... | |
class | TimingManager |
This class represents facilities to measure execution time. More... | |
class | Timer |
A handle for a timer in a TimingManager . More... | |
class | TimingScope |
An RAII-style wrapper around a timer that ensures the timer is properly started and stopped. More... | |
struct | TimeRecord |
Simple record class to record timing information. More... | |
class | OutputStrategy |
Facilities for printing timing reports to various output formats. More... | |
class | DefaultTimingManager |
Facilities for time measurement and report printing to an output stream. More... | |
class | TypeID |
This class provides an efficient unique identifier for a specific C++ type. More... | |
class | TypeIDAllocator |
This class provides a way to define new TypeIDs at runtime. More... | |
class | SelfOwningTypeID |
Defines a TypeID for each instance of this class by using a pointer to the instance. More... | |
class | GenInfo |
Structure to group information about a generator (argument to invoke via mlir-tblgen, description, and generator function). More... | |
struct | GenRegistration |
GenRegistration provides a global initializer that registers a generator function. More... | |
struct | GenNameParser |
Adds command line option for each registered generator. More... | |
class | LLVMImportDialectInterface |
Base class for dialect interfaces used to import LLVM IR. More... | |
class | LLVMImportInterface |
Interface collection for the import of LLVM IR that dispatches to a concrete dialect interface implementation. More... | |
class | LLVMTranslationDialectInterface |
Base class for dialect interfaces providing translation to LLVM IR. More... | |
class | LLVMTranslationInterface |
Interface collection for translation to LLVM IR, dispatches to a concrete interface implementation based on the dialect to which the given op belongs. More... | |
class | MlirOptMainConfig |
Configuration options for the mlir-opt tool. More... | |
class | Translation |
This class contains all of the components necessary for performing a translation. More... | |
struct | TranslateToMLIRRegistration |
Use Translate[ToMLIR|FromMLIR]Registration as an initializer that registers a function and associates it with name. More... | |
struct | TranslateFromMLIRRegistration |
struct | TranslateRegistration |
struct | TranslationParser |
A command line parser for translation functions. More... | |
struct | DialectPluginLibraryInfo |
Information about the plugin required to load its dialects & passes. More... | |
class | DialectPlugin |
A loaded dialect plugin. More... | |
struct | PassPluginLibraryInfo |
Information about the plugin required to load its passes. More... | |
class | PassPlugin |
A loaded pass plugin. More... | |
class | CFGToSCFInterface |
Interface that should be implemented by any caller of transformCFGToSCF . More... | |
class | TypeConverter |
Type conversion class. More... | |
class | ConversionPattern |
Base class for the conversion patterns. More... | |
class | OpConversionPattern |
OpConversionPattern is a wrapper around ConversionPattern that allows for matching and rewriting against an instance of a derived operation class as opposed to a raw Operation. More... | |
class | OpInterfaceConversionPattern |
OpInterfaceConversionPattern is a wrapper around ConversionPattern that allows for matching and rewriting against an instance of an OpInterface class as opposed to a raw Operation. More... | |
class | OpTraitConversionPattern |
OpTraitConversionPattern is a wrapper around ConversionPattern that allows for matching and rewriting against instances of an operation that possess a given trait. More... | |
class | ConversionPatternRewriter |
This class implements a pattern rewriter for use with ConversionPatterns. More... | |
class | ConversionTarget |
This class describes a specific conversion target. More... | |
class | PDLConversionConfig |
A PDL configuration that is used to supported dialect conversion functionality. More... | |
struct | ConversionConfig |
Dialect conversion configuration. More... | |
struct | EndomorphismSimplification |
class | OperationFolder |
A utility class for folding operations, and unifying duplicated constants generated along the way. More... | |
class | GreedyRewriteConfig |
This class allows control over how the GreedyPatternRewriteDriver works. More... | |
struct | HomomorphismSimplification |
class | InlinerConfig |
class | Inliner |
This is an implementation of the inliner that operates bottom up over the Strongly Connected Components(SCCs) of the CallGraph. More... | |
class | DialectInlinerInterface |
This is the interface that must be implemented by the dialects of operations to be inlined. More... | |
class | InlinerInterface |
This interface provides the hooks into the inlining interface. More... | |
struct | Mem2RegStatistics |
Statistics collected while applying mem2reg. More... | |
class | OneToNTypeMapping |
Stores a 1:N mapping of types and provides several useful accessors. More... | |
class | RewritePatternWithConverter |
Extends the basic RewritePattern class with a type converter member and some accessors to it. More... | |
class | OneToNPatternRewriter |
Specialization of PatternRewriter that OneToNConversionPattern s use. More... | |
class | OneToNConversionPattern |
Base class for patterns with 1:N type conversions. More... | |
class | OneToNOpConversionPattern |
This class is a wrapper around OneToNConversionPattern for matching against instances of a particular op class. More... | |
struct | SROAStatistics |
Statistics collected while applying SROA. More... | |
class | Lexer |
This class breaks up the current file into a token stream. More... | |
class | Token |
This represents a token in the MLIR syntax. More... | |
struct | PyPrintAccumulator |
Accumulates into a python string from a method that accepts an MlirStringCallback. More... | |
class | PyFileAccumulator |
Accumulates int a python file-like object, either writing text (default) or binary. More... | |
struct | PySinglePartStringAccumulator |
Accumulates into a python string from a method that is expected to make one (no more, no less) call to the callback (asserts internally on violation). More... | |
class | Sliceable |
A CRTP base class for pseudo-containers willing to support Python-type slicing access on top of indexed access. More... | |
class | ExternalPass |
This pass class wraps external passes defined in other languages using the MLIR C-interface. More... | |
struct | GPUDynamicSharedMemoryOpLowering |
Lowering for gpu.dynamic.shared.memory to LLVM dialect. More... | |
struct | GPUFuncOpLoweringOptions |
struct | GPUFuncOpLowering |
struct | GPUPrintfOpToHIPLowering |
The lowering of gpu.printf to a call to HIP hostcalls. More... | |
struct | GPUPrintfOpToLLVMCallLowering |
The lowering of gpu.printf to a call to an external printf() function. More... | |
struct | GPUPrintfOpToVPrintfLowering |
Lowering of gpu.printf to a vprintf standard library. More... | |
struct | GPUReturnOpLowering |
struct | ScalarizeVectorOpLowering |
Rewriting that unrolls SourceOp to scalars if it's operating on vectors. More... | |
struct | OpToFuncCallLowering |
Rewriting that replace SourceOp with a CallOp to f32Func or f64Func or f32ApproxFunc or f16Func depending on the element type and the fastMathFlag of that Op. More... | |
struct | ScfToSPIRVContextImpl |
struct | AttrTypeSubElementHandler< LLVM::detail::LLVMStructTypeStorage::Key > |
Allow walking and replacing the subelements of a LLVMStructTypeStorage key. More... | |
class | MLIRContextImpl |
This is the implementation of the MLIRContext class, using the pImpl idiom. More... | |
struct | OperationConverter |
Typedefs | |
using | TransitiveFilter = SliceOptions::TransitiveFilter |
using | ForwardSliceOptions = SliceOptions |
using | WalkCallback = mlir::function_ref< WalkContinuation(mlir::Value)> |
A callback that is invoked for each value encountered during the walk of the slice. More... | |
using | LoweringCallback = std::function< std::unique_ptr< llvm::Module >(Operation *, llvm::LLVMContext &, StringRef)> |
using | MemorySpaceMapping = std::function< unsigned(gpu::AddressSpace)> |
A function that maps a MemorySpace enum to a target-specific integer value. More... | |
using | ReassociationIndices = SmallVector< int64_t, 2 > |
using | MemrefValue = TypedValue< BaseMemRefType > |
A value with a memref type. More... | |
using | Loops = SmallVector< scf::ForOp, 8 > |
Tile a nest of standard for loops rooted at rootForOp by finding such parametric tile sizes that the outer loops have a fixed number of iterations as defined in sizes . More... | |
using | TileLoops = std::pair< Loops, Loops > |
using | ReassociationIndicesRef = ArrayRef< int64_t > |
using | ReassociationExprs = SmallVector< AffineExpr, 2 > |
using | AllocFunType = llvm::function_ref< void *(size_t)> |
template<typename T > | |
using | ElementWiseVisitor = llvm::function_ref< void(T &ptr, ArrayRef< int64_t >)> |
Convenient callback to "visit" a memref element by element. More... | |
using | DataLayoutEntryKey = llvm::PointerUnion< Type, StringAttr > |
using | DataLayoutEntryList = llvm::SmallVector< DataLayoutEntryInterface, 4 > |
using | DataLayoutEntryListRef = llvm::ArrayRef< DataLayoutEntryInterface > |
using | TargetDeviceSpecListRef = llvm::ArrayRef< TargetDeviceSpecInterface > |
using | TargetDeviceSpecEntry = std::pair< StringAttr, TargetDeviceSpecInterface > |
using | SetIntRangeFn = llvm::function_ref< void(Value, const ConstantIntRanges &)> |
The type of the setResultRanges callback provided to ops implementing InferIntRangeInterface. More... | |
using | SetIntLatticeFn = llvm::function_ref< void(Value, const IntegerValueRange &)> |
Similar to SetIntRangeFn, but operating on IntegerValueRange lattice values. More... | |
using | ReifiedRankedShapedTypeDims = SmallVector< SmallVector< OpFoldResult > > |
using | NewYieldValuesFn = std::function< SmallVector< Value >(OpBuilder &b, Location loc, ArrayRef< BlockArgument > newBbArgs)> |
A function that returns the additional yielded values during replaceWithAdditionalYields . More... | |
using | ValueDimList = SmallVector< std::pair< Value, std::optional< int64_t > >> |
using | DefaultAttributeStorage = AttributeStorage |
Default storage type for attributes that require no additional initialization or storage. More... | |
using | AttributeStorageAllocator = StorageUniquer::StorageAllocator |
using | AttrSubElementReplacements = AttrTypeSubElementReplacements< Attribute > |
using | TypeSubElementReplacements = AttrTypeSubElementReplacements< Type > |
using | DenseResourceElementsHandle = DialectResourceBlobHandle< BuiltinDialect > |
using | DenseBoolArrayAttr = detail::DenseArrayAttrImpl< bool > |
using | DenseI8ArrayAttr = detail::DenseArrayAttrImpl< int8_t > |
using | DenseI16ArrayAttr = detail::DenseArrayAttrImpl< int16_t > |
using | DenseI32ArrayAttr = detail::DenseArrayAttrImpl< int32_t > |
using | DenseI64ArrayAttr = detail::DenseArrayAttrImpl< int64_t > |
using | DenseF32ArrayAttr = detail::DenseArrayAttrImpl< float > |
using | DenseF64ArrayAttr = detail::DenseArrayAttrImpl< double > |
using | DenseBoolResourceElementsAttr = detail::DenseResourceElementsAttrBase< bool > |
using | DenseI8ResourceElementsAttr = detail::DenseResourceElementsAttrBase< int8_t > |
using | DenseI16ResourceElementsAttr = detail::DenseResourceElementsAttrBase< int16_t > |
using | DenseI32ResourceElementsAttr = detail::DenseResourceElementsAttrBase< int32_t > |
using | DenseI64ResourceElementsAttr = detail::DenseResourceElementsAttrBase< int64_t > |
using | DenseUI8ResourceElementsAttr = detail::DenseResourceElementsAttrBase< uint8_t > |
using | DenseUI16ResourceElementsAttr = detail::DenseResourceElementsAttrBase< uint16_t > |
using | DenseUI32ResourceElementsAttr = detail::DenseResourceElementsAttrBase< uint32_t > |
using | DenseUI64ResourceElementsAttr = detail::DenseResourceElementsAttrBase< uint64_t > |
using | DenseF32ResourceElementsAttr = detail::DenseResourceElementsAttrBase< float > |
using | DenseF64ResourceElementsAttr = detail::DenseResourceElementsAttrBase< double > |
using | DialectAllocatorFunction = std::function< Dialect *(MLIRContext *)> |
using | DialectAllocatorFunctionRef = function_ref< Dialect *(MLIRContext *)> |
using | DynamicDialectPopulationFunction = std::function< void(MLIRContext *, DynamicDialect *)> |
using | DominanceInfoNode = llvm::DomTreeNodeBase< Block > |
using | OpAsmSetValueNameFn = function_ref< void(Value, StringRef)> |
A functor used to set the name of the start of a result group of an operation. More... | |
using | OpAsmSetBlockNameFn = function_ref< void(Block *, StringRef)> |
A functor used to set the name of blocks in regions directly nested under an operation. More... | |
using | TypeRangeRangeIterator = llvm::mapped_iterator< llvm::iota_range< unsigned >::iterator, std::function< TypeRange(unsigned)> > |
using | DefaultTypeStorage = TypeStorage |
Default storage type for types that require no additional initialization or storage. More... | |
using | TypeStorageAllocator = StorageUniquer::StorageAllocator |
This is a utility allocator used to allocate memory for instances of derived Types. More... | |
using | OperandElementTypeRange = iterator_range< OperandElementTypeIterator > |
using | ResultElementTypeRange = iterator_range< ResultElementTypeIterator > |
template<typename Ty , typename Value = mlir::Value> | |
using | TypedValue = std::conditional_t< std::is_same_v< Ty, mlir::Type >, mlir::Value, detail::TypedValue< Ty > > |
If Ty is mlir::Type this will select Value instead of having a wrapper around it. More... | |
using | ReproducerStreamFactory = std::function< std::unique_ptr< ReproducerStream >(std::string &error)> |
Method type for constructing ReproducerStream. More... | |
using | PassRegistryFunction = std::function< LogicalResult(OpPassManager &, StringRef options, function_ref< LogicalResult(const Twine &)> errorHandler)> |
A registry function that adds passes to the given pass manager. More... | |
using | PassAllocatorFunction = std::function< std::unique_ptr< Pass >()> |
template<typename T , typename Enable = void> | |
using | DenseMapInfo = llvm::DenseMapInfo< T, Enable > |
template<typename KeyT , typename ValueT , typename KeyInfoT = DenseMapInfo<KeyT>, typename BucketT = llvm::detail::DenseMapPair<KeyT, ValueT>> | |
using | DenseMap = llvm::DenseMap< KeyT, ValueT, KeyInfoT, BucketT > |
template<typename ValueT , typename ValueInfoT = DenseMapInfo<ValueT>> | |
using | DenseSet = llvm::DenseSet< ValueT, ValueInfoT > |
template<typename T , typename Vector = llvm::SmallVector<T, 0>, typename Set = DenseSet<T>, unsigned N = 0> | |
using | SetVector = llvm::SetVector< T, Vector, Set, N > |
template<typename AllocatorTy = llvm::MallocAllocator> | |
using | StringSet = llvm::StringSet< AllocatorTy > |
template<typename T , typename R = T> | |
using | StringSwitch = llvm::StringSwitch< T, R > |
template<typename T , typename ResultT = void> | |
using | TypeSwitch = llvm::TypeSwitch< T, ResultT > |
template<typename Fn > | |
using | function_ref = llvm::function_ref< Fn > |
using | ChunkBufferHandler = function_ref< LogicalResult(std::unique_ptr< llvm::MemoryBuffer > chunkBuffer, raw_ostream &os)> |
using | GenFunction = std::function< bool(const llvm::RecordKeeper &records, raw_ostream &os)> |
Generator function to invoke. More... | |
using | PassPipelineFn = llvm::function_ref< LogicalResult(PassManager &pm)> |
This defines the function type used to setup the pass manager. More... | |
using | TranslateSourceMgrToMLIRFunction = std::function< OwningOpRef< Operation * >(const std::shared_ptr< llvm::SourceMgr > &sourceMgr, MLIRContext *)> |
Interface of the function that translates the sources managed by sourceMgr to MLIR. More... | |
using | TranslateRawSourceMgrToMLIRFunction = std::function< OwningOpRef< Operation * >(llvm::SourceMgr &sourceMgr, MLIRContext *)> |
using | TranslateStringRefToMLIRFunction = std::function< OwningOpRef< Operation * >(llvm::StringRef, MLIRContext *)> |
Interface of the function that translates the given string to MLIR. More... | |
using | TranslateFromMLIRFunction = std::function< LogicalResult(Operation *, llvm::raw_ostream &output)> |
Interface of the function that translates MLIR to a different format and outputs the result to a stream. More... | |
using | TranslateFunction = std::function< LogicalResult(const std::shared_ptr< llvm::SourceMgr > &sourceMgr, llvm::raw_ostream &output, MLIRContext *)> |
Interface of the function that performs file-to-file translation involving MLIR. More... | |
using | DialectRegistrationFunction = std::function< void(DialectRegistry &)> |
Interface of the function that adds all dialects and dialect extensions used for the translation to the given DialectRegistry. More... | |
Enumerations | |
enum class | ChangeResult { NoChange , Change } |
A result type used to indicate if a change happened. More... | |
enum class | HoistingKind : uint8_t { None = 0 , Loop = 1 << 0 , Block = 1 << 1 } |
enum class | SparseParallelizationStrategy { kNone , kDenseOuterLoop , kAnyStorageOuterLoop , kDenseAnyLoop , kAnyStorageAnyLoop } |
Defines a parallelization strategy. More... | |
enum class | ReinterpretMapScope { kAll , kGenericOnly , kExceptGeneric } |
Defines a scope for reinterpret map pass. More... | |
enum class | SparseEmitStrategy { kFunctional , kSparseIterator , kDebugInterface } |
Defines a scope for reinterpret map pass. More... | |
enum class | SPIRVSubByteTypeStorage { Packed } |
How sub-byte values are storaged in memory. More... | |
enum class | ReshapeOpKind { kExpand , kCollapse } |
enum class | DeletionKind { Keep , Delete } |
Returned by operation promotion logic requesting the deletion of an operation. More... | |
enum class | AffineExprKind { Add , Mul , Mod , FloorDiv , CeilDiv , LAST_AFFINE_BINARY_OP = CeilDiv , Constant , DimId , SymbolId } |
enum class | AsmResourceEntryKind { Blob , Bool , String } |
This enum represents the different kinds of resource values. More... | |
enum class | SliceVerificationResult { Success , RankTooLarge , SizeMismatch , ElemTypeMismatch , MemSpaceMismatch , LayoutMismatch } |
Enum that captures information related to verifier error conditions on slice insert/extract type of ops. More... | |
enum class | DiagnosticSeverity { Note , Warning , Error , Remark } |
Defines the different supported severity of a diagnostic. More... | |
enum class | RegionKind { SSACFG , Graph } |
The kinds of regions contained in an operation. More... | |
enum class | WalkOrder { PreOrder , PostOrder } |
Traversal order for region, block and operation walk utilities. More... | |
enum class | PassDisplayMode { List , Pipeline } |
An enum describing the different display modes for the information within the pass manager. More... | |
enum | TraversalMode { SinglePath , Backtrack , MultiPath } |
Defines the traversal method options to be used in the reduction tree traversal. More... | |
enum class | VerbosityLevel { ErrorsOnly = 0 , ErrorsAndWarnings , ErrorsWarningsAndRemarks } |
enum class to indicate the verbosity level of the diagnostic filter. More... | |
enum class | GreedyRewriteStrictness { AnyOp , ExistingAndNewOps , ExistingOps } |
This enum controls which ops are put on the worklist during a greedy pattern rewrite. More... | |
enum class | GreedySimplifyRegionLevel { Disabled , Normal , Aggressive } |
Functions | |
raw_ostream & | operator<< (raw_ostream &os, const AliasResult &result) |
raw_ostream & | operator<< (raw_ostream &os, const ModRefResult &result) |
ChangeResult | operator| (ChangeResult lhs, ChangeResult rhs) |
ChangeResult & | operator|= (ChangeResult &lhs, ChangeResult rhs) |
ChangeResult | operator& (ChangeResult lhs, ChangeResult rhs) |
raw_ostream & | operator<< (raw_ostream &os, ProgramPoint point) |
raw_ostream & | operator<< (raw_ostream &os, const AnalysisState &state) |
raw_ostream & | operator<< (raw_ostream &os, LatticeAnchor anchor) |
LogicalResult | getFlattenedAffineExpr (AffineExpr expr, unsigned numDims, unsigned numSymbols, SmallVectorImpl< int64_t > *flattenedExpr, FlatLinearConstraints *cst=nullptr, bool addConservativeSemiAffineBounds=false) |
Flattens 'expr' into 'flattenedExpr', which contains the coefficients of the dimensions, symbols, and additional variables that represent floor divisions of dimensions, symbols, and in turn other floor divisions. More... | |
LogicalResult | getFlattenedAffineExprs (AffineMap map, std::vector< SmallVector< int64_t, 8 >> *flattenedExprs, FlatLinearConstraints *cst=nullptr, bool addConservativeSemiAffineBounds=false) |
Flattens the result expressions of the map to their corresponding flattened forms and set in 'flattenedExprs'. More... | |
LogicalResult | getFlattenedAffineExprs (IntegerSet set, std::vector< SmallVector< int64_t, 8 >> *flattenedExprs, FlatLinearConstraints *cst=nullptr) |
LogicalResult | getMultiAffineFunctionFromMap (AffineMap map, presburger::MultiAffineFunction &multiAff) |
AffineMap | alignAffineMapWithValues (AffineMap map, ValueRange operands, ValueRange dims, ValueRange syms, SmallVector< Value > *newSyms=nullptr) |
Re-indexes the dimensions and symbols of an affine map with given operands values to align with dims and syms values. More... | |
void | getForwardSlice (Operation *op, SetVector< Operation * > *forwardSlice, const ForwardSliceOptions &options={}) |
Fills forwardSlice with the computed forward slice (i.e. More... | |
void | getForwardSlice (Value root, SetVector< Operation * > *forwardSlice, const ForwardSliceOptions &options={}) |
Value-rooted version of getForwardSlice . More... | |
void | getBackwardSlice (Operation *op, SetVector< Operation * > *backwardSlice, const BackwardSliceOptions &options={}) |
Fills backwardSlice with the computed backward slice (i.e. More... | |
void | getBackwardSlice (Value root, SetVector< Operation * > *backwardSlice, const BackwardSliceOptions &options={}) |
Value-rooted version of getBackwardSlice . More... | |
SetVector< Operation * > | getSlice (Operation *op, const BackwardSliceOptions &backwardSliceOptions={}, const ForwardSliceOptions &forwardSliceOptions={}) |
Iteratively computes backward slices and forward slices until a fixed point is reached. More... | |
Value | matchReduction (ArrayRef< BlockArgument > iterCarriedArgs, unsigned redPos, SmallVectorImpl< Operation * > &combinerOps) |
Utility to match a generic reduction given a list of iteration-carried arguments, iterCarriedArgs and the position of the potential reduction argument within the list, redPos . More... | |
WalkContinuation | walkSlice (mlir::ValueRange rootValues, WalkCallback walkCallback) |
Walks the slice starting from the rootValues using a depth-first traversal. More... | |
std::optional< SmallVector< Value > > | getControlFlowPredecessors (Value value) |
Computes a vector of all control predecessors of value . More... | |
bool | sortTopologically (Block *block, iterator_range< Block::iterator > ops, function_ref< bool(Value, Operation *)> isOperandReady=nullptr) |
Given a block, sort a range operations in said block in topological order. More... | |
bool | sortTopologically (Block *block, function_ref< bool(Value, Operation *)> isOperandReady=nullptr) |
Given a block, sort its operations in topological order, excluding its terminator if it has one. More... | |
bool | computeTopologicalSorting (MutableArrayRef< Operation * > ops, function_ref< bool(Value, Operation *)> isOperandReady=nullptr) |
Compute a topological ordering of the given ops. More... | |
SetVector< Block * > | getBlocksSortedByDominance (Region ®ion) |
Gets a list of blocks that is sorted according to dominance. More... | |
SetVector< Operation * > | topologicalSort (const SetVector< Operation * > &toSort) |
Sorts all operations in toSort topologically while also considering region semantics. More... | |
LogicalResult | parseAsmSourceFile (const llvm::SourceMgr &sourceMgr, Block *block, const ParserConfig &config, AsmParserState *asmState=nullptr, AsmParserCodeCompleteContext *codeCompleteContext=nullptr) |
This parses the file specified by the indicated SourceMgr and appends parsed operations to the given block. More... | |
Attribute | parseAttribute (llvm::StringRef attrStr, MLIRContext *context, Type type={}, size_t *numRead=nullptr, bool isKnownNullTerminated=false) |
This parses a single MLIR attribute to an MLIR context if it was valid. More... | |
Type | parseType (llvm::StringRef typeStr, MLIRContext *context, size_t *numRead=nullptr, bool isKnownNullTerminated=false) |
This parses a single MLIR type to an MLIR context if it was valid. More... | |
AffineMap | parseAffineMap (llvm::StringRef str, MLIRContext *context) |
This parses a single IntegerSet/AffineMap to an MLIR context if it was valid. More... | |
IntegerSet | parseIntegerSet (llvm::StringRef str, MLIRContext *context) |
template<typename T , typename... Ts> | |
static LogicalResult | readResourceHandle (DialectBytecodeReader &reader, FailureOr< T > &value, Ts &&...params) |
Helper for resource handle reading that returns LogicalResult. More... | |
template<typename T , typename... Ts> | |
auto | get (MLIRContext *context, Ts &&...params) |
Helper method that injects context only if needed, this helps unify some of the attribute construction methods. More... | |
bool | isBytecode (llvm::MemoryBufferRef buffer) |
Returns true if the given buffer starts with the magic bytes that signal MLIR bytecode. More... | |
LogicalResult | readBytecodeFile (llvm::MemoryBufferRef buffer, Block *block, const ParserConfig &config) |
Read the operations defined within the given memory buffer, containing MLIR bytecode, into the provided block. More... | |
LogicalResult | readBytecodeFile (const std::shared_ptr< llvm::SourceMgr > &sourceMgr, Block *block, const ParserConfig &config) |
An overload with a source manager whose main file buffer is used for parsing. More... | |
LogicalResult | writeBytecodeToFile (Operation *op, raw_ostream &os, const BytecodeWriterConfig &config={}) |
Write the bytecode for the given operation to the provided output stream. More... | |
void | populateAffineToStdConversionPatterns (RewritePatternSet &patterns) |
Collect a set of patterns to convert from the Affine dialect to the Standard dialect, in particular convert structured affine control flow into CFG branch-based control flow. More... | |
void | populateAffineToVectorConversionPatterns (RewritePatternSet &patterns) |
Collect a set of patterns to convert vector-related Affine ops to the Vector dialect. More... | |
Value | lowerAffineLowerBound (affine::AffineForOp op, OpBuilder &builder) |
Emit code that computes the lower bound of the given affine loop using standard arithmetic operations. More... | |
Value | lowerAffineUpperBound (affine::AffineForOp op, OpBuilder &builder) |
Emit code that computes the upper bound of the given affine loop using standard arithmetic operations. More... | |
std::unique_ptr< Pass > | createLowerAffinePass () |
Lowers affine control flow operations (ForStmt, IfStmt and AffineApplyOp) to equivalent lower-level constructs (flow of basic blocks and arithmetic primitives). More... | |
void | populateAMDGPUToROCDLConversionPatterns (const LLVMTypeConverter &converter, RewritePatternSet &patterns, amdgpu::Chipset chipset) |
Note: The ROCDL target does not support the LLVM bfloat type at this time and so this function will add conversions to change all bfloat uses to i16 . More... | |
std::unique_ptr< Pass > | createConvertAMDGPUToROCDLPass () |
void | populateArithToEmitCPatterns (TypeConverter &typeConverter, RewritePatternSet &patterns) |
void | populateConvertArmNeon2dToIntrPatterns (RewritePatternSet &patterns) |
Populates patterns for the lowering of Arm NEON 2D ops to intrinsics. More... | |
std::unique_ptr< Pass > | createConvertArmNeon2dToIntrPass () |
Creates a pass to lower Arm NEON 2D ops to intrinsics, i.e. More... | |
std::unique_ptr< Pass > | createConvertArmSMEToLLVMPass (bool dumpTileLiveRanges=false) |
Create a pass to convert from the ArmSME dialect to LLVM intrinsics. More... | |
void | configureArmSMEToLLVMConversionLegality (ConversionTarget &target) |
Configure target to convert from the ArmSME dialect to LLVM intrinsics. More... | |
void | populateArmSMEToLLVMConversionPatterns (LLVMTypeConverter &converter, RewritePatternSet &patterns) |
Populate the given list with patterns that convert from the ArmSME dialect to LLVM intrinsics. More... | |
void | populateArmSMEToSCFConversionPatterns (RewritePatternSet &patterns) |
Collect a set of patterns to convert from the ArmSME dialect to SCF. More... | |
std::unique_ptr< Pass > | createConvertArmSMEToSCFPass () |
Create a pass to convert a subset of ArmSME ops to SCF. More... | |
void | populateAsyncStructuralTypeConversionsAndLegality (TypeConverter &typeConverter, RewritePatternSet &patterns, ConversionTarget &target) |
Populates patterns for async structural type conversions. More... | |
std::unique_ptr< Pass > | createBufferizationToMemRefPass () |
void | populateComplexToLibmConversionPatterns (RewritePatternSet &patterns, PatternBenefit benefit) |
Populate the given list with patterns that convert from Complex to Libm calls. More... | |
std::unique_ptr< OperationPass< ModuleOp > > | createConvertComplexToLibmPass () |
Create a pass to convert Complex operations to libm calls. More... | |
void | populateComplexToLLVMConversionPatterns (const LLVMTypeConverter &converter, RewritePatternSet &patterns) |
Populate the given list with patterns that convert from Complex to LLVM. More... | |
void | registerConvertComplexToLLVMInterface (DialectRegistry ®istry) |
void | populateComplexToSPIRVPatterns (const SPIRVTypeConverter &typeConverter, RewritePatternSet &patterns) |
Appends to a pattern list additional patterns for translating Complex ops to SPIR-V ops. More... | |
void | populateComplexToStandardConversionPatterns (RewritePatternSet &patterns) |
Populate the given list with patterns that convert from Complex to Standard. More... | |
std::unique_ptr< Pass > | createConvertComplexToStandardPass () |
Create a pass to convert Complex operations to the Standard dialect. More... | |
std::unique_ptr< OperationPass<> > | createConvertControlFlowToSPIRVPass () |
Creates a pass to convert ControlFlow ops to SPIR-V ops. More... | |
void | populateConversionTargetFromOperation (Operation *op, ConversionTarget &target, LLVMTypeConverter &typeConverter, RewritePatternSet &patterns) |
Recursively walk the IR and collect all dialects implementing the interface, and populate the conversion patterns. More... | |
void | populateOpConvertToLLVMConversionPatterns (Operation *op, ConversionTarget &target, LLVMTypeConverter &typeConverter, RewritePatternSet &patterns) |
Helper function for populating LLVM conversion patterns. More... | |
std::unique_ptr< Pass > | createConvertToLLVMPass () |
Create a pass that performs dialect conversion to LLVM for all dialects implementing ConvertToLLVMPatternInterface . More... | |
void | registerConvertToLLVMDependentDialectLoading (DialectRegistry ®istry) |
Register the extension that will load dependent dialects for LLVM conversion. More... | |
void | populateFuncToEmitCPatterns (RewritePatternSet &patterns) |
FailureOr< LLVM::LLVMFuncOp > | convertFuncOpToLLVMFuncOp (FunctionOpInterface funcOp, ConversionPatternRewriter &rewriter, const LLVMTypeConverter &converter) |
Convert input FunctionOpInterface operation to LLVMFuncOp by using the provided LLVMTypeConverter. More... | |
void | populateFuncToLLVMFuncOpConversionPattern (const LLVMTypeConverter &converter, RewritePatternSet &patterns) |
Collect the default pattern to convert a FuncOp to the LLVM dialect. More... | |
void | populateFuncToLLVMConversionPatterns (const LLVMTypeConverter &converter, RewritePatternSet &patterns, const SymbolTable *symbolTable=nullptr) |
Collect the patterns to convert from the Func dialect to LLVM. More... | |
void | registerConvertFuncToLLVMInterface (DialectRegistry ®istry) |
void | populateFuncToSPIRVPatterns (const SPIRVTypeConverter &typeConverter, RewritePatternSet &patterns) |
Appends to a pattern list additional patterns for translating Func ops to SPIR-V ops. More... | |
std::unique_ptr< OperationPass<> > | createConvertFuncToSPIRVPass () |
Creates a pass to convert Func ops to SPIR-V ops. More... | |
spirv::StorageClass | addressSpaceToStorageClass (gpu::AddressSpace addressSpace) |
void | populateGpuToLLVMConversionPatterns (LLVMTypeConverter &converter, RewritePatternSet &patterns, bool kernelBarePtrCallConv=false) |
Collect a set of patterns to convert from the GPU dialect to LLVM and populate converter for gpu types. More... | |
void | populateGpuMemorySpaceAttributeConversions (TypeConverter &typeConverter, const MemorySpaceMapping &mapping) |
Populates memory space attribute conversion rules for lowering gpu.address_space to integer values. More... | |
void | populateGpuToLLVMSPVConversionPatterns (const LLVMTypeConverter &converter, RewritePatternSet &patterns) |
void | populateGpuMemorySpaceAttributeConversions (TypeConverter &typeConverter) |
Populates memory space attribute conversion rules for lowering gpu.address_space to integer values. More... | |
LLVM::LLVMStructType | convertMMAToLLVMType (gpu::MMAMatrixType type) |
Return the LLVMStructureType corresponding to the MMAMatrixType type . More... | |
void | configureGpuToNVVMConversionLegality (ConversionTarget &target) |
Configure target to convert from the GPU dialect to NVVM. More... | |
void | configureGpuToNVVMTypeConverter (LLVMTypeConverter &converter) |
Configure the LLVM type convert to convert types and address spaces from the GPU dialect to NVVM. More... | |
void | populateGpuToNVVMConversionPatterns (const LLVMTypeConverter &converter, RewritePatternSet &patterns) |
Collect a set of patterns to convert from the GPU dialect to NVVM. More... | |
void | populateGpuSubgroupReduceOpLoweringPattern (const LLVMTypeConverter &converter, RewritePatternSet &patterns) |
Populate GpuSubgroupReduce pattern to NVVM. More... | |
void | populateGpuWMMAToNVVMConversionPatterns (const LLVMTypeConverter &converter, RewritePatternSet &patterns) |
Collect a set of patterns to convert WMMA ops from GPU dialect to NVVM. More... | |
void | populateGpuToROCDLConversionPatterns (const LLVMTypeConverter &converter, RewritePatternSet &patterns, gpu::amd::Runtime runtime) |
Collect a set of patterns to convert from the GPU dialect to ROCDL. More... | |
void | configureGpuToROCDLConversionLegality (ConversionTarget &target) |
Configure target to convert from the GPU dialect to ROCDL. More... | |
std::unique_ptr< OperationPass< gpu::GPUModuleOp > > | createLowerGpuOpsToROCDLOpsPass (const std::string &chipset="gfx900", unsigned indexBitwidth=kDeriveIndexBitwidthFromDataLayout, bool useBarePtrCallConv=false, gpu::amd::Runtime runtime=gpu::amd::Runtime::Unknown) |
Creates a pass that lowers GPU dialect operations to ROCDL counterparts. More... | |
void | populateGPUToSPIRVPatterns (const SPIRVTypeConverter &typeConverter, RewritePatternSet &patterns) |
Appends to a pattern list additional patterns for translating GPU Ops to SPIR-V ops. More... | |
void | populateGpuWMMAToSPIRVCoopMatrixKHRConversionPatterns (const SPIRVTypeConverter &typeConverter, RewritePatternSet &patterns) |
Collect a set of patterns to convert WMMA ops from GPU dialect to SPIRV, using the KHR Cooperative Matrix extension. More... | |
void | populateMMAToSPIRVCoopMatrixTypeConversion (SPIRVTypeConverter &typeConverter) |
Adds MMAMatrixType conversions to SPIR-V cooperative matrix KHR type conversion to the type converter. More... | |
std::unique_ptr< OperationPass< ModuleOp > > | createConvertGPUToSPIRVPass (bool mapMemorySpace=true) |
Creates a pass to convert GPU kernel ops to corresponding SPIR-V ops. More... | |
std::unique_ptr< OperationPass< mlir::ModuleOp > > | createConvertGpuLaunchFuncToVulkanLaunchFuncPass () |
std::unique_ptr< OperationPass< ModuleOp > > | createConvertLinalgToStandardPass () |
Create a pass to convert Linalg operations to the Standard dialect. More... | |
LogicalResult | structFuncArgTypeConverter (const LLVMTypeConverter &converter, Type type, SmallVectorImpl< Type > &result) |
Callback to convert function argument types. More... | |
LogicalResult | barePtrFuncArgTypeConverter (const LLVMTypeConverter &converter, Type type, SmallVectorImpl< Type > &result) |
Callback to convert function argument types. More... | |
void | populateMathToLibmConversionPatterns (RewritePatternSet &patterns) |
Populate the given list with patterns that convert from Math to Libm calls. More... | |
std::unique_ptr< OperationPass< ModuleOp > > | createConvertMathToLibmPass () |
Create a pass to convert Math operations to libm calls. More... | |
void | populateMathToLLVMConversionPatterns (const LLVMTypeConverter &converter, RewritePatternSet &patterns, bool approximateLog1p=true) |
void | registerConvertMathToLLVMInterface (DialectRegistry ®istry) |
void | populateMathToROCDLConversionPatterns (const LLVMTypeConverter &converter, RewritePatternSet &patterns) |
Populate the given list with patterns that convert from Math to ROCDL calls. More... | |
void | populateMathToSPIRVPatterns (const SPIRVTypeConverter &typeConverter, RewritePatternSet &patterns) |
Appends to a pattern list additional patterns for translating Math ops to SPIR-V ops. More... | |
std::unique_ptr< OperationPass<> > | createConvertMathToSPIRVPass () |
Creates a pass to convert Math ops to SPIR-V ops. More... | |
void | populateMemRefToEmitCTypeConversion (TypeConverter &typeConverter) |
void | populateMemRefToEmitCConversionPatterns (RewritePatternSet &patterns, const TypeConverter &converter) |
void | populateFinalizeMemRefToLLVMConversionPatterns (const LLVMTypeConverter &converter, RewritePatternSet &patterns) |
Collect a set of patterns to convert memory-related operations from the MemRef dialect to the LLVM dialect. More... | |
void | registerConvertMemRefToLLVMInterface (DialectRegistry ®istry) |
void | populateMemRefToSPIRVPatterns (const SPIRVTypeConverter &typeConverter, RewritePatternSet &patterns) |
Appends to a pattern list additional patterns for translating MemRef ops to SPIR-V ops. More... | |
std::unique_ptr< OperationPass<> > | createMapMemRefStorageClassPass () |
Creates a pass to map numeric MemRef memory spaces to symbolic SPIR-V storage classes. More... | |
std::unique_ptr< OperationPass<> > | createConvertMemRefToSPIRVPass () |
Creates a pass to convert MemRef ops to SPIR-V ops. More... | |
std::unique_ptr<::mlir::Pass > | createConvertMeshToMPIPass () |
Lowers Mesh communication operations (updateHalo, AllGater, ...) to MPI primitives. More... | |
void | populateNVGPUToNVVMConversionPatterns (const LLVMTypeConverter &converter, RewritePatternSet &patterns) |
void | populateNVVMToLLVMConversionPatterns (RewritePatternSet &patterns) |
void | registerConvertNVVMToLLVMInterface (DialectRegistry ®istry) |
void | populateOpenACCToSCFConversionPatterns (RewritePatternSet &patterns) |
Collect the patterns to convert from the OpenACC dialect to OpenACC with SCF dialect. More... | |
std::unique_ptr< OperationPass< ModuleOp > > | createConvertOpenACCToSCFPass () |
Create a pass to convert the OpenACC dialect into the LLVMIR dialect. More... | |
void | configureOpenMPToLLVMConversionLegality (ConversionTarget &target, const LLVMTypeConverter &typeConverter) |
Configure dynamic conversion legality of regionless operations from OpenMP to LLVM. More... | |
void | populateOpenMPToLLVMConversionPatterns (LLVMTypeConverter &converter, RewritePatternSet &patterns) |
Populate the given list with patterns that convert from OpenMP to LLVM. More... | |
void | registerConvertOpenMPToLLVMInterface (DialectRegistry ®istry) |
Registers the ConvertToLLVMPatternInterface interface in the OpenMP dialect. More... | |
std::unique_ptr< OperationPass< ModuleOp > > | createPDLToPDLInterpPass () |
Creates and returns a pass to convert PDL ops to PDL interpreter ops. More... | |
std::unique_ptr< OperationPass< ModuleOp > > | createPDLToPDLInterpPass (DenseMap< Operation *, PDLPatternConfigSet * > &configMap) |
Creates and returns a pass to convert PDL ops to PDL interpreter ops. More... | |
std::unique_ptr< Pass > | createReconcileUnrealizedCastsPass () |
Creates a pass that eliminates noop unrealized_conversion_cast operation sequences. More... | |
void | populateSCFToControlFlowConversionPatterns (RewritePatternSet &patterns) |
Collect a set of patterns to convert SCF operations to CFG branch-based operations within the ControlFlow dialect. More... | |
std::unique_ptr< Pass > | createConvertSCFToCFPass () |
Creates a pass to convert SCF operations to CFG branch-based operation in the ControlFlow dialect. More... | |
void | populateSCFToEmitCConversionPatterns (RewritePatternSet &patterns) |
Collect a set of patterns to convert SCF operations to the EmitC dialect. More... | |
LogicalResult | convertAffineLoopNestToGPULaunch (affine::AffineForOp forOp, unsigned numBlockDims, unsigned numThreadDims) |
Convert a perfect affine loop nest with the outermost loop identified by forOp into a gpu::Launch operation. More... | |
void | populateParallelLoopToGPUPatterns (RewritePatternSet &patterns) |
Adds the conversion pattern from scf.parallel to gpu.launch to the provided pattern list. More... | |
void | configureParallelLoopToGPULegality (ConversionTarget &target) |
Configures the rewrite target such that only scf.parallel operations that are not rewritten by the provided patterns are legal. More... | |
void | finalizeParallelLoopToGPUConversion (Operation *op) |
Clean up after applyPartialConversion/applyFullConversion call. More... | |
std::unique_ptr< InterfacePass< FunctionOpInterface > > | createAffineForToGPUPass (unsigned numBlockDims, unsigned numThreadDims) |
Create a pass that converts loop nests into GPU kernels. More... | |
std::unique_ptr< InterfacePass< FunctionOpInterface > > | createAffineForToGPUPass () |
std::unique_ptr< Pass > | createParallelLoopToGpuPass () |
Creates a pass that converts scf.parallel operations into a gpu.launch operation. More... | |
void | populateSCFToSPIRVPatterns (const SPIRVTypeConverter &typeConverter, ScfToSPIRVContext &scfToSPIRVContext, RewritePatternSet &patterns) |
Collects a set of patterns to lower from scf.for, scf.if, and loop.terminator to CFG operations within the SPIR-V dialect. More... | |
std::unique_ptr< OperationPass<> > | createConvertSCFToSPIRVPass () |
Creates a pass to convert SCF ops into SPIR-V ops. More... | |
void | populateShapeToStandardConversionPatterns (RewritePatternSet &patterns) |
std::unique_ptr< OperationPass< ModuleOp > > | createConvertShapeToStandardPass () |
void | populateConvertShapeConstraintsConversionPatterns (RewritePatternSet &patterns) |
std::unique_ptr< Pass > | createConvertShapeConstraintsPass () |
unsigned | storageClassToAddressSpace (spirv::ClientAPI clientAPI, spirv::StorageClass storageClass) |
void | encodeBindAttribute (ModuleOp module) |
Encodes global variable's descriptor set and binding into its name if they both exist. More... | |
void | populateSPIRVToLLVMTypeConversion (LLVMTypeConverter &typeConverter, spirv::ClientAPI clientAPIForAddressSpaceMapping=spirv::ClientAPI::Unknown) |
Populates type conversions with additional SPIR-V types. More... | |
void | populateSPIRVToLLVMConversionPatterns (const LLVMTypeConverter &typeConverter, RewritePatternSet &patterns, spirv::ClientAPI clientAPIForAddressSpaceMapping=spirv::ClientAPI::Unknown) |
Populates the given list with patterns that convert from SPIR-V to LLVM. More... | |
void | populateSPIRVToLLVMFunctionConversionPatterns (const LLVMTypeConverter &typeConverter, RewritePatternSet &patterns) |
Populates the given list with patterns for function conversion from SPIR-V to LLVM. More... | |
void | populateSPIRVToLLVMModuleConversionPatterns (const LLVMTypeConverter &typeConverter, RewritePatternSet &patterns) |
Populates the given patterns for module conversion from SPIR-V to LLVM. More... | |
void | populateTensorToLinalgPatterns (RewritePatternSet &patterns) |
Appends to a pattern list additional patterns for translating tensor ops to Linalg ops. More... | |
std::unique_ptr< OperationPass< ModuleOp > > | createConvertTensorToLinalgPass () |
Creates a pass to convert Tensor ops to Linalg ops. More... | |
void | populateTensorToSPIRVPatterns (const SPIRVTypeConverter &typeConverter, int64_t byteCountThreshold, RewritePatternSet &patterns) |
Appends to a pattern list additional patterns for translating tensor ops to SPIR-V ops. More... | |
std::unique_ptr< OperationPass<> > | createConvertTensorToSPIRVPass () |
Creates a pass to convert Tensor ops to SPIR-V ops. More... | |
void | populateVectorToArmSMEPatterns (RewritePatternSet &patterns, MLIRContext &ctx) |
Collect a set of patterns to lower Vector ops to ArmSME ops that map to LLVM intrinsics. More... | |
std::unique_ptr< Pass > | createConvertVectorToArmSMEPass () |
Create a pass to lower operations from the vector dialect to Arm SME. More... | |
void | populatePrepareVectorToMMAPatterns (RewritePatternSet &patterns, bool useNvGpu=false) |
Patterns to transform vector ops into a canonical form to convert to MMA matrix operations. More... | |
LogicalResult | convertVectorToMMAOps (RewriterBase &rewriter, Operation *rootOp) |
Convert vector ops to MMA matrix operations nested under rootOp . More... | |
LogicalResult | convertVectorToNVVMCompatibleMMASync (RewriterBase &rewriter, Operation *rootOp) |
Convert vector ops ops nested under rootOp to vector and GPU operaitons compatible with the nvvm.mma.sync lowering path. More... | |
std::unique_ptr< Pass > | createConvertVectorToGPUPass (bool useNvGpu=false) |
Convert from vector to GPU ops. More... | |
void | populateVectorToLLVMMatrixConversionPatterns (const LLVMTypeConverter &converter, RewritePatternSet &patterns) |
Collect a set of patterns to convert from Vector contractions to LLVM Matrix Intrinsics. More... | |
void | populateVectorToLLVMConversionPatterns (const LLVMTypeConverter &converter, RewritePatternSet &patterns, bool reassociateFPReductions=false, bool force32BitVectorIndices=false) |
Collect a set of patterns to convert from the Vector dialect to LLVM. More... | |
void | populateVectorToSCFConversionPatterns (RewritePatternSet &patterns, const VectorTransferToSCFOptions &options=VectorTransferToSCFOptions()) |
Collect a set of patterns to convert from the Vector dialect to SCF + func. More... | |
std::unique_ptr< Pass > | createConvertVectorToSCFPass (const VectorTransferToSCFOptions &options=VectorTransferToSCFOptions()) |
Create a pass to convert a subset of vector ops to SCF. More... | |
void | populateVectorToSPIRVPatterns (const SPIRVTypeConverter &typeConverter, RewritePatternSet &patterns) |
Appends to a pattern list additional patterns for translating Vector Ops to SPIR-V ops. More... | |
void | populateVectorReductionToSPIRVDotProductPatterns (RewritePatternSet &patterns) |
Appends patterns to convert vector reduction of the form: More... | |
std::unique_ptr< OperationPass<> > | createConvertVectorToSPIRVPass () |
Creates a pass to convert Vector Ops to SPIR-V ops. More... | |
void | populateVectorToXeGPUConversionPatterns (RewritePatternSet &patterns) |
Collect a set of patterns to convert from the vector to XeGPU ops. More... | |
std::unique_ptr< Pass > | createConvertVectorToXeGPUPass () |
Create a pass to convert ops from vector to XeGPU. More... | |
void | setupDebuggerExecutionContextHook (tracing::ExecutionContext &executionContext) |
void | populateAMXLegalizeForLLVMExportPatterns (LLVMTypeConverter &converter, RewritePatternSet &patterns) |
Collect a set of patterns to lower AMX ops to ops that map to LLVM intrinsics. More... | |
void | configureAMXLegalizeForExportTarget (LLVMConversionTarget &target) |
Configure the target to support lowering AMX ops to ops that map to LLVM intrinsics. More... | |
void | registerConvertAMXToLLVMInterface (DialectRegistry ®istry) |
Register LLVM conversion interface for AMX dialect. More... | |
std::optional< SmallVector< OpFoldResult > > | inferExpandShapeOutputShape (OpBuilder &b, Location loc, ShapedType expandedType, ArrayRef< ReassociationIndices > reassociation, ArrayRef< OpFoldResult > inputShape) |
Infer the output shape for a {memref|tensor}.expand_shape when it is possible to do so. More... | |
detail::op_matcher< arith::ConstantIndexOp > | matchConstantIndex () |
Matches a ConstantIndexOp. More... | |
llvm::SmallBitVector | getPositionsOfShapeOne (unsigned rank, ArrayRef< int64_t > shape) |
Value | getValueOrCreateConstantIntOp (OpBuilder &b, Location loc, OpFoldResult ofr) |
Converts an OpFoldResult to a Value. More... | |
Value | getValueOrCreateConstantIndexOp (OpBuilder &b, Location loc, OpFoldResult ofr) |
Converts an OpFoldResult to a Value. More... | |
SmallVector< Value > | getValueOrCreateConstantIndexOp (OpBuilder &b, Location loc, ArrayRef< OpFoldResult > valueOrAttrVec) |
Similar to the other overload, but converts multiple OpFoldResults into Values. More... | |
Value | getValueOrCreateCastToIndexLike (OpBuilder &b, Location loc, Type targetType, Value value) |
Create a cast from an index-like value (index or integer) to another index-like value. More... | |
Value | convertScalarToDtype (OpBuilder &b, Location loc, Value operand, Type toType, bool isUnsignedCast) |
Converts a scalar value operand to type toType . More... | |
Value | createScalarOrSplatConstant (OpBuilder &builder, Location loc, Type type, const APInt &value) |
Create a constant of type type at location loc whose value is value (an APInt or APFloat whose type must match the element type of type ). More... | |
Value | createScalarOrSplatConstant (OpBuilder &builder, Location loc, Type type, int64_t value) |
Value | createScalarOrSplatConstant (OpBuilder &builder, Location loc, Type type, const APFloat &value) |
Type | getType (OpFoldResult ofr) |
Returns the int type of the integer in ofr. More... | |
void | populateArmSVELegalizeForLLVMExportPatterns (const LLVMTypeConverter &converter, RewritePatternSet &patterns) |
Collect a set of patterns to lower ArmSVE ops to ops that map to LLVM intrinsics. More... | |
void | configureArmSVELegalizeForExportTarget (LLVMConversionTarget &target) |
Configure the target to support lowering ArmSVE ops to ops that map to LLVM intrinsics. More... | |
std::unique_ptr< Pass > | createAsyncParallelForPass () |
std::unique_ptr< Pass > | createAsyncParallelForPass (bool asyncDispatch, int32_t numWorkerThreads, int32_t minTaskSize) |
void | populateAsyncFuncToAsyncRuntimeConversionPatterns (RewritePatternSet &patterns, ConversionTarget &target) |
std::unique_ptr< OperationPass< ModuleOp > > | createAsyncFuncToAsyncRuntimePass () |
std::unique_ptr< OperationPass< ModuleOp > > | createAsyncToAsyncRuntimePass () |
std::unique_ptr< Pass > | createAsyncRuntimeRefCountingPass () |
std::unique_ptr< Pass > | createAsyncRuntimeRefCountingOptPass () |
std::unique_ptr< Pass > | createAsyncRuntimePolicyBasedRefCountingPass () |
template<class AttrElementT , class ElementValueT = typename AttrElementT::ValueType, class PoisonAttr = ub::PoisonAttr, class CalculationT = function_ref< std::optional<ElementValueT>(ElementValueT, ElementValueT)>> | |
Attribute | constFoldBinaryOpConditional (ArrayRef< Attribute > operands, Type resultType, CalculationT &&calculate) |
Performs constant folding calculate with element-wise behavior on the two attributes in operands and returns the result if possible. More... | |
template<class AttrElementT , class ElementValueT = typename AttrElementT::ValueType, class PoisonAttr = ub::PoisonAttr, class CalculationT = function_ref< std::optional<ElementValueT>(ElementValueT, ElementValueT)>> | |
Attribute | constFoldBinaryOpConditional (ArrayRef< Attribute > operands, CalculationT &&calculate) |
Performs constant folding calculate with element-wise behavior on the two attributes in operands and returns the result if possible. More... | |
template<class AttrElementT , class ElementValueT = typename AttrElementT::ValueType, class PoisonAttr = void, class CalculationT = function_ref<ElementValueT(ElementValueT, ElementValueT)>> | |
Attribute | constFoldBinaryOp (ArrayRef< Attribute > operands, Type resultType, CalculationT &&calculate) |
template<class AttrElementT , class ElementValueT = typename AttrElementT::ValueType, class PoisonAttr = ub::PoisonAttr, class CalculationT = function_ref<ElementValueT(ElementValueT, ElementValueT)>> | |
Attribute | constFoldBinaryOp (ArrayRef< Attribute > operands, CalculationT &&calculate) |
template<class AttrElementT , class ElementValueT = typename AttrElementT::ValueType, class PoisonAttr = ub::PoisonAttr, class CalculationT = function_ref<std::optional<ElementValueT>(ElementValueT)>> | |
Attribute | constFoldUnaryOpConditional (ArrayRef< Attribute > operands, CalculationT &&calculate) |
Performs constant folding calculate with element-wise behavior on the one attributes in operands and returns the result if possible. More... | |
template<class AttrElementT , class ElementValueT = typename AttrElementT::ValueType, class PoisonAttr = ub::PoisonAttr, class CalculationT = function_ref<ElementValueT(ElementValueT)>> | |
Attribute | constFoldUnaryOp (ArrayRef< Attribute > operands, CalculationT &&calculate) |
template<class AttrElementT , class TargetAttrElementT , class ElementValueT = typename AttrElementT::ValueType, class TargetElementValueT = typename TargetAttrElementT::ValueType, class PoisonAttr = ub::PoisonAttr, class CalculationT = function_ref<TargetElementValueT(ElementValueT, bool)>> | |
Attribute | constFoldCastOp (ArrayRef< Attribute > operands, Type resType, CalculationT &&calculate) |
void | populateEmitCSizeTTypeConversions (TypeConverter &converter) |
void | populateCallOpTypeConversionPattern (RewritePatternSet &patterns, const TypeConverter &converter) |
Add a pattern to the given pattern list to convert the operand and result types of a CallOp with the given type converter. More... | |
void | populateBranchOpInterfaceTypeConversionPattern (RewritePatternSet &patterns, const TypeConverter &converter, function_ref< bool(BranchOpInterface branchOp, int idx)> shouldConvertBranchOperand=nullptr) |
Add a pattern to the given pattern list to rewrite branch operations to use operands that have been legalized by the conversion framework. More... | |
bool | isLegalForBranchOpInterfaceTypeConversionPattern (Operation *op, const TypeConverter &converter) |
Return true if op is a BranchOpInterface op whose operands are all legal according to converter. More... | |
void | populateReturnOpTypeConversionPattern (RewritePatternSet &patterns, const TypeConverter &converter) |
Add a pattern to the given pattern list to rewrite return ops to use operands that have been legalized by the conversion framework. More... | |
bool | isLegalForReturnOpTypeConversionPattern (Operation *op, const TypeConverter &converter, bool returnOpAlwaysLegal=false) |
For ReturnLike ops (except return ), return True. More... | |
bool | isNotBranchOpInterfaceOrReturnLikeOp (Operation *op) |
Return true if op is neither BranchOpInterface nor ReturnLike. More... | |
void | populateFuncTypeConversionPatterns (const TypeConverter &typeConverter, RewritePatternSet &patterns) |
void | promoteToWorkgroupMemory (gpu::GPUFuncOp op, unsigned arg) |
Promotes a function argument to workgroup memory in the given function. More... | |
std::unique_ptr< Pass > | createGpuLauchSinkIndexComputationsPass () |
Pass that moves ops which are likely an index computation into gpu.launch body. More... | |
std::unique_ptr< OperationPass< ModuleOp > > | createGpuKernelOutliningPass (StringRef dataLayoutStr=StringRef()) |
Replaces gpu.launch with gpu.launch_func by moving the region into a separate kernel function. More... | |
std::unique_ptr< OperationPass< func::FuncOp > > | createGpuAsyncRegionPass () |
Rewrites a function region so that GPU ops execute asynchronously. More... | |
std::unique_ptr< OperationPass< func::FuncOp > > | createGpuMapParallelLoopsPass () |
Maps the parallel loops found in the given function to workgroups. More... | |
void | populateGpuGlobalIdPatterns (RewritePatternSet &patterns) |
Collect a set of patterns to rewrite GlobalIdOp op within the GPU dialect. More... | |
void | populateGpuShufflePatterns (RewritePatternSet &patterns) |
Collect a set of patterns to rewrite shuffle ops within the GPU dialect. More... | |
void | populateGpuAllReducePatterns (RewritePatternSet &patterns) |
Collect a set of patterns to rewrite all-reduce ops within the GPU dialect. More... | |
void | populateGpuBreakDownSubgroupReducePatterns (RewritePatternSet &patterns, unsigned maxShuffleBitwidth=32, PatternBenefit benefit=1) |
Collect a set of patterns to break down subgroup_reduce ops into smaller ones supported by the target of size <= maxShuffleBitwidth , where size is the subgroup_reduce value bitwidth. More... | |
void | populateGpuLowerSubgroupReduceToShufflePatterns (RewritePatternSet &patterns, unsigned subgroupSize, unsigned shuffleBitwidth=32, PatternBenefit benefit=1) |
Collect a set of patterns to lower gpu.subgroup_reduce into gpu.shuffle ops over shuffleBitwidth scalar types. More... | |
void | populateGpuLowerClusteredSubgroupReduceToShufflePatterns (RewritePatternSet &patterns, unsigned subgroupSize, unsigned shuffleBitwidth=32, PatternBenefit benefit=1) |
Disjoint counterpart of populateGpuLowerSubgroupReduceToShufflePatterns that only matches gpu.subgroup_reduce ops with a cluster_size . More... | |
void | populateGpuRewritePatterns (RewritePatternSet &patterns) |
Collect all patterns to rewrite ops within the GPU dialect. More... | |
void | populateGpuDecomposeMemrefsPatterns (RewritePatternSet &patterns) |
Collect a set of patterns to decompose memrefs ops. More... | |
std::unique_ptr< Pass > | createGpuDecomposeMemrefsPass () |
Pass decomposes memref ops inside gpu.launch body. More... | |
void | populateGpuEliminateBarriersPatterns (RewritePatternSet &patterns) |
Erase barriers that do not enforce conflicting memory side effects. More... | |
gpu::GPUFuncOp | outlineKernelFunc (gpu::LaunchOp launchOp, StringRef kernelFnName, SmallVectorImpl< Value > &operands) |
Get a gpu.func created from outlining the region of a gpu.launch op with the given kernelFnName . More... | |
LogicalResult | sinkOperationsIntoLaunchOp (gpu::LaunchOp launchOp, llvm::function_ref< bool(Operation *)> isSinkingBeneficiary) |
Sink operations into the launchOp to reduce the number of values that are used within the region of the operation, but defined outside of the region. More... | |
ParseResult | parseSemiFunctionType (OpAsmParser &parser, Type &argumentType, Type &resultType, bool resultOptional=true) |
Parses a single non-function type or a function type with at least one argument. More... | |
ParseResult | parseSemiFunctionType (OpAsmParser &parser, Type &argumentType, SmallVectorImpl< Type > &resultTypes) |
void | printSemiFunctionType (OpAsmPrinter &printer, Operation *op, Type argumentType, TypeRange resultType) |
Prints argument and result types in a syntax similar to that of FunctionType but allowing and requiring one to omit the parens around the argument type in absence of result types, and without the trailing -> () . More... | |
void | printSemiFunctionType (OpAsmPrinter &printer, Operation *op, Type argumentType, Type resultType, bool resultOptional=true) |
void | populateExpandCtlzPattern (RewritePatternSet &patterns) |
void | populateExpandTanPattern (RewritePatternSet &patterns) |
void | populateExpandSinhPattern (RewritePatternSet &patterns) |
void | populateExpandCoshPattern (RewritePatternSet &patterns) |
void | populateExpandTanhPattern (RewritePatternSet &patterns) |
void | populateExpandAsinhPattern (RewritePatternSet &patterns) |
void | populateExpandAcoshPattern (RewritePatternSet &patterns) |
void | populateExpandAtanhPattern (RewritePatternSet &patterns) |
void | populateExpandFmaFPattern (RewritePatternSet &patterns) |
void | populateExpandFloorFPattern (RewritePatternSet &patterns) |
void | populateExpandCeilFPattern (RewritePatternSet &patterns) |
void | populateExpandExp2FPattern (RewritePatternSet &patterns) |
void | populateExpandPowFPattern (RewritePatternSet &patterns) |
void | populateExpandFPowIPattern (RewritePatternSet &patterns) |
void | populateExpandRoundFPattern (RewritePatternSet &patterns) |
void | populateExpandRoundEvenPattern (RewritePatternSet &patterns) |
void | populateExpandRsqrtPattern (RewritePatternSet &patterns) |
void | populateMathAlgebraicSimplificationPatterns (RewritePatternSet &patterns) |
void | populatePolynomialApproximateTanhPattern (RewritePatternSet &patterns) |
void | populatePolynomialApproximateErfPattern (RewritePatternSet &patterns) |
void | populateMathPolynomialApproximationPatterns (RewritePatternSet &patterns, const MathPolynomialApproximationOptions &options={}) |
void | populateUpliftToFMAPatterns (RewritePatternSet &patterns) |
raw_ostream & | operator<< (raw_ostream &os, const Range &range) |
SmallVector< Range, 8 > | getOrCreateRanges (OffsetSizeAndStrideOpInterface op, OpBuilder &b, Location loc) |
Return the list of Range (i.e. More... | |
std::unique_ptr< Pass > | createForLoopSpecializationPass () |
Creates a pass that specializes for loop for unrolling and vectorization. More... | |
std::unique_ptr< Pass > | createForLoopPeelingPass () |
Creates a pass that peels for loops at their upper bounds for better vectorization. More... | |
std::unique_ptr< Pass > | createSCFForLoopCanonicalizationPass () |
Creates a pass that canonicalizes affine.min and affine.max operations inside of scf.for loops with known lower and upper bounds. More... | |
std::unique_ptr< Pass > | createTestSCFParallelLoopCollapsingPass () |
Creates a pass that transforms a single ParallelLoop over N induction variables into another ParallelLoop over less than N induction variables. More... | |
std::unique_ptr< Pass > | createParallelLoopFusionPass () |
Creates a loop fusion pass which fuses parallel loops. More... | |
std::unique_ptr< Pass > | createParallelLoopSpecializationPass () |
Creates a pass that specializes parallel loop for unrolling and vectorization. More... | |
std::unique_ptr< Pass > | createParallelLoopTilingPass (llvm::ArrayRef< int64_t > tileSize={}, bool noMinMaxBounds=false) |
Creates a pass which tiles innermost parallel loops. More... | |
std::unique_ptr< Pass > | createForLoopRangeFoldingPass () |
Creates a pass which folds arith ops on induction variable into loop range. More... | |
std::unique_ptr< Pass > | createForallToForLoopPass () |
Creates a pass that converts SCF forall loops to SCF for loops. More... | |
std::unique_ptr< Pass > | createForallToParallelLoopPass () |
Creates a pass that converts SCF forall loops to SCF parallel loops. More... | |
std::unique_ptr< Pass > | createForToWhileLoopPass () |
SmallVector< scf::ForOp > | replaceLoopNestWithNewYields (RewriterBase &rewriter, MutableArrayRef< scf::ForOp > loopNest, ValueRange newIterOperands, const NewYieldValuesFn &newYieldValuesFn, bool replaceIterOperandsUsesInLoop=true) |
Update a perfectly nested loop nest to yield new values from the innermost loop and propagating it up through the loop nest. More... | |
FailureOr< func::FuncOp > | outlineSingleBlockRegion (RewriterBase &rewriter, Location loc, Region ®ion, StringRef funcName, func::CallOp *callOp=nullptr) |
Outline a region with a single block into a new FuncOp. More... | |
LogicalResult | outlineIfOp (RewriterBase &b, scf::IfOp ifOp, func::FuncOp *thenFn, StringRef thenFnName, func::FuncOp *elseFn, StringRef elseFnName) |
Outline the then and/or else regions of ifOp as follows: More... | |
bool | getInnermostParallelLoops (Operation *rootOp, SmallVectorImpl< scf::ParallelOp > &result) |
Get a list of innermost parallel loops contained in rootOp . More... | |
std::optional< std::pair< AffineExpr, AffineExpr > > | getSCFMinMaxExpr (Value value, SmallVectorImpl< Value > &dims, SmallVectorImpl< Value > &symbols, llvm::function_ref< bool(Operation *)> loopFilter=nullptr) |
Return the min/max expressions for value if it is an induction variable from scf.for or scf.parallel loop. More... | |
LogicalResult | coalesceLoops (MutableArrayRef< scf::ForOp > loops) |
Replace a perfect nest of "for" loops with a single linearized loop. More... | |
LogicalResult | coalesceLoops (RewriterBase &rewriter, MutableArrayRef< scf::ForOp >) |
LogicalResult | coalescePerfectlyNestedSCFForLoops (scf::ForOp op) |
Walk an affine.for to find a band to coalesce. More... | |
void | collapseParallelLoops (RewriterBase &rewriter, scf::ParallelOp loops, ArrayRef< std::vector< unsigned >> combinedDimensions) |
Take the ParallelLoop and for each set of dimension indices, combine them into a single dimension. More... | |
FailureOr< UnrolledLoopInfo > | loopUnrollByFactor (scf::ForOp forOp, uint64_t unrollFactor, function_ref< void(unsigned, Operation *, OpBuilder)> annotateFn=nullptr) |
Unrolls this for operation by the specified unroll factor. More... | |
LogicalResult | loopUnrollJamByFactor (scf::ForOp forOp, uint64_t unrollFactor) |
Unrolls and jams this scf.for operation by the specified unroll factor. More... | |
Range | emitNormalizedLoopBounds (RewriterBase &rewriter, Location loc, OpFoldResult lb, OpFoldResult ub, OpFoldResult step) |
Materialize bounds and step of a zero-based and unit-step loop derived by normalizing the specified bounds and step. More... | |
void | denormalizeInductionVariable (RewriterBase &rewriter, Location loc, Value normalizedIv, OpFoldResult origLb, OpFoldResult origStep) |
Get back the original induction variable values after loop normalization. More... | |
TileLoops | extractFixedOuterLoops (scf::ForOp rootFOrOp, ArrayRef< int64_t > sizes) |
SmallVector< Loops, 8 > | tile (ArrayRef< scf::ForOp > forOps, ArrayRef< Value > sizes, ArrayRef< scf::ForOp > targets) |
Performs tiling fo imperfectly nested loops (with interchange) by strip-mining the forOps by sizes and sinking them, in their order of occurrence in forOps , under each of the targets . More... | |
Loops | tile (ArrayRef< scf::ForOp > forOps, ArrayRef< Value > sizes, scf::ForOp target) |
Performs tiling (with interchange) by strip-mining the forOps by sizes and sinking them, in their order of occurrence in forOps , under target . More... | |
Loops | tilePerfectlyNested (scf::ForOp rootForOp, ArrayRef< Value > sizes) |
Tile a nest of scf::ForOp loops rooted at rootForOp with the given (parametric) sizes. More... | |
void | getPerfectlyNestedLoops (SmallVectorImpl< scf::ForOp > &nestedLoops, scf::ForOp root) |
Get perfectly nested sequence of loops starting at root of loop nest (the first op being another AffineFor, and the second op - a terminator). More... | |
scf::ForallOp | fuseIndependentSiblingForallLoops (scf::ForallOp target, scf::ForallOp source, RewriterBase &rewriter) |
Given two scf.forall loops, target and source , fuses target into source . More... | |
scf::ForOp | fuseIndependentSiblingForLoops (scf::ForOp target, scf::ForOp source, RewriterBase &rewriter) |
Given two scf.for loops, target and source , fuses target into source . More... | |
FailureOr< scf::ForallOp > | normalizeForallOp (RewriterBase &rewriter, scf::ForallOp forallOp) |
Normalize an scf.forall operation. More... | |
std::unique_ptr< Pass > | createShapeToShapeLowering () |
Creates an instance of the ShapeToShapeLowering pass that legalizes Shape dialect to be convertible to Arith. More... | |
void | populateShapeRewritePatterns (RewritePatternSet &patterns) |
Collects a set of patterns to rewrite ops within the Shape dialect. More... | |
void | populateRemoveShapeConstraintsPatterns (RewritePatternSet &patterns) |
std::unique_ptr< OperationPass< func::FuncOp > > | createRemoveShapeConstraintsPass () |
std::unique_ptr< OperationPass< ModuleOp > > | createOutlineShapeComputationPass () |
Outline the shape computation part by adding shape.func and populate conrresponding mapping infomation into ShapeMappingAnalysis. More... | |
void | populateSparseAssembler (RewritePatternSet &patterns, bool directOut) |
std::unique_ptr< Pass > | createSparseAssembler () |
std::unique_ptr< Pass > | createSparseAssembler (bool directOut) |
void | populateSparseReinterpretMap (RewritePatternSet &patterns, ReinterpretMapScope scope) |
std::unique_ptr< Pass > | createSparseReinterpretMapPass () |
std::unique_ptr< Pass > | createSparseReinterpretMapPass (ReinterpretMapScope scope) |
void | populatePreSparsificationRewriting (RewritePatternSet &patterns) |
std::unique_ptr< Pass > | createPreSparsificationRewritePass () |
void | populateSparsificationPatterns (RewritePatternSet &patterns, const SparsificationOptions &options=SparsificationOptions()) |
Sets up sparsification rewriting rules with the given options. More... | |
std::unique_ptr< Pass > | createSparsificationPass () |
std::unique_ptr< Pass > | createSparsificationPass (const SparsificationOptions &options) |
void | populateStageSparseOperationsPatterns (RewritePatternSet &patterns) |
Sets up StageSparseOperation rewriting rules. More... | |
std::unique_ptr< Pass > | createStageSparseOperationsPass () |
void | populateLowerSparseOpsToForeachPatterns (RewritePatternSet &patterns, bool enableRT, bool enableConvert) |
std::unique_ptr< Pass > | createLowerSparseOpsToForeachPass () |
std::unique_ptr< Pass > | createLowerSparseOpsToForeachPass (bool enableRT, bool enableConvert) |
void | populateLowerForeachToSCFPatterns (RewritePatternSet &patterns) |
std::unique_ptr< Pass > | createLowerForeachToSCFPass () |
void | populateLowerSparseIterationToSCFPatterns (const TypeConverter &converter, RewritePatternSet &patterns) |
std::unique_ptr< Pass > | createLowerSparseIterationToSCFPass () |
void | populateSparseTensorConversionPatterns (const TypeConverter &typeConverter, RewritePatternSet &patterns) |
Sets up sparse tensor conversion rules. More... | |
std::unique_ptr< Pass > | createSparseTensorConversionPass () |
void | populateSparseTensorCodegenPatterns (const TypeConverter &typeConverter, RewritePatternSet &patterns, bool createSparseDeallocs, bool enableBufferInitialization) |
Sets up sparse tensor codegen rules. More... | |
std::unique_ptr< Pass > | createSparseTensorCodegenPass () |
std::unique_ptr< Pass > | createSparseTensorCodegenPass (bool createSparseDeallocs, bool enableBufferInitialization) |
void | populateSparseBufferRewriting (RewritePatternSet &patterns, bool enableBufferInitialization) |
std::unique_ptr< Pass > | createSparseBufferRewritePass () |
std::unique_ptr< Pass > | createSparseBufferRewritePass (bool enableBufferInitialization) |
void | populateSparseVectorizationPatterns (RewritePatternSet &patterns, unsigned vectorLength, bool enableVLAVectorization, bool enableSIMDIndex32) |
Populates the given patterns list with vectorization rules. More... | |
std::unique_ptr< Pass > | createSparseVectorizationPass () |
std::unique_ptr< Pass > | createSparseVectorizationPass (unsigned vectorLength, bool enableVLAVectorization, bool enableSIMDIndex32) |
void | populateSparseGPUCodegenPatterns (RewritePatternSet &patterns, unsigned numThreads) |
void | populateSparseGPULibgenPatterns (RewritePatternSet &patterns, bool enableRT) |
std::unique_ptr< Pass > | createSparseGPUCodegenPass () |
std::unique_ptr< Pass > | createSparseGPUCodegenPass (unsigned numThreads, bool enableRT) |
void | populateStorageSpecifierToLLVMPatterns (const TypeConverter &converter, RewritePatternSet &patterns) |
std::unique_ptr< Pass > | createStorageSpecifierToLLVMPass () |
bufferization::OneShotBufferizationOptions | getBufferizationOptionsForSparsification (bool analysisOnly) |
std::unique_ptr< Pass > | createSparsificationAndBufferizationPass () |
std::unique_ptr< Pass > | createSparsificationAndBufferizationPass (const bufferization::OneShotBufferizationOptions &bufferizationOptions, const SparsificationOptions &sparsificationOptions, bool createSparseDeallocs, bool enableRuntimeLibrary, bool enableBufferInitialization, unsigned vectorLength, bool enableVLAVectorization, bool enableSIMDIndex32, bool enableGPULibgen, SparseEmitStrategy emitStrategy, SparseParallelizationStrategy parallelizationStrategy) |
std::unique_ptr< Pass > | createSparseSpaceCollapsePass () |
void | populateBuiltinFuncToSPIRVPatterns (const SPIRVTypeConverter &typeConverter, RewritePatternSet &patterns) |
Appends to a pattern list additional patterns for translating the builtin func op to the SPIR-V dialect. More... | |
void | populateFuncOpVectorRewritePatterns (RewritePatternSet &patterns) |
void | populateReturnOpVectorRewritePatterns (RewritePatternSet &patterns) |
DiagnosedDefiniteFailure | emitDefiniteFailure (Location loc, const Twine &message) |
Emits a definite failure with the given message. More... | |
DiagnosedDefiniteFailure | emitDefiniteFailure (Operation *op, const Twine &message={}) |
DiagnosedSilenceableFailure | emitSilenceableFailure (Location loc, const Twine &message={}) |
Emits a silenceable failure with the given message. More... | |
DiagnosedSilenceableFailure | emitSilenceableFailure (Operation *op, const Twine &message={}) |
SmallVector< int64_t > | computeSuffixProduct (ArrayRef< int64_t > sizes) |
Given a set of sizes, return the suffix product. More... | |
SmallVector< int64_t > | computeStrides (ArrayRef< int64_t > sizes) |
SmallVector< int64_t > | computeElementwiseMul (ArrayRef< int64_t > v1, ArrayRef< int64_t > v2) |
Return a vector containing llvm::zip_equal(v1, v2) multiplied elementwise. More... | |
int64_t | computeSum (ArrayRef< int64_t > basis) |
Self-explicit. More... | |
int64_t | computeProduct (ArrayRef< int64_t > basis) |
Self-explicit. More... | |
int64_t | computeMaxLinearIndex (ArrayRef< int64_t > basis) |
Return the number of elements of basis (i.e. More... | |
int64_t | linearize (ArrayRef< int64_t > offsets, ArrayRef< int64_t > basis) |
Return the linearized index of 'offsets' w.r.t. More... | |
SmallVector< int64_t > | delinearize (int64_t linearIndex, ArrayRef< int64_t > strides) |
Given the strides together with a linear index in the dimension space, return the vector-space offsets in each dimension for a de-linearized index. More... | |
std::optional< SmallVector< int64_t > > | computeShapeRatio (ArrayRef< int64_t > shape, ArrayRef< int64_t > subShape) |
Return the multi-dimensional integral ratio of subShape to the trailing dimensions of shape . More... | |
SmallVector< AffineExpr > | computeSuffixProduct (ArrayRef< AffineExpr > sizes) |
Given a set of sizes, return the suffix product. More... | |
SmallVector< AffineExpr > | computeStrides (ArrayRef< AffineExpr > sizes) |
SmallVector< AffineExpr > | computeElementwiseMul (ArrayRef< AffineExpr > v1, ArrayRef< AffineExpr > v2) |
Return a vector containing llvm::zip_equal(v1, v2) multiplied elementwise. More... | |
AffineExpr | computeSum (MLIRContext *ctx, ArrayRef< AffineExpr > basis) |
Self-explicit. More... | |
AffineExpr | computeProduct (MLIRContext *ctx, ArrayRef< AffineExpr > basis) |
Self-explicit. More... | |
AffineExpr | computeMaxLinearIndex (MLIRContext *ctx, ArrayRef< AffineExpr > basis) |
Return the number of elements of basis (i.e. More... | |
AffineExpr | linearize (MLIRContext *ctx, ArrayRef< AffineExpr > offsets, ArrayRef< AffineExpr > basis) |
Return the linearized index of 'offsets' w.r.t. More... | |
AffineExpr | linearize (MLIRContext *ctx, ArrayRef< AffineExpr > offsets, ArrayRef< int64_t > basis) |
SmallVector< AffineExpr > | delinearize (AffineExpr linearIndex, ArrayRef< AffineExpr > strides) |
Given the strides together with a linear index in the dimension space, return the vector-space offsets in each dimension for a de-linearized index. More... | |
SmallVector< AffineExpr > | delinearize (AffineExpr linearIndex, ArrayRef< int64_t > strides) |
template<typename T > | |
SmallVector< T > | applyPermutation (ArrayRef< T > input, ArrayRef< int64_t > permutation) |
template<typename T > | |
SmallVector< T > | applyPermutation (const SmallVectorImpl< T > &input, ArrayRef< int64_t > permutation) |
template<typename T , unsigned N> | |
void | applyPermutationToVector (SmallVector< T, N > &inVec, ArrayRef< int64_t > permutation) |
Apply the permutation defined by permutation to inVec . More... | |
SmallVector< int64_t > | invertPermutationVector (ArrayRef< int64_t > permutation) |
Helper method to apply to inverse a permutation. More... | |
bool | isIdentityPermutation (ArrayRef< int64_t > permutation) |
Returns true if permutation is an identity permutation. More... | |
bool | isPermutationVector (ArrayRef< int64_t > interchange) |
Method to check if an interchange vector is a permutation. More... | |
SmallVector< int64_t > | computePermutationVector (int64_t permSize, ArrayRef< int64_t > positions, ArrayRef< int64_t > desiredPositions) |
Return a permutation vector of size permSize that would result in moving positions into desiredPositions. More... | |
SmallVector< int64_t > | dropDims (ArrayRef< int64_t > inputPerm, ArrayRef< int64_t > dropPositions) |
Returns a permutation vector that drop the input dims in dropPositions from inputPerm. More... | |
SmallVector< int64_t > | getI64SubArray (ArrayAttr arrayAttr, unsigned dropFront=0, unsigned dropBack=0) |
Helper to return a subset of arrayAttr as a vector of int64_t. More... | |
std::pair< AffineExpr, SmallVector< OpFoldResult > > | computeLinearIndex (OpFoldResult sourceOffset, ArrayRef< OpFoldResult > strides, ArrayRef< OpFoldResult > indices) |
Compute linear index from provided strides and indices, assuming strided layout. More... | |
std::pair< AffineExpr, SmallVector< OpFoldResult > > | computeLinearIndex (OpFoldResult sourceOffset, ArrayRef< int64_t > strides, ArrayRef< Value > indices) |
constexpr StringRef | getReassociationAttrName () |
Attribute name for the ArrayAttr which encodes reassociation indices. More... | |
std::optional< SmallVector< ReassociationIndices > > | composeReassociationIndices (ArrayRef< ReassociationIndices > producerReassociations, ArrayRef< ReassociationIndices > consumerReassociations, MLIRContext *context) |
Compose reassociation maps that are used in pair of reshape ops where one is a producer and other is the consumer. More... | |
SmallVector< SmallVector< AffineExpr, 2 >, 2 > | convertReassociationIndicesToExprs (MLIRContext *context, ArrayRef< ReassociationIndices > reassociationIndices) |
Convert reassociation indices to affine expressions. More... | |
SmallVector< AffineMap, 4 > | getSymbolLessAffineMaps (ArrayRef< ReassociationExprs > reassociation) |
Constructs affine maps out of Array<Array<AffineExpr>>. More... | |
ArrayAttr | getReassociationIndicesAttribute (OpBuilder &b, ArrayRef< ReassociationIndices > reassociation) |
Wraps a list of reassociations in an ArrayAttr. More... | |
SmallVector< ReassociationIndices, 2 > | convertReassociationMapsToIndices (ArrayRef< ReassociationExprs > reassociationExprs) |
Convert Array<Array<AffineExpr>> to Array<Array<int64_t>>. More... | |
std::optional< SmallVector< ReassociationIndices > > | getReassociationIndicesForReshape (ShapedType sourceType, ShapedType targetType) |
Return the reassociations maps to use to reshape given the source type and the target type when possible. More... | |
std::optional< SmallVector< ReassociationIndices > > | getReassociationIndicesForCollapse (ArrayRef< int64_t > sourceShape, ArrayRef< int64_t > targetShape) |
Returns the reassociation maps to collapse sourceShape to targetShape if possible. More... | |
bool | isReassociationValid (ArrayRef< AffineMap > reassociation, int *invalidIndex=nullptr) |
Return true if the reassociation specification is valid, false otherwise. More... | |
template<typename ReshapeOpTy , typename InverseReshapeOpTy > | |
static OpFoldResult | foldReshapeOp (ReshapeOpTy reshapeOp, ArrayRef< Attribute > operands) |
template<typename Op , typename T > | |
static LogicalResult | verifyReshapeLikeTypes (Op op, T expandedType, T collapsedType, bool isExpansion) |
Common verifier for reshape-like types. More... | |
LogicalResult | reshapeLikeShapesAreCompatible (function_ref< LogicalResult(const Twine &)> emitError, ArrayRef< int64_t > collapsedShape, ArrayRef< int64_t > expandedShape, ArrayRef< ReassociationIndices > reassociationMaps, bool isExpandingReshape) |
Verify that shapes of the reshaped types using following rule: if a dimension in the collapsed type is static, then the corresponding dimensions in the expanded shape should be a) static b) the product should be same as the collaped shape. More... | |
bool | hasNonIdentityLayout (Type type) |
Returns true iff the type is a MemRefType and has a non-identity layout. More... | |
llvm::SmallBitVector | getSlicedDimensions (ArrayRef< OpFoldResult > sliceInputShape, ArrayRef< Range > sliceParams) |
The input parameters offsets , sizes , strides specify a rectangular non rank-reducing slice of the collapse_shape output. More... | |
llvm::SmallBitVector | getLinearizedDimensions (ArrayRef< ReassociationIndices > reassociationIndices) |
Determine which dimensions are linearized by a tensor.collapse_shape op by inspecting its reassociation indices. More... | |
bool | isZeroIndex (OpFoldResult v) |
Return true if v is an IntegerAttr with value 0 of a ConstantIndexOp with attribute with value 0 . More... | |
std::tuple< SmallVector< OpFoldResult >, SmallVector< OpFoldResult >, SmallVector< OpFoldResult > > | getOffsetsSizesAndStrides (ArrayRef< Range > ranges) |
Given an array of Range values, return a tuple of (offset vector, sizes vector, and strides vector) formed by separating out the individual elements of each range. More... | |
void | dispatchIndexOpFoldResult (OpFoldResult ofr, SmallVectorImpl< Value > &dynamicVec, SmallVectorImpl< int64_t > &staticVec) |
Helper function to dispatch an OpFoldResult into staticVec if: a) it is an IntegerAttr In other cases, the OpFoldResult is dispached to the dynamicVec . More... | |
void | dispatchIndexOpFoldResults (ArrayRef< OpFoldResult > ofrs, SmallVectorImpl< Value > &dynamicVec, SmallVectorImpl< int64_t > &staticVec) |
Helper function to dispatch multiple OpFoldResults according to the behavior of dispatchIndexOpFoldResult(OpFoldResult ofr for a single OpFoldResult. More... | |
std::pair< int64_t, OpFoldResult > | getSimplifiedOfrAndStaticSizePair (OpFoldResult ofr, Builder &b) |
Given OpFoldResult representing dim size value (*), generates a pair of sizes: More... | |
template<typename IntTy > | |
SmallVector< IntTy > | extractFromIntegerArrayAttr (Attribute attr) |
Extract integer values from the assumed ArrayAttr of IntegerAttr. More... | |
OpFoldResult | getAsOpFoldResult (Value val) |
Given a value, try to extract a constant Attribute. More... | |
SmallVector< OpFoldResult > | getAsOpFoldResult (ValueRange values) |
Given an array of values, try to extract a constant Attribute from each value. More... | |
SmallVector< OpFoldResult > | getAsOpFoldResult (ArrayAttr arrayAttr) |
Convert arrayAttr to a vector of OpFoldResult. More... | |
OpFoldResult | getAsIndexOpFoldResult (MLIRContext *ctx, int64_t val) |
Convert int64_t to integer attributes of index type and return them as OpFoldResult. More... | |
SmallVector< OpFoldResult > | getAsIndexOpFoldResult (MLIRContext *ctx, ArrayRef< int64_t > values) |
std::optional< int64_t > | getConstantIntValue (OpFoldResult ofr) |
If ofr is a constant integer or an IntegerAttr, return the integer. More... | |
std::optional< SmallVector< int64_t > > | getConstantIntValues (ArrayRef< OpFoldResult > ofrs) |
If all ofrs are constant integers or IntegerAttrs, return the integers. More... | |
bool | isConstantIntValue (OpFoldResult ofr, int64_t value) |
Return true if ofr is constant integer equal to value . More... | |
bool | areAllConstantIntValue (ArrayRef< OpFoldResult > ofrs, int64_t value) |
Return true if all of ofrs are constant integers equal to value . More... | |
bool | areConstantIntValues (ArrayRef< OpFoldResult > ofrs, ArrayRef< int64_t > values) |
Return true if all of ofrs are constant integers equal to the corresponding value in values . More... | |
bool | isEqualConstantIntOrValue (OpFoldResult ofr1, OpFoldResult ofr2) |
Return true if ofr1 and ofr2 are the same integer constant attribute values or the same SSA value. More... | |
bool | isEqualConstantIntOrValueArray (ArrayRef< OpFoldResult > ofrs1, ArrayRef< OpFoldResult > ofrs2) |
SmallVector< OpFoldResult > | getMixedValues (ArrayRef< int64_t > staticValues, ValueRange dynamicValues, Builder &b) |
Return a vector of OpFoldResults with the same size a staticValues, but all elements for which ShapedType::isDynamic is true, will be replaced by dynamicValues. More... | |
std::pair< SmallVector< int64_t >, SmallVector< Value > > | decomposeMixedValues (const SmallVectorImpl< OpFoldResult > &mixedValues) |
Decompose a vector of mixed static or dynamic values into the corresponding pair of arrays. More... | |
SmallVector< Value > | getValuesSortedByKey (ArrayRef< Attribute > keys, ArrayRef< Value > values, llvm::function_ref< bool(Attribute, Attribute)> compare) |
Helper to sort values according to matching keys . More... | |
SmallVector< OpFoldResult > | getValuesSortedByKey (ArrayRef< Attribute > keys, ArrayRef< OpFoldResult > values, llvm::function_ref< bool(Attribute, Attribute)> compare) |
SmallVector< int64_t > | getValuesSortedByKey (ArrayRef< Attribute > keys, ArrayRef< int64_t > values, llvm::function_ref< bool(Attribute, Attribute)> compare) |
bool | hasValidSizesOffsets (SmallVector< int64_t > sizesOrOffsets) |
Helper function to check whether the passed in sizes or offsets are valid. More... | |
bool | hasValidStrides (SmallVector< int64_t > strides) |
Helper function to check whether the passed in strides are valid. More... | |
LogicalResult | foldDynamicIndexList (SmallVectorImpl< OpFoldResult > &ofrs, bool onlyNonNegative=false, bool onlyNonZero=false) |
Returns "success" when any of the elements in ofrs is a constant value. More... | |
LogicalResult | foldDynamicOffsetSizeList (SmallVectorImpl< OpFoldResult > &offsetsOrSizes) |
Returns "success" when any of the elements in offsetsOrSizes is a constant value. More... | |
LogicalResult | foldDynamicStrideList (SmallVectorImpl< OpFoldResult > &strides) |
Returns "success" when any of the elements in strides is a constant value. More... | |
std::optional< int64_t > | constantTripCount (OpFoldResult lb, OpFoldResult ub, OpFoldResult step) |
Return the number of iterations for a loop with a lower bound lb , upper bound ub and step step . More... | |
bool | isRowMajorMatmul (ArrayAttr indexingMaps) |
Tests whether the given maps describe a row major matmul. More... | |
bool | isColumnMajorMatmul (ArrayAttr indexingMaps) |
Tests whether the given maps describe a column major matmul. More... | |
bool | isRowMajorBatchMatmul (ArrayAttr indexingMaps) |
Tests whether the given maps describe a row major batch matmul. More... | |
bool | isVecmat (ArrayAttr indexingMaps) |
Tests whether the given maps describe a vector matrix multiplication. More... | |
bool | isBatchVecmat (ArrayAttr indexingMaps) |
Tests whether the given maps describe a batch vector matrix multiplication. More... | |
bool | isMatvec (ArrayAttr indexingMaps) |
Tests whether the given maps describe a matrix vector multiplication. More... | |
bool | isBatchMatvec (ArrayAttr indexingMaps) |
Tests whether the given maps describe a batch matrix vector multiplication. More... | |
void | findPositionsOfType (ArrayRef< utils::IteratorType > iteratorTypes, utils::IteratorType iteratorTypeName, SmallVectorImpl< unsigned > &res) |
Return positions in iteratorTypes that match iteratorTypeName . More... | |
Operation * | clone (OpBuilder &b, Operation *op, TypeRange newResultTypes, ValueRange newOperands) |
template<typename OpT > | |
OpT | clone (OpBuilder &b, OpT op, TypeRange newResultTypes, ValueRange newOperands) |
Operation * | cloneWithoutRegions (OpBuilder &b, Operation *op, TypeRange newResultTypes, ValueRange newOperands) |
SmallVector< NamedAttribute > | getPrunedAttributeList (Operation *op, ArrayRef< StringRef > elidedAttrs) |
void | populateX86VectorLegalizeForLLVMExportPatterns (const LLVMTypeConverter &converter, RewritePatternSet &patterns) |
Collect a set of patterns to lower X86Vector ops to ops that map to LLVM intrinsics. More... | |
void | configureX86VectorLegalizeForExportTarget (LLVMConversionTarget &target) |
Configure the target to support lowering X86Vector ops to ops that map to LLVM intrinsics. More... | |
int | JitRunnerMain (int argc, char **argv, const DialectRegistry ®istry, JitRunnerConfig config={}) |
Entry point for all CPU runners. More... | |
std::function< llvm::Error(llvm::Module *)> | makeOptimizingTransformer (unsigned optLevel, unsigned sizeLevel, llvm::TargetMachine *targetMachine) |
Create a module transformer function for MLIR ExecutionEngine that runs LLVM IR passes corresponding to the given speed and size optimization levels (e.g. More... | |
void | registerAllDialects (DialectRegistry ®istry) |
Add all the MLIR dialects to the provided registry. More... | |
void | registerAllDialects (MLIRContext &context) |
Append all the MLIR dialects to the registry contained in the given context. More... | |
void | registerAllExtensions (DialectRegistry ®istry) |
This function may be called to register all MLIR dialect extensions with the provided registry. More... | |
void | registerAllPasses () |
void | registerFromLLVMIRTranslation () |
void | registerFromSPIRVTranslation () |
void | registerToCppTranslation () |
void | registerToLLVMIRTranslation () |
void | registerToSPIRVTranslation () |
void | registerAllTranslations () |
bool | operator!= (RegionBranchPoint lhs, RegionBranchPoint rhs) |
bool | insideMutuallyExclusiveRegions (Operation *a, Operation *b) |
Return true if a and b are in mutually exclusive regions as per RegionBranchOpInterface. More... | |
Region * | getEnclosingRepetitiveRegion (Operation *op) |
Return the first enclosing region of the given op that may be executed repetitively as per RegionBranchOpInterface or nullptr if no such region exists. More... | |
Region * | getEnclosingRepetitiveRegion (Value value) |
Return the first enclosing region of the given Value that may be executed repetitively as per RegionBranchOpInterface or nullptr if no such region exists. More... | |
raw_ostream & | operator<< (raw_ostream &, const ConstantIntRanges &) |
raw_ostream & | operator<< (raw_ostream &, const IntegerValueRange &) |
LogicalResult | reifyResultShapes (OpBuilder &b, Operation *op, ReifiedRankedShapedTypeDims &reifiedReturnShapes) |
Reify the shape of the result of an operation (typically in terms of the shape of its operands). More... | |
template<typename EffectTy > | |
bool | hasSingleEffect (Operation *op) |
Returns true if op has only an effect of type EffectTy . More... | |
template<typename EffectTy > | |
bool | hasSingleEffect (Operation *op, Value value) |
Returns true if op has only an effect of type EffectTy (and of no other type) on value . More... | |
template<typename ValueTy , typename EffectTy > | |
bool | hasSingleEffect (Operation *op, ValueTy value) |
Returns true if op has only an effect of type EffectTy (and of no other type) on value of type ValueTy . More... | |
template<typename... EffectTys> | |
bool | hasEffect (Operation *op) |
Returns true if op has an effect of type EffectTy . More... | |
template<typename... EffectTys> | |
bool | hasEffect (Operation *op, Value value) |
Returns true if op has an effect of type EffectTy on value . More... | |
template<typename ValueTy , typename... EffectTys> | |
bool | hasEffect (Operation *op, ValueTy value) |
Returns true if op has an effect of type EffectTy on value of type ValueTy . More... | |
bool | isOpTriviallyDead (Operation *op) |
Return true if the given operation is unused, and has no side effects on memory that prevent erasing. More... | |
bool | wouldOpBeTriviallyDead (Operation *op) |
Return true if the given operation would be dead if unused, and has no side effects on memory that would prevent erasing. More... | |
bool | isMemoryEffectFree (Operation *op) |
Returns true if the given operation is free of memory effects. More... | |
std::optional< llvm::SmallVector< MemoryEffects::EffectInstance > > | getEffectsRecursively (Operation *rootOp) |
Returns the side effects of an operation. More... | |
bool | isSpeculatable (Operation *op) |
Returns true if the given operation is speculatable, i.e. More... | |
bool | isPure (Operation *op) |
Returns true if the given operation is pure, i.e., is speculatable that does not touch memory. More... | |
void | printDynamicIndexList (OpAsmPrinter &printer, Operation *op, OperandRange values, ArrayRef< int64_t > integers, ArrayRef< bool > scalables, TypeRange valueTypes=TypeRange(), AsmParser::Delimiter delimiter=AsmParser::Delimiter::Square) |
Printer hook for custom directive in assemblyFormat. More... | |
void | printDynamicIndexList (OpAsmPrinter &printer, Operation *op, OperandRange values, ArrayRef< int64_t > integers, AsmParser::Delimiter delimiter) |
void | printDynamicIndexList (OpAsmPrinter &printer, Operation *op, OperandRange values, ArrayRef< int64_t > integers, TypeRange valueTypes=TypeRange(), AsmParser::Delimiter delimiter=AsmParser::Delimiter::Square) |
ParseResult | parseDynamicIndexList (OpAsmParser &parser, SmallVectorImpl< OpAsmParser::UnresolvedOperand > &values, DenseI64ArrayAttr &integers, DenseBoolArrayAttr &scalableVals, SmallVectorImpl< Type > *valueTypes=nullptr, AsmParser::Delimiter delimiter=AsmParser::Delimiter::Square) |
Parser hook for custom directive in assemblyFormat. More... | |
ParseResult | parseDynamicIndexList (OpAsmParser &parser, SmallVectorImpl< OpAsmParser::UnresolvedOperand > &values, DenseI64ArrayAttr &integers, AsmParser::Delimiter delimiter) |
ParseResult | parseDynamicIndexList (OpAsmParser &parser, SmallVectorImpl< OpAsmParser::UnresolvedOperand > &values, DenseI64ArrayAttr &integers, SmallVectorImpl< Type > *valueTypes=nullptr, AsmParser::Delimiter delimiter=AsmParser::Delimiter::Square) |
ParseResult | parseDynamicIndexList (OpAsmParser &parser, SmallVectorImpl< OpAsmParser::UnresolvedOperand > &values, DenseI64ArrayAttr &integers, SmallVectorImpl< Type > &valueTypes, AsmParser::Delimiter delimiter=AsmParser::Delimiter::Square) |
ParseResult | parseDynamicIndexList (OpAsmParser &parser, SmallVectorImpl< OpAsmParser::UnresolvedOperand > &values, DenseI64ArrayAttr &integers, SmallVectorImpl< Type > &valueTypes, DenseBoolArrayAttr &scalableVals, AsmParser::Delimiter delimiter=AsmParser::Delimiter::Square) |
LogicalResult | verifyListOfOperandsOrIntegers (Operation *op, StringRef name, unsigned expectedNumElements, ArrayRef< int64_t > attr, ValueRange values) |
Verify that a the values has as many elements as the number of entries in attr for which isDynamic evaluates to true. More... | |
inline ::llvm::hash_code | hash_value (AffineExpr arg) |
Make AffineExpr hashable. More... | |
AffineExpr | operator+ (int64_t val, AffineExpr expr) |
AffineExpr | operator* (int64_t val, AffineExpr expr) |
AffineExpr | operator- (int64_t val, AffineExpr expr) |
AffineExpr | getAffineDimExpr (unsigned position, MLIRContext *context) |
These free functions allow clients of the API to not use classes in detail. More... | |
AffineExpr | getAffineSymbolExpr (unsigned position, MLIRContext *context) |
AffineExpr | getAffineConstantExpr (int64_t constant, MLIRContext *context) |
SmallVector< AffineExpr > | getAffineConstantExprs (ArrayRef< int64_t > constants, MLIRContext *context) |
AffineExpr | getAffineBinaryOpExpr (AffineExprKind kind, AffineExpr lhs, AffineExpr rhs) |
AffineExpr | getAffineExprFromFlatForm (ArrayRef< int64_t > flatExprs, unsigned numDims, unsigned numSymbols, ArrayRef< AffineExpr > localExprs, MLIRContext *context) |
Constructs an affine expression from a flat ArrayRef. More... | |
raw_ostream & | operator<< (raw_ostream &os, AffineExpr expr) |
AffineExpr | simplifyAffineExpr (AffineExpr expr, unsigned numDims, unsigned numSymbols) |
Simplify an affine expression by flattening and some amount of simple analysis. More... | |
template<typename... AffineExprTy> | |
void | bindDims (MLIRContext *ctx, AffineExprTy &...exprs) |
Bind a list of AffineExpr references to DimExpr at positions: [0 . More... | |
template<typename AffineExprTy > | |
void | bindDimsList (MLIRContext *ctx, MutableArrayRef< AffineExprTy > exprs) |
template<typename... AffineExprTy> | |
void | bindSymbols (MLIRContext *ctx, AffineExprTy &...exprs) |
Bind a list of AffineExpr references to SymbolExpr at positions: [0 . More... | |
template<typename AffineExprTy > | |
void | bindSymbolsList (MLIRContext *ctx, MutableArrayRef< AffineExprTy > exprs) |
std::optional< int64_t > | getBoundForAffineExpr (AffineExpr expr, unsigned numDims, unsigned numSymbols, ArrayRef< std::optional< int64_t >> constLowerBounds, ArrayRef< std::optional< int64_t >> constUpperBounds, bool isUpper) |
Get a lower or upper (depending on isUpper ) bound for expr while using the constant lower and upper bounds for its inputs provided in constLowerBounds and constUpperBounds . More... | |
inline ::llvm::hash_code | hash_value (AffineMap arg) |
AffineMap | simplifyAffineMap (AffineMap map) |
Simplifies an affine map by simplifying its underlying AffineExpr results. More... | |
AffineMap | compressDims (AffineMap map, const llvm::SmallBitVector &unusedDims) |
Drop the dims that are listed in unusedDims . More... | |
AffineMap | compressUnusedDims (AffineMap map) |
Drop the dims that are not used. More... | |
SmallVector< AffineMap > | compressUnusedDims (ArrayRef< AffineMap > maps) |
Drop the dims that are not used by any of the individual maps in maps . More... | |
AffineMap | compressSymbols (AffineMap map, const llvm::SmallBitVector &unusedSymbols) |
Drop the symbols that are listed in unusedSymbols . More... | |
AffineMap | compressUnusedSymbols (AffineMap map) |
Drop the symbols that are not used. More... | |
SmallVector< AffineMap > | compressUnusedSymbols (ArrayRef< AffineMap > maps) |
Drop the symbols that are not used by any of the individual maps in maps . More... | |
AffineMap | foldAttributesIntoMap (Builder &b, AffineMap map, ArrayRef< OpFoldResult > operands, SmallVector< Value > &remainingValues) |
Fold all attributes among the given operands into the affine map. More... | |
AffineMap | removeDuplicateExprs (AffineMap map) |
Returns a map with the same dimension and symbol count as map , but whose results are the unique affine expressions of map . More... | |
AffineMap | inversePermutation (AffineMap map) |
Returns a map of codomain to domain dimensions such that the first codomain dimension for a particular domain dimension is selected. More... | |
AffineMap | inverseAndBroadcastProjectedPermutation (AffineMap map) |
Return the reverse map of a projected permutation where the projected dimensions are transformed into 0s. More... | |
AffineMap | concatAffineMaps (ArrayRef< AffineMap > maps, MLIRContext *context) |
Concatenates a list of maps into a single AffineMap, stepping over potentially empty maps. More... | |
AffineMap | projectDims (AffineMap map, const llvm::SmallBitVector &projectedDimensions, bool compressDimsFlag=false) |
Returns the map that results from projecting out the dimensions specified in projectedDimensions . More... | |
AffineMap | projectSymbols (AffineMap map, const llvm::SmallBitVector &projectedSymbols, bool compressSymbolsFlag=false) |
Symbol counterpart of projectDims . More... | |
AffineMap | getProjectedMap (AffineMap map, const llvm::SmallBitVector &projectedDimensions, bool compressDimsFlag=true, bool compressSymbolsFlag=true) |
Calls projectDims(map, projectedDimensions, compressDimsFlag) . More... | |
llvm::SmallBitVector | getUnusedDimsBitVector (ArrayRef< AffineMap > maps) |
llvm::SmallBitVector | getUnusedSymbolsBitVector (ArrayRef< AffineMap > maps) |
AffineMap | expandDimsToRank (AffineMap map, int64_t rank, const llvm::SmallBitVector &projectedDimensions) |
Expand map to operate on rank dims while projecting out the dims in projectedDimensions . More... | |
raw_ostream & | operator<< (raw_ostream &os, AffineMap map) |
template<typename T > | |
SmallVector< T > | applyPermutationMap (AffineMap map, llvm::ArrayRef< T > source) |
Apply a permutation from map to source and return the result. More... | |
template<typename AffineExprContainer > | |
static void | getMaxDimAndSymbol (ArrayRef< AffineExprContainer > exprsList, int64_t &maxDim, int64_t &maxSym) |
Calculates maximum dimension and symbol positions from the expressions in exprsLists and stores them in maxDim and maxSym respectively. More... | |
StringRef | toString (AsmResourceEntryKind kind) |
void | registerAsmPrinterCLOptions () |
Register a set of useful command-line options that can be used to configure various flags within the AsmPrinter. More... | |
raw_ostream & | operator<< (raw_ostream &os, Attribute attr) |
inline ::llvm::hash_code | hash_value (Attribute arg) |
inline ::llvm::hash_code | hash_value (const NamedAttribute &arg) |
raw_ostream & | operator<< (raw_ostream &, Block &) |
bool | operator== (StringAttr lhs, std::nullptr_t) |
Define comparisons for StringAttr against nullptr and itself to avoid the StringRef overloads from being chosen when not desirable. More... | |
bool | operator!= (StringAttr lhs, std::nullptr_t) |
bool | operator== (StringAttr lhs, StringAttr rhs) |
bool | operator!= (StringAttr lhs, StringAttr rhs) |
bool | operator== (StringAttr lhs, StringRef rhs) |
Allow direct comparison with StringRef. More... | |
bool | operator!= (StringAttr lhs, StringRef rhs) |
bool | operator== (StringRef lhs, StringAttr rhs) |
bool | operator!= (StringRef lhs, StringAttr rhs) |
AffineMap | makeStridedLinearLayoutMap (ArrayRef< int64_t > strides, int64_t offset, MLIRContext *context) |
Given a list of strides (in which ShapedType::kDynamic represents a dynamic value), return the single result AffineMap which represents the linearized strided layout map. More... | |
std::optional< llvm::SmallDenseSet< unsigned > > | computeRankReductionMask (ArrayRef< int64_t > originalShape, ArrayRef< int64_t > reducedShape, bool matchDynamic=false) |
Given an originalShape and a reducedShape assumed to be a subset of originalShape with some 1 entries erased, return the set of indices that specifies which of the entries of originalShape are dropped to obtain reducedShape . More... | |
SliceVerificationResult | isRankReducedType (ShapedType originalType, ShapedType candidateReducedType) |
Check if originalType can be rank reduced to candidateReducedType type by dropping some dimensions with static size 1 . More... | |
LogicalResult | getStridesAndOffset (MemRefType t, SmallVectorImpl< int64_t > &strides, int64_t &offset) |
Returns the strides of the MemRef if the layout map is in strided form. More... | |
std::pair< SmallVector< int64_t >, int64_t > | getStridesAndOffset (MemRefType t) |
Wrapper around getStridesAndOffset(MemRefType, SmallVectorImpl<int64_t>, int64_t) that will assert if the logical result is not succeeded. More... | |
MemRefType | canonicalizeStridedLayout (MemRefType t) |
Return a version of t with identity layout if it can be determined statically that the layout is the canonical contiguous strided layout. More... | |
AffineExpr | makeCanonicalStridedLayoutExpr (ArrayRef< int64_t > sizes, ArrayRef< AffineExpr > exprs, MLIRContext *context) |
Given MemRef sizes that are either static or dynamic, returns the canonical "contiguous" strides AffineExpr. More... | |
AffineExpr | makeCanonicalStridedLayoutExpr (ArrayRef< int64_t > sizes, MLIRContext *context) |
Return the result of makeCanonicalStrudedLayoutExpr for the common case where exprs is {d0, d1, .., d_(sizes.size()-1)}. More... | |
bool | isStrided (MemRefType t) |
Return "true" if the layout for t is compatible with strided semantics. More... | |
bool | isLastMemrefDimUnitStride (MemRefType type) |
Return "true" if the last dimension of the given type has a static unit stride. More... | |
bool | trailingNDimsContiguous (MemRefType type, int64_t n) |
Return "true" if the last N dimensions of the given type are contiguous. More... | |
raw_ostream & | operator<< (raw_ostream &os, const DiagnosticArgument &arg) |
raw_ostream & | operator<< (raw_ostream &os, const Diagnostic &diag) |
InFlightDiagnostic | emitError (Location loc) |
Utility method to emit an error message using this location. More... | |
InFlightDiagnostic | emitError (Location loc, const Twine &message) |
InFlightDiagnostic | emitWarning (Location loc) |
Utility method to emit a warning message using this location. More... | |
InFlightDiagnostic | emitWarning (Location loc, const Twine &message) |
InFlightDiagnostic | emitRemark (Location loc) |
Utility method to emit a remark message using this location. More... | |
InFlightDiagnostic | emitRemark (Location loc, const Twine &message) |
template<typename... Args> | |
LogicalResult | emitOptionalError (std::optional< Location > loc, Args &&...args) |
Overloads of the above emission functions that take an optionally null location. More... | |
template<typename... Args> | |
LogicalResult | emitOptionalWarning (std::optional< Location > loc, Args &&...args) |
template<typename... Args> | |
LogicalResult | emitOptionalRemark (std::optional< Location > loc, Args &&...args) |
inline ::llvm::hash_code | hash_value (IntegerSet arg) |
raw_ostream & | operator<< (raw_ostream &os, const Location &loc) |
inline ::llvm::hash_code | hash_value (Location arg) |
detail::constant_op_matcher | m_Constant () |
Matches a constant foldable operation. More... | |
detail::AttrOpMatcher | m_Attr (StringRef attrName) |
Matches a named attribute operation. More... | |
detail::NameOpMatcher | m_Op (StringRef opName) |
Matches a named operation. More... | |
template<typename AttrT > | |
detail::constant_op_binder< AttrT > | m_Constant (AttrT *bind_value) |
Matches a value from a constant foldable operation and writes the value to bind_value. More... | |
template<typename AttrT > | |
detail::AttrOpBinder< AttrT > | m_Attr (StringRef attrName, AttrT *bindValue) |
Matches a named attribute operation and writes the value to bind_value. More... | |
detail::constant_float_predicate_matcher | m_AnyZeroFloat () |
Matches a constant scalar / vector splat / tensor splat float (both positive and negative) zero. More... | |
detail::constant_float_predicate_matcher | m_PosZeroFloat () |
Matches a constant scalar / vector splat / tensor splat float positive zero. More... | |
detail::constant_float_predicate_matcher | m_NegZeroFloat () |
Matches a constant scalar / vector splat / tensor splat float negative zero. More... | |
detail::constant_float_predicate_matcher | m_OneFloat () |
Matches a constant scalar / vector splat / tensor splat float ones. More... | |
detail::constant_float_predicate_matcher | m_NaNFloat () |
Matches a constant scalar / vector splat / tensor splat float ones. More... | |
detail::constant_float_predicate_matcher | m_PosInfFloat () |
Matches a constant scalar / vector splat / tensor splat float positive infinity. More... | |
detail::constant_float_predicate_matcher | m_NegInfFloat () |
Matches a constant scalar / vector splat / tensor splat float negative infinity. More... | |
detail::constant_float_predicate_matcher | m_isDenormalFloat () |
Matches a constant scalar / vector splat / tensor splat with denormal values. More... | |
detail::constant_int_predicate_matcher | m_Zero () |
Matches a constant scalar / vector splat / tensor splat integer zero. More... | |
detail::constant_int_predicate_matcher | m_NonZero () |
Matches a constant scalar / vector splat / tensor splat integer that is any non-zero value. More... | |
detail::constant_int_range_predicate_matcher | m_IntRangeWithoutZeroU () |
Matches a constant scalar / vector splat / tensor splat integer or a unsigned integer range that does not contain zero. More... | |
detail::constant_int_range_predicate_matcher | m_IntRangeWithoutZeroS () |
Matches a constant scalar / vector splat / tensor splat integer or a signed integer range that does not contain zero. More... | |
detail::constant_int_range_predicate_matcher | m_IntRangeWithoutNegOneS () |
Matches a constant scalar / vector splat / tensor splat integer or a signed integer range that does not contain minus one. More... | |
detail::constant_int_predicate_matcher | m_One () |
Matches a constant scalar / vector splat / tensor splat integer one. More... | |
template<typename OpClass > | |
detail::op_matcher< OpClass > | m_Op () |
Matches the given OpClass. More... | |
template<typename Pattern > | |
bool | matchPattern (Value value, const Pattern &pattern) |
Entry point for matching a pattern over a Value. More... | |
template<typename Pattern > | |
bool | matchPattern (Operation *op, const Pattern &pattern) |
Entry point for matching a pattern over an Operation. More... | |
template<typename Pattern > | |
bool | matchPattern (Attribute attr, const Pattern &pattern) |
Entry point for matching a pattern over an Attribute. More... | |
detail::constant_float_value_binder | m_ConstantFloat (FloatAttr::ValueType *bind_value) |
Matches a constant holding a scalar/vector/tensor float (splat) and writes the float value to bind_value. More... | |
detail::constant_int_value_binder | m_ConstantInt (IntegerAttr::ValueType *bind_value) |
Matches a constant holding a scalar/vector/tensor integer (splat) and writes the integer value to bind_value. More... | |
template<typename OpType , typename... Matchers> | |
auto | m_Op (Matchers... matchers) |
void | registerMLIRContextCLOptions () |
Register a set of useful command-line options that can be used to configure various flags within the MLIRContext. More... | |
LogicalResult | convertFromAttribute (int64_t &storage, Attribute attr, function_ref< InFlightDiagnostic()> emitError) |
Convert an IntegerAttr attribute to an int64_t, or return an error if the attribute isn't an IntegerAttr. More... | |
Attribute | convertToAttribute (MLIRContext *ctx, int64_t storage) |
Convert the provided int64_t to an IntegerAttr attribute. More... | |
LogicalResult | convertFromAttribute (int32_t &storage, Attribute attr, function_ref< InFlightDiagnostic()> emitError) |
Convert an IntegerAttr attribute to an int32_t, or return an error if the attribute isn't an IntegerAttr. More... | |
Attribute | convertToAttribute (MLIRContext *ctx, int32_t storage) |
Convert the provided int32_t to an IntegerAttr attribute. More... | |
LogicalResult | convertFromAttribute (std::string &storage, Attribute attr, function_ref< InFlightDiagnostic()> emitError) |
Extract the string from attr into storage . More... | |
Attribute | convertToAttribute (MLIRContext *ctx, const std::string &storage) |
Convert the given string into a StringAttr. More... | |
LogicalResult | convertFromAttribute (bool &storage, Attribute attr, function_ref< InFlightDiagnostic()> emitError) |
Extract the boolean from attr into storage . More... | |
Attribute | convertToAttribute (MLIRContext *ctx, bool storage) |
Convert the given string into a BooleanAttr. More... | |
LogicalResult | convertFromAttribute (MutableArrayRef< int64_t > storage, Attribute attr, function_ref< InFlightDiagnostic()> emitError) |
Convert a DenseI64ArrayAttr to the provided storage. More... | |
LogicalResult | convertFromAttribute (MutableArrayRef< int32_t > storage, Attribute attr, function_ref< InFlightDiagnostic()> emitError) |
Convert a DenseI32ArrayAttr to the provided storage. More... | |
LogicalResult | convertFromAttribute (SmallVectorImpl< int64_t > &storage, Attribute attr, function_ref< InFlightDiagnostic()> emitError) |
Convert a DenseI64ArrayAttr to the provided storage, which will be cleared before writing. More... | |
LogicalResult | convertFromAttribute (SmallVectorImpl< int32_t > &storage, Attribute attr, function_ref< InFlightDiagnostic()> emitError) |
Convert a DenseI32ArrayAttr to the provided storage, which will be cleared before writing. More... | |
Attribute | convertToAttribute (MLIRContext *ctx, ArrayRef< int64_t > storage) |
Convert the provided ArrayRef<int64_t> to a DenseI64ArrayAttr attribute. More... | |
bool | operator== (OpState lhs, OpState rhs) |
bool | operator!= (OpState lhs, OpState rhs) |
raw_ostream & | operator<< (raw_ostream &os, OpFoldResult ofr) |
Allow printing to a stream. More... | |
raw_ostream & | operator<< (raw_ostream &os, OpState op) |
Allow printing to a stream. More... | |
raw_ostream & | operator<< (raw_ostream &os, const Operation &op) |
raw_ostream & | operator<< (raw_ostream &os, OperationName info) |
llvm::hash_code | hash_value (OperationName arg) |
LLVM_ENABLE_BITMASK_ENUMS_IN_NAMESPACE () | |
Enable Bitmask enums for OperationEquivalence::Flags. More... | |
llvm::hash_code | hash_value (const AsmDialectResourceHandle ¶m) |
template<typename AsmPrinterT > | |
std::enable_if_t< std::is_base_of< AsmPrinter, AsmPrinterT >::value, AsmPrinterT & > | operator<< (AsmPrinterT &p, Type type) |
template<typename AsmPrinterT > | |
std::enable_if_t< std::is_base_of< AsmPrinter, AsmPrinterT >::value, AsmPrinterT & > | operator<< (AsmPrinterT &p, Attribute attr) |
template<typename AsmPrinterT > | |
std::enable_if_t< std::is_base_of< AsmPrinter, AsmPrinterT >::value, AsmPrinterT & > | operator<< (AsmPrinterT &p, const APFloat &value) |
template<typename AsmPrinterT > | |
std::enable_if_t< std::is_base_of< AsmPrinter, AsmPrinterT >::value, AsmPrinterT & > | operator<< (AsmPrinterT &p, float value) |
template<typename AsmPrinterT > | |
std::enable_if_t< std::is_base_of< AsmPrinter, AsmPrinterT >::value, AsmPrinterT & > | operator<< (AsmPrinterT &p, double value) |
template<typename AsmPrinterT , typename T , std::enable_if_t<!std::is_convertible< T &, Value & >::value &&!std::is_convertible< T &, Type & >::value &&!std::is_convertible< T &, Attribute & >::value &&!std::is_convertible< T &, ValueRange >::value &&!std::is_convertible< T &, APFloat & >::value &&!llvm::is_one_of< T, bool, float, double >::value, T > * = nullptr> | |
std::enable_if_t< std::is_base_of< AsmPrinter, AsmPrinterT >::value, AsmPrinterT & > | operator<< (AsmPrinterT &p, const T &other) |
template<typename AsmPrinterT > | |
std::enable_if_t< std::is_base_of< AsmPrinter, AsmPrinterT >::value, AsmPrinterT & > | operator<< (AsmPrinterT &p, bool value) |
template<typename AsmPrinterT , typename ValueRangeT > | |
std::enable_if_t< std::is_base_of< AsmPrinter, AsmPrinterT >::value, AsmPrinterT & > | operator<< (AsmPrinterT &p, const ValueTypeRange< ValueRangeT > &types) |
template<typename AsmPrinterT > | |
std::enable_if_t< std::is_base_of< AsmPrinter, AsmPrinterT >::value, AsmPrinterT & > | operator<< (AsmPrinterT &p, const TypeRange &types) |
template<typename AsmPrinterT , typename T > | |
std::enable_if_t< std::is_same< AsmPrinter, AsmPrinterT >::value &&std::is_convertible< T &, ValueRange >::value, AsmPrinterT & > | operator<< (AsmPrinterT &p, const T &other)=delete |
template<typename AsmPrinterT , typename ElementT > | |
std::enable_if_t< std::is_base_of< AsmPrinter, AsmPrinterT >::value, AsmPrinterT & > | operator<< (AsmPrinterT &p, ArrayRef< ElementT > types) |
OpAsmPrinter & | operator<< (OpAsmPrinter &p, Value value) |
template<typename T , std::enable_if_t< std::is_convertible< T &, ValueRange >::value &&!std::is_convertible< T &, Value & >::value, T > * = nullptr> | |
OpAsmPrinter & | operator<< (OpAsmPrinter &p, const T &values) |
OpAsmPrinter & | operator<< (OpAsmPrinter &p, Block *value) |
void | printDimensionList (OpAsmPrinter &printer, Operation *op, ArrayRef< int64_t > dimensions) |
ParseResult | parseDimensionList (OpAsmParser &parser, DenseI64ArrayAttr &dimensions) |
bool | mayHaveSSADominance (Region ®ion) |
Return "true" if the given region may have SSA dominance. More... | |
bool | mayBeGraphRegion (Region ®ion) |
Return "true" if the given region may be a graph region without SSA dominance. More... | |
raw_ostream & | operator<< (raw_ostream &os, SymbolTable::Visibility visibility) |
template<typename IteratorT , typename FuncT > | |
LogicalResult | failableParallelForEach (MLIRContext *context, IteratorT begin, IteratorT end, FuncT &&func) |
Invoke the given function on the elements between [begin, end) asynchronously. More... | |
template<typename RangeT , typename FuncT > | |
LogicalResult | failableParallelForEach (MLIRContext *context, RangeT &&range, FuncT &&func) |
Invoke the given function on the elements in the provided range asynchronously. More... | |
template<typename FuncT > | |
LogicalResult | failableParallelForEachN (MLIRContext *context, size_t begin, size_t end, FuncT &&func) |
Invoke the given function on the elements between [begin, end) asynchronously. More... | |
template<typename IteratorT , typename FuncT > | |
void | parallelForEach (MLIRContext *context, IteratorT begin, IteratorT end, FuncT &&func) |
Invoke the given function on the elements between [begin, end) asynchronously. More... | |
template<typename RangeT , typename FuncT > | |
void | parallelForEach (MLIRContext *context, RangeT &&range, FuncT &&func) |
Invoke the given function on the elements in the provided range asynchronously. More... | |
template<typename FuncT > | |
void | parallelFor (MLIRContext *context, size_t begin, size_t end, FuncT &&func) |
Invoke the given function on the elements between [begin, end) asynchronously. More... | |
inline ::llvm::hash_code | hash_value (TypeRange arg) |
Make TypeRange hashable. More... | |
raw_ostream & | operator<< (raw_ostream &os, const TypeRange &types) |
Emit a type range to the given output stream. More... | |
template<typename RangeT > | |
bool | operator== (ArrayRef< Type > lhs, const ValueTypeRange< RangeT > &rhs) |
raw_ostream & | operator<< (raw_ostream &os, Type type) |
inline ::llvm::hash_code | hash_value (Type arg) |
Type | getElementTypeOrSelf (Type type) |
Return the element type or return the type itself. More... | |
Type | getElementTypeOrSelf (Attribute attr) |
Return the element type or return the type itself. More... | |
Type | getElementTypeOrSelf (Value val) |
SmallVector< Type, 10 > | getFlattenedTypes (TupleType t) |
Get the types within a nested Tuple. More... | |
bool | isOpaqueTypeWithName (Type type, StringRef dialect, StringRef typeData) |
Return true if the specified type is an opaque type with the specified dialect and typeData. More... | |
LogicalResult | verifyCompatibleShape (ArrayRef< int64_t > shape1, ArrayRef< int64_t > shape2) |
Returns success if the given two shapes are compatible. More... | |
LogicalResult | verifyCompatibleShape (Type type1, Type type2) |
Returns success if the given two types have compatible shape. More... | |
LogicalResult | verifyCompatibleShapes (TypeRange types1, TypeRange types2) |
Returns success if the given two arrays have the same number of elements and each pair wise entries have compatible shape. More... | |
LogicalResult | verifyCompatibleShapes (TypeRange types) |
Returns success if all given types have compatible shapes. More... | |
LogicalResult | verifyCompatibleDims (ArrayRef< int64_t > dims) |
Dimensions are compatible if all non-dynamic dims are equal. More... | |
TypeRange | insertTypesInto (TypeRange oldTypes, ArrayRef< unsigned > indices, TypeRange newTypes, SmallVectorImpl< Type > &storage) |
Insert a set of newTypes into oldTypes at the given indices . More... | |
TypeRange | filterTypesOut (TypeRange types, const BitVector &indices, SmallVectorImpl< Type > &storage) |
Filters out any elements referenced by indices . More... | |
raw_ostream & | operator<< (raw_ostream &os, const IRUnit &unit) |
raw_ostream & | operator<< (raw_ostream &os, Value value) |
inline ::llvm::hash_code | hash_value (Value arg) |
Make Value hashable. More... | |
LogicalResult | verify (Operation *op, bool verifyRecursively=true) |
Perform (potentially expensive) checks of invariants, used to detect compiler bugs, on this operation and any nested operations. More... | |
LogicalResult | parseSourceFile (const llvm::SourceMgr &sourceMgr, Block *block, const ParserConfig &config, LocationAttr *sourceFileLoc=nullptr) |
This parses the file specified by the indicated SourceMgr and appends parsed operations to the given block. More... | |
LogicalResult | parseSourceFile (const std::shared_ptr< llvm::SourceMgr > &sourceMgr, Block *block, const ParserConfig &config, LocationAttr *sourceFileLoc=nullptr) |
An overload with a source manager that may have references taken during the parsing process, and whose lifetime can be freely extended (such that the source manager is not destroyed before the parsed IR). More... | |
LogicalResult | parseSourceFile (llvm::StringRef filename, Block *block, const ParserConfig &config, LocationAttr *sourceFileLoc=nullptr) |
This parses the file specified by the indicated filename and appends parsed operations to the given block. More... | |
LogicalResult | parseSourceFile (llvm::StringRef filename, llvm::SourceMgr &sourceMgr, Block *block, const ParserConfig &config, LocationAttr *sourceFileLoc=nullptr) |
This parses the file specified by the indicated filename using the provided SourceMgr and appends parsed operations to the given block. More... | |
LogicalResult | parseSourceFile (llvm::StringRef filename, const std::shared_ptr< llvm::SourceMgr > &sourceMgr, Block *block, const ParserConfig &config, LocationAttr *sourceFileLoc=nullptr) |
An overload with a source manager that may have references taken during the parsing process, and whose lifetime can be freely extended (such that the source manager is not destroyed before the parsed IR). More... | |
LogicalResult | parseSourceString (llvm::StringRef sourceStr, Block *block, const ParserConfig &config, StringRef sourceName="", LocationAttr *sourceFileLoc=nullptr) |
This parses the IR string and appends parsed operations to the given block. More... | |
template<typename ContainerOpT = Operation *> | |
OwningOpRef< ContainerOpT > | parseSourceFile (const llvm::SourceMgr &sourceMgr, const ParserConfig &config) |
This parses the file specified by the indicated SourceMgr. More... | |
template<typename ContainerOpT = Operation *> | |
OwningOpRef< ContainerOpT > | parseSourceFile (const std::shared_ptr< llvm::SourceMgr > &sourceMgr, const ParserConfig &config) |
An overload with a source manager that may have references taken during the parsing process, and whose lifetime can be freely extended (such that the source manager is not destroyed before the parsed IR). More... | |
template<typename ContainerOpT = Operation *> | |
OwningOpRef< ContainerOpT > | parseSourceFile (StringRef filename, const ParserConfig &config) |
This parses the file specified by the indicated filename. More... | |
template<typename ContainerOpT = Operation *> | |
OwningOpRef< ContainerOpT > | parseSourceFile (llvm::StringRef filename, llvm::SourceMgr &sourceMgr, const ParserConfig &config) |
This parses the file specified by the indicated filename using the provided SourceMgr. More... | |
template<typename ContainerOpT = Operation *> | |
OwningOpRef< ContainerOpT > | parseSourceFile (llvm::StringRef filename, const std::shared_ptr< llvm::SourceMgr > &sourceMgr, const ParserConfig &config) |
An overload with a source manager that may have references taken during the parsing process, and whose lifetime can be freely extended (such that the source manager is not destroyed before the parsed IR). More... | |
template<typename ContainerOpT = Operation *> | |
OwningOpRef< ContainerOpT > | parseSourceString (llvm::StringRef sourceStr, const ParserConfig &config, StringRef sourceName="") |
This parses the provided string containing MLIR. More... | |
std::string | makeReproducer (StringRef anchorName, const llvm::iterator_range< OpPassManager::pass_iterator > &passes, Operation *op, StringRef outputFile, bool disableThreads=false, bool verifyPasses=false) |
void | registerPassManagerCLOptions () |
Register a set of useful command-line options that can be used to configure a pass manager. More... | |
LogicalResult | applyPassManagerCLOptions (PassManager &pm) |
Apply any values provided to the pass manager options that were registered with 'registerPassManagerOptions'. More... | |
void | applyDefaultTimingPassManagerCLOptions (PassManager &pm) |
Apply any values provided to the timing manager options that were registered with registerDefaultTimingManagerOptions . More... | |
void | printRegisteredPasses () |
Prints the passes that were previously registered and stored in passRegistry. More... | |
void | registerPassPipeline (StringRef arg, StringRef description, const PassRegistryFunction &function, std::function< void(function_ref< void(const detail::PassOptions &)>)> optHandler) |
Register a specific dialect pipeline registry function with the system, typically used through the PassPipelineRegistration template. More... | |
void | registerPass (const PassAllocatorFunction &function) |
Register a specific dialect pass allocator function with the system, typically used through the PassRegistration template. More... | |
LogicalResult | parsePassPipeline (StringRef pipeline, OpPassManager &pm, raw_ostream &errorStream=llvm::errs()) |
Parse the textual representation of a pass pipeline, adding the result to 'pm' on success. More... | |
FailureOr< OpPassManager > | parsePassPipeline (StringRef pipeline, raw_ostream &errorStream=llvm::errs()) |
Parse the given textual representation of a pass pipeline, and return the parsed pipeline on success. More... | |
std::unique_ptr< Pass > | createReductionTreePass () |
std::unique_ptr< Pass > | createOptReductionPass () |
template<typename T > | |
static std::string | debugString (T &&op) |
std::unique_ptr< llvm::MemoryBuffer > | openInputFile (llvm::StringRef inputFilename, std::string *errorMessage=nullptr) |
Open the file specified by its name for reading. More... | |
std::unique_ptr< llvm::MemoryBuffer > | openInputFile (llvm::StringRef inputFilename, llvm::Align alignment, std::string *errorMessage=nullptr) |
Open the file specified by its name for reading, with the given buffer alignment constraint. More... | |
std::unique_ptr< llvm::ToolOutputFile > | openOutputFile (llvm::StringRef outputFilename, std::string *errorMessage=nullptr) |
Open the file specified by its name for writing. More... | |
llvm::raw_ostream & | thread_safe_nulls () |
Returns a raw output stream that simply discards the output, but in a thread-safe manner. More... | |
void | registerDefaultTimingManagerCLOptions () |
Register a set of useful command-line options that can be used to configure a DefaultTimingManager . More... | |
void | applyDefaultTimingManagerCLOptions (DefaultTimingManager &tm) |
Apply any values that were registered with 'registerDefaultTimingManagerOptions' to a DefaultTimingManager . More... | |
LogicalResult | splitAndProcessBuffer (std::unique_ptr< llvm::MemoryBuffer > originalBuffer, ChunkBufferHandler processChunkBuffer, raw_ostream &os, llvm::StringRef inputSplitMarker=kDefaultSplitMarker, llvm::StringRef outputSplitMarker="") |
Splits the specified buffer on a marker (// ----- by default), processes each chunk independently according to the normal processChunkBuffer logic, and writes all results to os . More... | |
inline ::llvm::hash_code | hash_value (TypeID id) |
Enable hashing TypeID. More... | |
static void | registerAllToLLVMIRTranslations (DialectRegistry ®istry) |
Registers all dialects that can be translated to LLVM IR and the corresponding translation interfaces. More... | |
static void | registerAllGPUToLLVMIRTranslations (DialectRegistry ®istry) |
Registers all the translations to LLVM IR required by GPU passes. More... | |
static void | registerAllFromLLVMIRTranslations (DialectRegistry ®istry) |
Registers all dialects that can be translated from LLVM IR and the corresponding translation interfaces. More... | |
void | registerAMXDialectTranslation (DialectRegistry ®istry) |
Register the AMX dialect and the translation from it to the LLVM IR in the given registry;. More... | |
void | registerAMXDialectTranslation (MLIRContext &context) |
Register the AMX dialect and the translation from it in the registry associated with the given context. More... | |
void | registerArmNeonDialectTranslation (DialectRegistry ®istry) |
Register the ArmNeon dialect and the translation from it to the LLVM IR in the given registry;. More... | |
void | registerArmNeonDialectTranslation (MLIRContext &context) |
Register the ArmNeon dialect and the translation from it in the registry associated with the given context. More... | |
void | registerArmSMEDialectTranslation (DialectRegistry ®istry) |
Register the ArmSME dialect and the translation from it to the LLVM IR in the given registry;. More... | |
void | registerArmSMEDialectTranslation (MLIRContext &context) |
Register the ArmSME dialect and the translation from it in the registry associated with the given context. More... | |
void | registerArmSVEDialectTranslation (DialectRegistry ®istry) |
Register the ArmSVE dialect and the translation from it to the LLVM IR in the given registry;. More... | |
void | registerArmSVEDialectTranslation (MLIRContext &context) |
Register the ArmSVE dialect and the translation from it in the registry associated with the given context. More... | |
void | registerBuiltinDialectTranslation (DialectRegistry ®istry) |
Register the translation from the builtin dialect to the LLVM IR in the given registry. More... | |
void | registerBuiltinDialectTranslation (MLIRContext &context) |
Register the translation from the builtin dialect in the registry associated with the given context. More... | |
void | registerGPUDialectTranslation (DialectRegistry ®istry) |
Register the GPU dialect and the translation from it to the LLVM IR in the given registry;. More... | |
void | registerGPUDialectTranslation (MLIRContext &context) |
Register the GPU dialect and the translation from it in the registry associated with the given context. More... | |
void | registerLLVMDialectImport (DialectRegistry ®istry) |
Registers the LLVM dialect and its import from LLVM IR in the given registry. More... | |
void | registerLLVMDialectImport (MLIRContext &context) |
Registers the LLVM dialect and its import from LLVM IR with the given context. More... | |
void | registerLLVMDialectTranslation (DialectRegistry ®istry) |
Register the LLVM dialect and the translation from it to the LLVM IR in the given registry;. More... | |
void | registerLLVMDialectTranslation (MLIRContext &context) |
Register the LLVM dialect and the translation from it in the registry associated with the given context. More... | |
void | registerNVVMDialectImport (DialectRegistry ®istry) |
Registers the NVVM dialect and its import from LLVM IR in the given registry. More... | |
void | registerNVVMDialectImport (MLIRContext &context) |
Registers the NVVM dialect and its import from LLVM IR with the given context. More... | |
void | registerNVVMDialectTranslation (DialectRegistry ®istry) |
Register the NVVM dialect and the translation from it to the LLVM IR in the given registry;. More... | |
void | registerNVVMDialectTranslation (MLIRContext &context) |
Register the NVVM dialect and the translation from it in the registry associated with the given context. More... | |
void | registerOpenACCDialectTranslation (DialectRegistry ®istry) |
Register the OpenACC dialect and the translation to the LLVM IR in the given registry;. More... | |
void | registerOpenACCDialectTranslation (MLIRContext &context) |
Register the OpenACC dialect and the translation in the registry associated with the given context. More... | |
void | registerOpenMPDialectTranslation (DialectRegistry ®istry) |
Register the OpenMP dialect and the translation from it to the LLVM IR in the given registry;. More... | |
void | registerOpenMPDialectTranslation (MLIRContext &context) |
Register the OpenMP dialect and the translation from it in the registry associated with the given context. More... | |
void | registerROCDLDialectTranslation (DialectRegistry ®istry) |
Register the ROCDL dialect and the translation from it to the LLVM IR in the given registry;. More... | |
void | registerROCDLDialectTranslation (MLIRContext &context) |
Register the ROCDL dialect and the translation from it in the registry associated with the given context. More... | |
void | registerSPIRVDialectTranslation (DialectRegistry ®istry) |
Register the SPIR-V dialect and the translation from it to the LLVM IR in the given registry;. More... | |
void | registerSPIRVDialectTranslation (MLIRContext &context) |
Register the SPIR-V dialect and the translation from it in the registry associated with the given context. More... | |
void | registerVCIXDialectTranslation (DialectRegistry ®istry) |
Register the VCIX dialect and the translation from it to the LLVM IR in the given registry. More... | |
void | registerVCIXDialectTranslation (MLIRContext &context) |
Register the VCIX dialect and the translation from it in the registry associated with the given context. More... | |
void | registerX86VectorDialectTranslation (DialectRegistry ®istry) |
Register the X86Vector dialect and the translation from it to the LLVM IR in the given registry;. More... | |
void | registerX86VectorDialectTranslation (MLIRContext &context) |
Register the X86Vector dialect and the translation from it in the registry associated with the given context. More... | |
std::unique_ptr< llvm::Module > | translateModuleToLLVMIR (Operation *module, llvm::LLVMContext &llvmContext, llvm::StringRef name="LLVMDialectModule", bool disableVerification=false) |
Translates a given LLVM dialect module into an LLVM IR module living in the given context. More... | |
OwningOpRef< ModuleOp > | translateLLVMIRToModule (std::unique_ptr< llvm::Module > llvmModule, MLIRContext *context, bool emitExpensiveWarnings=true, bool dropDICompositeTypeElements=false) |
Translates the LLVM module into an MLIR module living in the given context. More... | |
DataLayoutSpecInterface | translateDataLayout (const llvm::DataLayout &dataLayout, MLIRContext *context) |
Translate the given LLVM data layout into an MLIR equivalent using the DLTI dialect. More... | |
llvm::LogicalResult | MlirLspServerMain (int argc, char **argv, DialectRegistry ®istry) |
Implementation for tools like mlir-lsp-server . More... | |
std::pair< std::string, std::string > | registerAndParseCLIOptions (int argc, char **argv, llvm::StringRef toolName, DialectRegistry ®istry) |
Register and parse command line options. More... | |
LogicalResult | MlirOptMain (llvm::raw_ostream &outputStream, std::unique_ptr< llvm::MemoryBuffer > buffer, DialectRegistry ®istry, const MlirOptMainConfig &config) |
Perform the core processing behind mlir-opt . More... | |
LogicalResult | MlirOptMain (int argc, char **argv, llvm::StringRef toolName, DialectRegistry ®istry) |
Implementation for tools like mlir-opt . More... | |
LogicalResult | MlirOptMain (int argc, char **argv, llvm::StringRef inputFilename, llvm::StringRef outputFilename, DialectRegistry ®istry) |
Implementation for tools like mlir-opt . More... | |
int | asMainReturnCode (LogicalResult r) |
Helper wrapper to return the result of MlirOptMain directly from main. More... | |
llvm::LogicalResult | MlirPdllLspServerMain (int argc, char **argv) |
Implementation for tools like mlir-pdll-lsp-server . More... | |
LogicalResult | mlirQueryMain (int argc, char **argv, MLIRContext &context, const mlir::query::matcher::Registry &matcherRegistry) |
LogicalResult | mlirReduceMain (int argc, char **argv, MLIRContext &context) |
int | MlirTblgenMain (int argc, char **argv) |
Main Program for tools like 'mlir-tblgen' with custom backends. More... | |
LogicalResult | mlirTranslateMain (int argc, char **argv, StringRef toolName) |
Translate to/from an MLIR module from/to an external representation (e.g. More... | |
void | registerTranslationCLOptions () |
Register command-line options used by the translation registry. More... | |
OwningOpRef< Operation * > | parseSourceFileForTool (const std::shared_ptr< llvm::SourceMgr > &sourceMgr, const ParserConfig &config, bool insertImplicitModule) |
This parses the file specified by the indicated SourceMgr. More... | |
llvm::LogicalResult | TableGenLspServerMain (int argc, char **argv) |
Implementation for tools like tblgen-lsp-server . More... | |
FailureOr< bool > | transformCFGToSCF (Region ®ion, CFGToSCFInterface &interface, DominanceInfo &dominanceInfo) |
Transformation lifting any dialect implementing control flow graph operations to a dialect implementing structured control flow operations. More... | |
void | populateCommutativityUtilsPatterns (RewritePatternSet &patterns) |
Populates the commutativity utility patterns. More... | |
size_t | controlFlowSink (RegionRange regions, DominanceInfo &domInfo, function_ref< bool(Operation *, Region *)> shouldMoveIntoRegion, function_ref< void(Operation *, Region *)> moveIntoRegion) |
Given a list of regions, perform control flow sinking on them. More... | |
void | getSinglyExecutedRegionsToSink (RegionBranchOpInterface branch, SmallVectorImpl< Region * > ®ions) |
Populates regions with regions of the provided region branch op that are executed at most once at that are reachable given the current operands of the op. More... | |
void | eliminateCommonSubExpressions (RewriterBase &rewriter, DominanceInfo &domInfo, Operation *op, bool *changed=nullptr) |
Eliminate common subexpressions within the given operation. More... | |
FailureOr< Operation * > | convertOpResultTypes (Operation *op, ValueRange operands, const TypeConverter &converter, ConversionPatternRewriter &rewriter) |
Generic utility to convert op result types according to type converter without knowing exact op type. More... | |
void | populateFunctionOpInterfaceTypeConversionPattern (StringRef functionLikeOpName, RewritePatternSet &patterns, const TypeConverter &converter) |
Add a pattern to the given pattern list to convert the signature of a FunctionOpInterface op with the given type converter. More... | |
template<typename FuncOpT > | |
void | populateFunctionOpInterfaceTypeConversionPattern (RewritePatternSet &patterns, const TypeConverter &converter) |
void | populateAnyFunctionOpInterfaceTypeConversionPattern (RewritePatternSet &patterns, const TypeConverter &converter) |
void | registerConversionPDLFunctions (RewritePatternSet &patterns) |
Register the dialect conversion PDL functions with the given pattern set. More... | |
void | reconcileUnrealizedCasts (ArrayRef< UnrealizedConversionCastOp > castOps, SmallVectorImpl< UnrealizedConversionCastOp > *remainingCastOps=nullptr) |
Try to reconcile all given UnrealizedConversionCastOps and store the left-over ops in remainingCastOps (if provided). More... | |
LogicalResult | applyPartialConversion (ArrayRef< Operation * > ops, const ConversionTarget &target, const FrozenRewritePatternSet &patterns, ConversionConfig config=ConversionConfig()) |
Below we define several entry points for operation conversion. More... | |
LogicalResult | applyPartialConversion (Operation *op, const ConversionTarget &target, const FrozenRewritePatternSet &patterns, ConversionConfig config=ConversionConfig()) |
LogicalResult | applyFullConversion (ArrayRef< Operation * > ops, const ConversionTarget &target, const FrozenRewritePatternSet &patterns, ConversionConfig config=ConversionConfig()) |
Apply a complete conversion on the given operations, and all nested operations. More... | |
LogicalResult | applyFullConversion (Operation *op, const ConversionTarget &target, const FrozenRewritePatternSet &patterns, ConversionConfig config=ConversionConfig()) |
LogicalResult | applyAnalysisConversion (ArrayRef< Operation * > ops, ConversionTarget &target, const FrozenRewritePatternSet &patterns, ConversionConfig config=ConversionConfig()) |
Apply an analysis conversion on the given operations, and all nested operations. More... | |
LogicalResult | applyAnalysisConversion (Operation *op, ConversionTarget &target, const FrozenRewritePatternSet &patterns, ConversionConfig config=ConversionConfig()) |
LogicalResult | applyPatternsAndFoldGreedily (Region ®ion, const FrozenRewritePatternSet &patterns, GreedyRewriteConfig config=GreedyRewriteConfig(), bool *changed=nullptr) |
Rewrite ops in the given region, which must be isolated from above, by repeatedly applying the highest benefit patterns in a greedy worklist driven manner until a fixpoint is reached. More... | |
LogicalResult | applyPatternsAndFoldGreedily (Operation *op, const FrozenRewritePatternSet &patterns, GreedyRewriteConfig config=GreedyRewriteConfig(), bool *changed=nullptr) |
Rewrite ops nested under the given operation, which must be isolated from above, by repeatedly applying the highest benefit patterns in a greedy worklist driven manner until a fixpoint is reached. More... | |
LogicalResult | applyOpPatternsAndFold (ArrayRef< Operation * > ops, const FrozenRewritePatternSet &patterns, GreedyRewriteConfig config=GreedyRewriteConfig(), bool *changed=nullptr, bool *allErased=nullptr) |
Rewrite the specified ops by repeatedly applying the highest benefit patterns in a greedy worklist driven manner until a fixpoint is reached. More... | |
LogicalResult | inlineRegion (InlinerInterface &interface, Region *src, Operation *inlinePoint, IRMapping &mapper, ValueRange resultsToReplace, TypeRange regionResultTypes, std::optional< Location > inlineLoc=std::nullopt, bool shouldCloneInlinedRegion=true) |
This function inlines a region, 'src', into another. More... | |
LogicalResult | inlineRegion (InlinerInterface &interface, Region *src, Block *inlineBlock, Block::iterator inlinePoint, IRMapping &mapper, ValueRange resultsToReplace, TypeRange regionResultTypes, std::optional< Location > inlineLoc=std::nullopt, bool shouldCloneInlinedRegion=true) |
LogicalResult | inlineRegion (InlinerInterface &interface, Region *src, Operation *inlinePoint, ValueRange inlinedOperands, ValueRange resultsToReplace, std::optional< Location > inlineLoc=std::nullopt, bool shouldCloneInlinedRegion=true) |
This function is an overload of the above 'inlineRegion' that allows for providing the set of operands ('inlinedOperands') that should be used in-favor of the region arguments when inlining. More... | |
LogicalResult | inlineRegion (InlinerInterface &interface, Region *src, Block *inlineBlock, Block::iterator inlinePoint, ValueRange inlinedOperands, ValueRange resultsToReplace, std::optional< Location > inlineLoc=std::nullopt, bool shouldCloneInlinedRegion=true) |
LogicalResult | inlineCall (InlinerInterface &interface, CallOpInterface call, CallableOpInterface callable, Region *src, bool shouldCloneInlinedRegion=true) |
This function inlines a given region, 'src', of a callable operation, 'callable', into the location defined by the given call operation. More... | |
void | generateLocationsFromIR (raw_ostream &os, StringRef fileName, Operation *op, OpPrintingFlags flags) |
This function generates new locations from the given IR by snapshotting the IR to the given stream, and using the printed locations within that stream. More... | |
LogicalResult | generateLocationsFromIR (StringRef fileName, Operation *op, OpPrintingFlags flags) |
This function generates new locations from the given IR by snapshotting the IR to the given file, and using the printed locations within that file. More... | |
void | generateLocationsFromIR (raw_ostream &os, StringRef fileName, StringRef tag, Operation *op, OpPrintingFlags flags) |
This function generates new locations from the given IR by snapshotting the IR to the given stream, and using the printed locations within that stream. More... | |
LogicalResult | generateLocationsFromIR (StringRef fileName, StringRef tag, Operation *op, OpPrintingFlags flags) |
This function generates new locations from the given IR by snapshotting the IR to the given file, and using the printed locations within that file. More... | |
std::unique_ptr< Pass > | createLocationSnapshotPass (OpPrintingFlags flags, StringRef fileName="", StringRef tag="") |
Create a pass to generate new locations by snapshotting the IR to the given file, and using the printed locations within that file. More... | |
std::unique_ptr< Pass > | createLocationSnapshotPass () |
Overload utilizing pass options for initialization. More... | |
size_t | moveLoopInvariantCode (ArrayRef< Region * > regions, function_ref< bool(Value, Region *)> isDefinedOutsideRegion, function_ref< bool(Operation *, Region *)> shouldMoveOutOfRegion, function_ref< void(Operation *, Region *)> moveOutOfRegion) |
Given a list of regions, perform loop-invariant code motion. More... | |
size_t | moveLoopInvariantCode (LoopLikeOpInterface loopLike) |
Move side-effect free loop invariant code out of a loop-like op using methods provided by the interface. More... | |
LoopLikeOpInterface | hoistLoopInvariantSubsets (RewriterBase &rewriter, LoopLikeOpInterface loopLike) |
Hoist loop-invariant tensor subsets (subset extraction and subset insertion ops) from loop-like ops. More... | |
LogicalResult | tryToPromoteMemorySlots (ArrayRef< PromotableAllocationOpInterface > allocators, OpBuilder &builder, const DataLayout &dataLayout, DominanceInfo &dominance, Mem2RegStatistics statistics={}) |
Attempts to promote the memory slots of the provided allocators. More... | |
LogicalResult | applyPartialOneToNConversion (Operation *op, TypeConverter &typeConverter, const FrozenRewritePatternSet &patterns) |
Applies the given set of patterns recursively on the given op and adds user materializations where necessary. More... | |
void | populateOneToNFunctionOpInterfaceTypeConversionPattern (StringRef functionLikeOpName, const TypeConverter &converter, RewritePatternSet &patterns) |
Add a pattern to the given pattern list to convert the signature of a FunctionOpInterface op with the given type converter. More... | |
template<typename FuncOpT > | |
void | populateOneToNFunctionOpInterfaceTypeConversionPattern (const TypeConverter &converter, RewritePatternSet &patterns) |
std::unique_ptr< Pass > | createCanonicalizerPass () |
Creates an instance of the Canonicalizer pass, configured with default settings (which can be overridden by pass options on the command line). More... | |
std::unique_ptr< Pass > | createCanonicalizerPass (const GreedyRewriteConfig &config, ArrayRef< std::string > disabledPatterns=std::nullopt, ArrayRef< std::string > enabledPatterns=std::nullopt) |
Creates an instance of the Canonicalizer pass with the specified config. More... | |
std::unique_ptr< Pass > | createControlFlowSinkPass () |
Creates a pass to perform control-flow sinking. More... | |
std::unique_ptr< Pass > | createCSEPass () |
Creates a pass to perform common sub expression elimination. More... | |
std::unique_ptr< Pass > | createPrintIRPass (const PrintIRPassOptions &={}) |
Creates a pass to print IR on the debug stream. More... | |
std::unique_ptr< Pass > | createGenerateRuntimeVerificationPass () |
Creates a pass that generates IR to verify ops at runtime. More... | |
std::unique_ptr< Pass > | createLoopInvariantCodeMotionPass () |
Creates a loop invariant code motion pass that hoists loop invariant instructions out of the loop. More... | |
std::unique_ptr< Pass > | createLoopInvariantSubsetHoistingPass () |
Creates a pass that hoists loop-invariant subset ops. More... | |
std::unique_ptr< Pass > | createStripDebugInfoPass () |
Creates a pass to strip debug information from a function. More... | |
std::unique_ptr< Pass > | createPrintOpStatsPass (raw_ostream &os=llvm::errs()) |
Creates a pass which prints the list of ops and the number of occurrences in the module. More... | |
std::unique_ptr< Pass > | createPrintOpStatsPass (raw_ostream &os, bool printAsJSON) |
Creates a pass which prints the list of ops and the number of occurrences in the module with the output format option. More... | |
std::unique_ptr< Pass > | createInlinerPass () |
Creates a pass which inlines calls and callable operations as defined by the CallGraph. More... | |
std::unique_ptr< Pass > | createInlinerPass (llvm::StringMap< OpPassManager > opPipelines) |
Creates an instance of the inliner pass, and use the provided pass managers when optimizing callable operations with names matching the key type. More... | |
std::unique_ptr< Pass > | createInlinerPass (llvm::StringMap< OpPassManager > opPipelines, std::function< void(OpPassManager &)> defaultPipelineBuilder) |
Creates an instance of the inliner pass, and use the provided pass managers when optimizing callable operations with names matching the key type. More... | |
std::unique_ptr< Pass > | createRemoveDeadValuesPass () |
Creates an optimization pass to remove dead values. More... | |
std::unique_ptr< Pass > | createSCCPPass () |
Creates a pass which performs sparse conditional constant propagation over nested operations. More... | |
std::unique_ptr< Pass > | createSymbolDCEPass () |
Creates a pass which delete symbol operations that are unreachable. More... | |
std::unique_ptr< Pass > | createSymbolPrivatizePass (ArrayRef< std::string > excludeSymbols={}) |
Creates a pass which marks top-level symbol operations as private unless listed in excludeSymbols . More... | |
std::unique_ptr< Pass > | createTopologicalSortPass () |
Creates a pass that recursively sorts nested regions without SSA dominance topologically such that, as much as possible, users of values appear after their producers. More... | |
std::unique_ptr< Pass > | createCompositeFixedPointPass (std::string name, llvm::function_ref< void(OpPassManager &)> populateFunc, int maxIterations=10) |
Create composite pass, which runs provided set of passes until fixed point or maximum number of iterations reached. More... | |
template<typename Range > | |
bool | areValuesDefinedAbove (Range values, Region &limit) |
Check if all values in the provided range are defined above the limit region. More... | |
void | replaceAllUsesInRegionWith (Value orig, Value replacement, Region ®ion) |
Replace all uses of orig within the given region with replacement . More... | |
void | visitUsedValuesDefinedAbove (Region ®ion, Region &limit, function_ref< void(OpOperand *)> callback) |
Calls callback for each use of a value within region or its descendants that was defined at the ancestors of the limit . More... | |
void | visitUsedValuesDefinedAbove (MutableArrayRef< Region > regions, function_ref< void(OpOperand *)> callback) |
Calls callback for each use of a value within any of the regions provided that was defined in one of the ancestors. More... | |
void | getUsedValuesDefinedAbove (Region ®ion, Region &limit, SetVector< Value > &values) |
Fill values with a list of values defined at the ancestors of the limit region and used within region or its descendants. More... | |
void | getUsedValuesDefinedAbove (MutableArrayRef< Region > regions, SetVector< Value > &values) |
Fill values with a list of values used within any of the regions provided but defined in one of the ancestors. More... | |
SmallVector< Value > | makeRegionIsolatedFromAbove (RewriterBase &rewriter, Region ®ion, llvm::function_ref< bool(Operation *)> cloneOperationIntoRegion=[](Operation *) { return false;}) |
Make a region isolated from above. More... | |
LogicalResult | simplifyRegions (RewriterBase &rewriter, MutableArrayRef< Region > regions, bool mergeBlocks=true) |
Run a set of structural simplifications over the given regions. More... | |
LogicalResult | eraseUnreachableBlocks (RewriterBase &rewriter, MutableArrayRef< Region > regions) |
Erase the unreachable blocks within the provided regions. More... | |
LogicalResult | runRegionDCE (RewriterBase &rewriter, MutableArrayRef< Region > regions) |
This function returns success if any operations or arguments were deleted, failure otherwise. More... | |
LogicalResult | tryToDestructureMemorySlots (ArrayRef< DestructurableAllocationOpInterface > allocators, OpBuilder &builder, const DataLayout &dataLayout, SROAStatistics statistics={}) |
Attempts to destructure the slots of destructurable allocators. More... | |
std::unique_ptr< Pass > | createPrintOpGraphPass (raw_ostream &os=llvm::errs()) |
Creates a pass to print op graphs. More... | |
void | walkAndApplyPatterns (Operation *op, const FrozenRewritePatternSet &patterns, RewriterBase::Listener *listener=nullptr) |
A fast walk-based pattern rewrite driver. More... | |
static bool | createElementwiseOp (ConversionPatternRewriter &builder, gpu::SubgroupMmaElementwiseOp op, Type coopType, ValueRange operands) |
Creates a SPIR-V op to replace the given GPU subgroup mma elementwise op when the elementwise op directly supports with cooperative matrix type. More... | |
bool | allOperandsHaveSameCoopMatrixType (ValueRange operands) |
static Attribute | convertToAttribute (MLIRContext *ctx, IntegerOverflowFlags flags) |
static LogicalResult | convertFromAttribute (IntegerOverflowFlags &flags, Attribute attr, function_ref< InFlightDiagnostic()> emitError) |
template<typename K , typename V > | |
static SmallVector< V > | getValuesSortedByKeyImpl (ArrayRef< K > keys, ArrayRef< V > values, llvm::function_ref< bool(K, K)> compare) |
Helper to sort values according to matching keys . More... | |
void | registerTestRoundtripSPIRV () |
void | registerTestRoundtripDebugSPIRV () |
Variables | |
static constexpr unsigned | kDeriveIndexBitwidthFromDataLayout = 0 |
Value to pass as bitwidth for the index type when the converter is expected to derive the bitwidth from the LLVM data layout. More... | |
template<typename... Ts> | |
constexpr bool | has_sub_attr_or_type_v |
const char *const | kDefaultSplitMarker = "// -----" |
Include the generated interface declarations.
Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
The pass expands memref operations that modify the metadata of a memref (sizes, offset, strides) into a sequence of easier to analyze constructs.
This header declares functions that assist transformations in the MemRef dialect.
In particular, this pass transforms operations into explicit sequence of operations that model the effect of this operation on the different metadata. This pass uses affine constructs to materialize these effects.
See https://llvm.org/LICENSE.txt for license information. SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
using mlir::AllocFunType = typedef llvm::function_ref<void *(size_t)> |
Definition at line 37 of file MemRefUtils.h.
using mlir::AttributeStorageAllocator = typedef StorageUniquer::StorageAllocator |
Definition at line 207 of file AttributeSupport.h.
using mlir::AttrSubElementReplacements = typedef AttrTypeSubElementReplacements<Attribute> |
Definition at line 373 of file AttrTypeSubElements.h.
using mlir::ChunkBufferHandler = typedef function_ref<LogicalResult( std::unique_ptr<llvm::MemoryBuffer> chunkBuffer, raw_ostream &os)> |
Definition at line 27 of file ToolUtilities.h.
using mlir::DataLayoutEntryKey = typedef llvm::PointerUnion<Type, StringAttr> |
Definition at line 30 of file DataLayoutInterfaces.h.
using mlir::DataLayoutEntryList = typedef llvm::SmallVector<DataLayoutEntryInterface, 4> |
Definition at line 33 of file DataLayoutInterfaces.h.
using mlir::DataLayoutEntryListRef = typedef llvm::ArrayRef<DataLayoutEntryInterface> |
Definition at line 34 of file DataLayoutInterfaces.h.
using mlir::DefaultAttributeStorage = typedef AttributeStorage |
Default storage type for attributes that require no additional initialization or storage.
Definition at line 199 of file AttributeSupport.h.
using mlir::DefaultTypeStorage = typedef TypeStorage |
Default storage type for types that require no additional initialization or storage.
Definition at line 194 of file TypeSupport.h.
using mlir::DenseBoolArrayAttr = typedef detail::DenseArrayAttrImpl<bool> |
Definition at line 765 of file BuiltinAttributes.h.
using mlir::DenseBoolResourceElementsAttr = typedef detail::DenseResourceElementsAttrBase<bool> |
Definition at line 815 of file BuiltinAttributes.h.
using mlir::DenseF32ArrayAttr = typedef detail::DenseArrayAttrImpl<float> |
Definition at line 770 of file BuiltinAttributes.h.
using mlir::DenseF32ResourceElementsAttr = typedef detail::DenseResourceElementsAttrBase<float> |
Definition at line 833 of file BuiltinAttributes.h.
using mlir::DenseF64ArrayAttr = typedef detail::DenseArrayAttrImpl<double> |
Definition at line 771 of file BuiltinAttributes.h.
using mlir::DenseF64ResourceElementsAttr = typedef detail::DenseResourceElementsAttrBase<double> |
Definition at line 835 of file BuiltinAttributes.h.
using mlir::DenseI16ArrayAttr = typedef detail::DenseArrayAttrImpl<int16_t> |
Definition at line 767 of file BuiltinAttributes.h.
using mlir::DenseI16ResourceElementsAttr = typedef detail::DenseResourceElementsAttrBase<int16_t> |
Definition at line 819 of file BuiltinAttributes.h.
using mlir::DenseI32ArrayAttr = typedef detail::DenseArrayAttrImpl<int32_t> |
Definition at line 768 of file BuiltinAttributes.h.
using mlir::DenseI32ResourceElementsAttr = typedef detail::DenseResourceElementsAttrBase<int32_t> |
Definition at line 821 of file BuiltinAttributes.h.
using mlir::DenseI64ArrayAttr = typedef detail::DenseArrayAttrImpl<int64_t> |
Definition at line 769 of file BuiltinAttributes.h.
using mlir::DenseI64ResourceElementsAttr = typedef detail::DenseResourceElementsAttrBase<int64_t> |
Definition at line 823 of file BuiltinAttributes.h.
using mlir::DenseI8ArrayAttr = typedef detail::DenseArrayAttrImpl<int8_t> |
Definition at line 766 of file BuiltinAttributes.h.
using mlir::DenseI8ResourceElementsAttr = typedef detail::DenseResourceElementsAttrBase<int8_t> |
Definition at line 817 of file BuiltinAttributes.h.
using mlir::DenseMap = typedef llvm::DenseMap<KeyT, ValueT, KeyInfoT, BucketT> |
DenseMapInfo< mlir::RegisteredOperationName > |
using mlir::DenseResourceElementsHandle = typedef DialectResourceBlobHandle<BuiltinDialect> |
Definition at line 702 of file BuiltinAttributes.h.
using mlir::DenseSet = typedef llvm::DenseSet<ValueT, ValueInfoT> |
using mlir::DenseUI16ResourceElementsAttr = typedef detail::DenseResourceElementsAttrBase<uint16_t> |
Definition at line 827 of file BuiltinAttributes.h.
using mlir::DenseUI32ResourceElementsAttr = typedef detail::DenseResourceElementsAttrBase<uint32_t> |
Definition at line 829 of file BuiltinAttributes.h.
using mlir::DenseUI64ResourceElementsAttr = typedef detail::DenseResourceElementsAttrBase<uint64_t> |
Definition at line 831 of file BuiltinAttributes.h.
using mlir::DenseUI8ResourceElementsAttr = typedef detail::DenseResourceElementsAttrBase<uint8_t> |
Definition at line 825 of file BuiltinAttributes.h.
using mlir::DialectAllocatorFunction = typedef std::function<Dialect *(MLIRContext *)> |
Definition at line 27 of file DialectRegistry.h.
using mlir::DialectAllocatorFunctionRef = typedef function_ref<Dialect *(MLIRContext *)> |
Definition at line 28 of file DialectRegistry.h.
using mlir::DialectRegistrationFunction = typedef std::function<void(DialectRegistry &)> |
Interface of the function that adds all dialects and dialect extensions used for the translation to the given DialectRegistry.
Definition at line 57 of file Translation.h.
using mlir::DominanceInfoNode = typedef llvm::DomTreeNodeBase<Block> |
Definition at line 30 of file Dominance.h.
using mlir::DynamicDialectPopulationFunction = typedef std::function<void(MLIRContext *, DynamicDialect *)> |
Definition at line 29 of file DialectRegistry.h.
using mlir::ElementWiseVisitor = typedef llvm::function_ref<void(T &ptr, ArrayRef<int64_t>)> |
Convenient callback to "visit" a memref element by element.
This takes a reference to an individual element as well as the coordinates. It can be used in conjuction with a StridedMemrefIterator.
Definition at line 130 of file MemRefUtils.h.
using mlir::ForwardSliceOptions = typedef SliceOptions |
Definition at line 57 of file SliceAnalysis.h.
using mlir::function_ref = typedef llvm::function_ref<Fn> |
using mlir::GenFunction = typedef std::function<bool(const llvm::RecordKeeper &records, raw_ostream &os)> |
using mlir::Loops = typedef SmallVector<scf::ForOp, 8> |
using mlir::LoweringCallback = typedef std::function<std::unique_ptr<llvm::Module>( Operation *, llvm::LLVMContext &, StringRef)> |
Definition at line 48 of file GPUCommonPass.h.
using mlir::MemorySpaceMapping = typedef std::function<unsigned(gpu::AddressSpace)> |
A function that maps a MemorySpace enum to a target-specific integer value.
Definition at line 70 of file GPUCommonPass.h.
using mlir::MemrefValue = typedef TypedValue<BaseMemRefType> |
A value with a memref type.
Definition at line 26 of file MemRefUtils.h.
using mlir::NewYieldValuesFn = typedef std::function<SmallVector<Value>( OpBuilder &b, Location loc, ArrayRef<BlockArgument> newBbArgs)> |
A function that returns the additional yielded values during replaceWithAdditionalYields
.
newBbArgs
are the newly added region iter_args. This function should return as many values as there are block arguments in newBbArgs
.
Definition at line 25 of file LoopLikeInterface.h.
using mlir::OpAsmSetBlockNameFn = typedef function_ref<void(Block *, StringRef)> |
A functor used to set the name of blocks in regions directly nested under an operation.
Definition at line 1736 of file OpImplementation.h.
using mlir::OpAsmSetValueNameFn = typedef function_ref<void(Value, StringRef)> |
A functor used to set the name of the start of a result group of an operation.
See 'getAsmResultNames' below for more details.
Definition at line 1732 of file OpImplementation.h.
using mlir::OperandElementTypeRange = typedef iterator_range<OperandElementTypeIterator> |
Definition at line 97 of file TypeUtilities.h.
using mlir::PassAllocatorFunction = typedef std::function<std::unique_ptr<Pass>()> |
Definition at line 41 of file PassRegistry.h.
using mlir::PassPipelineFn = typedef llvm::function_ref<LogicalResult(PassManager &pm)> |
This defines the function type used to setup the pass manager.
This can be used to pass in a callback to setup a default pass pipeline to be applied on the loaded IR.
Definition at line 300 of file MlirOptMain.h.
using mlir::PassRegistryFunction = typedef std::function<LogicalResult( OpPassManager &, StringRef options, function_ref<LogicalResult(const Twine &)> errorHandler)> |
A registry function that adds passes to the given pass manager.
This should also parse options and return success() if parsing succeeded. errorHandler
is a functor used to emit errors during parsing. parameter corresponds to the raw location within the pipeline string. This should always return failure.
Definition at line 38 of file PassRegistry.h.
using mlir::ReassociationExprs = typedef SmallVector<AffineExpr, 2> |
Definition at line 28 of file ReshapeOpsUtils.h.
typedef SmallVector< int64_t, 2 > mlir::ReassociationIndices |
using mlir::ReassociationIndicesRef = typedef ArrayRef<int64_t> |
Definition at line 27 of file ReshapeOpsUtils.h.
using mlir::ReifiedRankedShapedTypeDims = typedef SmallVector<SmallVector<OpFoldResult> > |
Definition at line 29 of file InferTypeOpInterface.h.
using mlir::ReproducerStreamFactory = typedef std::function<std::unique_ptr<ReproducerStream>(std::string &error)> |
Method type for constructing ReproducerStream.
Definition at line 221 of file PassManager.h.
using mlir::ResultElementTypeRange = typedef iterator_range<ResultElementTypeIterator> |
Definition at line 110 of file TypeUtilities.h.
using mlir::SetIntLatticeFn = typedef llvm::function_ref<void(Value, const IntegerValueRange &)> |
Similar to SetIntRangeFn, but operating on IntegerValueRange lattice values.
This is the setResultRanges
callback for the IntegerValueRange based interface method.
Definition at line 167 of file InferIntRangeInterface.h.
using mlir::SetIntRangeFn = typedef llvm::function_ref<void(Value, const ConstantIntRanges &)> |
The type of the setResultRanges
callback provided to ops implementing InferIntRangeInterface.
It should be called once for each integer result value and be passed the ConstantIntRanges corresponding to that value.
Definition at line 161 of file InferIntRangeInterface.h.
using mlir::SetVector = typedef llvm::SetVector<T, Vector, Set, N> |
using mlir::StringSet = typedef llvm::StringSet<AllocatorTy> |
using mlir::StringSwitch = typedef llvm::StringSwitch<T, R> |
using mlir::TargetDeviceSpecEntry = typedef std::pair<StringAttr, TargetDeviceSpecInterface> |
Definition at line 36 of file DataLayoutInterfaces.h.
using mlir::TargetDeviceSpecListRef = typedef llvm::ArrayRef<TargetDeviceSpecInterface> |
Definition at line 35 of file DataLayoutInterfaces.h.
using mlir::TileLoops = typedef std::pair<Loops, Loops> |
using mlir::TransitiveFilter = typedef SliceOptions::TransitiveFilter |
Definition at line 41 of file SliceAnalysis.h.
using mlir::TranslateFromMLIRFunction = typedef std::function<LogicalResult(Operation *, llvm::raw_ostream &output)> |
Interface of the function that translates MLIR to a different format and outputs the result to a stream.
It is allowed to modify the operation.
Definition at line 43 of file Translation.h.
using mlir::TranslateFunction = typedef std::function<LogicalResult( const std::shared_ptr<llvm::SourceMgr> &sourceMgr, llvm::raw_ostream &output, MLIRContext *)> |
Interface of the function that performs file-to-file translation involving MLIR.
The input file is held in the given MemoryBuffer; the output file should be written to the given raw_ostream. The implementation should create all MLIR constructs needed during the process inside the given context. This can be used for round-tripping external formats through the MLIR system.
Definition at line 51 of file Translation.h.
using mlir::TranslateRawSourceMgrToMLIRFunction = typedef std::function<OwningOpRef<Operation *>(llvm::SourceMgr &sourceMgr, MLIRContext *)> |
Definition at line 30 of file Translation.h.
using mlir::TranslateSourceMgrToMLIRFunction = typedef std::function<OwningOpRef<Operation *>( const std::shared_ptr<llvm::SourceMgr> &sourceMgr, MLIRContext *)> |
Interface of the function that translates the sources managed by sourceMgr
to MLIR.
The source manager has at least one buffer. The implementation should create a new MLIR Operation in the given context and return a pointer to it, or a nullptr in case of any error.
Definition at line 28 of file Translation.h.
using mlir::TranslateStringRefToMLIRFunction = typedef std::function<OwningOpRef<Operation *>(llvm::StringRef, MLIRContext *)> |
Interface of the function that translates the given string to MLIR.
The implementation should create a new MLIR Operation in the given context. If source-related error reporting is required from within the function, use TranslateSourceMgrToMLIRFunction instead.
Definition at line 38 of file Translation.h.
using mlir::TypedValue = typedef std::conditional_t<std::is_same_v<Ty, mlir::Type>, mlir::Value, detail::TypedValue<Ty> > |
If Ty is mlir::Type this will select Value
instead of having a wrapper around it.
This helps resolve ambiguous conversion issues.
using mlir::TypeRangeRangeIterator = typedef llvm::mapped_iterator<llvm::iota_range<unsigned>::iterator, std::function<TypeRange(unsigned)> > |
Definition at line 85 of file TypeRange.h.
using mlir::TypeStorageAllocator = typedef StorageUniquer::StorageAllocator |
This is a utility allocator used to allocate memory for instances of derived Types.
Definition at line 202 of file TypeSupport.h.
using mlir::TypeSubElementReplacements = typedef AttrTypeSubElementReplacements<Type> |
Definition at line 374 of file AttrTypeSubElements.h.
using mlir::TypeSwitch = typedef llvm::TypeSwitch<T, ResultT> |
using mlir::ValueDimList = typedef SmallVector<std::pair<Value, std::optional<int64_t> >> |
Definition at line 51 of file ValueBoundsOpInterface.h.
using mlir::WalkCallback = typedef mlir::function_ref<WalkContinuation(mlir::Value)> |
A callback that is invoked for each value encountered during the walk of the slice.
The callback takes the current value, and returns the walk continuation, which determines if the walk should proceed and if yes, with which values.
Definition at line 81 of file SliceWalk.h.
|
strong |
Definition at line 40 of file AffineExpr.h.
|
strong |
This enum represents the different kinds of resource values.
Enumerator | |
---|---|
Blob | A blob of data with an accompanying alignment. |
Bool | A boolean value. |
String | A string value. |
Definition at line 279 of file AsmState.h.
|
strong |
A result type used to indicate if a change happened.
Boolean operations on ChangeResult behave as though Change
is truth.
Enumerator | |
---|---|
NoChange | |
Change |
Definition at line 36 of file DataFlowFramework.h.
|
strong |
Returned by operation promotion logic requesting the deletion of an operation.
Enumerator | |
---|---|
Keep | Keep the operation after promotion. |
Delete | Delete the operation after promotion. |
Definition at line 35 of file MemorySlotInterfaces.h.
|
strong |
Defines the different supported severity of a diagnostic.
Enumerator | |
---|---|
Note | |
Warning | |
Error | |
Remark |
Definition at line 40 of file Diagnostics.h.
|
strong |
This enum controls which ops are put on the worklist during a greedy pattern rewrite.
Enumerator | |
---|---|
AnyOp | No restrictions wrt. which ops are processed. |
ExistingAndNewOps | Only pre-existing and newly created ops are processed. |
ExistingOps | Only pre-existing ops are processed. |
Definition at line 23 of file GreedyPatternRewriteDriver.h.
|
strong |
Definition at line 32 of file GreedyPatternRewriteDriver.h.
|
strong |
Enumerator | |
---|---|
None | |
Loop | |
Block |
Definition at line 21 of file AllocationOpInterface.h.
|
strong |
An enum describing the different display modes for the information within the pass manager.
Enumerator | |
---|---|
List | |
Pipeline |
Definition at line 198 of file PassManager.h.
|
strong |
The kinds of regions contained in an operation.
SSACFG regions require the SSA-Dominance property to hold. Graph regions do not require SSA-Dominance. If a registered operation does not implement RegionKindInterface, then any regions it contains are assumed to be SSACFG regions.
Enumerator | |
---|---|
SSACFG | |
Graph |