diff options
author | Chandler Carruth <chandlerc@gmail.com> | 2014-04-24 09:22:31 +0000 |
---|---|---|
committer | Chandler Carruth <chandlerc@gmail.com> | 2014-04-24 09:22:31 +0000 |
commit | bcb39a444bd8dfdd872d7d3b23aa871e8a29b103 (patch) | |
tree | 34099d9986dc4ad63ac44490134ff299325f102e /include | |
parent | 9e65c463453fa777efadba252c212076686fabba (diff) | |
download | llvm-bcb39a444bd8dfdd872d7d3b23aa871e8a29b103.tar.gz llvm-bcb39a444bd8dfdd872d7d3b23aa871e8a29b103.tar.bz2 llvm-bcb39a444bd8dfdd872d7d3b23aa871e8a29b103.tar.xz |
[LCG] Switch the parent SCC tracking from a SmallSetVector to
a SmallPtrSet. Currently, there is no need for stable iteration in this
dimension, and I now thing there won't need to be going forward.
If this is ever re-introduced in any form, it needs to not be
a SetVector based solution because removal cannot be linear. There will
be many SCCs with large numbers of parents. When encountering these, the
incremental SCC update for intra-SCC edge removal was quadratic due to
linear removal (kind of).
I'm really hoping we can avoid having an ordering property here at all
though...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@207091 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include')
-rw-r--r-- | include/llvm/Analysis/LazyCallGraph.h | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/include/llvm/Analysis/LazyCallGraph.h b/include/llvm/Analysis/LazyCallGraph.h index ea65cbac1d..b53e77b4f7 100644 --- a/include/llvm/Analysis/LazyCallGraph.h +++ b/include/llvm/Analysis/LazyCallGraph.h @@ -215,7 +215,7 @@ public: friend class LazyCallGraph; friend class LazyCallGraph::Node; - SmallSetVector<SCC *, 1> ParentSCCs; + SmallPtrSet<SCC *, 1> ParentSCCs; SmallVector<Node *, 1> Nodes; SCC() {} @@ -228,7 +228,7 @@ public: public: typedef SmallVectorImpl<Node *>::const_iterator iterator; - typedef pointee_iterator<SmallSetVector<SCC *, 1>::const_iterator> parent_iterator; + typedef pointee_iterator<SmallPtrSet<SCC *, 1>::const_iterator> parent_iterator; iterator begin() const { return Nodes.begin(); } iterator end() const { return Nodes.end(); } |