summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthias Braun <matze@braunis.de>2016-03-03 00:04:59 +0000
committerMatthias Braun <matze@braunis.de>2016-03-03 00:04:59 +0000
commit42d9ad9c5bb35e63037937e9c3b256eb5f220fb6 (patch)
treed0db87826e14d803dcd010ed65d00beae6fe3bf1
parent23d933982a4465dc527c5a9635be6aea13e43e03 (diff)
downloadbcm5719-llvm-42d9ad9c5bb35e63037937e9c3b256eb5f220fb6.tar.gz
bcm5719-llvm-42d9ad9c5bb35e63037937e9c3b256eb5f220fb6.zip
TableGen: Accept itinerary data when checking for schedmodel completeness
llvm-svn: 262548
-rw-r--r--llvm/utils/TableGen/CodeGenSchedule.cpp8
1 files changed, 4 insertions, 4 deletions
diff --git a/llvm/utils/TableGen/CodeGenSchedule.cpp b/llvm/utils/TableGen/CodeGenSchedule.cpp
index 5bd13d43bc2..c52d3b0e9fc 100644
--- a/llvm/utils/TableGen/CodeGenSchedule.cpp
+++ b/llvm/utils/TableGen/CodeGenSchedule.cpp
@@ -1529,9 +1529,6 @@ void CodeGenSchedModels::checkCompleteness() {
bool Complete = true;
bool HadCompleteModel = false;
for (const CodeGenProcModel &ProcModel : procModels()) {
- // Note that long-term we should check "CompleteModel", but for now most
- // models that claim to be complete are actually not so we use a separate
- // "CheckCompleteness" bit.
if (!ProcModel.ModelDef->getValueAsBit("CompleteModel"))
continue;
for (const CodeGenInstruction *Inst : Target.getInstructionsByEnumValue()) {
@@ -1550,11 +1547,14 @@ void CodeGenSchedModels::checkCompleteness() {
const CodeGenSchedClass &SC = getSchedClass(SCIdx);
if (!SC.Writes.empty())
continue;
+ if (SC.ItinClassDef != nullptr)
+ continue;
const RecVec &InstRWs = SC.InstRWs;
auto I = std::find_if(InstRWs.begin(), InstRWs.end(),
[&ProcModel] (const Record *R) {
- return R->getValueAsDef("SchedModel") == ProcModel.ModelDef;
+ return R->getValueAsDef("SchedModel") ==
+ ProcModel.ModelDef;
});
if (I == InstRWs.end()) {
PrintError("'" + ProcModel.ModelName + "' lacks information for '" +
OpenPOWER on IntegriCloud