Lines Matching refs:BlockT

65 template<class BlockT, class LoopT>
72 std::vector<BlockT*> Blocks;
74 SmallPtrSet<const BlockT*, 8> DenseBlockSet;
80 LoopBase(const LoopBase<BlockT, LoopT> &) = delete;
81 const LoopBase<BlockT, LoopT>&
82 operator=(const LoopBase<BlockT, LoopT> &) = delete;
101 BlockT *getHeader() const { return Blocks.front(); } in getHeader()
118 bool contains(const BlockT *BB) const { in contains()
144 const std::vector<BlockT*> &getBlocks() const { return Blocks; } in getBlocks()
145 typedef typename std::vector<BlockT*>::const_iterator block_iterator;
167 bool isLoopExiting(const BlockT *BB) const { in isLoopExiting()
168 typedef GraphTraits<const BlockT*> BlockTraits; in isLoopExiting()
182 BlockT *H = getHeader(); in getNumBackEdges()
184 typedef GraphTraits<Inverse<BlockT*> > InvBlockTraits; in getNumBackEdges()
206 void getExitingBlocks(SmallVectorImpl<BlockT *> &ExitingBlocks) const;
210 BlockT *getExitingBlock() const;
215 void getExitBlocks(SmallVectorImpl<BlockT*> &ExitBlocks) const;
219 BlockT *getExitBlock() const;
222 typedef std::pair<const BlockT*, const BlockT*> Edge;
234 BlockT *getLoopPreheader() const;
241 BlockT *getLoopPredecessor() const;
245 BlockT *getLoopLatch() const;
249 void getLoopLatches(SmallVectorImpl<BlockT *> &LoopLatches) const { in getLoopLatches()
250 BlockT *H = getHeader(); in getLoopLatches()
251 typedef GraphTraits<Inverse<BlockT*> > InvBlockTraits; in getLoopLatches()
269 void addBasicBlockToLoop(BlockT *NewBB, LoopInfoBase<BlockT, LoopT> &LI);
301 void addBlockEntry(BlockT *BB) { in addBlockEntry()
319 void moveToHeader(BlockT *BB) { in moveToHeader()
334 void removeBlockFromLoop(BlockT *BB) { in removeBlockFromLoop()
351 friend class LoopInfoBase<BlockT, LoopT>;
352 explicit LoopBase(BlockT *BB) : ParentLoop(nullptr) { in LoopBase()
358 template<class BlockT, class LoopT>
359 raw_ostream& operator<<(raw_ostream &OS, const LoopBase<BlockT, LoopT> &Loop) {
505 template<class BlockT, class LoopT>
508 DenseMap<const BlockT *, LoopT *> BBMap;
510 friend class LoopBase<BlockT, LoopT>;
558 LoopT *getLoopFor(const BlockT *BB) const { return BBMap.lookup(BB); } in getLoopFor()
562 const LoopT *operator[](const BlockT *BB) const {
569 unsigned getLoopDepth(const BlockT *BB) const { in getLoopDepth()
575 bool isLoopHeader(const BlockT *BB) const { in isLoopHeader()
594 void changeLoopFor(BlockT *BB, LoopT *L) { in changeLoopFor()
623 void removeBlock(BlockT *BB) { in removeBlock()
643 void analyze(const DominatorTreeBase<BlockT> &DomTree);