aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2009-07-15 04:50:47 +0000
committerChris Lattner <sabre@nondot.org>2009-07-15 04:50:47 +0000
commit9d5511b7db2c42a2cea0ca00c0e123e64cceadae (patch)
tree9c48d3fe9ff45f89432a8a03ffff44ffd617adf7
parentf1cfea2dbfd6ebc0008ecd2d37a1c91058bbfdd1 (diff)
downloadexternal_llvm-9d5511b7db2c42a2cea0ca00c0e123e64cceadae.zip
external_llvm-9d5511b7db2c42a2cea0ca00c0e123e64cceadae.tar.gz
external_llvm-9d5511b7db2c42a2cea0ca00c0e123e64cceadae.tar.bz2
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
-rw-r--r--include/llvm/Support/Mangler.h8
-rw-r--r--lib/VMCore/Mangler.cpp6
-rw-r--r--tools/bugpoint/Miscompilation.cpp15
3 files changed, 11 insertions, 18 deletions
diff --git a/include/llvm/Support/Mangler.h b/include/llvm/Support/Mangler.h
index 0578f8f..e04245d 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 84c4396..5828e21 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 4a256152..c655e71 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,