Barking Up The Wrong Tree: Why Optimizing Compilers Are Still Unable To Match Assembly Language

Marc Sabatella

EECS Department
University of California, Berkeley
Technical Report No. UCB/CSD-88-428
August 1988

http://www2.eecs.berkeley.edu/Pubs/TechRpts/1988/CSD-88-428.pdf

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.


BibTeX citation:

@techreport{Sabatella:CSD-88-428,
    Author = {Sabatella, Marc},
    Title = {Barking Up The Wrong Tree: Why Optimizing Compilers Are Still Unable To Match Assembly Language},
    Institution = {EECS Department, University of California, Berkeley},
    Year = {1988},
    Month = {Aug},
    URL = {http://www2.eecs.berkeley.edu/Pubs/TechRpts/1988/5277.html},
    Number = {UCB/CSD-88-428},
    Abstract = {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.}
}

EndNote citation:

%0 Report
%A Sabatella, Marc
%T Barking Up The Wrong Tree: Why Optimizing Compilers Are Still Unable To Match Assembly Language
%I EECS Department, University of California, Berkeley
%D 1988
%@ UCB/CSD-88-428
%U http://www2.eecs.berkeley.edu/Pubs/TechRpts/1988/5277.html
%F Sabatella:CSD-88-428