MLIR  21.0.0git
Public Member Functions | Static Public Member Functions | List of all members
mlir::python::PyOpView Class Reference

A PyOpView is equivalent to the C++ "Op" wrappers: these are the basis for providing more instance-specific accessors and serve as the base class for custom ODS-style operation classes. More...

#include "Bindings/Python/IRModule.h"

+ Inheritance diagram for mlir::python::PyOpView:

Public Member Functions

 PyOpView (const nanobind::object &operationObject)
 
PyOperationgetOperation () override
 Each must provide access to the raw Operation. More...
 
nanobind::object getOperationObject ()
 
- Public Member Functions inherited from mlir::python::PyOperationBase
virtual ~PyOperationBase ()=default
 
void print (std::optional< int64_t > largeElementsLimit, bool enableDebugInfo, bool prettyDebugInfo, bool printGenericOpForm, bool useLocalScope, bool useNameLocAsPrefix, bool assumeVerified, nanobind::object fileObject, bool binary, bool skipRegions)
 Implements the bound 'print' method and helps with others. More...
 
void print (PyAsmState &state, nanobind::object fileObject, bool binary)
 
nanobind::object getAsm (bool binary, std::optional< int64_t > largeElementsLimit, bool enableDebugInfo, bool prettyDebugInfo, bool printGenericOpForm, bool useLocalScope, bool useNameLocAsPrefix, bool assumeVerified, bool skipRegions)
 
void writeBytecode (const nanobind::object &fileObject, std::optional< int64_t > bytecodeVersion)
 
void walk (std::function< MlirWalkResult(MlirOperation)> callback, MlirWalkOrder walkOrder)
 
void moveAfter (PyOperationBase &other)
 Moves the operation before or after the other operation. More...
 
void moveBefore (PyOperationBase &other)
 
bool verify ()
 Verify the operation. More...
 

Static Public Member Functions

static nanobind::object buildGeneric (std::string_view name, std::tuple< int, bool > opRegionSpec, nanobind::object operandSegmentSpecObj, nanobind::object resultSegmentSpecObj, std::optional< nanobind::list > resultTypeList, nanobind::list operandList, std::optional< nanobind::dict > attributes, std::optional< std::vector< PyBlock * >> successors, std::optional< int > regions, DefaultingPyLocation location, const nanobind::object &maybeIp)
 
static nanobind::object constructDerived (const nanobind::object &cls, const nanobind::object &operation)
 Construct an instance of a class deriving from OpView, bypassing its __init__ method. More...
 

Detailed Description

A PyOpView is equivalent to the C++ "Op" wrappers: these are the basis for providing more instance-specific accessors and serve as the base class for custom ODS-style operation classes.

Since this class is subclass on the python side, it must present an init method that operates in pure python types.

Definition at line 762 of file IRModule.h.

Constructor & Destructor Documentation

◆ PyOpView()

PyOpView::PyOpView ( const nanobind::object &  operationObject)

Definition at line 2111 of file IRCore.cpp.

Member Function Documentation

◆ buildGeneric()

nb::object PyOpView::buildGeneric ( std::string_view  name,
std::tuple< int, bool >  opRegionSpec,
nanobind::object  operandSegmentSpecObj,
nanobind::object  resultSegmentSpecObj,
std::optional< nanobind::list >  resultTypeList,
nanobind::list  operandList,
std::optional< nanobind::dict >  attributes,
std::optional< std::vector< PyBlock * >>  successors,
std::optional< int >  regions,
DefaultingPyLocation  location,
const nanobind::object &  maybeIp 
)
static

◆ constructDerived()

nb::object PyOpView::constructDerived ( const nanobind::object &  cls,
const nanobind::object &  operation 
)
static

Construct an instance of a class deriving from OpView, bypassing its __init__ method.

The derived class will typically define a constructor that provides a convenient builder, but we need to side-step this when constructing an OpView for an already-built operation.

The caller is responsible for verifying that operation is a valid operation to construct cls with.

Definition at line 2103 of file IRCore.cpp.

Referenced by mlir::python::PyOperation::createOpView().

◆ getOperation()

PyOperation& mlir::python::PyOpView::getOperation ( )
inlineoverridevirtual

Each must provide access to the raw Operation.

Implements mlir::python::PyOperationBase.

Definition at line 765 of file IRModule.h.

◆ getOperationObject()

nanobind::object mlir::python::PyOpView::getOperationObject ( )
inline

Definition at line 767 of file IRModule.h.


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