)]}'
{
  "commit": "75c9e862ee8e204d4d9c67a3cbcaa782224129f3",
  "tree": "cb6d98a25df9e2f23377b3e2edc1c2d2975afef1",
  "parents": [
    "c1cc4ccbc1b58c7bcf85bed1f43cff743d941d8e"
  ],
  "author": {
    "name": "Max191",
    "email": "44243577+Max191@users.noreply.github.com",
    "time": "Fri Jan 17 11:13:26 2025 -0500"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Fri Jan 17 08:13:26 2025 -0800"
  },
  "message": "[GPU] Avoid fusing slices of already tiled ops (#19404)\n\nThis fixes a bug in FuseAndHoistParallelLoops that can cause an infinite\r\nloop for imperfectly aligned unpack producer fusion. The\r\nFuseTilableSliceProducers pattern does not check that the producer\r\noperation is not already in the tiled loop, and the tiling\r\nimplementation of imperfectly aligned unpack ops generates an\r\nextract_slice on the result of the tiled unpack. This would cause an\r\ninfinite recursive application of the producer fusion pattern. This\r\nfixes the bug by enforcing that the producer operation is outside of the\r\nslice\u0027s parent loop.\r\n\r\nSigned-off-by: Max Dawkins \u003cmaxdawkins19@gmail.com\u003e\r\nCo-authored-by: Max Dawkins \u003cmaxdawkins19@gmail.com\u003e",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "a8db945a9f7c5e805f25c2ed94c171ce9f7b7327",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Codegen/Common/GPU/GPUFuseAndHoistParallelLoops.cpp",
      "new_id": "f974e516dd7583f68957a7d394997bcc2edd1879",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Codegen/Common/GPU/GPUFuseAndHoistParallelLoops.cpp"
    },
    {
      "type": "modify",
      "old_id": "fbf53eba63adc258502daef1cfb9d180c0b2f3af",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Codegen/Common/GPU/test/gpu_fuse_and_hoist_forall.mlir",
      "new_id": "b7a805f06474ba438ce29f58773fa99678072397",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Codegen/Common/GPU/test/gpu_fuse_and_hoist_forall.mlir"
    }
  ]
}
