comp.lang.ada
 help / color / mirror / Atom feed
From: Florian Weimer <fw@deneb.enyo.de>
Subject: Re: GNAT Optimization of Constant Expressions
Date: Fri, 18 May 2007 11:47:50 +0200
Date: 2007-05-18T11:47:50+02:00	[thread overview]
Message-ID: <87k5v631kp.fsf@mid.deneb.enyo.de> (raw)
In-Reply-To: f2gmpv$raj$1@jacob-sparre.dk

* Randy Brukardt:

> As such, the compiler has to do a loop-hoisting optimization in order to
> pre-evaluate these function calls. I suspect that from your results, Gnat
> doesn't do such an optimization in this case. That doesn't surprise me, a
> loop hoist can make the program run slower if the loop is never executed.

Not really.  I suppose GCC special-cases the zero times case anyway
because it transforms the loop into a do-while-style loop, which is
easier to optimize.

It's more likely that the run-time library lacks a few Pure_Function
pragmas, so the compiler does not know that it's a constant
expression.  Ideally, GNAT would translate the function calls to GCC
built-in calls, so that they can be expanded at compile time.  This
optimization probably kicks in for C and Fortran, whose front ends are
more closely aligned with the rest of the compiler.



  parent reply	other threads:[~2007-05-18  9:47 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 [this message]
2007-05-18 11:32     ` Duncan Sands
2007-05-18 17:20     ` Randy Brukardt
2007-05-18 17:35       ` Duncan Sands
     [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