clang: include/clang/Analysis/Analyses/IntervalPartition.h Source File (original) (raw)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19#ifndef LLVM_CLANG_ANALYSIS_ANALYSES_INTERVALPARTITION_H
20#define LLVM_CLANG_ANALYSIS_ANALYSES_INTERVALPARTITION_H
21
23#include "llvm/ADT/DenseSet.h"
24#include
25#include
26#include
27
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
50std::optional getIntervalWTO(const CFG &Cfg);
51
54
58
61 return V1 > V2;
62 }
63
65};
66
67namespace internal {
68
69
70
71
72
73
74
78
81
82 const llvm::SmallDenseSet<const CFGIntervalNode *> &preds() const {
84 }
85 const llvm::SmallDenseSet<const CFGIntervalNode *> &succs() const {
87 }
88
89
90
92
93 std::vector<const CFGBlock *> Nodes;
94
95
96
97
98 llvm::SmallDenseSet<const CFGIntervalNode *> Predecessors;
99
100
101
102
103 llvm::SmallDenseSet<const CFGIntervalNode *> Successors;
104};
105
106
107
109
111
112
113
115
116
117
118
120}
121}
122
123#endif
Represents a single basic block in a source-level CFG.
unsigned getBlockID() const
Represents a source-level, intra-procedural CFG that represents the control-flow of a Stmt.
std::vector< const CFGBlock * > buildInterval(const CFGBlock *Header)
std::deque< CFGIntervalNode > CFGIntervalGraph
CFGIntervalGraph partitionIntoIntervals(const CFG &Cfg)
The JSON file list parser is used to communicate input to InstallAPI.
std::vector< const CFGBlock * > WeakTopologicalOrdering
A weak topological ordering (WTO) of CFG nodes provides a total order over the CFG (defined in WTOCom...
std::optional< WeakTopologicalOrdering > getIntervalWTO(const CFG &Cfg)
std::vector< unsigned > BlockOrder
bool operator()(const CFGBlock *B1, const CFGBlock *B2) const
std::vector< const CFGBlock * > Nodes
const llvm::SmallDenseSet< const CFGIntervalNode * > & preds() const
llvm::SmallDenseSet< const CFGIntervalNode * > Predecessors
CFGIntervalNode(unsigned ID, std::vector< const CFGBlock * > Nodes)
CFGIntervalNode(unsigned ID)
llvm::SmallDenseSet< const CFGIntervalNode * > Successors
const llvm::SmallDenseSet< const CFGIntervalNode * > & succs() const
CFGIntervalNode()=default