MLIR 23.0.0git
mlir::RegisteredOperationName::Model< ConcreteOp > Struct Template Reference

Implementation of the InterfaceConcept for operation APIs that forwarded to a concrete op implementation. More...

#include "mlir/IR/OperationSupport.h"

Inheritance diagram for mlir::RegisteredOperationName::Model< ConcreteOp >:

Public Types

using Properties

Public Member Functions

 Model (Dialect *dialect)
LogicalResult foldHook (Operation *op, ArrayRef< Attribute > attrs, SmallVectorImpl< OpFoldResult > &results) final
void getCanonicalizationPatterns (RewritePatternSet &set, MLIRContext *context) final
bool hasTrait (TypeID id) final
OperationName::ParseAssemblyFn getParseAssemblyFn () final
void populateDefaultAttrs (const OperationName &name, NamedAttrList &attrs) final
void printAssembly (Operation *op, OpAsmPrinter &printer, StringRef name) final
LogicalResult verifyInvariants (Operation *op) final
LogicalResult verifyRegionInvariants (Operation *op) final
std::optional< AttributegetInherentAttr (Operation *op, StringRef name) final
 Implementation for "Properties".
void setInherentAttr (Operation *op, StringAttr name, Attribute value) final
void populateInherentAttrs (Operation *op, NamedAttrList &attrs) final
LogicalResult verifyInherentAttrs (OperationName opName, NamedAttrList &attributes, function_ref< InFlightDiagnostic()> emitError) final
int getOpPropertyByteSize () final
void initProperties (OperationName opName, PropertyRef storage, PropertyRef init) final
void deleteProperties (PropertyRef prop) final
void populateDefaultProperties (OperationName opName, PropertyRef properties) final
LogicalResult setPropertiesFromAttr (OperationName opName, PropertyRef properties, Attribute attr, function_ref< InFlightDiagnostic()> emitError) final
Attribute getPropertiesAsAttr (Operation *op) final
bool compareProperties (PropertyRef lhs, PropertyRef rhs) final
void copyProperties (PropertyRef lhs, PropertyRef rhs) final
llvm::hash_code hashProperties (PropertyRef prop) final
Public Member Functions inherited from mlir::OperationName::Impl
 Impl (StringRef, Dialect *dialect, TypeID typeID, detail::InterfaceMap interfaceMap)
 Impl (StringAttr name, Dialect *dialect, TypeID typeID, detail::InterfaceMap interfaceMap)
bool isRegistered () const
 Returns true if this is a registered operation.
detail::InterfaceMapgetInterfaceMap ()
DialectgetDialect () const
StringAttr getName () const
TypeID getTypeID () const
TypeID getPropertiesTypeID () const
ArrayRef< StringAttr > getAttributeNames () const
Public Member Functions inherited from mlir::OperationName::InterfaceConcept
virtual ~InterfaceConcept ()=default

Static Public Attributes

static constexpr bool hasProperties

Additional Inherited Members

Protected Attributes inherited from mlir::OperationName::Impl
StringAttr name
 The name of the operation.
TypeID typeID
 The unique identifier of the derived Op class.
Dialectdialect
 The following fields are only populated when the operation is registered.
detail::InterfaceMap interfaceMap
 A map of interfaces that were registered to this operation.
ArrayRef< StringAttr > attributeNames
 A list of attribute names registered to this operation in StringAttr form.
TypeID propertiesTypeID
 The TypeID of the Properties struct for this operation.

Detailed Description

template<typename ConcreteOp>
struct mlir::RegisteredOperationName::Model< ConcreteOp >

Implementation of the InterfaceConcept for operation APIs that forwarded to a concrete op implementation.

Definition at line 554 of file OperationSupport.h.

Member Typedef Documentation

◆ Properties

template<typename ConcreteOp>
using mlir::RegisteredOperationName::Model< ConcreteOp >::Properties
Initial value:
std::remove_reference_t<
decltype(std::declval<ConcreteOp>().getProperties())>

Definition at line 555 of file OperationSupport.h.

