|
hoshi-lang dev
Yet another programming language
|
#include <llvmCodegenContext.hpp>

Classes | |
| struct | ControlFlowAnalysis |
| class | LLVMModuleContext |
| struct | StackValue |
| Stack Value struct exposed to original code base for compatibility. More... | |
| struct | ValueStackWithPhi |
Public Member Functions | |
| LLVMCodegen (std::shared_ptr< compilerContext > compilerCtx, const std::shared_ptr< IRModule > &yoiModule) | |
| yoi::vec< yoi::wstr > | generate () |
| void | dumpIR (const yoi::wstr &modulePath, const std::string &filename) |
Private Member Functions | |
| void | generate (LLVMModuleContext &llvmModCtx) |
| llvm::Module * | getModule (LLVMModuleContext &llvmModCtx) |
| void | declareRuntimeFunctions (LLVMModuleContext &llvmModCtx) |
| void | generateRuntimeFunctionImplementations (LLVMModuleContext &llvmModCtx) |
| void | generateBasicTypeDeclarations (LLVMModuleContext &llvmModCtx) |
| void | generateBasicTypeImplementations (LLVMModuleContext &llvmModCtx) |
| void | generateDeclarations (LLVMModuleContext &llvmModCtx) |
| void | generateStructShallowDeclarations (LLVMModuleContext &llvmModCtx) |
| void | generateDataStructShallowDeclarations (LLVMModuleContext &llvmModCtx) |
| void | generateGlobalDeclarations (LLVMModuleContext &llvmModCtx) |
| void | generateGlobalInitializers (LLVMModuleContext &llvmModCtx) |
| void | generateFunctionDeclarations (LLVMModuleContext &llvmModCtx) |
| void | generateImportFunctionDeclarations (LLVMModuleContext &llvmModCtx) |
| void | generateImplementations (LLVMModuleContext &llvmModCtx) |
| void | generateStructDeclarations (LLVMModuleContext &llvmModCtx) |
| void | generateDataStructDeclarations (LLVMModuleContext &llvmModCtx) |
| void | generateStructGCFunctionDeclarations (LLVMModuleContext &llvmModCtx) |
| void | generateStructGCFunctionImplementations (LLVMModuleContext &llvmModCtx) |
| void | generateInterfaceObjectGCFunctionDeclarations (LLVMModuleContext &llvmModCtx) |
| void | generateInterfaceObjectGCFunctionImplementations (LLVMModuleContext &llvmModCtx) |
| void | generateForeignStructTypes (LLVMModuleContext &llvmModCtx) |
| void | generateExportFunctionDecls (LLVMModuleContext &llvmModCtx) |
| void | generateImportFunctionImplementations (LLVMModuleContext &llvmModCtx) |
| void | generateMainFunction (LLVMModuleContext &llvmModCtx) |
| void | generateWrapperForForeignCallablesIfNotExists (LLVMModuleContext &llvmModCtx, const std::shared_ptr< IRValueType > &type) |
| void | generateFunctionImplementations (LLVMModuleContext &llvmModCtx) |
| void | generateFunction (LLVMModuleContext &llvmModCtx, IRFunctionDefinition &funcDef) |
| void | generateFunctionExitCleanup (LLVMModuleContext &llvmModCtx) |
| void | generateCodeBlock (LLVMModuleContext &llvmModCtx, IRCodeBlock &block, yoi::indexT fromBlock, yoi::indexT toBlock, llvm::BasicBlock *actualFromBlock=nullptr) |
| void | generateInstruction (LLVMModuleContext &llvmModCtx, const IR &instr, yoi::indexT fromBlock, yoi::indexT toBlock) |
| void | generateDescription (LLVMModuleContext &llvmModCtx) |
| void | generateRTTIDeclaration (LLVMModuleContext &llvmModCtx) |
| void | generateRTTIImplmentation (LLVMModuleContext &llvmModCtx) |
| void | generateGeneratorContextInitialization (LLVMModuleContext &llvmModCtx) |
| llvm::Value * | createGeneratorContext (LLVMModuleContext &llvmModCtx, llvm::Value *coro_handle) |
| void | storeYieldValue (LLVMModuleContext &llvmModCtx, llvm::Value *value, const std::shared_ptr< IRValueType > &yoiType) |
| void | storeMember (LLVMModuleContext &llvmModCtx, const StackValue &storeValue, const StackValue &structVal, yoi::indexT memberIndex) |
| llvm::Value * | createStructObject (LLVMModuleContext &llvmModCtx, yoi::indexT moduleIndex, yoi::indexT structIndex) |
| llvm::Function * | getLLVMCoroIntrinsic (LLVMModuleContext &llvmModCtx, llvm::Intrinsic::ID Id, llvm::ArrayRef< llvm::Type * > Types={}) |
| llvm::Value * | loadIfDataStructObject (LLVMModuleContext &llvmModCtx, const std::shared_ptr< IRValueType > &type, llvm::Value *value) |
| std::shared_ptr< IRValueType > | normalizeForeignType (LLVMModuleContext &llvmModCtx, const std::shared_ptr< IRValueType > &type) |
| llvm::Type * | yoiTypeToLLVMType (LLVMModuleContext &llvmModCtx, const std::shared_ptr< IRValueType > &type, bool enforceForeignType=false) |
| llvm::Type * | getArrayLLVMType (LLVMModuleContext &llvmModCtx, const std::shared_ptr< IRValueType > &type, bool enforceForeignType=false) |
| llvm::Type * | getDynamicArrayLLVMType (LLVMModuleContext &llvmModCtx, const std::shared_ptr< IRValueType > &type, bool enforceForeignType=false) |
| void | generateArrayGCFunctionDeclarations (LLVMModuleContext &llvmModCtx, const std::shared_ptr< IRValueType > &type, llvm::StructType *structType, llvm::Type *baseType) |
| llvm::FunctionType * | getFunctionType (LLVMModuleContext &llvmModCtx, const std::shared_ptr< IRFunctionDefinition > &funcDef) |
| llvm::Constant * | getGlobalInitializer (LLVMModuleContext &llvmModCtx, const std::shared_ptr< IRValueType > &type) |
| void | handleBinaryOp (LLVMModuleContext &llvmModCtx, llvm::Instruction::BinaryOps op, bool isFloat, yoi::indexT fromBlock, yoi::indexT toBlock) |
| void | handleComparison (LLVMModuleContext &llvmModCtx, llvm::CmpInst::Predicate pred, bool isFloat, yoi::indexT fromBlock, yoi::indexT toBlock) |
| llvm::Value * | createBasicObject (LLVMModuleContext &llvmModCtx, const std::shared_ptr< IRValueType > &yoiType, llvm::Value *rawValue) |
| llvm::Value * | unboxValue (LLVMModuleContext &llvmModCtx, llvm::Value *objectPtr, const std::shared_ptr< IRValueType > &yoiType) |
| llvm::Value * | loadArrayElement (LLVMModuleContext &llvmModCtx, const std::shared_ptr< IRValueType > &type, llvm::Value *arrayPtr, llvm::Value *index) |
| llvm::Function * | getGcFunction (LLVMModuleContext &llvmModCtx, const std::shared_ptr< IRValueType > &yoiType, bool isIncrease) |
| void | callGcFunction (LLVMModuleContext &llvmModCtx, llvm::Value *objectPtr, const std::shared_ptr< IRValueType > &yoiType, bool isIncrease, bool forceForPermanent=false, bool forceForBorrow=false) |
| llvm::Value * | emitWeakSlotAlloc (LLVMModuleContext &llvmModCtx, llvm::Value *targetPtr, const std::shared_ptr< IRValueType > &targetYoiType) |
| void | emitWeakSlotFree (LLVMModuleContext &llvmModCtx, llvm::Value *slotPtr, const std::shared_ptr< IRValueType > &targetYoiType) |
| llvm::StructType * | findStructLLVMType (const std::shared_ptr< IRValueType > &type) |
| llvm::Value * | handleForeignTypeConv (LLVMModuleContext &llvmModCtx, llvm::Value *val, yoi::indexT foreignTypeIndex, yoi::indexT isArray, bool convertToForeign=false) |
| llvm::Value * | handleForeignTypeConv (LLVMModuleContext &llvmModCtx, llvm::Value *val, const std::shared_ptr< IRValueType > &foreignType, bool convertToForeign=false) |
| llvm::Value * | createArrayObject (LLVMModuleContext &llvmModCtx, const std::shared_ptr< IRValueType > &type, const yoi::vec< StackValue > &elements) |
| llvm::DIType * | getDIType (LLVMModuleContext &llvmModCtx, const std::shared_ptr< IRValueType > &type) |
| llvm::Value * | createDynamicArrayObject (LLVMModuleContext &llvmModCtx, const std::shared_ptr< IRValueType > &type, const yoi::vec< StackValue > &elements, llvm::Value *size) |
| void | storeArrayElement (LLVMModuleContext &llvmModCtx, const std::shared_ptr< IRValueType > &type, const std::shared_ptr< IRValueType > &valueToStoreType, llvm::Value *arrayPtr, llvm::Value *index, llvm::Value *value) |
| void | generateArrayGCFunctionImplementations (LLVMModuleContext &llvmModCtx, const std::shared_ptr< IRValueType > &type, llvm::StructType *structType, llvm::Type *baseType) |
| std::pair< std::shared_ptr< IRValueType >, llvm::Value * > | ensureObject (LLVMModuleContext &llvmModCtx, const std::shared_ptr< IRValueType > &type, llvm::Value *val) |
| void | generateIfTargetNotNull (LLVMModuleContext &llvmModCtx, llvm::Value *objectPtr, const std::shared_ptr< IRValueType > &yoiType, const std::function< void()> &func, bool enforced=false) |
| StackValue | actualizeInterfaceObject (LLVMModuleContext &llvmModCtx, const std::shared_ptr< IRValueType > &type, llvm::Value *objectPtr, yoi::indexT implIndex) |
| StackValue | wrapInterfaceObjectIfRegressed (LLVMModuleContext &llvmModCtx, const StackValue &objectVal) |
| llvm::Value * | unwrapInterfaceObject (LLVMModuleContext &llvmModCtx, const StackValue &objectVal) |
| StackValue | promiseInterfaceObjectIfInterface (LLVMModuleContext &llvmModCtx, const StackValue &objectVal) |
| void | handleIntrinsicCall (LLVMModuleContext &llvmModCtx, const IR &instr) |
| LLVMModuleContext & | getLLVMModuleContext (const yoi::wstr &absolutePath) |
| void | generateTargetObjectCode (LLVMModuleContext &llvmModCtx, const yoi::wstr &pathToOutput) |
Private Attributes | |
| CodegenObjectCache | codegenObjectCache |
| CodegenTaskDispatcher | codegenTaskDispatcher |
| std::shared_ptr< compilerContext > | compilerCtx |
| std::shared_ptr< IRModule > | yoiModule |
| std::mutex | contextMutex |
| std::map< yoi::wstr, std::unique_ptr< LLVMModuleContext > > | llvmModuleContext |
| bool | is_rtti_table_frozen = false |
Definition at line 37 of file llvmCodegenContext.hpp.
| LLVMCodegen | ( | std::shared_ptr< compilerContext > | compilerCtx, |
| const std::shared_ptr< IRModule > & | yoiModule | ||
| ) |
Definition at line 46 of file llvmCodegenContext.cpp.
References LLVMCodegen::codegenObjectCache, CodegenObjectCache::purge_and_update(), yoi::serialization::read(), CodegenObjectCache::setCompilerCtx(), and yoi::yoi_assert().

