)]}'
{
  "commit": "49280918748c5545eee1ce75caff48c3ce6e69ed",
  "tree": "27f6dbd5c1b01b73f2ed004cd6fc0f8d94d6ae06",
  "parents": [
    "97c9020805824ce88f36ce66c80489b2df5db74a"
  ],
  "author": {
    "name": "Quinn Dawkins",
    "email": "quinn.dawkins@gmail.com",
    "time": "Wed Dec 03 10:02:55 2025 -0500"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Wed Dec 03 15:02:55 2025 +0000"
  },
  "message": "[Codegen] Support dynamic offsets in collapse_shape fusion to interface stores (#22800)\n\nPreviously, `FoldCollapseShapeIntoInterfaceTensorStore` only handled\nstatic offsets when fusing `tensor.collapse_shape` into dispatch tensor\nstores. This change extends the pattern to also accept dynamic offsets\nwhen:\n\n1. The offset comes from an `affine.apply` operation\n2. The affine expression is provably divisible by the inner dimension\nproduct\n\nThis also fixes an issue where offset computation was done at the\nsubspan insertion point, which could fail when the offset value is\ndefined in a nested region (e.g., inside a loop). The offset\naffine.apply is now created at the store\u0027s insertion point where\ndominance is guaranteed.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "552639f4d105d7d2025ae5fea208ee5f391d619a",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Codegen/Common/ReshapePatterns.cpp",
      "new_id": "d53084d66ceaa3f4e88c66cf3c63ec30ca41a3d2",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Codegen/Common/ReshapePatterns.cpp"
    },
    {
      "type": "modify",
      "old_id": "c03effb71309414187427c914ad83109bc4f32bb",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Codegen/Common/test/fold_reshape_into_interface_tensor.mlir",
      "new_id": "0c5d0841630f71549eaceec545935fc2bf2990ca",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Codegen/Common/test/fold_reshape_into_interface_tensor.mlir"
    }
  ]
}
