MetaCart Sign in to MyCiteSeerX

Include Citations | Advanced Search | Help

Disambiguated Search | Include Citations | Advanced Search | Help

Using profile information to assist classic code optimizations (1991) [110 citations — 12 self]

by Pohua P. Chang ,  Scott A. Mahlke ,  Wen-mei W. Hwu
SOFTWARE-PRACTICE AND EXPERIENCE
Add To MetaCart

Abstract:

This paper describes the design and implementation of an optimizing compiler that automatically generates profile information to assist classic code optimizations. This compiler contains two new components, an execution profiler and a profile-based code optimizer, which are not commonly found in traditional optimizing compilers. The execution profiler inserts probes into the input program, executes the input program for several inputs, accumulates profile information, and supplies this information to the optimizer. The profile-based code optimizer uses the profile information to expose new optimization opportunities that are not visible to traditional global optimization methods. Experimental results show that the profile-based code optimizer significantly improves the performance of production C programs that have already been optimized by a high-quality global code optimizer.

Citations

597 Trace scheduling : A technique for global microcode compaction – Fisher - 1981
271 Bulldog: A Compiler for VLIW Architectures – Ellis - 1985
240 Profile guided code positioning – Pettis, Hansen - 1990
238 gprof: a call graph execution profiler – Graham, Kessler, et al. - 1982
223 Partitioning and scheduling parallel programs for multi-processors – Sarkar - 1989
176 Global Register Allocation at Link Time – Wall - 1986
147 Achieving High Instruction Cache Performance with an Optimizing Compiler – Hwu, Chang - 1989
92 A catalogue of optimizing transformations – Allen, Cocke - 1972
84 Determining Average Program Execution Times and Their Variance – Sarkar - 1989
66 Trace selection for compiling large C application programs to microcode – Chang, Hwu - 1988
58 An Execution Profiler for Modular Programs – Graham, Kessler, et al. - 1983
53 Comparing software and hardware schemes for reducing the cost of branches – Hwu, Conte, et al. - 1989
34 Register Windows vs. Register Allocation – Wall - 1988
32 Inline Function Expansion for Compiling Realistic C Programs – Hwu, Chang - 1989
25 Pro le guided code positioning – Pettis, Hansen - 1990
25 Using pro le information to assist classic code optimizations – Chang, Mahlke, et al. - 1991
12 An execution pro ler for modular programs – Graham, Kessler, et al. - 1983
6 Control Flow Optimization for Supercomputer Scalar Processing – Chang, Hwu - 1989
5 gprof: A Call Graph Execution Pro ler – Graham, Kessler, et al. - 1982
3 Reducing the Cost of Branches", The – McFarling, Hennessy - 1986
1 Editor), Design and Optimization of Compilers – Rustin - 1972