-
Notifications
You must be signed in to change notification settings - Fork 15.2k
[NFC][LLVM] Use ListSeparator in AsmWriter #161422
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
@llvm/pr-subscribers-llvm-ir Author: Rahul Joshi (jurahul) ChangesUse Patch is 21.00 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/161422.diff 1 Files Affected:
diff --git a/llvm/lib/IR/AsmWriter.cpp b/llvm/lib/IR/AsmWriter.cpp
index 1a518305cffbe..be8186e786ec1 100644
--- a/llvm/lib/IR/AsmWriter.cpp
+++ b/llvm/lib/IR/AsmWriter.cpp
@@ -516,19 +516,15 @@ static void PrintShuffleMask(raw_ostream &Out, Type *Ty, ArrayRef<int> Mask) {
if (isa<ScalableVectorType>(Ty))
Out << "vscale x ";
Out << Mask.size() << " x i32> ";
- bool FirstElt = true;
if (all_of(Mask, [](int Elt) { return Elt == 0; })) {
Out << "zeroinitializer";
} else if (all_of(Mask, [](int Elt) { return Elt == PoisonMaskElem; })) {
Out << "poison";
} else {
Out << "<";
+ ListSeparator LS;
for (int Elt : Mask) {
- if (FirstElt)
- FirstElt = false;
- else
- Out << ", ";
- Out << "i32 ";
+ Out << LS << "i32 ";
if (Elt == PoisonMaskElem)
Out << "poison";
else
@@ -1700,14 +1696,12 @@ static void WriteConstantInternal(raw_ostream &Out, const Constant *CV,
if (const ConstantArray *CA = dyn_cast<ConstantArray>(CV)) {
Type *ETy = CA->getType()->getElementType();
Out << '[';
- WriterCtx.TypePrinter->print(ETy, Out);
- Out << ' ';
- WriteAsOperandInternal(Out, CA->getOperand(0), WriterCtx);
- for (unsigned i = 1, e = CA->getNumOperands(); i != e; ++i) {
- Out << ", ";
+ ListSeparator LS;
+ for (const Value *Op : CA->operand_values()) {
+ Out << LS;
WriterCtx.TypePrinter->print(ETy, Out);
Out << ' ';
- WriteAsOperandInternal(Out, CA->getOperand(i), WriterCtx);
+ WriteAsOperandInternal(Out, Op, WriterCtx);
}
Out << ']';
return;
@@ -1725,11 +1719,9 @@ static void WriteConstantInternal(raw_ostream &Out, const Constant *CV,
Type *ETy = CA->getType()->getElementType();
Out << '[';
- WriterCtx.TypePrinter->print(ETy, Out);
- Out << ' ';
- WriteAsOperandInternal(Out, CA->getElementAsConstant(0), WriterCtx);
- for (uint64_t i = 1, e = CA->getNumElements(); i != e; ++i) {
- Out << ", ";
+ ListSeparator LS;
+ for (uint64_t i = 0, e = CA->getNumElements(); i != e; ++i) {
+ Out << LS;
WriterCtx.TypePrinter->print(ETy, Out);
Out << ' ';
WriteAsOperandInternal(Out, CA->getElementAsConstant(i), WriterCtx);
@@ -1742,24 +1734,17 @@ static void WriteConstantInternal(raw_ostream &Out, const Constant *CV,
if (CS->getType()->isPacked())
Out << '<';
Out << '{';
- unsigned N = CS->getNumOperands();
- if (N) {
- Out << ' ';
- WriterCtx.TypePrinter->print(CS->getOperand(0)->getType(), Out);
+ if (CS->getNumOperands() != 0) {
Out << ' ';
-
- WriteAsOperandInternal(Out, CS->getOperand(0), WriterCtx);
-
- for (unsigned i = 1; i < N; i++) {
- Out << ", ";
- WriterCtx.TypePrinter->print(CS->getOperand(i)->getType(), Out);
+ ListSeparator LS;
+ for (const Value *Op : CS->operand_values()) {
+ Out << LS;
+ WriterCtx.TypePrinter->print(Op->getType(), Out);
Out << ' ';
-
- WriteAsOperandInternal(Out, CS->getOperand(i), WriterCtx);
+ WriteAsOperandInternal(Out, Op, WriterCtx);
}
Out << ' ';
}
-
Out << '}';
if (CS->getType()->isPacked())
Out << '>';
@@ -1787,11 +1772,9 @@ static void WriteConstantInternal(raw_ostream &Out, const Constant *CV,
}
Out << '<';
- WriterCtx.TypePrinter->print(ETy, Out);
- Out << ' ';
- WriteAsOperandInternal(Out, CV->getAggregateElement(0U), WriterCtx);
- for (unsigned i = 1, e = CVVTy->getNumElements(); i != e; ++i) {
- Out << ", ";
+ ListSeparator LS;
+ for (unsigned i = 0, e = CVVTy->getNumElements(); i != e; ++i) {
+ Out << LS;
WriterCtx.TypePrinter->print(ETy, Out);
Out << ' ';
WriteAsOperandInternal(Out, CV->getAggregateElement(i), WriterCtx);
@@ -1848,13 +1831,13 @@ static void WriteConstantInternal(raw_ostream &Out, const Constant *CV,
Out << ", ";
}
+ ListSeparator LS;
for (User::const_op_iterator OI = CE->op_begin(); OI != CE->op_end();
++OI) {
+ Out << LS;
WriterCtx.TypePrinter->print((*OI)->getType(), Out);
Out << ' ';
WriteAsOperandInternal(Out, *OI, WriterCtx);
- if (OI+1 != CE->op_end())
- Out << ", ";
}
if (CE->isCast()) {
@@ -1875,11 +1858,12 @@ static void WriteConstantInternal(raw_ostream &Out, const Constant *CV,
static void writeMDTuple(raw_ostream &Out, const MDTuple *Node,
AsmWriterContext &WriterCtx) {
Out << "!{";
- for (unsigned mi = 0, me = Node->getNumOperands(); mi != me; ++mi) {
- const Metadata *MD = Node->getOperand(mi);
- if (!MD)
+ ListSeparator LS;
+ for (const Metadata *MD : Node->operands()) {
+ Out << LS;
+ if (!MD) {
Out << "null";
- else if (auto *MDV = dyn_cast<ValueAsMetadata>(MD)) {
+ } else if (auto *MDV = dyn_cast<ValueAsMetadata>(MD)) {
Value *V = MDV->getValue();
WriterCtx.TypePrinter->print(V->getType(), Out);
Out << ' ';
@@ -1888,8 +1872,6 @@ static void writeMDTuple(raw_ostream &Out, const MDTuple *Node,
WriteAsOperandInternal(Out, MD, WriterCtx);
WriterCtx.onWriteMetadataAsOperand(MD);
}
- if (mi + 1 != me)
- Out << ", ";
}
Out << "}";
@@ -1897,24 +1879,9 @@ static void writeMDTuple(raw_ostream &Out, const MDTuple *Node,
namespace {
-struct FieldSeparator {
- bool Skip = true;
- const char *Sep;
-
- FieldSeparator(const char *Sep = ", ") : Sep(Sep) {}
-};
-
-raw_ostream &operator<<(raw_ostream &OS, FieldSeparator &FS) {
- if (FS.Skip) {
- FS.Skip = false;
- return OS;
- }
- return OS << FS.Sep;
-}
-
struct MDFieldPrinter {
raw_ostream &Out;
- FieldSeparator FS;
+ ListSeparator FS;
AsmWriterContext &WriterCtx;
explicit MDFieldPrinter(raw_ostream &Out)
@@ -2051,7 +2018,7 @@ void MDFieldPrinter::printDIFlags(StringRef Name, DINode::DIFlags Flags) {
SmallVector<DINode::DIFlags, 8> SplitFlags;
auto Extra = DINode::splitFlags(Flags, SplitFlags);
- FieldSeparator FlagsFS(" | ");
+ ListSeparator FlagsFS(" | ");
for (auto F : SplitFlags) {
auto StringF = DINode::getFlagString(F);
assert(!StringF.empty() && "Expected valid flag");
@@ -2075,7 +2042,7 @@ void MDFieldPrinter::printDISPFlags(StringRef Name,
SmallVector<DISubprogram::DISPFlags, 8> SplitFlags;
auto Extra = DISubprogram::splitFlags(Flags, SplitFlags);
- FieldSeparator FlagsFS(" | ");
+ ListSeparator FlagsFS(" | ");
for (auto F : SplitFlags) {
auto StringF = DISubprogram::getFlagString(F);
assert(!StringF.empty() && "Expected valid flag");
@@ -2124,7 +2091,7 @@ static void writeGenericDINode(raw_ostream &Out, const GenericDINode *N,
Printer.printString("header", N->getHeader());
if (N->getNumDwarfOperands()) {
Out << Printer.FS << "operands: {";
- FieldSeparator IFS;
+ ListSeparator IFS;
for (auto &I : N->dwarf_operands()) {
Out << IFS;
writeMetadataAsOperand(Out, I, WriterCtx);
@@ -2638,7 +2605,7 @@ static void writeDILabel(raw_ostream &Out, const DILabel *N,
static void writeDIExpression(raw_ostream &Out, const DIExpression *N,
AsmWriterContext &WriterCtx) {
Out << "!DIExpression(";
- FieldSeparator FS;
+ ListSeparator FS;
if (N->isValid()) {
for (const DIExpression::ExprOperand &Op : N->expr_ops()) {
auto OpStr = dwarf::OperationEncodingString(Op.getOp());
@@ -2666,7 +2633,7 @@ static void writeDIArgList(raw_ostream &Out, const DIArgList *N,
assert(FromValue &&
"Unexpected DIArgList metadata outside of value argument");
Out << "!DIArgList(";
- FieldSeparator FS;
+ ListSeparator FS;
MDFieldPrinter Printer(Out, WriterCtx);
for (Metadata *Arg : N->getArgs()) {
Out << FS;
@@ -3073,15 +3040,11 @@ void AssemblyWriter::writeOperandBundles(const CallBase *Call) {
Out << " [ ";
- bool FirstBundle = true;
+ ListSeparator LS;
for (unsigned i = 0, e = Call->getNumOperandBundles(); i != e; ++i) {
OperandBundleUse BU = Call->getOperandBundleAt(i);
- if (!FirstBundle)
- Out << ", ";
- FirstBundle = false;
-
- Out << '"';
+ Out << LS << '"';
printEscapedString(BU.getTagName(), Out);
Out << '"';
@@ -3229,7 +3192,7 @@ void AssemblyWriter::printModuleSummaryIndex() {
Out << "path: \"";
printEscapedString(ModPair.first, Out);
Out << "\", hash: (";
- FieldSeparator FS;
+ ListSeparator FS;
for (auto Hash : ModPair.second)
Out << FS << Hash;
Out << "))\n";
@@ -3347,7 +3310,7 @@ void AssemblyWriter::printTypeIdSummary(const TypeIdSummary &TIS) {
printTypeTestResolution(TIS.TTRes);
if (!TIS.WPDRes.empty()) {
Out << ", wpdResolutions: (";
- FieldSeparator FS;
+ ListSeparator FS;
for (auto &WPDRes : TIS.WPDRes) {
Out << FS;
Out << "(offset: " << WPDRes.first << ", ";
@@ -3362,7 +3325,7 @@ void AssemblyWriter::printTypeIdSummary(const TypeIdSummary &TIS) {
void AssemblyWriter::printTypeIdCompatibleVtableSummary(
const TypeIdCompatibleVtableInfo &TI) {
Out << ", summary: (";
- FieldSeparator FS;
+ ListSeparator FS;
for (auto &P : TI) {
Out << FS;
Out << "(offset: " << P.AddressPointOffset << ", ";
@@ -3374,7 +3337,7 @@ void AssemblyWriter::printTypeIdCompatibleVtableSummary(
void AssemblyWriter::printArgs(const std::vector<uint64_t> &Args) {
Out << "args: (";
- FieldSeparator FS;
+ ListSeparator FS;
for (auto arg : Args) {
Out << FS;
Out << arg;
@@ -3391,7 +3354,7 @@ void AssemblyWriter::printWPDRes(const WholeProgramDevirtResolution &WPDRes) {
if (!WPDRes.ResByArg.empty()) {
Out << ", resByArg: (";
- FieldSeparator FS;
+ ListSeparator FS;
for (auto &ResByArg : WPDRes.ResByArg) {
Out << FS;
printArgs(ResByArg.first);
@@ -3451,7 +3414,7 @@ void AssemblyWriter::printGlobalVarSummary(const GlobalVarSummary *GS) {
if (!VTableFuncs.empty()) {
Out << ", vTableFuncs: (";
- FieldSeparator FS;
+ ListSeparator FS;
for (auto &P : VTableFuncs) {
Out << FS;
Out << "(virtFunc: ^" << Machine.getGUIDSlot(P.FuncVI.getGUID())
@@ -3528,7 +3491,7 @@ void AssemblyWriter::printFunctionSummary(const FunctionSummary *FS) {
if (!FS->calls().empty()) {
Out << ", calls: (";
- FieldSeparator IFS;
+ ListSeparator IFS;
for (auto &Call : FS->calls()) {
Out << IFS;
Out << "(callee: ^" << Machine.getGUIDSlot(Call.first.getGUID());
@@ -3566,22 +3529,22 @@ void AssemblyWriter::printFunctionSummary(const FunctionSummary *FS) {
if (!FS->allocs().empty()) {
Out << ", allocs: (";
- FieldSeparator AFS;
+ ListSeparator AFS;
for (auto &AI : FS->allocs()) {
Out << AFS;
Out << "(versions: (";
- FieldSeparator VFS;
+ ListSeparator VFS;
for (auto V : AI.Versions) {
Out << VFS;
Out << AllocTypeName(V);
}
Out << "), memProf: (";
- FieldSeparator MIBFS;
+ ListSeparator MIBFS;
for (auto &MIB : AI.MIBs) {
Out << MIBFS;
Out << "(type: " << AllocTypeName((uint8_t)MIB.AllocType);
Out << ", stackIds: (";
- FieldSeparator SIDFS;
+ ListSeparator SIDFS;
for (auto Id : MIB.StackIdIndices) {
Out << SIDFS;
Out << TheIndex->getStackIdAtIndex(Id);
@@ -3595,7 +3558,7 @@ void AssemblyWriter::printFunctionSummary(const FunctionSummary *FS) {
if (!FS->callsites().empty()) {
Out << ", callsites: (";
- FieldSeparator SNFS;
+ ListSeparator SNFS;
for (auto &CI : FS->callsites()) {
Out << SNFS;
if (CI.Callee)
@@ -3603,13 +3566,13 @@ void AssemblyWriter::printFunctionSummary(const FunctionSummary *FS) {
else
Out << "(callee: null";
Out << ", clones: (";
- FieldSeparator VFS;
+ ListSeparator VFS;
for (auto V : CI.Clones) {
Out << VFS;
Out << V;
}
Out << "), stackIds: (";
- FieldSeparator SIDFS;
+ ListSeparator SIDFS;
for (auto Id : CI.StackIdIndices) {
Out << SIDFS;
Out << TheIndex->getStackIdAtIndex(Id);
@@ -3625,7 +3588,7 @@ void AssemblyWriter::printFunctionSummary(const FunctionSummary *FS) {
if (!FS->paramAccesses().empty()) {
Out << ", params: (";
- FieldSeparator IFS;
+ ListSeparator IFS;
for (auto &PS : FS->paramAccesses()) {
Out << IFS;
Out << "(param: " << PS.ParamNo;
@@ -3633,7 +3596,7 @@ void AssemblyWriter::printFunctionSummary(const FunctionSummary *FS) {
PrintRange(PS.Use);
if (!PS.Calls.empty()) {
Out << ", calls: (";
- FieldSeparator IFS;
+ ListSeparator IFS;
for (auto &Call : PS.Calls) {
Out << IFS;
Out << "(callee: ^" << Machine.getGUIDSlot(Call.Callee.getGUID());
@@ -3653,11 +3616,11 @@ void AssemblyWriter::printFunctionSummary(const FunctionSummary *FS) {
void AssemblyWriter::printTypeIdInfo(
const FunctionSummary::TypeIdInfo &TIDInfo) {
Out << ", typeIdInfo: (";
- FieldSeparator TIDFS;
+ ListSeparator TIDFS;
if (!TIDInfo.TypeTests.empty()) {
Out << TIDFS;
Out << "typeTests: (";
- FieldSeparator FS;
+ ListSeparator FS;
for (auto &GUID : TIDInfo.TypeTests) {
auto TidIter = TheIndex->typeIds().equal_range(GUID);
if (TidIter.first == TidIter.second) {
@@ -3706,7 +3669,7 @@ void AssemblyWriter::printVFuncId(const FunctionSummary::VFuncId VFId) {
return;
}
// Print all type id that correspond to this GUID.
- FieldSeparator FS;
+ ListSeparator FS;
for (const auto &[GUID, TypeIdPair] : make_range(TidIter)) {
Out << FS;
Out << "vFuncId: (";
@@ -3721,7 +3684,7 @@ void AssemblyWriter::printVFuncId(const FunctionSummary::VFuncId VFId) {
void AssemblyWriter::printNonConstVCalls(
const std::vector<FunctionSummary::VFuncId> &VCallList, const char *Tag) {
Out << Tag << ": (";
- FieldSeparator FS;
+ ListSeparator FS;
for (auto &VFuncId : VCallList) {
Out << FS;
printVFuncId(VFuncId);
@@ -3733,7 +3696,7 @@ void AssemblyWriter::printConstVCalls(
const std::vector<FunctionSummary::ConstVCall> &VCallList,
const char *Tag) {
Out << Tag << ": (";
- FieldSeparator FS;
+ ListSeparator FS;
for (auto &ConstVCall : VCallList) {
Out << FS;
Out << "(";
@@ -3774,7 +3737,7 @@ void AssemblyWriter::printSummary(const GlobalValueSummary &Summary) {
auto RefList = Summary.refs();
if (!RefList.empty()) {
Out << ", refs: (";
- FieldSeparator FS;
+ ListSeparator FS;
for (auto &Ref : RefList) {
Out << FS;
if (Ref.isReadOnly())
@@ -3797,7 +3760,7 @@ void AssemblyWriter::printSummaryInfo(unsigned Slot, const ValueInfo &VI) {
Out << "guid: " << VI.getGUID();
if (!VI.getSummaryList().empty()) {
Out << ", summaries: (";
- FieldSeparator FS;
+ ListSeparator FS;
for (auto &Summary : VI.getSummaryList()) {
Out << FS;
printSummary(*Summary);
@@ -3835,13 +3798,11 @@ void AssemblyWriter::printNamedMDNode(const NamedMDNode *NMD) {
Out << '!';
printMetadataIdentifier(NMD->getName(), Out);
Out << " = !{";
- for (unsigned i = 0, e = NMD->getNumOperands(); i != e; ++i) {
- if (i)
- Out << ", ";
-
+ ListSeparator LS;
+ for (const MDNode *Op : NMD->operands()) {
+ Out << LS;
// Write DIExpressions inline.
// FIXME: Ban DIExpressions in NamedMDNodes, they will serve no purpose.
- MDNode *Op = NMD->getOperand(i);
if (auto *Expr = dyn_cast<DIExpression>(Op)) {
writeDIExpression(Out, Expr, AsmWriterContext::getEmpty());
continue;
@@ -4192,11 +4153,10 @@ void AssemblyWriter::printFunction(const Function *F) {
// Loop over the arguments, printing them...
if (F->isDeclaration() && !IsForDebug) {
// We're only interested in the type here - don't print argument names.
+ ListSeparator LS;
for (unsigned I = 0, E = FT->getNumParams(); I != E; ++I) {
- // Insert commas as we go... the first arg doesn't get a comma
- if (I)
- Out << ", ";
- // Output type...
+ Out << LS;
+ // Output type.
TypePrinter.print(FT->getParamType(I), Out);
AttributeSet ArgAttrs = Attrs.getParamAttrs(I);
@@ -4207,10 +4167,9 @@ void AssemblyWriter::printFunction(const Function *F) {
}
} else {
// The arguments are meaningful here, print them in detail.
+ ListSeparator LS;
for (const Argument &Arg : F->args()) {
- // Insert commas as we go... the first arg doesn't get a comma
- if (Arg.getArgNo() != 0)
- Out << ", ";
+ Out << LS;
printArgument(&Arg, Attrs.getParamAttrs(Arg.getArgNo()));
}
}
@@ -4332,16 +4291,14 @@ void AssemblyWriter::printBasicBlock(const BasicBlock *BB) {
// Output predecessors for the block.
Out.PadToColumn(50);
Out << ";";
- const_pred_iterator PI = pred_begin(BB), PE = pred_end(BB);
-
- if (PI == PE) {
+ if (pred_empty(BB)) {
Out << " No predecessors!";
} else {
Out << " preds = ";
- writeOperand(*PI, false);
- for (++PI; PI != PE; ++PI) {
- Out << ", ";
- writeOperand(*PI, false);
+ ListSeparator LS;
+ for (const BasicBlock *Pred : predecessors(BB)) {
+ Out << LS;
+ writeOperand(Pred, false);
}
}
}
@@ -4520,9 +4477,9 @@ void AssemblyWriter::printInstruction(const Instruction &I) {
writeOperand(Operand, true);
Out << ", [";
+ ListSeparator LS;
for (unsigned i = 1, e = I.getNumOperands(); i != e; ++i) {
- if (i != 1)
- Out << ", ";
+ Out << LS;
writeOperand(I.getOperand(i), true);
}
Out << ']';
@@ -4531,9 +4488,9 @@ void AssemblyWriter::printInstruction(const Instruction &I) {
TypePrinter.print(I.getType(), Out);
Out << ' ';
+ ListSeparator LS;
for (unsigned op = 0, Eop = PN->getNumIncomingValues(); op < Eop; ++op) {
- if (op) Out << ", ";
- Out << "[ ";
+ Out << LS << "[ ";
writeOperand(PN->getIncomingValue(op), false); Out << ", ";
writeOperand(PN->getIncomingBlock(op), false); Out << " ]";
}
@@ -4570,12 +4527,10 @@ void AssemblyWriter::printInstruction(const Instruction &I) {
Out << " within ";
writeOperand(CatchSwitch->getParentPad(), /*PrintType=*/false);
Out << " [";
- unsigned Op = 0;
+ ListSeparator LS;
for (const BasicBlock *PadBB : CatchSwitch->handlers()) {
- if (Op > 0)
- Out << ", ";
+ Out << LS;
writeOperand(PadBB, /*PrintType=*/true);
- ++Op;
}
Out << "] unwind ";
if (const BasicBlock *UnwindDest = CatchSwitch->getUnwindDest())
@@ -4586,10 +4541,10 @@ void AssemblyWriter::printInstruction(const Instruction &I) {
Out << " within ";
writeOperand(FPI->getParentPad(), /*PrintType=*/false);
Out << " [";
- for (unsigned Op = 0, NumOps = FPI->arg_size(); Op < NumOps; ++Op) {
- if (Op > 0)
- Out << ", ";
- writeOperand(FPI->getArgOperand(Op), /*PrintType=*/true);
+ ListSeparator LS;
+ for (const Value *Op : FPI->arg_operands()) {
+ Out << LS;
+ writeOperand(Op, /*PrintType=*/true);
}
Out << ']';
} else if (isa<ReturnInst>(I) && !Operand) {
@@ -4635,9 +4590,9 @@ void AssemblyWriter::printInstruction(const Instruction &I) {
Out << ' ';
writeOperand(Operand, false);
Out << '(';
+ ListSeparator LS;
for (unsigned op = 0, Eop = CI->arg_size(); op < Eop; ++op) {
- if (op > 0)
- Out << ", ";
+ Out << LS;
writeParamOperand(CI->getArgOperand(op), PAL.getParamAttrs(op));
}
@@ -4683,9 +4638,9 @@ void AssemblyWriter::printInstruction(const Instruction &I) {
Out << ' ';
writeOperand(Operand, false);
Out << '(';
+ ListSeparator LS;
for (unsigned op = 0, Eop = II->arg_size(); op < Eop; ++op) {
- if (op)
- Out << ", ";
+ Out << LS;
writeParamOperand(II->getArgOperand(op), PAL.getParamAttrs(op));
}
@@ -4723,9 +4678,9 @@ void AssemblyWriter::printInstruction(const Instruction &I) {
Out << ' ';
writeOperand(Operand, false);
Out << '(';
+ ListSeparator ArgLS;
for (unsigned op = 0, Eop = CBI->arg_size(); op < Eop; ++op) {
- if (op)
- Out << ", ";
+ Out << ArgLS;
writeParamOperand(CBI->getArgOperand(op...
[truncated]
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
LLVM Buildbot has detected a new failure on builder Full details are available at: https://lab.llvm.org/buildbot/#/builders/162/builds/32238 Here is the relevant piece of the build log for the reference
|
needs additional downstream merge work This reverts commit 739425b.
needs [NFC][LLVM] Use ListSeparator in AsmWriter (llvm#161422) This reverts commit 825d82d.
Use `ListSeparator` instead of manual code when generating comma separated lists. Also replace `FieldSeparator` with `ListSeparator` as they both provide identical functionality.
Use `ListSeparator` instead of manual code when generating comma separated lists. Also replace `FieldSeparator` with `ListSeparator` as they both provide identical functionality.
Use
ListSeparator
instead of manual code when generating comma separated lists. Also replaceFieldSeparator
withListSeparator
as they both provide identical functionality.