[llvm] r234662 - [RewriteStatepointsForGC] Use a SetVector for a worklist [NFC]
Philip Reames
listmail at philipreames.com
Fri Apr 10 16:11:26 PDT 2015
Author: reames
Date: Fri Apr 10 18:11:26 2015
New Revision: 234662
URL: http://llvm.org/viewvc/llvm-project?rev=234662&view=rev
Log:
[RewriteStatepointsForGC] Use a SetVector for a worklist [NFC]
Using a SetVector to replace equivelent but more verbose functionality.
Modified:
llvm/trunk/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp
Modified: llvm/trunk/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp?rev=234662&r1=234661&r2=234662&view=diff
==============================================================================
--- llvm/trunk/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp (original)
+++ llvm/trunk/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp Fri Apr 10 18:11:26 2015
@@ -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
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;
};
More information about the llvm-commits
mailing list