From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-2.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM, MAILING_LIST_MULTI autolearn=unavailable autolearn_force=no version=3.4.4 X-Google-Thread: 103376,b1f4420d01b2c4eb X-Google-Attributes: gid103376,public,usenet X-Google-Language: ENGLISH,ASCII-7-bit Path: g2news2.google.com!news2.google.com!border1.nntp.dca.giganews.com!border2.nntp.dca.giganews.com!cyclone1.gnilink.net!gnilink.net!cycny01.gnilink.net!hwmnpeer01.lga!hwmnpeer01.ams!news.highwinds-media.com!feed.xsnews.nl!border-1.ams.xsnews.nl!193.201.147.67.MISMATCH!feeder6.cambrium.nl!feed.tweaknews.nl!border2.nntp.ams.giganews.com!nntp.giganews.com!proxad.net!feeder2-2.proxad.net!cleanfeed1-a.proxad.net!nnrp9-2.free.fr!not-for-mail Return-Path: X-Virus-Scanned: amavisd-new at ada-france.org From: Duncan Sands To: comp.lang.ada@ada-france.org Subject: Re: LLVM--Low Level Virtual Machine--and Ada Date: Wed, 25 Jul 2007 15:14:20 +0200 User-Agent: KMail/1.9.7 References: <1184730995.862147.208590@g12g2000prg.googlegroups.com> In-Reply-To: MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Disposition: inline Cc: Robert A Duff X-BeenThere: comp.lang.ada@ada-france.org X-Mailman-Version: 2.1.9rc1 Precedence: list List-Id: "Gateway to the comp.lang.ada Usenet newsgroup" List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Newsgroups: comp.lang.ada Message-ID: X-Leafnode-NNTP-Posting-Host: 88.191.17.134 Organization: Guest of ProXad - France NNTP-Posting-Date: 25 Jul 2007 15:15:03 MEST NNTP-Posting-Host: 88.191.14.223 X-Trace: 1185369303 news-2.free.fr 17401 88.191.14.223:45341 X-Complaints-To: abuse@proxad.net Xref: g2news2.google.com comp.lang.ada:1169 X-Original-Bytes: 3283 Date: 2007-07-25T15:15:03+02:00 > > That's not quite true, as the use of displays rather than static links would > > allow up-level access without any fat pointers. > > I don't get it (how displays help, here). If you have displays instead > of static links, you need to pass display, or pointers to them. I was wondering the same thing. > >> Trampolines are not efficient! Because after writing the code, the > >> instruction cache needs to be flushed before calling the thing -- that > >> is expensive on modern machines. > > > > True. Thunks have similar issues in that the address of the thing isn't > > known before the call (so there is a pipeline stall), but at least we don't > > have to flush the cache. And there sometimes is the possibility of in-lining > > the call (something we don't currently do, but it is on the radar). > > Trampolines are worse than thunks, efficiency-wise. > > But it's only in Ada 2005 that it started to matter much. In programs that use Ada.Containers heavily, my profiling tools regularly show "code on the stack" (i.e. trampolines) as where the program is spending most of its time. Ciao, Duncan.