eliminate some uses of Mangler::makeNameProper.
authorChris Lattner <sabre@nondot.org>
Wed, 13 Jan 2010 07:56:59 +0000 (07:56 +0000)
committerChris Lattner <sabre@nondot.org>
Wed, 13 Jan 2010 07:56:59 +0000 (07:56 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93305 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/PowerPC/AsmPrinter/PPCAsmPrinter.cpp
lib/Target/TargetLoweringObjectFile.cpp
lib/Target/X86/AsmPrinter/X86AsmPrinter.cpp

index 6fff961c465d82e3f19278246ff89b905e2ba982..d71397d4606f1ff5544270c94f8f3fb3a05d2401 100644 (file)
@@ -71,18 +71,19 @@ namespace {
       }
 
       void Init(StringRef GVName, Mangler *Mang) {
-        // Already initialized.
-        if (!Stub.empty()) return;
+        assert(!GVName.empty());
+        if (!Stub.empty()) return; // Already initialized.
+        // Get the names for the external symbol name.
         SmallString<128> TmpStr;
-        Mang->makeNameProper(TmpStr, GVName + "$stub", Mangler::Private);
+        Mang->getNameWithPrefix(TmpStr, GVName + "$stub", Mangler::Private);
         Stub = TmpStr.str();
         TmpStr.clear();
         
-        Mang->makeNameProper(TmpStr, GVName + "$lazy_ptr", Mangler::Private);
+        Mang->getNameWithPrefix(TmpStr, GVName + "$lazy_ptr", Mangler::Private);
         LazyPtr = TmpStr.str();
         TmpStr.clear();
         
-        Mang->makeNameProper(TmpStr, GVName + "$stub$tmp", Mangler::Private);
+        Mang->getNameWithPrefix(TmpStr, GVName + "$stub$tmp", Mangler::Private);
         AnonSymbol = TmpStr.str();
       }
     };
@@ -237,7 +238,7 @@ namespace {
         }
         if (MO.getType() == MachineOperand::MO_ExternalSymbol) {
           SmallString<128> MangledName;
-          Mang->makeNameProper(MangledName, MO.getSymbolName());
+          Mang->getNameWithPrefix(MangledName, MO.getSymbolName());
           FnStubInfo &FnInfo = FnStubs[MangledName.str()];
           FnInfo.Init(MO.getSymbolName(), Mang);
           O << FnInfo.Stub;
index 49e266c6d7f7469200bb386f2ca4fbf24fbee0d4..bd683db89321ae8dbfa1dba8ad071c4c5d2ac069 100644 (file)
@@ -1080,7 +1080,7 @@ SelectSectionForGlobal(const GlobalValue *GV, SectionKind Kind,
   if (GV->isWeakForLinker()) {
     const char *Prefix = getCOFFSectionPrefixForUniqueGlobal(Kind);
     SmallString<128> Name(Prefix, Prefix+strlen(Prefix));
-    Mang->makeNameProper(Name, GV->getNameStr());
+    Mang->getNameWithPrefix(Name, GV->getName());
     return getCOFFSection(Name.str(), false, Kind);
   }
 
index 6058698ca0c213526c414c8b9a7200fcbcb8bc41..70c6dd03eb19d623942755cea4eec60d5d6d5fbf 100644 (file)
@@ -283,24 +283,32 @@ void X86AsmPrinter::printSymbolOperand(const MachineOperand &MO) {
     break;
   }
   case MachineOperand::MO_ExternalSymbol: {
-    Mang->makeNameProper(TempNameStr, MO.getSymbolName());
+    const MCSymbol *SymToPrint;
     if (MO.getTargetFlags() == X86II::MO_DARWIN_STUB) {
-      TempNameStr += "$stub";
-      MCSymbol *Sym = OutContext.GetOrCreateSymbol(TempNameStr.str());
+      Mang->getNameWithPrefix(TempNameStr,
+                              StringRef(MO.getSymbolName())+"$stub");
+      const MCSymbol *Sym = OutContext.GetOrCreateSymbol(TempNameStr.str());
       const MCSymbol *&StubSym =
         MMI->getObjFileInfo<MachineModuleInfoMachO>().getFnStubEntry(Sym);
       if (StubSym == 0) {
         TempNameStr.erase(TempNameStr.end()-5, TempNameStr.end());
         StubSym = OutContext.GetOrCreateSymbol(TempNameStr.str());
       }
+      SymToPrint = StubSym;
+    } else {
+      Mang->getNameWithPrefix(TempNameStr, MO.getSymbolName());
+      SymToPrint = OutContext.GetOrCreateSymbol(TempNameStr.str());
     }
     
     // If the name begins with a dollar-sign, enclose it in parens.  We do this
     // to avoid having it look like an integer immediate to the assembler.
-    if (TempNameStr[0] == '$') 
-      O << '(' << TempNameStr << ')';
-    else
-      O << TempNameStr;
+    if (SymToPrint->getName()[0] != '$') 
+      SymToPrint->print(O, MAI);
+    else {
+      O << '(';
+      SymToPrint->print(O, MAI);
+      O << '(';
+    }
     break;
   }
   }