diff options
| author | Matthias Braun <matze@braunis.de> | 2016-03-01 20:03:21 +0000 |
|---|---|---|
| committer | Matthias Braun <matze@braunis.de> | 2016-03-01 20:03:21 +0000 |
| commit | 17cb57995eb9535c30cdff864b6157a34d1f5143 (patch) | |
| tree | b3f0a74bf54273a3ceba97c71bec0daaa24cdd5f /llvm/lib/Target/X86 | |
| parent | 8e0a734fc5ee45e2dc8926c58b6ed68fd57500ea (diff) | |
| download | bcm5719-llvm-17cb57995eb9535c30cdff864b6157a34d1f5143.tar.gz bcm5719-llvm-17cb57995eb9535c30cdff864b6157a34d1f5143.zip | |
TableGen: Check scheduling models for completeness
TableGen checks at compiletime that for scheduling models with
"CompleteModel = 1" one of the following holds:
- Is marked with the hasNoSchedulingInfo flag
- The instruction is a subclass of Sched
- There are InstRW definitions in the scheduling model
Typical steps necessary to complete a model:
- Ensure all pseudo instructions that are expanded before machine
scheduling (usually everything handled with EmitYYY() functions in
XXXTargetLowering).
- If a CPU does not support some instructions mark the corresponding
resource unsupported: "WriteRes<WriteXXX, []> { let Unsupported = 1; }".
- Add missing scheduling information.
Differential Revision: http://reviews.llvm.org/D17747
llvm-svn: 262384
Diffstat (limited to 'llvm/lib/Target/X86')
| -rw-r--r-- | llvm/lib/Target/X86/X86Schedule.td | 1 | ||||
| -rw-r--r-- | llvm/lib/Target/X86/X86ScheduleAtom.td | 1 |
2 files changed, 2 insertions, 0 deletions
diff --git a/llvm/lib/Target/X86/X86Schedule.td b/llvm/lib/Target/X86/X86Schedule.td index a261356afe6..46c88c4fcbb 100644 --- a/llvm/lib/Target/X86/X86Schedule.td +++ b/llvm/lib/Target/X86/X86Schedule.td @@ -640,6 +640,7 @@ def GenericModel : SchedMachineModel { let LoadLatency = 4; let HighLatency = 10; let PostRAScheduler = 0; + let CompleteModel = 0; } include "X86ScheduleAtom.td" diff --git a/llvm/lib/Target/X86/X86ScheduleAtom.td b/llvm/lib/Target/X86/X86ScheduleAtom.td index 4c559c9c179..a5b440182aa 100644 --- a/llvm/lib/Target/X86/X86ScheduleAtom.td +++ b/llvm/lib/Target/X86/X86ScheduleAtom.td @@ -544,6 +544,7 @@ def AtomModel : SchedMachineModel { // simple loops, expand by a small factor to hide the backedge cost. let LoopMicroOpBufferSize = 10; let PostRAScheduler = 1; + let CompleteModel = 0; let Itineraries = AtomItineraries; } |

