OSDN Git Service

Simplify use of DFBlocks, this makes no noticable performance difference,
authorChris Lattner <sabre@nondot.org>
Mon, 5 Feb 2007 23:31:26 +0000 (23:31 +0000)
committerChris Lattner <sabre@nondot.org>
Mon, 5 Feb 2007 23:31:26 +0000 (23:31 +0000)
but paves the way to eliminate BBNumbers.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33938 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Transforms/Utils/PromoteMemoryToRegister.cpp

index 39a4c89..7a5828d 100644 (file)
@@ -272,7 +272,7 @@ void PromoteMem2Reg::run() {
     //
     unsigned CurrentVersion = 0;
     SmallPtrSet<PHINode*, 16> InsertedPHINodes;
-    std::vector<unsigned> DFBlocks;
+    std::vector<std::pair<unsigned, BasicBlock*> > DFBlocks;
     while (!DefiningBlocks.empty()) {
       BasicBlock *BB = DefiningBlocks.back();
       DefiningBlocks.pop_back();
@@ -289,13 +289,13 @@ void PromoteMem2Reg::run() {
         // processing blocks in order of the occurance in the function.
         for (DominanceFrontier::DomSetType::const_iterator P = S.begin(),
              PE = S.end(); P != PE; ++P)
-          DFBlocks.push_back(BBNumbers.getNumber(*P));
+          DFBlocks.push_back(std::make_pair(BBNumbers.getNumber(*P), *P));
 
         // Sort by which the block ordering in the function.
         std::sort(DFBlocks.begin(), DFBlocks.end());
 
         for (unsigned i = 0, e = DFBlocks.size(); i != e; ++i) {
-          BasicBlock *BB = BBNumbers.getBlock(DFBlocks[i]);
+          BasicBlock *BB = DFBlocks[i].second;
           if (QueuePhiNode(BB, AllocaNum, CurrentVersion, InsertedPHINodes))
             DefiningBlocks.push_back(BB);
         }