[llvm-commits] [llvm] r52929 - in /llvm/trunk/lib: CodeGen/AsmPrinter.cpp Target/X86/X86ATTAsmPrinter.cpp

Dan Gohman gohman at apple.com
Mon Jun 30 15:03:41 PDT 2008


Author: djg
Date: Mon Jun 30 17:03:41 2008
New Revision: 52929

URL: http://llvm.org/viewvc/llvm-project?rev=52929&view=rev
Log:
std::ostream and std::string microoptimizations for asm printing.

Modified:
    llvm/trunk/lib/CodeGen/AsmPrinter.cpp
    llvm/trunk/lib/Target/X86/X86ATTAsmPrinter.cpp

Modified: llvm/trunk/lib/CodeGen/AsmPrinter.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/AsmPrinter.cpp?rev=52929&r1=52928&r2=52929&view=diff

==============================================================================
--- llvm/trunk/lib/CodeGen/AsmPrinter.cpp (original)
+++ llvm/trunk/lib/CodeGen/AsmPrinter.cpp Mon Jun 30 17:03:41 2008
@@ -66,7 +66,7 @@
 
   // Close the current section, if applicable.
   if (TAI->getSectionEndDirectiveSuffix() && !CurrentSection.empty())
-    O << CurrentSection << TAI->getSectionEndDirectiveSuffix() << "\n";
+    O << CurrentSection << TAI->getSectionEndDirectiveSuffix() << '\n';
 
   CurrentSection = NS;
 
@@ -92,7 +92,7 @@
 
   // Close the current section, if applicable.
   if (TAI->getSectionEndDirectiveSuffix() && !CurrentSection.empty())
-    O << CurrentSection << TAI->getSectionEndDirectiveSuffix() << "\n";
+    O << CurrentSection << TAI->getSectionEndDirectiveSuffix() << '\n';
 
   CurrentSection = NS;
   
@@ -120,7 +120,7 @@
   if (!M.getModuleInlineAsm().empty())
     O << TAI->getCommentString() << " Start of file scope inline assembly\n"
       << M.getModuleInlineAsm()
-      << "\n" << TAI->getCommentString()
+      << '\n' << TAI->getCommentString()
       << " End of file scope inline assembly\n";
 
   SwitchToDataSection("");   // Reset back to no section.
@@ -140,7 +140,7 @@
          e = ExtWeakSymbols.end(); i != e; ++i) {
       const GlobalValue *GV = *i;
       std::string Name = Mang->getValueName(GV);
-      O << TAI->getWeakRefDirective() << Name << "\n";
+      O << TAI->getWeakRefDirective() << Name << '\n';
     }
   }
 
@@ -148,7 +148,7 @@
     if (!M.alias_empty())
       SwitchToTextSection(TAI->getTextSection());
 
-    O << "\n";
+    O << '\n';
     for (Module::const_alias_iterator I = M.alias_begin(), E = M.alias_end();
          I!=E; ++I) {
       std::string Name = Mang->getValueName(I);
@@ -158,30 +158,30 @@
       Target = Mang->getValueName(GV);
       
       if (I->hasExternalLinkage() || !TAI->getWeakRefDirective())
-        O << "\t.globl\t" << Name << "\n";
+        O << "\t.globl\t" << Name << '\n';
       else if (I->hasWeakLinkage())
-        O << TAI->getWeakRefDirective() << Name << "\n";
+        O << TAI->getWeakRefDirective() << Name << '\n';
       else if (!I->hasInternalLinkage())
         assert(0 && "Invalid alias linkage");
 
       if (I->hasHiddenVisibility()) {
         if (const char *Directive = TAI->getHiddenDirective())
-          O << Directive << Name << "\n";
+          O << Directive << Name << '\n';
       } else if (I->hasProtectedVisibility()) {
         if (const char *Directive = TAI->getProtectedDirective())
-          O << Directive << Name << "\n";
+          O << Directive << Name << '\n';
       }
 
-      O << TAI->getSetDirective() << ' ' << Name << ", " << Target << "\n";
+      O << TAI->getSetDirective() << ' ' << Name << ", " << Target << '\n';
 
       // If the aliasee has external weak linkage it can be referenced only by
       // alias itself. In this case it can be not in ExtWeakSymbols list. Emit
       // weak reference in such case.
       if (GV->hasExternalWeakLinkage()) {
         if (TAI->getWeakRefDirective())
-          O << TAI->getWeakRefDirective() << Target << "\n";
+          O << TAI->getWeakRefDirective() << Target << '\n';
         else
-          O << "\t.globl\t" << Target << "\n";
+          O << "\t.globl\t" << Target << '\n';
       }
     }
   }
@@ -197,7 +197,7 @@
   Function* InitTrampolineIntrinsic = M.getFunction("llvm.init.trampoline");
   if (!InitTrampolineIntrinsic || InitTrampolineIntrinsic->use_empty())
     if (TAI->getNonexecutableStackDirective())
-      O << TAI->getNonexecutableStackDirective() << "\n";
+      O << TAI->getNonexecutableStackDirective() << '\n';
 
   delete Mang; Mang = 0;
   return false;
@@ -265,7 +265,7 @@
   EmitAlignment(Alignment);
   for (unsigned i = 0, e = CP.size(); i != e; ++i) {
     O << TAI->getPrivateGlobalPrefix() << "CPI" << getFunctionNumber() << '_'
-      << CP[i].second << ":\t\t\t\t\t" << TAI->getCommentString() << " ";
+      << CP[i].second << ":\t\t\t\t\t" << TAI->getCommentString() << ' ';
     WriteTypeSymbolic(O, CP[i].first.getType(), 0) << '\n';
     if (CP[i].first.isMachineConstantPoolEntry())
       EmitMachineConstantPoolValue(CP[i].first.Val.MachineCPVal);
@@ -429,7 +429,7 @@
   for (unsigned i = 0, e = InitList->getNumOperands(); i != e; ++i) {
     O << Directive;
     EmitConstantValueOnly(InitList->getOperand(i));
-    O << "\n";
+    O << '\n';
   }
 }
 
@@ -549,16 +549,16 @@
 /// EOL - Print a newline character to asm stream.  If a comment is present
 /// then it will be printed first.  Comments should not contain '\n'.
 void AsmPrinter::EOL() const {
-  O << "\n";
+  O << '\n';
 }
 void AsmPrinter::EOL(const std::string &Comment) const {
   if (AsmVerbose && !Comment.empty()) {
-    O << "\t"
+    O << '\t'
       << TAI->getCommentString()
-      << " "
+      << ' '
       << Comment;
   }
-  O << "\n";
+  O << '\n';
 }
 
 /// EmitULEB128Bytes - Emit an assembler byte data directive to compose an
@@ -614,10 +614,10 @@
     PrintHex(Value);
   } else {
     if (TM.getTargetData()->isBigEndian()) {
-      EmitInt32(unsigned(Value >> 32)); O << "\n";
+      EmitInt32(unsigned(Value >> 32)); O << '\n';
       EmitInt32(unsigned(Value));
     } else {
-      EmitInt32(unsigned(Value)); O << "\n";
+      EmitInt32(unsigned(Value)); O << '\n';
       EmitInt32(unsigned(Value >> 32));
     }
   }
@@ -664,13 +664,13 @@
     O << AscizDirective;
   else
     O << TAI->getAsciiDirective();
-  O << "\"";
+  O << '\"';
   for (unsigned i = 0, N = String.size(); i < N; ++i) {
     unsigned char C = String[i];
     printStringChar(O, C);
   }
   if (AscizDirective)
-    O << "\"";
+    O << '\"';
   else
     O << "\\0\"";
 }
@@ -683,7 +683,7 @@
     unsigned char C = Name[i];
     printStringChar(O, C);
   }
-  O << "\"";
+  O << '\"';
 }
 
 
@@ -716,7 +716,7 @@
   unsigned FillValue = TAI->getTextAlignFillValue();
   UseFillExpr &= IsInTextSection && FillValue;
   if (UseFillExpr) O << ",0x" << std::hex << FillValue << std::dec;
-  O << "\n";
+  O << '\n';
 }
 
     
@@ -728,7 +728,7 @@
       O << TAI->getZeroDirective() << NumZeros;
       if (TAI->getZeroDirectiveSuffix())
         O << TAI->getZeroDirectiveSuffix();
