From: Mikael Morin <[email protected]> This starts a series of patches (funded by STF) to refactor initialisation and updates of array descriptors.
The current API touching array descriptors is mostly limited to a set of getters to pick the value of individual array descriptor fields, and setters to update them. This requires every area of the compiler touching array descriptors to have knowledge of their contents. The final goal of the patches is to remove (most of) the setters from the public API, and replace them with more high level functions providing complete array descriptor updates (say copy descriptor, or shift array bounds) without leaking the detail of the fields that have their values changed under the hood. This first series moves the existing array descriptor functions to a separate file. Mikael Morin (7): fortran: array descriptor: Move accessor functions to a separate file fortran: array descriptor: Move debug info generation function fortran: array descriptor: Move null factory function fortran: array descriptor: Move size and cosize functions fortran: array descriptor: Move bound shift utility function fortran: array descriptor: Move descriptor copy function fortran: array descriptor: Move array growth function gcc/fortran/Make-lang.in | 7 +- gcc/fortran/trans-array.cc | 504 +-------------------------- gcc/fortran/trans-array.h | 33 -- gcc/fortran/trans-decl.cc | 1 + gcc/fortran/trans-descriptor.cc | 580 ++++++++++++++++++++++++++++++++ gcc/fortran/trans-descriptor.h | 67 ++++ gcc/fortran/trans-expr.cc | 1 + gcc/fortran/trans-intrinsic.cc | 1 + gcc/fortran/trans-io.cc | 1 + gcc/fortran/trans-openmp.cc | 1 + gcc/fortran/trans-stmt.cc | 47 +-- gcc/fortran/trans-types.cc | 1 + gcc/fortran/trans.cc | 1 + 13 files changed, 662 insertions(+), 583 deletions(-) create mode 100644 gcc/fortran/trans-descriptor.cc create mode 100644 gcc/fortran/trans-descriptor.h -- 2.51.0
