From bcb39a444bd8dfdd872d7d3b23aa871e8a29b103 Mon Sep 17 00:00:00 2001 From: Chandler Carruth Date: Thu, 24 Apr 2014 09:22:31 +0000 Subject: [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 --- include/llvm/Analysis/LazyCallGraph.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'include/llvm') 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 ParentSCCs; + SmallPtrSet ParentSCCs; SmallVector Nodes; SCC() {} @@ -228,7 +228,7 @@ public: public: typedef SmallVectorImpl::const_iterator iterator; - typedef pointee_iterator::const_iterator> parent_iterator; + typedef pointee_iterator::const_iterator> parent_iterator; iterator begin() const { return Nodes.begin(); } iterator end() const { return Nodes.end(); } -- cgit v1.2.3