Basic
ConstantLike dataclass
ConstantLike()
Bases: StmtTrait
flowchart TD
kirin.ir.traits.basic.ConstantLike[ConstantLike]
kirin.ir.traits.abc.StmtTrait[StmtTrait]
kirin.ir.traits.abc.Trait[Trait]
kirin.ir.traits.abc.StmtTrait --> kirin.ir.traits.basic.ConstantLike
kirin.ir.traits.abc.Trait --> kirin.ir.traits.abc.StmtTrait
click kirin.ir.traits.basic.ConstantLike href "" "kirin.ir.traits.basic.ConstantLike"
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 constant-like, i.e., it represents a constant value.
HasParent dataclass
HasParent(parents: tuple[type[Statement]])
Bases: StmtTrait
flowchart TD
kirin.ir.traits.basic.HasParent[HasParent]
kirin.ir.traits.abc.StmtTrait[StmtTrait]
kirin.ir.traits.abc.Trait[Trait]
kirin.ir.traits.abc.StmtTrait --> kirin.ir.traits.basic.HasParent
kirin.ir.traits.abc.Trait --> kirin.ir.traits.abc.StmtTrait
click kirin.ir.traits.basic.HasParent href "" "kirin.ir.traits.basic.HasParent"
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 parent statement.
IsTerminator dataclass
IsTerminator()
Bases: StmtTrait
flowchart TD
kirin.ir.traits.basic.IsTerminator[IsTerminator]
kirin.ir.traits.abc.StmtTrait[StmtTrait]
kirin.ir.traits.abc.Trait[Trait]
kirin.ir.traits.abc.StmtTrait --> kirin.ir.traits.basic.IsTerminator
kirin.ir.traits.abc.Trait --> kirin.ir.traits.abc.StmtTrait
click kirin.ir.traits.basic.IsTerminator href "" "kirin.ir.traits.basic.IsTerminator"
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 terminator, i.e., it terminates a block.
MaybePure dataclass
MaybePure()
Bases: StmtTrait
flowchart TD
kirin.ir.traits.basic.MaybePure[MaybePure]
kirin.ir.traits.abc.StmtTrait[StmtTrait]
kirin.ir.traits.abc.Trait[Trait]
kirin.ir.traits.abc.StmtTrait --> kirin.ir.traits.basic.MaybePure
kirin.ir.traits.abc.Trait --> kirin.ir.traits.abc.StmtTrait
click kirin.ir.traits.basic.MaybePure href "" "kirin.ir.traits.basic.MaybePure"
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 the statement may be pure, i.e., a call statement can be pure if the callee is pure.
NoTerminator dataclass
NoTerminator()
Bases: StmtTrait
flowchart TD
kirin.ir.traits.basic.NoTerminator[NoTerminator]
kirin.ir.traits.abc.StmtTrait[StmtTrait]
kirin.ir.traits.abc.Trait[Trait]
kirin.ir.traits.abc.StmtTrait --> kirin.ir.traits.basic.NoTerminator
kirin.ir.traits.abc.Trait --> kirin.ir.traits.abc.StmtTrait
click kirin.ir.traits.basic.NoTerminator href "" "kirin.ir.traits.basic.NoTerminator"
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 the region of a statement has no terminator.
Pure dataclass
Pure()
Bases: StmtTrait
flowchart TD
kirin.ir.traits.basic.Pure[Pure]
kirin.ir.traits.abc.StmtTrait[StmtTrait]
kirin.ir.traits.abc.Trait[Trait]
kirin.ir.traits.abc.StmtTrait --> kirin.ir.traits.basic.Pure
kirin.ir.traits.abc.Trait --> kirin.ir.traits.abc.StmtTrait
click kirin.ir.traits.basic.Pure href "" "kirin.ir.traits.basic.Pure"
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 pure, i.e., it has no side effects.