[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