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

Public Types | |
| enum class | ValueAttr : yoi::indexT { Nullable , Raw , PermanentInCurrentScope , Borrow , NoBorrow } |
| enum class | valueType : yoi::indexT { integerRaw = 0 , decimalRaw , booleanRaw , shortRaw , unsignedRaw , characterObject , stringLiteral , structObject , null , integerObject , booleanObject , decimalObject , shortObject , unsignedObject , stringObject , virtualMethod , pointerObject , pointer , interfaceObject , none , charRaw , incompleteTemplateType , foreignInt32Type , foreignFloatType , bracedInitalizerList , datastructObject } |
Public Attributes | |
| enum yoi::IRValueType::valueType | type |
| yoi::indexT | typeAffiliateModule |
| yoi::indexT | typeIndex |
| yoi::vec< yoi::indexT > | dimensions |
| yoi::vec< IRValueType > | bracedTypes |
| std::set< ValueAttr > | attributes |
| IRMetadata | metadata |
|
strong |
|
strong |
| IRValueType | ( | ) |
| IRValueType | ( | IRValueType::valueType | type | ) |
| IRValueType | ( | IRValueType::valueType | type, |
| yoi::indexT | typeAffiliateModule, | ||
| yoi::indexT | objectPrototypeIndex | ||
| ) |
| IRValueType | ( | valueType | type, |
| yoi::indexT | typeAffiliateModule, | ||
| yoi::indexT | objectPrototypeIndex, | ||
| const std::set< ValueAttr > & | attributes | ||
| ) |
| IRValueType | ( | valueType | type, |
| const yoi::vec< yoi::indexT > & | dimensions | ||
| ) |
| IRValueType | ( | valueType | type, |
| const yoi::vec< yoi::IRValueType > & | bracedTypes | ||
| ) |
| IRValueType | ( | valueType | type, |
| yoi::indexT | typeAffiliateModule, | ||
| yoi::indexT | objectPrototypeIndex, | ||
| const yoi::vec< yoi::indexT > & | dimensions | ||
| ) |
| IRValueType & addAttribute | ( | ValueAttr | attr | ) |
Definition at line 1361 of file IR.cpp.
Referenced by LLVMCodegen::generateFunction(), and LLVMCodegen::generateInstruction().

| yoi::indexT calculateDimensionSize | ( | ) | const |
| IRValueType getArrayType | ( | const yoi::vec< yoi::indexT > & | dimensions | ) |
Definition at line 1160 of file IR.cpp.
References IRValueType::dimensions, IRValueType::type, IRValueType::typeAffiliateModule, and IRValueType::typeIndex.
| IRValueType getBasicObjectType | ( | ) | const |
Definition at line 1404 of file IR.cpp.
References IRValueType::booleanObject, IRValueType::booleanRaw, IRValueType::characterObject, IRValueType::charRaw, IRValueType::decimalObject, IRValueType::decimalRaw, IRValueType::dimensions, IRValueType::integerObject, IRValueType::integerRaw, IRValueType::shortObject, IRValueType::shortRaw, IRValueType::stringLiteral, IRValueType::stringObject, IRValueType::type, IRValueType::typeAffiliateModule, IRValueType::typeIndex, IRValueType::unsignedObject, and IRValueType::unsignedRaw.
| IRValueType getBasicRawType | ( | ) | const |
Definition at line 1374 of file IR.cpp.
References IRValueType::booleanObject, IRValueType::booleanRaw, IRValueType::characterObject, IRValueType::charRaw, IRValueType::decimalObject, IRValueType::decimalRaw, IRValueType::integerObject, IRValueType::integerRaw, IRValueType::shortObject, IRValueType::shortRaw, IRValueType::stringLiteral, IRValueType::stringObject, IRValueType::type, IRValueType::unsignedObject, and IRValueType::unsignedRaw.
Referenced by IRFunctionOptimizer::analyzeBlockForRaw().