-      O << "\n";
+      O << '\n';
     } else {
       for (; NumZeros; --NumZeros)
         O << TAI->getData8bitsDirective() << "0\n";
@@ -740,7 +740,7 @@
 // constants valid in constant expressions can occur here.
 void AsmPrinter::EmitConstantValueOnly(const Constant *CV) {
   if (CV->isNullValue() || isa<UndefValue>(CV))
-    O << "0";
+    O << '0';
   else if (const ConstantInt *CI = dyn_cast<ConstantInt>(CV)) {
     O << CI->getZExtValue();
   } else if (const GlobalValue *GV = dyn_cast<GlobalValue>(CV)) {
@@ -768,7 +768,7 @@
       if (int64_t Offset = TD->getIndexedOffset(ptrVal->getType(), &idxVec[0],
                                                 idxVec.size())) {
         if (Offset)
-          O << "(";
+          O << '(';
         EmitConstantValueOnly(ptrVal);
         if (Offset > 0)
           O << ") + " << Offset;
@@ -823,9 +823,9 @@
     case Instruction::And:
     case Instruction::Or:
     case Instruction::Xor:
-      O << "(";
+      O << '(';
       EmitConstantValueOnly(CE->getOperand(0));
-      O << ")";
+      O << ')';
       switch (Opcode) {
       case Instruction::Add:
        O << " + ";
@@ -845,9 +845,9 @@
       default:
        break;
       }
-      O << "(";
+      O << '(';
       EmitConstantValueOnly(CE->getOperand(1));
-      O << ")";
+      O << ')';
       break;
     default:
       assert(0 && "Unsupported operator!");
@@ -864,13 +864,13 @@
                            unsigned LastElt) {
   assert(CVA->isString() && "Array is not string compatible!");
 
-  O << "\"";
+  O << '\"';
   for (unsigned i = 0; i != LastElt; ++i) {
     unsigned char C =
         (unsigned char)cast<ConstantInt>(CVA->getOperand(i))->getZExtValue();
     printStringChar(O, C);
   }
-  O << "\"";
+  O << '\"';
 }
 
 /// EmitString - Emit a zero-byte-terminated string constant.
@@ -885,7 +885,7 @@
     O << TAI->getAsciiDirective();
     printAsCString(O, CVA, NumElts);
   }
-  O << "\n";
+  O << '\n';
 }
 
 /// EmitGlobalConstant - Print a general LLVM constant to the .s file.
@@ -935,29 +935,29 @@
       double Val = CFP->getValueAPF().convertToDouble();  // for comment only
       uint64_t i = CFP->getValueAPF().convertToAPInt().getZExtValue();
       if (TAI->getData64bitsDirective())
-        O << TAI->getData64bitsDirective() << i << "\t"
-          << TAI->getCommentString() << " double value: " << Val << "\n";
+        O << TAI->getData64bitsDirective() << i << '\t'
+          << TAI->getCommentString() << " double value: " << Val << '\n';
       else if (TD->isBigEndian()) {
         O << TAI->getData32bitsDirective() << unsigned(i >> 32)
-          << "\t" << TAI->getCommentString()
-          << " double most significant word " << Val << "\n";
+          << '\t' << TAI->getCommentString()
+          << " double most significant word " << Val << '\n';
         O << TAI->getData32bitsDirective() << unsigned(i)
-          << "\t" << TAI->getCommentString()
-          << " double least significant word " << Val << "\n";
+          << '\t' << TAI->getCommentString()
+          << " double least significant word " << Val << '\n';
       } else {
         O << TAI->getData32bitsDirective() << unsigned(i)
-          << "\t" << TAI->getCommentString()
-          << " double least significant word " << Val << "\n";
+          << '\t' << TAI->getCommentString()
+          << " double least significant word " << Val << '\n';
         O << TAI->getData32bitsDirective() << unsigned(i >> 32)
-          << "\t" << TAI->getCommentString()
-          << " double most significant word " << Val << "\n";
+          << '\t' << TAI->getCommentString()
+          << " double most significant word " << Val << '\n';
       }
       return;
     } else if (CFP->getType() == Type::FloatTy) {
       float Val = CFP->getValueAPF().convertToFloat();  // for comment only
       O << TAI->getData32bitsDirective()
         << CFP->getValueAPF().convertToAPInt().getZExtValue()
-        << "\t" << TAI->getCommentString() << " float " << Val << "\n";
+        << '\t' << TAI->getCommentString() << " float " << Val << '\n';
       return;
     } else if (CFP->getType() == Type::X86_FP80Ty) {
       // all long double variants are printed as hex
@@ -968,37 +968,37 @@
       DoubleVal.convert(APFloat::IEEEdouble, APFloat::rmNearestTiesToEven);
       if (TD->isBigEndian()) {
         O << TAI->getData16bitsDirective() << uint16_t(p[0] >> 48)
-          << "\t" << TAI->getCommentString()
+          << '\t' << TAI->getCommentString()
           << " long double most significant halfword of ~"
-          << DoubleVal.convertToDouble() << "\n";
+          << DoubleVal.convertToDouble() << '\n';
         O << TAI->getData16bitsDirective() << uint16_t(p[0] >> 32)
-          << "\t" << TAI->getCommentString()
+          << '\t' << TAI->getCommentString()
           << " long double next halfword\n";
         O << TAI->getData16bitsDirective() << uint16_t(p[0] >> 16)
-          << "\t" << TAI->getCommentString()
+          << '\t' << TAI->getCommentString()
           << " long double next halfword\n";
         O << TAI->getData16bitsDirective() << uint16_t(p[0])
-          << "\t" << TAI->getCommentString()
+          << '\t' << TAI->getCommentString()
           << " long double next halfword\n";
         O << TAI->getData16bitsDirective() << uint16_t(p[1])
-          << "\t" << TAI->getCommentString()
+          << '\t' << TAI->getCommentString()
           << " long double least significant halfword\n";
        } else {
         O << TAI->getData16bitsDirective() << uint16_t(p[1])
-          << "\t" << TAI->getCommentString()
+          << '\t' << TAI->getCommentString()
           << " long double least significant halfword of ~"
-          << DoubleVal.convertToDouble() << "\n";
+          << DoubleVal.convertToDouble() << '\n';
         O << TAI->getData16bitsDirective() << uint16_t(p[0])
-          << "\t" << TAI->getCommentString()
+          << '\t' << TAI->getCommentString()
           << " long double next halfword\n";
         O << TAI->getData16bitsDirective() << uint16_t(p[0] >> 16)
-          << "\t" << TAI->getCommentString()
+          << '\t' << TAI->getCommentString()
           << " long double next halfword\n";
         O << TAI->getData16bitsDirective() << uint16_t(p[0] >> 32)
-          << "\t" << TAI->getCommentString()
+          << '\t' << TAI->getCommentString()
           << " long double next halfword\n";
         O << TAI->getData16bitsDirective() << uint16_t(p[0] >> 48)
-          << "\t" << TAI->getCommentString()
+          << '\t' << TAI->getCommentString()
           << " long double most significant halfword\n";
       }
       EmitZeros(Size - TD->getTypeStoreSize(Type::X86_FP80Ty));
@@ -1010,29 +1010,29 @@
       const uint64_t *p = api.getRawData();
       if (TD->isBigEndian()) {
         O << TAI->getData32bitsDirective() << uint32_t(p[0] >> 32)
-          << "\t" << TAI->getCommentString()
+          << '\t' << TAI->getCommentString()
           << " long double most significant word\n";
         O << TAI->getData32bitsDirective() << uint32_t(p[0])
-          << "\t" << TAI->getCommentString()
+          << '\t' << TAI->getCommentString()
           << " long double next word\n";
         O << TAI->getData32bitsDirective() << uint32_t(p[1] >> 32)
-          << "\t" << TAI->getCommentString()
+          << '\t' << TAI->getCommentString()
           << " long double next word\n";
         O << TAI->getData32bitsDirective() << uint32_t(p[1])
-          << "\t" << TAI->getCommentString()
+          << '\t' << TAI->getCommentString()
           << " long double least significant word\n";
        } else {
         O << TAI->getData32bitsDirective() << uint32_t(p[1])
-          << "\t" << TAI->getCommentString()
+          << '\t' << TAI->getCommentString()
           << " long double least significant word\n";
         O << TAI->getData32bitsDirective() << uint32_t(p[1] >> 32)
-          << "\t" << TAI->getCommentString()
+          << '\t' << TAI->getCommentString()
           << " long double next word\n";
         O << TAI->getData32bitsDirective() << uint32_t(p[0])
-          << "\t" << TAI->getCommentString()
+          << '\t' << TAI->getCommentString()
           << " long double next word\n";
         O << TAI->getData32bitsDirective() << uint32_t(p[0] >> 32)
-          << "\t" << TAI->getCommentString()
+          << '\t' << TAI->getCommentString()
           << " long double most significant word\n";
       }
       return;
@@ -1042,21 +1042,21 @@
       uint64_t Val = CI->getZExtValue();
 
       if (TAI->getData64bitsDirective())
-        O << TAI->getData64bitsDirective() << Val << "\n";
+        O << TAI->getData64bitsDirective() << Val << '\n';
       else if (TD->isBigEndian()) {
         O << TAI->getData32bitsDirective() << unsigned(Val >> 32)
-          << "\t" << TAI->getCommentString()
-          << " Double-word most significant word " << Val << "\n";
+          << '\t' << TAI->getCommentString()
+          << " Double-word most significant word " << Val << '\n';
         O << TAI->getData32bitsDirective() << unsigned(Val)
-          << "\t" << TAI->getCommentString()
-          << " Double-word least significant word " << Val << "\n";
+          << '\t' << TAI->getCommentString()
+          << " Double-word least significant word " << Val << '\n';
       } else {
         O << TAI->getData32bitsDirective() << unsigned(Val)
-          << "\t" << TAI->getCommentString()
-          << " Double-word least significant word " << Val << "\n";
+          << '\t' << TAI->getCommentString()
+          << " Double-word least significant word " << Val << '\n';
         O << TAI->getData32bitsDirective() << unsigned(Val >> 32)
-          << "\t" << TAI->getCommentString()
-          << " Double-word most significant word " << Val << "\n";
+          << '\t' << TAI->getCommentString()
+          << " Double-word most significant word " << Val << '\n';
       }
       return;
     }
