LLVM: include/llvm/Transforms/Utils/ControlFlowUtils.h Source File (original) (raw)
1
2
3
4
5
6
7
8
9
10
11
12
13#ifndef LLVM_TRANSFORMS_UTILS_CONTROLFLOWUTILS_H
14#define LLVM_TRANSFORMS_UTILS_CONTROLFLOWUTILS_H
15
18
19namespace llvm {
20
22class DomTreeUpdater;
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
102
105 };
106
109 assert(Succ0 || Succ1);
110 Branches.emplace_back(BB, Succ0, Succ1);
111 }
112
116 std::optional MaxControlFlowBooleans = std::nullopt);
117
119};
120
121}
122
123#endif
assert(ImpDefSCC.getReg()==AMDGPU::SCC &&ImpDefSCC.isDef())
This file defines the SmallVector class.
LLVM Basic Block Representation.
This class consists of common code factored out of the SmallVector class to reduce code duplication b...
This is a 'vector' (really, a variable-sized array), optimized for the case when the array is small.
StringRef - Represent a constant reference to a string, i.e.
@ BasicBlock
Various leaf nodes.
This is an optimization pass for GlobalISel generic memory operations.
BranchDescriptor(BasicBlock *BB, BasicBlock *Succ0, BasicBlock *Succ1)
Given a set of branch descriptors [BB, Succ0, Succ1], create a "hub" such that the control flow from ...
SmallVector< BranchDescriptor > Branches
void addBranch(BasicBlock *BB, BasicBlock *Succ0, BasicBlock *Succ1)