Actually, the standard compiler for the Alpha today is DECC which used
GEM as its back end. It does not use the assembler. The older C
compiler was a MIPS compiler which did generate assembly code. The
assembler had a backend which did the code reordering. I ported that
code from the Digital Unix assembler to work in the Windows NT/Alpha
assembler. The assembler includes some instructions that may not be
implemented on the chip. For example, the word and byte loads and
stores were not added to the Alpha chip until EV56, but the assemblers
had them on day1. They just generated the appropriate code. Another
area was cases of things like jmp address. The jmp instruction is a
register instruction. So the assembler would take break that down into
the appropriate load instructions.
On 6 Apr 2000, at 14:08, Steven W. Orr wrote:
> This is correct. One of the more notable examples is for the Alpha. The
> Digital c89 compiler produces code through an optimizer. Then the
> assembler does peephole optimization. And then the linker does global dead
> code removal. All it means is that the days of writing tight hand coded
> assembler is long gone :-)
>
> We wrote a compiler for Alpha a few years ago. We just decided to disable
> the assembler optimizations so we could get a semblence of control back.
>
> --
> -Time flies like the wind. Fruit flies like a banana. [EMAIL PROTECTED]
> -Stranger things have happened but none stranger than this. Steven W. Orr-
> Does your driver's license say Organ Donor?Black holes are where God \
> -------divided by zero. Listen to me! We are all individuals!---------
>
> On Thu, 6 Apr 2000, Jerry Feldman wrote:
>
> =>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
Jerry Feldman <[EMAIL PROTECTED]>
Associate Director
Boston Linux and Unix user group
http://www.blu.org
**********************************************************
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
**********************************************************