| MLIR
    22.0.0git
    | 
| Namespaces | |
| detail | |
| impl | |
| spirv | |
| tosa | |
| util | |
| Classes | |
| class | AtMostOneChildOf | 
| Characterize operations that have at most a single operation of certain types in their region.  More... | |
| class | NVVMRequiresSM | 
| class | NVVMRequiresSMa | 
| class | ResultsBroadcastableShape | 
| Trait for ops that are known to have broadcast compatible operands and result types.  More... | |
| struct | ReturnLike | 
| This trait indicates that a terminator operation is "return-like".  More... | |
| class | InferTensorType | 
| Tensor type inference trait that constructs a tensor from the inferred shape and elemental types.  More... | |
| class | InferTypeOpAdaptor | 
| class | InferShapedTypeOpAdaptor | 
| class | HasParallelRegion | 
| class | HasRecursiveMemoryEffects | 
| This trait indicates that the memory effects of an operation includes the effects of operations nested within its regions.  More... | |
| struct | RecursivelySpeculatableImplTrait | 
| This trait marks an op (which must be tagged as implementing the ConditionallySpeculatable interface) as being recursively speculatable.  More... | |
| struct | AlwaysSpeculatableImplTrait | 
| This trait marks an op (which must be tagged as implementing the ConditionallySpeculatable interface) as being always speculatable.  More... | |
| class | DistinctObjectsTrait | 
| This trai indicates that pointer-like objects (such as memrefs) returned from this operation will never alias with each other.  More... | |
| class | TraitBase | 
| Helper class for implementing traits.  More... | |
| class | OpInvariants | 
| verifyInvariantsImplverifies the invariants like the types, attrs, .etc.  More... | |
| class | ZeroOperands | 
| This class provides the API for ops that are known to have no SSA operand.  More... | |
| class | OneOperand | 
| This class provides the API for ops that are known to have exactly one SSA operand.  More... | |
| class | NOperands | 
| This class provides the API for ops that are known to have a specified number of operands.  More... | |
| class | AtLeastNOperands | 
| This class provides the API for ops that are known to have a at least a specified number of operands.  More... | |
| class | VariadicOperands | 
| This class provides the API for ops which have an unknown number of SSA operands.  More... | |
| class | ZeroRegions | 
| This class provides verification for ops that are known to have zero regions.  More... | |
| class | OneRegion | 
| This class provides APIs for ops that are known to have a single region.  More... | |
| class | NRegions | 
| This class provides the API for ops that are known to have a specified number of regions.  More... | |
| class | AtLeastNRegions | 
| This class provides APIs for ops that are known to have at least a specified number of regions.  More... | |
| class | VariadicRegions | 
| This class provides the API for ops which have an unknown number of regions.  More... | |
| class | ZeroResults | 
| This class provides return value APIs for ops that are known to have zero results.  More... | |
| class | OneResult | 
| This class provides return value APIs for ops that are known to have a single result.  More... | |
| class | OneTypedResult | 
| This trait is used for return value APIs for ops that are known to have a specific type other than Type.  More... | |
| class | NResults | 
| This class provides the API for ops that are known to have a specified number of results.  More... | |
| class | AtLeastNResults | 
| This class provides the API for ops that are known to have at least a specified number of results.  More... | |
| class | VariadicResults | 
| This class provides the API for ops which have an unknown number of results.  More... | |
| class | NoTerminator | 
| This class indicates that the regions associated with this op don't have terminators.  More... | |
| class | IsTerminator | 
| This class provides the API for ops that are known to be terminators.  More... | |
| class | ZeroSuccessors | 
| This class provides verification for ops that are known to have zero successors.  More... | |
| class | OneSuccessor | 
| This class provides APIs for ops that are known to have a single successor.  More... | |
| class | NSuccessors | 
| This class provides the API for ops that are known to have a specified number of successors.  More... | |
| class | AtLeastNSuccessors | 
| This class provides APIs for ops that are known to have at least a specified number of successors.  More... | |
| class | VariadicSuccessors | 
| This class provides the API for ops which have an unknown number of successors.  More... | |
| struct | SingleBlock | 
| This class provides APIs and verifiers for ops with regions having a single block.  More... | |
| struct | SingleBlockImplicitTerminator | 
| This class provides APIs and verifiers for ops with regions having a single block that must terminate with TerminatorOpType.  More... | |
| struct | hasSingleBlockImplicitTerminator | 
| Support to check if an operation has the SingleBlockImplicitTerminator trait.  More... | |
| struct | hasSingleBlockImplicitTerminator< Op, false > | 
| class | SameOperandsShape | 
| This class provides verification for ops that are known to have the same operand shape: all operands are scalars, vectors/tensors of the same shape.  More... | |
| class | SameOperandsAndResultShape | 
| This class provides verification for ops that are known to have the same operand and result shape: both are scalars, vectors/tensors of the same shape.  More... | |
| class | SameOperandsElementType | 
| This class provides verification for ops that are known to have the same operand element type (or the type itself if it is scalar).  More... | |
| class | SameOperandsAndResultElementType | 
| This class provides verification for ops that are known to have the same operand and result element type (or the type itself if it is scalar).  More... | |
| class | SameOperandsAndResultType | 
| This class provides verification for ops that are known to have the same operand and result type.  More... | |
| class | SameOperandsAndResultRank | 
| This class verifies that op has same ranks for all operands and results types, if known.  More... | |
| class | ResultsAreBoolLike | 
| This class verifies that any results of the specified op have a boolean type, a vector thereof, or a tensor thereof.  More... | |
| class | ResultsAreFloatLike | 
| This class verifies that any results of the specified op have a floating point type, a vector thereof, or a tensor thereof.  More... | |
| class | ResultsAreSignlessIntegerLike | 
| This class verifies that any results of the specified op have a signless integer or index type, a vector thereof, or a tensor thereof.  More... | |
| class | IsCommutative | 
| This class adds property that the operation is commutative.  More... | |
| class | IsInvolution | 
| This class adds property that the operation is an involution.  More... | |
| class | IsIdempotent | 
| This class adds property that the operation is idempotent.  More... | |
| class | OperandsAreFloatLike | 
| This class verifies that all operands of the specified op have a float type, a vector thereof, or a tensor thereof.  More... | |
| class | OperandsAreSignlessIntegerLike | 
| This class verifies that all operands of the specified op have a signless integer or index type, a vector thereof, or a tensor thereof.  More... | |
| class | SameTypeOperands | 
| This class verifies that all operands of the specified op have the same type.  More... | |
| class | ConstantLike | 
| This class provides the API for a sub-set of ops that are known to be constant-like.  More... | |
| class | IsIsolatedFromAbove | 
| This class provides the API for ops that are known to be isolated from above.  More... | |
| class | AffineScope | 
| A trait of region holding operations that defines a new scope for polyhedral optimization purposes.  More... | |
| class | AutomaticAllocationScope | 
| A trait of region holding operations that define a new scope for automatic allocations, i.e., allocations that are freed when control is transferred back from the operation's region.  More... | |
| struct | HasParent | 
| This class provides a verifier for ops that are expecting their parent to be one of the given parent ops.  More... | |
| class | AttrSizedOperandSegments | 
| A trait for operations that have an attribute specifying operand segments.  More... | |
| class | AttrSizedResultSegments | 
| Similar to AttrSizedOperandSegments but used for results.  More... | |
| struct | NoRegionArguments | 
| This trait provides a verifier for ops that are expecting their regions to not have any arguments.  More... | |
| struct | MemRefsNormalizable | 
| struct | Elementwise | 
| This trait tags element-wise ops on vectors or tensors.  More... | |
| struct | Scalarizable | 
| This trait tags Elementwiseoperatons that can be systematically scalarized.  More... | |
| struct | Vectorizable | 
| This trait tags Elementwiseoperatons that can be systematically vectorized.  More... | |
| struct | Tensorizable | 
| This trait tags Elementwiseoperatons that can be systematically tensorized.  More... | |
| class | HasOnlyGraphRegion | 
| A trait that specifies that an operation only defines graph regions.  More... | |
| class | SymbolTable | 
| A trait used to provide symbol table functionalities to a region operation.  More... | |
| Typedefs | |
| template<class T > | |
| using | has_implicit_terminator_t = typename T::ImplicitTerminatorOpT | 
| Check is an op defines the ImplicitTerminatorOpTmember.  More... | |
| Functions | |
| bool | hasElementwiseMappableTraits (Operation *op) | 
| Together, Elementwise,Scalarizable,Vectorizable, andTensorizableprovide an easy way for scalar operations to conveniently generalize their behavior to vectors/tensors, and systematize conversion between these forms.  More... | |
| using mlir::OpTrait::has_implicit_terminator_t = typedef typename T::ImplicitTerminatorOpT | 
Check is an op defines the ImplicitTerminatorOpT member. 
This is intended to be used with llvm::is_detected. 
Definition at line 1024 of file OpDefinition.h.
| bool mlir::OpTrait::hasElementwiseMappableTraits | ( | Operation * | op | ) | 
Together, Elementwise, Scalarizable, Vectorizable, and Tensorizable provide an easy way for scalar operations to conveniently generalize their behavior to vectors/tensors, and systematize conversion between these forms. 
Definition at line 1395 of file Operation.cpp.
References mlir::Operation::hasTrait().
Referenced by mlir::spirv::getNativeVectorShape(), getSubgroupMmaNativeVectorSize(), mlir::linalg::hasOnlyScalarElementwiseOp(), and isElementwiseMappableOpOnRankedTensors().