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
