From: David Bonham <bonham@cpd.ntc.nokia.com>
Subject: Re: C is 'better' than Ada because...
Date: 1996/08/02
Date: 1996-08-02T00:00:00+00:00 [thread overview]
Message-ID: <3201C1F3.7410@cpd.ntc.nokia.com> (raw)
In-Reply-To: Pine.A32.3.91.960801090756.64586H-100000@wc.airshields.com
Tim Behrendsen wrote:
> if ((array[++n] = GetValue(arg)) != 0) {
> ....
>
> v.s. a typical non-C language ...
>
> n = n + 1;
> array[n] = GetValue(arg);
> if (array[n] != 0) {
> ...
> }
>
> Now, which is easier to optimize?
Well, let's try your example out on a "real world" compiler. I just
asked VC++ to compile both fragments and the code generated is
identical.
I wasn't surprised by this - after all, the intermediate representations
of these fragments are probably very similar even before the optimiser
gets its hands on them and I guessed they'd be identical afterwards.
With optimisation no longer an issue, we're down to factors like
maintainability and I think you're right to rate these issues highly.
> There just is no substitute for writing code with an eye toward what
> the compiler can and will do with it.
Absolutely. "A Retargetable C Compiler: Design and Implementation " by
Fraser & Hanson is a real eye-opener when it comes to learning about the
transformations the compiler will make to your source.
--
David Bonham (bonham@cpd.ntc.nokia.com)
next prev parent reply other threads:[~1996-08-02 0:00 UTC|newest]
Thread overview: 239+ messages / expand[flat|nested] mbox.gz Atom feed top
1996-08-01 0:00 C is 'better' than Ada because Tim Behrendsen
1996-08-02 0:00 ` David Bonham [this message]
1996-08-02 0:00 ` Mark McKinney
[not found] ` <9608061851.AA17508@camo.brc.shell.com>
1996-08-06 0:00 ` Tim Behrendsen
[not found] <Pine.GSO.>
[not found] ` <4 <4vb399$kt8@mtinsc01-mgt.ops.worldnet.att.net>
1996-08-20 0:00 ` Adam Beneschan
1996-08-20 0:00 ` Craig Franck
1996-08-21 0:00 ` Mike Roske
1996-08-21 0:00 ` William C Brennan
-- strict thread matches above, loose matches on Subject: below --
1996-08-04 0:00 @#$%!?!
1996-08-01 0:00 William Clodius
1996-08-03 0:00 ` Tim Behrendsen
1996-08-05 0:00 ` Kevin D. Quitt
1996-08-05 0:00 ` William Clodius
1996-08-05 0:00 ` Stefan 'Stetson' Skoglund
1996-07-30 0:00 Spasmo
[not found] ` <01bb7e29$61e3d260$87ee6fce@timpent.airshields.com>
1996-07-31 0:00 ` Bob Kitzberger
1996-07-31 0:00 ` Tim Behrendsen
1996-07-31 0:00 ` Jon S Anthony
1996-08-01 0:00 ` Tim Behrendsen
1996-08-02 0:00 ` Ralph Silverman
1996-06-19 0:00 Alan Brain
1996-06-20 0:00 ` Ron Thompson
1996-06-22 0:00 ` Nasser Abbasi
1996-06-22 0:00 ` David Morton
1996-06-22 0:00 ` Robert Dewar
1996-06-23 0:00 ` The Deviant
1996-06-23 0:00 ` Robert Dewar
1996-06-23 0:00 ` John Winters
1996-06-23 0:00 ` Michael Feldman
1996-06-24 0:00 ` token%/etc/HOSTNAME
1996-06-23 0:00 ` John Winters
1996-06-23 0:00 ` David Morton
1996-06-23 0:00 ` John Winters
1996-06-23 0:00 ` David Morton
1996-06-23 0:00 ` Lawrence Kirby
1996-06-30 0:00 ` Nasser Abbasi
1996-06-23 0:00 ` Nasser Abbasi
1996-06-23 0:00 ` Fergus Henderson
1996-06-23 0:00 ` Robert Dewar
1996-06-28 0:00 ` Fergus Henderson
1996-06-29 0:00 ` Kevin D. Quitt
1996-06-29 0:00 ` Robert Dewar
1996-06-30 0:00 ` Fergus Henderson
1996-07-01 0:00 ` Mike Roske
1996-07-01 0:00 ` Robert Dewar
1996-07-02 0:00 ` Ken Garlington
1996-07-03 0:00 ` Kevin D. Quitt
1996-07-04 0:00 ` Ian Ward
1996-07-05 0:00 ` Peter Amey
1996-07-05 0:00 ` Robert Dewar
1996-07-10 0:00 ` James A. Squire
1996-07-15 0:00 ` Oliver Kellogg
1996-07-16 0:00 ` Oliver Kellogg
1996-07-18 0:00 ` Fraser Wilson
1996-07-18 0:00 ` Fergus Henderson
1996-07-19 0:00 ` Keith Thompson
1996-07-17 0:00 ` Robert Dewar
1996-07-11 0:00 ` James A. Squire
1996-07-16 0:00 ` Nasser Abbasi
1996-07-16 0:00 ` Mark A Biggar
1996-07-17 0:00 ` James A. Squire
1996-07-17 0:00 ` Laurent Guerby
1996-07-17 0:00 ` David Emery
1996-07-18 0:00 ` James A. Squire
1996-07-07 0:00 ` Kevin D. Quitt
1996-07-08 0:00 ` Robert Dewar
1996-07-10 0:00 ` Peter Hermann
1996-07-15 0:00 ` Tim McGuire
1996-07-16 0:00 ` Kevin D. Quitt
1996-07-16 0:00 ` Robert Dewar
1996-07-18 0:00 ` Bob Gilbert
1996-07-19 0:00 ` Kevin D. Quitt
1996-07-18 0:00 ` Ken Garlington
1996-07-19 0:00 ` Kevin D. Quitt
1996-07-19 0:00 ` Richard O'Rourke
1996-07-22 0:00 ` Kevin D. Quitt
1996-07-22 0:00 ` Robert Dewar
1996-07-23 0:00 ` Theodore E. Dennison
1996-07-23 0:00 ` Kevin D. Quitt
1996-07-24 0:00 ` Theodore E. Dennison
1996-07-24 0:00 ` Kevin D. Quitt
1996-07-25 0:00 ` Alan Brain
1996-07-25 0:00 ` Steve Howard
1996-07-27 0:00 ` Bob Kitzberger
1996-07-26 0:00 ` Mike Roske
1996-07-25 0:00 ` Fergus Henderson
1996-07-25 0:00 ` Kevin D. Quitt
1996-07-26 0:00 ` kennedy1
1996-07-26 0:00 ` Fergus Henderson
1996-07-23 0:00 ` Tim Behrendsen
1996-07-24 0:00 ` JamesS1889
1996-07-24 0:00 ` Dirk Dickmanns
1996-07-24 0:00 ` Theodore E. Dennison
1996-07-27 0:00 ` Tim Behrendsen
1996-07-29 0:00 ` Bob Kitzberger
1996-07-30 0:00 ` Tim Behrendsen
1996-07-30 0:00 ` Richard A. O'Keefe
1996-07-30 0:00 ` Tim Behrendsen
1996-07-30 0:00 ` Theodore E. Dennison
1996-07-29 0:00 ` Dirk Dickmanns
1996-07-30 0:00 ` Tim Behrendsen
1996-07-31 0:00 ` whiting_ms@corning.com (Matt Whiting)
1996-07-31 0:00 ` Dirk Dickmanns
1996-07-31 0:00 ` Kevin D. Quitt
1996-08-01 0:00 ` Alan Brain
1996-08-02 0:00 ` Kevin D. Quitt
1996-08-05 0:00 ` Byron B. Kauffman
1996-08-15 0:00 ` Mike Roske
1996-08-15 0:00 ` David Shochat
1996-08-16 0:00 ` Ken Garlington
1996-08-16 0:00 ` John Herro
1996-08-16 0:00 ` John Herro
1996-08-16 0:00 ` Jon S Anthony
1996-08-05 0:00 ` Robb Nebbe
1996-08-02 0:00 ` Dirk Dickmanns
1996-07-30 0:00 ` Theodore E. Dennison
1996-07-29 0:00 ` system
1996-07-30 0:00 ` Tim Behrendsen
1996-07-25 0:00 ` Alan Brain
1996-07-10 0:00 ` John F. Bode
1996-07-11 0:00 ` Mike Roske
[not found] ` <4rvr2j$2gb0@info4.rus.uni-s <nhn30yhw6t.fsf@paralysys>
1996-07-18 0:00 ` Kevin D. Quitt
1996-07-18 0:00 ` Robert Dewar
1996-07-26 0:00 ` Richard Riehle
1996-07-08 0:00 ` Ian Ward
1996-07-08 0:00 ` C is 'better' than Ada ... NOT!! Kevin D. Quitt
1996-07-12 0:00 ` C is 'better' than Ada because John F. Bode
1996-07-15 0:00 ` Sandy McPherson
1996-07-18 0:00 ` Robert Dewar
1996-07-19 0:00 ` Theodore E. Dennison
1996-07-19 0:00 ` Theodore E. Dennison
1996-07-19 0:00 ` Ken Garlington
1996-07-20 0:00 ` Michael Feldman
1996-07-21 0:00 ` Alfonso Urdaneta
1996-07-21 0:00 ` Robert Dewar
1996-07-22 0:00 ` Kevin D. Quitt
1996-07-22 0:00 ` Robert Dewar
1996-07-26 0:00 ` Richard Riehle
[not found] ` <31f3c52e.238719470 <Pine.GSO.3.92.960726122347.25896E-100000@nunic.nu.edu>
1996-07-31 0:00 ` Darrin Smith
1996-07-31 0:00 ` Fergus Henderson
1996-08-01 0:00 ` Jerry van Dijk
1996-08-06 0:00 ` Kirk Bradley
1996-08-09 0:00 ` Richard Riehle
1996-08-10 0:00 ` Craig Franck
1996-08-16 0:00 ` Richard Riehle
1996-08-18 0:00 ` Craig Franck
[not found] ` <Pine.GSO.3.92.960816102000. <4v5pis$4h1@mtinsc01-mgt.ops.worldnet.att.net>
1996-08-18 0:00 ` David Weller
1996-08-15 0:00 ` Mike Stark
1996-08-02 0:00 ` Robert Dewar
1996-08-11 0:00 ` Jon S Anthony
[not found] ` <31f3c52e.238719470 <4uj42h$j06@mtinsc01-mgt.ops.worldnet.att.net>
1996-08-11 0:00 ` Doug & Rose Miller
1996-08-11 0:00 ` Craig Franck
1996-08-11 0:00 ` Doug & Rose Miller
1996-08-12 0:00 ` Craig Franck
1996-08-16 0:00 ` nasser
[not found] ` <31f3c52e.238719470 <4v5pis$4h1@mtinsc01-mgt.ops.worldnet.att.net>
1996-08-18 0:00 ` Doug & Rose Miller
1996-08-20 0:00 ` Craig Franck
1996-07-23 0:00 ` Ken Garlington
1996-07-27 0:00 ` Tim Behrendsen
1996-07-27 0:00 ` Lawrence Kirby
1996-07-29 0:00 ` Ian Ward
1996-07-30 0:00 ` Bob Cousins
1996-07-30 0:00 ` Robert Dewar
1996-09-05 0:00 ` Bob Cousins
1996-08-13 0:00 ` Jon S Anthony
1996-08-14 0:00 ` Craig Franck
1996-08-28 0:00 ` Van Snyder
1996-08-14 0:00 ` Jon S Anthony
1996-08-15 0:00 ` Craig Franck
1996-08-15 0:00 ` Joe Gwinn
1996-08-16 0:00 ` Don Nelson
1996-08-19 0:00 ` Joe Gwinn
1996-08-19 0:00 ` Ken Garlington
1996-08-28 0:00 ` Van Snyder
1996-08-30 0:00 ` Norman H. Cohen
1996-08-15 0:00 ` Stefan 'Stetson' Skoglund
1996-08-15 0:00 ` Jon S Anthony
1996-08-20 0:00 ` nasser
1996-08-15 0:00 ` David Weller
1996-08-15 0:00 ` William C Brennan
1996-07-18 0:00 ` Hamilton Link
1996-07-19 0:00 ` Kevin D. Quitt
1996-07-10 0:00 ` Stephen M O'Shaughnessy
1996-07-10 0:00 ` Peter Seebach
1996-07-18 0:00 ` Brian Rogoff
1996-07-19 0:00 ` James A. Squire
1996-07-29 0:00 ` William Clodius
1996-07-30 0:00 ` Richard A. O'Keefe
1996-07-30 0:00 ` Tim Behrendsen
1996-08-01 0:00 ` Byron B. Kauffman
1996-08-01 0:00 ` Ian Ward
1996-07-30 0:00 ` Robert Dewar
1996-07-31 0:00 ` Tim Behrendsen
[not found] ` <9608020139.AA29105@pulsar.telesoft>
1996-08-02 0:00 ` Tim Behrendsen
1996-08-05 0:00 ` Kevin D. Quitt
1996-07-31 0:00 ` Ralph Silverman
1996-07-30 0:00 ` William Clodius
1996-08-01 0:00 ` Tim Behrendsen
1996-07-30 0:00 ` Robert I. Eachus
1996-08-01 0:00 ` David Wheeler
1996-08-01 0:00 ` Olivier Devuns @pulsar
1996-08-11 0:00 ` Jon S Anthony
1996-08-12 0:00 ` Craig Franck
1996-08-12 0:00 ` John Howard
1996-08-13 0:00 ` Craig Franck
1996-08-13 0:00 ` Ken Garlington
1996-08-14 0:00 ` Craig Franck
1996-08-12 0:00 ` James A. Squire
1996-08-12 0:00 ` Craig Franck
1996-08-14 0:00 ` Stephen M O'Shaughnessy
1996-08-14 0:00 ` Stephen M O'Shaughnessy
[not found] ` <Pine.GS <gwinn-1908961215100001@smc19.ed.ray.com>
1996-08-19 0:00 ` Adam Beneschan
1996-08-13 0:00 ` Jon S Anthony
1996-08-13 0:00 ` Jon S Anthony
1996-08-14 0:00 ` Norman H. Cohen
1996-08-19 0:00 ` Jon S Anthony
1996-08-20 0:00 ` Craig Franck
1996-08-20 0:00 ` Jon S Anthony
1996-08-21 0:00 ` Craig Franck
1996-08-27 0:00 ` Valentin Bonnard
1996-07-06 0:00 ` Walter B. Hollman Sr.
1996-07-05 0:00 ` Jon S Anthony
1996-07-08 0:00 ` Peter Hermann
1996-07-09 0:00 ` Dirk Dickmanns
1996-07-12 0:00 ` ntxbow
1996-07-15 0:00 ` Kevin D. Quitt
1996-07-15 0:00 ` Robert Dewar
1996-07-16 0:00 ` Ian Ward
1996-07-17 0:00 ` Dale Stanbrough
1996-07-23 0:00 ` Jon S Anthony
1996-07-29 0:00 ` William Clodius
1996-07-31 0:00 ` Darin Johnson
1996-08-01 0:00 ` Tim Behrendsen
1996-08-01 0:00 ` Jon S Anthony
1996-08-01 0:00 ` Jon S Anthony
1996-08-05 0:00 ` Stefan 'Stetson' Skoglund
1996-08-16 0:00 ` Jon S Anthony
[not found] ` <874508446wnr@t-cubed.demon.co.uk>
1996-06-29 0:00 ` Jon S Anthony
1996-07-01 0:00 ` James A. Squire
1996-07-02 0:00 ` Darin Johnson
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox