6#ifndef JLM_LLVM_OPT_LOOPUNSWITCHING_HPP
7#define JLM_LLVM_OPT_LOOPUNSWITCHING_HPP
23class ThetaGammaPredicateCorrelation;
116 heuristic_(std::move(heuristic))
126 std::shared_ptr<const LoopUnswitchingHeuristic> heuristic);
141 static std::vector<std::vector<rvsdg::Node *>>
148 const std::vector<std::vector<rvsdg::Node *>> &
nodes);
158 allLoopVarsAreRoutedThroughGamma(
static jlm::util::StatisticsCollector statisticsCollector
std::vector< rvsdg::Node * > nodes
~LoopUnswitchingDefaultHeuristic() noexcept override
virtual bool shouldUnswitchLoop(ThetaGammaPredicateCorrelation &correlation) const noexcept=0
virtual ~LoopUnswitchingHeuristic() noexcept
std::shared_ptr< const LoopUnswitchingHeuristic > heuristic_
~LoopUnswitching() noexcept override
Conditional operator / pattern matching.
Represent acyclic RVSDG subgraphs.
Global memory state passed between functions.