skip to main content
research-article

DeAliaser: alias speculation using atomic region support

Authors Info & Claims
Published:16 March 2013Publication History
Skip Abstract Section

Abstract

Alias analysis is a critical component in many compiler optimizations. A promising approach to reduce the complexity of alias analysis is to use speculation. The approach consists of performing optimizations assuming the alias relationships that are true most of the time, and repairing the code when such relationships are found not to hold through runtime checks.

This paper proposes a general alias speculation scheme that leverages upcoming hardware support for transactions with the help of some ISA extensions. The ability of transactions to checkpoint and roll back frees the compiler to pursue aggressive optimizations without having to worry about recovery code. Also, exposing the memory conflict detection hardware in transactions to software allows runtime checking of aliases with little or no overhead. We test the potential of the novel alias speculation approach with Loop Invariant Code Motion (LICM), Global Value Numbering (GVN), and Partial Redundancy Elimination (PRE) optimization passes. On average, they are shown to reduce program execution time by 9% in SPEC FP2006 applications and 3% in SPEC INT2006 applications over the alias analysis of a state-of-the-art compiler.

References

  1. IBM System Blue Gene Solution: Blue Gene/Q Application Development Manual. IBM Corp., March 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Intel Architecture Instruction Set Extensions Programmig Reference. Intel Corporation, February 2012.Google ScholarGoogle Scholar
  3. POWER ISA Transactional Memory. IBM Corp., December 2012.Google ScholarGoogle Scholar
  4. W. Ahn, S. Qi, J.-W. Lee, M. Nicolaides, X. Fang, J. Torrellas, D. Wong, and S. Midkiff. BulkCompiler: High-Performance Sequential Consistency through Cooperative Compiler and Hardware Support. In International Symposium on Microarchitecture, December 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. B. Alpern, M. N. Wegman, and F. K. Zadeck. Detecting Equality of Variables in Programs. In Symposium on Principles of Programming Languages, January 1988. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. L. O. Andersen. Program Analysis and Specialization for the C Programming Language. PhD thesis, Univ. of Copenhagen, 1994.Google ScholarGoogle Scholar
  7. E. Borin, Y.Wu, M. Breternitz, and C.Wang. LAR-CC: Large Atomic Regions with Conditional Commits. In International Symposium on Code Generation and Optimization, April 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. E. Borin, Y. Wu, C. Wang, W. Liu, M. Breternitz, Jr., S. Hu, E. Natanzon, S. Rotem, and R. Rosner. TAO: Two-level Atomicity for Dynamic Binary Optimizations. In International Symposium on Code Generation and Optimization, April 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. V. T. Chakaravarthy. New Results on the Computability and Complexity of Points--to Analysis. In International Symposium on Principles of Programming Languages, January 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. J. Chung, L. Yen, S. Diestelhorst, M. Pohlack, M. Hohmuth, D. Christie, and D. Grossman. ASF: AMD64 Extension for Lock-Free Data Structures and Transactional Memory. In International Symposium on Microarchitecture, December 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. C. Click. Azul's Experiences with Hardware Transactional Memory. In HP Labs Workshop on Transactional Memory, January 2009.Google ScholarGoogle Scholar
  12. J. Da Silva and J. G. Steffan. A Probabilistic Pointer Analysis for Speculative Optimizations. In International Conference on Architectural Support for Programming Languages and Operating Systems, October 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. P. Dahl and M. O'Keefe. Reducing Memory Traffic with CRegs. In International Symposium on Microarchitecture, December 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. X. Dai, A. Zhai, W.-C. Hsu, and P.-C. Yew. A General Compiler Framework for Speculative Optimizations Using Data Speculative Code Motion. In International Symposium on Code Generation and Optimization, March 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. J. Dehnert et al. The Transmeta Code Morphing Software: Using Speculation, Recovery, and Adaptive Retranslation to Address Real-Life Challenges. In International Symposium on Code Generation and Optimization, March 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. A. Diwan, K. S. McKinley, and J. E. B. Moss. Type-based Alias Analysis. In International Conference on Programming Language Design and Implementation, May 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. R. Ghiya, D. Lavery, and D. Sehr. On the Importance of Pointsto Analysis and Other Memory Disambiguation Methods for C Programs. In International Conference on Programming Language Design and Implementation, June 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. M. Hind. Pointer Analysis: Haven't We Solved this Problem Yet? In Workshop on Program Analysis for Software Tools and Engineering, June 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. S. Horwitz. Precise Flow-insensitive May-alias Analysis is NP-hard. ACM Transactions on Programming Languages and Systems, January 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. R. Kennedy, S. Chan, S.-M. Liu, R. Lo, P. Tu, and F. Chow. Partial Redundancy Elimination in SSA Form. ACM Transactions on Programming Languages and Systems, May 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. A. Klaiber. The Technology Behind Crusoe Processors. Technical report, Transmeta, January 2000.Google ScholarGoogle Scholar
  22. W. Landi. Undecidability of Static Analysis. ACM Letters on Programming Language System, December 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. C. Lattner and V. Adve. LLVM: a Compilation Framework for Lifelong Program Analysis Transformation. In International Symposium on Code Generation and Optimization, March 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. C. Lattner, A. Lenharth, and V. Adve. Making Context-Sensitive Points-to Analysis with Heap Cloning Practical For The Real World. In International Conference on Programming Language Design and Implementation, June 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. J. Lin, T. Chen, W.-C. Hsu, and P.-C. Yew. Speculative Register Promotion Using Advanced Load Address Table (ALAT). In International Symposium on Code Generation and Optimization, March 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. J. Lin, T. Chen, W.-C. Hsu, P.-C. Yew, R. D.-C. Ju, T.-F. Ngai, and S. Chan. A Compiler Framework for Speculative Analysis and Optimizations. In International Conference on Programming Language Design and Implementation, June 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. C.-K. Luk, R. Cohn, R. Muth, H. Patil, A. Klauser, G. Lowney, S.Wallace, V. J. Reddi, and K. Hazelwood. Pin: Building Customized Program Analysis Tools with Dynamic Instrumentation. In International Conference on Programming Language Design and Implementation, June 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. C. Minh, M. Trautmann, J. Chung, A. McDonald, N. Bronson, J. Casper, C. Kozyrakis, and K. Olukotun. An Effective Hybrid Transactional Memory System with Strong Isolation Guarantees. In International Symposium on Computer Architecture, June 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. N. Neelakantam, D. R. Ditzel, and C. Zilles. A Real System Evaluation of Hardware Atomicity for Software Speculation. In International Conference on Architectural Support for Programming Languages and Operating Systems, March 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. N. Neelakantam, R. Rajwar, S. Srinivas, U. Srinivasan, and C. Zilles. Hardware Atomicity for Reliable Software Speculation. In International Symposium on Computer Architecture, June 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. A. Nicolau. Run-Time Disambiguation: Coping with Statically Unpredictable Dependencies. IEEE Transactions on Computers, May 1989. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. S. Patel and S. Lumetta. rePLay: A Hardware Framework for Dynamic Optimization. IEEE Transactions on Computers, June 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. M. Postiff, D. Greene, and T. Mudge. The Store-load Address Table and Speculative Register Promotion. In International Symposium on Microarchitecture, December 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. G. Ramalingam. The Undecidability of Aliasing. ACM Transactions on Programming Language System, September 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. J. Renau, B. Fraguela, J. Tuck, W. Liu, M. Prvulovic, L. Ceze, S. Sarangi, P. Sack, K. Strauss, and P. Montesinos. SESC Simulator, January 2005. http://sesc.sourceforge.net.Google ScholarGoogle Scholar
  36. N. Rinetzky, G. Ramalingam, M. Sagiv, and E. Yahav. On the Complexity of Partially-flow-sensitive Alias Analysis. ACM Transaction on Programming Language System, May 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. B. Steensgaard. Points-to Analysis in Almost Linear Time. In International Symposium on Principles of Programming Languages, January 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. J. Torrellas, L. Ceze, J. Tuck, C. Cascaval, P. Montesinos, W. Ahn, and M. Prvulovic. The Bulk Multicore Architecture for Improved Programmability. Communications of the ACM, December 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. J. Tuck,W. Ahn, L. Ceze, and J. Torrellas. SoftSig: Software Exposed Hardware Signatures for Code Analysis and Optimization. In International Conference on Architectural Support for Programming Languages and Operating Systems, January 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. T. Vandrunen and A. L. Hosking. Value-based Partial Redundancy Elimination. In Compiler Construction, March 2004.Google ScholarGoogle ScholarCross RefCross Ref
  41. K. R. Wadleigh and I. L. Crawford. Software Optimization for High Performance Computing: Creating Faster Applications. Prentice Hall, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  42. R. P.Wilson and M. S. Lam. Efficient Context-sensitive Pointer Analysis for C programs. In International Conference on Programming Language Design and Implementation, June 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  43. Y. Wu and J. R. Larus. Static Branch Frequency and Program Profile Analysis. In International Symposium on Microarchitecture, November 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. DeAliaser: alias speculation using atomic region support

      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

      • Published in

        cover image ACM SIGPLAN Notices
        ACM SIGPLAN Notices  Volume 48, Issue 4
        ASPLOS '13
        April 2013
        540 pages
        ISSN:0362-1340
        EISSN:1558-1160
        DOI:10.1145/2499368
        Issue’s Table of Contents
        • cover image ACM Conferences
          ASPLOS '13: Proceedings of the eighteenth international conference on Architectural support for programming languages and operating systems
          March 2013
          574 pages
          ISBN:9781450318709
          DOI:10.1145/2451116

        Copyright © 2013 ACM

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 16 March 2013

        Check for updates

        Qualifiers

        • research-article

      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!