Abstract
The main contributions of this paper are twofold. First, a general framework for control-flow partitioning is presented for efficient on-the-fly analysis, i.e. for program behavior analysis during execution using a small number of instrumentation points. The formal model is further refined for certain analyses by transforming a program's call graph into a function-instance graph. Performance evaluations show that the number of measurement points can be reduced by one third using these methods.
Second, the method of static cache simulation is introduced. Static cache simulation provides the means to predict a large number of cache references prior to the execution time of a program. The method is based on a variation of an iterative data-flow algorithm commonly used in optimizing compilers. It utilizes control-flow partitioning and function-instance graphs for predicting the caching behavior of each instruction. To our knowledge, no prior work has been done on predicting caching behavior statically. A detailed description is provided for instruction cache analysis, which is then discussed for a variety of applications ranging from fast instruction cache performance evaluation to analytical bounding of execution time for real-time applications.
Supported in part by the Office of Naval Research, contract # N00014-94-1-0006.
This is a preview of subscription content, log in via an institution.
Preview
Unable to display preview. Download preview PDF.
References
A. V. Aho, R. Sethi, and J. D. Ullman. Compilers — Principles, Techniques, and Tools. Addision-Wesley, 1986.
R. Arnold, F. Mueller, D. B. Whalley, and M. Harmon. Bounding worst-case instruction cache performance. In IEEE Symposium on Real-Time Systems, December 1994. (accepted).
T. Ball and J. R. Larus. Optimally profiling and tracing programs. In ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 59–70, January 1992.
M. E. Benitez and J. W. Davidson. A portable global optimizer and linker. In ACM SIGPLAN Conference on Programming Language Design and Implementation, pages 329–338, June 1988.
A. Borg, R. E. Kessler, and D. W. Wall. Generation and analysis of very long address traces. In International Symposium on Computer Architecture, pages 270–279, May 1990.
G. Chartrand and L. Lesniak. Graphs & Digraphs. Wadsworth & Brooks, 2nd edition, 1986.
M. Hill. A case for direct-mapped caches. IEEE Computer, 21(11):25–40, December 1988.
F. Mueller. Static Cache Simulation and its Applications. PhD thesis, Dept. of CS, Florida State University, July 1994.
F. Mueller and D. B. Whalley. Fast instruction cache analysis via static cache simulation. TR 94-042, Dept. of CS, Florida State University, April 1994.
F. Mueller, D. B. Whalley, and M. Harmon. Predicting instruction cache behavior. In ACM SIGPLAN Workshop on Language, Compiler, and Tool Support for Real-Time Systems, June 1994.
C. Stunkel and W. Fuchs. Trapeds: Producing traces for multicomputers via execution driven simulation. In SIGMETRICS Conference on Measurement and Modeling of Computer Systems, pages 70–78, May 1989.
D. B. Whalley. Techniques for fast instruction cache performance evaluation. Software Practice & Experience, 19(1):195–203, January 1993.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1994 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Mueller, F., Whalley, D.B. (1994). Efficient on-the-fly analysis of program behavior and static cache simulation. In: Le Charlier, B. (eds) Static Analysis. SAS 1994. Lecture Notes in Computer Science, vol 864. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-58485-4_35
Download citation
DOI: https://doi.org/10.1007/3-540-58485-4_35
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-58485-8
Online ISBN: 978-3-540-49005-0
eBook Packages: Springer Book Archive