MLIR  19.0.0git
Public Member Functions | Public Attributes | Friends | List of all members
mlir::OperationState Struct Reference

This represents an operation in an abstracted form, suitable for use with the builder APIs. More...

#include "mlir/IR/OperationSupport.h"

Public Member Functions

 OperationState (Location location, StringRef name)
 
 OperationState (Location location, OperationName name)
 
 OperationState (Location location, OperationName name, ValueRange operands, TypeRange types, ArrayRef< NamedAttribute > attributes={}, BlockRange successors={}, MutableArrayRef< std::unique_ptr< Region >> regions={})
 
 OperationState (Location location, StringRef name, ValueRange operands, TypeRange types, ArrayRef< NamedAttribute > attributes={}, BlockRange successors={}, MutableArrayRef< std::unique_ptr< Region >> regions={})
 
 OperationState (OperationState &&other)=default
 
 OperationState (const OperationState &other)=default
 
OperationStateoperator= (OperationState &&other)=default
 
OperationStateoperator= (const OperationState &other)=default
 
 ~OperationState ()
 
template<typename T >
T & getOrAddProperties ()
 Get (or create) a properties of the provided type to be set on the operation on creation. More...
 
OpaqueProperties getRawProperties ()
 
LogicalResult setProperties (Operation *op, function_ref< InFlightDiagnostic()> emitError) const
 
void addOperands (ValueRange newOperands)
 
void addTypes (ArrayRef< Type > newTypes)
 
template<typename RangeT >
std::enable_if_t<!std::is_convertible< RangeT, ArrayRef< Type > >::value > addTypes (RangeT &&newTypes)
 
void addAttribute (StringRef name, Attribute attr)
 Add an attribute with the specified name. More...
 
void addAttribute (StringAttr name, Attribute attr)
 Add an attribute with the specified name. More...
 
void addAttributes (ArrayRef< NamedAttribute > newAttributes)
 Add an array of named attributes. More...
 
void addSuccessors (Block *successor)
 
void addSuccessors (BlockRange newSuccessors)
 
RegionaddRegion ()
 Create a region that should be attached to the operation. More...
 
void addRegion (std::unique_ptr< Region > &&region)
 Take a region that should be attached to the Operation. More...
 
void addRegions (MutableArrayRef< std::unique_ptr< Region >> regions)
 Take ownership of a set of regions that should be attached to the Operation. More...
 
MLIRContextgetContext () const
 Get the context held by this operation state. More...
 

Public Attributes

Location location
 
OperationName name
 
SmallVector< Value, 4 > operands
 
SmallVector< Type, 4 > types
 Types of the results of this operation. More...
 
NamedAttrList attributes
 
SmallVector< Block *, 1 > successors
 Successors of this operation and their respective operands. More...
 
SmallVector< std::unique_ptr< Region >, 1 > regions
 Regions that the op will hold. More...
 
Attribute propertiesAttr
 

Friends

class Operation
 

Detailed Description

This represents an operation in an abstracted form, suitable for use with the builder APIs.

This object is a large and heavy weight object meant to be used as a temporary object on the stack. It is generally unwise to put this in a collection.

Definition at line 951 of file OperationSupport.h.

Constructor & Destructor Documentation

◆ OperationState() [1/6]

OperationState::OperationState ( Location  location,
StringRef  name 
)

Definition at line 169 of file OperationSupport.cpp.

◆ OperationState() [2/6]

OperationState::OperationState ( Location  location,
OperationName  name 
)

Definition at line 172 of file OperationSupport.cpp.

◆ OperationState() [3/6]

OperationState::OperationState ( Location  location,
OperationName  name,
ValueRange  operands,
TypeRange  types,
ArrayRef< NamedAttribute attributes = {},
BlockRange  successors = {},
MutableArrayRef< std::unique_ptr< Region >>  regions = {} 
)

Definition at line 175 of file OperationSupport.cpp.

References regions.

◆ OperationState() [4/6]

OperationState::OperationState ( Location  location,
StringRef  name,
ValueRange  operands,
TypeRange  types,
ArrayRef< NamedAttribute attributes = {},
BlockRange  successors = {},
MutableArrayRef< std::unique_ptr< Region >>  regions = {} 
)

Definition at line 188 of file OperationSupport.cpp.

◆ OperationState() [5/6]

mlir::OperationState::OperationState ( OperationState &&  other)
default

◆ OperationState() [6/6]

mlir::OperationState::OperationState ( const OperationState other)
default

◆ ~OperationState()

OperationState::~OperationState ( )

Definition at line 196 of file OperationSupport.cpp.

Member Function Documentation

◆ addAttribute() [1/2]

void mlir::OperationState::addAttribute ( StringAttr  name,
Attribute  attr 
)
inline

