)]}'
{
  "commit": "77ac727c7f6cbe32ca8972b8c69bd32cba17b690",
  "tree": "adbeb7e5d8df6556d696a48d99ce7622bc36ab4f",
  "parents": [
    "950e172ff9d64e87ccd06e9855dda78ddda1dd1b"
  ],
  "author": {
    "name": "Ben Vanik",
    "email": "ben.vanik@gmail.com",
    "time": "Wed May 31 18:42:47 2023 -0700"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Wed May 31 18:42:47 2023 -0700"
  },
  "message": "Adding iree-stream-verify-async-access-ranges pass. (#13876)\n\nThis does some basic verification that AsyncAccessOpInterface ops (like\r\nstream.async.copy and stream.async.dispatch) are in-bounds. Currently\r\nonly doing static verification but in the future it can be extended to\r\nuse relational verification (start \u003c end, etc).\r\n\r\nPrints useful errors like:\r\n```\r\n../iree-tmp/gpt2-64-stream-emplace.mlir:1603:12: error: \u0027stream.async.dispatch\u0027 op has invalid Read access range [180224 to 376832 for 196608] of resource %177 with size 196608; end \u003e resource size\r\n```\r\n\r\nHopefully we never produce programs like this but while iterating on\r\npasses I\u0027ve done it a few times and it\u0027s really hard to track down\r\n(usually only via painful runtime debugging of intermediate values).",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "cc3d362d128cc37f6af91a32e92f67de0907b71c",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Dialect/Stream/Transforms/BUILD.bazel",
      "new_id": "bab44346340549c504d6c4645404ecde5c6aa6e0",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/Stream/Transforms/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "9bb1af3bb743158d3662bdd01852fb940c3eb51c",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Dialect/Stream/Transforms/CMakeLists.txt",
      "new_id": "eb8bb192a4e0a4933e464c466b573f3bda95bd6b",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/Stream/Transforms/CMakeLists.txt"
    },
    {
      "type": "modify",
      "old_id": "ab85cab95d13f19bb9de14097cdfec49c8788c5f",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Dialect/Stream/Transforms/Passes.cpp",
      "new_id": "3636a05b6383ab0d26eb6407f8dabf214f39beba",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/Stream/Transforms/Passes.cpp"
    },
    {
      "type": "modify",
      "old_id": "4902ff2d4ccdf0da46d667b8399428400a41dcef",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Dialect/Stream/Transforms/Passes.h",
      "new_id": "a7cf768641e7caacd6e2fcf9bc51636cca85e7f1",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/Stream/Transforms/Passes.h"
    },
    {
      "type": "modify",
      "old_id": "5b5b9f3fffa076be300dce08e3b6974da9865ad6",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Dialect/Stream/Transforms/Passes.td",
      "new_id": "788771e1f331fc876eb6b74af31ea846aa6589c9",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/Stream/Transforms/Passes.td"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "f447ed9f530e9878aa1a03bb884f9b0390eff095",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/Stream/Transforms/VerifyAsyncAccessRanges.cpp"
    },
    {
      "type": "modify",
      "old_id": "29f2001c26235cf361f768209115247d7a94e490",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Dialect/Stream/Transforms/test/BUILD.bazel",
      "new_id": "713f6acceda047f0a66f42eccb03a485c3b2dc24",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/Stream/Transforms/test/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "0d996f25bf0f670e0777527492606c5f8d877190",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Dialect/Stream/Transforms/test/CMakeLists.txt",
      "new_id": "3b3448c6552bf0d88591586af0200c520bbe3d35",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/Stream/Transforms/test/CMakeLists.txt"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "1a4d3613504bed924644f751e33b26d84a866a37",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/Stream/Transforms/test/verify_async_access_ranges.mlir"
    }
  ]
}
