Fix per-processor model scheduler definition completeness check
authorUlrich Weigand <ulrich.weigand@de.ibm.com>
Mon, 31 Oct 2016 18:59:52 +0000 (18:59 +0000)
committerUlrich Weigand <ulrich.weigand@de.ibm.com>
Mon, 31 Oct 2016 18:59:52 +0000 (18:59 +0000)
The CodeGenSchedModels::checkCompleteness routine in TableGen/
CodeGenSchedule.cpp is supposed to verify for each processor
model that is marked as "complete" that it actually defines a
scheduling class for each instruction.

However, this did not work correctly due to an incorrect
check whether a scheduling class has an itinerary.

Reviewer: atrick
Differential revision: https://reviews.llvm.org/D26156

llvm-svn: 285622

llvm/utils/TableGen/CodeGenSchedule.cpp

index eb7899e..4cc600d 100644 (file)
@@ -1567,7 +1567,8 @@ void CodeGenSchedModels::checkCompleteness() {
       const CodeGenSchedClass &SC = getSchedClass(SCIdx);
       if (!SC.Writes.empty())
         continue;
-      if (SC.ItinClassDef != nullptr)
+      if (SC.ItinClassDef != nullptr &&
+          SC.ItinClassDef->getName() != "NoItinerary")
         continue;
 
       const RecVec &InstRWs = SC.InstRWs;