From: Mikael Morin <[email protected]> This is the second part of the array descriptor series.
The goal here is to differenciate reads from writes among array descriptor accesses. This is important because changes to the array descriptor format don't have the same impact on the code generated for either access. Reads can be translated transparently in the new format by calculating a value from the new fields if the old field is not present any more. For writes, on the contrary, the same direct translation of individual field accesses is not possible. These patches introduce getters and setters for descriptor fields that don't have them already, and replace descriptor fields usage with either accessor. Future patches will introduce more high level functions in order to reduce usage of setters outside of trans-descriptor.cc. Previous parts in the series: part 1: https://gcc.gnu.org/pipermail/gcc-patches/2025-October/699114.html Mikael Morin (11): fortran: array descriptor: Use the setter to modify the offset fortran: array descriptor: Add accessors for the elem_len field fortran: array descriptor: Add accessors for the version field fortran: array descriptor: Add accessors for the rank field fortran: array descriptor: Add accessors for the type field fortran: array descriptor: Add accessors for the dtype field fortran: array descriptor: Remove access to the attribute field fortran: array descriptor: Add accessors for the dim field fortran: array descriptor: Add a setter for the token field fortran: array descriptor: Rename dim subfields internal accessors fortran: array descriptor: Add internal field accessor for data gcc/fortran/trans-array.cc | 168 +++++++--------- gcc/fortran/trans-decl.cc | 40 ++-- gcc/fortran/trans-descriptor.cc | 343 ++++++++++++++++++++++++++++---- gcc/fortran/trans-descriptor.h | 26 ++- gcc/fortran/trans-expr.cc | 82 +++----- gcc/fortran/trans-intrinsic.cc | 26 +-- gcc/fortran/trans-openmp.cc | 8 +- gcc/fortran/trans-stmt.cc | 7 +- gcc/fortran/trans.cc | 5 +- 9 files changed, 456 insertions(+), 249 deletions(-) -- 2.51.0
