Advertisement

Simple Type-Based Alias Analysis for a VLIW Processor

  • Aleksey MarkinEmail author
  • Alexandr ErmolitskyEmail author
Conference paper
Part of the Communications in Computer and Information Science book series (CCIS, volume 779)

Abstract

Major C/C++ compilers use their own implements of type-based alias analysis; however, the impact of such algorithms on VLIW (Very Long Instruction Word) processors is not explored. This paper describes an implementation and effects of a simple type-based alias analysis known as strict-aliasing in the C/C++ compiler for Elbrus processor. Elbrus is a general-purpose VLIW microprocessor that relies on compiler optimizations for good performance. This paper demonstrates that strict-aliasing is a fast and scalable alias analysing technique. SPEC CPU2006 benchmarks measurement showed in the mean execution speed improvement of 28.6% for INT tests and 13.3% for FP tests in per module compilation mode. The measurement of whole-program mode showed 4.3% execution speed improvement for FP tests and 1.9% speed improvement for INT tests. These results illustrate that strict-aliasing can serve as a substitute for tradidional analysis in per module build mode and also disambiguate additional pointers in whole-program build mode.

Keywords

Optimizing compiler Strict-aliasing Pointer analysis Type-based alias analysis VLIW Elbrus 

References

  1. 1.
    Spec - standard performance evaluation corporation. http://www.spec.org. Accessed 30 Nov 2016
  2. 2.
    Andersen, L.O.: Program analysis and specialization for the c programming language. Technical report (1994)Google Scholar
  3. 3.
    Babayan, B.: E2K technology and implementation. In: Bode, A., Ludwig, T., Karl, W., Wismüller, R. (eds.) Euro-Par 2000. LNCS, vol. 1900, pp. 18–21. Springer, Heidelberg (2000).  https://doi.org/10.1007/3-540-44520-X_2 CrossRefGoogle Scholar
  4. 4.
    Diwan, A., McKinley, K.S., Moss, J.E.B.: Type-based alias analysis. In: Proceedings of the ACM SIGPLAN 1998 Conference on Programming Language Design and Implementation, PLDI 1998, pp. 106–117. ACM, New York (1998)Google Scholar
  5. 5.
    Hind, M.: Pointer analysis: haven’t we solved this problem yet? In: Proceedings of the 2001 ACM SIGPLAN-SIGSOFT Workshop on Program Analysis for Software Tools and Engineering, PASTE 2001, pp. 54–61. ACM, New York (2001)Google Scholar
  6. 6.
    Ireland, I., Amaral, J.N., Silvera, R., Cui, S.: Safetype: detecting type violations for type-basedalias analysis of C. Softw. Pract. Exp. 46(11), 1571–1588 (2016)CrossRefGoogle Scholar
  7. 7.
    Programming languages – c. Standard, April 2011Google Scholar
  8. 8.
    Pan, Z., Eigenmann, R.: Compiler optimization orchestration for peak performance, August 2017Google Scholar
  9. 9.
    Steensgaard, B.: Points-to analysis in almost linear time. In: Proceedings of the 23rd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL 1996, pp. 32–41. ACM, New York (1996)Google Scholar
  10. 10.
    Wang, X., Chen, H., Cheung, A., Jia, Z., Zeldovich, N., Kaashoek, M.F.: Undefined behavior: what happened to my code? In: Proceedings of the Asia-Pacific Workshop on Systems, APSYS 2012, pp. 9:1–9:7. ACM, New York (2012)Google Scholar
  11. 11.
    Whaley, J., Lam, M.S.: An efficient inclusion-based points-to analysis for strictly-typed languages. In: Proceedings of the 9th International Symposium on Static Analysis, SAS 2002, pp. 180–195. Springer, London (2002)Google Scholar

Copyright information

© Springer International Publishing AG 2018

Authors and Affiliations

  1. 1.MCSTMoscowRussian Federation

Personalised recommendations