Skip to content

tensor

Classes:

TensorVisitorMixin

Bases: VisitorMixinBase

Methods:

visit

visit(node: TensorRelease) -> None
Source code in packages/irx/src/irx/builder/lowering/tensor.py
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
@VisitorCore.visit.dispatch
def visit(self, node: astx.TensorRelease) -> None:
    """
    title: Visit TensorRelease nodes.
    parameters:
      node:
        type: astx.TensorRelease
    """
    release = self.require_runtime_symbol(
        "buffer",
        "irx_buffer_view_release",
    )
    value = self._require_tensor_value(node.base)
    slot = self._llvm.ir_builder.alloca(
        self._llvm.BUFFER_VIEW_TYPE,
        name="irx_tensor_release_view",
    )
    self._llvm.ir_builder.store(value, slot)
    self.result_stack.append(
        self._llvm.ir_builder.call(
            release,
            [slot],
            name="irx_tensor_release_status",
        )
    )