6#ifndef JLM_LLVM_OPT_ALIAS_ANALYSES_AGNOSTICMODREFSUMMARIZER_HPP
7#define JLM_LLVM_OPT_ALIAS_ANALYSES_AGNOSTICMODREFSUMMARIZER_HPP
16class AgnosticModRefSet;
17class AgnosticModRefSummary;
46 std::unique_ptr<ModRefSummary>
61 static std::unique_ptr<ModRefSummary>
75 static std::unique_ptr<ModRefSummary>
142 return GetMeasurementValue<uint64_t>(Label::NumPointsToGraphMemoryNodes);
169 static std::unique_ptr<Statistics>
static jlm::util::StatisticsCollector statisticsCollector
class returned by the Agnostic ModRefSummarizer
Agnostic mod/ref summarizer statistics.
Statistics(const util::FilePath &sourceFile, const util::StatisticsCollector &statisticsCollector, const PointsToGraph &pointsToGraph)
static std::unique_ptr< Statistics > Create(const util::FilePath &sourceFile, const util::StatisticsCollector &statisticsCollector, const PointsToGraph &pointsToGraph)
void StopCollecting() noexcept
size_t NumPointsToGraphMemoryNodes() const noexcept
size_t GetTime() const noexcept
void StartCollecting() noexcept
const util::StatisticsCollector & StatisticsCollector_
Agnostic mod/ref summarizer.
std::unique_ptr< ModRefSummary > SummarizeModRefs(const rvsdg::RvsdgModule &rvsdgModule, const PointsToGraph &pointsToGraph, util::StatisticsCollector &statisticsCollector) override
static std::unique_ptr< ModRefSummary > Create(const rvsdg::RvsdgModule &rvsdgModule, const PointsToGraph &pointsToGraph, util::StatisticsCollector &statisticsCollector)
void AddPointerTargetsToModRefSet(const rvsdg::Output &output, ModRefEffect modRefEffect, AgnosticModRefSet &modRefSet) const
static AgnosticModRefSet GetAllMemoryNodes(const PointsToGraph &pointsToGraph)
AgnosticModRefSummarizer(const AgnosticModRefSummarizer &)=delete
AgnosticModRefSummarizer & operator=(const AgnosticModRefSummarizer &)=delete
AgnosticModRefSummarizer()
void AnnotateRegion(const rvsdg::Region ®ion)
void AnnotateSimpleNode(const rvsdg::SimpleNode &node)
std::unique_ptr< AgnosticModRefSummary > ModRefSummary_
~AgnosticModRefSummarizer() override
size_t numMemoryNodes() const noexcept
Represent acyclic RVSDG subgraphs.
bool IsDemanded(Statistics::Id id) const noexcept
util::Timer & GetTimer(const std::string &name)
util::Timer & AddTimer(std::string name)
void AddMeasurement(std::string name, T value)