)]}'
{
  "commit": "a4306950c00111804967adf6b636b8146b991395",
  "tree": "1fdf6e5992a14aa0ea58731c05b2116e3a46870a",
  "parents": [
    "ba30557d40a15bc8f8ee1fe282eb98d2e7bfc377"
  ],
  "author": {
    "name": "Max191",
    "email": "44243577+Max191@users.noreply.github.com",
    "time": "Wed Jan 22 09:57:10 2025 -0500"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Wed Jan 22 06:57:10 2025 -0800"
  },
  "message": "[GPU] Add pattern to fuse tensor.collapse_shape into forall producer (#19295)\n\nThis PR adds a pattern to fuse a consumer tensor.collapse_shape into a\r\nproducer scf.forall op. The transform is added to\r\nFuseAndHoistParallelLoops, where it helps to fuse tensor.unpack ops with\r\nextract_slice semantics into producer loops. This is needed when\r\ntargeting MFMA intrinsics for unaligned shapes, and also in generating\r\ncode for unset encoding ops on GPU.\r\n\r\nThe PR also adds a transform op to keep the long lit tests separate from\r\nthe FuseAndHoistParallelLoop tests.\r\n\r\nSigned-off-by: Max Dawkins \u003cmax.dawkins@gmail.com\u003e",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "cb61cf47e3e5ab66ca7b7842b0d5e785b417c3b5",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Codegen/Common/GPU/GPUFuseAndHoistParallelLoops.cpp",
      "new_id": "5e47104d9b58d0791fc7c8740189529cb7d7679d",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Codegen/Common/GPU/GPUFuseAndHoistParallelLoops.cpp"
    },
    {
      "type": "modify",
      "old_id": "b7a805f06474ba438ce29f58773fa99678072397",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Codegen/Common/GPU/test/gpu_fuse_and_hoist_forall.mlir",
      "new_id": "a019876cf3eaedd7645115bba86c46ec822fe722",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Codegen/Common/GPU/test/gpu_fuse_and_hoist_forall.mlir"
    },
    {
      "type": "modify",
      "old_id": "3ee4db9c9e7c7bb779bfd120b39fa1f4a56b9e27",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Codegen/Dialect/GPU/TransformExtensions/IREEGPUExtensions.cpp",
      "new_id": "ec2a53dd2c267f2d18e7da02f0318aaefe37a832",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Codegen/Dialect/GPU/TransformExtensions/IREEGPUExtensions.cpp"
    },
    {
      "type": "modify",
      "old_id": "ceba3f086b99cb0f279584ceeacf05566fd3d172",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Codegen/Dialect/GPU/TransformExtensions/IREEGPUExtensionsOps.td",
      "new_id": "2a1a7309cbc5e9e906aab208c9ee8483fb685099",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Codegen/Dialect/GPU/TransformExtensions/IREEGPUExtensionsOps.td"
    },
    {
      "type": "modify",
      "old_id": "1b99c9f19422466884073f97e8a50fa0f7d65859",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Codegen/Dialect/GPU/TransformExtensions/test/BUILD.bazel",
      "new_id": "428211b3ea01b39657db1693257e0ea41ed18bf1",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Codegen/Dialect/GPU/TransformExtensions/test/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "04481680b3ac187bdc0ed4c4ff6e9b9e9bebc076",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Codegen/Dialect/GPU/TransformExtensions/test/CMakeLists.txt",
      "new_id": "344da8cf34d9ebef58a5864cd000cfaf16d8f0c6",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Codegen/Dialect/GPU/TransformExtensions/test/CMakeLists.txt"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "d9e6b77b10a110ef592d43328f92072432bd33c6",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Codegen/Dialect/GPU/TransformExtensions/test/transform_fuse_collapse_shape_with_forall.mlir"
    },
    {
      "type": "modify",
      "old_id": "659f2a9487a1f1e530dfec61a77e94a40f5ac317",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Codegen/Dialect/GPU/Transforms/Transforms.cpp",
      "new_id": "e30a14d8f97397e3212a14d35ad12ce867ba7560",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Codegen/Dialect/GPU/Transforms/Transforms.cpp"
    },
    {
      "type": "modify",
      "old_id": "515ed84e70c3d0b48f46381c39594124f125a72f",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Codegen/Dialect/GPU/Transforms/Transforms.h",
      "new_id": "444762b09ed7511e843ef4992f13658cd1f64fed",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Codegen/Dialect/GPU/Transforms/Transforms.h"
    },
    {
      "type": "modify",
      "old_id": "ee06c4f0495d3d208e1a741569ebd1fe5c7038df",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Codegen/LLVMGPU/test/ROCDL/pipeline_igemm_tile_and_fuse.mlir",
      "new_id": "c29dd4dc0d810c218aa0824a924e3ad820759b5b",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Codegen/LLVMGPU/test/ROCDL/pipeline_igemm_tile_and_fuse.mlir"
    },
    {
      "type": "modify",
      "old_id": "a89cb395b9c67839e15cb75b8ea1adf2e8d6482f",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Codegen/LLVMGPU/test/ROCDL/pipeline_tile_and_fuse.mlir",
      "new_id": "8bf7539b9007945d15ad69ccf24a069e31db2bc2",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Codegen/LLVMGPU/test/ROCDL/pipeline_tile_and_fuse.mlir"
    }
  ]
}
