[TableGen] Indentation and whitespace fixes in generated code. NFC.

Some of these were found by running clang-format over the generated
code, although that complains about far more issues than I have fixed
here.

Differential Revision: https://reviews.llvm.org/D90937
This commit is contained in:
Jay Foad 2020-11-06 14:19:59 +00:00
parent d61f2cfb9f
commit d0b8810fe4
22 changed files with 100 additions and 101 deletions

View File

@ -70,7 +70,7 @@ def HasC : Predicate<"Subtarget->hasC()"> { let RecomputePerFunction = 1; }
// CHECK-LABEL: #ifdef GET_GLOBALISEL_TEMPORARIES_DECL // CHECK-LABEL: #ifdef GET_GLOBALISEL_TEMPORARIES_DECL
// CHECK-NEXT: mutable MatcherState State; // CHECK-NEXT: mutable MatcherState State;
// CHECK-NEXT: typedef ComplexRendererFns(MyTargetInstructionSelector::*ComplexMatcherMemFn)(MachineOperand &) const; // CHECK-NEXT: typedef ComplexRendererFns(MyTargetInstructionSelector::*ComplexMatcherMemFn)(MachineOperand &) const;
// CHECK-NEXT: typedef void(MyTargetInstructionSelector::*CustomRendererFn)(MachineInstrBuilder &, const MachineInstr&, int) const; // CHECK-NEXT: typedef void(MyTargetInstructionSelector::*CustomRendererFn)(MachineInstrBuilder &, const MachineInstr &, int) const;
// CHECK-NEXT: const ISelInfoTy<PredicateBitset, ComplexMatcherMemFn, CustomRendererFn> ISelInfo; // CHECK-NEXT: const ISelInfoTy<PredicateBitset, ComplexMatcherMemFn, CustomRendererFn> ISelInfo;
// CHECK-NEXT: static MyTargetInstructionSelector::ComplexMatcherMemFn ComplexPredicateFns[]; // CHECK-NEXT: static MyTargetInstructionSelector::ComplexMatcherMemFn ComplexPredicateFns[];
// CHECK-NEXT: static MyTargetInstructionSelector::CustomRendererFn CustomRenderers[]; // CHECK-NEXT: static MyTargetInstructionSelector::CustomRendererFn CustomRenderers[];

View File

