LLVM Based Approach to Static Analysis of C Programs in SAPFOR


N.A. Kataev


Heterogeneous computational systems are becoming very popular nowadays. However, developing efficient parallel programs, that can exploit the potential parallelism of these systems, still remains difficult for most of application programmers. Program parallelization may require significant transformation of the original program. SAPFOR (System FOR Automated Parallelization) aims to simplify the development of parallel programs of scientific-technical calculations. It was designed to perform source-to-source transformation of a sequential program for execution on heterogeneous computational systems. This paper discusses the implementation of program analysis in SAPFOR. The presented approach relies on LLVM (Low Level Virtual Machine) capabilities to examine a program. SAPFOR explores the properties of low-level program representation to recognize related properties of the program in programming language. Some kind of IR-level transformations may be applied without any loss of analysis accuracy. Furthermore, these transformations allow us to increase the quality of program analysis.

Key words

program analysis, program parallelization, source-to-source transformation, LLVM, SAPFOR.




N.A. Kataev. LLVM Based Approach to Static Analysis of C Programs in SAPFOR // 2018 Ivannikov Memorial Workshop Proccedings; IEEE Xplore Digital Library , Yerevan, Armenia: IEEE, 2019, P. 19-23