)]}'
{
  "log": [
    {
      "commit": "f8c2ac92efeba1d0cea8fe7b58eaf8f4461e5a6b",
      "tree": "7d4883768425d38dfd145553ef273cd40e47ac40",
      "parents": [
        "34d41bc13ec7cbd1069d314afef266e845d407b4"
      ],
      "author": {
        "name": "Ege Beysel",
        "email": "beysel@roofline.ai",
        "time": "Fri Sep 11 15:43:59 2026 +0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Sep 11 15:43:59 2026 +0300"
      },
      "message": "[LLVMCPU] thread inner tile alignment hint for vector-level tiling (#24698)\n\nIntroduces a helper function that will generate the inner tile alignment hint control function introduced in https://github.com/llvm/llvm-project/pull/204007.\n\nThe control function is passed to the SCF tiling driver and is invoked per-op before tiling/fusion. It merely forwards the inner tile alignment hints set during tile size selection, added in the stack of https://github.com/iree-org/iree/pull/24806.\n\nAlso utilizes this in the `TileAndFuseProducerConsumer` pass.\n\nAssisted-by: Claude Code\n\n---------\n\nSigned-off-by: Ege Beysel \u003cbeyselege@gmail.com\u003e"
    },
    {
      "commit": "34d41bc13ec7cbd1069d314afef266e845d407b4",
      "tree": "f0076251d896b5a3a02dfcae4609d3ff58d14ba0",
      "parents": [
        "0df50f9a8e40ab1878479124b952f45d9f8c0650"
      ],
      "author": {
        "name": "Jakub Kuderski",
        "email": "jakub@nod-labs.com",
        "time": "Fri Sep 11 08:37:14 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Sep 11 08:37:14 2026 -0400"
      },
      "message": "[ROCM] Add rocjitsu e2e validation (#24913)\n\nI want to enable e2e testing across all recent amdgpu / rcom targets via\nrocjitsu, an amdgpu simulator, so that anyone with an x86 machine can\nrun those tests regardless of the local GPU or lack thereof.\n\nAdd a CPU-hosted ROCm e2e test helper for gfx942, gfx950, gfx1100,\ngfx1201, and gfx1250. Reconfigure a regular IREE build and rebuild\niree-test-deps for each target, then run HIP tests with the simulator\nfrom a pinned TheRock nightly.\n\nRun each test in a fresh Mirage session with a watchdog and per-test\nJUnit output. Propagate configure/build failures so stale artifacts\ncannot produce a successful run.\n\nMake the default native-test timeout configurable and label tests that\nare too expensive to simulate. Keep those tests enabled for hardware\nruns. Exclude TopK v2 from ROCm tests because its missing thread\ndistribution causes overlapping output writes on all five targets.\n\nUse the target\u0027s preferred subgroup size when an executable does not\nspecify one, so gfx1250 defaults to wave32. Add regression coverage for\nthe default and explicit subgroup sizes.\n\nAssisted-by: codex (gpt-6-astra)"
    },
    {
      "commit": "0df50f9a8e40ab1878479124b952f45d9f8c0650",
      "tree": "9edbe91607d5128aef0f806bbb8d7741d1d5b98c",
      "parents": [
        "d7e6e3925d6a57787ec3bd9b03545d2516a7e60d"
      ],
      "author": {
        "name": "Ege Beysel",
        "email": "beysel@roofline.ai",
        "time": "Fri Sep 11 13:38:17 2026 +0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Sep 11 13:38:17 2026 +0300"
      },
      "message": "[LLVMCPU] `vlen` attribute for DataTiledMMAAttr for RISCV + FP16 port (#24858)\n\nFor RISC-V, the vector length per SIMD register is not fixed and is configurable. Therefore, the tile shape of an intrinsic and the total SIMD register bit budget is also parameterized by the vector length. In order for all of these vector length configurations to share a single intrinsic and not duplicate it per-configurable-vlen, we add a `vlen` parameter to the `DataTiledMMAAttr`, which in combination with the intrinsic itself gives the exact shape information, as well as the register budget. These are derived from the `+zvl*b` flags.\n\nFurthermore, add materialization for data-tiled f16 matmul encodings to `iree_codegen.inner_tiled` on RISC-V V targets with Zvfh, as the first consumer of the `vlen` attribute parameter. Lowering to LLVM intrinsics\nis not included.\n\nTowards https://github.com/iree-org/iree/issues/24311\n\nAssisted-by: Claude Code\n\n---------\n\nSigned-off-by: Ege Beysel \u003cbeyselege@gmail.com\u003e"
    },
    {
      "commit": "d7e6e3925d6a57787ec3bd9b03545d2516a7e60d",
      "tree": "c20b3c9fdd097c2540bcd81c8ec2d40a5b969d79",
      "parents": [
        "e609aa902fede2a70f0a0dd61f0f176e55e271b8"
      ],
      "author": {
        "name": "juanigp",
        "email": "juanigpisula@gmail.com",
        "time": "Fri Sep 11 10:57:39 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Sep 11 10:57:39 2026 +0200"
      },
      "message": "Integrate LLVM to llvm/llvm-project@6cce5bca3b90 (#24912)\n\n* Add prop-dict to IREE operations for strict property assembly formats\nintroduced by llvm/llvm-project#196269 and enabled for Transform by\nllvm/llvm-project#217290.\n* Preserve StableHLO\u0027s bare enum syntax after llvm/llvm-project#220608\nchanged EnumAttr\u0027s default assembly format to angle brackets.\n* Replace deprecated setName() calls with setSymbolName() following\nllvm/llvm-project#218921.\n* Cherry-pick e45b19d32e7c (llvm/llvm-project#222395) to fix the missing\nRemarkStreamer Bazel dependency exposed by llvm/llvm-project#222300.\n\nAssisted by Codex.\n\n---------\n\nSigned-off-by: Juan I. Pisula \u003cpisula@roofline.ai\u003e"
    },
    {
      "commit": "e609aa902fede2a70f0a0dd61f0f176e55e271b8",
      "tree": "f899e78b400f99bf5206a6360bfa46ef1d324759",
      "parents": [
        "2e978ebfec686692c67ce75ade42c54dbac67e87"
      ],
      "author": {
        "name": "Alex Denisov",
        "email": "denisov@roofline.ai",
        "time": "Fri Sep 11 10:18:09 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Sep 11 11:18:09 2026 +0300"
      },
      "message": "[DispatchCreation] Add an option to block matmul producers from being fused in the same dispatch region (#24899)\n\nWhen targeting CPU with data tiling and ukernels enabled (`mmt4d`\nspecifically), some producers materialize on the stack when fused\ntogether with the consuming matmuls, which may lead to stack oveflow.\n\nThis PR adds a workaround/flag which would block fusion of such ops.\n\nThe flag is on by default, no performance regressions observed.\n\n### Alternatives considered\n\nAt the level of dispatch creation it is not possible to precisely\ncalculate whether the producer would overflow the stack or not since\nthere is not enough information at that point. It is possible to\nimplement a crude approximation, but it heavily depends on the exact\ntiling and vectorizing details lower on the stack.\n\nAssisted-by: Claude Code\nSigned-off-by: Alex Denisov \u003cdenisov@roofline.ai\u003e\n\n---------\n\nSigned-off-by: Alex Denisov \u003cdenisov@roofline.ai\u003e"
    },
    {
      "commit": "2e978ebfec686692c67ce75ade42c54dbac67e87",
      "tree": "687c4d03391a86ebc601caebb50f745122c39f6f",
      "parents": [
        "3df24bfc7983b026da35ac5a0a1258984158feee"
      ],
      "author": {
        "name": "Ege Beysel",
        "email": "beysel@roofline.ai",
        "time": "Thu Sep 10 16:17:14 2026 +0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Sep 10 13:17:14 2026 +0000"
      },
      "message": "[DispatchCreation] hoist entire chains of set_encoding ops (#24904)\n\nCapture the entire producer chains of `set_encoding` ops, and hoist them\nif there is no unhoistable op in the source backward slice. The metadata\nbackward slice, i.e. the backward slice from the `encoding_dims` can\nalways be hoisted.\n\nFixes #24876.\n\nAssisted-by: Claude Code\n\n---------\n\nSigned-off-by: Ege Beysel \u003cbeyselege@gmail.com\u003e"
    },
    {
      "commit": "3df24bfc7983b026da35ac5a0a1258984158feee",
      "tree": "b40b5e310ee9ed23c6d37450bd579463c355e9f8",
      "parents": [
        "473bc4018791491dfa3eabf0f214eff365accd47"
      ],
      "author": {
        "name": "Ha-Eyz",
        "email": "eyilmez@roofline.ai",
        "time": "Thu Sep 10 13:09:50 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Sep 10 13:09:50 2026 +0200"
      },
      "message": "[VMVX] Added an implementation of fpowi in vm for vmvx backend (#24608)\n\nWe have found some models, which failed to compile to vmvx, due to a\nmissing conversion for math.fpowi.\n\nThis PR includes an implementation for this op, as well as an addition\nof VM_ComplexArithmeticOp class, since fpowi has a float and int input.\nThis case was not covered by the VM_BinaryArithmeticOp class. However,\nsince we only found fpowi in models, which utilize a i64 const for the\nexponent, the op was implemented in such a way that it only accepts i64\nas an exponent. Due to this, it was not necessary to implement a\nComplexArithmeticOpConversion in\n[MathToVM/Patterns.cpp](https://github.com/iree-org/iree/blob/main/compiler/src/iree/compiler/Dialect/VM/Conversion/MathToVM/Patterns.cpp).\n\nI also expanded the tests in arithmetic_ops.mlir, to include a check for\nvm.fpowi.f32.\n\nSigned-off-by: Hakan Eyilmez\n[eyilmez@roofline.ai](mailto:eyilmez@roofline.ai)\n\n---------\n\nSigned-off-by: Hakan Eyilmez \u003ceyilmez@roofline.ai\u003e"
    },
    {
      "commit": "473bc4018791491dfa3eabf0f214eff365accd47",
      "tree": "6451032d7a7581311dc99c3fd1c0c9c11017fafe",
      "parents": [
        "ce36167c3be514dd165a3ecff2d377cfa8eca0c9"
      ],
      "author": {
        "name": "ziereis",
        "email": "44057120+ziereis@users.noreply.github.com",
        "time": "Thu Sep 10 09:43:34 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Sep 10 09:43:34 2026 +0200"
      },
      "message": "[ARM64] Add base bf16 mmt4d tiles for cores without the BF16 extension (#24900)\n\nOn Arm64 cores without the Armv8.6 BF16 extension, bf16 `mmt4d`\ncurrently falls back to the scalar generic kernel. All existing Arm64\nbf16 tiles require the `_bf16` feature:\n\n```text\nIREE_UK_MMT4D_TILE(arm_64, bf16, bf16, f32,  1..8, 8, 4, _bf16)\nIREE_UK_MMT4D_TILE(arm_64, bf16, bf16, bf16, 1..8, 8, 4, _bf16)\n```\n\nThis PR adds base Arm64 bf16 tiles for cores without that extension.\n\nThe new tiles widen bf16 operands to f32 using NEON, accumulate with\nFMLA, and narrow back to bf16 on store when required. The same\nimplementation serves both bf16 and f32 accumulator/output variants.\n\nNo compiler changes are required: `enumerateMatmulTileArm64` already\nselects `8x8x1` tiles for bf16 when the BF16 extension is unavailable.\n\n## Performance\n\ni.MX95 (Cortex-A55, six cores), 512x512x512, median of three runs:\n\n| case | before | after | speedup |\n|---|---:|---:|---:|\n| bf16 -\u003e bf16 | 216 ms | 7.64 ms | 28x |\n| bf16 -\u003e f32 | 216 ms | 7.53 ms | 29x |\n| f32 -\u003e f32 | — | 8.22 ms | — |\n\nFor narrow M, using Mx512 by 512x512:\n\n| M | before | after | speedup |\n|---|---:|---:|---:|\n| 1 | 1.52 ms | 0.879 ms | 1.7x |\n| 2 | 2.31 ms | 0.874 ms | 2.6x |\n| 4 | 3.37 ms | 0.887 ms | 3.8x |\n\n## Correctness\n\nTested on device with `iree-run-module` for M\u003d1,2,4,8 for bf16 -\u003e bf16\nand M\u003d8 for bf16 -\u003e f32.\n\nThe registered tiles match the generic implementation for normal inputs.\nThe widening behavior for bf16 subnormals and NaN payloads follows the\nnative NEON conversion behavior and can differ from the scalar helper,\nsimilarly to the existing Arm64 f16 tiles.\n\nThe bf16 -\u003e bf16 path accumulates in f32 and rounds once when storing,\nmatching the behavior of the existing Arm64 f16 tile.\n\nAssisted by: Claude\n\n---------\n\nSigned-off-by: Thomas Ziereis \u003cziereis@roofline.ai\u003e\nCo-authored-by: Claude Opus 5 (1M context) \u003cnoreply@anthropic.com\u003e"
    },
    {
      "commit": "ce36167c3be514dd165a3ecff2d377cfa8eca0c9",
      "tree": "8236ec13319353c6e10c2a1c8a0d5f5ed1e403a0",
      "parents": [
        "cdf4e1fbb35cd5e7853e4449e2271fa81f14232b"
      ],
      "author": {
        "name": "Zohaib",
        "email": "98155885+syedzohaibshah@users.noreply.github.com",
        "time": "Mon Sep 07 00:27:27 2026 +0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Sep 06 19:27:27 2026 +0000"
      },
      "message": "[LIT] Migrate compiler lit config to the internal shell (#24883)\n\nPart of #24607, following #24794 and #24810.\n\nSame change as the last two: drops execute_external /\nforce_execute_external from compiler/lit.cfg.py. No RUN lines needed\ntouching.\n\nAssisted-by: Claude Code\n\nSigned-off-by: Zohaib Shah \u003czohaib.shah.2047@gmail.com\u003e"
    },
    {
      "commit": "cdf4e1fbb35cd5e7853e4449e2271fa81f14232b",
      "tree": "9cfd36ea3fd903f7f382327788db8a7e74eccb7e",
      "parents": [
        "0a03b4e8cb93c0a2e59896b5ab9b4d6be228f20a"
      ],
      "author": {
        "name": "Zmicier Prybysh",
        "email": "zprybysh@baylibre.com",
        "time": "Fri Sep 04 11:54:00 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Sep 04 09:54:00 2026 +0000"
      },
      "message": "[Codegen] Use overflow-checked math in the CPU and GPU alloc size checks (#24745)\n\n`checkStackAllocationSize` accumulates the allocation size in a plain\nint64_t. Allocas sized by the upper bound of an unbounded dynamic\ndimension (the util.assume.int default, 2^53-1) overflow it, the wrapped\nvalue passes the limit check and the alloca reaches ConvertToLLVM, where\nits element count folds to llvm.mlir.poison and the program loads and\nstores through a garbage pointer at runtime.\n\nThe reproduction was reduced from the quantized ResNet downsample\nconstruct: an ONNX model with a dynamic batch doing DequantizeLinear -\u003e\n1x1 stride-2 Conv compiles without diagnostics and returns completely\nwrong results.\n\nMove `getStaticShapeSizeInBits` to Codegen/Utils (taken from\nhttps://github.com/iree-org/iree/pull/24684) and use it from both\nLLVMCPUCheckIRBeforeLLVMConversion and GPUCheckResourceUsage. Callers\nsupply the leaf element bit width,\nwhich lets the GPU check keep its index-bitwidth handling and the\nrecursion into shaped element types. On the CPU side the remaining\nscalar steps are overflow-checked in place with `llvm::MulOverflow` /\n`llvm::AddOverflow`. The pre-existing\n`checkedAdd`/`checkedMul`/`checkedAlignTo` wrappers in\nLLVMCPUAssignWorkgroupLocalMemory.cpp are replaced with\n`llvm::MulOverflow` / `llvm::AddOverflow`.\n\n---------\n\nSigned-off-by: Zmicier Prybysh \u003czprybysh@baylibre.com\u003e"
    },
    {
      "commit": "0a03b4e8cb93c0a2e59896b5ab9b4d6be228f20a",
      "tree": "0ac5be66b3f99ff070f3a7d079b72da6bc0bf99a",
      "parents": [
        "4a2b2d36d7f5c6b279f8e163e15bb0f532bb69f0"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Fri Sep 04 09:42:14 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Sep 04 09:42:14 2026 +0200"
      },
      "message": "Bump mkdocs-material from 9.7.2 to 9.7.7 in /docs/website (#24878)\n\nBumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material)\nfrom 9.7.2 to 9.7.7.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca\nhref\u003d\"https://github.com/squidfunk/mkdocs-material/releases\"\u003emkdocs-material\u0027s\nreleases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003emkdocs-material-9.7.7\u003c/h2\u003e\n\u003cblockquote\u003e\n\u003cp\u003e[!WARNING]\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eMaterial for MkDocs is approaching end of life\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eMaterial for MkDocs is scheduled to reach end of life on November 5,\n2026. Until then, maintenance is limited to critical bug fixes and\nsecurity updates. After this date, the project will remain available on\nPyPI and GitHub, but no further maintenance is planned except in\nexceptional circumstances.\u003c/p\u003e\n\u003cp\u003eFor users looking for a long-term, actively developed successor,\nwe\u0027re building \u003ca href\u003d\"https://zensical.org\"\u003eZensical\u003c/a\u003e – a\nnext-generation static site generator designed for technical\ndocumentation. If you\u0027re planning a new documentation project or\nevaluating your long-term options, we invite you to take a look.\u003c/p\u003e\n\u003cp\u003eOrganizations requiring support beyond this date are welcome to get\nin touch to discuss available options.\u003c/p\u003e\n\u003cp\u003e\u003ca\nhref\u003d\"https://squidfunk.github.io/mkdocs-material/blog/2025/11/05/zensical/\"\u003eRead\nthe full announcement on our blog\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a DOM-based XSS vulnerability in search suggestions\u003c/li\u003e\n\u003c/ul\u003e\n\u003cblockquote\u003e\n\u003cp\u003eThanks to \u003ca href\u003d\"https://github.com/p\"\u003e\u003ccode\u003e@​p\u003c/code\u003e\u003c/a\u003e- for\nresponsibly reporting this issue.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2\u003emkdocs-material-9.7.6\u003c/h2\u003e\n\u003cblockquote\u003e\n\u003cp\u003e[!WARNING]\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eMaterial for MkDocs is in maintenance mode\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eGoing forward, the Material for MkDocs team focuses on \u003ca\nhref\u003d\"https://zensical.org\"\u003eZensical\u003c/a\u003e, a next-gen static site\ngenerator built from first principles. We will provide critical bug\nfixes and security updates for Material for MkDocs until November\n2026.\u003c/p\u003e\n\u003cp\u003e\u003ca\nhref\u003d\"https://squidfunk.github.io/mkdocs-material/blog/2025/11/05/zensical/\"\u003eRead\nthe full announcement on our blog\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAutomatically disable MkDocs 2.0 warning for forks of MkDocs\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003emkdocs-material-9.7.5\u003c/h2\u003e\n\u003cblockquote\u003e\n\u003cp\u003e[!WARNING]\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eMaterial for MkDocs is in maintenance mode\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eGoing forward, the Material for MkDocs team focuses on \u003ca\nhref\u003d\"https://zensical.org\"\u003eZensical\u003c/a\u003e, a next-gen static site\ngenerator built from first principles. We will provide critical bug\nfixes and security updates for Material for MkDocs until November\n2026.\u003c/p\u003e\n\u003cp\u003e\u003ca\nhref\u003d\"https://squidfunk.github.io/mkdocs-material/blog/2025/11/05/zensical/\"\u003eRead\nthe full announcement on our blog\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca\nhref\u003d\"https://github.com/squidfunk/mkdocs-material/blob/master/CHANGELOG\"\u003emkdocs-material\u0027s\nchangelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003emkdocs-material-9.7.7 (2026-07-17)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed DOM-based XSS vulnerability in search suggestions\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003emkdocs-material-9.7.6 (2026-03-19)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAutomatically disable MkDocs 2.0 warning for forks of MkDocs\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003emkdocs-material-9.7.5 (2026-03-10)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eLimited version range of mkdocs to \u0026lt;2\u003c/li\u003e\n\u003cli\u003eUpdated MkDocs 2.0 incompatibility warning (clarify relation with\nMkDocs)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003emkdocs-material-9.7.4 (2026-03-03)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eHardened social cards plugin by switching to sandboxed\nenvironment\u003c/li\u003e\n\u003cli\u003eUpdated MkDocs 2.0 incompatibility warning\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003emkdocs-material-9.7.3 (2026-02-24)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ca\nhref\u003d\"https://redirect.github.com/squidfunk/mkdocs-material/issues/8567\"\u003e#8567\u003c/a\u003e:\nPrint MkDocs 2.0 incompatibility warning to stderr\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003emkdocs-material-9.7.2 (2026-02-18)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eOpened up version ranges of optional dependencies for\nforward-compatibility\u003c/li\u003e\n\u003cli\u003eAdded warning to \u0027mkdocs build\u0027 about impending MkDocs 2.0\nincompatibility\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003emkdocs-material-9.7.1 (2025-12-18)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated requests to 2.30+ to mitigate CVE in urllib\u003c/li\u003e\n\u003cli\u003eFixed privacy plugin not picking up protocol-relative URLs\u003c/li\u003e\n\u003cli\u003eFixed \u003ca\nhref\u003d\"https://redirect.github.com/squidfunk/mkdocs-material/issues/8542\"\u003e#8542\u003c/a\u003e:\nfalse positives and negatives captured in privacy plugin\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003emkdocs-material-9.7.0 (2025-11-11)\u003c/p\u003e\n\u003cp\u003e⚠️ Material for MkDocs is now in maintenance mode\u003c/p\u003e\n\u003cp\u003eThis is the last release of Material for MkDocs that will receive new\nfeatures.\nGoing forward, the Material for MkDocs team focuses on Zensical, a\nnext-gen\nstatic site generator built from first principles. We will provide\ncritical\nbug fixes and security updates for Material for MkDocs for 12 months at\nleast.\u003c/p\u003e\n\u003cp\u003eRead the full announcement on our blog:\n\u003ca\nhref\u003d\"https://squidfunk.github.io/mkdocs-material/blog/2025/11/05/zensical/\"\u003ehttps://squidfunk.github.io/mkdocs-material/blog/2025/11/05/zensical/\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis release includes all features that were previously exclusive to\nthe\nInsiders edition. These features are now freely available to\neveryone.\u003c/p\u003e\n\u003cp\u003eNote on deprecated plugins: The projects and typeset plugins are\nincluded in\nthis release, but must be considered deprecated. Both plugins proved\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/squidfunk/mkdocs-material/commit/b3e6dd886a974aa8200759ecfd7db28c598a2894\"\u003e\u003ccode\u003eb3e6dd8\u003c/code\u003e\u003c/a\u003e\nPrepare 9.7.7 release\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/squidfunk/mkdocs-material/commit/52fb6be8aafe326419f34dc94d3211e7bbfbfb25\"\u003e\u003ccode\u003e52fb6be\u003c/code\u003e\u003c/a\u003e\nMerge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/squidfunk/mkdocs-material/commit/901e6335cc80b0f12e46a1e34bd85e983dd78a6e\"\u003e\u003ccode\u003e901e633\u003c/code\u003e\u003c/a\u003e\nAdded \u003ccode\u003eSECURITY.md\u003c/code\u003e with EOL notice\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/squidfunk/mkdocs-material/commit/5b36f2ac499a45905e246bc66bbee2858ef6556f\"\u003e\u003ccode\u003e5b36f2a\u003c/code\u003e\u003c/a\u003e\nBump js-yaml from 4.1.1 to 4.2.0 (\u003ca\nhref\u003d\"https://redirect.github.com/squidfunk/mkdocs-material/issues/8598\"\u003e#8598\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/squidfunk/mkdocs-material/commit/2d11e7bc92c59b86d6ac0da2e38044fb4befa6e0\"\u003e\u003ccode\u003e2d11e7b\u003c/code\u003e\u003c/a\u003e\nBump form-data from 3.0.4 to 3.0.5 (\u003ca\nhref\u003d\"https://redirect.github.com/squidfunk/mkdocs-material/issues/8597\"\u003e#8597\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/squidfunk/mkdocs-material/commit/ae05a534a8c8e1c58eb6aa55d460d309bcfce22b\"\u003e\u003ccode\u003eae05a53\u003c/code\u003e\u003c/a\u003e\nBump esbuild from 0.27.2 to 0.28.1 (\u003ca\nhref\u003d\"https://redirect.github.com/squidfunk/mkdocs-material/issues/8596\"\u003e#8596\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/squidfunk/mkdocs-material/commit/434af93166e5b90b78bba1295ca5a140fc67d0bc\"\u003e\u003ccode\u003e434af93\u003c/code\u003e\u003c/a\u003e\nBump shell-quote from 1.7.3 to 1.8.4 (\u003ca\nhref\u003d\"https://redirect.github.com/squidfunk/mkdocs-material/issues/8593\"\u003e#8593\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/squidfunk/mkdocs-material/commit/4447cdadcbe8bc82570e9f1ae2b970f461b03b68\"\u003e\u003ccode\u003e4447cda\u003c/code\u003e\u003c/a\u003e\nDocumentation (\u003ca\nhref\u003d\"https://redirect.github.com/squidfunk/mkdocs-material/issues/8590\"\u003e#8590\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/squidfunk/mkdocs-material/commit/8f8d551c9c5296dfc2a5ede35047bfb491d66bc9\"\u003e\u003ccode\u003e8f8d551\u003c/code\u003e\u003c/a\u003e\nUpdated copyright year (\u003ca\nhref\u003d\"https://redirect.github.com/squidfunk/mkdocs-material/issues/8588\"\u003e#8588\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/squidfunk/mkdocs-material/commit/08d8514d491782b4ac46673bcfdedb2f6fc85f3d\"\u003e\u003ccode\u003e08d8514\u003c/code\u003e\u003c/a\u003e\nBump fast-uri from 3.0.3 to 3.1.2 (\u003ca\nhref\u003d\"https://redirect.github.com/squidfunk/mkdocs-material/issues/8587\"\u003e#8587\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca\nhref\u003d\"https://github.com/squidfunk/mkdocs-material/compare/9.7.2...9.7.7\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility\nscore](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name\u003dmkdocs-material\u0026package-manager\u003dpip\u0026previous-version\u003d9.7.2\u0026new-version\u003d9.7.7)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don\u0027t\nalter it yourself. You can also trigger a rebase manually by commenting\n`@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits\nthat have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all\nof the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop\nDependabot creating any more for this major version (unless you reopen\nthe PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop\nDependabot creating any more for this minor version (unless you reopen\nthe PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop\nDependabot creating any more for this dependency (unless you reopen the\nPR or upgrade to it yourself)\nYou can disable automated security fix PRs for this repo from the\n[Security Alerts page](https://github.com/iree-org/iree/network/alerts).\n\n\u003c/details\u003e\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "4a2b2d36d7f5c6b279f8e163e15bb0f532bb69f0",
      "tree": "a98fd0ec9d2a47541d26859dc6fdd40e861f15be",
      "parents": [
        "679777e9bb8df4a60fc3fbe3392d6dcd291eb817"
      ],
      "author": {
        "name": "ziereis",
        "email": "44057120+ziereis@users.noreply.github.com",
        "time": "Thu Sep 03 16:27:19 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Sep 03 14:27:19 2026 +0000"
      },
      "message": "[Torch] handle duplicate symbolic shape bindings (#24875)\n\ntorch might emit multiple bindings for a single value, this breaks a\ninvariant the surrounding code expects which makes this pass error out.\n\nThis fixes this by only accepting one binding per value and discarding\nthe rest.\n\nAssisted by Claude\n\nSigned-off-by: default \u003cziereis@roofline.ai\u003e"
    },
    {
      "commit": "679777e9bb8df4a60fc3fbe3392d6dcd291eb817",
      "tree": "00e0fc4da4b7bc473743cab2a8c89ec1ce8dae5a",
      "parents": [
        "9d485fc23e8ddec4cdf24923ce2e71a47fce8915"
      ],
      "author": {
        "name": "L-roro",
        "email": "115032777+L-roro@users.noreply.github.com",
        "time": "Thu Sep 03 15:01:37 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Sep 03 15:01:37 2026 +0200"
      },
      "message": "Integrates/llvm 20260902 (#24877)\n\nBumps llvm-project from 0ab4db419396 to d1a9d89827aa.\n\nLLVM staging branch:\n\nhttps://github.com/iree-org/llvm-project/tree/sm-iree-integrates/llvm-20260902\n\nFollowed the steps under [Integrating newer LLVM into\nIREE](https://iree.dev/developers/integrating-llvm/#applying-fixes).\n\nAdded a second commit with minor nitpicks on the documentation.\n\n---------\n\nSigned-off-by: L-roro \u003crodriguez@roofline.ai\u003e"
    },
    {
      "commit": "9d485fc23e8ddec4cdf24923ce2e71a47fce8915",
      "tree": "7d9fcd89aacca7f0b4d74d5b4b5596d26bf82a82",
      "parents": [
        "0492b214495cda17591a865027fb331a32da1fe9"
      ],
      "author": {
        "name": "Pooja Hemashekar",
        "email": "hemashekar@roofline.ai",
        "time": "Wed Sep 02 14:45:26 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Sep 02 14:45:26 2026 +0200"
      },
      "message": "[CI] Add bare-metal RISCV 64 sample and QEMU smoke test (#24844)\n\nAdds `samples/baremetal_riscv64`, a single-op inference runner for\nbare-metal RISCV 64 under `qemu-system-riscv64` (`-machine virt`, no OS,\nsemihosted I/O), together with a pkgci smoke test.\n\nThe sample covers two execution paths:\n- `llvm-cpu` using `inline-dynamic` and the embedded-ELF loader.\n- `vmvx-inline` using `inline-static`.\n\nThe runner uses the inline HAL instead of the full-HAL implementation\nfollowing `samples/simple_embedding`, because HAL device creation\ncurrently requires a proactor that `IREE_PLATFORM_GENERIC` does not\nprovide.\n\nThe runtime is compiled and linked using an xPack GCC/newlib sysroot.\nIts newlib is built with `-mcmodel\u003dmedany` required for QEMUs RAM base\nand provides `semihost.specs` for semihosted I/O and exit handling.\n\nNo HAL device drivers are enabled; the embedded-ELF loader is enabled\nexplicitly for the LLVMCPU runner. The sample is `EXCLUDE_FROM_ALL` and\nCI builds only `samples/baremetal_riscv64/all`, so it does not affect\nother Generic RISCV builds.\n\n\nAssisted-by: Claude Code\n\nSigned-off-by: Pooja Hemashekar \u003chemashekar@roofline.ai\u003e"
    },
    {
      "commit": "0492b214495cda17591a865027fb331a32da1fe9",
      "tree": "c99f9f7c09aa98bc45cbecd4d26350fc2b3ac743",
      "parents": [
        "8859e9ce7c478b51f630194d565b52574c7b68e9"
      ],
      "author": {
        "name": "Artem Gindinson",
        "email": "gindinson@roofline.ai",
        "time": "Wed Sep 02 13:01:08 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Sep 02 13:01:08 2026 +0200"
      },
      "message": "Update CODEOWNERS: Aug 2026 (#24847)\n\nAs a follow-up on bff05a9d, fill in the current Codeowners file with TSC\nmembers, as well as nominate additional reviewers.\n\nContributors who are removed from the list for large scopes: the\nproposal makes a loose assumption that they are no longer actively\ndeveloping and/or reviewing the affected segments of the codebase. Thus,\nthe PR should only go in once it satisfies edit requests and a general\napproval by such long-standing contributors and code owners.\n\nThere\u0027s little to no fine-graining of directory scopes in this PR. A\nhandful of directories is removed from the list as either outdated or as\na way of (temporarily?) transfering the default code ownership thereof\nto higher-level code owners.\nAny contributor, regardless of TSC membership, is generally free to\nvolunteer for the existing or narrower review scopes, as well as offload\nnotifications and first-point-of-contact duties to other project\nmembers.\n\n---------\n\nSigned-off-by: Artem Gindinson \u003cgindinson@roofline.ai\u003e"
    },
    {
      "commit": "8859e9ce7c478b51f630194d565b52574c7b68e9",
      "tree": "fd2c9db6e4b24deb9a3f9c7e61229944ecb83151",
      "parents": [
        "2512204c2516c498374229ce5aed42d92dc31b77"
      ],
      "author": {
        "name": "Pan Zhang",
        "email": "98025960+zhangpan2001@users.noreply.github.com",
        "time": "Wed Sep 02 15:36:44 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Sep 02 09:36:44 2026 +0200"
      },
      "message": "[Bindings] Reject unranked tensors in native ABI signatures (#24872)\n\nThe native ABI wrapper assumes tensor types are ranked when building\nmarshaling ops. An unranked tensor in a function signature hits an\nassertion when its rank is queried.\n\nCheck import and export signatures up front and report an error for\nunranked tensor arguments or results. Add separate regression coverage\nfor arguments and results on imports and exports.\n    \nFixes #24846\n\nSigned-off-by: zhangpan \u003c98025960+zhangpan2001@users.noreply.github.com\u003e\nCo-authored-by: OpenAI \u003cnoreply@openai.com\u003e"
    },
    {
      "commit": "2512204c2516c498374229ce5aed42d92dc31b77",
      "tree": "e13c94e030bee44a696de323bb933d4660fb32c3",
      "parents": [
        "00a38af184068f8c0e18139227c8d272900e6e6d"
      ],
      "author": {
        "name": "jakobknauer",
        "email": "jakob.knauer@proton.me",
        "time": "Tue Sep 01 19:29:35 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Sep 01 19:29:35 2026 +0200"
      },
      "message": "Fix TargetRegistry de/serialization and fix FixedPointIteratorPass constructor (#24867)\n\nFixed reproducer creation: The target registry is serialized as\n`{target_registry\u003d0}` in the reproducer file (for passes that contain\nit, e.g. JitGlobalsPass). The deserialization when running a reproducer\nthus fails, because it expects `{target_registry\u003dglobal}`.\n\n\nWhat changed?\nEnabled -print-pipeline-passes\nFix TargetRegistry de/serialization\nFix FixedPointIteratorPass constructor\n\nMore detailed explanation of the fixes\n- see\nhttps://github.com/iree-org/llvm-project/blob/e65959f1684bd2416e8aa2ce684b8c300c381902/mlir/include/mlir/Pass/PassOptions.h#L77-L85\n- Making the conversion from TargetRegistryRef to bool explicit, so that\n`\u003c\u003c` is no longer overloaded for TargetRegistryDef (otherwise an\nimplicit conversion would be inserted, and simply 0 or 1 printed),\nleading to the wrong output in the reproducer file\n- Add a `parser\u003cTargetRegistryRef\u003e::print` overload that is selected\ninstead, printing either \"global\" or \"unknown\"\n- Adapting TargetRegistryRef parsing; always select the global registry,\nbut print a warning if an argument different from \"global\" is provided\n\n---------\n\nSigned-off-by: Jakob Knauer \u003cknauer@roofline.ai\u003e\nCo-authored-by: Tobias Fuchs \u003cfuchs@roofline.ai\u003e"
    },
    {
      "commit": "00a38af184068f8c0e18139227c8d272900e6e6d",
      "tree": "3c4e5911e895e9732929ea057cf7e6d0fcd36007",
      "parents": [
        "377bcd34a9228e928a88b0ce4e8d0c492bdb6d36"
      ],
      "author": {
        "name": "Pooja Hemashekar",
        "email": "hemashekar@roofline.ai",
        "time": "Tue Sep 01 18:04:06 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Sep 01 16:04:06 2026 +0000"
      },
      "message": "[Runtime] Fix ctype calls for signed char inputs (#24873)\n\nFix `ctype` calls to cast `char` values to `unsigned char` before\npassing them to `isspace`/ `isdigit`.\n\nThis is needed for the bare-metal RISC-V CI in #24844. That build uses\nGCC + newlib, where passing a plain `char` to these functions triggers\n`-Wchar-subscripts`. Since warnings are treated as errors, the build\nfails without these casts.\n\nUsing `unsigned char` is also the correct way to call `ctype` functions\non character data, since plain `char` can be negative on some platforms.\n\nAssisted-by: Claude Code\n\n---------\n\nSigned-off-by: Pooja Hemashekar \u003chemashekar@roofline.ai\u003e"
    },
    {
      "commit": "377bcd34a9228e928a88b0ce4e8d0c492bdb6d36",
      "tree": "cac8284b0ad0031edfb63a520dea7da98784b9e1",
      "parents": [
        "ff77d7477b5f77a06f450b454a9550809d2fe87d"
      ],
      "author": {
        "name": "Ege Beysel",
        "email": "beysel@roofline.ai",
        "time": "Mon Aug 31 15:51:29 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 31 15:51:29 2026 +0200"
      },
      "message": "[LLVMCPU][NFC] Separate the intrinsic MNK shape from its register layout (#24861)\n\n`getIntrinsicMNKShape` states how many M/N/K elements one invocation of\nan intrinsic computes, independent of how those elements are laid out in\nregisters. Selection scores candidates on this shape and the\nsibling-pairing validator checks M and N against it, so every intrinsic\ndeclares one, including scalable ones, which declare their base sizes. A\nscalable and a non-scalable intrinsic should never compete for the same\nmatmul, so comparisons stay like-for-like.\n\nThe hand-rolled swizzles for intrinsics whose tiles are not row-major\nmove into `getNonRowMajorIntrinsicSwizzle`.\n\nAssisted-by: Claude Code\n\nSigned-off-by: Ege Beysel \u003cbeyselege@gmail.com\u003e"
    },
    {
      "commit": "ff77d7477b5f77a06f450b454a9550809d2fe87d",
      "tree": "a05c2b2e5c7c1ce67fefe4671ac2f5045570132c",
      "parents": [
        "0dff29e78cd7dc660e63b4fe80a4221d2beaf127"
      ],
      "author": {
        "name": "JC",
        "email": "justchen@amd.com",
        "time": "Mon Aug 31 04:37:10 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 31 11:37:10 2026 +0000"
      },
      "message": "[ci] [windows] Route choco installs through cluster-local Nexus mirror (#24836)\n\n## Summary\nWindows CI (`ci_windows_x64_msvc`) sporadically fails at the\ntool-install steps because `choco install` hits the public\n`community.chocolatey.org` feed, which intermittently returns `503\n(Service Unavailable)` (rate limiting / transient outages). See #24826.\n\nThis routes choco through the cluster-local Nexus proxy group\n(`choco-group`) via its Kubernetes service FQDN, mirroring the approach\nalready used in\n[ROCm/TheRock](https://github.com/ROCm/TheRock/commit/dd781140d887e35b6e3c84cc059e4c0f8d37068a).\nThe proxy only mirrors package *metadata*; binaries still download from\nthe upstream mirror named in the cached nuspec, which is enough to avoid\nthe community-feed 503s.\n\n## Change\nIn `.github/workflows/ci_windows_x64_msvc.yml`, before installing\npackages:\n```yaml\nchoco source disable -n\u003dchocolatey\nchoco source add -n\u003dinternal -s http://nexus-service.nexus-ns.svc.cluster.local:8081/repository/choco-group/ --priority\u003d1\n```\n\n## Verification\nDispatched on a test branch on an `azure-windows-scale` runner (run\n[32531536526](https://github.com/iree-org/iree/actions/runs/32531536526)).\nBoth choco steps completed with `success`, fetching every package\nthrough the mirror with no 503s:\n```\nDisabled chocolatey\nAdded internal - http://nexus-service.nexus-ns.svc.cluster.local:8081/repository/choco-group/ (Priority 1)\nDownloading package from source \u0027http://nexus-service.nexus-ns.svc.cluster.local:8081/repository/choco-group/\u0027\nChocolatey installed 1/1 packages.   # ccache\nChocolatey installed 1/1 packages.   # sccache\nChocolatey installed 0/1 packages.   # cmake already present on image (no-op, step still succeeded)\nChocolatey installed 1/1 packages.   # ninja 1.12.1\n```\nThis also confirms the `azure-windows-scale` runners are in the same\ncluster and can resolve the Nexus service FQDN. The build step itself\nwas cancelled after the install steps passed, since only the choco\nbehavior was under test.\n\nCloses #24826\n\nCo-authored-by: Copilot \u003c223556219+Copilot@users.noreply.github.com\u003e\n\nSigned-off-by: Justin Chen \u003cjustchen@amd.com\u003e\nSigned-off-by: Artem Gindinson \u003cgindinson@roofline.ai\u003e\nCo-authored-by: Copilot \u003c223556219+Copilot@users.noreply.github.com\u003e"
    },
    {
      "commit": "0dff29e78cd7dc660e63b4fe80a4221d2beaf127",
      "tree": "3af06b274b6acd884c636e61c4727ce5e94875c5",
      "parents": [
        "3d0c17b9a5ae682ff71cf6ec35d4b39a11c9321e"
      ],
      "author": {
        "name": "WMC",
        "email": "tnwilly@gmail.com",
        "time": "Mon Aug 31 17:24:41 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 31 11:24:41 2026 +0200"
      },
      "message": "[LLVMGPU] Add dense and paged attention runtime correctness tests (#24829)\n\n## Summary\n\nThis PR adds a CUDA end-to-end runtime correctness test for paged-KV\nattention as Stage 2 of\n[#24766](https://github.com/iree-org/iree/issues/24766).\n\nThis change also fixes and enables the shared host-side attention\nchecker used by the existing dense-attention e2e tests. Before this\nchange, the reference softmax was numerically incorrect and the checker\ngenerated expected results without comparing them against device output.\n\n## Changes\n\n- Adds CUDA paged-KV attention coverage with non-contiguous, distinct\nkey and value page tables, `iree_linalg_ext.gather`, and\n`iree_linalg_ext.online_attention`.\n- Makes the page-table dimension dynamic (`tensor\u003c4x?xi64\u003e`), matching\nthe runtime `NUM_PAGES` use case.\n- Fixes the shared stable-softmax reference and makes it compare device\noutput with expected results.\n- Refactors the paged checker to gather paged K/V into dense tensors and\nreuse the shared attention reference and checker.\n- Passes the f16-rounded `1 / sqrt(head_dim)` scale to both the\noperation and host reference.\n\n## Testing\nValidated on NVIDIA RTX PRO 6000 Blackwell Server Edition\n\n- All existing CPU dense-attention configurations.\n- CUDA paged attention with 4 pages.\n- The same compiled paged-attention VMFB with 2, 4, and 6 runtime pages.\n\nAttention e2e tests use:\n\n```text\n--require_exact_results\u003dfalse\n--acceptable_fp_delta\u003d0.01\n```\n\n---------\n\nSigned-off-by: weimin023 \u003ctnwilly@gmail.com\u003e"
    },
    {
      "commit": "3d0c17b9a5ae682ff71cf6ec35d4b39a11c9321e",
      "tree": "213416364f482f7a0374bb21070fe269962c086b",
      "parents": [
        "0ce54d6fa2200125f4686ff7f7a898cbb976116b"
      ],
      "author": {
        "name": "Artem Gindinson",
        "email": "gindinson@roofline.ai",
        "time": "Fri Aug 28 18:03:24 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Aug 28 18:03:24 2026 +0200"
      },
      "message": "Integrate LLVM to llvm/llvm-project@0ab4db419396 (#24868)\n\nClean integrate – drops the fixups from the LLVM mirror branch:\n- Drops the revert of llvm/llvm-project#216984 via\nllvm/llvm-project@5715274\n- Auto-drops the cherry-pick of llvm/llvm-project@9ebb067a\n\nSigned-off-by: Artem Gindinson \u003cgindinson@roofline.ai\u003e"
    },
    {
      "commit": "0ce54d6fa2200125f4686ff7f7a898cbb976116b",
      "tree": "17c41c451a720866f37457434ba94e63d715d524",
      "parents": [
        "1a8b8cc56ea97eef9b92ddc0a43607504e82bc61"
      ],
      "author": {
        "name": "Ege Beysel",
        "email": "beysel@roofline.ai",
        "time": "Fri Aug 28 12:08:04 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Aug 28 10:08:04 2026 +0000"
      },
      "message": "[LLVMCPU] infer inner-tile alignment hints for mixed scalability (#24857)\n\nAn inner-tile alignment hint was only captured when the pack/unpack\ninner tile itself was scalable, on the assumption that a static inner\ntile is resolved by static shape inference downstream. That only holds\nwhen the loop tile is static too. A static inner tile under a scalable\nloop tile also needs a hint.\n\nAssisted-by: Claude Code\n\nSigned-off-by: Ege Beysel \u003cbeyselege@gmail.com\u003e"
    },
    {
      "commit": "1a8b8cc56ea97eef9b92ddc0a43607504e82bc61",
      "tree": "257bfc150e2e461e61bd6b6ba5fb23c943ec1618",
      "parents": [
        "ecbcdebe23a6e70ca5e350734c341c79eac98c72"
      ],
      "author": {
        "name": "Artem Gindinson",
        "email": "gindinson@roofline.ai",
        "time": "Fri Aug 28 11:56:40 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Aug 28 11:56:40 2026 +0200"
      },
      "message": "Integrate LLVM to llvm/llvm-project@e89dc2172f0d (#24863)\n\nStill carries a temporary revert of llvm/llvm-project@202ece62657c from\n`sm-iree-integrates/llvm-20260821`. Should be dropped in the next\nintegrate via llvm/llvm-project#218693.\n\nThis cherry-picks an additional hotfix: llvm/llvm-project#219301.\n\nAdaptations required:\nllvm/llvm-project@979b72237338 - `SymbolOpInterface` no longer provides\nimplicit symbol traits, so a bunch of ops need updating with name and\nvisibility properties\nllvm/llvm-project@180a0fc57c88 - symbol visibility query API has changed\nllvm/llvm-project@325a853c1264 - using lowered result type for MLIR LLVM\nint constants\nllvm/llvm-project@8fe50937417b - attribute ordering for named Linalg ops\nllvm/llvm-project@ad9dc60252ed - discardable/inherent attribute ordering\nllvm/llvm-project@bfd1a003fb33 - `alloc_tensor` properties separated out\nllvm/llvm-project@3e3927f7166c - change in printer defaults for property\ndictionaries\n\nAdaptations to llvm/llvm-project@979b72237338 affect Torch-MLIR, so the\n`iree-org` fork was advanced to `sm-iree-integrates/torch-20260827`\naccordingly.\n\nAssisted-by: OpenAI Codex\n\n---------\n\nSigned-off-by: Artem Gindinson \u003cgindinson@roofline.ai\u003e"
    },
    {
      "commit": "ecbcdebe23a6e70ca5e350734c341c79eac98c72",
      "tree": "6fe0e48e2738ffa7ea219c4d38fe93ecae6a5916",
      "parents": [
        "a1b922ff46551fedae1c171e9ac3918f50005d31"
      ],
      "author": {
        "name": "Pooja Hemashekar",
        "email": "hemashekar@roofline.ai",
        "time": "Fri Aug 28 10:52:32 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Aug 28 10:52:32 2026 +0200"
      },
      "message": "[HAL] Fix inline execution models (initializer inlining and dispatch ABI) (#24827)\n\nThe inline execution models were broken end-to-end in both the compiler\nand runtime.\n\nOn the compiler side, the `HAL_Loader` and `HAL_Inline` dialects did not\nsupport inlining, preventing `CombineInitializers` pass from combining\ninitializers containing their ops. This broke `inline-dynamic`\ncompilation generally, and stateful programs using mutable globals under\nboth `inline-dynamic` and `inline-static`.\n\nOn the runtime side, the `hal_loader` dispatch shim incorrectly\naccounted for padding in the fixed portion of the VM cconv arguments by\nusing the C struct size, causing `inline-dynamic` dispatches to fail\nwith an argument/result signature mismatch.\n\nThe runtime also leaked the inline HAL storage buffer wrapper on\nrelease. VM buffer destruction also assumed that every buffer was\ncreated by `iree_vm_buffer_create/clone` as a single aligned allocation\ncontaining both the `iree_vm_buffer_t` handle and its data. Inline HAL\ninstead embeds the handle inside a wrapper struct that maps an\n`iree_hal_buffer_t`, initializing it in place with\n`iree_vm_buffer_initialize`. Such buffers must invoke the wrapper’s\ncustom allocator to release the underlying HAL buffer and free the\nwrapper, rather than calling `iree_allocator_free_aligned` on the\nembedded handle. Since nothing else in the handle distinguishes the two\ncases at destroy time, create/clone now tag their buffers with\n`IREE_VM_BUFFER_ACCESS_COALLOCATED` (set internally), and destroy takes\nthe free-aligned path only for tagged buffers; all others pass the\nhandle to their allocator.\n\nThis PR adds the required inliner interfaces, fixes the dispatch\nargument handling, distinguishes co-allocated and in-place-initialized\nVM buffers during destruction, and adds compiler/runtime coverage for\nthe affected execution models and buffer lifetimes.\n\nAssisted-by: Claude Code\n\n---------\n\nSigned-off-by: Pooja Hemashekar \u003chemashekar@roofline.ai\u003e"
    },
    {
      "commit": "a1b922ff46551fedae1c171e9ac3918f50005d31",
      "tree": "80d95cc7c388d4ade37d6fd6df817377b0cad266",
      "parents": [
        "473699f57f9b817c35e400c6d1f1f98c47767c22"
      ],
      "author": {
        "name": "Federico Bruzzone",
        "email": "federico.bruzzone.i@gmail.com",
        "time": "Fri Aug 28 10:43:45 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Aug 28 10:43:45 2026 +0200"
      },
      "message": "[GlobalOpt][Flow][Quant] Fix segfault on unlowered `quant.uniform` types (#24824)\n\n`HoistIntoGlobalsPass`\u0027s `HoistableTensorTypeInterface` unconditionally\ncalled `getIntOrFloatBitWidth()` on a tensor\u0027s element type to decide\nwhether it is hoistable, assuming it is always a plain int/float. A\n`!quant.uniform\u003c...\u003e` element type is neither, so\n`getIntOrFloatBitWidth()` crashes instead of returning a sane answer.\n\n`isHoistableType`/`isHoistableLeafType`, with this PR, check that the\nelement type is actually an int/float\nbefore computing its bit width via a new helper `hasComputableBitWidth`,\nand conservatively treat anything else as\nnon-hoistable.\n\nAdditonally, `quant.uniform` types leak into the pipeline because\n`quant` is a transitive type dependency of TOSA, not because we have any\nlowering support for `quant.qcast`/`quant.dcast`/`quant.scast` AFAIK.\nTOSA\u0027s own conversion to `linalg`/`arith` is expected to fully resolve\nthese before `Flow`. `VerifyInputLegalityPass` already enforces that for\nthose some dialects, `quant` was simply missing from the list, so IR\nwhere these ops survive past `GlobalOptimization` would segfault later.\n\nFixes #24814\n\n---------\n\nSigned-off-by: Federico Bruzzone \u003cfederico.bruzzone.i@gmail.com\u003e"
    },
    {
      "commit": "473699f57f9b817c35e400c6d1f1f98c47767c22",
      "tree": "fbd1f5bb1e48abc0ff864377e440052e1979946d",
      "parents": [
        "70491fba035c8687cebe2d70eda0c31cc8d57bae"
      ],
      "author": {
        "name": "TMahlatini",
        "email": "128567935+TMahlatini@users.noreply.github.com",
        "time": "Fri Aug 28 04:28:10 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Aug 28 08:28:10 2026 +0000"
      },
      "message": "[RVV] Add SpaceMiT IME narrow M0 mmt4d tiles (#24802)\n\n## Summary\n- Add SpaceMiT IME (`xsmtvdot`) narrow mmt4d tiles (2×4 / 1×4 atom\ngrids) for VLEN 256/1024/4096. only validated VLEN\u003d256 on hardware.\n- Wired compiler tile enumeration, and mmt4d test/benchmark coverage\n\n-Fixes #24769\n\nAssisted by: Cursor \u003ccursoragent@cursor.com\u003e\nSigned-off-by: Terence \u003cterrencemahlatini@gmail.com\u003e\n\n---------\n\nSigned-off-by: Terence \u003cterrencemahlatini@gmail.com\u003e\nCo-authored-by: Cursor \u003ccursoragent@cursor.com\u003e"
    },
    {
      "commit": "70491fba035c8687cebe2d70eda0c31cc8d57bae",
      "tree": "53e2e037498b40182b5695f927f9ada3fd6c5d17",
      "parents": [
        "26b06bb502957ae333f47e4c8f3f83815039d0d3"
      ],
      "author": {
        "name": "Tobias Fuchs",
        "email": "9053039+devtbi@users.noreply.github.com",
        "time": "Thu Aug 27 21:14:47 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Aug 27 21:14:47 2026 +0200"
      },
      "message": "[Vulkan] Fix failing allocation on iGPUs (#24736)\n\nIf memory requests for HOST_LOCAL memory fail, try to allocate\nHOST_VISIBLE/mappable memory.\nThis is a workaround for what probably would need some refactoring in\nthe vulkan allocator.\n\nFixes https://github.com/iree-org/iree/issues/24717\n\nCo-Authored-By: Claude\n\n---------\n\nSigned-off-by: Tobias Fuchs \u003cfuchs@roofline.ai\u003e"
    },
    {
      "commit": "26b06bb502957ae333f47e4c8f3f83815039d0d3",
      "tree": "6e74a4d3372acb635b1e2b0053a3ecd550c33f07",
      "parents": [
        "75bfdae5be7aa36e413378a78c14cfa8595f934c"
      ],
      "author": {
        "name": "Jeremy Howard",
        "email": "github@jhoward.fastmail.fm",
        "time": "Thu Aug 27 17:18:44 2026 +1000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Aug 27 07:18:44 2026 +0000"
      },
      "message": "[Metal] Fall back to the system default device (#24839)\n\nOn an M5 Max running macOS 26.6 inside a Codex sandbox, we observed\n`MTLCopyAllDevices()` return an empty array in a fresh process even\nthough `MTLCreateSystemDefaultDevice()` returned a valid device. IREE\nsnapshots the first enumeration result when creating its Metal driver,\nso an initially empty result leaves that driver permanently without\ndevices.\n\nInstead, when enumeration is empty, we use the default device as a\none-device fallback.\n\nFixes #24834.\n\nAI assistance disclosure: I used OpenAI Codex substantially to inspect\nthe implementation, trace the failure, implement the change, and prepare\nthis PR (but not write this description). I reviewed and understand the\nresulting code and analysis.\n\n---------\n\nSigned-off-by: Jeremy Howard \u003cgithub@jhoward.fastmail.fm\u003e"
    },
    {
      "commit": "75bfdae5be7aa36e413378a78c14cfa8595f934c",
      "tree": "9645d71425d26cc039dfb505c833a855f41f5c1e",
      "parents": [
        "6ec253ad4e259ad256c8a226f7a7a330debf937c"
      ],
      "author": {
        "name": "Jeremy Howard",
        "email": "j@howard.fm",
        "time": "Wed Aug 26 19:57:38 2026 +1000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Aug 26 11:57:38 2026 +0200"
      },
      "message": "[Metal] Support queue operations on standalone devices (#24840)\n\nThe device-group topology changes in #24248 leave frontier_tracker null\nuntil a device joins a group. PR #24474 added guards for standalone CUDA\nand HIP devices, but Metal was omitted. This PR simply adds the\nequivalent Metal guard (and a regression test).\n\nFixes #24835.\n\nAI assistance disclosure: I used OpenAI Codex substantially to inspect\nthe implementation and history, implement the change, and prepare the\nregression test. I reviewed and understand the resulting code and\nanalysis, and wrote this description.\n\nSigned-off-by: Jeremy Howard \u003cgithub@jhoward.fastmail.fm\u003e"
    },
    {
      "commit": "6ec253ad4e259ad256c8a226f7a7a330debf937c",
      "tree": "e827ff741afecd867165366a0be0e6a3854ecfd3",
      "parents": [
        "d153db0dc98cc25eda92fcb08792bdcfb78cfe8a"
      ],
      "author": {
        "name": "Artem Gindinson",
        "email": "gindinson@roofline.ai",
        "time": "Wed Aug 26 09:42:22 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Aug 26 09:42:22 2026 +0200"
      },
      "message": "Integrate LLVM to llvm/llvm-project@e46edf0c1fe2 (#24855)\n\nStill carries a temporary revert of llvm/llvm-project@202ece62657c from\n`sm-iree-integrates/llvm-20260821`. Should be possible to drop in a\nsubsequent integrate via llvm/llvm-project#218693.\n\nAligns LIT CHECKs in a few GPU/ROCDL tests with syntax updates in\nhttps://github.com/llvm/llvm-project/commit/80dfaec65.\n\nAssisted-by: Codex\n\n---------\n\nSigned-off-by: Artem Gindinson \u003cgindinson@roofline.ai\u003e"
    },
    {
      "commit": "d153db0dc98cc25eda92fcb08792bdcfb78cfe8a",
      "tree": "14760f39336137311b40361713d3134acf0f660d",
      "parents": [
        "c2715a11681c2fa5357a39608cae98725b347502"
      ],
      "author": {
        "name": "Artem Gindinson",
        "email": "gindinson@roofline.ai",
        "time": "Tue Aug 25 13:13:04 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 25 13:13:04 2026 +0200"
      },
      "message": "Include @maxbartel into IREE authors for citation (#24842)\n\nAs a follow-up on bff05a9d, include Maximilian Bartel as the sitting\nchairman of the IREE TSC into the cited IREE authors list.\n\nSigned-off-by: Artem Gindinson \u003cgindinson@roofline.ai\u003e"
    },
    {
      "commit": "c2715a11681c2fa5357a39608cae98725b347502",
      "tree": "3e9af5debdcc35224ead46dd161bb426bf259658",
      "parents": [
        "d64edc5bf9d3244515cb5aad3acd7c7a72fe05bd"
      ],
      "author": {
        "name": "jramr",
        "email": "55054584+jrlvdr@users.noreply.github.com",
        "time": "Tue Aug 25 16:34:52 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 25 13:04:52 2026 +0200"
      },
      "message": "[HAL] Complete unfinished doc comment on plugin load() (#24837)\n\nSigned-off-by: janakiramreddy3 \u003cjanakiramreddy3@gmail.com\u003e"
    },
    {
      "commit": "d64edc5bf9d3244515cb5aad3acd7c7a72fe05bd",
      "tree": "6e50ad46f1af1b0c6fceaf3dd2d6fe14fb8a8be3",
      "parents": [
        "7d9bc82db794aa3592d5aa9553e675b4c9dd9fd0"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Tue Aug 25 08:24:29 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 25 08:24:29 2026 +0200"
      },
      "message": "Bump dawidd6/action-download-artifact from 21 to 24 in the github-actions group (#24845)\n\nBumps the github-actions group with 1 update:\n[dawidd6/action-download-artifact](https://github.com/dawidd6/action-download-artifact).\n\nUpdates `dawidd6/action-download-artifact` from 21 to 24\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca\nhref\u003d\"https://github.com/dawidd6/action-download-artifact/releases\"\u003edawidd6/action-download-artifact\u0027s\nreleases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev24\u003c/h2\u003e\n\u003ch2\u003eWhat\u0027s Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: preserve workflow run ordering by \u003ca\nhref\u003d\"https://github.com/dawidd6\"\u003e\u003ccode\u003e@​dawidd6\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/dawidd6/action-download-artifact/pull/425\"\u003edawidd6/action-download-artifact#425\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca\nhref\u003d\"https://github.com/dawidd6/action-download-artifact/compare/v23...v24\"\u003ehttps://github.com/dawidd6/action-download-artifact/compare/v23...v24\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev23\u003c/h2\u003e\n\u003ch1\u003eInfo\u003c/h1\u003e\n\u003cp\u003eThis release is rather big. Not gonna lie to you, I\u0027ve used LLMs to\nget there. I can\u0027t vouch for all the changes but CI confirms there\n\u003cem\u003eshould\u003c/em\u003e be no regressions. Please report any issues you\nencounter with this release. You can always revert to previous working\none.\u003c/p\u003e\n\u003ch2\u003eWhat\u0027s Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ejoint fixes and improvements by \u003ca\nhref\u003d\"https://github.com/dawidd6\"\u003e\u003ccode\u003e@​dawidd6\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/dawidd6/action-download-artifact/pull/417\"\u003edawidd6/action-download-artifact#417\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): update brace-expansion by \u003ca\nhref\u003d\"https://github.com/dawidd6\"\u003e\u003ccode\u003e@​dawidd6\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/dawidd6/action-download-artifact/pull/418\"\u003edawidd6/action-download-artifact#418\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHarden upload workflow token scope with explicit\n\u003ccode\u003eGITHUB_TOKEN\u003c/code\u003e permissions by \u003ca\nhref\u003d\"https://github.com/dawidd6\"\u003e\u003ccode\u003e@​dawidd6\u003c/code\u003e\u003c/a\u003e with \u003ca\nhref\u003d\"https://github.com/Copilot\"\u003e\u003ccode\u003e@​Copilot\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/dawidd6/action-download-artifact/pull/419\"\u003edawidd6/action-download-artifact#419\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: stream GHES artifact downloads by \u003ca\nhref\u003d\"https://github.com/dawidd6\"\u003e\u003ccode\u003e@​dawidd6\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/dawidd6/action-download-artifact/pull/420\"\u003edawidd6/action-download-artifact#420\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: simplify action implementation by \u003ca\nhref\u003d\"https://github.com/dawidd6\"\u003e\u003ccode\u003e@​dawidd6\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/dawidd6/action-download-artifact/pull/421\"\u003edawidd6/action-download-artifact#421\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: remove redundant action code by \u003ca\nhref\u003d\"https://github.com/dawidd6\"\u003e\u003ccode\u003e@​dawidd6\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/dawidd6/action-download-artifact/pull/422\"\u003edawidd6/action-download-artifact#422\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: simplify artifact filtering by \u003ca\nhref\u003d\"https://github.com/dawidd6\"\u003e\u003ccode\u003e@​dawidd6\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/dawidd6/action-download-artifact/pull/423\"\u003edawidd6/action-download-artifact#423\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca\nhref\u003d\"https://github.com/dawidd6/action-download-artifact/compare/v22...v23\"\u003ehttps://github.com/dawidd6/action-download-artifact/compare/v22...v23\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev22\u003c/h2\u003e\n\u003ch2\u003eWhat\u0027s Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ebuild(deps): bump fast-xml-builder from 1.1.5 to 1.2.0 by \u003ca\nhref\u003d\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot]\nin \u003ca\nhref\u003d\"https://redirect.github.com/dawidd6/action-download-artifact/pull/406\"\u003edawidd6/action-download-artifact#406\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump actions/checkout from 6 to 7 by \u003ca\nhref\u003d\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot]\nin \u003ca\nhref\u003d\"https://redirect.github.com/dawidd6/action-download-artifact/pull/407\"\u003edawidd6/action-download-artifact#407\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump undici from 6.24.0 to 6.27.0 by \u003ca\nhref\u003d\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot]\nin \u003ca\nhref\u003d\"https://redirect.github.com/dawidd6/action-download-artifact/pull/408\"\u003edawidd6/action-download-artifact#408\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump filesize from 11.0.17 to 11.0.18 by \u003ca\nhref\u003d\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot]\nin \u003ca\nhref\u003d\"https://redirect.github.com/dawidd6/action-download-artifact/pull/409\"\u003edawidd6/action-download-artifact#409\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump filesize from 11.0.18 to 11.0.19 by \u003ca\nhref\u003d\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot]\nin \u003ca\nhref\u003d\"https://redirect.github.com/dawidd6/action-download-artifact/pull/410\"\u003edawidd6/action-download-artifact#410\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump adm-zip from 0.5.17 to 0.5.18 by \u003ca\nhref\u003d\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot]\nin \u003ca\nhref\u003d\"https://redirect.github.com/dawidd6/action-download-artifact/pull/411\"\u003edawidd6/action-download-artifact#411\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump filesize from 11.0.19 to 11.0.22 by \u003ca\nhref\u003d\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot]\nin \u003ca\nhref\u003d\"https://redirect.github.com/dawidd6/action-download-artifact/pull/412\"\u003edawidd6/action-download-artifact#412\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump adm-zip from 0.5.18 to 0.6.0 by \u003ca\nhref\u003d\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot]\nin \u003ca\nhref\u003d\"https://redirect.github.com/dawidd6/action-download-artifact/pull/414\"\u003edawidd6/action-download-artifact#414\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump undici from 6.27.0 to 6.28.0 by \u003ca\nhref\u003d\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot]\nin \u003ca\nhref\u003d\"https://redirect.github.com/dawidd6/action-download-artifact/pull/415\"\u003edawidd6/action-download-artifact#415\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003enode_modules: update by \u003ca\nhref\u003d\"https://github.com/dawidd6\"\u003e\u003ccode\u003e@​dawidd6\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/dawidd6/action-download-artifact/pull/416\"\u003edawidd6/action-download-artifact#416\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eContinue downloading after expired artifacts in non-fatal modes by\n\u003ca href\u003d\"https://github.com/oiahoon\"\u003e\u003ccode\u003e@​oiahoon\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/dawidd6/action-download-artifact/pull/413\"\u003edawidd6/action-download-artifact#413\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/oiahoon\"\u003e\u003ccode\u003e@​oiahoon\u003c/code\u003e\u003c/a\u003e made\ntheir first contribution in \u003ca\nhref\u003d\"https://redirect.github.com/dawidd6/action-download-artifact/pull/413\"\u003edawidd6/action-download-artifact#413\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca\nhref\u003d\"https://github.com/dawidd6/action-download-artifact/compare/v21...v22\"\u003ehttps://github.com/dawidd6/action-download-artifact/compare/v21...v22\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/dawidd6/action-download-artifact/commit/d63b86af1b34672e53c440b1b83979861906bad7\"\u003e\u003ccode\u003ed63b86a\u003c/code\u003e\u003c/a\u003e\nfix: preserve workflow run ordering (\u003ca\nhref\u003d\"https://redirect.github.com/dawidd6/action-download-artifact/issues/425\"\u003e#425\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/dawidd6/action-download-artifact/commit/57aa996fc1713cc1579039614f4645a7f4841fd4\"\u003e\u003ccode\u003e57aa996\u003c/code\u003e\u003c/a\u003e\nchore: simplify artifact filtering (\u003ca\nhref\u003d\"https://redirect.github.com/dawidd6/action-download-artifact/issues/423\"\u003e#423\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/dawidd6/action-download-artifact/commit/7325d4694298cd63b2f5a28900f2e4c8dab127a0\"\u003e\u003ccode\u003e7325d46\u003c/code\u003e\u003c/a\u003e\nchore: remove redundant action code (\u003ca\nhref\u003d\"https://redirect.github.com/dawidd6/action-download-artifact/issues/422\"\u003e#422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/dawidd6/action-download-artifact/commit/fdd98d5df412e1b2e66b544b4db823ae8046b226\"\u003e\u003ccode\u003efdd98d5\u003c/code\u003e\u003c/a\u003e\nchore: simplify action implementation (\u003ca\nhref\u003d\"https://redirect.github.com/dawidd6/action-download-artifact/issues/421\"\u003e#421\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/dawidd6/action-download-artifact/commit/2156211c9c4919f6f7da650308a4fc3b9f44d772\"\u003e\u003ccode\u003e2156211\u003c/code\u003e\u003c/a\u003e\nfix: stream GHES artifact downloads (\u003ca\nhref\u003d\"https://redirect.github.com/dawidd6/action-download-artifact/issues/420\"\u003e#420\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/dawidd6/action-download-artifact/commit/a64f37ff0a7db82e37448a821118dd5688dd64ad\"\u003e\u003ccode\u003ea64f37f\u003c/code\u003e\u003c/a\u003e\nHarden upload workflow token scope with explicit\n\u003ccode\u003eGITHUB_TOKEN\u003c/code\u003e permissions (...\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/dawidd6/action-download-artifact/commit/b3e5a4caa7c334ec55e9d0966e40a0f2e1924853\"\u003e\u003ccode\u003eb3e5a4c\u003c/code\u003e\u003c/a\u003e\nbuild(deps): update brace-expansion (\u003ca\nhref\u003d\"https://redirect.github.com/dawidd6/action-download-artifact/issues/418\"\u003e#418\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/dawidd6/action-download-artifact/commit/01843d918b2bb1cf169ac0fc542e6c3181aa9219\"\u003e\u003ccode\u003e01843d9\u003c/code\u003e\u003c/a\u003e\njoint fixes and improvements (\u003ca\nhref\u003d\"https://redirect.github.com/dawidd6/action-download-artifact/issues/417\"\u003e#417\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/dawidd6/action-download-artifact/commit/7f871e041ed7fe12467d2d4196da8a466c5311ff\"\u003e\u003ccode\u003e7f871e0\u003c/code\u003e\u003c/a\u003e\nfix: continue after expired artifacts (\u003ca\nhref\u003d\"https://redirect.github.com/dawidd6/action-download-artifact/issues/413\"\u003e#413\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/dawidd6/action-download-artifact/commit/0015e1bd466de77cbc453080b6e744fe360b3c7b\"\u003e\u003ccode\u003e0015e1b\u003c/code\u003e\u003c/a\u003e\nnode_modules: update (\u003ca\nhref\u003d\"https://redirect.github.com/dawidd6/action-download-artifact/issues/416\"\u003e#416\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca\nhref\u003d\"https://github.com/dawidd6/action-download-artifact/compare/b6e2e70617bc3265edd6dab6c906732b2f1ae151...d63b86af1b34672e53c440b1b83979861906bad7\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility\nscore](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name\u003ddawidd6/action-download-artifact\u0026package-manager\u003dgithub_actions\u0026previous-version\u003d21\u0026new-version\u003d24)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don\u0027t\nalter it yourself. You can also trigger a rebase manually by commenting\n`@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits\nthat have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all\nof the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this\ngroup update PR and stop Dependabot creating any more for the specific\ndependency\u0027s major version (unless you unignore this specific\ndependency\u0027s major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this\ngroup update PR and stop Dependabot creating any more for the specific\ndependency\u0027s minor version (unless you unignore this specific\ndependency\u0027s minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR\nand stop Dependabot creating any more for the specific dependency\n(unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore\nconditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will\nremove the ignore condition of the specified dependency and ignore\nconditions\n\n\n\u003c/details\u003e\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "7d9bc82db794aa3592d5aa9553e675b4c9dd9fd0",
      "tree": "07d5f0b0f1b9eab24ef30ac1e0d4c319f9de9c5b",
      "parents": [
        "ee89ff3011fb5bfb952d1471fd3b745c8b06b916"
      ],
      "author": {
        "name": "Tobias Fuchs",
        "email": "9053039+devtbi@users.noreply.github.com",
        "time": "Mon Aug 24 13:45:45 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 24 11:45:45 2026 +0000"
      },
      "message": "[Vulkan] Fix unaligned fill/update (#24838)\n\nUnaligned fills/updates are implemented via kernels and thus require a\ncompute-able Vulkan queue.\n\nRe-applies\nhttps://github.com/iree-org/iree/commit/fef9d232aebc0d1e5d3d2839565dce5c3cd26282.\n\nFixes #24771 \n\n\nSigned-off-by: Tobias Fuchs \u003cfuchs@roofline.ai\u003e\nCo-Authored-By: Claude\nCo-authored-by: Artem Gindinson \u003cgindinson@roofline.ai\u003e"
    },
    {
      "commit": "ee89ff3011fb5bfb952d1471fd3b745c8b06b916",
      "tree": "43905505e4cabcd4f19dabb9308c64e06a92b8bf",
      "parents": [
        "b48a5955575cf8924ffc191f3b0804976e5738b9"
      ],
      "author": {
        "name": "Ege Beysel",
        "email": "beysel@roofline.ai",
        "time": "Sat Aug 22 21:06:17 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Aug 22 21:06:17 2026 +0200"
      },
      "message": "[LLVMCPU] strip per-function target attributes to allow inlining ukernels (#24833)\n\nThe ukernel bitcode carries per-function\ntarget-cpu/tune-cpu/target-features attributes that conflict with the\nattribute-less dispatch (which inherits the module-level TargetMachine)\nand stop LLVM from inlining the ukernel. Strip them (and vscale_range,\nso RVV bitcode inlines) at link time.\n\nFixes #24755.\n\nAssisted-by: Claude Code\n\nSigned-off-by: Ege Beysel \u003cbeyselege@gmail.com\u003e\nCo-authored-by: Stefan Schuermans \u003cschuermans@roofline.ai\u003e\nCo-authored-by: Federico Bruzzone \u003cfederico.bruzzone.i@gmail.com\u003e"
    },
    {
      "commit": "b48a5955575cf8924ffc191f3b0804976e5738b9",
      "tree": "b6bfc875776bf4bfdf727b86ccebcac3901b3a2e",
      "parents": [
        "efb87ccf277e8725c06967e1442cc3504a22fc58"
      ],
      "author": {
        "name": "Pooja Hemashekar",
        "email": "hemashekar@roofline.ai",
        "time": "Fri Aug 21 21:56:21 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Aug 21 21:56:21 2026 +0200"
      },
      "message": "Integrate LLVM to llvm/llvm-project@d98828d394e4 (#24832)\n\nBumps the llvm-project submodule from llvm/llvm-project@d37fa5a838db to\nllvm/llvm-project@d98828d394e4.\n\nThis is based on llvm/llvm-project@bd9990e127e1 with a temporary revert\nof llvm/llvm-project@202ece62657c due to a regression in MLIR SPIR-V\nconversion where i16 StorageBuffer accesses can fail legalization when\nnarrow-integer emulation is required. Follow-up investigation/upstream\nfix required.\n\nAdaptations needed:\n- llvm/llvm-project@7e0416da49f4 removed `TargetOptions::FloatABIType`\nin favor of the `float-abi` LLVM IR module flag. Store the float ABI on\nIREE\u0027s `LLVMTarget` instead and set the module flag on generated\nexecutables in the LLVMCPU target backend, preserving the previous\nhard-float default.\n- Updated lit tests for MLIR assembly-format changes that moved inherent\nattributes out of the attr-dict into declarative syntax.\n- Regenerated CAPI export files.\n\nAssisted-by: Claude Code\n\nSigned-off-by: Pooja Hemashekar \u003chemashekar@roofline.ai\u003e"
    },
    {
      "commit": "efb87ccf277e8725c06967e1442cc3504a22fc58",
      "tree": "634c6c66a234c2ffc5da2b03047f94c06f1fc297",
      "parents": [
        "5abc965413a1e40d03c91764f053db92767aeccb"
      ],
      "author": {
        "name": "Ege Beysel",
        "email": "beysel@roofline.ai",
        "time": "Fri Aug 21 17:09:03 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Aug 21 17:09:03 2026 +0200"
      },
      "message": "[LLVMCPU] set inner-tile alignment hints on scalable unpack ops (#24808)\n\nExtend setting the inner tile alignment hints to `linalg.unpack` ops.\nAfter the loop tile sizes are in the unpacked domain, the inner tile\nsizes are compared with these to infer aligment hints per-tiling level\nand the corresponding attribute is set.\n\nAssisted-by: Claude Code\n\n---\n\n\u003csub\u003eStack created with \u003ca\nhref\u003d\"https://github.com/github/gh-stack\"\u003eGitHub Stacks CLI\u003c/a\u003e • \u003ca\nhref\u003d\"https://gh.io/stacks-feedback\"\u003eGive Feedback 💬\u003c/a\u003e\u003c/sub\u003e\n\nSigned-off-by: Ege Beysel \u003cbeyselege@gmail.com\u003e"
    },
    {
      "commit": "5abc965413a1e40d03c91764f053db92767aeccb",
      "tree": "b227b18ecff4c3bb029d38072ee50290e131ea9e",
      "parents": [
        "08d190b813695055510431334b40bd09b83d820a"
      ],
      "author": {
        "name": "Pooja Hemashekar",
        "email": "hemashekar@roofline.ai",
        "time": "Fri Aug 21 16:47:20 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Aug 21 16:47:20 2026 +0200"
      },
      "message": "[Runtime][Build] Enable freestanding builds for IREE_PLATFORM_GENERIC (#24820)\n\nAvoid assuming POSIX facilities are available on Generic platforms,\nallowing the runtime to build for freestanding/bare-metal targets.\n\nThis disables POSIX-dependent functionality such as sockets and singal\nhandling by default, avoids selecting a POSIX async proactor, and\nprovides the small platform fallbacks needed by the Generic runtime\nbuild.\n\nThis commit also adds Bazel support for the Generic riscv64\nconfiguration, which is currently being brought up. It fixes additional\nbuild-system issues encountered during Generic riscv bring up.\n\nAssisted-by: Claude code\n\nSigned-off-by: Pooja Hemashekar \u003chemashekar@roofline.ai\u003e"
    },
    {
      "commit": "08d190b813695055510431334b40bd09b83d820a",
      "tree": "90182f38c2051f3fed2fcae4c50d9fe66e066c39",
      "parents": [
        "de91733d82553556a36eb15c2584d5d96de19df1"
      ],
      "author": {
        "name": "Tobias Fuchs",
        "email": "9053039+devtbi@users.noreply.github.com",
        "time": "Fri Aug 21 13:25:27 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Aug 21 13:25:27 2026 +0200"
      },
      "message": "[Vulkan] Mark vkGetMemoryHostPointerPropertiesEXT as optional (#24737)\n\n`vkGetMemoryHostPointerPropertiesEXT` only available if\n`VK_EXT_external_memory_host` is available \u0026 enabled.\nIf the extension is not available and the function is marked as\nrequired, `Vulkan device symbol \u0027vkGetMemoryHostPointerPropertiesEXT\u0027\nnot found` is thrown, see #24717.\n\nCall-sites are guarded by\n`iree_hal_vulkan_allocator_supports_host_allocation_import`.\n\nSigned-off-by: Tobias Fuchs \u003cfuchs@roofline.ai\u003e"
    },
    {
      "commit": "de91733d82553556a36eb15c2584d5d96de19df1",
      "tree": "c40699f04b12727226cac8f38d988a11a436423b",
      "parents": [
        "7778c15918526ecbb4b9606e2cfaa8c177854cd5"
      ],
      "author": {
        "name": "Tobias Fuchs",
        "email": "9053039+devtbi@users.noreply.github.com",
        "time": "Fri Aug 21 13:24:24 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Aug 21 13:24:24 2026 +0200"
      },
      "message": "[Vulkan] Disable sparse binding default (#24738)\n\nSparse binding feature does not fallback correctly to non-sparse binding\nif unavailable.\nDisable by default.\n\nhttps://github.com/iree-org/iree/issues/24717\n\nSigned-off-by: Tobias Fuchs \u003cfuchs@roofline.ai\u003e"
    },
    {
      "commit": "7778c15918526ecbb4b9606e2cfaa8c177854cd5",
      "tree": "37ed6cb4064a06e180580d3f7611899f524cd749",
      "parents": [
        "5fe10514d00d94be7d072554d7bda79b7b17d020"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Thu Aug 20 10:51:09 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Aug 20 10:51:09 2026 +0200"
      },
      "message": "Bump cpp-linter/cpp-linter-action from 2.20.0 to 2.21.0 in the github-actions group (#24822)\n\nBumps the github-actions group with 1 update:\n[cpp-linter/cpp-linter-action](https://github.com/cpp-linter/cpp-linter-action).\n\nUpdates `cpp-linter/cpp-linter-action` from 2.20.0 to 2.21.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca\nhref\u003d\"https://github.com/cpp-linter/cpp-linter-action/releases\"\u003ecpp-linter/cpp-linter-action\u0027s\nreleases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.21.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003e👻 Maintenance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003echore: drop clang 11 support and update default version to 21 by \u003ca\nhref\u003d\"https://github.com/shenxianpeng\"\u003e\u003ccode\u003e@​shenxianpeng\u003c/code\u003e\u003c/a\u003e\nin \u003ca\nhref\u003d\"https://redirect.github.com/cpp-linter/cpp-linter-action/issues/458\"\u003e#458\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e📦 Dependency updates\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003echore(deps-dev): bump ruff from 0.16.0 to 0.16.2 by @\u003ca\nhref\u003d\"https://github.com/apps/dependabot\"\u003edependabot[bot]\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/cpp-linter/cpp-linter-action/issues/470\"\u003e#470\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump hustcer/setup-nu from 3.25 to 3.26 in the actions\ngroup by @\u003ca\nhref\u003d\"https://github.com/apps/dependabot\"\u003edependabot[bot]\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/cpp-linter/cpp-linter-action/issues/469\"\u003e#469\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump pymdown-extensions from 10.21.3 to 11.0.1 by @\u003ca\nhref\u003d\"https://github.com/apps/dependabot\"\u003edependabot[bot]\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/cpp-linter/cpp-linter-action/issues/468\"\u003e#468\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps-dev): bump ruff from 0.15.22 to 0.16.0 by @\u003ca\nhref\u003d\"https://github.com/apps/dependabot\"\u003edependabot[bot]\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/cpp-linter/cpp-linter-action/issues/466\"\u003e#466\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps-dev): bump pre-commit from 4.6.0 to 4.6.1 by @\u003ca\nhref\u003d\"https://github.com/apps/dependabot\"\u003edependabot[bot]\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/cpp-linter/cpp-linter-action/issues/465\"\u003e#465\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump actions/checkout from 7.0.0 to 7.0.1 in the\nactions group by @\u003ca\nhref\u003d\"https://github.com/apps/dependabot\"\u003edependabot[bot]\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/cpp-linter/cpp-linter-action/issues/463\"\u003e#463\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps-dev): bump mkdocs-material from 9.7.6 to 9.7.7 by @\u003ca\nhref\u003d\"https://github.com/apps/dependabot\"\u003edependabot[bot]\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/cpp-linter/cpp-linter-action/issues/464\"\u003e#464\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps-dev): bump mypy from 2.1.0 to 2.3.0 by @\u003ca\nhref\u003d\"https://github.com/apps/dependabot\"\u003edependabot[bot]\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/cpp-linter/cpp-linter-action/issues/461\"\u003e#461\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps-dev): bump ruff from 0.15.20 to 0.15.22 by @\u003ca\nhref\u003d\"https://github.com/apps/dependabot\"\u003edependabot[bot]\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/cpp-linter/cpp-linter-action/issues/462\"\u003e#462\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump actions/cache from 6.0.0 to 6.1.0 in the actions\ngroup by @\u003ca\nhref\u003d\"https://github.com/apps/dependabot\"\u003edependabot[bot]\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/cpp-linter/cpp-linter-action/issues/456\"\u003e#456\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps-dev): bump clang-tools from 1.1.0 to 1.2.0 in the org\ngroup by @\u003ca\nhref\u003d\"https://github.com/apps/dependabot\"\u003edependabot[bot]\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/cpp-linter/cpp-linter-action/issues/457\"\u003e#457\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca\nhref\u003d\"https://github.com/cpp-linter/cpp-linter-action/compare/v2.20.0...v2.21.0\"\u003ehttps://github.com/cpp-linter/cpp-linter-action/compare/v2.20.0...v2.21.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/cpp-linter/cpp-linter-action/commit/cab1143a2c149bc41e85b070a9de81716974c18f\"\u003e\u003ccode\u003ecab1143\u003c/code\u003e\u003c/a\u003e\nchore(deps-dev): bump ruff from 0.16.0 to 0.16.2 (\u003ca\nhref\u003d\"https://redirect.github.com/cpp-linter/cpp-linter-action/issues/470\"\u003e#470\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/cpp-linter/cpp-linter-action/commit/69ac29aef4814c5bbd610a94c2ab1bebeeddad0c\"\u003e\u003ccode\u003e69ac29a\u003c/code\u003e\u003c/a\u003e\nchore(deps): bump hustcer/setup-nu from 3.25 to 3.26 in the actions\ngroup (\u003ca\nhref\u003d\"https://redirect.github.com/cpp-linter/cpp-linter-action/issues/469\"\u003e#469\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/cpp-linter/cpp-linter-action/commit/a73bf755fb01cb4ad9e669e7fa94847897b3f863\"\u003e\u003ccode\u003ea73bf75\u003c/code\u003e\u003c/a\u003e\nchore(deps): bump pymdown-extensions from 10.21.3 to 11.0.1 in the dev\ngroup ...\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/cpp-linter/cpp-linter-action/commit/06e25f1ffabd1ff9429b75163afe4f183ee6a64e\"\u003e\u003ccode\u003e06e25f1\u003c/code\u003e\u003c/a\u003e\nchore(deps-dev): bump ruff from 0.15.22 to 0.16.0 (\u003ca\nhref\u003d\"https://redirect.github.com/cpp-linter/cpp-linter-action/issues/466\"\u003e#466\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/cpp-linter/cpp-linter-action/commit/0b93f5833680005fbb233652d0e3d8835b3cc2f3\"\u003e\u003ccode\u003e0b93f58\u003c/code\u003e\u003c/a\u003e\nchore(deps-dev): bump pre-commit from 4.6.0 to 4.6.1 (\u003ca\nhref\u003d\"https://redirect.github.com/cpp-linter/cpp-linter-action/issues/465\"\u003e#465\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/cpp-linter/cpp-linter-action/commit/d8eec9a1ca75509228da0deb6a3c24b3da21a371\"\u003e\u003ccode\u003ed8eec9a\u003c/code\u003e\u003c/a\u003e\nchore(deps): bump actions/checkout from 7.0.0 to 7.0.1 in the actions\ngroup (...\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/cpp-linter/cpp-linter-action/commit/d63619eec4320fd45af88b5ea8aaf85e1a324021\"\u003e\u003ccode\u003ed63619e\u003c/code\u003e\u003c/a\u003e\nchore(deps-dev): bump mkdocs-material from 9.7.6 to 9.7.7 (\u003ca\nhref\u003d\"https://redirect.github.com/cpp-linter/cpp-linter-action/issues/464\"\u003e#464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/cpp-linter/cpp-linter-action/commit/1b0049fe89405bfe52860b1b8ad3740f038bba6c\"\u003e\u003ccode\u003e1b0049f\u003c/code\u003e\u003c/a\u003e\nchore(deps-dev): bump mypy from 2.1.0 to 2.3.0 (\u003ca\nhref\u003d\"https://redirect.github.com/cpp-linter/cpp-linter-action/issues/461\"\u003e#461\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/cpp-linter/cpp-linter-action/commit/fb9c4fd8d01b5f3f31618f740a9b03b75d9be6ea\"\u003e\u003ccode\u003efb9c4fd\u003c/code\u003e\u003c/a\u003e\nchore(deps-dev): bump ruff from 0.15.20 to 0.15.22 (\u003ca\nhref\u003d\"https://redirect.github.com/cpp-linter/cpp-linter-action/issues/462\"\u003e#462\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/cpp-linter/cpp-linter-action/commit/ac25f1f27d5aa6024fd684b72f2c6214139c2fe0\"\u003e\u003ccode\u003eac25f1f\u003c/code\u003e\u003c/a\u003e\nchore: Add Bloomberg/Qualcomm logo and link to README (\u003ca\nhref\u003d\"https://redirect.github.com/cpp-linter/cpp-linter-action/issues/459\"\u003e#459\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca\nhref\u003d\"https://github.com/cpp-linter/cpp-linter-action/compare/8e85cd02c8c3fe3ae527c94b5683fe2366b144ed...cab1143a2c149bc41e85b070a9de81716974c18f\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility\nscore](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name\u003dcpp-linter/cpp-linter-action\u0026package-manager\u003dgithub_actions\u0026previous-version\u003d2.20.0\u0026new-version\u003d2.21.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don\u0027t\nalter it yourself. You can also trigger a rebase manually by commenting\n`@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits\nthat have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all\nof the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this\ngroup update PR and stop Dependabot creating any more for the specific\ndependency\u0027s major version (unless you unignore this specific\ndependency\u0027s major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this\ngroup update PR and stop Dependabot creating any more for the specific\ndependency\u0027s minor version (unless you unignore this specific\ndependency\u0027s minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR\nand stop Dependabot creating any more for the specific dependency\n(unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore\nconditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will\nremove the ignore condition of the specified dependency and ignore\nconditions\n\n\n\u003c/details\u003e\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "5fe10514d00d94be7d072554d7bda79b7b17d020",
      "tree": "3babf080ea8c26b35bd9f56288db2291055a7d5d",
      "parents": [
        "4aaf9486f08b625c0106dbca5ec9c9aa4bf02b0e"
      ],
      "author": {
        "name": "Tobias Fuchs",
        "email": "9053039+devtbi@users.noreply.github.com",
        "time": "Thu Aug 20 10:46:34 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Aug 20 10:46:34 2026 +0200"
      },
      "message": "[Runtime] Refactor sysfs testdata capture (#24823)\n\nRemoves the sysfs capture archive in favor of plain text files and adds\nmore testdata.\n\n- Refactored capture_sysfs to produce a single text file which can be\nexpanded into sysfs layout\n- Removed the pixel archive -\u003e arm64_pixel6_tensor.sysfs.txt\n- Added more captures relating to #24761\n\n\nCo-Authored-By: Claude\n\nSigned-off-by: Tobias Fuchs \u003cfuchs@roofline.ai\u003e"
    },
    {
      "commit": "4aaf9486f08b625c0106dbca5ec9c9aa4bf02b0e",
      "tree": "4bdc8e7b13541128bc33af780f4ee83b6bb6bf92",
      "parents": [
        "02f1e73db033f47a81e0f6c8b545ef0c7c127a18"
      ],
      "author": {
        "name": "Ege Beysel",
        "email": "beysel@roofline.ai",
        "time": "Wed Aug 19 16:43:53 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Aug 19 14:43:53 2026 +0000"
      },
      "message": "[LLVMCPU] Make cpu_data feature field a compile-time constant (#24811)\n\nThe processor_data passed to a ukernel call is built with the CPU\nfeature bitmask set to a compile-time constant taken from the executable\ntarget\u0027s cpu_features. The remaining fields of environment\u0027s cpu_data\n(currently unused) are copied from the runtime processor data.\n\nA constant feature field lets each ukernel\u0027s feature check fold at\ncompile time, so the matching tile is selected and inlined and the\noff-target tile variants are DCE\u0027d before codegen.\n\nAssisted-by: Claude Code\n\n---------\n\nSigned-off-by: Ege Beysel \u003cbeyselege@gmail.com\u003e"
    },
    {
      "commit": "02f1e73db033f47a81e0f6c8b545ef0c7c127a18",
      "tree": "9dfc7f88244c53f348a579f8137828716fb7be86",
      "parents": [
        "cbfefdbf92f655d04f49b8343fef90306d05dd4d"
      ],
      "author": {
        "name": "Pooja Hemashekar",
        "email": "hemashekar@roofline.ai",
        "time": "Wed Aug 19 08:22:46 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Aug 19 08:22:46 2026 +0200"
      },
      "message": "Integrate LLVM to llvm/llvm-project@d37fa5a838db (#24825)\n\nBumps the llvm-project submodule from llvm/llvm-project@6ea395e4fe4d to\nllvm/llvm-project@d37fa5a838db. Clean fast-forward, no carry-over\nreverts.\n\nAdaptations needed:\n- llvm/llvm-project@5835482e92cc moved the bufferization dialect\u0027s\n`BufferizableOpInterface` implementations out of the op definitions into\nexternal models that require explicit registration. Since IREE maintains\nits own dialect registry, update its codegen bufferization registration\naccordingly.\n- llvm/llvm-project@bcbe2e2dbc6c added function-signature validation to\nthe TOSA validation pass, enabled by default. IREE supports dynamic\ndimensions in function signatures, but the new checks reject them.\nDisable this validation in IREE\u0027s TOSA input pipeline, matching\nupstream\u0027s own `tosa-to-linalg` pipeline.\n- Regenerated CAPI export files for the MLIR memory-effects C API\nchanges in llvm/llvm-project@d04e49d9abec.\n\nAssisted-by: Claude Code\n\nSigned-off-by: Pooja Hemashekar \u003chemashekar@roofline.ai\u003e"
    },
    {
      "commit": "cbfefdbf92f655d04f49b8343fef90306d05dd4d",
      "tree": "b1c9c7513c76d6a0923234f697e56cf1af14382f",
      "parents": [
        "9983d03e4f1a097414addd99cae964fb542d4ba5"
      ],
      "author": {
        "name": "Ege Beysel",
        "email": "beysel@roofline.ai",
        "time": "Wed Aug 19 07:05:08 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Aug 19 07:05:08 2026 +0200"
      },
      "message": "[LLVMCPU] set inner-tile alignment hints on scalable pack ops (#24807)\n\nDuring tile size selection, global tile sizes and mappings to each\noperation are available. Here, each scalable `linalg.pack` inner tile is\ncompared against the loop tile size chosen for that dimension and\ncorresponding inner tile alignment hints are set. This is done before\nthe loop tile sizes for the pack op are translated into the packed outer\ndomain.\n\nOn the other hand, a `linalg.pack` whose producer is a `linalg.unpack`\nis pruned by MultiLoweringConfigGenerator and never receives a lowering\nconfig, so it is handled separately by reading the producer unpack\u0027s\nper-level tile sizes and comparing them against the pack\u0027s scalable\ninner tiles.\n\nAssisted-by: Claude Code\n\n---\n\n\u003csub\u003eStack created with \u003ca\nhref\u003d\"https://github.com/github/gh-stack\"\u003eGitHub Stacks CLI\u003c/a\u003e • \u003ca\nhref\u003d\"https://gh.io/stacks-feedback\"\u003eGive Feedback 💬\u003c/a\u003e\u003c/sub\u003e\n\n---------\n\nSigned-off-by: Ege Beysel \u003cbeyselege@gmail.com\u003e"
    },
    {
      "commit": "9983d03e4f1a097414addd99cae964fb542d4ba5",
      "tree": "e3e6906414113287d35dfe67289531e8d091960b",
      "parents": [
        "b1b5ffa4e66dca55ea35b81555bdd5e34c342866"
      ],
      "author": {
        "name": "ziereis",
        "email": "44057120+ziereis@users.noreply.github.com",
        "time": "Tue Aug 18 12:46:18 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 18 12:46:18 2026 +0200"
      },
      "message": "[local-task] Clamp file read/write lengths to the platform transfer limit (#24816)\n\ncurrently loading parameter files with \"file\" mode fails with:\n\n```\nIndexError: Error creating vm context with modules: external/+_repo_rules4+iree/runtime/src/iree/hal/drivers/local_task/task_queue.c:2714: OUT_OF_RANGE; short read: requested 13282859520 bytes, got 397957632; while invoking native function hal.fence.await; while calling variadic import;\n```\n\nThe io_uring and IOCP backends narrowed the span length to their native\ntransfer count (sqe-\u003elen is 32 bits, ReadFile/WriteFile take a DWORD).\nSpans over 4GB transferred the wrong amount, and a span that is an exact\nmultiple of 4GB wrapped to zero: the operation completed successfully\nhaving moved no bytes, which the caller cannot distinguish from EOF.\n\nClamp instead. Short transfers are part of the file read/write contract,\nso callers resubmit for the remainder. The ceiling is INT_MAX rounded\ndown to a page, matching the kernel\u0027s MAX_RW_COUNT.\n\nAdds a CTS test covering the exact-4GB case, using a sparse reservation\nso the oversized span costs address space rather than committed memory.\n\nCo-Authored-By: Claude Opus 5 (1M context) \u003cnoreply@anthropic.com\u003e\n\nSigned-off-by: Thomas Ziereis \u003cziereis@roofline.ai\u003e\nCo-authored-by: Claude Opus 5 \u003cnoreply@anthropic.com\u003e"
    },
    {
      "commit": "b1b5ffa4e66dca55ea35b81555bdd5e34c342866",
      "tree": "67ced51b96825eb1761823e7aa12909aac0758ed",
      "parents": [
        "1e43d5458e3342e7644bc3b9b4ef61c38a17da7a"
      ],
      "author": {
        "name": "Stefan Schuermans",
        "email": "schuermans@roofline.ai",
        "time": "Tue Aug 18 11:18:50 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 18 11:18:50 2026 +0200"
      },
      "message": "[iree-benchmark-module] transfer outputs to host in case of enable_output_processing (#24821)\n\nThe enable_output_processing feature added to iree-benchmark_module in\ncommit a70389bb8b [iree-benchmark-module] support processing outputs\nafter benchmarking (#24789) did not call\niree_tooling_transfer_variants() to make sure the output buffers are\nhost accessible. So depending on the device used for benchmarking, the\noutputs could be accessed on the host to dump those or to check those.\nThis PR fixes this by calling iree_tooling_transfer_variants() in case\noutput processing is enabled. This is the same handling as in\niree-run-module.\n\nSigned-off-by: Stefan Schuermans \u003cschuermans@roofline.ai\u003e"
    },
    {
      "commit": "1e43d5458e3342e7644bc3b9b4ef61c38a17da7a",
      "tree": "9bff7f6a05516dc2ec18e71b7a430315a4397ecd",
      "parents": [
        "8d489e22066e5bc3770151f87a2b09c79fba739c"
      ],
      "author": {
        "name": "Shogo Yamazaki",
        "email": "f9ifphmiz7i8akhowc8l5t1x9qp0lfu4@mocknen.net",
        "time": "Tue Aug 18 06:18:24 2026 +0900"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 17 23:18:24 2026 +0200"
      },
      "message": "Fix Python HAL device creation params only last one used (#24812)\n\nWhile using the Python bindings for the IREE runtime, I noticed that\nonly the last key-value pair in the dictionary passed as the `params`\nargument to HalDriver\u0027s `create_device` method is actually consumed.\n\nIn the code below, pointers created using `c_str()` from the elements of\n`param_strings` are stored in `passed_params`, but the issue is that if\n`param_strings` is reallocated, those pointers become invalid.\n\n\nhttps://github.com/iree-org/iree/blob/3c2a79f36e8b3333ffebb55c4afef1798581ccb5/runtime/bindings/python/hal.cc#L1133-L1145\n\nIn this PR, prevent reallocation by reserving the necessary space for\n`param_strings` in advance.\n\nSigned-off-by: Shogo Yamazaki \u003cpgp@mocknen.net\u003e"
    },
    {
      "commit": "8d489e22066e5bc3770151f87a2b09c79fba739c",
      "tree": "dbe14ff302aba675b1548f50ca29296edac34b76",
      "parents": [
        "a82330a3343d84211e71d2596725c8185227b29f"
      ],
      "author": {
        "name": "Artem Gindinson",
        "email": "gindinson@roofline.ai",
        "time": "Mon Aug 17 23:17:05 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 17 23:17:05 2026 +0200"
      },
      "message": "[Docs][GitHub] Improve the automated PR greeting message (#24819)\n\nRestructure the message so that the required action is on top. Clarify\nour expectations as per the AI Tool Use policy further, to reduce\nmisunderstandings."
    },
    {
      "commit": "a82330a3343d84211e71d2596725c8185227b29f",
      "tree": "7736c6769c1943cd60b756e53454c199bc7dfd7a",
      "parents": [
        "3c2a79f36e8b3333ffebb55c4afef1798581ccb5"
      ],
      "author": {
        "name": "Alex Denisov",
        "email": "alex@lowlevelbits.org",
        "time": "Mon Aug 17 12:08:54 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 17 10:08:54 2026 +0000"
      },
      "message": "[DispatchCreation] Allow hoisting of set_encoding through generics with a transposed output map (#24800)\n\nThis patch enables more opportunities to hoist `set_encoding` through\n`linalg.generic` with non-identity output maps, e.g. cases when dequant\nand transpose are fused together.\n\nAssisted-by: Claude Code\nSigned-off-by: Alex Denisov \u003cdenisov@roofline.ai\u003e"
    },
    {
      "commit": "3c2a79f36e8b3333ffebb55c4afef1798581ccb5",
      "tree": "f98098c531ec646a7a67f18ae873b0c6d7e91562",
      "parents": [
        "95a00359cc0d7af31bac1dc05d675a5c35771103"
      ],
      "author": {
        "name": "ziereis",
        "email": "44057120+ziereis@users.noreply.github.com",
        "time": "Fri Aug 14 20:47:14 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Aug 14 20:47:14 2026 +0200"
      },
      "message": "[DispatchCreation] Fix GatherFusionPattern on a scalar producer operand (#24803)\n\nGatherFusionPattern builds a tensor.extract for every operand of the\nproducer generic, so a scalar operand reached cast\u003cTensorType\u003e and\nasserted. A scalar is invariant over the iteration space, so there is no\nindex to permute and nothing to extract: the fused body reads the value\nitself.\n\nThe producer has to be a bit extend or a transpose to qualify, and that\nclassification deliberately ignores non-tensor inputs, so a qualifying\nproducer can have them. A per-tensor dequantize widening i8 to f32 with\nits scale passed as an f32 is one.\n\nCo-Authored-By: Claude Opus 5 (1M context) \u003cnoreply@anthropic.com\u003e\n\nSigned-off-by: default \u003cziereis@roofline.ai\u003e\nCo-authored-by: Claude Opus 5 (1M context) \u003cnoreply@anthropic.com\u003e"
    },
    {
      "commit": "95a00359cc0d7af31bac1dc05d675a5c35771103",
      "tree": "f1891076a85235c0a0103aa79c24a23b20c976af",
      "parents": [
        "cf9453f236135f92b6d4bcc72e0058ad06b80487"
      ],
      "author": {
        "name": "Artem Gindinson",
        "email": "gindinson@roofline.ai",
        "time": "Fri Aug 14 13:59:54 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Aug 14 13:59:54 2026 +0200"
      },
      "message": "[Codegen] Support multi-output consumers with permuted indexing maps (#24768)\n\nExtend lowering of fused \u0026 tiled consumer ops from the basic case\n(strictly identical indexing over the output operands). We now\ngeneralize the logic for input indexing to support different output maps\nthat are simple permutations.\n\nThis allows to support some fusion cases where a simple transposition\nfrom one of the consumer\u0027s connections get fused into the elementwise\ngeneric, and then the consumer gets fused \u0026 tiled together with the\nmatmul. Whether we want such consumer fusion is a separate matter\nsubject to performance investigations, and in my reproducer there\u0027d also\nbe an opportunity to fold redundant `tranpose(transpose(x))` instances,\navoiding the multi-output fusion altogether. For better stability, this\nextension of the codegen is preferred as the first step.\n\nSigned-off-by: Artem Gindinson \u003cgindinson@roofline.ai\u003e\nAssisted by: Codex\n\n---------\n\nSigned-off-by: Artem Gindinson \u003cgindinson@roofline.ai\u003e"
    },
    {
      "commit": "cf9453f236135f92b6d4bcc72e0058ad06b80487",
      "tree": "61be996a9896e0d3292d1d995eddd1ff257d692d",
      "parents": [
        "b9a8b77dc5c115f871eba1f61b514b6518a08d8b"
      ],
      "author": {
        "name": "Ege Beysel",
        "email": "beysel@roofline.ai",
        "time": "Fri Aug 14 12:09:26 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Aug 14 12:09:26 2026 +0200"
      },
      "message": "[LLVMCPU] add inner-tile-alignment hint attribute (#24806)\n\nIntroduce the representation for per-tiling-level inner-tile alignment\nhints\nas introduced in llvm/llvm-project#204007:\n\n\t#iree_cpu.inner_tile_alignments\u003clevel \u003d [Unknown|Multiple|Equal, ...]\u003e\n\nThese will only be set on pack and unpack operations with scalable inner\ntile sizes, and will not be for other operations that do not need them.\n\nAssisted-by: Claude Code\n\n---\n\n\u003csub\u003eStack created with \u003ca\nhref\u003d\"https://github.com/github/gh-stack\"\u003eGitHub Stacks CLI\u003c/a\u003e • \u003ca\nhref\u003d\"https://gh.io/stacks-feedback\"\u003eGive Feedback 💬\u003c/a\u003e\u003c/sub\u003e\n\nSigned-off-by: Ege Beysel \u003cbeyselege@gmail.com\u003e"
    },
    {
      "commit": "b9a8b77dc5c115f871eba1f61b514b6518a08d8b",
      "tree": "7128f839cbec2a9d8560270953172137476f7e07",
      "parents": [
        "bff05a9dba76027d6145006d3f987f4e1da038cc"
      ],
      "author": {
        "name": "Ege Beysel",
        "email": "beysel@roofline.ai",
        "time": "Thu Aug 13 19:40:21 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Aug 13 19:40:21 2026 +0200"
      },
      "message": "[Codegen][LLVMCPU] Split loadProcessorData: hoist only the alloca (#24786)\n\n35b2070 (#24749) fixed unbounded stack growth by moving the whole\nloadProcessorData CPU-feature patch buffer construction to the function\nentry block. But that also hoisted the feature-bit or/store away from\nthe ukernel call, and once the ukernel inlines, LLVM can no longer\nstore-to-load forward the forced feature bits into the ukernel\u0027s runtime\nfeature check across the enclosing loop, so the mmt4d/pack tile-func\nselect never devirtualizes and the microkernel is left out-of-line.\n\nSplit the two concerns: reserve only the alloca (the stack slot, the\nactual cause of #24744) in the entry block, but keep the feature-bit\npatch at the call site. The stores re-run per iteration but allocate no\nstack, so the stack stays bounded while the forced bits remain adjacent\nto the (inlined) load and fold as before, restoring devirtualization.\n\nAssisted-by: Claude-Code\n\n---------\n\nSigned-off-by: Ege Beysel \u003cbeyselege@gmail.com\u003e"
    },
    {
      "commit": "bff05a9dba76027d6145006d3f987f4e1da038cc",
      "tree": "9102dca37370b168b3cf8a0cbad3d050a72f01c7",
      "parents": [
        "5e0087566a289347110a093e933c4557ff87b0ab"
      ],
      "author": {
        "name": "Jelle Schühmacher",
        "email": "schuehmacher@roofline.ai",
        "time": "Thu Aug 13 13:23:13 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Aug 13 13:23:13 2026 +0200"
      },
      "message": "Instate initial technical steering committee (#24790)\n\nAfter the recent changes in the IREE community new contributors took\nover the steering of the project.\n\nThis change instantiates the \"Technical Steering Committee\" as described\nin LF AI \u0026 Data Foundation [IREE\ncharter](https://github.com/lfai/foundation/blob/main/technical%20project%20charters/IREE%20Technical%20Charter%20Final%205-14-2024.docx.pdf)\nto make it transparent for users, contributors and maintainers on how\nthe project is run, whom to ask for advice and who can help moderate\nissues.\n\nIf anyone thinks this change or list should be changed please reach out.\nThe PR will be kept open for a few days and will get merged if there are\nno blocking issues.\n\n---------\n\nSigned-off-by: Jelle Schuhmacher \u003cschuehmacher@roofline.ai\u003e\nSigned-off-by: Jelle Schühmacher \u003cschuehmacher@roofline.ai\u003e"
    },
    {
      "commit": "5e0087566a289347110a093e933c4557ff87b0ab",
      "tree": "36b7ff01bec90e5d6f893fdfbced32d64195d5a1",
      "parents": [
        "4734258341bd7b287d7cd562d119c0429451a738"
      ],
      "author": {
        "name": "Zohaib",
        "email": "98155885+syedzohaibshah@users.noreply.github.com",
        "time": "Thu Aug 13 13:20:51 2026 +0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Aug 13 10:20:51 2026 +0200"
      },
      "message": "[LIT] Migrate tests lit config to the internal shell (#24810)\n\nPart of #24607, following #24794.\n\nThis moves `tests/lit.cfg.py` to the internal shell and drops the\n`execute_external` / `force_execute_external` workaround. No RUN lines\nneeded changes this time. None of the 27 lit tests under `tests/` use\nsubshells, or anything else the internal shell rejects.\n\nAll 27 pass, same as before the change. To check that they still\nactually run and aren\u0027t just being skipped, I broke a CHECK pattern in\n`e2e/regression/globals.mlir` on purpose, confirmed the test failed,\nthen put it back.\n\nVerified on macOS/arm64 only.\n\nSigned-off-by: Zohaib Shah \u003czohaib.shah.2047@gmail.com\u003e\nCo-authored-by: Zohaib Shah \u003czohaib.shah.2047@gmail.com\u003e"
    },
    {
      "commit": "4734258341bd7b287d7cd562d119c0429451a738",
      "tree": "4cd213b47be917b93c9a5d1dd588d9062d3214ee",
      "parents": [
        "c9058ce882b507ff0b3971c8f168c4ba68316407"
      ],
      "author": {
        "name": "Pan Zhang",
        "email": "98025960+zhangpan2001@users.noreply.github.com",
        "time": "Thu Aug 13 14:18:07 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Aug 13 08:18:07 2026 +0200"
      },
      "message": "[Util] Filter non-returning region terminators (#24795)\n\n`Explorer::walkReturnOps` treated every block terminator in a region\nbranch operation as a return to the parent. For scf.while, this included\nthe after-region yield that branches back to the before region, causing\nloop-carried values to contribute to result affinities.\n\nSkip terminators that do not implement the region branch terminator\ninterface, as well as region branch terminators that cannot branch to\nthe parent operation.\n\nFixes #24787\n\nSigned-off-by: zhangpan \u003c98025960+zhangpan2001@users.noreply.github.com\u003e"
    },
    {
      "commit": "c9058ce882b507ff0b3971c8f168c4ba68316407",
      "tree": "312c336548d70629ca2208b8af9fe17240c46000",
      "parents": [
        "59737240d8d7a5219436a358453ed0b8cffe1073"
      ],
      "author": {
        "name": "Roberto Laudani",
        "email": "laudani@roofline.ai",
        "time": "Wed Aug 12 17:57:11 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Aug 12 17:57:11 2026 +0200"
      },
      "message": "Integrate LLVM to llvm/llvm-project@6ea395e4fe4d (#24805)\n\nClean integrate, no carry-over reverts.\n\nBump to\n[llvm/llvm-project@6ea395e4fe4d](https://github.com/llvm/llvm-project/commit/6ea395e4fe4d)\nfrom `480b2c9eb47f`.\n\nRegenerated CAPI export files: upstream added\n`mlirLLVMDICompileUnitAttrGetWithSourceLanguageDialect`.\n\nSigned-off-by: Roberto Laudani \u003claudani@roofline.ai\u003e"
    },
    {
      "commit": "59737240d8d7a5219436a358453ed0b8cffe1073",
      "tree": "b26011e1c29af4a2107650a1362e998b239d38f2",
      "parents": [
        "8b6328a247ea3f55fddf3966b796d1d3e98dda93"
      ],
      "author": {
        "name": "Kushida",
        "email": "kushidashiro@gmail.com",
        "time": "Wed Aug 12 13:52:14 2026 +0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Aug 12 12:52:14 2026 +0200"
      },
      "message": "Fix arena allocation alignment at the block boundary (#24773)\n\nThis fixes an arena edge case where a request fits in a block before\nalignment, but no longer fits after rounding. Such requests now use the\noversized allocation path, and oversized allocations keep their returned\npointers naturally aligned.\n\nAdded tests for both boundary cases.\n\nAssisted by: Codex Sol\n\n---------\n\nSigned-off-by: ShiroKSH \u003ckushidashiro@gmail.com\u003e"
    },
    {
      "commit": "8b6328a247ea3f55fddf3966b796d1d3e98dda93",
      "tree": "2b83d7b063ea61664c8bf627350e9e28efae94d5",
      "parents": [
        "c1ecdbbb81bfaa05376257367877553ae8aca6e2"
      ],
      "author": {
        "name": "Zmicier Prybysh",
        "email": "zprybysh@baylibre.com",
        "time": "Tue Aug 11 18:23:04 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 11 16:23:04 2026 +0000"
      },
      "message": "[LLVMCPU] Use native bf16 converts when the target supports them (#24759)\n\n## Summary\n\nThe bf16 arithmetic is getting promoted to f32 in codegen, which is\ncorrect for every CPU (there\u0027s no CPU with native bf16 arithmetic yet,\nRISC-V `Zvfbfmin` provides conversions only). The conversions around\nthat promotion, however, are always expanded in software. That prevents\ntargets that do have bf16 \u003c-\u003e f32 conversion instructions from selecting\nthem, costing ~6 integer ops per narrow and 2 per widen on every bf16\nload and store.\n\nIntroduce another LLVMCPULoweringPipeline option: it\u0027s set to true on\nRISC-V targets with both `Zfbfmin` and `Zvfbfmin` extensions. Both are\nrequired, since with only the vector extension scalar bf16 residue\nlowers to `__truncsfbf2` libcalls. bf16 loads/stores and the promotion\u0027s\nextf/truncf then select as `vfwcvtbf16/vfncvtbf16` (vector) and\n`fcvt.s.bf16/fcvt.bf16.s` (scalar). This option is passed to\n`ConvertUnsupportedFloatToIntBuffers` and `arith-expand` passes.\n\n## Testing\n\nMeasured on a SpaceMiT K3 (X100 cores) (yay, i have access to one now).\n\nTested on kernels: 1M-element bf16 kernels, native vs current expansion,\noutputs bit-identical in every case:\n\n| kernel | native | expanded | speedup |\n| :-- | --: | --: | --: |\n| elementwise add | 0.800 ms | 1.45 ms | 1.81× |\n| f32 to bf16 cast | 0.650 ms | 1.01 ms | 1.55× |\n| sigmoid-weighted elementwise chain | 7.83 ms | 8.31 ms | 1.06× |\n| bf16 to f32 cast | 0.494 ms | 0.538 ms | 1.09× |\n\nAlso tested on whole models: a bf16 `whisper-tiny-en` encoder-decoder\nruns in **3.580 s vs 3.936 s (1.10×)** with bit-identical output against\nPyTorch reference. A small CLIP-style bf16 model compiles to a 7.5%\nsmaller vmfb.\n\n---------\n\nSigned-off-by: Zmicier Prybysh \u003czprybysh@baylibre.com\u003e"
    },
    {
      "commit": "c1ecdbbb81bfaa05376257367877553ae8aca6e2",
      "tree": "07518906b6f7745957cd8cf98ad969f6d65d9220",
      "parents": [
        "bb8e0989eceb600328cdadac54c0be2fab69be79"
      ],
      "author": {
        "name": "Irfan Hussain",
        "email": "115392692+Irfanuet191@users.noreply.github.com",
        "time": "Tue Aug 11 20:19:22 2026 +0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 11 17:19:22 2026 +0200"
      },
      "message": "Fix iree_status_format capacity checks for partial buffer fills (#24797)\n\nThe message payload formatter wrote its NUL terminator one byte past the\nend of the buffer when truncating and reported the truncated length\ninstead of the required length. The stack trace helpers underflowed the\nremaining capacity after a truncated write, causing further\nout-of-bounds writes. Payload formatters now follow snprintf-style\nsemantics: the full required length is always reported and writes never\nexceed the given capacity. Adds StatusFormatBoundary tests covering\nevery buffer capacity with guard bytes.\n\nFixes #16874\n\nSigned-off-by: Irfanuet191 \u003cirfanhussainuet191@gmail.com\u003e"
    },
    {
      "commit": "bb8e0989eceb600328cdadac54c0be2fab69be79",
      "tree": "25f608d5f24e2a78743f8494c3c07b4afcec5c84",
      "parents": [
        "60903f1e03b3c70edaab418e60ab793f8e07173d"
      ],
      "author": {
        "name": "Pan Zhang",
        "email": "98025960+zhangpan2001@users.noreply.github.com",
        "time": "Tue Aug 11 18:01:17 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 11 10:01:17 2026 +0000"
      },
      "message": "[Runtime][Python] Fix multiple f64 return values (#24796)\n\nAdvance the packed result buffer after writing each f64 result. Without\nthis, consecutive f64 results overwrite the same slot and subsequent\nresult slots are never written.\n\nThe existing `PyModuleInterfaceTest.testPrimitiveResults` test covers\nmultiple f64 return values and now passes.\n\nFixes #22386\n\nSigned-off-by: zhangpan \u003c98025960+zhangpan2001@users.noreply.github.com\u003e"
    },
    {
      "commit": "60903f1e03b3c70edaab418e60ab793f8e07173d",
      "tree": "1cc81d71d41cff729bf6a5257c0da2616de42956",
      "parents": [
        "3699452d60c6dfe483df4675c7e98299fe790ec4"
      ],
      "author": {
        "name": "Zohaib",
        "email": "98155885+syedzohaibshah@users.noreply.github.com",
        "time": "Mon Aug 10 16:14:56 2026 +0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 10 13:14:56 2026 +0200"
      },
      "message": "[LIT] Migrate runtime lit config to the internal shell (#24794)\n\nPart of #24607.\n\nThis switches `runtime/lit.cfg.py` to the internal shell and removes the\n`execute_external` / `force_execute_external` workaround. It\u0027s the first\nof the seven configs listed in the issue. I\u0027m doing one at a time so the\nfailures stay easy to review.\n\nThe internal shell has no subshells, so the `( ... )` wrappers in\n`flags_test.txt` were read as a command named `(` and the test died with\nexit 127. Two kinds of RUN lines needed fixing:\n\n- **26 lines** wrapped a single command in `( ... )` before piping to\nFileCheck. The subshell did nothing there, so I dropped the parentheses.\n- **3 lines** used `( cmd 2\u003e\u00261 || [[ $? \u003d\u003d 1 ]] )` to tolerate an\nexpected non-zero exit. Those now use `not`, which is the usual spelling\nfor expected-failure RUN lines and also asserts the command really does\nfail. `not` is declared in the suite\u0027s tools, the same way\n`tools/test/BUILD.bazel` does it.\n\nSame commands and same FileCheck prefixes, so no coverage is lost.\n\n## Testing\n\n\nctest -R\n\"flags_test.txt.test|modules/check/test/(failure|success|unavailable).mlir.test\n\nAll 4 tests pass on the internal shell, matching the baseline before the\nchange. The three modules/check tests are plain pipelines and needed no\nedits.\n\nOne thing I checked: rewriting those lines could have made them stop\nrunning while still going green. I broke an expected UNKNOWN-FLAG\npattern on purpose, confirmed the test failed, then put it back.\n\nVerified on macOS/arm64 only - relying on CI for Linux and Windows.\n\nAssisted by: Claude Code\n\nSigned-off-by: Zohaib Shah \u003czohaib.shah.2047@gmail.com\u003e\nCo-authored-by: Zohaib Shah \u003czohaib.shah.2047@gmail.com\u003e"
    },
    {
      "commit": "3699452d60c6dfe483df4675c7e98299fe790ec4",
      "tree": "9932c2047245bf3613057df48e117945e5f6be83",
      "parents": [
        "a70389bb8b12da26a07fc46bd63e9ccd3028862a"
      ],
      "author": {
        "name": "WMC",
        "email": "tnwilly@gmail.com",
        "time": "Sat Aug 08 00:59:13 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Aug 07 18:59:13 2026 +0200"
      },
      "message": "[LLVMGPU] Add NVVM paged attention pipeline test (#24770)\n\n## Summary\n\nAdds NVVM compile-time pipeline coverage for paged decode attention.\n\nPart of #24766.\n\nThe test follows the existing ROCm paged-attention coverage in\n`pipeline_vector_distribute_reduction_gfx942.mlir`, adapted for CUDA\u0027s\n32-thread subgroups.\n\n- Adds an NVVM `VectorDistribute` testcase covering dynamic page tables,\npaged KV gathers, causal masking, and `online_attention` lowering.\n- Uses an explicit CUDA layout with 128-thread workgroups and 32-thread\nsubgroups.\n\n## Testing\n```sh\n/workspace/iree-build/tools/iree-opt --split-input-file \\\n  --iree-codegen-llvmgpu-nvvm-lowering-pipeline\u003d\"include-llvm-lowering\u003dfalse\" \\\n  compiler/src/iree/compiler/Codegen/LLVMGPU/test/NVVM/pipeline_vector_distribute_paged_attention.mlir \\\n  | /workspace/iree-build/llvm-project/bin/FileCheck \\\n      compiler/src/iree/compiler/Codegen/LLVMGPU/test/NVVM/pipeline_vector_distribute_paged_attention.mlir\n\nSigned-off-by: weimin023 \u003ctnwilly@gmail.com\u003e"
    },
    {
      "commit": "a70389bb8b12da26a07fc46bd63e9ccd3028862a",
      "tree": "5def32784199e50bc7f2bf6f936f65a6bd5f96f5",
      "parents": [
        "610a82fad754485024792545972c13fced107341"
      ],
      "author": {
        "name": "Stefan Schuermans",
        "email": "schuermans@roofline.ai",
        "time": "Fri Aug 07 18:44:01 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Aug 07 16:44:01 2026 +0000"
      },
      "message": "[iree-benchmark-module] support processing outputs after benchmarking (#24789)\n\nAdd --enable_output_processing option to iree-benchmark-module to make\nit process the outputs of the last benchmark iteration executed. For\nexample, this processing can be writing the outputs to disk. The output\nprocessing is the same as done by iree-run-module.\n\nIn order to achieve this:\n- Move output processing from run_module.c into a new process_results.c.\n  - Slightly change the benchmark loop in iree-benchmark-module-main.cc:\n- Use a output VM list passed by the caller and only create a\nlocal/temporary one if none is passed.\n- Move clearing of the output list from the end of the benchmark loop\nbody to the beginning of the benchmark loop body, so that the results of\nthe last benchmark iteartion are available at the end of the loop.\n- Clear the results/output list after the benchmark loop if a local list\nhas been used. Otherwise, keep the results in the output list passed by\nthe caller.\n\nAlso change the main function of iree-benchmark-module:\n - Allocate an output list if output processing is enabled.\n- Pass the output list (if allocated) to benchmarking loop (for now only\nfor synachonous execution of modules).\n - Process outputs in the output list at the end (if list is allocated).\n\n---------\n\nSigned-off-by: Stefan Schuermans \u003cschuermans@roofline.ai\u003e"
    },
    {
      "commit": "610a82fad754485024792545972c13fced107341",
      "tree": "6cd6dcc5ad05f1033e87d445012e6abd19b88020",
      "parents": [
        "c6c633dce9a026e04dfa2ea764ceb3ea36b9a582"
      ],
      "author": {
        "name": "Murari G",
        "email": "83585005+Murari007@users.noreply.github.com",
        "time": "Fri Aug 07 21:06:49 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Aug 07 15:36:49 2026 +0000"
      },
      "message": "[PreProcessing] Support quantized convolutions in channels-last conversion (#24780)\n\nAdded Support for quantized convolutions in the\nconvert-conv-to-channel-last conversion pass \u0026 support for conversion of\nconv Filter to channel-last (HWCF - FHWC)\n\nAdded Lit Test Cases for the quatized convolution operations and\nmodified test case IR to support HWCF pattern.\n\n\nFixes #24774\n\nAssisted-by : Claude Code\n\nSigned-off-by: Murari G \u003cmurari.g@sandlogic.com\u003e"
    },
    {
      "commit": "c6c633dce9a026e04dfa2ea764ceb3ea36b9a582",
      "tree": "f32c240033e323abfa41a222dfd476d875f72485",
      "parents": [
        "2dd1514113f21770b0a0d71d42e4159e36f2216e"
      ],
      "author": {
        "name": "Ege Beysel",
        "email": "beysel@roofline.ai",
        "time": "Fri Aug 07 16:34:52 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Aug 07 16:34:52 2026 +0200"
      },
      "message": "Integrate LLVM to llvm/llvm-project@480b2c9eb47f (#24793)\n\nBumpy `llvm-project` from `8c5193b41f2f` to `480b2c9eb47f`, no\ncarried-over or new reverts.\n\nOne adaptation was required:\n\nllvm/llvm-project@9e43e04108dd stops arith-expand from expanding\n`arith.maximumf/minimumf/maxnumf/minnumf` unless the new\n`include-min-max-f` option is set. For VMVX, `ArithToVM` has conversion\npatterns for `arith.maximumf/minimumf` but none for\n`arith.maxnumf/minnumf`, so the `arith.maxnumf` emitted by the\n`linalg.softmax` decomposition no longer legalized and `VMVX -\u003e VM`\nconversion failed in `tests/e2e/linalg/softmax.mlir`.\n\nSetting `includeMinMaxF` on the VMVX arith-expand invocation restores\nthe previous behavior. `include-min-max-i` is left off because the VM\ndialect has native integer min/max ops for both i32 and i64.\n\nLLVMCPU has direct lowerings to the `llvm.intr.maximum/maxnum`.\n\nAssisted-by: Claude Code and reviewed by me.\n\n---------\n\nSigned-off-by: Ege Beysel \u003cbeysel@roofline.ai\u003e"
    },
    {
      "commit": "2dd1514113f21770b0a0d71d42e4159e36f2216e",
      "tree": "2e9cb97404368847a8e5a5167b562b8901ea118d",
      "parents": [
        "7dd0031131d52cf57165e4cedd040b056e104570"
      ],
      "author": {
        "name": "Jelle Schühmacher",
        "email": "schuehmacher@roofline.ai",
        "time": "Fri Aug 07 16:14:30 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Aug 07 16:14:30 2026 +0200"
      },
      "message": "[CI] Sunset MacOS x64 runners (#24792)\n\nSigned-off-by: Jelle Schuhmacher \u003cschuehmacher@roofline.ai\u003e"
    },
    {
      "commit": "7dd0031131d52cf57165e4cedd040b056e104570",
      "tree": "e896963e0e0b83b707c4648c65b06869b4ed8f5b",
      "parents": [
        "4ecdc3dde79b30a0045286c361dff85953405894"
      ],
      "author": {
        "name": "ziereis",
        "email": "44057120+ziereis@users.noreply.github.com",
        "time": "Thu Aug 06 23:02:13 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Aug 06 23:02:13 2026 +0200"
      },
      "message": "add stablehlo pass to convert IR with quantized types to standard types (#24785)\n\nOn current main the test i added here fails with:\n\n```\ninput_qdq.mlir:4:24: error: failed to legalize operation \u0027stablehlo.uniform_quantize\u0027 that was explicitly marked illegal: %0 \u003d \"stablehlo.uniform_quantize\"(%arg0) : (tensor\u003c1x256xf32\u003e) -\u003e tensor\u003c1x256x!quant.uniform\u003ci8:f32, 1.000000e-02\u003e\u003e\n    %quantized_input \u003d stablehlo.uniform_quantize %input : (tensor\u003c1x256xf32\u003e) -\u003e tensor\u003c1x256x!quant.uniform\u003ci8:f32, 0.01:0\u003e\u003e\n                       ^\ninput_qdq.mlir:4:24: note: see current operation: %0 \u003d \"stablehlo.uniform_quantize\"(%arg0) : (tensor\u003c1x256xf32\u003e) -\u003e tensor\u003c1x256x!quant.uniform\u003ci8:f32, 1.000000e-02\u003e\u003e\n```\n\nThis PR adds a shlo pass to convert IR with quantized types to integer\nmath + standard types.\n\nSigned-off-by: default \u003cziereis@roofline.ai\u003e"
    },
    {
      "commit": "4ecdc3dde79b30a0045286c361dff85953405894",
      "tree": "e305e081a4277166310f4e78fdc404f737d8ad51",
      "parents": [
        "175f034ac0c9a543ace1c029c78b25fd82e93703"
      ],
      "author": {
        "name": "Stefan Schuermans",
        "email": "schuermans@roofline.ai",
        "time": "Thu Aug 06 12:30:10 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Aug 06 10:30:10 2026 +0000"
      },
      "message": "[LLVM integrate] drop carried LLVM commit reverts (#24779)\n\nAdapt to LLVM bazel changes for config.h in musl, required by:\nb8cc84591b6a [bazel] Correct config.h definitions for musl (#207295)\n    \nRemove per-function target attributes to re-eanble inlineing under\nalwaysinline. Required by the combination of:\n7bdca287b102 [InlineCost] Never inline functions with incompatible\ntarget features (#205113)\n37b8e765ce48 [AlwaysInliner] Do not inline on attribute mismatches\n\nThe changes have been assisted by Claude Code, but were manually checked\nand cleaned.\n\n---------\n\nSigned-off-by: Stefan Schuermans \u003cschuermans@roofline.ai\u003e\nSigned-off-by: Ege Beysel \u003cbeyselege@gmail.com\u003e\nCo-authored-by: Federico Bruzzone \u003cfederico.bruzzone.i@gmail.com\u003e\nCo-authored-by: Ege Beysel \u003cbeyselege@gmail.com\u003e"
    },
    {
      "commit": "175f034ac0c9a543ace1c029c78b25fd82e93703",
      "tree": "a855a25958d1ea2553b07cc6ad26a6b67af9d362",
      "parents": [
        "13d9ad9501d878ff61ca1a0f753419f6d78ce85c"
      ],
      "author": {
        "name": "pstarkcdpr",
        "email": "paul.stark@cdprojektred.com",
        "time": "Wed Aug 05 23:14:37 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Aug 06 06:14:37 2026 +0000"
      },
      "message": "Fix out-of-bounds crash in Stream affinity analysis for scf.while (#24723)\n\nSee issue https://github.com/iree-org/iree/issues/24722\n\nThe issue contains a deeper explanation of the issue and a repro case\n(which is the same as the lit test here).\n\nWhen an `scf.while` carries more values through its \"before\" region than\nthe op has results (i.e. some loop-carried values are not forwarded to a\nresult via `scf.condition`), the affinity analysis mapped an `scf.yield`\noperand number directly onto `whileOp-\u003egetResult(operandNumber)`. Since\nthe \"after\" region yield has one operand per init operand (`N`) while\nthe op may have fewer results (`M`), this lead to `getResult()` being\nout of bounds.\n\nTwo independent sites made this naive mapping:\n\n- **`Affinity.cpp`**: in the `scf.yield` → `scf.while` branch of\n`ValueConsumerAffinityPVS::updateFromUse`, drop the\n`whileOp-\u003egetResult(operandNumber)` propagation and keep only the\nbefore-region-argument propagation. (Results are already handled by the\n`scf.condition` case.)\n\n- **`Explorer.cpp`**: guard the `ReturnLike` result-mapping fallback in\n`walkTransitiveUses` with\n`!isa\u003cRegionBranchTerminatorOpInterface\u003e(ownerOp)` (region-branch\nterminators like `scf.yield` are already handled correctly above) plus a\n`use.getOperandNumber() \u003c parent-\u003egetNumResults()` bounds check.\n\nAdded regression test `@scf_while_extra_loop_carried`, which exercises\nthe `N \u003e M` shape (two loop-carried values, one result) that previously\nasserted.\n\nNote that Claude made the fix suggestions and, while they look okay to\nme, I\u0027m not at all familiar with this code.\n\n---------\n\nSigned-off-by: Paul Stark \u003cpaul.stark@cdprojektred.com\u003e\nCo-authored-by: Claude Opus 4.8 (1M context) \u003cnoreply@anthropic.com\u003e\nCo-authored-by: Artem Gindinson \u003cgindinson@roofline.ai\u003e"
    },
    {
      "commit": "13d9ad9501d878ff61ca1a0f753419f6d78ce85c",
      "tree": "371afbd53727777455ce680ad9d2daef0393fc8c",
      "parents": [
        "83076f9236ba928aced834b7e0597d8d54b5f8bf"
      ],
      "author": {
        "name": "Pooja Hemashekar",
        "email": "hemashekar@roofline.ai",
        "time": "Wed Aug 05 14:48:09 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Aug 05 14:48:09 2026 +0200"
      },
      "message": "[Codegen] Lower data-tiled conv to conv_nchwc ukernel (#24730)\n\nWhen the convolution ukernel is enabled, routes data-tiled convolution\ndispatches through `Mmt4dTilingExpert` pipeline, where the 9D NCHWc\ngeneric is recognized and lowered to an `iree_uk_conv_nchwc` microkernel\ncall.\n\nAssisted-by: Claude code\n\n---------\n\nSigned-off-by: Pooja Hemashekar \u003chemashekar@roofline.ai\u003e"
    },
    {
      "commit": "83076f9236ba928aced834b7e0597d8d54b5f8bf",
      "tree": "651f5138b158fe4cc1578c2e04f369ce6267e86f",
      "parents": [
        "18c3da6eaab13e4a972d6fcb93bb3f183e490046"
      ],
      "author": {
        "name": "Jelle Schühmacher",
        "email": "schuehmacher@roofline.ai",
        "time": "Wed Aug 05 11:36:06 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Aug 05 11:36:06 2026 +0200"
      },
      "message": "[CI] Decommission mi308/mi325 runners (#24782)\n\nWe no longer have access.\n\n---------\n\nSigned-off-by: Jelle Schühmacher \u003cschuehmacher@roofline.ai\u003e"
    },
    {
      "commit": "18c3da6eaab13e4a972d6fcb93bb3f183e490046",
      "tree": "d0768b8cad0f83aa764349f2324b7c6b0823d2db",
      "parents": [
        "21c6cd2649e6d060c95af90a715eab3a42e83d95"
      ],
      "author": {
        "name": "pstarkcdpr",
        "email": "paul.stark@cdprojektred.com",
        "time": "Fri Jul 31 12:19:40 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 31 21:19:40 2026 +0200"
      },
      "message": "[StableHLO] Legalize composite ops to calls in the input pipeline (#24777)\n\nThe StableHLO input conversion pipeline had no handling for\n`stablehlo.composite`, so any composite reaching the conversion to\nLinalg failed with:\n```\n  error: failed to legalize operation \u0027stablehlo.composite\u0027 that was explicitly marked illegal\n```\n\nJAX emits composites for some CHLO operations, e.g.\n```\n  %0 \u003d stablehlo.composite \"chlo.acos\" %arg0\n      {decomposition \u003d @chlo.acos.impl, version \u003d 1 : i32}\n      : (tensor\u003c8x32xf32\u003e) -\u003e tensor\u003c8x32xf32\u003e\n```\nwhich made such models uncompilable.\n\nRun `stablehlo-legalize-composite-to-call` early in the pipeline, right\nafter deserialization. It replaces each composite with a call to the\nfunction holding its decomposition, which the inliner later in the\npipeline folds away, so the remaining conversions only ever see the\ndecomposed form. The pass is given an explicit empty exception list to\ndocument where composites that should be preserved as a unit can be\nopted out.\n\nSigned-off-by: Paul Stark \u003cpaul.stark@cdprojektred.com\u003e\nCo-authored-by: Claude Opus 5 (1M context) \u003cnoreply@anthropic.com\u003e"
    },
    {
      "commit": "21c6cd2649e6d060c95af90a715eab3a42e83d95",
      "tree": "57ffb736f994108c230ee500cf7b96c4a59b90b1",
      "parents": [
        "100a1d393c13d688d2971a3f8b6114bec69fa345"
      ],
      "author": {
        "name": "pstarkcdpr",
        "email": "paul.stark@cdprojektred.com",
        "time": "Fri Jul 31 12:18:09 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 31 21:18:09 2026 +0200"
      },
      "message": "[Preprocessing] Handle batching dims and dynamic-update-slice scatter ops (#24720)\n\nSee bug report https://github.com/iree-org/iree/issues/24719\n\nJAX-emitted scatters use two forms that IREE\u0027s StableHLO scatter\npreprocessing did not support, causing malformed shape errors during\ninput conversion:\n\n1. Scatter batching dims were only passed through, so the downstream\ncanonicalizers collapsed batching dims together with the real scatter\nloop dim and miscompiled. Added `ScatterBatchingDimsExpander` (benefit\n2). This is ported with just a few style tweaks directly from upstream\nStableHLO\u0027s `ScatterWithBatchingDimsExpander`. I verified that the\nStableHLO pattern wasn\u0027t accessible to be called directly. The only way\nto access it is to run the whole set of compatibility expanders which\nseemed brittle since new expanders can be added over time, so just\ncopied it and its helper functions. I didn\u0027t spend time to fully\nunderstand the code though since it\u0027s an already reviewed pattern used\nto handle this exact case for backwards compatibility in StableHLO.\nBasically, it lowers each batching dim to an explicit iota index column\nso no batching dims remain for the existing patterns. Here\u0027s an example\n```mlir\nmodule @m {\n  func.func @s(%operand: tensor\u003c8x33xi32\u003e, %indices: tensor\u003c8x32x1xi32\u003e, %updates: tensor\u003c8x32xi32\u003e) -\u003e tensor\u003c8x33xi32\u003e {\n    %0 \u003d \"stablehlo.scatter\"(%operand, %indices, %updates) \u003c{scatter_dimension_numbers \u003d #stablehlo.scatter\u003cinserted_window_dims \u003d [1], input_batching_dims \u003d [0], scatter_indices_batching_dims \u003d [0], scatter_dims_to_operand_dims \u003d [1], index_vector_dim \u003d 2\u003e}\u003e ({\n    ^bb0(%arg2: tensor\u003ci32\u003e, %arg3: tensor\u003ci32\u003e):\n      %1 \u003d stablehlo.minimum %arg2, %arg3 : tensor\u003ci32\u003e\n      stablehlo.return %1 : tensor\u003ci32\u003e\n    }) : (tensor\u003c8x33xi32\u003e, tensor\u003c8x32x1xi32\u003e, tensor\u003c8x32xi32\u003e) -\u003e tensor\u003c8x33xi32\u003e\n    return %0 : tensor\u003c8x33xi32\u003e\n  }\n}\n```\ngets preprocessed into\n```mlir\nmodule @m {\n  func.func @s(%arg0: tensor\u003c8x33xi32\u003e, %arg1: tensor\u003c8x32x1xi32\u003e, %arg2: tensor\u003c8x32xi32\u003e) -\u003e tensor\u003c8x33xi32\u003e {\n    %0 \u003d stablehlo.iota dim \u003d 0 : tensor\u003c8x32x1xi32\u003e\n    %1 \u003d stablehlo.concatenate %0, %arg1, dim \u003d 2 : (tensor\u003c8x32x1xi32\u003e, tensor\u003c8x32x1xi32\u003e) -\u003e tensor\u003c8x32x2xi32\u003e\n    %collapsed \u003d tensor.collapse_shape %1 [[0, 1], [2]] : tensor\u003c8x32x2xi32\u003e into tensor\u003c256x2xi32\u003e\n    %collapsed_0 \u003d tensor.collapse_shape %arg2 [[0, 1]] : tensor\u003c8x32xi32\u003e into tensor\u003c256xi32\u003e\n    %2 \u003d \"stablehlo.scatter\"(%arg0, %collapsed, %collapsed_0) \u003c{indices_are_sorted \u003d false, scatter_dimension_numbers \u003d #stablehlo.scatter\u003cinserted_window_dims \u003d [0, 1], scatter_dims_to_operand_dims \u003d [0, 1], index_vector_dim \u003d 1\u003e, unique_indices \u003d false}\u003e ({\n    ^bb0(%arg3: tensor\u003ci32\u003e, %arg4: tensor\u003ci32\u003e):\n      %3 \u003d stablehlo.minimum %arg3, %arg4 : tensor\u003ci32\u003e\n      stablehlo.return %3 : tensor\u003ci32\u003e\n    }) : (tensor\u003c8x33xi32\u003e, tensor\u003c256x2xi32\u003e, tensor\u003c256xi32\u003e) -\u003e tensor\u003c8x33xi32\u003e\n    return %2 : tensor\u003c8x33xi32\u003e\n  }\n}\n```\n\n2. Single-index, full-rank overwrite scatters are dynamic-update-slice\nsemantics and cannot be represented as `iree_linalg_ext.scatter`. Added\n`ScatterToDynamicUpdateSlice` (benefit 3) to rewrite them into\n`stablehlo.dynamic_update_slice`.\nHere\u0027s an example:\n```mlir\nmodule @m {\n  func.func @s(%operand: tensor\u003c8x7x24x32xf32\u003e, %indices: tensor\u003c1xi32\u003e, %updates: tensor\u003c8x4x24x32xf32\u003e) -\u003e tensor\u003c8x7x24x32xf32\u003e {\n    %0 \u003d \"stablehlo.scatter\"(%operand, %indices, %updates) \u003c{indices_are_sorted \u003d true, scatter_dimension_numbers \u003d #stablehlo.scatter\u003cupdate_window_dims \u003d [0, 1, 2, 3], scatter_dims_to_operand_dims \u003d [1]\u003e, unique_indices \u003d true}\u003e ({\n    ^bb0(%arg2: tensor\u003cf32\u003e, %arg3: tensor\u003cf32\u003e):\n      stablehlo.return %arg3 : tensor\u003cf32\u003e\n    }) : (tensor\u003c8x7x24x32xf32\u003e, tensor\u003c1xi32\u003e, tensor\u003c8x4x24x32xf32\u003e) -\u003e tensor\u003c8x7x24x32xf32\u003e\n    return %0 : tensor\u003c8x7x24x32xf32\u003e\n  }\n}\n```\ngets preprocessed into\n```mlir\nmodule @m {\n  func.func @s(%arg0: tensor\u003c8x7x24x32xf32\u003e, %arg1: tensor\u003c1xi32\u003e, %arg2: tensor\u003c8x4x24x32xf32\u003e) -\u003e tensor\u003c8x7x24x32xf32\u003e {\n    %c \u003d stablehlo.constant dense\u003c0\u003e : tensor\u003ci32\u003e\n    %0 \u003d stablehlo.slice %arg1 [0:1] : (tensor\u003c1xi32\u003e) -\u003e tensor\u003c1xi32\u003e\n    %1 \u003d stablehlo.reshape %0 : (tensor\u003c1xi32\u003e) -\u003e tensor\u003ci32\u003e\n    %2 \u003d stablehlo.dynamic_update_slice %arg0, %arg2, %c, %1, %c, %c : (tensor\u003c8x7x24x32xf32\u003e, tensor\u003c8x4x24x32xf32\u003e, tensor\u003ci32\u003e, tensor\u003ci32\u003e, tensor\u003ci32\u003e, tensor\u003ci32\u003e) -\u003e tensor\u003c8x7x24x32xf32\u003e\n    return %2 : tensor\u003c8x7x24x32xf32\u003e\n  }\n}\n```\n\nBoth patterns run before the existing scatter canonicalizers, because\nthe first expands out functionality not supported by later patterns, and\nthe second one removes the scatter entirely. Lit tests added for both.\n\n---------\n\nSigned-off-by: Paul Stark \u003cpaul.stark@cdprojektred.com\u003e\nCo-authored-by: Claude Opus 4.8 (1M context) \u003cnoreply@anthropic.com\u003e"
    },
    {
      "commit": "100a1d393c13d688d2971a3f8b6114bec69fa345",
      "tree": "541a0a2ac115145f2810d184e715f07c109ec478",
      "parents": [
        "4aa302d9e1925ccd8a3e27b817be0f959882fb4d"
      ],
      "author": {
        "name": "Jelle Schühmacher",
        "email": "schuehmacher@roofline.ai",
        "time": "Fri Jul 31 20:32:47 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 31 20:32:47 2026 +0200"
      },
      "message": "[Build] set CCACHE_SLOPPINESS to enable ccache with PCH (#24757)\n\nA recent LLVM bump enables precompiled headers by default; ccache can\u0027t\ncache PCH compilations, reducing the cache hit rate. Set\nCCACHE_SLOPPINESS to enable ccache with PCH\n\n---------\n\nSigned-off-by: Jelle Schühmacher \u003cschuehmacher@roofline.ai\u003e"
    },
    {
      "commit": "4aa302d9e1925ccd8a3e27b817be0f959882fb4d",
      "tree": "dad2cf617432e04c63705e21f53b6e67119d9517",
      "parents": [
        "47a54e6926a13e6016b5306823f650e67fe063b0"
      ],
      "author": {
        "name": "Pan Zhang",
        "email": "98025960+zhangpan2001@users.noreply.github.com",
        "time": "Fri Jul 31 17:57:35 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 31 09:57:35 2026 +0000"
      },
      "message": "[LinalgExt] Implement CustomOp::getStaticLoopRanges (#24734)\n\nCustomOp implements LinalgFusionInterface but does not provide static\nloop ranges, so dispatch formation has to exclude it from several fusion\nchecks.\n\nCompute the ranges from the indexing maps and operand shapes, matching\nthe existing iteration-domain calculation. Remove the CustomOp-specific\nexclusions and cover both static and dynamic shapes.\n\nFixes #23345\n\nSigned-off-by: zhangpan \u003c98025960+zhangpan2001@users.noreply.github.com\u003e\nCo-authored-by: OpenAI \u003cnoreply@openai.com\u003e"
    },
    {
      "commit": "47a54e6926a13e6016b5306823f650e67fe063b0",
      "tree": "9ecce6b7f65529e0b7c9818b2ed151054573851e",
      "parents": [
        "e7a3005fabe7b0a431c0394a5c472a2729d63f03"
      ],
      "author": {
        "name": "TMahlatini",
        "email": "128567935+TMahlatini@users.noreply.github.com",
        "time": "Fri Jul 31 03:06:55 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 31 08:06:55 2026 +0000"
      },
      "message": "[RVV] Enable SpaceMiT vendor IME (#24706)\n\n## Summary\n\nThis PR adds an s8s8s32 mmt4d ukernel for SpaceMiT IME (`+xsmtvdot` /\n`smt.vmadot`)\nand wires the compiler to use it. The tile is fixed at 12x16x8 (3x4 grid\nof 4x4x8 atoms). Under `+xsmtvdot` we\nselect that shape and auto-enable mmt4d; plain `+v` targets are\nunchanged.\n\nAlso, runtime detection can\u0027t use the usual ISA hwprobe bits for this\nvendor extension, so we set the feature bit from SpaceMiT X60\n`mvendorid`/`marchid`. And adds lit coverage, mmt4d unit/benchmark\nentries, and an\n`riscv_64:ime:+v,+zvl256b,+xsmtvdot` e2e matmul variant. Validated on\nBanana Pi (BPI-F3 / X60): cpuinfo, mmt4d_test, and the ukernel e2e path.\n\n\n\nFixes #24576\n\nCo-authored-by: Coden  \u003cgithub.com/coden-s\u003e\nCo-authored-by: Andrew \u003cgithub.com/akuhlken\u003e\nCo-authored-by: Cursor \u003ccursoragent@cursor.com\u003e\nSigned-off-by: Terence \u003cterrencemahlatini@gmail.com\u003e\n\n---------\n\nSigned-off-by: Terence \u003cterrencemahlatini@gmail.com\u003e\nCo-authored-by: Cursor \u003ccursoragent@cursor.com\u003e"
    },
    {
      "commit": "e7a3005fabe7b0a431c0394a5c472a2729d63f03",
      "tree": "a0f88d376d11abc20cfdc91fcb343b60434444bb",
      "parents": [
        "442c605b3f85b0728389abb83ad842db38d5108e"
      ],
      "author": {
        "name": "Pan Zhang",
        "email": "98025960+zhangpan2001@users.noreply.github.com",
        "time": "Fri Jul 31 14:44:32 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 31 06:44:32 2026 +0000"
      },
      "message": "[Flow] Fix TensorSliceOp::fold for parameter attributes (#24762)\n\n[Flow] Fix tensor folding for parameter attributes\n    \nTensorSliceOp::fold and TensorUpdateOp::fold assume that fully folded\ntensor operands are ElementsAttr values. However, #flow.parameter.named\n    folds to a parameter attribute instead, resulting in invalid casts.\n    \nSkip folding when the required operands are not ElementsAttr values and\nadd regression coverage for slicing and updating parameter-backed tensors.\n    \nFixes #24751\n\nSigned-off-by: zhangpan \u003c98025960+zhangpan2001@users.noreply.github.com\u003e"
    },
    {
      "commit": "442c605b3f85b0728389abb83ad842db38d5108e",
      "tree": "67819605df3f6ebfb44018e7835f5517b4eaa9b2",
      "parents": [
        "df5f71837e57f82435daa0a8678bdffb9d67bdac"
      ],
      "author": {
        "name": "WMC",
        "email": "tnwilly@gmail.com",
        "time": "Thu Jul 30 17:33:58 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 30 11:33:58 2026 +0200"
      },
      "message": "[LLVMGPU] Add NVIDIA FP8 mma.sync intrinsics for sm_89 and sm_120 (#24659)\n\nPart of #24654\n\n## Summary\nAdds NVIDIA FP8 `mma.sync` (m16n8k32) strategy-selection support for Ada\n(sm_89) and Blackwell (sm_120). IREE previously had no NVIDIA FP8\nsupport at all — FP8 matmuls silently fell back to SIMT tiling on both\ntargets.\n\n## Not included\nFP8 lowering pipeline support. The TileAndFuse LHS transpose is\nhardcoded for element[K]\u003d2 (F16); FP8\u0027s element[K]\u003d4 causes a\nvector.shape_cast shape mismatch. Will do this in the next PR.\n\n## Test (on RTX PRO 6000 Blackwell, sm_120)\n\n```\nPATH\u003d/workspace/iree-build/tools:/workspace/iree-build/llvm-project/bin:$PATH \\\n  ./llvm-project/bin/llvm-lit -v \\\n  /workspace/compiler/src/iree/compiler/Codegen/LLVMGPU/test/NVVM/config_tile_and_fuse_sm89.mlir \\\n  /workspace/compiler/src/iree/compiler/Codegen/LLVMGPU/test/NVVM/config_tile_and_fuse_sm120.mlir \\\n  /workspace/compiler/src/iree/compiler/Codegen/LLVMGPU/test/NVVM/pipeline_tile_and_fuse_mma_sync.mlir\n```\n\n```\n-- Testing: 3 tests, 3 workers --\nPASS: IREE :: src/iree/compiler/Codegen/LLVMGPU/test/NVVM/config_tile_and_fuse_sm89.mlir (1 of 3)\nPASS: IREE :: src/iree/compiler/Codegen/LLVMGPU/test/NVVM/config_tile_and_fuse_sm120.mlir (2 of 3)\nPASS: IREE :: src/iree/compiler/Codegen/LLVMGPU/test/NVVM/pipeline_tile_and_fuse_mma_sync.mlir (3 of 3)\n\nTesting Time: 0.20s\n\nTotal Discovered Tests: 3\n  Passed: 3 (100.00%)\n```\n\n---------\n\nSigned-off-by: weimin023 \u003ctnwilly@gmail.com\u003e"
    },
    {
      "commit": "df5f71837e57f82435daa0a8678bdffb9d67bdac",
      "tree": "f4ecb9f287801510dfe34c522136606f7ae29f7a",
      "parents": [
        "01d3cd5c9624bf721f4e86a0dca3da897c76bdd8"
      ],
      "author": {
        "name": "ziereis",
        "email": "44057120+ziereis@users.noreply.github.com",
        "time": "Thu Jul 30 08:25:30 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 30 08:25:30 2026 +0200"
      },
      "message": " [Stream] Model execution affinity for cross-device transfers (#24748)\n\nFixes #21361.\n\nA `stream.async.transfer` currently carries source and target\naffinities, but those describe where its input and result reside, not\nnecessarily where the transfer executes.\n\nThis distinction matters when a value produced on device B is\ntransferred into a result pinned to device A. The problems this can\ncause are described in detail in the issue linked above.\n\nThis change adds an optional execution affinity to\n`stream.async.transfer`, printed as `on(...)`, alongside the existing\n`from(...)` and `to(...)` affinities:\n\n  ```mlir\n  %result \u003d stream.async.transfer\n      on(#hal.device.affinity\u003c@device_a\u003e)\n      %source\n      from(#hal.device.affinity\u003c@device_b\u003e)\n      -\u003e to(#hal.device.affinity\u003c@device_a\u003e)\n      !stream.resource\u003cexternal\u003e\n```\n\nA new PlaceTransferExecutionsPass runs before execution scheduling. It uses affinity analysis to identify transfers whose result has a unique pinned affinity and places those transfers on the pinned device when the default producer-side placement is incompatible.\n\nScheduleExecutionPass then handles the transfer through its normal affinity partitioning. Transfers are only grouped with their producer when their execution affinities are compatible.\n\nThe existing staging-transfer placement rules are preserved as the default when no explicit execution affinity is present. Source and target affinities are no longer modified indirectly when setting an operation\u0027s execution affinity.\n\nThe full Stream pipeline now produces the desired result for the original multi-device case:\n\n  - The device-B dispatch result is allocated with optimal\u003cA, B\u003e affinity.\n  - The final external result remains pinned to device A.\n  - The transfer into that result executes on device A.\n  \n  With this https://github.com/iree-org/iree/pull/21589 can also be closed as this implementation should solve the problem.\n\n---------\n\nSigned-off-by: default \u003cziereis@roofline.ai\u003e"
    },
    {
      "commit": "01d3cd5c9624bf721f4e86a0dca3da897c76bdd8",
      "tree": "02ace8007f33ae5005d2f11290c9915a3337ee65",
      "parents": [
        "3eb9bba329d50b3c8cc5aa82e7a6b0be4e7cae31"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Wed Jul 29 23:32:44 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 29 23:32:44 2026 +0000"
      },
      "message": "Bump the github-actions group with 4 updates (#24731)\n\nBumps the github-actions group with 4 updates:\n[actions/checkout](https://github.com/actions/checkout),\n[actions/setup-python](https://github.com/actions/setup-python),\n[cpp-linter/cpp-linter-action](https://github.com/cpp-linter/cpp-linter-action)\nand [actions/cache](https://github.com/actions/cache).\n\nUpdates `actions/checkout` from 6.0.3 to 7.0.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca\nhref\u003d\"https://github.com/actions/checkout/releases\"\u003eactions/checkout\u0027s\nreleases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.0.1\u003c/h2\u003e\n\u003ch2\u003eWhat\u0027s Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eskip running unsafe pr check if input is default by \u003ca\nhref\u003d\"https://github.com/aiqiaoy\"\u003e\u003ccode\u003e@​aiqiaoy\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/actions/checkout/pull/2518\"\u003eactions/checkout#2518\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etrim only ascii whitespace for branch by \u003ca\nhref\u003d\"https://github.com/aiqiaoy\"\u003e\u003ccode\u003e@​aiqiaoy\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/actions/checkout/pull/2521\"\u003eactions/checkout#2521\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eescape values passed to --unset by \u003ca\nhref\u003d\"https://github.com/aiqiaoy\"\u003e\u003ccode\u003e@​aiqiaoy\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/actions/checkout/pull/2530\"\u003eactions/checkout#2530\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eVarious dependency updates\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca\nhref\u003d\"https://github.com/actions/checkout/compare/v7...v7.0.1\"\u003ehttps://github.com/actions/checkout/compare/v7...v7.0.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev7.0.0\u003c/h2\u003e\n\u003ch2\u003eWhat\u0027s Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eblock checking out fork pr for pull_request_target and workflow_run\nby \u003ca href\u003d\"https://github.com/aiqiaoy\"\u003e\u003ccode\u003e@​aiqiaoy\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/actions/checkout/pull/2454\"\u003eactions/checkout#2454\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/publish-immutable-action from 0.0.3 to 0.0.4 in the\nminor-actions-dependencies group across 1 directory by \u003ca\nhref\u003d\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot]\nin \u003ca\nhref\u003d\"https://redirect.github.com/actions/checkout/pull/2458\"\u003eactions/checkout#2458\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump flatted from 3.3.1 to 3.4.2 by \u003ca\nhref\u003d\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot]\nin \u003ca\nhref\u003d\"https://redirect.github.com/actions/checkout/pull/2460\"\u003eactions/checkout#2460\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump js-yaml from 4.1.0 to 4.2.0 by \u003ca\nhref\u003d\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot]\nin \u003ca\nhref\u003d\"https://redirect.github.com/actions/checkout/pull/2461\"\u003eactions/checkout#2461\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump \u003ccode\u003e@​actions/core\u003c/code\u003e and\n\u003ccode\u003e@​actions/tool-cache\u003c/code\u003e and Remove uuid by \u003ca\nhref\u003d\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot]\nin \u003ca\nhref\u003d\"https://redirect.github.com/actions/checkout/pull/2459\"\u003eactions/checkout#2459\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eupgrade module to esm and update dependencies by \u003ca\nhref\u003d\"https://github.com/aiqiaoy\"\u003e\u003ccode\u003e@​aiqiaoy\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/actions/checkout/pull/2463\"\u003eactions/checkout#2463\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the minor-npm-dependencies group across 1 directory with 3\nupdates by \u003ca\nhref\u003d\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot]\nin \u003ca\nhref\u003d\"https://redirect.github.com/actions/checkout/pull/2462\"\u003eactions/checkout#2462\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003egetting ready for checkout v7 release by \u003ca\nhref\u003d\"https://github.com/aiqiaoy\"\u003e\u003ccode\u003e@​aiqiaoy\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/actions/checkout/pull/2464\"\u003eactions/checkout#2464\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eupdate error wording by \u003ca\nhref\u003d\"https://github.com/aiqiaoy\"\u003e\u003ccode\u003e@​aiqiaoy\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/actions/checkout/pull/2467\"\u003eactions/checkout#2467\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/aiqiaoy\"\u003e\u003ccode\u003e@​aiqiaoy\u003c/code\u003e\u003c/a\u003e made\ntheir first contribution in \u003ca\nhref\u003d\"https://redirect.github.com/actions/checkout/pull/2454\"\u003eactions/checkout#2454\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca\nhref\u003d\"https://github.com/actions/checkout/compare/v6.0.3...v7.0.0\"\u003ehttps://github.com/actions/checkout/compare/v6.0.3...v7.0.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev6.1.0\u003c/h2\u003e\n\u003ch2\u003eWhat\u0027s Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e[BREAKING]\u003c/strong\u003e backport\n\u003ccode\u003eallow-unsafe-pr-checkout\u003c/code\u003e to v6 by \u003ca\nhref\u003d\"https://github.com/aiqiaoy\"\u003e\u003ccode\u003e@​aiqiaoy\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/actions/checkout/pull/2500\"\u003eactions/checkout#2500\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebackport fixes to releases-v6 by \u003ca\nhref\u003d\"https://github.com/aiqiaoy\"\u003e\u003ccode\u003e@​aiqiaoy\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/actions/checkout/pull/2527\"\u003eactions/checkout#2527\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca\nhref\u003d\"https://github.blog/changelog/2026-06-18-safer-pull_request_target-defaults-for-github-actions-checkout/\"\u003ehttps://github.blog/changelog/2026-06-18-safer-pull_request_target-defaults-for-github-actions-checkout/\u003c/a\u003e\nfor more details about this breaking change\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca\nhref\u003d\"https://github.com/actions/checkout/compare/v6.0.3...v6.1.0\"\u003ehttps://github.com/actions/checkout/compare/v6.0.3...v6.1.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca\nhref\u003d\"https://github.com/actions/checkout/blob/main/CHANGELOG.md\"\u003eactions/checkout\u0027s\nchangelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003ch2\u003ev7.0.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSkip running unsafe pr check if input is default by \u003ca\nhref\u003d\"https://github.com/aiqiaoy\"\u003e\u003ccode\u003e@​aiqiaoy\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/actions/checkout/pull/2518\"\u003eactions/checkout#2518\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTrim only ascii whitespace for branch by \u003ca\nhref\u003d\"https://github.com/aiqiaoy\"\u003e\u003ccode\u003e@​aiqiaoy\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/actions/checkout/pull/2521\"\u003eactions/checkout#2521\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEscape values passed to --unset by \u003ca\nhref\u003d\"https://github.com/aiqiaoy\"\u003e\u003ccode\u003e@​aiqiaoy\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/actions/checkout/pull/2530\"\u003eactions/checkout#2530\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eVarious dependency updates\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev7.0.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBlock checking out fork PR for pull_request_target and workflow_run\nby \u003ca href\u003d\"https://github.com/aiqiaoy\"\u003e\u003ccode\u003e@​aiqiaoy\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/actions/checkout/pull/2454\"\u003eactions/checkout#2454\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eVarious dependency updates\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev6.0.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix checkout init for SHA-256 repositories by \u003ca\nhref\u003d\"https://github.com/yaananth\"\u003e\u003ccode\u003e@​yaananth\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/actions/checkout/pull/2439\"\u003eactions/checkout#2439\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: expand merge commit SHA regex and add SHA-256 test cases by \u003ca\nhref\u003d\"https://github.com/yaananth\"\u003e\u003ccode\u003e@​yaananth\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/actions/checkout/pull/2414\"\u003eactions/checkout#2414\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev6.0.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix tag handling: preserve annotations and explicit fetch-tags by \u003ca\nhref\u003d\"https://github.com/ericsciple\"\u003e\u003ccode\u003e@​ericsciple\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/actions/checkout/pull/2356\"\u003eactions/checkout#2356\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev6.0.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd worktree support for persist-credentials includeIf by \u003ca\nhref\u003d\"https://github.com/ericsciple\"\u003e\u003ccode\u003e@​ericsciple\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/actions/checkout/pull/2327\"\u003eactions/checkout#2327\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev6.0.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePersist creds to a separate file by \u003ca\nhref\u003d\"https://github.com/ericsciple\"\u003e\u003ccode\u003e@​ericsciple\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/actions/checkout/pull/2286\"\u003eactions/checkout#2286\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate README to include Node.js 24 support details and requirements\nby \u003ca href\u003d\"https://github.com/salmanmkc\"\u003e\u003ccode\u003e@​salmanmkc\u003c/code\u003e\u003c/a\u003e\nin \u003ca\nhref\u003d\"https://redirect.github.com/actions/checkout/pull/2248\"\u003eactions/checkout#2248\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev5.0.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePort v6 cleanup to v5 by \u003ca\nhref\u003d\"https://github.com/ericsciple\"\u003e\u003ccode\u003e@​ericsciple\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/actions/checkout/pull/2301\"\u003eactions/checkout#2301\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev5.0.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate actions checkout to use node 24 by \u003ca\nhref\u003d\"https://github.com/salmanmkc\"\u003e\u003ccode\u003e@​salmanmkc\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/actions/checkout/pull/2226\"\u003eactions/checkout#2226\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev4.3.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePort v6 cleanup to v4 by \u003ca\nhref\u003d\"https://github.com/ericsciple\"\u003e\u003ccode\u003e@​ericsciple\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/actions/checkout/pull/2305\"\u003eactions/checkout#2305\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev4.3.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003edocs: update README.md by \u003ca\nhref\u003d\"https://github.com/motss\"\u003e\u003ccode\u003e@​motss\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/actions/checkout/pull/1971\"\u003eactions/checkout#1971\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd internal repos for checking out multiple repositories by \u003ca\nhref\u003d\"https://github.com/mouismail\"\u003e\u003ccode\u003e@​mouismail\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/actions/checkout/pull/1977\"\u003eactions/checkout#1977\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocumentation update - add recommended permissions to Readme by \u003ca\nhref\u003d\"https://github.com/benwells\"\u003e\u003ccode\u003e@​benwells\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/actions/checkout/pull/2043\"\u003eactions/checkout#2043\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdjust positioning of user email note and permissions heading by \u003ca\nhref\u003d\"https://github.com/joshmgross\"\u003e\u003ccode\u003e@​joshmgross\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/actions/checkout/pull/2044\"\u003eactions/checkout#2044\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate README.md by \u003ca\nhref\u003d\"https://github.com/nebuk89\"\u003e\u003ccode\u003e@​nebuk89\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/actions/checkout/pull/2194\"\u003eactions/checkout#2194\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate CODEOWNERS for actions by \u003ca\nhref\u003d\"https://github.com/TingluoHuang\"\u003e\u003ccode\u003e@​TingluoHuang\u003c/code\u003e\u003c/a\u003e\nin \u003ca\nhref\u003d\"https://redirect.github.com/actions/checkout/pull/2224\"\u003eactions/checkout#2224\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate package dependencies by \u003ca\nhref\u003d\"https://github.com/salmanmkc\"\u003e\u003ccode\u003e@​salmanmkc\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/actions/checkout/pull/2236\"\u003eactions/checkout#2236\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev4.2.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eurl-helper.ts\u003c/code\u003e now leverages well-known environment\nvariables by \u003ca href\u003d\"https://github.com/jww3\"\u003e\u003ccode\u003e@​jww3\u003c/code\u003e\u003c/a\u003e\nin \u003ca\nhref\u003d\"https://redirect.github.com/actions/checkout/pull/1941\"\u003eactions/checkout#1941\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExpand unit test coverage for \u003ccode\u003eisGhes\u003c/code\u003e by \u003ca\nhref\u003d\"https://github.com/jww3\"\u003e\u003ccode\u003e@​jww3\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/actions/checkout/pull/1946\"\u003eactions/checkout#1946\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev4.2.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCheck out other refs/* by commit if provided, fall back to ref by \u003ca\nhref\u003d\"https://github.com/orhantoy\"\u003e\u003ccode\u003e@​orhantoy\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/actions/checkout/pull/1924\"\u003eactions/checkout#1924\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/actions/checkout/commit/3d3c42e5aac5ba805825da76410c181273ba90b1\"\u003e\u003ccode\u003e3d3c42e\u003c/code\u003e\u003c/a\u003e\nprep v7.0.1 release (\u003ca\nhref\u003d\"https://redirect.github.com/actions/checkout/issues/2531\"\u003e#2531\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/actions/checkout/commit/28802689a136bfcdb721715abd713740beecbe07\"\u003e\u003ccode\u003e2880268\u003c/code\u003e\u003c/a\u003e\nescape values passed to --unset (\u003ca\nhref\u003d\"https://redirect.github.com/actions/checkout/issues/2530\"\u003e#2530\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/actions/checkout/commit/12cd2235efa0937479335606d7c3ac9f6c0973b1\"\u003e\u003ccode\u003e12cd223\u003c/code\u003e\u003c/a\u003e\ntrim only ascii whitespace for branch (\u003ca\nhref\u003d\"https://redirect.github.com/actions/checkout/issues/2521\"\u003e#2521\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/actions/checkout/commit/62661c4e71a304b2823ed026347b8d34c3eac541\"\u003e\u003ccode\u003e62661c4\u003c/code\u003e\u003c/a\u003e\nskip running unsafe pr check if input is default (\u003ca\nhref\u003d\"https://redirect.github.com/actions/checkout/issues/2518\"\u003e#2518\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/actions/checkout/commit/e8d4307400f9427dba7cb98e488d6ab85f1cec5f\"\u003e\u003ccode\u003ee8d4307\u003c/code\u003e\u003c/a\u003e\nBump the minor-actions-dependencies group with 2 updates (\u003ca\nhref\u003d\"https://redirect.github.com/actions/checkout/issues/2499\"\u003e#2499\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/actions/checkout/commit/631c942040754b6e095e929c1677c07e10ed4f87\"\u003e\u003ccode\u003e631c942\u003c/code\u003e\u003c/a\u003e\neslint 9 (\u003ca\nhref\u003d\"https://redirect.github.com/actions/checkout/issues/2474\"\u003e#2474\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/actions/checkout/commit/4f1f4aec02e41874fa0262ea8ff5172d7978ad1e\"\u003e\u003ccode\u003e4f1f4ae\u003c/code\u003e\u003c/a\u003e\nBump actions/upload-artifact from 4 to 7 (\u003ca\nhref\u003d\"https://redirect.github.com/actions/checkout/issues/2476\"\u003e#2476\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/actions/checkout/commit/ba097532fb203f7e88c9c3c0b899b49469908a92\"\u003e\u003ccode\u003eba09753\u003c/code\u003e\u003c/a\u003e\nBump actions/checkout from 6 to 7 (\u003ca\nhref\u003d\"https://redirect.github.com/actions/checkout/issues/2488\"\u003e#2488\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/actions/checkout/commit/b9e0990d219a03df7633c93f6f005a8fecbcab22\"\u003e\u003ccode\u003eb9e0990\u003c/code\u003e\u003c/a\u003e\nBump docker/login-action from 3.3.0 to 4.2.0 (\u003ca\nhref\u003d\"https://redirect.github.com/actions/checkout/issues/2479\"\u003e#2479\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/actions/checkout/commit/e8cb398be4a550817e382abf69e4c12c76fce1f2\"\u003e\u003ccode\u003ee8cb398\u003c/code\u003e\u003c/a\u003e\nBump docker/build-push-action from 6.5.0 to 7.2.0 (\u003ca\nhref\u003d\"https://redirect.github.com/actions/checkout/issues/2478\"\u003e#2478\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca\nhref\u003d\"https://github.com/actions/checkout/compare/df4cb1c069e1874edd31b4311f1884172cec0e10...3d3c42e5aac5ba805825da76410c181273ba90b1\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actions/setup-python` from 6.2.0 to 7.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca\nhref\u003d\"https://github.com/actions/setup-python/releases\"\u003eactions/setup-python\u0027s\nreleases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.0.0\u003c/h2\u003e\n\u003ch2\u003eWhat\u0027s Changed\u003c/h2\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMigrate to ESM and upgrade dependencies by \u003ca\nhref\u003d\"https://github.com/priyagupta108\"\u003e\u003ccode\u003e@​priyagupta108\u003c/code\u003e\u003c/a\u003e\nin \u003ca\nhref\u003d\"https://redirect.github.com/actions/setup-python/pull/1330\"\u003eactions/setup-python#1330\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePin SHA commits and update docs with latest versions by \u003ca\nhref\u003d\"https://github.com/HarithaVattikuti\"\u003e\u003ccode\u003e@​HarithaVattikuti\u003c/code\u003e\u003c/a\u003e\nin \u003ca\nhref\u003d\"https://redirect.github.com/actions/setup-python/pull/1338\"\u003eactions/setup-python#1338\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove the pip-install input by \u003ca\nhref\u003d\"https://github.com/gowridurgad\"\u003e\u003ccode\u003e@​gowridurgad\u003c/code\u003e\u003c/a\u003e in\n\u003ca\nhref\u003d\"https://redirect.github.com/actions/setup-python/pull/1336\"\u003eactions/setup-python#1336\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fix\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix to Classify stderr warning messages as warnings instead of\nerrors in annotations by \u003ca\nhref\u003d\"https://github.com/lmvysakh\"\u003e\u003ccode\u003e@​lmvysakh\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/actions/setup-python/pull/1335\"\u003eactions/setup-python#1335\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eValidate and retry manifest fetch to prevent silent failures by \u003ca\nhref\u003d\"https://github.com/priyagupta108\"\u003e\u003ccode\u003e@​priyagupta108\u003c/code\u003e\u003c/a\u003e\nin \u003ca\nhref\u003d\"https://redirect.github.com/actions/setup-python/pull/1332\"\u003eactions/setup-python#1332\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDependency Upgrade\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBump certifi from 2020.6.20 to 2024.7.4 in\n/\u003cstrong\u003etests\u003c/strong\u003e/data by \u003ca\nhref\u003d\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/actions/setup-python/pull/1328\"\u003eactions/setup-python#1328\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove EOL Python versions and Bumps numpy text fixture by \u003ca\nhref\u003d\"https://github.com/priya-kinthali\"\u003e\u003ccode\u003e@​priya-kinthali\u003c/code\u003e\u003c/a\u003e\nin \u003ca\nhref\u003d\"https://redirect.github.com/actions/setup-python/pull/1333\"\u003eactions/setup-python#1333\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade \u003ccode\u003e@​actions/cache\u003c/code\u003e to 6.2.0 by \u003ca\nhref\u003d\"https://github.com/philip-gai\"\u003e\u003ccode\u003e@​philip-gai\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/actions/setup-python/pull/1337\"\u003eactions/setup-python#1337\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/lmvysakh\"\u003e\u003ccode\u003e@​lmvysakh\u003c/code\u003e\u003c/a\u003e\nmade their first contribution in \u003ca\nhref\u003d\"https://redirect.github.com/actions/setup-python/pull/1335\"\u003eactions/setup-python#1335\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/philip-gai\"\u003e\u003ccode\u003e@​philip-gai\u003c/code\u003e\u003c/a\u003e made\ntheir first contribution in \u003ca\nhref\u003d\"https://redirect.github.com/actions/setup-python/pull/1337\"\u003eactions/setup-python#1337\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca\nhref\u003d\"https://github.com/actions/setup-python/compare/v6...v7.0.0\"\u003ehttps://github.com/actions/setup-python/compare/v6...v7.0.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev6.3.0\u003c/h2\u003e\n\u003ch2\u003eWhat\u0027s Changed\u003c/h2\u003e\n\u003ch3\u003eEnhancement\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd RHEL support and include Linux distro in cache keys by \u003ca\nhref\u003d\"https://github.com/priyagupta108\"\u003e\u003ccode\u003e@​priyagupta108\u003c/code\u003e\u003c/a\u003e\nin \u003ca\nhref\u003d\"https://redirect.github.com/actions/setup-python/pull/1323\"\u003eactions/setup-python#1323\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix pip cache error handling on Windows by \u003ca\nhref\u003d\"https://github.com/priyagupta108\"\u003e\u003ccode\u003e@​priyagupta108\u003c/code\u003e\u003c/a\u003e\nin \u003ca\nhref\u003d\"https://redirect.github.com/actions/setup-python/pull/1040\"\u003eactions/setup-python#1040\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDependency update\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpgrade minimatch from 3.1.2 to 3.1.5 by \u003ca\nhref\u003d\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/actions/setup-python/pull/1281\"\u003eactions/setup-python#1281\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade actions dependencies by \u003ca\nhref\u003d\"https://github.com/gowridurgad\"\u003e\u003ccode\u003e@​gowridurgad\u003c/code\u003e\u003c/a\u003e\nwith \u003ca href\u003d\"https://github.com/Copilot\"\u003e\u003ccode\u003e@​Copilot\u003c/code\u003e\u003c/a\u003e in\n\u003ca\nhref\u003d\"https://redirect.github.com/actions/setup-python/pull/1303\"\u003eactions/setup-python#1303\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade \u003ccode\u003e@​actions/cache\u003c/code\u003e to 5.1.0, log cache write\ndenied by \u003ca\nhref\u003d\"https://github.com/jasongin\"\u003e\u003ccode\u003e@​jasongin\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/actions/setup-python/pull/1324\"\u003eactions/setup-python#1324\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade dependency versions and test workflow configuration by \u003ca\nhref\u003d\"https://github.com/HarithaVattikuti\"\u003e\u003ccode\u003e@​HarithaVattikuti\u003c/code\u003e\u003c/a\u003e\nin \u003ca\nhref\u003d\"https://redirect.github.com/actions/setup-python/pull/1322\"\u003eactions/setup-python#1322\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate advanced-usage.md by \u003ca\nhref\u003d\"https://github.com/Dunky-Z\"\u003e\u003ccode\u003e@​Dunky-Z\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/actions/setup-python/pull/811\"\u003eactions/setup-python#811\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/gowridurgad\"\u003e\u003ccode\u003e@​gowridurgad\u003c/code\u003e\u003c/a\u003e\nwith \u003ca href\u003d\"https://github.com/Copilot\"\u003e\u003ccode\u003e@​Copilot\u003c/code\u003e\u003c/a\u003e\nmade their first contribution in \u003ca\nhref\u003d\"https://redirect.github.com/actions/setup-python/pull/1303\"\u003eactions/setup-python#1303\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/jasongin\"\u003e\u003ccode\u003e@​jasongin\u003c/code\u003e\u003c/a\u003e\nmade their first contribution in \u003ca\nhref\u003d\"https://redirect.github.com/actions/setup-python/pull/1324\"\u003eactions/setup-python#1324\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/Dunky-Z\"\u003e\u003ccode\u003e@​Dunky-Z\u003c/code\u003e\u003c/a\u003e made\ntheir first contribution in \u003ca\nhref\u003d\"https://redirect.github.com/actions/setup-python/pull/811\"\u003eactions/setup-python#811\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca\nhref\u003d\"https://github.com/actions/setup-python/compare/v6.2.0...v6.3.0\"\u003ehttps://github.com/actions/setup-python/compare/v6.2.0...v6.3.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/actions/setup-python/commit/5fda3b95a4ea91299a34e894583c3862153e4b97\"\u003e\u003ccode\u003e5fda3b9\u003c/code\u003e\u003c/a\u003e\nPin SHA commits and update docs with latest versions (\u003ca\nhref\u003d\"https://redirect.github.com/actions/setup-python/issues/1338\"\u003e#1338\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/actions/setup-python/commit/4ab7e95f05e168b4356aebde89dd84f59c283d8e\"\u003e\u003ccode\u003e4ab7e95\u003c/code\u003e\u003c/a\u003e\nMerge pull request \u003ca\nhref\u003d\"https://redirect.github.com/actions/setup-python/issues/1337\"\u003e#1337\u003c/a\u003e\nfrom actions/philip-gai/bump-actions-cache-6-2-0\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/actions/setup-python/commit/0f3a009f475dbea83c0371cd85d099690fee8c5c\"\u003e\u003ccode\u003e0f3a009\u003c/code\u003e\u003c/a\u003e\nRemove the pip-install input (\u003ca\nhref\u003d\"https://redirect.github.com/actions/setup-python/issues/1336\"\u003e#1336\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/actions/setup-python/commit/f8cf4291c8b8e273ddd26e569454615c7315d932\"\u003e\u003ccode\u003ef8cf429\u003c/code\u003e\u003c/a\u003e\nMigrate to ESM and upgrade dependencies (\u003ca\nhref\u003d\"https://redirect.github.com/actions/setup-python/issues/1330\"\u003e#1330\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/actions/setup-python/commit/54baeea5b34417d10a7479663a23cca53ea209b5\"\u003e\u003ccode\u003e54baeea\u003c/code\u003e\u003c/a\u003e\nValidate and retry manifest fetch to prevent silent failures (\u003ca\nhref\u003d\"https://redirect.github.com/actions/setup-python/issues/1332\"\u003e#1332\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/actions/setup-python/commit/c7092773a316760f4ecfe498e4af668a4dafeac5\"\u003e\u003ccode\u003ec709277\u003c/code\u003e\u003c/a\u003e\nAnnotation code fix (\u003ca\nhref\u003d\"https://redirect.github.com/actions/setup-python/issues/1335\"\u003e#1335\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/actions/setup-python/commit/6849080452e69b330395e8a6d23cf90f56d76a1a\"\u003e\u003ccode\u003e6849080\u003c/code\u003e\u003c/a\u003e\nremove EOL Python versions and Bumps numpy text fixture (\u003ca\nhref\u003d\"https://redirect.github.com/actions/setup-python/issues/1333\"\u003e#1333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/actions/setup-python/commit/0903b469fbf4441aadfe4f4b249dc5b1fba3a73e\"\u003e\u003ccode\u003e0903b46\u003c/code\u003e\u003c/a\u003e\nBump certifi from 2020.6.20 to 2024.7.4 in /\u003cstrong\u003etests\u003c/strong\u003e/data\n(\u003ca\nhref\u003d\"https://redirect.github.com/actions/setup-python/issues/1328\"\u003e#1328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/actions/setup-python/commit/ece7cb06caefa5fff74198d8649806c4678c61a1\"\u003e\u003ccode\u003eece7cb0\u003c/code\u003e\u003c/a\u003e\nFix pip cache error handling on Windows. (\u003ca\nhref\u003d\"https://redirect.github.com/actions/setup-python/issues/1040\"\u003e#1040\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/actions/setup-python/commit/1d18d7af5f767c1259ede05a0a5bcc30f3dcf1cf\"\u003e\u003ccode\u003e1d18d7a\u003c/code\u003e\u003c/a\u003e\nUpdate advanced-usage.md (\u003ca\nhref\u003d\"https://redirect.github.com/actions/setup-python/issues/811\"\u003e#811\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca\nhref\u003d\"https://github.com/actions/setup-python/compare/a309ff8b426b58ec0e2a45f0f869d46889d02405...5fda3b95a4ea91299a34e894583c3862153e4b97\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cpp-linter/cpp-linter-action` from 2.18.0 to 2.20.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca\nhref\u003d\"https://github.com/cpp-linter/cpp-linter-action/releases\"\u003ecpp-linter/cpp-linter-action\u0027s\nreleases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.20.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003e🚀 New features and improvements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: add summary output file input by \u003ca\nhref\u003d\"https://github.com/philippkarg\"\u003e\u003ccode\u003e@​philippkarg\u003c/code\u003e\u003c/a\u003e in\n\u003ca\nhref\u003d\"https://redirect.github.com/cpp-linter/cpp-linter-action/issues/455\"\u003e#455\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e📦 Dependency updates\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003echore(deps-dev): bump ruff from 0.15.17 to 0.15.20 by @\u003ca\nhref\u003d\"https://github.com/apps/dependabot\"\u003edependabot[bot]\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/cpp-linter/cpp-linter-action/issues/454\"\u003e#454\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add summary output file input by \u003ca\nhref\u003d\"https://github.com/philippkarg\"\u003e\u003ccode\u003e@​philippkarg\u003c/code\u003e\u003c/a\u003e in\n\u003ca\nhref\u003d\"https://redirect.github.com/cpp-linter/cpp-linter-action/issues/455\"\u003e#455\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump actions/cache from 5 to 6 in the actions group by\n@\u003ca href\u003d\"https://github.com/apps/dependabot\"\u003edependabot[bot]\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/cpp-linter/cpp-linter-action/issues/453\"\u003e#453\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump actions/checkout from 6.0.3 to 7.0.0 in the\nactions group by @\u003ca\nhref\u003d\"https://github.com/apps/dependabot\"\u003edependabot[bot]\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/cpp-linter/cpp-linter-action/issues/451\"\u003e#451\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca\nhref\u003d\"https://github.com/cpp-linter/cpp-linter-action/compare/v2.19.0...v2.20.0\"\u003ehttps://github.com/cpp-linter/cpp-linter-action/compare/v2.19.0...v2.20.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/cpp-linter/cpp-linter-action/commit/8e85cd02c8c3fe3ae527c94b5683fe2366b144ed\"\u003e\u003ccode\u003e8e85cd0\u003c/code\u003e\u003c/a\u003e\nchore(deps-dev): bump ruff from 0.15.17 to 0.15.20 (\u003ca\nhref\u003d\"https://redirect.github.com/cpp-linter/cpp-linter-action/issues/454\"\u003e#454\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/cpp-linter/cpp-linter-action/commit/415052a2bc40862b1cc50f97a197618a2bd43228\"\u003e\u003ccode\u003e415052a\u003c/code\u003e\u003c/a\u003e\nfeat: add summary output file input (\u003ca\nhref\u003d\"https://redirect.github.com/cpp-linter/cpp-linter-action/issues/455\"\u003e#455\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/cpp-linter/cpp-linter-action/commit/51286ac2ba86c382b7c5e6e8645e85537322ec06\"\u003e\u003ccode\u003e51286ac\u003c/code\u003e\u003c/a\u003e\nchore(deps): bump actions/cache from 5 to 6 in the actions group (\u003ca\nhref\u003d\"https://redirect.github.com/cpp-linter/cpp-linter-action/issues/453\"\u003e#453\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/cpp-linter/cpp-linter-action/commit/eaab6a51fa1bd82d0c67164dbc342fe167be84a4\"\u003e\u003ccode\u003eeaab6a5\u003c/code\u003e\u003c/a\u003e\nchore(deps): bump actions/checkout from 6.0.3 to 7.0.0 in the actions\ngroup (...\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/cpp-linter/cpp-linter-action/commit/4f2a4033eda6119c3bf1a4d30857a4c61c11c247\"\u003e\u003ccode\u003e4f2a403\u003c/code\u003e\u003c/a\u003e\nchore(deps-dev): bump clang-tools from 0.18.0 to 1.1.0 (\u003ca\nhref\u003d\"https://redirect.github.com/cpp-linter/cpp-linter-action/issues/450\"\u003e#450\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/cpp-linter/cpp-linter-action/commit/b9820e1cfe4f6e0e76cad9c584219a7beaa82883\"\u003e\u003ccode\u003eb9820e1\u003c/code\u003e\u003c/a\u003e\nchore(deps-dev): bump mypy from 1.18.1 to 2.1.0 (\u003ca\nhref\u003d\"https://redirect.github.com/cpp-linter/cpp-linter-action/issues/435\"\u003e#435\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/cpp-linter/cpp-linter-action/commit/4bd546ef5bd5f137e8da386bbd383836bce05b8e\"\u003e\u003ccode\u003e4bd546e\u003c/code\u003e\u003c/a\u003e\nchore(deps-dev): bump ruff from 0.13.0 to 0.15.17 (\u003ca\nhref\u003d\"https://redirect.github.com/cpp-linter/cpp-linter-action/issues/449\"\u003e#449\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/cpp-linter/cpp-linter-action/commit/de8ab03d181c4c29f7dffc9c506e37db115da120\"\u003e\u003ccode\u003ede8ab03\u003c/code\u003e\u003c/a\u003e\nchore(deps): bump the actions group across 1 directory with 2 updates\n(\u003ca\nhref\u003d\"https://redirect.github.com/cpp-linter/cpp-linter-action/issues/448\"\u003e#448\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/cpp-linter/cpp-linter-action/commit/e298671c81ca7bf802770354a3afe14b61d940c9\"\u003e\u003ccode\u003ee298671\u003c/code\u003e\u003c/a\u003e\nchore(deps): bump the dev group across 1 directory with 3 updates (\u003ca\nhref\u003d\"https://redirect.github.com/cpp-linter/cpp-linter-action/issues/447\"\u003e#447\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/cpp-linter/cpp-linter-action/commit/be72ab2629dd910b241a22141cd1fcf776ea3c36\"\u003e\u003ccode\u003ebe72ab2\u003c/code\u003e\u003c/a\u003e\ndocs: Remove license badge from README (\u003ca\nhref\u003d\"https://redirect.github.com/cpp-linter/cpp-linter-action/issues/446\"\u003e#446\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca\nhref\u003d\"https://github.com/cpp-linter/cpp-linter-action/compare/77c390c5ba9c947ebc185a3e49cc754f1558abb5...8e85cd02c8c3fe3ae527c94b5683fe2366b144ed\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actions/cache` from 5.0.5 to 6.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca\nhref\u003d\"https://github.com/actions/cache/releases\"\u003eactions/cache\u0027s\nreleases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev6.1.0\u003c/h2\u003e\n\u003ch2\u003eWhat\u0027s Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump \u003ccode\u003e@​actions/cache\u003c/code\u003e to v6.1.0 - handle read-only cache\naccess by \u003ca\nhref\u003d\"https://github.com/jasongin\"\u003e\u003ccode\u003e@​jasongin\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/actions/cache/pull/1768\"\u003eactions/cache#1768\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca\nhref\u003d\"https://github.com/actions/cache/compare/v6...v6.1.0\"\u003ehttps://github.com/actions/cache/compare/v6...v6.1.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev6.0.0\u003c/h2\u003e\n\u003ch2\u003eWhat\u0027s Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate packages, migrate to ESM by \u003ca\nhref\u003d\"https://github.com/Samirat\"\u003e\u003ccode\u003e@​Samirat\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/actions/cache/pull/1760\"\u003eactions/cache#1760\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca\nhref\u003d\"https://github.com/actions/cache/compare/v5...v6.0.0\"\u003ehttps://github.com/actions/cache/compare/v5...v6.0.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev5.1.0\u003c/h2\u003e\n\u003ch2\u003eWhat\u0027s Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump \u003ccode\u003e@​actions/cache\u003c/code\u003e to v5.1.0 - handle read-only cache\naccess by \u003ca\nhref\u003d\"https://github.com/jasongin\"\u003e\u003ccode\u003e@​jasongin\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/actions/cache/pull/1775\"\u003eactions/cache#1775\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca\nhref\u003d\"https://github.com/actions/cache/compare/v5...v5.1.0\"\u003ehttps://github.com/actions/cache/compare/v5...v5.1.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca\nhref\u003d\"https://github.com/actions/cache/blob/main/RELEASES.md\"\u003eactions/cache\u0027s\nchangelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eReleases\u003c/h1\u003e\n\u003ch2\u003eHow to prepare a release\u003c/h2\u003e\n\u003cblockquote\u003e\n\u003cp\u003e[!NOTE]\nRelevant for maintainers with write access only.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003col\u003e\n\u003cli\u003eSwitch to a new branch from \u003ccode\u003emain\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eRun \u003ccode\u003enpm test\u003c/code\u003e to ensure all tests are passing.\u003c/li\u003e\n\u003cli\u003eUpdate the version in \u003ca\nhref\u003d\"https://github.com/actions/cache/blob/main/package.json\"\u003e\u003ccode\u003ehttps://github.com/actions/cache/blob/main/package.json\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eRun \u003ccode\u003enpm run build\u003c/code\u003e to update the compiled files.\u003c/li\u003e\n\u003cli\u003eUpdate this \u003ca\nhref\u003d\"https://github.com/actions/cache/blob/main/RELEASES.md\"\u003e\u003ccode\u003ehttps://github.com/actions/cache/blob/main/RELEASES.md\u003c/code\u003e\u003c/a\u003e\nwith the new version and changes in the \u003ccode\u003e## Changelog\u003c/code\u003e\nsection.\u003c/li\u003e\n\u003cli\u003eRun \u003ccode\u003elicensed cache\u003c/code\u003e to update the license report.\u003c/li\u003e\n\u003cli\u003eRun \u003ccode\u003elicensed status\u003c/code\u003e and resolve any warnings by\nupdating the \u003ca\nhref\u003d\"https://github.com/actions/cache/blob/main/.licensed.yml\"\u003e\u003ccode\u003ehttps://github.com/actions/cache/blob/main/.licensed.yml\u003c/code\u003e\u003c/a\u003e\nfile with the exceptions.\u003c/li\u003e\n\u003cli\u003eCommit your changes and push your branch upstream.\u003c/li\u003e\n\u003cli\u003eOpen a pull request against \u003ccode\u003emain\u003c/code\u003e and get it reviewed\nand merged.\u003c/li\u003e\n\u003cli\u003eDraft a new release \u003ca\nhref\u003d\"https://github.com/actions/cache/releases\"\u003ehttps://github.com/actions/cache/releases\u003c/a\u003e\nuse the same version number used in \u003ccode\u003epackage.json\u003c/code\u003e\n\u003col\u003e\n\u003cli\u003eCreate a new tag with the version number.\u003c/li\u003e\n\u003cli\u003eAuto generate release notes and update them to match the changes you\nmade in \u003ccode\u003eRELEASES.md\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eToggle the set as the latest release option.\u003c/li\u003e\n\u003cli\u003ePublish the release.\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/li\u003e\n\u003cli\u003eNavigate to \u003ca\nhref\u003d\"https://github.com/actions/cache/actions/workflows/release-new-action-version.yml\"\u003ehttps://github.com/actions/cache/actions/workflows/release-new-action-version.yml\u003c/a\u003e\n\u003col\u003e\n\u003cli\u003eThere should be a workflow run queued with the same version\nnumber.\u003c/li\u003e\n\u003cli\u003eApprove the run to publish the new version and update the major tags\nfor this action.\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003e6.1.0\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBump \u003ccode\u003e@actions/cache\u003c/code\u003e to v6.1.0 to pick up \u003ca\nhref\u003d\"https://redirect.github.com/actions/toolkit/pull/2435\"\u003eactions/toolkit#2435\nHandle cache write error due to read-only token\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSwitch redundant \u0026quot;Cache save failed\u0026quot; warning to debug log\nin save-only\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e6.0.0\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated \u003ccode\u003e@actions/cache\u003c/code\u003e to ^6.0.1,\n\u003ccode\u003e@actions/core\u003c/code\u003e to ^3.0.1, \u003ccode\u003e@actions/exec\u003c/code\u003e to\n^3.0.0, \u003ccode\u003e@actions/io\u003c/code\u003e to ^3.0.2\u003c/li\u003e\n\u003cli\u003eMigrated to ESM module system\u003c/li\u003e\n\u003cli\u003eUpgraded Jest to v30 and test infrastructure to be ESM\ncompatible\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e5.0.4\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBump \u003ccode\u003eminimatch\u003c/code\u003e to v3.1.5 (fixes ReDoS via globstar\npatterns)\u003c/li\u003e\n\u003cli\u003eBump \u003ccode\u003eundici\u003c/code\u003e to v6.24.1 (WebSocket decompression bomb\nprotection, header validation fixes)\u003c/li\u003e\n\u003cli\u003eBump \u003ccode\u003efast-xml-parser\u003c/code\u003e to v5.5.6\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e5.0.3\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBump \u003ccode\u003e@actions/cache\u003c/code\u003e to v5.0.5 (Resolves: \u003ca\nhref\u003d\"https://github.com/actions/cache/security/dependabot/33\"\u003ehttps://github.com/actions/cache/security/dependabot/33\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump \u003ccode\u003e@actions/core\u003c/code\u003e to v2.0.3\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e5.0.2\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/actions/cache/commit/55cc8345863c7cc4c66a329aec7e433d2d1c52a9\"\u003e\u003ccode\u003e55cc834\u003c/code\u003e\u003c/a\u003e\nMerge pull request \u003ca\nhref\u003d\"https://redirect.github.com/actions/cache/issues/1768\"\u003e#1768\u003c/a\u003e\nfrom jasongin/readonly-cache\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/actions/cache/commit/d8cd72f230726cdf4457ebb61ec1b593a8d12337\"\u003e\u003ccode\u003ed8cd72f\u003c/code\u003e\u003c/a\u003e\nBump \u003ccode\u003e@​actions/cache\u003c/code\u003e to v6.1.0 - handle cache write error\ndue to RO token\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/actions/cache/commit/2c8a9bd7457de244a408f35966fab2fb45fda9c8\"\u003e\u003ccode\u003e2c8a9bd\u003c/code\u003e\u003c/a\u003e\nMerge pull request \u003ca\nhref\u003d\"https://redirect.github.com/actions/cache/issues/1760\"\u003e#1760\u003c/a\u003e\nfrom actions/samirat/esm_migration_and_package_update\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/actions/cache/commit/e9b91fdc3fea7d79165fceb79042ef45c2d51023\"\u003e\u003ccode\u003ee9b91fd\u003c/code\u003e\u003c/a\u003e\nPrettier fixes\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/actions/cache/commit/e4884b8ff7f92ef6b52c79eda480bbc86e685adb\"\u003e\u003ccode\u003ee4884b8\u003c/code\u003e\u003c/a\u003e\nRebuild dist\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/actions/cache/commit/10baf0191a3c426ea0fa4a3253a5c04233b6e18f\"\u003e\u003ccode\u003e10baf01\u003c/code\u003e\u003c/a\u003e\nFixed licenses\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/actions/cache/commit/e39b386c9004d72a15d864ade8c0b3a702d47a37\"\u003e\u003ccode\u003ee39b386\u003c/code\u003e\u003c/a\u003e\nFix test mock return order\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/actions/cache/commit/b6928203372a8571ff984c0c883ef3a1adfb0c06\"\u003e\u003ccode\u003eb692820\u003c/code\u003e\u003c/a\u003e\nPR feedback\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/actions/cache/commit/60749128a44d25d3c520a489e576380cf00ff3f1\"\u003e\u003ccode\u003e6074912\u003c/code\u003e\u003c/a\u003e\nRebuild dist bundles as ESM to match type:module\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/actions/cache/commit/5a912e8b4af820fa082a0e75cfd2c782f8fbfe0e\"\u003e\u003ccode\u003e5a912e8\u003c/code\u003e\u003c/a\u003e\nFix lint and jest issues\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca\nhref\u003d\"https://github.com/actions/cache/compare/27d5ce7f107fe9357f9df03efb73ab90386fccae...55cc8345863c7cc4c66a329aec7e433d2d1c52a9\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don\u0027t\nalter it yourself. You can also trigger a rebase manually by commenting\n`@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits\nthat have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all\nof the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this\ngroup update PR and stop Dependabot creating any more for the specific\ndependency\u0027s major version (unless you unignore this specific\ndependency\u0027s major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this\ngroup update PR and stop Dependabot creating any more for the specific\ndependency\u0027s minor version (unless you unignore this specific\ndependency\u0027s minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR\nand stop Dependabot creating any more for the specific dependency\n(unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore\nconditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will\nremove the ignore condition of the specified dependency and ignore\nconditions\n\n\n\u003c/details\u003e\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "3eb9bba329d50b3c8cc5aa82e7a6b0be4e7cae31",
      "tree": "0cba84a7bbaa79236e8803685abc1bd22a269862",
      "parents": [
        "5fb1679080ac1206953fc9590a5310f670782655"
      ],
      "author": {
        "name": "Lekkala_Sravya-mcw",
        "email": "lekkala.sravya@multicorewareinc.com",
        "time": "Thu Jul 30 01:04:41 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 29 21:34:41 2026 +0200"
      },
      "message": "[Stream] Fold transferred stream clones into minimal slices before loads (#24740)\n\nThis PR Extends clone folding for `stream.async.load` and\n`stream.tensor.load` to\nhandle the staging transfer introduced before loads.\n\nBoth stream.async.load and stream.tensor.load require their source to be\na staging resource, while stream.async.clone and stream.tensor.clone\nalways produce non-staging resources. As a result, loads from cloned\nresources are always preceded by a stream.async.transfer.\n\nThis change matches the pattern:\n`\n  clone -\u003e transfer -\u003e load\n`\n\nand rewrites it to:\n`\n  slice -\u003e transfer -\u003e load\n`\n\nby creating a minimal slice of the original source, transferring only\nthat slice to staging, and loading from it. This avoids cloning and\ntransferring the entire resource when only a single value is accessed,\nwhile preserving the required staging semantics.\n\n---------\n\nSigned-off-by: LekkalaSravya3 \u003clekkala.sravya@multicorewareinc.com\u003e"
    },
    {
      "commit": "5fb1679080ac1206953fc9590a5310f670782655",
      "tree": "897ea27786ae22990acab39f25ed4d5ed96ea974",
      "parents": [
        "4fa94fab49f32f5724374193b8a18574e0f4dbbc"
      ],
      "author": {
        "name": "Jelle Schühmacher",
        "email": "schuehmacher@roofline.ai",
        "time": "Wed Jul 29 21:33:27 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 29 21:33:27 2026 +0200"
      },
      "message": "Optional sync func conversion (#24747)\n\nAdds an option to make async entry-point generation optional for torch\nprograms.\n\nThe coarse-fences ABI presumes queue-ordered execution and adds fence\nhandling into every entry point. When compiling for the inline HAL,\nexecution is synchronous and that machinery is not required.\n\nAssisted-by: Claude code\n\n---------\n\nSigned-off-by: Jelle Schuhmacher \u003cschuehmacher@roofline.ai\u003e\nCo-authored-by: ziereis \u003c44057120+ziereis@users.noreply.github.com\u003e"
    },
    {
      "commit": "4fa94fab49f32f5724374193b8a18574e0f4dbbc",
      "tree": "70c519833b8161f64cd4a415eab2ad152c5db352",
      "parents": [
        "a2459171e9d282bb8f5ef8b92be9a9af246e6d85"
      ],
      "author": {
        "name": "Zmicier Prybysh",
        "email": "zprybysh@baylibre.com",
        "time": "Wed Jul 29 20:00:15 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 29 20:00:15 2026 +0200"
      },
      "message": "[Runtime][RISCV] Detect `Zvfbfwma` via hwprobe for the bf16 mmt4d ukernel (#24767)\n\nWithout this bit being set the bf16 mmt4d tile functions added in #24695\nare unreachable on every board: `iree_uk_mmt4d_p()` falls through to\n`iree_uk_mmt4d_select_tile_func_generic()` and runs a generic scalar\ntile.\n\nDefine `RISCV_HWPROBE_EXT_ZVFBFWMA` (bit 54, per the kernel uapi\nasm/hwprobe.h) and copy it alongside the neighbouring `ZVFH/ZVFHMIN`\nbits. `ZVFBFWMA` is currently the only bf16 extension with a `cpu_data`\nfeature bit, so nothing else is added here.\n\nVerified with iree-cpuinfo built for riscv64 on SpacemiT K3 board.\n\nI was confused and didn\u0027t add it to #24695 both because i didn\u0027t have\naccess to K3 then, but also because it had an older kernel\n(pre-[67bec4a](https://github.com/spacemit-com/linux-6.18/commit/67bec4a41806b04b2a92eae3c98c28c146c5e52e))\nwhich didn\u0027t surface the Zvfbfwma in the device tree.\n\nSigned-off-by: Zmicier Prybysh \u003czprybysh@baylibre.com\u003e"
    },
    {
      "commit": "a2459171e9d282bb8f5ef8b92be9a9af246e6d85",
      "tree": "7f933ba502be0b11d943e28ca829aa36060846c5",
      "parents": [
        "0c639cd386614f5673be0f8f918f08aaf97a06c5"
      ],
      "author": {
        "name": "Jelle Schühmacher",
        "email": "schuehmacher@roofline.ai",
        "time": "Wed Jul 29 15:56:40 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 29 15:56:40 2026 +0200"
      },
      "message": "[Build] Fix GCC build (#24756)\n\nBuilding IREE with gcc intermittently runs out of memory and fails. \n\n - Limit the number of cores used for building to prevent this.\n - Disable erroneous warning (on GCC) \"array subscript is partly outside\narray bounds\".\n\n---------\n\nSigned-off-by: Jelle Schühmacher \u003cschuehmacher@roofline.ai\u003e\nSigned-off-by: Artem Gindinson \u003cgindinson@roofline.ai\u003e\nSigned-off-by: Jelle Schuhmacher \u003cschuehmacher@roofline.ai\u003e\nCo-authored-by: Artem Gindinson \u003cgindinson@roofline.ai\u003e"
    },
    {
      "commit": "0c639cd386614f5673be0f8f918f08aaf97a06c5",
      "tree": "0912a2db73af6b125e94b8d45b4cf636801cd1c2",
      "parents": [
        "c3ad7f4c73fc657376fa437140a51bd1e7afc09b"
      ],
      "author": {
        "name": "Tobias Fuchs",
        "email": "9053039+devtbi@users.noreply.github.com",
        "time": "Wed Jul 29 13:19:20 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 29 13:19:20 2026 +0200"
      },
      "message": "Integrate LLVM to llvm/llvm-project@e7fac4e39085 (#24765)\n\nAdapted optimize_int_arithmetic.mlir to prevent folding math ops to\nconstants (claude assisted).\nRegenerated CAPI export files.\n\nKeeping/carrying-over existing reverts:\n - [bazel] Correct config.h definitions for musl (#207295)\n - [AlwaysInliner] Do not inline on attribute mismatches (#209345)\n\nSigned-off-by: Tobias Fuchs \u003cfuchs@roofline.ai\u003e"
    },
    {
      "commit": "c3ad7f4c73fc657376fa437140a51bd1e7afc09b",
      "tree": "b94d55d75010d0fb83b19ccb8ad08f3cb72eb1d3",
      "parents": [
        "a0465a3d7dc13eb471c35ca401070988a521595f"
      ],
      "author": {
        "name": "Ege Beysel",
        "email": "beysel@roofline.ai",
        "time": "Mon Jul 27 12:33:40 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 27 12:33:40 2026 +0200"
      },
      "message": "[Docs] RVV Pipeline Blogpost (#24758)\n\nAdds a blog post on using the RISC-V backend of the LLVMCPU pipeline\nwith end-to-end examples and pointers to the necessary documentation.\n\nAssisted-by: Claude Code\n\n---------\n\nSigned-off-by: Ege Beysel \u003cbeyselege@gmail.com\u003e"
    },
    {
      "commit": "a0465a3d7dc13eb471c35ca401070988a521595f",
      "tree": "c2aa2f49ea3eda48677894758f4e29a89e757bc8",
      "parents": [
        "16396e421e8a58e0a95bb406f17683aefe699cee"
      ],
      "author": {
        "name": "Pooja Hemashekar",
        "email": "hemashekar@roofline.ai",
        "time": "Mon Jul 27 10:19:48 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 27 10:19:48 2026 +0200"
      },
      "message": "[Runtime] Add initial data-tiled conv ukernel (generic \u0026 avx512) (#24729)\n\nAdds a data-tiled convolution microkernel with a generic implementation\nand an avx512 optimized tile kernel with inner tile sizes (OW_TILE\u003d16,\nK0\u003d16, C0\u003d16).\n\nLayouts (c0 \u003d inner IC block, k0 \u003d inner OC block):\n    input [N, IC/c0, H, W, c0]\n    filter [OC/k0, IC/c0, FH, FW, c0, k0]\n    output [N, OC/k0, OH, OW, k0]\n\nThe ABI uses explicit outer-dimension strides. These strides refer to\nthe full parent tensor layout rather than the extracted slab, ensuring\ncorrect addressing when kernels operate on subviews of the tensor. Only\nthe inner W/c0/k0 dims are contiguous.\n\nScope: f32 only; dilation\u003d1 (dilated convs are not matched by the\ndispatch); requires the packed NCHWc layout, with the arch path selected\nonly for k0\u003dc0\u003d16. Additional types and tile shapes are future work.\n\n---------\n\nSigned-off-by: Pooja Hemashekar \u003chemashekar@roofline.ai\u003e"
    },
    {
      "commit": "16396e421e8a58e0a95bb406f17683aefe699cee",
      "tree": "8076b7d7d7b0d99bad26f6baacb897d36903266b",
      "parents": [
        "35b2070788e70693b3c04ecfd96b282c03a4bf26"
      ],
      "author": {
        "name": "Federico Bruzzone",
        "email": "federico.bruzzone.i@gmail.com",
        "time": "Fri Jul 24 08:44:38 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 24 08:44:38 2026 +0200"
      },
      "message": "[LLVMCPU] Fix scalable vectorization fallback on SME-only (no `+sve`) targets (#24693)\n\n**Stacked** on #24656.  Follow-up to #24661 / #24660.\n\nThis PR aims to removes the TODO introduced in #24656.\n\n#24661 fixed the ArmSME lowering pipeline to not require classic `+sve`\nwhen SME tiling is used. This PR fixes the same underlying problem for\nthe *fallback* path, which is what\u0027s used when the matmul falls back to\nit (e.g., `--iree-llvmcpu-disable-arm-sme-tiling`, or op types SME\ndoesn\u0027t support): compiling a scalable-vectorized matmul on a\n`+sme`-only target with SME tiling disabled crashed LLVM instruction\nselection with `Cannot select: vscale`.\n\nThe fix is scoped to a single function:\n`getMatmulVectorSizesUsingFillRegisterFileHeuristic` only checked\n`hasAnySVEFeature`, so on a `+sme`-only target it always fell back to\nnon-scalable NEON tiles. It now also picks scalable tiles when `+sme` is\npresent *and* the user has explicitly passed\n`--iree-llvmcpu-force-arm-streaming`.\n\nNet effect: \n1. Non-matmul ops: always Peeling.\n4. `linalg.matmul`, `+sme-only`, `disable-arm-sme-tiling\u003dtrue`, and\n`force-arm-streaming\u003dtrue`: still reaches SSVE (that\u0027s the actual fix),\nbut now goes through `Peeling + masked tail` instead of masking-only (as\nin #24661).\n\nUnrelated to #24689\n\n---------\n\nSigned-off-by: Federico Bruzzone \u003cfederico.bruzzone.i@gmail.com\u003e"
    },
    {
      "commit": "35b2070788e70693b3c04ecfd96b282c03a4bf26",
      "tree": "6677642d8114429e46a3a2743a2cc61a02c99cc5",
      "parents": [
        "5e31a849f6ebfd92760764537cc75ac4584f35d0"
      ],
      "author": {
        "name": "Federico Bruzzone",
        "email": "federico.bruzzone.i@gmail.com",
        "time": "Fri Jul 24 08:40:33 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 24 08:40:33 2026 +0200"
      },
      "message": "[Codegen][LLVMCPU] Hoist in-loop stack alloca (#24749)\n\n`HALDispatchABI::loadProcessorData` built its CPU-feature patch buffer\nwith an `alloca` at the ukernel call site instead of the function entry\nblock. `RewriteCallOpABI` materializes this after all MLIR-\u003eLLVM\nconversions are done, so no later pass can hoist it out of a loop if the\ncall happens to sit inside one, causing the stack to grow unboundedly on\nlarge matmuls.\n\nThe computation only depends on the function\u0027s `environment` argument\nand static target attributes, so it can safely move to the entry block.\n\nFixes #24744\n\n---------\n\nSigned-off-by: Federico Bruzzone \u003cfederico.bruzzone.i@gmail.com\u003e"
    },
    {
      "commit": "5e31a849f6ebfd92760764537cc75ac4584f35d0",
      "tree": "cb46a68e55a28e438e8cda63f829d4d5964976d5",
      "parents": [
        "b60b87ca48290afe1cbc3c51b35a4e81fa652f80"
      ],
      "author": {
        "name": "Pooja Hemashekar",
        "email": "hemashekar@roofline.ai",
        "time": "Thu Jul 23 15:43:10 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 23 15:43:10 2026 +0200"
      },
      "message": "[Codegen] KernelDispatch recognition and tiling for data-tiled conv (#24716)\n\nTeaches LLVMCPU KernelDispatch to recognize data-tiled convolution\ndispatches produced by encoding materialization and assigns them a\ndedicated root lowering config that vectorizes the output width (ow) and\nthe inner data-tiling channel dims (oc_inner, ic_inner, sizes k0/c0),\nand distributes batch (unit tiles), output channel blocks (oc_outer),\nand output height, with peeling enabled.\n\nCo-authored-by: Jelle Schuhmacher \u003cschuehmacher@roofline.ai\u003e\nAssisted-by: Claude code\nSigned-off-by: Pooja Hemashekar \u003chemashekar@roofline.ai\u003e\n\n---------\n\nSigned-off-by: Pooja Hemashekar \u003chemashekar@roofline.ai\u003e\nCo-authored-by: Jelle Schuhmacher \u003cschuehmacher@roofline.ai\u003e"
    },
    {
      "commit": "b60b87ca48290afe1cbc3c51b35a4e81fa652f80",
      "tree": "9c045c0f1dd0c4c22b58a63022f875a597f41f46",
      "parents": [
        "00713077fc3887265d689b2d84a795a3756ccd10"
      ],
      "author": {
        "name": "Maksymilian B. Knust",
        "email": "knust@roofline.ai",
        "time": "Thu Jul 23 15:12:32 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 23 13:12:32 2026 +0000"
      },
      "message": "Integrate LLVM to llvm/llvm-project@a3ae4996bb22 (#24750)\n\nAutomatically regenerated CAPI export files.\nKeeping existing revert commits (not resolved in upstream yet).\n\nSigned-off-by: Maksymilian B. Knust \u003cknust@roofline.ai\u003e"
    },
    {
      "commit": "00713077fc3887265d689b2d84a795a3756ccd10",
      "tree": "ae2a320c57df2c31afa42623b14fa092fdb49946",
      "parents": [
        "ac3e5af7921f493386282083614a3a89113d07f3"
      ],
      "author": {
        "name": "Jelle Schühmacher",
        "email": "schuehmacher@roofline.ai",
        "time": "Thu Jul 23 09:51:14 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 23 09:51:14 2026 +0200"
      },
      "message": "Fix samples build (#24743)\n\nFixes the failing samples build.\n\n - Sets torch requirement for notebooks to `torch\u003d\u003d2.11.0`.\n - Strips (local) cell output.\n\n---------\n\nSigned-off-by: Jelle Schuhmacher \u003cschuehmacher@roofline.ai\u003e"
    },
    {
      "commit": "ac3e5af7921f493386282083614a3a89113d07f3",
      "tree": "c81085fbf6d3e788fc887384dbd068e01a63126b",
      "parents": [
        "e4945117a114b6c7568686f91bae2f2f56addc0b"
      ],
      "author": {
        "name": "Pooja Hemashekar",
        "email": "hemashekar@roofline.ai",
        "time": "Wed Jul 22 19:04:31 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 22 19:04:31 2026 +0200"
      },
      "message": "[Codegen] Materialize encoding info for convolution with NCHWc layout (#24714)\n\nImplements convolution encoding materialization for data-tiled layouts.\n\nLayouts:\n- Input:  [N, IC/c0, H, W, c0]\n- Filter: [OC/k0, IC/c0, FH, FW, c0, k0]\n- Output: [N, OC/k0, OH, OW, k0]\n\nwhere k0 and c0 are the inner tile sizes for the output and input\nchannels, respectively.\n\nScope:\n\n- Only 2D convolutions receive a data-tiled layout. \n- Grouped, depthwise, 1D, and 3D convolutions, and non-unit dilations,\nall materialize to the identity layout (existing un-tiled path, no\nbehavior change for these cases).\n   - Arbitrary strides are supported.\n- Supports packed rank-5 input/output and rank-6 filter tensors. Rank-4\ninput/output is also accepted when `N\u003d1` batch dimension has been folded\nby upstream passes.\n- Currently supports fp32 convolutions only.\n\nSupported input forms:\n- nhwc_hwcf\n- nchw_fchw\n- nhwc_fhwc\n\nAll are materialized to the same packed NCHWc layout above.\n\nArchitecture-specific inner tiles:\n\n| Architecture | Condition | Inner tile (OC, IC) | Target ISA |\n\n|--------------|-------------------|---------------------|-----------------|\n| x86-64 | float, `+avx512f` | `{16,16}` | `VFMADD*` (zmm) |\n| arm64 | float | `{8,8}` | `FMLA` (NEON) |\n\nAll other configurations materialize to the identity layout.\n\nLayout motivation can be found here:\nhttps://hackmd.io/@phemashekar/conv-dt-layout\n\n---\n\nCo-authored-by: Jelle Schuhmacher \u003cschuehmacher@roofline.ai\u003e\nCo-authored-By: Claude Opus 4.8 (1M context) \u003cnoreply@anthropic.com\u003e\nSigned-off-by: Pooja Hemashekar \u003chemashekar@roofline.ai\u003e\n\n---------\n\nSigned-off-by: Pooja Hemashekar \u003chemashekar@roofline.ai\u003e\nCo-authored-by: Jelle Schuhmacher \u003cschuehmacher@roofline.ai\u003e\nCo-authored-by: Ege Beysel \u003cbeyselege@gmail.com\u003e"
    },
    {
      "commit": "e4945117a114b6c7568686f91bae2f2f56addc0b",
      "tree": "1254c35df3c47dbdb8aaed5ce59c2325bc4a08d8",
      "parents": [
        "bc908fd620d7378d1e2da0bff6ee70d77a965110"
      ],
      "author": {
        "name": "Kamil Karwacki",
        "email": "39648860+KamilKarwacki@users.noreply.github.com",
        "time": "Wed Jul 22 15:35:12 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 22 15:35:12 2026 +0200"
      },
      "message": "[LinalgExt][Attention] Specialize generics to matmuls (#24668)\n\nSpecialize generic matmul to named one in decompose-attention to prevent\nBubbleUpExpandShapes from propagating reshapes through contractions,\npreserving codegen-friendly structure for microkernels.\n\nSigned-off-by: Kamil Karwacki \u003ckarwacki@roofline.ai\u003e\nCo-authored-by: Thomas Ziereis \u003cziereis@roofline.ai\u003e"
    },
    {
      "commit": "bc908fd620d7378d1e2da0bff6ee70d77a965110",
      "tree": "71a7b03495dca7b586d8a2bd8a7f56ced1cee637",
      "parents": [
        "e53a335559976a31ed23225480a1baff823d2888"
      ],
      "author": {
        "name": "Zmicier Prybysh",
        "email": "zprybysh@baylibre.com",
        "time": "Wed Jul 22 14:07:17 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 22 12:07:17 2026 +0000"
      },
      "message": "[LLVMCPU][RISCV] Add RVV bf16 mmt4d ukernel using the Zvfbfwma widening MAC (bf16*bf16-\u003ef32) (#24695)\n\n## Summary\n\nOn RISC-V, a data-tiled bf16 matmul was computed by promoting LHS/RHS to\nf32, ignoring the `Zvfbfwma` bf16 widening multiply-accumulate extension\n(`vfwmaccbf16`) that LLVM already lowers to and that shipping silicon\nimplements. This PR adds a native `bf16 x bf16 -\u003e f32` `mmt4d`\nmicrokernel for RVV+`Zvfbfwma`. Naturally, this change is related to\n(and was implementing looking at) the existing f32, `int8` (#23734), and\nf16/`Zvfh` (#22231) ukernels.\n\n## How the change was tested\n\n1. Compiler e2e\nA `128x256 bf16 * 256x128 bf16 -\u003e 128x128 f32` matmul compiled for\n`riscv64 +v,+zvfbfwma` with `--iree-opt-data-tiling\n--iree-llvmcpu-enable-ukernels\u003dall`:\n   Before: dispatch contains `arith.extf` f32-promotion, no ukernel.\nAfter: `Mmt4dTilingExpert` dispatch `matmul_128x128x256_bf16xbf16xf32`\nwith `iree_uk_mmt4d` + `iree_uk_pack`; **zero `arith.extf`**; all four\n`iree_uk_mmt4d_tile_bf16bf16f32_*_riscv_64_zvfbfwma` symbols present;\ngenerated RISC-V asm inner loop is `vfwmaccbf16.vf`.\n2. Numerics under `qemu-riscv64`\nA standalone harness calling the real tile functions matches an f32\nreference exactly. A control run without the extension crashes,\nconfirming `vfwmaccbf16` is genuinely executed. I used qemu 8.2 which\nexposes the extension as the experimental `-cpu max,x-zvfbfwma\u003dtrue`\nproperty.\n3. Tile selection under `qemu-riscv64`.\nVerified `iree_uk_mmt4d_select_tile_func_arch` (the\n`entry_point.c`/`tiles.inl` wiring) returns the correct bf16 tile for\neach M0 value when `cpu_data` has the `Zvfbfwma` bit, and does not\nselect it when the bit is clear — i.e. the feature is only enabled for\n`Zvfbfwma`.\n4. In-tree `mmt4d_test`.\nThe added case exercises the same path in CI\u0027s RISC-V cross-build (falls\nback to the generic tile if the CI toolchain can\u0027t assemble `Zvfbfwma`,\ni think it\u0027s the same limitation as `Zvfh` in #22303).\n\n### A note on CI coverage\n\nIf I understand correctly, the RISC-V CI job runs under an older\n`qemu-riscv64` on a stock `rv64gcv` profile that doesn\u0027t expose\n`Zvfbfwma`, and `mmt4d_test` *skips* (does not fail) any case whose\nfeature the runtime CPU lacks. Zvfbfwma is only assembled/executed on a\ntoolchain + qemu new enough to support it (qemu ≥ 8.2 exposes it as the\nexperimental `x-zvfbfwma` property). My point is: a green CI does not\nmean the bf16 kernel ran in CI — the functional validation of record is\nthe local `qemu-riscv64` 8.2 numerics + tile-selection runs described\nabove.\n\nDisclosure: this change was assisted by Claude Code, but the change was\nreviewed and thoroughly tested before being submitted.\n\n---------\n\nSigned-off-by: Zmicier Prybysh \u003czprybysh@baylibre.com\u003e"
    },
    {
      "commit": "e53a335559976a31ed23225480a1baff823d2888",
      "tree": "7cde3dbce75573fe5e0b05102750d869d81fcb8a",
      "parents": [
        "f9f4c9dbb4c17c766e8b83ee75cb05798ba6e808"
      ],
      "author": {
        "name": "Ege Beysel",
        "email": "beysel@roofline.ai",
        "time": "Tue Jul 21 17:44:31 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jul 21 15:44:31 2026 +0000"
      },
      "message": "[LIT][LLVMCPU] fix failing rvv lowering strategy test (#24739)\n\nhttps://github.com/iree-org/iree/pull/24709 and\nhttps://github.com/iree-org/iree/pull/24601 merged one after the other,\nthe CI did not run again in-between on the merge base of the latter.\nThis adjusts the tile sizes selected according to the former.\n\nSigned-off-by: Ege Beysel \u003cbeyselege@gmail.com\u003e"
    },
    {
      "commit": "f9f4c9dbb4c17c766e8b83ee75cb05798ba6e808",
      "tree": "a7f12cfd0e181c60daae3930d6b615fb061469c1",
      "parents": [
        "adb29863b97067b1303714c920d0dcdf58e47135"
      ],
      "author": {
        "name": "Ege Beysel",
        "email": "beysel@roofline.ai",
        "time": "Tue Jul 21 16:00:42 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jul 21 16:00:42 2026 +0200"
      },
      "message": "[Codegen][LLVMCPU] fix tile size selection for consumer unpack ops (#24709)\n\nIn the case of consumer pack operations, e.g. `mmt4d -\u003e unpack`\ndispatches, the tile sizes set for the unpack operation did not reflect\nunpacked destination dimension, but rather the outer source dimensions.\nThis PR fixes that. Correct tile sizes are necessary for vectorization\nand tile size alignment hints in case of scalable vectors.\n\nAlso, refactors the `(undo)scaleAndPermutateTilingForPack/UnpackOp`\nhelpers were a bit confusing, I switched `scaling` and `undoScaling` and\nintroduced a new helper method for code-sharing.\n\n---------\n\nSigned-off-by: Ege Beysel \u003cbeyselege@gmail.com\u003e"
    }
  ],
  "next": "adb29863b97067b1303714c920d0dcdf58e47135"
}
