X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=include%2Fllvm%2FADT%2FDepthFirstIterator.h;h=517768f402df9caf03f440906fd06b8c5af258ee;hb=7eaf057e54e9b5f0469057c71d81dcfee90d9e12;hp=0cdd79b3c96dcb4e1b9102d4676ef33886d5223e;hpb=d3fb6714802d8e44b34980af8772cc3ed398e71a;p=oota-llvm.git diff --git a/include/llvm/ADT/DepthFirstIterator.h b/include/llvm/ADT/DepthFirstIterator.h index 0cdd79b3c96..517768f402d 100644 --- a/include/llvm/ADT/DepthFirstIterator.h +++ b/include/llvm/ADT/DepthFirstIterator.h @@ -2,8 +2,8 @@ // // 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. // //===----------------------------------------------------------------------===// // @@ -34,10 +34,10 @@ #define LLVM_ADT_DEPTHFIRSTITERATOR_H #include "llvm/ADT/GraphTraits.h" -#include "llvm/ADT/iterator" +#include "llvm/ADT/iterator.h" #include "llvm/ADT/SmallPtrSet.h" -#include #include +#include namespace llvm { @@ -96,16 +96,16 @@ public: typedef df_iterator _Self; // Provide static begin and end methods as our public "constructors" - static inline _Self begin(GraphT G) { + static inline _Self begin(const GraphT& G) { return _Self(GT::getEntryNode(G)); } - static inline _Self end(GraphT G) { return _Self(); } + static inline _Self end(const GraphT& G) { return _Self(); } // Static begin and end methods as our public ctors for external iterators - static inline _Self begin(GraphT G, SetType &S) { + static inline _Self begin(const GraphT& G, SetType &S) { return _Self(GT::getEntryNode(G), S); } - static inline _Self end(GraphT G, SetType &S) { return _Self(S); } + static inline _Self end(const GraphT& G, SetType &S) { return _Self(S); } inline bool operator==(const _Self& x) const { return VisitStack.size() == x.VisitStack.size() && @@ -162,12 +162,12 @@ public: // Provide global constructors that automatically figure out correct types... // template -df_iterator df_begin(T G) { +df_iterator df_begin(const T& G) { return df_iterator::begin(G); } template -df_iterator df_end(T G) { +df_iterator df_end(const T& G) { return df_iterator::end(G); } @@ -179,12 +179,12 @@ struct df_ext_iterator : public df_iterator { }; template -df_ext_iterator df_ext_begin(T G, SetTy &S) { +df_ext_iterator df_ext_begin(const T& G, SetTy &S) { return df_ext_iterator::begin(G, S); } template -df_ext_iterator df_ext_end(T G, SetTy &S) { +df_ext_iterator df_ext_end(const T& G, SetTy &S) { return df_ext_iterator::end(G, S); } @@ -199,13 +199,13 @@ struct idf_iterator : public df_iterator, SetTy, External> { }; template -idf_iterator idf_begin(T G) { - return idf_iterator::begin(G); +idf_iterator idf_begin(const T& G) { + return idf_iterator::begin(Inverse(G)); } template -idf_iterator idf_end(T G){ - return idf_iterator::end(G); +idf_iterator idf_end(const T& G){ + return idf_iterator::end(Inverse(G)); } // Provide global definitions of external inverse depth first iterators... @@ -218,13 +218,13 @@ struct idf_ext_iterator : public idf_iterator { }; template -idf_ext_iterator idf_ext_begin(T G, SetTy &S) { - return idf_ext_iterator::begin(G, S); +idf_ext_iterator idf_ext_begin(const T& G, SetTy &S) { + return idf_ext_iterator::begin(Inverse(G), S); } template -idf_ext_iterator idf_ext_end(T G, SetTy &S) { - return idf_ext_iterator::end(G, S); +idf_ext_iterator idf_ext_end(const T& G, SetTy &S) { + return idf_ext_iterator::end(Inverse(G), S); } } // End llvm namespace