[llvm-mca] Emit the 'Instruction Info' table before the resource pressure view.
authorAndrea Di Biagio <Andrea_DiBiagio@sn.scee.net>
Thu, 8 Mar 2018 15:34:38 +0000 (15:34 +0000)
committerAndrea Di Biagio <Andrea_DiBiagio@sn.scee.net>
Thu, 8 Mar 2018 15:34:38 +0000 (15:34 +0000)
In future, both the summary information and the 'instruction info' table should
be moved into a separate "Summary" view.

llvm-svn: 327010

llvm/test/tools/llvm-mca/ARM/simple-test-cortex-a9.s
llvm/test/tools/llvm-mca/X86/BtVer2/dot-product.s
llvm/test/tools/llvm-mca/X86/BtVer2/load-store-alias.s
llvm/test/tools/llvm-mca/X86/BtVer2/memcpy-like-test.s
llvm/test/tools/llvm-mca/X86/BtVer2/simple-test.s
llvm/tools/llvm-mca/BackendPrinter.cpp

index 683df6e..fe734e3 100644 (file)
@@ -8,6 +8,18 @@ vadd.f32 s0, s2, s2
 # CHECK-NEXT: Dispatch Width: 2
 # CHECK-NEXT: IPC:            0.95
 
+# CHECK: Instruction Info:
+# CHECK-NEXT: [1]: #uOps
+# CHECK-NEXT: [2]: Latency
+# CHECK-NEXT: [3]: RThroughput
+# CHECK-NEXT: [4]: MayLoad
+# CHECK-NEXT: [5]: MayStore
+# CHECK-NEXT: [6]: HasSideEffects
+
+# CHECK: [1]    [2]    [3]    [4]    [5]    [6]        Instructions:
+# CHECK-NEXT:  1      4     1.00                       vadd.f32        s0, s2, s2
+
+
 # CHECK: Resources:
 # CHECK-NEXT: [0] - A9UnitAGU
 # CHECK-NEXT: [1.0] - A9UnitALU
@@ -24,14 +36,3 @@ vadd.f32 s0, s2, s2
 # CHECK: Resource pressure by instruction:
 # CHECK-NEXT: [0]    [1.0]  [1.1]  [2]    [3]    [4]    [5]            Instructions:
 # CHECK-NEXT: 1.00    -      -      -     1.00    -      -             vadd.f32        s0, s2, s2
-
-# CHECK: Instruction Info:
-# CHECK-NEXT: [1]: #uOps
-# CHECK-NEXT: [2]: Latency
-# CHECK-NEXT: [3]: RThroughput
-# CHECK-NEXT: [4]: MayLoad
-# CHECK-NEXT: [5]: MayStore
-# CHECK-NEXT: [6]: HasSideEffects
-
-# CHECK: [1]    [2]    [3]    [4]    [5]    [6]        Instructions:
-# CHECK-NEXT:  1      4     1.00                       vadd.f32        s0, s2, s2
index 5fc173c..739a76b 100644 (file)
@@ -10,6 +10,21 @@ vhaddps  %xmm3, %xmm3, %xmm4
 # CHECK-NEXT: Dispatch Width: 2
 # CHECK-NEXT: IPC:            1.48
 
+
+# CHECK:      Instruction Info:
+# CHECK-NEXT: [1]: #uOps
+# CHECK-NEXT: [2]: Latency
+# CHECK-NEXT: [3]: RThroughput
+# CHECK-NEXT: [4]: MayLoad
+# CHECK-NEXT: [5]: MayStore
+# CHECK-NEXT: [6]: HasSideEffects
+
+# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]   Instructions:
+# CHECK-NEXT:  1      2     1.00                       vmulps  %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      3     1.00                       vhaddps %xmm2, %xmm2, %xmm3
+# CHECK-NEXT:  1      3     1.00                       vhaddps %xmm3, %xmm3, %xmm4
+
+
 # CHECK:      Resources:
 # CHECK-NEXT: [0] - JALU0
 # CHECK-NEXT: [1] - JALU1
@@ -36,19 +51,6 @@ vhaddps  %xmm3, %xmm3, %xmm4
 # CHECK-NEXT:  -      -      -      -      -     1.00    -      -      -      -      -      -      -      -            vhaddps %xmm2, %xmm2, %xmm3
 # CHECK-NEXT:  -      -      -      -      -     1.00    -      -      -      -      -      -      -      -            vhaddps %xmm3, %xmm3, %xmm4
 
-# CHECK:      Instruction Info:
-# CHECK-NEXT: [1]: #uOps
-# CHECK-NEXT: [2]: Latency
-# CHECK-NEXT: [3]: RThroughput
-# CHECK-NEXT: [4]: MayLoad
-# CHECK-NEXT: [5]: MayStore
-# CHECK-NEXT: [6]: HasSideEffects
-
-# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]   Instructions:
-# CHECK-NEXT:  1      2     1.00                       vmulps  %xmm0, %xmm1, %xmm2
-# CHECK-NEXT:  1      3     1.00                       vhaddps %xmm2, %xmm2, %xmm3
-# CHECK-NEXT:  1      3     1.00                       vhaddps %xmm3, %xmm3, %xmm4
-
 
 # CHECK:      Timeline view:
 # CHECK-NEXT:                    012345
index cdac2fc..0aecff0 100644 (file)
@@ -16,6 +16,25 @@ vmovaps %xmm0, 48(%rdi)
 # CHECK-NEXT: IPC:            0.33
 
 
+# CHECK: Instruction Info:
+# CHECK-NEXT: [1]: #uOps
+# CHECK-NEXT: [2]: Latency
+# CHECK-NEXT: [3]: RThroughput
+# CHECK-NEXT: [4]: MayLoad
+# CHECK-NEXT: [5]: MayStore
+# CHECK-NEXT: [6]: HasSideEffects
+
+# CHECK:     [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
+# CHECK-NEXT: 1      5     1.00    *                   vmovaps (%rsi), %xmm0
+# CHECK-NEXT: 1      1     1.00           *            vmovaps %xmm0, (%rdi)
+# CHECK-NEXT: 1      5     1.00    *                   vmovaps 16(%rsi), %xmm0
+# CHECK-NEXT: 1      1     1.00           *            vmovaps %xmm0, 16(%rdi)
+# CHECK-NEXT: 1      5     1.00    *                   vmovaps 32(%rsi), %xmm0
+# CHECK-NEXT: 1      1     1.00           *            vmovaps %xmm0, 32(%rdi)
+# CHECK-NEXT: 1      5     1.00    *                   vmovaps 48(%rsi), %xmm0
+# CHECK-NEXT: 1      1     1.00           *            vmovaps %xmm0, 48(%rdi)
+
+
 # CHECK: Resources:
 # CHECK-NEXT: [0] - JALU0
 # CHECK-NEXT: [1] - JALU1
@@ -49,24 +68,6 @@ vmovaps %xmm0, 48(%rdi)
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -            vmovaps %xmm0, 48(%rdi)
 
 
-# CHECK: Instruction Info:
-# CHECK-NEXT: [1]: #uOps
-# CHECK-NEXT: [2]: Latency
-# CHECK-NEXT: [3]: RThroughput
-# CHECK-NEXT: [4]: MayLoad
-# CHECK-NEXT: [5]: MayStore
-# CHECK-NEXT: [6]: HasSideEffects
-
-# CHECK:     [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
-# CHECK-NEXT: 1      5     1.00    *                   vmovaps (%rsi), %xmm0
-# CHECK-NEXT: 1      1     1.00           *            vmovaps %xmm0, (%rdi)
-# CHECK-NEXT: 1      5     1.00    *                   vmovaps 16(%rsi), %xmm0
-# CHECK-NEXT: 1      1     1.00           *            vmovaps %xmm0, 16(%rdi)
-# CHECK-NEXT: 1      5     1.00    *                   vmovaps 32(%rsi), %xmm0
-# CHECK-NEXT: 1      1     1.00           *            vmovaps %xmm0, 32(%rdi)
-# CHECK-NEXT: 1      5     1.00    *                   vmovaps 48(%rsi), %xmm0
-# CHECK-NEXT: 1      1     1.00           *            vmovaps %xmm0, 48(%rdi)
-
 # CHECK:      Timeline view:
 # CHECK-NEXT:                    0123456789       
 # CHECK-NEXT: Index    0123456789          0123456
index 8086f8b..b0e2583 100644 (file)
@@ -17,6 +17,25 @@ vmovaps %xmm0, 48(%rdi)
 # CHECK-NEXT: IPC:            1.96
 
 
+# CHECK: Instruction Info:
+# CHECK-NEXT: [1]: #uOps
+# CHECK-NEXT: [2]: Latency
+# CHECK-NEXT: [3]: RThroughput
+# CHECK-NEXT: [4]: MayLoad
+# CHECK-NEXT: [5]: MayStore
+# CHECK-NEXT: [6]: HasSideEffects
+
+# CHECK:     [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
+# CHECK-NEXT: 1      5     1.00    *                   vmovaps (%rsi), %xmm0
+# CHECK-NEXT: 1      1     1.00           *            vmovaps %xmm0, (%rdi)
+# CHECK-NEXT: 1      5     1.00    *                   vmovaps 16(%rsi), %xmm0
+# CHECK-NEXT: 1      1     1.00           *            vmovaps %xmm0, 16(%rdi)
+# CHECK-NEXT: 1      5     1.00    *                   vmovaps 32(%rsi), %xmm0
+# CHECK-NEXT: 1      1     1.00           *            vmovaps %xmm0, 32(%rdi)
+# CHECK-NEXT: 1      5     1.00    *                   vmovaps 48(%rsi), %xmm0
+# CHECK-NEXT: 1      1     1.00           *            vmovaps %xmm0, 48(%rdi)
+
+
 # CHECK: Resources:
 # CHECK-NEXT: [0] - JALU0
 # CHECK-NEXT: [1] - JALU1
