)]}'
{
  "commit": "b76f89ca8ba1a9e4935575826f1de4a3777e9e94",
  "tree": "8cbd162dde7a1769466c2491729a57a73ea8e414",
  "parents": [
    "7cf0e26b8ff3d19ddd227e70c13734f0ae264f2f"
  ],
  "author": {
    "name": "Quinn Dawkins",
    "email": "quinn.dawkins@gmail.com",
    "time": "Wed Aug 07 11:50:09 2024 -0400"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Wed Aug 07 15:50:09 2024 +0000"
  },
  "message": "[Codegen][GPU] Add producer fusion pattern to loop fusion and hoisting pass (#18118)\n\nThis adds an additional step to the FuseAndHoistParallelLoops pass to\r\nallow further fusion of producers after doing consumer fusion. For\r\nexample,\r\n\r\n```\r\nscf.forall | transpose\r\n  |          |\r\n  v          v\r\n   linalg.add\r\n```\r\n\r\nWhere consumer fusion will fuse the add, but we need another step of\r\nproducer fusion to fuse in the transpose.\r\n\r\nAlso removes hal.binding.subspan ops from the tests.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "895e9ee0e461077f2405d3f5fb02b367e31f6880",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Codegen/Dialect/GPU/Transforms/FuseAndHoistParallelLoops.cpp",
      "new_id": "bd52dcdd02ba19791f60d23c23eed0ebc6c7417e",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Codegen/Dialect/GPU/Transforms/FuseAndHoistParallelLoops.cpp"
    },
    {
      "type": "modify",
      "old_id": "e889d821271b828beab431c0ff3dbe5006f78cb5",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Codegen/Dialect/GPU/Transforms/test/fuse_and_hoist_forall.mlir",
      "new_id": "a50c0e32eec36b7d58ff13bb328d72dc9b8adb6a",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Codegen/Dialect/GPU/Transforms/test/fuse_and_hoist_forall.mlir"
    }
  ]
}
