This is an archive of the discontinued LLVM Phabricator instance.

[llvm-mca][docs] Describe the Timeline View. NFC
ClosedPublic

Authored by mattd on Jul 18 2018, 5:45 PM.

Details

Summary

After some discussion offline, we decided to visit each View as a separate patch. This is the initial Timeline View documentation, reworded some (minor changes), and made rst friendly.

Ignore the 'View Descriptions' section, it felt wrong not having some introduction area prior to going into the detailed view descriptions. I reran the sample from our dot-product test case, it doesn't look like anything significant changed from what the README.txt provides. I'm not sure if we want to display example code/assembly inline or just reference places to find the inputs. Since the purpose is to inspect a subset of the code, for illustrative purposes, it might be beneficial to just put the example instructions inline.

Diff Detail

Repository
rL LLVM

Event Timeline

mattd created this revision.Jul 18 2018, 5:45 PM

Overall, it looks good to me.

As you wrote, the "VIEW DESCRIPTIONS" section should be improved.
Also, it should probably have a more informative/different name (not sure which one though... I am not good with names).

andreadb accepted this revision.Jul 19 2018, 7:52 AM

Overall, it looks good to me.

As you wrote, the "VIEW DESCRIPTIONS" section should be improved.
Also, it should probably have a more informative/different name (not sure which one though... I am not good with names).

On a second thought,

you can just commit this patch, as long as you replace section "VIEW DESCRIPTIONS" with the equivalent of section "How the tool works" from the RFC.
Ideally, we should use the same structure of the original llvm-mca RFC.

The "how the tool works" section would be mostly a copy-paste of what is written in the original RFC (modulo changes to the instruction-info view, and the example).

Future documentation patches:

  1. Pipeline statistics: things like SchedulerStatistics, RetireControlUnitStatistics, RegisterFileStatistics etc. should go there.
  2. LLVM-MCA instruction flow
  3. your patch related to the MCA internals.

Again, we should try to keep the same structure as the original RFC.
Patch 1. is basically a porting of section "Extra statistics to further diagnose performance issues" (we can even keep that title for simplicity).
Patch 2. should describe the composition of the "default pipeline", and what is done by each stage. This is also similar to section "LLVM-MCA instruction flow" from the RFC.
Patch 3. would be just at the end of all of this.

I hope it makes sense
-Andrea

This revision is now accepted and ready to land.Jul 19 2018, 7:52 AM
mattd retitled this revision from [llvm-mca][docs][WIP] Describe the Timeline View. NFC to [llvm-mca][docs] Describe the Timeline View. NFC.Jul 19 2018, 1:33 PM

Thanks for the feedback @andreadb ! I've already made the suggested changes and will land that shortly.

This revision was automatically updated to reflect the committed changes.