)]}'
{
  "commit": "e4387cbc65c60c4e151c95e658e3894dfae60737",
  "tree": "a9ea0177f6ba006de3ea395f4e8b1090b7850535",
  "parents": [
    "2fa82191650807e985335b037cb732be8e7eeeb8"
  ],
  "author": {
    "name": "ziereis",
    "email": "44057120+ziereis@users.noreply.github.com",
    "time": "Mon Oct 19 18:41:40 2026 +0200"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Mon Oct 19 18:41:40 2026 +0200"
  },
  "message": "[GlobalOptimization] Make im2col a generic convolution rewrite (#25011)\n\nReplaces the three layout-specific im2col patterns (NHWC, NCHW,\ndepthwise NHWC) with one generic rewrite that handles any convolution,\nnamed or generic, including grouped, dilated, 1-D/3-D, dynamic and\ninteger ones.\n\nThe pattern gathers the convolved input with an all-parallel\n`linalg.generic`, rewires the op to read the gather, keeps the original\npayload, and collapses the result into a matmul using\n`DispatchCreation::getCollapsibleLoops`. Add a basic heuristic via a\ncontrol function that skips convolutions without an output channel\ndimension (depthwise, pooling), where the gather is never amortized.\n\nThe pass is renamed to `iree-global-opt-convert-conv-to-im2col`; the\npipeline flag is unchanged.\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)\n\n---------\n\nSigned-off-by: Thomas Ziereis \u003cziereis@roofline.ai\u003e\nCo-authored-by: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "25cbfaa4070afff513ad0ff81e3ed4dab9d0f567",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/DispatchCreation/BUILD.bazel",
      "new_id": "7a95d3138892101f2c38ce05b1c06fa8b63eab0b",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/DispatchCreation/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "1492a9ec4dba60eb35577d25fe2f43f3ccd9759e",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/DispatchCreation/CMakeLists.txt",
      "new_id": "e054fb7746b863e7ea6a525029d7b02172115324",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/DispatchCreation/CMakeLists.txt"
    },
    {
      "type": "modify",
      "old_id": "73d6edb4aa0aecd3add53e08de5c839695218042",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/DispatchCreation/CollapseDimensions.cpp",
      "new_id": "a5a7145ae91f867069f9a5aa8015f6743f9d24b0",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/DispatchCreation/CollapseDimensions.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "f43da22f2227211eed471fc762996df6fd330b06",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/DispatchCreation/CollapseDimensions.h"
    },
    {
      "type": "modify",
      "old_id": "570c141b575308f2adeece3b40095c1ff180da6a",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/GlobalOptimization/BUILD.bazel",
      "new_id": "2d6c95fc2d11030f1cc49cd295e8cdf6ea82dc80",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/GlobalOptimization/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "d5387a4364f94587c985161770a5979735215df1",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/GlobalOptimization/CMakeLists.txt",
      "new_id": "3c9ca4466192d7d2e1e9a73e7d1b45859db482ff",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/GlobalOptimization/CMakeLists.txt"
    },
    {
      "type": "delete",
      "old_id": "2ce4985bdb5eba6516858f7411c25a2d5f63f464",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/GlobalOptimization/ConvertConv2DToImg2Col.cpp",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "9676ed0b2e33d6f59d249b98b297d2464bff61d3",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/GlobalOptimization/ConvertConvToIm2Col.cpp"
    },
    {
      "type": "modify",
      "old_id": "bd99e43bc5d0f560b3e0b57b4965305a0d55e8b1",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/GlobalOptimization/Passes.cpp",
      "new_id": "d3bbde20d15b3c434cea4aed32cc392f88c2c46f",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/GlobalOptimization/Passes.cpp"
    },
    {
      "type": "modify",
      "old_id": "6289471356468d3f1c66570fcee4543f1c11bb2a",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/GlobalOptimization/Passes.td",
      "new_id": "0c807b535d4a08d20160a257ab2e3194dfe3780f",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/GlobalOptimization/Passes.td"
    },
    {
      "type": "modify",
      "old_id": "ee4b4aa330d45eb25b634f538f09b4a2b9feb1ae",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/GlobalOptimization/test/BUILD.bazel",
      "new_id": "31107d55870d90dada5d1dbf58ede428f5c93ede",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/GlobalOptimization/test/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "377372929415fb4888005a699612ebcb830d1774",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/GlobalOptimization/test/CMakeLists.txt",
      "new_id": "8c5654a831d8dd0312d6e305fa8d4afc70658315",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/GlobalOptimization/test/CMakeLists.txt"
    },
    {
      "type": "delete",
      "old_id": "33a7a144894c0cbeb60f3638e69c9c9b97db07af",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/GlobalOptimization/test/conv2d_to_img2col.mlir",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "58430e0220926907ffef35d72f7f2591af8c6bed",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/GlobalOptimization/test/conv_to_im2col.mlir"
    }
  ]
}
