comp.lang.ada
 help / color / mirror / Atom feed
From: Duncan Sands <baldrick@free.fr>
To: comp.lang.ada@ada-france.org
Cc: Randy Brukardt <randy@rrsoftware.com>
Subject: Re: GNAT Optimization of Constant Expressions
Date: Fri, 18 May 2007 19:35:23 +0200
Date: 2007-05-18T19:35:23+02:00	[thread overview]
Message-ID: <mailman.153.1179509730.18371.comp.lang.ada@ada-france.org> (raw)
In-Reply-To: <f2kn4p$av6$1@jacob-sparre.dk>

Hi Randy,

> That doesn't match the OP's original description of the problem. He said
> that declaring constants in front of the expression made it run fast, even
> if they were *not used* in the expression in the loop. That could only
> happen if the compiler did a common subexpression elimination in that case,
> and a common subexpression elimination is *only* valid on a function call if
> it is Pure. (Other functions could have significant side effects that
> eliminating the extra calls would make the program incorrect, for example if
> the function is a random number generator.)
> 
> I think it is more likely that it didn't recognize the functions as being
> worth hoisting (there is only one instance of each in the original program)
> or it didn't do so because of other concerns. In thinking about it now, the
> former is probably more likely.

while what you say is very logical, unfortunately it seems to be wrong: I
checked and these functions are not being marked pure.  So how come declaring
a constant helps?  I don't know - I didn't look into it yet.

Ciao,

Duncan.



  reply	other threads:[~2007-05-18 17:35 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-05-16 22:37 GNAT Optimization of Constant Expressions David Smith
2007-05-17  4:50 ` Randy Brukardt
2007-05-17 20:03   ` Gautier
2007-05-17 20:46     ` Randy Brukardt
2007-05-17 22:49       ` David Smith
2007-05-17 23:38         ` Randy Brukardt
2007-05-18  7:58           ` Dmitry A. Kazakov
2007-05-18 11:27           ` Georg Bauhaus
2007-05-18 17:28             ` Randy Brukardt
2007-05-18 16:25       ` Ray Blaak
2007-05-18 17:40         ` Randy Brukardt
2007-05-18 22:51           ` Adam Beneschan
2007-05-19  2:44             ` Randy Brukardt
2007-05-18  9:05   ` Markus E Leypold
2007-05-18  9:47   ` Florian Weimer
2007-05-18 11:32     ` Duncan Sands
2007-05-18 17:20     ` Randy Brukardt
2007-05-18 17:35       ` Duncan Sands [this message]
     [not found]       ` <200705181935.23877.baldrick@free.fr>
2007-05-18 17:49         ` Duncan Sands
2007-05-17  5:30 ` Martin Krischik
2007-05-18  9:56 ` Duncan Sands
2007-05-18 15:39   ` David Smith
2007-05-18 17:08     ` Duncan Sands
     [not found]     ` <200705181908.54920.baldrick@free.fr>
2007-05-18 17:32       ` Duncan Sands
replies disabled

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