summaryrefslogtreecommitdiffstats
path: root/llvm/lib/VMCore/ValueSymbolTable.cpp
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2007-02-07 05:52:51 +0000
committerChris Lattner <sabre@nondot.org>2007-02-07 05:52:51 +0000
commit71a60ba41cc28940b0f6cd89e3e5ec56573f82ae (patch)
treea1d822b524686c6bf9c026c475458562dede878a /llvm/lib/VMCore/ValueSymbolTable.cpp
parent3cc886add837c6ce947c907be8c04cccc4b6c775 (diff)
downloadbcm5719-llvm-71a60ba41cc28940b0f6cd89e3e5ec56573f82ae.tar.gz
bcm5719-llvm-71a60ba41cc28940b0f6cd89e3e5ec56573f82ae.zip
speed up conflict handling.
llvm-svn: 33985
Diffstat (limited to 'llvm/lib/VMCore/ValueSymbolTable.cpp')
-rw-r--r--llvm/lib/VMCore/ValueSymbolTable.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/llvm/lib/VMCore/ValueSymbolTable.cpp b/llvm/lib/VMCore/ValueSymbolTable.cpp
index 6bd5b0c49c4..358b5a23d0b 100644
--- a/llvm/lib/VMCore/ValueSymbolTable.cpp
+++ b/llvm/lib/VMCore/ValueSymbolTable.cpp
@@ -88,13 +88,18 @@ void ValueSymbolTable::insert(Value* V) {
}
// 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
OpenPOWER on IntegriCloud