[clang] d39923c - clang: Change TargetInfo::setCPU to take StringRef (#205278)
via cfe-commits
cfe-commits at lists.llvm.org
Tue Jun 23 02:07:57 PDT 2026
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) <noreply at anthropic.com>
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);
}
More information about the cfe-commits
mailing list