@@ -1077,7 +1077,7 @@
       << TAI->getCommentString()
       << " 0x" << CI->getValue().toStringUnsigned(16);
   }
-  O << "\n";
+  O << '\n';
 }
 
 void
@@ -1141,7 +1141,7 @@
   // If this asmstr is empty, just print the #APP/#NOAPP markers.
   // These are useful to see where empty asm's wound up.
   if (AsmStr[0] == 0) {
-    O << TAI->getInlineAsmStart() << "\n\t" << TAI->getInlineAsmEnd() << "\n";
+    O << TAI->getInlineAsmStart() << "\n\t" << TAI->getInlineAsmEnd() << '\n';
     return;
   }
   
@@ -1168,7 +1168,7 @@
     }
     case '\n':
       ++LastEmitted;   // Consume newline character.
-      O << "\n";       // Indent code with newline.
+      O << '\n';       // Indent code with newline.
       break;
     case '$': {
       ++LastEmitted;   // Consume '$' character.
@@ -1305,14 +1305,14 @@
     }
     }
   }
-  O << "\n\t" << TAI->getInlineAsmEnd() << "\n";
+  O << "\n\t" << TAI->getInlineAsmEnd() << '\n';
 }
 
 /// printImplicitDef - This method prints the specified machine instruction
 /// that is an implicit def.
 void AsmPrinter::printImplicitDef(const MachineInstr *MI) const {
-  O << "\t" << TAI->getCommentString() << " implicit-def: "
-    << TRI->getAsmName(MI->getOperand(0).getReg()) << "\n";
+  O << '\t' << TAI->getCommentString() << " implicit-def: "
+    << TRI->getAsmName(MI->getOperand(0).getReg()) << '\n';
 }
 
 /// printLabel - This method prints a local label used by debug and
@@ -1364,7 +1364,7 @@
       EmitAlignment(Log2_32(Align));
   }
 
-  O << TAI->getPrivateGlobalPrefix() << "BB" << getFunctionNumber() << "_"
+  O << TAI->getPrivateGlobalPrefix() << "BB" << getFunctionNumber() << '_'
     << MBB->getNumber();
   if (printColon)
     O << ':';
@@ -1440,8 +1440,8 @@
 
 void AsmPrinter::printSuffixedName(std::string &Name, const char* Suffix) {
   if (Name[0]=='\"')
-    O << "\"" << TAI->getPrivateGlobalPrefix() << 
-         Name.substr(1, Name.length()-2) << Suffix << "\"";
+    O << '\"' << TAI->getPrivateGlobalPrefix() << 
+         Name.substr(1, Name.length()-2) << Suffix << '\"';
   else
     O << TAI->getPrivateGlobalPrefix() << Name << Suffix;
 }

Modified: llvm/trunk/lib/Target/X86/X86ATTAsmPrinter.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86ATTAsmPrinter.cpp?rev=52929&r1=52928&r2=52929&view=diff

==============================================================================
--- llvm/trunk/lib/Target/X86/X86ATTAsmPrinter.cpp (original)
+++ llvm/trunk/lib/Target/X86/X86ATTAsmPrinter.cpp Mon Jun 30 17:03:41 2008
@@ -41,7 +41,7 @@
   if (Subtarget->isTargetDarwin())
     label =  "\"L" + utostr_32(FnNum) + "$pb\"";
   else if (Subtarget->isTargetELF())
