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