Page MenuHomePhabricator

Rewrite ARM & AArch64 tests to check LLVM IR rather than assembly
ClosedPublic

Authored by t.p.northover on Mar 9 2016, 10:18 AM.

Details

Reviewers
echristo
Summary

Hi,

This is my attempt to address the issues in http://llvm.org/PR26815, where changes to LLVM broke check-clang because we had end-to-end tests. The patch does 2 related things:

  • It removes all ARM and AArch64 assembly tests I could find, instead substituting auto-generated LLVM IR checks, including data-flow to make sure we don't swap operand order or make other mistakes along those lines. The idea is that we believe the current IR is correct so this one-time substitution shouldn't hurt.
  • It converts tests that were using -O1, -O2 or -O3 into only relying on Mem2Reg (a stable pass with well-defined expectations which greatly improves readability of the output in most cases).

Does this look reasonable to people?

Tim.

Diff Detail

Event Timeline

t.p.northover retitled this revision from to Rewrite ARM & AArch64 tests to check LLVM IR rather than assembly.
t.p.northover updated this object.
t.p.northover added a subscriber: cfe-commits.
echristo accepted this revision.Mar 9 2016, 10:53 AM
echristo added a reviewer: echristo.
echristo added a subscriber: echristo.

This is a compromise I can live with :)

Thanks for doing this Tim.

-eric

This revision is now accepted and ready to land.Mar 9 2016, 10:53 AM
t.p.northover closed this revision.Mar 9 2016, 11:00 AM

Thanks Eric. Committed as r263048.

spatel added a subscriber: spatel.Mar 9 2016, 11:12 AM

Nothing to do with the patch itself (although it looks great and thanks!) - is the CHECK line generator script available somewhere? I'd love to be able to use that.

Great work, Tim! Thank you!