@@ -50,25 +69,6 @@ vmovaps %xmm0, 48(%rdi)
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -            vmovaps %xmm0, 48(%rdi)
 
 
-# CHECK: Instruction Info:
-# CHECK-NEXT: [1]: #uOps
-# CHECK-NEXT: [2]: Latency
-# CHECK-NEXT: [3]: RThroughput
-# CHECK-NEXT: [4]: MayLoad
-# CHECK-NEXT: [5]: MayStore
-# CHECK-NEXT: [6]: HasSideEffects
-
-# CHECK:     [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
-# CHECK-NEXT: 1      5     1.00    *                   vmovaps (%rsi), %xmm0
-# CHECK-NEXT: 1      1     1.00           *            vmovaps %xmm0, (%rdi)
-# CHECK-NEXT: 1      5     1.00    *                   vmovaps 16(%rsi), %xmm0
-# CHECK-NEXT: 1      1     1.00           *            vmovaps %xmm0, 16(%rdi)
-# CHECK-NEXT: 1      5     1.00    *                   vmovaps 32(%rsi), %xmm0
-# CHECK-NEXT: 1      1     1.00           *            vmovaps %xmm0, 32(%rdi)
-# CHECK-NEXT: 1      5     1.00    *                   vmovaps 48(%rsi), %xmm0
-# CHECK-NEXT: 1      1     1.00           *            vmovaps %xmm0, 48(%rdi)
-
-
 # CHECK: Timeline view:
 # CHECK-NEXT:                    01
 # CHECK-NEXT: Index    0123456789  
index a2c9cb0..310ea3f 100644 (file)
@@ -8,6 +8,19 @@ add %edi, %eax
 # CHECK-NEXT: Dispatch Width: 2
 # CHECK-NEXT: IPC:            0.97
 
+
+# CHECK: Instruction Info:
+# CHECK-NEXT: [1]: #uOps
+# CHECK-NEXT: [2]: Latency
+# CHECK-NEXT: [3]: RThroughput
+# CHECK-NEXT: [4]: MayLoad
+# CHECK-NEXT: [5]: MayStore
+# CHECK-NEXT: [6]: HasSideEffects
+
+# CHECK: [1]    [2]    [3]    [4]    [5]    [6]        Instructions:
+# CHECK-NEXT: 1      1     0.50                        addl    %edi, %eax
+
+
 # CHECK-LABEL: Resources:
 # CHECK-NEXT: [0] - JALU0
 # CHECK-NEXT: [1] - JALU1
@@ -32,14 +45,3 @@ add %edi, %eax
 # CHECK: Resource pressure by instruction:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]   [10]   [11]   [12]   [13]           Instructions:
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -     -      -      -      -             addl    %edi, %eax
-
-# CHECK: Instruction Info:
-# CHECK-NEXT: [1]: #uOps
-# CHECK-NEXT: [2]: Latency
-# CHECK-NEXT: [3]: RThroughput
-# CHECK-NEXT: [4]: MayLoad
-# CHECK-NEXT: [5]: MayStore
-# CHECK-NEXT: [6]: HasSideEffects
-
-# CHECK: [1]    [2]    [3]    [4]    [5]    [6]        Instructions:
-# CHECK-NEXT: 1      1     0.50                        addl    %edi, %eax
index 511aefa..521ef04 100644 (file)
@@ -156,6 +156,8 @@ void BackendPrinter::printReport() const {
   unsigned Cycles = B.getNumCycles();
   printGeneralStatistics(B.getNumIterations(), Cycles, B.getNumInstructions(),
                          B.getDispatchWidth());
+  printInstructionInfo();
+
   if (EnableVerboseOutput) {
     printDispatchStalls(B.getNumRATStalls(), B.getNumRCUStalls(),
                         B.getNumSQStalls(), B.getNumLDQStalls(),
@@ -169,10 +171,8 @@ void BackendPrinter::printReport() const {
     printSchedulerUsage(B.getSchedModel(), Usage);
   }
 
-  if (RPV) {
+  if (RPV)
     RPV->printResourcePressure(getOStream(), Cycles);
-    printInstructionInfo();
-  }
 
   if (TV) {
     TV->printTimeline(getOStream());