Author: Matt Arsenault
Date: 2026-06-23T11:07:51+02:00
New Revision: d39923c4df01fdeb10dae4da256c09fdf616157c

URL: 
https://github.com/llvm/llvm-project/commit/d39923c4df01fdeb10dae4da256c09fdf616157c
DIFF: 
https://github.com/llvm/llvm-project/commit/d39923c4df01fdeb10dae4da256c09fdf616157c.diff

LOG: clang: Change TargetInfo::setCPU to take StringRef (#205278)

The related APIs all use StringRef, so use StringRef for
consistency.

Co-Authored-By: Claude (Opus 4.8) <[email protected]>

Added: 
    

Modified: 
    clang/include/clang/Basic/TargetInfo.h
    clang/lib/Basic/Targets/AArch64.cpp
    clang/lib/Basic/Targets/AArch64.h
    clang/lib/Basic/Targets/AMDGPU.h
    clang/lib/Basic/Targets/ARM.cpp
    clang/lib/Basic/Targets/ARM.h
    clang/lib/Basic/Targets/AVR.cpp
    clang/lib/Basic/Targets/AVR.h
    clang/lib/Basic/Targets/BPF.h
    clang/lib/Basic/Targets/CSKY.cpp
    clang/lib/Basic/Targets/CSKY.h
    clang/lib/Basic/Targets/Hexagon.h
    clang/lib/Basic/Targets/Lanai.cpp
    clang/lib/Basic/Targets/Lanai.h
    clang/lib/Basic/Targets/LoongArch.h
    clang/lib/Basic/Targets/M68k.cpp
    clang/lib/Basic/Targets/M68k.h
    clang/lib/Basic/Targets/Mips.h
    clang/lib/Basic/Targets/NVPTX.h
    clang/lib/Basic/Targets/PPC.h
    clang/lib/Basic/Targets/RISCV.h
    clang/lib/Basic/Targets/Sparc.h
    clang/lib/Basic/Targets/SystemZ.h
    clang/lib/Basic/Targets/WebAssembly.h
    clang/lib/Basic/Targets/X86.h
    clang/lib/Basic/Targets/Xtensa.h

Removed: 
    


################################################################################
diff  --git a/clang/include/clang/Basic/TargetInfo.h 
b/clang/include/clang/Basic/TargetInfo.h
index cc226403877e2..74030564c74b1 100644
--- a/clang/include/clang/Basic/TargetInfo.h
+++ b/clang/include/clang/Basic/TargetInfo.h
@@ -1404,9 +1404,7 @@ class TargetInfo : public TransferrableTargetInfo,
   /// Target the specified CPU.
   ///
   /// \return  False on error (invalid CPU name).
-  virtual bool setCPU(const std::string &Name) {
-    return false;
-  }
+  virtual bool setCPU(StringRef Name) { return false; }
 
   /// Fill a SmallVectorImpl with the valid values to setCPU.
   virtual void fillValidCPUList(SmallVectorImpl<StringRef> &Values) const {}

diff  --git a/clang/lib/Basic/Targets/AArch64.cpp 
b/clang/lib/Basic/Targets/AArch64.cpp
index 9afe6cb10729d..fbcff173297e6 100644
--- a/clang/lib/Basic/Targets/AArch64.cpp
+++ b/clang/lib/Basic/Targets/AArch64.cpp
@@ -285,9 +285,7 @@ bool AArch64TargetInfo::isValidCPUName(StringRef Name) 
const {
   return llvm::AArch64::parseCpu(Name).has_value();
 }
 
-bool AArch64TargetInfo::setCPU(const std::string &Name) {
-  return isValidCPUName(Name);
-}
+bool AArch64TargetInfo::setCPU(StringRef Name) { return isValidCPUName(Name); }
 
 void AArch64TargetInfo::fillValidCPUList(
     SmallVectorImpl<StringRef> &Values) const {

diff  --git a/clang/lib/Basic/Targets/AArch64.h 
b/clang/lib/Basic/Targets/AArch64.h
index 0a29bad81939b..b4b66db34b9b7 100644
--- a/clang/lib/Basic/Targets/AArch64.h
+++ b/clang/lib/Basic/Targets/AArch64.h
@@ -167,7 +167,7 @@ class LLVM_LIBRARY_VISIBILITY AArch64TargetInfo : public 
TargetInfo {
 
   bool isValidCPUName(StringRef Name) const override;
   void fillValidCPUList(SmallVectorImpl<StringRef> &Values) const override;
-  bool setCPU(const std::string &Name) override;
+  bool setCPU(StringRef Name) override;
 
   llvm::APInt getFMVPriority(ArrayRef<StringRef> Features) const override;
 

diff  --git a/clang/lib/Basic/Targets/AMDGPU.h 
b/clang/lib/Basic/Targets/AMDGPU.h
index 1761f32266d41..baad17487e9a1 100644
--- a/clang/lib/Basic/Targets/AMDGPU.h
+++ b/clang/lib/Basic/Targets/AMDGPU.h
@@ -280,7 +280,7 @@ class LLVM_LIBRARY_VISIBILITY AMDGPUTargetInfo final : 
public TargetInfo {
 
   void fillValidCPUList(SmallVectorImpl<StringRef> &Values) const override;
 
-  bool setCPU(const std::string &Name) override {
+  bool setCPU(StringRef Name) override {
     if (getTriple().isAMDGCN()) {
       GPUKind = llvm::AMDGPU::parseArchAMDGCN(Name);
       GPUFeatures = llvm::AMDGPU::getArchAttrAMDGCN(GPUKind);

diff  --git a/clang/lib/Basic/Targets/ARM.cpp b/clang/lib/Basic/Targets/ARM.cpp
index f21e9ebbc903a..b9744ff9009ca 100644
--- a/clang/lib/Basic/Targets/ARM.cpp
+++ b/clang/lib/Basic/Targets/ARM.cpp
@@ -647,7 +647,7 @@ void 
ARMTargetInfo::fillValidCPUList(SmallVectorImpl<StringRef> &Values) const {
   llvm::ARM::fillValidCPUArchList(Values);
 }
 
-bool ARMTargetInfo::setCPU(const std::string &Name) {
+bool ARMTargetInfo::setCPU(StringRef Name) {
   if (Name != "generic")
     setArchInfo(llvm::ARM::parseCPUArch(Name));
 

diff  --git a/clang/lib/Basic/Targets/ARM.h b/clang/lib/Basic/Targets/ARM.h
index 43c4718f4735b..8bd56c8855fe3 100644
--- a/clang/lib/Basic/Targets/ARM.h
+++ b/clang/lib/Basic/Targets/ARM.h
@@ -173,7 +173,7 @@ class LLVM_LIBRARY_VISIBILITY ARMTargetInfo : public 
TargetInfo {
   bool isValidCPUName(StringRef Name) const override;
   void fillValidCPUList(SmallVectorImpl<StringRef> &Values) const override;
 
-  bool setCPU(const std::string &Name) override;
+  bool setCPU(StringRef Name) override;
 
   bool setFPMath(StringRef Name) override;
 

diff  --git a/clang/lib/Basic/Targets/AVR.cpp b/clang/lib/Basic/Targets/AVR.cpp
index 227651a2ab6fa..18db0a7807b53 100644
--- a/clang/lib/Basic/Targets/AVR.cpp
+++ b/clang/lib/Basic/Targets/AVR.cpp
@@ -501,7 +501,7 @@ void 
AVRTargetInfo::fillValidCPUList(SmallVectorImpl<StringRef> &Values) const {
     Values.push_back(Info.Name);
 }
 
-bool AVRTargetInfo::setCPU(const std::string &Name) {
+bool AVRTargetInfo::setCPU(StringRef Name) {
   // Set the ABI field based on the device or family name.
   auto It = llvm::find_if(
       AVRMcus, [&](const MCUInfo &Info) { return Info.Name == Name; });

diff  --git a/clang/lib/Basic/Targets/AVR.h b/clang/lib/Basic/Targets/AVR.h
index 211cf90fe9fb2..a49bbc0322816 100644
--- a/clang/lib/Basic/Targets/AVR.h
+++ b/clang/lib/Basic/Targets/AVR.h
@@ -173,7 +173,7 @@ class LLVM_LIBRARY_VISIBILITY AVRTargetInfo : public 
TargetInfo {
 
   bool isValidCPUName(StringRef Name) const override;
   void fillValidCPUList(SmallVectorImpl<StringRef> &Values) const override;
-  bool setCPU(const std::string &Name) override;
+  bool setCPU(StringRef Name) override;
   std::optional<std::string> handleAsmEscapedChar(char EscChar) const override;
   StringRef getABI() const override { return ABI; }
 

diff  --git a/clang/lib/Basic/Targets/BPF.h b/clang/lib/Basic/Targets/BPF.h
index 47bf1f94177d1..e51f37b851d48 100644
--- a/clang/lib/Basic/Targets/BPF.h
+++ b/clang/lib/Basic/Targets/BPF.h
@@ -99,7 +99,7 @@ class LLVM_LIBRARY_VISIBILITY BPFTargetInfo : public 
TargetInfo {
 
   void fillValidCPUList(SmallVectorImpl<StringRef> &Values) const override;
 
-  bool setCPU(const std::string &Name) override {
+  bool setCPU(StringRef Name) override {
     if (Name == "v3" || Name == "v4") {
       HasAlu32 = true;
     }

diff  --git a/clang/lib/Basic/Targets/CSKY.cpp 
b/clang/lib/Basic/Targets/CSKY.cpp
index e698508a2370c..7c6cf0e016744 100644
--- a/clang/lib/Basic/Targets/CSKY.cpp
+++ b/clang/lib/Basic/Targets/CSKY.cpp
@@ -19,7 +19,7 @@ bool CSKYTargetInfo::isValidCPUName(StringRef Name) const {
   return llvm::CSKY::parseCPUArch(Name) != llvm::CSKY::ArchKind::INVALID;
 }
 
-bool CSKYTargetInfo::setCPU(const std::string &Name) {
+bool CSKYTargetInfo::setCPU(StringRef Name) {
   llvm::CSKY::ArchKind archKind = llvm::CSKY::parseCPUArch(Name);
   bool isValid = (archKind != llvm::CSKY::ArchKind::INVALID);
 

diff  --git a/clang/lib/Basic/Targets/CSKY.h b/clang/lib/Basic/Targets/CSKY.h
index fbdec1ea6d92d..c4993db955cd6 100644
--- a/clang/lib/Basic/Targets/CSKY.h
+++ b/clang/lib/Basic/Targets/CSKY.h
@@ -65,7 +65,7 @@ class LLVM_LIBRARY_VISIBILITY CSKYTargetInfo : public 
TargetInfo {
     return false;
   }
 
-  bool setCPU(const std::string &Name) override;
+  bool setCPU(StringRef Name) override;
 
   bool isValidCPUName(StringRef Name) const override;
 

diff  --git a/clang/lib/Basic/Targets/Hexagon.h 
b/clang/lib/Basic/Targets/Hexagon.h
index f034911d77b92..70e2cc0fa9737 100644
--- a/clang/lib/Basic/Targets/Hexagon.h
+++ b/clang/lib/Basic/Targets/Hexagon.h
@@ -123,7 +123,7 @@ class LLVM_LIBRARY_VISIBILITY HexagonTargetInfo : public 
TargetInfo {
 
   void fillValidCPUList(SmallVectorImpl<StringRef> &Values) const override;
 
-  bool setCPU(const std::string &Name) override {
+  bool setCPU(StringRef Name) override {
     if (!isValidCPUName(Name))
       return false;
     CPU = Name;

diff  --git a/clang/lib/Basic/Targets/Lanai.cpp 
b/clang/lib/Basic/Targets/Lanai.cpp
index 8722a369ed87f..51df5c951f660 100644
--- a/clang/lib/Basic/Targets/Lanai.cpp
+++ b/clang/lib/Basic/Targets/Lanai.cpp
@@ -44,7 +44,7 @@ void LanaiTargetInfo::fillValidCPUList(
   Values.emplace_back("v11");
 }
 
-bool LanaiTargetInfo::setCPU(const std::string &Name) {
+bool LanaiTargetInfo::setCPU(StringRef Name) {
   CPU = llvm::StringSwitch<CPUKind>(Name).Case("v11", CK_V11).Default(CK_NONE);
 
   return CPU != CK_NONE;

diff  --git a/clang/lib/Basic/Targets/Lanai.h b/clang/lib/Basic/Targets/Lanai.h
index a49c425965445..6989cf8c3be10 100644
--- a/clang/lib/Basic/Targets/Lanai.h
+++ b/clang/lib/Basic/Targets/Lanai.h
@@ -58,7 +58,7 @@ class LLVM_LIBRARY_VISIBILITY LanaiTargetInfo : public 
TargetInfo {
 
   void fillValidCPUList(SmallVectorImpl<StringRef> &Values) const override;
 
-  bool setCPU(const std::string &Name) override;
+  bool setCPU(StringRef Name) override;
 
   bool hasFeature(StringRef Feature) const override;
 

diff  --git a/clang/lib/Basic/Targets/LoongArch.h 
b/clang/lib/Basic/Targets/LoongArch.h
index bb1c2edacf103..16124a87d4955 100644
--- a/clang/lib/Basic/Targets/LoongArch.h
+++ b/clang/lib/Basic/Targets/LoongArch.h
@@ -65,7 +65,7 @@ class LLVM_LIBRARY_VISIBILITY LoongArchTargetInfo : public 
TargetInfo {
     BitIntMaxAlign = 128;
   }
 
-  bool setCPU(const std::string &Name) override {
+  bool setCPU(StringRef Name) override {
     if (!isValidCPUName(Name))
       return false;
     CPU = Name;

diff  --git a/clang/lib/Basic/Targets/M68k.cpp 
b/clang/lib/Basic/Targets/M68k.cpp
index 293cbe5ce9272..fde1e3953a6c0 100644
--- a/clang/lib/Basic/Targets/M68k.cpp
+++ b/clang/lib/Basic/Targets/M68k.cpp
@@ -35,9 +35,8 @@ M68kTargetInfo::M68kTargetInfo(const llvm::Triple &Triple,
   IntAlign = LongAlign = PointerAlign = 16;
 }
 
-bool M68kTargetInfo::setCPU(const std::string &Name) {
-  StringRef N = Name;
-  CPU = llvm::StringSwitch<CPUKind>(N)
+bool M68kTargetInfo::setCPU(StringRef Name) {
+  CPU = llvm::StringSwitch<CPUKind>(Name)
             .Case("generic", CK_68000)
             .Case("M68000", CK_68000)
             .Case("M68010", CK_68010)

diff  --git a/clang/lib/Basic/Targets/M68k.h b/clang/lib/Basic/Targets/M68k.h
index 729d79ff77fbf..98add6a6221d5 100644
--- a/clang/lib/Basic/Targets/M68k.h
+++ b/clang/lib/Basic/Targets/M68k.h
@@ -54,7 +54,7 @@ class LLVM_LIBRARY_VISIBILITY M68kTargetInfo : public 
TargetInfo {
   std::optional<std::string> handleAsmEscapedChar(char EscChar) const override;
   std::string_view getClobbers() const override;
   BuiltinVaListKind getBuiltinVaListKind() const override;
-  bool setCPU(const std::string &Name) override;
+  bool setCPU(StringRef Name) override;
   CallingConvCheckResult checkCallingConvention(CallingConv CC) const override;
 
   std::pair<unsigned, unsigned> hardwareInterferenceSizes() const override {

diff  --git a/clang/lib/Basic/Targets/Mips.h b/clang/lib/Basic/Targets/Mips.h
index 4c09390c3c6d5..2f251c7eb8690 100644
--- a/clang/lib/Basic/Targets/Mips.h
+++ b/clang/lib/Basic/Targets/Mips.h
@@ -155,7 +155,7 @@ class LLVM_LIBRARY_VISIBILITY MipsTargetInfo : public 
TargetInfo {
   bool isValidCPUName(StringRef Name) const override;
   void fillValidCPUList(SmallVectorImpl<StringRef> &Values) const override;
 
-  bool setCPU(const std::string &Name) override {
+  bool setCPU(StringRef Name) override {
     CPU = Name;
     return isValidCPUName(Name);
   }

diff  --git a/clang/lib/Basic/Targets/NVPTX.h b/clang/lib/Basic/Targets/NVPTX.h
index 69ee20f38343b..8af9cb91c47ab 100644
--- a/clang/lib/Basic/Targets/NVPTX.h
+++ b/clang/lib/Basic/Targets/NVPTX.h
@@ -158,7 +158,7 @@ class LLVM_LIBRARY_VISIBILITY NVPTXTargetInfo : public 
TargetInfo {
       Values.emplace_back(OffloadArchToString(static_cast<OffloadArch>(i)));
   }
 
-  bool setCPU(const std::string &Name) override {
+  bool setCPU(StringRef Name) override {
     GPU = StringToOffloadArch(Name);
     return GPU != OffloadArch::Unknown;
   }

diff  --git a/clang/lib/Basic/Targets/PPC.h b/clang/lib/Basic/Targets/PPC.h
index a9f49aa3aebe1..e3bf5072d932d 100644
--- a/clang/lib/Basic/Targets/PPC.h
+++ b/clang/lib/Basic/Targets/PPC.h
@@ -98,7 +98,7 @@ class LLVM_LIBRARY_VISIBILITY PPCTargetInfo : public 
TargetInfo {
   bool isValidCPUName(StringRef Name) const override;
   void fillValidCPUList(SmallVectorImpl<StringRef> &Values) const override;
 
-  bool setCPU(const std::string &Name) override {
+  bool setCPU(StringRef Name) override {
     bool CPUKnown = isValidCPUName(Name);
     if (CPUKnown) {
       CPU = Name;

diff  --git a/clang/lib/Basic/Targets/RISCV.h b/clang/lib/Basic/Targets/RISCV.h
index 705ee0694038b..193f77fe68a0b 100644
--- a/clang/lib/Basic/Targets/RISCV.h
+++ b/clang/lib/Basic/Targets/RISCV.h
@@ -51,7 +51,7 @@ class RISCVTargetInfo : public TargetInfo {
     HasStrictFP = true;
   }
 
-  bool setCPU(const std::string &Name) override {
+  bool setCPU(StringRef Name) override {
     if (!isValidCPUName(Name))
       return false;
     CPU = Name;

diff  --git a/clang/lib/Basic/Targets/Sparc.h b/clang/lib/Basic/Targets/Sparc.h
index d9a879ca4d5b3..95b69ff2be4bb 100644
--- a/clang/lib/Basic/Targets/Sparc.h
+++ b/clang/lib/Basic/Targets/Sparc.h
@@ -136,7 +136,7 @@ class LLVM_LIBRARY_VISIBILITY SparcTargetInfo : public 
TargetInfo {
 
   void fillValidCPUList(SmallVectorImpl<StringRef> &Values) const override;
 
-  bool setCPU(const std::string &Name) override {
+  bool setCPU(StringRef Name) override {
     CPU = getCPUKind(Name);
     return CPU != CK_GENERIC;
   }
@@ -234,7 +234,7 @@ class LLVM_LIBRARY_VISIBILITY SparcV9TargetInfo : public 
SparcTargetInfo {
 
   void fillValidCPUList(SmallVectorImpl<StringRef> &Values) const override;
 
-  bool setCPU(const std::string &Name) override {
+  bool setCPU(StringRef Name) override {
     if (!SparcTargetInfo::setCPU(Name))
       return false;
     return getCPUGeneration(CPU) == CG_V9;

diff  --git a/clang/lib/Basic/Targets/SystemZ.h 
b/clang/lib/Basic/Targets/SystemZ.h
index 00f7d7a055b24..70b529e8ca854 100644
--- a/clang/lib/Basic/Targets/SystemZ.h
+++ b/clang/lib/Basic/Targets/SystemZ.h
@@ -185,7 +185,7 @@ class LLVM_LIBRARY_VISIBILITY SystemZTargetInfo : public 
TargetInfo {
     fillValidCPUList(Values);
   }
 
-  bool setCPU(const std::string &Name) override {
+  bool setCPU(StringRef Name) override {
     ISARevision = getISARevision(Name);
     return ISARevision != -1;
   }

diff  --git a/clang/lib/Basic/Targets/WebAssembly.h 
b/clang/lib/Basic/Targets/WebAssembly.h
index fa0a2b9b505e0..2732cafb3906d 100644
--- a/clang/lib/Basic/Targets/WebAssembly.h
+++ b/clang/lib/Basic/Targets/WebAssembly.h
@@ -142,7 +142,7 @@ class LLVM_LIBRARY_VISIBILITY WebAssemblyTargetInfo : 
public TargetInfo {
   bool isValidCPUName(StringRef Name) const final;
   void fillValidCPUList(SmallVectorImpl<StringRef> &Values) const final;
 
-  bool setCPU(const std::string &Name) final { return isValidCPUName(Name); }
+  bool setCPU(StringRef Name) final { return isValidCPUName(Name); }
 
   llvm::SmallVector<Builtin::InfosShard> getTargetBuiltins() const final;
 

diff  --git a/clang/lib/Basic/Targets/X86.h b/clang/lib/Basic/Targets/X86.h
index c8c5d280754b4..f9c39b31f5e08 100644
--- a/clang/lib/Basic/Targets/X86.h
+++ b/clang/lib/Basic/Targets/X86.h
@@ -391,7 +391,7 @@ class LLVM_LIBRARY_VISIBILITY X86TargetInfo : public 
TargetInfo {
   void fillValidCPUList(SmallVectorImpl<StringRef> &Values) const override;
   void fillValidTuneCPUList(SmallVectorImpl<StringRef> &Values) const override;
 
-  bool setCPU(const std::string &Name) override {
+  bool setCPU(StringRef Name) override {
     bool Only64Bit = getTriple().getArch() != llvm::Triple::x86;
     CPU = llvm::X86::parseArchX86(Name, Only64Bit);
     return CPU != llvm::X86::CK_None;

diff  --git a/clang/lib/Basic/Targets/Xtensa.h 
b/clang/lib/Basic/Targets/Xtensa.h
index 79783dddd4b64..fd76e38f797d2 100644
--- a/clang/lib/Basic/Targets/Xtensa.h
+++ b/clang/lib/Basic/Targets/Xtensa.h
@@ -100,7 +100,7 @@ class LLVM_LIBRARY_VISIBILITY XtensaTargetInfo : public 
TargetInfo {
     return llvm::StringSwitch<bool>(Name).Case("generic", true).Default(false);
   }
 
-  bool setCPU(const std::string &Name) override {
+  bool setCPU(StringRef Name) override {
     CPU = Name;
     return isValidCPUName(Name);
   }


        
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to