mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-07-17 18:24:34 +00:00
Fix tablegen's PrintFatalError function to run registered file
cleanups. Also, change code in tablegen which printed a message and then called "exit(1)" to use PrintFatalError, instead. This fixes instances where an empty output file was left behind after a failed tablegen invocation, which would confuse subsequent ninja runs into not attempting to rebuild. Differential Revision: http://reviews.llvm.org/D9608 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@237058 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -913,8 +913,7 @@ SDTypeConstraint::SDTypeConstraint(Record *R) {
|
||||
x.SDTCisSameNumEltsAs_Info.OtherOperandNum =
|
||||
R->getValueAsInt("OtherOperandNum");
|
||||
} else {
|
||||
errs() << "Unrecognized SDTypeConstraint '" << R->getName() << "'!\n";
|
||||
exit(1);
|
||||
PrintFatalError("Unrecognized SDTypeConstraint '" + R->getName() + "'!\n");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -932,11 +931,12 @@ static TreePatternNode *getOperandNum(unsigned OpNo, TreePatternNode *N,
|
||||
OpNo -= NumResults;
|
||||
|
||||
if (OpNo >= N->getNumChildren()) {
|
||||
errs() << "Invalid operand number in type constraint "
|
||||
std::string S;
|
||||
raw_string_ostream OS(S);
|
||||
OS << "Invalid operand number in type constraint "
|
||||
<< (OpNo+NumResults) << " ";
|
||||
N->dump();
|
||||
errs() << '\n';
|
||||
exit(1);
|
||||
N->print(OS);
|
||||
PrintFatalError(OS.str());
|
||||
}
|
||||
|
||||
return N->getChild(OpNo);
|
||||
@@ -1116,9 +1116,9 @@ SDNodeInfo::SDNodeInfo(Record *R) : Def(R) {
|
||||
} else if (PropList[i]->getName() == "SDNPVariadic") {
|
||||
Properties |= 1 << SDNPVariadic;
|
||||
} else {
|
||||
errs() << "Unknown SD Node property '" << PropList[i]->getName()
|
||||
<< "' on node '" << R->getName() << "'!\n";
|
||||
exit(1);
|
||||
PrintFatalError("Unknown SD Node property '" +
|
||||
PropList[i]->getName() + "' on node '" +
|
||||
R->getName() + "'!");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1223,8 +1223,7 @@ static unsigned GetNumNodeResults(Record *Operator, CodeGenDAGPatterns &CDP) {
|
||||
return 1;
|
||||
|
||||
Operator->dump();
|
||||
errs() << "Unhandled node in GetNumNodeResults\n";
|
||||
exit(1);
|
||||
PrintFatalError("Unhandled node in GetNumNodeResults");
|
||||
}
|
||||
|
||||
void TreePatternNode::print(raw_ostream &OS) const {
|
||||
@@ -2373,10 +2372,9 @@ CodeGenDAGPatterns::CodeGenDAGPatterns(RecordKeeper &R) :
|
||||
|
||||
Record *CodeGenDAGPatterns::getSDNodeNamed(const std::string &Name) const {
|
||||
Record *N = Records.getDef(Name);
|
||||
if (!N || !N->isSubClassOf("SDNode")) {
|
||||
errs() << "Error getting SDNode '" << Name << "'!\n";
|
||||
exit(1);
|
||||
}
|
||||
if (!N || !N->isSubClassOf("SDNode"))
|
||||
PrintFatalError("Error getting SDNode '" + Name + "'!");
|
||||
|
||||
return N;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user