)]}'
{
  "commit": "21f04b1458c52ba875a23b58b02cf6b1f8db0661",
  "tree": "e22f411541fcb0d7356f6cee80e017c4a4605256",
  "parents": [
    "9325a61aa0960595c22867799ebd157c8160fd86"
  ],
  "author": {
    "name": "Adam Paszke",
    "email": "adam.paszke@gmail.com",
    "time": "Sat Jan 25 16:28:21 2025 +0100"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Sat Jan 25 07:28:21 2025 -0800"
  },
  "message": "Hold a queue of iterator ranges (not operations) in wouldOpBeTriviallyDead (#123642)\n\nRanges let us push the whole blocks onto the queue in constant time. If\r\none of the first ops in the block is side-effecting we\u0027ll be able to\r\nprovide the answer quickly. The previous implementation had to walk the\r\nblock and queue all the operations only to start traversing them again,\r\nwhich was a considerable slowdown for compile times of large MLIR\r\nprograms in our benchmarks.\r\n\r\n---------\r\n\r\nCo-authored-by: Jacques Pienaar \u003cjpienaar@google.com\u003e",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "c9feb001a198446065af4d06c372917e4ed7aa06",
      "old_mode": 33188,
      "old_path": "mlir/lib/Interfaces/SideEffectInterfaces.cpp",
      "new_id": "59fd19310cea54ea6c8d026523242770550bc8c8",
      "new_mode": 33188,
      "new_path": "mlir/lib/Interfaces/SideEffectInterfaces.cpp"
    }
  ]
}
