Complex numbers support: discussions summary
Toon Moene
toon@moene.org
Tue Sep 26 18:40:20 GMT 2023
On 9/26/23 09:30, Richard Biener via Gcc wrote:
> On Mon, Sep 25, 2023 at 5:17 PM Sylvain Noiry via Gcc <gcc@gcc.gnu.org> wrote:
>> As I said at the end of the presentation, we have written a paper which
>> explains
>> our implementation in details. You can find it on the wiki page of the
>> Cauldron
>> (https://gcc.gnu.org/wiki/cauldron2023talks?action=AttachFile&do=view&target=Exposing+Complex+Numbers+to+Target+Back-ends+%28paper%29.pdf).
>
> Thanks for the detailed presentation at the Cauldron.
>
> My personal summary is that I'm less convinced delaying lowering is
> the way to go.
Thanks Sylvain for the quick summary of the discussion - it helps a
great deal now that the discussion is still fresh in our memory.
Some thought I came up with (of course, only after the end of the
conference):
In what way is the handling of the complex type different from that of
the 128 bit real (i.e., float) type ?
Both are not implemented on most architectures; on most they require two
registers (or possibly two memory location that do not necessarily have
to be adjacent) to be implemented.
Yet both are supported by the middle end - consider the clear
equivalence of the handling of variables a and b when looking at the
result of -fdump-tree-ssa (on x86_64) for:
cat 128.f90
parameter (iq=kind(1q0))
real(kind=iq) :: a, b
read*, a, b
print*, a / b
end
and:
cat complex.f90
complex a,b
read*,a,b
print*,a/b
end
Hope this helps for a continuing fruitful discussion.
Kind regards,
--
Toon Moene - e-mail: toon@moene.org - phone: +31 346 214290
Saturnushof 14, 3738 XG Maartensdijk, The Netherlands
More information about the Gcc
mailing list