Lines Matching defs:MachineLoop
40 class MachineLoop;
41 extern template class LoopBase<MachineBasicBlock, MachineLoop>;
43 class MachineLoop : public LoopBase<MachineBasicBlock, MachineLoop> {
45 MachineLoop();
60 friend class LoopInfoBase<MachineBasicBlock, MachineLoop>;
61 explicit MachineLoop(MachineBasicBlock *MBB)
62 : LoopBase<MachineBasicBlock, MachineLoop>(MBB) {}
66 extern template class LoopInfoBase<MachineBasicBlock, MachineLoop>;
69 LoopInfoBase<MachineBasicBlock, MachineLoop> LI;
70 friend class LoopBase<MachineBasicBlock, MachineLoop>;
82 LoopInfoBase<MachineBasicBlock, MachineLoop>& getBase() { return LI; }
87 typedef LoopInfoBase<MachineBasicBlock, MachineLoop>::iterator iterator;
95 inline MachineLoop *getLoopFor(const MachineBasicBlock *BB) const {
101 inline const MachineLoop *operator[](const MachineBasicBlock *BB) const {
127 inline MachineLoop *removeLoop(iterator I) { return LI.removeLoop(I); }
132 inline void changeLoopFor(MachineBasicBlock *BB, MachineLoop *L) {
138 inline void changeTopLevelLoop(MachineLoop *OldLoop, MachineLoop *NewLoop) {
144 inline void addTopLevelLoop(MachineLoop *New) {
158 template <> struct GraphTraits<const MachineLoop*> {
159 typedef const MachineLoop NodeType;
162 static NodeType *getEntryNode(const MachineLoop *L) { return L; }
171 template <> struct GraphTraits<MachineLoop*> {
172 typedef MachineLoop NodeType;
175 static NodeType *getEntryNode(MachineLoop *L) { return L; }