The benefits and costs of DyC's run-time optimizations
- 1 September 2000
- journal article
- Published by Association for Computing Machinery (ACM) in ACM Transactions on Programming Languages and Systems
- Vol. 22 (5), 932-972
- https://doi.org/10.1145/365151.367161
Abstract
DyC selectively dynamically compiles programs during their execution, utilizing the run-time-computed values of variables and data structures to apply optimizations that are based on partial evaluation. The dynamic optimizations are preplanned at static compile time in order to reduce their run-time cost; we call this staging . DyC's staged optimizations include (1) an advanced binding-time analysis that supports polyvariant specialization (enabling both single-way and multiway complete loop unrolling), polyvariant division, static loads, and static calls, (2) low-cost, dynamic versions of traditional global optimizations, such as zero and copy propagation and dead-assignment elimination, and (3) dynamic peephole optimizations, such as strength reduction. Because of this large suite of optimizations and its low dynamic compilation overhead, DyC achieves good performance improvements on programs that are larger and more complex than the kernels previously targeted by other dynamic compilation systems. This paper evaluates the benefits and costs of applying DyC's optimizations. We assess their impact on the performance of a variety of small to medium-sized programs, both for the regions of code that are actually transformed and for the entire application as a whole. Our study includes an analysis of the contribution to performance of individual optimizations, the performance effect of changing the applications' inputs, and a detailed accounting of dynamic compilation costs.Keywords
This publication has 8 references indexed in Scilit:
- DyC: an expressive annotation-directed dynamic compiler for CTheoretical Computer Science, 2000
- Efficient multiple and predicated dispatchingPublished by Association for Computing Machinery (ACM) ,1999
- C and tccACM Transactions on Programming Languages and Systems, 1999
- Dynamic specialization in the Fabius systemACM Computing Surveys, 1998
- Simultaneous multithreading: a platform for next-generation processorsIEEE Micro, 1997
- Reconciling responsiveness with performance in pure object-oriented languagesACM Transactions on Programming Languages and Systems, 1996
- The multiflow trace scheduling compilerThe Journal of Supercomputing, 1993
- TICLOS: an implementation of CLOS for the explorer familyPublished by Association for Computing Machinery (ACM) ,1989