skip to main content
research-article

SSI Properties Revisited

Published:01 June 2012Publication History
Skip Abstract Section

Abstract

The static single information (SSI) form is an extension of the static single assignment (SSA) form, a well-established compiler intermediate representation that has been successfully used for numerous compiler analysis and optimizations. Several interesting results have also been shown for SSI form concerning liveness analysis and the representation of live-ranges of variables, which could make SSI form appealing for just-in-time compilation. Unfortunately, we have uncovered several mistakes in the previous literature on SSI form, which, admittedly, is already quite sparse. This article corrects the mistakes that are most germane to SSI form. We first explain why the two definitions of SSI form proposed in past literature, first by C. S. Ananian, then by J. Singer, are not equivalent. Our main result is then to prove that basic blocks, and thus program points, can be totally ordered so that live-ranges of variables correspond to intervals on a line, a result that holds for both variants of SSI form. In other words, in SSI form, the intersection graph defined by live-ranges is an interval graph, a stronger structural property than for SSA form for which the intersection graph of live-ranges is chordal. Finally, we show how this structure of live-ranges can be used to simplify liveness analysis.

References

  1. Alpern, B., Wegman, M. N., and Zadeck, F. K. 1988. Detecting equality of variables in programs. In Proceedings of the 15th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL’88). ACM, 1--11. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Ananian, C. S. 1999. The static single information form. Tech. rep. MIT-LCS-TR-801, Laboratory for Computer Science, Massachusetts Institute of Technology.Google ScholarGoogle Scholar
  3. Appel, A. W. and Palsberg, J. 2002. Modern Compiler Implementation in Java 2nd Ed. Cambridge University Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Boissinot, B., Darte, A., Dupont de Dinechin, B., Guillon, C., and Rastello, F. 2009. Revisiting out-of-SSA translation for correctness, code quality, and efficiency. In Proceedings of the International Symposium on Code Generation and Optimization (CGO’09). IEEE Computer Society Press, 114--125. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Bouchez, F., Darte, A., Guillon, C., and Rastello, F. 2005. Register allocation and spill complexity under SSA. Tech. rep. RR2005-33, LIP, ENS Lyon, France.Google ScholarGoogle Scholar
  6. Bouchez, F., Darte, A., Guillon, C., and Rastello, F. 2006. Register allocation: What does the NP-completeness proof of Chaitin et al. really prove? In Proceedings of the 19th International Workshop on Languages and Compilers for Parallel Computing (LCPC’06). Lecture Notes in Computer Science, vol. 4382, Springer, 283--298. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Briggs, P., D.Cooper, K., Harvey, T. J., and Simpson, L. T. 1998. Practical improvements to the construction and destruction of static single assignment form. Softw. Pract. Exper. 28, 8, 859--881. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Brisk, P. and Sarrafzadeh, M. 2007. Interference graphs for procedures in static single information form are interval graphs. In Proceedings of the 10th International Workshop on Software & Compilers for Embedded Systems (SCOPES’’07). ACM Press, 101--110. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Brisk, P., Dabiri, F., Jafari, R., and Sarrafzadeh, M. 2006. Optimal register sharing for high-level synthesis of SSA form programs. IEEE Trans. Comput.-Aid. Des. Integr. Circ. Syst. 25, 5, 772--779. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Budimlić, Z., Cooper, K. D., Harvey, T. J., Kennedy, K., Oberg, T. S., and Reeves, S. W. 2002. Fast copy coalescing and live-range identification. In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI’02). ACM Press, 25--32. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Chaitin, G. J. 1982. Register allocation and spilling via graph coloring. In Proceedings of the SIGPLAN Symposium on Compiler Construction. ACM, 98--105. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Chaitin, G. J., Auslander, M. A., Chandra, A. K., Cocke, J., Hopkins, M. E., and Markstein, P. W. 1981. Register allocation via coloring. Comput. Lang. 6, 1, 47--57. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Cooper, K. D. and Torczon, L. 2004. Engineering a Compiler. Morgan Kaufmann.Google ScholarGoogle Scholar
  14. Cytron, R., Ferrante, J., Rosen, B. K., Wegman, M. N., and Zadeck, F. K. 1991. Efficiently computing static single assignment form and the control dependence graph. ACM Trans. Program. Lang. Syst. 13, 4, 451--490. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Golumbic, M. C. 2004. Algorithmic graph theory and perfect graphs. In Annals of Discrete Mathematics, vol. 57, North-Holland. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Hack, S., Grund, D., and Goos, G. 2006. Register allocation for programs in SSA form. In Proceedings of the 15th International Conference on Compiler Construction. A. Zeller and A. Mycroft Eds., Lecture Notes in Computer Science, vol. 3923, Springer, 247--262. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Havlak, P. 1997. Nesting of reducible and irreducible loops. ACM Trans. Program. Lang. Syst. 19, 4, 557--567. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Johnson, R., Pearson, D., and Pingali, K. 1994. The program structure tree: Computing control regions in linear time. ACM SIGPLAN Not. 29, 6, 171--185. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Pereira, F. M. Q. and Palsberg, J. 2005. Register allocation via coloring of chordal graphs. In Proceedings of the 3rd Asian Symposium on Programming Languages and Systems (APLAS’05). Lecture Notes in Computer Science, vol. 3780, Springer, 315--329. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Poletto, M. and Sarkar, V. 1999. Linear scan register allocation. ACM Trans. Program. Lang. Syst. 21, 5, 895--913. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Ramalingam, G. 2002. On loops, dominators, and dominance frontiers. ACM Trans. Program. Lang. Syst. 24, 5, 455--490. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Rosen, B. K., Wegman, M. N., and Zadeck, F. K. 1988. Global value numbers and redundant computations. In Proceedings of the 5th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL’88). ACM Press, 12--27. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Singer, J. 2006. Static program analysis based on virtual register renaming. Tech. rep. UCAM-CL-TR-660, Computer Laboratory, University of Cambridge.Google ScholarGoogle Scholar
  24. Sreedhar, V. C., Gao, G. R., and Lee, Y.-F. 1996. Identifying loops using DJ graphs. ACM Trans. Program. Lang. Syst. 18, 6, 649--658. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Sreedhar, V. C., Ju, R. D.-C., Gillies, D. M., and Santhanam, V. 1999. Translating out of static single assignment form. In Proceedings of the 6th International Symposium on Static Analysis (SAS’99). Springer, 194--210. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Steensgaard, B. 1993. Sequentializing program dependence graphs for irreducible programs. Tech. rep. MSR-TR-93-14, Microsoft Research, Redmond, WA.Google ScholarGoogle Scholar
  27. Wegman, M. N. and Zadeck, F. K. 1991. Constant propagation with conditional branches. ACM Trans. Program. Lang. Syst. 13, 2, 181--210. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. Yannakakis, M. and Gavril, F. 1987. The maximum k-colorable subgraph problem for chordal graphs. Inf. Process. Lett. 24, 2, 133--137. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. SSI Properties Revisited

    Recommendations

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in

    Full Access

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader
    About Cookies On This Site

    We use cookies to ensure that we give you the best experience on our website.

    Learn more

    Got it!