From 4cc199a0de8a88f7b4f3390d72c9aefae7330603 Mon Sep 17 00:00:00 2001 From: Philip Reames Date: Fri, 10 Apr 2015 23:11:26 +0000 Subject: [PATCH] [RewriteStatepointsForGC] Use a SetVector for a worklist [NFC] Using a SetVector to replace equivelent but more verbose functionality. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@234662 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Transforms/Scalar/RewriteStatepointsForGC.cpp | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp b/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp index f2cdcfe02a5..9931442f844 100644 --- a/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp +++ b/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; }; -- 2.11.0