eliminate the Mangler::PreserveAsmNames bit, the sole client of this
authorChris Lattner <sabre@nondot.org>
Wed, 15 Jul 2009 04:50:47 +0000 (04:50 +0000)
committerChris Lattner <sabre@nondot.org>
Wed, 15 Jul 2009 04:50:47 +0000 (04:50 +0000)
can do it perfectly well itself.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75743 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/Support/Mangler.h
lib/VMCore/Mangler.cpp
tools/bugpoint/Miscompilation.cpp

index 0578f8f2b47a828b271d33525bbc9d44016f0b73..e04245dc2b57d4357e70c947c46510b0740d81eb 100644 (file)
@@ -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.
index 84c4396fdc2ffda64799295afddd3f6cac5f7d5c..5828e21e022f37cd253d33506b2c507b83ef3cb7 100644 (file)
@@ -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.
index 4a25615285d84f18392e9ed6b422aff32671c759..c655e714271113b0016fed5bf1990c15033c4335 100644 (file)
@@ -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,