[flang-commits] [flang] [flang][docs] Document multi-image support status (PR #209025)

Dan Bonachea via flang-commits flang-commits at lists.llvm.org
Sun Jul 12 07:44:28 PDT 2026


https://github.com/bonachea created https://github.com/llvm/llvm-project/pull/209025

Update `flang/docs/FortranStandardsSupport.md` to reflect the current state of multi-image (coarray) feature support.

The previous list of multi-image features was incomplete, and several multi-image features added in F2008 were inaccurately listed in the F2018 section.

Recent PRs adding functionality now reflected in this document include:
* #205847
* #192944
* #182110

Older (pre-22) PRs adding functionality that was not previously mentioned include:
* #154081
* #154166




>From b26aa0ea1af9e9d6d1aca46b589c0563642b79b0 Mon Sep 17 00:00:00 2001
From: Dan Bonachea <dobonachea at lbl.gov>
Date: Sat, 11 Jul 2026 19:25:15 -0700
Subject: [PATCH 1/2] FortranStandardsSupport: Move incorrectly filed features

Some multi-image features previously incorrectly appeared in the F2018
section, but these are all F2008 features.
---
 flang/docs/FortranStandardsSupport.md | 11 +++++------
 1 file changed, 5 insertions(+), 6 deletions(-)

diff --git a/flang/docs/FortranStandardsSupport.md b/flang/docs/FortranStandardsSupport.md
index 5c303feacfa5e..bf4a46713aeb8 100644
--- a/flang/docs/FortranStandardsSupport.md
+++ b/flang/docs/FortranStandardsSupport.md
@@ -73,15 +73,10 @@ the multi-image execution. The table entries are based on the document [The new
 | Change team construct                                      | P      | Experimental support via [PRIF](ParallelMultiImageFortranRuntime.md) |
 | Sync team construct                                        | P      | Experimental support via [PRIF](ParallelMultiImageFortranRuntime.md) |
 | Intrinsic functions get_team and team_number               | P      | Experimental support via [PRIF](ParallelMultiImageFortranRuntime.md) |
-| Intrinsic function image_index                             | P      | Experimental support via [PRIF](ParallelMultiImageFortranRuntime.md) |
-| Intrinsic function num_images                              | P      | Experimental support via [PRIF](ParallelMultiImageFortranRuntime.md) |
-| Intrinsic function this_image                              | P      | Experimental support via [PRIF](ParallelMultiImageFortranRuntime.md) |
 | Image failure and stat= specifiers                         | P      | Multi-image/Coarray feature. stat_failed_image is added |
 | Coarrays allocated in teams                                | N      | Multi-image/Coarray feature |
 | Critical construct                                         | N      | Multi-image/Coarray feature |
-| Lock and unlock statements                                 | N      | Multi-image/Coarray feature |
 | Events                                                     | N      | Multi-image/Coarray feature |
-| Image selectors                                            | N      | Multi-image/Coarray feature |
 | Intrinsic move_alloc extensions                            | P      | Multi-image/Coarray feature |
 | Detecting failed and stopped images                        | N      | Multi-image/Coarray feature |
 | New and enhanced atomic subroutines                        | N      | Multi-image/Coarray feature |
@@ -92,9 +87,13 @@ All features except those listed in the following table are supported.
 
 | Feature                                                    | Status | Comments                                                |
 |------------------------------------------------------------|--------|---------------------------------------------------------|
-| Coarrays                                                   | N      | Lowering and runtime support is not implemented         |
 | do concurrent                                              | P      | Sequential execution works. Parallel support in progress|
 | Internal procedure as an actual argument or pointer target | Y      | Current implementation requires stack to be executable. See [FAQ](FAQ.md#why-do-i-get-a-warning-or-an-error-about-an-executable-stack) and [Proposal](InternalProcedureTrampolines.md) |
+| Intrinsic functions this_image, num_images                 | P      | Experimental support via [PRIF](ParallelMultiImageFortranRuntime.md) |
+| Coarrays                                                   | N      | Lowering and runtime support is not implemented         |
+| Intrinsic function image_index                             | P      | Experimental support via [PRIF](ParallelMultiImageFortranRuntime.md) |
+| Image selectors (coindexed access)                         | N      | Multi-image/Coarray feature |
+| Lock and unlock statements                                 | N      | Multi-image/Coarray feature |
 
 ## Fortran 2003
 All features except those listed in the following table are supported.

>From 7ac1ff206499b9076a96bd5afbf4904c6e5f2030 Mon Sep 17 00:00:00 2001
From: Dan Bonachea <dobonachea at lbl.gov>
Date: Sat, 11 Jul 2026 19:28:49 -0700
Subject: [PATCH 2/2] FortranStandardsSupport: Update and expand multi-image
 support status

---
 flang/docs/FortranStandardsSupport.md | 23 +++++++++++++----------
 1 file changed, 13 insertions(+), 10 deletions(-)

diff --git a/flang/docs/FortranStandardsSupport.md b/flang/docs/FortranStandardsSupport.md
index bf4a46713aeb8..51f03e164523e 100644
--- a/flang/docs/FortranStandardsSupport.md
+++ b/flang/docs/FortranStandardsSupport.md
@@ -50,9 +50,9 @@ status of all important Fortran 2023 features. The table entries are based on th
 | The at edit descriptor                                     | N      | |
 | Control over leading zeros in output of real values        | Y      | |
 | Extensions for Namelist                                    | N      | |
-| Allow an object of a type with a coarray ultimate component to be an array or allocatable | N | |
-| Put with Notify                                            | N      | |
-| Error conditions in collectives                            | N      | |
+| Allow an object of a type with a coarray ultimate component to be an array or allocatable | N | Multi-image/Coarray feature |
+| Put with Notify                                            | N      | Multi-image/Coarray feature |
+| Error conditions in collectives                            | P      | Experimental support via [PRIF](ParallelMultiImageFortranRuntime.md) |
 | Simple procedures                                          | N      | |
 | Using integer arrays to specify subscripts                 | N      | |
 | Using integer arrays to specify rank and bound of an array | N      | |
@@ -68,19 +68,19 @@ the multi-image execution. The table entries are based on the document [The new
 |------------------------------------------------------------|--------|---------------------------------------------------------|
 | Asynchronous communication                                 | P      | Syntax is accepted |
 | Collective subroutines                                     | P      | Experimental support via [PRIF](ParallelMultiImageFortranRuntime.md), missing co_reduce |
-| Teams                                                      | P      | Experimental support via [PRIF](ParallelMultiImageFortranRuntime.md) |
+| Intrinsic function coshape                                 | P      | Experimental support via [PRIF](ParallelMultiImageFortranRuntime.md) |
 | Form team statement                                        | P      | Experimental support via [PRIF](ParallelMultiImageFortranRuntime.md) |
-| Change team construct                                      | P      | Experimental support via [PRIF](ParallelMultiImageFortranRuntime.md) |
-| Sync team construct                                        | P      | Experimental support via [PRIF](ParallelMultiImageFortranRuntime.md) |
+| Change team construct                                      | P      | Experimental support via [PRIF](ParallelMultiImageFortranRuntime.md), missing coarray association |
+| Sync team statement                                        | P      | Experimental support via [PRIF](ParallelMultiImageFortranRuntime.md) |
 | Intrinsic functions get_team and team_number               | P      | Experimental support via [PRIF](ParallelMultiImageFortranRuntime.md) |
-| Image failure and stat= specifiers                         | P      | Multi-image/Coarray feature. stat_failed_image is added |
+| Team arguments to other intrinsics                         | P      | Experimental support via [PRIF](ParallelMultiImageFortranRuntime.md) |
 | Coarrays allocated in teams                                | N      | Multi-image/Coarray feature |
 | Critical construct                                         | N      | Multi-image/Coarray feature |
 | Events                                                     | N      | Multi-image/Coarray feature |
 | Intrinsic move_alloc extensions                            | P      | Multi-image/Coarray feature |
 | Detecting failed and stopped images                        | N      | Multi-image/Coarray feature |
 | New and enhanced atomic subroutines                        | N      | Multi-image/Coarray feature |
-| Intrinsic function coshape                                 | N      | Multi-image/Coarray feature |
+| Image failure and stat= specifiers                         | P      | Multi-image/Coarray feature. stat_failed_image is added |
 
 ## Fortran 2008
 All features except those listed in the following table are supported.
@@ -90,9 +90,12 @@ All features except those listed in the following table are supported.
 | do concurrent                                              | P      | Sequential execution works. Parallel support in progress|
 | Internal procedure as an actual argument or pointer target | Y      | Current implementation requires stack to be executable. See [FAQ](FAQ.md#why-do-i-get-a-warning-or-an-error-about-an-executable-stack) and [Proposal](InternalProcedureTrampolines.md) |
 | Intrinsic functions this_image, num_images                 | P      | Experimental support via [PRIF](ParallelMultiImageFortranRuntime.md) |
-| Coarrays                                                   | N      | Lowering and runtime support is not implemented         |
-| Intrinsic function image_index                             | P      | Experimental support via [PRIF](ParallelMultiImageFortranRuntime.md) |
+| Sync all, sync images, sync memory statements              | P      | Experimental support via [PRIF](ParallelMultiImageFortranRuntime.md) |
+| Non-allocatable save coarrays of intrinsic type            | P      | Experimental support via [PRIF](ParallelMultiImageFortranRuntime.md) |
+| Other coarray data objects                                 | N      | Multi-image/Coarray feature |
+| Intrinsic functions image_index, ucobound, lcobound        | P      | Experimental support via [PRIF](ParallelMultiImageFortranRuntime.md) |
 | Image selectors (coindexed access)                         | N      | Multi-image/Coarray feature |
+| Atomic subroutines                                         | N      | Multi-image/Coarray feature |
 | Lock and unlock statements                                 | N      | Multi-image/Coarray feature |
 
 ## Fortran 2003



More information about the flang-commits mailing list