comp.lang.ada
 help / color / mirror / Atom feed
From: Maciej Sobczak <no.spam@no.spam.com>
Subject: Re: where exactly c++,c fail and Ada gets thru'
Date: Fri, 28 Apr 2006 14:27:27 +0200
Date: 2006-04-28T14:27:27+02:00	[thread overview]
Message-ID: <e2t1ne$n3i$1@sunnews.cern.ch> (raw)
In-Reply-To: <1146207623.635562.289570@i39g2000cwa.googlegroups.com>

Martin Krischik wrote:

> The point is - of corse -  it that the semantic tree of the Ada
> compiler contains the information that X will be in the range of (1 ..
> 5) and then the optimizer can easily calculate that (1 .. 5) + 3 < 10
> and then optimize away the check.
> 
> The sematinc tree of the C++ will contain the information that X is in
> the range of (-2*32 .. +2*32-1) and that is a pretty useless
> information to the optimizer.

Except that the optimizer is not limited to use only this information.
With the two example ranges (1..5 and 1..10) the result of inlining will 
be that the following operations - all operating on the single value - 
will be placed one after another:

1. compare against 5
2. add 3
3. compare against 10

It doesn't take a rocket scientist to deduce that the third operation 
has a dead branch and can be therefore eliminated.

Of course, Ada provides more information to the compiler and the more 
information the compiler has, the wider are the optimization 
opportunities, therefore languages with richer type systems are easier 
to optimize. Nobody questions that. But this is very far from the 
optimization being guaranteed in Ada or impossible in C++ - neither is 
the case.


-- 
Maciej Sobczak : http://www.msobczak.com/
Programming    : http://www.msobczak.com/prog/



  reply	other threads:[~2006-04-28 12:27 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-04-24  4:19 where exactly c++,c fail and Ada gets thru' Ananth the Boss
2006-04-24  5:05 ` jimmaureenrogers
2006-04-24  7:45   ` Ananth the Boss
2006-04-24 19:17   ` Martin Krischik
2006-04-24 20:23   ` Simon Wright
2006-04-24 22:34     ` Keith Thompson
2006-04-24 22:33   ` Keith Thompson
2006-04-25  5:23     ` Jeffrey R. Carter
2006-04-26 17:48     ` Martin Krischik
2006-04-26 19:33       ` Keith Thompson
2006-04-26 15:10   ` Maciej Sobczak
2006-04-26 17:32     ` Martin Krischik
2006-04-27 10:07       ` Maciej Sobczak
2006-04-27 21:19         ` Keith Thompson
2006-04-28  7:00         ` Martin Krischik
2006-04-28 12:27           ` Maciej Sobczak [this message]
2006-04-29  7:03             ` Martin Krischik
2006-04-29 14:08               ` REH
2006-05-01 10:20                 ` Xcriber51
2006-05-01 13:55                   ` REH
2006-05-02  6:43               ` Maciej Sobczak
2006-04-27 16:48       ` REH
2006-04-28  7:49         ` Martin Krischik
2006-04-28 11:17           ` REH
2006-04-29  6:47             ` Martin Krischik
2006-04-24  8:13 ` Rod Chapman
2006-04-25  1:57 ` Steve
replies disabled

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