People often write in assembly language because such programs tend to run faster than equivalent programs written in a higher level language. Through a case study of a particular program in both assembly language and C versions, we identify some of the factors that contribute to the superior performance of the assembly language version. Much of the disparity may be attributed to interprocedural register usage. Current global optimizers do not address these issues. A class of interprocedural optimizations which we term galactic optimizations is introduced in an attempt to mimic the techniques employed by assembly language programmers. The optimizations are parameter mode strength reduction (PMSR), global variables (GV), and pass in register (PREG). The implementation of the optimizations may be at link time, or else separate compilation may be precluded.
Title
Barking Up The Wrong Tree: Why Optimizing Compilers Are Still Unable To Match Assembly Language
Published
1988-08-02
Full Collection Name
Electrical Engineering & Computer Sciences Technical Reports
Other Identifiers
CSD-88-428
Type
Text
Extent
14 p
Archive
The Engineering Library
Usage Statement
Researchers may make free and open use of the UC Berkeley Library’s digitized public domain materials. However, some materials in our online collections may be protected by U.S. copyright law (Title 17, U.S.C.). Use or reproduction of materials protected by copyright beyond that allowed by fair use (Title 17, U.S.C. § 107) requires permission from the copyright owners. The use or reproduction of some materials may also be restricted by terms of University of California gift or purchase agreements, privacy and publicity rights, or trademark law. Responsibility for determining rights status and permissibility of any use or reproduction rests exclusively with the researcher. To learn more or make inquiries, please see our permissions policies (https://www.lib.berkeley.edu/about/permissions-policies).