From: porton@ex-code.com (Victor Porton)
Subject: Re: Eliminating copying in Gnat
Date: Tue, 21 Jan 2003 02:27:56 +0500
Date: 2003-01-20T23:28:37+00:00 [thread overview]
Message-ID: <3e2c8625$0$33922$bed64819@news.gradwell.net> (raw)
In-Reply-To: 3e2b7777$0$33930$bed64819@news.gradwell.net
In article <uiswjamfw.fsf@nasa.gov>,
Stephen Leake <Stephen.A.Leake@nasa.gov> writes:
> porton@ex-code.com (Victor Porton) writes:
>
>> Is it possible to cause Gnat to not do unnecessary copying
>> when calling this fynction?
>>
>> If T is a controlled type, it calls Adjust 3(!) times even if I
>> compile with optimization ("-O3 -gnatN").
>
> Post complete code that demonstrates this; maybe I'll have other
> suggestions.
>
>> It is in Gnat-3.14p. May be it was fixed in Gnat-3.2/3.15p?
I don't see any relevant problems about inlining even if all
warnings are on (however it does not inline an unrelevant library
function). But Adjust is called 3 times :-(
-- m.adb --
with P;
procedure M is
function Pass(X: P.T) return P.T is
pragma Inline(Pass);
begin
return X;
end;
X: P.T;
Y: P.T := Pass(X);
begin
null;
end M;
-- p.ads --
with Ada.Finalization;
package P is
type T is new Ada.Finalization.Controlled with null record;
procedure Adjust(Object: in out T);
end P;
-- p.adb --
with Ada.Text_IO;
package body P is
procedure Adjust (Object: in out T) is
begin
Ada.Text_IO.Put_Line("QWER");
end Adjust;
end P;
next prev parent reply other threads:[~2003-01-20 21:27 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-01-20 4:12 Eliminating copying in Gnat Victor Porton
2003-01-20 14:57 ` Damien CARBONNE
2003-01-20 15:03 ` Lutz Donnerhacke
2003-01-20 18:34 ` Martin Krischik
2003-01-20 15:08 ` Stephen Leake
2003-01-20 21:27 ` Victor Porton [this message]
2003-01-21 12:35 ` Georg Bauhaus
2003-01-21 19:21 ` Robert A Duff
2003-01-21 14:52 ` Stephen Leake
2003-01-21 18:49 ` Martin Krischik
2003-01-21 13:10 ` Victor Porton
2003-01-21 18:40 ` Victor Porton
2003-01-21 20:54 ` Victor Porton
-- strict thread matches above, loose matches on Subject: below --
2003-01-21 13:31 Grein, Christoph
2003-01-21 18:54 ` Randy Brukardt
2003-01-21 19:02 ` Georg Bauhaus
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox