)]}'
{
  "commit": "9c951cac8eddc9828adadd7d7bd4207df5f145b4",
  "tree": "b66758ae6c2ac53d6342a83a3612c27a01ccd305",
  "parents": [
    "7812c776d5d57b13d80b6ae27f2dc86c73fddbcf"
  ],
  "author": {
    "name": "MaheshRavishankar",
    "email": "1663364+MaheshRavishankar@users.noreply.github.com",
    "time": "Tue Aug 13 09:05:10 2024 -0700"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Tue Aug 13 09:05:10 2024 -0700"
  },
  "message": "[Flow] Generalize horizontal contraction fusion to cover more cases.  (#17880)\n\nCurrent implementation of horizontal fusion worked only for\ncontraction (-\u003e truncf)? cases. To generalize it to more cases the\nfollowing changes were needed\n\n1) Instead of looking for a `linalg.generic` with a single\n   `arith.truncf`, use `isBitTruncate` utility method. To enable this\n   the pass is moved to `Flow`.\n\n2) Use `Operation::Equivalence` to check that the contraction\n   operations are \"similar\" and any subsequent truncation operations\n   are \"similar\" too.\n\n3) Instead of trying to find an insertion point based on existing\n   dominance relationship between operations,\n   - Always insert the horizontally fused contraction before the first\n     contraction\n   - Always insert the horizontally fused truncation operation before\n     the first truncation operation\n\n4) Instead of generating the fills/empty along with horizontally fused\n   operations, use separate patterns to fold concats of fills and\n   concats of emptys into fill and empty, respectively.\n\nSigned-off-by: MaheshRavishankar \u003cmahesh.ravishankar@gmail.com\u003e\n\n---------\n\nSigned-off-by: MaheshRavishankar \u003cmahesh.ravishankar@gmail.com\u003e",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "ea18f86f599c9e309e8417490fc4c4a7da86036f",
      "old_mode": 33188,
      "old_path": ".github/workflows/pkgci_regression_test.yml",
      "new_id": "ae860feeea8c2330330708dee2edaf7139a8d70d",
      "new_mode": 33188,
      "new_path": ".github/workflows/pkgci_regression_test.yml"
    },
    {
      "type": "modify",
      "old_id": "1c4df9442ff4b6b2dcb11d2b26c3e0ad5ada4abf",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Dialect/Flow/Transforms/BUILD.bazel",
      "new_id": "fe5eaabd336aafe4c62c91b8f8fdf1af02a9252a",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/Flow/Transforms/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "065b803bc7060f4ec17b3e62e0e73db80ba615f3",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Dialect/Flow/Transforms/CMakeLists.txt",
      "new_id": "701eefe5758de3a9e5e957d81740298b44aa8e50",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/Flow/Transforms/CMakeLists.txt"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "756162717cab4479b05f9c3448c618d7bb28d650",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/Flow/Transforms/FuseHorizontalContractions.cpp"
    },
    {
      "type": "modify",
      "old_id": "ed7a6930b805fc95880e04ae49ed3f39b6161175",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Dialect/Flow/Transforms/Passes.cpp",
      "new_id": "4c522a4e200bdd0eadf04c2e1539a842e8f220b5",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/Flow/Transforms/Passes.cpp"
    },
    {
      "type": "modify",
      "old_id": "6fa282ccbe89ce8554cdf6ec17a557990d9bbc01",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Dialect/Flow/Transforms/Passes.td",
      "new_id": "a2d57976d11bbfe46332874e5937d42f4305ef17",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/Flow/Transforms/Passes.td"
    },
    {
      "type": "modify",
      "old_id": "9764b3bb618212481e41c5235d5c4650e68fe6c1",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Dialect/Flow/Transforms/test/BUILD.bazel",
      "new_id": "a9d3ccd7446f7ec5c48eae20b8cf39f1cb9f62b2",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/Flow/Transforms/test/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "b80b49510703662a220d4c3af5690714288cf4d9",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Dialect/Flow/Transforms/test/CMakeLists.txt",
      "new_id": "9c6d0a122f1d7b20f549c2acf0dd37fca24a0e59",
      "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": "d43fdab9544bfbfeb582d2c9aea8218e2acfb943",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/Flow/Transforms/test/fuse_horizontal_contractions.mlir"
    },
    {
      "type": "modify",
      "old_id": "bf0aef892fb6a70c64f5bba04533785ae27b2f89",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/GlobalOptimization/BUILD.bazel",
      "new_id": "5a0916994a97f5900831eb35c9d273deb2694e6e",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/GlobalOptimization/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "51a1c5d22f980277e564107353131c034a33ce27",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/GlobalOptimization/CMakeLists.txt",
      "new_id": "cc2aac50eeba04e07db4bbef79c55d4621aa89aa",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/GlobalOptimization/CMakeLists.txt"
    },
    {
      "type": "delete",
      "old_id": "b71912bb0a8326215c36f587a2cfe50a326dd61e",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/GlobalOptimization/FuseHorizontalContractions.cpp",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "modify",
      "old_id": "877f9761a7a89a7b276478232396c25764d97d3f",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/GlobalOptimization/Passes.cpp",
      "new_id": "350245135010e5e32f57df53cfef967369fc1773",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/GlobalOptimization/Passes.cpp"
    },
    {
      "type": "modify",
      "old_id": "c91916146d2ff93ca2b2e27ed7c758ba2ff873b6",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/GlobalOptimization/Passes.td",
      "new_id": "578d4ac9447b3de88186f0773a78c622e2537fbc",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/GlobalOptimization/Passes.td"
    },
    {
      "type": "modify",
      "old_id": "dd6ff2247ee5939156d67e813d1ac2433013577e",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/GlobalOptimization/test/BUILD.bazel",
      "new_id": "aa459981dac16fb2693b7b6654bc8db55232bb30",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/GlobalOptimization/test/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "80e55c8f2850828984d410384665fe6fcc6115db",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/GlobalOptimization/test/CMakeLists.txt",
      "new_id": "16140b80c20a3a0b5387257cbae0b64e00d18518",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/GlobalOptimization/test/CMakeLists.txt"
    },
    {
      "type": "delete",
      "old_id": "7a50e355b41cf9255f9d217463793b3796a7ab28",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/GlobalOptimization/test/fuse_horizontal_contractions.mlir",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "modify",
      "old_id": "c08b4347ae1f4baf5b3ca7cc609c1e7a03b91174",
      "old_mode": 33188,
      "old_path": "experimental/regression_suite/shark-test-suite-models/sd3/test_clip.py",
      "new_id": "40a8cafcb27651a7acbda013a96ca0c08077e19d",
      "new_mode": 33188,
      "new_path": "experimental/regression_suite/shark-test-suite-models/sd3/test_clip.py"
    },
    {
      "type": "modify",
      "old_id": "2e5b18979f9ad18e1dd9362aa7faeb06a8717046",
      "old_mode": 33188,
      "old_path": "experimental/regression_suite/shark-test-suite-models/sd3/test_mmdit.py",
      "new_id": "506d772ff3249606fef5e639d316031f3ac7ce77",
      "new_mode": 33188,
      "new_path": "experimental/regression_suite/shark-test-suite-models/sd3/test_mmdit.py"
    },
    {
      "type": "modify",
      "old_id": "207ddafd023ab1d82f7a6ce1ad2cd9b2bb90261a",
      "old_mode": 33188,
      "old_path": "experimental/regression_suite/shark-test-suite-models/sdxl/test_clip.py",
      "new_id": "e4c3c49bd5101d4674800f311897ec1c479e3fa2",
      "new_mode": 33188,
      "new_path": "experimental/regression_suite/shark-test-suite-models/sdxl/test_clip.py"
    },
    {
      "type": "modify",
      "old_id": "9d7f942a1226e055b7741d95a257d2f5c65cc19a",
      "old_mode": 33188,
      "old_path": "experimental/regression_suite/shark-test-suite-models/sdxl/test_unet.py",
      "new_id": "bc0d55b9987cb73d308f7354f233ea6bd90935ee",
      "new_mode": 33188,
      "new_path": "experimental/regression_suite/shark-test-suite-models/sdxl/test_unet.py"
    }
  ]
}
