[llvm] 298ace7 - [TableGen] Use std::string::find (NFC) (#139681)

via llvm-commits llvm-commits at lists.llvm.org
Tue May 13 15:50:12 PDT 2025


Author: Kazu Hirata
Date: 2025-05-13T15:50:09-07:00
New Revision: 298ace7dff4f612e1d7dbf7bc18c32ee6c6c774b

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

LOG: [TableGen] Use std::string::find (NFC) (#139681)

This patch partially reverts #139661 for a better solution.
Specifically, we can take advantage of the fact that std::string::find
accepts anything that can be converted to std::string_view, including
StringRef, starting with C++17.  This way, we do not need to cast Val
to StringRef or LHSs->getValue() to std::string.

Added: 
    

Modified: 
    llvm/lib/TableGen/Record.cpp

Removed: 
    


################################################################################
diff  --git a/llvm/lib/TableGen/Record.cpp b/llvm/lib/TableGen/Record.cpp
index 0d9fcb0e63dae..b01257fd71359 100644
--- a/llvm/lib/TableGen/Record.cpp
+++ b/llvm/lib/TableGen/Record.cpp
@@ -1796,14 +1796,13 @@ const Init *TernOpInit::Fold(const Record *CurRec) const {
     if (LHSs && MHSs && RHSs) {
       std::string Val = RHSs->getValue().str();
 
-      StringRef::size_type found;
-      StringRef::size_type idx = 0;
+      std::string::size_type Idx = 0;
       while (true) {
-        found = StringRef(Val).find(LHSs->getValue(), idx);
-        if (found == StringRef::npos)
+        std::string::size_type Found = Val.find(LHSs->getValue(), Idx);
+        if (Found == std::string::npos)
           break;
-        Val.replace(found, LHSs->getValue().size(), MHSs->getValue().str());
-        idx = found + MHSs->getValue().size();
+        Val.replace(Found, LHSs->getValue().size(), MHSs->getValue().str());
+        Idx = Found + MHSs->getValue().size();
       }
 
       return StringInit::get(RK, Val);


        


More information about the llvm-commits mailing list