================
@@ -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
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to