)]}'
{
  "commit": "78f54c2efe9d298965ce27df7c775426dd79e4a2",
  "tree": "0cf1fb95182e303372372d86452800edffbd9c28",
  "parents": [
    "b6602e853ceabe325ecb6d0336e747198e647a8c"
  ],
  "author": {
    "name": "Quinn Dawkins",
    "email": "quinn.dawkins@gmail.com",
    "time": "Thu Aug 15 16:57:22 2024 -0400"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Thu Aug 15 16:57:22 2024 -0400"
  },
  "message": "[Codegen][GPU] Add a pass for basic distribution verification (#18236)\n\nAfter various levels of tiling to warps/threads and then bufferization\r\nin GPU codegen pipelines, but before resolving distributed loops like\r\n`scf.forall` ops, we have an opportunity for additional verification\r\nthat all operations were properly mapped to threads. In particular, any\r\noperation that vectorized/bufferized to an operation with a write effect\r\nmust now be within a *thread* distributed context or else there is\r\nalmost certainly a write race. Such cases means something went wrong in\r\nearlier passes and is a compiler failure.\r\n\r\nNote: this is only added for the LLVMGPUTileAndFuse pipeline because\r\nother pipelines allow for write effecting ops like\r\n`memref.copy` to persist past `scf.forall` resolution.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "da454087781ca9c22b7802d3ad97497ae2a60fe3",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Codegen/Common/GPU/BUILD.bazel",
      "new_id": "4a0b879b94ee5ff69142190432331c4e84749bf4",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Codegen/Common/GPU/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "e22fa030655634b114b4ce14ece67371460385bb",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Codegen/Common/GPU/CMakeLists.txt",
      "new_id": "eb51b3ec2408d6f1086524fbb4a401310abcabfc",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Codegen/Common/GPU/CMakeLists.txt"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "273cadfff5a845600ed6e86da64613407d4fbe17",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Codegen/Common/GPU/GPUVerifyDistribution.cpp"
    },
    {
      "type": "modify",
      "old_id": "36507fdd0a418b5874ff40660ded88541e3f879f",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Codegen/Common/GPU/Passes.td",
      "new_id": "cec8ba43a0302a88e2d37f7db8e9d76642a084f0",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Codegen/Common/GPU/Passes.td"
    },
    {
      "type": "modify",
      "old_id": "14dbfda1848b8961a23f0e672bba8dd4227d34a6",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Codegen/Common/GPU/test/BUILD.bazel",
      "new_id": "5854bd5ca9322c5b1384073d906cf4421ba2f6df",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Codegen/Common/GPU/test/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "9ccc268d0d7987efab71037018340335514683cf",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Codegen/Common/GPU/test/CMakeLists.txt",
      "new_id": "a61138be693a25b2cd4f06cd0184ad421dbf8058",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Codegen/Common/GPU/test/CMakeLists.txt"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "cf65a02d05c05584f1dbcb964e63239dd2c00daf",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Codegen/Common/GPU/test/gpu_verify_distribution.mlir"
    },
    {
      "type": "modify",
      "old_id": "02d03428dad84354907d27103e0ea73aa9bd708f",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Codegen/LLVMGPU/Passes.cpp",
      "new_id": "0fd672b97c49ff24e3816988f4542ddd7e86ba11",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Codegen/LLVMGPU/Passes.cpp"
    }
  ]
}
