Thanks Zhongxing. This makes the code roughly consistent with what was there before you did the big cleanup to RegionStoreManager::RemoveDeadBindings() (which makes it easier to compare with the earlier version). As I said in my previous email, since this routine is fairly hot, we should benchmark which data structure performs better for the workloads we expect to see and pick the best one.
On Oct 17, 2009, at 9:15 PM, Zhongxing Xu wrote: > Author: zhongxingxu > Date: Sat Oct 17 23:15:47 2009 > New Revision: 84398 > > URL: http://llvm.org/viewvc/llvm-project?rev=84398&view=rev > Log: > use DenseSet instead of SmallSet. > > Modified: > cfe/trunk/lib/Analysis/RegionStore.cpp > > Modified: cfe/trunk/lib/Analysis/RegionStore.cpp > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Analysis/RegionStore.cpp?rev=84398&r1=84397&r2=84398&view=diff > > = > = > = > = > = > = > = > = > ====================================================================== > --- cfe/trunk/lib/Analysis/RegionStore.cpp (original) > +++ cfe/trunk/lib/Analysis/RegionStore.cpp Sat Oct 17 23:15:47 2009 > @@ -1630,7 +1630,7 @@ > // Process the "intermediate" roots to find if they are referenced > by > // real roots. > llvm::SmallVector<RBDNode, 10> WorkList; > - llvm::SmallSet<const MemRegion*, 10> IntermediateVisited; > + llvm::DenseSet<const MemRegion*> IntermediateVisited; > > while (!IntermediateRoots.empty()) { > const MemRegion* R = IntermediateRoots.back(); > @@ -1665,7 +1665,7 @@ > } > RegionRoots.clear(); > > - llvm::SmallSet<RBDNode, 10> Visited; > + llvm::DenseSet<RBDNode> Visited; > > while (!WorkList.empty()) { > RBDNode N = WorkList.back(); > > > _______________________________________________ > cfe-commits mailing list > [email protected] > http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits _______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
