comp.lang.ada
 help / color / mirror / Atom feed
From: "Martin Krischik" <Martin.Krischik@T-Online.de>
Subject: Re: Eliminating copying in Gnat
Date: Tue, 21 Jan 2003 19:49:16 +0100
Date: 2003-01-21T19:49:16+01:00	[thread overview]
Message-ID: <pan.2003.01.21.18.49.08.442915@T-Online.de> (raw)
In-Reply-To: 3e2c8625$0$33922$bed64819@news.gradwell.net

On Tue, 21 Jan 2003 02:27:56 +0500, Victor Porton wrote:

> Path:
> 	news.t-online.com!newsmm00.sul.t-online.com!newsfeed01.sul.t-online.de!t-on
> 	line.de!newsfeed.stueberl.de!news-peer.gradwell.net!not-for-mail
> Message-ID: <3e2c8625$0$33922$bed64819@news.gradwell.net>
> From: porton@ex-code.com (Victor Porton)
> Newsgroups: comp.lang.ada
> Subject: Re: Eliminating copying in Gnat
> Date: Tue, 21 Jan 2003 02:27:56 +0500
> References: <3e2b7777$0$33930$bed64819@news.gradwell.net>
> Lines: 48
> Organization: Extreme Code Software (http://ex-code.com)
> X-Newsreader: knews 1.0b.1
> X-URL: http://www.ex-code.com/
> NNTP-Posting-Date: 20 Jan 2003 23:28:37 GMT
> NNTP-Posting-Host: 195.149.39.13
> X-Trace: 1043105317 news.gradwell.net 33922 mail2news/195.149.39.13
> X-Complaints-To: news-abuse@gradwell.net
> Xref: linux1.krischik.com comp.lang.ada:410
> MIME-Version: 1.0
> Content-Type: text/plain; charset=us-ascii
> 
> 
> In article <uiswjamfw.fsf@nasa.gov>,
> 	Stephen Leake <Stephen.A.Leake@nasa.gov> writes:

> I don't see any relevant problems about inlining even if all
> warnings are on

Pass is not metioned inside the m.ads (the is no m.ads?!) so the position of
the pragma inline should be ok.

> (however it does not inline an unrelevant library 
> function). But Adjust is called 3 times :-(

3 is indeed strange. I would expect 2. One into the function and one for
the return.
 
> -- 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);

are you shure that all Adjust are part of this statement. Prehaps you like
to ann anther line: 

      Z: P:T := Pass(x);

and see of the count goes up to 5 or 6.

> 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;

-- 
Martin Krischik
mailto://Martin@krischik.com
http://www.martin.krischik.com




  parent reply	other threads:[~2003-01-21 18:49 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
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 [this message]
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