Skip to content

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.