)]}'
{
  "commit": "810db8e1bc6d001a5aa76584b38b3a6cb900ee24",
  "tree": "ee3d0b633caf2890f4859a9e55ed088a10a90060",
  "parents": [
    "a73ba39f4d814b4c27f024e969afda5cd0ac5481"
  ],
  "author": {
    "name": "Eylon Eliyahu Krause",
    "email": "64223519+EylonKrause@users.noreply.github.com",
    "time": "Thu Jul 16 18:30:37 2026 +0300"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Thu Jul 16 17:30:37 2026 +0200"
  },
  "message": "[Stream] Bounds-check tied operand index in verifyTiedOperandEncodings (#24686)\n\n## Summary\nBounds-check the tied-operand index in `verifyTiedOperandEncodings` so\nan out-of-range `tied_operands` value is reported as a verification\nerror instead of indexing the operand-encodings array out of bounds.\n\n## Context\n`verifyTiedOperandEncodings` (used by tied stream ops such as\n`stream.tensor.dispatch`) walks each result\u0027s tied operand and compares\n`operandEncodings[operandIndex]` against the result encoding.\n`operandIndex` is derived from the op\u0027s `tied_operands` attribute.\n\n## Problem\nThe `tied_operands` value is not range-checked for this op before the\nencoding lookup, so an index beyond the operand count reads\n`operandEncodings` out of bounds. Such an index is reachable through the\ngeneric assembly form (which bypasses the op\u0027s custom-format checks) —\nfor example, a dispatch with a single operand encoding but a\n`tied_operands` entry pointing at operand 5:\n```mlir\n%0 \u003d \"stream.tensor.dispatch\"(...) {\n  tied_operands \u003d array\u003ci64: 5\u003e, ...\n} : (...) -\u003e ...\n```\n`operandIndex` (5) then indexes the single-element `operandEncodings`\nout of bounds during verification.\n\n## Fix\nIf `operandIndex \u003e\u003d operandEncodings.size()`, emit a verification error\n(`tied operand index N is out of range of the M operand encoding(s)`)\ninstead of indexing out of bounds.\n\n---\nDisclosure: this contribution was authored with an AI coding assistant\n(Claude) and reviewed before submission.\n\n---------\n\nSigned-off-by: Eylon Krause \u003ceylon1909@gmail.com\u003e",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "9901fc896e80d604b802d54490c82ff8b0d31d84",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Dialect/Stream/IR/StreamOps.cpp",
      "new_id": "716cc37b8ac563843c732c388815a65ecae1b1e4",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/Stream/IR/StreamOps.cpp"
    }
  ]
}
