Jlm
jlm
llvm
opt
alias-analyses
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
9
#include <
jlm/llvm/opt/alias-analyses/AliasAnalysis.hpp
>
10
#include <
jlm/llvm/opt/alias-analyses/PointsToGraph.hpp
>
11
12
#include <string>
13
14
namespace
jlm::llvm::aa
15
{
16
20
class
PointsToGraphAliasAnalysis
:
public
AliasAnalysis
21
{
22
public
:
23
explicit
PointsToGraphAliasAnalysis
(
const
PointsToGraph
& pointsToGraph);
24
25
~PointsToGraphAliasAnalysis
() noexcept override;
26
27
[[nodiscard]] std::
string
28
ToString
() const override;
29
30
AliasQueryResponse
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
54
IsRepresentingSingleMemoryLocation
(
PointsToGraph
::NodeIndex node) const;
55
56
const
PointsToGraph
&
pointsToGraph_
;
57
};
58
59
}
// namespace jlm::llvm::aa
60
61
#endif
// JLM_LLVM_OPT_ALIAS_ANALYSES_POINTSTOGRAPHALIASANALYSIS_HPP
AliasAnalysis.hpp
PointsToGraph.hpp
jlm::llvm::aa::AliasAnalysis
Definition:
AliasAnalysis.hpp:26
jlm::llvm::aa::AliasAnalysis::AliasQueryResponse
AliasQueryResponse
Definition:
AliasAnalysis.hpp:32
jlm::llvm::aa::PointsToGraphAliasAnalysis
Definition:
PointsToGraphAliasAnalysis.hpp:21
jlm::llvm::aa::PointsToGraphAliasAnalysis::ToString
std::string ToString() const override
Definition:
PointsToGraphAliasAnalysis.cpp:17
jlm::llvm::aa::PointsToGraphAliasAnalysis::IsRepresentingSingleMemoryLocation
bool IsRepresentingSingleMemoryLocation(PointsToGraph::NodeIndex node) const
Definition:
PointsToGraphAliasAnalysis.cpp:113
jlm::llvm::aa::PointsToGraphAliasAnalysis::TryGetSingleTarget
std::optional< PointsToGraph::NodeIndex > TryGetSingleTarget(PointsToGraph::NodeIndex node, size_t size) const
Definition:
PointsToGraphAliasAnalysis.cpp:87
jlm::llvm::aa::PointsToGraphAliasAnalysis::pointsToGraph_
const PointsToGraph & pointsToGraph_
Definition:
PointsToGraphAliasAnalysis.hpp:56
jlm::llvm::aa::PointsToGraphAliasAnalysis::PointsToGraphAliasAnalysis
PointsToGraphAliasAnalysis(const PointsToGraph &pointsToGraph)
Definition:
PointsToGraphAliasAnalysis.cpp:10
jlm::llvm::aa::PointsToGraphAliasAnalysis::~PointsToGraphAliasAnalysis
~PointsToGraphAliasAnalysis() noexcept override
jlm::llvm::aa::PointsToGraphAliasAnalysis::Query
AliasQueryResponse Query(const rvsdg::Output &p1, size_t s1, const rvsdg::Output &p2, size_t s2) override
Definition:
PointsToGraphAliasAnalysis.cpp:23
jlm::llvm::aa::PointsToGraph
Definition:
PointsToGraph.hpp:45
jlm::llvm::aa
Definition:
AgnosticModRefSummarizer.cpp:12
Generated by
1.9.1