There also exist tools to optimize the binary further *after* the link step.
For example, Microsoft has an internal tool called Lego that does basic
block reorganization (for optimization at least, but possibly also to make
it more difficult to disassemble the code).  It's apparently an interesting
process: they automate the app and run it through many different scenarios
over a number of days, collecting information on memory usage and so on, and
that collected data is used as input to the Lego process.

----- Original Message -----
From: "Jerry Feldman" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Thursday, April 06, 2000 1:37 PM
Subject: Re: C question


> On 6 Apr 2000, at 11:30, [EMAIL PROTECTED] wrote:
> > Some c compilers will evaluate anything they can get their algorithms
> > on, at compile time. Some even interpret do loops, etc. if the
>
> It's even worse than that. Not only do the compilers optimize very
> aggressively, but there is code reordering that is performed on the
> instruction stream. The code reordering reorders instructions based on
> the processor model. Then there is link-time optimizations. By the time
> the executable pops out it hardly resembles what the origial programmer
> wrote. Even some assemblers do a bit of optimizing.
> --
> Jerry Feldman
> Contractor, eInfrastructure Partner Engineering
> 508-467-4315 http://www.testdrive.compaq.com/linux/
>
> Compaq Computer Corp.
> 200 Forest Street MRO1-3/F1
> Marlboro, Ma. 01752
>
> **********************************************************
> To unsubscribe from this list, send mail to
> [EMAIL PROTECTED] with the following text in the
> *body* (*not* the subject line) of the letter:
> unsubscribe gnhlug
> **********************************************************
>


**********************************************************
To unsubscribe from this list, send mail to
[EMAIL PROTECTED] with the following text in the
*body* (*not* the subject line) of the letter:
unsubscribe gnhlug
**********************************************************

Reply via email to