|
private |
Definition at line 4333 of file llvmCodegenContext.cpp.
References LLVMCodegen::LLVMModuleContext::Builder, LLVMCodegen::callGcFunction(), LLVMCodegen::ensureObject(), LLVMCodegen::LLVMModuleContext::functionMap, LLVMCodegen::getGcFunction(), IRValueType::interfaceObject, yoi::managedPtr(), IRValueType::PermanentInCurrentScope, LLVMCodegen::LLVMModuleContext::runtimeFunctions, LLVMCodegen::LLVMModuleContext::structTypeMap, LLVMCodegen::LLVMModuleContext::TheContext, LLVMCodegen::LLVMModuleContext::TheModule, LLVMCodegen::LLVMModuleContext::typeIDMap, IRValueType::virtualMethod, yoi::yoi_assert(), and LLVMCodegen::yoiModule.
Referenced by LLVMCodegen::wrapInterfaceObjectIfRegressed().


|
private |
Definition at line 4650 of file llvmCodegenContext.cpp.
References IRValueType::Borrow, LLVMCodegen::LLVMModuleContext::Builder, LLVMCodegen::generateIfTargetNotNull(), LLVMCodegen::getGcFunction(), IRValueType::none, IRValueType::PermanentInCurrentScope, IRValueType::Raw, and IRValueType::WeakRef.
Referenced by LLVMCodegen::actualizeInterfaceObject(), LLVMCodegen::generateStructGCFunctionImplementations(), and LLVMCodegen::storeMember().


