This is an archive of the discontinued LLVM Phabricator instance.

[UpdateTestChecks] Improved update_mca_test_checks block analysis
ClosedPublic

Authored by gbedwell on May 24 2018, 6:30 AM.

Details

Summary

Previously update_mca_test_checks worked entirely at "block" level where
a block is some sequence of lines delimited by at least one empty line.
This generally worked well, but could sometimes lead to excessive
repetition of check lines for various prefixes if some block was almost
identical between prefixes, but not quite (for example, due to a
different dispatch width in the otherwise identical summary views).

This new analyis attempts to split blocks further in the case where the
following conditions are met:

a) There is some prefix common to every RUN line (typically 'ALL').
b) The first line of the block is common to the output with every prefix.
c) The block has the same number of lines for the output with every prefix.

Also, regenerated all llvm-mca test files with the following command:
update_mca_test_checks.py "../test/tools/llvm-mca/*/*.s" "../test/tools/llvm-mca/*/*/*.s"

The new analysis showed a "multiple lines not disambiguated by prefixes" warning
for test "AArch64/Exynos/scheduler-queue-usage.s" so I've also added some
explicit prefixes to each of the RUN lines in that test.

Diff Detail

Repository
rL LLVM

Event Timeline

gbedwell created this revision.May 24 2018, 6:30 AM
gbedwell updated this revision to Diff 148412.May 24 2018, 7:47 AM

minor update to formatting to get rid of blank lines around single check lines.

andreadb accepted this revision.May 24 2018, 7:51 AM

Nice! LGTM.

This revision is now accepted and ready to land.May 24 2018, 7:51 AM
This revision was automatically updated to reflect the committed changes.