diff options
| author | Matthias Braun <matze@braunis.de> | 2016-03-01 20:03:11 +0000 |
|---|---|---|
| committer | Matthias Braun <matze@braunis.de> | 2016-03-01 20:03:11 +0000 |
| commit | 8e0a734fc5ee45e2dc8926c58b6ed68fd57500ea (patch) | |
| tree | b129d4b80957c403b5c2cab96f6138e36da1fa58 /llvm/utils | |
| parent | 8f1b1f59213fc257c5b4169855e54a7e935d0232 (diff) | |
| download | bcm5719-llvm-8e0a734fc5ee45e2dc8926c58b6ed68fd57500ea.tar.gz bcm5719-llvm-8e0a734fc5ee45e2dc8926c58b6ed68fd57500ea.zip | |
TableGen: Add hasNoSchedulingInfo to instructions
This introduces a new flag that indicates that a specific instruction
will never be present when the MachineScheduler runs and therefore needs
no scheduling information.
This is in preparation for an upcoming commit which checks completeness
of a scheduling model when tablegen runs.
Differential Revision: http://reviews.llvm.org/D17728
llvm-svn: 262383
Diffstat (limited to 'llvm/utils')
| -rw-r--r-- | llvm/utils/TableGen/CodeGenInstruction.cpp | 1 | ||||
| -rw-r--r-- | llvm/utils/TableGen/CodeGenInstruction.h | 1 | ||||
| -rw-r--r-- | llvm/utils/TableGen/CodeGenSchedule.cpp | 3 |
3 files changed, 4 insertions, 1 deletions
diff --git a/llvm/utils/TableGen/CodeGenInstruction.cpp b/llvm/utils/TableGen/CodeGenInstruction.cpp index bd26beb3567..ec802363030 100644 --- a/llvm/utils/TableGen/CodeGenInstruction.cpp +++ b/llvm/utils/TableGen/CodeGenInstruction.cpp @@ -324,6 +324,7 @@ CodeGenInstruction::CodeGenInstruction(Record *R) isExtractSubreg = R->getValueAsBit("isExtractSubreg"); isInsertSubreg = R->getValueAsBit("isInsertSubreg"); isConvergent = R->getValueAsBit("isConvergent"); + hasNoSchedulingInfo = R->getValueAsBit("hasNoSchedulingInfo"); bool Unset; mayLoad = R->getValueAsBitOrUnset("mayLoad", Unset); diff --git a/llvm/utils/TableGen/CodeGenInstruction.h b/llvm/utils/TableGen/CodeGenInstruction.h index 8f01abd5403..bfdc2c62dce 100644 --- a/llvm/utils/TableGen/CodeGenInstruction.h +++ b/llvm/utils/TableGen/CodeGenInstruction.h @@ -257,6 +257,7 @@ namespace llvm { bool isExtractSubreg : 1; bool isInsertSubreg : 1; bool isConvergent : 1; + bool hasNoSchedulingInfo : 1; std::string DeprecatedReason; bool HasComplexDeprecationPredicate; diff --git a/llvm/utils/TableGen/CodeGenSchedule.cpp b/llvm/utils/TableGen/CodeGenSchedule.cpp index ecae859c9dd..0bce99636bc 100644 --- a/llvm/utils/TableGen/CodeGenSchedule.cpp +++ b/llvm/utils/TableGen/CodeGenSchedule.cpp @@ -527,7 +527,8 @@ void CodeGenSchedModels::collectSchedClasses() { std::string InstName = Inst->TheDef->getName(); unsigned SCIdx = InstrClassMap.lookup(Inst->TheDef); if (!SCIdx) { - dbgs() << "No machine model for " << Inst->TheDef->getName() << '\n'; + if (!Inst->hasNoSchedulingInfo) + dbgs() << "No machine model for " << Inst->TheDef->getName() << '\n'; continue; } CodeGenSchedClass &SC = getSchedClass(SCIdx); |

