[Mlir-commits] [clang] [llvm] [mlir] [ADT] Give DenseMapPair its own members instead of a std::pair base. NFC (PR #221853)

Kazu Hirata llvmlistbot at llvm.org
Mon Sep 7 18:52:47 PDT 2026


================
@@ -606,7 +606,10 @@ GVNSink::analyzeInstructionForSinking(LockstepReverseIterator<false> &LRI,
       return std::nullopt;
     VNums[N]++;
   }
-  unsigned VNumToSink = llvm::max_element(VNums, llvm::less_second())->first;
+  unsigned VNumToSink =
+      llvm::max_element(VNums, [](const auto &L, const auto &R) {
+        return L.second < R.second;
+      })->first;
----------------
kazutakahirata wrote:

Could we add something like this to keep `llvm::less_second` working?

```cpp
namespace std {
template <std::size_t I, typename KeyT, typename ValueT>
auto &get(llvm::detail::DenseMapPair<KeyT, ValueT> &P) {
  if constexpr (I == 0) return P.first;
  else return P.second;
}
template <std::size_t I, typename KeyT, typename ValueT>
const auto &get(const llvm::detail::DenseMapPair<KeyT, ValueT> &P) {
  if constexpr (I == 0) return P.first;
  else return P.second;
}
} // namespace std
```

This should take care of `std::get<0>` in `SCFToGPU.cpp` as well.

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


More information about the Mlir-commits mailing list