Constructor & Destructor Documentation

◆ Model()

Member Function Documentation

◆ compareProperties()

template<typename ConcreteOp>
bool mlir::RegisteredOperationName::Model< ConcreteOp >::compareProperties ( PropertyRef lhs,
PropertyRef rhs )
inlinefinalvirtual

Implements mlir::OperationName::InterfaceConcept.

Definition at line 675 of file OperationSupport.h.

References hasProperties, lhs, and rhs.

◆ copyProperties()

template<typename ConcreteOp>
void mlir::RegisteredOperationName::Model< ConcreteOp >::copyProperties ( PropertyRef lhs,
PropertyRef rhs )
inlinefinalvirtual

Implements mlir::OperationName::InterfaceConcept.

Definition at line 680 of file OperationSupport.h.

References lhs, and rhs.

◆ deleteProperties()

template<typename ConcreteOp>
void mlir::RegisteredOperationName::Model< ConcreteOp >::deleteProperties ( PropertyRef prop)
inlinefinalvirtual

Implements mlir::OperationName::InterfaceConcept.

Definition at line 646 of file OperationSupport.h.

◆ foldHook()

template<typename ConcreteOp>
LogicalResult mlir::RegisteredOperationName::Model< ConcreteOp >::foldHook ( Operation * op,
ArrayRef< Attribute > attrs,
SmallVectorImpl< OpFoldResult > & results )
inlinefinalvirtual

Implements mlir::OperationName::InterfaceConcept.

Definition at line 562 of file OperationSupport.h.

◆ getCanonicalizationPatterns()

template<typename ConcreteOp>
void mlir::RegisteredOperationName::Model< ConcreteOp >::getCanonicalizationPatterns ( RewritePatternSet & set,
MLIRContext * context )
inlinefinalvirtual

Implements mlir::OperationName::InterfaceConcept.

Definition at line 566 of file OperationSupport.h.

◆ getInherentAttr()

template<typename ConcreteOp>
std::optional< Attribute > mlir::RegisteredOperationName::Model< ConcreteOp >::getInherentAttr ( Operation * op,
StringRef name )
inlinefinalvirtual

Implementation for "Properties".

Implements mlir::OperationName::InterfaceConcept.

Definition at line 591 of file OperationSupport.h.

References hasProperties, and mlir::OperationName::Impl::name.

◆ getOpPropertyByteSize()

template<typename ConcreteOp>
int mlir::RegisteredOperationName::Model< ConcreteOp >::getOpPropertyByteSize ( )
inlinefinalvirtual

Implements mlir::OperationName::InterfaceConcept.

Definition at line 629 of file OperationSupport.h.

References hasProperties.

◆ getParseAssemblyFn()

template<typename ConcreteOp>
OperationName::ParseAssemblyFn mlir::RegisteredOperationName::Model< ConcreteOp >::getParseAssemblyFn ( )
inlinefinalvirtual

Implements mlir::OperationName::InterfaceConcept.

Definition at line 571 of file OperationSupport.h.

◆ getPropertiesAsAttr()

template<typename ConcreteOp>
Attribute mlir::RegisteredOperationName::Model< ConcreteOp >::getPropertiesAsAttr ( Operation * op)
inlinefinalvirtual

Implements mlir::OperationName::InterfaceConcept.

Definition at line 667 of file OperationSupport.h.

References hasProperties.

◆ hashProperties()

template<typename ConcreteOp>
llvm::hash_code mlir::RegisteredOperationName::Model< ConcreteOp >::hashProperties ( PropertyRef prop)
inlinefinalvirtual

Implements mlir::OperationName::InterfaceConcept.

Definition at line 683 of file OperationSupport.h.

References hasProperties.

◆ hasTrait()

template<typename ConcreteOp>
bool mlir::RegisteredOperationName::Model< ConcreteOp >::hasTrait ( TypeID id)
inlinefinalvirtual

Implements mlir::OperationName::InterfaceConcept.

Definition at line 570 of file OperationSupport.h.

◆ initProperties()

