Accurate and practical profile-driven compilation using the profile buffer
- 24 December 2002
- conference paper
- Published by Institute of Electrical and Electronics Engineers (IEEE)
Abstract
Profiling is a technique of gathering program statistics in order to aid program optimization. In particular, it is an essential component of compiler optimization for the extraction of instruction-level parallelism. Code instrumentation has been the most popular method of profiling. However real-time, interactive, and transaction processing applications suffer from the high execution-time overhead imposed by software instrumentation. This paper suggests the use of hardware dedicated to the task of profiling. The hardware proposed consists of a set of counters, the profile buffer. A profile collection method that combines the use of hardware, the compiler and operating system support is described. Three methods for profile buffer indexing, address-mapping, selective indexing, and compiler indexing are presented that allow this approach to produce accurate profiling information with very little execution slowdown. The profile information obtained is applied to a prominent compiler optimization, namely superblock scheduling. The resulting instruction-level parallelism approaches that obtained through the use of perfect profile information.Keywords
This publication has 15 references indexed in Scilit:
- A comparison of full and partial predicated execution support for ILP processorsPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2002
- Commercializing profile-driven optimizationPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2002
- Branch prediction for freePublished by Association for Computing Machinery (ACM) ,1993
- The superblock: An effective technique for VLIW and superscalar compilationThe Journal of Supercomputing, 1993
- GPMB—software pipelining branch-intensive loopsPublished by Institute of Electrical and Electronics Engineers (IEEE) ,1993
- Optimally profiling and tracing programsPublished by Association for Computing Machinery (ACM) ,1992
- Reducing the cost of branchesACM SIGARCH Computer Architecture News, 1986
- GprofPublished by Association for Computing Machinery (ACM) ,1982
- Trace Scheduling: A Technique for Global Microcode CompactionIEEE Transactions on Computers, 1981
- Optimal measurement points for program frequency countsBIT Numerical Mathematics, 1973