[PATCH] D136930: [RISCV] Support -mcpu/mtune=native
Craig Topper via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Mon Oct 31 10:21:02 PDT 2022
craig.topper added inline comments.
================
Comment at: clang/lib/Driver/ToolChains/Clang.cpp:2190
CmdArgs.push_back("-tune-cpu");
- CmdArgs.push_back(A->getValue());
+ if (strcmp(A->getValue(), "native") == 0)
+ CmdArgs.push_back(Args.MakeArgString(llvm::sys::getHostCPUName()));
----------------
kito-cheng wrote:
> pcwang-thead wrote:
> > craig.topper wrote:
> > > Why can't we use A->getValue() == "native" here?
> > Because newly-changed support of other targets (like PowerPC) are in this form, so I think this may benefit from simplification?
> A->getValue return `const char *` rather than StringRef? maybe we could use `StringRef(A->getValue()) == "native"` like X86 to improve that?
>
> https://llvm.org/doxygen/classllvm_1_1opt_1_1Arg.html
>
> grep result from clang folder:
> ```
> $ grpe "\"native\"" * -R
> lib/Driver/ToolChains/Clang.cpp: if (strcmp(A->getValue(), "native") == 0)
> lib/Driver/ToolChains/Clang.cpp: if (strcmp(A->getValue(), "native") == 0)
> lib/Driver/ToolChains/Clang.cpp: if (Name == "native")
> lib/Driver/ToolChains/Clang.cpp: if (strcmp(A->getValue(), "native") == 0)
> lib/Driver/ToolChains/Clang.cpp: if (Name == "native") {
> lib/Driver/ToolChains/CommonArgs.cpp: // Handle "native" by examining the host. "native" isn't meaningful when
> lib/Driver/ToolChains/CommonArgs.cpp: if (CPU == "native")
> lib/Driver/ToolChains/Arch/SystemZ.cpp: if (CPUName == "native") {
> lib/Driver/ToolChains/Arch/X86.cpp: if (CPU != "native")
> lib/Driver/ToolChains/Arch/X86.cpp: if (StringRef(A->getValue()) == "native") {
> lib/Driver/ToolChains/Arch/PPC.cpp: if (CPUName == "native") {
> lib/Driver/ToolChains/Arch/AArch64.cpp: if (CPU == "native")
> lib/Driver/ToolChains/Arch/AArch64.cpp: if (CPU == "native")
> lib/Driver/ToolChains/Arch/AArch64.cpp: if (Split.first == "native")
> lib/Driver/ToolChains/Arch/AArch64.cpp: if (MtuneLowerCase == "native")
> lib/Driver/ToolChains/Arch/Sparc.cpp: if (CPUName == "native") {
> lib/Driver/ToolChains/Arch/ARM.cpp: if (CPUName == "native") {
> lib/Driver/ToolChains/Arch/ARM.cpp: if (MArch == "native") {
> lib/Driver/ToolChains/Arch/ARM.cpp: if (MCPU == "native")
> lib/Driver/ToolChains/Arch/M68k.cpp: if (CPUName == "native") {
> ```
Thanks. I guess strcmp makes sense then to avoid an implicit call to strlen in the StringRef constructor.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D136930/new/
https://reviews.llvm.org/D136930
More information about the cfe-commits
mailing list