]> granicus.if.org Git - llvm/commitdiff
[AArch64][SVE] Asm: Set SVE as unsupported feature for existing scheduler models.
authorFlorian Hahn <florian.hahn@arm.com>
Tue, 7 Nov 2017 15:03:11 +0000 (15:03 +0000)
committerFlorian Hahn <florian.hahn@arm.com>
Tue, 7 Nov 2017 15:03:11 +0000 (15:03 +0000)
Patch [4/5] in a series to add assembler/disassembler support for AArch64 SVE unpredicated ADD/SUB instructions.

We add SVE as unsupported feature for CPUs that don't have SVE to prevent errors from scheduler models saying it lacks information for these instructions.

Patch by Sander De Smalen.

Reviewed by: rengolin

Differential Revision: https://reviews.llvm.org/D39090

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@317582 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/AArch64/AArch64SchedA53.td
lib/Target/AArch64/AArch64SchedA57.td
lib/Target/AArch64/AArch64SchedCyclone.td
lib/Target/AArch64/AArch64SchedFalkor.td
lib/Target/AArch64/AArch64SchedKryo.td
lib/Target/AArch64/AArch64SchedM1.td
lib/Target/AArch64/AArch64SchedThunderX.td
lib/Target/AArch64/AArch64SchedThunderX2T99.td

index 18d000ace94c6b9c2e2ef5fbc9fd05b82684a107..90ebd78f4ab9c50c6e10b593a0108e6619673d70 100644 (file)
@@ -26,6 +26,8 @@ def CortexA53Model : SchedMachineModel {
                              // Specification - Instruction Timings"
                              // v 1.0 Spreadsheet
   let CompleteModel = 1;
+
+  list<Predicate> UnsupportedFeatures = [HasSVE];
 }
 
 
index 5d1608ef04afa48702206e3aecb231cf626669f3..ade03f23f8c794c06fd8f6bcef906c073d730fbd 100644 (file)
@@ -31,6 +31,8 @@ def CortexA57Model : SchedMachineModel {
   // experiments and benchmarking data.
   let LoopMicroOpBufferSize = 16;
   let CompleteModel = 1;
+
+  list<Predicate> UnsupportedFeatures = [HasSVE];
 }
 
 //===----------------------------------------------------------------------===//
index 9fd3ae6818e5d5c8b22a39401a8975b0c0e34cbd..7a474ba8ef9bca378103e9bcd9503fd9d738c86e 100644 (file)
@@ -18,6 +18,8 @@ def CycloneModel : SchedMachineModel {
   let LoadLatency = 4; // Optimistic load latency.
   let MispredictPenalty = 16; // 14-19 cycles are typical.
   let CompleteModel = 1;
+
+  list<Predicate> UnsupportedFeatures = [HasSVE];
 }
 
 //===----------------------------------------------------------------------===//
index 44fd94fc3d48518a427b3e1e5231d18023e87d03..7277198b585f40c13e1c8a8d1db1c68767d2aa53 100644 (file)
@@ -23,6 +23,8 @@ def FalkorModel : SchedMachineModel {
   let LoadLatency = 3;         // Optimistic load latency.
   let MispredictPenalty = 11;  // Minimum branch misprediction penalty.
   let CompleteModel = 1;
+
+  list<Predicate> UnsupportedFeatures = [HasSVE];
 }
 
 //===----------------------------------------------------------------------===//
index 4e491a04c78df2e08ac51f9edc8862dbc573f550..ce2afd499afb88b9d92593dbb604f63190ffb750 100644 (file)
@@ -27,6 +27,8 @@ def KryoModel : SchedMachineModel {
   // experiments and benchmarking data.
   let LoopMicroOpBufferSize = 16;
   let CompleteModel = 1;
+
+  list<Predicate> UnsupportedFeatures = [HasSVE];
 }
 
 //===----------------------------------------------------------------------===//
index 6133efed0208cd8ab2477294f30f669c75e99b4e..6c86fcdd29b5854e6b942bbb6ce9a1f35be2fc31 100644 (file)
@@ -24,6 +24,8 @@ def ExynosM1Model : SchedMachineModel {
   let LoadLatency           =  4; // Optimistic load cases.
   let MispredictPenalty     = 14; // Minimum branch misprediction penalty.
   let CompleteModel         =  1; // Use the default model otherwise.
+
+  list<Predicate> UnsupportedFeatures = [HasSVE];
 }
 
 //===----------------------------------------------------------------------===//
index 3cdd2047fbbe605ba0532fb26985f6abb45d4121..585688aae27968eaf6ae768116bb122878df81ac 100644 (file)
@@ -25,6 +25,8 @@ def ThunderXT8XModel : SchedMachineModel {
   let MispredictPenalty = 8;  // Branch mispredict penalty.
   let PostRAScheduler = 1;    // Use PostRA scheduler.
   let CompleteModel = 1;
+
+  list<Predicate> UnsupportedFeatures = [HasSVE];
 }
 
 // Modeling each pipeline with BufferSize == 0 since T8X is in-order.
index 4ab7555594afd45fbf4bd5c751d6483ce2559de0..fd60459382a99f2a92b71b648c7c42e909db22be 100644 (file)
@@ -25,6 +25,8 @@ def ThunderX2T99Model : SchedMachineModel {
   let LoopMicroOpBufferSize =  32;
   let PostRAScheduler       =   1; // Using PostRA sched.
   let CompleteModel         =   1;
+
+  list<Predicate> UnsupportedFeatures = [HasSVE];
 }
 
 // Define the issue ports.