)]}'
{
  "log": [
    {
      "commit": "a1174ba7904792b584d7e2015ea14868de270813",
      "tree": "dc0f1cd36c16fc6f7ade92a5dbafc1f03e84733e",
      "parents": [
        "3789037cdf1c49db640c1315389f78f0e71e82e9"
      ],
      "author": {
        "name": "Kaviya Rajendiran",
        "email": "67495422+kaviya2510@users.noreply.github.com",
        "time": "Wed Sep 23 18:17:35 2026 +0530"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Sep 23 05:53:13 2026 -0700"
      },
      "message": "[Flang][Driver] Added support for -funique-internal-linkage-names option  (#216680)\n\nThe option `-funique-internal-linkage-names` appends an MD5 hash suffix\n`(.__uniq.\u003chash\u003e)` to internal procedure names and sets\n`\"sample-profile-suffix-elision-policy\"\u003d\"selected\"` on those functions,\nenabling the sample profiler to correctly match profiles to internal\nprocedures across compilation units.\n\nImplementation:\n- Added a unique hash suffix to internal procedure names when\n`-funique-internal-linkage-names` is enabled. The suffix is derived from\nthe source file path and disambiguates identically named internal\nprocedures across different compilation units, which helps accurate\nsample-based profiling.\n- Added the function attribute\n`\"sample-profile-suffix-elision-policy\"\u003d\"selected\"` on internal\nprocedures in LLVM IR. This attribute is used by the LLVM sample profile\nloader to control suffix stripping during profile matching\nGitOrigin-RevId: dd33f57479c1d1d86649a1867b79be88ce04da73\n"
    },
    {
      "commit": "3789037cdf1c49db640c1315389f78f0e71e82e9",
      "tree": "6e3ae61febc780ed7863ac13cd284aedc117c711",
      "parents": [
        "7c52e28534462001f8797093524eda05d3d99b56"
      ],
      "author": {
        "name": "Krzysztof Parzyszek",
        "email": "Krzysztof.Parzyszek@amd.com",
        "time": "Wed Sep 23 06:51:57 2026 -0500"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Sep 23 05:10:08 2026 -0700"
      },
      "message": "Revert \"[clang][OpenMP] ORDERED clause is allowed on FOR in 4.5+ (#22… (#225669)\n\n…5106)\"\n\nThis reverts commit b0d31f40189dbdcf8b62e2c6ef79b039c5202aba.\n\nThis missed the restriction that ORDERED is not allowed when DISTRIBUTE\nis a constituent construct.\n\nGitOrigin-RevId: 141a9763fff5e135b313b273b44a1abea8ee6b2f\n"
    },
    {
      "commit": "7c52e28534462001f8797093524eda05d3d99b56",
      "tree": "b61c730c17c4391870b681bdd3030e0cbaeef204",
      "parents": [
        "88c4a02a7377533c8b2fc75d09b39f26ecf974af"
      ],
      "author": {
        "name": "Ayokunle Amodu",
        "email": "ayokunle321@gmail.com",
        "time": "Wed Sep 23 07:09:52 2026 -0400"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Sep 23 04:13:18 2026 -0700"
      },
      "message": "[CIR][AMDGPU] Add support for AMDGCN s_prefetch builtins (#223228)\n\nAdds codegen for the following AMDGCN s_prefetch builtins:\n\n- __builtin_amdgcn_s_prefetch_data\n- __builtin_amdgcn_s_prefetch_inst\n\nThese are lowered to the corresponding `llvm.amdgcn.s.prefetch`\nintrinsics.\n\nAssisted by: Claude Opus 5\n\nCo-authored-by: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\nGitOrigin-RevId: 34152bb7d2f37e4bedd6eb9b06a21ae54211aedc\n"
    },
    {
      "commit": "88c4a02a7377533c8b2fc75d09b39f26ecf974af",
      "tree": "28ae384c28da1e5446a45abe67d6595d41df70f1",
      "parents": [
        "d56c8cb8d09c4e43aa7add0236d54911bcec8cd1"
      ],
      "author": {
        "name": "Vipul Cariappa",
        "email": "vipulcariappa@gmail.com",
        "time": "Wed Sep 23 16:23:43 2026 +0530"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Sep 23 03:58:24 2026 -0700"
      },
      "message": "[clang-repl] Keep earlier declarations alive when an input fails (#218149)\n\nFixes #201844\n\nGitOrigin-RevId: 37e2844bc4681c69f61cbb55376a29ae0445c18c\n"
    },
    {
      "commit": "d56c8cb8d09c4e43aa7add0236d54911bcec8cd1",
      "tree": "7aa3fd17a51ef621d97b9b877566b49624830e2a",
      "parents": [
        "ccd241a421ea2a09e77b33258f434c0b92b6c39f"
      ],
      "author": {
        "name": "Timm Baeder",
        "email": "tbaeder@redhat.com",
        "time": "Wed Sep 23 11:58:32 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Sep 23 03:06:50 2026 -0700"
      },
      "message": "[clang][ExprConst] Mark two variables maybe_unused (#225652)\n\nFix the two buildbot failures from\nhttps://github.com/llvm/llvm-project/pull/225125\n\nGitOrigin-RevId: 6f6f737a6a5c08620c0108161e68dbce190897a7\n"
    },
    {
      "commit": "ccd241a421ea2a09e77b33258f434c0b92b6c39f",
      "tree": "b9c268ac4fa1b7f4b12799efd4eedb494a494903",
      "parents": [
        "cba30203590f875818c148f054cd83f39b181e26"
      ],
      "author": {
        "name": "TelGome",
        "email": "93700071+TelGome@users.noreply.github.com",
        "time": "Wed Sep 23 17:27:32 2026 +0800"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Sep 23 02:32:56 2026 -0700"
      },
      "message": "[RISCV][P-ext] Support Packed Multiply High Parts (#225015)\n\nSupport [Packed Multiply High\nParts](https://github.com/riscv/riscv-p-spec/blob/master/P-ext-intrinsics.adoc#packed-multiply-high-parts)\n\nGitOrigin-RevId: 9e09b11ae67f6fba8dfa8a798bbe130d190b5f2e\n"
    },
    {
      "commit": "cba30203590f875818c148f054cd83f39b181e26",
      "tree": "dec8c4a17a60dba9c86b99f43d58258a0a820c47",
      "parents": [
        "7d28b7d53c36cf2ab8a03673f77d32502a2bcf3c"
      ],
      "author": {
        "name": "Srinivasa Ravi",
        "email": "srinivasar@nvidia.com",
        "time": "Wed Sep 23 14:32:15 2026 +0530"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Sep 23 02:07:55 2026 -0700"
      },
      "message": "[clang][NVVM][NVPTX] Remove pzo modifier for rs rounding mode conversions (#225012)\n\nThis change removes the `pzo` modifier from the `fp16x2` conversion\nintrinsics with `rs` rounding mode. This was added in\nhttps://github.com/llvm/llvm-project/pull/214667 due to a bug in the\ndeveloper-preview version of the 13.4 PTX ISA docs, and this change\naligns it with the latest PTX ISA docs for 13.4.\n\nPTX ISA reference:\nhttps://docs.nvidia.com/cuda/parallel-thread-execution/index.html#data-movement-and-conversion-instructions-cvt\n\nGitOrigin-RevId: 309ae98474b69d96541dc28dc6666117842a5f57\n"
    },
    {
      "commit": "7d28b7d53c36cf2ab8a03673f77d32502a2bcf3c",
      "tree": "f726a2d58ebcfff7c6ca716703e62512ce7017ab",
      "parents": [
        "eeb50ce224b5d13f13cf0bf726e0979e275a1142"
      ],
      "author": {
        "name": "Daniel Petrovic",
        "email": "daniel-dev@hotmail.de",
        "time": "Wed Sep 23 10:53:19 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Sep 23 01:58:14 2026 -0700"
      },
      "message": "[clang] Fix crash on assigning to _Atomic vectors (#225125)\n\nAs described in the issue itself: d\u003dc on _Atomic vector crashed during\nthe overflow check because isVectorType() doesn\u0027t look through _Atomic.\nStrip _Atomic before checking operand types.\n\nFixes #225039\n\nbt:\n\u003cimg width\u003d\"1908\" height\u003d\"825\" alt\u003d\"225039_crash_atomic_vector\"\nsrc\u003d\"https://github.com/user-attachments/assets/c5d48ba5-fa9b-43f8-a555-8b9bbe558152\"\n/\u003e\n\nCo-authored-by: Timm Baeder \u003ctbaeder@redhat.com\u003e\nGitOrigin-RevId: c41e1ef6e1cc650cd05328155408ecb705986f09\n"
    },
    {
      "commit": "eeb50ce224b5d13f13cf0bf726e0979e275a1142",
      "tree": "fe5da4cb5a8ae984152ddb090d7e011da782efb4",
      "parents": [
        "037619f5fd6f16e59d4d4e7980c5a65bbdb8a0c4"
      ],
      "author": {
        "name": "Akash Manna",
        "email": "akash.manna.mymail@gmail.com",
        "time": "Wed Sep 23 13:41:56 2026 +0530"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Sep 23 01:18:38 2026 -0700"
      },
      "message": "[clang][bytecode] Add test for variadic inherited constructor calls (#225611)\n\nFixes #158529\n\nCalling a variadic constructor through a `using` declaration used to hit\n`assert(false \u0026\u0026 \"Can\u0027t get arguments from that expression type\")` in\n`cleanupAfterFunctionCall`. The call site is a\n`CXXInheritedCtorInitExpr`, and the cleanup only knew how to count\nvariadic arguments from a `CallExpr` or `CXXConstructExpr`. A single\nlevel of `using` crashed the same way, the second level in the\nreproducer just adds a frame.\n\nThis was fixed as a side effect of #207393, which now takes the variadic\nsize from the frame instead of the call expression. Adding the\nreproducer plus a few value checks (single and double level, mixed\nvararg types, inside a constexpr function) so it stays fixed.\n\nGitOrigin-RevId: 7fdffde1a3a932069d1aeb38c8c949166838476c\n"
    },
    {
      "commit": "037619f5fd6f16e59d4d4e7980c5a65bbdb8a0c4",
      "tree": "8b02603c64d385fa1a5fcf965916b6d4a7d26654",
      "parents": [
        "27e3a779a39b39dda693b3e8c311164c07c02fa4"
      ],
      "author": {
        "name": "Nikita Popov",
        "email": "npopov@redhat.com",
        "time": "Wed Sep 23 09:49:30 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Sep 23 00:56:56 2026 -0700"
      },
      "message": "[Clang] Fix test with 32-bit triple (#225624)\n\nGitOrigin-RevId: 75225e04996471098bacf6888d33ab94cf7595d1\n"
    },
    {
      "commit": "27e3a779a39b39dda693b3e8c311164c07c02fa4",
      "tree": "c781276151c71ac33519f99017b2768624939632",
      "parents": [
        "809df825d6ed910d484a05afd076a7e39729b110"
      ],
      "author": {
        "name": "Nikita Popov",
        "email": "npopov@redhat.com",
        "time": "Wed Sep 23 09:39:29 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Sep 23 00:43:05 2026 -0700"
      },
      "message": "[CGVTT] Fix indentation (NFC) (#225621)\n\nThe indentation in this entire code block was off-by-one, which\nincremental clang-format can\u0027t handle, so reformat the whole\nsection.\n\nGitOrigin-RevId: 3661bf5f8b28f065067bd024918ed18957e1f46a\n"
    },
    {
      "commit": "809df825d6ed910d484a05afd076a7e39729b110",
      "tree": "dded281ec74753497ce8d6b8cc6c2ba8893adad7",
      "parents": [
        "14fd2878c7fd49bf3e9dc086d2fdecaa41aa858c"
      ],
      "author": {
        "name": "Timm Baeder",
        "email": "tbaeder@redhat.com",
        "time": "Wed Sep 23 09:29:34 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Sep 23 00:33:44 2026 -0700"
      },
      "message": "[clang][bytecode] Add an `IsNull` bit to integral pointers (#202356)\n\nIt isn\u0027t always the same as \u0027value \u003d\u003d 0\u0027.\n\nGitOrigin-RevId: 5e5e63dfc728c38b5aab46b8cd61325fedc562ea\n"
    },
    {
      "commit": "14fd2878c7fd49bf3e9dc086d2fdecaa41aa858c",
      "tree": "9cf9321ee61112df8504add6dd40036ad5f777a4",
      "parents": [
        "e7b5e2c0fcffa333aaf597a49f4582089b3e7c40"
      ],
      "author": {
        "name": "Mariya Podchishchaeva",
        "email": "Mariya.Podchishchaeva@amd.com",
        "time": "Wed Sep 23 09:25:16 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Sep 23 00:28:51 2026 -0700"
      },
      "message": "[CIR][AMDGPU] Add support for wave_shuffle built-in (#225463)\n\nGitOrigin-RevId: d8aecd0b3ff64a484197e187a292f8841e4f8e93\n"
    },
    {
      "commit": "e7b5e2c0fcffa333aaf597a49f4582089b3e7c40",
      "tree": "c574017eacf9a25cdc1ab04938ed928b75287d61",
      "parents": [
        "6629afb9d4f5bc03e6ac2b2dc056a8581a0261ef"
      ],
      "author": {
        "name": "Matt Arsenault",
        "email": "Matthew.Arsenault@amd.com",
        "time": "Wed Sep 23 09:18:14 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Sep 23 00:23:05 2026 -0700"
      },
      "message": "WebAssembly: Respect target-abi module flag (#224312)\n\nPreviously this relied on the TargetABI MCOptions field and ignored\nthe IR flag.\n\nCo-authored-by: Claude (Claude-Opus-4.8) \u003cnoreply@anthropic.com\u003e\nGitOrigin-RevId: d88a7a003f0cea42b6233da0447392d15459e192\n"
    },
    {
      "commit": "6629afb9d4f5bc03e6ac2b2dc056a8581a0261ef",
      "tree": "ad920f64fcacbac133d519f3c0f7b37705a4a28e",
      "parents": [
        "2625ac4cd0b4ac6542ace6c3acdf2e376d97bbdd"
      ],
      "author": {
        "name": "Nikita Popov",
        "email": "npopov@redhat.com",
        "time": "Wed Sep 23 09:15:54 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Sep 23 00:22:26 2026 -0700"
      },
      "message": "[Clang] Use ConstantExpr::getGetElementPtr() with DataLayout (#225415)\n\nThis switches Clang to use the API introduced in\nhttps://github.com/llvm/llvm-project/pull/224652. This produces\ngetelementptr constant expressions in canonical ptradd form.\n\nGitOrigin-RevId: e0416baf412b44d09be9b300b50a15c57cdf148b\n"
    },
    {
      "commit": "2625ac4cd0b4ac6542ace6c3acdf2e376d97bbdd",
      "tree": "9134c2d86f216702ced9dd9d79e434bfbb3d8451",
      "parents": [
        "60d6ba6997c221369a461f23988e10b11447f95a"
      ],
      "author": {
        "name": "Benji Smith",
        "email": "6193112+Benjins@users.noreply.github.com",
        "time": "Wed Sep 23 02:26:14 2026 -0400"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Sep 22 23:33:10 2026 -0700"
      },
      "message": "[clang][bytecode] Fix null ptr upcasts adding offset (#224873)\n\nPreviously, this was applying the offset it would for non-null pointers,\nbut null pointers should always cast to a null pointer result.\n\nFixes https://github.com/llvm/llvm-project/issues/224869\n\nGitOrigin-RevId: 926b5e99cf68644ea18ae4573d4bdbfd7edf1cb5\n"
    },
    {
      "commit": "60d6ba6997c221369a461f23988e10b11447f95a",
      "tree": "226b28b735f6cfba13b2958e3fe1352bb6cec7be",
      "parents": [
        "fb47f7db4f9e2c63c0d4e8c2d47fbb5a54d9cc8a"
      ],
      "author": {
        "name": "geoffreygaren",
        "email": "ggaren@apple.com",
        "time": "Tue Sep 22 22:27:28 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Sep 22 22:34:13 2026 -0700"
      },
      "message": "[WebKit Checkers] Add alpha.webkit.UnborrowedLocalVarsChecker (#225274)\n\nThis is a new checker that requires a Borrow\u003cT\u003e when using a\npointer/reference/view that is lifetimebound to a CanBorrow type.\n\nA CanBorrow type is a type that tracks views into its interior at\nruntime, and calls crashIfBorrowed() when it invalidates such views.\nVector is the motivating example.\n\nA design description is available at:\nhttps://github.com/WebKit/WebKit/wiki/SaferCPP:-Borrowed-Pointer-Use-After-Destruction\n\nI implemented UnborrowedLocalVarsChecker in terms of the existing\nalpha.webkit.*LocalVarsChecker system because the requirement to hold an\noverlooking smart-pointer-like-thing is pretty similar.\n\nIn some cases where the new checker is stricter than the existing\nchecker, this patch conditionalizes the strictness. The plan is to\nupgrade existing checkers in a follow-up patch.\n\nAssisted-by: Claude\nGitOrigin-RevId: 081cc091b90248c62607c34eff91e7afbf252129\n"
    },
    {
      "commit": "fb47f7db4f9e2c63c0d4e8c2d47fbb5a54d9cc8a",
      "tree": "7f0f278e929a70bf81799687ec7e7f549a4dbb60",
      "parents": [
        "23dbdce80c898a05d6bf0a0f958ae85314271d17"
      ],
      "author": {
        "name": "weiguozhi",
        "email": "57237827+weiguozhi@users.noreply.github.com",
        "time": "Tue Sep 22 18:16:40 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Sep 22 18:24:23 2026 -0700"
      },
      "message": "[RegAlloc] [X86] Enable callee saved register optimization for x86 (#220090)\n\nEnable callee saved register optimization implemented in\nRAGreedy::tryAssignCSRFirstTime() for x86. It can replace save/restore\ninstructions in prologue/epilogue with register spill/reload in cold\nblocks or register splits.\n\nSpec cpu 2006 int result with fdo on skylake.\n```\nregalloc-csr-cost-scale                                 0     30\n\n400.perlbench                                          42.0  42.7\n401.bzip2                                              25.5  26.3\n403.gcc                                                42.1  41.4\n429.mcf                                                45.0  44.4\n456.hmmer                                              38.2  38.2\n458.sjeng                                              32.3  32.0\n462.libquantum                                         68.0  68.9\n471.omnetpp                                            26.9  27.3\n473.astar                                              24.3  24.1\n```\n445.gobmk, 464.h264ref and 483.xalancbmk didn\u0027t work with my base\ncompiler.\n\nThis PR is split from https://github.com/llvm/llvm-project/pull/188609.\n\nGitOrigin-RevId: 82ea1d26eca4bb8d12513d29a71536c35f3ff47b\n"
    },
    {
      "commit": "23dbdce80c898a05d6bf0a0f958ae85314271d17",
      "tree": "ab31f4ad90e4918f54dd9925daf3e29ed9c0171c",
      "parents": [
        "df516d42fa274e068882795a952bf05bf3160fe0"
      ],
      "author": {
        "name": "Yihan Wang",
        "email": "yronglin777@gmail.com",
        "time": "Wed Sep 23 09:06:05 2026 +0800"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Sep 22 18:14:50 2026 -0700"
      },
      "message": "[clang] Return early if a value dependent recovery init appeared in constant evaluation context in legacy constant evaluator (#225027)\n\nA recovery default member initializer can be value-dependent even when\nthe expression referring to the variable is not. Clang should return\nearly to avoid crash.\n\nThis fix the issue found in\nhttps://github.com/llvm/llvm-project/issues/185874#issuecomment-4058045596.\n\n---------\n\nSigned-off-by: yronglin \u003cyronglin777@gmail.com\u003e\nGitOrigin-RevId: 838c705ee43c97dcb11664f926c8937c224d6987\n"
    },
    {
      "commit": "df516d42fa274e068882795a952bf05bf3160fe0",
      "tree": "d78b062a88866cc595031ea98a397b0188fec119",
      "parents": [
        "8cc6d6c23ea835e4e2cea646ef1e73081fd99f57"
      ],
      "author": {
        "name": "Vy Nguyen",
        "email": "1762963+oontvoo@users.noreply.github.com",
        "time": "Tue Sep 22 20:43:31 2026 -0400"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Sep 22 17:47:43 2026 -0700"
      },
      "message": "[Driver] Link ubsan_loop_detect with --whole-archive (#225498)\n\n`addSanitizerRuntimes` places sanitizer archives before user object\nfiles on the linker command line.\n\nBecause `ubsan_loop_detect` was in `NonWholeStaticRuntimes` without `-u`\nsymbols, single-pass linkers like GNU `ld.bfd` discarded\n`libclang_rt.ubsan_loop_detect.a` before seeing references to\n`__ubsan_install_trap_loop_detection` or `__ubsan_is_trap_loop`. Move\n`ubsan_loop_detect` to `StaticRuntimes` so it is linked with\n`--whole-archive`.\n\nGitOrigin-RevId: 1adcce186772332e969992d7792188befd615907\n"
    },
    {
      "commit": "8cc6d6c23ea835e4e2cea646ef1e73081fd99f57",
      "tree": "a4c68fca001a08f69ea5efe32a30062870d62cba",
      "parents": [
        "5be851b1a2e563b309cbd13ccba4bf6aa6947336"
      ],
      "author": {
        "name": "Andy Kaylor",
        "email": "akaylor@nvidia.com",
        "time": "Tue Sep 22 17:33:07 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Sep 22 17:36:59 2026 -0700"
      },
      "message": "[CIR] Use cleanup active flag with logical operators (#225554)\n\nWhen temporary expressions are created within a logical binary\noperation, we need to use a \"cleanup active\" flag to guard any cleanups\nthat are created in the right-hand side of the expression because the\nexpression may short-circuit and not evaluate the RHS. Failure to do so\nhad been leading to destructors being called for objects that had never\nbeen constructed.\n\nThis fix introduces a regression in destructor call ordering when both\nsides of a logical operation create temporaries that require cleanup.\nThis is a known ordering bug that preceeded this PR but was incidentally\navoided by the previous incorrect handling. The orderig bug will be\nfixed in a follow-up change.\n\nAssisted-by: Cursor / various models\nGitOrigin-RevId: 429bc4e837c54335e17c7294b32d754f3d560a02\n"
    },
    {
      "commit": "5be851b1a2e563b309cbd13ccba4bf6aa6947336",
      "tree": "bc806313a9d7d9b207410f34067868cc85cac218",
      "parents": [
        "63fb28427c3d44528d1d52abf53bfc5df2146884"
      ],
      "author": {
        "name": "Erich Keane",
        "email": "ekeane@nvidia.com",
        "time": "Tue Sep 22 17:22:15 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Sep 22 17:29:30 2026 -0700"
      },
      "message": "[CIR] Fix \u0027cir.not\u0027 lowering behavior for \u003e64 bit size (#225541)\n\nWe were only inverting the lower 64 bits because we used the\nint64_t/uint64_t overload, which only filled in 64 bits. This patch\nreplaces that with a \u0027getAllOnes\u0027 of the right size.\n\nGitOrigin-RevId: 0ff5abdf5c464312101acfeec8b398eaff43dda8\n"
    },
    {
      "commit": "63fb28427c3d44528d1d52abf53bfc5df2146884",
      "tree": "7d2978907c0c33f5cc06cce73763b316add53004",
      "parents": [
        "a0a759bec5ab8cb858aa072332aa609b6e284373"
      ],
      "author": {
        "name": "Erich Keane",
        "email": "ekeane@nvidia.com",
        "time": "Tue Sep 22 17:18:50 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Sep 22 17:26:31 2026 -0700"
      },
      "message": "[CIR] Lower nobuiltin attribute (#225545)\n\nThis causes a problem in tests for global allocation functions, but we\nare not currently lowering the \u0027nobuiltin\u0027 attribute to LLVM-IR. This\npatch adds the lowering.\n\nGitOrigin-RevId: 4c320dc1ddfef69baf95040c87d45d04055bfb94\n"
    },
    {
      "commit": "a0a759bec5ab8cb858aa072332aa609b6e284373",
      "tree": "8fbe756dde3f0f1d0519ee78f19a337ac847ba3d",
      "parents": [
        "ec56a5e199bce806b00ec5139fb03312348fccb5"
      ],
      "author": {
        "name": "Erich Keane",
        "email": "ekeane@nvidia.com",
        "time": "Tue Sep 22 17:15:28 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Sep 22 17:25:17 2026 -0700"
      },
      "message": "[CIR] Fix lambda explicit object parameters (#225518)\n\nWe seem to have diverged significantly from classic compiler here,\nlikely because the incubator missed these changes. The result was the\nexmaple given in the test would crash because the \u0027this\u0027 argument wasn\u0027t\nset right.\n\nThis patch copy/pastes/lightly modifies classic codegen to get these\nlambdas done correctly.\n\nGitOrigin-RevId: c0be35f9fcacfc32d537718fe345ee8aa26a87bb\n"
    },
    {
      "commit": "ec56a5e199bce806b00ec5139fb03312348fccb5",
      "tree": "ef89eabadf891609e149ce16084726989a9f04ac",
      "parents": [
        "7872a0ece2929f3e544cfa09d28dc7126ff98a84"
      ],
      "author": {
        "name": "Erich Keane",
        "email": "ekeane@nvidia.com",
        "time": "Tue Sep 22 17:15:03 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Sep 22 17:24:14 2026 -0700"
      },
      "message": "[CIR] Implement lowering for BitInt that needs to be an array (#225470)\n\nOn bitint types that are not powers of 2, we have to represent them as\nan array. This patch modifies \u0027convertTypeForMemory\u0027 to do that.\nHowever, that ends up causing a couple of problems, that this also ends\nup fixing:\n\nFirst: constant init needs to also lower to this type/get that correct,\n  so this introduces \u0027getBitIntStorageAttr\u0027 to manage that\n\nSecond: The \u0027copy\u0027 op lowering was getting its layout from the lowered\ntype, which is no longer correct. Since this is suposed to be the same\nas what we get from CIR, this is jsut switched to use that instead.\n\nThird: this ran into an issue with cir.copy in LoweringPrepare where we\ndidn\u0027t properly copy the alignment over. The result was our copy\noperation didn\u0027t get alignment correct. This patch fixes that too.\n\nFourth: Load/Store/VecMaskedLoad all had to change how they got the type\nfor their lowering. Since what they care about is actually the effecitve\n\u0027type\u0027 itself and not the actual type of the memory the case of the\narray-lowering, this patch introduces convertTypeForLoadStore, which is\nthe effective memory type(no cast required, since LLVM-IR doesn\u0027t\ncare!), rather than the array type.\n\nALL the above matches classic codegen.\n\nAI Disclosure: I went back and forth with analysis with Claude on this\none, and it wrote most of the tests, but I did every single check-line\n:)\n\nGitOrigin-RevId: 2382abc88740a62ecc2f81769b2a3f2e92cbc75a\n"
    },
    {
      "commit": "7872a0ece2929f3e544cfa09d28dc7126ff98a84",
      "tree": "311d5ba82a923dab81b7d57b593383777635517b",
      "parents": [
        "1068f46c1fa47a6a94aeff158ff43ea492020a71"
      ],
      "author": {
        "name": "Andy Kaylor",
        "email": "akaylor@nvidia.com",
        "time": "Tue Sep 22 16:28:33 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Sep 22 16:32:40 2026 -0700"
      },
      "message": "[CIR] Compare access ranges of pointers into the same object (#225166)\n\nTwo pointers at different offsets into the same object were previously\nreported as MayAlias, because whether they overlap depends on how many\nbytes each access touches. This change extends the analysis to use the\naccess size from the pointee type and compare the byte ranges the two\naccesses cover. Disjoint ranges don\u0027t alias, overlapping ranges\npartially alias. Access to different members of a record are now\nreported as NoAlias, while a member compared against the record it\nbelongs to is reported as PartialAlias.\n\nAccesses whose extent isn\u0027t statically known, such as those through a\npointer to void, keep the conservative answer.\n\nAssisted-by: Cursor / various models\nGitOrigin-RevId: 97458f644132d62bb938823394b716b684956f49\n"
    },
    {
      "commit": "1068f46c1fa47a6a94aeff158ff43ea492020a71",
      "tree": "f317b083175cbb133d012bd9cb2b0a0e3e0fa858",
      "parents": [
        "ea8b96ea7631b94a276eeb2d4d32e2fee1c9fc8e"
      ],
      "author": {
        "name": "Erich Keane",
        "email": "ekeane@nvidia.com",
        "time": "Tue Sep 22 16:03:09 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Sep 22 16:08:11 2026 -0700"
      },
      "message": "[CIR] Fix target attr test (#225534)\n\nAfter #206888 our printed checks are broken.  Fix them.\n\nGitOrigin-RevId: 035c786e9e0ca450c73435dee5a4d4a2d268a509\n"
    },
    {
      "commit": "ea8b96ea7631b94a276eeb2d4d32e2fee1c9fc8e",
      "tree": "bf9083313dac7aa823a8c7099a110951d8624685",
      "parents": [
        "c83a1b938d705e96331f614300201561ead7127f"
      ],
      "author": {
        "name": "Fady Farag",
        "email": "com.webkit.iidmsa@gmail.com",
        "time": "Tue Sep 22 16:56:44 2026 -0500"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Sep 22 15:03:30 2026 -0700"
      },
      "message": "[alpha.webkit.UncountedLocalVarsChecker] Don\u0027t treat a call through a raw pointer/reference guardian argument as a mutation (#225309)\n\nPreviously, when a function parameter was used as the guardian of a raw\npointer/reference local, `GuardianVisitor` treated any non-const member\nfunction call on the parameter, or passing it to a non-const parameter,\nas a mutation. That is correct for a `RefPtr\u003cT\u003e\u0026` parameter but not for\na raw pointer/reference parameter, where such a call operates on the\npointee and cannot change the parameter, which caused an unnecessary\nwarning whenever the parameter was used at all. This only treats a raw\npointer/reference guardian argument as mutated when it is assigned to,\nor when the callee can reseat it by receiving it as `Bar*\u0026` or `Bar**`.\n\nGitOrigin-RevId: 88dcdc2d619dd09665beb67479a330c36f7251b7\n"
    },
    {
      "commit": "c83a1b938d705e96331f614300201561ead7127f",
      "tree": "616aa7b54f1e907dfac305a1937cae8ebcbc680e",
      "parents": [
        "50d263401fdf8da734775f13e475637900ea1e7a"
      ],
      "author": {
        "name": "Ryosuke Niwa",
        "email": "rniwa@webkit.org",
        "time": "Tue Sep 22 14:37:20 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Sep 22 14:42:39 2026 -0700"
      },
      "message": "[webkit.UncountedLambdaCapturesChecker] Skip template patterns while traversing (#224572)\n\n870d762546ee taught RawPtrRefLambdaCapturesChecker to ignore a lambda\npassed to a call whose callee isn\u0027t resolved yet, by enumerating the\nexpressions that appear in a template pattern in place of a resolved\ncall: an OverloadExpr, a CXXDependentScopeMemberExpr or a\nDependentScopeDeclRefExpr as the callee, a CXXUnresolvedConstructExpr,\nand a type-dependent ParenListExpr or InitListExpr.\n\nThat list can only ever be approximate. A call through an object of\ndependent type, as in\n\n    template \u003ctypename T\u003e void f(T\u0026 callable) {\n      RefCountable* obj \u003d make_obj();\n      callable([obj] { obj-\u003emethod(); });\n    }\n\nhas a plain DeclRefExpr to the parameter as its callee, so none of the\ncases matched and the lambda was reported even when the instantiation\npasses it to a NOESCAPE parameter.\n\nTake the approach used by the call arguments and local variables\ncheckers instead: don\u0027t enter a template pattern at all. TraverseDecl\nnow skips a templated decl, so every callee a handler sees is resolved\nand the special cases are no longer reachable. The body of a generic\nlambda is reached from the LambdaExpr as a statement, so\nTraverseLambdaExpr hands the call operator to TraverseDecl, which skips\nthe pattern and traverses the instantiations.\n\nBecause an instantiation is now traversed as a declaration rather than\nas a body, TraverseCXXMethodDecl would set the enclosing class to the\nclosure type. Keep the class of the enclosing method for a lambda\u0027s call\noperator, which is what \u0027this\u0027 in the body refers to, so captures of\nthis are still reported.\n\nGitOrigin-RevId: 9b0ea6b5a754677a5d01b7908f4d05ca9d9ebdf0\n"
    },
    {
      "commit": "50d263401fdf8da734775f13e475637900ea1e7a",
      "tree": "c9f481b19f26325fb728586c18cfe09953262349",
      "parents": [
        "f2262bdee94fbe6c097fbf25d9bba6208d6176e9"
      ],
      "author": {
        "name": "Erich Keane",
        "email": "ekeane@nvidia.com",
        "time": "Tue Sep 22 13:48:13 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Sep 22 13:53:16 2026 -0700"
      },
      "message": "[CIR] Fixup \u0027zero\u0027 branch of Null Initialization (#225490)\n\nThe zero branch has a test for an NYI based on whether the thing is a\nVLA or not. However, classic codegen uses \u0027dyn_cast_or_null\u0027, and we\nused \u0027isa\u0027, so a nullptr caused an assert. This patch fixes it.\n\nGitOrigin-RevId: dc245a0c5efb1fdc5344c1c8964323ae5219cf9c\n"
    },
    {
      "commit": "f2262bdee94fbe6c097fbf25d9bba6208d6176e9",
      "tree": "7111ed793184a8ff1cd3c868336a51dc6b0ca547",
      "parents": [
        "02b1a84be06e496e0d32e4e25ae1fce9d671f708"
      ],
      "author": {
        "name": "Andy Kaylor",
        "email": "akaylor@nvidia.com",
        "time": "Tue Sep 22 13:46:06 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Sep 22 13:52:47 2026 -0700"
      },
      "message": "[CIR] Fix a problem with cleanup active flag initialization (#225507)\n\nWhile working on another problem related to conditional cleanups, I came\nacross a problem with the way CIR was initializing the cleanup active\nflag. We were often clearing the flag below the body of a conditional\ncleanup region that the flag was meant to guard. As a result, we would\nsometimes skip a conditional cleanup becuase the body of the cleanup\nregion set the active flag to true, but then we cleared the flag\nunconditionally before control flow reached the cleanup.\n\nThis change fixes that problem and aligns the active flag initialization\nplacement with classic codegen.\n\nAssisted-by: Cursor / various models\nGitOrigin-RevId: 365851e9fe1b8723a0282e3849470cd7cbbe38d6\n"
    },
    {
      "commit": "02b1a84be06e496e0d32e4e25ae1fce9d671f708",
      "tree": "9b2f336d2d4c4306a816ab72c47bbf444c60fa35",
      "parents": [
        "369048cf050b04586613824c9317dfb1e30a758e"
      ],
      "author": {
        "name": "Farzon Lotfi",
        "email": "farzonlotfi@microsoft.com",
        "time": "Tue Sep 22 16:09:23 2026 -0400"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Sep 22 13:14:53 2026 -0700"
      },
      "message": "[HLSL][LongVector] Implement fmod (#224123)\n\nresolves https://github.com/llvm/llvm-project/issues/220649\n\nThis is as much a refactor as it is adding long vector support.\n\nI noticed the fmod helper had many issues. THe SPIR-V implementatiion\nwasn\u0027t properly put into a SPIR-V macro\n\nfmod had a scalar \\ vector version that was unecessary.\n\nThe tests seemed to be raw register defines so\nsource code changes caused the names to all change.\n\nFixing this meant we could simplify the tablegen\nand helpers.\n\nAlso the tests are much more clean with no -D defines\n\nGitOrigin-RevId: f842c96e5d2b7ccdaad43e443164ae6574f29778\n"
    },
    {
      "commit": "369048cf050b04586613824c9317dfb1e30a758e",
      "tree": "f5cabbd15f7b9bcc05a1b3b0a71d318e75acc513",
      "parents": [
        "64c021bf4c1de9fe2bfbb9770d4a647ebc1b45b4"
      ],
      "author": {
        "name": "Jan Svoboda",
        "email": "jan_svoboda@apple.com",
        "time": "Tue Sep 22 12:06:59 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Sep 22 12:16:02 2026 -0700"
      },
      "message": "[clang][test] Remove unnecessary `FileManager` arguments (#225467)\n\nThis test was introduced in commit\ndfffaf579f2b4bc9184c23f271a57e1fa1ed6f01 and wrongly passed the file\nsize and modification time to a lookup function that takes two bools.\nThis PR fixes that by removing the superfluous arguments.\n\nGitOrigin-RevId: 124a0d5ac6cfc0a96c364adf3d4257f809997f1b\n"
    },
    {
      "commit": "64c021bf4c1de9fe2bfbb9770d4a647ebc1b45b4",
      "tree": "8915dc8db95ec85126458d5323ea101a72a740a8",
      "parents": [
        "b10dc687c8845d77fd65ea5cac7973f372356c83"
      ],
      "author": {
        "name": "Keith Smiley",
        "email": "keithbsmiley@gmail.com",
        "time": "Tue Sep 22 11:35:12 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Sep 22 11:42:11 2026 -0700"
      },
      "message": "[cmake] Build libxml from source in release (#221365)\n\nWith 23.x we started linking a static libxml in release builds to avoid\nrequiring that to be installed, and the varying names of that library on\ndifferent linux distros. That broke more than it fixed because the\nstatic libxml in our docker images are built targeting ICU, and ICU\u0027s\nshared library version changes quickly, so even between 2 ubuntu\nversions the binaries will not work.\n\nWith this change we now build from source in the release build, which is\nalready what windows does, and we disable ICU / iconv since those don\u0027t\nseem vital for the windows manifest use case. This seems easier than\nbuilding a libxml out of band in our CI images that do the release\nbuilds.\n\nFixes https://github.com/llvm/llvm-project/issues/215764\n\nAssisted-By: codex\nGitOrigin-RevId: 5ae71ec799917c67e9e72510e68831602fc60699\n"
    },
    {
      "commit": "b10dc687c8845d77fd65ea5cac7973f372356c83",
      "tree": "f006d713c865911c971901e8135e451433ff1bea",
      "parents": [
        "623b4d14d22c560d1d6ea94898d213b0993a5201"
      ],
      "author": {
        "name": "Kazu Hirata",
        "email": "kazu@google.com",
        "time": "Tue Sep 22 11:08:33 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Sep 22 11:13:23 2026 -0700"
      },
      "message": "[clang] Migrate away from PointerUnion::dyn_cast (NFC) (#225319)\n\nNote that PointerUnion::dyn_cast has been soft deprecated in\nPointerUnion.h:\n\n  // FIXME: Replace the uses of is(), get() and dyn_cast() with\n  //        isa\u003cT\u003e, cast\u003cT\u003e and the llvm::dyn_cast\u003cT\u003e\n\nWe must use dyn_cast_if_present here because the operands can be null,\nwhich I have verified with assert(!isNull()) on check-clang.\n\nAssisted-by: Antigravity\nGitOrigin-RevId: 81a680b6c7aec6fc493fb978ad1902b648781170\n"
    },
    {
      "commit": "623b4d14d22c560d1d6ea94898d213b0993a5201",
      "tree": "80d456988eb4bba233313d147a1503633cad3451",
      "parents": [
        "3d457ef1bf250f918dec99efcc145acfba3b984b"
      ],
      "author": {
        "name": "Ganesh",
        "email": "Ganesh.Gopalasubramanian@amd.com",
        "time": "Tue Sep 22 23:14:44 2026 +0530"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Sep 22 10:57:22 2026 -0700"
      },
      "message": "[X86] AVX10_V2_AUX Implementation (#206888)\n\n- AVX10_V2_AUX builds on AVX10 with FP8/FP4/FP6 format conversions\noptimized for AI/ML inference workloads, enabling efficient\nlow-precision arithmetic\n\n- Narrowing conversions from single-precision to FP8: VCVTPS2BF8,\nVCVTPS2HF8, VCVTPS2BF8S, VCVTPS2HF8S with optional saturation, biasing\n(VCVTBIASPS2BF8/HF8), and round-to-odd (VCVTROPS2HF8) variants\n\n- Expanding conversions from FP8 to single-precision: VCVTBF82PS,\nVCVTHF82PS that widen 8-bit FP formats with masking support\n\n- FP4/FP6 conversions: VCVTBF82BF4S, VCVTHF82BF4S for truncating,\nVCVTBF82BF6S, VCVTHF82HF6S for same-size, and expanding VCVTBF42HF8,\nVCVTBF62BF8, VCVTHF62HF8\n\n- Support includes instruction definitions, intrinsics, and Clang\nheaders\n\n- Tests covering AT\u0026T and Intel syntax assembly for both 32-bit and\n64-bit modes, plus disassembler tests verifying encoding and decoding\n\nSpecification: [ACE (AI Compute Extensions) Specification\nv1.0](https://x86ecosystem.org/wp-content/uploads/2026/06/ACE_v1_Specification_public_1_15.pdf)\n\nCo-authored-by: Umesh Kalvakuntla\nCo-authored-by: Attarde, Mahesh \u003cmahesh.attarde@intel.com\u003e\nGitOrigin-RevId: aa7a0c3c318b8391c61fba9dcbb98e08c85d5776\n"
    },
    {
      "commit": "3d457ef1bf250f918dec99efcc145acfba3b984b",
      "tree": "54eca96c83d734e38adf7f2c8803c93b998b5d3a",
      "parents": [
        "5bc167402cd6568119508150e21441875f989951"
      ],
      "author": {
        "name": "A. Cauble",
        "email": "accauble@users.noreply.github.com",
        "time": "Tue Sep 22 13:14:11 2026 -0400"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Sep 22 10:19:30 2026 -0700"
      },
      "message": "[offload-arch] Do not print \"-strict\" if it is disabled by the environment (#224688)\n\n## Motivation\n\nRight now, `HSA_DISABLE_GFX12_STRICT` is set to 1 by default, which the\nruntime follows as \"gfx1250\". The only way to set the runtime to\n\"gfx1250-strict\" is to set `HSA_DISABLE_GFX12_STRICT\u003d0`. My\nunderstanding is that this is a temporary patch to ROCr to ease the\ntransition to \"gfx1250-strict\". This PR adds a helper to reflect the\ncurrent state.\n\n[This is how\nROCr](https://github.com/ROCm/rocm-systems/blob/28d10d31fcb04d53dedee5c6e66427f0b0449a9e/projects/rocr-runtime/runtime/hsa-runtime/core/util/flag.h#L256)\ncontrols \"strict\". The very similar rocm_agent_enumerator code can be\nfound\n[here](https://github.com/ROCm/rocm-systems/blob/855ab23c50ee8635e6c068fc3f9ec2eb01f075e0/projects/rocminfo/rocm_agent_enumerator#L270-L273).\n\n## Testing\n\n* Updated the unit tests to keep track of the environment variable and\nto check for the expected value depending on it.\n\nGitOrigin-RevId: 9a7a665cbe2a9e59403bcfb59ac6c1294370e8ee\n"
    },
    {
      "commit": "5bc167402cd6568119508150e21441875f989951",
      "tree": "cd8a75b7879b282ffdf9c11d67959f53d47f714a",
      "parents": [
        "34b5c7944ea93efcc855879f91e12b2b3eda2a0c"
      ],
      "author": {
        "name": "Daniel Cederman",
        "email": "cederman@gaisler.com",
        "time": "Tue Sep 22 19:06:52 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Sep 22 10:18:52 2026 -0700"
      },
      "message": "[Sparc][clang] Use 64-bit long double on bare-metal targets (#222304)\n\nGCC uses 64-bit long double for bare-metal SPARC V8 targets, including\nRTEMS. Keep the default 128-bit for other SPARC targets.\n\nUse the scalar calling convention for 64-bit long double.\n\nAssisted-by: Codex\nGitOrigin-RevId: 5173637372a272790125e6af71576c6607adfef8\n"
    },
    {
      "commit": "34b5c7944ea93efcc855879f91e12b2b3eda2a0c",
      "tree": "f8bce435cda41d87b00d9e578e74d0ef7b179bd0",
      "parents": [
        "7a4478f113d01fafda3788bcb870392a83623a64"
      ],
      "author": {
        "name": "Aman Maurya",
        "email": "amanmaurya9209@gmail.com",
        "time": "Tue Sep 22 22:24:34 2026 +0530"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Sep 22 10:18:10 2026 -0700"
      },
      "message": "[CIR] Implement CXXRewrittenBinaryOperator for LValue (#223888)\n\nSupport `CXXRewrittenBinaryOperator` in `CIRGenFunction::emitLValue` by\nevaluating its underlying semantic form via `getSemanticForm()`,\nmatching classic codegen in `clang/lib/CodeGen/CGExpr.cpp` and\ncompleting `CXXRewrittenBinaryOperator` support across all CIR\nexpression emitters.\n\nFixes #223743\n\nFormatted with Gemini\n\nGitOrigin-RevId: 14c63920e71748a1f0b824919822a87e6efda343\n"
    },
    {
      "commit": "7a4478f113d01fafda3788bcb870392a83623a64",
      "tree": "bed2d07746caba6971d0ac755fcc7d0e2e52d549",
      "parents": [
        "5ef8ad4fde32b2f4ea205f9890f01a0344d626a6"
      ],
      "author": {
        "name": "Nico Weber",
        "email": "thakis@chromium.org",
        "time": "Tue Sep 22 12:41:09 2026 -0400"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Sep 22 09:48:10 2026 -0700"
      },
      "message": "Revert \"[Clang][Driver] Final phase also determined by input (#218802)\" (#225416)\n\nThis reverts commit 7987830e776411a0de84c0c75e9f1059acadceb5.\n\nIt makes the driver O(n^2) in number of inputs, slowing down some links\na lot:\n\nhttps://github.com/llvm/llvm-project/pull/218802#pullrequestreview-5258702203\n\nGitOrigin-RevId: 976c919fbc123e7fd7058223c23ad9c312477b4b\n"
    },
    {
      "commit": "5ef8ad4fde32b2f4ea205f9890f01a0344d626a6",
      "tree": "7f3171fe1d53beaa8d0ceff23d3438f90636df1b",
      "parents": [
        "8550a890894eadced354a6daca729cc56d5b6db1"
      ],
      "author": {
        "name": "Farzon Lotfi",
        "email": "farzonlotfi@microsoft.com",
        "time": "Tue Sep 22 12:34:09 2026 -0400"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Sep 22 09:37:32 2026 -0700"
      },
      "message": "[HLSL][Sema] Reject unsupported vector swizzles (#225286)\n\nfixes #216199\n\nThis started out as rejecting swizzles for long vectors. But it turns\nout we did not remove opencl accessors so this change also does that.\n\nHLSL vector swizzles are limited to the xyzw and rgba component sets and\nvectors of up to four elements.\n\nGitOrigin-RevId: f4b56fcef15f00cef6ca07d880092c8ab8c5155b\n"
    },
    {
      "commit": "8550a890894eadced354a6daca729cc56d5b6db1",
      "tree": "00132cd7f113c0c438bd5102fc74e02e797e9a7c",
      "parents": [
        "8d68eb5c3a8136c7e7438151f83d37383858b0cf"
      ],
      "author": {
        "name": "Mehdi Amini",
        "email": "joker.eph@gmail.com",
        "time": "Tue Sep 22 18:19:22 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Sep 22 09:28:16 2026 -0700"
      },
      "message": "[clang][CIR] Stop using Operation::getAttrs (NFC) (#223048)\n\nMigrate CIR printing, attribute copying, and lowering to the explicit\ninherent and discardable attribute APIs.\n\nThis is part of a general migration to use the \"new\" properties-based\nAPIs and stop mixing discardable/inherent attributes, see #155475\n\nAssisted-by: Codex\nGitOrigin-RevId: 7a3a1a90f064702571fce138dad5a0c2ac6ed4af\n"
    },
    {
      "commit": "8d68eb5c3a8136c7e7438151f83d37383858b0cf",
      "tree": "2fa16b8aaf0b28926c12f6fd7be3fa645d6a0079",
      "parents": [
        "607e1827e8623aebd36b8112f533499359f58ff1"
      ],
      "author": {
        "name": "Luke Kiernan",
        "email": "lkiernan@nlr.gov",
        "time": "Tue Sep 22 11:17:08 2026 -0500"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Sep 22 09:26:58 2026 -0700"
      },
      "message": "[TLI][Darwin] Add mappings for 16 more libsystem_m vector functions (#224792)\n\nThe Darwin_libsystem_m veclib table mapped 17 of the 38 stems exported\nby libsystem_m.dylib. This adds 16 more, in both VecFuncs.def and the\nDARWIN_LIBSYSTEM_M_VECFUNCS defset, bringing it to 33.\n\nThe remaining 5 are round, fma, fmod, sincos and sincospi; see #223283\nfor why each is skipped or deferred.\n\nFixes #223283\n\nGitOrigin-RevId: 9d856cff47c48934b89254beef71908998a3c193\n"
    },
    {
      "commit": "607e1827e8623aebd36b8112f533499359f58ff1",
      "tree": "160ff6d744aa3278a6d570dd1a2041149a598ac4",
      "parents": [
        "14013d255ab23cb8f7aba2dedf18c0acb58a2b02"
      ],
      "author": {
        "name": "Amr Hesham",
        "email": "amr96@programmer.net",
        "time": "Tue Sep 22 18:16:12 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Sep 22 09:25:42 2026 -0700"
      },
      "message": "[CIR] Support vector of boolean in cir.minus op (#217089)\n\nSupport the Vector of bool type in the minus operation\n\nGitOrigin-RevId: 06b71c9085beffd088f8e6e8b8da79b452acb786\n"
    },
    {
      "commit": "14013d255ab23cb8f7aba2dedf18c0acb58a2b02",
      "tree": "11aa30c2155cb5d00b597737ddfd57835889b393",
      "parents": [
        "1af88a7240535c5aa6e96099867f1a7bd84cd38d"
      ],
      "author": {
        "name": "Amit Tiwari",
        "email": "Amit.Tiwari@amd.com",
        "time": "Tue Sep 22 20:47:31 2026 +0530"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Sep 22 08:24:40 2026 -0700"
      },
      "message": "[Clang][OpenMP] Add `#pragma omp flatten` loop directive + `depth` clause (#206977)\n\nAdds the OpenMP 6.1:  `Flatten Construct` + `depth Clause`.\nReferred in Section 17.4 and Section 6.4.7 respectively in [Technical\nReport 15](https://www.openmp.org/wp-content/uploads/openmp-TR15.pdf)\n\nGitOrigin-RevId: fd016b7d24d3a2ddabef9e1ebfc702885e9bb7c1\n"
    },
    {
      "commit": "1af88a7240535c5aa6e96099867f1a7bd84cd38d",
      "tree": "9c3c23712bbf5798f0015172c5f8cdf558e7ae8c",
      "parents": [
        "cde9f36ff54727c9a1e5c296f87c43c7a5f858ee"
      ],
      "author": {
        "name": "Erich Keane",
        "email": "ekeane@nvidia.com",
        "time": "Tue Sep 22 08:14:15 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Sep 22 08:18:37 2026 -0700"
      },
      "message": "[CIR] Don\u0027t delete \u0027sub\u0027 op during \u0027convertToIndexTy\u0027 (#225231)\n\nThis showed up in a SPEC benchmark: IF that sub operation is still being\nused, deleting it causes us to orphan its other uses, causing a\nconversion failure. We can\u0027t actually delete it, as we have no way of\nknowing whether it has other uses (since we\u0027re in the process of\n    removing at least one of its uses?). SO this patch is going to just\ncount on dead-code elemination to remove this sub after we stop using\nits value, if at all possible.\n\nGitOrigin-RevId: f209e827084a99d284abdb534d1f6ca3e68fc039\n"
    },
    {
      "commit": "cde9f36ff54727c9a1e5c296f87c43c7a5f858ee",
      "tree": "682d755c49622ebf3cd9e056bcce6124db99146c",
      "parents": [
        "b297a4b0c55a180c660db3910968578a680fc365"
      ],
      "author": {
        "name": "Erich Keane",
        "email": "ekeane@nvidia.com",
        "time": "Tue Sep 22 07:28:44 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Sep 22 07:34:50 2026 -0700"
      },
      "message": "[CIR] Correct how memberPath compares \u0027current class\u0027 (#225237)\n\nI didn\u0027t realize in the past that `isSameEntity` didn\u0027t actually check\nto make sure we were working on canonical/most recent decl, so this\npatch adds those to each side of the check. If we don\u0027t, we end up\nfinding them not equal, and crashing later when trying to pick up the\ncorrect index.\n\nGitOrigin-RevId: 1baa43495862650e0d03780d565b8e09d57b3495\n"
    },
    {
      "commit": "b297a4b0c55a180c660db3910968578a680fc365",
      "tree": "06cb108a0b02623192221fc4ce9cdf3f09193f07",
      "parents": [
        "69de3c7e41bffac8da7357a40ae1f9a9ff5ca696"
      ],
      "author": {
        "name": "Matt Arsenault",
        "email": "Matthew.Arsenault@amd.com",
        "time": "Tue Sep 22 16:02:44 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Sep 22 07:09:29 2026 -0700"
      },
      "message": "clang/AMDGPU: Use subarch triples in more cc1 tests (#225391)\n\nGitOrigin-RevId: d61398d128190a7f67668216c9d43bff7e93e280\n"
    },
    {
      "commit": "69de3c7e41bffac8da7357a40ae1f9a9ff5ca696",
      "tree": "339dbc3a78b6b01b6242e67e73f9a2f0a8bb8f63",
      "parents": [
        "8e3cd88221a966fab10ab88b6050ba73c94a85f8"
      ],
      "author": {
        "name": "Zahira Ammarguellat",
        "email": "zahira.ammarguellat@intel.com",
        "time": "Tue Sep 22 06:21:59 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Sep 22 06:27:48 2026 -0700"
      },
      "message": "[OpenMP] Support capturing structured bindings in OpenMP regions. (#190832)\n\nThis patch adds support for capturing structured bindings (C++20) in\n`OpenMP` parallel regions, which previously resulted in an error:\n\n  `error: capturing a structured binding is not yet supported in OpenMP`\n\nGitOrigin-RevId: 93e1bed81a47c0b3c3df6de2d5f7d7e4f450ae87\n"
    },
    {
      "commit": "8e3cd88221a966fab10ab88b6050ba73c94a85f8",
      "tree": "f561a826128a9e29a02aba4d8e44663e14d32004",
      "parents": [
        "fc96b84bbf57f3c3ee61332b04e7f63e34a37688"
      ],
      "author": {
        "name": "Aaron Ballman",
        "email": "aaron@aaronballman.com",
        "time": "Tue Sep 22 09:02:48 2026 -0400"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Sep 22 06:10:34 2026 -0700"
      },
      "message": "Revert \"[Clang] Fix assertion \"unsigned range includes negative?\" in AnalyzeComparison during Sema of vector comparison with mismatched signed/unsigned types and __builtin_convertvector \" (#225389)\n\nReverts llvm/llvm-project#182627\n\nPost-commit CI found issues:\nhttps://lab.llvm.org/buildbot/#/builders/225/builds/19103\n\nGitOrigin-RevId: c4045dbc18c6637ebc218fe1a82ee62288613c2c\n"
    },
    {
      "commit": "fc96b84bbf57f3c3ee61332b04e7f63e34a37688",
      "tree": "d6a020d5726fdb8b3f3d4e9ded323d8f064bc3cc",
      "parents": [
        "3c49dc305cf1d1d1d48afd9233b92a2a00f34b47"
      ],
      "author": {
        "name": "Yutong Zhu",
        "email": "y25zhu@uwaterloo.ca",
        "time": "Tue Sep 22 05:41:40 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Sep 22 05:47:34 2026 -0700"
      },
      "message": "[Clang] Fix assertion \"unsigned range includes negative?\" in AnalyzeComparison during Sema of vector comparison with mismatched signed/unsigned types and __builtin_convertvector  (#182627)\n\nThe ``TryGetExprRange`` function now checks if the operand is an unsigned\nvector when computing the ranges.\n\nFixes #173614\n\nGitOrigin-RevId: cec2eeb8ff2f1075b036d9bfd06c365d006bc972\n"
    },
    {
      "commit": "3c49dc305cf1d1d1d48afd9233b92a2a00f34b47",
      "tree": "f561a826128a9e29a02aba4d8e44663e14d32004",
      "parents": [
        "2908f1e5824966a66349c102b2df79fd982137e5"
      ],
      "author": {
        "name": "Nikita Popov",
        "email": "npopov@redhat.com",
        "time": "Tue Sep 22 14:33:36 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Sep 22 05:37:11 2026 -0700"
      },
      "message": "[IR] Add ConstantExpr::getGetElementPtr() accepting DataLayout (#224652)\n\nThis overload takes GEP indices but produces a canonical i8 GEP in\nptradd representation. This is intended as a simple migration path for\nplaces currently using `ConstantExpr::getGetElementPtr()` which cannot\nbe trivially replaced by `ConstantExpr::getPtrAdd()`.\n\nThis method is fallible, because something like `(getelementptr i32, ptr\n@p, i64 CONST_EXPR)` can\u0027t be represented in ptradd form, because there\nis no multiply constant expression. Not supporting this for constant\nexpressions is intentional, as we would not be able to emit a\nrelocatable expression for this anyway.\n\nI have migrated a couple of sample usages in this PR. These are all\nsimple usages where the fallibility is not relevant.\n\nThe further plan here is to migrate everything (including IRBuilder) to\nthis new API, and then deprecated the one without the DataLayout\nargument.\n\nGitOrigin-RevId: c3ea7c1fc5e9b5ef9c637fb9522a44c21d413a6d\n"
    },
    {
      "commit": "2908f1e5824966a66349c102b2df79fd982137e5",
      "tree": "9eff126d031e81a6bf7357cbb016211c1d8b0754",
      "parents": [
        "99e291f3cba4daa0c741d1f072df06d58634d782"
      ],
      "author": {
        "name": "Timm Baeder",
        "email": "tbaeder@redhat.com",
        "time": "Tue Sep 22 13:29:29 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Sep 22 04:32:35 2026 -0700"
      },
      "message": "[clang][bytecode] Add a bytecode RUN line for constant-builtins-2.c (#225305)\n\nSo changes to this file correctly trigger changes to the bytecode\ninterpreter.\n\nGitOrigin-RevId: aea9d3f15a6ea47baf76457364ec2bdea288570b\n"
    },
    {
      "commit": "99e291f3cba4daa0c741d1f072df06d58634d782",
      "tree": "c5e9a69b72c6d96e637c5c23fe477a8fed177a11",
      "parents": [
        "0527738b7dcaf6c6a43bc8ef17a19525e116f5d2"
      ],
      "author": {
        "name": "Akash Manna",
        "email": "akash.manna.mymail@gmail.com",
        "time": "Tue Sep 22 16:46:32 2026 +0530"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Sep 22 04:22:24 2026 -0700"
      },
      "message": "[clang][OpenMP] Fix statement expressions in loop bounds being emitted more than once (#224939)\n\nFixes #153987\n\nWhen Sema builds the helper expressions for an OpenMP loop, a bound that\nevaluates to a constant is reused directly instead of being captured\ninto a `.capture_expr.` variable, so the same expression node is spliced\ninto the init, update, final and precondition helpers. That is fine for\n`10 + 1`, but a statement expression like `({int a \u003d 0; 0;})` declares a\nvariable, and emitting the shared node several times re-declares `a` and\ntrips `Decl already exists in LocalDeclMap!` in CodeGen. The report only\nlooked like a bytecode-interpreter issue because the old evaluator\nhappened to refuse `({float a \u003d 0; a;})` and the new one didn\u0027t; the\nunused-variable form crashes with both.\n\nThe capture decision now treats any expression containing a statement\nexpression as non-constant, so it goes through the existing capture\npath: evaluated once in the pre-init statement, with every helper\nreading the captured value. A bound of a non-rectangular loop can\u0027t be\ncaptured at all, since it is re-evaluated at every use and the original\ncondition doubles as the body guard, so a statement expression there is\nnow rejected with an error, as GCC already does.\nGitOrigin-RevId: 3578fa36b62dc4355225bd6859c0c098f52c29d4\n"
    },
    {
      "commit": "0527738b7dcaf6c6a43bc8ef17a19525e116f5d2",
      "tree": "56730fa411a3f545081abf7355276c81a342eedd",
      "parents": [
        "a496fa66c607022a08818ee2c487cfd6d4671eb4"
      ],
      "author": {
        "name": "rgal",
        "email": "russell.gallop@sony.com",
        "time": "Tue Sep 22 10:43:45 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Sep 22 02:49:52 2026 -0700"
      },
      "message": "Remove .. from clang resource path when specified with CLANG_RESOURCE_DIR  (#216996)\n\nAs discussed here:\nhttps://discourse.llvm.org/t/removing-clang-version-number-from-resource-dir-in-a-distribution/90234\n\nIf a distributor wishes to have stable include paths across LLVM\nversions, then they can build with `CLANG_RESOURCE_DIR\u003d../lib/clang`.\nThis results in a slightly untidy include path (E.g.`C:\\Program\nFiles\\LLVM\\bin\\..\\lib\\clang\\include`). This removes the \"..\" to make it\n`C:\\Program Files\\LLVM\\lib\\clang\\include` in this configuration.\n\nAlso added test. This uses \"SIE\" vendor. Since\nhttps://github.com/llvm/llvm-zorg/commit/eac6791821f5104eb4c2b32f39ef5d20cda535a9,\nPS4 and PS5 buildbots use this configuration and define the vendor so\nthe lack of version number and \"..\" should be tested on at least these\nbuildbots.\n\nGitOrigin-RevId: 99988429d395e95a8f994c5307371911145d2c1d\n"
    },
    {
      "commit": "a496fa66c607022a08818ee2c487cfd6d4671eb4",
      "tree": "7e9c4116ab18112ff54585fbbb6ba68fd4a96dc1",
      "parents": [
        "a04f14ba2a7d2ee4dc14ac99a0f4a5c90252b8a7"
      ],
      "author": {
        "name": "Henrich Lauko",
        "email": "xlauko@mail.muni.cz",
        "time": "Tue Sep 22 10:24:26 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Sep 22 01:28:10 2026 -0700"
      },
      "message": "[CIR][CodeGen][NFCI] Move shared AST-only helpers into CodeGenUtils (#223418)\n\nFollow-up to PR #221001. Ten more helpers that both CodeGens had\nequivalent copies of, several of them already marked \"should be shared\"\nin\nCIR.\n\nInstead of growing CodeGenUtils.h, each helper goes in a header named\nfor\nthe classic CodeGen file it came from, with the CGExpr*.cpp family\nsharing\nExprUtils.h. CIR\u0027s files mirror the classic ones, so the grouping reads\nthe\nsame from both sides.\n\nCIR\u0027s getNoFPClassTestMask returned unsigned where classic returns\nllvm::FPClassTest; the shared version keeps the classic return type.\n\nAssisted-by: Claude Code (Claude Fable 5.1).\nGitOrigin-RevId: 4acbf9b61c3f0579def4ebd1c1abca1048c4c378\n"
    },
    {
      "commit": "a04f14ba2a7d2ee4dc14ac99a0f4a5c90252b8a7",
      "tree": "a5b149c66940865449788b254338c6991eac4011",
      "parents": [
        "89bc4e221b838bc0bcf2e1ec507249bf2fe585e8"
      ],
      "author": {
        "name": "Timm Baeder",
        "email": "tbaeder@redhat.com",
        "time": "Tue Sep 22 10:13:48 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Sep 22 01:18:12 2026 -0700"
      },
      "message": "[clang][bytecode] Mark fields as being initialized, even without running a ctor for them (#225295)\n\nTo fix the diagnostics.\n\nGitOrigin-RevId: 80310178c079fc4ec712ace6d72a97bb5c619a12\n"
    },
    {
      "commit": "89bc4e221b838bc0bcf2e1ec507249bf2fe585e8",
      "tree": "8c584b19da22439c75d6ec80091749c999dbc3ab",
      "parents": [
        "bdbb31877eee65632b131010dc3cbc6f4a996768"
      ],
      "author": {
        "name": "Anutosh Bhat",
        "email": "andersonbhat491@gmail.com",
        "time": "Tue Sep 22 13:11:55 2026 +0530"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Sep 22 00:48:22 2026 -0700"
      },
      "message": "[clang-repl] Support wasm64 execution (#225311)\n\nEmscripten-forge is adding wasm64 builds on its emscripten 6-x branch\nwhich exposed two wasm32 hardcoded assumptions in clang-repl\u0027s\nWebAssembly execution path.\n\n`IncrementalCompilerBuilder::CreateCpp()` currently hardcodes\n`wasm32-unknown-emscripten`, even when clang-repl itself is built for\nwasm64.\n\nOnce Clang emits a wasm64 object, the in-process linker must also select\nthe correct emulation. `wasm-ld` defaults to wasm32 and otherwise fails\nin `InputFile::checkArch()` with:\n\n```text\nmust specify -mwasm64 to process wasm64 object files\n```\n\nThe pipeline is this\n```\nlldMain\n  → lld::wasm::link\n  → LinkerDriver::linkerMain\n  → createFiles\n  → addFile\n  → createObjectFile\n  → ObjFile::ObjFile\n  → InputFile::checkArch\n  → fatal: must specify -mwasm64 to process wasm64 object files\n```\n\nThis patch introduces 2 atomic patches fixing the only 2 buggy sources !\n\nGitOrigin-RevId: 1833848c3e6ddc1d670cc0adea027867b9ed742b\n"
    },
    {
      "commit": "bdbb31877eee65632b131010dc3cbc6f4a996768",
      "tree": "956feaf4c679008b2bd2fe4a0cfe26ee109a205a",
      "parents": [
        "26990de4d86c8e3f218f3090543fbe92e4801767"
      ],
      "author": {
        "name": "Nikita Popov",
        "email": "npopov@redhat.com",
        "time": "Tue Sep 22 09:26:08 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Sep 22 00:33:32 2026 -0700"
      },
      "message": "[Clang] Stop using strip.invariant.group (#225072)\n\nClang currently emits calls to llvm.strip.invariant.group under\n`-fstrict-vtable-pointers` whenever a pointer to a dynamic object is\nused in a comparison or might be used in a comparison through operations\nwe cannot track.\n\nThe purpose of the llvm.strip.invariant.group intrinsic is to make sure\nthat if we have a dominating condition like `a \u003d\u003d\nlaunder.invariant.group(a)`, we don\u0027t end up replacing the latter with\nthe former, as that would allow the optimizer to assume that the memory\nstays invariant, despite going through a launder operation (e.g. on\nplacement new).\n\nHowever, since this was introduced, we\u0027ve come to the understanding that\nreplacing pointers based on equality comparison is generally only legal\nif they have the same provenance, and stopped doing such replacements.\nThe specific strip.invariant.group/launder.invariant.group case was\nstill buggy due to an implementation bug, but this was fixed in\nhttps://github.com/llvm/llvm-project/pull/224281.\n\nAs such, I believe that we no longer need to emit\nllvm.strip.invariant.group in Clang. I plan to also remove the LLVM\nintrinsic in a followup.\n\nGitOrigin-RevId: 3a4d8a9e6acaed193477208328be0eb8f24fd253\n"
    },
    {
      "commit": "26990de4d86c8e3f218f3090543fbe92e4801767",
      "tree": "d224616f67a21599745cf550a06d47d05f8f3d04",
      "parents": [
        "9c00455632d9740d2e313395a2188c4e592fccc2"
      ],
      "author": {
        "name": "Amit Tiwari",
        "email": "Amit.Tiwari@amd.com",
        "time": "Tue Sep 22 10:37:40 2026 +0530"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Sep 21 22:16:32 2026 -0700"
      },
      "message": "[Clang][OpenMP] Delay `collapse/ordered` nest walk until instantiation (#225052)\n\nDo not fold `collapse` and `ordered` counts in `checkOpenMPLoop` until\nthe expression is no longer instantiation-dependent.\n\nClause parsing already waits. The loop walker did not. A count like\n`sizeof(sizeof(T() + T()))` was folded in the template, so Clang could\nwalk the wrong number of loops before instantiation.\n\nGitOrigin-RevId: d11b9adc9bd2a1c8142ff134d04275c4cfce34b0\n"
    },
    {
      "commit": "9c00455632d9740d2e313395a2188c4e592fccc2",
      "tree": "c88e06264ad5ccf34adb6f13b27460dea825c124",
      "parents": [
        "9309892ceb161bb56ec5d15fca537beb29f29a8f"
      ],
      "author": {
        "name": "Sudharsan Veeravalli",
        "email": "svs@qti.qualcomm.com",
        "time": "Tue Sep 22 10:12:07 2026 +0530"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Sep 21 21:49:24 2026 -0700"
      },
      "message": "[RISCV] Add assembler support for the Qualcomm Xqccmi vendor extension (#225119)\n\nThis patch adds support for assembling and disassembling the Qualcomm\nXqccmi 16-bit Instruction Lookup Table vendor extension. The extension\nhas a single `qc.cm.ilut` instruction which executes one or two\ninstructions from an instruction lookup table. The encoding overlaps\nwith `c.fld`, making `Xqccmi` and `Zcd` mutually exclusive.\n\nThe extension also adds two CSR\u0027s `qc.itba` and `qc.itdec` that contain\nthe lookup table base address and the leading double entries count\nrespectively.\n\nSpec:\nhttps://github.com/qualcomm/riscv-unified-db/releases#release-Xqccmi-0.2.0\n\nAssisted by gpt-5.6-luna.\n\nGitOrigin-RevId: dc21109c01ad1d52f105f892794b1995e449751b\n"
    },
    {
      "commit": "9309892ceb161bb56ec5d15fca537beb29f29a8f",
      "tree": "431785c2416170c684fd8af870527c850cb8eebc",
      "parents": [
        "1eed4c4f868c6fa65e67eb873bdf8993de45ad78"
      ],
      "author": {
        "name": "Vicky Nguyen",
        "email": "vicky.trucviennguyen@gmail.com",
        "time": "Mon Sep 21 21:19:33 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Sep 21 21:24:41 2026 -0700"
      },
      "message": "[CIR][AArch64] Upstream load (vld[234]_*/vld[234]q_*) NEON builtins (#220476)\n\nRelated to https://github.com/llvm/llvm-project/issues/185382\n\nCIR lowering for load intrinsics (`vld[234]_*`/`vld[234]q_*`)\n\n(https://arm-software.github.io/acle/neon_intrinsics/advsimd.html#stride)\n\nPort tests:\n- `clang/test/CodeGen/AArch64/neon-intrinsics.c`\n- `clang/test/CodeGen/AArch64/neon-ldst-one.c`\n- `clang/test/CodeGen/AArch64/poly64.c`\n\nto `clang/test/CodeGen/AArch64/neon/load.c`\n\nGitOrigin-RevId: 13c5814d8006ab386881cf7f9387f4dd44e79d94\n"
    },
    {
      "commit": "1eed4c4f868c6fa65e67eb873bdf8993de45ad78",
      "tree": "7cb2943d2d02f0253be452822c94e9155e2a2a5e",
      "parents": [
        "79f089bb214a812b6404ef267c7242fd2f3284ef"
      ],
      "author": {
        "name": "Chaitanya",
        "email": "Krishna.Sankisa@amd.com",
        "time": "Tue Sep 22 09:37:23 2026 +0530"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Sep 21 21:12:23 2026 -0700"
      },
      "message": "[ABI] Add IndirectAliased kind to abi::ArgInfo (#225005)\n\nChanges:\n- Mirror `clang::CodeGen::ABIArgInfo::IndirectAliased:` an indirect\nargument whose pointer may alias an object referenced elsewhere and is\nnever byval.\n- Add the kind, a `getIndirectAliased` factory, an `isIndirectAliased`\npredicate, and widens the indirect align/addrspace/realign accessors to\nboth kinds.\n- Add unit tests in FunctionInfoTest.\n\nRelates to : https://github.com/llvm/llvm-project/issues/220471\n\nAssisted by: claude opsu 4.8\n\nGitOrigin-RevId: fd979c6266fa98c5a55c2d27af697c110838c1bc\n"
    },
    {
      "commit": "79f089bb214a812b6404ef267c7242fd2f3284ef",
      "tree": "283f8e31b39a4d20d65d6bfe4d71b2386ab95544",
      "parents": [
        "13890889c81248798e3fd9949a9272dd160ceedb"
      ],
      "author": {
        "name": "Wenju He",
        "email": "wenju.he@intel.com",
        "time": "Tue Sep 22 04:41:02 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Sep 21 19:46:35 2026 -0700"
      },
      "message": "[clang-sycl-linker] Make temp files land relative to cwd with unique names (#224506)\n\nDerive the CodeGen/AOT stem from -o\u0027s basename instead of its full\npath, so these intermediates land in cwd alongside the .bc temps\ninstead of splitting -save-temps output across two directories.\n\nRoute them through createTempFile instead of building\n`\u003cstem\u003e_\u003cindex\u003e.ext` directly, so parallel invocations sharing an\noutput basename don\u0027t collide. Its random suffix also makes\n`_\u003cindex\u003e` redundant, so drop it; `--spirv-dump-device-code` keeps its\nindex since it has no random suffix and still needs one.\n\n---------\n\nCo-authored-by: Claude Sonnet 5 \u003cnoreply@anthropic.com\u003e\nGitOrigin-RevId: a2fdb8fe0d09dbc1d543c3381f0ddacdf7054c5e\n"
    },
    {
      "commit": "13890889c81248798e3fd9949a9272dd160ceedb",
      "tree": "4607a05d7028dc0db1849f25e8da8eb6f313c75e",
      "parents": [
        "1a264e4bbdf300a9d214a01b874a6b69f236b70b"
      ],
      "author": {
        "name": "Anshul Nigham",
        "email": "nigham@google.com",
        "time": "Mon Sep 21 18:42:30 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Sep 21 18:47:35 2026 -0700"
      },
      "message": "[clang][test] Fix module cache path in module-redecl1.cpp (#225241)\n\nFixes commit aa6b03ed5a9ffe5ba6f0d945fac9961884b5c6ed\n\nUse `-fmodules-cache-path\u003d%t` instead of `Inputs/` which fails in\nread-only test sandboxes due to permission errors when writing compiled\nmodule files. Also clean `%t` before execution and remove redundant\n`-cc1`, matching the RUN lines in\ntest/Modules/redecl-add-after-load.cpp.\n\nGitOrigin-RevId: d024790161549c4e45828da9fb0ea74be5786403\n"
    },
    {
      "commit": "1a264e4bbdf300a9d214a01b874a6b69f236b70b",
      "tree": "326c7447285d058d9e55a39282af0de879af285e",
      "parents": [
        "ef171e8c0bd9abdac5f6db964b07cc702d609255"
      ],
      "author": {
        "name": "Konstantinos Parasyris",
        "email": "koparasy@gmail.com",
        "time": "Mon Sep 21 18:22:31 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Sep 21 18:29:17 2026 -0700"
      },
      "message": "[CIR][NFC] Route target facts in LoweringPrepare through LowerModule (#225236)\n\nLowerModule already rebuilds a full clang::TargetInfo\nfrom the module\u0027s cir.triple and exposes getTarget()\nand getCXXABIKind(). The changes are a pure routing\nchange: no new attribute and no CIRGen change,\nsince every routed fact is derivable from the triple,\nthat is already included in the module.\n\nCo-authored-by: Claude Opus 4.8 (1M context) \u003cnoreply@anthropic.com\u003e\nGitOrigin-RevId: 8d64e84bb915b900a546408143790a578ab4ac19\n"
    },
    {
      "commit": "ef171e8c0bd9abdac5f6db964b07cc702d609255",
      "tree": "d9158a00bedb5795396260105ef98ca630235f4b",
      "parents": [
        "3d053685bc0cce952c41ffbc7120e3609e2cba3e"
      ],
      "author": {
        "name": "Joshua Batista",
        "email": "jbatista@microsoft.com",
        "time": "Mon Sep 21 17:54:06 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Sep 21 17:58:00 2026 -0700"
      },
      "message": "[HLSL] Add `InterlockedMax` function and resource methods (#222160)\n\nThis PR adds the `InterlockedMax` standalone function and resource\nmethods.\nIt mimics the implementation of the `InterlockedMin` function and\nresource\nmethods.\n\nLike `min`, `max` is signedness aware. A signed operand lowers to\n`atomicrmw max` and an unsigned operand lowers to `atomicrmw umax`. This\nmatches DXC, which selects between the `IMax` and `UMax` atomic binary\noperations.\n\nThe PR also adds the 64-bit `InterlockedMax64` methods, which DXIL gates\non\nshader model 6.6.\n\nFixes: https://github.com/llvm/llvm-project/issues/99124\nAssisted by: Github Copilot\nGitOrigin-RevId: 33fcd70991316e238e63684cd4018f618d690668\n"
    },
    {
      "commit": "3d053685bc0cce952c41ffbc7120e3609e2cba3e",
      "tree": "3cbf07d5625e33704b630367373f2cce4075e1b0",
      "parents": [
        "44cad1f9a4495e63201fa48c13e6936c4968504a"
      ],
      "author": {
        "name": "Konstantinos Parasyris",
        "email": "koparasy@gmail.com",
        "time": "Mon Sep 21 17:22:16 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Sep 21 17:27:06 2026 -0700"
      },
      "message": "[CIR] Consume serialized LangOptions in post-CIRGen lowering (#225224)\n\nPost-CIRGen lowering (LoweringPrepare, CallConvLowering) read a handful\nof LangOptions facts from a live clang::LangOptions via the pass\u0027s\nASTContext. That prevented a reloaded .cir from lowering the same way it\nwas compiled, since a serialized module has no ASTContext. PR #224757\nserialized those facts onto the module as #cir.lowering_lang_options;\nthis change makes lowering consume them from there.\n\nTo make sure the `lowering_lang_options` attribute is always available,\nI moved the constrction of langOpts from release to the constructor. The\noverall approach is very close to `LowerModule::getTarget()`\n\nCurrently there is still a reliance to `astContext` which I plan to\nremove in upcoming PRs. The reliance blocks consuming .cir as an input\nand test `cir-opt` with some of such passes.\n\n---------\n\nCo-authored-by: Claude Opus 4.8 (1M context) \u003cnoreply@anthropic.com\u003e\nGitOrigin-RevId: 31b28f55900649668bb3dad18ab90f6ce7a77c51\n"
    },
    {
      "commit": "44cad1f9a4495e63201fa48c13e6936c4968504a",
      "tree": "c66bd35f0e772174658cd16063c2eed983f2b2e8",
      "parents": [
        "11b24b1b8bb67163cef8f72067c089fda60d0123"
      ],
      "author": {
        "name": "Kunal Dubey",
        "email": "xakep8@protonmail.com",
        "time": "Tue Sep 22 05:38:29 2026 +0530"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Sep 21 17:13:27 2026 -0700"
      },
      "message": "[CIR] Lowering for the C2Y `stdc` bit builtins  (#218852)\n\nImplemented CIR lowering for the C2Y `stdc` bit builtins currently\ncovered by this PR.\n\nThis adds support for:\n\n- `stdc_rotate_left_*` / `__builtin_stdc_rotate_left`\n- `stdc_rotate_right_*` / `__builtin_stdc_rotate_right`\n- `stdc_memreverse8u8/u16/u32/u64`\n- `stdc_memreverse8` / `__builtin_stdc_memreverse8`\n\nThe rotate builtins lower to `cir.rotate`, which then lowers to the LLVM\nfunnel-shift intrinsics.\n\nFor `stdc_memreverse8`, CIR matches classic CodeGen behavior:\n\n- sizes `0` and `1` are no-ops, while still evaluating the pointer\nargument\n- sizes `2`, `4`, and `8` lower to load / byte-swap / store\n- other constant sizes and dynamic sizes fall back to a\n`stdc_memreverse8` library call through the isLibFunction path\n\nReference to discussion in PR #214931\n[here](https://github.com/llvm/llvm-project/pull/214931#discussion_r3769544573)\n\nGitOrigin-RevId: 6854d299e83c7b08d0450bcc85f13a84d3b5a29e\n"
    },
    {
      "commit": "11b24b1b8bb67163cef8f72067c089fda60d0123",
      "tree": "d58cf259255d4b1123f0e842b141de0cc2284650",
      "parents": [
        "3f52257cbf73cf4e095e2754da854c79aa15bc88"
      ],
      "author": {
        "name": "Adam Smith",
        "email": "adams@nvidia.com",
        "time": "Mon Sep 21 19:06:54 2026 -0500"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Sep 21 17:12:52 2026 -0700"
      },
      "message": "[CIR] Expand callee-side va_arg on x86_64 (#222420)\n\nCallConvLowering now classifies every `cir.va_arg` on its own, as an\nunnamed argument with a full register budget, and expands it in place. A\nfetch that fits the budget reads from the saved register area, and\neverything else reads the overflow area and bumps the cursor. An\naggregate, an x87 long double, and an `__int128` all lower correctly\nnow. Each fetch reads at the alignment the argument area gives it, which\nfor an over-aligned record is higher than its type reports.\n\nA non-trivially-copyable type still reports NYI.\n\n`rewriteVAArg` takes the register demand from the ABI library rather\nthan rebuilding it from the shape of the coerced type. The library\ncomputes it in `classifyArgumentType` as the `NeededInt` and `NeededSSE`\nout-parameters and used to drop it, so `llvm::abi::ArgInfo` and\n`mlir::abi::ArgClassification` now carry it. Expanding a `cir.va_arg`\nneeds the inputs to that decision rather than its result, because the\nchoice has to become a runtime branch on the va_list cursor.\n\nAssisted-by: Cursor / claude-opus-5\nGitOrigin-RevId: eb701ae7fdf5071bf4b1dbde37a41fb16df49081\n"
    },
    {
      "commit": "3f52257cbf73cf4e095e2754da854c79aa15bc88",
      "tree": "b121b9630b248744eee903fd69be6989ea5fdb54",
      "parents": [
        "000a18699bda38f73da12e8a3b8c8ae198201c9f"
      ],
      "author": {
        "name": "Ivan Tadeu Ferreira Antunes Filho",
        "email": "antunesi@google.com",
        "time": "Mon Sep 21 18:52:43 2026 -0400"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Sep 21 16:06:04 2026 -0700"
      },
      "message": "[clang][test] Write obj file into %t in ByteCode/module-default-ctor.cpp (#225192)\n\nGitOrigin-RevId: 04d36008ff346d1ff9deded1cdf275fb2fb28c69\n"
    },
    {
      "commit": "000a18699bda38f73da12e8a3b8c8ae198201c9f",
      "tree": "b015142d1d1d73068395b35ad4832fc263aaf109",
      "parents": [
        "0f99aca7ca0601acc9f54ce675dbf390efe5a2fd"
      ],
      "author": {
        "name": "Adam Smith",
        "email": "adams@nvidia.com",
        "time": "Mon Sep 21 17:29:07 2026 -0500"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Sep 21 15:32:16 2026 -0700"
      },
      "message": "[CIR] Split side_effect into memory effects, nounwind, and willreturn (#223890)\n\n`side_effect` was carrying three facts at once. It described the memory\na callee may touch, and it was also the only thing lowering derived\n`nounwind` and `willreturn` from, so any callee with a known memory\neffect got both. That is wrong for one that can throw, and `willreturn`\nhad no other representation in CIR at all.\n\n`const`, `pure` and `noalias` now record the three separately, and the\nenum is replaced by a structured `#cir.memory_effects` carrying the same\nsix ModRef slots as the LLVM dialect. It has no keyword syntax of its\nown, so on an operation it sits in the attribute dictionary.\n\nThe only change in emitted IR is for `__declspec(noalias)`, which the\nold enum could not express, and which now gets\n`inaccessibleOrArgMemOnly` and `nounwind` to match classic. Everything\nelse lowers exactly as it did.\n\nAssisted-by: Cursor / claude-opus-5\nGitOrigin-RevId: 3374bc31c4e293bb7037abdffacb2308e7ca2ebd\n"
    },
    {
      "commit": "0f99aca7ca0601acc9f54ce675dbf390efe5a2fd",
      "tree": "40bb284132307c5592cdd0a5439bce9e31652e93",
      "parents": [
        "a45c213a36eda149040e1150ec0918ba290cd29c"
      ],
      "author": {
        "name": "Adam Smith",
        "email": "adams@nvidia.com",
        "time": "Mon Sep 21 17:05:37 2026 -0500"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Sep 21 15:13:26 2026 -0700"
      },
      "message": "[CIR] Drop the stale callconv opt-out from two CIR tests (#225180)\n\n`bitfields.cpp` was waiting on padded, packed and over-aligned record\nshapes. `uncopyable-args.cpp` was waiting on parameters of an empty or\ntag class. Both files now compile and check clean with the pass running,\nso the `-fno-clangir-call-conv-lowering` opt-out and its TODO header are\nremoved and the tests exercise the pass as written. Neither file changes\na CHECK directive.\n\nAssisted-by: Cursor / claude-opus-5\nGitOrigin-RevId: 32636ffa83325ca3b3c1ae3342d66abe053ddf87\n"
    },
    {
      "commit": "a45c213a36eda149040e1150ec0918ba290cd29c",
      "tree": "719bc96e3998aa7e00500324a8aee7b09186bc1a",
      "parents": [
        "a1f64d7a314b3674ed199ebfb9a85913aa438195"
      ],
      "author": {
        "name": "Alex Duran",
        "email": "alejandro.duran@intel.com",
        "time": "Mon Sep 21 23:54:41 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Sep 21 15:02:50 2026 -0700"
      },
      "message": "[clang][openmp] Avoid generating geometry for Bare kernels (#225185)\n\nDon\u0027t use the information from num_teams or thread_limit clauses to\ninitialize the Kernel Environment of bare kernels. They only support one\nsingle dimension and for NVIDIA (only) we generate a \"nnvm.maxntid\"\nattribute which is incompatible with the multi-dimensional launch that\nhappens at runtime.\n\nFixes a regression introduced by #223772\n\nGitOrigin-RevId: 9696514f547989b2688e73a987fb676d71f570aa\n"
    },
    {
      "commit": "a1f64d7a314b3674ed199ebfb9a85913aa438195",
      "tree": "8355f229609610ef75bd5d64de9eadefb16b751e",
      "parents": [
        "e921c72b33714163e062bf92b5c917211c45b324"
      ],
      "author": {
        "name": "Adam Smith",
        "email": "adams@nvidia.com",
        "time": "Mon Sep 21 16:31:15 2026 -0500"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Sep 21 14:38:21 2026 -0700"
      },
      "message": "[CIR] Regenerate CHECK lines for two callconv opt-out tests (#225189)\n\nNeither `union.c` nor `paren-list-agg-init.cpp` is blocked by the\ncalling convention lowering pass any more, and both compile clean with\nit running. Remove the `-fno-clangir-call-conv-lowering` opt-out and\nupdate their CHECK lines. The coerced parameters and returns they now\npin match classic.\n\nThe bodies still differ, since CIR round-trips the record through a\nfresh coerce slot, so those fragments move to the `LLVMCIR` and `OGCG`\nprefixes the file already declares. Four `define` lines in\n`paren-list-agg-init.cpp` wildcarded their return type and now pin it.\n\nAssisted-by: Cursor / claude-opus-5\nGitOrigin-RevId: aea2e768d7c2f5d97ae6a41c5c7469dcac4ba113\n"
    },
    {
      "commit": "e921c72b33714163e062bf92b5c917211c45b324",
      "tree": "27316b3d6adcda645b502b00be1c5865b5fb149a",
      "parents": [
        "ca1b2154c7ba70166be784885998725d6deb9b93"
      ],
      "author": {
        "name": "geoffreygaren",
        "email": "ggaren@apple.com",
        "time": "Mon Sep 21 13:49:56 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Sep 21 13:57:32 2026 -0700"
      },
      "message": "[WebKit Checkers] Trace through temporaries in tryToFindPtrOrigin (#224877)\n\nRefPtr checking skips temporaries, reporting a path through any\ntemporary as unsafe. This is mostly correct, but not always. For\nexample, the following is a false positive:\n\n    // makeKey() returns a temporary\n    RefCountable* p \u003d condition(makeKey()) ? guardian.ptr() : nullptr;\n\nIn the upcoming Borrow checker, it\u0027s even more important to trace\nthrough temporaries because not tracing an expression can drop a\n`lifetimebound` link, resulting in false **negatives**.\n\nThis patch adds tracing through temporaries. The logic is:\n\n* In function call arguments, temporaries are lifetime safe because the\nfull expression does not end until the call returns\n\n* In ranged for loops, temporaries are lifetime safe because lifetime\nextends past the full expression to the duration of the loop (C++ P2718)\n\n    * Otherwise, temporaries are not lifetime safe\n\nAssisted-by: Claude\nGitOrigin-RevId: 9906c580517b6e22df73a6f7206de551e4883a52\n"
    },
    {
      "commit": "ca1b2154c7ba70166be784885998725d6deb9b93",
      "tree": "1615d64d1dc60d46babd4409e8f9d290fcd26380",
      "parents": [
        "d9b2c58d16b3728194046a408b0595f24f211fa2"
      ],
      "author": {
        "name": "1s",
        "email": "zishun.yi.dev@gmail.com",
        "time": "Tue Sep 22 04:40:58 2026 +0800"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Sep 21 13:49:05 2026 -0700"
      },
      "message": "[clang][FreeBSD] Enable KASAN and KMSAN for riscv64 (#202288)\n\nenables KASAN and KMSAN for the riscv64 freebsd target in the Clang\ndriver.\n\nThe corresponding FreeBSD kernel runtime support for riscv64 KASAN is\ncurrently under active review.\n\nDepends on: https://reviews.freebsd.org/D57381\n\nCo-authored-by: aokblast \u003caokblast@FreeBSD.org\u003e\nGitOrigin-RevId: 8e635116824243b37aa1cce4a38b0203fad0a0e6\n"
    },
    {
      "commit": "d9b2c58d16b3728194046a408b0595f24f211fa2",
      "tree": "721fa6e83f54645667a2d3ddce6d9249082585d9",
      "parents": [
        "c70b0ffbb1bde90b6b5a098cbf88e492346380fc"
      ],
      "author": {
        "name": "Adam Magier",
        "email": "adam.a.magier.foss@gmail.com",
        "time": "Mon Sep 21 15:18:19 2026 -0500"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Sep 21 13:23:15 2026 -0700"
      },
      "message": "[clang][CodeGen] Compute the pointer-overflow offset from the index list (#225139)\n\nFollow up to #223446. EmitGEPOffsetInBytes recreated the offset by\nwalking the GEP value that EmitCheckedInBoundsGEP had just created. That\nrequired a separate path for the case where CreateGEP folded the result,\nbecause a folded GEP need not be a GEP at all: `gep(null, 1)` becomes\n`inttoptr(1)`, and `gep(@g, 0)` becomes `@g`.\n\nPass ElemTy and IdxList instead and walk those directly. This removes\nthe constant path, the cast to GEPOperator, and two asserts that\nrestated the caller\u0027s own behaviour.\n\nThis is not quite NFC. The constant path reported OffsetOverflows as\nfalse unconditionally, so a constant GEP whose byte offset wrapped to\nexactly zero satisfied the TotalOffset \u003d\u003d Zero early return and emitted\nno check. The unified path computes the flag, so such a GEP now emits\none. It is provably valid, since TotalOffset \u003d\u003d 0 makes the computed\naddress equal the base, so this is extra IR at -O0 rather than a change\nin behaviour.\n\nAdd constant-base cases to ubsan-pointer-overflow-constant-fold.c,\nincluding the wraps-to-zero case: it passes before this change only\nbecause no check is emitted at all.\n\nAssisted-by: Kiro CLI / Claude Opus 5\nGitOrigin-RevId: 1492dbc61765111d035eb5a27ea71e7527a8c6c0\n"
    },
    {
      "commit": "c70b0ffbb1bde90b6b5a098cbf88e492346380fc",
      "tree": "4ab0a3157cda2d21e1b002d2bbd009f58194908f",
      "parents": [
        "06abc272890711ea6bfbc60a7fe8b3e3826e09b5"
      ],
      "author": {
        "name": "Konstantinos Parasyris",
        "email": "koparasy@gmail.com",
        "time": "Mon Sep 21 12:59:20 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Sep 21 13:05:43 2026 -0700"
      },
      "message": "[CIR] Serialize lowering-relevant LangOptions as #cir.lowering_lang_options  (#224757)\n\nPost-CIRGen lowering (LoweringPrepare, CallConvLowering)\nreads a handful of LangOptions flags that have no\ntriple/module representation. A reloaded `.cir`\nmodule has no live `clang::LangOptions`, so those flags must be\nserialized for the file to be self-describing and lower the\nsame way it was compiled.\n\nAdd a module-level aggregate attribute `#cir.lowering_lang_options`\nholding the LangOpts facts lowering consumes: \"exceptions,\nthreadsafe_statics, cuda, cuda_is_device, hip, gpu_rdc, openmp,\nopenmp_is_target_device, and clang_abi_compat\". Target-derived\nfacts (size_t width, CXXABI, comdat, char/pointer/atomic width,\nSDK version, fp formats) are **NOT** stored: they are\nrebuilt from `cir.triple`\n\nCo-authored-by: Claude Opus 4.8 (1M context) \u003cnoreply@anthropic.com\u003e\nGitOrigin-RevId: 37e2c3bc9610b7952405ddd7c3557c93e933e554\n"
    },
    {
      "commit": "06abc272890711ea6bfbc60a7fe8b3e3826e09b5",
      "tree": "43d373abdba2ee6545f0fc5ccb375083c16d6479",
      "parents": [
        "34158ef83b0b0401df9073f04a084f0d7c573cf3"
      ],
      "author": {
        "name": "Daniel Cederman",
        "email": "cederman@gaisler.com",
        "time": "Mon Sep 21 21:46:07 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Sep 21 12:54:04 2026 -0700"
      },
      "message": "[Sparc][clang] Match GCC\u0027s SPARC V8 vector argument passing (#222254)\n\nPass floating-point vectors and vectors larger than 64 bits indirectly.\n\nAssisted-by: Codex\nGitOrigin-RevId: 364f1c3d236c2cf3c15c0d4b119e7cdd05d1b945\n"
    },
    {
      "commit": "34158ef83b0b0401df9073f04a084f0d7c573cf3",
      "tree": "1b9d75da8b4476f3758c2bcc3c5e5765e74e80f5",
      "parents": [
        "0eb6eb84f700167fa682e256bdb2331b67878a3d"
      ],
      "author": {
        "name": "R-Goc",
        "email": "ryszardgoc@gmail.com",
        "time": "Mon Sep 21 21:23:55 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Sep 21 12:28:40 2026 -0700"
      },
      "message": "[CIR] Add initial Microsoft C++ ABI support in ClangIR (#221038)\n\nStub out Microsoft C++ ABI support for ClangIR CodeGen and dialect\nlowering:\n- Stub out CIRGenMicrosoftCXXABI.\n- Stub out LowerMicrosoftCXXABI to integrate into the TargetLowering\npass in CIR dialect transforms.\n- Add error.NYI extensively.\n- Add a minimal test file, mainly so that it is in tree.\n\nAssisted-by: Gemini:gemini-3.8-flash-high\nGitOrigin-RevId: 5306fce6c317c13a5889e6909a7e3c959747fb02\n"
    },
    {
      "commit": "0eb6eb84f700167fa682e256bdb2331b67878a3d",
      "tree": "cba2082ff631f3e607c66b394bf0aa13cd2bd854",
      "parents": [
        "db2b9abaaf8763d3280daecfe585943a667a61da"
      ],
      "author": {
        "name": "Pranav Kant",
        "email": "prka@google.com",
        "time": "Mon Sep 21 12:17:53 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Sep 21 12:25:16 2026 -0700"
      },
      "message": "[clang-repl] Add CLANG_ENABLE_EMUTLS_GET_ADDRESS cmake option (#217700)\n\nGuard the extern \"C\" declaration and reference to __emutls_get_address\nin IncrementalExecutor.cpp behind a new CMake option\nCLANG_ENABLE_EMUTLS_GET_ADDRESS, which is OFF by default.\n\nThis prevents link errors in environments/runtimes where\n__emutls_get_address is not available.\n\nReplace all other guards with the new cmake option.\n\nGitOrigin-RevId: 5dfe8605911e3f0f43fe2b5c08b4ffc23f2af37a\n"
    },
    {
      "commit": "db2b9abaaf8763d3280daecfe585943a667a61da",
      "tree": "fbadf868b096888cb30d90eba35175e43001a01f",
      "parents": [
        "c8de98a060fb7a3003de5901ebf13b9869bfa330"
      ],
      "author": {
        "name": "Erich Keane",
        "email": "ekeane@nvidia.com",
        "time": "Mon Sep 21 12:10:56 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Sep 21 12:21:19 2026 -0700"
      },
      "message": "[CIR] Correct the behavior of \u0027shouldEmitFunction\u0027 with always/noinline (#224378)\n\nThese attributes modified the linkage of functions in certain cases that\ncaused us to, ironically, skip emitting something when we picked it up\nvia PCH during self-build. This patch just copies/pastes the code from\nclassic codegen.\n\nGitOrigin-RevId: eaab73d4bbaafa471f2216d58172126d2fd7c2b6\n"
    },
    {
      "commit": "c8de98a060fb7a3003de5901ebf13b9869bfa330",
      "tree": "093a5dfc2e7e09f2c13c89be5ee0e8385a06f9f6",
      "parents": [
        "17b8e35b31afa3991dfd5c74ba51eb24dce50a6a"
      ],
      "author": {
        "name": "Krzysztof Parzyszek",
        "email": "Krzysztof.Parzyszek@amd.com",
        "time": "Mon Sep 21 13:51:12 2026 -0500"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Sep 21 12:00:47 2026 -0700"
      },
      "message": "[clang][OpenMP] ORDERED clause is allowed on FOR in 4.5+ (#225106)\n\nSeveral compound directives containing FOR were missing the ORDERED\nclause in the set of allowed (once) clauses.\n\nGitOrigin-RevId: b0d31f40189dbdcf8b62e2c6ef79b039c5202aba\n"
    },
    {
      "commit": "17b8e35b31afa3991dfd5c74ba51eb24dce50a6a",
      "tree": "efb993c4e4bad1e00ebae2f0f67b4999cee3ac47",
      "parents": [
        "cb95d3d3df6111bb33e95d23ef7058e11243c9a2"
      ],
      "author": {
        "name": "Changpeng Fang",
        "email": "changpeng.fang@amd.com",
        "time": "Mon Sep 21 10:46:53 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Sep 21 10:57:51 2026 -0700"
      },
      "message": "[AMDGPU][NFC] Introduce TDMInsts feature for tensor load/store (#225123)\n\nGitOrigin-RevId: 150f8999285d07bdebc6a73dfdeae520dbdf1468\n"
    },
    {
      "commit": "cb95d3d3df6111bb33e95d23ef7058e11243c9a2",
      "tree": "7f48c0ac16db8023216decdd4fe33cf3d5d1cf99",
      "parents": [
        "405c7e0248cb988c296b4e8796c0083d10160700"
      ],
      "author": {
        "name": "Nick Desaulniers",
        "email": "ndesaulniers@google.com",
        "time": "Mon Sep 21 10:30:02 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Sep 21 10:56:39 2026 -0700"
      },
      "message": "[clang][CodeGen] Exempt lifetime marker cleanups in musttail check (#224731)\n\nPR #219045 started emitting @llvm.lifetime.start and @llvm.lifetime.end\nmarkers for block-scoped compound literals in C via\npushCleanupAfterFullExpr\u003cCallLifetimeEnd\u003e.\n\nWhen a compound literal is evaluated inside a conditional branch,\npushCleanupAfterFullExpr wraps CallLifetimeEnd inside\nEHScopeStack::ConditionalCleanup, which did not override\nEHScopeStack::Cleanup::isRedundantBeforeReturn(). Consequently,\nCodeGenFunction::EmitCall rejected [[clang::musttail]] calls when a\nconditional compound literal was in scope at -O1 and above.\n\nBecause EHScopeStack::ConditionalCleanup wraps cleanups by composition,\nvirtual methods on EHScopeStack::Cleanup other than Emit() do not work\nfor conditional cleanups. Replace the virtual\nEHScopeStack::Cleanup::isRedundantBeforeReturn() method with a\nStackRestore bit on CleanupKind/EHCleanupScope alongside the existing\nLifetimeMarker bit, and check EHCleanupScope::isRedundantBeforeReturn()\nin CodeGenFunction::EmitCall.\n\nAssisted-by: Gemini\nFixes: 93b2629d1d1f (\"[clang][CodeGen] Emit lifetime markers for\nblock-scoped compound literals in C (#219045)\")\nFixes: https://github.com/llvm/llvm-project/issues/224337\nGitOrigin-RevId: 8c5c2ccf47434b4c948e5b875c977bef4d15c84e\n"
    },
    {
      "commit": "405c7e0248cb988c296b4e8796c0083d10160700",
      "tree": "47339af8680b1026ec960ce9f549a912224b54df",
      "parents": [
        "bc003eb46ab013f3beac33ed991a896d064fc099"
      ],
      "author": {
        "name": "Kazu Hirata",
        "email": "kazu@google.com",
        "time": "Mon Sep 21 10:29:19 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Sep 21 10:33:03 2026 -0700"
      },
      "message": "[clang] Migrate away from PointerUnion::dyn_cast (NFC) (#225022)\n\nNote that PointerUnion::dyn_cast has been soft deprecated in\nPointerUnion.h:\n\n  // FIXME: Replace the uses of is(), get() and dyn_cast() with\n  //        isa\u003cT\u003e, cast\u003cT\u003e and the llvm::dyn_cast\u003cT\u003e\n\nLiteral migration would result in dyn_cast_if_present (see the\ndefinition of PointerUnion::dyn_cast), but this patch uses dyn_cast\nwhere the operands are known to be nonnull.\n\nThe operands are known to be nonnull in one of three ways:\n\n- Preceding checks: A null check, assertion, or dereference a few\n  lines above guarantees the PointerUnion is nonnull.\n\n- Downstream code: The else or fallthrough branch unconditionally\n  calls cast\u003c...\u003e, dereferences the pointer, or reaches\n  llvm_unreachable.\n\n- By construction: In DeclContextInternals.h, FileEntry.h,\n  FileIndexRecord.cpp, and LifetimeSafety/Checker.cpp, only nonnull\n  pointers are ever stored in the PointerUnion.\n\nAssisted-by: Antigravity\nGitOrigin-RevId: f0159c871942b821eb54f057a7739b4269f72b46\n"
    },
    {
      "commit": "bc003eb46ab013f3beac33ed991a896d064fc099",
      "tree": "ac1d349114d227e30b4f33b532f5a2bad174edd2",
      "parents": [
        "604579bc11d5c6f09fde8fbc060fe6408d998195"
      ],
      "author": {
        "name": "Andy Kaylor",
        "email": "akaylor@nvidia.com",
        "time": "Mon Sep 21 10:19:48 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Sep 21 10:23:17 2026 -0700"
      },
      "message": "[CIR] Implement exception-related musttail diagnostics (#224778)\n\nWhen a musttail call occurs in a function that was marked noexcept or\nhas a dynamic exception specification, we must report a diagnostic to\nthe user saying that the call is not supported in this case. This change\nadds such a diagnostic for CIR codegen.\n\nAssisted-by: Cursor / claude-opus-5\nGitOrigin-RevId: 520af5f67f9f6d9a5a250b04de27020b100076d3\n"
    },
    {
      "commit": "604579bc11d5c6f09fde8fbc060fe6408d998195",
      "tree": "8570203795d4fd229c0058cf47c289d0604f315b",
      "parents": [
        "052301d5edd2ed2f77f5da011cdf826ea108e540"
      ],
      "author": {
        "name": "Andy Kaylor",
        "email": "akaylor@nvidia.com",
        "time": "Mon Sep 21 10:18:39 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Sep 21 10:22:45 2026 -0700"
      },
      "message": "[LLVMABI][AARCH64] Handle conditions for ignoring empty types (#224476)\n\nThis adds AArch64 ABI library handling to decide when empty records and\nzero-sized (non-SVE) types can be ignored as arguments and return types.\nThese are always ignored as return types, but the argument handling\ndepends on the language and ABI kind.\n\nAssisted-by: Cursor / various models\nGitOrigin-RevId: bbbcb2eb4f793af95ba9380a2c8be1e33cb6fdb2\n"
    },
    {
      "commit": "052301d5edd2ed2f77f5da011cdf826ea108e540",
      "tree": "bb9077a4e6fbf9da76f9282afe9e068ab9ed4686",
      "parents": [
        "74297adfd24210ef736b284f5443745e139c4b5c"
      ],
      "author": {
        "name": "Adam Magier",
        "email": "adam.a.magier.foss@gmail.com",
        "time": "Mon Sep 21 11:37:45 2026 -0500"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Sep 21 09:45:25 2026 -0700"
      },
      "message": "[clang][CodeGen] Use ptrtoaddr for the pointer-overflow check (#223446)\n\nSince 052dde9c3a62 (\"[SCEV] Do not represent ptrtoint as ptrtoaddr\")\nSCEV treats the check\u0027s ptrtoint as opaque, so IndVarSimplify no longer\ninfers nuw on the reconstructed address and InstCombine no longer folds\nthe comparison. Provably safe checks now survive to run time.\n\nptrtoaddr is correct here: the address is only compared against the\nrecomputed one and passed to the handler, and is dead otherwise. This is\nunlike the pointer subtraction in d7594bf4caa5 (reverted in\nfcd814ae4357), whose result is a user-visible value that can be used to\nreconstruct a pointer, e.g. via -(nullptr - ptr).\n\nThe result type becomes DL.getAddressType(), so the offset arithmetic is\ndone in the address width rather than the pointer width. They coincide\nin every address space the check is emitted in on in-tree targets, and\nwhere they do not the diagnostics are unaffected: EmitCheckValue\nzero-extends a narrower argument to IntPtrTy before the handler call.\n\nAssisted-by: Kiro CLI / Claude Opus 5\nGitOrigin-RevId: 37f85ad1b302a993a6b2d3afd0a031baf64e7d9c\n"
    },
    {
      "commit": "74297adfd24210ef736b284f5443745e139c4b5c",
      "tree": "92316a838cb8ed4a466a71979c58c7b8d4f874db",
      "parents": [
        "7c198b3370909eb36d3b0ea26b070a3b95d6a633"
      ],
      "author": {
        "name": "Amr Hesham",
        "email": "amr96@programmer.net",
        "time": "Mon Sep 21 18:19:04 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Sep 21 09:22:57 2026 -0700"
      },
      "message": "[CIR][NFC] Fix VectorType element-type description (#224827)\n\nFix the VectorType element-type description\n\nGitOrigin-RevId: 267f92f79b2de95202af0df2b4488a004e0639a5\n"
    },
    {
      "commit": "7c198b3370909eb36d3b0ea26b070a3b95d6a633",
      "tree": "23e5317175453c30aa23ef2363fdda5640f23042",
      "parents": [
        "8faf28970519fc3d8a484bb4a9ba4483eee75b38"
      ],
      "author": {
        "name": "Anirudh Mathur",
        "email": "126768505+anirudhmathur12@users.noreply.github.com",
        "time": "Mon Sep 21 20:59:12 2026 +0530"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Sep 21 08:34:28 2026 -0700"
      },
      "message": "[Clang][Sema] Don\u0027t treat error-recovery dependence as genuine template dependence in ActOnTag (#221440)\n\nWhen a template argument fails to resolve (e.g. a namespace name used\nwhere a value is expected), Sema substitutes a RecoveryExpr with a\ndependent type so downstream code can recover gracefully. This\nerror-induced dependence was being conflated with genuine template\nparameter dependence in ActOnTag\u0027s handling of TagUseKind::Reference/\nFriend, causing computeDeclContext to report failure the same way it\nwould for an actually-dependent nested-name-specifier. This tripped an\nassert in ActOnExplicitInstantiation that assumes dependent names can\u0027t\nreach explicit instantiation, when in fact the diagnostic had already\nbeen emitted at the point the RecoveryExpr was created.\n\nFixes #220525\n\nGitOrigin-RevId: 050b5650ff5c905a8d80beb31244c72f8551ba5b\n"
    },
    {
      "commit": "8faf28970519fc3d8a484bb4a9ba4483eee75b38",
      "tree": "eb39265a77c91e89acf7bce5b7b5463037552f32",
      "parents": [
        "54866ee0b799a19f433507709a47ff7169067295"
      ],
      "author": {
        "name": "vangthao95",
        "email": "vang.thao@amd.com",
        "time": "Mon Sep 21 08:06:11 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Sep 21 08:14:54 2026 -0700"
      },
      "message": "[clang] Disambiguate lambdas from Microsoft attributes (#214247)\n\nWith -fms-extensions, a CUDA/HIP lambda capture list can be consumed as\na Microsoft attribute list. This causes attributed lambdas used in\ndirect initialization to be misparsed as function declarators.\n\nTentatively inspect the tokens following the capture list and any\ntrailing attributes to identify lambdas before parsing Microsoft\nattributes.\n\nAssisted by: Cursor / Claude Opus 4.8\n\nGitOrigin-RevId: 6b07a4d1c81ea6cdcc1e569299b0a2a628e49f70\n"
    },
    {
      "commit": "54866ee0b799a19f433507709a47ff7169067295",
      "tree": "348544b97a4aa58a5aeae827e8739327137c8114",
      "parents": [
        "01724b082c10650c7a22235e1b6fe93c50e4cb51"
      ],
      "author": {
        "name": "Zibi Sarbinowski",
        "email": "zibi@ca.ibm.com",
        "time": "Mon Sep 21 11:03:40 2026 -0400"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Sep 21 08:10:35 2026 -0700"
      },
      "message": "[SystemZ][z/OS] Extend systemz-features.cpp and zvector.c with z/OS RUN lines (#224733)\n\nAdd `s390x-ibm-zos` RUN lines to\n`clang/test/Driver/systemz-features.cpp`\ncovering the default, `-mhtm`/`-mno-htm`, and `-mvx`/`-mno-vx` cases.\nThe `-mvx` z/OS lines require `-march\u003darch11` because the default z/OS\nCPU (zEC12) pre-dates vector support.\n\nAdd a second RUN in `clang/test/Sema/zvector.c` using triple\n`s390x-ibm-zos` with `-target-cpu z13` so the file is exercised under\nthe z/OS code path.\n\nThese test extensions were carved out from\nhttps://github.com/llvm/llvm-project/pull/223026 per reviewer request\n(@uweigand): the extra test runs are good additions but are not related\nto the i128 XPLINK64 change.\n\nGitOrigin-RevId: 975b5d2336389fbf282e38158d84aa1e14a8a304\n"
    },
    {
      "commit": "01724b082c10650c7a22235e1b6fe93c50e4cb51",
      "tree": "fa233ebe22760a85ef90f22b08c220ea071fa76d",
      "parents": [
        "310d4d8beb6356a89bb1757d400390cedd3e6ba5"
      ],
      "author": {
        "name": "Erich Keane",
        "email": "ekeane@nvidia.com",
        "time": "Mon Sep 21 06:47:08 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Sep 21 06:54:58 2026 -0700"
      },
      "message": "[CIR] Fix assertion with pointer offset in ternary (#224724)\n\nTernary lowers into some blocks, so the values that come into it end up\nbeing block arguments, so there is no defining op for them. As a result,\nthe \u0027optimization\u0027 of the zero/subtract isn\u0027t really possible. THis\npatch uses a dyn_cast_if_present instead of a dyn_cast to make sure we\ndon\u0027t hit that.\n\nGitOrigin-RevId: 04b52bf1dc212b3af60d3d071defa4e034ece382\n"
    },
    {
      "commit": "310d4d8beb6356a89bb1757d400390cedd3e6ba5",
      "tree": "dc5a13b9e6f836bef7c99ccbe5291a5bc613d51b",
      "parents": [
        "12b8d7acc3d024dee01da615c9c65119afd109b3"
      ],
      "author": {
        "name": "Alex Duran",
        "email": "alejandro.duran@intel.com",
        "time": "Mon Sep 21 15:40:29 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Sep 21 06:49:28 2026 -0700"
      },
      "message": "[clang][flang][omp] Always generate a kernel environment (#223772)\n\nCurrently OpenMP doesn\u0027t generate a Kernel Enviroment for host kernels\nor ompx_bare kernels. This causes the runtime to have special handling\nfor this cases.\n\nThis patch ensures that a Kernel Environment is always generated which\nwill allow to simplify the RTL handling.\n\nDone mostly by Claude.\n\nGitOrigin-RevId: 69172de43c4cdf4fa9de7826f6f3e4174b33a0f2\n"
    },
    {
      "commit": "12b8d7acc3d024dee01da615c9c65119afd109b3",
      "tree": "e1b43d5b64aff701b76ae76dd6b2cd871818bb27",
      "parents": [
        "693a09cf10e1d617388906f288d3dc0f00671dd6"
      ],
      "author": {
        "name": "Matt Arsenault",
        "email": "Matthew.Arsenault@amd.com",
        "time": "Mon Sep 21 15:08:09 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Sep 21 06:14:00 2026 -0700"
      },
      "message": "[clang][Interpreter] Do not overwrite the module\u0027s DataLayout (#224027)\n\nThe incremental CUDA device and Wasm executors reset the module\u0027s\nDataLayout from TargetMachine::createDataLayout() before codegen. These\nmodules are produced by clang\u0027s own CodeGen, so already have a datalayout so\nthis is redundant. This also avoids using the TargetMachine copy of the datalayout,\nwhich will eventually be removed.\n\nCo-authored-by: Claude (Claude-Opus-4.8) \u003cnoreply@anthropic.com\u003e\nGitOrigin-RevId: f10b0b1554d31fdea2dd3963e179fa75ea2e262e\n"
    },
    {
      "commit": "693a09cf10e1d617388906f288d3dc0f00671dd6",
      "tree": "21319f16df33e90065fb2294b364355ed3824c43",
      "parents": [
        "5a5d146d7ba7750d94f9f277073ca08f3d8db9be"
      ],
      "author": {
        "name": "Matt Arsenault",
        "email": "Matthew.Arsenault@amd.com",
        "time": "Mon Sep 21 15:03:20 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Sep 21 06:09:46 2026 -0700"
      },
      "message": "clang-sycl-linker: Compute the DataLayout from the triple (#224376)\n\nSeed the module\u0027s DataLayout from the target triple directly rather than\nfrom TargetMachine::createDataLayout().\n\nCo-authored-by: Claude (Claude-Opus-4.8) \u003cnoreply@anthropic.com\u003e\nGitOrigin-RevId: dca7629f289f3dc92efb80557463f08d56255365\n"
    },
    {
      "commit": "5a5d146d7ba7750d94f9f277073ca08f3d8db9be",
      "tree": "d3853f1dc5f0bd537e49dfe87e1e638ae9124ebd",
      "parents": [
        "46c598461090f42eae1508eda95a96fcecfe8ad5"
      ],
      "author": {
        "name": "Nikolas Klauser",
        "email": "nikolasklauser@berlin.de",
        "time": "Mon Sep 21 12:29:33 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Sep 21 03:41:45 2026 -0700"
      },
      "message": "[Clang] Document when to use ExtWarn and Extension (#223440)\n\nGitOrigin-RevId: 468d2e73112a8e9f5fae4e21ad53526a7dc03262\n"
    },
    {
      "commit": "46c598461090f42eae1508eda95a96fcecfe8ad5",
      "tree": "c369c447a9fd4ed9075106f8b7c79af59d6a9ebc",
      "parents": [
        "92564b5aa80d2901ce115b1adc1afa5557df506d"
      ],
      "author": {
        "name": "Tomohiro Kashiwada",
        "email": "kikairoya@gmail.com",
        "time": "Mon Sep 21 19:06:59 2026 +0900"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Sep 21 03:12:53 2026 -0700"
      },
      "message": "Revert \"[Clang] Warn about ignored dllimport on explicit instantiations\" (#224971)\n\nReverts llvm/llvm-project#191392\n\nCauses wrong warnings on libc++\n(https://github.com/llvm/llvm-project/pull/191392#issuecomment-5752359615).\n\nGitOrigin-RevId: 16ff0ec65655a16f9a01c20d059d1e6ddb27f6b9\n"
    }
  ],
  "next": "92564b5aa80d2901ce115b1adc1afa5557df506d"
}
