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.
next prev 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