[llvm] 07e7168 - [AArch64] Stringref'ize AArch64Subtarget constructor. NFCI

Benjamin Kramer via llvm-commits llvm-commits at lists.llvm.org
Fri Dec 30 09:04:54 PST 2022


Author: Benjamin Kramer
Date: 2022-12-30T18:02:53+01:00
New Revision: 07e7168048b18cf3b82d39c9f38a06d8c19e893a

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

LOG: [AArch64] Stringref'ize AArch64Subtarget constructor. NFCI

Added: 
    

Modified: 
    llvm/lib/Target/AArch64/AArch64Subtarget.cpp
    llvm/lib/Target/AArch64/AArch64Subtarget.h
    llvm/lib/Target/AArch64/AArch64TargetMachine.cpp

Removed: 
    


################################################################################
diff  --git a/llvm/lib/Target/AArch64/AArch64Subtarget.cpp b/llvm/lib/Target/AArch64/AArch64Subtarget.cpp
index 5dfe74fd1f1a1..e1d9a562d1b7b 100644
--- a/llvm/lib/Target/AArch64/AArch64Subtarget.cpp
+++ b/llvm/lib/Target/AArch64/AArch64Subtarget.cpp
@@ -275,9 +275,8 @@ void AArch64Subtarget::initializeProperties() {
   }
 }
 
-AArch64Subtarget::AArch64Subtarget(const Triple &TT, const std::string &CPU,
-                                   const std::string &TuneCPU,
-                                   const std::string &FS,
+AArch64Subtarget::AArch64Subtarget(const Triple &TT, StringRef CPU,
+                                   StringRef TuneCPU, StringRef FS,
                                    const TargetMachine &TM, bool LittleEndian,
                                    unsigned MinSVEVectorSizeInBitsOverride,
                                    unsigned MaxSVEVectorSizeInBitsOverride,

diff  --git a/llvm/lib/Target/AArch64/AArch64Subtarget.h b/llvm/lib/Target/AArch64/AArch64Subtarget.h
index 511100047ee67..f8b1b34ea61de 100644
--- a/llvm/lib/Target/AArch64/AArch64Subtarget.h
+++ b/llvm/lib/Target/AArch64/AArch64Subtarget.h
@@ -157,9 +157,8 @@ class AArch64Subtarget final : public AArch64GenSubtargetInfo {
 public:
   /// This constructor initializes the data members to match that
   /// of the specified triple.
-  AArch64Subtarget(const Triple &TT, const std::string &CPU,
-                   const std::string &TuneCPU, const std::string &FS,
-                   const TargetMachine &TM, bool LittleEndian,
+  AArch64Subtarget(const Triple &TT, StringRef CPU, StringRef TuneCPU,
+                   StringRef FS, const TargetMachine &TM, bool LittleEndian,
                    unsigned MinSVEVectorSizeInBitsOverride = 0,
                    unsigned MaxSVEVectorSizeInBitsOverride = 0,
                    bool StreamingSVEModeDisabled = true);

diff  --git a/llvm/lib/Target/AArch64/AArch64TargetMachine.cpp b/llvm/lib/Target/AArch64/AArch64TargetMachine.cpp
index 896b9f9bcdc8d..1dabd558c9df6 100644
--- a/llvm/lib/Target/AArch64/AArch64TargetMachine.cpp
+++ b/llvm/lib/Target/AArch64/AArch64TargetMachine.cpp
@@ -386,14 +386,9 @@ AArch64TargetMachine::getSubtargetImpl(const Function &F) const {
   Attribute TuneAttr = F.getFnAttribute("tune-cpu");
   Attribute FSAttr = F.getFnAttribute("target-features");
 
-  std::string CPU =
-      CPUAttr.isValid() ? CPUAttr.getValueAsString().str() : TargetCPU;
-  std::string TuneCPU =
-      TuneAttr.isValid() ? TuneAttr.getValueAsString().str() : CPU;
-  std::string FS =
-      FSAttr.isValid() ? FSAttr.getValueAsString().str() : TargetFS;
-
-  SmallString<512> Key;
+  StringRef CPU = CPUAttr.isValid() ? CPUAttr.getValueAsString() : TargetCPU;
+  StringRef TuneCPU = TuneAttr.isValid() ? TuneAttr.getValueAsString() : CPU;
+  StringRef FS = FSAttr.isValid() ? FSAttr.getValueAsString() : TargetFS;
 
   bool StreamingSVEModeDisabled =
       !F.hasFnAttribute("aarch64_pstate_sm_enabled") &&
@@ -429,14 +424,10 @@ AArch64TargetMachine::getSubtargetImpl(const Function &F) const {
         (std::max(MinSVEVectorSize, MaxSVEVectorSize) / 128) * 128;
   }
 
-  Key += "SVEMin";
-  Key += std::to_string(MinSVEVectorSize);
-  Key += "SVEMax";
-  Key += std::to_string(MaxSVEVectorSize);
-  Key += "StreamingSVEModeDisabled=" + std::to_string(StreamingSVEModeDisabled);
-  Key += CPU;
-  Key += TuneCPU;
-  Key += FS;
+  SmallString<512> Key;
+  raw_svector_ostream(Key) << "SVEMin" << MinSVEVectorSize << "SVEMax"
+                           << MaxSVEVectorSize << "StreamingSVEModeDisabled="
+                           << StreamingSVEModeDisabled << CPU << TuneCPU << FS;
 
   auto &I = SubtargetMap[Key];
   if (!I) {


        


More information about the llvm-commits mailing list