From c3f6ea83302dfd8e1b6d77bb6c99ecacdd6bc375 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Sat, 4 Aug 2007 02:21:22 +0000 Subject: [PATCH] switch from using a std::set to using a SmallPtrSet. This speeds up the testcase in PR1432 from 6.33s to 2.90s (2.22x) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40810 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Transforms/Utils/PromoteMemoryToRegister.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/Transforms/Utils/PromoteMemoryToRegister.cpp b/lib/Transforms/Utils/PromoteMemoryToRegister.cpp index 5ec5d182c77..8fb9124a5f6 100644 --- a/lib/Transforms/Utils/PromoteMemoryToRegister.cpp +++ b/lib/Transforms/Utils/PromoteMemoryToRegister.cpp @@ -534,7 +534,7 @@ void PromoteMem2Reg::RewriteSingleStoreAlloca(AllocaInst *AI, StoreInst *OnlyStore = Info.OnlyStore; // Be aware of loads before the store. - std::set ProcessedBlocks; + SmallPtrSet ProcessedBlocks; for (unsigned i = 0, e = Info.UsingBlocks.size(); i != e; ++i) { // If the store dominates the block and if we haven't processed it yet, // do so now. @@ -542,7 +542,7 @@ void PromoteMem2Reg::RewriteSingleStoreAlloca(AllocaInst *AI, continue; BasicBlock *UseBlock = Info.UsingBlocks[i]; - if (!ProcessedBlocks.insert(UseBlock).second) + if (!ProcessedBlocks.insert(UseBlock)) continue; // If the use and store are in the same block, do a quick scan to @@ -559,7 +559,7 @@ void PromoteMem2Reg::RewriteSingleStoreAlloca(AllocaInst *AI, // Otherwise, if this is a different block or if all uses happen // after the store, do a simple linear scan to replace loads with // the stored value. - for (BasicBlock::iterator I = UseBlock->begin(),E = UseBlock->end(); + for (BasicBlock::iterator I = UseBlock->begin(), E = UseBlock->end(); I != E; ) { if (LoadInst *LI = dyn_cast(I++)) { if (LI->getOperand(0) == AI) {