diff options
author | Owen Anderson <resistor@mac.com> | 2007-06-21 21:25:36 +0000 |
---|---|---|
committer | Owen Anderson <resistor@mac.com> | 2007-06-21 21:25:36 +0000 |
commit | d3fb6714802d8e44b34980af8772cc3ed398e71a (patch) | |
tree | f7b5c9a5d4021c46ff7c7316a3a95a139932424e /include/llvm/ADT/DepthFirstIterator.h | |
parent | 52974eb49a18324e3897b749dce97c44e0ac65d3 (diff) | |
download | llvm-d3fb6714802d8e44b34980af8772cc3ed398e71a.tar.gz llvm-d3fb6714802d8e44b34980af8772cc3ed398e71a.tar.bz2 llvm-d3fb6714802d8e44b34980af8772cc3ed398e71a.tar.xz |
Have internal df_iterator's use SmallPtrSet instead of std::set. This provides compile time speedups to any pass using df_iterator.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37694 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/ADT/DepthFirstIterator.h')
-rw-r--r-- | include/llvm/ADT/DepthFirstIterator.h | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/include/llvm/ADT/DepthFirstIterator.h b/include/llvm/ADT/DepthFirstIterator.h index 48ee3b2ba8..0cdd79b3c9 100644 --- a/include/llvm/ADT/DepthFirstIterator.h +++ b/include/llvm/ADT/DepthFirstIterator.h @@ -35,6 +35,7 @@ #include "llvm/ADT/GraphTraits.h" #include "llvm/ADT/iterator" +#include "llvm/ADT/SmallPtrSet.h" #include <vector> #include <set> @@ -58,8 +59,8 @@ public: // Generic Depth First Iterator -template<class GraphT, class SetType = - std::set<typename GraphTraits<GraphT>::NodeType*>, +template<class GraphT, +class SetType = llvm::SmallPtrSet<typename GraphTraits<GraphT>::NodeType*, 8>, bool ExtStorage = false, class GT = GraphTraits<GraphT> > class df_iterator : public forward_iterator<typename GT::NodeType, ptrdiff_t>, public df_iterator_storage<SetType, ExtStorage> { @@ -189,7 +190,8 @@ df_ext_iterator<T, SetTy> df_ext_end(T G, SetTy &S) { // Provide global definitions of inverse depth first iterators... -template <class T, class SetTy = std::set<typename GraphTraits<T>::NodeType*>, +template <class T, + class SetTy = llvm::SmallPtrSet<typename GraphTraits<T>::NodeType*, 8>, bool External = false> struct idf_iterator : public df_iterator<Inverse<T>, SetTy, External> { idf_iterator(const df_iterator<Inverse<T>, SetTy, External> &V) |