)]}'
{
  "log": [
    {
      "commit": "5fe84a281e02b357f262284bb4fe8dea7b2561c9",
      "tree": "eb239be8aa434d6049a1742a7880cae4b0b7e39c",
      "parents": [
        "741984ad7b6684df4954251d548c846fef988730"
      ],
      "author": {
        "name": "Kaviya Rajendiran",
        "email": "67495422+kaviya2510@users.noreply.github.com",
        "time": "Thu Aug 27 12:01:45 2026 +0530"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Aug 26 23:38:04 2026 -0700"
      },
      "message": "[Flang][MLIR] Move setOpenMPIntegerWrapAround function into the OpenMP dialect (#217448)\n\n- Fixed the linker error: `undefined reference\nto\u0027mlir::omp::IntegerWrapAroundAttr::get(mlir::MLIRContext*, bool)\u0027`\nmentioned in mentioned in\n[PR#214165](https://github.com/llvm/llvm-project/pull/214165#issuecomment-5323821248)\nby moving the `setOpenMPIntegerWrapAround(...)` helper function out of\n`flang/Tools/CrossToolHelpers.h` and placed it into the OpenMP dialect\nutilities.\n\nGitOrigin-RevId: e3dade763e9c70e5d14dc2478c2ea9837838ce62\n"
    },
    {
      "commit": "741984ad7b6684df4954251d548c846fef988730",
      "tree": "2a1ebec165359bee2947880ab25fb3da7d5cd594",
      "parents": [
        "f98d069adfd201438b1997c370b664fcc7fcf828"
      ],
      "author": {
        "name": "Christian Ulmann",
        "email": "christianulmann@gmail.com",
        "time": "Thu Aug 27 07:10:09 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Aug 26 22:14:35 2026 -0700"
      },
      "message": "[mlir] Build llvm.mlir.constant attributes from the result type (#218607)\n\nMany conversion patterns created `llvm.mlir.constant` with a value\nattribute whose type does not match the result type. The most common\ncase was pairing an `index`-typed attribute with the converted index\ntype:\n\n```\nllvm.mlir.constant(1 : index) : i64\n```\n\nbut there were also plain width and signedness mismatches, e.g. NVGPU\u0027s\n`makeI64Const` built `i64` constants from `i32` attributes, and the NVVM\n`fdiv` expansion used `ui32` attributes on `i32` values.\n\nTranslation to LLVM IR ignores the attribute type and uses the result\ntype, so the emitted IR was correct, but the attribute type is\nmeaningless in this state and anything that reads it back sees the wrong\ntype. Derive the attribute from the result type in every case; where the\nresult is the converted index type, `LLVM::createIndexAttrConstant` now\ndoes this for all of its callers.\n\nIn `ArithToLLVM`, retype the value attribute when the type converter\nmaps `index` to a different integer type. Two element type changes must\nnot be retyped: the low-precision float types that the converter maps to\na same-width\ninteger keep their float attribute, which `llvm.mlir.constant` accepts\nand takes the float semantics from, and a resource-backed elements\nattribute refers to a blob laid out for its own element type. Anything\nelse is a malformed `arith.constant`, and the match fails rather than\nreinterpreting its value.\n\n`WmmaOpsToNvvm` builds its leading dimension attribute from the `i32`\nresult, so reject a value that does not fit instead of narrowing it\nsilently.\n\nThis is in preparation for verifying that the two types agree.\n\n---------\n\nCo-authored-by: Claude Opus 5 (1M context) \u003cnoreply@anthropic.com\u003e\nGitOrigin-RevId: 325a853c12648a2dce256c31c2da0bded11dd079\n"
    },
    {
      "commit": "f98d069adfd201438b1997c370b664fcc7fcf828",
      "tree": "55bd3da85836ca48197182c6663762b160a20087",
      "parents": [
        "57724929ab551f757c6ff70153234bcc69d853a8"
      ],
      "author": {
        "name": "Yusuke MINATO",
        "email": "minato.yusuke@fujitsu.com",
        "time": "Thu Aug 27 11:34:51 2026 +0900"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Aug 26 19:40:02 2026 -0700"
      },
      "message": "[flang][docs] Mention --driver-mode\u003dflang in FlangDriver.md (#207659)\n\nThis patch adds a description about the `--driver-mode\u003dflang` flag.\nThe behavior will be ensured by #207658.\n\n---------\n\nCo-authored-by: Tarun Prabhu \u003ctarunprabhu@gmail.com\u003e\nGitOrigin-RevId: b6016ef957b11f5003f677ca94bd3652cdfdef19\n"
    },
    {
      "commit": "57724929ab551f757c6ff70153234bcc69d853a8",
      "tree": "7dbb2128dcdd3e73394756b8f5d45b5b5e72899a",
      "parents": [
        "7a51204186db52b09cafc8cf06e9d73aa5f25892"
      ],
      "author": {
        "name": "Mehdi Amini",
        "email": "joker.eph@gmail.com",
        "time": "Thu Aug 27 02:38:43 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Aug 26 17:43:50 2026 -0700"
      },
      "message": "[mlir][IR] Require inherent symbol attributes for Symbol operations (#218920)\n\nRequire SymbolTable operations to implement SymbolOpInterface and store\nsymbol names and visibility as inherent attributes.\n\nAdd missing symbol properties/interfaces to GPU, OpenACC, OpenMP, EmitC,\nand Toy operations, and update affected tests and the GPU Python\nbuilder.\n\nAssisted-by: Codex\nGitOrigin-RevId: 979b722373384babff6ea2befe17c5c1c93b64bd\n"
    },
    {
      "commit": "7a51204186db52b09cafc8cf06e9d73aa5f25892",
      "tree": "8b19905891d7a7c1df4de77161bf3d31ebee33ee",
      "parents": [
        "1322e0462151971b7800f74fe421995a938b1685"
      ],
      "author": {
        "name": "Krzysztof Parzyszek",
        "email": "Krzysztof.Parzyszek@amd.com",
        "time": "Wed Aug 26 15:20:58 2026 -0500"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Aug 26 13:26:25 2026 -0700"
      },
      "message": "[flang][OpenMP] Move definition of WithSource to flang/Parser (#219024)\n\nThis class only needs CharBlock so there is no reason for it to be in\nflang/Semantics.\n\nGitOrigin-RevId: cd786eb787942a6ad5c4ee9aa3419a87550aaa4a\n"
    },
    {
      "commit": "1322e0462151971b7800f74fe421995a938b1685",
      "tree": "0f0952d890c389a13141e930f053e87849f5889f",
      "parents": [
        "668f509ff72e0f639b48251d88f371f1d1bb7c37"
      ],
      "author": {
        "name": "Valentin Clement (バレンタイン クレメン)",
        "email": "clementval@gmail.com",
        "time": "Wed Aug 26 11:43:08 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Aug 26 11:47:26 2026 -0700"
      },
      "message": "[flang][cuda][NFC] Walk fir.call instead of greedy rewrite in CUFFunctionRewrite (#218513)\n\nThe pass only replaces on_device() calls with a constant. The greedy\npattern driver was extra work on every fir.call and also folded the\nsurrounding convert chain. Walk with IRRewriter instead, and check for\nthe i1 constant in the tests.\n\nThis reduce the footprint of the pass especially if there are many\nfir.call ops.\n\nGitOrigin-RevId: 2a697daa2e4a30d702a020edcc9932ca04b88701\n"
    },
    {
      "commit": "668f509ff72e0f639b48251d88f371f1d1bb7c37",
      "tree": "2b173d35ddc414c8d973c661f02eb932f9b2ae56",
      "parents": [
        "f15b9cead46e3e1318607b4ff3d5f1fe78ceda99"
      ],
      "author": {
        "name": "Matsu",
        "email": "47756807+khaki3@users.noreply.github.com",
        "time": "Wed Aug 26 10:00:14 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Aug 26 10:10:08 2026 -0700"
      },
      "message": "[flang] Let -fstack-arrays win over CudaHeapAllocPromotion under mem:unified (#218976)\n\nExample:\n```fortran\nsubroutine foo(n)\n   integer, intent(in) :: n\n   real :: tmp(n)\n```\n\nCompiled with -gpu\u003dmem:unified -fstack-arrays, tmp still ends up in\nmalloc_unified: CudaHeapAllocPromotion marks the allocation\nfir.must_be_heap, which StackArrays then skips, so -fstack-arrays is\nsilently dropped. Under mem:unified the stack is device accessible, so\nthe promotion is a placement choice there. Under mem:managed only the\nmanaged allocator is, so it stays a correctness requirement.\n\nFix: add a stack-arrays option to the pass and skip the promotion when\nit is set and the mode is unified.\nGitOrigin-RevId: bd464debf5613f4852504ae3323269b5b15ceb90\n"
    },
    {
      "commit": "f15b9cead46e3e1318607b4ff3d5f1fe78ceda99",
      "tree": "781ae897cbb956087af45b936a23da03aff7dc0f",
      "parents": [
        "bb6cc2a234289e1d34ff214fe9e419aeee84dabb"
      ],
      "author": {
        "name": "dpalermo",
        "email": "dan.palermo@amd.com",
        "time": "Wed Aug 26 10:42:39 2026 -0500"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Aug 26 08:48:26 2026 -0700"
      },
      "message": "Revert \"[CodeGen] Take the executable stack from a module flag\" (#218964)\n\nReverts llvm/llvm-project#215152\n\nThis change breaks -Wl,-z,execstack for target offload.\n\nGitOrigin-RevId: 8aa53b87070b0ad72ec7de7eef7b4dfbcdd3a8a2\n"
    },
    {
      "commit": "bb6cc2a234289e1d34ff214fe9e419aeee84dabb",
      "tree": "d10c4b047559544e76ad7f1623536759f2cffc10",
      "parents": [
        "c101d5d217ad94e27106b43d4ab0a17638506d61"
      ],
      "author": {
        "name": "Mehdi Amini",
        "email": "joker.eph@gmail.com",
        "time": "Wed Aug 26 16:42:20 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Aug 26 07:48:20 2026 -0700"
      },
      "message": "[mlir][OpenACC][OpenMP] Migrate to use explicit discardable/inherent attribute APIs (#218901)\n\nUse discardable attribute APIs and typed operation accessors throughout\nthe OpenACC and OpenMP dialects, conversions, translation, utilities,\nand tests.\n\nKeep ComputeRegionOp inherent properties in the property dictionary and\ndiscardable attributes in the attribute dictionary.\n\nAssisted-by: Codex\nGitOrigin-RevId: 5d3a3b5023c3c187e2fc91d76695f09b9d7fc4a5\n"
    },
    {
      "commit": "c101d5d217ad94e27106b43d4ab0a17638506d61",
      "tree": "cfe2e4165257dd3c7e7b99d36a808ee16ca1878c",
      "parents": [
        "4ff65c9212d172e2fae30a06cbca875c70509575"
      ],
      "author": {
        "name": "Kareem Ergawy",
        "email": "kergawy@nvidia.com",
        "time": "Wed Aug 26 15:06:07 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Aug 26 06:11:18 2026 -0700"
      },
      "message": "[flang][PFT] Mark ASSIGN\u0027d labels as assigned GO TO targets (#218674)\n\nAn assigned GO TO with an explicit label list only marked the listed\nlabels as branch targets. Lowering is more permissive: genFIR for\nAssignedGotoStmt in flang/lib/Lower/Bridge.cpp builds the switch from\nthe labels ASSIGN\u0027d to the variable and ignores the list.\n\nA construct holding an ASSIGN\u0027d label that the list omits therefore\nlooked wrappable, was placed in an scf.execute_region, and the branch\nthen crossed a region boundary:\n```\n  error: \u0027fir.select\u0027 op branching to block of a different region\n```\nMark both sets so the wrappability analysis sees every escape.\n\nGitOrigin-RevId: b0dc60f01ab0057eea54ce82ab5498118a60567c\n"
    },
    {
      "commit": "4ff65c9212d172e2fae30a06cbca875c70509575",
      "tree": "7a128e59884e16df9783130b104d6bc9ad6229c6",
      "parents": [
        "714dad70f9ebe5eb8391753ff90f4bd06c51e0c3"
      ],
      "author": {
        "name": "Mehdi Amini",
        "email": "joker.eph@gmail.com",
        "time": "Wed Aug 26 01:08:28 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Aug 25 16:14:04 2026 -0700"
      },
      "message": "[MLIR][ODS] Print prop-dict fields with custom printers (#217589)\n\nGenerate a key-value prop-dict printer that dispatches each field to its\nODS printer while retaining attribute conversion for non-compositional\ndefault parsers.\n\nKeep operation-specific property printer hooks ahead of the generated\nimplementation and preserve legacy input compatibility.\n\nSee #155475\n\nAssisted-by: Codex\nGitOrigin-RevId: 3e3927f7166cb02b8abd2a557249dc86c04a266a\n"
    },
    {
      "commit": "714dad70f9ebe5eb8391753ff90f4bd06c51e0c3",
      "tree": "0b9a5a2d2a865be9171417e29c46cf88498d4728",
      "parents": [
        "4ac184478a7d86c0f77d3c554a2580d2680a796e"
      ],
      "author": {
        "name": "Ivan R. Ivanov",
        "email": "iivanov@nvidia.com",
        "time": "Wed Aug 26 00:45:56 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Aug 25 15:51:52 2026 -0700"
      },
      "message": "[flang][nfc] Split out the pre- and post-cfg FIR pipelines (#218778)\n\nSplit the FIR optimization pipeline in its pre- and post-cfg parts and\nexpose the builders so that alternative downstream pipelines can build\naround them.\n\nGitOrigin-RevId: 76f971b1ebb5f1c95bf250e649afafc88d7d9226\n"
    },
    {
      "commit": "4ac184478a7d86c0f77d3c554a2580d2680a796e",
      "tree": "1c19a24b3dbd529c135bcfb62334c910fef71494",
      "parents": [
        "7c63ffbcdd01f632e9983cf5092adc9fbb19a967"
      ],
      "author": {
        "name": "Delaram Talaashrafi",
        "email": "dtalaashrafi@nvidia.com",
        "time": "Tue Aug 25 17:10:56 2026 -0400"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Aug 25 14:18:57 2026 -0700"
      },
      "message": "[flang][OpenACC] Reject valued gang/worker/vector outside kernels (#218695)\n\n`gang(num:)`, `worker(n)`, and `vector(n)` are only valid on a loop\nassociated with kernels, and then only if that kernels construct does\nnot already specify `num_gangs`, `num_workers`, or `vector_length`.\n\nGitOrigin-RevId: 0905c44bf37090473e3ebf97ca6acfca89af5bd7\n"
    },
    {
      "commit": "7c63ffbcdd01f632e9983cf5092adc9fbb19a967",
      "tree": "bdfca11cf33ae15ba1aff20f9e808e2d27738c6f",
      "parents": [
        "21981669b6252fb386cde49ebbfc0c6e3d3c96ac"
      ],
      "author": {
        "name": "Pranav Bhandarkar",
        "email": "pranav.bhandarkar@amd.com",
        "time": "Tue Aug 25 15:58:52 2026 -0500"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Aug 25 14:01:50 2026 -0700"
      },
      "message": "[flang] - Call _FortranAAssignSimple instead of _FortranAAssign for intrinsic-type array assignments (#213705)\n\nThis patch adds support for calling _FortranAAssignSimple, a faster-path\nfor array assignments. `_FortranAAssignSimple` is called when ALL the\nfollowing conditions are true:\n1. Intrinsic element type (not derived type)\n2. Matching ranks (no scalar-to-array broadcasting)\n3. Non-volatile\n4. Not polymorphic\n5. Not explicit-length character\n6. Not temporary LHS\n\nOtherwise, uses `_FortranAAssign` (or specialized variants like\n`_FortranAAssignPolymorphic`, `_FortranAAssignExplicitLengthCharacter`).\n\nThis is the final part of the fix for\nhttps://github.com/llvm/llvm-project/issues/203915\n\n---------\n\nCo-authored-by: Claude Opus 4 (1M context) \u003cnoreply@anthropic.com\u003e\nGitOrigin-RevId: 1fc48e72c0606a14784ca732c0c9b3c9e49e7e87\n"
    },
    {
      "commit": "21981669b6252fb386cde49ebbfc0c6e3d3c96ac",
      "tree": "66b4fc4372d3a939f2728a50a885c43c5e458351",
      "parents": [
        "878be4581b54c43269f94d4d3b868b1ab245e2b1"
      ],
      "author": {
        "name": "Pranav Bhandarkar",
        "email": "pranav.bhandarkar@amd.com",
        "time": "Tue Aug 25 14:50:52 2026 -0500"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Aug 25 12:57:51 2026 -0700"
      },
      "message": "[flang-rt] - Lightweight runtime assignment function (AssignSimple) for intrinsic-type assignments (#213704)\n\nThis PR introduces a lightweight assignment runtime path\n(`_FortranAAssignSimple`) for intrinsic-type arrays with the goal of\nreducing compile-time overhead seen primarily in the form of severly\nincreased time taken by LTO. This PR includes only the changes to the\nruntime (flang-rt) and as such just with this PR compile-time\nimprovements will not be visible.\n\n**Problem**\n\nWhen compiling Fortran code with OpenMP GPU offload and\n`firstprivate(allocatable_array)`, LLVM\u0027s Attributor creates excessive\nabstract attributes analyzing complex runtime assignment machinery:\n\n**Symptom:**\n- **Test case:** 8-element allocatable integer array with `firstprivate`\nclause\n- **Compile time:** 24.97s (vs 0.78s for `private` - **32x slower**)\n- **Root cause:** LLVM Attributor analyzing complex Fortran runtime\nfunctions\n\n**Why this happens:**\n\n1. `firstprivate` requires copying arrays from host to device\n2. Flang generates call to `_FortranAAssign(to_device, from_host)`\n3. LTO pulls in 177 runtime functions from `libflang_rt.runtime.a`\n4. OpenMPOpt/Attributor analyzes all 177 functions, creating **1,041,950\nabstract attributes**\n5. Time spent in OpenMPOpt: **9.75s (39% of total compile time)**\n\n**The core issue:** `_FortranAAssign` handles ALL Fortran assignment\ncases (scalar, array, polymorphic, character, derived type, user-defined\nassignment, aliasing detection, finalization) with **999 basic blocks**\nin a single function. For a trivial integer array copy, this forces the\noptimizer to analyze machinery it will never execute.\n\nFrom Attributor debug output:\n```\n[Attributor] Update: [AAIsDead] for ... at position {fn:_FortranAAssign}\nwith state Live[#BB 1/999][#TBEP 1][#KDE 0]\n                    ^^^\n        999 basic blocks in ONE function!\n```\n\n**Overhead:**\n- **Actually executed at runtime:** ~5-10 functions, ~200 basic blocks\n- **Analyzed at compile-time:** 177 functions, ~1800 basic blocks\n- **Overhead:** **17x-35x more code analyzed than executed**\n\nIntrinsic types never have dynamic components requiring deferred\noperations, so the `WorkQueue` in `_FortranAAssign` is not really\nneeded. Therefore, we split the Fortran assignment runtime API based on\nstatically known information:\n\n**1. `_FortranAAssignSimple` (NEW) - Fast Path**\n- Handles intrinsic type arrays (integer, real, complex, logical)\n- Single `memmove()` for contiguous, element-wise loop for\nnon-contiguous\n- Minimal LTO pull-in (~3-4 functions vs 177)\n- Runtime checks verify correct usage\n\n**2. `_FortranAAssign` (EXISTING) - Complex Path**\n- Handles derived types, polymorphic, character, user-defined assignment\n- Retains full WorkQueue, finalization, aliasing detection machinery\n- Only called when actually needed\n\n`_FortranAAssignSimple` is used when ALL conditions are true:\n1. Intrinsic element type (not derived type)\n2. Matching ranks (no scalar-to-array broadcasting)\n3. Non-volatile\n4. Not polymorphic\n5. Not explicit-length character\n6. Not temporary LHS\n\nThis is a part of the fix for\nhttps://github.com/llvm/llvm-project/issues/203915\n\n---------\n\nCo-authored-by: Claude Opus 4 (1M context) \u003cnoreply@anthropic.com\u003e\nGitOrigin-RevId: 0fcc159d32cf4b26204cec573d015e9040428a63\n"
    },
    {
      "commit": "878be4581b54c43269f94d4d3b868b1ab245e2b1",
      "tree": "fe7d29ac76b9f9c3b608775c609d892291f001ed",
      "parents": [
        "d444c5fa58c9bbde067448a8b839799cdfde3d8f"
      ],
      "author": {
        "name": "Andre Kuhlenschmidt",
        "email": "akuhlenschmi@nvidia.com",
        "time": "Tue Aug 25 11:38:37 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Aug 25 11:43:09 2026 -0700"
      },
      "message": "[flang][openacc] revert stack starting with #211606 (#218741)\n\nThis reverts the following PRs:\n- #211606\n- #218588\n- #218204\nWhich still suffers from a bug of caching invalid results in the expression analyzer.\n\nGitOrigin-RevId: c359fd4979a3144d7fc54bd86198220d9d5f65e7\n"
    },
    {
      "commit": "d444c5fa58c9bbde067448a8b839799cdfde3d8f",
      "tree": "55b24c2dfebf6cd64c5e7498d16a61a55944d049",
      "parents": [
        "b91121dcf33fe449adfed6444ffdaddc0d010812"
      ],
      "author": {
        "name": "Tom Eccles",
        "email": "tom.eccles@arm.com",
        "time": "Tue Aug 25 19:22:40 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Aug 25 11:28:21 2026 -0700"
      },
      "message": "[flang][OpenMP] NFC: Extract intrinsic reduction shadow lookup (#218389)\n\nCentralize lookup of user-defined reductions that shadow supported\nintrinsic procedure reductions. Keep existing behavior while making the\nclassification available to other OpenMP lowering paths.\n\nThis will help with #215997\n\nAssisted-by: Codex\nGitOrigin-RevId: 5d8d47df388d1cde9b24cceece120b172b514f54\n"
    },
    {
      "commit": "b91121dcf33fe449adfed6444ffdaddc0d010812",
      "tree": "c4c975332ab16ccd48a683b0ee63000a62872134",
      "parents": [
        "706c84caa36a25eac2adf32eeb6b48030347ec23"
      ],
      "author": {
        "name": "Andre Kuhlenschmidt",
        "email": "akuhlenschmi@nvidia.com",
        "time": "Tue Aug 25 09:08:15 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Aug 25 09:11:55 2026 -0700"
      },
      "message": "[flang][OpenACC] Allow data action and data-sharing clause overlap (#218588)\n\nThe changes I made in https://github.com/llvm/llvm-project/pull/211606\ndisallowed multiple different data actions clauses to occur on the same\nvariable in the same construct. This PR fixes that mistake reducing the\nonly restriction to multiple different data sharing clauses (and the\nreduction clause) can not be placed on the same object in the same\nconstruct.\n\nGitOrigin-RevId: be99215d89bb2b4e76df420507865ca5b280f972\n"
    },
    {
      "commit": "706c84caa36a25eac2adf32eeb6b48030347ec23",
      "tree": "9efbca3bfbef6505a9a96718b576e21519be6f4e",
      "parents": [
        "319a2e12bce964b99d3d03e748897335235daa2c"
      ],
      "author": {
        "name": "jiel-nv",
        "email": "37816794+jiel-nv@users.noreply.github.com",
        "time": "Tue Aug 25 08:21:50 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Aug 25 08:28:27 2026 -0700"
      },
      "message": "[flang][NFC] Move DebugTypeGenerator.h to the public include directory (#218544)\n\nDebugTypeGenerator converts FIR/MLIR types to DITypeAttr, but its header\nlives next to the pass that uses it, so it cannot be reused by passes\noutside flang/lib/Optimizer/Transforms.\n\nMove it to flang/include/flang/Optimizer/Transforms/ alongside the other\npublic headers, so other consumers can reuse the conversion.\n\nThe header\u0027s file-static getLineFromLoc is moved to\nOptimizer/Support/Utils.h as an fir:: helper.\n\nGitOrigin-RevId: c4900475c0881d1bf9571565c166b03b9230eba3\n"
    },
    {
      "commit": "319a2e12bce964b99d3d03e748897335235daa2c",
      "tree": "849eee9ec17d62891d03b1574e53ff4cfc7ddc27",
      "parents": [
        "963314664813aac2d7106ab1e5848ff803134d87"
      ],
      "author": {
        "name": "Christian Ulmann",
        "email": "christianulmann@gmail.com",
        "time": "Tue Aug 25 15:30:31 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Aug 25 06:40:04 2026 -0700"
      },
      "message": "[flang][CodeGen] Fix element type of folded insert_on_range initializers (#218587)\n\n`GlobalOpConversion` folds a full-range `fir.insert_on_range` into a\ndense constant. When the inserted value comes from a `fir.convert`, the\nfold reached through the conversion and built the dense attribute from\nthe type of the *source* constant. For a `logical(4)` array initialized\nto `.true.` this produced\n\n```\nllvm.mlir.constant(dense\u003ctrue\u003e : vector\u003c32768xi1\u003e) : !llvm.array\u003c32768 x i32\u003e\n```\n\nwhere the attribute element type `i1` disagrees with the result element\ntype `i32`. Translation to LLVM IR ignores the attribute type and uses\nthe result type, so the emitted global is still correct today, but the\nIR is malformed and any consumer that trusts the attribute type sees the\nwrong element width.\n\nBuild the dense attribute from the converted element type instead. A\nlogical conversion normalizes its operand to a canonical 0/1 (see\n`ConvertOpConversion`), so apply the same normalization here; any other\nmismatching conversion is left to the regular lowering.\n\nNote that this is a preparation to strengthen the verifiers of\n`llvm.mlir.constant`.\n\n---------\n\nCo-authored-by: Claude Opus 5 (1M context) \u003cnoreply@anthropic.com\u003e\nGitOrigin-RevId: d767b554ddcb63f0d373757f60fcae57ba8280ba\n"
    },
    {
      "commit": "963314664813aac2d7106ab1e5848ff803134d87",
      "tree": "130277c8c72bec4691b79219c89b68899468bba0",
      "parents": [
        "e57178de01b928500f5a932ab1cb174dba9c7afb"
      ],
      "author": {
        "name": "Christian Ulmann",
        "email": "christianulmann@gmail.com",
        "time": "Tue Aug 25 15:29:20 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Aug 25 06:33:31 2026 -0700"
      },
      "message": "[flang][CodeGen] Use a signless attribute for the addendum flag masks (#218606)\n\nThe descriptor addendum flag masks were built as `ui8` attributes but\nattached to `i8` constants:\n\n```\nllvm.mlir.constant(254 : ui8) : i8\n```\n\nThe LLVM dialect only models signless integers, so the attribute type\nand the result type disagree. Use the signless `i8` type for the\nattribute as well; the bit patterns are unchanged, only their printed\nform is (`254 : ui8` becomes `-2 : i8`).\n\nCo-authored-by: Claude Opus 5 (1M context) \u003cnoreply@anthropic.com\u003e\nGitOrigin-RevId: 864a2667fa515df19614afa15e9a95f46aef081e\n"
    },
    {
      "commit": "e57178de01b928500f5a932ab1cb174dba9c7afb",
      "tree": "a54b243418e5de706dd2ada9a28248b4d93ea389",
      "parents": [
        "045d0a095c9bfae666648127995a725c2fd8b49b"
      ],
      "author": {
        "name": "Abid Qadeer",
        "email": "haqadeer@amd.com",
        "time": "Tue Aug 25 09:35:41 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Aug 25 01:42:33 2026 -0700"
      },
      "message": "[flang][driver] Honour the toolchain default DWARF version (#217610)\n\nThe driver only rendered -dwarf-version\u003d when the user named a version\nexplicitly with -gdwarf-N. With plain -g the option was omitted, and the\nbackend fell back to dwarf::DWARF_VERSION. As a result `flang -g` always\nproduced DWARF 4 while `clang -g` produced the toolchain default for the\nsame target..\n\nThe fix is to generate the \"-dwarf-version\" flag when either the debug\ninformation is enabled or an explicit -gdwarf-N is given.\n\n---------\n\nCo-authored-by: Cursor \u003ccursoragent@cursor.com\u003e\nCo-authored-by: Tarun Prabhu \u003ctarunprabhu@gmail.com\u003e\nGitOrigin-RevId: 142813563ffd0df4293b20eddbef1eb54b6b984f\n"
    },
    {
      "commit": "045d0a095c9bfae666648127995a725c2fd8b49b",
      "tree": "2ae5f34862c370fab43fe26540880ade9cd883ae",
      "parents": [
        "b81f69cf220682bf021f2aeb1462e788186105b0"
      ],
      "author": {
        "name": "Kareem Ergawy",
        "email": "kergawy@nvidia.com",
        "time": "Tue Aug 25 06:47:19 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Aug 24 21:51:51 2026 -0700"
      },
      "message": "[flang] Do not branch to a FORMAT statement from an assigned GO TO (#217220)\n\nLabel analysis already classifies which labeled statements may be named\nby a statement that branches. Record the positions of those statements\nin the semantics context and consult it when lowering records the\ntargets of an assigned GO TO, so that a FORMAT statement is not given a\ntarget block.\n\nA GO TO whose variable holds only a format label now reaches the\nrun-time error instead of branching into the FORMAT statement.\n\nCo-Authored-By: Claude\n\n---------\n\nCo-authored-by: Claude Opus 5 (1M context) \u003cnoreply@anthropic.com\u003e\nGitOrigin-RevId: a8be9a553145c48fb3beda0d4604ae750d42d32c\n"
    },
    {
      "commit": "b81f69cf220682bf021f2aeb1462e788186105b0",
      "tree": "ed28d18a1e62e410f6feaebf67ce91e389b267e1",
      "parents": [
        "90bf1590c1bd867c6f06a635f00c34cbc496ebbf"
      ],
      "author": {
        "name": "Caroline Newcombe",
        "email": "caroline.newcombe@hpe.com",
        "time": "Mon Aug 24 16:11:52 2026 -0400"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Aug 24 13:16:40 2026 -0700"
      },
      "message": "[flang] Extend LICM cheap nested hoisting to scalar loads (#217616)\n\nAdmit fir.address_of and scalar loads in the \"cheap\" nested-region\nhoisting mode, which previously admitted only fir.convert. Loads are\nlimited to trivial non-vector types and to descriptors of known rank,\nsince vector loads may be wide and an assumed-rank descriptor load\nbecomes a runtime-sized descriptor copy. This is a cost heuristic change; both\nmodes share `shouldMoveFromNestedRegion`, so the safety conditions are\n\nAdmit fir.address_of and loads of trivial and descriptor types in the\n\"cheap\" nested-region hoisting mode, which previously admitted only\nfir.convert. This is a cost heuristic change; both modes share\n`shouldMoveFromNestedRegion`, so the safety conditions are unchanged.\n\nTest added to `flang/test/Transforms/licm.fir` cover the newly added\ncases (scalar, global scalar, descriptor) and the boundary: derived-type\nand vector loads are not hoisted, a volatile scalar load stays\nconditional, and a global scalar read inside an OpenMP worksharing\nregion moves out of the inner serial loop while remaining inside\n`omp.loop_nest`.\n\nThe pass is currently off by default, but if enabled, this patch\naddresses #110613 and is an intermediate step required for vectorization\nin #208086.\n\nGitOrigin-RevId: d61e867a780ecd9a5dfc012f2e6c628d3f1c30ee\n"
    },
    {
      "commit": "90bf1590c1bd867c6f06a635f00c34cbc496ebbf",
      "tree": "30d7fd8edf4d0d08501ee23d29f83382eaf1462a",
      "parents": [
        "d4451234a487844027c9a8f150561f84e8d3a917"
      ],
      "author": {
        "name": "Abid Qadeer",
        "email": "haqadeer@amd.com",
        "time": "Mon Aug 24 16:55:56 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Aug 24 09:04:43 2026 -0700"
      },
      "message": "[flang][debug] Don\u0027t ask for a name table with -gline-directives-only (#218402)\n\nOn current main (since #217132), a unit built with\n`-gline-directives-only` crashes the backend when DWARF 5 is requested:\n\n```console\n$ echo \u0027end program\u0027 \u003e test.f90\n$ flang -gdwarf-5 -gline-directives-only -S -o /dev/null test.f90\nflang: llvm/lib/CodeGen/AsmPrinter/DwarfUnit.h:107:\nllvm::MCSymbol *llvm::DwarfUnit::getLabelBegin() const:\nAssertion `LabelBegin \u0026\u0026 \"LabelBegin is not initialized\"\u0027 failed.\n```\n\nThe version has to be spelled out because flang does not yet default to\nDWARF 5. Everything else about the command line is ordinary.\n\nSuch a unit emits line directives and no `.debug_info`, so the header of\nits compile unit is never written and neither is the label that header\ndefines. Under DWARF 5 the accelerator table indexes every compile unit\nwhose `nameTableKind` is `Default` and refers to that label, which is\nwhat trips the assertion.\n\nThis patch leaves the name table off for that emission kind, as clang\ndoes. Nothing is lost, as the unit has no `.debug_info` for a name table\nto point into.\n\nflang gained `-gline-directives-only` in #217132; before that the driver\nrejected the option with a warning, so `DebugDirectivesOnly` never\nreached this pass and the combination was unreachable.\n\nCo-authored-by: Cursor \u003ccursoragent@cursor.com\u003e\nGitOrigin-RevId: 35efd5d809c96281f3ffbb8513cbeb01df20c79a\n"
    },
    {
      "commit": "d4451234a487844027c9a8f150561f84e8d3a917",
      "tree": "9ad5b34ec6249a2804e021c6179e712b15a50ac6",
      "parents": [
        "000c39cb97a87631c7afdf7e02cc2190cd94679d"
      ],
      "author": {
        "name": "shivaramaarao",
        "email": "58245296+shivaramaarao@users.noreply.github.com",
        "time": "Mon Aug 24 20:48:12 2026 +0530"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Aug 24 08:24:52 2026 -0700"
      },
      "message": "[OpenMP][Flang] Add integer-kind wrappers to omp_lib (#213505)\n\nMany OpenMP routines in omp_lib currently accept only\ninteger(kind\u003domp_integer_kind) arguments, where omp_integer_kind maps to\nc_int. As a result, Flang\u0027s type checking rejects calls that pass\ninteger(1), integer(2), or integer(8) arguments. To improve\ncompatibility, wrapper procedures have been added in the omp_lib module\nfor applicable routines, enabling support for integer(1), integer(2),\ninteger(4), and integer(8) argument types. The interfaces are added in\nomp_lib module and the implementations are part of omp_lib_impl sub\nmodule.\n\nSimilar changes are required in omp_lib.h and will be addressed in a\nseparate pull request.\n\nFixes #123948.\n\nAssisted-by: Cursor\n\nCo-authored-by: Cursor \u003ccursoragent@cursor.com\u003e\nGitOrigin-RevId: 01079d2605aabd0beccecb270f51d40119422f04\n"
    },
    {
      "commit": "000c39cb97a87631c7afdf7e02cc2190cd94679d",
      "tree": "05a80b502386e8b1989467d1f5cd1047d15912dd",
      "parents": [
        "99d35847447c27b2d889a874858164f06d4d0408"
      ],
      "author": {
        "name": "Krzysztof Parzyszek",
        "email": "Krzysztof.Parzyszek@amd.com",
        "time": "Mon Aug 24 10:09:34 2026 -0500"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Aug 24 08:12:50 2026 -0700"
      },
      "message": "[OpenMP][flang] Use auto-generated data for modifier verification (#215648)\n\nIntroduce descriptors of OpenMP clauses and modifiers, auto-generated\nfrom OpenMP specification data[*].\n\nThis replaces the preexisting modifier descriptors used in flang, the\ncode using it is adjusted to use the new definitions.\n\n[*] This does not contain any actual auto-generation infrastructure. The\ndescriptors were generated by a custom script from the exported OpenMP\ndefinitions.\n\nGitOrigin-RevId: 7d1bd911e6218b4e02bb813251849d75be9b68f7\n"
    },
    {
      "commit": "99d35847447c27b2d889a874858164f06d4d0408",
      "tree": "ae2f9f488cc6117a92a8c85913787b854df49abe",
      "parents": [
        "dc13c36f8ad3862832c3663ef59128ba5e154f61"
      ],
      "author": {
        "name": "Kareem Ergawy",
        "email": "kergawy@nvidia.com",
        "time": "Mon Aug 24 06:31:05 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Sun Aug 23 21:36:30 2026 -0700"
      },
      "message": "[flang] Record the position of a labeled program-unit END statement (#217842)\n\nThe END statement of a program unit is visited in advance, before the\nstatement visitor has moved its current position onto it, so the\nposition recorded for a label on that statement was whatever statement\ncame last -- a null source position for the first program unit in a\nfile, and the preceding unit\u0027s position for the others. Pass the\nstatement position to AddTargetLabelDefinition explicitly instead of\nreading it from the visitor.\n\nA diagnostic anchored on such a label had no location to report:\n```fortran\n  subroutine s(j)\n    integer :: j\n    write(*,fmt\u003d40)\n    go to j\n  40 end subroutine\n```\nbefore:\n```bash\n  error: \u002740\u0027 not a FORMAT\n  single.f90:3:3: data transfer use of \u002740\u0027\n```\nafter:\n```bash\n  single.f90:5:1: error: \u002740\u0027 not a FORMAT\n    40 end subroutine\n    ^^^^^^^^^^^^^^^^^\n  single.f90:3:3: data transfer use of \u002740\u0027\n```\n\nCo-Authored-By: Claude\n\n---------\n\nCo-authored-by: Claude Opus 5 (1M context) \u003cnoreply@anthropic.com\u003e\nGitOrigin-RevId: 37a8aae89609ee64d4f307bd54facdf7f6c37ef0\n"
    },
    {
      "commit": "dc13c36f8ad3862832c3663ef59128ba5e154f61",
      "tree": "375a04b8f198c91d1f2be3d6f6e55f4afd1a3c03",
      "parents": [
        "b9c571e048999a93fd2d969bbeedab78c4d8ee15"
      ],
      "author": {
        "name": "Andre Kuhlenschmidt",
        "email": "akuhlenschmi@nvidia.com",
        "time": "Sat Aug 22 23:19:43 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Sat Aug 22 23:26:41 2026 -0700"
      },
      "message": "[flang][test] Link designator-path test with FortranParser (#218204)\n\nThis is the missing build dependency that wasn\u0027t added to\nhttps://github.com/llvm/llvm-project/pull/211606.\nIt should resolve a some of the build bot failures that have been\nreported there.\n\nGitOrigin-RevId: acddcda77d5d9470ead6fd172d4b658d8fdfa191\n"
    },
    {
      "commit": "b9c571e048999a93fd2d969bbeedab78c4d8ee15",
      "tree": "aa5b87bd0c7d728e87006bf4edae66005c823ec9",
      "parents": [
        "64f94c6171cfc6b2a100b2d7e411dee955dd9258"
      ],
      "author": {
        "name": "Andre Kuhlenschmidt",
        "email": "akuhlenschmi@nvidia.com",
        "time": "Fri Aug 21 18:22:34 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Aug 21 18:27:43 2026 -0700"
      },
      "message": "[Flang] Repair intrinsic CUBLAS USE association (#217455)\n\nThis is a fix targeted at the specific code berkeleygw. It adds a\ngeneral extension by which imports of intrinsic functions can shadow\nimported user functions and adds a single exception for CUBLAS `zgemm`\nUSE-association collision with an equivalent user external interface.\n\nWhen the intrinsic CUBLAS generic and an equivalent external interface\nare USE-associated under the same name, Flang now selects the CUBLAS\ngeneric via a default-on compatibility extension. This preserves the\nCUBLAS CUDA-specific overloads instead of creating an unusable local\nassociation.\n\nThe repair warns by default under\n`-Wintrinsic-module-use-association-extension`;\n`-fno-intrinsic-module-use-association` retains the prior semantic\nerror, and `-Wno-intrinsic-module-use-association-extension` suppresses\nthe warning.\n\nGitOrigin-RevId: dafb6eebc1627805a9f697b40dff604f4875e7ec\n"
    },
    {
      "commit": "64f94c6171cfc6b2a100b2d7e411dee955dd9258",
      "tree": "f275071dfa0c36fa6eadff8c8406e118472879f7",
      "parents": [
        "8b710e458bec180db027956eb169b95c0d08c0fd"
      ],
      "author": {
        "name": "Andre Kuhlenschmidt",
        "email": "akuhlenschmi@nvidia.com",
        "time": "Fri Aug 21 17:25:39 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Aug 21 17:31:54 2026 -0700"
      },
      "message": "[semantics][acc] start handling clauses that use sections and components (#211606)\n\n## Motivation\nThe current implementation of checking OpenACC data sharing clauses and\nreferences is rather adhoc because the machinery could was only designed\nto keep track of a single identifier. Sections currently track the base\nobject to which the refer while component reference throw away their\ndeclared object. Duplicate / contradictory clause checking also has\nsimilar issues. For example:\n\n```fortran\nsubroutine outside_copied_section()\n  implicit none\n  real :: a(3)\n  !$acc parallel default(none) copy(a(1:2))\n    a(2) \u003d -1.0\n    a(3) \u003d 1.0\n    a(1) \u003d a(2) + a(3)\n  !$acc end parallel\nend subroutine\nsubroutine wrong_copied_component()\n  implicit none\n  type :: t\n    integer :: x\n    integer :: y\n  end type\n  type(t) :: a\n  integer :: s\n  !$acc parallel default(none) copy(a%x, s)\n    a%x \u003d 1\n    a%y \u003d 2\n    s \u003d a%x + a%y\n  !$acc end parallel\nend subroutine\n```\n\nbefore this PR:\n```\n$ flang -fc1 -fopenacc example.f90\nerror: Semantic errors in /home/akuhlenschmi/work/tmp/openacc-simple-default-none-repros.f90\n/home/akuhlenschmi/work/tmp/openacc-simple-default-none-repros.f90:29:5: error: The DEFAULT(NONE) clause requires that \u0027a\u0027 must be listed in a data-mapping clause\n      a%x \u003d 1\n      ^\n/home/akuhlenschmi/work/tmp/openacc-simple-default-none-repros.f90:30:5: error: The DEFAULT(NONE) clause requires that \u0027a\u0027 must be listed in a data-mapping clause\n      a%y \u003d 2\n      ^\n/home/akuhlenschmi/work/tmp/openacc-simple-default-none-repros.f90:31:9: error: The DEFAULT(NONE) clause requires that \u0027a\u0027 must be listed in a data-mapping clause\n      s \u003d a%x + a%y\n          ^\n/home/akuhlenschmi/work/tmp/openacc-simple-default-none-repros.f90:31:15: error: The DEFAULT(NONE) clause requires that \u0027a\u0027 must be listed in a data-mapping clause\n      s \u003d a%x + a%y\n```\n\n## Purpose\nThis PR adds machinery to start reasoning about designators in clauses\nin a more principled fashion and makes some roads into cleaning up the\nchecking for both whether a reference is contained by some clause in the\ncurrent scope and whether or not clauses overlap.\n\nafter this PR:\n\n```\n$ flang -fc1 -fopenacc example.f90\nerror: Semantic errors in /home/akuhlenschmi/work/tmp/openacc-simple-default-none-repros.f90\n/home/akuhlenschmi/work/tmp/openacc-simple-default-none-repros.f90:8:5: error: The DEFAULT(NONE) clause requires that \u0027a\u0027 must be listed in a data-mapping clause\n      a(3) \u003d 1.0\n      ^\n/home/akuhlenschmi/work/tmp/openacc-simple-default-none-repros.f90:9:19: error: The DEFAULT(NONE) clause requires that \u0027a\u0027 must be listed in a data-mapping clause\n      a(1) \u003d a(2) + a(3)\n                    ^\n/home/akuhlenschmi/work/tmp/openacc-simple-default-none-repros.f90:30:5: error: The DEFAULT(NONE) clause requires that \u0027a\u0027 must be listed in a data-mapping clause\n      a%y \u003d 2\n      ^\n/home/akuhlenschmi/work/tmp/openacc-simple-default-none-repros.f90:31:15: error: The DEFAULT(NONE) clause requires that \u0027a\u0027 must be listed in a data-mapping clause\n      s \u003d a%x + a%y\n```\n\nKeeping track of the full designator that was used in the clause list\nrequires comparison of designators, but designators are suffix-first\nstructures which leads to an awkward formulation of comparison. This PR\nadds some abstraction (`DesignatorPath`) for reasoning about designator\ncontainment.\n\nGitOrigin-RevId: 05486e3049ba8666287794fc7d4f9780edf702e9\n"
    },
    {
      "commit": "8b710e458bec180db027956eb169b95c0d08c0fd",
      "tree": "22b60e8ac2131e4e6a0773fa87d8f64833bbc48d",
      "parents": [
        "9a6d8eea2b0c327d2dae088e9c654998cb029228"
      ],
      "author": {
        "name": "Andre Kuhlenschmidt",
        "email": "akuhlenschmi@nvidia.com",
        "time": "Fri Aug 21 16:13:25 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Aug 21 16:18:54 2026 -0700"
      },
      "message": "[flang][CUDA] Preserve data attrs on assignment RHS (#207849)\n\nBackground: The Fortran standard enforces that the right hand side of a\ndefined assignment be treated as a value by parenthesizing the rhs in\nthe defined assingment translation: `lhs \u003d rhs` is semantically\nequivalent to `user_defined_assignment(lhs, (rhs))`. This would normally\nprevent generic resolution from distinguishing defined assignment\nprocedures based on the variable attributes of any variable used as\n`rhs` because the `(rhs)` has no variable attributes.\n\nCuda Fortran relies on Variable Attributes to track the location of data\nbetween the host and the device. This PR suppresses the parenthesis\ninsertion during procedure lowering in order to allow overloading\nassignment based on device variable attributes of the right hand side\nvariable. It also bypasses some semantic enforcement of user-defined\nassignements that is happening at the HLFIR level by lowering the\nassignment to a function call of the defined assignment subroutine\ninstead of a `hlfir.region_assign` operator.\n\nGitOrigin-RevId: a57dd60f873722478f8da5eed80d92cb731fdd1e\n"
    },
    {
      "commit": "9a6d8eea2b0c327d2dae088e9c654998cb029228",
      "tree": "404097e348a5484fb520c3c3934fc15c7f41d413",
      "parents": [
        "44f4e9c648716b8523ad76287c72b75c7450efcf"
      ],
      "author": {
        "name": "Leandro Lupori",
        "email": "leandro.lupori@linaro.org",
        "time": "Fri Aug 21 15:52:43 2026 -0300"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Aug 21 11:56:37 2026 -0700"
      },
      "message": "[flang][OpenMP] Allow 0 after directive sentinels (#217124)\n\nFixes #199877\n\nGitOrigin-RevId: 22b52ce03edf197019a1b137d9cec2a80fa90ff6\n"
    },
    {
      "commit": "44f4e9c648716b8523ad76287c72b75c7450efcf",
      "tree": "7af3d3cd3ea6c8626d57a060c37dd071d740b542",
      "parents": [
        "fc0fa4ad892a605456a70194de85e20d038de4a2"
      ],
      "author": {
        "name": "Valentin Clement (バレンタイン クレメン)",
        "email": "clementval@gmail.com",
        "time": "Fri Aug 21 10:36:28 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Aug 21 10:42:37 2026 -0700"
      },
      "message": "[flang][openacc] Recurse into OpenACC constructs when matching labeled DO (#217984)\n\nGetFinalLabel() already walked an OpenACC loop or combined construct to\nfind a shared terminating label, but the Block walker did not recurse\ninto nested OpenACC constructs. Three labeled DO loops that share one\nterminator, each associated with its own !$acc loop, then failed with\n\"Label is not in DO loop scope\".\n\nLook through OpenACCConstruct in GetFinalLabel(const Block \u0026) the same\nway OpenMP constructs are already handled.\n\nGitOrigin-RevId: 8fb6d49bd16203c594b37d72e799090444e52cbd\n"
    },
    {
      "commit": "fc0fa4ad892a605456a70194de85e20d038de4a2",
      "tree": "739044f0731c9ccd47aee1947b70b4e8f82b7724",
      "parents": [
        "ef158d06e82994c4224e660fe5417f8d738e9bbf"
      ],
      "author": {
        "name": "Ville-Markus Yli-Suutala",
        "email": "ville-markus.yli-suutala@helsinki.fi",
        "time": "Fri Aug 21 20:34:13 2026 +0300"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Aug 21 10:38:20 2026 -0700"
      },
      "message": "[flang] Support -gline-directives-only (#217132)\n\nDo the same as -gline-tables-only but set DIEmissionKind to DebugDirectivesOnly instead of LineTablesOnly.\n\nGitOrigin-RevId: 4275b0160dfce839fca1fb9fd6852409673a9fbd\n"
    },
    {
      "commit": "ef158d06e82994c4224e660fe5417f8d738e9bbf",
      "tree": "06b9359d79d3a3df3ab3e7e637926468afebab01",
      "parents": [
        "31adc9dccba5bb8d768d637b5546a519835f6942"
      ],
      "author": {
        "name": "Tom Eccles",
        "email": "tom.eccles@arm.com",
        "time": "Fri Aug 21 09:59:09 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Aug 21 02:02:15 2026 -0700"
      },
      "message": "[flang][Lower] Reassociate nested assignment sums (#217287)\n\nPart 6/6 of generalisations requested in #207377\n\nSearch eligible assignment RHS expressions top-down for scalar REAL\nand COMPLEX additive spines. Rewrite a qualifying node once; otherwise\nrecurse through ordinary operations, conversions, conditional wrappers,\nand separate arguments of pure calls. Preserve effect-sensitive\nboundaries.\n\nThere is no known effect on benchmark results as a result of this patch.\n\nAssisted-by: Codex\nGitOrigin-RevId: d831145994ab77154818da7a67edf2c24b94b5eb\n"
    },
    {
      "commit": "31adc9dccba5bb8d768d637b5546a519835f6942",
      "tree": "d65d3bdee17989be3e20faeef7f0347f8dee7a63",
      "parents": [
        "9fc04fab171b88a6b75216f6e0fb559bf092ce44"
      ],
      "author": {
        "name": "Deepak Eachempati",
        "email": "deepak.eachempati@hpe.com",
        "time": "Thu Aug 20 15:55:15 2026 -0600"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Aug 20 15:02:41 2026 -0700"
      },
      "message": "[Flang][OpenMP] add more OpenMP support entries and status updates (#212889)\n\nThis adds a feature table for OpenMP 4.5 to the Flang OpenMP support\npage, and also updates various entries (PR links, status, Claimed By\ncolumn for some in progress features, Notes).\n\nGitOrigin-RevId: 49291a6d71312d5441b22ade1112e1f0ac821d50\n"
    },
    {
      "commit": "9fc04fab171b88a6b75216f6e0fb559bf092ce44",
      "tree": "14315a2b90a63181dd94d0f09b675d369d540798",
      "parents": [
        "c9b9c6543e9b0fbd408131acd4aefb04747fc5c5"
      ],
      "author": {
        "name": "Valentin Clement (バレンタイン クレメン)",
        "email": "clementval@gmail.com",
        "time": "Thu Aug 20 14:24:58 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Aug 20 14:31:18 2026 -0700"
      },
      "message": "[flang][openacc] Fix nested labeled DO loops sharing a terminator (#217705)\n\nWhen an OpenACC loop construct is associated with a non-block labeled\nDO, GetFinalLabel() did not look through that construct. Nested DO\nstatements that share a terminating label then failed with \"Label is\nnot in DO loop scope\".\nWalk the associated loop of OpenACC loop and combined constructs so the\nshared label still closes the outer DO.\n\nGitOrigin-RevId: f5d2953efab963799954d4002f70ba3d56bcb4a9\n"
    },
    {
      "commit": "c9b9c6543e9b0fbd408131acd4aefb04747fc5c5",
      "tree": "27a8115c6d8a6d50cd44dc9bca4d36de338acee7",
      "parents": [
        "4602fdc93d99fe94d4dce041d45e414bff915157"
      ],
      "author": {
        "name": "Krzysztof Parzyszek",
        "email": "Krzysztof.Parzyszek@amd.com",
        "time": "Thu Aug 20 14:47:54 2026 -0500"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Aug 20 12:52:15 2026 -0700"
      },
      "message": "[flang][OpenMP] Switch AdjustOp to use modifier infrastructure (#217660)\n\nThis will make a subject to automatic modifier validation in the future.\n\nGitOrigin-RevId: bc28e96978f94f6b10787db295b7116dc171d94f\n"
    },
    {
      "commit": "4602fdc93d99fe94d4dce041d45e414bff915157",
      "tree": "3b542a7851b52a2546b6db20f35956fb2f73485d",
      "parents": [
        "90493da4ccc8594fa740b86a836edef3bd709ae2"
      ],
      "author": {
        "name": "Matsu",
        "email": "47756807+khaki3@users.noreply.github.com",
        "time": "Thu Aug 20 12:24:47 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Aug 20 12:32:37 2026 -0700"
      },
      "message": "Reland \"[flang][FIRToSCF] Recompute a typed induction variable in closed form (#217051)\" (#217696)\n\nReverts llvm/llvm-project#217654\n\nThe original PR revealed a bug in our internal project, which is already\nfixed. Reland it without any change.\n\nGitOrigin-RevId: 419908dd2ed60bf19666de2d9b4a896daf41debb\n"
    },
    {
      "commit": "90493da4ccc8594fa740b86a836edef3bd709ae2",
      "tree": "8e5737e24771b86828792a4d2f67f2624459dcf6",
      "parents": [
        "86e0f2aa2de016982518c776be3305ad71ec4fb7"
      ],
      "author": {
        "name": "Krzysztof Parzyszek",
        "email": "Krzysztof.Parzyszek@amd.com",
        "time": "Thu Aug 20 13:55:51 2026 -0500"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Aug 20 12:01:41 2026 -0700"
      },
      "message": "[flang][OpenMP] Switch SOURCE/SINK to use modifier infrastructure (#217644)\n\nThey are instances of the dependence-type modifier in the spec. Putting\nthem into the modifier infrastructure in the compiler will remove the\nneed for them to be validated by hand in the future.\n\nGitOrigin-RevId: a97afdec500cdaed1adaf6adc1ac1eba71570e83\n"
    },
    {
      "commit": "86e0f2aa2de016982518c776be3305ad71ec4fb7",
      "tree": "2e89daa0dcfa8a603587c3439d2346e72556233b",
      "parents": [
        "161df8ff64e68964221b8954f5946e4d2499aa93"
      ],
      "author": {
        "name": "agozillon",
        "email": "Andrew.Gozillon@amd.com",
        "time": "Thu Aug 20 20:07:34 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Aug 20 11:11:17 2026 -0700"
      },
      "message": "[Flang][OpenMP] Stop emitting implicit mappers for allocatable derived types (and arrays of them) unconditionally (#216184)\n\nWe should not be emitting these implicit mappers at the top level if the\ncontents of the derived type do not require mapping of allocatables. If\nwe do this, we negatively impact performance with unneccessary maps, in\ncertain cases (array of structs) this can be quite significant.\n\nGitOrigin-RevId: cb0fb6c8fc2333cd336d3e39f1727f6ffc40c1e3\n"
    },
    {
      "commit": "161df8ff64e68964221b8954f5946e4d2499aa93",
      "tree": "53f5ad1b8c2608c57d1bc70830a178e29edab7eb",
      "parents": [
        "879c2ba300ce3a2f9b2b31bb1dfdb3f7301e6231"
      ],
      "author": {
        "name": "Matsu",
        "email": "47756807+khaki3@users.noreply.github.com",
        "time": "Thu Aug 20 09:03:09 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Aug 20 09:09:25 2026 -0700"
      },
      "message": "[flang][cuda] Route dynamic autos through malloc_unified/free_unified (#212965)\n\nExample:\n```fortran\nsubroutine work(n)\n  integer :: n\n  real :: a(n)\n  call compute(a)\nend subroutine\n```\n\nIn this code, `a` is an automatic array placed on the stack. Under\n`-gpu\u003dmem:unified|managed` it must come from the unified/managed\nallocator\nentry points instead. Renaming every host malloc/free in the module\nwould be\nunsafe: `fir.freemem` also releases buffers the Fortran runtime\nallocated with\nlibc malloc (transformational intrinsic results, polymorphic\ntemporaries), and\ninline ALLOCATE memory can be released by the runtime.\n\nFix: record the mode on the module at lowering; in the allocation\nplacement\npasses, move named dynamic-size locals of host functions to\n`fir.allocmem`/`fir.freemem` pairs marked with that mode; lower only\nmarked\npairs to those entry points, so runtime-allocated memory keeps libc\nfree.\nDevice code, compiler temporaries, and unmarked allocations are\nunaffected.\nGitOrigin-RevId: cd1b0d94cd58b21224bffe86d77fd6c6fdc5e371\n"
    },
    {
      "commit": "879c2ba300ce3a2f9b2b31bb1dfdb3f7301e6231",
      "tree": "c03cd9ef661f781d0b32439e9300d6a9e5b0e58c",
      "parents": [
        "f74b056627819533d84dc1f7a7c27aa42dde9d36"
      ],
      "author": {
        "name": "Kareem Ergawy",
        "email": "kergawy@nvidia.com",
        "time": "Thu Aug 20 17:44:27 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Aug 20 08:47:55 2026 -0700"
      },
      "message": "Revert \"[flang][FIRToSCF] Recompute a typed induction variable in closed form (#217051)\" (#217654)\n\nThis reverts commit de79344abe04cab8fe538cdd0f975f78d941cd24.\n\nThis caused regressions in some internal tests, so reverting for now.\n\nGitOrigin-RevId: 60faf067b9fdacf09c8de10c7a90a9c8ea7d4033\n"
    },
    {
      "commit": "f74b056627819533d84dc1f7a7c27aa42dde9d36",
      "tree": "db2f28e9cbdb65d305b3003d438bf2af01eb4518",
      "parents": [
        "8fe7c7a9059141c5591447fdf65448c61eeb06e0"
      ],
      "author": {
        "name": "Tom Eccles",
        "email": "tom.eccles@arm.com",
        "time": "Thu Aug 20 15:58:29 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Aug 20 08:02:01 2026 -0700"
      },
      "message": "[flang][Lower] Reassociate sums containing pure calls (#217286)\n\nPart 5/6 of generalisations requested in #207377\n\nAllow pure procedure references to remain opaque terms while splitting\nan additive expression. Continue rejecting impure calls and expressions\nthat reference volatile or asynchronous objects.\n\nThere are no known effects on benchmark scores as a result of this\npatch.\n\nAssisted-by: Codex\n\n---\n\n\u003csub\u003eStack created with \u003ca\nhref\u003d\"https://github.com/github/gh-stack\"\u003eGitHub Stacks CLI\u003c/a\u003e • \u003ca\nhref\u003d\"https://gh.io/stacks-feedback\"\u003eGive Feedback 💬\u003c/a\u003e\u003c/sub\u003e\nGitOrigin-RevId: a40e2dbae993214327414dee0f94271ef63f87f7\n"
    },
    {
      "commit": "8fe7c7a9059141c5591447fdf65448c61eeb06e0",
      "tree": "3ecc91fbad61c1fd20877fc923705b745db888ca",
      "parents": [
        "66f8d7053c96e84e1cdd43710cde875f9773c433"
      ],
      "author": {
        "name": "Mehdi Amini",
        "email": "joker.eph@gmail.com",
        "time": "Thu Aug 20 16:19:29 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Aug 20 07:26:12 2026 -0700"
      },
      "message": "[MLIR][OpenACC] Enable strict property assembly format (#217298)\n\nGitOrigin-RevId: 4e9e83400a5702059c8a18e2fb6174038875e8a6\n"
    },
    {
      "commit": "66f8d7053c96e84e1cdd43710cde875f9773c433",
      "tree": "73201d0d6e7d425e21ded38d247516d7cc4065bf",
      "parents": [
        "5eebd5e02acd1712e6361e50a8217f8004877ec2"
      ],
      "author": {
        "name": "Matt Arsenault",
        "email": "Matthew.Arsenault@amd.com",
        "time": "Thu Aug 20 14:28:39 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Aug 20 05:32:04 2026 -0700"
      },
      "message": "clang: Start using new amdgpu subarch triples (#206482)\n\nGitOrigin-RevId: c0125a7bf833b6cf0d5b4a085b63094e0893c85a\n"
    },
    {
      "commit": "5eebd5e02acd1712e6361e50a8217f8004877ec2",
      "tree": "ccf760ea021cc166e88a3deaee4faa68c4499323",
      "parents": [
        "38801c0536581fc56ebe0025910f15d091193d79"
      ],
      "author": {
        "name": "Sergio Afonso",
        "email": "safonsof@amd.com",
        "time": "Thu Aug 20 11:30:57 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Aug 20 03:33:52 2026 -0700"
      },
      "message": "[Flang] Move integration Lit tests to the right directory, NFC (#215536)\n\nFlang unit tests that involve multiple stages of the compiler are\nintended to be placed in flang/test/Integration. However, many existing\nunit tests meeting this condition are currently located in the Lower\nsubdirectory.\n\nThis patch moves all tests in Lower that emit LLVM IR from Fortran or\nrun the FIR MLIR lowering pipeline via `tco` to Integration, and adds\nthe corresponding notice at the top of each file.\n\nAssisted-by: Claude Opus 4.8.\nGitOrigin-RevId: cfb17eb334170a548e6d841393129025f9420dc9\n"
    },
    {
      "commit": "38801c0536581fc56ebe0025910f15d091193d79",
      "tree": "c44d0daed60ad171e3e7f5899378d5d79bdacb8d",
      "parents": [
        "034855e32cd539a2dca77303fae78175ed20d923"
      ],
      "author": {
        "name": "Abid Qadeer",
        "email": "haqadeer@amd.com",
        "time": "Thu Aug 20 09:57:38 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Aug 20 02:02:11 2026 -0700"
      },
      "message": "[flang][debug] Use lowercase name for the main program. (#217340)\n\nSince #149169, the main program symbol name is uppercased in the cooked\ncharacter stream so that it cannot clash with any other symbol. That\nmade DW_AT_name for the main program uppercase, unlike every other\nfunction, which is emitted in lowercase.\n\nRoute the main program through fir::getPresentableFunctionName(), which\nalready undoes this for diagnostics and remarks, so the PROGRAM name is\nspelled the same way as all the other names.\n\nFixes #205868\n\n---------\n\nCo-authored-by: Cursor \u003ccursoragent@cursor.com\u003e\nGitOrigin-RevId: 1ba2f495294571c385a3ad61e508545bc6b3c568\n"
    },
    {
      "commit": "034855e32cd539a2dca77303fae78175ed20d923",
      "tree": "9de02d5c8b81d82bf5f38eca51ee1fad73facd99",
      "parents": [
        "40aea144187288f0263f6dbf668de779a8c61d80"
      ],
      "author": {
        "name": "Tom Eccles",
        "email": "tom.eccles@arm.com",
        "time": "Thu Aug 20 09:54:01 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Aug 20 01:57:24 2026 -0700"
      },
      "message": "[flang][Lower] Reassociate sums before kind conversion (#217283)\n\nPart 4/6 of generalisations of #207377.\n\nHandle one REAL or COMPLEX kind conversion around an eligible sum.\n\nKeep conversions embedded in mixed-kind trees ineligible, this will\nlater be handled by recursive expression rewriting.\n\nThis patch has no known effect on benchmarks.\n\nAssisted-by: Codex\n\n---\n\n\u003csub\u003eStack created with \u003ca\nhref\u003d\"https://github.com/github/gh-stack\"\u003eGitHub Stacks CLI\u003c/a\u003e • \u003ca\nhref\u003d\"https://gh.io/stacks-feedback\"\u003eGive Feedback 💬\u003c/a\u003e\u003c/sub\u003e\nGitOrigin-RevId: d136559212326d421b822469d4c39f3a9eb2bf54\n"
    },
    {
      "commit": "40aea144187288f0263f6dbf668de779a8c61d80",
      "tree": "d848448c5269db28b59ae213e82201bf03ffbdf5",
      "parents": [
        "fdbcb8cd90860ffc3b03f83f6c22ffb804d49da1"
      ],
      "author": {
        "name": "Kaviya Rajendiran",
        "email": "67495422+kaviya2510@users.noreply.github.com",
        "time": "Thu Aug 20 12:18:22 2026 +0530"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Aug 19 23:51:31 2026 -0700"
      },
      "message": "[Flang][Driver] Add support for option -f[no-]split-machine-functions in flang (#216637)\n\nAdded support for the `-fsplit-machine-functions` flag in the\nFlang driver.\n\n- The Flang driver forwards `-fsplit-machine-functions` to `-fc1` and\nthe negative flag `-fno-split-machine-functions` is used at the driver\nlevel only.\n- Flang `-fc1` driver sets `TargetOptions.EnableMachineFunctionSplitter`,\nwhich causes LLVM\u0027s MachineFunctionSplitterPass to be added to the\ncodegen pipeline\n\nGitOrigin-RevId: bc0c028fa5a3e8a76bc432f5b22d1ee4883acaca\n"
    },
    {
      "commit": "fdbcb8cd90860ffc3b03f83f6c22ffb804d49da1",
      "tree": "0dab5eba2a48d0fd46b9c8fc732086d2aae5345d",
      "parents": [
        "06ece9f97632a907b2d2fe137407bc1fe04c53cb"
      ],
      "author": {
        "name": "Kareem Ergawy",
        "email": "kergawy@nvidia.com",
        "time": "Thu Aug 20 07:12:40 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Aug 19 22:16:27 2026 -0700"
      },
      "message": "[flang][PFT-to-MLIR] Do not wrap the DO of an OpenMP loop construct (#216280)\n\nA DO attached to an OpenMP loop directive is driven directly into the\nloop op by OpenMPLoopConstruct lowering, so folding it into an\nscf.execute_region hides the iteration from that op and crashes lowering\nwhen the loop body is unstructured.\n\nExtend the wrappability check with isOmpLoopBody(), the OpenMP analogue\nof the existing isAccLoopBody(): the immediate body DO, or one of the N\nassociated iterator DOs under collapse(N) / ordered(N), is not\nwrappable. The shared parts of both checks -- collecting the enclosing\nDO chain, evaluating a clause\u0027s loop count, and the depth test -- are\nfactored into helpers.\n\nCo-authored-by: Claude\n\n---------\n\nCo-authored-by: Claude Opus 5 (1M context) \u003cnoreply@anthropic.com\u003e\nGitOrigin-RevId: 6ac7a9f96452117c3498d7030398101103f6c3d3\n"
    },
    {
      "commit": "06ece9f97632a907b2d2fe137407bc1fe04c53cb",
      "tree": "c270f166fb3d7fdb52e7a95ba2c99566379248e6",
      "parents": [
        "73ffa07e0e6389c3fc5aaeb786ed6a89e9380500"
      ],
      "author": {
        "name": "Mehdi Amini",
        "email": "joker.eph@gmail.com",
        "time": "Thu Aug 20 01:02:19 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Aug 19 16:07:42 2026 -0700"
      },
      "message": "[MLIR][OpenMP] Enable strict property assembly format (#217297)\n\nEnable strict property assembly format mode for OpenMP. Spell OpenMP\nassembly-only properties directly in directive and clause formats\ninstead of relying on generic property dictionaries.\n\nRefresh OpenMP dialect, conversion, and LLVM target tests to use the\ndirect syntax for these properties.\n\nAssisted-by: Codex\nGitOrigin-RevId: 92242c06432e0158b91ad91af96f0905c51e0115\n"
    },
    {
      "commit": "73ffa07e0e6389c3fc5aaeb786ed6a89e9380500",
      "tree": "e202d5fe19757f4a4205053b967083527b75b5e0",
      "parents": [
        "f9d1a85e86ddae1cfd62e99661aace7bd3e76e8c"
      ],
      "author": {
        "name": "Valentin Clement (バレンタイン クレメン)",
        "email": "clementval@gmail.com",
        "time": "Wed Aug 19 14:04:22 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Aug 19 14:06:21 2026 -0700"
      },
      "message": "[flang][cuda] Avoid crash when source is a block argument (#217459)\n\nWhen the value is a block argument, getDefiningOp() returns null. Avoid\ncrash when this is the case by checking for the defining op first.\n\nGitOrigin-RevId: 3bcd9a803184e2d3657b9d5cc2a1773e9ce0f116\n"
    },
    {
      "commit": "f9d1a85e86ddae1cfd62e99661aace7bd3e76e8c",
      "tree": "02693161ff8fe9d6441a483c9e20865d1b3c58eb",
      "parents": [
        "d6392b537a513ff30f6a172abb778fbbfeab3a16"
      ],
      "author": {
        "name": "Razvan Lupusoru",
        "email": "razvan.lupusoru@gmail.com",
        "time": "Wed Aug 19 12:43:59 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Aug 19 12:47:50 2026 -0700"
      },
      "message": "[mlir][acc] Add pass to convert acc declare ctors and dtors to LLVM (#217415)\n\nAdds the `acc-declare-ctor-dtor-conversion` pass which converts\n`acc.global_ctor` and `acc.global_dtor` operations into LLVM functions\nand registers them in `llvm.mlir.global_ctors` and\n`llvm.mlir.global_dtors`.\n\nThe pass exposes a `priority` option to control when the generated\nfunctions run relative to other module initializers.\n\n---------\n\nCo-authored-by: Susan Tan \u003czujunt@nvidia.com\u003e\nGitOrigin-RevId: b562ef546e46face7172d174e1a5f5454c470eee\n"
    },
    {
      "commit": "d6392b537a513ff30f6a172abb778fbbfeab3a16",
      "tree": "058561c424d56e90ff2312b49c199f5d1db8a432",
      "parents": [
        "aca8058e7c4d2dfcd331605987e77c1eac177799"
      ],
      "author": {
        "name": "Valentin Clement (バレンタイン クレメン)",
        "email": "clementval@gmail.com",
        "time": "Wed Aug 19 10:15:40 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Aug 19 10:23:34 2026 -0700"
      },
      "message": "[flang][openacc] Support labeled do loop in acc compute region (#217174)\n\nGitOrigin-RevId: 605ae83049c5e4bc983cd5215843e62a7de0640e\n"
    },
    {
      "commit": "aca8058e7c4d2dfcd331605987e77c1eac177799",
      "tree": "f2678f0a869080651e2fcbd5f8f2485db027dd5a",
      "parents": [
        "8689aa2dd95b817b0980964de3e03ee1a823520f"
      ],
      "author": {
        "name": "Tom Eccles",
        "email": "tom.eccles@arm.com",
        "time": "Wed Aug 19 17:47:01 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Aug 19 09:51:46 2026 -0700"
      },
      "message": "[flang][Driver] Forward negative sum reassociation flag (#217266)\n\nPreviously, only a flag which alters the default was forwarded to the\nfrontend driver. This works upstream, but it meant that the negation\nflag was not forwarded (as negation is the default) which then breaks as\nsoon as the default is changed. This led to some confusion when I tested\na downstream branch with the flag enabled by default.\n\nInstead, forward the last explicit sum reassociation option to the\nfrontend driver so the negative spelling is not lost by the driver.\n\nAssisted-by: Codex\nGitOrigin-RevId: 9c32c4c89ad04576cf31650ef4901bcb78c41f2c\n"
    },
    {
      "commit": "8689aa2dd95b817b0980964de3e03ee1a823520f",
      "tree": "5a1201b2c9891d81abb1b59dd4bd557cab37da79",
      "parents": [
        "1695aab5e38c6609788d5bdf44fd8d2989b71749"
      ],
      "author": {
        "name": "Slava Zakharin",
        "email": "szakharin@nvidia.com",
        "time": "Wed Aug 19 09:37:59 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Aug 19 09:43:02 2026 -0700"
      },
      "message": "[flang][OpenACC] Avoid allocation actions for unified memory. (#217146)\n\nUnder `-gpu unified`, the dynamic allocations are accessible\non host and device, so there is no need generate pre/post-alloc/dealloc\nactions for `acc declare` variables\u0027 allocations.\n\nGitOrigin-RevId: 8bbab3adad6526de98cdb455c09c9f64afa5d074\n"
    },
    {
      "commit": "1695aab5e38c6609788d5bdf44fd8d2989b71749",
      "tree": "8d3f5f1e6f08486a06cda3d5d6c085e2afa50c16",
      "parents": [
        "e84e82b834652bfece179eb47cd70a1b122da7b2"
      ],
      "author": {
        "name": "Slava Zakharin",
        "email": "szakharin@nvidia.com",
        "time": "Wed Aug 19 09:19:25 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Aug 19 09:22:24 2026 -0700"
      },
      "message": "[flang][OpenACC] Rematerialize fir.absent in outlined regions. (#217103)\n\n`OffloadTargetVerifier` complains about `!fir.boxchar\u003c\u003e` live-in\nproduced by `fir.absent`. It should be always legal and profitable\nto rematerialize `fir.absent` inside the outlined regions.\n\nGitOrigin-RevId: 5e23f9d93d3a822808b07cde1eeda0bf713a9298\n"
    },
    {
      "commit": "e84e82b834652bfece179eb47cd70a1b122da7b2",
      "tree": "71a6128754fc8ec7b42e756d35af17deaf4f1d36",
      "parents": [
        "16527445cff5f7f08939a9fa0af2901bd90350f0"
      ],
      "author": {
        "name": "Matsu",
        "email": "47756807+khaki3@users.noreply.github.com",
        "time": "Wed Aug 19 08:07:53 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Aug 19 08:13:32 2026 -0700"
      },
      "message": "[flang][FIRToSCF] Recompute a typed induction variable in closed form (#217051)\n\nExample:\n```fortran\ndo i \u003d 1, n\n  a(i) \u003d a(i) + 1\nend do\n```\n\nIn this code, `fir.do_loop` carries `i` in its own integer type, but\n`fir-to-scf` normalizes the loop to a canonical `index` loop and passes `i`\nthrough `iter_args`.\n\nFix: recompute `i` in closed form from the canonical induction variable, for\nevery step sign. No `iter_arg` and no loop result are added; the closed form\ndoes not inherit `nsw`. Loops with a final value keep carrying it, since\ntheir result is observable after the loop.\nGitOrigin-RevId: de79344abe04cab8fe538cdd0f975f78d941cd24\n"
    },
    {
      "commit": "16527445cff5f7f08939a9fa0af2901bd90350f0",
      "tree": "a0800433681f0b0e222674004c1b09a6a891154b",
      "parents": [
        "7c08c99898dbff817f3346cdedbd04ff17065217"
      ],
      "author": {
        "name": "Eugene Epshteyn",
        "email": "eepshteyn@nvidia.com",
        "time": "Wed Aug 19 09:19:05 2026 -0400"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Aug 19 06:23:41 2026 -0700"
      },
      "message": "[flang][NFC] Fix BUILD_SHARED_LIBS build of FortranUtils (#217312)\n\n[5ee2778b6072](https://github.com/llvm/llvm-project/commit/5ee2778b60725219579eb6d439e6b250c2ff1f85)\n(\"[flang][OpenMP] Reuse canonical default mapper names for nested\nmappings\", [#212251](https://github.com/llvm/llvm-project/pull/212251))\nadded calls to `fir::NameUniquer::deconstruct()` and\n`fir::NameUniquer::doGenerated()` in `flang/lib/Utils/OpenMP.cpp`, but\ndid not add the library defining them, `FIRSupport`, to `FortranUtils`\u0027\n`LINK_LIBS`.\n\nAssisted-by: AI\nGitOrigin-RevId: 2075bfe4e0fb4bc222ff9aea403c921591816ea3\n"
    },
    {
      "commit": "7c08c99898dbff817f3346cdedbd04ff17065217",
      "tree": "3d93b7a8f9fec40c25c92749168f20f38cd9fac9",
      "parents": [
        "6e652658af3f55698ddd65d4fea3113a6dc1202c"
      ],
      "author": {
        "name": "Sergio Afonso",
        "email": "safonsof@amd.com",
        "time": "Wed Aug 19 13:15:16 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Aug 19 05:22:32 2026 -0700"
      },
      "message": "[MLIR][OpenMP] Support calls added between MarkDeclareTarget runs (#214185)\n\nCurrently, if there are multiple executions of the `MarkDeclareTarget`\npass in a compiler pipeline and somewhere between both runs function\ncalls get added to a non-declare_target function that was marked as such\nimplicitly, potential changes to the `device_type` won\u0027t get propagated.\n\nThis is because we can\u0027t distinguish between a user-specified\n`declare_target` function attribute and one added by that pass. This\npatch addresses this by adding a new parameter to `DeclareTargetAttr`\nthat is used by that pass to know whether new `declare_target`\ninformation could be propagated to it.\n\nThe `automap` and `implicit` parameters are given default values to\nsimplify the representation of these attributes.\n\nGitOrigin-RevId: 779cfd575c4984d9095675cde9300132dbac9950\n"
    },
    {
      "commit": "6e652658af3f55698ddd65d4fea3113a6dc1202c",
      "tree": "3fcd13e942a830273acaf382a15a85c6ed48eb0f",
      "parents": [
        "e5f53c8ce0db04c06f0083360bddc72116067a7f"
      ],
      "author": {
        "name": "Sergio Afonso",
        "email": "safonsof@amd.com",
        "time": "Wed Aug 19 13:15:15 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Aug 19 05:22:14 2026 -0700"
      },
      "message": "[Flang][OpenMP] Improve implicit declare_target propagation (#214184)\n\nAfter starting to run the `MarkDeclareTarget` pass later in the\npipeline, some limitations of its original implementation started to be\nhit; specifically, some calls being missed could result in an overly\nrestrictive marking that would cause the `HostOpFiltering` pass to\nremove reachable device code.\n\nThis patch aims to address these problems by making the following\nchanges:\n- It makes sure to mark functions in every `RecipeInterface` op pointed\nto by OpenMP operations.\n- It recursively propagates and combines declare_target information from\ntarget regions and explicitly set declare_target functions to unmarked\nfunctions, but it never modifies explicitly marked functions.\n- External and public functions can now only be marked with\n`device_type(any)`. Before, marking them as `nohost` or `host` was\npossible, but without the ability to see all users we can\u0027t give such\nguarantees.\n- There was a bug in the handling of declare_target on interface\nsubprograms that improvements to the pass made visible. Instead of\nadding the attribute to the MLIR function associated to the interface\nsubprogram, it wasn\u0027t added at all, making it susceptible to being\nmodified by the pass according to uses. This is fixed.\n\nFixes #213367.\n\nGitOrigin-RevId: af19308306e30d705591300f11e94178d196b137\n"
    },
    {
      "commit": "e5f53c8ce0db04c06f0083360bddc72116067a7f",
      "tree": "e97d3f5a31b5a756501459795dedfccea8c59cd5",
      "parents": [
        "f3ae474da89debdb846db6e8b5bfd2ee865d65cc"
      ],
      "author": {
        "name": "Sergio Afonso",
        "email": "safonsof@amd.com",
        "time": "Wed Aug 19 13:15:15 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Aug 19 05:21:51 2026 -0700"
      },
      "message": "[Flang][OpenMP] Remove the DeleteUnreachableTargets pass (#214183)\n\nThe `DeleteUnreachableTargets` pass was initially added to work around a\nproblem caused by the interaction between the function filtering and\nhost op filtering passes and generic MLIR optimizations.\n\nSpecifically, by running function and host op filtering before these\noptimizations, we would lose the ability to detect unreachable\n`omp.target` operations when compiling for the device. This would cause\nGPU kernels being created for them, for which no host counterpart\nexisted.\n\nBy now having moved both passes towards the end of the compilation\npipeline, after FIR to LLVM lowering, removal of unreachable host and\ndevice code is no longer impacted by them. This makes the\n`DeleteUnreachableTargets` pass redundant.\n\nGitOrigin-RevId: 79ec8e363a22159ed311193a47091e17a5ef1dc2\n"
    },
    {
      "commit": "f3ae474da89debdb846db6e8b5bfd2ee865d65cc",
      "tree": "e4ce0447e96c1aaceca7c8d24ff6e2c125a6406c",
      "parents": [
        "ed9b3b0491dd1c7c7e0791510ec06611f2e9c9df"
      ],
      "author": {
        "name": "Sergio Afonso",
        "email": "safonsof@amd.com",
        "time": "Wed Aug 19 13:15:14 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Aug 19 05:21:30 2026 -0700"
      },
      "message": "[Flang][MLIR][OpenMP] Move function filtering to the omp dialect (#214182)\n\nThe `FunctionFilteringPass`, which removes host-only functions when\ncompiling for an OpenMP target device, is currently defined only for\nFlang. However, it implements logic that would generally be useful for\nother frontends that can generate OpenMP offloading code. This patch\nmakes that transition by implementing the following changes:\n- It rewrites the `FunctionFilteringPass` to work on lower level non-FIR\nMLIR modules.\n- It splits off preexisting logic to check for not-yet-implemented\ntarget device features during function filtering to its own pass and it\nimproves context detection to properly diagnostic only device code.\n- It delays function filtering to run at the end of the pipeline, as\nwell as the `MarkDeclareTargetPass`. This will enable the latter to run\nonly once in the pipeline after the `UnimplementedDeviceCheckPass`\nbecomes no longer necessary.\n\nOne side effect of these changes is that delaying the filtering will\ncause all following passes to process host functions that are eventually\ndeleted. On the other hand, it minimizes divergence between host and\ndevice MLIR modules making passes such as the `DeleteUnreachableTargets`\nno longer necessary, as well as allowing passes to introduce new host\nfunctions without causing problems on the device.\n\nGitOrigin-RevId: a5bb77f7e1240f7b06937578cc1c0c9d29e79e98\n"
    },
    {
      "commit": "ed9b3b0491dd1c7c7e0791510ec06611f2e9c9df",
      "tree": "16ce8ae8cff29a647b06253c1e130291edb0d58c",
      "parents": [
        "dc2002206fbbde4c1347add68fd6feeb6a694b44"
      ],
      "author": {
        "name": "Eugene Epshteyn",
        "email": "eepshteyn@nvidia.com",
        "time": "Wed Aug 19 07:52:56 2026 -0400"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Aug 19 04:56:10 2026 -0700"
      },
      "message": "Revert \"[Flang][HLFIR] Lower PACK(array, .TRUE.) to hlfir.reshape\" (#217310)\n\nReverts llvm/llvm-project#213603 due to regressions\n\nGitOrigin-RevId: bec1e531e1c6ad5f36bb1f1e0adf7c86ff8c06b8\n"
    },
    {
      "commit": "dc2002206fbbde4c1347add68fd6feeb6a694b44",
      "tree": "137175847aff3b96449a1564f90c78365decc830",
      "parents": [
        "31c640a69290c124fa59bbe71d07ef408799ca94"
      ],
      "author": {
        "name": "laoshd",
        "email": "shandong.lao@hpe.com",
        "time": "Wed Aug 19 05:10:45 2026 -0600"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Aug 19 04:18:40 2026 -0700"
      },
      "message": "[flang][OpenMP] Reuse canonical default mapper names for nested mappings - fix issue #210402 (#212251)\n\nSummary\nFix issue #210402: [FLANG][OMP] flang compiled application failed with\ncore dumped at Kernel \u0027omp target in _QQmain @ 28\n(__omp_offloading_3a_5aca0b86__QQmain_l28)\u0027 -- Flang OpenMP nested\nimplicit default-mapper naming so it reuses the same canonical symbol\nnaming scheme as explicit declare mapper(default: ...) lowering.\n\nProblem\nFor nested derived types, implicit mapper generation could derive a\nmapper symbol from FIR record names that did not match the explicit\nmapper naming path. That mismatch could create a second synthesized\nmapper, skip intended pointer-component mapping behavior, and lead to\nruntime offload faults.\n\nChanges\nAdd a canonical mapper-name helper:\ngetCanonicalDefaultDeclareMapperName(fir::RecordType)\nUse canonical naming in nested implicit mapper generation paths: OpenMP\nutility mapper generation\nDoConcurrent OpenMP conversion mapper path\nAdd regression test: declare-mapper-explicit-default-nested-pointer.f90\n\nResult\nNested implicit mapper generation now consistently reuses user-defined\ndefault mappers by canonical symbol name, avoiding mismatched duplicate\nmapper creation and preventing the observed offload failure scenario.\n\nFixes #210402\n\nGitOrigin-RevId: 5ee2778b60725219579eb6d439e6b250c2ff1f85\n"
    },
    {
      "commit": "31c640a69290c124fa59bbe71d07ef408799ca94",
      "tree": "5be5511ed57af3baf0839d683d3f77b834d42f92",
      "parents": [
        "2ccb866418b03dc932aed40c57deded8c3f86020"
      ],
      "author": {
        "name": "Mehdi Amini",
        "email": "joker.eph@gmail.com",
        "time": "Wed Aug 19 10:06:55 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Aug 19 01:12:16 2026 -0700"
      },
      "message": "[MLIR][NVVM] Enable strict property assembly format (#196289)\n\nEnable strict property assembly format mode for the NVVM dialect and\nupdate custom assembly formats to expose property dictionaries explicitly.\n\nRefresh NVVM tests so inherent operation properties are printed and\nparsed through the property dictionary while non-property attributes\nremain in the attribute dictionary.\n\nAssisted-by: Codex\nGitOrigin-RevId: 907f732abcdee304c0b2e72a7a32584db84441b5\n"
    },
    {
      "commit": "2ccb866418b03dc932aed40c57deded8c3f86020",
      "tree": "2d9852101e1f140d9673b83f956623f649185963",
      "parents": [
        "ebcaa47dd0476ccf7b3bc640f225d6c33ca9e17f"
      ],
      "author": {
        "name": "Ivan R. Ivanov",
        "email": "iivanov@nvidia.com",
        "time": "Wed Aug 19 01:31:46 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Aug 18 16:37:29 2026 -0700"
      },
      "message": "[flang][Lower] Rewrite present of device variable to deviceptr (#217164)\n\nA cuda device variable is always \"present\" on the device. Rewrite such\noccurrences to deviceptr in the front end while we still have the\ninformation about which variable is a cuda device variable.\n\nGitOrigin-RevId: c3af1487c5b74ff6da74429dfb35150930da166f\n"
    },
    {
      "commit": "ebcaa47dd0476ccf7b3bc640f225d6c33ca9e17f",
      "tree": "b94eea17e88975716deeea34cc8f013834f89b1d",
      "parents": [
        "b31d49b899c66f9c02d53fb19600cd83a1421d57"
      ],
      "author": {
        "name": "agozillon",
        "email": "Andrew.Gozillon@amd.com",
        "time": "Tue Aug 18 23:51:36 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Aug 18 14:58:33 2026 -0700"
      },
      "message": "[Flang][OpenMP] Remove forced close mapping for descriptor in USM (#215350)\n\nThis was added originally to solve an issue with pointer checking on USM\ndevices (usm_map_close.f90 in the fortran offload tests) but no longer\nappears to be required.\n\nNone the less, this isn\u0027t a fix we can keep around, we cannot force\nclose mapping on things, we should only carry it over if a user\nspecifies it (done so above). As if we force it onto the descriptor,\nthen on USM architectures in USM mode we\u0027re actually inflicting the user\nwith unwanted and unrequested host to device transfers. As we\u0027re saying\nwe want the descriptor to be placed in memory as close to the device as\npossible (so device memory). We shouldn\u0027t make the assumption this is\nwhat a user wishes, especially when they can now refine there mappings\nto specify what they want done with the descriptor.\n\nSo, removing this as a performance and correctness optimization now that\nit no longer appears to be required for the usm_map_close.f90 test on at\nleast a fully USM enabled system like gfx942.\n\nThere\u0027s a few other cases like this in MapInfoFinalization I think that\nmay need a similar revision.\n\nGitOrigin-RevId: 7a7a2070f21962c030ff5e4e1c03e03a05e7094c\n"
    },
    {
      "commit": "b31d49b899c66f9c02d53fb19600cd83a1421d57",
      "tree": "9cd1059eff6f6589e5e1bd20411904343df08358",
      "parents": [
        "7f4bce2a35d4e1c32e50eee44fde0dec8bdb9330"
      ],
      "author": {
        "name": "Valentin Clement (バレンタイン クレメン)",
        "email": "clementval@gmail.com",
        "time": "Tue Aug 18 12:38:13 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Aug 18 12:41:39 2026 -0700"
      },
      "message": "[flang][openacc] Raise an error when UPDATE directive is in compute region (#217090)\n\nThis is in line with the reference compiler.\n\nGitOrigin-RevId: 57fdc0d6be41d41422b8b656441e56fecd1143c6\n"
    },
    {
      "commit": "7f4bce2a35d4e1c32e50eee44fde0dec8bdb9330",
      "tree": "2594324f63f8bf1e87ec0336fb4741f02ad76e31",
      "parents": [
        "1af96f50fdbfa5e2301a0fc8c319c1119079a928"
      ],
      "author": {
        "name": "Matsu",
        "email": "47756807+khaki3@users.noreply.github.com",
        "time": "Tue Aug 18 12:07:55 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Aug 18 12:13:29 2026 -0700"
      },
      "message": "[flang][cuda] Assign a scalar character function result on the host (#217076)\n\nA managed function result makes an assignment a cuf.data_transfer:\n\n    function f() result(r)\ncharacter(len\u003d:), allocatable :: r ! managed under -gpu\u003dmem:managed\n    end function\n    character(len\u003d256) :: c\n    c \u003d f()\n\nThe rank-0 result r is lowered to a !fir.boxchar\u003c1\u003e, an {address,\nlength}\nvalue rather than a reference, so the non-descriptor transfer path has\nno\naddress to take:\n\n\u0027fir.convert\u0027 op invalid type conversion \u0027!fir.boxchar\u003c1\u003e\u0027 /\n\u0027!fir.llvm_ptr\u003ci8\u003e\u0027\n\nA fixed-length result does have an address, but the copy is sized by the\ncharacter kind instead of the length: one character copied, c left\nunpadded.\n\nManaged and unified results are host accessible, so assign a scalar\ncharacter\nresult on the host and get the padding rules. Array results pass by\ndescriptor and are unaffected.\n\nGitOrigin-RevId: 923f7b05e188af4e2af1bd206c88200edf4bd2d8\n"
    },
    {
      "commit": "1af96f50fdbfa5e2301a0fc8c319c1119079a928",
      "tree": "ff36e43140bf84520b02a0c24777266a9279e0fd",
      "parents": [
        "6bce385fece43138c7691a8226c870cf39546bef"
      ],
      "author": {
        "name": "Scott Manley",
        "email": "rscottmanley@gmail.com",
        "time": "Tue Aug 18 15:07:30 2026 -0400"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Aug 18 12:13:00 2026 -0700"
      },
      "message": "[Flang][OpenACC] add loop annotations to acc.loop (#216769)\n\nAdd llvm loop annotations that come from directives to acc.loop just like\nother loops\n\nGitOrigin-RevId: e6a64b35245a7a66813479167cca3e4bbb0185b9\n"
    },
    {
      "commit": "6bce385fece43138c7691a8226c870cf39546bef",
      "tree": "0150df6f0f3a5bb9ce34afc3380ee4da2d20ebed",
      "parents": [
        "7ccb9900ded444009e103a1067ebc5a0b8c6e936"
      ],
      "author": {
        "name": "leovance",
        "email": "leovancekang@outlook.com",
        "time": "Wed Aug 19 00:29:55 2026 +0800"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Aug 18 09:39:13 2026 -0700"
      },
      "message": "[flang][Driver] Account for the default unwind library in linker test (#212419)\n\nThe Flang compiler-rt linker test assumes that `-lgcc_s` is never added.\nHowever, the compiler runtime and unwind library are selected\nindependently, and the GNU linker path may add `-lgcc_s` when\n`CLANG_DEFAULT_UNWINDLIB` is `libgcc`.\n\nExport `CLANG_DEFAULT_UNWINDLIB` from `ClangConfig.cmake` so standalone\nFlang builds can observe the default used by the linked clangDriver.\nPropagate it to Flang\u0027s lit configuration and use a single FileCheck\ninvocation to select the appropriate expectations. Require `-lgcc_s` for\na `libgcc` default, require `-lunwind` for a `libunwind` default, and\nreject both for `none` or an empty default. Continue rejecting the exact\n`-lgcc` linker argument in all configurations.\n\n### Testing\n\nTested with `CLANG_DEFAULT_RTLIB\u003dcompiler-rt` in three configurations:\n\n- `CLANG_DEFAULT_UNWINDLIB\u003dlibgcc`\n- `CLANG_DEFAULT_UNWINDLIB\u003dlibunwind`\n- an empty `CLANG_DEFAULT_UNWINDLIB`\n\n`Driver/linker-flags.f90` passed in all three configurations.\n\nThe full `check-flang` suite passed with no unexpected failures in the\nlibgcc and empty-default configurations:\n\n- 4636 passed\n- 173 unsupported\n- 11 expectedly failed\n\nGitOrigin-RevId: f98295786cfb374c242be819ccb8ccfc6e119e7a\n"
    },
    {
      "commit": "7ccb9900ded444009e103a1067ebc5a0b8c6e936",
      "tree": "f22796e8a023ad9bf7b0fba2dd35c493a46c7d46",
      "parents": [
        "006d3d5cb25f21bba58f84aa706210e9aaa872d9"
      ],
      "author": {
        "name": "Razvan Lupusoru",
        "email": "razvan.lupusoru@gmail.com",
        "time": "Tue Aug 18 09:17:46 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Aug 18 09:21:49 2026 -0700"
      },
      "message": "[flang][acc] Avoid reduction section bounds when not needed (#217054)\n\nFor whole-dimension triplets and for sections whose constant bounds\nmatch the declared extents, avoid generating `acc.bounds` on reductions\nand lower the array as if no section were present. This simplifies both\nthe emitted bounds IR and the reduction recipe, which no longer needs to\nassume bounds are passed in.\n\nGitOrigin-RevId: b5b613c97d2b542b637898edcb0dee0c02210332\n"
    },
    {
      "commit": "006d3d5cb25f21bba58f84aa706210e9aaa872d9",
      "tree": "b1ebe5b488f58322aec96543af2c793ae7ccbb8f",
      "parents": [
        "768ac42848e29afd0b257c910260be0346c85197"
      ],
      "author": {
        "name": "Matt Arsenault",
        "email": "Matthew.Arsenault@amd.com",
        "time": "Tue Aug 18 17:49:30 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Aug 18 08:54:04 2026 -0700"
      },
      "message": "CodeGen: Remove TargetOptions::FloatABIType (#215796)\n\nThis is now fully replaced with the \"float-abi\" module flag.\nIf the module flag is not present, the default is computed\nfrom the triple. Consumers are updated to read the module flag.\n\nRuntimeLibraryAnalysis now defers analysis until run() on a Module,\ninstead of during the pass constructor as before. This requires copying\nall of the remaining relevant TargetOptions so they are available\nwhen the module is seen.\n\nUnfortunately, ARM still depends on TargetOptions for determining\nthe float-abi. -target-abi\u003daapcs16 still changes the default float-abi,\nbut an explicit module flag wins.\n\nCo-authored-by: Claude (Claude-Opus-4.8) \u003cnoreply@anthropic.com\u003e\nGitOrigin-RevId: 7e0416da49f49b49c393fd2b750056e814b81441\n"
    },
    {
      "commit": "768ac42848e29afd0b257c910260be0346c85197",
      "tree": "fd46d81fc685501ee6ec8c4d0312dc9b208435af",
      "parents": [
        "447f95649bf87d0165de2e4865d2e6719b5f818d"
      ],
      "author": {
        "name": "ejose02",
        "email": "ejose@amd.com",
        "time": "Tue Aug 18 15:05:23 2026 +0530"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Aug 18 02:41:12 2026 -0700"
      },
      "message": "[Flang][HLFIR] Lower PACK(array, .TRUE.) to hlfir.reshape (#213603)\n\nWhen the PACK mask is the compile-time scalar .TRUE., the result is\nequivalent to RESHAPE(array, [SIZE(array)]). Detect this case during\nHLFIR intrinsic lowering and emit hlfir.reshape, reusing the same\noperation as the RESHAPE intrinsic rather than calling _FortranAPack.\n\nThis allows later optimization passes to handle the operation as a\nreshape instead of going through the general PACK runtime. Variable or\narray masks, VECTOR, and non-trivial or polymorphic operands continue to\nuse the existing runtime PACK path.\n\nAssisted by: Claude\n\nGitOrigin-RevId: b5e18ba8d7439f5ba6da35c0a0de71f06651003e\n"
    },
    {
      "commit": "447f95649bf87d0165de2e4865d2e6719b5f818d",
      "tree": "4741019fff46e58781ba35fe39d4b29f20669228",
      "parents": [
        "27fb7bc4ea01f85feac5d4cfa72e6c4834693b4a"
      ],
      "author": {
        "name": "Valentin Clement (バレンタイン クレメン)",
        "email": "clementval@gmail.com",
        "time": "Mon Aug 17 20:00:24 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Aug 17 20:05:42 2026 -0700"
      },
      "message": "[flang][cuda] Add support for custom descriptor allocator in codegen (#216881)\n\nSimlar to https://github.com/llvm/llvm-project/pull/216841 but for\nCodeGen pass usage.\n\nGitOrigin-RevId: 9089be3caf952d1410287ba88b8debfd931a4d5c\n"
    },
    {
      "commit": "27fb7bc4ea01f85feac5d4cfa72e6c4834693b4a",
      "tree": "f5a70a6d045e3e5849a6afecacfe6bd8af3c768a",
      "parents": [
        "1eb4edb830b8310f98ef8cea98ae5835ad036ee5"
      ],
      "author": {
        "name": "Valentin Clement (バレンタイン クレメン)",
        "email": "clementval@gmail.com",
        "time": "Mon Aug 17 19:59:56 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Aug 17 20:05:32 2026 -0700"
      },
      "message": "[flang][cuda] Add option to emit different function name for alloc/free of descriptors (#216841)\n\nThis allow to call specialized functions instead of the upstream ones.\n\nGitOrigin-RevId: b84b33d533b1ca706c61a7fc13cda6eeaa628f55\n"
    },
    {
      "commit": "1eb4edb830b8310f98ef8cea98ae5835ad036ee5",
      "tree": "589c293d743db81325a0bd256c6678d81bfd17ff",
      "parents": [
        "389829d1d3eea935c8a58591eb2275483d082f6a"
      ],
      "author": {
        "name": "Daniel Chen",
        "email": "cdchen@ca.ibm.com",
        "time": "Mon Aug 17 19:43:38 2026 -0400"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Aug 17 16:45:57 2026 -0700"
      },
      "message": "[flang] Fix incorrect DSE of VALUE dummy arg copy stores due to TBAA mismatch (#215366)\n\nAssisted by : IBM Bob\n\n**Problem:**\nWhen a BIND(C) derived-type dummy argument with the VALUE attribute is\nlarge\nenough to be passed on the stack (e.g. PPC64 byval ABI), Flang lowers it\nas\na local `fir.alloca` with a `fir.declare` carrying\n`fortran_attrs \u003d value`. Before this fix, `AddAliasTags` classified\naccesses\nto that alloca under the `\"allocated data\"` TBAA subtree\n(`SourceKind::Allocate`). However, other accesses to the same dummy\nvariable\nwere tagged under the `\"dummy arg data\"` subtree\n(`SourceKind::Argument`).\nBecause these two subtrees are siblings under `\"any data access\"`,\nLLVM\u0027s\n`DSEPass` treated the copy-stores as non-aliasing with the subsequent\nreads\nand incorrectly eliminated them. At `-O3`, reads of the VALUE copy\nreturned\ngarbage, causing wrong results or `ERROR STOP`.\n\n**Fix:**\nin `AddAliasTags.cpp`, detect when a `SourceKind::Allocate` source is a\nVALUE dummy arg copy by checking for\n`fir::FortranVariableFlagsEnum::value`\non its `fir.declare`. Tag such accesses under `dummyArgDataTree` instead\nof\n`allocatedDataTree`, making them consistent with the dummy arg reads and\npreventing DSE from eliminating the stores.\n\n**Reproducer** (fails at `-O3`, passes at `-O0`, before fix):\n\n```fortran\nmodule m\n  use ISO_C_BINDING\n  type, bind(c) :: dtd0; integer(C_INT_LEAST8_T) :: a(10,5); end type\n  type, bind(c) :: dtd1\n    integer(C_INT_LEAST8_T) :: a(10,5); type(dtd0) :: d0\n  end type\nend module m\nprogram p\n  use m\n  interface\n    integer(C_INT_LEAST8_T) function fnt4(dt) bind(c)\n      import; type(dtd1), value :: dt\n    end function\n  end interface\n  type(dtd1) :: dtb; integer ret\n  dtb%a \u003d 1_1; dtb%d0%a \u003d 1_1\n  ret \u003d fnt4(dtb)\nend program p\ninteger(C_INT_LEAST8_T) function fnt4(dt) bind(c)\n  use ISO_C_BINDING, only: C_INT_LEAST8_T\n  use m, only: dtd0, dtd1\n  type(dtd1), value :: dt\n  do i \u003d 1, 5; do j \u003d 1, 10\n    if (dt%a(j,i) /\u003d 1) ERROR STOP 156\n    dt%a(j,i) \u003d 2\n    if (dt%d0%a(j,i) /\u003d 1) ERROR STOP 158\n    dt%d0%a(j,i) \u003d 2\n  end do; end do\n  fnt4 \u003d 0\nend function fnt4\n\nGitOrigin-RevId: f431b45638ecb29f838dd4c314aac36f8a30480b\n"
    },
    {
      "commit": "389829d1d3eea935c8a58591eb2275483d082f6a",
      "tree": "9b549326c7ac7bf7078cd4970d0fe2e9b96e2c58",
      "parents": [
        "990c260eaed90909ad7dd5eeb7a9e589b79f4b5d"
      ],
      "author": {
        "name": "Valentin Clement (バレンタイン クレメン)",
        "email": "clementval@gmail.com",
        "time": "Mon Aug 17 15:21:50 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Aug 17 15:25:50 2026 -0700"
      },
      "message": "[flang][cuda] Allow call to len intrinsic on host with device argument (#216846)\n\nThis is fine to call `len` intrinsic on the host with a device actual\nargument since the descriptor is allocated in managed memory.\n\nGitOrigin-RevId: 5639cba92a088dc21e48d3e9b6b12e1b9abf230e\n"
    },
    {
      "commit": "990c260eaed90909ad7dd5eeb7a9e589b79f4b5d",
      "tree": "c36648ea8800e3d977eaa4e36e9629cfb8982ab6",
      "parents": [
        "c57534f7a05809e647eba8ae232f73bb5bcdc313"
      ],
      "author": {
        "name": "kwyatt-ext",
        "email": "kwyatt.external@hpe.com",
        "time": "Mon Aug 17 12:19:29 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Aug 17 12:20:40 2026 -0700"
      },
      "message": "[flang] Improve error for misplaced statement after CONTAINS in derived type (#215886)\n\nA statement after `CONTAINS` in a derived type that is not a type-bound\nprocedure binding (e.g. a second `CONTAINS`, an `IMPORT`, or a misplaced\nsubprogram) leaked the intrinsic type-spec parse failures (`expected\n\u0027COMPLEX\u0027`, `expected \u0027INTEGER\u0027`, ...) instead of reporting that a\ntype-bound procedure binding was expected. In the misplaced-subprogram\ncase flang emitted an avalanche of unrelated `expected \u0027\u003ctype-keyword\u003e\u0027`\nerrors.\n\nThis is a diagnostic regression from #203379, which added\n`DataComponentDefStmt` as a trailing alternative in the\ntype-bound-proc-binding parser. Its intended `fail\u003c\u003e()` message only\nfires when `DataComponentDefStmt` fully matches; for other invalid\nstatement the partial parse into `declarationTypeSpec` displaced the\nrecovery message in `CombineFailedParses`.\n\nThis patch wraps the binding alternatives in `withMessage()` so that\nwhen none of them match a token a single clear message is emitted:\n\n```\nerror: expected a type-bound procedure binding (PROCEDURE, GENERIC, or FINAL) after CONTAINS\n```\n\nThe specific `component definition must precede CONTAINS in a derived\ntype` message is still produced for a genuine misplaced component\ndefinition (`withMessage` only overrides when no tokens were matched),\nand malformed `PROCEDURE`/`GENERIC`/`FINAL`/component statements keep\ntheir own specific diagnostics.\n\n`flang/test/Parser/recovery09.f90` is extended to cover the\ndouble-`CONTAINS`, `IMPORT`, and misplaced-subprogram cases.\n\nThis implements the fix for\nhttps://github.com/llvm/llvm-project/issues/215849\n\nAssisted-by: AI\nGitOrigin-RevId: b3bac42e660e2337e2b6443bd7b08667147fc764\n"
    },
    {
      "commit": "c57534f7a05809e647eba8ae232f73bb5bcdc313",
      "tree": "351d2639646604d2829294e03cf20664adee7664",
      "parents": [
        "dd602b535bc51a56e67398dbbfd24bbfa454cc13"
      ],
      "author": {
        "name": "Ron Green [NVIDIA]",
        "email": "rogreen@nvidia.com",
        "time": "Mon Aug 17 11:48:58 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Aug 17 11:50:47 2026 -0700"
      },
      "message": "[flang][OpenACC] Fix crash on ATTACH/DETACH with an unresolved name (#216801)\n\n`AccAttributeVisitor::EnsureAllocatableOrPointer()` passes the last name of the\ndesignator to `IsAllocatableOrObjectPointer()`, which accepts a null `Symbol`\npointer and returns `false` for it. When the argument of an `ATTACH` or `DETACH`\nclause fails name resolution -- for example a component reference whose derived\ntype could not be resolved -- that name\u0027s symbol is null, so control reaches the\nerror-reporting path, which then dereferences the same null symbol and crashes\nthe compiler.\n\nBecause the crash happens during name resolution, it precedes the point where\nsemantic diagnostics are emitted, so the compiler dies with no output at all\nrather than reporting the errors that caused the name to be unresolved.\n\nReproducer:\n\n```fortran\nsubroutine test_attach_unresolved\n  type :: ty\n    integer :: i\n  end type ty\n  type(ty) :: x\n  !$acc enter data attach(x%bad)\nend subroutine test_attach_unresolved\n```\n\n`flang -fsyntax-only -fopenacc` on the above segfaults. With this change it\nreports the expected `Component \u0027bad\u0027 not found in derived type \u0027ty\u0027`.\n\nFix: skip the check when the name is unresolved. Name resolution has already\nreported an error for it, so there is nothing left to diagnose.\n\nA regression test is added covering both `ATTACH` and `DETACH`.\n\nGitOrigin-RevId: 12da120df184ab620c70deb9c4d7be29990a4fdf\n"
    },
    {
      "commit": "dd602b535bc51a56e67398dbbfd24bbfa454cc13",
      "tree": "7d61fa19791609b70a3a9250fce03c91d41fac54",
      "parents": [
        "13d51ba494a226904c6cffe46f2942616e4e7a7e"
      ],
      "author": {
        "name": "ejose02",
        "email": "ejose@amd.com",
        "time": "Mon Aug 17 17:32:17 2026 +0530"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Aug 17 05:05:47 2026 -0700"
      },
      "message": "[flang][OpenMP] Do not emit barrier after SECTIONS with LASTPRIVATE and NOWAIT (#216018)\n\nFixes #192907\n\nFlang inserted an explicit omp.barrier after SECTIONS when both\nlastprivate and nowait were present, which serialized all threads at the\nend of the construct and prevented nowait from taking effect.\n\nLimit the barrier to lastprivate(conditional:) cases, where reduction\nresults must be finalized before the post-sections copy-back. Regular\nlastprivate + nowait now matches wsloop lowering behavior.\n\nGitOrigin-RevId: 87d8872732bfc3dafb86de00eb67f178f3acab34\n"
    },
    {
      "commit": "13d51ba494a226904c6cffe46f2942616e4e7a7e",
      "tree": "806d13c14123e84cecba931afba575959e1ce21c",
      "parents": [
        "dde1453f4a71001e10c6790242e7fc40f50bc43a"
      ],
      "author": {
        "name": "Sergio Afonso",
        "email": "safonsof@amd.com",
        "time": "Mon Aug 17 10:28:15 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Aug 17 02:30:45 2026 -0700"
      },
      "message": "[Flang][OpenMP] Prevent allocate directive ICE on module variables (#216021)\n\nThe current lowering implementation for `allocate` directives assumes\nthe MLIR function in which it is creating operations will still be there\nby finalization time, so that it can add a deallocation call.\n\nWhen lowering Fortran modules, this is not the case (lowering happens in\na temporary dummy function) and it results in a compiler crash while\nrunning cleanup callbacks. This patch adds a TODO for this case.\n\nGitOrigin-RevId: 952515a290d3c9d239fadf3f28c1d0f19170bbd7\n"
    },
    {
      "commit": "dde1453f4a71001e10c6790242e7fc40f50bc43a",
      "tree": "f040fec6cdf779d549a2c17d2e9f798d121807e2",
      "parents": [
        "deaa7bf19d39422184c891b60a043d18f8f70a95"
      ],
      "author": {
        "name": "Daniel Chen",
        "email": "cdchen@ca.ibm.com",
        "time": "Sat Aug 15 11:20:22 2026 -0400"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Sat Aug 15 08:25:24 2026 -0700"
      },
      "message": "[flang] To issue error message for unsupported usage of vector type. (#215248)\n\nAs discussed in PR #214219, we don\u0027t plan to support any usage that\nrequires runtime descriptor for vector type object.\nFlang has already disallowed ALLOCATABLE, POINTER, ASSUMED-SHAPE and\nASSUMED-RANK for vector types.\nThe test reducer posted by @eugeneepshteyn should also be flagged by the\ncompiler as an error.\nThis PR is to add semantic check for that case. It covers\n1. Vector type declaration statement that has ALLOCATABLE or POINTER\nattribute.\n2. ALLOCATE statement where SOURCE\u003d or MOLD\u003d has a vector type object.\n3. Auto-allocation intrinsic assignment where the RHS is a vector type\nobject.\n4. A vector type object being used as an argument of SAME_TYPE_AS or\nEXTENDs_TYPE_OF.\n5. A vector type object being used as the `dtv` argument of a UDIO.\n6. A vector type object being used as the argument of `CLASSOF`.\n\nGitOrigin-RevId: 3196161be84becc68c891517a707daf6739a2dd3\n"
    },
    {
      "commit": "deaa7bf19d39422184c891b60a043d18f8f70a95",
      "tree": "2d32d0c8609b369af15046fee984cbfb90f23a69",
      "parents": [
        "44a29447e3ad5d022007a9b88c2965e78002af2c"
      ],
      "author": {
        "name": "Valery Dmitriev",
        "email": "valeryd@nvidia.com",
        "time": "Fri Aug 14 10:56:57 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Aug 14 11:00:45 2026 -0700"
      },
      "message": "[flang] ieee intrinsics shall preserve NaN semantics. (#215928)\n\nThe following motivating test case:\n```fortran\nProgram repro\n  Use Ieee_Arithmetic\n  Real nan\n  nan \u003d Ieee_Value(nan,Ieee_Quiet_NaN)\n  Call test(1.0,nan)\n  Call test(nan,1.0)\n  Call test(nan,-1.0)\nContains\n  Subroutine test(a,b)\n    Real x\n    x \u003d Ieee_Min_Num_Mag(a,b)\n    Print *,\u0027x\u003d\u0027, x\n  End Subroutine test\nEnd Program\n```\neven with -Ofast [-O3 -ffast-math] is not expected to print NaN, but it\ndoes. That happens basically due to attaching fast math flags to the\nintrinsic lowering code that set incorrect assumptions about operand\nvalues and lead to improper optimizations. Hence the solution is exactly\nto strip the flags when lowering ieee intrinsics. The patch strips all\nthe fast math flags except \u0027contract\u0027 to minimize impact on some\nexisting tests for a few ieee intrinsics. The flag is considered benign.\n\nAssisted-by: Claude\nAssisted-by: Grok\nGitOrigin-RevId: 6edb8cf11b352ad10885cfbece0ef6057ae327e4\n"
    },
    {
      "commit": "44a29447e3ad5d022007a9b88c2965e78002af2c",
      "tree": "a95282a8d33478a63a572e037dbec9fd87146015",
      "parents": [
        "26b4e03e57c55a31776421baf48daeea615e02c1"
      ],
      "author": {
        "name": "ShashwathiNavada",
        "email": "shashwathinavada@gmail.com",
        "time": "Fri Aug 14 23:03:26 2026 +0530"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Aug 14 10:36:08 2026 -0700"
      },
      "message": "[Flang][OpenMP] Support certain directives in PURE procedures (#212676)\n\nAdd compiler support for directive restrictions in PURE procedures,\npermitting only those directives that have a \"pure\" property, including:\nmetadirecitve, assume and assumes, nothing, error, and loop-transforming\ndirectives.\n\nGitOrigin-RevId: b7d3cee21be43bd6969764c2038ab72d49ea0b1f\n"
    },
    {
      "commit": "26b4e03e57c55a31776421baf48daeea615e02c1",
      "tree": "21238110969a719842615b21aa0e5a360e88a9aa",
      "parents": [
        "bdd3a7bf81de07f77b22dc572e31213715eb777c"
      ],
      "author": {
        "name": "Abid Qadeer",
        "email": "haqadeer@amd.com",
        "time": "Fri Aug 14 17:50:24 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Aug 14 09:55:47 2026 -0700"
      },
      "message": "[flang][debug] Emit imported entities in source order (#215845)\n\nThe entities a USE statement brings into a scope were gathered in a\n`DenseSet`, so they reached the subprogram\u0027s retained nodes in an order\nthat follows pointer values. Compiling the same file twice therefore\nproduced different debug information and a different object file, which\nis enough to break a reproducible build.\n\nUse a `SetVector` instead. It keeps the deduplication the code relies on\nand hands the entities back in the order they were created, which is the\norder they appear in the source.\n\nFixes https://github.com/llvm/llvm-project/issues/215827\n\nCo-authored-by: Cursor \u003ccursoragent@cursor.com\u003e\nGitOrigin-RevId: 4cc02503f584aad493a1d0d35bb5afb710a5510b\n"
    },
    {
      "commit": "bdd3a7bf81de07f77b22dc572e31213715eb777c",
      "tree": "b355714d94875fefeb0655d715a534c3b8d0517a",
      "parents": [
        "278929a9b307227cd0caaff45574464c7f8cf84d"
      ],
      "author": {
        "name": "John Otken",
        "email": "john.otken@gmail.com",
        "time": "Fri Aug 14 06:36:35 2026 -0500"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Aug 14 04:40:20 2026 -0700"
      },
      "message": "[flang] Add warning when BOZ literal is too large for assignment (#210749)\n\nGenerate a warning when a BOZ literal assignment does not fit into the\nleft-hand side variable.\n\nAI use disclaimer: Github CoPilot assisted with this PR. I manually\nreviewed and tested the code.\n\nCo-authored-by: John Otken john.otken@hpe.com\n\n---------\n\nCo-authored-by: John Otken \u003cjohn.otken@hpe.com\u003e\nGitOrigin-RevId: a4bea9975fbe73b02dfeffe896695494e1c19df9\n"
    },
    {
      "commit": "278929a9b307227cd0caaff45574464c7f8cf84d",
      "tree": "792995b06a0f8a18a45051afdcf1a75f265e6e06",
      "parents": [
        "8c825075dc64686bcba770cb78e7cb461dd27097"
      ],
      "author": {
        "name": "nudt_yixiao",
        "email": "1272950933@qq.com",
        "time": "Fri Aug 14 05:09:52 2026 +0800"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Aug 13 14:10:58 2026 -0700"
      },
      "message": "[Flang] Avoid crash on invalid EQUIVALENCE objects (#215979)\n\nAn invalid EQUIVALENCE statement may introduce a symbol that is not a\ndata object into later offset computation. ComputeOffsetsHelper assumes\nsuch symbols have ObjectEntityDetails when assigning COMMON block\ninformation, which can cause a crash after a semantic error.\n\nCheck for ObjectEntityDetails before accessing object-specific\ninformation to keep error recovery paths safe.\n\nTest coverage\n- Add a regression test for using a subroutine name as an EQUIVALENCE\nobject.\n\nTests:\n- llvm-lit -v flang/test/Semantics/equivalence-non-data-object.f90\n\nCo-authored-by: yixiao \u003cyixiao@hygon.cn\u003e\nGitOrigin-RevId: 337408048784556bff775dbbceeeb74962e418f7\n"
    },
    {
      "commit": "8c825075dc64686bcba770cb78e7cb461dd27097",
      "tree": "c3a92f86a90751436bfa8ed9fdeeeafa6bbbdf58",
      "parents": [
        "45a7c3b7308fcb5e4ad2435f6be8ad33746384b5"
      ],
      "author": {
        "name": "SunilKuravinakop",
        "email": "98882378+SunilKuravinakop@users.noreply.github.com",
        "time": "Fri Aug 14 00:15:59 2026 +0530"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Aug 13 11:50:44 2026 -0700"
      },
      "message": "[flang][OpenMP] Support for \"atomic compare capture\" (#202315)\n\nAdding support for \"!$omp atomic compare capture\".\n\nThis also Fixes [#202311](https://github.com/llvm/llvm-project/issues/202311)\n\nCo-authored-by: Sunil Kuravinakop \u003ckoops@hpe.com\u003e\nGitOrigin-RevId: e8ff1d1d93728ba488c8a09023c4554030463ced\n"
    },
    {
      "commit": "45a7c3b7308fcb5e4ad2435f6be8ad33746384b5",
      "tree": "9fc324da2433a8507b877bff5849ddcef2f9ef23",
      "parents": [
        "780005af0eee3d03fd5a8d3e7574fb7e9d4f0014"
      ],
      "author": {
        "name": "Jameson Nash",
        "email": "vtjnash@gmail.com",
        "time": "Thu Aug 13 11:45:29 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Aug 13 02:50:36 2026 -0700"
      },
      "message": "[CodeGen] Take the executable stack from a module flag (#215152)\n\nAsmPrinter marked `.note.GNU-stack` executable whenever the module had a\nuse of `llvm.init.trampoline`. This was not compliant with the\ndocumentation for the function, which causes regressions in Julia.\nInstead read a new `\"executable-stack\"` module flag, so that the request\ncomes from the frontend that emitted the code rather than from scanning\nfor an intrinsic and auto-magically (and wrongly) guessing. Update the\ndocumentation to be even more clear about this implementation\u0027s\nexpectations (which matches gcc\u0027s abilities for the same).\n\nFrontends generating code that needs an executable stack now have to set\nthe flag for that purpose. For example, flang will do so from\nBoxedProcedurePass when it emits a stack based trampoline; the\n`-fsafe-trampoline` runtime pool does not need one (nor was the custom\nruntime intrinsics really necessary for `-fsafe-trampoline`, since the\nexisting intrinsic was already defined to support that use case too).\n\nFixes a regression caused by #151754, which introduced new behavior onto\nthe existing intrinsics which wasn\u0027t permitted by the documentation.\nFixes issue with upgrading here:\nhttps://github.com/JuliaLang/julia/pull/62563#issuecomment-5220335991\n\nCo-authored-by: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\nGitOrigin-RevId: f532c2d780d3afe589b43cb920fbc445322d47f7\n"
    },
    {
      "commit": "780005af0eee3d03fd5a8d3e7574fb7e9d4f0014",
      "tree": "1c62e2f18ef78ea6bba9a886d70a921d2800c86c",
      "parents": [
        "d10a9429552916f073dad190019b8bf37cc3effe"
      ],
      "author": {
        "name": "Kareem Ergawy",
        "email": "kergawy@nvidia.com",
        "time": "Thu Aug 13 09:09:06 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Aug 13 00:09:56 2026 -0700"
      },
      "message": "[flang][AArch64] Pass large BIND(C) VALUE derived types indirectly (#215508)\n\nAAPCS64 \"Parameter passing rules\" B.4 states: \"If the argument type is a\nComposite Type that is larger than 16 bytes, then the argument is copied\nto memory allocated by the caller and the argument is replaced by a\npointer to the copy.\" (see:\nhttps://github.com/ARM-software/abi-aa/blob/main/aapcs64/aapcs64.rst#parameter-passing-rules)\n\nFlang instead marked such an argument byval, which lets the target lower\nit as a by-value aggregate placed in the argument stack area, so it\nconsumed no register. A C function that follows the standard expects a\npointer in that register, so the arguments no longer lined up and the\ncallee read the wrong value.\n\nAdd an indirect attribute to the argument marshalling and use it on\nAArch64 for records that are too large to be passed in registers. Like\nbyval it makes the caller copy the value into a temporary and pass its\naddress, but it does not attach the byval attribute to the argument.\nRecords of 16 bytes or less, records passed on the stack because no\nregister is left, and records returned by value are unchanged.\n\nCo-Authored-By: Claude\n\n---------\n\nCo-authored-by: Claude Opus 5 (1M context) \u003cnoreply@anthropic.com\u003e\nGitOrigin-RevId: 487133883a292655bbee36e00fff5bbd0c5223f9\n"
    },
    {
      "commit": "d10a9429552916f073dad190019b8bf37cc3effe",
      "tree": "70cacf3ec3c37607fe545eb77723ac9056e12439",
      "parents": [
        "aa50c3354e51724102d6e1b2c4c1b4338697fd2e"
      ],
      "author": {
        "name": "Jean-Didier PAILLEUX",
        "email": "jean-didier.pailleux@sipearl.com",
        "time": "Thu Aug 13 09:01:30 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Aug 13 00:05:09 2026 -0700"
      },
      "message": "[flang][MIF] Adding common features related to coarray (#215576)\n\nThese features are included in PRs #212777  and #210283.\nThey add utilities for constructing a cosubscripts vector from a\n`CoarrayRef`, a function for retrieving the index image in the initial\nteam, and the lowering for an `hlfir.designate` of a `CoarrayRef`, which\nis treated the same way as an `ArrayRef`.\n\n---------\n\nCo-authored-by: Dan Bonachea \u003cdobonachea@lbl.gov\u003e\nGitOrigin-RevId: 278d49f46cac1997bd4b8236b80d744d96fb3220\n"
    },
    {
      "commit": "aa50c3354e51724102d6e1b2c4c1b4338697fd2e",
      "tree": "b48ea24d01583e321c7ef380cefd4544e1b67f33",
      "parents": [
        "1313fcadf60518586ef8038f60fe26f2f10ef370"
      ],
      "author": {
        "name": "Andre Kuhlenschmidt",
        "email": "akuhlenschmi@nvidia.com",
        "time": "Wed Aug 12 16:05:48 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Aug 12 16:11:32 2026 -0700"
      },
      "message": "[flang][OpenACC] Handle declare actions on CUF allocation ops (#214568)\n\nRecover the typed descriptor from cuf.allocate and cuf.deallocate when\ninserting calls to OpenACC declare-action recipes. Add conversion and\nlowering coverage for pinned allocations.\n\nGitOrigin-RevId: 9cdbd685e15aabf740905cb3ca3c4303b0c3d6e0\n"
    },
    {
      "commit": "1313fcadf60518586ef8038f60fe26f2f10ef370",
      "tree": "e49c1a8a67f6c0f70f5d2aaaf998ceac9065c625",
      "parents": [
        "4be6c46e80b864595b75d3dcbf53a3f5c7283e28"
      ],
      "author": {
        "name": "Alexis Perry-Holby",
        "email": "aperry@lanl.gov",
        "time": "Wed Aug 12 15:47:37 2026 -0600"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Aug 12 14:50:44 2026 -0700"
      },
      "message": "[flang] Add Flang Community Call notes for the August 12th meeting (#215853)\n\nGitOrigin-RevId: fdb39b1112a6db0343de169b79820768bd16c7d9\n"
    },
    {
      "commit": "4be6c46e80b864595b75d3dcbf53a3f5c7283e28",
      "tree": "5a2798ddd73843e779906a495a24bba28cd1b42e",
      "parents": [
        "7d677a82c65c571f3650b4bb02a8ae751d8c42fd"
      ],
      "author": {
        "name": "Razvan Lupusoru",
        "email": "razvan.lupusoru@gmail.com",
        "time": "Wed Aug 12 12:43:55 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Aug 12 12:45:43 2026 -0700"
      },
      "message": "[flang][acc] Ensure location is set for acc routine bind target (#215867)\n\nCurrently when prototype is created for an `acc routine bind` target, it\nreceives unknown location. Update it so that it inherits the location\nfrom the `acc routine` directive that led to this creation in first\nplace.\n\nGitOrigin-RevId: 3658920e395fdeb907c9a3a1c70bffdeaee7096c\n"
    },
    {
      "commit": "7d677a82c65c571f3650b4bb02a8ae751d8c42fd",
      "tree": "2f62be65d9c5a3e8706c1f6672b34891a5f3d1cb",
      "parents": [
        "451aec8179ffde16224e34fd58c186b7aa916423"
      ],
      "author": {
        "name": "Tom Eccles",
        "email": "tom.eccles@arm.com",
        "time": "Wed Aug 12 20:13:28 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Aug 12 12:15:54 2026 -0700"
      },
      "message": "[flang][OpenMP] Revert array element reduction lowering (#215617)\n\nRevert #196094 and its follow-up #209701. The expression override\nmechanism does not preserve reduction-object identity across all data\nenvironments, leading to incorrect lowering for procedure-local and\nnested private arrays.\n\nRestore the pre-#196094 lowering while retaining semantic-context\nplumbing needed by later user-defined reduction support. Keep coverage\nshowing that array-element constructs compile through the boxed-array\nreduction path.\n\nThis was in response to this comment:\nhttps://github.com/llvm/llvm-project/pull/196094#issuecomment-5248085956\n\nFixing exactly the bug in the comment wasn\u0027t hard but AI code review\nfound a large number of follow on bugs so I think the design needs a\nrethink, and definitely shouldn\u0027t be included in the LLVM release.\n\nAssisted-by: Codex\nGitOrigin-RevId: 3d5f915de1f8aaebc478be8d0e77e2737af574ee\n"
    },
    {
      "commit": "451aec8179ffde16224e34fd58c186b7aa916423",
      "tree": "b39a8574e87b32f004a074c6d8fe37eb6625168d",
      "parents": [
        "531d289297b09ad381d8d6e5438f42a30ab3aa5c"
      ],
      "author": {
        "name": "Akash Banerjee",
        "email": "akash.banerjee@amd.com",
        "time": "Wed Aug 12 20:02:21 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Aug 12 12:05:57 2026 -0700"
      },
      "message": "[Flang][OpenMP] Fix nested OpenMP mapper composition (#215639)\n\nGitOrigin-RevId: aae313e3878d96b421cb32ef650f9fec9c66d651\n"
    }
  ],
  "next": "531d289297b09ad381d8d6e5438f42a30ab3aa5c"
}
