My Project
Public Member Functions | Static Public Member Functions | List of all members
mlir::edsc::BlockHandle Class Reference

#include <Builders.h>

Inheritance diagram for mlir::edsc::BlockHandle:
Inheritance graph
[legend]
Collaboration diagram for mlir::edsc::BlockHandle:
Collaboration graph
[legend]

Public Member Functions

 BlockHandle ()
 
 BlockHandle (mlir::Block *block)
 
 BlockHandle (const BlockHandle &)=default
 
BlockHandleoperator= (const BlockHandle &)=default
 
 operator bool ()
 
 operator mlir::Block * ()
 
mlir::BlockgetBlock ()
 

Static Public Member Functions

static BlockHandle create (ArrayRef< Type > argTypes)
 Delegates block creation to MLIR and wrap the resulting mlir::Block. More...
 

Additional Inherited Members

- Protected Member Functions inherited from mlir::edsc::CapturableHandle
 CapturableHandle ()=default
 

Detailed Description

A BlockHandle represents a (potentially "delayed") Block abstraction. This extra abstraction is necessary because an mlir::Block is not an mlir::Value. A BlockHandle should be captured by pointer but otherwise passed by Value everywhere.

Constructor & Destructor Documentation

◆ BlockHandle() [1/3]

mlir::edsc::BlockHandle::BlockHandle ( )
inline

A BlockHandle constructed without an mlir::Block* represents a "delayed" Block. A delayed Block represents the declaration (in the PL sense) of a placeholder for an mlir::Block* that will be constructed and captured at some later point in the program.

◆ BlockHandle() [2/3]

mlir::edsc::BlockHandle::BlockHandle ( mlir::Block block)
inline

A BlockHandle constructed with an mlir::Block* represents an "eager" Block. An eager Block represents both the declaration and the definition (in the PL sense) of a placeholder for an mlir::Block* that has already been constructed in the past and that is captured "now" in the program.

◆ BlockHandle() [3/3]

mlir::edsc::BlockHandle::BlockHandle ( const BlockHandle )
default

BlockHandle is a value type, use the default copy constructor and assignment operator.

Member Function Documentation

◆ create()

BlockHandle mlir::edsc::BlockHandle::create ( ArrayRef< Type argTypes)
static

Delegates block creation to MLIR and wrap the resulting mlir::Block.

◆ getBlock()

mlir::Block* mlir::edsc::BlockHandle::getBlock ( )
inline

◆ operator bool()

mlir::edsc::BlockHandle::operator bool ( )
inline

◆ operator mlir::Block *()

mlir::edsc::BlockHandle::operator mlir::Block * ( )
inline

◆ operator=()

BlockHandle& mlir::edsc::BlockHandle::operator= ( const BlockHandle )
default

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