| IRValueType getDynamicArrayType | ( | ) |
| IRValueType getElementType | ( | ) |
Definition at line 1101 of file IR.cpp.
References IRValueType::type, IRValueType::typeAffiliateModule, and IRValueType::typeIndex.
| IRValueType getNormalizedForeignBasicType | ( | ) |
Definition at line 643 of file IR.cpp.
References IRValueType::decimalObject, IRValueType::foreignFloatType, IRValueType::foreignInt32Type, IRValueType::integerObject, IRValueType::pointer, IRValueType::type, and IRValueType::unsignedObject.
| bool is1ByteType | ( | ) | const |
Definition at line 639 of file IR.cpp.
References IRValueType::booleanObject, IRValueType::characterObject, and IRValueType::type.
| bool isBasicRawType | ( | ) | const |
Definition at line 1369 of file IR.cpp.
References IRValueType::booleanRaw, IRValueType::charRaw, IRValueType::decimalRaw, IRValueType::integerRaw, IRValueType::shortRaw, IRValueType::stringLiteral, IRValueType::type, and IRValueType::unsignedRaw.
| bool isBasicType | ( | ) | const |
Definition at line 628 of file IR.cpp.
References IRValueType::booleanObject, IRValueType::characterObject, IRValueType::datastructObject, IRValueType::decimalObject, IRValueType::foreignFloatType, IRValueType::foreignInt32Type, IRValueType::integerObject, IRValueType::pointer, IRValueType::shortObject, IRValueType::stringObject, IRValueType::type, and IRValueType::unsignedObject.
| bool isForeignBasicType | ( | ) | const |
Definition at line 635 of file IR.cpp.
References IRValueType::foreignFloatType, IRValueType::foreignInt32Type, IRValueType::pointer, and IRValueType::type.
| bool operator== | ( | const yoi::IRValueType & | rhs | ) | const |
Definition at line 753 of file IR.cpp.
References IRValueType::dimensions, IRValueType::type, IRValueType::typeAffiliateModule, and IRValueType::typeIndex.
| IRValueType & removeAttribute | ( | ValueAttr | attr | ) |
| yoi::wstr to_string | ( | bool | showAttributes = false | ) | const |
Definition at line 661 of file IR.cpp.
References IRValueType::attributes, IRValueType::booleanObject, IRValueType::booleanRaw, IRValueType::characterObject, IRValueType::datastructObject, IRValueType::decimalObject, IRValueType::decimalRaw, IRValueType::dimensions, magic_enum::enum_name(), IRValueType::incompleteTemplateType, IRValueType::integerObject, IRValueType::integerRaw, IRValueType::interfaceObject, IRValueType::metadata, IRValueType::none, IRValueType::null, IRValueType::pointer, IRValueType::pointerObject, IRValueType::shortObject, IRValueType::shortRaw, yoi::string2wstring(), IRValueType::stringLiteral, IRValueType::stringObject, IRValueType::structObject, IRMetadata::to_string(), IRValueType::type, IRValueType::typeAffiliateModule, IRValueType::typeIndex, IRValueType::unsignedObject, IRValueType::unsignedRaw, and IRValueType::virtualMethod.

| std::set<ValueAttr> attributes |
Definition at line 145 of file IR.h.
Referenced by IRValueType::to_string().
| yoi::vec<IRValueType> bracedTypes |
| yoi::vec<yoi::indexT> dimensions |
Definition at line 141 of file IR.h.
Referenced by IRValueType::getArrayType(), IRValueType::getBasicObjectType(), IRValueType::operator==(), and IRValueType::to_string().
| IRMetadata metadata |
Definition at line 147 of file IR.h.
Referenced by IRValueType::to_string().
| enum yoi::IRValueType::valueType type |
Referenced by IRValueType::getArrayType(), IRValueType::getBasicObjectType(), IRValueType::getBasicRawType(), IRValueType::getElementType(), IRValueType::getNormalizedForeignBasicType(), IRValueType::is1ByteType(), IRValueType::isBasicRawType(), IRValueType::isBasicType(), IRValueType::isForeignBasicType(), IRValueType::operator==(), and IRValueType::to_string().
| yoi::indexT typeAffiliateModule |
Definition at line 138 of file IR.h.
Referenced by IRValueType::getArrayType(), IRValueType::getBasicObjectType(), IRValueType::getElementType(), LLVMCodegen::handleForeignTypeConv(), IRValueType::operator==(), and IRValueType::to_string().
| yoi::indexT typeIndex |
Definition at line 139 of file IR.h.
Referenced by IRValueType::getArrayType(), IRValueType::getBasicObjectType(), IRValueType::getElementType(), IRValueType::operator==(), and IRValueType::to_string().