diff options
| author | Roman Divacky <rdivacky@FreeBSD.org> | 2009-12-01 11:07:05 +0000 | 
|---|---|---|
| committer | Roman Divacky <rdivacky@FreeBSD.org> | 2009-12-01 11:07:05 +0000 | 
| commit | 06f9d4012fb8acea3e9861d5722b5965dbb724d9 (patch) | |
| tree | ffe0478472eaa0686f11cb02c6df7d257b8719b0 /include/llvm/Analysis/LoopInfo.h | |
| parent | 76e2e0ebfdd3d91b07a75822865ea3e9121a99ce (diff) | |
Notes
Diffstat (limited to 'include/llvm/Analysis/LoopInfo.h')
| -rw-r--r-- | include/llvm/Analysis/LoopInfo.h | 20 | 
1 files changed, 5 insertions, 15 deletions
diff --git a/include/llvm/Analysis/LoopInfo.h b/include/llvm/Analysis/LoopInfo.h index 6504bdce4283..9969d999e13e 100644 --- a/include/llvm/Analysis/LoopInfo.h +++ b/include/llvm/Analysis/LoopInfo.h @@ -269,8 +269,6 @@ public:    /// getLoopLatch - If there is a single latch block for this loop, return it.    /// A latch block is a block that contains a branch back to the header. -  /// A loop header in normal form has two edges into it: one from a preheader -  /// and one from a latch block.    BlockT *getLoopLatch() const {      BlockT *Header = getHeader();      typedef GraphTraits<Inverse<BlockT*> > InvBlockTraits; @@ -278,20 +276,12 @@ public:                                              InvBlockTraits::child_begin(Header);      typename InvBlockTraits::ChildIteratorType PE =                                                InvBlockTraits::child_end(Header); -    if (PI == PE) return 0;  // no preds? -      BlockT *Latch = 0; -    if (contains(*PI)) -      Latch = *PI; -    ++PI; -    if (PI == PE) return 0;  // only one pred? - -    if (contains(*PI)) { -      if (Latch) return 0;  // multiple backedges -      Latch = *PI; -    } -    ++PI; -    if (PI != PE) return 0;  // more than two preds +    for (; PI != PE; ++PI) +      if (contains(*PI)) { +        if (Latch) return 0; +        Latch = *PI; +      }      return Latch;    }  | 
