#include "llvm/InitializePasses.h"
#include "llvm/Support/Host.h"
#include "llvm/Support/TargetSelect.h"
+#include "llvm/Support/TargetRegistry.h"
// Used to skip tests on unsupported architectures and operating systems.
// To skip a test, add this macro at the top of a test-case in a suite that
// inherits from MCJITTestBase. See MCJITTest.cpp for examples.
#define SKIP_UNSUPPORTED_PLATFORM \
do \
- if (!ArchSupportsMCJIT() || !OSSupportsMCJIT()) \
+ if (!ArchSupportsMCJIT() || !OSSupportsMCJIT() || !HostCanBeTargeted()) \
return; \
while(0)
HostTriple = Triple::normalize(HostTriple);
}
+ bool HostCanBeTargeted() {
+ std::string Error;
+ return TargetRegistry::lookupTarget(HostTriple, Error) != nullptr;
+ }
+
/// Returns true if the host architecture is known to support MCJIT
bool ArchSupportsMCJIT() {
Triple Host(HostTriple);