From: Chris Lattner Date: Wed, 15 Jul 2009 04:50:47 +0000 (+0000) Subject: eliminate the Mangler::PreserveAsmNames bit, the sole client of this X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=9d5511b7db2c42a2cea0ca00c0e123e64cceadae;p=oota-llvm.git eliminate the Mangler::PreserveAsmNames bit, the sole client of this can do it perfectly well itself. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75743 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/llvm/Support/Mangler.h b/include/llvm/Support/Mangler.h index 0578f8f2b47..e04245dc2b5 100644 --- a/include/llvm/Support/Mangler.h +++ b/include/llvm/Support/Mangler.h @@ -38,10 +38,6 @@ class Mangler { /// the space character. By default, this is false. bool UseQuotes; - /// PreserveAsmNames - If this is set, the asm escape character is not removed - /// from names with 'asm' specifiers. - bool PreserveAsmNames; - /// AnonGlobalIDs - We need to give global values the same name every time /// they are mangled. This keeps track of the number we give to anonymous /// ones. @@ -65,10 +61,6 @@ public: /// strings for assembler labels. void setUseQuotes(bool Val) { UseQuotes = Val; } - /// setPreserveAsmNames - If the mangler should not strip off the asm name - /// @verbatim identifier (\001), this should be set. @endverbatim - void setPreserveAsmNames(bool Val) { PreserveAsmNames = Val; } - /// Acceptable Characters - This allows the target to specify which characters /// are acceptable to the assembler without being mangled. By default we /// allow letters, numbers, '_', '$', and '.', which is what GAS accepts. diff --git a/lib/VMCore/Mangler.cpp b/lib/VMCore/Mangler.cpp index 84c4396fdc2..5828e21e022 100644 --- a/lib/VMCore/Mangler.cpp +++ b/lib/VMCore/Mangler.cpp @@ -35,10 +35,6 @@ std::string Mangler::makeNameProper(const std::string &X, bool hasPrivateLinkage) { assert(!X.empty() && "Cannot mangle empty strings"); - // If PreserveAsmNames is set, names with asm identifiers are not modified. - if (PreserveAsmNames && X[0] == 1) - return X; - if (!UseQuotes) { std::string Result; @@ -149,7 +145,7 @@ std::string Mangler::getMangledName(const GlobalValue *GV, const char *Suffix, Mangler::Mangler(Module &M, const char *prefix, const char *privatePrefix) : Prefix(prefix), PrivatePrefix (privatePrefix), UseQuotes(false), - PreserveAsmNames(false), NextAnonGlobalID(1) { + NextAnonGlobalID(1) { std::fill(AcceptableChars, array_endof(AcceptableChars), 0); // Letters and numbers are acceptable. diff --git a/tools/bugpoint/Miscompilation.cpp b/tools/bugpoint/Miscompilation.cpp index 4a25615285d..c655e714271 100644 --- a/tools/bugpoint/Miscompilation.cpp +++ b/tools/bugpoint/Miscompilation.cpp @@ -241,12 +241,17 @@ static void DisambiguateGlobalSymbols(Module *M) { Mangler Mang(*M); // Agree with the CBE on symbol naming Mang.markCharUnacceptable('.'); - Mang.setPreserveAsmNames(true); for (Module::global_iterator I = M->global_begin(), E = M->global_end(); - I != E; ++I) - I->setName(Mang.getMangledName(I)); - for (Module::iterator I = M->begin(), E = M->end(); I != E; ++I) - I->setName(Mang.getMangledName(I)); + I != E; ++I) { + // Don't mangle asm names. + if (!I->hasName() || I->getName()[0] != 1) + I->setName(Mang.getMangledName(I)); + } + for (Module::iterator I = M->begin(), E = M->end(); I != E; ++I) { + // Don't mangle asm names. + if (!I->hasName() || I->getName()[0] != 1) + I->setName(Mang.getMangledName(I)); + } } /// ExtractLoops - Given a reduced list of functions that still exposed the bug,