)]}'
{
  "log": [
    {
      "commit": "4da7d8644b9f89150b3f9786ce99578d88f63935",
      "tree": "47450b111d4d5f2a1a41f11a8254943b27ce1003",
      "parents": [
        "1495d220a19cc575908a10de83b706f8987e493a"
      ],
      "author": {
        "name": "Kaviya Rajendiran",
        "email": "67495422+kaviya2510@users.noreply.github.com",
        "time": "Thu Aug 27 12:01:45 2026 +0530"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Aug 26 23:35:38 2026 -0700"
      },
      "message": "[Flang][MLIR] Move setOpenMPIntegerWrapAround function into the OpenMP dialect (#217448)\n\n- Fixed the linker error: `undefined reference\nto\u0027mlir::omp::IntegerWrapAroundAttr::get(mlir::MLIRContext*, bool)\u0027`\nmentioned in mentioned in\n[PR#214165](https://github.com/llvm/llvm-project/pull/214165#issuecomment-5323821248)\nby moving the `setOpenMPIntegerWrapAround(...)` helper function out of\n`flang/Tools/CrossToolHelpers.h` and placed it into the OpenMP dialect\nutilities.\n\nGitOrigin-RevId: e3dade763e9c70e5d14dc2478c2ea9837838ce62\n"
    },
    {
      "commit": "1495d220a19cc575908a10de83b706f8987e493a",
      "tree": "93c4ca7871009546bc84c06a159a63344858572e",
      "parents": [
        "b5f1fa0f970f05a6318b0c3b80bdfce72c7281e1"
      ],
      "author": {
        "name": "Christian Ulmann",
        "email": "christianulmann@gmail.com",
        "time": "Thu Aug 27 07:10:09 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Aug 26 22:11:16 2026 -0700"
      },
      "message": "[mlir] Build llvm.mlir.constant attributes from the result type (#218607)\n\nMany conversion patterns created `llvm.mlir.constant` with a value\nattribute whose type does not match the result type. The most common\ncase was pairing an `index`-typed attribute with the converted index\ntype:\n\n```\nllvm.mlir.constant(1 : index) : i64\n```\n\nbut there were also plain width and signedness mismatches, e.g. NVGPU\u0027s\n`makeI64Const` built `i64` constants from `i32` attributes, and the NVVM\n`fdiv` expansion used `ui32` attributes on `i32` values.\n\nTranslation to LLVM IR ignores the attribute type and uses the result\ntype, so the emitted IR was correct, but the attribute type is\nmeaningless in this state and anything that reads it back sees the wrong\ntype. Derive the attribute from the result type in every case; where the\nresult is the converted index type, `LLVM::createIndexAttrConstant` now\ndoes this for all of its callers.\n\nIn `ArithToLLVM`, retype the value attribute when the type converter\nmaps `index` to a different integer type. Two element type changes must\nnot be retyped: the low-precision float types that the converter maps to\na same-width\ninteger keep their float attribute, which `llvm.mlir.constant` accepts\nand takes the float semantics from, and a resource-backed elements\nattribute refers to a blob laid out for its own element type. Anything\nelse is a malformed `arith.constant`, and the match fails rather than\nreinterpreting its value.\n\n`WmmaOpsToNvvm` builds its leading dimension attribute from the `i32`\nresult, so reject a value that does not fit instead of narrowing it\nsilently.\n\nThis is in preparation for verifying that the two types agree.\n\n---------\n\nCo-authored-by: Claude Opus 5 (1M context) \u003cnoreply@anthropic.com\u003e\nGitOrigin-RevId: 325a853c12648a2dce256c31c2da0bded11dd079\n"
    },
    {
      "commit": "b5f1fa0f970f05a6318b0c3b80bdfce72c7281e1",
      "tree": "1e75e77ba4809994bde4443c9611f4185a64546d",
      "parents": [
        "841d1d9a58e7edb147b60739685c56d8e18e2c91"
      ],
      "author": {
        "name": "Mehdi Amini",
        "email": "joker.eph@gmail.com",
        "time": "Thu Aug 27 02:38:43 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Aug 26 17:40:55 2026 -0700"
      },
      "message": "[mlir][IR] Require inherent symbol attributes for Symbol operations (#218920)\n\nRequire SymbolTable operations to implement SymbolOpInterface and store\nsymbol names and visibility as inherent attributes.\n\nAdd missing symbol properties/interfaces to GPU, OpenACC, OpenMP, EmitC,\nand Toy operations, and update affected tests and the GPU Python\nbuilder.\n\nAssisted-by: Codex\nGitOrigin-RevId: 979b722373384babff6ea2befe17c5c1c93b64bd\n"
    },
    {
      "commit": "841d1d9a58e7edb147b60739685c56d8e18e2c91",
      "tree": "2c88bdbaae0078b33eaaa73bc1575e92ac49ff68",
      "parents": [
        "306fd1fda45f11d0537f697de0fe482e73f274e9"
      ],
      "author": {
        "name": "Mehdi Amini",
        "email": "joker.eph@gmail.com",
        "time": "Thu Aug 27 00:55:41 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Aug 26 16:00:47 2026 -0700"
      },
      "message": "[mlir][Linalg] Split explicit inherent/discardable attribute APIs access (#218916)\n\nMigrate Linalg, Bufferization, and MemRef users to explicit discardable\nor operation-specific attribute access, including the Linalg generator\nand C API.\n\nAssisted-by: Codex\nGitOrigin-RevId: 8fe50937417b74c835fa9fcfb12aae9fe46af3f0\n"
    },
    {
      "commit": "306fd1fda45f11d0537f697de0fe482e73f274e9",
      "tree": "f09fd1d43639067aa1e3826ed9b7163c6dd9662a",
      "parents": [
        "9c3472ec9af3241cbf227777534a5fd595541da0"
      ],
      "author": {
        "name": "Mehdi Amini",
        "email": "joker.eph@gmail.com",
        "time": "Wed Aug 26 23:06:56 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Aug 26 14:10:46 2026 -0700"
      },
      "message": "[MLIR][Analysis] Fix incorrect RegionBranchOpInterface API usage in SliceWalk (#188758)\n\n`getControlFlowPredecessors` was passing `opResult.getResultNumber()`\nand `blockArg.getArgNumber()` directly as the `index` argument to\n`getPredecessorValues`. However, `getPredecessorValues` expects an index\ninto `getSuccessorInputs()`, not into the full result/block-argument\nlist.\n\nIf an op implementing `RegionBranchOpInterface` has results or block\narguments that are not successor inputs (e.g., an `scf.for`-like op\nreturning an additional loop counter that is not an `iter_arg`), the\npassed index would be out of bounds.\n\nFix both cases by first looking up the value in `getSuccessorInputs()`\nand using the found position as the index. If the value is not a\nsuccessor input, return `std::nullopt` since it has no control-flow\npredecessors.\n\nFixes #175168\n\nAssisted-by: Claude Code\nGitOrigin-RevId: 39e3e92e4cce60990594ef36d8b0427c4ea0ad16\n"
    },
    {
      "commit": "9c3472ec9af3241cbf227777534a5fd595541da0",
      "tree": "0b6de8f67c060ee16c191a63e854c27dae880f7f",
      "parents": [
        "6771ea8983b4f62a5f9004b91ad966b3af467008"
      ],
      "author": {
        "name": "Ingo Müller",
        "email": "ingomueller@google.com",
        "time": "Wed Aug 26 18:33:12 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Aug 26 09:35:30 2026 -0700"
      },
      "message": "[mlir:tblgen] Qualify access to `getContext` to fix #218872. (#218951)\n\nWith #218872, some code generated by `tblgen` containing `getContext()`\nnow uses `OpTyp::getContext()` if that op has a `context` property\ninstead of the intendend `Operation::getContext()`. This PR qualifies\nthe access such that the intended function is always called.\n\nSigned-off-by: Ingo Müller \u003cingomueller@google.com\u003e\nGitOrigin-RevId: a9797b1c90c8f7fce318fc9cf32d0c7c04c0bb2d\n"
    },
    {
      "commit": "6771ea8983b4f62a5f9004b91ad966b3af467008",
      "tree": "fb93e568a0bad634b9b79c6fc3ce193b5c2c5c4d",
      "parents": [
        "c815cb9a74680bb0a19c7aaa5057b29ae80572f0"
      ],
      "author": {
        "name": "Kazu Hirata",
        "email": "kazu@google.com",
        "time": "Wed Aug 26 08:29:56 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Aug 26 08:36:22 2026 -0700"
      },
      "message": "[mlir] Remove dead forward declarations (#218863)\n\nThis patch removes forward declarations of classes and structs that\nare no longer referenced anywhere in MLIR.\n\nGitOrigin-RevId: dc03113d26f351151c947a789e4ac03e05e62fee\n"
    },
    {
      "commit": "c815cb9a74680bb0a19c7aaa5057b29ae80572f0",
      "tree": "6b2bdebd246e7e57d705d1513c4c1c0be15464aa",
      "parents": [
        "37b7f85002bebce127b16e72de866c4bc818544c"
      ],
      "author": {
        "name": "Mehdi Amini",
        "email": "joker.eph@gmail.com",
        "time": "Wed Aug 26 17:12:40 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Aug 26 08:16:32 2026 -0700"
      },
      "message": "[mlir][Tosa] Use split discardable/inherent attribute APIs (#218912)\n\nUse typed operation accessors and explicit discardable attribute APIs in\nthe Tosa dialect, conversions, target handling, and validation.\n\nAssisted-by: Codex\nGitOrigin-RevId: c9b1787703fe223a71468ec033bc0be99740bb14\n"
    },
    {
      "commit": "37b7f85002bebce127b16e72de866c4bc818544c",
      "tree": "bceba55c05104cf9ec73cf6b25102e4d587ea2b5",
      "parents": [
        "8a8104969b8583b8a96af57aad8b4baa48478408"
      ],
      "author": {
        "name": "Mehdi Amini",
        "email": "joker.eph@gmail.com",
        "time": "Wed Aug 26 16:54:57 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Aug 26 08:00:59 2026 -0700"
      },
      "message": "[MLIR][X86] Track shuffled write operand updates (#218936)\n\nNotify pattern rewrite listeners while replacing the operands of both\nwrite-like users after accumulator shuffling.\n\nAdd focused coverage that does not depend on the separate accumulator\nrewrite.\n\nAssisted-by: Codex\nGitOrigin-RevId: 6160b5a84593c147211d6e6a4743e2d73b905e53\n"
    },
    {
      "commit": "8a8104969b8583b8a96af57aad8b4baa48478408",
      "tree": "928b25d2ef4578e47486d5b091cce7a47e41b8f0",
      "parents": [
        "582be202178315e468544d75ed02c86ffeaf8236"
      ],
      "author": {
        "name": "Mehdi Amini",
        "email": "joker.eph@gmail.com",
        "time": "Wed Aug 26 16:42:20 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Aug 26 07:45:31 2026 -0700"
      },
      "message": "[mlir][OpenACC][OpenMP] Migrate to use explicit discardable/inherent attribute APIs (#218901)\n\nUse discardable attribute APIs and typed operation accessors throughout\nthe OpenACC and OpenMP dialects, conversions, translation, utilities,\nand tests.\n\nKeep ComputeRegionOp inherent properties in the property dictionary and\ndiscardable attributes in the attribute dictionary.\n\nAssisted-by: Codex\nGitOrigin-RevId: 5d3a3b5023c3c187e2fc91d76695f09b9d7fc4a5\n"
    },
    {
      "commit": "582be202178315e468544d75ed02c86ffeaf8236",
      "tree": "3c8d82218f2963e13ddc20aea1d699e9bb2e5152",
      "parents": [
        "595786b9c7b8d1c2749988e4a89112d6cda5f23c"
      ],
      "author": {
        "name": "Matthias Springer",
        "email": "me@m-sp.org",
        "time": "Wed Aug 26 14:45:53 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Aug 26 05:50:11 2026 -0700"
      },
      "message": "[mlir][IR] Fix symbol visibility API (#218910)\n\nFix `SymbolTable::get/setSymbolVisibility`. These functions used to\nread/write the hard-coded `sym_visibility` attribute, even though the op\nmay store visibility in a different way. The new implementations\ndispatch to `SymbolOpInterface::get/setVisibility`.\n\nNo change in functionality for the interface methods: Their default\nimplementations still read/write `sym_visibility`. (That may change in a\nfollow-up commit.) This commit just aligns the\n`SymbolTable::get/setSymbolVisibility` API with the op interface.\n\nAlso turn `SymbolOpInterface::isNested/setNested/...` into\nnon-overridable helper functions. Users should implement\n`SymbolOpInterface::get/setVisibility` instead.\n\nAssisted-by: Opus 5 High\nGitOrigin-RevId: 180a0fc57c88e588388114473fc7e062acecf7d4\n"
    },
    {
      "commit": "595786b9c7b8d1c2749988e4a89112d6cda5f23c",
      "tree": "dd2d8ad8b4324d9de3712b023fa8b96ef38cb20f",
      "parents": [
        "ecc422147cbbfb9ff8a62c17237669bb74cc552c"
      ],
      "author": {
        "name": "Mehdi Amini",
        "email": "joker.eph@gmail.com",
        "time": "Wed Aug 26 14:40:39 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Aug 26 05:45:54 2026 -0700"
      },
      "message": "[mlir][Bufferization] Separate AllocTensorOp properties from discardable attribute in assembly (#218914)\n\nPrint and parse inherent properties separately from discardable\nattributes in the AllocTensorOp custom assembly format.\n\nKeep operand segment sizes inferred from the operand syntax and move\nmemory space spellings to the property dictionary.\n\nAssisted-by: Codex\nGitOrigin-RevId: bfd1a003fb33c85a4ac3618cc0ab303851138e0b\n"
    },
    {
      "commit": "ecc422147cbbfb9ff8a62c17237669bb74cc552c",
      "tree": "1fdc5e7c96555c8e455a8dd88b5f94e6a1031553",
      "parents": [
        "3eeb113548ea3344f7defa1ebba8cd69e4c02f86"
      ],
      "author": {
        "name": "Mehdi Amini",
        "email": "joker.eph@gmail.com",
        "time": "Wed Aug 26 14:19:09 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Aug 26 05:21:06 2026 -0700"
      },
      "message": "[mlir][IR][Rewrite] Use split inherent/discardable attribute APIs (#218907)\n\nMigrate core IR implementation, interfaces, rewriting, pass printing,\nand focused tests to explicit discardable or inherent attribute access.\n\nAssisted-by: Codex\nGitOrigin-RevId: ad9dc60252ed6c43fb0667dc0fad7df995651235\n"
    },
    {
      "commit": "3eeb113548ea3344f7defa1ebba8cd69e4c02f86",
      "tree": "a6611dcb397a39a6338c8d97b3b9569a335a3bac",
      "parents": [
        "9145e029d386505a4f46a63dcf23ac32ae55b700"
      ],
      "author": {
        "name": "Mehdi Amini",
        "email": "joker.eph@gmail.com",
        "time": "Wed Aug 26 14:11:48 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Aug 26 05:15:50 2026 -0700"
      },
      "message": "[mlir][SparseTensor] Use split discardable/inherent attribute APIs (#218904)\n\nMigrate SparseTensor IR, lowering, code generation, and loop emission to\nexplicit discardable or operation-specific attribute access.\n\nAssisted-by: Codex\nGitOrigin-RevId: aa09790aa0515bebc0d3f05094bed4129a6accf5\n"
    },
    {
      "commit": "9145e029d386505a4f46a63dcf23ac32ae55b700",
      "tree": "465d514455d75fb537ddc494f2b73f2f861001a1",
      "parents": [
        "aec41d725320ea077866ebf839b769476e9d2056"
      ],
      "author": {
        "name": "Mehdi Amini",
        "email": "joker.eph@gmail.com",
        "time": "Wed Aug 26 14:08:40 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Aug 26 05:10:48 2026 -0700"
      },
      "message": "[mlir][Func][Async][EmitC] Use split discardable/inherent attribute APIs (#218905)\n\nUse operation-specific accessors and explicit discardable attribute APIs\nin the Func, Async, and EmitC dialects and their associated conversions.\n\nAssisted-by: Codex\nGitOrigin-RevId: 20ad451eda12c8fa656f884f009f7da079a92059\n"
    },
    {
      "commit": "aec41d725320ea077866ebf839b769476e9d2056",
      "tree": "0ead589e7700cbdd5e5a092b32be12f44f9726ca",
      "parents": [
        "c852ae9753a9bc1393c2a227dcdeec2f9433a7a0"
      ],
      "author": {
        "name": "Mehdi Amini",
        "email": "joker.eph@gmail.com",
        "time": "Wed Aug 26 14:04:46 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Aug 26 05:07:02 2026 -0700"
      },
      "message": "[MLIR][Shape] Enable strict property assembly format (#218903)\n\nEnable the strict properties assembly format mode for the Shape dialect.\n\nBind the broadcast diagnostic attribute directly. Keep its optional\nclause unambiguous after variadic operands, and cover the custom and\nrejected attr-dict spellings.\n\nAssisted-by: Codex\nGitOrigin-RevId: 2e32621806b3fa66f995fe604d3580d93b13da75\n"
    },
    {
      "commit": "c852ae9753a9bc1393c2a227dcdeec2f9433a7a0",
      "tree": "4aba57359d243eb474c50f207e27348598467213",
      "parents": [
        "4c2244b81a6846014944e22327709bb8f930bcf8"
      ],
      "author": {
        "name": "Mehdi Amini",
        "email": "joker.eph@gmail.com",
        "time": "Wed Aug 26 13:00:32 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Aug 26 04:05:44 2026 -0700"
      },
      "message": "[mlir][CAPI] Use explicit inherent/discardable attribute split APIs (#218884)\n\nUse explicit discardable attribute iteration in the core C API and scope\nthe remaining compatibility accessors under deprecation suppression.\n\nAssisted-by: Codex\nGitOrigin-RevId: 1aca28879aeb3dcc3f11a262740ec5289ed83ec0\n"
    },
    {
      "commit": "4c2244b81a6846014944e22327709bb8f930bcf8",
      "tree": "ec5cd1ede92956b19c4d97d877ce65a548c82864",
      "parents": [
        "30900eaad32c5e77bb373f2b2ea5a15918f09aba"
      ],
      "author": {
        "name": "Mehdi Amini",
        "email": "joker.eph@gmail.com",
        "time": "Wed Aug 26 12:39:03 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Aug 26 03:41:33 2026 -0700"
      },
      "message": "[mlir][Analysis] Use explicit attribute APIs to distinguish between inherent/discardable attrs (#218878)\n\nMigrate analysis implementations and test utilities to explicit\ndiscardable or inherent operation attribute access.\n\nAssisted-by: Codex\nGitOrigin-RevId: feecf868f0650915f9db5ee0c54fc2232132db88\n"
    },
    {
      "commit": "30900eaad32c5e77bb373f2b2ea5a15918f09aba",
      "tree": "c23c575a64e9e59420a3f3400c0e9e2d32d211f2",
      "parents": [
        "dc7d2911fa43328a6acd6a8087e723a65cc06bcb"
      ],
      "author": {
        "name": "Mehdi Amini",
        "email": "joker.eph@gmail.com",
        "time": "Wed Aug 26 12:37:34 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Aug 26 03:41:20 2026 -0700"
      },
      "message": "[mlir][Bytecode] Use explicit attribute APIs to split inherent/discardable attr access (#218880)\n\nUse explicit discardable and inherent attribute access when numbering\nand writing bytecode, and update the focused unit coverage.\n\nAssisted-by: Codex\nGitOrigin-RevId: aac9efdc468c2b2dd564e4333f11ddd88d04c4ae\n"
    },
    {
      "commit": "dc7d2911fa43328a6acd6a8087e723a65cc06bcb",
      "tree": "69ac301e40d9d81d75db88c26b597acdbc6fedd6",
      "parents": [
        "2afb180bb17f8f9dbdbd1284a53e6cddf72211a3"
      ],
      "author": {
        "name": "Mehdi Amini",
        "email": "joker.eph@gmail.com",
        "time": "Wed Aug 26 12:13:37 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Aug 26 03:17:05 2026 -0700"
      },
      "message": "[mlir][ODS] Migrate generated and test attribute access to use split inherent/properties API (#218872)\n\nTeach operation generators and the test dialect to use explicit\ndiscardable or inherent attribute APIs. Update TableGen unit coverage\nfor the generated accessors.\n\nAssisted-by: Codex\nGitOrigin-RevId: 98bd02564ead9b39d964b69d62c55cc2d3827fa9\n"
    },
    {
      "commit": "2afb180bb17f8f9dbdbd1284a53e6cddf72211a3",
      "tree": "407b210c4a729c5a448c76a38067d283d97ae7b4",
      "parents": [
        "6262c3350ecdab0491ac91025f729c54bcc3f3c9"
      ],
      "author": {
        "name": "Mehdi Amini",
        "email": "joker.eph@gmail.com",
        "time": "Wed Aug 26 12:11:04 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Aug 26 03:16:55 2026 -0700"
      },
      "message": "[MLIR][XeGPU] Enable strict property assembly format (#217281)\n\nEnable strict property assembly format mode for XeGPU. Spell the DPAS\nand atomic layout properties directly in custom assembly formats so\ntheir syntax remains explicit under strict parsing.\n\nUpdate XeGPU tests to use the direct layout spelling for those\noperations.\n\nAssisted-by: Codex\nGitOrigin-RevId: b73a8b8d8c171a3d5640c9bdd14ba5a9f582b66b\n"
    },
    {
      "commit": "6262c3350ecdab0491ac91025f729c54bcc3f3c9",
      "tree": "ea8dd9bc0f2a8825e40ce9a213b7d6454439d320",
      "parents": [
        "8d142d2c5e1661a670b561e59b3847729da0c6a2"
      ],
      "author": {
        "name": "Mattéo Rizza Murgier",
        "email": "matteo.rizza-murgier@sipearl.com",
        "time": "Wed Aug 26 12:05:31 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Aug 26 03:10:28 2026 -0700"
      },
      "message": "[mlir][docs] Fix typos in QuickstartRewrites tutorial (#218849)\n\nGitOrigin-RevId: 658465287d4f494f557960a1d84ba618ddef908b\n"
    },
    {
      "commit": "8d142d2c5e1661a670b561e59b3847729da0c6a2",
      "tree": "f238c2324049125ae8176c8e45238de2f6d353f6",
      "parents": [
        "65a0bf86df08d2283ea68e35546f6e76790f34ff"
      ],
      "author": {
        "name": "Abid Qadeer",
        "email": "haqadeer@amd.com",
        "time": "Wed Aug 26 10:51:30 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Aug 26 02:56:11 2026 -0700"
      },
      "message": "Reland \"[OMPIRBuilder] Don\u0027t use invalid debug loc in task proxy fn.\" (#218427)\n\nThe proxy function built by `emitTargetTaskProxyFunction` inherited\nwhatever debug location the builder happened to carry, which belongs to\nthe target region rather than to the proxy. Save and restore the\ninsertion point around the proxy and clear the debug location while it\nis emitted, so its instructions get none.\n\nHistory of this change:\n\n  Landed in https://github.com/llvm/llvm-project/pull/148284\n  Reverted in https://github.com/llvm/llvm-project/pull/148728\nSanitizer issue fixed in\nhttps://github.com/llvm/llvm-project/pull/148887\n\nThe revert was needed because the `InsertPointGuard` added here restores\nan insertion point that the `PostOutlineCB` callbacks had meanwhile\ninvalidated: they erase the instruction the insertion point refers to,\nso the guard read freed memory in its destructor. #148887 clears the\ninsertion point before those erases, which removes the dangling\nreference this patch would otherwise expose, so the change is safe to\nreapply now.\n\nVerified by reverting #148887 on top of this patch and running the\nOpenMP translation tests under valgrind: omptarget-depend.mlir and\nomptarget-if-nowait.mlir report an invalid read in\nInsertPointGuard::~InsertPointGuard() of memory freed by\nInstruction::eraseFromParent() in createTask. With #148887 in place, all\n185 tests are clean.\n\nThe test also needed updating for syntax that changed while this was out\nof tree: omp.target now takes a kernel_type clause, and omp.map.info no\nlonger accepts name in the attribute dictionary.\n\nCo-authored-by: Cursor \u003ccursoragent@cursor.com\u003e\nGitOrigin-RevId: a791ba532b1db1d1c3a1c6daf1c4137b5ab5b99a\n"
    },
    {
      "commit": "65a0bf86df08d2283ea68e35546f6e76790f34ff",
      "tree": "b4c93d016a8354b1add9b98066b74f127517e615",
      "parents": [
        "bbd5f5669da60c2148c6f2231561fcadec52d71e"
      ],
      "author": {
        "name": "Mattéo Rizza Murgier",
        "email": "matteo.rizza-murgier@sipearl.com",
        "time": "Wed Aug 26 11:20:37 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Aug 26 02:25:39 2026 -0700"
      },
      "message": "[mlir][docs] Fix typo in toy tutorial Ch4 (#218847)\n\nGitOrigin-RevId: 1514985dbc77d35cd8e1ed294b816ae8a2123462\n"
    },
    {
      "commit": "bbd5f5669da60c2148c6f2231561fcadec52d71e",
      "tree": "466874209c4c57f1b3bc31a09f0e72d5eeae811d",
      "parents": [
        "81f0ece44b779a9fd2f80f5b1e27271877c2dff1"
      ],
      "author": {
        "name": "davidlerner96",
        "email": "115485386+davidlerner96@users.noreply.github.com",
        "time": "Wed Aug 26 11:43:27 2026 +0300"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Aug 26 01:45:58 2026 -0700"
      },
      "message": "[mlir] Add splitForOpAtBound utility and use it in loop unrolling (#215108)\n\n## Summary\nAdds `splitForOpAtPoint` to split an `scf.for` at a given split point:\n- first loop: `[lowerBound, splitPoint)`\n- second loop: `[splitPoint, upperBound)`\nThe original loop is not mutated in place. Two new loops are cloned,\niter-args\nare chained from the first to the second, uses of the original results\nare\nrewired, and the original op is erased. The helper returns `{first,\nsecond}`.\nThe split point is validated as:\n- `lowerBound \u003c\u003d splitPoint \u003c upperBound`\n- `step \u003e 0`\n- `splitPoint \u003d\u003d lowerBound + k * step`\nWhen the needed values are constant, an invalid split fails at compile\ntime.\nWhen any of them is dynamic, the same conditions are emitted as runtime\n`arith.cmpi` / `cf.assert`. Signed vs unsigned follows the loop\u0027s\n`unsignedCmp` attribute (`getConstantIntValue` /\n`getConstantUIntValue`).\n`loopUnrollByFactor` uses this helper for the epilogue instead of\ninlining\nclone-and-rewire logic. The first returned loop is the main loop to\nunroll;\nthe second is the epilogue.\nAlso adds `getConstantUIntValue` (zero-extend to `uint64_t`) next to\n`getConstantIntValue`, and links the ControlFlow dialect from SCF Utils\nso\nruntime asserts can be created.\n\n---------\n\nCo-authored-by: Cursor \u003ccursoragent@cursor.com\u003e\nGitOrigin-RevId: d31eaf1864d7d74997c31d03ecd2fb5d8b5e3194\n"
    },
    {
      "commit": "81f0ece44b779a9fd2f80f5b1e27271877c2dff1",
      "tree": "ff6be58ba1cba7475c0d3f56dcd7f588af97d7c5",
      "parents": [
        "23798458cd7603905048b9512e2e7f21ba5e3fb4"
      ],
      "author": {
        "name": "Federico Bruzzone",
        "email": "federico.bruzzone.i@gmail.com",
        "time": "Wed Aug 26 10:38:56 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Aug 26 01:41:15 2026 -0700"
      },
      "message": "[mlir][SCF] Skip dynamic front-peeling for non-index loops (#218238)\n\n`peelForLoopFirstIteration` computes the new lower bound with an\n`affine.apply` whose operands are the loop\u0027s lower bound and step.\n`affine.apply` requires operands of type `index`, while `scf.for` also\npermits signless integer IV and bounds, so the operation can be\nconstructed with operands that it does not accept.\n\nThis is the same underlying issue as #216631 / #217909, in the sibling\n\"peel front\" path.\n\nSkip the front-peeling path when the loop induction variable is not\n`index`, mirroring the guard added in #217909. The existing\nconstant-bounds path is unaffected.\n\n---------\n\nSigned-off-by: Federico Bruzzone \u003cfederico.bruzzone.i@gmail.com\u003e\nGitOrigin-RevId: 1b0e2e1dd8dbc6d500eeebab7083f4b5b5184353\n"
    },
    {
      "commit": "23798458cd7603905048b9512e2e7f21ba5e3fb4",
      "tree": "d8432981a1ad3d0b2f0a24a686a0410210ec4e74",
      "parents": [
        "e71f6ac24c81886646cc3bcaa873160329da49ad"
      ],
      "author": {
        "name": "Christian Ulmann",
        "email": "christianulmann@gmail.com",
        "time": "Wed Aug 26 09:50:38 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Aug 26 00:56:03 2026 -0700"
      },
      "message": "[mlir][VectorToLLVM] Use the converted index type in vector.type_cast (#218742)\n\n`VectorTypeCastOpConversion` hardcoded `i64` for the offset, size and\nstride constants it inserts into the target memref descriptor, while the\ndescriptor\u0027s fields have the converted index type. With a type converter\nconfigured for a 32-bit index the pattern therefore emitted invalid IR:\n\n```\n\u0027llvm.insertvalue\u0027 op Type mismatch: cannot insert \u0027i64\u0027 into\n\u0027!llvm.struct\u003c(ptr, ptr, i32)\u003e\u0027\n```\n\nBuild the constants from the converted index type instead.\n\n---------\n\nCo-authored-by: Claude Opus 5 (1M context) \u003cnoreply@anthropic.com\u003e\nGitOrigin-RevId: 7380050ae1a8261400350dd08a952ad3f00db1b3\n"
    },
    {
      "commit": "e71f6ac24c81886646cc3bcaa873160329da49ad",
      "tree": "37bdd93b1047b97cfb22ed30379595e8b62e3fb8",
      "parents": [
        "611165e1aa1ffd23285b102bf2f75662d7c9c085"
      ],
      "author": {
        "name": "Christian Ulmann",
        "email": "christianulmann@gmail.com",
        "time": "Wed Aug 26 09:50:17 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Aug 26 00:55:51 2026 -0700"
      },
      "message": "[mlir][MPIToLLVM] Take the descriptor index type from the descriptor (#218838)\n\n`getRawPtrAndSize` extracted the memref descriptor\u0027s offset as `i64` and\nunconditionally truncated the extents to `i32`. Both assume a 64-bit\nindex: with a 32-bit one the extract disagrees with the descriptor\u0027s\nfield type and the truncation becomes an invalid `llvm.trunc` from `i32`\nto `i32`.\n\nRead the index type off the descriptor and only adjust the extent width\nwhen it actually differs. While here, drop the rank-0 branch that\nrebuilt the already available element count as an `arith.constant` in\nthe middle of an LLVM lowering.\n\n---------\n\nCo-authored-by: Claude Opus 5 (1M context) \u003cnoreply@anthropic.com\u003e\nGitOrigin-RevId: f3114d13250c62d6bec8875f8d93df2fa73ee0d5\n"
    },
    {
      "commit": "611165e1aa1ffd23285b102bf2f75662d7c9c085",
      "tree": "a5c160d8c0dc1d08e9719efe247179d89d24cf68",
      "parents": [
        "dce9f010cb3c83cbb72f835bcb7c44d4f234a560"
      ],
      "author": {
        "name": "Luke Hutton",
        "email": "luke.hutton@arm.com",
        "time": "Wed Aug 26 08:37:11 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Aug 26 00:40:47 2026 -0700"
      },
      "message": "[mlir][tosa] Add support for MXFP DIM op (#217149)\n\nAdds support for MXFP types in DIM according to\nhttps://github.com/arm/tosa-specification/pull/61\n\nGitOrigin-RevId: 4741357dac8516be26afbabefa69a8ff6db7334a\n"
    },
    {
      "commit": "dce9f010cb3c83cbb72f835bcb7c44d4f234a560",
      "tree": "0bd6eeff8b3172146ab4366b98b493766f8a7add",
      "parents": [
        "6eab28e773b01c5cb34e730f41f4d037e44b57ae"
      ],
      "author": {
        "name": "Christian Ulmann",
        "email": "christianulmann@gmail.com",
        "time": "Wed Aug 26 07:37:19 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Aug 25 22:40:40 2026 -0700"
      },
      "message": "[mlir][NFC] Share createIndexAttrConstant as a free function (#218736)\n\nThe `LLVM::ConstantOp` with an index-typed attribute idiom existed in\nthree byte-identical copies: the protected `ConvertToLLVMPattern`\nmember, a file-static helper in `MemRefBuilder.cpp`, and open-coded in\nthe free function `mlir::LLVM::getStridedElementPtr`, which cannot reach\nthe protected member.\n\nPromote a single free `mlir::LLVM::createIndexAttrConstant` and route\nall three through it, so that a change to how these constants are built\nhas one place to happen.\n\nCo-authored-by: Claude Opus 5 (1M context) \u003cnoreply@anthropic.com\u003e\nGitOrigin-RevId: 519a53ea224a2f779e18f96160d681655700cf57\n"
    },
    {
      "commit": "6eab28e773b01c5cb34e730f41f4d037e44b57ae",
      "tree": "a26bed789b484a13be76ade5844177a4d8a6c2df",
      "parents": [
        "c41f913f5f571913169047b81ef7d982fa70c7fa"
      ],
      "author": {
        "name": "Mehdi Amini",
        "email": "joker.eph@gmail.com",
        "time": "Wed Aug 26 01:36:48 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Aug 25 16:40:36 2026 -0700"
      },
      "message": "[MLIR] Add inherent attribute visitor (#217881)\n\nVisit inherent attributes directly from operation property storage.\n\nAllow visitors to replace values through generated property conversions.\n\nKeep populateInherentAttrs as a wrapper and migrate core IR callers.\n\nThis is intended as a more efficient than populateInherentAttrs that\navoids materializing the list.\n\nAssisted-by: Codex\nGitOrigin-RevId: 5657cb84e527a4543e9a376d6958128590f69c32\n"
    },
    {
      "commit": "c41f913f5f571913169047b81ef7d982fa70c7fa",
      "tree": "2e8289ce8c50e2fa81fa2d342269de2dd13ab0a8",
      "parents": [
        "65cef9fa031b87930331021a59e67d1f0c29005d"
      ],
      "author": {
        "name": "Mehdi Amini",
        "email": "joker.eph@gmail.com",
        "time": "Wed Aug 26 01:15:33 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Aug 25 16:20:57 2026 -0700"
      },
      "message": "[MLIR][Math] Enable strict property assembly format (#217275)\n\nEnable the strict properties assembly format mode for the Math dialect.\nSpell the classification fast-math attribute in the declarative format\nso it is not parsed from attr-dict in strict mode.\n\nAssisted-by: Codex\nGitOrigin-RevId: 16ec9eeb8c889c06b4acd489984cab99dbacb2f7\n"
    },
    {
      "commit": "65cef9fa031b87930331021a59e67d1f0c29005d",
      "tree": "b6b4818579ef8ed51434850d541fdda507a45855",
      "parents": [
        "30bc21ba55d189e920eeb3381bd7c37a295e87d1"
      ],
      "author": {
        "name": "Mehdi Amini",
        "email": "joker.eph@gmail.com",
        "time": "Wed Aug 26 01:10:06 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Aug 25 16:20:50 2026 -0700"
      },
      "message": "[MLIR][Affine] Reject fully consumed bounded delinearize split (#217472)\n\nDo not apply SplitDelinearizeSpanningLastLinearizeArg when the split\nwould consume an entire outer-bounded basis. Rewriting that case can\ndiscard earlier linearization inputs and previously built an invalid\nzero-result prefix operation.\n\nAssisted-by: Codex\nGitOrigin-RevId: b6aff56b81e957203761036cd20e8864351d9170\n"
    },
    {
      "commit": "30bc21ba55d189e920eeb3381bd7c37a295e87d1",
      "tree": "3376cd100422955cfb39e6b4f5bbc0996d38c9ab",
      "parents": [
        "d6ca504ae05a8d15b1a192981693edc69c9e9b48"
      ],
      "author": {
        "name": "Mehdi Amini",
        "email": "joker.eph@gmail.com",
        "time": "Wed Aug 26 01:08:28 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Aug 25 16:10:46 2026 -0700"
      },
      "message": "[MLIR][ODS] Print prop-dict fields with custom printers (#217589)\n\nGenerate a key-value prop-dict printer that dispatches each field to its\nODS printer while retaining attribute conversion for non-compositional\ndefault parsers.\n\nKeep operation-specific property printer hooks ahead of the generated\nimplementation and preserve legacy input compatibility.\n\nSee #155475\n\nAssisted-by: Codex\nGitOrigin-RevId: 3e3927f7166cb02b8abd2a557249dc86c04a266a\n"
    },
    {
      "commit": "d6ca504ae05a8d15b1a192981693edc69c9e9b48",
      "tree": "2cbd1a7d262037bc10d05a13847c61d61898423f",
      "parents": [
        "48387e573e6186f501b1fe978435020ec53d0b19"
      ],
      "author": {
        "name": "Mehdi Amini",
        "email": "joker.eph@gmail.com",
        "time": "Wed Aug 26 00:40:55 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Aug 25 15:45:18 2026 -0700"
      },
      "message": "[MLIR][ODS] Parse prop-dict fields with custom parsers (#218798)\n\nTeach generated operation parsers to accept a key-value spelling for\nprop-dict and dispatch known fields through their ODS parsers. Keep the\nDictionaryAttr spelling as a compatibility path and use attribute\nconversion when a property has no usable FieldParser.\n\nReland #217590 after fixing the MSAN specific failure: the\n`FieldParser\u003cSmallVector\u003cint32_t\u003e\u003e` specialization collided with a\ngeneric instantiation in another translation unit. Under MSan, the\nlinker selected the generic parser instead of the specialization.\n\nSee #155475\n\nAssisted-by: Codex\nGitOrigin-RevId: c0a8dfa04fe20e80c9659d18b49964fce8bf7081\n"
    },
    {
      "commit": "48387e573e6186f501b1fe978435020ec53d0b19",
      "tree": "26498bae792f3258d5f46a1b37c069a1e7e417b7",
      "parents": [
        "f6c4067e2bc39877b87e0d1a64e847429ddd2e92"
      ],
      "author": {
        "name": "Mehdi Amini",
        "email": "joker.eph@gmail.com",
        "time": "Tue Aug 25 22:43:10 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Aug 25 13:45:34 2026 -0700"
      },
      "message": "[MLIR][WasmSSA] Enable strict property assembly format (#217285)\n\nEnable the strict properties assembly format mode for the WasmSSA\ndialect. Spell import operation type and limit metadata directly in the\nassembly formats so those inherent attributes are not parsed from\nattr-dict in strict mode.\n\nAssisted-by: Codex\nGitOrigin-RevId: cc7e50ffd99ab7b1741913ff2f3eec0f7e711c79\n"
    },
    {
      "commit": "f6c4067e2bc39877b87e0d1a64e847429ddd2e92",
      "tree": "69512199f41ecdeb79c9c4dc1058e5ede09d8cd9",
      "parents": [
        "1da3227f5dd938f723bac823f7bf5f80fbf6707f"
      ],
      "author": {
        "name": "tridhapuku",
        "email": "abhidipu863@gmail.com",
        "time": "Tue Aug 25 14:19:52 2026 -0500"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Aug 25 12:25:31 2026 -0700"
      },
      "message": "[mlir][MemRef] Add ViewLikeOpInterface to memref.transpose (#215331)\n\n**memref.transpose** is a view-producing op but does not implement\n**ViewLikeOpInterface**, unlike _memref.subview, memref.cast,\nmemref.expand_shape, memref.collapse_shape_, and\n_memref.reinterpret_cast_. This causes generic passes that walk view\nchains via ViewLikeOpInterface to silently skip transpose ops, producing\nincorrect results.\n\nThis patch adds `ViewLikeOpInterface` to `MemRef_TransposeOp` and\nimplements `getViewSource()` to return the input memref, matching the\nbehaviour of the other view-like ops.\n\nAlso adds a round-trip test covering a transpose that carries a\nnon-default memory space, which is the case that motivated the fix.\n\n`ninja check-mlir` passes locally with no regressions.\n\n**AI tool usage:** The code change (interface declaration,\n`getViewSource()` implementation, and test) was authored by me. An AI\nassistant was used to help draft the commit message and this PR\ndescription, and to run the local build and test suite.\n\nSigned-off-by: Abhinav Kumar \u003cabhinav.d.kumar@ericsson.com\u003e\nGitOrigin-RevId: 2298ebad2fb88aa3767026af3bcb14f6bb953bcf\n"
    },
    {
      "commit": "1da3227f5dd938f723bac823f7bf5f80fbf6707f",
      "tree": "c013c368ab22a974050cb2706c8d15b2240695ef",
      "parents": [
        "df617cd332d7547ca92a763874a8165343de869e"
      ],
      "author": {
        "name": "Krzysztof Drewniak",
        "email": "Krzysztof.Drewniak@amd.com",
        "time": "Tue Aug 25 11:09:55 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Aug 25 11:16:12 2026 -0700"
      },
      "message": "[mlir][AMDGPU] Emit num_records at the buffer resource\u0027s actual width (#217139)\n\nmakeBufferRsrc() zero-extended num_records to i64 on targets whose\nbuffer resource has a 45-bit num_records field, leaving 19 bits that the\nhardware will never look at. Emit an i45 instead, which is what\nrocdl.make.buffer.rsrc will end up putting in the descriptor anyway, so\nthat downstream consumers can see that those bits aren\u0027t demanded.\n\nWhile here, factor the i32 and i64 conversion helpers into a shared\nconvertUnsignedToInt() that takes the target width.\n\nAI disclosure: Claude made this, I looked at and poked the design into\nshape.\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\nGitOrigin-RevId: a69d99675a5191cb7123ad250224c499393ea233\n"
    },
    {
      "commit": "df617cd332d7547ca92a763874a8165343de869e",
      "tree": "c11ff96375aaa6096432ad728462d0114f7b6701",
      "parents": [
        "866e02d8830129b4a451a513bd2840e38aa7888b"
      ],
      "author": {
        "name": "MarkVeerasingam",
        "email": "122292447+MarkVeerasingam@users.noreply.github.com",
        "time": "Tue Aug 25 18:25:31 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Aug 25 10:30:42 2026 -0700"
      },
      "message": "[MLIR] Fix control-flow sinking through nested regions (#217168)\n\nFix control-flow sinking through nested regions.\n\nThis allows operations used in nested regions to be sunk into their\nenclosing region and adds a regression test for `scf.if` containing\n`scf.for`.\n\nFixes #216912\n\nAssisted by ChatGPT (GPT-5.6 Luna). The final code and tests were\nreviewed by the author.\n\n---------\n\nCo-authored-by: Federico Bruzzone \u003cfederico.bruzzone.i@gmail.com\u003e\nGitOrigin-RevId: 188e296d269dd37b92f9e1d0de406eb1f030de39\n"
    },
    {
      "commit": "866e02d8830129b4a451a513bd2840e38aa7888b",
      "tree": "e802a2056b8019589c4c77a2d599db6af343de14",
      "parents": [
        "914a4e357df3c0d62772d8e67fb3f76aff65e0d5"
      ],
      "author": {
        "name": "Tuomas Kärnä",
        "email": "tuomas.karna@intel.com",
        "time": "Tue Aug 25 17:48:31 2026 +0300"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Aug 25 07:51:03 2026 -0700"
      },
      "message": "[mlir][tensor] Add FoldExtractSliceOfExpandShape folding pattern (#212974)\n\nExtends Tensor `ReassociativeReshapeFoldingPatterns` by adding a\n`FoldExtractSliceOfExpandShape` pattern.\n\nFoldExtractSliceOfExpandShape pattern folds full-slice rank-reducing\nextract of expand_shape.\n\nAssisted-by: GPT-5.3-Codex\nGitOrigin-RevId: c7beee7925352c2fbd01e0b482d124074ee80852\n"
    },
    {
      "commit": "914a4e357df3c0d62772d8e67fb3f76aff65e0d5",
      "tree": "e137cd007f51a74a7a2538909aa6dfbc54ebce71",
      "parents": [
        "90daba2f158edddcf000bd35f192f0a45abab6a6"
      ],
      "author": {
        "name": "Tuomas Kärnä",
        "email": "tuomas.karna@intel.com",
        "time": "Tue Aug 25 17:46:32 2026 +0300"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Aug 25 07:50:53 2026 -0700"
      },
      "message": "[mlir][transform] Add ApplySwapExtractSliceWithFillPatternsOp transform op (#213907)\n\nAdds transform op for the existing linalg `SwapExtractSliceOfFill`\npattern as `apply_patterns.linalg.swap_extract_slice_with_fill`.\n\nAssisted-by: GPT-5.3-Codex\nGitOrigin-RevId: 1a083de492e092a7334a1dd0209262296949566c\n"
    },
    {
      "commit": "90daba2f158edddcf000bd35f192f0a45abab6a6",
      "tree": "3a044464715cf75f3efae45ed1b33aa741ff25ea",
      "parents": [
        "26192e870b7fd5de29ef7766c6f5f5b8d6d7e751"
      ],
      "author": {
        "name": "Peter Hawkins",
        "email": "phawkins@google.com",
        "time": "Tue Aug 25 10:25:54 2026 -0400"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Aug 25 07:30:58 2026 -0700"
      },
      "message": "[mlir][python] Make Python bindings compatible with Nanobind v3.0.0. (#218562)\n\nNanobind v3.0.0 has several breaking changes, notably changes to how\niterators work and removal of several nanobind::detail APIs.\n\nhttps://nanobind.readthedocs.io/en/latest/changelog.html#version-3-0-0-aug-22-2026\n\nAssisted-by: Gemini\nGitOrigin-RevId: 0d3f7ae1e926261d532e0cfc92799673ed49489b\n"
    },
    {
      "commit": "26192e870b7fd5de29ef7766c6f5f5b8d6d7e751",
      "tree": "808808b297274b0c360108969cac130baefb679c",
      "parents": [
        "b44498e009101670f08ce06c2e2f4b2561457393"
      ],
      "author": {
        "name": "Ivan R. Ivanov",
        "email": "iivanov@nvidia.com",
        "time": "Tue Aug 25 13:12:06 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Aug 25 04:16:13 2026 -0700"
      },
      "message": "[mlir][affine] Fix parsing operands that specify result number (#215539)\n\nThe check for a previously parsed operand was only checking the name of\nthe operand and not its result number, resulting in wrong parsing.\n\nThis patch restructures the parser to use the parseOperand function for\nall occurances instead of hand rolling operand parsing, and then also\ntracking the result number in the dim sym operand map.\n\nPaths that parse exprs with predefined non-SSA symbols get an implicit\nresult number 0.\n\nGitOrigin-RevId: e1249b4f571cbedd461ed13b7cc4d1b4f2973da3\n"
    },
    {
      "commit": "b44498e009101670f08ce06c2e2f4b2561457393",
      "tree": "cc85cfce7260996b6af2793a7fb57d25770b618a",
      "parents": [
        "ac00d2bf6b29adbeba3bffdda85e59796e760164"
      ],
      "author": {
        "name": "Paul Walker",
        "email": "paul.walker@arm.com",
        "time": "Tue Aug 25 11:56:05 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Aug 25 04:00:43 2026 -0700"
      },
      "message": "[SVE ACLE] Add svcount support to llvm.aarch64.sve.psel intrinsic. (#217360)\n\nPSEL has genuine support for predicate-as-counter, so it seems fair for\nits equivalent intrinsic to have matching support rather than indirect\nsupport using the svbool variant.\n\nGitOrigin-RevId: cfb9a0ba0dcff9e4470681072314dec896440faf\n"
    },
    {
      "commit": "ac00d2bf6b29adbeba3bffdda85e59796e760164",
      "tree": "493b4c9d46da8b35e7b9bbd791c164afcac9919f",
      "parents": [
        "8ce4af235186035e5a633b62ccda1c6a25858f34"
      ],
      "author": {
        "name": "Ingo Müller",
        "email": "ingomueller@google.com",
        "time": "Tue Aug 25 12:01:22 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Aug 25 03:06:08 2026 -0700"
      },
      "message": "[mlir:doc] Clarify requirements on `RewritePatterns`. (#218351)\n\nThis PR clarifies and extends the documentation of what\n`RewritePattern`s and folders are allowed to do. The most noteworthy\naddition is the requirement that they must produce verifiable IR. While\nthis is enforced by `MLIR_ENABLE_EXPENSIVE_PATTERN_API_CHECKS`, it has\nnot been mentioned in the markdown docs yet. The other changes are\nclarifications on edge cases that I have seen people misunderstand or\noverlook. The change also adds a note to the build flag that enables the\nAPI checks.\n\n---------\n\nSigned-off-by: Ingo Müller \u003cingomueller@google.com\u003e\nGitOrigin-RevId: 26b9a1717b84330ef0d508e618ec1ed4e4e117ac\n"
    },
    {
      "commit": "8ce4af235186035e5a633b62ccda1c6a25858f34",
      "tree": "018ac72c8a49e4fb13aa8a8a86dd37cc025c6fcb",
      "parents": [
        "9d4363864b67706e8e7b367567232f2ce1a8b9f7"
      ],
      "author": {
        "name": "Chuanqi Xu",
        "email": "yedeng.yd@linux.alibaba.com",
        "time": "Tue Aug 25 17:56:22 2026 +0800"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Aug 25 03:00:32 2026 -0700"
      },
      "message": "[NFC] minor formatting change (#218647)\n\nRequired in https://github.com/llvm/llvm-project/pull/212180\n\nGitOrigin-RevId: b15a18560d5cb246df9877516b9ba17a9e796017\n"
    },
    {
      "commit": "9d4363864b67706e8e7b367567232f2ce1a8b9f7",
      "tree": "1eca1c149e368002069efaedb06360992c3ba836",
      "parents": [
        "864dfa500d47e08a9dc34811235b6d3479850c1d"
      ],
      "author": {
        "name": "Artem Gindinson",
        "email": "gindinson@roofline.ai",
        "time": "Tue Aug 25 10:12:59 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Aug 25 01:16:05 2026 -0700"
      },
      "message": "[mlir][Tensor] Preserve correct rank expansions in InsertSlice canonicalizer (#217361)\n\nInferring the source type of an `insert_slice` with constant-folded\narguments \"canonically\", i.e. by dropping off unit dimensions from the\nfront of the constant-folded destination shape, is not guaranteed to\nmatch the actual rank transformation of the original `insert_slice` op.\nI\u0027ve encountered this as a loop peeling bug, where materializing\nconstant slice sizes for the peeled iteration would create the following\nsequence:\n```\n// Before fold\n%12 \u003d arith.constant 2 : index\n%13 \u003d arith.constant 2 : index // Materialized peel iteration sizes\n...\n%inserted_slice_13 \u003d tensor.insert_slice %conv into %extracted_slice_9[0, 0, 0, 0] [1, %12, 1, %13] [1, 1, 1, 1] : tensor\u003c1x?x?xf32\u003e into tensor\u003c1x?x1x?xf32\u003e\n%inserted_slice_14 \u003d tensor.insert_slice %inserted_slice_13 into %arg13[0, 0, 0, 0] [1, %12, 1, %13] [1, 1, 1, 1] : tensor\u003c1x?x1x?xf32\u003e into tensor\u003c1x?x1x?xf32\u003e\n\n// After a series of incorrect folds\n%cast \u003d tensor.cast %conv : tensor\u003c1x2x2xf32\u003e to tensor\u003c1x?x2xf32\u003e\n%cast_8 \u003d tensor.cast %cast : tensor\u003c1x?x2xf32\u003e to tensor\u003c?x1x2xf32\u003e // already invalid IR\n%cast_9 \u003d tensor.cast %cast_8 : tensor\u003c?x1x2xf32\u003e to tensor\u003c2x1x2xf32\u003e\n%inserted_slice_10 \u003d tensor.insert_slice %cast_9 into %arg13[0, 0, 0, 0] [1, 2, 1, 2] [1, 1, 1, 1]\n    : tensor\u003c2x1x2xf32\u003e into tensor\u003c1x2x1x2xf32\u003e // misinterpreted slice dimensions\n```\n\nInstead. we should apply the original rank transformation from the\nunfolded op when constructing the source type for the folded result.\n\nFactors out the pre-existing logic from `extract_slice` canonicalization\ninto a more general helper, so that it can be employed for the\n`insert_slice` constant folder too. Additionally, the only remaining\n`inferCanonicalRankReducedResultType` use has been replaced with a\nspecialized call of the new helper.\n\nAssisted-by: Codex\n\n---------\n\nSigned-off-by: Artem Gindinson \u003cgindinson@roofline.ai\u003e\nGitOrigin-RevId: e625da37ad1f548bf07fee9ef525c8dea39a704a\n"
    },
    {
      "commit": "864dfa500d47e08a9dc34811235b6d3479850c1d",
      "tree": "bccb522ab0f9c40315eae53de9afeef089e4b011",
      "parents": [
        "abf9ad4584ffcb65f6deffe33b621ad1cd6eaee7"
      ],
      "author": {
        "name": "Hamza Qureshi",
        "email": "hamza7771.861@gmail.com",
        "time": "Tue Aug 25 12:56:30 2026 +0500"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Aug 25 01:01:00 2026 -0700"
      },
      "message": "[mlir][scf] Fuse parallel loops with equal constant bounds (#218450)\n\nTwo `scf.parallel` loops that run over the same range were not being\nfused if\ntheir bounds came from different `arith.constant` ops.\n\nBoth loops here go from 0 to 16 by 1, so they should fuse, but they do\nnot:\n\n```mlir\n%c0 \u003d arith.constant 0 : index\n%c16 \u003d arith.constant 16 : index\n%c1 \u003d arith.constant 1 : index\nscf.parallel (%i) \u003d (%c0) to (%c16) step (%c1) { ... }\n\n%c0_0 \u003d arith.constant 0 : index\n%c16_1 \u003d arith.constant 16 : index\n%c1_2 \u003d arith.constant 1 : index\nscf.parallel (%i) \u003d (%c0_0) to (%c16_1) step (%c1_2) { ... }\n```\n\nThe reason is that `equalIterationSpaces()` compared the bounds with\n`std::equal` over `Value`s, which only asks \"is this the same SSA\nvalue?\".\n`%c16` and `%c16_1` are two different values, so the check failed even\nthough\nboth are 16.\n\nNow the check also accepts two operands that are constants with the same\nvalue. This is what the TODO on that code already asked for:\n\n```\n- // TODO: Extend this to support aliases and equal constants.\n+ // TODO: Extend this to support aliases.\n```\n\nOperands that are not constants are still compared by identity, so loops\nwith\ndifferent dynamic bounds are still not fused.\n\nNote that running `-cse` or `-canonicalize` first also fixes this,\nbecause it\nmerges the duplicate constants. I did not want the pass to rely on that\nhaving\nrun, since the two iteration spaces are equal either way.\n\nTests: two cases that should fuse (all bounds equal constants, and a mix\nof\nshared values and equal constants), and two that should not (constants\nwith\ndifferent values, and different dynamic bounds).\n\nFixes #218318\n\nGitOrigin-RevId: 05f70782cc14770f0250de0468ab1f9196b4391a\n"
    },
    {
      "commit": "abf9ad4584ffcb65f6deffe33b621ad1cd6eaee7",
      "tree": "69850c4d8c7c8f538966746a8f9fc8e26fc0ab3f",
      "parents": [
        "33b62d2ebcc7a2fd6638af49ccbbe354e2d075f2"
      ],
      "author": {
        "name": "Alexey Kreshchuk",
        "email": "163419040+krsch-mobileye@users.noreply.github.com",
        "time": "Tue Aug 25 10:54:24 2026 +0300"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Aug 25 00:55:53 2026 -0700"
      },
      "message": "[MLIR] fix: ValueBoundsConstraintSet invalidates queue (#218612)\n\npopulateConstraints(AffineMap, ValueDimList) updates positionToValueDim,\nchanging the meaning of all elements in the worklist. In order to\npreserve the correct mapping, I\u0027ve changed the element type to ValueDim.\nThe new lit tests show the example where the issue happened.\n\nAssisted-by: Cursor / Grok 4.6\nGitOrigin-RevId: 4161217d470ade6232652d79d410083df9cc5c02\n"
    },
    {
      "commit": "33b62d2ebcc7a2fd6638af49ccbbe354e2d075f2",
      "tree": "19d9ec26da78836d553b6635347e14ffe18b9c09",
      "parents": [
        "a80c0e3129198ac9f854cc1b95d58053d6dadb7c"
      ],
      "author": {
        "name": "Vadim Curcă",
        "email": "80581374+VadimCurca@users.noreply.github.com",
        "time": "Tue Aug 25 08:10:25 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Aug 24 23:15:43 2026 -0700"
      },
      "message": "[MLIR] Configure CompositeFixedPointPass\u0027s convergence-failure behavior (#218394)\n\nAdd an option to `CompositeFixedPointPass` controlling what happens if\nthe pass fails to converge within max-iterations: emit a warning\n(default), emit an error and fail the pass, or do nothing.\n\nGitOrigin-RevId: d93b3836429c810681f34785bb1463198c80c749\n"
    },
    {
      "commit": "a80c0e3129198ac9f854cc1b95d58053d6dadb7c",
      "tree": "ae5242e3a87e432b899d0092aaf6f805ec8a4fe8",
      "parents": [
        "5da1f1ce263c563249c3196210fae3f21611c067"
      ],
      "author": {
        "name": "Chuanqi Xu",
        "email": "yedeng.yd@linux.alibaba.com",
        "time": "Tue Aug 25 11:02:46 2026 +0800"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Aug 24 20:06:15 2026 -0700"
      },
      "message": "[mlir][linalg] Split elementwise ops with concat inputs (#213630)\n\nClose https://github.com/llvm/llvm-project/issues/213216\n\nThis patch tries to reorder patterns like elementwise(concat(x0, x1),\nconcat(y0, y1)) into concat(elementwise(x0, y0), elementwise(x1, y1)).\nThe transformation itself is not an optimization. But it will make the\nelementwise op to be closer with the data so that the optimizer may find\nmore optimization oppotunities. See the above patch for an example.\n\nFor simplicity, this patch only handle cases for all concats have the\nsame number of inputs and the size of inputs in the concat dimension to\nbe the same. We also don\u0027t handle linalg.index. And if the inputs of the\nelementwise op has other inputs than concat, which is not a scalar, may\nbe rejected too. We can relax these limitations in the future.\n\nTo make the implementation more uniform, we only handles elementwise\nlike linalg.generic. The elementwise op will be transoformed into\nlinalg.generic after -convert-elementwise-to-linalg. So the\ntransformation (-linalg-fuse-elementwise-ops) is expected to be run\nafter -convert-elementwise-to-linalg.\n\nAI assisted.\n\n---------\n\nCo-authored-by: yedeng.yd \u003cyedeng.yd@alibaba-inc.com\u003e\nGitOrigin-RevId: da6b0ba7ef6ffb7652531a23f98e18f73d7dce37\n"
    },
    {
      "commit": "5da1f1ce263c563249c3196210fae3f21611c067",
      "tree": "f454055f647dd7af5f1f41346e6452ca611a218f",
      "parents": [
        "4300d90c3eb7c921b0e7cc2a6b56cf176e586f63"
      ],
      "author": {
        "name": "Chuanqi Xu",
        "email": "yedeng.yd@linux.alibaba.com",
        "time": "Tue Aug 25 10:55:14 2026 +0800"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Aug 24 20:02:22 2026 -0700"
      },
      "message": "[mlir] [vector] try promoting scalar when reordering broadcast/elementwise (#212180)\n\nInspired by https://github.com/llvm/llvm-project/pull/211208\n\nThe thread discussed the case:\n\n```\n %0 \u003d vector.broadcast %arg0 : vector\u003c4xf32\u003e to vector\u003c3x4xf32\u003e\n %1 \u003d vector.broadcast %arg1 : f32 to vector\u003c3x4xf32\u003e\n %2 \u003d vector.broadcast %arg2 : vector\u003c4xf32\u003e to vector\u003c3x4xf32\u003e\n %3 \u003d vector.fma %0, %1, %2 : vector\u003c3x4xf32\u003e\n```\n\nThe reviewer suggests \"broadcasts on %arg0 and %arg2 are removed but\n%arg1 is broadcasted to \u003c4xf32\u003e. Then FMA would happen on \u003c4xf32\u003e,\n%followed by the broadcast to \u003c3x4xf32\u003e\". Now this is solved and we can\nsee the test case at @fma_mixed_scalar_and_vector_broadcast_source in\nthe attached test case.\n\nAI assisted.\n\nGitOrigin-RevId: 3de7874ccbcce9b5eb53dab392c4b889c4fb3567\n"
    },
    {
      "commit": "4300d90c3eb7c921b0e7cc2a6b56cf176e586f63",
      "tree": "bff6108c88448414d5e8abe85521dfeb5b6259ea",
      "parents": [
        "2ff31566d1644876a43984df1810245b4e6d6395"
      ],
      "author": {
        "name": "Krzysztof Drewniak",
        "email": "Krzysztof.Drewniak@amd.com",
        "time": "Mon Aug 24 16:09:19 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Aug 24 16:10:28 2026 -0700"
      },
      "message": "[mlir][ROCDL] Enable useStrictPropertiesInAssemblyFormat (#216813)\n\n**Migration note:** Separate out inherent and discardable attributes\non your `rocdl.*` operations and put a `\u003c\u003e` around the inherent ones.\n\nThis commit adds `prop-dict` clauses to all the ROCDL-dialect\noperations that have inherent attributes but don\u0027t have better syntax\nfor them.\n\nI looked at creating better syntaxes here, but these are fairly\nlow-level operations and it was hard to put together comma-separated\nlists of optional arguments in tablegen. So I\u0027ve gone with the rather\nstraightforward and consistent fix of adding in `prop-dict`s.\n\nAI note: Claude did the changes here, I reviewed the designs.\n\nCo-Authored-By: Claude Opus 5 (1M context) \u003cnoreply@anthropic.com\u003e\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\nCo-authored-by: Claude Opus 5 (1M context) \u003cnoreply@anthropic.com\u003e\nGitOrigin-RevId: 286c82f6e292b9c48152c5536e323e94b7c3e63e\n"
    },
    {
      "commit": "2ff31566d1644876a43984df1810245b4e6d6395",
      "tree": "87e1b26ddf872063c42c269eb63e68ce993dd618",
      "parents": [
        "2d0b77e06607a67245e6b75e5c8da691cc05cc05"
      ],
      "author": {
        "name": "Krzysztof Drewniak",
        "email": "Krzysztof.Drewniak@amd.com",
        "time": "Mon Aug 24 15:25:25 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Aug 24 15:31:21 2026 -0700"
      },
      "message": "[mlir][AMDGPU] Enable useStrictPropertiesInAssemblyFormat (#216812)\n\nThis is part of the migration to keeping inherent and discardable\nattributes separate touched.\n\n**Migration note:** this\u0027ll change the syntax of a bunch of `amdgpu`\ndialect ops to keep inherent attributes out of the `attr-dict`.\n\nSyntax changes:\n\n1. Operations like the dpp operations have had their inherent operands\nturned into oilists that use `name(value)` syntax, such as\n`bound_ctrl(false)`, which also leads to the elision of default\nvalues.\n2. Buffer operations now use `boundsCheck(true/false)` before the main\noperation (keeping the visibility from the old attr-dict) and have\nmoved to `sgprOffset(%offset)` and `indexOffset(constant)` as optional\nsyntax alements after the main specification.\n3. WMMA operations also now have the same `attribute[(value)]` element\nlists, no it\u0027s now `subwordOffset(1) unsignedA` and not\n`{subwordOffset \u003d 1 : i32, unsignedA}`.\n4. MFMAs have received a similar update, which included unifying the\nsyntax for `blgp` to `blgp(value)` and making it properly optional.\nThe one attribute that isn\u0027t part of a string of modifier keywords is\n`blocks` (the number of blocks if the MFMA carries out more than 1),\nwhich is now `blocks(2/4/8)` before the MxNxK portion of the operation.\n5. `amdgpu.scaled_wmma` now has `a_first_scale_lane \u003d L` and\n`b_first_scale_lane \u003d L` as required syntax elements (so in most\ncases you just need to drop the `{}` around them).\n\nAI disclosure: Claude made these changes, I made sure the plan was\nreasonable and made the syntax choices.\n\nCo-Authored-By: Claude Opus 5 (1M context) \u003cnoreply@anthropic.com\u003e\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\nCo-authored-by: Claude Opus 5 (1M context) \u003cnoreply@anthropic.com\u003e\nGitOrigin-RevId: 80dfaec659031e988cf2859b4787ade601afaef2\n"
    },
    {
      "commit": "2d0b77e06607a67245e6b75e5c8da691cc05cc05",
      "tree": "b6ef520a9401d852536591a83c489f69c2b3cec8",
      "parents": [
        "607e86534ccaf506ae38b1ed48c4e96416c64e7d"
      ],
      "author": {
        "name": "Hamza Qureshi",
        "email": "hamza7771.861@gmail.com",
        "time": "Tue Aug 25 03:04:04 2026 +0500"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Aug 24 15:06:23 2026 -0700"
      },
      "message": "[mlir][vector] Fix multi-reduction unroll test after #217288 (#218523)\n\nThis fixes a buildbot break. Test-only change.\n\n`mlir/test/Dialect/Vector/vector-unroll-options.mlir` is failing on\nmain:\n\n```\ncheck:878\u00271  error: no match found in search range\ncheck:878\u00272  pattern attempts to capture variables: \"E0\"\n```\n\n#217288 switched `vector.extract_strided_slice` and\n`vector.insert_strided_slice` to the strict property assembly format,\nwhich\nprints `offsets`/`sizes`/`strides` without enclosing braces:\n\n```\n- vector.extract_strided_slice %v {offsets \u003d [0, 0, 0], sizes \u003d [1, 2, 2], strides \u003d [1, 1, 1]} : ...\n+ vector.extract_strided_slice %v offsets \u003d [0, 0, 0], sizes \u003d [1, 2, 2], strides \u003d [1, 1, 1] : ...\n```\n\nThe test added by #216799 was branched before that change and merged\nafter it,\nso its CHECK lines still expect the old spelling. CI on the PR ran\nagainst the\nolder base and passed.\n\nThis drops the braces from the 8 affected CHECK lines in\n`@vector_multi_reduction_rank_mismatch`, which is the same rewrite\n#217288\nalready applied to the other tests in this file.\n\nVerified locally: the test passes with this change and fails without it,\nwith\nthe same error the bot reported.\n\nSorry for the breakage.\n\nGitOrigin-RevId: a4f0bca8dbb5ba78f58927adc1391646d62d765f\n"
    },
    {
      "commit": "607e86534ccaf506ae38b1ed48c4e96416c64e7d",
      "tree": "98ec8290fcbf925279b2c2acf72b36492f1b35ab",
      "parents": [
        "5d0b1e0bb5dfd545b4a2d2eba77392bac8ff66d5"
      ],
      "author": {
        "name": "prometheusfma-llvm",
        "email": "prometheus.f.ma@gmail.com",
        "time": "Tue Aug 25 00:33:04 2026 +0530"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Aug 24 12:06:17 2026 -0700"
      },
      "message": "[MLIR][Linalg] Fix crash decomposing padded pack with non-unit un-tiled outer dim (#218141)\n\nDecomposeOuterUnitDimsPackOpPattern only checked that the *tiled* outer\ndims of a linalg.pack are all 1. When the op has a padding value,\ngetPackOpSourceOrPaddedSource additionally requires every outer dim\n(including un-tiled ones) to be 1 and asserts otherwise. A pack with a\nnon-unit un-tiled outer dim therefore passed the guard but tripped the\nassertion, crashing the compiler.\n\nBail out of the pattern via notifyMatchFailure when a padding value is\nset and any outer dim is not 1, turning the crash into a graceful\nno-match.\n\nFixes #218109.\n\nGitOrigin-RevId: ede2b5fe3ce66534b7c68f05df4a693432582b25\n"
    },
    {
      "commit": "5d0b1e0bb5dfd545b4a2d2eba77392bac8ff66d5",
      "tree": "4dd6150535d53324b7cbe5b2dd9d7af0f1df7826",
      "parents": [
        "82005e1da34be1380b530f2be6f0a60f5f193d01"
      ],
      "author": {
        "name": "Hamza Qureshi",
        "email": "hamza7771.861@gmail.com",
        "time": "Mon Aug 24 23:46:31 2026 +0500"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Aug 24 11:51:02 2026 -0700"
      },
      "message": "[mlir][vector] Fix multi-reduction unrolling with a lower rank target shape (#216799)\n\nFixes #216640\n\n`mlir-opt -test-vector-unrolling-patterns` crashes on a rank 3\n`vector.multi_reduction`:\n\n```\nAssertion `offsets.size() \u003d\u003d sizes.size() \u0026\u0026 offsets.size() \u003d\u003d strides.size()\u0027 failed.\n```\n\nThe unroll target shape is allowed to have fewer dimensions than the\nvector being unrolled, in which case it applies to the trailing\ndimensions. `computeShapeRatio` accepts that, and\n`UnrollElementwisePattern` handles it by padding the shape with leading\nunit dimensions.\n\n`UnrollMultiReductionPattern` used the target shape as it is, both for\nthe size of the slice taken from the source and to index the dimensions\nof the reduction. The offsets have the rank of the source, so with a\nshorter target shape the slice got fewer sizes than offsets, which is\nthe assertion above. The test pass uses a native shape of `{2, 2}`, so\nany reduction on a rank 3 vector hits it.\n\nThe fix pads the target shape with leading unit dimensions before using\nit, the same way the elementwise pattern does.\n\n## Testing\n\nAdded a rank 3 reduction to\n`mlir/test/Dialect/Vector/vector-unroll-options.mlir`. The existing RUN\nlines all pass `unroll-based-on-type`, so the plain form of the pass,\nthe one with the `{2, 2}` native shape, was not covered at all; this\nadds a RUN line for it.\n\nChecked on an assertions build that the reproducer aborts before the\nchange and succeeds after, that the new test fails without it, that the\nunrolled IR round trips, and that a reduction whose rank already matches\nthe native shape is still unrolled the same way.\n`mlir/test/Dialect/Vector` and `mlir/test/Conversion` are 513/513.\n\n---------\n\nCo-authored-by: Federico Bruzzone \u003cfederico.bruzzone.i@gmail.com\u003e\nGitOrigin-RevId: 5e1bcd683d37d9ea024be18fd8419e497bd614fc\n"
    },
    {
      "commit": "82005e1da34be1380b530f2be6f0a60f5f193d01",
      "tree": "73c98566c4108a74c904eb2f38aacf482168b23b",
      "parents": [
        "be59fae58b6c237b7349bedbb82e0d424d99d769"
      ],
      "author": {
        "name": "Scott Manley",
        "email": "rscottmanley@gmail.com",
        "time": "Mon Aug 24 12:22:23 2026 -0400"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Aug 24 09:26:58 2026 -0700"
      },
      "message": "[OpenACC] do not report launch args for loops in acc routines (#218449)\n\nACC routines do not launch kernels, so it should not report the launch\nargs. The par dims should still be reported. E.g.\n\n```\nbefore:\n\n!$acc loop gang(1), vector(1) ! blockidx.x threadidx.x\n\nnow:\n\n!$acc loop gang, vector ! blockidx.x threadidx.x\n```\n\nGitOrigin-RevId: 335de161becb72eb5c80418bfe8f465c92370ecc\n"
    },
    {
      "commit": "be59fae58b6c237b7349bedbb82e0d424d99d769",
      "tree": "14cf8a5b550c2bd1cd21c8f7029bb2a4a4d6a363",
      "parents": [
        "aa9c514a672959716b1c90ec37829a8a2051e67a"
      ],
      "author": {
        "name": "Andrzej Warzyński",
        "email": "andrzej.warzynski@arm.com",
        "time": "Mon Aug 24 17:21:45 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Aug 24 09:26:44 2026 -0700"
      },
      "message": "[mlir][vector] Add missing lit CFG file (#218445)\n\nThis file was meant to be added in #216098 - it makes sure that tests\nunder mlir/test/Integration/Dialect/Vector/CPU/ArmNeon are only run when\n`MLIR_RUN_ARM_NEON_TESTS` is set.\n\nGitOrigin-RevId: 8d31f4a27901e94fd9eb588b7566cb046e767e1a\n"
    },
    {
      "commit": "aa9c514a672959716b1c90ec37829a8a2051e67a",
      "tree": "5483bb4934ecae621b8061ad1569db8a7534c9c8",
      "parents": [
        "287af2c04b522b346b8ad10b7edcd9f0bd083227"
      ],
      "author": {
        "name": "Victor Perez",
        "email": "victor.pc.upm@gmail.com",
        "time": "Mon Aug 24 08:00:47 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Aug 24 08:05:56 2026 -0700"
      },
      "message": "[mlir][bufferization] Fix alloc_tensor copy operand assert with size_hint (#217734)\n\n`AllocTensorOpInterface::bufferizesToMemoryRead` and\n`bufferizesToMemoryWrite` assert that the `copy` operand is the last\noperand. The ODS argument order is `dynamic_sizes`, `copy`, `size_hint`,\n`memory_space`.\n\n`copy` and `size_hint` can be used together, so the input is legal and\nthus OSB asserts on legal code. Compare the operand against `getCopy()`\ninstead.\n\n---\n\nCode authored by Claude Code.\n\nSigned-off-by: Víctor Pérez Carrasco \u003cvictor.pc.upm@gmail.com\u003e\nGitOrigin-RevId: 098b2bb3fa2f947bcdf86259cbf4fa0001b30934\n"
    },
    {
      "commit": "287af2c04b522b346b8ad10b7edcd9f0bd083227",
      "tree": "fca61ad6107718f15e8cd8f731a5dd186cac9702",
      "parents": [
        "f86d62b89b2fb553a07cde4727cb5996f12fead0"
      ],
      "author": {
        "name": "Victor Perez",
        "email": "victor.pc.upm@gmail.com",
        "time": "Mon Aug 24 07:52:50 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Aug 24 07:55:48 2026 -0700"
      },
      "message": "[mlir][tensor] Fix assertion on bufferizing expand_shape with a non-strided layout (#217714)\n\n`ExpandShapeOpInterface::bufferize` creates a `memref.expand_shape`\ndirectly without consulting `getBufferType`. The `memref::ExpandShapeOp`\nbuilder computes the result layout with `computeExpandedType` and\nasserts when that fails. `computeExpandedType` fails when the source\nlayout is not identity and `getStridesAndOffset` cannot decompose it, so\na non-strided affine layout aborts the compiler instead of reporting a\nfailed bufferization.\n\nQuery `getBufferType` first and return failure when it fails. The\nmodel\u0027s own `getBufferType` already propagates the `computeExpandedType`\nfailure.\n\nRest of the behaviour is unchanged: we just fail gracefully now instead\nof crashing.\n\n---\n\nCode authored by Claude Code.\n\nGitOrigin-RevId: 887442c9ada2ecaddc49ca57ba400a5f9d63c946\n"
    },
    {
      "commit": "f86d62b89b2fb553a07cde4727cb5996f12fead0",
      "tree": "67f7f52a97328ce68b6d78eb5470fb849343e54a",
      "parents": [
        "cad9e8e02a12c74be43fa83ea52d03334dc6ac05"
      ],
      "author": {
        "name": "vabridgers",
        "email": "58314289+vabridgers@users.noreply.github.com",
        "time": "Mon Aug 24 09:11:50 2026 -0500"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Aug 24 07:15:22 2026 -0700"
      },
      "message": "[mlir][linalg] Fix splat fold crash on non-TypedAttr element types (#218012)\n\n`getScalarConstantAttrFromDenseSplat` returns\n`getSplatValue\u003cTypedAttr\u003e()`, which for a derived attribute type is an\nunchecked `llvm::cast`. Complex element types store their splat as an\n`ArrayAttr` of two values, and `ArrayAttr` does not implement\n`TypedAttr`, so the cast asserts on\n\n    %cst \u003d arith.constant dense\u003c(1.0,2.0)\u003e : tensor\u003c3xcomplex\u003cf32\u003e\u003e\n    %0   \u003d linalg.broadcast ins(%cst : tensor\u003c3xcomplex\u003cf32\u003e\u003e)\n            outs(%init : tensor\u003c2x3xcomplex\u003cf32\u003e\u003e) dimensions \u003d [0]\n\nunder `mlir-opt --canonicalize`. Integer and float splats yield\n`IntegerAttr`/`FloatAttr`, which are `TypedAttr`, so only non-scalar\nelement types are affected.\n\nGuard with a `dyn_cast` and decline the fold when the splat value has no\n`TypedAttr` representation. The helper is shared by the broadcast\npattern added in PR 195980 and the transpose patterns added in PR\n195991, so both call sites are fixed; a test is added for each, as the\ntranspose case was not previously covered.\n\nGitOrigin-RevId: 7e0fc20933f48be89b0f82046a1cfb1ab53ee37a\n"
    },
    {
      "commit": "cad9e8e02a12c74be43fa83ea52d03334dc6ac05",
      "tree": "6fd765751f40e4e80ee3e6ad4e4528e8229701d1",
      "parents": [
        "d8f56c89976fb59d43a11d659e63e1817b7fb87f"
      ],
      "author": {
        "name": "Mehdi Amini",
        "email": "joker.eph@gmail.com",
        "time": "Mon Aug 24 14:27:09 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Aug 24 05:30:32 2026 -0700"
      },
      "message": "[MLIR][ODS] Add separator support to oilist (#217891)\n\nAllow an optional literal separator in oilist formats. Parse and print\nseparators only between present clauses, and diagnose missing, trailing,\nand ambiguous separators.\n\nAssisted-by: Codex\nGitOrigin-RevId: 0973b4c1293e44417a4cbcc4342328b8bed82e2d\n"
    },
    {
      "commit": "d8f56c89976fb59d43a11d659e63e1817b7fb87f",
      "tree": "87c67dbd88aa5e2da405296f013ee95f97a2cb60",
      "parents": [
        "4e54713c5ca836d563d2071fa8bbc8f8a9c0299c"
      ],
      "author": {
        "name": "Sergio Afonso",
        "email": "safonsof@amd.com",
        "time": "Mon Aug 24 12:39:08 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Aug 24 04:40:23 2026 -0700"
      },
      "message": "[MLIR][OpenMP] Add verification for DeclareTargetInterface (#217294)\n\nThis patch introduces checks to ensure the \"omp.declare_target\"\nattribute is only attached to `DeclareTargetInterface` operations, it is\nalways the right type attribute and its properties do not conflict with\nthe operation they are attached to.\n\nGitOrigin-RevId: 771bdfdab2d66a4eb85b8ea7673cfa30152718b1\n"
    },
    {
      "commit": "4e54713c5ca836d563d2071fa8bbc8f8a9c0299c",
      "tree": "f93f90acf455f5f48be6027491bb0a0a07777f8d",
      "parents": [
        "5d5561110545cb288dcaaa52c9e578bb5d3b0181"
      ],
      "author": {
        "name": "Chibuoyim (Wilson) Ogbonna",
        "email": "chibuoyim.faith.ogbonna@huawei.com",
        "time": "Mon Aug 24 10:38:57 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Aug 24 02:41:10 2026 -0700"
      },
      "message": "[MLIR][Linalg] Fix segfault when an out operand is yielded by a nested op (#216977)\n\nThis closes\n[203752](https://github.com/llvm/llvm-project/issues/203752), a smaller\nreproducer is:\n```mlir\n#map \u003d affine_map\u003c(d0, d1) -\u003e (d0, d1)\u003e\n#map1 \u003d affine_map\u003c(d0, d1) -\u003e (d0)\u003e\n#map2 \u003d affine_map\u003c(d0) -\u003e (d0)\u003e\n\nfunc.func @yield_of_nested_op_keeps_output(%arg0: tensor\u003c1x1xi32\u003e, %arg1: tensor\u003c1xi32\u003e,\n                                           %arg2: memref\u003c1xi1\u003e) {\n  %c42 \u003d arith.constant 42 : i32\n  %c0 \u003d arith.constant 0 : index\n  %false \u003d arith.constant false\n  %0 \u003d linalg.generic {indexing_maps \u003d [#map, #map1],\n                       iterator_types \u003d [\"parallel\", \"reduction\"]}\n      ins(%arg0 : tensor\u003c1x1xi32\u003e) outs(%arg1 : tensor\u003c1xi32\u003e) {\n  ^bb0(%in: i32, %out: i32):\n    %1 \u003d linalg.generic {indexing_maps \u003d [#map2], iterator_types \u003d [\"parallel\"]}\n        outs(%arg1 : tensor\u003c1xi32\u003e) {\n    ^bb0(%out_0: i32):\n      memref.store %false, %arg2[%c0] : memref\u003c1xi1\u003e\n      linalg.yield %out : i32\n    } -\u003e tensor\u003c1xi32\u003e\n    linalg.yield %c42 : i32\n  } -\u003e tensor\u003c1xi32\u003e\n  return\n}\n```\nSegfaults when run with `mlir-opt --linalg-fuse-elementwise-ops`\n\nCurrently, `isResultValueDead` drops the `out` operand because it only\nchecks that the user of `%out` is a `linalg.yield`, not that it is this\nop\u0027s own terminator. But here `%out`\u0027s only use is the *nested*\ngeneric\u0027s yield, so the operand is dropped while the value is still live\ninside that region!\n\nSimple fix is checking that the yield is the terminator of the generic\nbeing rewritten before marking the result dead.\n\nGitOrigin-RevId: 568110f3a8a2baa22f78e552e17d724fcc5c5286\n"
    },
    {
      "commit": "5d5561110545cb288dcaaa52c9e578bb5d3b0181",
      "tree": "28904f0e9dfdd011a079edbdcda3f0d39a2a2909",
      "parents": [
        "fc67c5480e9a3bd13e8cfffe76f3bc1dab5513f1"
      ],
      "author": {
        "name": "Alessandro Potenza",
        "email": "ap.alessandro.potenza@gmail.com",
        "time": "Mon Aug 24 09:54:40 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Aug 24 01:00:30 2026 -0700"
      },
      "message": "[mlir][vector] Verify multi_reduction reduction dimensions (#216854)\n\n`vector.multi_reduction` does not bounds-check `reduction_dims`.\nOut-of-range\nentries verify cleanly and then crash the canonicalizer:\n\n```mlir\n%0 \u003d vector.multi_reduction \u003cadd\u003e, %a, %b [1, 2] : vector\u003c1x4xf16\u003e to vector\u003c1xf16\u003e\n```\n\n`getReductionMask()` builds `SmallVector\u003cbool\u003e res(sourceRank)` and\nexecutes\n`res[2] \u003d true`. The `[1, -1]` variant indexes `res[(size_t)-1]`.\n\nReject out-of-range and duplicate dims in the verifier, following\n`TransposeOp::verify`. The mask is reused by the shape-inference loop\nbelow.\n\nOne existing test is itself the repro: `propagate-layout.mlir` uses `[1,\n2]` on a\nrank-2 vector. I changed the source shape to `vector\u003c1x1x4xf16\u003e` rather\nthan the\ndims to `[1]`, because `[1]` would flip `verticalLaneLayout` and\ncollapse the\nlane layout the test checks. XeGPU owners: please confirm that is what\nwas meant.\n\nAssisted-by: Claude (Anthropic)\n\nAI-assisted, disclosed per the LLVM AI Tool Use Policy.\n\nGitOrigin-RevId: 64bbf27bc7ab180bb01915f29065981df1e9a98b\n"
    },
    {
      "commit": "fc67c5480e9a3bd13e8cfffe76f3bc1dab5513f1",
      "tree": "86e8a58c2b22bcf21098c746c8565cd3f71ad910",
      "parents": [
        "2161b06963d439f1a6087f55eaa0bc18689fd38c"
      ],
      "author": {
        "name": "purnima shrivastava",
        "email": "purnimashrivastava05@gmail.com",
        "time": "Sun Aug 23 15:00:55 2026 +0530"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Sun Aug 23 02:36:49 2026 -0700"
      },
      "message": "[mlir][SCF] Skip dynamic peeling for non-index loops (#217909)\n\n`scf-for-loop-peeling` constructs an `affine.apply` on its dynamic path\nto compute the split bound. However, `affine.apply` requires `index`\noperands, while `scf.for` also permits signless integer induction\nvariables and bounds.\n\nSkip the dynamic peeling path when the loop induction variable is not\n`index`. The existing constant-bounds path remains unchanged, so\nconstant integer loops can still be peeled.\n\nAdd a regression test for a loop with dynamic `i32` bounds, verifying\nthat the pass leaves it unchanged rather than producing invalid IR.\n\nFixes #216631.\n\nCo-authored-by: Purnima Shrivastava \u003cpurnimashrivastava05@.com\u003e\nGitOrigin-RevId: 294c9c8b3fb92da313cd1544ae267a50aff8689f\n"
    },
    {
      "commit": "2161b06963d439f1a6087f55eaa0bc18689fd38c",
      "tree": "db2372137c996a78fb4f31959708d3fb9052b33a",
      "parents": [
        "c80107423a80dfb48558e45c10f4e79cede2c223"
      ],
      "author": {
        "name": "Alessandro Potenza",
        "email": "ap.alessandro.potenza@gmail.com",
        "time": "Sun Aug 23 11:29:00 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Sun Aug 23 02:30:31 2026 -0700"
      },
      "message": "[mlir][scf] Do not read non-constant loop bounds when unrolling (#217392)\n\n`loopUnrollByFactor` asserts `expected constant loop bound`\n(`SCF/Utils/Utils.cpp`) when the loop bounds are not constant.\n`getStaticTripCount` takes the constant path whenever\n`constantTripCount` answers, but `constantTripCount` answers on three\nshapes where the bounds themselves are **not** constant:\n\n- `lb \u003d\u003d ub` (same `Value`), giving 0 iterations,\n- `lb \u003d\u003d 0` and `ub \u003d\u003d step`, giving 1 iteration,\n- `ub` a constant offset from a non-constant `lb`, via\n`computeUbMinusLb` under `nsw`.\n\nIn all three the code then reads the bounds as constants and asserts.\n\nThe fix takes the constant path only when `lb`, `ub` and `step` are all\nconstant, and otherwise falls through to the dynamic path that already\nhandles them. The other two callers of `getStaticTripCount` in that file\nuse only the count, never the bounds, so the defect is confined to this\none.\n\nFixes #203858.\n\nAssisted-by: Claude (Anthropic)\nGitOrigin-RevId: 8132d4da712113b30255b4adff8fe12682835990\n"
    },
    {
      "commit": "c80107423a80dfb48558e45c10f4e79cede2c223",
      "tree": "8170c92da35f2888ccbd868420ff54d44910eb09",
      "parents": [
        "6bd9df947ed6efc48dcda9ca3b189115e008afaf"
      ],
      "author": {
        "name": "Hyunjun Shin",
        "email": "shjj1504@gmail.com",
        "time": "Sun Aug 23 17:37:04 2026 +0900"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Sun Aug 23 01:40:45 2026 -0700"
      },
      "message": "[mlir][tensor][bufferization] Preserve memory space for tensor.concat (#213528)\n\n## Summary\n\n- Use the buffer type selected for the destination `alloc_tensor` when\nbufferizing `tensor.concat`.\n- Pass that type to `ToBufferOp` instead of reconstructing a\ndefault-memory-space `MemRefType`.\n- Use the same type for the destination subviews, preserving its memory\nspace and layout.\n- Add an encoding-based regression test for a non-default destination\nmemory space.\n\n## Motivation\n\nWhile investigating `tensor.concat` bufferization with a non-default\nmemory space, I reproduced a mismatch between the destination allocation\ntype and the type requested by `ToBufferOp`.\n\nThe destination was allocated as `memref\u003c16xf32, 2\u003e`, but\n`ConcatOpInterface` reconstructed a default-space `memref\u003c16xf32\u003e`.\nSince `memref.cast` cannot change memory spaces, bufferization inserted\nan additional default-space allocation and a `memref.copy`. This extra\nallocation and copy defeat the intended memory-space placement.\n\nBefore this change, `ConcatOpInterface` explicitly rejected non-default\nmemory spaces and reconstructed the destination type from only the\nshape, element type, and layout. That was sufficient for default-space\ncases, but it did not account for other type-conversion hooks that can\nselect a non-default buffer type.\n\nThis change obtains the buffer type selected for the destination\n`alloc_tensor` with `getBufferType(*tensorAlloc, options, state)` and\npasses that type directly to `ToBufferOp`, preserving the selected\nmemory space and layout.\n\n## Background\n\n`ConcatOpInterface` allocates its destination through\n`allocateTensorForShapedValue`. The resulting `alloc_tensor` may\nbufferize to a memref in a non-default memory space. The implementation\nthen manually reconstructed the destination `MemRefType` without a\nmemory-space attribute.\n\nThis could make `ToBufferOp` observe a non-default-space source buffer\nand a default-space requested result type. Since those types cannot be\nreconciled with `memref.cast`, bufferization could introduce an\nadditional default-space allocation and a full-result copy. The\ninput-to-subview copies that implement the concat itself are still\nrequired.\n\nThe existing `defaultMemorySpaceFn` guard is not sufficient because the\nactual buffer type may be selected through another type-conversion hook.\nQuerying `getBufferType(*tensorAlloc, options, state)` obtains the\nbuffer type selected for the allocation and preserves the selected\nmemory space and other type information such as layout. Passing this\ntype to `ToBufferOp` and using it for the destination subviews keeps the\nallocation, conversion, and copies consistent.\n\nAssisted-by: Codex\nGitOrigin-RevId: 62b1dce2e660c48407289bc921871590e68e83a9\n"
    },
    {
      "commit": "6bd9df947ed6efc48dcda9ca3b189115e008afaf",
      "tree": "8fb570695e3afc38a869326318366fb86a09a51b",
      "parents": [
        "ba1a24ba83d2e0c021462b9b5a5457e6c9468188"
      ],
      "author": {
        "name": "Maksim Levental",
        "email": "maksim.levental@gmail.com",
        "time": "Sat Aug 22 22:55:18 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Sat Aug 22 23:00:21 2026 -0700"
      },
      "message": "[MLIR][Python] Don\u0027t throw in PyDenseArrayIterator dunderNext (#218193)\n\n`PyDenseArrayIterator::dunderNext` signaled iterator exhaustion by\nthrowing `nanobind::stop_iteration()`. Raising a C++ exception to signal\n`StopIteration` incurs stack-unwinding cost on every loop over a dense\narray attribute.\n\n#175377 replaced this pattern with `PyErr_SetNone(PyExc_StopIteration)`\n(return a null object after setting the Python error indicator) for the\nother iterators in the bindings. `PyDenseArrayIterator` was missed in\nthat change and still throws. This PR applies the same conversion to\n`PyDenseArrayIterator::dunderNext`.\n\nAssisted by: Claude\n\nGitOrigin-RevId: d9641906f295fc1c3d5b540dcc35c5dcab3e0de0\n"
    },
    {
      "commit": "ba1a24ba83d2e0c021462b9b5a5457e6c9468188",
      "tree": "b294b257beda6bce8829c16f7458c510e0741d13",
      "parents": [
        "8dc74b0f7d9230ed28a7a87c375b3af38008ae69"
      ],
      "author": {
        "name": "Jianhui Li",
        "email": "jian.hui.li@intel.com",
        "time": "Sat Aug 22 14:35:34 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Sat Aug 22 14:40:45 2026 -0700"
      },
      "message": "[mlir][xegpu] Lower dynamic high-D nd load/store via base-pointer fold (#215711)\n\nReworks lowering of \u003e2D (batched)\n`xegpu.create_nd_tdesc`/`load_nd`/`store_nd`/ `prefetch_nd` (batched\nGEMM, rank-4 flash-attention) to keep the full high-D memref as the\ndescriptor source and carry the leading (batch) offsets as a row offset\ninto a flattened 2D plane, instead of slicing a per-batch\n`memref.subview` during blocking.\n\nFor example, the wg-level IR read a 4d vector out of a dynamic shaped\nmemref.\n ```mlir\n    %0 \u003d vector.transfer_read %source[%i, %j, %k, %l], %c0\n{in_bounds \u003d [true, true, true, true]} : memref\u003c?x?x8x16xf32\u003e,\nvector\u003c2x4x8x16xf32\u003e\n ```\nThis lowers with no subview — the full memref is the descriptor source\nand all four offsets stay on the load:\n\n```mlir\n  %desc \u003d xegpu.create_nd_tdesc %source\n            : memref\u003c?x?x8x16xf32\u003e -\u003e !xegpu.tensor_desc\u003c2x4x8x16xf32, #...\u003cboundary_check \u003d false\u003e\u003e\n  %vec  \u003d xegpu.load_nd %desc[%i, %j, %k, %l] -\u003e vector\u003c2x4x8x16xf32\u003e\n```\n\nAfter blocking/unrolling, the 2x4 batch dims become unit tiles and their\noffsets ride on each load. At XeVM lowering the source is viewed as a\nsingle flattened 2D plane: base_height is the product of all dims but\nthe innermost, so the 2D-block surface spans every batch plane at once,\nand the batch offsets become a row offset into it:\n\noffset_h \u003d offset[R-2] + Σ_{d\u003cR-2} offset[d] * (stride[d] / stride[R-2])\n\n```mlir\n %desc \u003d xegpu.create_nd_tdesc %source : memref\u003c?x?x8x16xf32\u003e -\u003e\n  !xegpu.tensor_desc\u003c1x1x8x16xf32\u003e\n  %t0 \u003d xegpu.load_nd %desc[%i,       %j,       %k, %l] -\u003e vector\u003c1x1x8x16xf32\u003e\n  %t1 \u003d xegpu.load_nd %desc[%i,       %j + 1,   %k, %l] -\u003e vector\u003c1x1x8x16xf32\u003e\n  %t2 \u003d xegpu.load_nd %desc[%i,       %j + 2,   %k, %l] -\u003e vector\u003c1x1x8x16xf32\u003e\n  %t3 \u003d xegpu.load_nd %desc[%i,       %j + 3,   %k, %l] -\u003e vector\u003c1x1x8x16xf32\u003e\n  %t4 \u003d xegpu.load_nd %desc[%i + 1,   %j,       %k, %l] -\u003e vector\u003c1x1x8x16xf32\u003e\n  %t5 \u003d xegpu.load_nd %desc[%i + 1,   %j + 1,   %k, %l] -\u003e vector\u003c1x1x8x16xf32\u003e\n  %t6 \u003d xegpu.load_nd %desc[%i + 1,   %j + 2,   %k, %l] -\u003e vector\u003c1x1x8x16xf32\u003e\n  %t7 \u003d xegpu.load_nd %desc[%i + 1,   %j + 3,   %k, %l] -\u003e vector\u003c1x1x8x16xf32\u003e\n  // %t0..%t7 reassembled into vector\u003c2x4x8x16xf32\u003e via vector.insert_strided_slice\n  ```\n  This supersedes the subview approach (#201725), which could not produce a valid base for a dynamic-shape memref.\n\n  Collapsing the leading dims into one tall surface does mean base_height grows to the product of the leading dims, and can exceed the HW 2D-block surface height for large attention. That is the accepted cost of keeping base_ptr valid so the boundary check stays meaningful. Two further limitations are documented in the pass: each leading stride must be a whole number of rows, so a source with gaps between planes (stride[d] % stride[R-2] !\u003d 0) is not lowered; and plane boundaries are invisible to the boundary check, so a tile whose rows run past size[R-2] reads the next plane\u0027s rows instead of zero padding.\n\n  assited-by-claude\n\n---------\n\nCo-authored-by: Claude Opus 4.8 (1M context) \u003cnoreply@anthropic.com\u003e\nGitOrigin-RevId: 8dba613e379f9f5b4a58676ace073ba5927015aa\n"
    },
    {
      "commit": "8dc74b0f7d9230ed28a7a87c375b3af38008ae69",
      "tree": "5f585bcbcb886b5445b6bc74dfc2cb1e2da9cac2",
      "parents": [
        "c02410f6861e52ecae97a4e62e8ea4e3551a5272"
      ],
      "author": {
        "name": "Twice",
        "email": "twice@apache.org",
        "time": "Sun Aug 23 00:27:37 2026 +0800"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Sat Aug 22 09:30:10 2026 -0700"
      },
      "message": "[MLIR][Python] Add effect and speculatability specifiers for Python-defined ops (#216773)\n\nThis PR adds standalone effect and speculatability specifiers for\nPython-defined operations.\n\n`NoMemoryEffect` and `AlwaysSpeculatable`, previously nested under\n`Pure`, are now public, and `RecursivelySpeculatable` is added. `Pure`\nremains a shorthand for attaching `NoMemoryEffect` and\n`AlwaysSpeculatable`.\n\nThis also exposes `OpTrait::HasRecursiveMemoryEffects` through the C API\nand Python bindings as `ir.RecursiveMemoryEffectsTrait`, allowing\nregion-bearing Python-defined operations to derive their memory effects\nfrom nested operations:\n\n```python\nclass LeafOp(\n    TestDialect.Operation,\n    name\u003d\"leaf\",\n    traits\u003d[NoMemoryEffect, AlwaysSpeculatable],\n):\n    pass\n\nclass RegionOp(\n    TestDialect.Operation,\n    name\u003d\"region\",\n    traits\u003d[\n        ir.NoTerminatorTrait,\n        ir.RecursiveMemoryEffectsTrait,\n        RecursivelySpeculatable,\n    ],\n):\n    body: Region\n```\n\nTests cover direct interface queries and validate recursive memory\neffects with CSE and trivial DCE.\n\nRelated to #177735 and #195505.\n\nAssisted-by: Codex / GPT-5.6 Sol\nGitOrigin-RevId: a4402bd0cc5fc5f187e264217a349f853a40ec50\n"
    },
    {
      "commit": "c02410f6861e52ecae97a4e62e8ea4e3551a5272",
      "tree": "f1e57b9812652e5164e24aa55531e258606a3243",
      "parents": [
        "6ee7715a3a6daa6d285abbb0e35f0cb038719b65"
      ],
      "author": {
        "name": "Luke Lau",
        "email": "luke@igalia.com",
        "time": "Sat Aug 22 10:13:44 2026 +0800"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Aug 21 19:16:34 2026 -0700"
      },
      "message": "[MLIR] Remove VP intrinsic intregration test. NFC (#218087)\n\nFixes the buildbot failure in\nhttps://lab.llvm.org/buildbot/#/builders/177/builds/39732.\nvp.add has been removed in #217863 so this just removes the test.\n\nThis essentially reverts commit\nee82b864f2086f944f046bd00b03f30697403f8a.\n\nGitOrigin-RevId: 3bc32dabccc8175f47671fdd678c6ec28c9906a0\n"
    },
    {
      "commit": "6ee7715a3a6daa6d285abbb0e35f0cb038719b65",
      "tree": "552b9ce6d6974f323579b976fa9b301fe3769a91",
      "parents": [
        "ac46abf106c7efeb62efb0382039d0c034cf1c5b"
      ],
      "author": {
        "name": "Sang Ik Lee",
        "email": "sang.ik.lee@intel.com",
        "time": "Fri Aug 21 16:36:32 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Aug 21 16:40:34 2026 -0700"
      },
      "message": "[MLIR][XeGPU][XeVM] Lower xegpu.lane_shuffle to xevm.bitcast_shuffle (#215306)\n\nLower `xegpu.lane_shuffle` onto `xevm.bitcast_shuffle` in\n`convert-xegpu-to-xevm`:\n\n  // pack mode, a vector\u003c4xbf16\u003e fragment per lane\n  %0 \u003d xegpu.lane_shuffle %frag pack : vector\u003c4xbf16\u003e\n\n`xevm.bitcast_shuffle` concatenates its operand\u0027s components across the\nsubgroup\nand hands the bits back out in result-component-sized chunks. Taking a\nlane\u0027s\n`vector\u003cNxT\u003e` fragment as a single `N * width(T)` bit scalar makes that\nexactly\n`lane_shuffle`\u0027s pack numbering, so pack is a vector-to-scalar shuffle\nfollowed by\na bitcast back to the fragment type, and unpack is the inverse.\n\n`xevm.bitcast_shuffle` only accepts integers, so a floating point\nfragment is\nbitcast to a same-width integer vector on the way in and back on the way\nout; an\ninteger fragment passes straight through. Fragments whose element or\ntotal width is\nnot 8, 16, 32 or 64 bits cannot be shuffled at byte granularity and\nreport a\nconversion failure, which covers fp4.\n\nGitOrigin-RevId: e19ed1da3b33ff6e9a34c2734f1de435a6672089\n"
    },
    {
      "commit": "ac46abf106c7efeb62efb0382039d0c034cf1c5b",
      "tree": "fd353a475afd6d9cdaffe8239d3e895a32eec759",
      "parents": [
        "161d231e6e753f58d90b90f8b6e4d3d4d93df6ed"
      ],
      "author": {
        "name": "Jianhui Li",
        "email": "jian.hui.li@intel.com",
        "time": "Fri Aug 21 16:24:03 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Aug 21 16:27:06 2026 -0700"
      },
      "message": "[mlir][xegpu] Report failure when no valid layout can be determined for anchor ops (#214875)\n\nThis PR makes XeGPU layout propagation fail immediately when it\nencounters an anchor op (store or dpas) that it can\u0027t determines its\nlayout.\n\nIt reports an error message at the offending op during propagation step,\nrather than leaving the layout unlabeled and letting the problem crash\nor misreport in a later pass. So user has better understanding about the\nlowering issue.\n\nassisted-by-claude\n\n---------\n\nCo-authored-by: Claude Opus 4.8 (1M context) \u003cnoreply@anthropic.com\u003e\nGitOrigin-RevId: d5a1778173374b1597a9f2187217f64cd4d3b9ce\n"
    },
    {
      "commit": "161d231e6e753f58d90b90f8b6e4d3d4d93df6ed",
      "tree": "19efa7658df7fb516c178c7c5372f1756eb2367c",
      "parents": [
        "b2bc59f67c4cceb8ec1a0fc74f9425b4eae0805a"
      ],
      "author": {
        "name": "Sang Ik Lee",
        "email": "sang.ik.lee@intel.com",
        "time": "Fri Aug 21 16:04:36 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Aug 21 16:12:44 2026 -0700"
      },
      "message": "[MLIR][XeVM] Add xevm.bitcast_shuffle op and lowering to LLVM (#215303)\n\nAdd `xevm.bitcast_shuffle`, matching the SPIR-V\nOpSubgroupBitcastShuffleINTEL\ninstruction from SPV_INTEL_subgroup_bitcast_shuffle. It performs a\nbit-preserving\nconversion and shuffle of its operand across a subgroup: all invocations\ncooperate, the components of the operand are concatenated in\nsubgroup-local-id\norder, and the resulting bit stream is handed back out in chunks the\nsize of a\nresult component.\n\n// pack: gather one value per lane out of the components spread across\nthe subgroup\n  %scalar \u003d xevm.bitcast_shuffle %vec : (vector\u003c4xi16\u003e) -\u003e i64\n  // unpack: the exact inverse\n  %vec2 \u003d xevm.bitcast_shuffle %scalar : (i64) -\u003e vector\u003c4xi16\u003e\n\nExactly one side is a 1-D vector and the other a scalar, giving these\ntwo forms; a\nvector-to-vector repack and a plain scalar-to-scalar bitcast are both\nrejected.\nBoth sides must have the same total bit width, and only i8/i16/i32/i64\nare\naccepted: the op is bit-preserving, so a producer holding floating point\ndata\nbitcasts it to a same-width integer first, which keeps the set of\noverloads small.\n\nThe op is not lowered to the SPIR-V instruction. `convert-xevm-to-llvm`\nemits a\ncall to the IGC intrinsic `llvm.genx.GenISA.SubgroupBitcastShuffle`,\noverloaded on\nboth operand and result type.\n\nGitOrigin-RevId: 78337555a28dc6faf8b04825e1c6f2b4e1a53961\n"
    },
    {
      "commit": "b2bc59f67c4cceb8ec1a0fc74f9425b4eae0805a",
      "tree": "0a20282b3d06c9cf0807739778cd6210aa7c1e99",
      "parents": [
        "4cd79ab4159a72f40f28a757a39bd87a489fe5c6"
      ],
      "author": {
        "name": "Thurston Dang",
        "email": "thurston@google.com",
        "time": "Fri Aug 21 12:57:15 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Aug 21 13:01:30 2026 -0700"
      },
      "message": "Revert \"[MLIR][ODS] Parse prop-dict fields with custom parsers\" (#218010)\n\nReverts llvm/llvm-project#217590 due to buildbot failures (reported in\nhttps://github.com/llvm/llvm-project/pull/217590#issuecomment-5372403484\nand\nhttps://github.com/llvm/llvm-project/pull/217590#issuecomment-5373041184)\n\n```\n******************** TEST \u0027MLIR :: IR/properties.mlir\u0027 FAILED ********************\nExit Code: 1\nCommand Output (stdout):\n--\n# RUN: at line 1\n/home/b/sanitizer-x86_64-linux-fast/build/llvm_build_asan_ubsan/bin/mlir-opt /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/mlir/test/IR/properties.mlir -split-input-file | /home/b/sanitizer-x86_64-linux-fast/build/llvm_build_asan_ubsan/bin/mlir-opt | /home/b/sanitizer-x86_64-linux-fast/build/llvm_build_asan_ubsan/bin/FileCheck /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/mlir/test/IR/properties.mlir\n# executed command: /home/b/sanitizer-x86_64-linux-fast/build/llvm_build_asan_ubsan/bin/mlir-opt /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/mlir/test/IR/properties.mlir -split-input-file\n# .---command stderr------------\n# | /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/mlir/test/IR/properties.mlir:95:60: error: custom op \u0027test.with_key_value_parser_boundaries\u0027 expected integer value\n# | test.with_key_value_parser_boundaries \u003cspecializedValues \u003d [3, 4], specializedMaybe \u003d some\u003c7\u003e, values \u003d array\u003ci64: 1, 2\u003e, maybe \u003d [], maybeEnum \u003d [], next \u003d 9\u003e\n# |                                                            ^\n# `-----------------------------\n```\n\nGitOrigin-RevId: 8a9cc1c4346a64a23f4db5f9fc00d7d7ede18c19\n"
    },
    {
      "commit": "4cd79ab4159a72f40f28a757a39bd87a489fe5c6",
      "tree": "74a665d83035cf8127d9f891f4219c5413fb6a65",
      "parents": [
        "afd0a77b6aacf51e660293fd39def63f22187307"
      ],
      "author": {
        "name": "Arseniy Obolenskiy",
        "email": "arseniy.obolenskiy@amd.com",
        "time": "Fri Aug 21 20:02:13 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Aug 21 11:05:44 2026 -0700"
      },
      "message": "[mlir][SPIR-V] Preserve poison mask in scalarized vector.shuffle lowering (#214686)\n\nGitOrigin-RevId: 3e50fcab313fa690fe5ebf1490b269b0d0598595\n"
    },
    {
      "commit": "afd0a77b6aacf51e660293fd39def63f22187307",
      "tree": "38ba066f7681c89958be93d0d19a86b625ea0170",
      "parents": [
        "1aa48309448bcef74dd934dd4a68e62f550e07aa"
      ],
      "author": {
        "name": "Razvan Lupusoru",
        "email": "razvan.lupusoru@gmail.com",
        "time": "Fri Aug 21 10:43:53 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Aug 21 10:46:01 2026 -0700"
      },
      "message": "[mlir][acc] Update par_dims format for reduction combine (#217678)\n\nFor consistency after https://github.com/llvm/llvm-project/pull/217643\nthis MR adds par_dims as inherent attribute to reduction_combine as was\nintended. And thus ensures consistency in IR printing of this attribute.\n\nGitOrigin-RevId: 928805ca3fe3665c369d0f17a26e35bba48c4b92\n"
    },
    {
      "commit": "1aa48309448bcef74dd934dd4a68e62f550e07aa",
      "tree": "576e9e56f3e44a649fbb155fa7dfc40c0ba55545",
      "parents": [
        "3a5ea886ae62b953408b67087152e8c69c3f6836"
      ],
      "author": {
        "name": "Krzysztof Drewniak",
        "email": "Krzysztof.Drewniak@amd.com",
        "time": "Fri Aug 21 10:25:41 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Aug 21 10:30:41 2026 -0700"
      },
      "message": "[mlir] Don\u0027t print a stray space for a fully-elided prop-dict (#216810)\n\n**Migration note**: if you have a custom `prop-dict` printer, add a\nleading space into the format - it\u0027ll no longer be printed implicitly.\n\nThe `prop-dict` printer generated by mlir-tblgen would always print\na space before dispatching to printProperties(). When every property is\nelided (because it is bound elsewhere in the assembly format or matches\nits default value) printProperties() prints nothing, leaving a stray\nspace in the output. We had a test TODO about this.\n\nThis PR makes the leading space the responsibility of the properties\nprinter, so\nit\u0027s emitted only when needed. The generic\nprinter in OpState::genericPrintProperties() and all in-tree custom\nprinters have been updated accordingly.\n\nXeGPU had worked around the stray space by writing an empty space\ndirective (``) after prop-dict to suppress the space before \u0027:\u0027. Those\nworkarounds are now redundant, and removing them restores the normal\n\u0027 : \u0027 spacing.\n\nAI note: Claude found and fixed this, I streamlined the commit message\nand checked for overly verbose comments.\n\nCo-Authored-By: Claude Opus 5 (1M context) \u003cnoreply@anthropic.com\u003e\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\nCo-authored-by: Claude Opus 5 (1M context) \u003cnoreply@anthropic.com\u003e\nGitOrigin-RevId: 19c0c901537743438af63e8cd42e20e079e4389d\n"
    },
    {
      "commit": "3a5ea886ae62b953408b67087152e8c69c3f6836",
      "tree": "230a9e28be6870897f00db95b1a97c5957a2cd37",
      "parents": [
        "da044d4251dd51a2ed3d2a79493efc8d4dc1583d"
      ],
      "author": {
        "name": "Luke Lau",
        "email": "luke@igalia.com",
        "time": "Sat Aug 22 01:10:43 2026 +0800"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Aug 21 10:18:08 2026 -0700"
      },
      "message": "[IR] Remove trivial VP intrinsics. NFC (#217863)\n\nTrivial VP intrinsics are now all autoupgraded to their non-VP\ncounterparts, so the intrinsics themselves are dead.\n\nThis removes the intrinsics and their corresponding LangRef definitions,\nas well as the VPIntrinsic subclasses and some methods in\nExpandVectorPredication which are now dead. Removing the SDNodes is\ndeferred to a separate patch.\n\nRFC: https://discourse.llvm.org/t/rfc-remove-trivial-vp-intrinsics/90972\nGitOrigin-RevId: ad9138f6b78407d95f1fb94f728ae9d4abc3625b\n"
    },
    {
      "commit": "da044d4251dd51a2ed3d2a79493efc8d4dc1583d",
      "tree": "3666fee0dad103cbad293f97101244cd11215684",
      "parents": [
        "996d0df073044cef6a9c4ffea74c9c8a46efac55"
      ],
      "author": {
        "name": "Will Dietz",
        "email": "will.dietz@sifive.com",
        "time": "Fri Aug 21 11:48:12 2026 -0500"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Aug 21 09:52:08 2026 -0700"
      },
      "message": "Revert \"[mlir][IR] Add SymbolUserTypeInterface (#198435)\" (#217959)\n\nLooking forward to this feature, but the verification cost presently is\nmuch too high: 2-3x+ end-to-end for CIRCT production workloads, as well\nas a noticeable bump to MaxRSS. A user has reported their workload is\nnow 1.85x (#212160).\n\nThis verifier performance hit impacts all MLIR projects using the common\nSymbolTable regardless of whether they make use of this interface.\n\nPresently there are no in-tree users.\n\nPromising work to reduce this cost (#212160, #212354) is underway, but\nneither are ready yet.\n\nSince the entire purpose of this interface is to support this\nverification, revert this entirely for now while the performance story\nis worked out.\n\nThis reverts commit 8c2d7cc3a9983459628c028d8537eaf79551f396.\n\nGitOrigin-RevId: ce3529423abda3fc4ad0b542daa50af21e539a29\n"
    },
    {
      "commit": "996d0df073044cef6a9c4ffea74c9c8a46efac55",
      "tree": "4e929598e65644b158c2a580e98fe3184aa805a8",
      "parents": [
        "5d2c2546f52a5f7316738eab3d877fb77bb8e0d7"
      ],
      "author": {
        "name": "Federico Bruzzone",
        "email": "federico.bruzzone.i@gmail.com",
        "time": "Fri Aug 21 16:57:16 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Aug 21 08:01:20 2026 -0700"
      },
      "message": "[mlir][ArmNeon] Enable native I8MM integration testing on Darwin (#216098)\n\nThis PR, which follows the #215296 fashion, _simply_ allows I8MM tests\nto be run natively on Darwin.\n\n**Stacked on** #215296.\n\n---------\n\nSigned-off-by: Federico Bruzzone \u003cfederico.bruzzone.i@gmail.com\u003e\nGitOrigin-RevId: ee0f7ff7e6971fcd35db64589b2c243d50b2c53e\n"
    },
    {
      "commit": "5d2c2546f52a5f7316738eab3d877fb77bb8e0d7",
      "tree": "fa4e654300590b315abc57e851bf291f2588bc70",
      "parents": [
        "52e7f30f0438eeda49845cffd04efa54c6dd6d9c"
      ],
      "author": {
        "name": "Aidan Dakhama",
        "email": "ai.dakhama@gmail.com",
        "time": "Fri Aug 21 15:48:28 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Aug 21 07:51:23 2026 -0700"
      },
      "message": "[MLIR][OpenMP] Add verifier to prevent illegal omp.critical nesting (#217357)\n\nThis PR adds missing verification to `omp.critical` to prevent illegal\nnesting of critical sections. Previously, the missing check allowed\ninvalid OpenMP programs to compile successfully.\n\nFixes #217354\n\nChanges:\n- Added a verifier check to CriticalOp to ensure it is not illegally\nnested within another CriticalOp with the same name.\n- Added mlir-opt expected-error tests to catch the malformed IR.\n\n@tblah, @skatrak: Requesting a review for this OpenMP verifier addition.\n\nCo-authored-by: Aidan Dakhama \u003cadakhama@ed.ac.uk\u003e\nGitOrigin-RevId: adcf80a280b27a918022fd237b534ee490858430\n"
    },
    {
      "commit": "52e7f30f0438eeda49845cffd04efa54c6dd6d9c",
      "tree": "ce3e35ff97bf94a793b301485f6048f5adb3e522",
      "parents": [
        "75cdc065d1c3465e6d1858606fedb02014676be1"
      ],
      "author": {
        "name": "Mehdi Amini",
        "email": "joker.eph@gmail.com",
        "time": "Fri Aug 21 13:26:38 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Aug 21 04:30:51 2026 -0700"
      },
      "message": "[MLIR][ODS] Parse prop-dict fields with custom parsers (#217590)\n\nTeach generated operation parsers to accept a key-value spelling for\nprop-dict and dispatch known fields through their ODS parsers. Keep the\nDictionaryAttr spelling as a compatibility path and use attribute\nconversion when a property has no usable FieldParser.\n\nSee #155475\n\nAssisted-by: Codex\nGitOrigin-RevId: d829d331449316ef4e19e63ca189f4c84067264b\n"
    },
    {
      "commit": "75cdc065d1c3465e6d1858606fedb02014676be1",
      "tree": "f5d6b939696773dd7ca94c9ef15f3cee6e38ec1e",
      "parents": [
        "da86465103724a11306598fb98d1751791433787"
      ],
      "author": {
        "name": "Mehdi Amini",
        "email": "joker.eph@gmail.com",
        "time": "Fri Aug 21 13:20:38 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Aug 21 04:26:22 2026 -0700"
      },
      "message": "[MLIR][Vector] Enable strict property assembly format (#217288)\n\nEnable strict property assembly format mode for the Vector dialect.\nSpell strided-slice, memory, and scan properties directly in the\naffected declarative assembly formats.\n\nRefresh vector-related tests so inherent vector properties use direct\nsyntax while ordinary attributes remain in attr-dict.\n\nAssisted-by: Codex\nGitOrigin-RevId: 4f5aa5128922ad0575e3844c201eb49f448cba4d\n"
    },
    {
      "commit": "da86465103724a11306598fb98d1751791433787",
      "tree": "a141f6f9b30db5d998fe2348f88ae3bedd5cccfc",
      "parents": [
        "d215c0fb72160caf39d5575ad88838ac131c98d8"
      ],
      "author": {
        "name": "Andrei Golubev",
        "email": "andrey.golubev@intel.com",
        "time": "Fri Aug 21 13:12:39 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Aug 21 04:15:34 2026 -0700"
      },
      "message": "[mlir] Switch to llvm::cast in generated Op::create() definitions (#217845)\n\nSwitch from llvm::dyn_cast() to llvm::cast() in the TableGen-generated\ncode for Op::create() syntax. Repeat the same for the deprecated\nOpBuilder::create().\n\nFrom the code, it seems the intent was always to unconditionally convert\nan abstract operation to a specified operation type. Yet, since\nllvm::dyn_cast() is used to perform the conversion, it practically means\nthat, even in release builds, there\u0027s a branch generated for the case if\nsuch conversion fails. This is likely a minuscule problem at a single\noperation level but perhaps somewhat affects the overall performance of\nthe compiler when the number of operations is high (e.g. consider\ninstruction cache). It looks like what one can do instead is change\nllvm::dyn_cast() to llvm::cast() and keep the nice assert-based failure\ncheck via llvm::isa().\n\nBehaviour-wise, in case of failure, dyn_cast would produce a nullptr,\ndereferencing which is UB. Now, cast would likely produce a malformed\nobject which is slightly worse but still technically UB. That is, in\nboth cases the main expectation is that creation succeeds, and if it\nfails, the user is probably going to see the UB.\n\nDisclaimer: no performance measurements were done to back up the claim\nof dyn_cast being worse than cast.\nGitOrigin-RevId: 05bd2d911ecef9c83bcce1fcf05688e403a24312\n"
    },
    {
      "commit": "d215c0fb72160caf39d5575ad88838ac131c98d8",
      "tree": "099acabf98c4665f5ebd6a2aa7233fa3a5b00280",
      "parents": [
        "d9be7c32c2d5091d082f83195c5ec18768a94773"
      ],
      "author": {
        "name": "Eisuke Kawashima",
        "email": "e.kawaschima+github@gmail.com",
        "time": "Fri Aug 21 18:32:26 2026 +0900"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Aug 21 02:35:20 2026 -0700"
      },
      "message": "[MLIR] Fix invalid escape sequences (#94036)\n\nCo-authored-by: Eisuke Kawashima \u003ce-kwsm@users.noreply.github.com\u003e\nGitOrigin-RevId: 36a5f08325b518932e22d729ea62ec7c2ef80520\n"
    },
    {
      "commit": "d9be7c32c2d5091d082f83195c5ec18768a94773",
      "tree": "a5a16a79e4360799d537aa6bc25958f3b5aee40d",
      "parents": [
        "858aa844381a93d7f2de59d5479581028ac85b68"
      ],
      "author": {
        "name": "Akimasa Watanuki",
        "email": "mencotton0410@gmail.com",
        "time": "Fri Aug 21 18:14:53 2026 +0900"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Aug 21 02:20:32 2026 -0700"
      },
      "message": "[MLIR][LLVM] Preserve unknown function metadata on import (#203022)\n\nImport representable non-debug function metadata without a kind-specific\ndialect conversion into `LLVMFuncOp` `function_metadata`. Preserve\nrepeated metadata kinds through the generic carrier so LLVM IR import\nand export can round-trip the supported generic metadata subset.\n\nWarn and drop attachments outside that subset while continuing to import\nthe function.\n\nGitOrigin-RevId: c315c9dc5d8daa54e681cf59297679647c17355d\n"
    },
    {
      "commit": "858aa844381a93d7f2de59d5479581028ac85b68",
      "tree": "cd3eed4eb59d7ef64b25ec4a5b3750e1fa20f16b",
      "parents": [
        "88e551a06a0d37d7ad77c89bb8938afb264dc72f"
      ],
      "author": {
        "name": "Aman Singh",
        "email": "48655324+amanyagami@users.noreply.github.com",
        "time": "Fri Aug 21 01:46:28 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Aug 21 01:50:31 2026 -0700"
      },
      "message": "[mlir][Bufferization] Don\u0027t assert in foldMemRefCasts on a func body without func.return (#217515)\n\n`foldMemRefCasts` (used by One-Shot Module Bufferize when inferring\nfunction result layouts) assumes every `func.func` body with a region\nends in a `func::ReturnOp`, and asserts if `getReturnOps()` finds\nnone. That assumption does not hold: `func.func`\u0027s verifier only\nrequires the region to end in some terminator, not specifically\n`func::ReturnOp`, so a body ending in e.g. a different dialect\u0027s\nterminator parses and verifies fine but crashes this pass. This code\npath is normally reached through\n`insertTensorCopies`/`analyzeModuleOp`, which already reports this\ncase gracefully via `emitError` — but that analysis is skipped\nentirely when `copy-before-write\u003d1` is set, going straight to\n`bufferizeModuleOp` and hitting the unguarded assert.\n\nFix by bailing out of `foldMemRefCasts` (nothing to fold) when there\nare no `func::ReturnOp`s, mirroring how the rest of the file already\ntolerates an empty `getReturnOps()` result.\n\nVerified: reverting this fix reproduces the reported crash; with the\nfix, `mlir-opt -one-shot-bufferize\u003d\u0027bufferize-function-boundaries\u003d1\ncopy-before-write\u003d1\u0027` on the reported reproducer succeeds, and\n\n`mlir/test/Dialect/Bufferization/Transforms/one-shot-module-bufferize-non-func-return.mlir`\npasses.\n\nFixes #217227\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)\n\nGitOrigin-RevId: 83af810fa5190d779413ed16fb3eec6e80db39db\n"
    },
    {
      "commit": "88e551a06a0d37d7ad77c89bb8938afb264dc72f",
      "tree": "a36a2b1ac7e9b99dbbc928f94d1ee7514b11af81",
      "parents": [
        "d5611bc359d47f1620e9b3f81833a889c028c5f7"
      ],
      "author": {
        "name": "LouisLu060211",
        "email": "38174270+LouisLu060211@users.noreply.github.com",
        "time": "Fri Aug 21 15:34:08 2026 +0800"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Aug 21 00:35:44 2026 -0700"
      },
      "message": "[mlir][memref] Avoid overflow in mem2reg alloca checks (#205245)\n\nThis patch fixes a crash in memory slot promotion under extremely large\nstatic memrefs while handling element-count overflow.\n\nRoot Cause:\n`MemRefMemorySlot.cpp` currently checks promotability with: `if\n(getType().getNumElements() \u003e MaxElementsToPromote)`\n\nFor extremely large static memref such as:\n`memref\u003c9223372036854775807x3xi32\u003e`\n\nThis will result `ShapedType::getNumElements` overflows and triggers\nassertion in `BuiltinTypeInterfaces.cpp:86:`:\n`assert(num.has_value() \u0026\u0026 \"integer overflow in element count\ncomputation\")`\n\nFix:\nThe changes in `AllocaOp::getPromotableSlots` can detect total element\ncount in an overflow safe-way.\nIf the elements count does not fit in `int_64t`, treated as\nnon-promotable\nReturn the empty list of promotable slots.\n\nAssisted-by: Grok 4.3\nGitOrigin-RevId: 33775a58ba5876e837714816c1f81bcaa3c67854\n"
    },
    {
      "commit": "d5611bc359d47f1620e9b3f81833a889c028c5f7",
      "tree": "679fd533a6cf6d0f1e0475fe7b0ae119da57b2c3",
      "parents": [
        "f5a6f116fdd0a8a9be41356a486ea4cb8fc505d8"
      ],
      "author": {
        "name": "Matsu",
        "email": "47756807+khaki3@users.noreply.github.com",
        "time": "Thu Aug 20 18:14:58 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Aug 20 18:20:35 2026 -0700"
      },
      "message": "[mlir][acc] Keep worker-only launches unaligned in ACCCGToGPU (#217382)\n\nExample:\n```fortran\n!$acc parallel loop worker reduction(+:s) num_workers(16) vector_length(8)\n```\n\nIn this code, a ThreadY reduction forced blockDim.x to a warp, and\nblockDim.y\nwas divided by the same factor to hold the thread count, so the launch\nran as\n(32, 4, 1): 4 workers instead of 16, with the folded-away workers turned\ninto\nThreadX lanes redoing each other\u0027s work.\n\nFix: skip the alignment when only the workers ask for it and the row\nwidth\ndivides the subgroup size. Worker reductions combine their partials in\nthe\nlowest blockDim.y threads of the block, so a row may sit anywhere inside\na\nsubgroup, and a per-row barrier is lane-masked to cover exactly that\nrow.\nThread-level array accumulates keep the padding: they combine through\natomics\non a shared array rather than worker shuffles.\nGitOrigin-RevId: e3a1704e99c49bc7453d7f0229016bccab7e82f4\n"
    },
    {
      "commit": "f5a6f116fdd0a8a9be41356a486ea4cb8fc505d8",
      "tree": "915f640028f078d8c97ca624ac8dc9cd2947f45f",
      "parents": [
        "c716c4a17e5758eb5fbdac8eeb6b44cabb3637c3"
      ],
      "author": {
        "name": "Gibran Essa",
        "email": "gessa@nvidia.com",
        "time": "Thu Aug 20 19:07:06 2026 -0500"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Aug 20 17:11:06 2026 -0700"
      },
      "message": "[MLIR][LLVM] Support DWARF v6 source language names in DICompileUnitAttr (#217432)\n\nAdds support to the LLVM dialect `DICompileUnitAttr` for DWARF v6 source\nlanguage name and version .\n\n`DICompileUnitAttr`\u0027s `sourceLanugage` field now points to a\n`DISourceLanguageNameAttr`, which contains all source language\ninformation, including dialect, name, and version. This is done to map\nas closely as possible to `llvm::DISourceLanguageName`.\n\n`DISourceLanguageNameAttr` has parameters for:\n- An DW_LANG_* language.\n- A DWARF v6 DW_LNAME_* name, which can only be set if the language is\nnot.\n- An optional language-dependent version.\n- An optional target-specific language dialect.\n\nParsers and printers are added so if only a language is passed, it is\nparsed and printed in as before this change.\n\nAssistance from codex was used in this PR.\n\nGitOrigin-RevId: b14c84c4322503461ac3666d2767f70fe77a6db1\n"
    },
    {
      "commit": "c716c4a17e5758eb5fbdac8eeb6b44cabb3637c3",
      "tree": "16cc6223cc1f2e65eb4cae0f25259bfec8ec73e8",
      "parents": [
        "1dea8f21caad73a27a406d64f7811f6d31d9b0b0"
      ],
      "author": {
        "name": "Mehdi Amini",
        "email": "joker.eph@gmail.com",
        "time": "Fri Aug 21 00:48:31 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Aug 20 15:51:03 2026 -0700"
      },
      "message": "[mlir][Shard] Compare all-reduce properties when simplifying (#217783)\n\nCompare the generated properties structs instead of listing each\ninherent attribute individually. This preserves the original equality\nsemantics when new properties are added.\n\nFollow-up to  #217233\n\nAssisted-by: Codex\nGitOrigin-RevId: 414375661162aa279a329ae7856b6bd06de7625c\n"
    },
    {
      "commit": "1dea8f21caad73a27a406d64f7811f6d31d9b0b0",
      "tree": "1501f2910754ee0af9c090f3f24dcc1fac56efb8",
      "parents": [
        "a4b7d0a73996bb0827f7405f2009e74c4f07f0a0"
      ],
      "author": {
        "name": "Mehdi Amini",
        "email": "joker.eph@gmail.com",
        "time": "Fri Aug 21 00:27:18 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Aug 20 15:30:26 2026 -0700"
      },
      "message": "[MLIR][SCFToAffine] Validate inlined affine bound operands (#217473)\n\nValidate affine.max and affine.min operands before inlining their maps\ninto affine.for bounds. This defers nested loops until enclosing\ninduction variables become valid affine dimensions and keeps the\nexported pattern independent of greedy traversal order.\n\nAssisted-by: Codex\nGitOrigin-RevId: 55c0e427fd5431863a58022d1a9927305d92fe53\n"
    },
    {
      "commit": "a4b7d0a73996bb0827f7405f2009e74c4f07f0a0",
      "tree": "0197507d231dff4517e394ae8583dec2f2dcb991",
      "parents": [
        "33fa32c365bd2926413591847479ee7b5d227759"
      ],
      "author": {
        "name": "Mehdi Amini",
        "email": "joker.eph@gmail.com",
        "time": "Fri Aug 21 00:21:59 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Aug 20 15:26:09 2026 -0700"
      },
      "message": "[mlir][SPIR-V][Shard] Migrate to explicit attribute APIs (#217233)\n\nUse explicit discardable and inherent attribute access throughout the\nSPIR-V ecosystem and Shard simplification. Add typed discardable-attribute\nquery helpers used by this and the follow-up migration branches.\n\nAssisted-by: Codex\nGitOrigin-RevId: 942bf112d8be94498676e9b29f2861db8a71f932\n"
    },
    {
      "commit": "33fa32c365bd2926413591847479ee7b5d227759",
      "tree": "60fb39735a7c49d401ba4690e5be821d36a7ea25",
      "parents": [
        "04019ef012c59776276f8502dad7bf96397ed0c6"
      ],
      "author": {
        "name": "Scott Manley",
        "email": "rscottmanley@gmail.com",
        "time": "Thu Aug 20 14:21:07 2026 -0400"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Aug 20 11:25:37 2026 -0700"
      },
      "message": "[OpenACC] fix test after strict properties change (#217717)\n\nRebased shortly after the change and didn\u0027t catch the test failure\n\nGitOrigin-RevId: 9c8d7a86766f165757d2de09b109d07d8d734cb7\n"
    },
    {
      "commit": "04019ef012c59776276f8502dad7bf96397ed0c6",
      "tree": "f27578307e9ca96f101f7df886625fb4138d0196",
      "parents": [
        "1a94093d95429aab0dff0bff62fb4cc3bd013dd1"
      ],
      "author": {
        "name": "Kevin Sala Penades",
        "email": "salapenades1@llnl.gov",
        "time": "Thu Aug 20 10:50:44 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Aug 20 10:55:25 2026 -0700"
      },
      "message": "[llvm][OpenMP] Use vector for number of threads and teams (#211453)\n\nChanges necessary to support the `dims` modifier (OpenMP 6.1) in future PRs.\n\nGitOrigin-RevId: 01b363c49104985f4f746d09094505d362e0253c\n"
    },
    {
      "commit": "1a94093d95429aab0dff0bff62fb4cc3bd013dd1",
      "tree": "3015b53338f5db8db85698feca92b761b8a35a88",
      "parents": [
        "962c74a828064230272f68eec2d699f9c236cc0f"
      ],
      "author": {
        "name": "Scott Manley",
        "email": "rscottmanley@gmail.com",
        "time": "Thu Aug 20 13:39:33 2026 -0400"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Aug 20 10:45:35 2026 -0700"
      },
      "message": "[OpenACC] propagate llvm loop annotations (#217414)\n\nWhen lowering acc.loop to scf.for or scf.parallel, copy any llvm loop\nannotations that are present\n\nGitOrigin-RevId: 29a394c9e35ae18a6b438cbaebafb909089ea174\n"
    },
    {
      "commit": "962c74a828064230272f68eec2d699f9c236cc0f",
      "tree": "7c2af135d0cb7ad86c71a5fe61e38ad823724b98",
      "parents": [
        "6da5adecbb2b74262a0de9af74b273db06686bf7"
      ],
      "author": {
        "name": "Akimasa Watanuki",
        "email": "mencotton0410@gmail.com",
        "time": "Fri Aug 21 02:04:15 2026 +0900"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Aug 20 10:05:52 2026 -0700"
      },
      "message": "[MLIR][LLVM] Translate LLVMFuncOp function metadata (#203021)\n\nMaterialize LLVMFuncOp function_metadata through ModuleTranslation\nmetadata conversion. Attach function metadata after module-level symbols\nare mapped so metadata references to functions, globals, aliases, and\nifuncs can be resolved.\n\nGitOrigin-RevId: 4e9ded133580fb7ea81cfb607357cd8c04663668\n"
    }
  ],
  "next": "6da5adecbb2b74262a0de9af74b273db06686bf7"
}
