X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=include%2Fllvm%2FADT%2FSCCIterator.h;h=e28f4caa5d76993668b45eacb9fc8de76e8ad839;hb=a7425d7fde61c2207a4467464df90b5e3e58a769;hp=9cccd123247f7166d4d5b34e8e4abd6b9e2d3090;hpb=551ccae044b0ff658fe629dd67edd5ffe75d10e8;p=oota-llvm.git diff --git a/include/llvm/ADT/SCCIterator.h b/include/llvm/ADT/SCCIterator.h index 9cccd123247..e28f4caa5d7 100644 --- a/include/llvm/ADT/SCCIterator.h +++ b/include/llvm/ADT/SCCIterator.h @@ -1,10 +1,10 @@ //===-- Support/SCCIterator.h - Strongly Connected Comp. Iter. --*- C++ -*-===// -// +// // The LLVM Compiler Infrastructure // -// This file was developed by the LLVM research group and is distributed under -// the University of Illinois Open Source License. See LICENSE.TXT for details. -// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// //===----------------------------------------------------------------------===// // // This builds on the llvm/ADT/GraphTraits.h file to find the strongly connected @@ -12,7 +12,7 @@ // // The SCC iterator has the important property that if a node in SCC S1 has an // edge to a node in SCC S2, then it visits S1 *after* S2. -// +// // To visit S1 *before* S2, use the scc_iterator on the Inverse graph. // (NOTE: This requires some simple wrappers and is not supported yet.) // @@ -22,9 +22,9 @@ #define LLVM_ADT_SCCITERATOR_H #include "llvm/ADT/GraphTraits.h" -#include "llvm/ADT/iterator" -#include +#include "llvm/ADT/iterator.h" #include +#include namespace llvm { @@ -71,8 +71,8 @@ class scc_iterator SCCNodeStack.push_back(N); MinVisitNumStack.push_back(visitNum); VisitStack.push_back(std::make_pair(N, GT::child_begin(N))); - //DEBUG(std::cerr << "TarjanSCC: Node " << N << - // " : visitNum = " << visitNum << "\n"); + //DOUT << "TarjanSCC: Node " << N << + // " : visitNum = " << visitNum << "\n"; } // The stack-based DFS traversal; defined below. @@ -106,9 +106,9 @@ class scc_iterator if (!MinVisitNumStack.empty() && MinVisitNumStack.back() > minVisitNum) MinVisitNumStack.back() = minVisitNum; - //DEBUG(std::cerr << "TarjanSCC: Popped node " << visitingN << + //DOUT << "TarjanSCC: Popped node " << visitingN << // " : minVisitNum = " << minVisitNum << "; Node visit num = " << - // nodeVisitNumbers[visitingN] << "\n"); + // nodeVisitNumbers[visitingN] << "\n"; if (minVisitNum == nodeVisitNumbers[visitingN]) { // A full SCC is on the SCCNodeStack! It includes all nodes below @@ -118,7 +118,7 @@ class scc_iterator do { CurrentSCC.push_back(SCCNodeStack.back()); SCCNodeStack.pop_back(); - nodeVisitNumbers[CurrentSCC.back()] = ~0UL; + nodeVisitNumbers[CurrentSCC.back()] = ~0U; } while (CurrentSCC.back() != visitingN); return; } @@ -144,7 +144,7 @@ public: return CurrentSCC.empty(); } - inline bool operator==(const _Self& x) const { + inline bool operator==(const _Self& x) const { return VisitStack == x.VisitStack && CurrentSCC == x.CurrentSCC; } inline bool operator!=(const _Self& x) const { return !operator==(x); } @@ -152,18 +152,18 @@ public: // Iterator traversal: forward iteration only inline _Self& operator++() { // Preincrement GetNextSCC(); - return *this; + return *this; } inline _Self operator++(int) { // Postincrement - _Self tmp = *this; ++*this; return tmp; + _Self tmp = *this; ++*this; return tmp; } // Retrieve a reference to the current SCC - inline const SccTy &operator*() const { + inline const SccTy &operator*() const { assert(!CurrentSCC.empty() && "Dereferencing END SCC iterator!"); return CurrentSCC; } - inline SccTy &operator*() { + inline SccTy &operator*() { assert(!CurrentSCC.empty() && "Dereferencing END SCC iterator!"); return CurrentSCC; }