|
private |
Definition at line 3307 of file llvmCodegenContext.cpp.
References LLVMCodegen::LLVMModuleContext::Builder, yoi::managedPtr(), LLVMCodegen::LLVMModuleContext::runtimeFunctions, LLVMCodegen::LLVMModuleContext::TheContext, LLVMCodegen::LLVMModuleContext::TheModule, LLVMCodegen::LLVMModuleContext::typeIDMap, and yoi::yoi_assert().

|
private |
Definition at line 2572 of file llvmCodegenContext.cpp.
References LLVMCodegen::LLVMModuleContext::Builder, LLVMCodegen::LLVMModuleContext::runtimeFunctions, LLVMCodegen::LLVMModuleContext::structTypeMap, LLVMCodegen::LLVMModuleContext::TheContext, LLVMCodegen::LLVMModuleContext::TheModule, and LLVMCodegen::LLVMModuleContext::typeIDMap.
|
private |
Definition at line 3967 of file llvmCodegenContext.cpp.
References LLVMCodegen::LLVMModuleContext::arrayTypeMap, LLVMCodegen::LLVMModuleContext::Builder, yoi::managedPtr(), LLVMCodegen::LLVMModuleContext::runtimeFunctions, LLVMCodegen::LLVMModuleContext::TheContext, LLVMCodegen::LLVMModuleContext::TheModule, LLVMCodegen::LLVMModuleContext::typeIDMap, and yoi::yoi_assert().

|
private |
Definition at line 4790 of file llvmCodegenContext.cpp.
References LLVMCodegen::LLVMModuleContext::Builder, LLVMCodegen::compilerCtx, LLVMCodegen::createStructObject(), LLVMCodegen::LLVMModuleContext::currentFunctionDef, yoi::managedPtr(), IRValueType::Raw, LLVMCodegen::storeMember(), IRValueType::structObject, LLVMCodegen::LLVMModuleContext::structTypeMap, LLVMCodegen::LLVMModuleContext::TheContext, and LLVMCodegen::yoiModule.
Referenced by LLVMCodegen::generateGeneratorContextInitialization().


|
private |
Definition at line 4812 of file llvmCodegenContext.cpp.
References LLVMCodegen::LLVMModuleContext::Builder, LLVMCodegen::LLVMModuleContext::runtimeFunctions, IRValueType::structObject, LLVMCodegen::LLVMModuleContext::structTypeMap, LLVMCodegen::LLVMModuleContext::TheContext, LLVMCodegen::LLVMModuleContext::TheModule, LLVMCodegen::LLVMModuleContext::typeIDMap, and LLVMCodegen::yoiModule.
Referenced by LLVMCodegen::createGeneratorContext().

|
private |
Definition at line 70 of file llvmCodegenContext.cpp.
References LLVMCodegen::LLVMModuleContext::Builder, LLVMCodegen::compilerCtx, LLVMCodegen::LLVMModuleContext::compileUnits, LLVMCodegen::LLVMModuleContext::DBuilder, IRBuildConfig::debug, LLVMCodegen::LLVMModuleContext::runtimeFunctions, LLVMCodegen::LLVMModuleContext::TheContext, and LLVMCodegen::LLVMModuleContext::TheModule.
Referenced by LLVMCodegen::generateDeclarations().

| void dumpIR | ( | const yoi::wstr & | modulePath, |
| const std::string & | filename | ||
| ) |
Definition at line 4639 of file llvmCodegenContext.cpp.
References LLVMCodegen::llvmModuleContext.
Referenced by LLVMCodegen::generate(), and main().

|
private |
Definition at line 4848 of file llvmCodegenContext.cpp.
References LLVMCodegen::LLVMModuleContext::Builder, LLVMCodegen::findStructLLVMType(), LLVMCodegen::LLVMModuleContext::runtimeFunctions, and LLVMCodegen::LLVMModuleContext::TheContext.
Referenced by LLVMCodegen::storeMember().


|
private |
Definition at line 4859 of file llvmCodegenContext.cpp.
References LLVMCodegen::LLVMModuleContext::Builder, LLVMCodegen::findStructLLVMType(), LLVMCodegen::LLVMModuleContext::runtimeFunctions, and LLVMCodegen::LLVMModuleContext::TheContext.
Referenced by LLVMCodegen::storeMember().


|
private |
Definition at line 4177 of file llvmCodegenContext.cpp.
References yoi::managedPtr().
Referenced by LLVMCodegen::actualizeInterfaceObject(), and LLVMCodegen::storeMember().


|
private |
Definition at line 4839 of file llvmCodegenContext.cpp.
References LLVMCodegen::llvmModuleContext.
Referenced by LLVMCodegen::emitWeakSlotAlloc(), and LLVMCodegen::emitWeakSlotFree().

Definition at line 4523 of file llvmCodegenContext.cpp.
References LLVMCodegen::codegenObjectCache, LLVMCodegen::codegenTaskDispatcher, LLVMCodegen::compilerCtx, CodegenTaskDispatcher::dispatch(), LLVMCodegen::dumpIR(), LLVMCodegen::generateArrayGCFunctionImplementations(), LLVMCodegen::generateBasicTypeImplementations(), LLVMCodegen::generateDeclarations(), LLVMCodegen::generateDescription(), LLVMCodegen::generateExportFunctionDecls(), LLVMCodegen::generateImplementations(), LLVMCodegen::generateImportFunctionImplementations(), LLVMCodegen::generateMainFunction(), LLVMCodegen::generateRTTIImplmentation(), LLVMCodegen::generateRuntimeFunctionImplementations(), LLVMCodegen::generateTargetObjectCode(), CodegenObjectCache::get_entry(), CodegenObjectCacheEntry::getLastModification(), CodegenObjectCacheEntry::getObjectFilename(), LLVMCodegen::llvmModuleContext, yoi::set_current_file_path(), CodegenObjectCache::update_last_modification(), CodegenTaskDispatcher::wait(), yoi::warning(), yoi::serialization::write(), yoi::wstring2string(), and yoi::yoi_assert().
Referenced by main().


|
private |
Definition at line 186 of file llvmCodegenContext.cpp.
References LLVMCodegen::compilerCtx, LLVMCodegen::LLVMModuleContext::DBuilder, IRBuildConfig::debug, LLVMCodegen::generateDeclarations(), LLVMCodegen::generateDescription(), LLVMCodegen::generateExportFunctionDecls(), LLVMCodegen::generateForeignStructTypes(), LLVMCodegen::generateImplementations(), LLVMCodegen::generateImportFunctionImplementations(), LLVMCodegen::generateMainFunction(), LLVMCodegen::generateRTTIImplmentation(), and TIMER.

|
private |
Definition at line 4015 of file llvmCodegenContext.cpp.
References LLVMCodegen::LLVMModuleContext::Builder, LLVMCodegen::LLVMModuleContext::functionMap, yoi::string2wstring(), LLVMCodegen::LLVMModuleContext::TheContext, LLVMCodegen::LLVMModuleContext::TheModule, and yoi::wstring2string().

|
private |
Definition at line 4064 of file llvmCodegenContext.cpp.
References LLVMCodegen::LLVMModuleContext::Builder, LLVMCodegen::LLVMModuleContext::functionMap, yoi::managedPtr(), LLVMCodegen::LLVMModuleContext::runtimeFunctions, yoi::string2wstring(), LLVMCodegen::LLVMModuleContext::TheContext, and yoi::wstring2string().
Referenced by LLVMCodegen::generate().


|
private |
Definition at line 204 of file llvmCodegenContext.cpp.
References LLVMCodegen::LLVMModuleContext::Builder, LLVMCodegen::compilerCtx, LLVMCodegen::LLVMModuleContext::foreignTypeMap, LLVMCodegen::LLVMModuleContext::functionMap, LLVMCodegen::getArrayLLVMType(), yoi::managedPtr(), LLVMCodegen::LLVMModuleContext::nextTypeId, yoi::string2wstring(), LLVMCodegen::LLVMModuleContext::structTypeMap, LLVMCodegen::LLVMModuleContext::TheContext, LLVMCodegen::LLVMModuleContext::TheModule, LLVMCodegen::LLVMModuleContext::typeIDMap, and yoi::wstring2string().
Referenced by LLVMCodegen::generateDeclarations().


|
private |
Definition at line 261 of file llvmCodegenContext.cpp.
References LLVMCodegen::LLVMModuleContext::Builder, LLVMCodegen::compilerCtx, IRBuildConfig::debug, LLVMCodegen::LLVMModuleContext::functionMap, LLVMCodegen::LLVMModuleContext::runtimeFunctions, yoi::string2wstring(), LLVMCodegen::LLVMModuleContext::structTypeMap, LLVMCodegen::LLVMModuleContext::TheContext, LLVMCodegen::LLVMModuleContext::TheModule, and yoi::wstring2string().
Referenced by LLVMCodegen::generate(), and LLVMCodegen::generateImplementations().


|
private |
Definition at line 889 of file llvmCodegenContext.cpp.
References LLVMCodegen::LLVMModuleContext::basicBlockMap, LLVMCodegen::LLVMModuleContext::basicBlockVisited, LLVMCodegen::LLVMModuleContext::Builder, LLVMCodegen::LLVMModuleContext::controlFlowAnalysis, LLVMCodegen::LLVMModuleContext::currentFunction, LLVMCodegen::LLVMModuleContext::currentFunctionDef, LLVMCodegen::ValueStackWithPhi::enterNode(), LLVMCodegen::ValueStackWithPhi::finalizeNode(), LLVMCodegen::ControlFlowAnalysis::G, IRCodeBlock::getIRArray(), LLVMCodegen::LLVMModuleContext::TheContext, and LLVMCodegen::LLVMModuleContext::valueStackPhi.

|
private |
Definition at line 4690 of file llvmCodegenContext.cpp.
References LLVMCodegen::LLVMModuleContext::Builder, LLVMCodegen::LLVMModuleContext::dataStructDataRegionMap, IRValueType::datastructObject, LLVMCodegen::LLVMModuleContext::structTypeMap, LLVMCodegen::yoiModule, and LLVMCodegen::yoiTypeToLLVMType().
Referenced by LLVMCodegen::generateDeclarations().


|
private |
Definition at line 4677 of file llvmCodegenContext.cpp.
References LLVMCodegen::LLVMModuleContext::dataStructDataRegionMap, IRValueType::datastructObject, LLVMCodegen::LLVMModuleContext::nextTypeId, LLVMCodegen::LLVMModuleContext::structTypeMap, LLVMCodegen::LLVMModuleContext::TheContext, LLVMCodegen::LLVMModuleContext::typeIDMap, yoi::wstring2string(), and LLVMCodegen::yoiModule.
Referenced by LLVMCodegen::generateDeclarations().


|
private |
Definition at line 344 of file llvmCodegenContext.cpp.
References LLVMCodegen::declareRuntimeFunctions(), LLVMCodegen::generateBasicTypeDeclarations(), LLVMCodegen::generateDataStructDeclarations(), LLVMCodegen::generateDataStructShallowDeclarations(), LLVMCodegen::generateFunctionDeclarations(), LLVMCodegen::generateGlobalDeclarations(), LLVMCodegen::generateImportFunctionDeclarations(), LLVMCodegen::generateInterfaceObjectGCFunctionDeclarations(), LLVMCodegen::generateRTTIDeclaration(), LLVMCodegen::generateStructDeclarations(), LLVMCodegen::generateStructGCFunctionDeclarations(), and LLVMCodegen::generateStructShallowDeclarations().
Referenced by LLVMCodegen::generate(), and LLVMCodegen::generate().


|
private |
Definition at line 2670 of file llvmCodegenContext.cpp.
References LLVMCodegen::LLVMModuleContext::TheContext, LLVMCodegen::LLVMModuleContext::TheModule, and yoi::wstring2string().
Referenced by LLVMCodegen::generate(), and LLVMCodegen::generate().


|
private |
Definition at line 2789 of file llvmCodegenContext.cpp.
References LLVMCodegen::LLVMModuleContext::Builder, LLVMCodegen::LLVMModuleContext::functionMap, LLVMCodegen::LLVMModuleContext::TheContext, LLVMCodegen::LLVMModuleContext::TheModule, yoi::wstring2string(), and yoi::yoi_assert().
Referenced by LLVMCodegen::generate(), and LLVMCodegen::generate().


|
private |
Definition at line 2770 of file llvmCodegenContext.cpp.
References LLVMCodegen::LLVMModuleContext::foreignTypeMap, LLVMCodegen::LLVMModuleContext::TheContext, and yoi::wstring2string().
Referenced by LLVMCodegen::generate().


|
private |
Definition at line 710 of file llvmCodegenContext.cpp.
References IRValueType::addAttribute(), IRFunctionDefinition::argumentTypes, LLVMCodegen::LLVMModuleContext::basicBlockMap, LLVMCodegen::LLVMModuleContext::basicBlockVisited, LLVMCodegen::LLVMModuleContext::Builder, LLVMCodegen::LLVMModuleContext::cleanupBB, LLVMCodegen::ValueStackWithPhi::clear(), IRFunctionDefinition::codeBlock, IRDebugInfo::column, LLVMCodegen::LLVMModuleContext::compileUnits, LLVMCodegen::LLVMModuleContext::controlFlowAnalysis, LLVMCodegen::LLVMModuleContext::currentFunction, LLVMCodegen::LLVMModuleContext::currentGeneratorContextBasicBlocks, LLVMCodegen::LLVMModuleContext::DBuilder, IRFunctionDefinition::debugInfo, LLVMCodegen::LLVMModuleContext::functionMap, IRVariableTable::getVariables(), IRFunctionDefinition::getVariableTable(), IRDebugInfo::line, yoi::managedPtr(), IRFunctionDefinition::name, LLVMCodegen::LLVMModuleContext::namedValues, yoi::panic(), IRFunctionDefinition::returnType, LLVMCodegen::LLVMModuleContext::runtimeFunctions, yoi::set_current_file_path(), IRDebugInfo::sourceFile, LLVMCodegen::LLVMModuleContext::suspendBB, LLVMCodegen::LLVMModuleContext::TheContext, LLVMCodegen::LLVMModuleContext::TheModule, LLVMCodegen::LLVMModuleContext::valueStackPhi, and yoi::wstring2string().

|
private |
Definition at line 401 of file llvmCodegenContext.cpp.
References IRFunctionDefinition::AlwaysInline, LLVMCodegen::LLVMModuleContext::functionMap, IRFunctionDefinition::Generator, LLVMCodegen::getFunctionType(), LLVMCodegen::LLVMModuleContext::TheModule, IRFunctionDefinition::Unreachable, yoi::wstring2string(), and LLVMCodegen::yoiModule.
Referenced by LLVMCodegen::generateDeclarations().


|
private |
Definition at line 867 of file llvmCodegenContext.cpp.
References LLVMCodegen::LLVMModuleContext::Builder, LLVMCodegen::LLVMModuleContext::currentFunctionDef, and LLVMCodegen::LLVMModuleContext::namedValues.
Referenced by LLVMCodegen::generateGeneratorContextInitialization().

|
private |
Definition at line 694 of file llvmCodegenContext.cpp.
References LLVMCodegen::LLVMModuleContext::absolute_path, and LLVMCodegen::LLVMModuleContext::currentFunctionDef.
Referenced by LLVMCodegen::generateImplementations().

|
private |
Definition at line 4724 of file llvmCodegenContext.cpp.
References LLVMCodegen::LLVMModuleContext::Builder, LLVMCodegen::LLVMModuleContext::cleanupBB, LLVMCodegen::createGeneratorContext(), LLVMCodegen::LLVMModuleContext::currentFunction, LLVMCodegen::LLVMModuleContext::currentFunctionDef, LLVMCodegen::LLVMModuleContext::currentGeneratorContextBasicBlocks, LLVMCodegen::LLVMModuleContext::currentGeneratorContextValue, LLVMCodegen::generateFunctionExitCleanup(), IRFunctionDefinition::Generator, LLVMCodegen::getLLVMCoroIntrinsic(), LLVMCodegen::LLVMModuleContext::namedValues, LLVMCodegen::LLVMModuleContext::runtimeFunctions, LLVMCodegen::LLVMModuleContext::suspendBB, LLVMCodegen::LLVMModuleContext::TheContext, and yoi::yoi_assert().

|
private |
Definition at line 378 of file llvmCodegenContext.cpp.
References LLVMCodegen::LLVMModuleContext::globalValues, LLVMCodegen::LLVMModuleContext::TheModule, yoi::wstring2string(), LLVMCodegen::yoiModule, and LLVMCodegen::yoiTypeToLLVMType().
Referenced by LLVMCodegen::generateDeclarations().


|
private |
Definition at line 388 of file llvmCodegenContext.cpp.
References LLVMCodegen::LLVMModuleContext::absolute_path, LLVMCodegen::compilerCtx, LLVMCodegen::LLVMModuleContext::globalValues, LLVMCodegen::LLVMModuleContext::TheContext, and LLVMCodegen::yoiModule.
Referenced by LLVMCodegen::generateImplementations().

|
private |
Definition at line 4187 of file llvmCodegenContext.cpp.
References LLVMCodegen::LLVMModuleContext::Builder, and LLVMCodegen::LLVMModuleContext::TheContext.
Referenced by LLVMCodegen::callGcFunction().

|
private |
Definition at line 425 of file llvmCodegenContext.cpp.
References LLVMCodegen::generateBasicTypeImplementations(), LLVMCodegen::generateFunctionImplementations(), LLVMCodegen::generateGlobalInitializers(), LLVMCodegen::generateInterfaceObjectGCFunctionImplementations(), LLVMCodegen::generateRuntimeFunctionImplementations(), and LLVMCodegen::generateStructGCFunctionImplementations().
Referenced by LLVMCodegen::generate(), and LLVMCodegen::generate().


|
private |
Definition at line 3106 of file llvmCodegenContext.cpp.
References LLVMCodegen::LLVMModuleContext::functionMap, LLVMCodegen::LLVMModuleContext::TheModule, and yoi::wstring2string().
Referenced by LLVMCodegen::generateDeclarations().


|
private |
Definition at line 3006 of file llvmCodegenContext.cpp.
References LLVMCodegen::LLVMModuleContext::Builder, LLVMCodegen::LLVMModuleContext::functionMap, LLVMCodegen::LLVMModuleContext::runtimeFunctions, LLVMCodegen::LLVMModuleContext::TheContext, LLVMCodegen::LLVMModuleContext::TheModule, yoi::wstring2string(), and yoi::yoi_assert().
Referenced by LLVMCodegen::generate(), and LLVMCodegen::generate().


|
private |
Definition at line 932 of file llvmCodegenContext.cpp.
References IRValueType::addAttribute(), LLVMCodegen::LLVMModuleContext::arrayTypeMap, LLVMCodegen::ValueStackWithPhi::back(), LLVMCodegen::LLVMModuleContext::basicBlockMap, LLVMCodegen::LLVMModuleContext::Builder, LLVMCodegen::LLVMModuleContext::cleanupBB, IRDebugInfo::column, LLVMCodegen::LLVMModuleContext::currentFunction, LLVMCodegen::LLVMModuleContext::currentFunctionDef, LLVMCodegen::LLVMModuleContext::currentGeneratorContextBasicBlocks, LLVMCodegen::LLVMModuleContext::dataStructDataRegionMap, IR::debugInfo, LLVMCodegen::ValueStackWithPhi::empty(), ENTRY_MODULE_ID_CONST, magic_enum::enum_name(), LLVMCodegen::LLVMModuleContext::functionMap, LLVMCodegen::LLVMModuleContext::globalValues, IRDebugInfo::line, LLVMCodegen::StackValue::llvmValue, yoi::managedPtr(), LLVMCodegen::LLVMModuleContext::namedValues, IR::opcode, IR::operands, yoi::panic(), LLVMCodegen::ValueStackWithPhi::pop_back(), LLVMCodegen::ValueStackWithPhi::push_back(), IRValueType::removeAttribute(), LLVMCodegen::LLVMModuleContext::runtimeFunctions, yoi::set_current_file_path(), LLVMCodegen::ValueStackWithPhi::size(), IRDebugInfo::sourceFile, LLVMCodegen::LLVMModuleContext::structTypeMap, LLVMCodegen::LLVMModuleContext::suspendBB, LLVMCodegen::LLVMModuleContext::TheContext, LLVMCodegen::LLVMModuleContext::TheModule, IR::to_string(), LLVMCodegen::LLVMModuleContext::typeIDMap, LLVMCodegen::LLVMModuleContext::valueStackPhi, yoi::wstring2string(), yoi::yoi_assert(), and LLVMCodegen::StackValue::yoiType.

|
private |
Definition at line 586 of file llvmCodegenContext.cpp.
References LLVMCodegen::LLVMModuleContext::Builder, LLVMCodegen::LLVMModuleContext::functionMap, yoi::string2wstring(), LLVMCodegen::LLVMModuleContext::structTypeMap, LLVMCodegen::LLVMModuleContext::TheContext, and LLVMCodegen::LLVMModuleContext::TheModule.
Referenced by LLVMCodegen::generateDeclarations().


|
private |
Definition at line 624 of file llvmCodegenContext.cpp.
References LLVMCodegen::LLVMModuleContext::Builder, LLVMCodegen::LLVMModuleContext::functionMap, LLVMCodegen::LLVMModuleContext::runtimeFunctions, yoi::string2wstring(), LLVMCodegen::LLVMModuleContext::structTypeMap, and LLVMCodegen::LLVMModuleContext::TheContext.
Referenced by LLVMCodegen::generateImplementations().


|
private |
Definition at line 2962 of file llvmCodegenContext.cpp.
References LLVMCodegen::LLVMModuleContext::Builder, LLVMCodegen::LLVMModuleContext::functionMap, LLVMCodegen::LLVMModuleContext::runtimeFunctions, LLVMCodegen::LLVMModuleContext::TheContext, and LLVMCodegen::LLVMModuleContext::TheModule.
Referenced by LLVMCodegen::generate(), and LLVMCodegen::generate().

|
private |
Definition at line 3840 of file llvmCodegenContext.cpp.
References yoi::managedPtr(), LLVMCodegen::LLVMModuleContext::RTTIEntryType, LLVMCodegen::LLVMModuleContext::RTTITable, LLVMCodegen::LLVMModuleContext::TheContext, LLVMCodegen::LLVMModuleContext::TheModule, and LLVMCodegen::LLVMModuleContext::typeIDMap.
Referenced by LLVMCodegen::generateDeclarations().


|
private |
Definition at line 3803 of file llvmCodegenContext.cpp.
References LLVMCodegen::LLVMModuleContext::Builder, LLVMCodegen::LLVMModuleContext::RTTIEntryType, LLVMCodegen::LLVMModuleContext::RTTITable, LLVMCodegen::LLVMModuleContext::TheContext, LLVMCodegen::LLVMModuleContext::typeIDMap, and yoi::wstring2string().
Referenced by LLVMCodegen::generate(), and LLVMCodegen::generate().


|
private |
Definition at line 159 of file llvmCodegenContext.cpp.
References LLVMCodegen::LLVMModuleContext::Builder, LLVMCodegen::compilerCtx, IRBuildConfig::debug, LLVMCodegen::LLVMModuleContext::runtimeFunctions, and LLVMCodegen::LLVMModuleContext::TheContext.
Referenced by LLVMCodegen::generate(), and LLVMCodegen::generateImplementations().

|
private |
Definition at line 434 of file llvmCodegenContext.cpp.
References LLVMCodegen::LLVMModuleContext::Builder, LLVMCodegen::getFunctionType(), IRValueType::interfaceObject, IRValueType::Raw, IRValueType::structObject, LLVMCodegen::LLVMModuleContext::structTypeMap, LLVMCodegen::LLVMModuleContext::TheContext, LLVMCodegen::yoiModule, and LLVMCodegen::yoiTypeToLLVMType().
Referenced by LLVMCodegen::generateDeclarations().


|
private |
Definition at line 483 of file llvmCodegenContext.cpp.
References LLVMCodegen::LLVMModuleContext::Builder, LLVMCodegen::LLVMModuleContext::functionMap, yoi::string2wstring(), IRValueType::structObject, LLVMCodegen::LLVMModuleContext::structTypeMap, LLVMCodegen::LLVMModuleContext::TheContext, LLVMCodegen::LLVMModuleContext::TheModule, and LLVMCodegen::yoiModule.
Referenced by LLVMCodegen::generateDeclarations().


|
private |
Definition at line 518 of file llvmCodegenContext.cpp.
References LLVMCodegen::LLVMModuleContext::Builder, LLVMCodegen::callGcFunction(), IRFunctionDefinition::Finalizer, LLVMCodegen::LLVMModuleContext::functionMap, LLVMCodegen::LLVMModuleContext::runtimeFunctions, yoi::string2wstring(), IRValueType::structObject, LLVMCodegen::LLVMModuleContext::structTypeMap, LLVMCodegen::LLVMModuleContext::TheContext, LLVMCodegen::yoiModule, and LLVMCodegen::yoiTypeToLLVMType().
Referenced by LLVMCodegen::generateImplementations().


