The Community for Technology Leaders
2006 International Conference on Parallel Architectures and Compilation Techniques (PACT) (2006)
Seattle, WA, USA
Sept. 16, 2006 to Sept. 20, 2006
ISBN: 978-1-5090-3022-4
pp: 164-172
Nathaniel Mcintosh , Java, Compilers, and Tools Laboratory, Hewlett-Packard Company
Sandya Mannarswamy , Java, Compilers, and Tools Laboratory, Hewlett-Packard Company
Robert Hundt , Java, Compilers, and Tools Laboratory, Hewlett-Packard Company
ABSTRACT
On machines with high-performance processors, the memory system continues to be a performance bottleneck. Compilers insert prefetch operations and reorder data accesses to improve locality, but increasingly seek to modify an application's data layout to reduce cache miss and page fault penalties. In this paper we discuss Global Variable Layout (GVL), an optimization of the placement of entire static global data objects in the binary. We describe two practical methods for GVL in the HP-UX Integrity optimizing compiler for the Itanium © architecture. The first layout strategy relies on profile feedback, collaboratively employing the compiler, the linker and a pre-link tool to facilitate reordering. The second strategy uses whole-program analysis to drive data layout decisions, and does not require the use of a dynamic profile. We give a detailed description of our implementation and evaluate its performance for the SPEC integer benchmark programs, as well as for a large commercial database application.
INDEX TERMS
global variable layout, compiler-directed memory management, data caches
CITATION
Nathaniel Mcintosh, Sandya Mannarswamy, Robert Hundt, "Whole-program optimization of global variable layout", 2006 International Conference on Parallel Architectures and Compilation Techniques (PACT), vol. 00, no. , pp. 164-172, 2006, doi:
196 ms
(Ver 3.3 (11022016))