6 #ifndef JLM_LLVM_OPT_ALIAS_ANALYSES_ELIMINATEDMODREFSUMMARIZER_HPP
7 #define JLM_LLVM_OPT_ALIAS_ANALYSES_ELIMINATEDMODREFSUMMARIZER_HPP
25 template<
class TModRefSummarizer,
class TModRefEliminator>
29 std::is_base_of_v<ModRefSummarizer, TModRefSummarizer>,
30 "T is not derived from ModRefSummarizer.");
33 std::is_base_of_v<ModRefEliminator, TModRefEliminator>,
34 "T is not derived from ModRefEliminator.");
53 const rvsdg::RvsdgModule & rvsdgModule,
57 auto seedModRefSummary =
62 static std::unique_ptr<ModRefSummary>
static jlm::util::StatisticsCollector statisticsCollector
Combines a ModeRefSummarizer and a ModRefEliminator.
std::unique_ptr< ModRefSummary > SummarizeModRefs(const rvsdg::RvsdgModule &rvsdgModule, const PointsToGraph &pointsToGraph, util::StatisticsCollector &statisticsCollector) override
TModRefSummarizer ModRefSummarizer_
TModRefEliminator ModRefEliminator_
~EliminatedModRefSummarizer() noexcept override=default
static std::unique_ptr< ModRefSummary > Create(const rvsdg::RvsdgModule &rvsdgModule, const PointsToGraph &pointsToGraph, util::StatisticsCollector &statisticsCollector)