summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/AMDGPU/SISchedule.td
diff options
context:
space:
mode:
authorMatthias Braun <matze@braunis.de>2016-03-01 20:03:21 +0000
committerMatthias Braun <matze@braunis.de>2016-03-01 20:03:21 +0000
commit17cb57995eb9535c30cdff864b6157a34d1f5143 (patch)
treeb3f0a74bf54273a3ceba97c71bec0daaa24cdd5f /llvm/lib/Target/AMDGPU/SISchedule.td
parent8e0a734fc5ee45e2dc8926c58b6ed68fd57500ea (diff)
downloadbcm5719-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/AMDGPU/SISchedule.td')
-rw-r--r--llvm/lib/Target/AMDGPU/SISchedule.td8
1 files changed, 6 insertions, 2 deletions
diff --git a/llvm/lib/Target/AMDGPU/SISchedule.td b/llvm/lib/Target/AMDGPU/SISchedule.td
index cd77e519abb..40b37c4593b 100644
--- a/llvm/lib/Target/AMDGPU/SISchedule.td
+++ b/llvm/lib/Target/AMDGPU/SISchedule.td
@@ -39,8 +39,12 @@ def Write64Bit : SchedWrite;
// instructions and have VALU rates, but write to the SALU (i.e. VOPC
// instructions)
-def SIFullSpeedModel : SchedMachineModel;
-def SIQuarterSpeedModel : SchedMachineModel;
+def SIFullSpeedModel : SchedMachineModel {
+ let CompleteModel = 0;
+}
+def SIQuarterSpeedModel : SchedMachineModel {
+ let CompleteModel = 0;
+}
// BufferSize = 0 means the processors are in-order.
let BufferSize = 0 in {
OpenPOWER on IntegriCloud