comp.lang.ada
 help / color / mirror / Atom feed
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;



  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