[flang-commits] [flang] Parallel runtime library design doc (PRIF) (PR #76088)
Brad Richardson via flang-commits
flang-commits at lists.llvm.org
Wed Jul 17 10:31:43 PDT 2024
everythingfunctional wrote:
We've just produced a new revision of this document, for those interested in reviewing a nicely formatted version, the following link provides a PDF:
http://doi.org/10.25344/S4WG64
The changes from the previous revision are:
* Changes to Coarray Access (puts and gets):
- Refactor to provide separate procedure interfaces for the various combinations of:
direct vs indirect target location, puts with or without a *notify-variable*,
direct vs indirect *notify-variable* location, and strided vs contiguous data access.
- Add discussion of direct and indirect location accesses to
the Design Decisions and Impact section
- Rename `_raw_` procedures to `_indirect_`
- Replace `cosubscripts`, `team`, and `team_number` arguments with `image_num`
- Replace `first_element_addr` arguments with `offset`
- Replace `type(*)` `value` arguments with `size` and `current_image_buffer`
- Rename `remote_ptr_stride` arguments to `remote_stride`
- Rename `current_image_buffer_stride` arguments to `current_image_stride`
- Rename `size` arguments to `size_in_bytes`
* Other changes to PRIF procedure interfaces:
- Establish a new uniform argument ordering across all non-collective
communication procedures
- Remove `prif_base_pointer`. Direct access procedures should be used instead.
- Add direct versions of `prif_event_post`, `prif_lock`, and
`prif_unlock` and rename previous versions to `..._indirect`
- Convert `prif_num_images` into three different procedures with no
optional arguments, in order to more closely align with the
Fortran standard. Do the same with `prif_image_index`.
- Correct the kind for atomic procedures from `atomic_int_kind` to `PRIF_ATOMIC_INT_KIND`
and from `atomic_logical_kind` to `PRIF_ATOMIC_LOGICAL_KIND`
- Remove target attribute from `coarray_handles` argument in `prif_deallocate_coarray`
- Rename `element_length` argument in `prif_allocate_coarray` to `element_size`
- Rename `image_index` argument in `prif_this_image_no_coarray` to `this_image`
- Remove generic interfaces throughout
* Miscellaneous new features:
- Allow multiple calls to `prif_init` from each process, and add
`PRIF_STAT_ALREADY_INIT` constant
- Add new PRIF-specific constants `PRIF_VERSION_MAJOR` and `PRIF_VERSION_MINOR`
* Narrative and editorial improvements:
- Add/improve Common Arguments subsections and add links to them
below procedure interfaces
- Elide argument lists for all procedures and add prose explaining
how the PRIF specification presents the procedure interfaces
- Add client notes to subsections introducing PRIF Types, and permute subsection order
- Add guidance to clients regarding coarray dummy arguments
- Remove grammar non-terminals, including `coindexed-named-object`
- Add several terms to the glossary
- Numerous minor wording changes throughout
https://github.com/llvm/llvm-project/pull/76088
More information about the flang-commits
mailing list