ACM Home Page
Please provide us with feedback. Feedback
Profile guided code positioning
Full text PdfPdf (1.43 MB)
Source Conference on Programming Language Design and Implementation archive
Proceedings of the ACM SIGPLAN 1990 conference on Programming language design and implementation table of contents
White Plains, New York, United States
Pages: 16 - 27  
Year of Publication: 1990
ISBN:0-89791-364-7
Also published in ...
Authors
Karl Pettis  Hewlett-Packard Company, California Language Laboratory, 19447 Pruneridge Avenue, Cupertino, California
Robert C. Hansen  Hewlett-Packard Company, California Language Laboratory, 19447 Pruneridge Avenue, Cupertino, California
Sponsor
SIGPLAN: ACM Special Interest Group on Programming Languages
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 26,   Downloads (12 Months): 165,   Citation Count: 130
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/93542.93550
What is a DOI?

ABSTRACT

This paper presents the results of our investigation of code positioning techniques using execution profile data as input into the compilation process. The primary objective of the positioning is to reduce the overhead of the instruction memory hierarchy. After initial investigation in the literature, we decided to implement two prototypes for the Hewlett-Packard Precision Architecture (PA-RISC). The first, built on top of the linker, positions code based on whole procedures. This prototype has the ability to move procedures into an order that is determined by a “closest is best” strategy. The second prototype, built on top of an existing optimizer package, positions code based on basic blocks within procedures. Groups of basic blocks that would be better as straight-line sequences are identified as chains. These chains are then ordered according to branch heuristics. Code that is never executed during the data collection runs can be physically separated from the primary code of a procedure by a technique we devised called procedure splitting. The algorithms we implemented are described through examples in this paper. The performance improvements from our work are also summarized in various tables and charts.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

CMR88
DV87
Fer74
 
Fer76
Ferrari, 'The Improvement of Program Behavior," Cotnputer, Vol. 9, No. 11, November 1976, pp. 39-47.
GKM82
 
Har88
 
HG71
Hatfield and Gerald, 'Trogram Restructuring for Virtual Memory," IBM Systems Journal, Vol. 10, No. 3, 1971, pp. 168-192.
HC89
McF89
Sar89

CITED BY  130

Collaborative Colleagues:
Karl Pettis: colleagues
Robert C. Hansen: colleagues