)]}'
{
  "commit": "df67eb87ab7278be4c40a99f8f05effa969352c4",
  "tree": "0125c2bc8e6f37af7ce55ebc9cdcdc8036c4d1a9",
  "parents": [
    "53dc6609adbdfc709b679a4f4ea5fb7f8eb17c6c"
  ],
  "author": {
    "name": "Vivian Zhang",
    "email": "zhyuhang88@gmail.com",
    "time": "Wed Apr 08 11:44:57 2026 -0700"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Wed Apr 08 11:44:57 2026 -0700"
  },
  "message": "[Preprocessing] Add pass to convert strided insert_slice to linalg.generic (#23990)\n\nAdd `iree-preprocessing-convert-strided-insert-slice-to-generic` pass\nthat converts strided `tensor.insert_slice` into zero-constant\ndestinations to a `linalg.generic` with index arithmetic. This targets\nbackward data convolution patterns where the upstream gradient is\nscattered into a zero buffer at strided positions.\n\nThe replacement generic computes the strided scatter in a single\ndispatch, replacing the `Memset + slow_memcpy` pair. Power-of-2 strides\nuse bitwise ops instead of expensive integer division. The result is\nselected via `arith.select` for branchless GPU execution.\n\nThis PR is a partial implementation for\nhttps://github.com/iree-org/iree/issues/23976.\n\n---------\n\nSigned-off-by: yzhang93 \u003czhyuhang88@gmail.com\u003e\nCo-authored-by: Claude \u003cnoreply@anthropic.com\u003e",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "29fb7bb0d379030b8898833d911181f5e1f07d6e",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Preprocessing/Common/BUILD.bazel",
      "new_id": "341a9bf3b60fb15bd44ca1d5524e169fa8e13407",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Preprocessing/Common/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "d2196ba83151ea733bffdf16f12bedb6efcf8286",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Preprocessing/Common/CMakeLists.txt",
      "new_id": "73148a7805a1b9d783397aeebe6fb32882f78324",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Preprocessing/Common/CMakeLists.txt"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "5d0bbee2dd1aa0aedfa841a931f5a0b2d8f03e90",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Preprocessing/Common/ConvertStridedInsertSliceToGeneric.cpp"
    },
    {
      "type": "modify",
      "old_id": "6303e6eb21cdee82df196dfb2e6760a1a6672d47",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Preprocessing/Common/Passes.td",
      "new_id": "f9e1290795f13ef412048ebba0f8659f6f9fb7ac",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Preprocessing/Common/Passes.td"
    },
    {
      "type": "modify",
      "old_id": "38583f19140d9f9574af0e3c353199b24984ba31",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Preprocessing/Common/test/BUILD.bazel",
      "new_id": "9ae24d73e783d8d3d61ea5a2f1e5fe70dd17aeb8",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Preprocessing/Common/test/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "e947c579839b00d340b767a43fb3abdba6b74cb1",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Preprocessing/Common/test/CMakeLists.txt",
      "new_id": "75d31de4d71801c9f9c0d7d495373943324aad3e",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Preprocessing/Common/test/CMakeLists.txt"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "9c0088f543f666560eb950806abf9f8252a4085d",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Preprocessing/Common/test/convert_strided_insert_slice_to_generic.mlir"
    }
  ]
}
