llvm/llvm-project

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

Open

#123 756 ouverte le 21 janv. 2025

Voir sur GitHub
 (18 commentaires) (1 réaction) (1 assigné)C++ (10 782 forks)batch import
enhancementgood first issuetools:llvm-mca

Métriques du dépôt

Stars
 (26 378 stars)
Métriques de merge PR
 (Merge moyen 1j 2h) (1 000 PRs mergées en 30 j)

Description

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.

Guide contributeur