Author: Keith Smiley Date: 2022-03-23T14:27:02-07:00 New Revision: fc3cdd0b295a04c38f01b391ae414553963e33b9
URL: https://github.com/llvm/llvm-project/commit/fc3cdd0b295a04c38f01b391ae414553963e33b9 DIFF: https://github.com/llvm/llvm-project/commit/fc3cdd0b295a04c38f01b391ae414553963e33b9.diff LOG: Revert "[AArch64] Add support for -march=native for Apple M1 CPU" This reverts commit fcca10c69aaab539962d10fcc59a5f074b73b0de. Added: Modified: clang/lib/Driver/ToolChains/Arch/AArch64.cpp llvm/lib/Support/Host.cpp Removed: ################################################################################ diff --git a/clang/lib/Driver/ToolChains/Arch/AArch64.cpp b/clang/lib/Driver/ToolChains/Arch/AArch64.cpp index a0be30f881e52..610c672feb677 100644 --- a/clang/lib/Driver/ToolChains/Arch/AArch64.cpp +++ b/clang/lib/Driver/ToolChains/Arch/AArch64.cpp @@ -151,8 +151,6 @@ getAArch64ArchFeaturesFromMarch(const Driver &D, StringRef March, std::pair<StringRef, StringRef> Split = StringRef(MarchLowerCase).split("+"); llvm::AArch64::ArchKind ArchKind = llvm::AArch64::parseArch(Split.first); - if (Split.first == "native") - ArchKind = llvm::AArch64::getCPUArchKind(llvm::sys::getHostCPUName().str()); if (ArchKind == llvm::AArch64::ArchKind::INVALID || !llvm::AArch64::getArchFeatures(ArchKind, Features)) return false; diff --git a/llvm/lib/Support/Host.cpp b/llvm/lib/Support/Host.cpp index 31cc4df1d9250..a4a375ee7cfa4 100644 --- a/llvm/lib/Support/Host.cpp +++ b/llvm/lib/Support/Host.cpp @@ -41,8 +41,6 @@ #include <mach/mach.h> #include <mach/mach_host.h> #include <mach/machine.h> -#include <sys/param.h> -#include <sys/sysctl.h> #endif #ifdef _AIX #include <sys/systemcfg.h> @@ -1299,45 +1297,32 @@ StringRef sys::getHostCPUName() { bool HaveVectorSupport = CVT[244] & 0x80; return getCPUNameFromS390Model(Id, HaveVectorSupport); } -#elif defined(__APPLE__) && (defined(__arm__) || defined(__aarch64__)) -#define CPUFAMILY_ARM_SWIFT 0x1e2d6381 -#define CPUFAMILY_ARM_CYCLONE 0x37a09642 -#define CPUFAMILY_ARM_TYPHOON 0x2c91a47e -#define CPUFAMILY_ARM_TWISTER 0x92fb37c8 -#define CPUFAMILY_ARM_HURRICANE 0x67ceee93 -#define CPUFAMILY_ARM_MONSOON_MISTRAL 0xe81e7ef6 -#define CPUFAMILY_ARM_VORTEX_TEMPEST 0x07d34b9f -#define CPUFAMILY_ARM_LIGHTNING_THUNDER 0x462504d2 -#define CPUFAMILY_ARM_FIRESTORM_ICESTORM 0x1b588bb3 - +#elif defined(__APPLE__) && defined(__aarch64__) StringRef sys::getHostCPUName() { - uint32_t Family; - size_t Length = sizeof(Family); - sysctlbyname("hw.cpufamily", &Family, &Length, NULL, 0); + return "cyclone"; +} +#elif defined(__APPLE__) && defined(__arm__) +StringRef sys::getHostCPUName() { + host_basic_info_data_t hostInfo; + mach_msg_type_number_t infoCount; - switch (Family) { - case CPUFAMILY_ARM_SWIFT: - return "swift"; - case CPUFAMILY_ARM_CYCLONE: - return "apple-a7"; - case CPUFAMILY_ARM_TYPHOON: - return "apple-a8"; - case CPUFAMILY_ARM_TWISTER: - return "apple-a9"; - case CPUFAMILY_ARM_HURRICANE: - return "apple-a10"; - case CPUFAMILY_ARM_MONSOON_MISTRAL: - return "apple-a11"; - case CPUFAMILY_ARM_VORTEX_TEMPEST: - return "apple-a12"; - case CPUFAMILY_ARM_LIGHTNING_THUNDER: - return "apple-a13"; - case CPUFAMILY_ARM_FIRESTORM_ICESTORM: - return "apple-m1"; - default: - // Default to the newest CPU we know about. - return "apple-m1"; + 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"; } #elif defined(_AIX) StringRef sys::getHostCPUName() { @@ -1468,6 +1453,9 @@ int computeHostNumPhysicalCores() { #elif defined(__linux__) && defined(__s390x__) int computeHostNumPhysicalCores() { return sysconf(_SC_NPROCESSORS_ONLN); } #elif defined(__APPLE__) +#include <sys/param.h> +#include <sys/sysctl.h> + // Gets the number of *physical cores* on the machine. int computeHostNumPhysicalCores() { uint32_t count; _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits