diff options
author | David Blaikie <dblaikie@gmail.com> | 2014-04-11 01:50:01 +0000 |
---|---|---|
committer | David Blaikie <dblaikie@gmail.com> | 2014-04-11 01:50:01 +0000 |
commit | 77cf856e56dc568ebe760e7de820323fdcf825a4 (patch) | |
tree | 377495323604a06e95c3199fe563498fc6139a70 /include/llvm/Analysis/LoopInfoImpl.h | |
parent | ae64ab542a8452e93c4d4c89295e086bb0cc49a2 (diff) | |
download | llvm-77cf856e56dc568ebe760e7de820323fdcf825a4.tar.gz llvm-77cf856e56dc568ebe760e7de820323fdcf825a4.tar.bz2 llvm-77cf856e56dc568ebe760e7de820323fdcf825a4.tar.xz |
Implement depth_first and inverse_depth_first range factory functions.
Also updated as many loops as I could find using df_begin/idf_begin -
strangely I found no uses of idf_begin. Is that just used out of tree?
Also a few places couldn't use df_begin because either they used the
member functions of the depth first iterators or had specific ordering
constraints (I added a comment in the latter case).
Based on a patch by Jim Grosbach. (Jim - you just had iterator_range<T>
where you needed iterator_range<idf_iterator<T>>)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@206016 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/Analysis/LoopInfoImpl.h')
-rw-r--r-- | include/llvm/Analysis/LoopInfoImpl.h | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/include/llvm/Analysis/LoopInfoImpl.h b/include/llvm/Analysis/LoopInfoImpl.h index dd2dc28bb0..0c0d5c44fb 100644 --- a/include/llvm/Analysis/LoopInfoImpl.h +++ b/include/llvm/Analysis/LoopInfoImpl.h @@ -270,11 +270,10 @@ void LoopBase<BlockT, LoopT>::verifyLoop() const { // though it is permitted if the predecessor is not itself actually // reachable. BlockT *EntryBB = BB->getParent()->begin(); - for (df_iterator<BlockT *> NI = df_begin(EntryBB), - NE = df_end(EntryBB); NI != NE; ++NI) - for (unsigned i = 0, e = OutsideLoopPreds.size(); i != e; ++i) - assert(*NI != OutsideLoopPreds[i] && - "Loop has multiple entry points!"); + for (BlockT *CB : depth_first(EntryBB)) + for (unsigned i = 0, e = OutsideLoopPreds.size(); i != e; ++i) + assert(CB != OutsideLoopPreds[i] && + "Loop has multiple entry points!"); } assert(HasInsideLoopPreds && "Loop block has no in-loop predecessors!"); assert(HasInsideLoopSuccs && "Loop block has no in-loop successors!"); |