summaryrefslogtreecommitdiffstats
path: root/llvm/lib/VMCore/SymbolTable.cpp
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2005-03-06 05:46:41 +0000
committerChris Lattner <sabre@nondot.org>2005-03-06 05:46:41 +0000
commit290d881f844deb2707a9721bc3691b291bf08562 (patch)
treef9deabc9b902c35c315ac1d3e4ce75d76da06f26 /llvm/lib/VMCore/SymbolTable.cpp
parentaa4138a5da9e28a72ebbb8a7ab2ed43cd5b7724d (diff)
downloadbcm5719-llvm-290d881f844deb2707a9721bc3691b291bf08562.tar.gz
bcm5719-llvm-290d881f844deb2707a9721bc3691b291bf08562.zip
Delete the really inefficient method: void remove(const Type* Typ);
Speed up the symbol stripping code by avoiding a linear search of the type table. Get rid of removeEntry(type_iterator), since 'remove' is exactly the same operation. llvm-svn: 20481
Diffstat (limited to 'llvm/lib/VMCore/SymbolTable.cpp')
-rw-r--r--llvm/lib/VMCore/SymbolTable.cpp20
1 files changed, 2 insertions, 18 deletions
diff --git a/llvm/lib/VMCore/SymbolTable.cpp b/llvm/lib/VMCore/SymbolTable.cpp
index 024d4b3a104..2c5db71dad0 100644
--- a/llvm/lib/VMCore/SymbolTable.cpp
+++ b/llvm/lib/VMCore/SymbolTable.cpp
@@ -166,23 +166,8 @@ Value *SymbolTable::removeEntry(plane_iterator Plane, value_iterator Entry) {
return Result;
}
-
-// remove - Remove a type
-void SymbolTable::remove(const Type* Ty ) {
- type_iterator TI = this->type_begin();
- type_iterator TE = this->type_end();
-
- // Search for the entry
- while ( TI != TE && TI->second != Ty )
- ++TI;
-
- if ( TI != TE )
- this->removeEntry( TI );
-}
-
-
// removeEntry - Remove a type from the symbol table...
-Type* SymbolTable::removeEntry(type_iterator Entry) {
+Type* SymbolTable::remove(type_iterator Entry) {
assert( Entry != tmap.end() && "Invalid entry to remove!");
const Type* Result = Entry->second;
@@ -300,8 +285,7 @@ bool SymbolTable::strip() {
}
for (type_iterator TI = tmap.begin(); TI != tmap.end(); ) {
- const Type* T = (TI++)->second;
- remove(T);
+ remove(TI++);
RemovedSymbol = true;
}
OpenPOWER on IntegriCloud