[llvm-commits] CVS: llvm/lib/VMCore/ValueSymbolTable.cpp

Chris Lattner sabre at nondot.org
Tue Feb 6 21:53:08 PST 2007



Changes in directory llvm/lib/VMCore:

ValueSymbolTable.cpp updated: 1.5 -> 1.6
---
Log message:

speed up conflict handling.


---
Diffs of the changes:  (+7 -2)

 ValueSymbolTable.cpp |    9 +++++++--
 1 files changed, 7 insertions(+), 2 deletions(-)


Index: llvm/lib/VMCore/ValueSymbolTable.cpp
diff -u llvm/lib/VMCore/ValueSymbolTable.cpp:1.5 llvm/lib/VMCore/ValueSymbolTable.cpp:1.6
--- llvm/lib/VMCore/ValueSymbolTable.cpp:1.5	Tue Feb  6 23:22:49 2007
+++ llvm/lib/VMCore/ValueSymbolTable.cpp	Tue Feb  6 23:52:51 2007
@@ -88,13 +88,18 @@
   }
   
   // Otherwise, there is a naming conflict.  Rename this value.
-  std::string UniqueName = getUniqueName(V->getName());
+  std::string UniqueName = V->getName();
+  unsigned BaseSize = UniqueName.size();
+  do {
+    // Trim any suffix off.
+    UniqueName.resize(BaseSize);
+    UniqueName += utostr(++LastUnique);
+  } while (!vmap.insert(make_pair(UniqueName, V)).second);
 
   DEBUG(DOUT << " Inserting value: " << UniqueName << ": " << *V << "\n");
 
   // Insert the vmap entry
   V->Name = UniqueName;
-  vmap.insert(make_pair(V->Name, V));
 }
 
 // Remove a value






More information about the llvm-commits mailing list