Skip to content

Callable

CallableStmtInterface dataclass

CallableStmtInterface()

Bases: StmtTrait, ABC, Generic[StmtType]


              flowchart TD
              kirin.ir.traits.callable.CallableStmtInterface[CallableStmtInterface]
              kirin.ir.traits.abc.StmtTrait[StmtTrait]
              kirin.ir.traits.abc.Trait[Trait]

                              kirin.ir.traits.abc.StmtTrait --> kirin.ir.traits.callable.CallableStmtInterface
                                kirin.ir.traits.abc.Trait --> kirin.ir.traits.abc.StmtTrait
                



              click kirin.ir.traits.callable.CallableStmtInterface href "" "kirin.ir.traits.callable.CallableStmtInterface"
              click kirin.ir.traits.abc.StmtTrait href "" "kirin.ir.traits.abc.StmtTrait"
              click kirin.ir.traits.abc.Trait href "" "kirin.ir.traits.abc.Trait"
            

A trait that indicates that a statement is a callable statement.

A callable statement is a statement that can be called as a function.

align_input_args abstractmethod classmethod

align_input_args(
    stmt: "StmtType", *args: ValueType, **kwargs: ValueType
) -> tuple[ValueType, ...]

Permute the arguments and keyword arguments of the statement to match the execution order of the callable region input.

Source code in src/kirin/ir/traits/callable.py
31
32
33
34
35
36
37
38
39
@classmethod
@abstractmethod
def align_input_args(
    cls, stmt: "StmtType", *args: ValueType, **kwargs: ValueType
) -> tuple[ValueType, ...]:
    """Permute the arguments and keyword arguments of the statement
    to match the execution order of the callable region input.
    """
    ...

get_callable_region abstractmethod classmethod

get_callable_region(stmt: StmtType) -> 'Region'

Returns the body of the callable region

Source code in src/kirin/ir/traits/callable.py
23
24
25
26
27
@classmethod
@abstractmethod
def get_callable_region(cls, stmt: StmtType) -> "Region":
    """Returns the body of the callable region"""
    ...

HasSignature dataclass

HasSignature()

Bases: StmtTrait, ABC


              flowchart TD
              kirin.ir.traits.callable.HasSignature[HasSignature]
              kirin.ir.traits.abc.StmtTrait[StmtTrait]
              kirin.ir.traits.abc.Trait[Trait]

                              kirin.ir.traits.abc.StmtTrait --> kirin.ir.traits.callable.HasSignature
                                kirin.ir.traits.abc.Trait --> kirin.ir.traits.abc.StmtTrait
                



              click kirin.ir.traits.callable.HasSignature href "" "kirin.ir.traits.callable.HasSignature"
              click kirin.ir.traits.abc.StmtTrait href "" "kirin.ir.traits.abc.StmtTrait"
              click kirin.ir.traits.abc.Trait href "" "kirin.ir.traits.abc.Trait"
            

A trait that indicates that a statement has a function signature attribute.

StaticCall dataclass

StaticCall()

Bases: StmtTrait, ABC, Generic[StmtType]


              flowchart TD
              kirin.ir.traits.callable.StaticCall[StaticCall]
              kirin.ir.traits.abc.StmtTrait[StmtTrait]
              kirin.ir.traits.abc.Trait[Trait]

                              kirin.ir.traits.abc.StmtTrait --> kirin.ir.traits.callable.StaticCall
                                kirin.ir.traits.abc.Trait --> kirin.ir.traits.abc.StmtTrait
                



              click kirin.ir.traits.callable.StaticCall href "" "kirin.ir.traits.callable.StaticCall"
              click kirin.ir.traits.abc.StmtTrait href "" "kirin.ir.traits.abc.StmtTrait"
              click kirin.ir.traits.abc.Trait href "" "kirin.ir.traits.abc.Trait"
            

get_callee abstractmethod classmethod

get_callee(stmt: StmtType) -> 'Method'

Returns the callee of the static call statement.

Source code in src/kirin/ir/traits/callable.py
70
71
72
73
74
@classmethod
@abstractmethod
def get_callee(cls, stmt: StmtType) -> "Method":
    """Returns the callee of the static call statement."""
    ...