template<typename ConcreteOp>
void mlir::RegisteredOperationName::Model< ConcreteOp >::initProperties ( OperationName opName,
PropertyRef storage,
PropertyRef init )
inlinefinalvirtual

Implements mlir::OperationName::InterfaceConcept.

Definition at line 634 of file OperationSupport.h.

References hasProperties.

◆ populateDefaultAttrs()

template<typename ConcreteOp>
void mlir::RegisteredOperationName::Model< ConcreteOp >::populateDefaultAttrs ( const OperationName & name,
NamedAttrList & attrs )
inlinefinalvirtual

◆ populateDefaultProperties()

template<typename ConcreteOp>
void mlir::RegisteredOperationName::Model< ConcreteOp >::populateDefaultProperties ( OperationName opName,
PropertyRef properties )
inlinefinalvirtual

Implements mlir::OperationName::InterfaceConcept.

Definition at line 649 of file OperationSupport.h.

References hasProperties.

◆ populateInherentAttrs()

template<typename ConcreteOp>
void mlir::RegisteredOperationName::Model< ConcreteOp >::populateInherentAttrs ( Operation * op,
NamedAttrList & attrs )
inlinefinalvirtual

Implements mlir::OperationName::InterfaceConcept.

Definition at line 610 of file OperationSupport.h.

References hasProperties.

◆ printAssembly()

template<typename ConcreteOp>
void mlir::RegisteredOperationName::Model< ConcreteOp >::printAssembly ( Operation * op,
OpAsmPrinter & printer,
StringRef name )
inlinefinalvirtual

◆ setInherentAttr()

template<typename ConcreteOp>
void mlir::RegisteredOperationName::Model< ConcreteOp >::setInherentAttr ( Operation * op,
StringAttr name,
Attribute value )
inlinefinalvirtual

◆ setPropertiesFromAttr()

template<typename ConcreteOp>
LogicalResult mlir::RegisteredOperationName::Model< ConcreteOp >::setPropertiesFromAttr ( OperationName opName,
PropertyRef properties,
Attribute attr,
function_ref< InFlightDiagnostic()> emitError )
inlinefinalvirtual

◆ verifyInherentAttrs()

template<typename ConcreteOp>
LogicalResult mlir::RegisteredOperationName::Model< ConcreteOp >::verifyInherentAttrs ( OperationName opName,
NamedAttrList & attributes,
function_ref< InFlightDiagnostic()> emitError )
inlinefinalvirtual

Implements mlir::OperationName::InterfaceConcept.

Definition at line 618 of file OperationSupport.h.

References mlir::emitError(), hasProperties, and success().

◆ verifyInvariants()

template<typename ConcreteOp>
LogicalResult mlir::RegisteredOperationName::Model< ConcreteOp >::verifyInvariants ( Operation * op)
inlinefinalvirtual

Implements mlir::OperationName::InterfaceConcept.

Definition at line 582 of file OperationSupport.h.

◆ verifyRegionInvariants()

template<typename ConcreteOp>
LogicalResult mlir::RegisteredOperationName::Model< ConcreteOp >::verifyRegionInvariants ( Operation * op)
inlinefinalvirtual

Implements mlir::OperationName::InterfaceConcept.

Definition at line 585 of file OperationSupport.h.

Member Data Documentation

◆ hasProperties

template<typename ConcreteOp>
bool mlir::RegisteredOperationName::Model< ConcreteOp >::hasProperties
staticconstexpr
Initial value:
= !std::is_same_v<
typename ConcreteOp::template InferredProperties<ConcreteOp>,
Structure used by default as a "marker" when no "Properties" are set on an Operation.

Definition at line 625 of file OperationSupport.h.

Referenced by compareProperties(), getInherentAttr(), getOpPropertyByteSize(), getPropertiesAsAttr(), hashProperties(), initProperties(), populateDefaultProperties(), populateInherentAttrs(), setInherentAttr(), setPropertiesFromAttr(), and verifyInherentAttrs().


The documentation for this struct was generated from the following file: