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

Public Member Functions | |
| IROptimizer (const std::shared_ptr< compilerContext > &compilerCtx, yoi::indexT entryModuleIndex) | |
| void | buildCallGraph () |
| void | optimize () |
Private Member Functions | |
| bool | performStructNullablePass () |
| bool | performInterfaceWrapperPass () |
| bool | performBaseOptimization () |
Private Attributes | |
| std::shared_ptr< compilerContext > | compilerCtx |
| CallGraph | callGraph |
| yoi::indexT | entryModuleIndex |
| std::map< CallGraph::FuncIdentifier, FunctionAnalysisInfo > | functionAnalysisResults |
Definition at line 287 of file IROptimizer.hpp.
| IROptimizer | ( | const std::shared_ptr< compilerContext > & | compilerCtx, |
| yoi::indexT | entryModuleIndex | ||
| ) |
Definition at line 4323 of file IROptimizer.cpp.
| void buildCallGraph | ( | ) |
Definition at line 4331 of file IROptimizer.cpp.
References CallGraph::addCall(), IROptimizer::callGraph, IROptimizer::compilerCtx, CallGraph::entryModuleIndex, IROptimizer::entryModuleIndex, IRBuildConfig::executable, CallGraph::functions, IR::invoke, IR::invoke_dangling, IRFunctionDefinition::NoRawAndNullOptimization, yoi::panic(), IRFunctionDefinition::Preserve, and CallGraph::traverseGraph().
Referenced by compilerContext::runOptimizer().


| void optimize | ( | ) |
Definition at line 4396 of file IROptimizer.cpp.
References IROptimizer::performBaseOptimization(), IROptimizer::performInterfaceWrapperPass(), and IROptimizer::performStructNullablePass().

|
private |
Definition at line 4686 of file IROptimizer.cpp.
References CallGraph::callerGraph, IROptimizer::callGraph, IROptimizer::compilerCtx, IRFunctionOptimizer::doOptimizationForCurrentFunction(), IROptimizer::functionAnalysisResults, CallGraph::functions, IRFunctionDefinition::Generator, HOSHI_COMPILER_CTX_GLOB_ID_CONST, FunctionAnalysisInfo::isReturnValueNullable, FunctionAnalysisInfo::isReturnValueRaw, FunctionAnalysisInfo::isYieldValueNullable, FunctionAnalysisInfo::isYieldValueRaw, yoi::managedPtr(), IRFunctionDefinition::NoRawAndNullOptimization, IRValueType::Nullable, FunctionAnalysisInfo::Nullable, FunctionAnalysisInfo::paramStates, IRFunctionOptimizer::performNullableCheck(), FunctionAnalysisInfo::Plain, IRFunctionDefinition::Preserve, IRValueType::Raw, FunctionAnalysisInfo::Raw, yoi::set_current_file_path(), IRFunctionOptimizer::setTargetFunction(), IRFunctionDefinition::Unreachable, and CallGraph::unreachableFunctions.
Referenced by IROptimizer::optimize().


|
private |
Definition at line 4514 of file IROptimizer.cpp.
References IRValueType::Borrow, IROptimizer::compilerCtx, visitor::getInterfaceImplName(), yoi::managedPtr(), IRValueType::Nullable, and IRValueType::Raw.
Referenced by IROptimizer::optimize().


|
private |
Definition at line 4498 of file IROptimizer.cpp.
References IROptimizer::compilerCtx, yoi::managedPtr(), IRValueType::Nullable, and IRValueType::Raw.
Referenced by IROptimizer::optimize().


|
private |
Definition at line 289 of file IROptimizer.hpp.
Referenced by IROptimizer::buildCallGraph(), and IROptimizer::performBaseOptimization().
|
private |
Definition at line 288 of file IROptimizer.hpp.
Referenced by IROptimizer::buildCallGraph(), IROptimizer::performBaseOptimization(), IROptimizer::performInterfaceWrapperPass(), and IROptimizer::performStructNullablePass().
|
private |
Definition at line 290 of file IROptimizer.hpp.
Referenced by IROptimizer::buildCallGraph().
|
private |
Definition at line 291 of file IROptimizer.hpp.
Referenced by IROptimizer::performBaseOptimization().