Jlm
PointsToAnalysisStateEncoder.hpp
Go to the documentation of this file.
1 /*
2  * Copyright 2021 Nico Reißmann <nico.reissmann@gmail.com>
3  * Copyright 2023 Håvard Krogstie <krogstie.havard@gmail.com>
4  * See COPYING for terms of redistribution.
5  */
6 
7 #ifndef JLM_LLVM_OPT_ALIAS_ANALYSES_POINTSTOANALYSISSTATEENCODER_HPP
8 #define JLM_LLVM_OPT_ALIAS_ANALYSES_POINTSTOANALYSISSTATEENCODER_HPP
9 
13 
14 #include <type_traits>
15 
16 namespace jlm::llvm::aa
17 {
18 
33 template<typename TPointsToAnalysis, typename TModRefSummarizer>
35 {
36  static_assert(std::is_base_of_v<PointsToAnalysis, TPointsToAnalysis>);
37  static_assert(std::is_base_of_v<ModRefSummarizer, TModRefSummarizer>);
38 
39 public:
40  ~PointsToAnalysisStateEncoder() noexcept override;
41 
44  {}
45 
46  void
47  Run(rvsdg::RvsdgModule & rvsdgModule, util::StatisticsCollector & statisticsCollector) override;
48 };
49 
50 }
51 
52 #endif
void Run(rvsdg::RvsdgModule &rvsdgModule, util::StatisticsCollector &statisticsCollector) override
Perform RVSDG transformation.
Represents an RVSDG transformation.
Transformation(std::string_view Name)