MLIR  16.0.0git
Public Member Functions | Public Attributes | 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"

+ Collaboration diagram for mlir::OperationState:

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={})
 
void addOperands (ValueRange newOperands)
 
void addTypes (ArrayRef< Type > newTypes)
 
template<typename RangeT >
std::enable_if_t<!std::is_convertible< RangeT, ArrayRef< Type > >::valueaddTypes (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...
 

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 628 of file OperationSupport.h.

Constructor & Destructor Documentation

◆ OperationState() [1/4]

OperationState::OperationState ( Location  location,
StringRef  name 
)

Definition at line 168 of file OperationSupport.cpp.

◆ OperationState() [2/4]

OperationState::OperationState ( Location  location,
OperationName  name 
)

Definition at line 171 of file OperationSupport.cpp.

◆ OperationState() [3/4]

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

Definition at line 174 of file OperationSupport.cpp.

References regions.

◆ OperationState() [4/4]

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

Definition at line 187 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 670 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 675 of file OperationSupport.h.

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

Referenced by buildStructuredOp().

◆ 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 203 of file OperationSupport.cpp.

References regions.

Referenced by addRegions(), buildStructuredOp(), mlir::clone(), mlir::cloneWithoutRegions(), mlirOperationCreate(), mlir::function_interface_impl::parseFunctionOp(), parseNamedStructuredOp(), and parseRegions().

◆ 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 208 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 212 of file OperationSupport.cpp.

References addRegion(), and regions.

◆ addSuccessors() [1/2]

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

Definition at line 679 of file OperationSupport.h.

References successors.

Referenced by mlirOperationCreate().

◆ addSuccessors() [2/2]

void OperationState::addSuccessors ( BlockRange  newSuccessors)

Definition at line 199 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 660 of file OperationSupport.h.

References types.

◆ getContext()

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

Get the context held by this operation state.

Definition at line 697 of file OperationSupport.h.

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

Referenced by addAttribute(), mlir::Operation::create(), and inferOperationTypes().

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

◆ regions

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

Regions that the op will hold.

Definition at line 638 of file OperationSupport.h.

Referenced by addRegion(), addRegions(), mlir::Operation::create(), inferOperationTypes(), and OperationState().

◆ successors

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

Successors of this operation and their respective operands.

Definition at line 636 of file OperationSupport.h.

Referenced by addSuccessors(), and mlir::Operation::create().

◆ types

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

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