)]}'
{
  "commit": "d4ee61f436bcc95c1d113e2854ec9352def29dda",
  "tree": "f911ae322856010165d9924bc6598bc73c5cfa5d",
  "parents": [
    "4bced6946652ec77a49919b0b0a2ffad93a87b39"
  ],
  "author": {
    "name": "Benoit Jacob",
    "email": "jacob.benoit.1@gmail.com",
    "time": "Fri Jun 05 12:20:24 2026 -0400"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Fri Jun 05 12:20:24 2026 -0400"
  },
  "message": "[Codegen][CPU] Fold reshape-containing encoding relayouts to map_store. (#24533)\n\nGPU\u0027s configuration pipeline folds the `pack`/`expand_shape`/`transpose`\nrelayout chain from encoding materialization into a single\n`iree_linalg_ext.map_store` before tiling; CPU did not. For a non-row-\nmajor encoding swizzle the intervening `tensor.expand_shape` (not a\n`TilingInterface` op) blocks producer fusion and strands an untiled,\nwhole-tensor `pack` intermediate.\n\nMirror GPU on CPU:\n- Add `RelayoutCombinationScope::DispatchReshape`: like `Dispatch` but\nrestricted to chains whose backward slice contains an\nexpand/collapse_shape. Pure pack/unpack/transpose chains tile fine and\nare left alone.\n- Run `CombineResultLayoutTransformation` with that scope in the CPU\nconfiguration pipeline, after MaterializeDeviceEncoding.\n- Skip `map_load`/`map_store` as `getRootOperation` candidates, so a\ndispatch with a real compute op plus a `map_store` roots on the compute\nop.\n\nInert for existing (row-major) CPU encodings.\n\nProgress towards #24515.\n\nSigned-off-by: Benoit Jacob \u003cjacob.benoit.1@gmail.com\u003e\nCo-authored-by: Claude Opus 4.7 \u003cnoreply@anthropic.com\u003e",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "05796629ab6c6fc0541d217ba1091c5b42cc43c0",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Codegen/Common/CombineLayoutTransformation.cpp",
      "new_id": "6fbebb6c05de4bacdfa6c95b8e14602dfc395e13",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Codegen/Common/CombineLayoutTransformation.cpp"
    },
    {
      "type": "modify",
      "old_id": "f7fe9e4dd042d4f23ba7d7b6a9e0442a728d3e9a",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Codegen/Common/CombineLayoutTransformation.h",
      "new_id": "b869402b3106cbaa330345058c793489f0668bdb",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Codegen/Common/CombineLayoutTransformation.h"
    },
    {
      "type": "modify",
      "old_id": "000df0932528df18a56e53c94657ffff1cbed7b6",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Codegen/Common/Passes.td",
      "new_id": "65c21c4ec73112f8fba13cf01a698020f780247c",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Codegen/Common/Passes.td"
    },
    {
      "type": "modify",
      "old_id": "84b6cfe35129041dccb2ab60aaf4a847da74353b",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Codegen/Common/test/combine_result_layout_transformation.mlir",
      "new_id": "3284f32da747767d2fcb209c5a8a5e8d9cb478d7",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Codegen/Common/test/combine_result_layout_transformation.mlir"
    },
    {
      "type": "modify",
      "old_id": "52e2b61829f26c14471a0883029b536dc9b151af",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Codegen/LLVMCPU/Passes.cpp",
      "new_id": "e9f4fb681dd44765103e173586df4e9943abaab4",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Codegen/LLVMCPU/Passes.cpp"
    },
    {
      "type": "modify",
      "old_id": "08b428142dc04dabb1bbb7934dda010d614acba9",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Codegen/Utils/CPUUtils.cpp",
      "new_id": "9b6d3ef364c5c5d4626d693b8c921367542908fa",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Codegen/Utils/CPUUtils.cpp"
    }
  ]
}
