C "optimization" (6 of 8)

Graham Ross grahamr at azure.UUCP
Thu Feb 23 04:06:53 AEST 1984


Of course it's fatuous.  The C compiler I use is one-pass.  (Try /lib/ccom
as an interactive filter on the VAX.)  The work required to decide whether
or not to emit .text and .data directives is a great deal.  The general fix
implies some sort of two-pass operation or backstashing.

Similarly, putting L13 in the symbol table for a register mask is done
simply because the register mask word must be emitted at the function's
entry point and the compiler doesn't know how many registers it destroys
until the function's end.  The L13 gets moved to a place before the .word
directive by the optimizer.  (Neatener if you want -- \fIoptimum\fR is Latin
for "best" and Klein's examples show many Bliss failings too.)

I'd like to comment that I don't often pass adjacent (in memory) data
objects to subroutines -- that is, the pushl v. movq argument strikes me
as specious.



More information about the Comp.lang.c mailing list