)]}'
{
  "commit": "02d145e5a948283df3cd30289fa68fc9ceb602cb",
  "tree": "6a37230fa8cb2c4ae1e88451f2c13b50f127c0a6",
  "parents": [
    "74f8d3c6b9800b431c42573df523e5d06c9a51d4"
  ],
  "author": {
    "name": "Han-Chung Wang",
    "email": "hanhan0912@gmail.com",
    "time": "Wed Jan 08 19:39:49 2025 -0800"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Thu Jan 09 03:39:49 2025 +0000"
  },
  "message": "[Stream] Implement SpecializeEncodings pass (1/n) (#19502)\n\nThere are three major changes in the revision:\r\n\r\n- Introduce `AffinityAnalysisDialectInterface` Stream dialect interface.\r\nIt is used to fetch attributes that are defined by other dialects. In\r\nthe revision, HAL implements the dialect interface, and it can return\r\nwhatever attribute attached in HAL::ExecutableTarget attributes. The\r\nmain idea of the dialect interface is that Stream **does not** need to\r\ndepend on HAL to get the layout information.\r\n- Add `cloneWithLayouts` method to the EncodingAttr. It is used in the\r\nencoding specialization pass where it can resolve the layout\r\nrequirements and add it to the `layouts` field. The other optional\r\nparameters are dropped because the layout is already resolved. It can be\r\na new Encoding dialect attribute because it is just describing the\r\nlayout. The stream tensor ops do not need to know the `op_type`,\r\n`element_types` and `operand_index` parameters. It only needs the layout\r\ninformation, and the attribute should implement the interface method.\r\n- Partially implement the SpecializeEncodings pass. The responsibility\r\nof the pass is large, so I decide to implement it incrementally. This\r\nrevision only implements the mechanism of updating stream tensor ops\u0027\r\nencoding, and only stream.tensor.sizeof op is supported. The rest of the\r\nsupport for other stream tensor op can be added later on. The executable\r\nduplication and the update of dispatch ops will be implemented in\r\nsubsequent PRs.\r\n\r\n---------\r\n\r\nSigned-off-by: hanhanW \u003chanhan0912@gmail.com\u003e",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "593d9b8fc5c62661162a951ce433cb44cf4ee391",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Dialect/Encoding/IR/EncodingAttrs.cpp",
      "new_id": "b388b9ceb9b59bd84674ef162a007a5aca57e668",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/Encoding/IR/EncodingAttrs.cpp"
    },
    {
      "type": "modify",
      "old_id": "54829b68e2cf68e29e30d65dbd2e29ac1a58ea5b",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Dialect/Encoding/IR/EncodingAttrs.td",
      "new_id": "434356a7e66ca3fd1b86dea0c44ed3c531201c29",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/Encoding/IR/EncodingAttrs.td"
    },
    {
      "type": "modify",
      "old_id": "3f80245bfc8ccb7789b2cfa29fb801c5376094d2",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Dialect/HAL/IR/BUILD.bazel",
      "new_id": "576e77dc14ea30a2a4ac7bd15cc61fd1c45691ec",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/HAL/IR/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "846bcf0d38a28fec033b41883d747c41c7dbd51b",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Dialect/HAL/IR/CMakeLists.txt",
      "new_id": "e0b68bdf56b91d16e67785d25d1bf1318a5eaf08",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/HAL/IR/CMakeLists.txt"
    },
    {
      "type": "modify",
      "old_id": "00c2c6ebebc8d5cdb1f4f15e757f07ff8f9dad80",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Dialect/HAL/IR/HALDialect.cpp",
      "new_id": "e28d08fb9a894a65e964f8a7d6880fd8c0109637",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/HAL/IR/HALDialect.cpp"
    },
    {
      "type": "modify",
      "old_id": "9959bd1ef3ff5e7fced7a6f2afd3b2ff866a8c05",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Dialect/Stream/IR/BUILD.bazel",
      "new_id": "2fa22edf5eb6b0effce94f2363b68f9b6206b375",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/Stream/IR/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "286bb7152ed1f6249569e8e8e77529d3ddf1166a",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Dialect/Stream/IR/CMakeLists.txt",
      "new_id": "2f10910741ae9a7ebc86834f1af368a99e15f0eb",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/Stream/IR/CMakeLists.txt"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "d18b7a54d72e91cf40c8e06038d5f9463fd035bd",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/Stream/IR/StreamInterfaces.h"
    },
    {
      "type": "modify",
      "old_id": "90e22a640352bce5ba4314bf099989bd21e965cb",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Dialect/Stream/Transforms/BUILD.bazel",
      "new_id": "d7ef2a20b4aee98dfa54b6492c5826862eea831e",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/Stream/Transforms/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "9e15b84e0763aa38530755480e674f1369270777",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Dialect/Stream/Transforms/CMakeLists.txt",
      "new_id": "b9050532cb06e11447473f421563931d14c727ca",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/Stream/Transforms/CMakeLists.txt"
    },
    {
      "type": "modify",
      "old_id": "2234c62daa585f41b2e159c40160beba98e7a061",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Dialect/Stream/Transforms/Passes.cpp",
      "new_id": "69e65fed56ff7b3a45ed91af19de3497bf8628a2",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/Stream/Transforms/Passes.cpp"
    },
    {
      "type": "modify",
      "old_id": "3aec709938cfc4bcf12e6fc81cc4402cc1f8c423",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Dialect/Stream/Transforms/Passes.td",
      "new_id": "3dcbbb5e236adbb404bbbd6347fefc43721e9d05",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/Stream/Transforms/Passes.td"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "b177bedb718d49552161280186140e4641bbe0aa",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/Stream/Transforms/SpecializeEncodings.cpp"
    },
    {
      "type": "modify",
      "old_id": "87d6bea609773ca5b0a6905e11b37e3e63d895f2",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Dialect/Stream/Transforms/test/BUILD.bazel",
      "new_id": "722ce780b148b3a7289ac7107aa89e4c3c3a4aa0",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/Stream/Transforms/test/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "8c4ca85927c53cc004ef61c463fa088f67649866",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Dialect/Stream/Transforms/test/CMakeLists.txt",
      "new_id": "6eb964a1771edabc52d19710efdedba5840674f7",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/Stream/Transforms/test/CMakeLists.txt"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "1ae03e6047639d8ea207eea7b96c98c5407e96da",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/Stream/Transforms/test/specialize_encodings.mlir"
    }
  ]
}
