comp.lang.ada
 help / color / mirror / Atom feed
From: ak@muc.de
Subject: Re: Performance Ada and C
Date: 1998/07/04
Date: 1998-07-04T00:00:00+00:00	[thread overview]
Message-ID: <m3yaual5ms.fsf@fred.muc.de> (raw)
In-Reply-To: 359D4C6F.5691A370@cl.cam.ac.uk


Markus Kuhn <Markus.Kuhn@cl.cam.ac.uk> writes:
> 
> Basically the only difference is that I replaced the macros in the C
> version by inline functions. Are as far as performance and optimization
> are concerned, I just think of inlined functions as a sort of macros
> with type checking, so this should not cause the difference.

At least in the C frontend inline functions are not equivalent to macros
(in contrary to the documenation). The gcc backend seems to miss several
optimizations that it does with C-style macros (mainly CSE). Also the 
register allocator (on x86) seems to have some problems with inline functions.

I assume Gnat has the same problem. 

egcs-current has a new GCSE pass that might help a bit, but there are 
still other problems (e.g. if you work with objects gcc is very bad to
keep small objects in registers if you use inline functions - it always
flushes them at the border of the inline etc.)

-Andi

P.S.: Is something like the Stepanov Benchmark available for Ada95? 




  reply	other threads:[~1998-07-04  0:00 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <35921271.E51E36DF@aonix.fr>
     [not found] ` <3598358A.73FF35CC@pipeline.com>
     [not found]   ` <dewar.899298949@merv>
1998-07-03  0:00     ` Performance Ada and C, was Re: Size code Ada and C Van Snyder
1998-07-03  0:00       ` Performance " Markus Kuhn
1998-07-03  0:00         ` Robert Dewar
1998-07-03  0:00           ` Markus Kuhn
1998-07-04  0:00             ` ak [this message]
1998-07-07  0:00             ` Frank Klemm
1998-07-13  0:00               ` Daren Scot Wilson
     [not found] ` <m3zpf1tyr8.fsf@zaphod.enst.fr>
     [not found]   ` <6mtiv0$9j3@gcsin3.geccs.gecm.com>
     [not found]     ` <dewar.898962846@merv>
     [not found]       ` <6n8393$hoi$2@platane.wanadoo.fr>
     [not found]         ` <6n84im$79q@gcsin3.geccs.gecm.com>
     [not found]           ` <m3u35470ds.fsf@zaphod.enst.fr>
     [not found]             ` <6n8b7u$9hm@gcsin3.geccs.gecm.com>
     [not found]               ` <m3vhpk5f0d.fsf@zaphod.enst.fr>
     [not found]                 ` <3597db2d.1017430@news.demon.co.uk>
     [not found]                   ` <EACHUS.98Jun30173656@spectre.mitre.org>
1998-07-03  0:00                     ` Size code " John McCabe
1998-07-03  0:00                       ` Larry Elmore
1998-07-03  0:00                         ` John McCabe
1998-07-07  0:00                         ` Robert I. Eachus
     [not found]         ` <dewar.899298821@merv>
1998-07-07  0:00           ` Robert I. Eachus
     [not found]       ` <6n7jut$al0$1@nnrp1.dejanews.com>
     [not found]         ` <6navqt$shc$1@goanna.cs.rmit.edu.au>
     [not found]           ` <359A53E2.41C6@lanl.gov>
     [not found]             ` <dewar.899334821@merv>
     [not found]               ` <6nfp0v$dgl@gcsin3.geccs.gecm.com>
1998-07-02  0:00                 ` Ariane 5 failure (Was: Size code Ada and C) Jean-Pierre Rosen
1998-07-03  0:00             ` robin
1998-07-02  0:00               ` William Clodius
1998-07-09  0:00             ` Plenty of unnecessary contraint tests " Frank Klemm
1998-07-09  0:00               ` Robert Dewar
1998-07-10  0:00                 ` Frank Klemm
1998-07-10  0:00               ` Ariane 5 failure " Dale Stanbrough
1998-07-10  0:00                 ` John McCabe
1998-07-10  0:00                   ` Frank Klemm
1998-07-10  0:00                   ` Pat Rogers
1998-07-10  0:00               ` Plenty of unnecessary contraint tests " Robert S. White
replies disabled

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