forked from OSchip/llvm-project
Implement `sys::getHostCPUName()` for Darwin ARM
Summary: Currently there is no implementation of `sys::getHostCPUName()` for Darwin ARM targets. This patch makes it so that LLVM running on ARM makes reasonable guesses about the CPU features of the host CPU. Reviewers: t.p.northover, lhames, efriedma Reviewed By: efriedma Subscribers: rjmccall, efriedma, kristof.beyls, hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D69597
This commit is contained in:
parent
bcbb121ff6
commit
34688fafea
|
@ -35,7 +35,7 @@
|
|||
#ifdef _MSC_VER
|
||||
#include <intrin.h>
|
||||
#endif
|
||||
#if defined(__APPLE__) && (defined(__ppc__) || defined(__powerpc__))
|
||||
#if defined(__APPLE__) && (!defined(__x86_64__))
|
||||
#include <mach/host_info.h>
|
||||
#include <mach/mach.h>
|
||||
#include <mach/mach_host.h>
|
||||
|
@ -1220,6 +1220,33 @@ StringRef sys::getHostCPUName() {
|
|||
StringRef Content = P ? P->getBuffer() : "";
|
||||
return detail::getHostCPUNameForS390x(Content);
|
||||
}
|
||||
#elif defined(__APPLE__) && defined(__aarch64__)
|
||||
StringRef sys::getHostCPUName() {
|
||||
return "cyclone";
|
||||
}
|
||||
#elif defined(__APPLE__) && defined(__arm__)
|
||||
StringRef sys::getHostCPUName() {
|
||||
host_basic_info_data_t hostInfo;
|
||||
mach_msg_type_number_t infoCount;
|
||||
|
||||
infoCount = HOST_BASIC_INFO_COUNT;
|
||||
mach_port_t hostPort = mach_host_self();
|
||||
host_info(hostPort, HOST_BASIC_INFO, (host_info_t)&hostInfo,
|
||||
&infoCount);
|
||||
mach_port_deallocate(mach_task_self(), hostPort);
|
||||
|
||||
if (hostInfo.cpu_type != CPU_TYPE_ARM) {
|
||||
assert(false && "CPUType not equal to ARM should not be possible on ARM");
|
||||
return "generic";
|
||||
}
|
||||
switch (hostInfo.cpu_subtype) {
|
||||
case CPU_SUBTYPE_ARM_V7S:
|
||||
return "swift";
|
||||
default:;
|
||||
}
|
||||
|
||||
return "generic";
|
||||
}
|
||||
#else
|
||||
StringRef sys::getHostCPUName() { return "generic"; }
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue