Skip to main content
Log in

Probabilistic Alias Analysis of Executable Code

  • Published:
International Journal of Parallel Programming Aims and scope Submit manuscript

Abstract

In this paper we present a method for flow-sensitive, context-insensitive probabilistic alias analysis at the assembly level. A memory disambiguation algorithm is also developed for revealing the probability of two registers holding the same memory location. The alias analysis and memory disambiguation algorithms are implemented based on the Diablo post-link optimizer. Experimental results show that the technique can estimate the probabilities that registers refer to the same memory address in benchmark programs with an overall average error of about 6.8%. The post-link optimizer can leverage the obtained quantitative information to facilitate aggressive analyses and optimizations.

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

Access this article

Subscribe and save

Springer+ Basic
$34.99 /Month
  • Get 10 units per month
  • Download Article/Chapter or eBook
  • 1 Unit = 1 Article or 1 Chapter
  • Cancel anytime
Subscribe now

Buy Now

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. Aho A.V., Sethi R., Ullman J.D.: Compilers: Principles, Techniques, and Tools. Addison Wesley, Reading (1986)

    Google Scholar 

  2. Allen R., Kennedy K.: Optimizing Compilers for Modern Architectures: A Dependence-based Approach. Morgan Kaufmann, Los Altos (2001)

    Google Scholar 

  3. Amme, W., Braun, P., Zehendner, E., Thomasset, F.: Data dependence analysis of assembly code. In: IEEE PACT, pp. 340–347 (1998)

  4. Balakrishnan, G., Reps, T.W.: Analyzing memory accesses in x86 executables. In: Duesterwald, E. (ed.) CC, Springer, Lecture Notes in Computer Science, vol. 2985, pp. 5–23 (2004)

  5. Burke, M., Carini, P., Choi, J.D., Hind, M.: Flow-insensitive interprocedural alias analysis in the presence of pointers. In: Proceedings of the 8th International Workshop on Languages and Compilers for Parallel Computing, Columbus, Ohio (1995)

  6. Chen, P.S., Hung, M.Y., Hwang, Y.S., Ju, R.D.C., Lee, J.K.: Compiler support for speculative multithreading architecture with probabilistic points-to analysis. In: Proceedings of ACM SIGPLAN Conference on Principles and Practice of Parallel Programming, pp. 25–36 (2003)

  7. Chen P.S., Hwang Y.S., Ju R.D.C., Lee J.K.: Interprocedural probabilistic pointer analysis. IEEE Trans. Parallel Distrib. Syst. 15(10), 893–907 (2004). doi:10.1109/TPDS.2004.56

    Article  Google Scholar 

  8. Das, M.: Unification-based pointer analysis with directional assignments. In: Proceedings of the ACM SIGPLAN 2000 Conference on Programming Language Design and Implementation, ACM Sigplan Notices, vol. 35, pp. 35–46 (2000)

  9. De Bus, B., Chanet, D., De Sutter, B., Van Put, L., De Bosschere, K.: The design and implementation of fit: A flexible instrumentation toolkit. In: Proceedings of the 2004 ACM SIGPLAN-SIGSOFT Workshop on Program Analysis for Software Tools and Engineering, pp. 29–34. ACM Press, Washington, DC (2004)

  10. Debray, S., Muth, R., Weippert, M.: Alias analysis of executable code. In: POPL ’98: Proceedings of the 25th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pp. 12–24. ACM, New York, NY, USA (1998). doi:10.1145/268946.268948

  11. Deutsch, A.: Interprocedural May-Alias analysis for pointers: Beyond k-limiting. SIGPLAN Notices 29(6), 230–241. Proceedings of the ACM SIGPLAN ’94 Conference on Programming Language Design and Implementation (1994)

  12. Emami, M., Ghiya, R., Hendren, L.J.: Context-sensitive interprocedural Points-to analysis in the presence of function pointers. SIGPLAN Notices 29(6), 242–256. Proceedings of the ACM SIGPLAN ’94 Conference on Programming Language Design and Implementation (1994)

    Google Scholar 

  13. Fernandez, M., Espasa, R.: Speculative alias analysis for executable code. In: 2002 International Conference on Parallel Architectures and Compilation Techniques (2002)

  14. Guo, B., Bridges, M.J., Triantafyllis, S., Ottoni, G., Raman, E., August, D.I.: Practical and accurate low-level pointer analysis. In: CGO, IEEE Computer Society, pp. 291–302 (2005)

  15. Guthaus, M., Ringenberg, J., Ernst, D., Austin, T., Mudge, T., Brown, R.: Mibench: A free, commercially representative embedded benchmark suite. Workload Characterization, Annual IEEE International Workshop 0:3–14 (2001). doi:10.1109/WWC.2001.15

  16. Hecht M.S.: Flow Analysis of Computer Programs. Elsevier Science Ltd., Amsterdam (1977)

    MATH  Google Scholar 

  17. Hind, M.: Pointer analysis: haven’t we solved this problem yet? In: PASTE ’01: Proceedings of the 2001 ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering, pp. 54–61. ACM, New York, NY, USA (2001). doi:10.1145/379605.379665

  18. Hoeflinger, J.P.: Interprocedural parallelization using memory classification analysis. PhD thesis, Champaign, IL, USA, adviser-Padua, David A. (1998)

  19. Hwang, Y.S., Chen, P.S., Lee, J.K., Ju, R.D.C.: Probabilistic points-to analysis. In: Proceedings of the 2001 International Workshop on Languages and Compilers for Parallel Computing (2001)

  20. Ju R.D.C., Collard J.F., Oukbir K.: Probabilistic memory disambiguation and its application to data speculation. SIGARCH Comput. Archit. News 27(1), 27–30 (1999). doi:10.1145/309758.309769

    Article  Google Scholar 

  21. Landi, W., Ryder, B.G.: A safe approximate algorithm for interprocedural pointer aliasing. SIGPLAN Notices 27(7):235–248. Proceedings of the ACM SIGPLAN ’92 Conference on Programming Language Design and Implementation (1992)

  22. Muchnick S.: Advanced Compiler Design and Implementation. Morgan Kaufmann, Los Altos (1997)

    Google Scholar 

  23. Muth, R., Debray, S.K., Watterson, S., Bosschere, K.D.: Alto: a link-time optimizer for the compaq alpha. In: Software-Practice and Experience (2001)

  24. Nicolau A.: Run-time disambiguation: Coping with statically unpredictable dependencies. IEEE Trans. Comput. 38(5), 633–678 (1989)

    Article  Google Scholar 

  25. Paek Y., Hoeflinger J., Padua D.: Efficient and precise array access analysis. ACM Trans. Program. Lang. Syst. (TOPLAS) 24(1), 65–109 (2002). doi:10.1145/509705.509708

    Article  Google Scholar 

  26. Ramalingam, G.: Data flow frequency analysis. In: Proceedings of the ACM SIGPLAN ’96 Conference on Programming Language Design and Implementation, pp. 267–277. ACM Press, New york (1996). doi:10.1145/231379.231433

  27. Rauchwerger, L.: Run-time parallelization: Its time has come. In: Special Issue on Languages and Compilers for Parallel Computers (1998)

  28. Reps, T.W., Balakrishnan, G.: Improved memory-access analysis for x86 executables. In: Hendren, L.J. (ed.) CC, Springer, Lecture Notes in Computer Science, vol. 4959, pp. 16–35 (2008)

  29. Rogers A., Carlisle M.C., Reppy J.H., Hendren L.J.: Supporting dynamic data structures on distributed-memory machines. ACM Trans. Program. Lang. Syst. (TOPLAS) 17(2), 233–263 (1995). doi:10.1145/201059.201065

    Article  Google Scholar 

  30. Rohou, E., Bodin, F., Seznec, A., Fol, G.L., Charot, F., Raimbault, F.: Salto: System for assembly-language transformation and optimization (1996)

  31. Ruf, E.: Context-insensitive alias analysis reconsidered. SIGPLAN Notices 30(6), 13–22. Proceedings of the ACM SIGPLAN ’95 Conference on Programming Language Design and Implementation (1995)

  32. Rugina, R., Rinard, M.: Pointer analysis for multithreaded programs. In: Proceedings of the ACM SIGPLAN ’99 Conference on Programming Language Design and Implementation, pp 77–90. ACM Press, New york (1999). doi:10.1145/301618.301645

  33. Rus S., Rauchwerger L., Hoeflinger J.: Hybrid analysis: Static & dynamic memory reference analysis. Int. J. Parallel Program. 31(4), 251–283 (2003). doi:10.1023/A:1024597010150

    Article  MATH  Google Scholar 

  34. Silberschatz A., Galvin P.B., Gagne G.: Operating System Concepts. John Wiley & Sons Inc., New York, NY, USA (2001)

    Google Scholar 

  35. Silva, J.D., Steffan, J.G.: A probabilistic pointer analysis for speculative optimizations. In: Proceedings of the 12th International Conference on Architectural Support for Programming Languages and Operating Systems (2006)

  36. Steensgaard, B.: Points-to analysis in almost linear time. In: Conference Record of POPL ’96: 23nd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pp. 32–41. St. Petersburg Beach, Florida (1996)

  37. Van Put, L., Chanet, D., De Bus, B., De Sutter, B., De Bosschere, K.: Diablo: A reliable, retargetable and extensible link-time rewriting framework. In: Proceedings of the 2005 IEEE International Symposium On Signal Processing And Information Technology, pp. 7–12. IEEE, Athens (2005)

  38. Wagner, T.A., Maverick, V., Graham, S.L., Harrison, M.A.: Accurate static estimators for program optimization. In: PLDI ’94: Proceedings of the ACM SIGPLAN 1994 Conference on Programming Language Design and Implementation, pp. 85–06, ACM, New York, NY, USA (1994)

  39. Wilson, R.P., Lam, M.S.: Efficient context-sensitive pointer analysis for c programs. In: Proceedings of the Conference on Programming Language Design and Implementation, pp. 1–12. ACM Press, New York (1995). doi:10.1145/207110.207111

  40. Wolfe M.: High Performance Compilers for Parallel Computing. Addison-Wesley Longman Publishing Co. Inc., Boston, MA, USA (1996)

    MATH  Google Scholar 

  41. Zima H., Chapman B.: Supercompilers for Parallel and Vector Computers. ACM, New York, NY, USA (1991)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Peng-Sheng Chen.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Lu, YM., Chen, PS. Probabilistic Alias Analysis of Executable Code. Int J Parallel Prog 39, 663–693 (2011). https://doi.org/10.1007/s10766-010-0157-y

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10766-010-0157-y

Keywords

Navigation