diff options
author | Philip Reames <listmail@philipreames.com> | 2015-04-10 23:11:26 +0000 |
---|---|---|
committer | Philip Reames <listmail@philipreames.com> | 2015-04-10 23:11:26 +0000 |
commit | 4d80ede53862d2566889f9e1427e1de156182259 (patch) | |
tree | 04fafb4f04ffff42f523d629e8d115aa636309e5 /llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp | |
parent | a419e1ce6c3d4f8f42869f5efd252d98e2972b13 (diff) | |
download | bcm5719-llvm-4d80ede53862d2566889f9e1427e1de156182259.tar.gz bcm5719-llvm-4d80ede53862d2566889f9e1427e1de156182259.zip |
[RewriteStatepointsForGC] Use a SetVector for a worklist [NFC]
Using a SetVector to replace equivelent but more verbose functionality.
llvm-svn: 234662
Diffstat (limited to 'llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp')
-rw-r--r-- | llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp | 10 |
1 files changed, 4 insertions, 6 deletions
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<BasicBlock *> WorklistSet; - SmallVector<BasicBlock *, 200> Worklist; + SmallSetVector<BasicBlock *, 200> 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; }; |