MetaCart Sign in to MyCiteSeerX

Include Citations | Advanced Search | Help

Disambiguated Search | Include Citations | Advanced Search | Help

Static Branch Frequency and Program Profile Analysis (1994) [59 citations — 0 self]

by Youfeng Wu ,  James R Larus
In 27th International Symposium on Microarchitecture
Add To MetaCart

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 compiler 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 controlflow 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 Uni...

Citations

1364 A mathematical theory of evidence – Shafer - 1976
597 Trace scheduling : A technique for global microcode compaction – Fisher - 1981
240 Profile guided code positioning – Pettis, Hansen - 1990
238 Optimally Profiling and Tracing Programs – Ball, Larus - 1994
147 Predicting Conditional Branch Directions from Previous Runs of a Program – Fisher, Freudenberger - 1992
147 Achieving High Instruction Cache Performance with an Optimizing Compiler – Hwu, Chang - 1989
145 Branch prediction for free – Ball, Larus - 1993
141 Predicting program behavior using real or estimated profiles – Wall - 1991
137 Program Optimization for Instruction Caches – McFarling - 1989
110 Using Profile Information to Assist Classic Code Optimizations – Chang, Mahlke, et al. - 1991
84 Determining Average Program Execution Times and Their Variance – Sarkar - 1989
58 An Execution Profiler for Modular Programs – Graham, Kessler, et al. - 1983
56 Accurate Static Estimators for Program Optimization – Wagner, Maverick, et al. - 1994
48 Superblock formation using static program analysis – Hank, Mahlke, et al. - 1993
45 Efficient call graph analysis – Hall, Kennedy - 1992
29 Automating Program Analysis – Hickey, Cohen, et al. - 1988
15 Discrete Markov analysis of computer programs – Ramamoorthy - 1965
10 Using profile information to assist advanced compiler optimization and scheduling – Chen, Mahlke, et al. - 1992
10 Using ‘the Run-T-ime Sizes of Data Structures to Guid~ Parallel-Thread Creation – Huelsbergen, Larus, et al. - 1989
6 Ordering functions for improving memory reference locality in a shared memory multiprocessor system – Wu - 1992
4 On the time overhead of counters and traversal markers – Forman - 1981