llvm/llvm-project
在 GitHub 查看[llvm-mca][FeatureRequest] In timeline graph, note source of delay for each instruction
Open
#123,756 建立於 2025年1月21日
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.