Abstract
Run-time code generation that uses specific values to generate specialized code is called value-specific optimization. Variables which provide values for value-specific optimization are called candidate variables. They are modified much less frequently than they are referenced. In current systems that use run-time code generation, candidate variables are identified by programmer directives.
We describe a novel technique, staging analysis, for automatically identifying candidate variables. We refer to such variables as glacial variables. Glacial variables are excellent candidate variables.
Glacial Variable Analysis is an interprocedural analysis. We perform several experiments with glacial variable analysis to characterize the programs in the PERFECT benchmark suite. We explain the imprecision of our results due to procedure boundaries. We examine the structure of the programs to determine how often value-specific optimization might be applied.
We will explain how staging analysis relates to run-time code generation; briefly describe Glacial Variable Analysis; and, present some initial results.
Preview
Unable to display preview. Download preview PDF.
References
J. Auslander, M. Philipose, C. Chambers, S. J. Eggers, and B. N. Bershad. Fast, effective dynamic compilation. In PLDI96 [14], pages 149–159.
R. A. Ballance, A. B. Maccabe, and K. J. Ottenstein. The Program Dependence Web: A representation supporting control-, data-, and demand-driven interpretation of imperative languages. In Proc. ACM SIGPLAN '90 Conf. on Programming Language Design and Implementation, pages 257–271, White Plains, NY, June 1990.
C. Consel and O. Danvy. Tutorial notes on partial evaluation. In Conf. Record 20th Annual ACM Symp. Principles of Programming Languages, pages 493–501, Charleston, SC, Jan. 1993.
C. Consel and F. Noël. A general approach to run-time specialization and its application to C. In Conf. Record 23rd Annual ACM Symp. Principles of Programming Languages, pages 145–156, St Petersburg, FL, Jan. 1996.
D. R. Engler. Vcode: A retargetable, extensible, very fast dynamic code generation system. In PLDI96 [14], pages 160–170.
A. Ershov. Mixed computation: The potential applications and problems for study. Theoretical Computer Science, 18:41–67, 1982.
M. Hall. Managing Interprocedural Optimization. PhD thesis, Department of Computer Science, Rice University, 1991.
M. Hall and K. Kennedy. Efficient call graph analysis. Letters on Programming Languages and Systems, 1(3):227–242, September 1992.
P. Havlak. Construction of Thinned Gated Single-Assignment form. In U. Banerjee, D. Gelernter, A. Nicolau, and D. A. Padua, editors, Languages and Compilers for Parallel Computing, number 768 in Lecture Notes in Computer Science, pages 477–499. Springer-Verlag, 1993.
D. Keppel. Runtime Code Generation. PhD thesis, University of Washington Department of Computer Science and Engineering, Mar. 1996.
D. Keppel, S. Eggers, and R. Henry. Evaluating runtime-compiled value-specific optimizations. Technical Report UWCSE 93-11-02, University of Washington Department of Computer Science and Engineering, November 1993.
P. Lee and M. Leone. Optimizing ML with run-time code generation. In PLDI96 [14], pages 137–148.
U. Jørring and W. L. Scherlis. Compilers and staging transformations. In Conf. Record 13th Annual ACM Symp. on Principles of Programming Languages, pages 86–96, St. Petersburg Beach, Jan. 1986.
Proceedings ACM SIGPLAN '96 Conf. on Programming Language Design and Implementation, Philadelphia, PA, May 1996.
M. N. Wegman and F. K. Zadeck. Constant propagation with conditional branches. ACM Trans. on Programming Languages and Systems, 13(2):181–210, Apr. 1991.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1997 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Autrey, T., Wolfe, M. (1997). Initial results for glacial variable analysis. In: Sehr, D., Banerjee, U., Gelernter, D., Nicolau, A., Padua, D. (eds) Languages and Compilers for Parallel Computing. LCPC 1996. Lecture Notes in Computer Science, vol 1239. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0017249
Download citation
DOI: https://doi.org/10.1007/BFb0017249
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-63091-3
Online ISBN: 978-3-540-69128-0
eBook Packages: Springer Book Archive