)]}'
{
  "commit": "38ca3be9293c2dda377fbc4595c5f314bfc0a97b",
  "tree": "fe13f7555f14078a3d0dd80d93fcb0ae503ea568",
  "parents": [
    "4a7af8728126c722d4b293af1bc8bf21b732164a"
  ],
  "author": {
    "name": "Max191",
    "email": "44243577+Max191@users.noreply.github.com",
    "time": "Tue Jan 21 10:01:16 2025 -0500"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Tue Jan 21 07:01:16 2025 -0800"
  },
  "message": "[GPU] Add SwapExpandShapeWithSlice pattern to loop fusion pass (#19729)\n\nThis PR moves the `SwapExpandShapeWithSlicePattern` to\r\nCodegen/Common/Transforms, and adds the pattern to the\r\nFuseAndHoistParallelLoops pass.\r\n\r\nThis pattern is generally useful for tiling fusion, because it exposes\r\nmore producer fusion opportunities when there are reshapes in the IR,\r\nbut more specifically, it is useful in combination with the pattern\r\nintroduced in https://github.com/iree-org/iree/pull/19295. That pattern\r\ncreates an expanded parallel_insert_slice, and an expand_shape on the\r\ncorresponding init block arg in the forall loop body. This makes the\r\nslice on the init argument lower dimensional than the\r\nparallel_insert_slice at the end. It is better for bufferization if\r\nthese slices are the same, and this pattern makes that happen by\r\nbubbling the slice of the init arg up through the expand_shape,\r\nincreasing the dimensionality to match the parallel_insert_slice.\r\n\r\n---------\r\n\r\nSigned-off-by: Max Dawkins \u003cmax.dawkins@gmail.com\u003e",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "940477d8a94243f43346fff7a7ffb61bcffb500a",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Codegen/Common/BUILD.bazel",
      "new_id": "17510c54d1df58122ecf32c305faacec0b8ff2ce",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Codegen/Common/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "d6e25280781dd15f9b91162542d21096f239f706",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Codegen/Common/CMakeLists.txt",
      "new_id": "5029cff85f6197123a343ab3afffb77bafd0e802",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Codegen/Common/CMakeLists.txt"
    },
    {
      "type": "modify",
      "old_id": "62a8ac2b438a64d91fc595b02637760f6c839597",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Codegen/Common/GPU/GPUApplyTilingLevel.cpp",
      "new_id": "68ee2710f6c015b39f4bf314fc8ebf5da13d6dd5",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Codegen/Common/GPU/GPUApplyTilingLevel.cpp"
    },
    {
      "type": "modify",
      "old_id": "f974e516dd7583f68957a7d394997bcc2edd1879",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Codegen/Common/GPU/GPUFuseAndHoistParallelLoops.cpp",
      "new_id": "cb61cf47e3e5ab66ca7b7842b0d5e785b417c3b5",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Codegen/Common/GPU/GPUFuseAndHoistParallelLoops.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "79bf7396409686d078085732d4d43a1856cc8380",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Codegen/Common/Transforms.cpp"
    },
    {
      "type": "modify",
      "old_id": "98c7478d7e95b3822714200561212d7e0cee2167",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Codegen/Common/Transforms.h",
      "new_id": "53c2907c0b8cf7be426762bdafd294eb6bcaaa3c",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Codegen/Common/Transforms.h"
    },
    {
      "type": "modify",
      "old_id": "3466bf8846fa5a3dc4a0717579cbb80ef6e0d8e0",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Codegen/LLVMGPU/test/ROCDL/pipeline_igemm_tile_and_fuse.mlir",
      "new_id": "ee06c4f0495d3d208e1a741569ebd1fe5c7038df",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Codegen/LLVMGPU/test/ROCDL/pipeline_igemm_tile_and_fuse.mlir"
    }
  ]
}
