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.
- IBM System Blue Gene Solution: Blue Gene/Q Application Development Manual. IBM Corp., March 2012. Google Scholar
Digital Library
- Intel Architecture Instruction Set Extensions Programmig Reference. Intel Corporation, February 2012.Google Scholar
- POWER ISA Transactional Memory. IBM Corp., December 2012.Google Scholar
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- L. O. Andersen. Program Analysis and Specialization for the C Programming Language. PhD thesis, Univ. of Copenhagen, 1994.Google Scholar
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- C. Click. Azul's Experiences with Hardware Transactional Memory. In HP Labs Workshop on Transactional Memory, January 2009.Google Scholar
- 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 Scholar
Digital Library
- P. Dahl and M. O'Keefe. Reducing Memory Traffic with CRegs. In International Symposium on Microarchitecture, December 1994. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- M. Hind. Pointer Analysis: Haven't We Solved this Problem Yet? In Workshop on Program Analysis for Software Tools and Engineering, June 2001. Google Scholar
Digital Library
- S. Horwitz. Precise Flow-insensitive May-alias Analysis is NP-hard. ACM Transactions on Programming Languages and Systems, January 1997. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- A. Klaiber. The Technology Behind Crusoe Processors. Technical report, Transmeta, January 2000.Google Scholar
- W. Landi. Undecidability of Static Analysis. ACM Letters on Programming Language System, December 1992. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- A. Nicolau. Run-Time Disambiguation: Coping with Statically Unpredictable Dependencies. IEEE Transactions on Computers, May 1989. Google Scholar
Digital Library
- S. Patel and S. Lumetta. rePLay: A Hardware Framework for Dynamic Optimization. IEEE Transactions on Computers, June 2001. Google Scholar
Digital Library
- M. Postiff, D. Greene, and T. Mudge. The Store-load Address Table and Speculative Register Promotion. In International Symposium on Microarchitecture, December 2000. Google Scholar
Digital Library
- G. Ramalingam. The Undecidability of Aliasing. ACM Transactions on Programming Language System, September 1994. Google Scholar
Digital Library
- 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 Scholar
- 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 Scholar
Digital Library
- B. Steensgaard. Points-to Analysis in Almost Linear Time. In International Symposium on Principles of Programming Languages, January 1996. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- T. Vandrunen and A. L. Hosking. Value-based Partial Redundancy Elimination. In Compiler Construction, March 2004.Google Scholar
Cross Ref
- K. R. Wadleigh and I. L. Crawford. Software Optimization for High Performance Computing: Creating Faster Applications. Prentice Hall, 2000. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- Y. Wu and J. R. Larus. Static Branch Frequency and Program Profile Analysis. In International Symposium on Microarchitecture, November 1994. Google Scholar
Digital Library
Index Terms
DeAliaser: alias speculation using atomic region support
Recommendations
DeAliaser: alias speculation using atomic region support
ASPLOS '13: Proceedings of the eighteenth international conference on Architectural support for programming languages and operating systemsAlias 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 ...
DeAliaser: alias speculation using atomic region support
ASPLOS '13Alias 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 ...
BulkCompiler: high-performance sequential consistency through cooperative compiler and hardware support
MICRO 42: Proceedings of the 42nd Annual IEEE/ACM International Symposium on MicroarchitectureA platform that supported Sequential Consistency (SC) for all codes --- not only the well-synchronized ones --- would simplify the task of programmers. Recently, several hardware architectures that support high-performance SC by committing groups of ...







Comments