Jlm
Loading...
Searching...
No Matches
ModRefEliminator.hpp
Go to the documentation of this file.
1/*
2 * Copyright 2023 Nico Reißmann <nico.reissmann@gmail.com>
3 * See COPYING for terms of redistribution.
4 */
5
6#ifndef JLM_LLVM_OPT_ALIAS_ANALYSES_MODREFELIMINATOR_HPP
7#define JLM_LLVM_OPT_ALIAS_ANALYSES_MODREFELIMINATOR_HPP
8
9#include <memory>
10
11namespace jlm::rvsdg
12{
13class RvsdgModule;
14}
15
16namespace jlm::util
17{
18class StatisticsCollector;
19}
20
21namespace jlm::llvm::aa
22{
23
24class ModRefSummary;
25
27{
28public:
29 virtual ~ModRefEliminator() noexcept = default;
30
40 virtual std::unique_ptr<ModRefSummary>
42 const rvsdg::RvsdgModule & rvsdgModule,
43 const ModRefSummary & seedModRefSummary,
44 util::StatisticsCollector & statisticsCollector) = 0;
45};
46
47}
48
49#endif // JLM_LLVM_OPT_ALIAS_ANALYSES_MODREFELIMINATOR_HPP
static jlm::util::StatisticsCollector statisticsCollector
virtual std::unique_ptr< ModRefSummary > EliminateModRefs(const rvsdg::RvsdgModule &rvsdgModule, const ModRefSummary &seedModRefSummary, util::StatisticsCollector &statisticsCollector)=0
virtual ~ModRefEliminator() noexcept=default