diff --git a/include/llvm/TypeSymbolTable.h b/include/llvm/TypeSymbolTable.h index dd260014222..abe312ec242 100644 --- a/include/llvm/TypeSymbolTable.h +++ b/include/llvm/TypeSymbolTable.h @@ -98,10 +98,6 @@ public: /// @{ public: - /// This method will strip the symbol table of its names - /// @brief Strip the symbol table. - bool strip(); - /// Inserts a type into the symbol table with the specified name. There can be /// a many-to-one mapping between names and types. This method allows a type /// with an existing entry in the symbol table to get a new name. diff --git a/include/llvm/ValueSymbolTable.h b/include/llvm/ValueSymbolTable.h index d17cd7729c1..b05e404a442 100644 --- a/include/llvm/ValueSymbolTable.h +++ b/include/llvm/ValueSymbolTable.h @@ -120,12 +120,6 @@ public: /// @} /// @name Mutators /// @{ -public: - - /// This method will strip the symbol table of its names. - /// @brief Strip the symbol table. - bool strip(); - private: /// This method adds the provided value \p N to the symbol table. The Value /// must have a name which is used to place the value in the symbol table. diff --git a/lib/Transforms/IPO/StripSymbols.cpp b/lib/Transforms/IPO/StripSymbols.cpp index 4c0b35a1a4e..58b7b714670 100644 --- a/lib/Transforms/IPO/StripSymbols.cpp +++ b/lib/Transforms/IPO/StripSymbols.cpp @@ -73,6 +73,27 @@ static void RemoveDeadConstant(Constant *C) { } } +// Strip the symbol table of its names. +// +static void StripSymtab(ValueSymbolTable &ST) { + for (ValueSymbolTable::iterator VI = ST.begin(), VE = ST.end(); VI != VE; ) { + Value *V = VI->second; + ++VI; + if (!isa(V) || cast(V)->hasInternalLinkage()) { + // Set name to "", removing from symbol table! + V->setName(""); + } + } +} + +// Strip the symbol table of its names. +static void StripTypeSymtab(TypeSymbolTable &ST) { + for (TypeSymbolTable::iterator TI = ST.begin(), E = ST.end(); TI != E; ) + ST.remove(TI++); +} + + + bool StripSymbols::runOnModule(Module &M) { // If we're not just stripping debug info, strip all symbols from the // functions and the names from any internal globals. @@ -85,11 +106,11 @@ bool StripSymbols::runOnModule(Module &M) { for (Module::iterator I = M.begin(), E = M.end(); I != E; ++I) { if (I->hasInternalLinkage()) I->setName(""); // Internal symbols can't participate in linkage - I->getValueSymbolTable().strip(); + StripSymtab(I->getValueSymbolTable()); } // Remove all names from types. - M.getTypeSymbolTable().strip(); + StripTypeSymtab(M.getTypeSymbolTable()); } // Strip debug info in the module if it exists. To do this, we remove diff --git a/lib/VMCore/TypeSymbolTable.cpp b/lib/VMCore/TypeSymbolTable.cpp index b145adc2388..7eaa63a342c 100644 --- a/lib/VMCore/TypeSymbolTable.cpp +++ b/lib/VMCore/TypeSymbolTable.cpp @@ -111,17 +111,6 @@ void TypeSymbolTable::insert(const std::string& Name, const Type* T) { } } -// Strip the symbol table of its names. -bool TypeSymbolTable::strip() { - bool RemovedSymbol = false; - for (iterator TI = tmap.begin(); TI != tmap.end(); ) { - remove(TI++); - RemovedSymbol = true; - } - - return RemovedSymbol; -} - // This function is called when one of the types in the type plane are refined void TypeSymbolTable::refineAbstractType(const DerivedType *OldType, const Type *NewType) { diff --git a/lib/VMCore/ValueSymbolTable.cpp b/lib/VMCore/ValueSymbolTable.cpp index 41b6d7b5a3f..142b9f9f085 100644 --- a/lib/VMCore/ValueSymbolTable.cpp +++ b/lib/VMCore/ValueSymbolTable.cpp @@ -59,22 +59,6 @@ Value *ValueSymbolTable::lookup(const std::string &Name) const { return 0; } -// Strip the symbol table of its names. -// -bool ValueSymbolTable::strip() { - bool RemovedSymbol = false; - for (iterator VI = vmap.begin(), VE = vmap.end(); VI != VE; ) { - Value *V = VI->second; - ++VI; - if (!isa(V) || cast(V)->hasInternalLinkage()) { - // Set name to "", removing from symbol table! - V->setName(""); - RemovedSymbol = true; - } - } - return RemovedSymbol; -} - // Insert a value into the symbol table with the specified name... // void ValueSymbolTable::insert(Value* V) {