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/include | |
| 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/include')
| -rw-r--r-- | llvm/include/llvm/Target/Target.td | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/llvm/include/llvm/Target/Target.td b/llvm/include/llvm/Target/Target.td index 562bbfb8a98..654a008f660 100644 --- a/llvm/include/llvm/Target/Target.td +++ b/llvm/include/llvm/Target/Target.td @@ -427,6 +427,11 @@ class Instruction { // Is this instruction a pseudo instruction for use by the assembler parser. bit isAsmParserOnly = 0; + // This instruction is not expected to be queried for scheduling latencies + // and therefore needs no scheduling information even for a complete + // scheduling model. + bit hasNoSchedulingInfo = 0; + InstrItinClass Itinerary = NoItinerary;// Execution steps used for scheduling. // Scheduling information from TargetSchedule.td. @@ -765,7 +770,8 @@ class InstrInfo { // Standard Pseudo Instructions. // This list must match TargetOpcodes.h and CodeGenTarget.cpp. // Only these instructions are allowed in the TargetOpcode namespace. -let isCodeGenOnly = 1, isPseudo = 1, Namespace = "TargetOpcode" in { +let isCodeGenOnly = 1, isPseudo = 1, hasNoSchedulingInfo = 1, + Namespace = "TargetOpcode" in { def PHI : Instruction { let OutOperandList = (outs); let InOperandList = (ins variable_ops); @@ -857,6 +863,7 @@ def COPY : Instruction { let AsmString = ""; let hasSideEffects = 0; let isAsCheapAsAMove = 1; + let hasNoSchedulingInfo = 0; } def BUNDLE : Instruction { let OutOperandList = (outs); |

