Modern compilers apply various code transformation algorithms to improve the quality of the target code. However, a complex problem is to determine which transformation algorithms must be utilized. This is difficult b...Modern compilers apply various code transformation algorithms to improve the quality of the target code. However, a complex problem is to determine which transformation algorithms must be utilized. This is difficult because of three reasons: a number of transformation algorithms, various combination possibilities, and several configuration possibil- ities. Over the last few years, various intelligent systems were presented in the literature. The goal of these systems is to search for transformation algorithms and thus apply them to a certain program. This paper proposes a flexible, low-cost and intelligent system capable of identifying transformation algorithms for an input program, considering the program's specific features. This system is flexible for parameterization selection and has a low-computational cost. In addition, it has the capability to maximize the exploration of available computational resources. The system was implemented under the Low Level Virtual Machine infrastructure and the results indicate that it is capable of exceeding, up to 21.36%, performance reached by other systems. In addition, it achieved an average improvement of up to 17.72% over the most aggressive compiler optimization level of the Low Level Virtual Machine infrastructure.展开更多
Selecting the optimal combination of compiler passes is a significant challenge to enhance performance and reduce the code size of compiled binaries.While a well-selected sequence of compiler passes can yield consider...Selecting the optimal combination of compiler passes is a significant challenge to enhance performance and reduce the code size of compiled binaries.While a well-selected sequence of compiler passes can yield considerable benefits,the large number of potential combinations and the scarcity of effective ones make this task prohibitively complex.To tackle this problem,we propose a novel approach to group compiler passes into a small set of sub-sequences.This approach translates the task of identifying the right compiler passes combination into determining the appropriate combination of these sub-sequences.We apply our approach to CBench and PolyBench,demonstrating remarkable performance improvements.Our approach enhances runtime performance by 22%compared to the default LLVM‘O3’option,and achieves a code size reduction of 24%compared to the‘Oz’option.Our approach also outperforms state-of-the-art across various optimization tasks and hardware platforms.展开更多
文摘Modern compilers apply various code transformation algorithms to improve the quality of the target code. However, a complex problem is to determine which transformation algorithms must be utilized. This is difficult because of three reasons: a number of transformation algorithms, various combination possibilities, and several configuration possibil- ities. Over the last few years, various intelligent systems were presented in the literature. The goal of these systems is to search for transformation algorithms and thus apply them to a certain program. This paper proposes a flexible, low-cost and intelligent system capable of identifying transformation algorithms for an input program, considering the program's specific features. This system is flexible for parameterization selection and has a low-computational cost. In addition, it has the capability to maximize the exploration of available computational resources. The system was implemented under the Low Level Virtual Machine infrastructure and the results indicate that it is capable of exceeding, up to 21.36%, performance reached by other systems. In addition, it achieved an average improvement of up to 17.72% over the most aggressive compiler optimization level of the Low Level Virtual Machine infrastructure.
基金supported by the National Key Research and Development Program of China under Grant No.2023YFB3001503the National Natural Science Foundation of China under Grant No.61972408.
文摘Selecting the optimal combination of compiler passes is a significant challenge to enhance performance and reduce the code size of compiled binaries.While a well-selected sequence of compiler passes can yield considerable benefits,the large number of potential combinations and the scarcity of effective ones make this task prohibitively complex.To tackle this problem,we propose a novel approach to group compiler passes into a small set of sub-sequences.This approach translates the task of identifying the right compiler passes combination into determining the appropriate combination of these sub-sequences.We apply our approach to CBench and PolyBench,demonstrating remarkable performance improvements.Our approach enhances runtime performance by 22%compared to the default LLVM‘O3’option,and achieves a code size reduction of 24%compared to the‘Oz’option.Our approach also outperforms state-of-the-art across various optimization tasks and hardware platforms.