-    label = ".Lllvm$" + utostr_32(FnNum) + "." + "$piclabel";
+    label = ".Lllvm$" + utostr_32(FnNum) + "." "$piclabel";
   else
     assert(0 && "Don't know how to print PIC label!\n");
 
@@ -183,28 +183,28 @@
   case Function::DLLExportLinkage:
   case Function::ExternalLinkage:
     EmitAlignment(FnAlign, F);
-    O << "\t.globl\t" << CurrentFnName << "\n";
+    O << "\t.globl\t" << CurrentFnName << '\n';
     break;
   case Function::LinkOnceLinkage:
   case Function::WeakLinkage:
     EmitAlignment(FnAlign, F);
     if (Subtarget->isTargetDarwin()) {
-      O << "\t.globl\t" << CurrentFnName << "\n";
-      O << TAI->getWeakDefDirective() << CurrentFnName << "\n";
+      O << "\t.globl\t" << CurrentFnName << '\n';
+      O << TAI->getWeakDefDirective() << CurrentFnName << '\n';
     } else if (Subtarget->isTargetCygMing()) {
-      O << "\t.globl\t" << CurrentFnName << "\n";
-      O << "\t.linkonce discard\n";
+      O << "\t.globl\t" << CurrentFnName << "\n"
+           "\t.linkonce discard\n";
     } else {
-      O << "\t.weak\t" << CurrentFnName << "\n";
+      O << "\t.weak\t" << CurrentFnName << '\n';
     }
     break;
   }
   if (F->hasHiddenVisibility()) {
     if (const char *Directive = TAI->getHiddenDirective())
-      O << Directive << CurrentFnName << "\n";
+      O << Directive << CurrentFnName << '\n';
   } else if (F->hasProtectedVisibility()) {
     if (const char *Directive = TAI->getProtectedDirective())
-      O << Directive << CurrentFnName << "\n";
+      O << Directive << CurrentFnName << '\n';
   }
 
   if (Subtarget->isTargetELF())
@@ -287,7 +287,7 @@
   }
 
   if (TAI->hasDotTypeDotSizeDirective())
-    O << "\t.size\t" << CurrentFnName << ", .-" << CurrentFnName << "\n";
+    O << "\t.size\t" << CurrentFnName << ", .-" << CurrentFnName << '\n';
 
   // Emit post-function debug information.
   if (TAI->doesSupportDebugInformation())
