VapourSynth-llvmexpr
Loading...
Searching...
No Matches
PreservedAnalyses.hpp
Go to the documentation of this file.
1
19
20
#ifndef LLVMEXPR_ANALYSIS_FRAMEWORK_PRESERVED_ANALYSES_HPP
21
#define LLVMEXPR_ANALYSIS_FRAMEWORK_PRESERVED_ANALYSES_HPP
22
23
#include <typeindex>
24
#include <unordered_set>
25
26
namespace
analysis
{
27
28
class
PreservedAnalyses {
29
public
:
30
static
PreservedAnalyses
all
() {
return
PreservedAnalyses(
true
); }
31
32
static
PreservedAnalyses
none
() {
return
PreservedAnalyses(
false
); }
33
34
[[nodiscard]]
bool
preservedAll
()
const
{
return
preserved_all; }
35
36
template
<
typename
PassT>
void
preserve
() {
37
if
(!preserved_all) {
38
preserved_passes.insert(std::type_index(
typeid
(PassT)));
39
}
40
}
41
42
template
<
typename
PassT> [[nodiscard]]
bool
isPreserved
()
const
{
43
if
(preserved_all) {
44
return
true
;
45
}
46
return
preserved_passes.contains(std::type_index(
typeid
(PassT)));
47
}
48
49
[[nodiscard]]
bool
isPreserved
(
const
std::type_index& pass_type)
const
{
50
if
(preserved_all) {
51
return
true
;
52
}
53
return
preserved_passes.contains(pass_type);
54
}
55
56
private
:
57
explicit
PreservedAnalyses
(
bool
all
) : preserved_all(
all
) {}
58
59
bool
preserved_all;
60
std::unordered_set<std::type_index> preserved_passes;
61
};
62
63
}
// namespace analysis
64
65
#endif
// LLVMEXPR_ANALYSIS_FRAMEWORK_PRESERVED_ANALYSES_HPP
analysis::PreservedAnalyses
Definition
PreservedAnalyses.hpp:28
analysis::PreservedAnalyses::all
static PreservedAnalyses all()
Definition
PreservedAnalyses.hpp:30
analysis::PreservedAnalyses::preserve
void preserve()
Definition
PreservedAnalyses.hpp:36
analysis::PreservedAnalyses::preservedAll
bool preservedAll() const
Definition
PreservedAnalyses.hpp:34
analysis::PreservedAnalyses::isPreserved
bool isPreserved(const std::type_index &pass_type) const
Definition
PreservedAnalyses.hpp:49
analysis::PreservedAnalyses::isPreserved
bool isPreserved() const
Definition
PreservedAnalyses.hpp:42
analysis::PreservedAnalyses::none
static PreservedAnalyses none()
Definition
PreservedAnalyses.hpp:32
analysis
Definition
AnalysisResults.hpp:36
llvmexpr
analysis
framework
PreservedAnalyses.hpp
Generated by
1.16.0