PLTO: A Link-Time Optimizer for the Intel IA-32 Architecture
Benjamin Schwarz,
Saumya Debray,
Gregory Andrews,
Matthew Legendre
Department of Computer Science
University of Arizona
Tucson, AZ 85721, U.S.A.
Abstract
This paper describes PLTO, a link-time instrumentation and optimization tool
we have developed for the
Intel IA-32 architecture. A number of characteristics of this architecture
complicate the task of link-time optimization. These include a
large number of op-codes and addressing modes, which increases the
complexity of program analysis; variable-length instructions, which
complicates disassembly of machine code; a paucity of available registers,
which limits the extent of some optimizations; and a reliance on using
memory locations for holding values and for parameter passing, which
complicates program analysis and optimization. We describe how PLTO
addresses these problems and the resulting performance improvements it is
able to achieve.