• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /macosx-10.10.1/llvmCore-3425.0.34/include/llvm/Analysis/

Lines Matching refs:BlockT

66 template<class BlockT, class LoopT>
73 std::vector<BlockT*> Blocks;
75 LoopBase(const LoopBase<BlockT, LoopT> &) LLVM_DELETED_FUNCTION;
76 const LoopBase<BlockT, LoopT>&
77 operator=(const LoopBase<BlockT, LoopT> &) LLVM_DELETED_FUNCTION;
96 BlockT *getHeader() const { return Blocks.front(); }
113 bool contains(const BlockT *BB) const {
139 const std::vector<BlockT*> &getBlocks() const { return Blocks; }
140 std::vector<BlockT*> &getBlocksVector() { return Blocks; }
141 typedef typename std::vector<BlockT*>::const_iterator block_iterator;
153 bool isLoopExiting(const BlockT *BB) const {
154 typedef GraphTraits<BlockT*> BlockTraits;
156 BlockTraits::child_begin(const_cast<BlockT*>(BB)),
157 SE = BlockTraits::child_end(const_cast<BlockT*>(BB)); SI != SE; ++SI) {
168 BlockT *H = getHeader();
170 typedef GraphTraits<Inverse<BlockT*> > InvBlockTraits;
172 InvBlockTraits::child_begin(const_cast<BlockT*>(H)),
173 E = InvBlockTraits::child_end(const_cast<BlockT*>(H)); I != E; ++I)
192 void getExitingBlocks(SmallVectorImpl<BlockT *> &ExitingBlocks) const;
196 BlockT *getExitingBlock() const;
201 void getExitBlocks(SmallVectorImpl<BlockT*> &ExitBlocks) const;
205 BlockT *getExitBlock() const;
208 typedef std::pair<const BlockT*, const BlockT*> Edge;
220 BlockT *getLoopPreheader() const;
227 BlockT *getLoopPredecessor() const;
231 BlockT *getLoopLatch() const;
243 void addBasicBlockToLoop(BlockT *NewBB, LoopInfoBase<BlockT, LoopT> &LI);
275 void addBlockEntry(BlockT *BB) {
282 void moveToHeader(BlockT *BB) {
297 void removeBlockFromLoop(BlockT *BB) {
310 friend class LoopInfoBase<BlockT, LoopT>;
311 explicit LoopBase(BlockT *BB) : ParentLoop(0) {
316 template<class BlockT, class LoopT>
317 raw_ostream& operator<<(raw_ostream &OS, const LoopBase<BlockT, LoopT> &Loop) {
410 template<class BlockT, class LoopT>
413 DenseMap<BlockT *, LoopT *> BBMap;
415 friend class LoopBase<BlockT, LoopT>;
448 LoopT *getLoopFor(const BlockT *BB) const {
449 return BBMap.lookup(const_cast<BlockT*>(BB));
454 const LoopT *operator[](const BlockT *BB) const {
461 unsigned getLoopDepth(const BlockT *BB) const {
467 bool isLoopHeader(BlockT *BB) const {
486 void changeLoopFor(BlockT *BB, LoopT *L) {
516 void removeBlock(BlockT *BB) {
517 typename DenseMap<BlockT *, LoopT *>::iterator I = BBMap.find(BB);
536 void Analyze(DominatorTreeBase<BlockT> &DomTree);