Page MenuHomePhabricator

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

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




This is my attempt to address the issues in, 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?


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.


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!