Lines Matching defs:Loop

1 //===- llvm/Analysis/LoopInfo.h - Natural Loop Calculator -------*- C++ -*-===//
54 class Loop;
81 /// Loop ctor - This creates an empty loop.
309 assert(i != Blocks.size() && "Loop does not contain BB!");
343 raw_ostream& operator<<(raw_ostream &OS, const LoopBase<BlockT, LoopT> &Loop) {
344 Loop.print(OS);
350 __extension__ extern template class LoopBase<BasicBlock, Loop>;
353 class Loop : public LoopBase<BasicBlock, Loop> {
355 Loop() {}
399 /// isLCSSAForm - Return true if the Loop is in LCSSA form
402 /// isLoopSimplifyForm - Return true if the Loop is in the form that
482 friend class LoopInfoBase<BasicBlock, Loop>;
483 explicit Loop(BasicBlock *BB) : LoopBase<BasicBlock, Loop>(BB) {}
590 assert(!New->getParentLoop() && "Loop already in subloop!");
595 /// including all of the Loop objects it is nested in and our mapping from
626 __extension__ extern template class LoopInfoBase<BasicBlock, Loop>;
630 LoopInfoBase<BasicBlock, Loop> LI;
631 friend class LoopBase<BasicBlock, Loop>;
642 LoopInfoBase<BasicBlock, Loop>& getBase() { return LI; }
647 typedef LoopInfoBase<BasicBlock, Loop>::iterator iterator;
648 typedef LoopInfoBase<BasicBlock, Loop>::reverse_iterator reverse_iterator;
658 inline Loop *getLoopFor(const BasicBlock *BB) const {
664 inline const Loop *operator[](const BasicBlock *BB) const {
695 inline Loop *removeLoop(iterator I) { return LI.removeLoop(I); }
700 inline void changeLoopFor(BasicBlock *BB, Loop *L) {
706 inline void changeTopLevelLoop(Loop *OldLoop, Loop *NewLoop) {
712 inline void addTopLevelLoop(Loop *New) {
717 /// including all of the Loop objects it is nested in and our mapping from
727 void updateUnloop(Loop *Unloop);
742 Loop *ToLoop = getLoopFor(I->getParent());
753 template <> struct GraphTraits<const Loop*> {
754 typedef const Loop NodeType;
757 static NodeType *getEntryNode(const Loop *L) { return L; }
766 template <> struct GraphTraits<Loop*> {
767 typedef Loop NodeType;
770 static NodeType *getEntryNode(Loop *L) { return L; }