This is an archive of the discontinued LLVM Phabricator instance.

[MemCpyOpt] Add test scaffolding for MSSA based MemCpyOpt
ClosedPublic

Authored by nikic on Oct 11 2020, 8:19 AM.

Details

Summary

This adds an -enable-memcpyopt-memoryssa option that currently does nothing apart from requiring MSSA as a dependency. The tests are split to run both with the option disabled and enabled. I went with this rather than the separate directory DSE uses, as I found it convenient to have a direct side-by-side comparison of differences.

Diff Detail

Event Timeline

nikic created this revision.Oct 11 2020, 8:19 AM
nikic requested review of this revision.Oct 11 2020, 8:19 AM
asbirlea accepted this revision.Oct 12 2020, 7:35 AM

LGTM. Thank you for working on this!

This revision is now accepted and ready to land.Oct 12 2020, 7:35 AM
This revision was landed with ongoing or failed builds.Oct 13 2020, 12:45 PM
This revision was automatically updated to reflect the committed changes.

In tests, what is the purpose of the the NO_MSSA and MSSA prefixes?

nikic added a comment.Oct 28 2020, 1:20 AM

@mtrofin They show cases where the MSSA and MD implementations produce different results. See the test diffs in D89207 for examples.

mtrofin added a comment.EditedOct 28 2020, 10:38 AM

@mtrofin They show cases where the MSSA and MD implementations produce different results. See the test diffs in D89207 for examples.

(The context is D90281)

Is this work in progress, meaning there are more patches coming adding coverage? So for example, in Transforms/MemCpyOpt/vscale-memset.ll, there's no NO_MSSA check right now, but there will be later, is that correct?

If D90281 applies, could you comment there about your scenario (i.e. had --check-prefixes been strict, how would this work have been impacted)? Thanks!

Also - could you take a look at http://lists.llvm.org/pipermail/llvm-dev/2020-October/146162.html, especially at the tests list - thanks!