[PATCH] D136930: [RISCV] Support -mcpu/mtune=native

Kito Cheng via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Mon Oct 31 09:44:55 PDT 2022


kito-cheng 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()));
----------------
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") {
```


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