Jlm
PointsToGraphAliasAnalysis.hpp
Go to the documentation of this file.
1 /*
2  * Copyright 2025 HÃ¥vard Krogstie <krogstie.havard@gmail.com>
3  * See COPYING for terms of redistribution.
4  */
5 
6 #ifndef JLM_LLVM_OPT_ALIAS_ANALYSES_POINTSTOGRAPHALIASANALYSIS_HPP
7 #define JLM_LLVM_OPT_ALIAS_ANALYSES_POINTSTOGRAPHALIASANALYSIS_HPP
8 
11 
12 #include <string>
13 
14 namespace jlm::llvm::aa
15 {
16 
21 {
22 public:
23  explicit PointsToGraphAliasAnalysis(const PointsToGraph & pointsToGraph);
24 
25  ~PointsToGraphAliasAnalysis() noexcept override;
26 
27  [[nodiscard]] std::string
28  ToString() const override;
29 
31  Query(const rvsdg::Output & p1, size_t s1, const rvsdg::Output & p2, size_t s2) override;
32 
33 private:
43  [[nodiscard]] std::optional<PointsToGraph::NodeIndex>
44  TryGetSingleTarget(PointsToGraph::NodeIndex node, size_t size) const;
45 
53  [[nodiscard]] bool
55 
57 };
58 
59 } // namespace jlm::llvm::aa
60 
61 #endif // JLM_LLVM_OPT_ALIAS_ANALYSES_POINTSTOGRAPHALIASANALYSIS_HPP
bool IsRepresentingSingleMemoryLocation(PointsToGraph::NodeIndex node) const
std::optional< PointsToGraph::NodeIndex > TryGetSingleTarget(PointsToGraph::NodeIndex node, size_t size) const
PointsToGraphAliasAnalysis(const PointsToGraph &pointsToGraph)
~PointsToGraphAliasAnalysis() noexcept override
AliasQueryResponse Query(const rvsdg::Output &p1, size_t s1, const rvsdg::Output &p2, size_t s2) override