@ -1980,7 +1980,7 @@ emitConvertFuncs(CodeGenTarget &Target, StringRef ClassName,
} }
CvtOS << " unsigned OpIdx;\n"; CvtOS << " unsigned OpIdx;\n";
CvtOS << " Inst.setOpcode(Opcode);\n"; CvtOS << " Inst.setOpcode(Opcode);\n";
CvtOS << " for (const uint8_t *p = Converter; *p; p+= 2) {\n"; CvtOS << " for (const uint8_t *p = Converter; *p; p += 2) {\n";
if (HasOptionalOperands) { if (HasOptionalOperands) {
CvtOS << " OpIdx = *(p + 1) - DefaultsOffset[*(p + 1)];\n"; CvtOS << " OpIdx = *(p + 1) - DefaultsOffset[*(p + 1)];\n";
} else { } else {
@ -1990,14 +1990,14 @@ emitConvertFuncs(CodeGenTarget &Target, StringRef ClassName,
CvtOS << " default: llvm_unreachable(\"invalid conversion entry!\");\n"; CvtOS << " default: llvm_unreachable(\"invalid conversion entry!\");\n";
CvtOS << " case CVT_Reg:\n"; CvtOS << " case CVT_Reg:\n";
CvtOS << " static_cast<" << TargetOperandClass CvtOS << " static_cast<" << TargetOperandClass
<< "&>(*Operands[OpIdx]).addRegOperands(Inst, 1);\n"; << " &>(*Operands[OpIdx]).addRegOperands(Inst, 1);\n";
CvtOS << " break;\n"; CvtOS << " break;\n";
CvtOS << " case CVT_Tied: {\n"; CvtOS << " case CVT_Tied: {\n";
CvtOS << " assert(OpIdx < (size_t)(std::end(TiedAsmOperandTable) -\n"; CvtOS << " assert(OpIdx < (size_t)(std::end(TiedAsmOperandTable) -\n";
CvtOS << " std::begin(TiedAsmOperandTable)) &&\n"; CvtOS << " std::begin(TiedAsmOperandTable)) &&\n";
CvtOS << " \"Tied operand not found\");\n"; CvtOS << " \"Tied operand not found\");\n";
CvtOS << " unsigned TiedResOpnd = TiedAsmOperandTable[OpIdx][0];\n"; CvtOS << " unsigned TiedResOpnd = TiedAsmOperandTable[OpIdx][0];\n";
CvtOS << " if (TiedResOpnd != (uint8_t) -1)\n"; CvtOS << " if (TiedResOpnd != (uint8_t)-1)\n";
CvtOS << " Inst.addOperand(Inst.getOperand(TiedResOpnd));\n"; CvtOS << " Inst.addOperand(Inst.getOperand(TiedResOpnd));\n";
CvtOS << " break;\n"; CvtOS << " break;\n";
CvtOS << " }\n"; CvtOS << " }\n";
@ -2012,7 +2012,7 @@ emitConvertFuncs(CodeGenTarget &Target, StringRef ClassName,
<< " assert(Kind < CVT_NUM_SIGNATURES && \"Invalid signature!\");\n" << " assert(Kind < CVT_NUM_SIGNATURES && \"Invalid signature!\");\n"
<< " unsigned NumMCOperands = 0;\n" << " unsigned NumMCOperands = 0;\n"
<< " const uint8_t *Converter = ConversionTable[Kind];\n" << " const uint8_t *Converter = ConversionTable[Kind];\n"
<< " for (const uint8_t *p = Converter; *p; p+= 2) {\n" << " for (const uint8_t *p = Converter; *p; p += 2) {\n"
<< " switch (*p) {\n" << " switch (*p) {\n"
<< " default: llvm_unreachable(\"invalid conversion entry!\");\n" << " default: llvm_unreachable(\"invalid conversion entry!\");\n"
<< " case CVT_Reg:\n" << " case CVT_Reg:\n"
@ -2129,12 +2129,12 @@ emitConvertFuncs(CodeGenTarget &Target, StringRef ClassName,
<< OpInfo.MINumOperands << ");\n" << OpInfo.MINumOperands << ");\n"
<< " } else {\n" << " } else {\n"
<< " static_cast<" << TargetOperandClass << " static_cast<" << TargetOperandClass
<< "&>(*Operands[OpIdx])." << Op.Class->RenderMethod << " &>(*Operands[OpIdx])." << Op.Class->RenderMethod
<< "(Inst, " << OpInfo.MINumOperands << ");\n" << "(Inst, " << OpInfo.MINumOperands << ");\n"
<< " }\n"; << " }\n";
} else { } else {
CvtOS << " static_cast<" << TargetOperandClass CvtOS << " static_cast<" << TargetOperandClass
<< "&>(*Operands[OpIdx])." << Op.Class->RenderMethod << " &>(*Operands[OpIdx])." << Op.Class->RenderMethod
<< "(Inst, " << OpInfo.MINumOperands << ");\n"; << "(Inst, " << OpInfo.MINumOperands << ");\n";
} }
CvtOS << " break;\n"; CvtOS << " break;\n";
@ -2448,7 +2448,7 @@ static void emitValidateOperandClass(AsmMatcherInfo &Info,
OS << "static unsigned validateOperandClass(MCParsedAsmOperand &GOp, " OS << "static unsigned validateOperandClass(MCParsedAsmOperand &GOp, "
<< "MatchClassKind Kind) {\n"; << "MatchClassKind Kind) {\n";
OS << " " << Info.Target.getName() << "Operand &Operand = (" OS << " " << Info.Target.getName() << "Operand &Operand = ("
<< Info.Target.getName() << "Operand&)GOp;\n"; << Info.Target.getName() << "Operand &)GOp;\n";
// The InvalidMatchClass is not to match any operand. // The InvalidMatchClass is not to match any operand.
OS << " if (Kind == InvalidMatchClass)\n"; OS << " if (Kind == InvalidMatchClass)\n";
@ -2811,7 +2811,7 @@ static bool emitMnemonicAliases(raw_ostream &OS, const AsmMatcherInfo &Info,
Record *AsmVariant = Target.getAsmParserVariant(VC); Record *AsmVariant = Target.getAsmParserVariant(VC);
int AsmParserVariantNo = AsmVariant->getValueAsInt("Variant"); int AsmParserVariantNo = AsmVariant->getValueAsInt("Variant");
StringRef AsmParserVariantName = AsmVariant->getValueAsString("Name"); StringRef AsmParserVariantName = AsmVariant->getValueAsString("Name");
OS << " case " << AsmParserVariantNo << ":\n"; OS << " case " << AsmParserVariantNo << ":\n";
emitMnemonicAliasVariant(OS, Info, Aliases, /*Indent=*/2, emitMnemonicAliasVariant(OS, Info, Aliases, /*Indent=*/2,
AsmParserVariantName); AsmParserVariantName);
OS << " break;\n"; OS << " break;\n";
@ -2978,7 +2978,7 @@ static void emitCustomOperandParsing(raw_ostream &OS, CodeGenTarget &Target,
"FeatureBitsets[it->RequiredFeaturesIdx];\n"; "FeatureBitsets[it->RequiredFeaturesIdx];\n";
OS << " if (!ParseForAllFeatures && (AvailableFeatures & " OS << " if (!ParseForAllFeatures && (AvailableFeatures & "
"RequiredFeatures) != RequiredFeatures)\n"; "RequiredFeatures) != RequiredFeatures)\n";
OS << " continue;\n\n"; OS << " continue;\n\n";
// Emit check to ensure the operand number matches. // Emit check to ensure the operand number matches.
OS << " // check if the operand in question has a custom parser.\n"; OS << " // check if the operand in question has a custom parser.\n";
@ -3011,10 +3011,10 @@ static void emitAsmTiedOperandConstraints(CodeGenTarget &Target,
OS << " uint64_t &ErrorInfo) {\n"; OS << " uint64_t &ErrorInfo) {\n";
OS << " assert(Kind < CVT_NUM_SIGNATURES && \"Invalid signature!\");\n"; OS << " assert(Kind < CVT_NUM_SIGNATURES && \"Invalid signature!\");\n";
OS << " const uint8_t *Converter = ConversionTable[Kind];\n"; OS << " const uint8_t *Converter = ConversionTable[Kind];\n";
OS << " for (const uint8_t *p = Converter; *p; p+= 2) {\n"; OS << " for (const uint8_t *p = Converter; *p; p += 2) {\n";
OS << " switch (*p) {\n"; OS << " switch (*p) {\n";
OS << " case CVT_Tied: {\n"; OS << " case CVT_Tied: {\n";
OS << " unsigned OpIdx = *(p+1);\n"; OS << " unsigned OpIdx = *(p + 1);\n";
OS << " assert(OpIdx < (size_t)(std::end(TiedAsmOperandTable) -\n"; OS << " assert(OpIdx < (size_t)(std::end(TiedAsmOperandTable) -\n";
OS << " std::begin(TiedAsmOperandTable)) &&\n"; OS << " std::begin(TiedAsmOperandTable)) &&\n";
OS << " \"Tied operand not found\");\n"; OS << " \"Tied operand not found\");\n";
@ -3086,7 +3086,7 @@ static void emitMnemonicSpellChecker(raw_ostream &OS, CodeGenTarget &Target,
OS << "\n"; OS << "\n";
OS << " std::string Res = \", did you mean: \";\n"; OS << " std::string Res = \", did you mean: \";\n";
OS << " unsigned i = 0;\n"; OS << " unsigned i = 0;\n";
OS << " for( ; i < Candidates.size() - 1; i++)\n"; OS << " for (; i < Candidates.size() - 1; i++)\n";
OS << " Res += Candidates[i].str() + \", \";\n"; OS << " Res += Candidates[i].str() + \", \";\n";
OS << " return Res + Candidates[i].str() + \"?\";\n"; OS << " return Res + Candidates[i].str() + \"?\";\n";
} }
@ -3255,7 +3255,7 @@ void AsmMatcherEmitter::run(raw_ostream &OS) {
OS << "#undef GET_ASSEMBLER_HEADER\n"; OS << "#undef GET_ASSEMBLER_HEADER\n";
OS << " // This should be included into the middle of the declaration of\n"; OS << " // This should be included into the middle of the declaration of\n";
OS << " // your subclasses implementation of MCTargetAsmParser.\n"; OS << " // your subclasses implementation of MCTargetAsmParser.\n";
OS << " FeatureBitset ComputeAvailableFeatures(const FeatureBitset& FB) const;\n"; OS << " FeatureBitset ComputeAvailableFeatures(const FeatureBitset &FB) const;\n";
if (HasOptionalOperands) { if (HasOptionalOperands) {
OS << " void convertToMCInst(unsigned Kind, MCInst &Inst, " OS << " void convertToMCInst(unsigned Kind, MCInst &Inst, "
<< "unsigned Opcode,\n" << "unsigned Opcode,\n"
@ -3559,12 +3559,12 @@ void AsmMatcherEmitter::run(raw_ostream &OS) {
OS << " // Get the instruction mnemonic, which is the first token.\n"; OS << " // Get the instruction mnemonic, which is the first token.\n";
if (HasMnemonicFirst) { if (HasMnemonicFirst) {
OS << " StringRef Mnemonic = ((" << Target.getName() OS << " StringRef Mnemonic = ((" << Target.getName()
<< "Operand&)*Operands[0]).getToken();\n\n"; << "Operand &)*Operands[0]).getToken();\n\n";
} else { } else {
OS << " StringRef Mnemonic;\n"; OS << " StringRef Mnemonic;\n";
OS << " if (Operands[0]->isToken())\n"; OS << " if (Operands[0]->isToken())\n";
OS << " Mnemonic = ((" << Target.getName() OS << " Mnemonic = ((" << Target.getName()
<< "Operand&)*Operands[0]).getToken();\n\n"; << "Operand &)*Operands[0]).getToken();\n\n";
} }
if (HasMnemonicAliases) { if (HasMnemonicAliases) {
@ -3614,7 +3614,7 @@ void AsmMatcherEmitter::run(raw_ostream &OS) {
} }
OS << " DEBUG_WITH_TYPE(\"asm-matcher\", dbgs() << \"AsmMatcher: found \" <<\n" OS << " DEBUG_WITH_TYPE(\"asm-matcher\", dbgs() << \"AsmMatcher: found \" <<\n"
<< " std::distance(MnemonicRange.first, MnemonicRange.second) << \n" << " std::distance(MnemonicRange.first, MnemonicRange.second) <<\n"
<< " \" encodings with mnemonic '\" << Mnemonic << \"'\\n\");\n\n"; << " \" encodings with mnemonic '\" << Mnemonic << \"'\\n\");\n\n";
OS << " // Return a more specific error code if no mnemonics match.\n"; OS << " // Return a more specific error code if no mnemonics match.\n";
@ -3789,10 +3789,10 @@ void AsmMatcherEmitter::run(raw_ostream &OS) {
OS << " FeatureBitset NewMissingFeatures = RequiredFeatures & " OS << " FeatureBitset NewMissingFeatures = RequiredFeatures & "
"~AvailableFeatures;\n"; "~AvailableFeatures;\n";
OS << " DEBUG_WITH_TYPE(\"asm-matcher\", dbgs() << \"Missing target features:\";\n"; OS << " DEBUG_WITH_TYPE(\"asm-matcher\", dbgs() << \"Missing target features:\";\n";
OS << " for (unsigned I = 0, E = NewMissingFeatures.size(); I != E; ++I)\n"; OS << " for (unsigned I = 0, E = NewMissingFeatures.size(); I != E; ++I)\n";
OS << " if (NewMissingFeatures[I])\n"; OS << " if (NewMissingFeatures[I])\n";
OS << " dbgs() << ' ' << I;\n"; OS << " dbgs() << ' ' << I;\n";
OS << " dbgs() << \"\\n\");\n"; OS << " dbgs() << \"\\n\");\n";
if (ReportMultipleNearMisses) { if (ReportMultipleNearMisses) {
OS << " FeaturesNearMiss = NearMissInfo::getMissedFeature(NewMissingFeatures);\n"; OS << " FeaturesNearMiss = NearMissInfo::getMissedFeature(NewMissingFeatures);\n";
} else { } else {
@ -3927,7 +3927,7 @@ void AsmMatcherEmitter::run(raw_ostream &OS) {
OS << " getTargetOptions().MCNoDeprecatedWarn &&\n"; OS << " getTargetOptions().MCNoDeprecatedWarn &&\n";
OS << " MII.getDeprecatedInfo(Inst, getSTI(), Info)) {\n"; OS << " MII.getDeprecatedInfo(Inst, getSTI(), Info)) {\n";
OS << " SMLoc Loc = ((" << Target.getName() OS << " SMLoc Loc = ((" << Target.getName()
<< "Operand&)*Operands[0]).getStartLoc();\n"; << "Operand &)*Operands[0]).getStartLoc();\n";
OS << " getParser().Warning(Loc, Info, None);\n"; OS << " getParser().Warning(Loc, Info, None);\n";
OS << " }\n"; OS << " }\n";
} }

View File

@ -443,7 +443,7 @@ void AsmWriterEmitter::EmitPrintInstruction(raw_ostream &O) {
// Emit the starting string. // Emit the starting string.
O << " assert(Bits != 0 && \"Cannot print this instruction.\");\n" O << " assert(Bits != 0 && \"Cannot print this instruction.\");\n"
<< " O << AsmStrs+(Bits & " << (1 << AsmStrBits)-1 << ")-1;\n\n"; << " O << AsmStrs + (Bits & " << (1 << AsmStrBits)-1 << ") - 1;\n\n";
// Output the table driven operand information. // Output the table driven operand information.
BitsLeft = OpcodeInfoBits-AsmStrBits; BitsLeft = OpcodeInfoBits-AsmStrBits;

View File

@ -85,7 +85,7 @@ void CallingConvEmitter::EmitCallingConv(Record *CC, raw_ostream &O) {
EmitAction(CCActions->getElementAsRecord(i), 2, O); EmitAction(CCActions->getElementAsRecord(i), 2, O);
} }
O << "\n return true; // CC didn't match.\n"; O << "\n return true; // CC didn't match.\n";
O << "}\n"; O << "}\n";
} }
@ -238,11 +238,11 @@ void CallingConvEmitter::EmitAction(Record *Action,
O << IndentStr << "LocInfo = CCValAssign::FPExt;\n"; O << IndentStr << "LocInfo = CCValAssign::FPExt;\n";
} else { } else {
O << IndentStr << "if (ArgFlags.isSExt())\n" O << IndentStr << "if (ArgFlags.isSExt())\n"
<< IndentStr << IndentStr << "LocInfo = CCValAssign::SExt;\n" << IndentStr << " LocInfo = CCValAssign::SExt;\n"
<< IndentStr << "else if (ArgFlags.isZExt())\n" << IndentStr << "else if (ArgFlags.isZExt())\n"
<< IndentStr << IndentStr << "LocInfo = CCValAssign::ZExt;\n" << IndentStr << " LocInfo = CCValAssign::ZExt;\n"
<< IndentStr << "else\n" << IndentStr << "else\n"
<< IndentStr << IndentStr << "LocInfo = CCValAssign::AExt;\n"; << IndentStr << " LocInfo = CCValAssign::AExt;\n";
} }
} else if (Action->isSubClassOf("CCPromoteToUpperBitsInType")) { } else if (Action->isSubClassOf("CCPromoteToUpperBitsInType")) {
Record *DestTy = Action->getValueAsDef("DestTy"); Record *DestTy = Action->getValueAsDef("DestTy");
@ -254,11 +254,11 @@ void CallingConvEmitter::EmitAction(Record *Action,
"point"); "point");
} else { } else {
O << IndentStr << "if (ArgFlags.isSExt())\n" O << IndentStr << "if (ArgFlags.isSExt())\n"
<< IndentStr << IndentStr << "LocInfo = CCValAssign::SExtUpper;\n" << IndentStr << " LocInfo = CCValAssign::SExtUpper;\n"
<< IndentStr << "else if (ArgFlags.isZExt())\n" << IndentStr << "else if (ArgFlags.isZExt())\n"
<< IndentStr << IndentStr << "LocInfo = CCValAssign::ZExtUpper;\n" << IndentStr << " LocInfo = CCValAssign::ZExtUpper;\n"
<< IndentStr << "else\n" << IndentStr << "else\n"
<< IndentStr << IndentStr << "LocInfo = CCValAssign::AExtUpper;\n"; << IndentStr << " LocInfo = CCValAssign::AExtUpper;\n";
} }
} else if (Action->isSubClassOf("CCBitConvertToType")) { } else if (Action->isSubClassOf("CCBitConvertToType")) {
Record *DestTy = Action->getValueAsDef("DestTy"); Record *DestTy = Action->getValueAsDef("DestTy");
@ -282,7 +282,7 @@ void CallingConvEmitter::EmitAction(Record *Action,
O << IndentStr O << IndentStr
<< "if (" << Action->getValueAsString("FuncName") << "(ValNo, ValVT, " << "if (" << Action->getValueAsString("FuncName") << "(ValNo, ValVT, "
<< "LocVT, LocInfo, ArgFlags, State))\n"; << "LocVT, LocInfo, ArgFlags, State))\n";
O << IndentStr << IndentStr << "return false;\n"; O << IndentStr << " return false;\n";
} else { } else {
errs() << *Action; errs() << *Action;
PrintFatalError(Action->getLoc(), "Unknown CCAction!"); PrintFatalError(Action->getLoc(), "Unknown CCAction!");

View File

@ -483,7 +483,7 @@ void CodeEmitterGen::run(raw_ostream &o) {
<< " Inst = Inst.zext(" << BitWidth << ");\n" << " Inst = Inst.zext(" << BitWidth << ");\n"
<< " if (Scratch.getBitWidth() != " << BitWidth << ")\n" << " if (Scratch.getBitWidth() != " << BitWidth << ")\n"
<< " Scratch = Scratch.zext(" << BitWidth << ");\n" << " Scratch = Scratch.zext(" << BitWidth << ");\n"
<< " LoadIntFromMemory(Inst, (uint8_t*)&InstBits[opcode * " << NumWords << " LoadIntFromMemory(Inst, (uint8_t *)&InstBits[opcode * " << NumWords
<< "], " << NumBytes << ");\n" << "], " << NumBytes << ");\n"
<< " APInt &Value = Inst;\n" << " APInt &Value = Inst;\n"
<< " APInt &op = Scratch;\n" << " APInt &op = Scratch;\n"
@ -643,9 +643,9 @@ void CodeEmitterGen::run(raw_ostream &o) {
<< " report_fatal_error(Msg.str());\n" << " report_fatal_error(Msg.str());\n"
<< " }\n" << " }\n"
<< "#else\n" << "#else\n"
<< "// Silence unused variable warning on targets that don't use MCII for " << " // Silence unused variable warning on targets that don't use MCII for "
"other purposes (e.g. BPF).\n" "other purposes (e.g. BPF).\n"
<< "(void)MCII;\n" << " (void)MCII;\n"
<< "#endif // NDEBUG\n"; << "#endif // NDEBUG\n";
o << "}\n"; o << "}\n";
o << "#endif\n"; o << "#endif\n";

View File

@ -422,7 +422,7 @@ void MapTableEmitter::emitBinSearch(raw_ostream &OS, unsigned TableSize) {
OS << " unsigned start = 0;\n"; OS << " unsigned start = 0;\n";
OS << " unsigned end = " << TableSize << ";\n"; OS << " unsigned end = " << TableSize << ";\n";
OS << " while (start < end) {\n"; OS << " while (start < end) {\n";
OS << " mid = start + (end - start)/2;\n"; OS << " mid = start + (end - start) / 2;\n";
OS << " if (Opcode == " << InstrMapDesc.getName() << "Table[mid][0]) {\n"; OS << " if (Opcode == " << InstrMapDesc.getName() << "Table[mid][0]) {\n";
OS << " break;\n"; OS << " break;\n";
OS << " }\n"; OS << " }\n";

View File

@ -2011,7 +2011,7 @@ void CodeGenRegBank::computeRegUnitSets() {
if (RCRegUnits.empty()) if (RCRegUnits.empty())
continue; continue;
LLVM_DEBUG(dbgs() << "RC " << RC.getName() << " Units: \n"; LLVM_DEBUG(dbgs() << "RC " << RC.getName() << " Units:\n";
for (auto U for (auto U
: RCRegUnits) printRegUnitName(U); : RCRegUnits) printRegUnitName(U);
dbgs() << "\n UnitSetIDs:"); dbgs() << "\n UnitSetIDs:");

View File

@ -250,7 +250,7 @@ void MatcherTableEmitter::EmitPatternMatchTable(raw_ostream &OS) {
BeginEmitFunction(OS, "StringRef", "getPatternForIndex(unsigned Index)", BeginEmitFunction(OS, "StringRef", "getPatternForIndex(unsigned Index)",
true/*AddOverride*/); true/*AddOverride*/);
OS << "{\n"; OS << "{\n";
OS << "static const char * PATTERN_MATCH_TABLE[] = {\n"; OS << "static const char *PATTERN_MATCH_TABLE[] = {\n";
for (const auto &It : VecPatterns) { for (const auto &It : VecPatterns) {
OS << "\"" << It.first << "\",\n"; OS << "\"" << It.first << "\",\n";
@ -264,7 +264,7 @@ void MatcherTableEmitter::EmitPatternMatchTable(raw_ostream &OS) {
BeginEmitFunction(OS, "StringRef", "getIncludePathForIndex(unsigned Index)", BeginEmitFunction(OS, "StringRef", "getIncludePathForIndex(unsigned Index)",
true/*AddOverride*/); true/*AddOverride*/);
OS << "{\n"; OS << "{\n";
OS << "static const char * INCLUDE_PATH_TABLE[] = {\n"; OS << "static const char *INCLUDE_PATH_TABLE[] = {\n";
for (const auto &It : VecIncludeStrings) { for (const auto &It : VecIncludeStrings) {
OS << "\"" << It << "\",\n"; OS << "\"" << It << "\",\n";
@ -844,7 +844,7 @@ void MatcherTableEmitter::EmitNodePredicatesFunction(
TreePredicateFn PredFn = Preds[i]; TreePredicateFn PredFn = Preds[i];
assert(!PredFn.isAlwaysTrue() && "No code in this predicate"); assert(!PredFn.isAlwaysTrue() && "No code in this predicate");
OS << " case " << i << ": { \n"; OS << " case " << i << ": {\n";
for (auto *SimilarPred : for (auto *SimilarPred :
NodePredicatesByCodeToRun[PredFn.getCodeToRunOnSDNode()]) NodePredicatesByCodeToRun[PredFn.getCodeToRunOnSDNode()])
OS << " // " << TreePredicateFn(SimilarPred).getFnName() <<'\n'; OS << " // " << TreePredicateFn(SimilarPred).getFnName() <<'\n';
@ -887,7 +887,7 @@ void MatcherTableEmitter::EmitPredicateFunctions(raw_ostream &OS) {
BeginEmitFunction(OS, "bool", BeginEmitFunction(OS, "bool",
"CheckComplexPattern(SDNode *Root, SDNode *Parent,\n" "CheckComplexPattern(SDNode *Root, SDNode *Parent,\n"
" SDValue N, unsigned PatternNo,\n" " SDValue N, unsigned PatternNo,\n"
" SmallVectorImpl<std::pair<SDValue, SDNode*>> &Result)", " SmallVectorImpl<std::pair<SDValue, SDNode *>> &Result)",
true/*AddOverride*/); true/*AddOverride*/);
OS << "{\n"; OS << "{\n";
OS << " unsigned NextRes = Result.size();\n"; OS << " unsigned NextRes = Result.size();\n";

View File

@ -744,7 +744,7 @@ void MatcherGen::EmitResultLeafAsOperand(const TreePatternNode *N,
} }
} }
errs() << "unhandled leaf node: \n"; errs() << "unhandled leaf node:\n";
N->dump(); N->dump();
} }

View File

@ -263,7 +263,7 @@ void DFAPacketizerEmitter::emitForItineraries(
OS << " " << ProcModelStartIdx[Model] << ", // " << Model->ModelName OS << " " << ProcModelStartIdx[Model] << ", // " << Model->ModelName
<< "\n"; << "\n";
} }
OS << ScheduleClasses.size() << "\n};\n\n"; OS << " " << ScheduleClasses.size() << "\n};\n\n";
// The type of a state in the nondeterministic automaton we're defining. // The type of a state in the nondeterministic automaton we're defining.
using NfaStateTy = uint64_t; using NfaStateTy = uint64_t;

View File

@ -144,7 +144,7 @@ void ExegesisEmitter::emitPfmCountersInfo(const Record &Def,
void ExegesisEmitter::emitPfmCounters(raw_ostream &OS) const { void ExegesisEmitter::emitPfmCounters(raw_ostream &OS) const {
// Emit the counter name table. // Emit the counter name table.
OS << "\nstatic const char* " << Target << "PfmCounterNames[] = {\n"; OS << "\nstatic const char *" << Target << "PfmCounterNames[] = {\n";
for (const auto &NameAndIndex : PfmCounterNameTable) for (const auto &NameAndIndex : PfmCounterNameTable)
OS << " \"" << NameAndIndex.first << "\", // " << NameAndIndex.second OS << " \"" << NameAndIndex.first << "\", // " << NameAndIndex.second
<< "\n"; << "\n";

View File

@ -941,7 +941,7 @@ emitPredicateFunction(formatted_raw_ostream &OS, PredicateSet &Predicates,
// The predicate function is just a big switch statement based on the // The predicate function is just a big switch statement based on the
// input predicate index. // input predicate index.
OS.indent(Indentation) << "static bool checkDecoderPredicate(unsigned Idx, " OS.indent(Indentation) << "static bool checkDecoderPredicate(unsigned Idx, "
<< "const FeatureBitset& Bits) {\n"; << "const FeatureBitset &Bits) {\n";
Indentation += 2; Indentation += 2;
if (!Predicates.empty()) { if (!Predicates.empty()) {
OS.indent(Indentation) << "switch (Idx) {\n"; OS.indent(Indentation) << "switch (Idx) {\n";
@ -965,7 +965,7 @@ emitDecoderFunction(formatted_raw_ostream &OS, DecoderSet &Decoders,
unsigned Indentation) const { unsigned Indentation) const {
// The decoder function is just a big switch statement based on the // The decoder function is just a big switch statement based on the
// input decoder index. // input decoder index.
OS.indent(Indentation) << "template<typename InsnType>\n"; OS.indent(Indentation) << "template <typename InsnType>\n";
OS.indent(Indentation) << "static DecodeStatus decodeToMCInst(DecodeStatus S," OS.indent(Indentation) << "static DecodeStatus decodeToMCInst(DecodeStatus S,"
<< " unsigned Idx, InsnType insn, MCInst &MI,\n"; << " unsigned Idx, InsnType insn, MCInst &MI,\n";
OS.indent(Indentation) << " uint64_t " OS.indent(Indentation) << " uint64_t "
@ -2162,7 +2162,7 @@ static void emitFieldFromInstruction(formatted_raw_ostream &OS) {
<< "// * Support shift (<<, >>) with signed and unsigned integers on the " << "// * Support shift (<<, >>) with signed and unsigned integers on the "
"RHS\n" "RHS\n"
<< "// * Support put (<<) to raw_ostream&\n" << "// * Support put (<<) to raw_ostream&\n"
<< "template<typename InsnType>\n" << "template <typename InsnType>\n"
<< "#if defined(_MSC_VER) && !defined(__clang__)\n" << "#if defined(_MSC_VER) && !defined(__clang__)\n"
<< "__declspec(noinline)\n" << "__declspec(noinline)\n"
<< "#endif\n" << "#endif\n"
@ -2182,7 +2182,7 @@ static void emitFieldFromInstruction(formatted_raw_ostream &OS) {
<< " return (insn & fieldMask) >> startBit;\n" << " return (insn & fieldMask) >> startBit;\n"
<< "}\n" << "}\n"
<< "\n" << "\n"
<< "template<typename InsnType>\n" << "template <typename InsnType>\n"
<< "static InsnType fieldFromInstruction(InsnType insn, unsigned " << "static InsnType fieldFromInstruction(InsnType insn, unsigned "
"startBit,\n" "startBit,\n"
<< " unsigned numBits, " << " unsigned numBits, "
@ -2193,7 +2193,7 @@ static void emitFieldFromInstruction(formatted_raw_ostream &OS) {
<< " return (insn >> startBit) & fieldMask;\n" << " return (insn >> startBit) & fieldMask;\n"
<< "}\n" << "}\n"
<< "\n" << "\n"
<< "template<typename InsnType>\n" << "template <typename InsnType>\n"
<< "static InsnType fieldFromInstruction(InsnType insn, unsigned " << "static InsnType fieldFromInstruction(InsnType insn, unsigned "
"startBit,\n" "startBit,\n"
<< " unsigned numBits) {\n" << " unsigned numBits) {\n"
@ -2205,14 +2205,14 @@ static void emitFieldFromInstruction(formatted_raw_ostream &OS) {
// emitDecodeInstruction - Emit the templated helper function // emitDecodeInstruction - Emit the templated helper function
// decodeInstruction(). // decodeInstruction().
static void emitDecodeInstruction(formatted_raw_ostream &OS) { static void emitDecodeInstruction(formatted_raw_ostream &OS) {
OS << "template<typename InsnType>\n" OS << "template <typename InsnType>\n"
<< "static DecodeStatus decodeInstruction(const uint8_t DecodeTable[], " << "static DecodeStatus decodeInstruction(const uint8_t DecodeTable[], "
"MCInst &MI,\n" "MCInst &MI,\n"
<< " InsnType insn, uint64_t " << " InsnType insn, uint64_t "
"Address,\n" "Address,\n"
<< " const void *DisAsm,\n" << " const void *DisAsm,\n"
<< " const MCSubtargetInfo &STI) {\n" << " const MCSubtargetInfo &STI) {\n"
<< " const FeatureBitset& Bits = STI.getFeatureBits();\n" << " const FeatureBitset &Bits = STI.getFeatureBits();\n"
<< "\n" << "\n"
<< " const uint8_t *Ptr = DecodeTable;\n" << " const uint8_t *Ptr = DecodeTable;\n"
<< " InsnType CurFieldValue = 0;\n" << " InsnType CurFieldValue = 0;\n"
@ -2374,7 +2374,7 @@ static void emitDecodeInstruction(formatted_raw_ostream &OS) {
<< " if (Fail)\n" << " if (Fail)\n"
<< " S = MCDisassembler::SoftFail;\n" << " S = MCDisassembler::SoftFail;\n"
<< " LLVM_DEBUG(dbgs() << Loc << \": OPC_SoftFail: \" << (Fail ? " << " LLVM_DEBUG(dbgs() << Loc << \": OPC_SoftFail: \" << (Fail ? "
"\"FAIL\\n\":\"PASS\\n\"));\n" "\"FAIL\\n\" : \"PASS\\n\"));\n"
<< " break;\n" << " break;\n"
<< " }\n" << " }\n"
<< " case MCD::OPC_Fail: {\n" << " case MCD::OPC_Fail: {\n"
@ -2392,8 +2392,8 @@ static void emitDecodeInstruction(formatted_raw_ostream &OS) {
void FixedLenDecoderEmitter::run(raw_ostream &o) { void FixedLenDecoderEmitter::run(raw_ostream &o) {
formatted_raw_ostream OS(o); formatted_raw_ostream OS(o);
OS << "#include \"llvm/MC/MCInst.h\"\n"; OS << "#include \"llvm/MC/MCInst.h\"\n";
OS << "#include \"llvm/Support/Debug.h\"\n";
OS << "#include \"llvm/Support/DataTypes.h\"\n"; OS << "#include \"llvm/Support/DataTypes.h\"\n";
OS << "#include \"llvm/Support/Debug.h\"\n";
OS << "#include \"llvm/Support/LEB128.h\"\n"; OS << "#include \"llvm/Support/LEB128.h\"\n";
OS << "#include \"llvm/Support/raw_ostream.h\"\n"; OS << "#include \"llvm/Support/raw_ostream.h\"\n";
OS << "#include <assert.h>\n"; OS << "#include <assert.h>\n";

View File

@ -906,7 +906,6 @@ void GICombinerEmitter::run(raw_ostream &OS) {
<< " bool isRuleDisabled(unsigned ID) const;\n" << " bool isRuleDisabled(unsigned ID) const;\n"
<< " bool setRuleEnabled(StringRef RuleIdentifier);\n" << " bool setRuleEnabled(StringRef RuleIdentifier);\n"
<< " bool setRuleDisabled(StringRef RuleIdentifier);\n" << " bool setRuleDisabled(StringRef RuleIdentifier);\n"
<< "\n"
<< "};\n" << "};\n"
<< "\n" << "\n"
<< "class " << getClassName(); << "class " << getClassName();
@ -914,10 +913,10 @@ void GICombinerEmitter::run(raw_ostream &OS) {
if (!StateClass.empty()) if (!StateClass.empty())
OS << " : public " << StateClass; OS << " : public " << StateClass;
OS << " {\n" OS << " {\n"
<< " const " << getClassName() << "RuleConfig *RuleConfig;\n" << " const " << getClassName() << "RuleConfig *RuleConfig;\n"
<< "\n" << "\n"
<< "public:\n" << "public:\n"
<< " template<typename ... Args>" << getClassName() << "(const " << " template <typename... Args>" << getClassName() << "(const "
<< getClassName() << "RuleConfig &RuleConfig, Args &&... args) : "; << getClassName() << "RuleConfig &RuleConfig, Args &&... args) : ";
if (!StateClass.empty()) if (!StateClass.empty())
OS << StateClass << "(std::forward<Args>(args)...), "; OS << StateClass << "(std::forward<Args>(args)...), ";
@ -947,9 +946,9 @@ void GICombinerEmitter::run(raw_ostream &OS) {
<< " if (First >= Last)\n" << " if (First >= Last)\n"
<< " report_fatal_error(\"Beginning of range should be before " << " report_fatal_error(\"Beginning of range should be before "
"end of range\");\n" "end of range\");\n"
<< " return {{ *First, *Last + 1 }};\n" << " return {{*First, *Last + 1}};\n"
<< " } else if (RangePair.first == \"*\") {\n" << " } else if (RangePair.first == \"*\") {\n"
<< " return {{ 0, " << Rules.size() << " }};\n" << " return {{0, " << Rules.size() << "}};\n"
<< " } else {\n" << " } else {\n"
<< " const auto I = getRuleIdxForIdentifier(RangePair.first);\n" << " const auto I = getRuleIdxForIdentifier(RangePair.first);\n"
<< " if (!I.hasValue())\n" << " if (!I.hasValue())\n"
@ -963,7 +962,7 @@ void GICombinerEmitter::run(raw_ostream &OS) {
OS << "bool " << getClassName() << "RuleConfig::setRule" OS << "bool " << getClassName() << "RuleConfig::setRule"
<< (Enabled ? "Enabled" : "Disabled") << "(StringRef RuleIdentifier) {\n" << (Enabled ? "Enabled" : "Disabled") << "(StringRef RuleIdentifier) {\n"
<< " auto MaybeRange = getRuleRangeForIdentifier(RuleIdentifier);\n" << " auto MaybeRange = getRuleRangeForIdentifier(RuleIdentifier);\n"
<< " if(!MaybeRange.hasValue())\n" << " if (!MaybeRange.hasValue())\n"
<< " return false;\n" << " return false;\n"
<< " for (auto I = MaybeRange->first; I < MaybeRange->second; ++I)\n" << " for (auto I = MaybeRange->first; I < MaybeRange->second; ++I)\n"
<< " DisabledRules." << (Enabled ? "reset" : "set") << "(I);\n" << " DisabledRules." << (Enabled ? "reset" : "set") << "(I);\n"
@ -1026,7 +1025,7 @@ void GICombinerEmitter::run(raw_ostream &OS) {
<< " MachineBasicBlock *MBB = MI.getParent();\n" << " MachineBasicBlock *MBB = MI.getParent();\n"
<< " MachineFunction *MF = MBB->getParent();\n" << " MachineFunction *MF = MBB->getParent();\n"
<< " MachineRegisterInfo &MRI = MF->getRegInfo();\n" << " MachineRegisterInfo &MRI = MF->getRegInfo();\n"
<< " SmallVector<MachineInstr *, 8> MIs = { &MI };\n\n" << " SmallVector<MachineInstr *, 8> MIs = {&MI};\n\n"
<< " (void)MBB; (void)MF; (void)MRI; (void)RuleConfig;\n\n"; << " (void)MBB; (void)MF; (void)MRI; (void)RuleConfig;\n\n";
OS << " // Match data\n"; OS << " // Match data\n";

View File

@ -5619,7 +5619,7 @@ void GlobalISelEmitter::run(raw_ostream &OS) {
<< " typedef void(" << Target.getName() << " typedef void(" << Target.getName()
<< "InstructionSelector::*CustomRendererFn)(MachineInstrBuilder &, const " << "InstructionSelector::*CustomRendererFn)(MachineInstrBuilder &, const "
"MachineInstr&, int) " "MachineInstr &, int) "
"const;\n" "const;\n"
<< " const ISelInfoTy<PredicateBitset, ComplexMatcherMemFn, " << " const ISelInfoTy<PredicateBitset, ComplexMatcherMemFn, "
"CustomRendererFn> " "CustomRendererFn> "
@ -5672,7 +5672,7 @@ void GlobalISelEmitter::run(raw_ostream &OS) {
OS << "void " << Target.getName() << "InstructionSelector" OS << "void " << Target.getName() << "InstructionSelector"
"::setupGeneratedPerFunctionState(MachineFunction &MF) {\n" "::setupGeneratedPerFunctionState(MachineFunction &MF) {\n"
" AvailableFunctionFeatures = computeAvailableFunctionFeatures(" " AvailableFunctionFeatures = computeAvailableFunctionFeatures("
"(const " << Target.getName() << "Subtarget*)&MF.getSubtarget(), &MF);\n" "(const " << Target.getName() << "Subtarget *)&MF.getSubtarget(), &MF);\n"
"}\n"; "}\n";
if (Target.getName() == "X86" || Target.getName() == "AArch64") { if (Target.getName() == "X86" || Target.getName() == "AArch64") {
@ -5793,7 +5793,7 @@ void GlobalISelEmitter::run(raw_ostream &OS) {
<< "enum {\n" << "enum {\n"
<< " GICR_Invalid,\n"; << " GICR_Invalid,\n";
for (const auto &Record : CustomRendererFns) for (const auto &Record : CustomRendererFns)
OS << " GICR_" << Record->getValueAsString("RendererFn") << ", \n"; OS << " GICR_" << Record->getValueAsString("RendererFn") << ",\n";
OS << "};\n"; OS << "};\n";
OS << Target.getName() << "InstructionSelector::CustomRendererFn\n" OS << Target.getName() << "InstructionSelector::CustomRendererFn\n"

View File

@ -280,7 +280,7 @@ void InstrInfoEmitter::emitOperandNameMappings(raw_ostream &OS,
for (const auto &Op : Operands) for (const auto &Op : Operands)
OS << " " << Op.first << " = " << Op.second << ",\n"; OS << " " << Op.first << " = " << Op.second << ",\n";
OS << "OPERAND_LAST"; OS << " OPERAND_LAST";
OS << "\n};\n"; OS << "\n};\n";
OS << "} // end namespace OpName\n"; OS << "} // end namespace OpName\n";
OS << "} // end namespace " << Namespace << "\n"; OS << "} // end namespace " << Namespace << "\n";
@ -316,7 +316,7 @@ void InstrInfoEmitter::emitOperandNameMappings(raw_ostream &OS,
OS << " return OperandMap[" << TableIndex++ << "][NamedIdx];\n"; OS << " return OperandMap[" << TableIndex++ << "][NamedIdx];\n";
} }
OS << " default: return -1;\n"; OS << " default: return -1;\n";
OS << " }\n"; OS << " }\n";
} else { } else {
// There are no operands, so no need to emit anything // There are no operands, so no need to emit anything

View File

@ -226,15 +226,15 @@ void PseudoLoweringEmitter::emitLoweringEmitter(raw_ostream &o) {
if (!Expansions.empty()) { if (!Expansions.empty()) {
o << " switch (MI->getOpcode()) {\n" o << " switch (MI->getOpcode()) {\n"
<< " default: return false;\n"; << " default: return false;\n";
for (auto &Expansion : Expansions) { for (auto &Expansion : Expansions) {
CodeGenInstruction &Source = Expansion.Source; CodeGenInstruction &Source = Expansion.Source;
CodeGenInstruction &Dest = Expansion.Dest; CodeGenInstruction &Dest = Expansion.Dest;
o << " case " << Source.Namespace << "::" o << " case " << Source.Namespace << "::"
<< Source.TheDef->getName() << ": {\n" << Source.TheDef->getName() << ": {\n"
<< " MCInst TmpInst;\n" << " MCInst TmpInst;\n"
<< " MCOperand MCOp;\n" << " MCOperand MCOp;\n"
<< " TmpInst.setOpcode(" << Dest.Namespace << "::" << " TmpInst.setOpcode(" << Dest.Namespace << "::"
<< Dest.TheDef->getName() << ");\n"; << Dest.TheDef->getName() << ");\n";
// Copy the operands from the source instruction. // Copy the operands from the source instruction.
@ -243,23 +243,23 @@ void PseudoLoweringEmitter::emitLoweringEmitter(raw_ostream &o) {
// expansion DAG. // expansion DAG.
unsigned MIOpNo = 0; unsigned MIOpNo = 0;
for (const auto &DestOperand : Dest.Operands) { for (const auto &DestOperand : Dest.Operands) {
o << " // Operand: " << DestOperand.Name << "\n"; o << " // Operand: " << DestOperand.Name << "\n";
for (unsigned i = 0, e = DestOperand.MINumOperands; i != e; ++i) { for (unsigned i = 0, e = DestOperand.MINumOperands; i != e; ++i) {
switch (Expansion.OperandMap[MIOpNo + i].Kind) { switch (Expansion.OperandMap[MIOpNo + i].Kind) {
case OpData::Operand: case OpData::Operand:
o << " lowerOperand(MI->getOperand(" o << " lowerOperand(MI->getOperand("
<< Source.Operands[Expansion.OperandMap[MIOpNo].Data << Source.Operands[Expansion.OperandMap[MIOpNo].Data
.Operand].MIOperandNo + i .Operand].MIOperandNo + i
<< "), MCOp);\n" << "), MCOp);\n"
<< " TmpInst.addOperand(MCOp);\n"; << " TmpInst.addOperand(MCOp);\n";
break; break;
case OpData::Imm: case OpData::Imm:
o << " TmpInst.addOperand(MCOperand::createImm(" o << " TmpInst.addOperand(MCOperand::createImm("
<< Expansion.OperandMap[MIOpNo + i].Data.Imm << "));\n"; << Expansion.OperandMap[MIOpNo + i].Data.Imm << "));\n";
break; break;
case OpData::Reg: { case OpData::Reg: {
Record *Reg = Expansion.OperandMap[MIOpNo + i].Data.Reg; Record *Reg = Expansion.OperandMap[MIOpNo + i].Data.Reg;
o << " TmpInst.addOperand(MCOperand::createReg("; o << " TmpInst.addOperand(MCOperand::createReg(";
// "zero_reg" is special. // "zero_reg" is special.
if (Reg->getName() == "zero_reg") if (Reg->getName() == "zero_reg")
o << "0"; o << "0";
@ -275,15 +275,15 @@ void PseudoLoweringEmitter::emitLoweringEmitter(raw_ostream &o) {
} }
if (Dest.Operands.isVariadic) { if (Dest.Operands.isVariadic) {
MIOpNo = Source.Operands.size() + 1; MIOpNo = Source.Operands.size() + 1;
o << " // variable_ops\n"; o << " // variable_ops\n";
o << " for (unsigned i = " << MIOpNo o << " for (unsigned i = " << MIOpNo
<< ", e = MI->getNumOperands(); i != e; ++i)\n" << ", e = MI->getNumOperands(); i != e; ++i)\n"
<< " if (lowerOperand(MI->getOperand(i), MCOp))\n" << " if (lowerOperand(MI->getOperand(i), MCOp))\n"
<< " TmpInst.addOperand(MCOp);\n"; << " TmpInst.addOperand(MCOp);\n";
} }
o << " EmitToStreamer(OutStreamer, TmpInst);\n" o << " EmitToStreamer(OutStreamer, TmpInst);\n"
<< " break;\n" << " break;\n"
<< " }\n"; << " }\n";
} }
o << " }\n return true;"; o << " }\n return true;";
} else } else

View File

@ -37,11 +37,11 @@
// compressing/uncompressing MCInst instructions, plus // compressing/uncompressing MCInst instructions, plus
// some helper functions: // some helper functions:
// //
// bool compressInst(MCInst& OutInst, const MCInst &MI, // bool compressInst(MCInst &OutInst, const MCInst &MI,
// const MCSubtargetInfo &STI, // const MCSubtargetInfo &STI,
// MCContext &Context); // MCContext &Context);
// //
// bool uncompressInst(MCInst& OutInst, const MCInst &MI, // bool uncompressInst(MCInst &OutInst, const MCInst &MI,
// const MCRegisterInfo &MRI, // const MCRegisterInfo &MRI,
// const MCSubtargetInfo &STI); // const MCSubtargetInfo &STI);
// //
@ -610,17 +610,17 @@ void RISCVCompressInstEmitter::emitCompressInstEmitter(raw_ostream &o,
<< "#undef GEN_CHECK_COMPRESS_INSTR\n\n"; << "#undef GEN_CHECK_COMPRESS_INSTR\n\n";
if (EType == EmitterType::Compress) { if (EType == EmitterType::Compress) {
FuncH << "static bool compressInst(MCInst& OutInst,\n"; FuncH << "static bool compressInst(MCInst &OutInst,\n";
FuncH.indent(25) << "const MCInst &MI,\n"; FuncH.indent(25) << "const MCInst &MI,\n";
FuncH.indent(25) << "const MCSubtargetInfo &STI,\n"; FuncH.indent(25) << "const MCSubtargetInfo &STI,\n";
FuncH.indent(25) << "MCContext &Context) {\n"; FuncH.indent(25) << "MCContext &Context) {\n";
} else if (EType == EmitterType::Uncompress){ } else if (EType == EmitterType::Uncompress){
FuncH << "static bool uncompressInst(MCInst& OutInst,\n"; FuncH << "static bool uncompressInst(MCInst &OutInst,\n";
FuncH.indent(27) << "const MCInst &MI,\n"; FuncH.indent(27) << "const MCInst &MI,\n";
FuncH.indent(27) << "const MCRegisterInfo &MRI,\n"; FuncH.indent(27) << "const MCRegisterInfo &MRI,\n";
FuncH.indent(27) << "const MCSubtargetInfo &STI) {\n"; FuncH.indent(27) << "const MCSubtargetInfo &STI) {\n";
} else if (EType == EmitterType::CheckCompress) { } else if (EType == EmitterType::CheckCompress) {
FuncH << "static bool isCompressibleInst(const MachineInstr& MI,\n"; FuncH << "static bool isCompressibleInst(const MachineInstr &MI,\n";
FuncH.indent(27) << "const RISCVSubtarget *Subtarget,\n"; FuncH.indent(27) << "const RISCVSubtarget *Subtarget,\n";
FuncH.indent(27) << "const MCRegisterInfo &MRI,\n"; FuncH.indent(27) << "const MCRegisterInfo &MRI,\n";
FuncH.indent(27) << "const MCSubtargetInfo &STI) {\n"; FuncH.indent(27) << "const MCSubtargetInfo &STI) {\n";
@ -781,7 +781,7 @@ void RISCVCompressInstEmitter::emitCompressInstEmitter(raw_ostream &o,
unsigned Entry = getPredicates(ImmLeafPredicateMap, ImmLeafPredicates, unsigned Entry = getPredicates(ImmLeafPredicateMap, ImmLeafPredicates,
DestOperand.Rec, StringRef("ImmediateCode")); DestOperand.Rec, StringRef("ImmediateCode"));
CondStream.indent(6) << "MI.getOperand(" + std::to_string(OpIdx) + CondStream.indent(6) << "MI.getOperand(" + std::to_string(OpIdx) +
").isImm() && \n"; ").isImm() &&\n";
CondStream.indent(6) << Namespace + "ValidateMachineOperand(" + CondStream.indent(6) << Namespace + "ValidateMachineOperand(" +
"MI.getOperand(" + std::to_string(OpIdx) + "MI.getOperand(" + std::to_string(OpIdx) +
"), Subtarget, " + std::to_string(Entry) + "), Subtarget, " + std::to_string(Entry) +
@ -858,7 +858,7 @@ void RISCVCompressInstEmitter::emitCompressInstEmitter(raw_ostream &o,
<< "ValidateMachineOperand(const MachineOperand &MO,\n" << "ValidateMachineOperand(const MachineOperand &MO,\n"
<< " const RISCVSubtarget *Subtarget,\n" << " const RISCVSubtarget *Subtarget,\n"
<< " unsigned PredicateIndex) {\n" << " unsigned PredicateIndex) {\n"
<< " int64_t Imm = MO.getImm(); \n" << " int64_t Imm = MO.getImm();\n"
<< " switch (PredicateIndex) {\n" << " switch (PredicateIndex) {\n"
<< " default:\n" << " default:\n"
<< " llvm_unreachable(\"Unknown ImmLeaf Predicate kind\");\n" << " llvm_unreachable(\"Unknown ImmLeaf Predicate kind\");\n"

View File

@ -133,7 +133,7 @@ void RegisterBankEmitter::emitHeader(raw_ostream &OS,
<< "namespace " << TargetName << " {\n" << "namespace " << TargetName << " {\n"
<< "enum : unsigned {\n"; << "enum : unsigned {\n";
OS << "InvalidRegBankID = ~0u,\n"; OS << " InvalidRegBankID = ~0u,\n";
unsigned ID = 0; unsigned ID = 0;
for (const auto &Bank : Banks) for (const auto &Bank : Banks)
OS << " " << Bank.getEnumeratorName() << " = " << ID++ << ",\n"; OS << " " << Bank.getEnumeratorName() << " = " << ID++ << ",\n";

View File

@ -127,7 +127,7 @@ void RegisterInfoEmitter::runEnums(raw_ostream &OS,
OS << " " << Reg.getName() << " = " << Reg.EnumValue << ",\n"; OS << " " << Reg.getName() << " = " << Reg.EnumValue << ",\n";
assert(Registers.size() == Registers.back().EnumValue && assert(Registers.size() == Registers.back().EnumValue &&
"Register enum value mismatch!"); "Register enum value mismatch!");
OS << " NUM_TARGET_REGS \t// " << Registers.size()+1 << "\n"; OS << " NUM_TARGET_REGS // " << Registers.size()+1 << "\n";
OS << "};\n"; OS << "};\n";
if (!Namespace.empty()) if (!Namespace.empty())
OS << "} // end namespace " << Namespace << "\n"; OS << "} // end namespace " << Namespace << "\n";
@ -146,7 +146,7 @@ void RegisterInfoEmitter::runEnums(raw_ostream &OS,
for (const auto &RC : RegisterClasses) for (const auto &RC : RegisterClasses)
OS << " " << RC.getName() << "RegClassID" OS << " " << RC.getName() << "RegClassID"
<< " = " << RC.EnumValue << ",\n"; << " = " << RC.EnumValue << ",\n";
OS << "\n };\n"; OS << "\n};\n";
if (!Namespace.empty()) if (!Namespace.empty())
OS << "} // end namespace " << Namespace << "\n\n"; OS << "} // end namespace " << Namespace << "\n\n";
} }
@ -323,7 +323,7 @@ EmitRegUnitPressure(raw_ostream &OS, const CodeGenRegBank &RegBank,
OS << "/// Get the dimensions of register pressure impacted by this " OS << "/// Get the dimensions of register pressure impacted by this "
<< "register class.\n" << "register class.\n"
<< "/// Returns a -1 terminated array of pressure set IDs\n" << "/// Returns a -1 terminated array of pressure set IDs\n"
<< "const int* " << ClassName << "::\n" << "const int *" << ClassName << "::\n"
<< "getRegClassPressureSets(const TargetRegisterClass *RC) const {\n"; << "getRegClassPressureSets(const TargetRegisterClass *RC) const {\n";
OS << " static const " << getMinimalTypeForRange(PSetsSeqs.size() - 1, 32) OS << " static const " << getMinimalTypeForRange(PSetsSeqs.size() - 1, 32)
<< " RCSetStartTable[] = {\n "; << " RCSetStartTable[] = {\n ";
@ -337,7 +337,7 @@ EmitRegUnitPressure(raw_ostream &OS, const CodeGenRegBank &RegBank,
OS << "/// Get the dimensions of register pressure impacted by this " OS << "/// Get the dimensions of register pressure impacted by this "
<< "register unit.\n" << "register unit.\n"
<< "/// Returns a -1 terminated array of pressure set IDs\n" << "/// Returns a -1 terminated array of pressure set IDs\n"
<< "const int* " << ClassName << "::\n" << "const int *" << ClassName << "::\n"
<< "getRegUnitPressureSets(unsigned RegUnit) const {\n" << "getRegUnitPressureSets(unsigned RegUnit) const {\n"
<< " assert(RegUnit < " << RegBank.getNumNativeRegUnits() << " assert(RegUnit < " << RegBank.getNumNativeRegUnits()
<< " && \"invalid register unit\");\n"; << " && \"invalid register unit\");\n";
@ -1167,7 +1167,7 @@ RegisterInfoEmitter::runTargetHeader(raw_ostream &OS, CodeGenTarget &Target,
<< " LaneBitmask reverseComposeSubRegIndexLaneMaskImpl" << " LaneBitmask reverseComposeSubRegIndexLaneMaskImpl"
<< "(unsigned, LaneBitmask) const override;\n" << "(unsigned, LaneBitmask) const override;\n"
<< " const TargetRegisterClass *getSubClassWithSubReg" << " const TargetRegisterClass *getSubClassWithSubReg"
<< "(const TargetRegisterClass*, unsigned) const override;\n"; << "(const TargetRegisterClass *, unsigned) const override;\n";
} }
OS << " const RegClassWeight &getRegClassWeight(" OS << " const RegClassWeight &getRegClassWeight("
<< "const TargetRegisterClass *RC) const override;\n" << "const TargetRegisterClass *RC) const override;\n"
@ -1436,7 +1436,7 @@ RegisterInfoEmitter::runTargetDesc(raw_ostream &OS, CodeGenTarget &Target,
} }
OS << "\nnamespace {\n"; OS << "\nnamespace {\n";
OS << " const TargetRegisterClass* const RegisterClasses[] = {\n"; OS << " const TargetRegisterClass *const RegisterClasses[] = {\n";
for (const auto &RC : RegisterClasses) for (const auto &RC : RegisterClasses)
OS << " &" << RC.getQualifiedName() << "RegClass,\n"; OS << " &" << RC.getQualifiedName() << "RegClass,\n";
OS << " };\n"; OS << " };\n";

View File

@ -416,7 +416,7 @@ void SearchableTableEmitter::emitLookupFunction(const GenericTable &Table,
<< " " << Field.Name << ";\n"; << " " << Field.Name << ";\n";
} }
OS << " };\n"; OS << " };\n";
OS << " KeyType Key = { "; OS << " KeyType Key = {";
bool NeedComma = false; bool NeedComma = false;
for (const auto &Field : Index.Fields) { for (const auto &Field : Index.Fields) {
if (NeedComma) if (NeedComma)
@ -434,7 +434,7 @@ void SearchableTableEmitter::emitLookupFunction(const GenericTable &Table,
Field.Name + "'"); Field.Name + "'");
} }
} }
OS << " };\n"; OS << "};\n";
OS << " auto Table = makeArrayRef(" << IndexName << ");\n"; OS << " auto Table = makeArrayRef(" << IndexName << ");\n";
OS << " auto Idx = std::lower_bound(Table.begin(), Table.end(), Key,\n"; OS << " auto Idx = std::lower_bound(Table.begin(), Table.end(), Key,\n";

View File

@ -1709,7 +1709,7 @@ void SubtargetEmitter::ParseFeaturesFunction(raw_ostream &OS,
} }
OS << " InitMCProcessorInfo(CPU, TuneCPU, FS);\n" OS << " InitMCProcessorInfo(CPU, TuneCPU, FS);\n"
<< " const FeatureBitset& Bits = getFeatureBits();\n"; << " const FeatureBitset &Bits = getFeatureBits();\n";
for (Record *R : Features) { for (Record *R : Features) {
// Next record // Next record
@ -1755,7 +1755,7 @@ void SubtargetEmitter::emitGenMCSubtargetInfo(raw_ostream &OS) {
<< " const MCInst *MI, const MCInstrInfo *MCII,\n" << " const MCInst *MI, const MCInstrInfo *MCII,\n"
<< " unsigned CPUID) const override {\n" << " unsigned CPUID) const override {\n"
<< " return " << Target << "_MC" << " return " << Target << "_MC"
<< "::resolveVariantSchedClassImpl(SchedClass, MI, MCII, CPUID); \n"; << "::resolveVariantSchedClassImpl(SchedClass, MI, MCII, CPUID);\n";
OS << " }\n"; OS << " }\n";
if (TGT.getHwModes().getNumModeIds() > 1) if (TGT.getHwModes().getNumModeIds() > 1)
OS << " unsigned getHwMode() const override;\n"; OS << " unsigned getHwMode() const override;\n";

View File

@ -112,7 +112,7 @@ void SubtargetFeatureInfo::emitComputeAssemblerAvailableFeatures(
StringRef TargetName, StringRef ClassName, StringRef FuncName, StringRef TargetName, StringRef ClassName, StringRef FuncName,
SubtargetFeatureInfoMap &SubtargetFeatures, raw_ostream &OS) { SubtargetFeatureInfoMap &SubtargetFeatures, raw_ostream &OS) {
OS << "FeatureBitset " << TargetName << ClassName << "::\n" OS << "FeatureBitset " << TargetName << ClassName << "::\n"
<< FuncName << "(const FeatureBitset& FB) const {\n"; << FuncName << "(const FeatureBitset &FB) const {\n";
OS << " FeatureBitset Features;\n"; OS << " FeatureBitset Features;\n";
for (const auto &SF : SubtargetFeatures) { for (const auto &SF : SubtargetFeatures) {
const SubtargetFeatureInfo &SFI = SF.second; const SubtargetFeatureInfo &SFI = SF.second;