[clang] [AArch64] Add getHostCPUFeatures to query for enabled features in cpu… (PR #97749)
via cfe-commits
cfe-commits at lists.llvm.org
Thu Jul 4 08:46:34 PDT 2024
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-clang
Author: None (neildhickey)
<details>
<summary>Changes</summary>
…info
This pull request adds code to call getHostCPUInfo into the AArch64 Target Parser to query the cpuinfo for the device in the case where we are compiling with -mcpu=native
---
Full diff: https://github.com/llvm/llvm-project/pull/97749.diff
1 Files Affected:
- (modified) clang/lib/Driver/ToolChains/Arch/AArch64.cpp (+17)
``````````diff
diff --git a/clang/lib/Driver/ToolChains/Arch/AArch64.cpp b/clang/lib/Driver/ToolChains/Arch/AArch64.cpp
index ec248b80251ea3..2862c297622fa9 100644
--- a/clang/lib/Driver/ToolChains/Arch/AArch64.cpp
+++ b/clang/lib/Driver/ToolChains/Arch/AArch64.cpp
@@ -445,4 +445,21 @@ void aarch64::getAArch64TargetFeatures(const Driver &D,
if (Args.getLastArg(options::OPT_mno_bti_at_return_twice))
Features.push_back("+no-bti-at-return-twice");
+
+ // Parse AArch64 CPU Features
+ const Arg *CPUArg = Args.getLastArg(options::OPT_mcpu_EQ);
+ StringRef CPUName;
+
+ if (CPUArg) {
+ CPUName = CPUArg->getValue();
+ if (CPUName == "native") {
+ llvm::StringMap<bool> HostFeatures;
+ if (llvm::sys::getHostCPUFeatures(HostFeatures)) {
+ for (auto &F : HostFeatures) {
+ Features.push_back(
+ Args.MakeArgString((F.second ? "+" : "-") + F.first()));
+ }
+ }
+ }
+ }
}
``````````
</details>
https://github.com/llvm/llvm-project/pull/97749
More information about the cfe-commits
mailing list