diff --git a/include/llvm/Function.h b/include/llvm/Function.h index a31e7f48347..803e5e8decd 100644 --- a/include/llvm/Function.h +++ b/include/llvm/Function.h @@ -111,13 +111,6 @@ public: unsigned getCallingConv() const { return CallingConvention; } void setCallingConv(unsigned CC) { CallingConvention = CC; } - /// renameLocalSymbols - This method goes through the Function's symbol table - /// and renames any symbols that conflict with symbols at global scope. This - /// is required before printing out to a textual form, to ensure that there is - /// no ambiguity when parsing. - void renameLocalSymbols(); - - /// deleteBody - This method deletes the body of the function, and converts /// the linkage to external. /// diff --git a/lib/Target/CBackend/CBackend.cpp b/lib/Target/CBackend/CBackend.cpp index 737a346ca48..9faba6bd816 100644 --- a/lib/Target/CBackend/CBackend.cpp +++ b/lib/Target/CBackend/CBackend.cpp @@ -99,9 +99,6 @@ namespace { // Output all floating point constants that cannot be printed accurately. printFloatingPointConstants(F); - // Ensure that no local symbols conflict with global symbols. - F.renameLocalSymbols(); - printFunction(F); FPConstantMap.clear(); return false; diff --git a/lib/VMCore/Function.cpp b/lib/VMCore/Function.cpp index 4bc93dbb2cc..cf8fcdec6a8 100644 --- a/lib/VMCore/Function.cpp +++ b/lib/VMCore/Function.cpp @@ -139,45 +139,6 @@ void Function::eraseFromParent() { } -/// renameLocalSymbols - This method goes through the Function's symbol table -/// and renames any symbols that conflict with symbols at global scope. This is -/// required before printing out to a textual form, to ensure that there is no -/// ambiguity when parsing. -void Function::renameLocalSymbols() { - SymbolTable &LST = getValueSymbolTable(); // Local Symtab - SymbolTable &GST = getParent()->getValueSymbolTable(); // Global Symtab - - for (SymbolTable::plane_iterator LPI = LST.plane_begin(), E = LST.plane_end(); - LPI != E; ++LPI) - // All global symbols are of pointer type, ignore any non-pointer planes. - if (isa(LPI->first)) { - // Only check if the global plane has any symbols of this type. - SymbolTable::plane_iterator GPI = GST.find(LPI->first); - if (GPI != GST.plane_end()) { - SymbolTable::ValueMap &LVM = LPI->second; - const SymbolTable::ValueMap &GVM = GPI->second; - - // Loop over all local symbols, renaming those that are in the global - // symbol table already. - for (SymbolTable::value_iterator VI = LVM.begin(), E = LVM.end(); - VI != E;) { - Value *V = VI->second; - const std::string &Name = VI->first; - ++VI; - if (GVM.count(Name)) { - static unsigned UniqueNum = 0; - // Find a name that does not conflict! - while (GVM.count(Name + "_" + utostr(++UniqueNum)) || - LVM.count(Name + "_" + utostr(UniqueNum))) - /* scan for UniqueNum that works */; - V->setName(Name + "_" + utostr(UniqueNum)); - } - } - } - } -} - - // dropAllReferences() - This function causes all the subinstructions to "let // go" of all references that they are maintaining. This allows one to // 'delete' a whole class at a time, even though there may be circular