|
private |
Definition at line 359 of file llvmCodegenContext.cpp.
References IRValueType::interfaceObject, LLVMCodegen::LLVMModuleContext::nextTypeId, IRValueType::structObject, LLVMCodegen::LLVMModuleContext::structTypeMap, LLVMCodegen::LLVMModuleContext::TheContext, LLVMCodegen::LLVMModuleContext::typeIDMap, yoi::wstring2string(), and LLVMCodegen::yoiModule.
Referenced by LLVMCodegen::generateDeclarations().


|
private |
Definition at line 2683 of file llvmCodegenContext.cpp.
References yoi::Error, yoi::panic(), LLVMCodegen::LLVMModuleContext::TheModule, and yoi::wstring2string().
Referenced by LLVMCodegen::generate().


|
private |
Definition at line 4472 of file llvmCodegenContext.cpp.
|
private |
Definition at line 3231 of file llvmCodegenContext.cpp.
References LLVMCodegen::LLVMModuleContext::arrayToGenerateImplementations, LLVMCodegen::LLVMModuleContext::arrayTypeMap, magic_enum::enum_name(), LLVMCodegen::LLVMModuleContext::nextTypeId, yoi::panic(), LLVMCodegen::LLVMModuleContext::TheContext, LLVMCodegen::LLVMModuleContext::typeIDMap, and yoi::wstring2string().
Referenced by LLVMCodegen::generateBasicTypeDeclarations(), and LLVMCodegen::handleIntrinsicCall().


|
private |
Definition at line 3413 of file llvmCodegenContext.cpp.
References LLVMCodegen::LLVMModuleContext::arrayDataRegionDITypeMap, LLVMCodegen::LLVMModuleContext::arrayTypeDIMap, LLVMCodegen::LLVMModuleContext::basicDITypeMap, LLVMCodegen::LLVMModuleContext::compileUnits, LLVMCodegen::LLVMModuleContext::dataStructDataRegionMap, LLVMCodegen::LLVMModuleContext::dataStructDataRegionTypeDIMap, LLVMCodegen::LLVMModuleContext::DBuilder, magic_enum::enum_name(), yoi::managedPtr(), yoi::panic(), LLVMCodegen::LLVMModuleContext::structTypeDIMap, LLVMCodegen::LLVMModuleContext::TheModule, and yoi::wstring2string().

|
private |
|
private |
Definition at line 2465 of file llvmCodegenContext.cpp.
Referenced by LLVMCodegen::generateFunctionDeclarations(), and LLVMCodegen::generateStructDeclarations().

|
private |
Definition at line 2628 of file llvmCodegenContext.cpp.
References LLVMCodegen::LLVMModuleContext::functionMap, yoi::managedPtr(), yoi::string2wstring(), and yoi::wstring2string().
Referenced by LLVMCodegen::actualizeInterfaceObject(), and LLVMCodegen::callGcFunction().


|
private |
Definition at line 2475 of file llvmCodegenContext.cpp.
|
private |
Definition at line 4786 of file llvmCodegenContext.cpp.
References LLVMCodegen::LLVMModuleContext::TheModule.
Referenced by LLVMCodegen::generateGeneratorContextInitialization().

|
private |
Definition at line 4500 of file llvmCodegenContext.cpp.
References LLVMCodegen::llvmModuleContext.
|
private |
Definition at line 200 of file llvmCodegenContext.cpp.
References LLVMCodegen::LLVMModuleContext::TheModule.
|
private |
Definition at line 2480 of file llvmCodegenContext.cpp.
References LLVMCodegen::ValueStackWithPhi::back(), LLVMCodegen::LLVMModuleContext::Builder, yoi::managedPtr(), yoi::panic(), LLVMCodegen::ValueStackWithPhi::pop_back(), LLVMCodegen::ValueStackWithPhi::push_back(), and LLVMCodegen::LLVMModuleContext::valueStackPhi.

|
private |
Definition at line 2525 of file llvmCodegenContext.cpp.
References LLVMCodegen::ValueStackWithPhi::back(), LLVMCodegen::LLVMModuleContext::Builder, yoi::managedPtr(), yoi::panic(), LLVMCodegen::ValueStackWithPhi::pop_back(), LLVMCodegen::ValueStackWithPhi::push_back(), and LLVMCodegen::LLVMModuleContext::valueStackPhi.

|
private |
Definition at line 3174 of file llvmCodegenContext.cpp.
References LLVMCodegen::LLVMModuleContext::Builder, LLVMCodegen::LLVMModuleContext::TheContext, and yoi::yoi_assert().

|
private |
Definition at line 2874 of file llvmCodegenContext.cpp.
References LLVMCodegen::LLVMModuleContext::arrayTypeMap, LLVMCodegen::LLVMModuleContext::Builder, LLVMCodegen::LLVMModuleContext::foreignTypeMap, yoi::managedPtr(), LLVMCodegen::LLVMModuleContext::structTypeMap, LLVMCodegen::LLVMModuleContext::TheContext, LLVMCodegen::LLVMModuleContext::TheModule, and IRValueType::typeAffiliateModule.

|
private |
Definition at line 4443 of file llvmCodegenContext.cpp.
References LLVMCodegen::ValueStackWithPhi::back(), LLVMCodegen::LLVMModuleContext::Builder, IRDebugInfo::column, LLVMCodegen::compilerCtx, IR::debugInfo, LLVMCodegen::getArrayLLVMType(), IRFunctionDefinition::Intrinsic, IR::invoke_imported, IRDebugInfo::line, yoi::managedPtr(), IR::opcode, IR::operands, yoi::panic(), LLVMCodegen::ValueStackWithPhi::pop_back(), LLVMCodegen::ValueStackWithPhi::push_back(), LLVMCodegen::LLVMModuleContext::valueStackPhi, and yoi::yoi_assert().

|
private |
Definition at line 3354 of file llvmCodegenContext.cpp.
References LLVMCodegen::LLVMModuleContext::Builder, magic_enum::enum_name(), yoi::managedPtr(), yoi::panic(), and yoi::yoi_assert().

