MLIR
20.0.0git
|
Namespaces | |
detail | |
emitc | |
impl | |
spirv | |
tosa | |
util | |
Classes | |
class | AtMostOneChildOf |
Characterize operations that have at most a single operation of certain types in their region. More... | |
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 | TraitBase |
Helper class for implementing traits. More... | |
class | OpInvariants |
verifyInvariantsImpl verifies 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 Elementwise operatons that can be systematically scalarized. More... | |
struct | Vectorizable |
This trait tags Elementwise operatons that can be systematically vectorized. More... | |
struct | Tensorizable |
This trait tags Elementwise operatons 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 ImplicitTerminatorOpT member. More... | |
Functions | |
bool | 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. 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 1013 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 1393 of file Operation.cpp.
References mlir::Operation::hasTrait().
Referenced by mlir::spirv::getNativeVectorShape(), and isElementwiseMappableOpOnRankedTensors().