comp.lang.ada
 help / color / mirror / Atom feed
From: anon@att.net
Subject: Re: Sharing generic bodies across instantiations.
Date: Tue, 27 Jul 2010 20:06:44 +0000 (UTC)
Date: 2010-07-27T20:06:44+00:00	[thread overview]
Message-ID: <i2ne8j$1i7g$1@news.ett.com.ua> (raw)
In-Reply-To: 4c4e2d69$0$2378$4d3efbfe@news.sover.net

In <4c4e2d69$0$2378$4d3efbfe@news.sover.net>, "Peter C. Chapin" <pcc482719@gmail.com> writes:
>It has been my understanding that Ada's generics are designed in such a
>way as to allow implementations to share the code of a generic body
>across all the instantiations. I understand that doing this might
>involve a performance penalty relative to creating independent code for
>each instantiation. However, I can see that there are cases where such
>sharing would be desirable.
>
>Is my understanding still accurate (was it ever accurate), for example
>even with Ada 2005?
>
>Thanks!
>
>Peter

The Replication versus the Sharing of Generic code was initial based on the 
Ada Optimize pragma statement.  That is, when the users define the option 
of "Time" the Generic code would be replicated, but the "Space" option 
would cause the compiler to share the code body. Not using the pragma 
statement or the Ada 95 "off" option allowed the designer to set an 
implementation default.

Now as for GNAT it uses the optimization based on the GCC back end 
( -OX   where X in 0 .. 4 ). GNAT still preforms a syntactical check of the 
Optimize pragma statement, then treat's the statement as a comment like a 
number of other built-in Ada pragma statement.  Which allows GNAT to 
replicate code and let the GCC handle rather its switches to shared or not. 
And at this time GCC does not understand the Ada's concept replication 
versus the sharing code for optimization.





  parent reply	other threads:[~2010-07-27 20:06 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-07-27  0:51 Sharing generic bodies across instantiations Peter C. Chapin
2010-07-27  3:01 ` Gene
2010-07-27  6:55 ` AdaMagica
2010-07-27 11:29   ` Ludovic Brenta
2010-07-27 14:10     ` Tero Koskinen
2010-07-27 10:51 ` Martin
2010-07-27 20:06 ` anon [this message]
2010-07-27 22:23   ` Peter C. Chapin
2010-07-28  7:59     ` Maciej Sobczak
2010-07-28  9:28       ` Dmitry A. Kazakov
2010-07-28 12:55         ` Maciej Sobczak
2010-07-28 13:16           ` Dmitry A. Kazakov
2010-07-28 19:48             ` Maciej Sobczak
2010-07-29  8:03               ` Dmitry A. Kazakov
2010-07-29 14:02                 ` Maciej Sobczak
2010-07-29 14:40                   ` Dmitry A. Kazakov
2010-07-29 20:27                     ` Maciej Sobczak
2010-07-30  9:09                       ` Dmitry A. Kazakov
2010-07-30 12:31                         ` Maciej Sobczak
2010-07-30 14:59                           ` Dmitry A. Kazakov
2010-08-03  3:02                           ` Randy Brukardt
2010-08-03 14:37                             ` Robert A Duff
2010-08-03  2:47                         ` Randy Brukardt
2010-07-28 20:01             ` Keith Thompson
2010-07-29  7:46               ` Dmitry A. Kazakov
2010-07-28 11:27       ` Peter C. Chapin
2010-07-28 13:10         ` Maciej Sobczak
2010-07-28 16:32           ` Peter C. Chapin
2010-07-28 19:30             ` Robert A Duff
2010-07-28 20:03             ` Maciej Sobczak
2010-07-28 11:47     ` anon
2010-08-03  2:38     ` Randy Brukardt
2010-08-03 14:31       ` Robert A Duff
2010-07-28  0:55   ` Keith Thompson
2010-07-28  8:42     ` Markus Schoepflin
2010-07-28 11:16     ` anon
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox