Jlm
Loading...
Searching...
No Matches
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
(std::shared_ptr<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
std::shared_ptr<const
PointsToGraph
>
pointsToGraph_
;
57
};
58
59
}
// namespace jlm::llvm::aa
60
61
#endif
// JLM_LLVM_OPT_ALIAS_ANALYSES_POINTSTOGRAPHALIASANALYSIS_HPP
AliasAnalysis.hpp
PointsToGraph.hpp
NodeIndex
jlm::llvm::aa::PointsToGraph::NodeIndex NodeIndex
Definition
RegionAwareModRefSummarizerTests.cpp:28
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:18
jlm::llvm::aa::PointsToGraphAliasAnalysis::IsRepresentingSingleMemoryLocation
bool IsRepresentingSingleMemoryLocation(PointsToGraph::NodeIndex node) const
Definition
PointsToGraphAliasAnalysis.cpp:123
jlm::llvm::aa::PointsToGraphAliasAnalysis::TryGetSingleTarget
std::optional< PointsToGraph::NodeIndex > TryGetSingleTarget(PointsToGraph::NodeIndex node, size_t size) const
Definition
PointsToGraphAliasAnalysis.cpp:97
jlm::llvm::aa::PointsToGraphAliasAnalysis::pointsToGraph_
std::shared_ptr< const PointsToGraph > pointsToGraph_
Definition
PointsToGraphAliasAnalysis.hpp:56
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:24
jlm::llvm::aa::PointsToGraph
Definition
PointsToGraph.hpp:47
jlm::llvm::aa
Definition
AgnosticModRefSummarizer.cpp:23
Generated by
1.9.8