Methodology for Developing a High-speed Compiler Based on the Modified Loop Fusion Optimization Method: Models and Tools for its Implementation

Cover Page

Cite item

Full Text

Open Access Open Access
Restricted Access Access granted
Restricted Access Subscription Access

Abstract

In connection with the development of information technologies, the complexity of programming languages and, accordingly, applications developed using them, program optimization is of particular importance. In the process of optimization, the program is improved by reducing the code size, complexity, using less memory and provides a reduction in execution time without changing the internal function. In practice, optimization is implemented using compilers and their functions. Taking into account the above, the aim of the article was to develop a methodology for studying various aspects of building a high-speed compiler with a modified loop fusion optimization method, as well as models and tools for its implementation. In the course of the research, the features of its design using the modified loop fusion optimization method are outlined, descriptions of the flowchart of the modified loop fusion algorithm and the logical flowchart of the compiler development stages are given. As a result of the work, a compiler based on the modified loop fusion optimization method is proposed, using loop reversal to ensure their “legitimate” and profitable merging, which reduces the execution time of the program while maintaining its correctness. The efficiency of the proposed compiler is shown by comparing the compilation times of the test program obtained using it and using the well-known compiler x86-64 gcc 4.7.1.

Full Text

Restricted Access

About the authors

Boris A. Logunov

Scientific Research Center for Aircraft Strength, Federal Autonomous Institution “Central Aerohydrodynamic Institute named after Professor N.E. Zhukovsky” (FAI “TSAGI”)

Email: logunov39@mail.ru

Candidate of Engineering; Head of the Department of Measuring and Computing Equipment, Department of strength standards, loads and Aeroelasticty of the Scientific Research Center for Aircraft Strength of the Federal Autonomous Institution “Central Aerohydrodynamic Institute named after Professor N.Е. Zhukovsky” (FAI “TSAGI”)

Russian Federation, Zhukovsky, Moscow region

Ilya A. Kharin

Scientific Research Center for Aircraft Strength, Federal Autonomous Institution “Central Aerohydrodynamic Institute named after Professor N.E. Zhukovsky” (FAI “TSAGI”)

Author for correspondence.
Email: xarin.ilya@bk.ru

engineer of the Department of Measuring and Computing Equipment, Department of strength standards, loads and Aeroelasticty of the Scientific Research Center for Aircraft Strength of the Federal Autonomous Institution “Central Aerohydrodynamic Institute named after Professor N.Е. Zhukovsky” (FAI “TSAGI”)

Russian Federation, Zhukovsky, Moscow region

References

  1. Agez M. Correcting remaining truncations in hybrid life cycle assessment database compilation. Journal of Industrial Ecology. 2022. Vol. 26. No. 1. Pp. 121–133.
  2. Abate C. An extended account of trace-relating compiler correctness and secure compilation. ACM Transactions on Programming Languages and Systems. 2021. Vol. 43. No. 4. Pp. 14–19.
  3. Muller E. Push versus pull-based loop fusion in query engines. Journal of Functional Programming. 2018. Vol. 28. No. 1. Pp. 56–62.
  4. Sesin I.Yu. Comparative analysis of software optimization methods for combating branch predication on GPUs. Russian Technological Journal. 2021. No. 6. Pp. 7–15. (In Rus.)
  5. Li Hao. Compiling cross-language network programs into hybrid data plane. IEEE/ACM Transactions on Networking: A Joint Publication of the IEEE Communications Society. 2021. Vol. 30. No. 3. Pp. 1088–1103.
  6. Zhufeng H. Optimization based on LLVM global instruction selection. Journal of Physics. Conference Series. 2021. Vol. 1856. No. 1. Pp. 19–23.
  7. Ziraksima M. Using an evolutionary approach based on shortest common supersequence problem for loop fusion. Soft Computing: A Fusion of Foundations, Methodologies and Applications. 2020. Nо. 10. Рp. 7231–7252.
  8. Vladimirov K.I. Structure splitting optimization for the vector optimizer in the Intel graphics compiler. Modern Information Technologies and IT Education. 2022. No. 2. Pp. 249–255. (In Rus.)
  9. Josipovic L. Synthesizing general-purpose code into dynamically scheduled circuits. IEEE Circuits and Systems Magazine. 2021. Vol. 21. No. 2. Pp. 97–118.
  10. Kiesel R. Efficient knowledge compilation beyond weighted model counting. Theory and Practice of Logic Programming. 2022. Vol. 22. No. 4. Pp. 505–522.
  11. Ahmed H. Toward a novel engine for compiler optimization space exploration of big data workloads. Software, Practice & Experience. 2022. Vol. 52. No. 5. Pp. 1262–1293.
  12. Shymon I.M. Compilation, analysis and application of a comprehensive Bangla Corpus KUMono. IEEE Access: Practical Innovations, Open Solutions. 2022. Vol. 10. Pp. 79999–80014.
  13. Novikov K.D. Software optimization. Bulletin of the Russian New University. Series: Complex Systems: Models, Analysis and Control. 2021. No. 1. Pp. 159–165. (In Rus.)
  14. Murali P. Formal constraint-based compilation for noisy intermediate-scale quantum systems. Microprocessors and Microsystems. 2019. Vol. 66. No. 9. Pp. 102–112.
  15. Patrignani M. Robustly safe compilation, an efficient form of secure compilation. ACM Transactions on Programming Languages and Systems. 2021. Vol. 43. No. 1. Pp. 12–19.
  16. Gonopolsky M.G. Automatic generation of an interpreter for a multilingual virtual machine. Modern Information Technologies and IT Education. 2021. Vol. 17. No. 4. Pp. 988–997. (In Rus.)
  17. Baev R.V. Prevention of vulnerabilities resulting from optimization of code with undefined behavior. Proceedings of the Institute for System Programming of the Russian Academy of Sciences. 2021. Vol. 33. No. 4. Pp. 195–210. (In Rus.)
  18. Kormen T.H., Leizerson Ch.E., Rivest R.L., Stein C. Section 24.3: Dijkstra’s Algorithm. In: introduction to algorithms. 2nd ed. MIT Press and McGraw-Hill, 2001. Pp. 595–601. ISBN: 0-262-03293-7.

Supplementary files

Supplementary Files
Action
1. JATS XML
2. Fig. 1. Hash table block diagram

Download (95KB)
3. Fig. 2. Principle of code generation

Download (51KB)
4. Fig. 3. Block diagram of the algorithm based on the modified loop fusion optimization method

Download (191KB)
5. Fig. 4. A logical flowchart illustrating the stages of the compiler with the modified loop fusion optimization method

Download (259KB)
6. Fig. 5. Compiling the test program using the x86-64 gcc 4.7.1 compiler

Download (11KB)
7. Fig. 6. Compilation of the test program using the proposed compiler with the modified loop fusion optimization method

Download (70KB)
8. Fig. 7. Comparison diagram of compilation times

Download (56KB)


This website uses cookies

You consent to our cookies if you continue to use our website.

About Cookies