mlir.dialects.ext ================= .. py:module:: mlir.dialects.ext Attributes ---------- .. autoapisummary:: mlir.dialects.ext.Operand mlir.dialects.ext.Result mlir.dialects.ext.Region Classes ------- .. autoapisummary:: mlir.dialects.ext.Operation mlir.dialects.ext.Dialect Module Contents --------------- .. py:data:: Operand .. py:data:: Result .. py:data:: Region .. py:class:: Operation(operation: Operation) Operation(name: str, opRegionSpec: tuple[int, bool], operandSegmentSpecObj: object | None = None, resultSegmentSpecObj: object | None = None, results: list | None = None, operands: list | None = None, attributes: dict | None = None, successors: collections.abc.Sequence[Block] | None = None, regions: int | None = None, loc: Location | None = None, ip: object | None = None) Bases: :py:obj:`ir` Base class of Python-defined operation. NOTE: Usually you don't need to use it directly. Use ``Dialect`` and ``.Operation`` of ``Dialect`` subclasses instead. .. py:method:: __init_subclass__(*, name: str = None, **kwargs) :classmethod: This method is to perform all magic to make a ``Operation`` subclass works like a dataclass, like: * generate the method to emit IRDL operations, * generate ``__init__`` method as an operation builder function, * generate operand, result and attribute accessors .. py:method:: _variadicity_to_segment(variadicity: mlir.dialects.irdl.Variadicity) -> int :staticmethod: .. py:method:: _generate_segments(operands_or_results: List[Union[OperandDef, ResultDef]]) -> List[int] :staticmethod: .. py:method:: _generate_init_signature(fields: List[FieldDef], can_infer_types: bool) -> inspect.Signature :staticmethod: .. py:method:: _generate_init_method(fields: List[FieldDef]) -> None :classmethod: .. py:method:: _generate_class_attributes(dialect_name: str, op_name: str, fields: List[FieldDef]) -> None :classmethod: .. py:method:: _generate_attr_properties(attrs: List[AttributeDef]) -> None :classmethod: .. py:method:: _generate_region_properties(regions: List[RegionDef]) -> None :classmethod: .. py:method:: _generate_operand_properties(operands: List[OperandDef]) -> None :classmethod: .. py:method:: _generate_result_properties(results: List[ResultDef]) -> None :classmethod: .. py:method:: _emit_operation() -> None :classmethod: .. py:class:: Dialect(descriptor: object) Bases: :py:obj:`ir` Base class of a Python-defined dialect. It can be used like the following example: .. code:: python class MyInt(Dialect, name="myint"): pass i32 = IntegerType[32] class ConstantOp(MyInt.Operation, name="constant"): value: IntegerAttr cst: Result[i32] class AddOp(MyInt.Operation, name="add"): lhs: Operand[i32] rhs: Operand[i32] res: Result[i32] .. py:method:: __init_subclass__(name: str, **kwargs) :classmethod: .. py:method:: _emit_dialect() -> None :classmethod: .. py:method:: _emit_module() -> ir :classmethod: .. py:method:: load() -> None :classmethod: