)]}'
{
  "commit": "58abcf6bc68942f25f89f68f2770f9e55f24eab0",
  "tree": "fd0251ab91986faad56a3c92dae3a27f9026099e",
  "parents": [
    "683e2bf059a6e5e0bb9dc2628218b53dc2d1b490"
  ],
  "author": {
    "name": "Kazu Hirata",
    "email": "kazu@google.com",
    "time": "Tue Oct 21 07:22:15 2025 -0700"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Tue Oct 21 07:22:15 2025 -0700"
  },
  "message": "[ADT] Modernize SparseMultiSet to use llvm::identity_cxx20 (NFC) (#164361)\n\nThe legacy llvm::identity is not quite the same as std::identity from\nC++20.  llvm::identity is a template struct with an ::argument_type\nmember.  In contrast, llvm::identity_cxx20 (and std::identity) is a\nnon-template struct with a templated call operator and no\n::argument_type.\n\nThis patch modernizes llvm::SparseMultiSet by updating its default\nkey-extraction functor to llvm::identity_cxx20.  A new template\nparameter KeyT takes over the role of ::argument_type.\n\nExisting uses of SparseMultiSet are updated for the new template\nsignature.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "0aa7edbcea673f5dcbda65c13efb9505e634c0ee",
      "old_mode": 33188,
      "old_path": "llvm/include/llvm/ADT/SparseMultiSet.h",
      "new_id": "5e4e1703373a937e68993f7f329b746012b44470",
      "new_mode": 33188,
      "new_path": "llvm/include/llvm/ADT/SparseMultiSet.h"
    },
    {
      "type": "modify",
      "old_id": "ba5b2da64fd80cee62e2222225c9fd261eaf04f6",
      "old_mode": 33188,
      "old_path": "llvm/include/llvm/CodeGen/ScheduleDAGInstrs.h",
      "new_id": "4eacbdca163d96c8f44f60e52c6f63e824f85a78",
      "new_mode": 33188,
      "new_path": "llvm/include/llvm/CodeGen/ScheduleDAGInstrs.h"
    }
  ]
}
