)]}'
{
  "commit": "388e65c2fd0f1e6cf362b2d73c87cac1e3629bdf",
  "tree": "82997d1c001c1deb5fe5d508ade6fb24f6b733ac",
  "parents": [
    "3fd498c00d0dec30c179864178715753f536a599"
  ],
  "author": {
    "name": "ziereis",
    "email": "44057120+ziereis@users.noreply.github.com",
    "time": "Mon Oct 12 11:54:46 2026 +0200"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Mon Oct 12 09:54:46 2026 +0000"
  },
  "message": "[GlobalOptimization] Propagate affine QDQ through tensor operations (#24906)\n\nThe integer contraction rewrite from #24902 needs dequantize_affine to\nbe the direct producer of a contraction operand. This PR adds\nPropagateAffineQuantization, which moves the tensor ops in between onto\nthe quantized side, where they also operate on narrower data. It runs\nright before each integer QDQ rewrite.\n\nIt perform the following transformations:\n\n```\nquantize(collapse_shape(x))   -\u003e  collapse_shape(quantize(x))\nexpand_shape(dequantize(q))   -\u003e  dequantize(expand_shape(q))\npad(dequantize(q), 0.0)       -\u003e  dequantize(pad(q, zp))\ntranspose(dequantize(q))      -\u003e  dequantize(q) with its output map permuted\n```\n\nPart of #24862\n\nAssisted By: 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": "4801a5f445ca3d1661b94fa8d86506f81ca32dd7",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Dialect/LinalgExt/Transforms/ReshapeFusion.cpp",
      "new_id": "0631b0afe1e1bb135d711f68a92b5010fdaccf78",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/LinalgExt/Transforms/ReshapeFusion.cpp"
    },
    {
      "type": "modify",
      "old_id": "f36e8c926aeab48b588c39f2d2dfd81047be7921",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Dialect/LinalgExt/Transforms/TestReshapeFusion.cpp",
      "new_id": "d8c7093314bceee80cb8e693f0baa3bcd87876d8",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/LinalgExt/Transforms/TestReshapeFusion.cpp"
    },
    {
      "type": "modify",
      "old_id": "af6c675db1224d28df89f1beb2260c38c121c9bb",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Dialect/LinalgExt/Transforms/Transforms.h",
      "new_id": "f11fbb590b3d2593140289bc098beadab4f352e8",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/LinalgExt/Transforms/Transforms.h"
    },
    {
      "type": "modify",
      "old_id": "908e100ab7ff28489d1e8c992968820a64fd9b30",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Dialect/LinalgExt/Transforms/test/reshape_fusion.mlir",
      "new_id": "0b10e7fcd5edbe1ebf0be5f0bc7f8b1109c749cc",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/LinalgExt/Transforms/test/reshape_fusion.mlir"
    },
    {
      "type": "modify",
      "old_id": "88a024c5906fe6f8ee39965d159bb3114cbc5727",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/DispatchCreation/test/fold_unit_dims.mlir",
      "new_id": "a93d4a1cab3eb903d7a5eaa5bfd8acee0c42aafe",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/DispatchCreation/test/fold_unit_dims.mlir"
    },
    {
      "type": "modify",
      "old_id": "f15a9fc2777c18355d6a2c273516ad52692bbc3d",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/GlobalOptimization/BUILD.bazel",
      "new_id": "570c141b575308f2adeece3b40095c1ff180da6a",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/GlobalOptimization/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "068698a2747542502b08749a95ef50c2da3f2e6e",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/GlobalOptimization/CMakeLists.txt",
      "new_id": "d5387a4364f94587c985161770a5979735215df1",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/GlobalOptimization/CMakeLists.txt"
    },
    {
      "type": "modify",
      "old_id": "1b556bc9b6457e3f47ced0e2fca7302dc80a798d",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/GlobalOptimization/Passes.cpp",
      "new_id": "bd99e43bc5d0f560b3e0b57b4965305a0d55e8b1",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/GlobalOptimization/Passes.cpp"
    },
    {
      "type": "modify",
      "old_id": "448cf65ab4a2e85ecf404bbc3de3a91fbca260b3",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/GlobalOptimization/Passes.td",
      "new_id": "6289471356468d3f1c66570fcee4543f1c11bb2a",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/GlobalOptimization/Passes.td"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e27f88f307c5829001219f89c6db501050873451",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/GlobalOptimization/PropagateAffineQuantization.cpp"
    },
    {
      "type": "modify",
      "old_id": "2541af89981997ae35f704f1cb4f732fe1ae824e",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/GlobalOptimization/PropagateLinalgTranspose.cpp",
      "new_id": "a66947a599f2d8c43203c38ab19e0d134c44435a",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/GlobalOptimization/PropagateLinalgTranspose.cpp"
    },
    {
      "type": "modify",
      "old_id": "b6c6af9100405bfee163a3ce748c14cce723867d",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/GlobalOptimization/TransposePropagationPatterns.cpp",
      "new_id": "f52341b6e14ae48ef488e24e06176db9ca2a3d0b",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/GlobalOptimization/TransposePropagationPatterns.cpp"
    },
    {
      "type": "modify",
      "old_id": "abfd6567c92a6a802f2d1c469303478f751b017d",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/GlobalOptimization/TransposePropagationPatterns.h",
      "new_id": "826c775a8c8a4b851a853e8aa0e82d2a517e2d31",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/GlobalOptimization/TransposePropagationPatterns.h"
    },
    {
      "type": "modify",
      "old_id": "cf1a0a03c1507bdbaf1a19988efbb2e6e1b09100",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/GlobalOptimization/test/BUILD.bazel",
      "new_id": "ee4b4aa330d45eb25b634f538f09b4a2b9feb1ae",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/GlobalOptimization/test/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "de43a37d1da18a5e53e670c3d7477ebd8cca6f94",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/GlobalOptimization/test/CMakeLists.txt",
      "new_id": "377372929415fb4888005a699612ebcb830d1774",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/GlobalOptimization/test/CMakeLists.txt"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "b680ef3fc4214cb3bae4934aa45c297f244ea5c7",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/GlobalOptimization/test/propagate_affine_quantization.mlir"
    },
    {
      "type": "modify",
      "old_id": "ab0d15e0f99a6787d5d8a5618e61812faefceff0",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/GlobalOptimization/test/propagate_linalg_transpose.mlir",
      "new_id": "3279af8f22176fb22bcf030b65c5eaf83969cb99",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/GlobalOptimization/test/propagate_linalg_transpose.mlir"
    }
  ]
}
