Abstract
In the past few years, code optimization has become a major field of research. Many efforts have been undertaken to find new sophisticated algorithms that fully exploit the computing power of today's advanced microprocessors. Most of these algorithms do very well in statically linked, monolithic software systems, but perform perceptibly worse in extensible systems. The modular structure of these systems imposes a natural barrier for intermodular compile-time optimizations. In this paper we discuss a different approach in which optimization is no longer performed at compile-time, but is delayed until runtime. Reoptimized module versions are generated on-the-fly while the system is running, replacing earlier less optimized versions.
In the first part of this paper we argue that dynamic runtime reoptimization will play an important role in future software systems and discuss the requirements for a modular, extensible operating system to support dynamic runtime optimization. In the second part we give an overview of promising intermodular and profile-guided reoptimizations. We also measure the characteristics of a modular, extensible operating system in order to estimate the potential of such optimizations.
Preview
Unable to display preview. Download preview PDF.
References
M. M. Brandis; Optimizing Compilers for Structured Programming Languages; (Doctoral Dissertation) Eidgenössische Technische Hochschule Zürich; 1995
G. J. Chaitin; Register Allocation & Spilling via Graph Coloring; In Proceedings of the ACM SIGPLAN '82 Symposium on Compiler Construction, pp 98–105. Published as SIGPLAN Notices 17(6); June 1982
F. C. Chow, J. L. Hennessy; Register Allocation by Priority-Based Coloring; In Proceedings of the ACM SIGPLAN '84 Symposium on Compiler Construction, pp 222–232. Published as SIGPLAN Notices 19(6); June 1984
C. Chambers, D. Ungar; Iterative Type Analysis and Extended Message Splitting: Optimizing Dynamically-Typed Object-Oriented Programs; In Proceedings of the ACM SIGPLAN '90 Conference on Programming Language Design and Implementation, pp 150–164. Published as SIGPLAN Notices 25(6); June 1990
M. Franz; Code-Generation On-the-Fly: A Key to Portable Software; (Doctoral Dissertation) Verlag der Fachvereine, Zürich; 1994
M. Franz, Th. Kistler; Slim Binaries; Technical Report 96-24, Department of Information and Computer Science, UC Irvine; 1996
D. Grove; The Impact of Interprocedural Class Analysis on Optimizations; CASCOM '95 Proceedings; November 1995
G. J. Hansen; Adaptive Systems for the Dynamic Run-Time Optimization of Programs; (Ph.D. Dissertation) Department of Computer Science, Carnegie-Mellon University; 1974
U. Hölzle, C. Chambers, D. Ungar; Optimizing Dynamically-Typed Object-Oriented Languages With Polymorphic Inline Caches; In ECOOP '91 Conference Proceedings. Published as Springer Verlag Lecture Notes in Computer Science 512; 1991
U. Hölzle; Adaptive Optimization for SELF: Reconciling High Performance with Exploratory Programming; (Ph.D. Dissertation) Department of Computer Science, Stanford University; 1994
U. Hölzle, D. Ungar; Optimizing Dynamically-Dispatched Calls with RunTime Type Feedback; In SIGPLAN '94 Conference on Programming Language Design and Implementation, pp 326–336. Published as SIGPLAN Notices 29(6); June 1994
IBM; PowerPC and POWER2: Technical Aspects of the New IBM RISC System/6000; IBM Order Number SA23-2737-00
D. Ingalls; The Execution Time Profile as a Programming Tool; In Design and Optimization of Compilers, pp 107–128, Prentice-Hall; 1971
S. Jasik; Monitoring Execution on the CDC 6000's; In Design and Optimization of Compilers, pp 129–136, Prentice-Hall; 1971
N. Jones; Special Issue on Partial Evaluation; Journal of Functional Programming 3(4); 1993
D. Keppel, S. J. Eggers, R. R. Henry; Evaluating Runtime-Compiled Value-Specific Optimizations; Technical Report 93-11-02, Department of Computer Science and Engineering, University of Washington; 1993
D. E. Knuth; An Empirical Study of FORTRAN Programs; IBM Report RC 3276; 1970
T. Lindholm, F. Yellin, B. Joy, K. Walrath; The Java Virtual Machine Specification; Addison-Wesley; 1996
R. Surati; A Parallelizing Compiler Based on Partial Evaluation; Technical Report AITR-1377, Artificial Intelligence Laboratory, Massachusetts Institute of Technology; 1993
A. Srivastava, D. W. Wall; A Practical System for Intermodule Code Optimization at Link-Time; Journal of Programming Languages; 1993
David Ungar, R. B. Smith; SELF: The Power of Simplicity; In OOPSLA '87 Conference Proceedings, pp 227–241. Published as SIGPLAN Notices 22(12); December 1987
D. W. Wall; Global Register Allocation at Link Time; In Proceedings of SIGPLAN '86 Symposium on Compiler Construction, pp 264–275; July 1986
N. Wirth, J. Gutknecht; The Oberon System; In Software-Practice and Experience 19(9), pp 857–893; September 1989
N. Wirth; The Programming Language Oberon; In Software-Practice and Experience 18(7), pp 671–690; July 1988
M. Wolf, M. Lam; A Data Locality Optimization Algorithm; In Proceedings of the SIGPLAN '91 Conference on Programming Language Design and Implementation, pp 30–44, Published as SIGPLAN Notices 26(6); June 1991
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1997 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Kistler, T. (1997). Dynamic runtime optimization. In: Mössenböck, H. (eds) Modular Programming Languages. JMLC 1997. Lecture Notes in Computer Science, vol 1204. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-62599-2_30
Download citation
DOI: https://doi.org/10.1007/3-540-62599-2_30
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-62599-5
Online ISBN: 978-3-540-68328-5
eBook Packages: Springer Book Archive