Title :
Static branch frequency and program profile analysis
Author :
Wu, Youfeng ; Larus, James R.
Author_Institution :
Sequent Comput. Syst., Beaverton, OR, USA
fDate :
30 Nov.-2 Dec. 1994
Abstract :
Program profiles identify frequently executed portions of a program, which are the places at which optimizations offer programmers and compilers the greatest benefit. Compilers, however, infrequently exploit program profiles, because, profiling a program requires a programmer to instrument and run the program. An attractive alternative is for the complier to statically estimate program profiles. This paper presents several new techniques for static branch prediction and profiling. The first technique combines multiple predictions of a branch´s outcome into a prediction of the probability that the branch is taken. Another technique uses these predictions to estimate the relative execution frequency (i.e., profile) of basic blocks and control-flow edges within a procedure. A third algorithm uses local frequency estimates to predict the global frequency of calls, procedure invocations, and basic block and control-flow edge executions. Experiments on the SPEC92 integer benchmarks and Unix applications show that the frequently executed blocks, edges, and functions identified by our techniques closely match those in a dynamic profile.
Keywords :
Unix; program compilers; program control structures; software performance evaluation; SPEC92 integer benchmarks; Unix applications; compilers; dynamic profile; global frequency of calls; local frequency estimates; multiple predictions; optimizations; procedure invocations; program profile analysis; static branch frequency; Distributed computing; Frequency estimation; Instruments; Optimizing compilers; Parallel processing; Performance analysis; Permission; Profitability; Program processors; Programming profession;
Conference_Titel :
Microarchitecture, 1994. MICRO-27. Proceedings of the 27th Annual International Symposium on
Print_ISBN :
0-89791-707-3
DOI :
10.1109/MICRO.1994.717399