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

封面

如何引用文章

全文:

开放存取 开放存取
受限制的访问 ##reader.subscriptionAccessGranted##
受限制的访问 订阅存取

详细

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.

全文:

受限制的访问

作者简介

Boris 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”)

俄罗斯联邦, Zhukovsky, Moscow region

Ilya Kharin

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

编辑信件的主要联系方式.
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”)

俄罗斯联邦, Zhukovsky, Moscow region

参考

  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.

补充文件

附件文件
动作
1. JATS XML
2. Fig. 1. Hash table block diagram

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

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

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

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

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

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

下载 (56KB)


##common.cookie##