mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-13 04:30:23 +00:00
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
This commit is contained in:
parent
52974eb49a
commit
d3fb671480
@ -35,6 +35,7 @@
|
|||||||
|
|
||||||
#include "llvm/ADT/GraphTraits.h"
|
#include "llvm/ADT/GraphTraits.h"
|
||||||
#include "llvm/ADT/iterator"
|
#include "llvm/ADT/iterator"
|
||||||
|
#include "llvm/ADT/SmallPtrSet.h"
|
||||||
#include <vector>
|
#include <vector>
|
||||||
#include <set>
|
#include <set>
|
||||||
|
|
||||||
@ -58,8 +59,8 @@ public:
|
|||||||
|
|
||||||
|
|
||||||
// Generic Depth First Iterator
|
// Generic Depth First Iterator
|
||||||
template<class GraphT, class SetType =
|
template<class GraphT,
|
||||||
std::set<typename GraphTraits<GraphT>::NodeType*>,
|
class SetType = llvm::SmallPtrSet<typename GraphTraits<GraphT>::NodeType*, 8>,
|
||||||
bool ExtStorage = false, class GT = GraphTraits<GraphT> >
|
bool ExtStorage = false, class GT = GraphTraits<GraphT> >
|
||||||
class df_iterator : public forward_iterator<typename GT::NodeType, ptrdiff_t>,
|
class df_iterator : public forward_iterator<typename GT::NodeType, ptrdiff_t>,
|
||||||
public df_iterator_storage<SetType, ExtStorage> {
|
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...
|
// 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>
|
bool External = false>
|
||||||
struct idf_iterator : public df_iterator<Inverse<T>, SetTy, External> {
|
struct idf_iterator : public df_iterator<Inverse<T>, SetTy, External> {
|
||||||
idf_iterator(const df_iterator<Inverse<T>, SetTy, External> &V)
|
idf_iterator(const df_iterator<Inverse<T>, SetTy, External> &V)
|
||||||
|
Loading…
Reference in New Issue
Block a user