================
@@ -135,8 +135,13 @@ void loongarch::getLoongArchTargetFeatures(const Driver &D,
     Features.push_back("+lsx");
 
   std::string ArchName;
-  if (const Arg *A = Args.getLastArg(options::OPT_march_EQ))
+  if (const Arg *A = Args.getLastArg(options::OPT_march_EQ)) {
     ArchName = A->getValue();
+    if (ArchName == "native")
+      for (auto &F : llvm::sys::getHostCPUFeatures())
+        Features.push_back(
----------------
SixWeining wrote:

It changes the behavior that `-march` is not specified.

How about:
```
  std::string ArchName;
  const Arg *MArch = Args.getLastArg(options::OPT_march_EQ);
  if (MArch)
    ArchName = A->getValue();
  ArchName = postProcessTargetCPUString(ArchName, Triple);
  llvm::LoongArch::getArchFeatures(ArchName, Features);
  if (MArch->getValue() == "native")
    for(...) push_back(xxx);
```

https://github.com/llvm/llvm-project/pull/115832
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to