A Global Object Code Optimizer

Author:Benitez, Manuel, Department of Computer ScienceUniversity of Virginia

_A global object code optimizer performs optimizations at the machine level. It uses infonnation at the procedure level as well as knowledge about the specific capabilities of the target machine to produce high quality code. It takes many months, even years, of development effort to produce these optimizers. Performing optimizations at the machine level has traditionally been accomplished by machine-dependent algorithms. Retargeting to a new machine requires large portions of the optimizer to be re - wrltten to handle the idiosyncrasies of the new architecture. This thesis presents an optimizing compiler that performs global optimizations using a machine-independent notation to describe machine-dependent instructions at the machine level. The machine-independent notation that we call Register Transfer Lists is presented and its ability to describe machine-dependent instructions is discussed. Machine - independent algorithms that manipulate the Register Transfer Lists to perform common code - improvement transformations are explained. Measurements of the effectiveness of the optimizing compiler on three different machines are given. The effectiveness of the some of the global optimizations is discussed. The effort required to retarget the optimizing compiler to new machines is estimated to be in the order of weeks.
Note: Abstract extracted from PDF file via OCR

All rights reserved (no additional license for public reuse)
Source Citation:

Benitez, Manuel. "A Global Object Code Optimizer." University of Virginia Dept. of Computer Science Tech Report (1989).

University of Virginia, Department of Computer Science
Published Date: