[Lldb-commits] [lldb] 13a3b0b - [lldb] Remove usages of case-insensitive c-string functions

Pavel Labath via lldb-commits lldb-commits at lists.llvm.org
Tue Mar 29 08:59:24 PDT 2022


Author: Pavel Labath
Date: 2022-03-29T17:59:17+02:00
New Revision: 13a3b0bb4b64fea08f26c654b7a810f9ca217c7a

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

LOG: [lldb] Remove usages of case-insensitive c-string functions

They are not portable (which meant we had a hand-rolled implementation
for windows), and llvm::StringRef provides equivalent functionality.

Added: 
    

Modified: 
    lldb/include/lldb/Host/windows/PosixApi.h
    lldb/source/API/SBFrame.cpp
    lldb/source/DataFormatters/FormatManager.cpp
    lldb/source/Host/windows/Windows.cpp
    lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.cpp
    lldb/source/Plugins/Instruction/MIPS/EmulateInstructionMIPS.cpp
    lldb/source/Plugins/Instruction/MIPS/EmulateInstructionMIPS.h
    lldb/source/Plugins/Instruction/MIPS64/EmulateInstructionMIPS64.cpp
    lldb/source/Plugins/Instruction/MIPS64/EmulateInstructionMIPS64.h
    lldb/source/Plugins/Platform/MacOSX/PlatformDarwin.cpp
    lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp

Removed: 
    


################################################################################
diff  --git a/lldb/include/lldb/Host/windows/PosixApi.h b/lldb/include/lldb/Host/windows/PosixApi.h
index 563af50fd229e..85e828c80eef1 100644
--- a/lldb/include/lldb/Host/windows/PosixApi.h
+++ b/lldb/include/lldb/Host/windows/PosixApi.h
@@ -89,14 +89,6 @@ typedef uint32_t pid_t;
 // Various useful posix functions that are not present in Windows.  We provide
 // custom implementations.
 int vasprintf(char **ret, const char *fmt, va_list ap);
-char *strcasestr(const char *s, const char *find);
-
-#ifdef _MSC_VER
-
-int strcasecmp(const char *s1, const char *s2);
-int strncasecmp(const char *s1, const char *s2, size_t n);
-
-#endif // _MSC_VER
 
 // empty functions
 inline int posix_openpt(int flag) { LLVM_BUILTIN_UNREACHABLE; }

diff  --git a/lldb/source/API/SBFrame.cpp b/lldb/source/API/SBFrame.cpp
index a67663fb09601..ea9c2bb747e1e 100644
--- a/lldb/source/API/SBFrame.cpp
+++ b/lldb/source/API/SBFrame.cpp
@@ -637,9 +637,9 @@ SBValue SBFrame::FindValue(const char *name, ValueType value_type,
             for (uint32_t set_idx = 0; set_idx < num_sets; ++set_idx) {
               const RegisterSet *reg_set = reg_ctx->GetRegisterSet(set_idx);
               if (reg_set &&
-                  ((reg_set->name && strcasecmp(reg_set->name, name) == 0) ||
-                   (reg_set->short_name &&
-                    strcasecmp(reg_set->short_name, name) == 0))) {
+                  (llvm::StringRef(reg_set->name).equals_insensitive(name) ||
+                   llvm::StringRef(reg_set->short_name)
+                       .equals_insensitive(name))) {
                 value_sp =
                     ValueObjectRegisterSet::Create(frame, reg_ctx, set_idx);
                 sb_value.SetSP(value_sp);

diff  --git a/lldb/source/DataFormatters/FormatManager.cpp b/lldb/source/DataFormatters/FormatManager.cpp
index c42a5fbfcebb0..a8390c5d79c6a 100644
--- a/lldb/source/DataFormatters/FormatManager.cpp
+++ b/lldb/source/DataFormatters/FormatManager.cpp
@@ -89,11 +89,11 @@ static bool GetFormatFromFormatChar(char format_char, Format &format) {
   return false;
 }
 
-static bool GetFormatFromFormatName(const char *format_name,
+static bool GetFormatFromFormatName(llvm::StringRef format_name,
                                     bool partial_match_ok, Format &format) {
   uint32_t i;
   for (i = 0; i < g_num_format_infos; ++i) {
-    if (strcasecmp(g_format_infos[i].format_name, format_name) == 0) {
+    if (format_name.equals_insensitive(g_format_infos[i].format_name)) {
       format = g_format_infos[i].format;
       return true;
     }
@@ -101,8 +101,8 @@ static bool GetFormatFromFormatName(const char *format_name,
 
   if (partial_match_ok) {
     for (i = 0; i < g_num_format_infos; ++i) {
-      if (strcasestr(g_format_infos[i].format_name, format_name) ==
-          g_format_infos[i].format_name) {
+      if (llvm::StringRef(g_format_infos[i].format_name)
+              .startswith_insensitive(format_name)) {
         format = g_format_infos[i].format;
         return true;
       }

diff  --git a/lldb/source/Host/windows/Windows.cpp b/lldb/source/Host/windows/Windows.cpp
index d2561a6c5b6df..a74858301ee5a 100644
--- a/lldb/source/Host/windows/Windows.cpp
+++ b/lldb/source/Host/windows/Windows.cpp
@@ -44,32 +44,8 @@ int vasprintf(char **ret, const char *fmt, va_list ap) {
   return len;
 }
 
-char *strcasestr(const char *s, const char *find) {
-  char c, sc;
-  size_t len;
-
-  if ((c = *find++) != 0) {
-    c = tolower((unsigned char)c);
-    len = strlen(find);
-    do {
-      do {
-        if ((sc = *s++) == 0)
-          return 0;
-      } while ((char)tolower((unsigned char)sc) != c);
-    } while (strncasecmp(s, find, len) != 0);
-    s--;
-  }
-  return const_cast<char *>(s);
-}
-
 #ifdef _MSC_VER
 
-int strcasecmp(const char *s1, const char *s2) { return stricmp(s1, s2); }
-
-int strncasecmp(const char *s1, const char *s2, size_t n) {
-  return strnicmp(s1, s2, n);
-}
-
 #if _MSC_VER < 1900
 namespace lldb_private {
 int vsnprintf(char *buffer, size_t count, const char *format, va_list argptr) {

diff  --git a/lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.cpp b/lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.cpp
index 5a238c5d4ac78..5bc745cf3b8b4 100644
--- a/lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.cpp
+++ b/lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.cpp
@@ -13761,35 +13761,33 @@ EmulateInstructionARM::GetThumbOpcodeForInstruction(const uint32_t opcode,
 bool EmulateInstructionARM::SetArchitecture(const ArchSpec &arch) {
   m_arch = arch;
   m_arm_isa = 0;
-  const char *arch_cstr = arch.GetArchitectureName();
-  if (arch_cstr) {
-    if (0 == ::strcasecmp(arch_cstr, "armv4t"))
-      m_arm_isa = ARMv4T;
-    else if (0 == ::strcasecmp(arch_cstr, "armv5tej"))
-      m_arm_isa = ARMv5TEJ;
-    else if (0 == ::strcasecmp(arch_cstr, "armv5te"))
-      m_arm_isa = ARMv5TE;
-    else if (0 == ::strcasecmp(arch_cstr, "armv5t"))
-      m_arm_isa = ARMv5T;
-    else if (0 == ::strcasecmp(arch_cstr, "armv6k"))
-      m_arm_isa = ARMv6K;
-    else if (0 == ::strcasecmp(arch_cstr, "armv6t2"))
-      m_arm_isa = ARMv6T2;
-    else if (0 == ::strcasecmp(arch_cstr, "armv7s"))
-      m_arm_isa = ARMv7S;
-    else if (0 == ::strcasecmp(arch_cstr, "arm"))
-      m_arm_isa = ARMvAll;
-    else if (0 == ::strcasecmp(arch_cstr, "thumb"))
-      m_arm_isa = ARMvAll;
-    else if (0 == ::strncasecmp(arch_cstr, "armv4", 5))
-      m_arm_isa = ARMv4;
-    else if (0 == ::strncasecmp(arch_cstr, "armv6", 5))
-      m_arm_isa = ARMv6;
-    else if (0 == ::strncasecmp(arch_cstr, "armv7", 5))
-      m_arm_isa = ARMv7;
-    else if (0 == ::strncasecmp(arch_cstr, "armv8", 5))
-      m_arm_isa = ARMv8;
-  }
+  llvm::StringRef arch_cstr = arch.GetArchitectureName();
+  if (arch_cstr.equals_insensitive("armv4t"))
+    m_arm_isa = ARMv4T;
+  else if (arch_cstr.equals_insensitive("armv5tej"))
+    m_arm_isa = ARMv5TEJ;
+  else if (arch_cstr.equals_insensitive("armv5te"))
+    m_arm_isa = ARMv5TE;
+  else if (arch_cstr.equals_insensitive("armv5t"))
+    m_arm_isa = ARMv5T;
+  else if (arch_cstr.equals_insensitive("armv6k"))
+    m_arm_isa = ARMv6K;
+  else if (arch_cstr.equals_insensitive("armv6t2"))
+    m_arm_isa = ARMv6T2;
+  else if (arch_cstr.equals_insensitive("armv7s"))
+    m_arm_isa = ARMv7S;
+  else if (arch_cstr.equals_insensitive("arm"))
+    m_arm_isa = ARMvAll;
+  else if (arch_cstr.equals_insensitive("thumb"))
+    m_arm_isa = ARMvAll;
+  else if (arch_cstr.startswith_insensitive("armv4"))
+    m_arm_isa = ARMv4;
+  else if (arch_cstr.startswith_insensitive("armv6"))
+    m_arm_isa = ARMv6;
+  else if (arch_cstr.startswith_insensitive("armv7"))
+    m_arm_isa = ARMv7;
+  else if (arch_cstr.startswith_insensitive("armv8"))
+    m_arm_isa = ARMv8;
   return m_arm_isa != 0;
 }
 

diff  --git a/lldb/source/Plugins/Instruction/MIPS/EmulateInstructionMIPS.cpp b/lldb/source/Plugins/Instruction/MIPS/EmulateInstructionMIPS.cpp
index 4ef0a034b6dd4..7aff11ede400d 100644
--- a/lldb/source/Plugins/Instruction/MIPS/EmulateInstructionMIPS.cpp
+++ b/lldb/source/Plugins/Instruction/MIPS/EmulateInstructionMIPS.cpp
@@ -668,7 +668,7 @@ bool EmulateInstructionMIPS::GetRegisterInfo(RegisterKind reg_kind,
 }
 
 EmulateInstructionMIPS::MipsOpcode *
-EmulateInstructionMIPS::GetOpcodeForInstruction(const char *op_name) {
+EmulateInstructionMIPS::GetOpcodeForInstruction(llvm::StringRef name) {
   static EmulateInstructionMIPS::MipsOpcode g_opcodes[] = {
       // Prologue/Epilogue instructions
       {"ADDiu", &EmulateInstructionMIPS::Emulate_ADDiu,
@@ -954,13 +954,10 @@ EmulateInstructionMIPS::GetOpcodeForInstruction(const char *op_name) {
       {"JALRS_MM", &EmulateInstructionMIPS::Emulate_JALRS, "JALRS rt, rs"},
   };
 
-  static const size_t k_num_mips_opcodes = llvm::array_lengthof(g_opcodes);
-
-  for (size_t i = 0; i < k_num_mips_opcodes; ++i) {
-    if (!strcasecmp(g_opcodes[i].op_name, op_name))
-      return &g_opcodes[i];
+  for (MipsOpcode &opcode : g_opcodes) {
+    if (name.equals_insensitive(opcode.op_name))
+      return &opcode;
   }
-
   return nullptr;
 }
 
@@ -1342,7 +1339,7 @@ bool EmulateInstructionMIPS::Emulate_SUBU_ADDU(llvm::MCInst &insn) {
   bool success = false;
   uint64_t result;
   uint8_t src, dst, rt;
-  const char *op_name = m_insn_info->getName(insn.getOpcode()).data();
+  llvm::StringRef op_name = m_insn_info->getName(insn.getOpcode());
 
   dst = m_reg_info->getEncodingValue(insn.getOperand(0).getReg());
   src = m_reg_info->getEncodingValue(insn.getOperand(1).getReg());
@@ -1363,7 +1360,7 @@ bool EmulateInstructionMIPS::Emulate_SUBU_ADDU(llvm::MCInst &insn) {
     if (!success)
       return false;
 
-    if (!strcasecmp(op_name, "SUBU"))
+    if (op_name.equals_insensitive("SUBU"))
       result = src_opd_val - rt_opd_val;
     else
       result = src_opd_val + rt_opd_val;
@@ -1396,7 +1393,7 @@ bool EmulateInstructionMIPS::Emulate_SUBU_ADDU(llvm::MCInst &insn) {
 
     Context context;
 
-    if (!strcasecmp(op_name, "SUBU"))
+    if (op_name.equals_insensitive("SUBU"))
       result = src_opd_val - rt_opd_val;
     else
       result = src_opd_val + rt_opd_val;
@@ -1794,7 +1791,7 @@ bool EmulateInstructionMIPS::Emulate_BXX_3ops(llvm::MCInst &insn) {
   bool success = false;
   uint32_t rs, rt;
   int32_t offset, pc, target = 0, rs_val, rt_val;
-  const char *op_name = m_insn_info->getName(insn.getOpcode()).data();
+  llvm::StringRef op_name = m_insn_info->getName(insn.getOpcode());
 
   rs = m_reg_info->getEncodingValue(insn.getOperand(0).getReg());
   rt = m_reg_info->getEncodingValue(insn.getOperand(1).getReg());
@@ -1814,12 +1811,13 @@ bool EmulateInstructionMIPS::Emulate_BXX_3ops(llvm::MCInst &insn) {
   if (!success)
     return false;
 
-  if (!strcasecmp(op_name, "BEQ") || !strcasecmp(op_name, "BEQL")) {
+  if (op_name.equals_insensitive("BEQ") || op_name.equals_insensitive("BEQL")) {
     if (rs_val == rt_val)
       target = pc + offset;
     else
       target = pc + 8;
-  } else if (!strcasecmp(op_name, "BNE") || !strcasecmp(op_name, "BNEL")) {
+  } else if (op_name.equals_insensitive("BNE") ||
+             op_name.equals_insensitive("BNEL")) {
     if (rs_val != rt_val)
       target = pc + offset;
     else
@@ -1843,7 +1841,7 @@ bool EmulateInstructionMIPS::Emulate_BXX_3ops_C(llvm::MCInst &insn) {
   bool success = false;
   uint32_t rs, rt;
   int32_t offset, pc, target = 0, rs_val, rt_val;
-  const char *op_name = m_insn_info->getName(insn.getOpcode()).data();
+  llvm::StringRef op_name = m_insn_info->getName(insn.getOpcode());
   uint32_t current_inst_size = m_insn_info->get(insn.getOpcode()).getSize();
 
   rs = m_reg_info->getEncodingValue(insn.getOperand(0).getReg());
@@ -1864,42 +1862,42 @@ bool EmulateInstructionMIPS::Emulate_BXX_3ops_C(llvm::MCInst &insn) {
   if (!success)
     return false;
 
-  if (!strcasecmp(op_name, "BEQC")) {
+  if (op_name.equals_insensitive("BEQC")) {
     if (rs_val == rt_val)
       target = pc + offset;
     else
       target = pc + 4;
-  } else if (!strcasecmp(op_name, "BNEC")) {
+  } else if (op_name.equals_insensitive("BNEC")) {
     if (rs_val != rt_val)
       target = pc + offset;
     else
       target = pc + 4;
-  } else if (!strcasecmp(op_name, "BLTC")) {
+  } else if (op_name.equals_insensitive("BLTC")) {
     if (rs_val < rt_val)
       target = pc + offset;
     else
       target = pc + 4;
-  } else if (!strcasecmp(op_name, "BGEC")) {
+  } else if (op_name.equals_insensitive("BGEC")) {
     if (rs_val >= rt_val)
       target = pc + offset;
     else
       target = pc + 4;
-  } else if (!strcasecmp(op_name, "BLTUC")) {
+  } else if (op_name.equals_insensitive("BLTUC")) {
     if (rs_val < rt_val)
       target = pc + offset;
     else
       target = pc + 4;
-  } else if (!strcasecmp(op_name, "BGEUC")) {
+  } else if (op_name.equals_insensitive("BGEUC")) {
     if ((uint32_t)rs_val >= (uint32_t)rt_val)
       target = pc + offset;
     else
       target = pc + 4;
-  } else if (!strcasecmp(op_name, "BOVC")) {
+  } else if (op_name.equals_insensitive("BOVC")) {
     if (IsAdd64bitOverflow(rs_val, rt_val))
       target = pc + offset;
     else
       target = pc + 4;
-  } else if (!strcasecmp(op_name, "BNVC")) {
+  } else if (op_name.equals_insensitive("BNVC")) {
     if (!IsAdd64bitOverflow(rs_val, rt_val))
       target = pc + offset;
     else
@@ -1923,7 +1921,7 @@ bool EmulateInstructionMIPS::Emulate_Bcond_Link_C(llvm::MCInst &insn) {
   uint32_t rs;
   int32_t offset, pc, target = 0;
   int32_t rs_val;
-  const char *op_name = m_insn_info->getName(insn.getOpcode()).data();
+  llvm::StringRef op_name = m_insn_info->getName(insn.getOpcode());
 
   rs = m_reg_info->getEncodingValue(insn.getOperand(0).getReg());
   offset = insn.getOperand(1).getImm();
@@ -1937,32 +1935,32 @@ bool EmulateInstructionMIPS::Emulate_Bcond_Link_C(llvm::MCInst &insn) {
   if (!success)
     return false;
 
-  if (!strcasecmp(op_name, "BLEZALC")) {
+  if (op_name.equals_insensitive("BLEZALC")) {
     if (rs_val <= 0)
       target = pc + offset;
     else
       target = pc + 4;
-  } else if (!strcasecmp(op_name, "BGEZALC")) {
+  } else if (op_name.equals_insensitive("BGEZALC")) {
     if (rs_val >= 0)
       target = pc + offset;
     else
       target = pc + 4;
-  } else if (!strcasecmp(op_name, "BLTZALC")) {
+  } else if (op_name.equals_insensitive("BLTZALC")) {
     if (rs_val < 0)
       target = pc + offset;
     else
       target = pc + 4;
-  } else if (!strcasecmp(op_name, "BGTZALC")) {
+  } else if (op_name.equals_insensitive("BGTZALC")) {
     if (rs_val > 0)
       target = pc + offset;
     else
       target = pc + 4;
-  } else if (!strcasecmp(op_name, "BEQZALC")) {
+  } else if (op_name.equals_insensitive("BEQZALC")) {
     if (rs_val == 0)
       target = pc + offset;
     else
       target = pc + 4;
-  } else if (!strcasecmp(op_name, "BNEZALC")) {
+  } else if (op_name.equals_insensitive("BNEZALC")) {
     if (rs_val != 0)
       target = pc + offset;
     else
@@ -1992,7 +1990,7 @@ bool EmulateInstructionMIPS::Emulate_Bcond_Link(llvm::MCInst &insn) {
   uint32_t rs;
   int32_t offset, pc, target = 0;
   int32_t rs_val;
-  const char *op_name = m_insn_info->getName(insn.getOpcode()).data();
+  llvm::StringRef op_name = m_insn_info->getName(insn.getOpcode());
 
   rs = m_reg_info->getEncodingValue(insn.getOperand(0).getReg());
   offset = insn.getOperand(1).getImm();
@@ -2006,13 +2004,14 @@ bool EmulateInstructionMIPS::Emulate_Bcond_Link(llvm::MCInst &insn) {
   if (!success)
     return false;
 
-  if (!strcasecmp(op_name, "BLTZAL") || !strcasecmp(op_name, "BLTZALL")) {
+  if (op_name.equals_insensitive("BLTZAL") ||
+      op_name.equals_insensitive("BLTZALL")) {
     if ((int32_t)rs_val < 0)
       target = pc + offset;
     else
       target = pc + 8;
-  } else if (!strcasecmp(op_name, "BGEZAL") ||
-             !strcasecmp(op_name, "BGEZALL")) {
+  } else if (op_name.equals_insensitive("BGEZAL") ||
+             op_name.equals_insensitive("BGEZALL")) {
     if ((int32_t)rs_val >= 0)
       target = pc + offset;
     else
@@ -2042,7 +2041,7 @@ bool EmulateInstructionMIPS::Emulate_BXX_2ops(llvm::MCInst &insn) {
   uint32_t rs;
   int32_t offset, pc, target = 0;
   int32_t rs_val;
-  const char *op_name = m_insn_info->getName(insn.getOpcode()).data();
+  llvm::StringRef op_name = m_insn_info->getName(insn.getOpcode());
 
   rs = m_reg_info->getEncodingValue(insn.getOperand(0).getReg());
   offset = insn.getOperand(1).getImm();
@@ -2056,22 +2055,26 @@ bool EmulateInstructionMIPS::Emulate_BXX_2ops(llvm::MCInst &insn) {
   if (!success)
     return false;
 
-  if (!strcasecmp(op_name, "BLTZL") || !strcasecmp(op_name, "BLTZ")) {
+  if (op_name.equals_insensitive("BLTZL") ||
+      op_name.equals_insensitive("BLTZ")) {
     if (rs_val < 0)
       target = pc + offset;
     else
       target = pc + 8;
-  } else if (!strcasecmp(op_name, "BGEZL") || !strcasecmp(op_name, "BGEZ")) {
+  } else if (op_name.equals_insensitive("BGEZL") ||
+             op_name.equals_insensitive("BGEZ")) {
     if (rs_val >= 0)
       target = pc + offset;
     else
       target = pc + 8;
-  } else if (!strcasecmp(op_name, "BGTZL") || !strcasecmp(op_name, "BGTZ")) {
+  } else if (op_name.equals_insensitive("BGTZL") ||
+             op_name.equals_insensitive("BGTZ")) {
     if (rs_val > 0)
       target = pc + offset;
     else
       target = pc + 8;
-  } else if (!strcasecmp(op_name, "BLEZL") || !strcasecmp(op_name, "BLEZ")) {
+  } else if (op_name.equals_insensitive("BLEZL") ||
+             op_name.equals_insensitive("BLEZ")) {
     if (rs_val <= 0)
       target = pc + offset;
     else
@@ -2095,7 +2098,7 @@ bool EmulateInstructionMIPS::Emulate_BXX_2ops_C(llvm::MCInst &insn) {
   uint32_t rs;
   int32_t offset, pc, target = 0;
   int32_t rs_val;
-  const char *op_name = m_insn_info->getName(insn.getOpcode()).data();
+  llvm::StringRef op_name = m_insn_info->getName(insn.getOpcode());
   uint32_t current_inst_size = m_insn_info->get(insn.getOpcode()).getSize();
 
   rs = m_reg_info->getEncodingValue(insn.getOperand(0).getReg());
@@ -2110,32 +2113,32 @@ bool EmulateInstructionMIPS::Emulate_BXX_2ops_C(llvm::MCInst &insn) {
   if (!success)
     return false;
 
-  if (!strcasecmp(op_name, "BLTZC")) {
+  if (op_name.equals_insensitive("BLTZC")) {
     if (rs_val < 0)
       target = pc + offset;
     else
       target = pc + 4;
-  } else if (!strcasecmp(op_name, "BLEZC")) {
+  } else if (op_name.equals_insensitive("BLEZC")) {
     if (rs_val <= 0)
       target = pc + offset;
     else
       target = pc + 4;
-  } else if (!strcasecmp(op_name, "BGEZC")) {
+  } else if (op_name.equals_insensitive("BGEZC")) {
     if (rs_val >= 0)
       target = pc + offset;
     else
       target = pc + 4;
-  } else if (!strcasecmp(op_name, "BGTZC")) {
+  } else if (op_name.equals_insensitive("BGTZC")) {
     if (rs_val > 0)
       target = pc + offset;
     else
       target = pc + 4;
-  } else if (!strcasecmp(op_name, "BEQZC")) {
+  } else if (op_name.equals_insensitive("BEQZC")) {
     if (rs_val == 0)
       target = pc + offset;
     else
       target = pc + 4;
-  } else if (!strcasecmp(op_name, "BNEZC")) {
+  } else if (op_name.equals_insensitive("BNEZC")) {
     if (rs_val != 0)
       target = pc + offset;
     else
@@ -2181,7 +2184,7 @@ bool EmulateInstructionMIPS::Emulate_Branch_MM(llvm::MCInst &insn) {
   bool success = false;
   int32_t target = 0;
   uint32_t current_inst_size = m_insn_info->get(insn.getOpcode()).getSize();
-  const char *op_name = m_insn_info->getName(insn.getOpcode()).data();
+  llvm::StringRef op_name = m_insn_info->getName(insn.getOpcode());
   bool update_ra = false;
   uint32_t ra_offset = 0;
 
@@ -2215,33 +2218,33 @@ bool EmulateInstructionMIPS::Emulate_Branch_MM(llvm::MCInst &insn) {
   if (!success)
     return false;
 
-  if (!strcasecmp(op_name, "BEQZ16_MM")) {
+  if (op_name.equals_insensitive("BEQZ16_MM")) {
     if (rs_val == 0)
       target = pc + offset;
     else
       target = pc + current_inst_size +
                m_next_inst_size; // Skip delay slot instruction.
-  } else if (!strcasecmp(op_name, "BNEZ16_MM")) {
+  } else if (op_name.equals_insensitive("BNEZ16_MM")) {
     if (rs_val != 0)
       target = pc + offset;
     else
       target = pc + current_inst_size +
                m_next_inst_size; // Skip delay slot instruction.
-  } else if (!strcasecmp(op_name, "BEQZC_MM")) {
+  } else if (op_name.equals_insensitive("BEQZC_MM")) {
     if (rs_val == 0)
       target = pc + 4 + offset;
     else
       target =
           pc +
           4; // 32 bit instruction and does not have delay slot instruction.
-  } else if (!strcasecmp(op_name, "BNEZC_MM")) {
+  } else if (op_name.equals_insensitive("BNEZC_MM")) {
     if (rs_val != 0)
       target = pc + 4 + offset;
     else
       target =
           pc +
           4; // 32 bit instruction and does not have delay slot instruction.
-  } else if (!strcasecmp(op_name, "BGEZALS_MM")) {
+  } else if (op_name.equals_insensitive("BGEZALS_MM")) {
     if (rs_val >= 0)
       target = pc + offset;
     else
@@ -2249,7 +2252,7 @@ bool EmulateInstructionMIPS::Emulate_Branch_MM(llvm::MCInst &insn) {
 
     update_ra = true;
     ra_offset = 6;
-  } else if (!strcasecmp(op_name, "BLTZALS_MM")) {
+  } else if (op_name.equals_insensitive("BLTZALS_MM")) {
     if (rs_val >= 0)
       target = pc + offset;
     else
@@ -2281,7 +2284,7 @@ bool EmulateInstructionMIPS::Emulate_Branch_MM(llvm::MCInst &insn) {
 bool EmulateInstructionMIPS::Emulate_JALRx16_MM(llvm::MCInst &insn) {
   bool success = false;
   uint32_t ra_offset = 0;
-  const char *op_name = m_insn_info->getName(insn.getOpcode()).data();
+  llvm::StringRef op_name = m_insn_info->getName(insn.getOpcode());
 
   uint32_t rs = m_reg_info->getEncodingValue(insn.getOperand(0).getReg());
 
@@ -2295,9 +2298,9 @@ bool EmulateInstructionMIPS::Emulate_JALRx16_MM(llvm::MCInst &insn) {
   if (!success)
     return false;
 
-  if (!strcasecmp(op_name, "JALR16_MM"))
+  if (op_name.equals_insensitive("JALR16_MM"))
     ra_offset = 6; // 2-byte instruction with 4-byte delay slot.
-  else if (!strcasecmp(op_name, "JALRS16_MM"))
+  else if (op_name.equals_insensitive("JALRS16_MM"))
     ra_offset = 4; // 2-byte instruction with 2-byte delay slot.
 
   Context context;
@@ -2320,7 +2323,7 @@ bool EmulateInstructionMIPS::Emulate_JALRx16_MM(llvm::MCInst &insn) {
 bool EmulateInstructionMIPS::Emulate_JALx(llvm::MCInst &insn) {
   bool success = false;
   uint32_t offset = 0, target = 0, pc = 0, ra_offset = 0;
-  const char *op_name = m_insn_info->getName(insn.getOpcode()).data();
+  llvm::StringRef op_name = m_insn_info->getName(insn.getOpcode());
 
   /*
    * JALS target
@@ -2339,11 +2342,11 @@ bool EmulateInstructionMIPS::Emulate_JALx(llvm::MCInst &insn) {
     return false;
 
   // These are PC-region branches and not PC-relative.
-  if (!strcasecmp(op_name, "JALS_MM")) {
+  if (op_name.equals_insensitive("JALS_MM")) {
     // target address is in the “current” 128 MB-aligned region
     target = (pc & 0xF8000000UL) | offset;
     ra_offset = 6;
-  } else if (!strcasecmp(op_name, "JALX_MM")) {
+  } else if (op_name.equals_insensitive("JALX_MM")) {
     // target address is in the “current” 256 MB-aligned region
     target = (pc & 0xF0000000UL) | offset;
     ra_offset = 8;
@@ -2668,7 +2671,7 @@ bool EmulateInstructionMIPS::Emulate_FP_branch(llvm::MCInst &insn) {
   bool success = false;
   uint32_t cc, fcsr;
   int32_t pc, offset, target = 0;
-  const char *op_name = m_insn_info->getName(insn.getOpcode()).data();
+  llvm::StringRef op_name = m_insn_info->getName(insn.getOpcode());
 
   cc = m_reg_info->getEncodingValue(insn.getOperand(0).getReg());
   offset = insn.getOperand(1).getImm();
@@ -2684,12 +2687,14 @@ bool EmulateInstructionMIPS::Emulate_FP_branch(llvm::MCInst &insn) {
   /* fcsr[23], fcsr[25-31] are vaild condition bits */
   fcsr = ((fcsr >> 24) & 0xfe) | ((fcsr >> 23) & 0x01);
 
-  if (!strcasecmp(op_name, "BC1F") || !strcasecmp(op_name, "BC1FL")) {
+  if (op_name.equals_insensitive("BC1F") ||
+      op_name.equals_insensitive("BC1FL")) {
     if ((fcsr & (1 << cc)) == 0)
       target = pc + offset;
     else
       target = pc + 8;
-  } else if (!strcasecmp(op_name, "BC1T") || !strcasecmp(op_name, "BC1TL")) {
+  } else if (op_name.equals_insensitive("BC1T") ||
+             op_name.equals_insensitive("BC1TL")) {
     if ((fcsr & (1 << cc)) != 0)
       target = pc + offset;
     else
@@ -2784,7 +2789,7 @@ bool EmulateInstructionMIPS::Emulate_3D_branch(llvm::MCInst &insn) {
   bool success = false;
   uint32_t cc, fcsr;
   int32_t pc, offset, target = 0;
-  const char *op_name = m_insn_info->getName(insn.getOpcode()).data();
+  llvm::StringRef op_name = m_insn_info->getName(insn.getOpcode());
 
   cc = m_reg_info->getEncodingValue(insn.getOperand(0).getReg());
   offset = insn.getOperand(1).getImm();
@@ -2801,25 +2806,25 @@ bool EmulateInstructionMIPS::Emulate_3D_branch(llvm::MCInst &insn) {
   /* fcsr[23], fcsr[25-31] are vaild condition bits */
   fcsr = ((fcsr >> 24) & 0xfe) | ((fcsr >> 23) & 0x01);
 
-  if (!strcasecmp(op_name, "BC1ANY2F")) {
+  if (op_name.equals_insensitive("BC1ANY2F")) {
     /* if any one bit is 0 */
     if (((fcsr >> cc) & 3) != 3)
       target = pc + offset;
     else
       target = pc + 8;
-  } else if (!strcasecmp(op_name, "BC1ANY2T")) {
+  } else if (op_name.equals_insensitive("BC1ANY2T")) {
     /* if any one bit is 1 */
     if (((fcsr >> cc) & 3) != 0)
       target = pc + offset;
     else
       target = pc + 8;
-  } else if (!strcasecmp(op_name, "BC1ANY4F")) {
+  } else if (op_name.equals_insensitive("BC1ANY4F")) {
     /* if any one bit is 0 */
     if (((fcsr >> cc) & 0xf) != 0xf)
       target = pc + offset;
     else
       target = pc + 8;
-  } else if (!strcasecmp(op_name, "BC1ANY4T")) {
+  } else if (op_name.equals_insensitive("BC1ANY4T")) {
     /* if any one bit is 1 */
     if (((fcsr >> cc) & 0xf) != 0)
       target = pc + offset;

diff  --git a/lldb/source/Plugins/Instruction/MIPS/EmulateInstructionMIPS.h b/lldb/source/Plugins/Instruction/MIPS/EmulateInstructionMIPS.h
index 48782186e0651..4862f6c7e0dc5 100644
--- a/lldb/source/Plugins/Instruction/MIPS/EmulateInstructionMIPS.h
+++ b/lldb/source/Plugins/Instruction/MIPS/EmulateInstructionMIPS.h
@@ -93,7 +93,7 @@ class EmulateInstructionMIPS : public lldb_private::EmulateInstruction {
     const char *insn_name;
   } MipsOpcode;
 
-  static MipsOpcode *GetOpcodeForInstruction(const char *op_name);
+  static MipsOpcode *GetOpcodeForInstruction(llvm::StringRef name);
 
   uint32_t GetSizeOfInstruction(lldb_private::DataExtractor &data,
                                 uint64_t inst_addr);

diff  --git a/lldb/source/Plugins/Instruction/MIPS64/EmulateInstructionMIPS64.cpp b/lldb/source/Plugins/Instruction/MIPS64/EmulateInstructionMIPS64.cpp
index 26736f4c58baa..b4a860af54bd9 100644
--- a/lldb/source/Plugins/Instruction/MIPS64/EmulateInstructionMIPS64.cpp
+++ b/lldb/source/Plugins/Instruction/MIPS64/EmulateInstructionMIPS64.cpp
@@ -655,7 +655,7 @@ bool EmulateInstructionMIPS64::GetRegisterInfo(RegisterKind reg_kind,
 }
 
 EmulateInstructionMIPS64::MipsOpcode *
-EmulateInstructionMIPS64::GetOpcodeForInstruction(const char *op_name) {
+EmulateInstructionMIPS64::GetOpcodeForInstruction(llvm::StringRef op_name) {
   static EmulateInstructionMIPS64::MipsOpcode g_opcodes[] = {
       // Prologue/Epilogue instructions
       {"DADDiu", &EmulateInstructionMIPS64::Emulate_DADDiu,
@@ -919,13 +919,10 @@ EmulateInstructionMIPS64::GetOpcodeForInstruction(const char *op_name) {
       {"BZ_V", &EmulateInstructionMIPS64::Emulate_BZV, "BZ.V wt,s16"},
   };
 
-  static const size_t k_num_mips_opcodes = llvm::array_lengthof(g_opcodes);
-
-  for (size_t i = 0; i < k_num_mips_opcodes; ++i) {
-    if (!strcasecmp(g_opcodes[i].op_name, op_name))
-      return &g_opcodes[i];
+  for (MipsOpcode &opcode : g_opcodes) {
+    if (op_name.equals_insensitive(opcode.op_name))
+      return &opcode;
   }
-
   return nullptr;
 }
 
@@ -967,10 +964,7 @@ bool EmulateInstructionMIPS64::EvaluateInstruction(uint32_t evaluate_options) {
    * mc_insn.getOpcode() returns decoded opcode. However to make use
    * of llvm::Mips::<insn> we would need "MipsGenInstrInfo.inc".
   */
-  const char *op_name = m_insn_info->getName(mc_insn.getOpcode()).data();
-
-  if (op_name == nullptr)
-    return false;
+  llvm::StringRef op_name = m_insn_info->getName(mc_insn.getOpcode());
 
   /*
    * Decoding has been done already. Just get the call-back function
@@ -1256,7 +1250,7 @@ bool EmulateInstructionMIPS64::Emulate_DSUBU_DADDU(llvm::MCInst &insn) {
   bool success = false;
   uint64_t result;
   uint8_t src, dst, rt;
-  const char *op_name = m_insn_info->getName(insn.getOpcode()).data();
+  llvm::StringRef op_name = m_insn_info->getName(insn.getOpcode());
 
   dst = m_reg_info->getEncodingValue(insn.getOperand(0).getReg());
   src = m_reg_info->getEncodingValue(insn.getOperand(1).getReg());
@@ -1277,7 +1271,8 @@ bool EmulateInstructionMIPS64::Emulate_DSUBU_DADDU(llvm::MCInst &insn) {
     if (!success)
       return false;
 
-    if (!strcasecmp(op_name, "DSUBU") || !strcasecmp(op_name, "SUBU"))
+    if (op_name.equals_insensitive("DSUBU") ||
+        op_name.equals_insensitive("SUBU"))
       result = src_opd_val - rt_opd_val;
     else
       result = src_opd_val + rt_opd_val;
@@ -1310,7 +1305,8 @@ bool EmulateInstructionMIPS64::Emulate_DSUBU_DADDU(llvm::MCInst &insn) {
 
     Context context;
 
-    if (!strcasecmp(op_name, "DSUBU") || !strcasecmp(op_name, "SUBU"))
+    if (op_name.equals_insensitive("DSUBU") ||
+        op_name.equals_insensitive("SUBU"))
       result = src_opd_val - rt_opd_val;
     else
       result = src_opd_val + rt_opd_val;
@@ -1335,7 +1331,7 @@ bool EmulateInstructionMIPS64::Emulate_BXX_3ops(llvm::MCInst &insn) {
   bool success = false;
   uint32_t rs, rt;
   int64_t offset, pc, rs_val, rt_val, target = 0;
-  const char *op_name = m_insn_info->getName(insn.getOpcode()).data();
+  llvm::StringRef op_name = m_insn_info->getName(insn.getOpcode());
 
   rs = m_reg_info->getEncodingValue(insn.getOperand(0).getReg());
   rt = m_reg_info->getEncodingValue(insn.getOperand(1).getReg());
@@ -1355,14 +1351,15 @@ bool EmulateInstructionMIPS64::Emulate_BXX_3ops(llvm::MCInst &insn) {
   if (!success)
     return false;
 
-  if (!strcasecmp(op_name, "BEQ") || !strcasecmp(op_name, "BEQL")
-       || !strcasecmp(op_name, "BEQ64") ) {
+  if (op_name.equals_insensitive("BEQ") || op_name.equals_insensitive("BEQL") ||
+      op_name.equals_insensitive("BEQ64")) {
     if (rs_val == rt_val)
       target = pc + offset;
     else
       target = pc + 8;
-  } else if (!strcasecmp(op_name, "BNE") || !strcasecmp(op_name, "BNEL")
-              || !strcasecmp(op_name, "BNE64")) {
+  } else if (op_name.equals_insensitive("BNE") ||
+             op_name.equals_insensitive("BNEL") ||
+             op_name.equals_insensitive("BNE64")) {
     if (rs_val != rt_val)
       target = pc + offset;
     else
@@ -1387,7 +1384,7 @@ bool EmulateInstructionMIPS64::Emulate_Bcond_Link(llvm::MCInst &insn) {
   uint32_t rs;
   int64_t offset, pc, target = 0;
   int64_t rs_val;
-  const char *op_name = m_insn_info->getName(insn.getOpcode()).data();
+  llvm::StringRef op_name = m_insn_info->getName(insn.getOpcode());
 
   rs = m_reg_info->getEncodingValue(insn.getOperand(0).getReg());
   offset = insn.getOperand(1).getImm();
@@ -1401,13 +1398,14 @@ bool EmulateInstructionMIPS64::Emulate_Bcond_Link(llvm::MCInst &insn) {
   if (!success)
     return false;
 
-  if (!strcasecmp(op_name, "BLTZAL") || !strcasecmp(op_name, "BLTZALL")) {
+  if (op_name.equals_insensitive("BLTZAL") ||
+      op_name.equals_insensitive("BLTZALL")) {
     if (rs_val < 0)
       target = pc + offset;
     else
       target = pc + 8;
-  } else if (!strcasecmp(op_name, "BGEZAL") ||
-             !strcasecmp(op_name, "BGEZALL")) {
+  } else if (op_name.equals_insensitive("BGEZAL") ||
+             op_name.equals_insensitive("BGEZALL")) {
     if (rs_val >= 0)
       target = pc + offset;
     else
@@ -1497,7 +1495,7 @@ bool EmulateInstructionMIPS64::Emulate_Bcond_Link_C(llvm::MCInst &insn) {
   bool success = false;
   uint32_t rs;
   int64_t offset, pc, rs_val, target = 0;
-  const char *op_name = m_insn_info->getName(insn.getOpcode()).data();
+  llvm::StringRef op_name = m_insn_info->getName(insn.getOpcode());
 
   rs = m_reg_info->getEncodingValue(insn.getOperand(0).getReg());
   offset = insn.getOperand(1).getImm();
@@ -1511,32 +1509,32 @@ bool EmulateInstructionMIPS64::Emulate_Bcond_Link_C(llvm::MCInst &insn) {
   if (!success)
     return false;
 
-  if (!strcasecmp(op_name, "BLEZALC")) {
+  if (op_name.equals_insensitive("BLEZALC")) {
     if (rs_val <= 0)
       target = pc + offset;
     else
       target = pc + 4;
-  } else if (!strcasecmp(op_name, "BGEZALC")) {
+  } else if (op_name.equals_insensitive("BGEZALC")) {
     if (rs_val >= 0)
       target = pc + offset;
     else
       target = pc + 4;
-  } else if (!strcasecmp(op_name, "BLTZALC")) {
+  } else if (op_name.equals_insensitive("BLTZALC")) {
     if (rs_val < 0)
       target = pc + offset;
     else
       target = pc + 4;
-  } else if (!strcasecmp(op_name, "BGTZALC")) {
+  } else if (op_name.equals_insensitive("BGTZALC")) {
     if (rs_val > 0)
       target = pc + offset;
     else
       target = pc + 4;
-  } else if (!strcasecmp(op_name, "BEQZALC")) {
+  } else if (op_name.equals_insensitive("BEQZALC")) {
     if (rs_val == 0)
       target = pc + offset;
     else
       target = pc + 4;
-  } else if (!strcasecmp(op_name, "BNEZALC")) {
+  } else if (op_name.equals_insensitive("BNEZALC")) {
     if (rs_val != 0)
       target = pc + offset;
     else
@@ -1565,7 +1563,7 @@ bool EmulateInstructionMIPS64::Emulate_BXX_2ops(llvm::MCInst &insn) {
   bool success = false;
   uint32_t rs;
   int64_t offset, pc, rs_val, target = 0;
-  const char *op_name = m_insn_info->getName(insn.getOpcode()).data();
+  llvm::StringRef op_name = m_insn_info->getName(insn.getOpcode());
 
   rs = m_reg_info->getEncodingValue(insn.getOperand(0).getReg());
   offset = insn.getOperand(1).getImm();
@@ -1579,26 +1577,30 @@ bool EmulateInstructionMIPS64::Emulate_BXX_2ops(llvm::MCInst &insn) {
   if (!success)
     return false;
 
-  if (!strcasecmp(op_name, "BLTZL") || !strcasecmp(op_name, "BLTZ")
-       || !strcasecmp(op_name, "BLTZ64")) {
+  if (op_name.equals_insensitive("BLTZL") ||
+      op_name.equals_insensitive("BLTZ") ||
+      op_name.equals_insensitive("BLTZ64")) {
     if (rs_val < 0)
       target = pc + offset;
     else
       target = pc + 8;
-  } else if (!strcasecmp(op_name, "BGEZL") || !strcasecmp(op_name, "BGEZ")
-              || !strcasecmp(op_name, "BGEZ64")) {
+  } else if (op_name.equals_insensitive("BGEZL") ||
+             op_name.equals_insensitive("BGEZ") ||
+             op_name.equals_insensitive("BGEZ64")) {
     if (rs_val >= 0)
       target = pc + offset;
     else
       target = pc + 8;
-  } else if (!strcasecmp(op_name, "BGTZL") || !strcasecmp(op_name, "BGTZ")
-              || !strcasecmp(op_name, "BGTZ64")) {
+  } else if (op_name.equals_insensitive("BGTZL") ||
+             op_name.equals_insensitive("BGTZ") ||
+             op_name.equals_insensitive("BGTZ64")) {
     if (rs_val > 0)
       target = pc + offset;
     else
       target = pc + 8;
-  } else if (!strcasecmp(op_name, "BLEZL") || !strcasecmp(op_name, "BLEZ")
-              || !strcasecmp(op_name, "BLEZ64")) {
+  } else if (op_name.equals_insensitive("BLEZL") ||
+             op_name.equals_insensitive("BLEZ") ||
+             op_name.equals_insensitive("BLEZ64")) {
     if (rs_val <= 0)
       target = pc + offset;
     else
@@ -1650,7 +1652,7 @@ bool EmulateInstructionMIPS64::Emulate_BXX_3ops_C(llvm::MCInst &insn) {
   bool success = false;
   uint32_t rs, rt;
   int64_t offset, pc, rs_val, rt_val, target = 0;
-  const char *op_name = m_insn_info->getName(insn.getOpcode()).data();
+  llvm::StringRef op_name = m_insn_info->getName(insn.getOpcode());
   uint32_t current_inst_size = m_insn_info->get(insn.getOpcode()).getSize();
 
   rs = m_reg_info->getEncodingValue(insn.getOperand(0).getReg());
@@ -1671,42 +1673,48 @@ bool EmulateInstructionMIPS64::Emulate_BXX_3ops_C(llvm::MCInst &insn) {
   if (!success)
     return false;
 
-  if (!strcasecmp(op_name, "BEQC") || !strcasecmp(op_name, "BEQC64")) {
+  if (op_name.equals_insensitive("BEQC") ||
+      op_name.equals_insensitive("BEQC64")) {
     if (rs_val == rt_val)
       target = pc + offset;
     else
       target = pc + 4;
-  } else if (!strcasecmp(op_name, "BNEC") || !strcasecmp(op_name, "BNEC64")) {
+  } else if (op_name.equals_insensitive("BNEC") ||
+             op_name.equals_insensitive("BNEC64")) {
     if (rs_val != rt_val)
       target = pc + offset;
     else
       target = pc + 4;
-  } else if (!strcasecmp(op_name, "BLTC") || !strcasecmp(op_name, "BLTC64")) {
+  } else if (op_name.equals_insensitive("BLTC") ||
+             op_name.equals_insensitive("BLTC64")) {
     if (rs_val < rt_val)
       target = pc + offset;
     else
       target = pc + 4;
-  } else if (!strcasecmp(op_name, "BGEC64") || !strcasecmp(op_name, "BGEC")) {
+  } else if (op_name.equals_insensitive("BGEC64") ||
+             op_name.equals_insensitive("BGEC")) {
     if (rs_val >= rt_val)
       target = pc + offset;
     else
       target = pc + 4;
-  } else if (!strcasecmp(op_name, "BLTUC") || !strcasecmp(op_name, "BLTUC64")) {
+  } else if (op_name.equals_insensitive("BLTUC") ||
+             op_name.equals_insensitive("BLTUC64")) {
     if (rs_val < rt_val)
       target = pc + offset;
     else
       target = pc + 4;
-  } else if (!strcasecmp(op_name, "BGEUC") || !strcasecmp(op_name, "BGEUC64")) {
+  } else if (op_name.equals_insensitive("BGEUC") ||
+             op_name.equals_insensitive("BGEUC64")) {
     if ((uint32_t)rs_val >= (uint32_t)rt_val)
       target = pc + offset;
     else
       target = pc + 4;
-  } else if (!strcasecmp(op_name, "BOVC")) {
+  } else if (op_name.equals_insensitive("BOVC")) {
     if (IsAdd64bitOverflow(rs_val, rt_val))
       target = pc + offset;
     else
       target = pc + 4;
-  } else if (!strcasecmp(op_name, "BNVC")) {
+  } else if (op_name.equals_insensitive("BNVC")) {
     if (!IsAdd64bitOverflow(rs_val, rt_val))
       target = pc + offset;
     else
@@ -1730,7 +1738,7 @@ bool EmulateInstructionMIPS64::Emulate_BXX_2ops_C(llvm::MCInst &insn) {
   uint32_t rs;
   int64_t offset, pc, target = 0;
   int64_t rs_val;
-  const char *op_name = m_insn_info->getName(insn.getOpcode()).data();
+  llvm::StringRef op_name = m_insn_info->getName(insn.getOpcode());
   uint32_t current_inst_size = m_insn_info->get(insn.getOpcode()).getSize();
 
   rs = m_reg_info->getEncodingValue(insn.getOperand(0).getReg());
@@ -1745,32 +1753,38 @@ bool EmulateInstructionMIPS64::Emulate_BXX_2ops_C(llvm::MCInst &insn) {
   if (!success)
     return false;
 
-  if (!strcasecmp(op_name, "BLTZC") || !strcasecmp(op_name, "BLTZC64")) {
+  if (op_name.equals_insensitive("BLTZC") ||
+      op_name.equals_insensitive("BLTZC64")) {
     if (rs_val < 0)
       target = pc + offset;
     else
       target = pc + 4;
-  } else if (!strcasecmp(op_name, "BLEZC") || !strcasecmp(op_name, "BLEZC64")) {
+  } else if (op_name.equals_insensitive("BLEZC") ||
+             op_name.equals_insensitive("BLEZC64")) {
     if (rs_val <= 0)
       target = pc + offset;
     else
       target = pc + 4;
-  } else if (!strcasecmp(op_name, "BGEZC") || !strcasecmp(op_name, "BGEZC64")) {
+  } else if (op_name.equals_insensitive("BGEZC") ||
+             op_name.equals_insensitive("BGEZC64")) {
     if (rs_val >= 0)
       target = pc + offset;
     else
       target = pc + 4;
-  } else if (!strcasecmp(op_name, "BGTZC") || !strcasecmp(op_name, "BGTZC64")) {
+  } else if (op_name.equals_insensitive("BGTZC") ||
+             op_name.equals_insensitive("BGTZC64")) {
     if (rs_val > 0)
       target = pc + offset;
     else
       target = pc + 4;
-  } else if (!strcasecmp(op_name, "BEQZC") || !strcasecmp(op_name, "BEQZC64")) {
+  } else if (op_name.equals_insensitive("BEQZC") ||
+             op_name.equals_insensitive("BEQZC64")) {
     if (rs_val == 0)
       target = pc + offset;
     else
       target = pc + 4;
-  } else if (!strcasecmp(op_name, "BNEZC") || !strcasecmp(op_name, "BNEZC64")) {
+  } else if (op_name.equals_insensitive("BNEZC") ||
+             op_name.equals_insensitive("BNEZC64")) {
     if (rs_val != 0)
       target = pc + offset;
     else
@@ -1970,7 +1984,7 @@ bool EmulateInstructionMIPS64::Emulate_FP_branch(llvm::MCInst &insn) {
   bool success = false;
   uint32_t cc, fcsr;
   int64_t pc, offset, target = 0;
-  const char *op_name = m_insn_info->getName(insn.getOpcode()).data();
+  llvm::StringRef op_name = m_insn_info->getName(insn.getOpcode());
 
   /*
    * BC1F cc, offset
@@ -1994,12 +2008,14 @@ bool EmulateInstructionMIPS64::Emulate_FP_branch(llvm::MCInst &insn) {
   /* fcsr[23], fcsr[25-31] are vaild condition bits */
   fcsr = ((fcsr >> 24) & 0xfe) | ((fcsr >> 23) & 0x01);
 
-  if (!strcasecmp(op_name, "BC1F") || !strcasecmp(op_name, "BC1FL")) {
+  if (op_name.equals_insensitive("BC1F") ||
+      op_name.equals_insensitive("BC1FL")) {
     if ((fcsr & (1 << cc)) == 0)
       target = pc + offset;
     else
       target = pc + 8;
-  } else if (!strcasecmp(op_name, "BC1T") || !strcasecmp(op_name, "BC1TL")) {
+  } else if (op_name.equals_insensitive("BC1T") ||
+             op_name.equals_insensitive("BC1TL")) {
     if ((fcsr & (1 << cc)) != 0)
       target = pc + offset;
     else
@@ -2095,7 +2111,7 @@ bool EmulateInstructionMIPS64::Emulate_3D_branch(llvm::MCInst &insn) {
   bool success = false;
   uint32_t cc, fcsr;
   int64_t pc, offset, target = 0;
-  const char *op_name = m_insn_info->getName(insn.getOpcode()).data();
+  llvm::StringRef op_name = m_insn_info->getName(insn.getOpcode());
 
   cc = m_reg_info->getEncodingValue(insn.getOperand(0).getReg());
   offset = insn.getOperand(1).getImm();
@@ -2112,25 +2128,25 @@ bool EmulateInstructionMIPS64::Emulate_3D_branch(llvm::MCInst &insn) {
   /* fcsr[23], fcsr[25-31] are vaild condition bits */
   fcsr = ((fcsr >> 24) & 0xfe) | ((fcsr >> 23) & 0x01);
 
-  if (!strcasecmp(op_name, "BC1ANY2F")) {
+  if (op_name.equals_insensitive("BC1ANY2F")) {
     /* if any one bit is 0 */
     if (((fcsr >> cc) & 3) != 3)
       target = pc + offset;
     else
       target = pc + 8;
-  } else if (!strcasecmp(op_name, "BC1ANY2T")) {
+  } else if (op_name.equals_insensitive("BC1ANY2T")) {
     /* if any one bit is 1 */
     if (((fcsr >> cc) & 3) != 0)
       target = pc + offset;
     else
       target = pc + 8;
-  } else if (!strcasecmp(op_name, "BC1ANY4F")) {
+  } else if (op_name.equals_insensitive("BC1ANY4F")) {
     /* if any one bit is 0 */
     if (((fcsr >> cc) & 0xf) != 0xf)
       target = pc + offset;
     else
       target = pc + 8;
-  } else if (!strcasecmp(op_name, "BC1ANY4T")) {
+  } else if (op_name.equals_insensitive("BC1ANY4T")) {
     /* if any one bit is 1 */
     if (((fcsr >> cc) & 0xf) != 0)
       target = pc + offset;

diff  --git a/lldb/source/Plugins/Instruction/MIPS64/EmulateInstructionMIPS64.h b/lldb/source/Plugins/Instruction/MIPS64/EmulateInstructionMIPS64.h
index acd956e613d4b..3f56bc658c16e 100644
--- a/lldb/source/Plugins/Instruction/MIPS64/EmulateInstructionMIPS64.h
+++ b/lldb/source/Plugins/Instruction/MIPS64/EmulateInstructionMIPS64.h
@@ -85,7 +85,7 @@ class EmulateInstructionMIPS64 : public lldb_private::EmulateInstruction {
     const char *insn_name;
   } MipsOpcode;
 
-  static MipsOpcode *GetOpcodeForInstruction(const char *op_name);
+  static MipsOpcode *GetOpcodeForInstruction(llvm::StringRef op_name);
 
   bool Emulate_DADDiu(llvm::MCInst &insn);
 

diff  --git a/lldb/source/Plugins/Platform/MacOSX/PlatformDarwin.cpp b/lldb/source/Plugins/Platform/MacOSX/PlatformDarwin.cpp
index 176607f36941a..d1696766166cd 100644
--- a/lldb/source/Plugins/Platform/MacOSX/PlatformDarwin.cpp
+++ b/lldb/source/Plugins/Platform/MacOSX/PlatformDarwin.cpp
@@ -85,8 +85,8 @@ FileSpecList PlatformDarwin::LocateExecutableScriptingResources(
         if (objfile) {
           FileSpec symfile_spec(objfile->GetFileSpec());
           if (symfile_spec &&
-              strcasestr(symfile_spec.GetPath().c_str(),
-                         ".dSYM/Contents/Resources/DWARF") != nullptr &&
+              llvm::StringRef(symfile_spec.GetPath())
+                  .contains_insensitive(".dSYM/Contents/Resources/DWARF") &&
               FileSystem::Instance().Exists(symfile_spec)) {
             while (module_spec.GetFilename()) {
               std::string module_basename(

diff  --git a/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp b/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
index d0f5bc5f05de1..e207c32d6ad38 100644
--- a/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
+++ b/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
@@ -566,23 +566,21 @@ uint32_t SymbolFileDWARF::CalculateAbilities() {
       if (section)
         debug_line_file_size = section->GetFileSize();
     } else {
-      const char *symfile_dir_cstr =
-          m_objfile_sp->GetFileSpec().GetDirectory().GetCString();
-      if (symfile_dir_cstr) {
-        if (strcasestr(symfile_dir_cstr, ".dsym")) {
-          if (m_objfile_sp->GetType() == ObjectFile::eTypeDebugInfo) {
-            // We have a dSYM file that didn't have a any debug info. If the
-            // string table has a size of 1, then it was made from an
-            // executable with no debug info, or from an executable that was
-            // stripped.
-            section =
-                section_list->FindSectionByType(eSectionTypeDWARFDebugStr, true)
-                    .get();
-            if (section && section->GetFileSize() == 1) {
-              m_objfile_sp->GetModule()->ReportWarning(
-                  "empty dSYM file detected, dSYM was created with an "
-                  "executable with no debug info.");
-            }
+      llvm::StringRef symfile_dir =
+          m_objfile_sp->GetFileSpec().GetDirectory().GetStringRef();
+      if (symfile_dir.contains_insensitive(".dsym")) {
+        if (m_objfile_sp->GetType() == ObjectFile::eTypeDebugInfo) {
+          // We have a dSYM file that didn't have a any debug info. If the
+          // string table has a size of 1, then it was made from an
+          // executable with no debug info, or from an executable that was
+          // stripped.
+          section =
+              section_list->FindSectionByType(eSectionTypeDWARFDebugStr, true)
+                  .get();
+          if (section && section->GetFileSize() == 1) {
+            m_objfile_sp->GetModule()->ReportWarning(
+                "empty dSYM file detected, dSYM was created with an "
+                "executable with no debug info.");
           }
         }
       }


        


More information about the lldb-commits mailing list