llvm/llvm-project

[llvm-mca][FeatureRequest] In timeline graph, note source of delay for each instruction

Open

#123,756 建立於 2025年1月21日

在 GitHub 查看
 (18 留言) (1 反應) (1 負責人)C++ (10,782 fork)batch import
enhancementgood first issuetools:llvm-mca

倉庫指標

Star
 (26,378 star)
PR 合併指標
 (平均合併 1天 2小時) (30 天內合併 1,000 個 PR)

描述

Currently, the timeline graph looks like this:

Timeline view:
                    012345
Index     0123456789

[0,0]     DeeER.    .    .   vmulps   %xmm0, %xmm1, %xmm2
[0,1]     D==eeeER  .    .   vhaddps  %xmm2, %xmm2, %xmm3
[0,2]     .D====eeeER    .   vhaddps  %xmm3, %xmm3, %xmm4
[1,0]     .DeeE-----R    .   vmulps   %xmm0, %xmm1, %xmm2
[1,1]     . D=eeeE---R   .   vhaddps  %xmm2, %xmm2, %xmm3
[1,2]     . D====eeeER   .   vhaddps  %xmm3, %xmm3, %xmm4
[2,0]     .  DeeE-----R  .   vmulps   %xmm0, %xmm1, %xmm2
[2,1]     .  D====eeeER  .   vhaddps  %xmm2, %xmm2, %xmm3
[2,2]     .   D======eeeER   vhaddps  %xmm3, %xmm3, %xmm4

The value = means an instruction is dispatched but it cannot execute. There are two reasons why an instruction cannot execute:

  • It is waiting for data from some previous instruction (dependency)
  • It is waiting for available HW resource (resource pressure)

Instead of using = for both reasons, consider using one character (e.g. =) for dependency stall, and another character (e.g. _) for resource pressure stall.

貢獻者指南