[llvm] [llvm-exegesis] Add did-you-mean hint for unknown opcodes (PR #203463)

Quanye Yang via llvm-commits llvm-commits at lists.llvm.org
Fri Jun 12 20:56:35 PDT 2026


================
@@ -156,11 +158,44 @@ struct YamlContext {
     return InstrName;
   }
 
+  std::optional<StringRef> findNearestOpcodeName(StringRef InstrName) const {
+    unsigned BestDistance = 2;
+    StringRef Nearest;
+
+    for (const auto &Entry : OpcodeNameToOpcodeIdx) {
+      StringRef Candidate = Entry.getFirst();
+
+      size_t CandidateSize = Candidate.size();
+      size_t InstrSize = InstrName.size();
+      size_t AbsDiff = CandidateSize > InstrSize ? CandidateSize - InstrSize
----------------
quanyeyang wrote:

In `llvm/lib/Option/OptTable.cpp`, `OptTable::internalFindNearest()`, the codes are like:
```cpp
size_t CandidateSize = CandidatePrefix.size() + CandidateName.size(),
             NormalizedSize = NormalizedName.size();
size_t AbsDiff = CandidateSize > NormalizedSize
                           ? CandidateSize - NormalizedSize
                           : NormalizedSize - CandidateSize;
```
or we can change the codes like?
```cpp
size_t AbsDiff = std::abs(static_cast<ptrdiff_t>(CandidateSize) -
                          static_cast<ptrdiff_t>(InstrSize));
```

https://github.com/llvm/llvm-project/pull/203463


More information about the llvm-commits mailing list