LLVM: include/llvm/CodeGen/LoopTraversal.h Source File (original) (raw)
Go to the documentation of this file.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18#ifndef LLVM_CODEGEN_LOOPTRAVERSAL_H
19#define LLVM_CODEGEN_LOOPTRAVERSAL_H
20
22
23namespace llvm {
24
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
66private:
67 struct MBBInfo {
68
69 bool PrimaryCompleted = false;
70
71
72 unsigned IncomingProcessed = 0;
73
74
75 unsigned PrimaryIncoming = 0;
76
77
78 unsigned IncomingCompleted = 0;
79
80 MBBInfo() = default;
81 };
83
84 MBBInfoMap MBBInfos;
85
86public:
102
103
104
107
108private:
109
111};
112
113}
114
115#endif
This file defines the SmallVector class.
TraversalOrder traverse(MachineFunction &MF)
SmallVector< TraversedMBBInfo, 4 > TraversalOrder
Identifies basic blocks that are part of loops and should to be visited twice and returns efficient t...
Definition LoopTraversal.h:105
This is a 'vector' (really, a variable-sized array), optimized for the case when the array is small.
This is an optimization pass for GlobalISel generic memory operations.
MachineBasicBlock * MBB
The basic block.
Definition LoopTraversal.h:89
bool IsDone
True if the block that is ready for its final round of processing.
Definition LoopTraversal.h:95
TraversedMBBInfo(MachineBasicBlock *BB=nullptr, bool Primary=true, bool Done=true)
Definition LoopTraversal.h:97
bool PrimaryPass
True if this is the first time we process the basic block.
Definition LoopTraversal.h:92