)]}'
{
  "commit": "a6a56a97ae070c2a1a290841e99ec1a396e99101",
  "tree": "2c43249cc6745e52a465d9c35f830972fc620be1",
  "parents": [
    "3d1364e1b184492165db2a1bf3556b281e8fcea3"
  ],
  "author": {
    "name": "Ian Wood",
    "email": "75152913+IanWood1@users.noreply.github.com",
    "time": "Tue May 28 12:35:45 2024 -0700"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Tue May 28 12:35:45 2024 -0700"
  },
  "message": "Add `LinalgFusionInterface` to support fusion for linalg_ext ops (added `scatter` and `reverse`) (#17428)\n\n`LinalgFusionOpInterface` allows for fusion of both `Linalg` and\r\n`LinalgExt` operations. The new interface provides access to methods\r\nessential for performing fusion, allowing existing fusion logic to be\r\nused with `LinalgExt` operations.\r\n\r\nAs noted in #17392, it probably makes sense to move this into the\r\n`TilingInterface` + probably make it a bit more abstracted\r\n\r\n\r\n#### Changes\r\n- **`LinalgFusionOpInterface`**: Interface for fusion operations for\r\nboth `Linalg` and `LinalgExt` ops.\r\n  - Implements methods to access indexing maps (or null\r\n- **Implementation for Linalg Ops**: The interface is implemented for\r\nstandard Linalg operations by forwarding to preexisting methods (e.g\r\n`getIndexingMaps()`). No changes to the ops themselves.\r\n- **Implementation for LinalgExt Ops**: The interface currently only\r\nimplemented for `iree_linalg_ext.scatter/reverse`.\r\n\r\n---------\r\n\r\nSigned-off-by: Ian Wood \u003cianwood2024@u.northwestern.edu\u003e",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "2c40f820ac24f59daeec83e0cedea37a0721cf6e",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Dialect/Flow/Transforms/BUILD.bazel",
      "new_id": "9889ca6f663532c6bdc2ba788f46c6d64b672d5b",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/Flow/Transforms/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "007891c828a880989379094e956fd9ccf3db7e3f",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Dialect/Flow/Transforms/CMakeLists.txt",
      "new_id": "64ee97973146c5caeb93982dd7117b55c956a0f2",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/Flow/Transforms/CMakeLists.txt"
    },
    {
      "type": "modify",
      "old_id": "beb21766541ef2a74f2d3886d1a4010433cfc456",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Dialect/Flow/Transforms/FormDispatchRegions.cpp",
      "new_id": "9f88f4850da8dbc9905d69b0859cc5e51f363df5",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/Flow/Transforms/FormDispatchRegions.cpp"
    },
    {
      "type": "modify",
      "old_id": "592d015e9decd12b23dacbd830b6d1bed33a2ec7",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Dialect/Flow/Transforms/Passes.td",
      "new_id": "cf2a55c013d9c325b3d1ff1c0f9fde8a12c9c199",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/Flow/Transforms/Passes.td"
    },
    {
      "type": "modify",
      "old_id": "b9ce61bf48ae19b66d95dbf4c4642a93db4893ca",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Dialect/Flow/Transforms/test/BUILD.bazel",
      "new_id": "c74fc909c04eb2809f53119a75e3546c84f5135f",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/Flow/Transforms/test/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "e7df9deea7f3c5dc2b7de53600f62a7c9ade21a7",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Dialect/Flow/Transforms/test/CMakeLists.txt",
      "new_id": "0a36a676741d7f78d85291e99db34538eaa2df2d",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/Flow/Transforms/test/CMakeLists.txt"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "0e03211c7ae28ba227dab781f8b4581ce7f1101e",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/Flow/Transforms/test/dispatch_linalg_ext_fusion.mlir"
    },
    {
      "type": "modify",
      "old_id": "7442d30fac343e9fc9b04d796142623c3765abaf",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Dialect/LinalgExt/IR/BUILD.bazel",
      "new_id": "8675c431b3e27c90824b9bd92bbe8a7c205b823b",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/LinalgExt/IR/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "1fb81e3bbdf0d33d89820fb3447081a24153fd30",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Dialect/LinalgExt/IR/CMakeLists.txt",
      "new_id": "a6e6576f3798e00d966f6dfa53077db2014f68de",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/LinalgExt/IR/CMakeLists.txt"
    },
    {
      "type": "modify",
      "old_id": "0b3215df3b77adfc024ab5809eec0a4e416f9224",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Dialect/LinalgExt/IR/LinalgExtDialect.cpp",
      "new_id": "1ec216b39a5c1d98b2667d39bc27e12c4660468a",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/LinalgExt/IR/LinalgExtDialect.cpp"
    },
    {
      "type": "modify",
      "old_id": "0babf32e45ba35aad237f4b6d6f953dff6077871",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Dialect/LinalgExt/IR/LinalgExtInterfaces.h",
      "new_id": "984db79df1f9cdd7814a789121c04acbf7d9406d",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/LinalgExt/IR/LinalgExtInterfaces.h"
    },
    {
      "type": "modify",
      "old_id": "df04c86f48764970bd7598cc52d29bd8fa79b7bd",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Dialect/LinalgExt/IR/LinalgExtInterfaces.td",
      "new_id": "77c3266d0ca7ba64477b02d1d458ceec049bbb2f",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/LinalgExt/IR/LinalgExtInterfaces.td"
    },
    {
      "type": "modify",
      "old_id": "950bf9f31781b0df6299264f86c476274e8d10a1",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Dialect/LinalgExt/IR/LinalgExtOps.cpp",
      "new_id": "c5c42ec41920d2b20d55d2bf16078c8d5a40264d",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/LinalgExt/IR/LinalgExtOps.cpp"
    },
    {
      "type": "modify",
      "old_id": "c75f709fb2db5aa4a3565107ea1700d7b89cb301",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Dialect/LinalgExt/IR/LinalgExtOps.td",
      "new_id": "bf9694d9100271fde8303c35da3261316a09fc8b",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/LinalgExt/IR/LinalgExtOps.td"
    }
  ]
}
