Skip to content

Symbol

EntryPointInterface dataclass

EntryPointInterface()

Bases: StmtTrait, Generic[StmtType]


              flowchart TD
              kirin.ir.traits.symbol.EntryPointInterface[EntryPointInterface]
              kirin.ir.traits.abc.StmtTrait[StmtTrait]
              kirin.ir.traits.abc.Trait[Trait]

                              kirin.ir.traits.abc.StmtTrait --> kirin.ir.traits.symbol.EntryPointInterface
                                kirin.ir.traits.abc.Trait --> kirin.ir.traits.abc.StmtTrait
                



              click kirin.ir.traits.symbol.EntryPointInterface href "" "kirin.ir.traits.symbol.EntryPointInterface"
              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 module-like statement has an entry point.

An entry point is a statement that has a symbol name attribute and is the first statement in the module.

When interpreting statements with this trait, the interpreter will look for the entry point and start calling the module from there.

SymbolOpInterface dataclass

SymbolOpInterface()

Bases: StmtTrait


              flowchart TD
              kirin.ir.traits.symbol.SymbolOpInterface[SymbolOpInterface]
              kirin.ir.traits.abc.StmtTrait[StmtTrait]
              kirin.ir.traits.abc.Trait[Trait]

                              kirin.ir.traits.abc.StmtTrait --> kirin.ir.traits.symbol.SymbolOpInterface
                                kirin.ir.traits.abc.Trait --> kirin.ir.traits.abc.StmtTrait
                



              click kirin.ir.traits.symbol.SymbolOpInterface href "" "kirin.ir.traits.symbol.SymbolOpInterface"
              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 symbol operation.

A symbol operation is a statement that has a symbol name attribute.

SymbolTable dataclass

SymbolTable()

Bases: StmtTrait


              flowchart TD
              kirin.ir.traits.symbol.SymbolTable[SymbolTable]
              kirin.ir.traits.abc.StmtTrait[StmtTrait]
              kirin.ir.traits.abc.Trait[Trait]

                              kirin.ir.traits.abc.StmtTrait --> kirin.ir.traits.symbol.SymbolTable
                                kirin.ir.traits.abc.Trait --> kirin.ir.traits.abc.StmtTrait
                



              click kirin.ir.traits.symbol.SymbolTable href "" "kirin.ir.traits.symbol.SymbolTable"
              click kirin.ir.traits.abc.StmtTrait href "" "kirin.ir.traits.abc.StmtTrait"
              click kirin.ir.traits.abc.Trait href "" "kirin.ir.traits.abc.Trait"
            

Statement with SymbolTable trait can only have one region with one block.