6 #ifndef JLM_LLVM_OPT_LOADCHAINSEPARATION_HPP
7 #define JLM_LLVM_OPT_LOADCHAINSEPARATION_HPP
111 links.push_back(std::move(modRefChainLink));
114 std::vector<ModRefChainLink>
links{};
123 if (modRefChain.
links.size() >= 2)
154 static std::vector<ModRefChain>
static jlm::util::StatisticsCollector statisticsCollector
void Run(rvsdg::RvsdgModule &module, util::StatisticsCollector &statisticsCollector) override
Perform RVSDG transformation.
std::unique_ptr< Context > Context_
bool separateReferenceChains(rvsdg::Output &startOutput)
static rvsdg::Input & mapMemoryStateOutputToInput(const rvsdg::Output &output)
void separateRefenceChainsInTheta(rvsdg::ThetaNode &thetaNode)
void separateRefenceChainsInGamma(rvsdg::GammaNode &gammaNode)
static std::vector< ModRefChain > extractReferenceSubchains(const ModRefChain &modRefChain)
bool traceModRefChains(rvsdg::Output &startOutput, ModRefChainSummary &summary)
void separateReferenceChainsInLambda(rvsdg::LambdaNode &lambdaNode)
~LoadChainSeparation() noexcept override
void separateReferenceChainsInRegion(rvsdg::Region ®ion)
Global memory state passed between functions.
std::vector< ModRefChain > modRefChains
void add(ModRefChain modRefChain)
std::vector< ModRefChainLink > links
void add(ModRefChainLink modRefChainLink)