llvm/llvm-project

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

Open

#123.756 aperta il 21 gen 2025

Vedi su GitHub
 (18 commenti) (1 reazione) (1 assegnatario)C++ (10.782 fork)batch import
enhancementgood first issuetools:llvm-mca

Metriche repository

Star
 (26.378 star)
Metriche merge PR
 (Merge medio 1g 2h) (1000 PR mergiate in 30 g)

Descrizione

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.

Guida contributor