scholarly journals REDUCER: Elimination of Repetitive Codes for Accelerated Iterative Compilation

2021 ◽  
Vol 40 (3) ◽  
pp. 543-574
Author(s):  
Hameeza Ahmed ◽  
Muhammad Ali Ismail
Author(s):  
P. M. W. Knijnenburg ◽  
T. Kisuki ◽  
M. F. P. O’Boyle

2020 ◽  
Author(s):  
Kyriakos Georgiou ◽  
Zbigniew Chamski ◽  
Andres Amaya Garcia ◽  
David May ◽  
Kerstin Eder

Abstract Existing iterative compilation and machine learning-based optimization techniques have been proven very successful in achieving better optimizations than the standard optimization levels of a compiler. However, they were not engineered to support the tuning of a compiler’s optimizer as part of the compiler’s daily development cycle. In this paper, we first establish the required properties that a technique must exhibit to enable such tuning. We then introduce an enhancement to the classic nightly routine testing of compilers, which exhibits all the required properties and thus is capable of driving the improvement and tuning of the compiler’s common optimizer. This is achieved by leveraging resource usage and compilation information collected while systematically exploiting prefixes of the transformations applied at standard optimization levels. Experimental evaluation using the LLVM v6.0.1 compiler demonstrated that the new approach was able to reveal hidden cross-architecture and architecture-dependent potential optimizations on two popular processors: the Intel i5-6300U and the Arm Cortex-A53-based Broadcom BCM2837 used in the Raspberry Pi 3B+. As a case study, we demonstrate how the insights from our approach enabled us to identify and remove a significant shortcoming of the CFG simplification pass of the LLVM v6.0.1 compiler.


Author(s):  
G. G. Fursin ◽  
M. F. P. O’Boyle ◽  
P. M. W. Knijnenburg

Author(s):  
Toru Kisuki ◽  
Peter M. W. Knijnenburg ◽  
Mike F. P. O'Boyle ◽  
François Bodin ◽  
Harry A. G. Wijshoff

Author(s):  
Peter M. W. Knijnenburg ◽  
Toru Kisuki ◽  
Kyle Gallivan

2013 ◽  
Vol 433-435 ◽  
pp. 1410-1414
Author(s):  
Qi Shen Zhu

The GCC is an auto-vectorization compiler across iterations of loops to parallelism data. Turning GCC compiler optimizations flags for auto-vectorization is a way to improve the performance ability, which is a popular approach to speed up program performance. However, there are many options in GCC compiler and selecting the best combination of these options to improve program performance through vectorization is non-trivial ( as the search space is very large ).In this work we focus on the selection of compiler transformations to auto-vectorize loops with conditional statements. The selection of compiler transformations is based on the correlation between program features, speed-up, and the analysis of the code generated and a small number of passes of iterative compilation. Our preliminary experimental results show that proposed technique attains performance improvements the best ~ 6x using loops in the TSVC benchmark suite on the state-of-the-art Intel Core i3 processor.


Sign in / Sign up

Export Citation Format

Share Document