|
hoshi-lang dev
Yet another programming language
|
#include <IR.h>

Classes | |
| struct | Builder |
Public Types | |
| enum class | FunctionAttrs { AlwaysInline , BuiltinImplementation , NoFFI , Variadic , Static , Constructor , Finalizer , Unreachable , Preserve , NoRawAndNullOptimization , Intrinsic , Throws , Generator } |
Public Member Functions | |
| IRFunctionDefinition (const yoi::wstr &name, const yoi::vec< std::pair< yoi::wstr, std::shared_ptr< IRValueType > > > &argumentTypes, const std::shared_ptr< IRValueType > &returnType, const yoi::vec< std::shared_ptr< IRCodeBlock > > &codeBlock, const std::set< FunctionAttrs > &attrs, const IRDebugInfo &debugInfo) | |
| IRVariableTable & | getVariableTable () |
| yoi::wstr | to_string (yoi::indexT indent=0) |
| bool | hasAttribute (const FunctionAttrs &attr) |
Public Attributes | |
| yoi::wstr | name |
| yoi::vec< std::shared_ptr< IRValueType > > | argumentTypes |
| std::shared_ptr< IRValueType > | returnType |
| yoi::vec< std::shared_ptr< IRCodeBlock > > | codeBlock |
| IRVariableTable | variableTable |
| std::set< FunctionAttrs > | attrs |
| IRDebugInfo | debugInfo |
| yoi::indexT | linkedModuleId |
|
strong |
| IRFunctionDefinition | ( | const yoi::wstr & | name, |
| const yoi::vec< std::pair< yoi::wstr, std::shared_ptr< IRValueType > > > & | argumentTypes, | ||
| const std::shared_ptr< IRValueType > & | returnType, | ||
| const yoi::vec< std::shared_ptr< IRCodeBlock > > & | codeBlock, | ||
| const std::set< FunctionAttrs > & | attrs, | ||
| const IRDebugInfo & | debugInfo | ||
| ) |
Definition at line 605 of file IR.cpp.
References IRFunctionDefinition::argumentTypes, IRVariableTable::createScope(), IRVariableTable::put(), and IRFunctionDefinition::variableTable.

| IRVariableTable & getVariableTable | ( | ) |
Definition at line 619 of file IR.cpp.
References IRFunctionDefinition::variableTable.
Referenced by LLVMCodegen::generateFunction().

| bool hasAttribute | ( | const FunctionAttrs & | attr | ) |
Definition at line 1425 of file IR.cpp.
References IRFunctionDefinition::attrs.
| yoi::wstr to_string | ( | yoi::indexT | indent = 0 | ) |
Definition at line 522 of file IR.cpp.
References IRFunctionDefinition::argumentTypes, IRFunctionDefinition::name, IRFunctionDefinition::returnType, IRVariableTable::to_string(), and IRFunctionDefinition::variableTable.

| yoi::vec<std::shared_ptr<IRValueType> > argumentTypes |
Definition at line 480 of file IR.h.
Referenced by IRFunctionDefinition::Builder::addArgument(), LLVMCodegen::generateFunction(), IRFunctionDefinition::IRFunctionDefinition(), IRFunctionDefinition::to_string(), and IRFunctionDefinition::Builder::yield().
| std::set<FunctionAttrs> attrs |
Definition at line 484 of file IR.h.
Referenced by IRFunctionDefinition::Builder::addAttr(), IRFunctionDefinition::hasAttribute(), and IRFunctionDefinition::Builder::yield().
| yoi::vec<std::shared_ptr<IRCodeBlock> > codeBlock |
Definition at line 482 of file IR.h.
Referenced by LLVMCodegen::generateFunction().
| IRDebugInfo debugInfo |
Definition at line 485 of file IR.h.
Referenced by LLVMCodegen::generateFunction(), and IRFunctionDefinition::Builder::yield().
| yoi::indexT linkedModuleId |
| yoi::wstr name |
Definition at line 479 of file IR.h.
Referenced by LLVMCodegen::generateFunction(), IRInterfaceImplementationDefinition::Builder::setName(), IRInterfaceInstanceDefinition::Builder::setName(), IRFunctionDefinition::to_string(), IRFunctionDefinition::Builder::yield(), IRInterfaceImplementationDefinition::Builder::yield(), and IRInterfaceInstanceDefinition::Builder::yield().
| std::shared_ptr<IRValueType> returnType |
Definition at line 481 of file IR.h.
Referenced by LLVMCodegen::generateFunction(), IRFunctionDefinition::Builder::setReturnType(), IRFunctionDefinition::to_string(), and IRFunctionDefinition::Builder::yield().
| IRVariableTable variableTable |
Definition at line 483 of file IR.h.
Referenced by IRFunctionDefinition::getVariableTable(), IRFunctionDefinition::IRFunctionDefinition(), and IRFunctionDefinition::to_string().