Skip to main content

Initial results for glacial variable analysis

  • Program Analysis
  • Conference paper
  • First Online:

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 1239))

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.

This is a preview of subscription content, log in via an institution.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. J. Auslander, M. Philipose, C. Chambers, S. J. Eggers, and B. N. Bershad. Fast, effective dynamic compilation. In PLDI96 [14], pages 149–159.

    Google Scholar 

  2. 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.

    Google Scholar 

  3. 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.

    Google Scholar 

  4. 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.

    Google Scholar 

  5. D. R. Engler. Vcode: A retargetable, extensible, very fast dynamic code generation system. In PLDI96 [14], pages 160–170.

    Google Scholar 

  6. A. Ershov. Mixed computation: The potential applications and problems for study. Theoretical Computer Science, 18:41–67, 1982.

    Article  Google Scholar 

  7. M. Hall. Managing Interprocedural Optimization. PhD thesis, Department of Computer Science, Rice University, 1991.

    Google Scholar 

  8. M. Hall and K. Kennedy. Efficient call graph analysis. Letters on Programming Languages and Systems, 1(3):227–242, September 1992.

    Article  Google Scholar 

  9. 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.

    Google Scholar 

  10. D. Keppel. Runtime Code Generation. PhD thesis, University of Washington Department of Computer Science and Engineering, Mar. 1996.

    Google Scholar 

  11. 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.

    Google Scholar 

  12. P. Lee and M. Leone. Optimizing ML with run-time code generation. In PLDI96 [14], pages 137–148.

    Google Scholar 

  13. 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.

    Google Scholar 

  14. Proceedings ACM SIGPLAN '96 Conf. on Programming Language Design and Implementation, Philadelphia, PA, May 1996.

    Google Scholar 

  15. 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.

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

David Sehr Utpal Banerjee David Gelernter Alex Nicolau David Padua

Rights and permissions

Reprints 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

Publish with us

Policies and ethics