MLIR
21.0.0git
|
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"
Public Member Functions | |
PyOpView (const nanobind::object &operationObject) | |
PyOperation & | getOperation () override |
Each must provide access to the raw Operation. More... | |
nanobind::object | getOperationObject () |
![]() | |
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... | |
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.
PyOpView::PyOpView | ( | const nanobind::object & | operationObject | ) |
Definition at line 2111 of file IRCore.cpp.
|
static |
Definition at line 1919 of file IRCore.cpp.
References mlir::python::PyOperation::create(), mlir::detail::enumerate(), mlir::python::PyMlirContext::get(), getOpResultOrValue(), mlirDenseI32ArrayGet(), and populateResultTypes().
|
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().
|
inlineoverridevirtual |
Each must provide access to the raw Operation.
Implements mlir::python::PyOperationBase.
Definition at line 765 of file IRModule.h.
|
inline |
Definition at line 767 of file IRModule.h.