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=-1.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM autolearn=ham autolearn_force=no version=3.4.4 X-Google-Thread: 103376,314d661a32522d8a X-Google-Attributes: gid103376,domainid0,public,usenet X-Google-Language: ENGLISH,ASCII-7-bit Path: g2news1.google.com!postnews.google.com!s50g2000hsb.googlegroups.com!not-for-mail From: baldrick Newsgroups: comp.lang.ada Subject: Re: Announcement: GNAT ported to LLVM Date: Thu, 27 Mar 2008 01:27:55 -0700 (PDT) Organization: http://groups.google.com Message-ID: References: <87iqzco4n7.fsf@willow.rfc1149.net> <7e6246de-2ac0-4311-8047-ae88ea4ccb38@i29g2000prf.googlegroups.com> <76f13aae-d11f-4ffa-b4d1-ad3d597598d8@a70g2000hsh.googlegroups.com> NNTP-Posting-Host: 129.175.50.15 Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Trace: posting.google.com 1206606476 23616 127.0.0.1 (27 Mar 2008 08:27:56 GMT) X-Complaints-To: groups-abuse@google.com NNTP-Posting-Date: Thu, 27 Mar 2008 08:27:56 +0000 (UTC) Complaints-To: groups-abuse@google.com Injection-Info: s50g2000hsb.googlegroups.com; posting-host=129.175.50.15; posting-account=H52IZQoAAAAXM-RV35eCd20PYXCi5WQf User-Agent: G2/1.0 X-HTTP-UserAgent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9b4) Gecko/2008031317 Firefox/3.0b4,gzip(gfe),gzip(gfe) Xref: g2news1.google.com comp.lang.ada:20599 Date: 2008-03-27T01:27:55-07:00 List-Id: Hi Gene, > I assume that due to the link-time optimization capability that > inlining among packages will be handled naturally. that's correct: you can compile each package to bitcode, then at link-time they will all be mutually optimized, including inlining into each other. You can also compile the entire runtime to bitcode and have that be mutually optimized with your code too. I didn't turn this on by default because currently link-time-optimization is not transparent: you have to explicitly call some LLVM tools at link time. There's a plan to teach llvm-gcc to do this automagically when you use it to do linking. > GNAT-gcc can't do that, right? It can to some extent: if you use -O2 -gnatn then it will peek inside the bodies of packages you are using to try to inline functions. That functionality becomes a lot less useful now though. > This alone ought to be a big deal as accessor/setter > conventions are leading to programs filled with tiny procedures and > functions. Very true, and I guess that's why ACT implemented -gnatn.