如何读取 uiCA 的输出?

问题描述 投票:0回答:0

我有一段在uiCA分析过的汇编代码(https://bit ly/3lKtPYY <- uiCA can only share with bit ly but the link is blocked :(

Throughput (in cycles per iteration): 5.25
Bottleneck: Issue

The following throughputs could be achieved if the given property were the only bottleneck:

  - DSB: 3.67
  - Issue: 5.25
  - Ports: 5.00
  - Dependencies: 2.00

M - Macro-fused with previous instruction

┌───────────────────────┬────────┬───────┬───────────────────────────────────────────────────────────────────────┬───────┐
│ MITE   MS   DSB   LSD │ Issued │ Exec. │ Port 0   Port 1   Port 2   Port 3   Port 4   Port 5   Port 6   Port 7 │ Notes │
├───────────────────────┼────────┼───────┼───────────────────────────────────────────────────────────────────────┼───────┤
│              1        │   1    │   2   │                             0.51      1                         0.49  │       │ push r15
│              1        │   1    │   2   │                                       1                          1    │       │ push r14
│              1        │   1    │   2   │                             0.27      1                         0.73  │       │ push rbx
│              1        │   1    │   1   │                                                         1             │       │ cmp esi, 0x63
│                       │        │       │                                                                       │   M   │ jnle 0x2a
│              1        │   1    │       │                                                                       │       │ mov rbx, rdi
│              1        │   1    │   1   │  0.2      0.31                                0.36     0.13           │       │ movsxd r15, esi
│              1        │   1    │   1   │            1                                                          │       │ lea r14, ptr [rip+0x21]
│              1        │   1    │   1   │           0.64                                0.36                    │       │ lea rsi, ptr [rbx+r15*1]
│              1        │   1    │       │                                                                       │       │ mov rdi, r14
│              1        │   1    │       │                                                                       │       │ xor eax, eax
│              2        │   2    │   3   │  0.58              0.24               1                0.42     0.76  │       │ call 0x5
│              1        │   1    │   1   │           0.47                                0.53                    │       │ lea rax, ptr [r15+0x2]
│              1        │   1    │   1   │  0.4      0.07                                0.27     0.27           │       │ cmp r15, 0x62
│              1        │   1    │       │                                                                       │       │ mov r15, rax
│              1        │   1    │   1   │                                                         1             │       │ jl 0xffffffffffffffe7
│              1        │   1    │   1   │                    0.49     0.51                                      │       │ pop rbx
│              1        │   1    │   1   │                    0.51     0.49                                      │       │ pop r14
│              1        │   1    │   1   │                    0.49     0.51                                      │       │ pop r15
│              2        │   2    │   9   │  1.11     0.84      2        2        1       1.16     0.89           │       │ ret 
├───────────────────────┼────────┼───────┼───────────────────────────────────────────────────────────────────────┼───────┤
│             21        │   21   │  28   │  2.29     3.33     3.73     4.29      5       2.67     3.71     2.98  │       │ Total
└───────────────────────┴────────┴───────┴───────────────────────────────────────────────────────────────────────┴───────┘

但我不知道这一切意味着什么(谷歌搜索也没有提供任何有用的东西)。那么有人可以向我解释输出中的每一件事是什么意思(比如什么是 DSB、问题、端口、依赖关系......),以及我如何将这段代码与另一段代码进行比较?

assembly optimization x86 x86-64
© www.soinside.com 2019 - 2024. All rights reserved.