|
private |
Definition at line 4715 of file llvmCodegenContext.cpp.
References LLVMCodegen::LLVMModuleContext::Builder, LLVMCodegen::LLVMModuleContext::dataStructDataRegionMap, and IRValueType::datastructObject.
|
private |
Definition at line 3156 of file llvmCodegenContext.cpp.
|
private |
Definition at line 4437 of file llvmCodegenContext.cpp.
References IRValueType::interfaceObject, LLVMCodegen::wrapInterfaceObjectIfRegressed(), and LLVMCodegen::StackValue::yoiType.
Referenced by LLVMCodegen::storeMember().


|
private |
Definition at line 4039 of file llvmCodegenContext.cpp.
References LLVMCodegen::LLVMModuleContext::Builder, yoi::managedPtr(), and LLVMCodegen::LLVMModuleContext::TheContext.

|
private |
Definition at line 4872 of file llvmCodegenContext.cpp.
References LLVMCodegen::LLVMModuleContext::Builder, LLVMCodegen::callGcFunction(), LLVMCodegen::compilerCtx, LLVMCodegen::LLVMModuleContext::currentFunction, LLVMCodegen::LLVMModuleContext::dataStructDataRegionMap, IRValueType::datastructObject, LLVMCodegen::emitWeakSlotAlloc(), LLVMCodegen::emitWeakSlotFree(), LLVMCodegen::ensureObject(), LLVMCodegen::StackValue::llvmValue, yoi::managedPtr(), IRValueType::PermanentInCurrentScope, LLVMCodegen::promiseInterfaceObjectIfInterface(), IRValueType::Raw, IRValueType::removeAttribute(), IRValueType::structObject, LLVMCodegen::LLVMModuleContext::structTypeMap, LLVMCodegen::LLVMModuleContext::TheContext, LLVMCodegen::LLVMModuleContext::TheModule, LLVMCodegen::unboxValue(), IRValueType::WeakRef, LLVMCodegen::StackValue::yoiType, and LLVMCodegen::yoiTypeToLLVMType().
Referenced by LLVMCodegen::createGeneratorContext(), and LLVMCodegen::storeYieldValue().


|
private |
Definition at line 4832 of file llvmCodegenContext.cpp.
References LLVMCodegen::LLVMModuleContext::currentFunctionDef, LLVMCodegen::LLVMModuleContext::currentGeneratorContextValue, LLVMCodegen::storeMember(), IRValueType::structObject, LLVMCodegen::LLVMModuleContext::structTypeMap, and LLVMCodegen::yoiModule.

|
private |
Definition at line 2607 of file llvmCodegenContext.cpp.
References LLVMCodegen::LLVMModuleContext::Builder, and LLVMCodegen::LLVMModuleContext::structTypeMap.
Referenced by LLVMCodegen::storeMember().

|
private |
Definition at line 4422 of file llvmCodegenContext.cpp.
References LLVMCodegen::LLVMModuleContext::Builder, IRValueType::interfaceObject, LLVMCodegen::StackValue::llvmValue, LLVMCodegen::LLVMModuleContext::structTypeMap, LLVMCodegen::LLVMModuleContext::TheContext, yoi::yoi_assert(), LLVMCodegen::yoiModule, and LLVMCodegen::StackValue::yoiType.

|
private |
Definition at line 4411 of file llvmCodegenContext.cpp.
References LLVMCodegen::actualizeInterfaceObject(), LLVMCodegen::StackValue::llvmValue, yoi::managedPtr(), LLVMCodegen::yoiModule, and LLVMCodegen::StackValue::yoiType.
Referenced by LLVMCodegen::promiseInterfaceObjectIfInterface().


|
private |
Definition at line 2402 of file llvmCodegenContext.cpp.
References LLVMCodegen::LLVMModuleContext::Builder, LLVMCodegen::LLVMModuleContext::dataStructDataRegionMap, magic_enum::enum_name(), IRValueType::foreignFloatType, LLVMCodegen::LLVMModuleContext::foreignTypeMap, yoi::managedPtr(), yoi::panic(), LLVMCodegen::LLVMModuleContext::structTypeMap, LLVMCodegen::LLVMModuleContext::TheContext, and yoi::wstring2string().
Referenced by LLVMCodegen::generateDataStructDeclarations(), LLVMCodegen::generateGlobalDeclarations(), LLVMCodegen::generateStructDeclarations(), LLVMCodegen::generateStructGCFunctionImplementations(), and LLVMCodegen::storeMember().


|
private |
Definition at line 46 of file llvmCodegenContext.hpp.
Referenced by LLVMCodegen::generate(), and LLVMCodegen::LLVMCodegen().
|
private |
Definition at line 47 of file llvmCodegenContext.hpp.
Referenced by LLVMCodegen::generate().
|
private |
Definition at line 174 of file llvmCodegenContext.hpp.
Referenced by LLVMCodegen::createGeneratorContext(), LLVMCodegen::declareRuntimeFunctions(), LLVMCodegen::generate(), LLVMCodegen::generate(), LLVMCodegen::generateBasicTypeDeclarations(), LLVMCodegen::generateBasicTypeImplementations(), LLVMCodegen::generateGlobalInitializers(), LLVMCodegen::generateRuntimeFunctionImplementations(), LLVMCodegen::handleIntrinsicCall(), and LLVMCodegen::storeMember().
|
mutableprivate |
Definition at line 176 of file llvmCodegenContext.hpp.
|
private |
Definition at line 180 of file llvmCodegenContext.hpp.
|
private |
Definition at line 178 of file llvmCodegenContext.hpp.
Referenced by LLVMCodegen::dumpIR(), LLVMCodegen::findStructLLVMType(), LLVMCodegen::generate(), and LLVMCodegen::getLLVMModuleContext().
|
private |
Definition at line 175 of file llvmCodegenContext.hpp.
Referenced by LLVMCodegen::actualizeInterfaceObject(), LLVMCodegen::createGeneratorContext(), LLVMCodegen::createStructObject(), LLVMCodegen::ValueStackWithPhi::enterNode(), LLVMCodegen::generateDataStructDeclarations(), LLVMCodegen::generateDataStructShallowDeclarations(), LLVMCodegen::generateFunctionDeclarations(), LLVMCodegen::generateGlobalDeclarations(), LLVMCodegen::generateGlobalInitializers(), LLVMCodegen::generateStructDeclarations(), LLVMCodegen::generateStructGCFunctionDeclarations(), LLVMCodegen::generateStructGCFunctionImplementations(), LLVMCodegen::generateStructShallowDeclarations(), LLVMCodegen::storeYieldValue(), LLVMCodegen::unwrapInterfaceObject(), and LLVMCodegen::wrapInterfaceObjectIfRegressed().