summaryrefslogtreecommitdiff
path: root/utils/TableGen/AsmWriterEmitter.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'utils/TableGen/AsmWriterEmitter.cpp')
-rw-r--r--utils/TableGen/AsmWriterEmitter.cpp24
1 files changed, 13 insertions, 11 deletions
diff --git a/utils/TableGen/AsmWriterEmitter.cpp b/utils/TableGen/AsmWriterEmitter.cpp
index 723c0cd773f7..3c4c9c8e5c6e 100644
--- a/utils/TableGen/AsmWriterEmitter.cpp
+++ b/utils/TableGen/AsmWriterEmitter.cpp
@@ -351,8 +351,8 @@ void AsmWriterEmitter::EmitPrintInstruction(raw_ostream &O) {
// If we don't have enough bits for this operand, don't include it.
if (NumBits > BitsLeft) {
- DEBUG(errs() << "Not enough bits to densely encode " << NumBits
- << " more bits\n");
+ LLVM_DEBUG(errs() << "Not enough bits to densely encode " << NumBits
+ << " more bits\n");
break;
}
@@ -727,10 +727,6 @@ public:
} // end anonymous namespace
static unsigned CountNumOperands(StringRef AsmString, unsigned Variant) {
- std::string FlatAsmString =
- CodeGenInstruction::FlattenAsmStringVariants(AsmString, Variant);
- AsmString = FlatAsmString;
-
return AsmString.count(' ') + AsmString.count('\t');
}
@@ -782,7 +778,7 @@ void AsmWriterEmitter::EmitPrintAliasInstruction(raw_ostream &O) {
const DagInit *DI = R->getValueAsDag("ResultInst");
const DefInit *Op = cast<DefInit>(DI->getOperator());
AliasMap[getQualifiedName(Op->getDef())].insert(
- std::make_pair(CodeGenInstAlias(R, Variant, Target), Priority));
+ std::make_pair(CodeGenInstAlias(R, Target), Priority));
}
// A map of which conditions need to be met for each instruction operand
@@ -799,14 +795,20 @@ void AsmWriterEmitter::EmitPrintAliasInstruction(raw_ostream &O) {
for (auto &Alias : Aliases.second) {
const CodeGenInstAlias &CGA = Alias.first;
unsigned LastOpNo = CGA.ResultInstOperandIndex.size();
- unsigned NumResultOps =
- CountNumOperands(CGA.ResultInst->AsmString, Variant);
+ std::string FlatInstAsmString =
+ CodeGenInstruction::FlattenAsmStringVariants(CGA.ResultInst->AsmString,
+ Variant);
+ unsigned NumResultOps = CountNumOperands(FlatInstAsmString, Variant);
+
+ std::string FlatAliasAsmString =
+ CodeGenInstruction::FlattenAsmStringVariants(CGA.AsmString,
+ Variant);
// Don't emit the alias if it has more operands than what it's aliasing.
- if (NumResultOps < CountNumOperands(CGA.AsmString, Variant))
+ if (NumResultOps < CountNumOperands(FlatAliasAsmString, Variant))
continue;
- IAPrinter IAP(CGA.Result->getAsString(), CGA.AsmString);
+ IAPrinter IAP(CGA.Result->getAsString(), FlatAliasAsmString);
StringRef Namespace = Target.getName();
std::vector<Record *> ReqFeatures;