Object code optimization

16 Jan 86 16:17:00 GMT

          From comp.compilers

Related articles
Object code optimization compilers@ima.UUCP (1986-01-10)
Re: Object code optimization compilers@ima.UUCP (1986-01-13)
Object code optimization compilers@ima.UUCP (1986-01-16)
| List of all articles for this month |

From: compilers@ima.UUCP
Newsgroups: mod.compilers
Date: 16 Jan 86 16:17:00 GMT
Article-I.D.: ima.136300059
Posted: Thu Jan 16 11:17:00 1986

[from allegra!sbcs!debray (Saumya Debray)]

It isn't entirely surprising that transforming a HLL program P1 to an
equivalent "optimal" (!?) HLL program P2 and then generating code from
P2 might not always yield the best results. The virtual machine
corresponding to the high-level language is really very different from
that corresponding to the low-level one, and one might expect their cost
criteria to be different as well.

I have a couple of comments against restricting optimization
_exclusively_ to low-level code, however:

(1) The idea behind code optimization is to preserve equivalence
        between programs at the HLL level while improving the estimated cost
        at the low level. However, if optimization is restricted to object
        code, then we are necessarily required to preserve equivalence
        at the object code level. This may be overly restrictive, since it
        may not take into account the fact that certain aspects of the
        object code programs are irrelevant at the HLL level.

(2) The level of abstraction provided by a HLL may make certain
        optimizations much simpler at that level than at the object code
        level. For example, the transformation of a recursive program
        to compute the factorial function,

fact(N) = if N = 0 then 1 else N * fact(N-1)

      to tail-recursive and thence to iterative form is fairly
      straightforward at the HLL level, using the associativity of *. It's
      not obvious to me how the corresponding transformation would go
      working only on object code.

-Saumya Debray
SUNY at Stony Brook

Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.