This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [Patch, fortran] PR37577 - [meta-bug] change internal array descriptor format for better syntax, C interop TR, rank 15
- From: Thomas Koenig <tkoenig at netcologne dot de>
- To: Janne Blomqvist <blomqvist dot janne at gmail dot com>, Paul Richard Thomas <paul dot richard dot thomas at gmail dot com>
- Cc: "fortran at gcc dot gnu dot org" <fortran at gcc dot gnu dot org>, gcc-patches <gcc-patches at gcc dot gnu dot org>
- Date: Mon, 22 Jan 2018 21:24:17 +0100
- Subject: Re: [Patch, fortran] PR37577 - [meta-bug] change internal array descriptor format for better syntax, C interop TR, rank 15
- Authentication-results: sourceware.org; auth=none
- References: <CAGkQGiJiq_VhOpFb98bNJB_ixyX7G5_8EWc+4RGpd7EkakpsOg@mail.gmail.com> <CAO9iq9F17yJ+1sbxoBZ9mNcSsivEqDAPPwjm2VKdJpxSZXAQng@mail.gmail.com>
Am 22.01.2018 um 20:59 schrieb Janne Blomqvist:
On Mon, Jan 22, 2018 at 9:12 PM, Paul Richard Thomas
<paul.richard.thomas@gmail.com> wrote:
This patch has been triggered by Thomas's recent message to the list.
Not only did I start work late relative to stage 3 but debugging took
somewhat longer than anticipated. Therefore, to get this committed
asap, we will have to beg the indulgence of the release managers and
prompt review and/or testing by fortran maintainers. (Dominique has
already undertaken to test -m32.)
I think that if we can "guarantee" that we're happy with the current
ABI for GCC 9 (and hopefully 10, 11, ...?) we have a quite strong case
for committing it now. But if anybody if planning on doing some
ABI-breaking work in the foreseeable future then maybe we should wait
until GCC 9 stage1 opens. Anybody with such plans?
For asynchronous I/O, we could add a pointer to void (unused at
present) for later use. That's all from my side.
It should be noted that some of the intrinsics, which use switch/case
for the type/kind selection, limit the effective element size that
they handle to the maximum value of size_t, less 7 bits. A bit of
straightforward work there would fix this limitation and would allow
the GFC_DTYPE shifts and masks to be eliminated.
Hmm, is this a hidden ABI break, then?
No.
This concerns code like
type_size = GFC_DTYPE_TYPE_SIZE(array);
switch(type_size)
{
case GFC_DTYPE_LOGICAL_1:
case GFC_DTYPE_INTEGER_1:
case GFC_DTYPE_DERIVED_1:
pack_i1 ((gfc_array_i1 *) ret, (gfc_array_i1 *) array,
(gfc_array_l1 *) mask, (gfc_array_i1 *) vector);
return;
for example in patck_generic.c.
I think that, if we commit Paul's patch now, we can then fix these cases
before gcc 8 is released. This is rather straigtforward.
Regards
Thomas