Add an attribute with the specified name.

Definition at line 1038 of file OperationSupport.h.

References mlir::NamedAttrList::append(), attributes, and name.

◆ addAttribute() [2/2]

void mlir::OperationState::addAttribute ( StringRef  name,
Attribute  attr 
)
inline

◆ addAttributes()

void mlir::OperationState::addAttributes ( ArrayRef< NamedAttribute newAttributes)
inline

Add an array of named attributes.

Definition at line 1043 of file OperationSupport.h.

References mlir::NamedAttrList::append(), and attributes.

◆ addOperands()

void OperationState::addOperands ( ValueRange  newOperands)

◆ addRegion() [1/2]

Region * OperationState::addRegion ( )

Create a region that should be attached to the operation.

These regions can be filled in immediately without waiting for Operation to be created. When it is, the region bodies will be transferred.

Definition at line 220 of file OperationSupport.cpp.

References regions.

Referenced by addBodyWithPayloadOp(), addRegions(), mlir::function_interface_impl::parseFunctionOp(), and parseNamedStructuredOp().

◆ addRegion() [2/2]

void OperationState::addRegion ( std::unique_ptr< Region > &&  region)

Take a region that should be attached to the Operation.

The body of the region will be transferred when the Operation is constructed. If the region is null, a new empty region will be attached to the Operation.

Definition at line 225 of file OperationSupport.cpp.

References regions.

◆ addRegions()

void OperationState::addRegions ( MutableArrayRef< std::unique_ptr< Region >>  regions)

Take ownership of a set of regions that should be attached to the Operation.

Definition at line 229 of file OperationSupport.cpp.

References addRegion(), and regions.

◆ addSuccessors() [1/2]

void mlir::OperationState::addSuccessors ( Block successor)
inline

Definition at line 1047 of file OperationSupport.h.

References successors.

◆ addSuccessors() [2/2]

void OperationState::addSuccessors ( BlockRange  newSuccessors)

Definition at line 216 of file OperationSupport.cpp.

References successors.

◆ addTypes() [1/2]

void mlir::OperationState::addTypes ( ArrayRef< Type newTypes)
inline

◆ addTypes() [2/2]

template<typename RangeT >
std::enable_if_t<!std::is_convertible<RangeT, ArrayRef<Type> >::value> mlir::OperationState::addTypes ( RangeT &&  newTypes)
inline

Definition at line 1028 of file OperationSupport.h.

References types.

◆ getContext()

MLIRContext* mlir::OperationState::getContext ( ) const
inline

Get the context held by this operation state.

Definition at line 1065 of file OperationSupport.h.

References mlir::Attribute::getContext(), and location.

Referenced by addAttribute(), and mlir::Op< ConcreteType, Traits >::parseProperties().

◆ getOrAddProperties()

template<typename T >
T& mlir::OperationState::getOrAddProperties ( )
inline

Get (or create) a properties of the provided type to be set on the operation on creation.

Definition at line 997 of file OperationSupport.h.

References mlir::OpaqueProperties::as().

Referenced by mlir::Op< ConcreteType, Traits >::parseProperties().

◆ getRawProperties()

OpaqueProperties mlir::OperationState::getRawProperties ( )
inline

Definition at line 1013 of file OperationSupport.h.

◆ operator=() [1/2]

OperationState& mlir::OperationState::operator= ( const OperationState other)
default

◆ operator=() [2/2]

OperationState& mlir::OperationState::operator= ( OperationState &&  other)
default

◆ setProperties()

LogicalResult OperationState::setProperties ( Operation op,
function_ref< InFlightDiagnostic()>  emitError 
) const

Definition at line 201 of file OperationSupport.cpp.

Friends And Related Function Documentation

◆ Operation

friend class Operation
friend

Definition at line 974 of file OperationSupport.h.

Member Data Documentation

◆ attributes

NamedAttrList mlir::OperationState::attributes

◆ location

Location mlir::OperationState::location

◆ name

OperationName mlir::OperationState::name

◆ operands

SmallVector<Value, 4> mlir::OperationState::operands

◆ propertiesAttr

Attribute mlir::OperationState::propertiesAttr

Definition at line 966 of file OperationSupport.h.

Referenced by parseCommonStructuredOpParts().

◆ regions

SmallVector<std::unique_ptr<Region>, 1> mlir::OperationState::regions

Regions that the op will hold.

Definition at line 961 of file OperationSupport.h.

Referenced by addRegion(), addRegions(), and OperationState().

◆ successors

SmallVector<Block *, 1> mlir::OperationState::successors

Successors of this operation and their respective operands.

Definition at line 959 of file OperationSupport.h.

Referenced by addSuccessors().

◆ types

SmallVector<Type, 4> mlir::OperationState::types

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