OSDN Git Service

[X86][Btver2] Add ResourceCycles and NumMicroOps overrides to scalar instructions...
authorSimon Pilgrim <llvm-dev@redking.me.uk>
Wed, 14 Mar 2018 21:55:54 +0000 (21:55 +0000)
committerSimon Pilgrim <llvm-dev@redking.me.uk>
Wed, 14 Mar 2018 21:55:54 +0000 (21:55 +0000)
Currently still use default values - this is setup for a future patch.

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

lib/Target/X86/X86ScheduleBtVer2.td

index 5048946..e8987b7 100644 (file)
@@ -76,14 +76,20 @@ def : ReadAdvance<ReadAfterLd, 3>;
 // folded loads.
 multiclass JWriteResIntPair<X86FoldableSchedWrite SchedRW,
                             ProcResourceKind ExePort,
-                            int Lat> {
+                            int Lat, int Res = 1, int UOps = 1> {
   // Register variant is using a single cycle on ExePort.
-  def : WriteRes<SchedRW, [ExePort]> { let Latency = Lat; }
+  def : WriteRes<SchedRW, [ExePort]> {
+    let Latency = Lat;
+    let ResourceCycles = [Res];
+    let NumMicroOps = UOps;
+  }
 
   // Memory variant also uses a cycle on JLAGU and adds 3 cycles to the
   // latency.
   def : WriteRes<SchedRW.Folded, [JLAGU, ExePort]> {
     let Latency = !add(Lat, 3);
+    let ResourceCycles = [1, Res];
+    let NumMicroOps = UOps;
   }
 }