@@ -345,7 +345,7 @@
   case MachineOperand::MO_JumpTableIndex: {
     bool isMemOp  = Modifier && !strcmp(Modifier, "mem");
     if (!isMemOp) O << '$';
-    O << TAI->getPrivateGlobalPrefix() << "JTI" << getFunctionNumber() << "_"
+    O << TAI->getPrivateGlobalPrefix() << "JTI" << getFunctionNumber() << '_'
       << MO.getIndex();
 
     if (TM.getRelocationModel() == Reloc::PIC_) {
@@ -363,7 +363,7 @@
   case MachineOperand::MO_ConstantPoolIndex: {
     bool isMemOp  = Modifier && !strcmp(Modifier, "mem");
     if (!isMemOp) O << '$';
-    O << TAI->getPrivateGlobalPrefix() << "CPI" << getFunctionNumber() << "_"
+    O << TAI->getPrivateGlobalPrefix() << "CPI" << getFunctionNumber() << '_'
       << MO.getIndex();
 
     if (TM.getRelocationModel() == Reloc::PIC_) {
@@ -376,7 +376,7 @@
 
     int Offset = MO.getOffset();
     if (Offset > 0)
-      O << "+" << Offset;
+      O << '+' << Offset;
     else if (Offset < 0)
       O << Offset;
 
@@ -459,7 +459,7 @@
 
     int Offset = MO.getOffset();
     if (Offset > 0)
-      O << "+" << Offset;
+      O << '+' << Offset;
     else if (Offset < 0)
       O << Offset;
 
@@ -532,7 +532,7 @@
         //   popl %some_register
         //   addl $_GLOBAL_ADDRESS_TABLE_ + [.-piclabel], %some_register
         O << " + [.-"
-          << getPICLabelString(getFunctionNumber(), TAI, Subtarget) << "]";
+          << getPICLabelString(getFunctionNumber(), TAI, Subtarget) << ']';
 
       if (isCallOp)
         O << "@PLT";
@@ -597,17 +597,17 @@
       std::swap(BaseRegOperand, IndexRegOperand);
     }
 
-    O << "(";
+    O << '(';
     if (BaseReg.getReg())
       printOperand(MI, Op+BaseRegOperand, Modifier);
 
     if (IndexReg.getReg()) {
-      O << ",";
+      O << ',';
       printOperand(MI, Op+IndexRegOperand, Modifier);
       if (ScaleVal != 1)
-        O << "," << ScaleVal;
+        O << ',' << ScaleVal;
     }
-    O << ")";
+    O << ')';
   }
 }
 
@@ -632,7 +632,7 @@
 
 void X86ATTAsmPrinter::printPICLabel(const MachineInstr *MI, unsigned Op) {
   std::string label = getPICLabelString(getFunctionNumber(), TAI, Subtarget);
-  O << label << "\n" << label << ":";
+  O << label << '\n' << label << ':';
 }
 
 
@@ -795,10 +795,10 @@
 
   if (GVar->hasHiddenVisibility()) {
     if (const char *Directive = TAI->getHiddenDirective())
-      O << Directive << name << "\n";
+      O << Directive << name << '\n';
   } else if (GVar->hasProtectedVisibility()) {
     if (const char *Directive = TAI->getProtectedDirective())
-      O << Directive << name << "\n";
+      O << Directive << name << '\n';
   }
 
   if (Subtarget->isTargetELF())
@@ -807,9 +807,9 @@
   if (C->isNullValue() && !GVar->hasSection()) {
     if (GVar->hasExternalLinkage()) {
       if (const char *Directive = TAI->getZeroFillDirective()) {
-        O << "\t.globl " << name << "\n";
+        O << "\t.globl " << name << '\n';
         O << Directive << "__DATA, __common, " << name << ", "
-          << Size << ", " << Align << "\n";
+          << Size << ", " << Align << '\n';
         return;
       }
     }
@@ -824,38 +824,38 @@
         SwitchToDataSection(TAI->getDataSection(), GVar);
       if (TAI->getLCOMMDirective() != NULL) {
         if (GVar->hasInternalLinkage()) {
-          O << TAI->getLCOMMDirective() << name << "," << Size;
+          O << TAI->getLCOMMDirective() << name << ',' << Size;
           if (Subtarget->isTargetDarwin())
-            O << "," << Align;
+            O << ',' << Align;
         } else if (Subtarget->isTargetDarwin() && !GVar->hasCommonLinkage()) {
-          O << "\t.globl " << name << "\n"
-            << TAI->getWeakDefDirective() << name << "\n";
+          O << "\t.globl " << name << '\n'
+            << TAI->getWeakDefDirective() << name << '\n';
           SwitchToDataSection("\t.section __DATA,__datacoal_nt,coalesced", GVar);
           EmitAlignment(Align, GVar);
-          O << name << ":\t\t\t\t" << TAI->getCommentString() << " ";
+          O << name << ":\t\t\t\t" << TAI->getCommentString() << ' ';
           PrintUnmangledNameSafely(GVar, O);
-          O << "\n";
+          O << '\n';
           EmitGlobalConstant(C);
           return;
         } else {
-          O << TAI->getCOMMDirective()  << name << "," << Size;
+          O << TAI->getCOMMDirective()  << name << ',' << Size;
 
           // Leopard and above support aligned common symbols.
           if (Subtarget->getDarwinVers() >= 9)
-            O << "," << Align;
+            O << ',' << Align;
         }
       } else {
         if (!Subtarget->isTargetCygMing()) {
           if (GVar->hasInternalLinkage())
-            O << "\t.local\t" << name << "\n";
+            O << "\t.local\t" << name << '\n';
         }
-        O << TAI->getCOMMDirective()  << name << "," << Size;
+        O << TAI->getCOMMDirective()  << name << ',' << Size;
         if (TAI->getCOMMDirectiveTakesAlignment())
-          O << "," << (TAI->getAlignmentIsInBytes() ? (1 << Align) : Align);
+          O << ',' << (TAI->getAlignmentIsInBytes() ? (1 << Align) : Align);
       }
-      O << "\t\t" << TAI->getCommentString() << " ";
+      O << "\t\t" << TAI->getCommentString() << ' ';
       PrintUnmangledNameSafely(GVar, O);
-      O << "\n";
+      O << '\n';
       return;
     }
   }
