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
19
20namespace llvm {
21
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
97
98
99
109
113 assert(Succ0 || Succ1);
114 Branches.emplace_back(BB, Succ0, Succ1);
115 }
116
117
118
119 std::pair<BasicBlock *, bool>
122 std::optional MaxControlFlowBooleans = std::nullopt);
123
125};
126
127}
128
129#endif
assert(UImm &&(UImm !=~static_cast< T >(0)) &&"Invalid immediate!")
This file declares the LLVM IR specialization of the GenericCycle templates.
This file defines the SmallVector class.
LLVM Basic Block Representation.
CallBr instruction, tracking function calls that may not return control but instead transfer it to a ...
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.
This is an optimization pass for GlobalISel generic memory operations.
BranchDescriptor(BasicBlock *BB, BasicBlock *Succ0, BasicBlock *Succ1)
Definition ControlFlowUtils.h:106
BasicBlock * BB
Definition ControlFlowUtils.h:102
BasicBlock * Succ0
Definition ControlFlowUtils.h:103
BasicBlock * Succ1
Definition ControlFlowUtils.h:104
Given a set of branch descriptors [BB, Succ0, Succ1], create a "hub" such that the control flow from ...
Definition ControlFlowUtils.h:100
void addBranch(BasicBlock *BB, BasicBlock *Succ0, BasicBlock *Succ1=nullptr)
Definition ControlFlowUtils.h:110
SmallVector< BranchDescriptor > Branches
Definition ControlFlowUtils.h:124