Skip to content

array

Classes:

ArrayVisitorMixin

Bases: VisitorMixinBase

Methods:

visit

visit(node: NDArrayRelease) -> None
Source code in src/irx/builder/lowering/array.py
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
@VisitorCore.visit.dispatch
def visit(self, node: astx.NDArrayRelease) -> None:
    """
    title: Visit NDArrayRelease nodes.
    parameters:
      node:
        type: astx.NDArrayRelease
    """
    release = self.require_runtime_symbol(
        "buffer",
        "irx_buffer_view_release",
    )
    value = self._require_ndarray_value(node.base)
    slot = self._llvm.ir_builder.alloca(
        self._llvm.BUFFER_VIEW_TYPE,
        name="irx_ndarray_release_view",
    )
    self._llvm.ir_builder.store(value, slot)
    self.result_stack.append(
        self._llvm.ir_builder.call(
            release,
            [slot],
            name="irx_ndarray_release_status",
        )
    )