@@ -865,8 +865,8 @@
    case GlobalValue::LinkOnceLinkage:
    case GlobalValue::WeakLinkage:
     if (Subtarget->isTargetDarwin()) {
-      O << "\t.globl " << name << "\n"
-        << TAI->getWeakDefDirective() << name << "\n";
+      O << "\t.globl " << name << '\n'
+        << TAI->getWeakDefDirective() << name << '\n';
       if (!GVar->isConstant())
         SwitchToDataSection("\t.section __DATA,__datacoal_nt,coalesced", GVar);
       else {
@@ -882,13 +882,13 @@
                               ",\"aw\"");
       SwitchToDataSection(SectionName.c_str(), GVar);
       O << "\t.globl\t" << name << "\n"
-        << "\t.linkonce same_size\n";
+           "\t.linkonce same_size\n";
     } else {
       std::string SectionName("\t.section\t.llvm.linkonce.d." +
                               name +
                               ",\"aw\", at progbits");
       SwitchToDataSection(SectionName.c_str(), GVar);
-      O << "\t.weak\t" << name << "\n";
+      O << "\t.weak\t" << name << '\n';
     }
     break;
    case GlobalValue::DLLExportLinkage:
@@ -897,7 +897,7 @@
     // their name or something.  For now, just emit them as external.
    case GlobalValue::ExternalLinkage:
     // If external or appending, declare as a global symbol
-    O << "\t.globl " << name << "\n";
+    O << "\t.globl " << name << '\n';
     // FALL THROUGH
    case GlobalValue::InternalLinkage: {
      if (GVar->isConstant()) {
@@ -962,11 +962,11 @@
   }
 
   EmitAlignment(Align, GVar);
-  O << name << ":\t\t\t\t" << TAI->getCommentString() << " ";
+  O << name << ":\t\t\t\t" << TAI->getCommentString() << ' ';
   PrintUnmangledNameSafely(GVar, O);
-  O << "\n";
+  O << '\n';
   if (TAI->hasDotTypeDotSizeDirective())
-    O << "\t.size\t" << name << ", " << Size << "\n";
+    O << "\t.size\t" << name << ", " << Size << '\n';
 
   // If the initializer is a extern weak symbol, remember to emit the weak
   // reference!
@@ -1017,12 +1017,12 @@
                           "self_modifying_code+pure_instructions,5", 0);
       std::string p = i->getKeyData();
       printSuffixedName(p, "$stub");
-      O << ":\n";
-      O << "\t.indirect_symbol " << p << "\n";
-      O << "\thlt ; hlt ; hlt ; hlt ; hlt\n";
+      O << ":\n"
+           "\t.indirect_symbol " << p << "\n"
+           "\thlt ; hlt ; hlt ; hlt ; hlt\n";
     }
 
-    O << "\n";
+    O << '\n';
 
     if (TAI->doesSupportExceptionHandling() && MMI && !Subtarget->is64Bit()) {
       // Add the (possibly multiple) personalities to the set of global values.
@@ -1031,7 +1031,7 @@
 
       for (std::vector<Function *>::const_iterator I = Personalities.begin(),
              E = Personalities.end(); I != E; ++I)
-        if (*I) GVStubs.insert("_" + (*I)->getName());
+        if (*I) GVStubs.insert('_' + (*I)->getName());
     }
 
     // Output stubs for external and common global variables.
@@ -1042,9 +1042,9 @@
          i != e; ++i) {
       std::string p = i->getKeyData();
       printSuffixedName(p, "$non_lazy_ptr");
-      O << ":\n";
-      O << "\t.indirect_symbol " << p << "\n";
-      O << "\t.long\t0\n";
+      O << ":\n"
+           "\t.indirect_symbol " << p << "\n"
+           "\t.long\t0\n";
     }
 
     // Emit final debug information.





More information about the llvm-commits mailing list