From 4d80ede53862d2566889f9e1427e1de156182259 Mon Sep 17 00:00:00 2001 From: Philip Reames Date: Fri, 10 Apr 2015 23:11:26 +0000 Subject: [RewriteStatepointsForGC] Use a SetVector for a worklist [NFC] Using a SetVector to replace equivelent but more verbose functionality. llvm-svn: 234662 --- llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) (limited to 'llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp') diff --git a/llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp b/llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp index f2cdcfe02a5..9931442f844 100644 --- a/llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp +++ b/llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp @@ -17,6 +17,7 @@ #include "llvm/ADT/SetOperations.h" #include "llvm/ADT/Statistic.h" #include "llvm/ADT/DenseSet.h" +#include "llvm/ADT/SetVector.h" #include "llvm/IR/BasicBlock.h" #include "llvm/IR/CallSite.h" #include "llvm/IR/Dominators.h" @@ -2045,17 +2046,14 @@ static void checkBasicSSA(DominatorTree &DT, GCPtrLivenessData &Data, static void computeLiveInValues(DominatorTree &DT, Function &F, GCPtrLivenessData &Data) { - DenseSet WorklistSet; - SmallVector Worklist; + SmallSetVector Worklist; auto AddPredsToWorklist = [&](BasicBlock *BB) { - for (BasicBlock *Pred : predecessors(BB)) - if (WorklistSet.insert(Pred).second) - Worklist.push_back(Pred); + // We use a SetVector so that we don't have duplicates in the worklist. + Worklist.insert(pred_begin(BB), pred_end(BB)); }; auto NextItem = [&]() { BasicBlock *BB = Worklist.back(); Worklist.pop_back(); - WorklistSet.erase(BB); return BB; }; -- cgit v1.2.3