There were some discussions about target specific tests breaking on other targets, so I did a simple test: compiled LLVM with a single target and ran all the tests.
Here are some results for random targets:
ARM: Unexpected Failures: 334
PowerPC: Unexpected Failures: 340
Mips: Unexpected Failures: 334
X86: Unexpected Failures: 0
Most of them LLVM-Unit, Execution Engine, Codegen, DebugInfo, Clang. Most of them exactly the same for all targets. Most of them are just bad tests, ie. target specific tests in generic directories, or target-independent tests expecting target specific behaviour.
It’s safe to assume that each non-x86 target will have similar failure rate when compiled alone.
While it’s important to test LLVM on the specific targets (compile and test on them), it’s also important (and sometimes a lot easier and faster) to test cross-compilation. This would also guarantee that cross-compilation is not just possible, but thoroughly tested across all targets.
Call for action:
Would be good to have some buildbots doing cross-compilation for each of our targets, but also those interested on their tests passing (Clang, Debug info, MCJIT folks, etc) should also probably run them locally on their machines and try to move their tests to the best category they think it makes sense.