)]}'
{
  "commit": "4bab48feb40a30083cf9c9f14cb24e54de057a4a",
  "tree": "986cca5068d2e3c2f6897451c76e26bd12e31e8b",
  "parents": [
    "2db19113bd1eb61a35a44d6ad1a33e630f887584"
  ],
  "author": {
    "name": "maxbartel",
    "email": "bartel@roofline.ai",
    "time": "Sun Oct 18 19:59:03 2026 +0200"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Sun Oct 18 19:59:03 2026 +0200"
  },
  "message": "[DispatchCreation] Preserve the target of materialized tensor layouts (#24968)\n\nOnce tensor layouts have been materialized for a device, dispatch\ncreation must neither assign encodings to them again nor compile them\nfor another device. Assigning encodings again re-encodes data-tiled\nconvolutions when convolutions are data-tiled, and tile shapes chosen\nfor one CPU can be unsupported or slow on another.\n\nRecord the target in the `iree.encoding.materialized_layout_target`\nmodule attribute. Typed accessors live in\n`DispatchCreation/MaterializedLayoutTarget.h`; `Encoding/Utils` cannot\ndepend on HAL because HAL/IR depends on Stream/IR, which depends on\n`Encoding/Utils`. The header lists every behavior the attribute changes.\n\n- `iree-dispatch-creation-assign-data-tiling-encodings` skips such\nmodules. It is a module pass so that no function pass has to read the\nattribute. Its options carry the operation families and encoding\nstrategy, so printed pipelines and crash reproducers keep them. The\ndefault operation families now come from one helper,\n`getDefaultDataTilingOpTypes`.\n- `iree-dispatch-creation-verify-materialized-layout-target` runs first\nin the dispatch-creation pipeline, independent of the data-tiling\noptions. It rejects modules compiled for a different target, for several\ntargets or for none.\n\nResuming with `--compile-from` reuses the serialized device targets, so\na normal `iree-compile` flow does not retarget. The check guards\nhand-edited IR and tools that rewrite device targets. Nothing sets the\nattribute until #24969.\n\nThis is one of five PRs adding an experimental CPU path that\nmaterializes data-tiling layouts before dispatch creation, so that\n`linalg.mmt4d` and data-tiled convolutions fuse with their elementwise\nepilogues and result unpacks.\n\nAssisted by AI.\n\nCo-authored-by: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e",
  "tree_diff": [
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "b597e3ae4538ace8e45e1bb9dee66d0915bf5468",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/DispatchCreation/AssignDataTilingEncodings.cpp"
    },
    {
      "type": "modify",
      "old_id": "f8f52128ae9ca6e0428a2d32e0a6aaf622125c27",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/DispatchCreation/BUILD.bazel",
      "new_id": "25cbfaa4070afff513ad0ff81e3ed4dab9d0f567",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/DispatchCreation/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "cc6a56d387c1b0a6f9cb53cb80cf85955a762d77",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/DispatchCreation/CMakeLists.txt",
      "new_id": "1492a9ec4dba60eb35577d25fe2f43f3ccd9759e",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/DispatchCreation/CMakeLists.txt"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "33d11b76ae8895f098d0ff10ea08747a034e48ba",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/DispatchCreation/MaterializedLayoutTarget.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "4a50e94c0cc74af23de7b6401a61a54c773d4c78",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/DispatchCreation/MaterializedLayoutTarget.h"
    },
    {
      "type": "modify",
      "old_id": "22bac0fbdf23051c466782d4bb9021514d5e06eb",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/DispatchCreation/Passes.cpp",
      "new_id": "3ad015224880ad759465d38dc546ecfb76e13926",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/DispatchCreation/Passes.cpp"
    },
    {
      "type": "modify",
      "old_id": "80f60d8aec24bce868ca96b8d4d2d0a24af9aba1",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/DispatchCreation/Passes.h",
      "new_id": "896e3baa1be35be4f7afd633364ca2eedbed50f8",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/DispatchCreation/Passes.h"
    },
    {
      "type": "modify",
      "old_id": "123d9f3741271e071d7acbe7785ca5781e080e94",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/DispatchCreation/Passes.td",
      "new_id": "6cd068ed71b02b8d9a6139ae0aba9f06ad0ce705",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/DispatchCreation/Passes.td"
    },
    {
      "type": "modify",
      "old_id": "fcec46de9d9ec53c6c549f3e49a4df6ea8b79955",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/DispatchCreation/test/BUILD.bazel",
      "new_id": "e612ac9d6bae8fa41886cf110b77a1ee4d14340e",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/DispatchCreation/test/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "34bd6d5ea1f5314cb430833ca980a11f19afbffd",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/DispatchCreation/test/CMakeLists.txt",
      "new_id": "4fb08ffa139d5f8246ffaf0d620adabe5b79d53d",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/DispatchCreation/test/CMakeLists.txt"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "b6dc9be1ca48d549fa1100a408976673707146b3",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/DispatchCreation/test/assign_data_tiling_encodings.mlir"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "ffff9b5567b705ba57c9e1d2dc620e8e2e664580",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/DispatchCreation/test/verify_materialized_layout_target.mlir"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "8a43ede41aeb579e496fea70217ef542181dae93",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/DispatchCreation/test/verify_materialized_layout_target_invalid.mlir"
    }
  ]
}
