diff options
author | Craig Topper <craig.topper@sifive.com> | 2025-04-15 08:41:39 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-04-15 08:41:39 -0700 |
commit | 88b6229dc3f65876b3f627616a024cd5dbcadcb0 (patch) | |
tree | 080b69ac847e1841bec74f77eedb8e861e06bf09 | |
parent | d0e4af8a88dc7a0377677000d0c92104ff215347 (diff) | |
download | llvm-88b6229dc3f65876b3f627616a024cd5dbcadcb0.zip llvm-88b6229dc3f65876b3f627616a024cd5dbcadcb0.tar.gz llvm-88b6229dc3f65876b3f627616a024cd5dbcadcb0.tar.bz2 |
[TableGen] Remove unhelpful error messages from PseudoLoweringEmitter. (#135747)
All of the notes using the location of ResultInst will just print the
location inside of the PseudoInstExpansion class.
There was one note using the location of DI->getDef(), but knowing where
one of the two mismatched types is defined isn't helpful. The operand
types need to be the same, so the mismatch message we already printed
should be enough.
-rw-r--r-- | llvm/utils/TableGen/PseudoLoweringEmitter.cpp | 67 |
1 files changed, 25 insertions, 42 deletions
diff --git a/llvm/utils/TableGen/PseudoLoweringEmitter.cpp b/llvm/utils/TableGen/PseudoLoweringEmitter.cpp index 56b9e49..7f67c13 100644 --- a/llvm/utils/TableGen/PseudoLoweringEmitter.cpp +++ b/llvm/utils/TableGen/PseudoLoweringEmitter.cpp @@ -90,14 +90,12 @@ unsigned PseudoLoweringEmitter::addDagOperandMapping( // problem. // FIXME: We probably shouldn't ever get a non-zero BaseIdx here. assert(BaseIdx == 0 && "Named subargument in pseudo expansion?!"); - if (DI->getDef() != Insn.Operands[BaseIdx + i].Rec) { - PrintError(Rec, "In pseudo instruction '" + Rec->getName() + - "', operand type '" + DI->getDef()->getName() + - "' does not match expansion operand type '" + - Insn.Operands[BaseIdx + i].Rec->getName() + "'"); - PrintFatalNote(DI->getDef(), - "Value was assigned at the following location:"); - } + if (DI->getDef() != Insn.Operands[BaseIdx + i].Rec) + PrintFatalError(Rec, "In pseudo instruction '" + Rec->getName() + + "', operand type '" + DI->getDef()->getName() + + "' does not match expansion operand type '" + + Insn.Operands[BaseIdx + i].Rec->getName() + + "'"); // Source operand maps to destination operand. The Data element // will be filled in later, just set the Kind for now. Do it // for each corresponding MachineInstr operand, not just the first. @@ -138,38 +136,26 @@ void PseudoLoweringEmitter::evaluateExpansion(const Record *Rec) { LLVM_DEBUG(dbgs() << " Result: " << *Dag << "\n"); const DefInit *OpDef = dyn_cast<DefInit>(Dag->getOperator()); - if (!OpDef) { - PrintError(Rec, "In pseudo instruction '" + Rec->getName() + - "', result operator is not a record"); - PrintFatalNote(Rec->getValue("ResultInst"), - "Result was assigned at the following location:"); - } + if (!OpDef) + PrintFatalError(Rec, "In pseudo instruction '" + Rec->getName() + + "', result operator is not a record"); const Record *Operator = OpDef->getDef(); - if (!Operator->isSubClassOf("Instruction")) { - PrintError(Rec, "In pseudo instruction '" + Rec->getName() + - "', result operator '" + Operator->getName() + - "' is not an instruction"); - PrintFatalNote(Rec->getValue("ResultInst"), - "Result was assigned at the following location:"); - } + if (!Operator->isSubClassOf("Instruction")) + PrintFatalError(Rec, "In pseudo instruction '" + Rec->getName() + + "', result operator '" + Operator->getName() + + "' is not an instruction"); CodeGenInstruction Insn(Operator); - if (Insn.isCodeGenOnly || Insn.isPseudo) { - PrintError(Rec, "In pseudo instruction '" + Rec->getName() + - "', result operator '" + Operator->getName() + - "' cannot be a pseudo instruction"); - PrintFatalNote(Rec->getValue("ResultInst"), - "Result was assigned at the following location:"); - } + if (Insn.isCodeGenOnly || Insn.isPseudo) + PrintFatalError(Rec, "In pseudo instruction '" + Rec->getName() + + "', result operator '" + Operator->getName() + + "' cannot be a pseudo instruction"); - if (Insn.Operands.size() != Dag->getNumArgs()) { - PrintError(Rec, "In pseudo instruction '" + Rec->getName() + - "', result operator '" + Operator->getName() + - "' has the wrong number of operands"); - PrintFatalNote(Rec->getValue("ResultInst"), - "Result was assigned at the following location:"); - } + if (Insn.Operands.size() != Dag->getNumArgs()) + PrintFatalError(Rec, "In pseudo instruction '" + Rec->getName() + + "', result operator '" + Operator->getName() + + "' has the wrong number of operands"); unsigned NumMIOperands = 0; for (const auto &Op : Insn.Operands) @@ -202,13 +188,10 @@ void PseudoLoweringEmitter::evaluateExpansion(const Record *Rec) { continue; StringMap<unsigned>::iterator SourceOp = SourceOperands.find(Dag->getArgNameStr(i)); - if (SourceOp == SourceOperands.end()) { - PrintError(Rec, "In pseudo instruction '" + Rec->getName() + - "', output operand '" + Dag->getArgNameStr(i) + - "' has no matching source operand"); - PrintFatalNote(Rec->getValue("ResultInst"), - "Value was assigned at the following location:"); - } + if (SourceOp == SourceOperands.end()) + PrintFatalError(Rec, "In pseudo instruction '" + Rec->getName() + + "', output operand '" + Dag->getArgNameStr(i) + + "' has no matching source operand"); // Map the source operand to the destination operand index for each // MachineInstr operand. for (unsigned I = 0, E = Insn.Operands[i].MINumOperands; I != E; ++I) |