METHODOLOGY OF DYNAMIC COMPILER OPTION SELECTION BASED ON STATIC PROGRAM ANALYSIS - IMPLEMENTATION AND EVALUATION
Eun Jung Park · 2007
When we develop applications, it is important to write optimized code so that we can achieve good performance. However, the proper use of compiler optimization options is essential because obtaining the maximum possible performance by writing only optimized code (without compiler’s help) is very difficult, if not impossible. Current compilers possess a myriad of options to optimize the application. Nevertheless, they provide a subset of options called the standard optimization options, which will provide safe optimization and give a reasonable optimized code. We can use the standard optimization options; however, they are not always an optimal solution for all applications. Therefore, we should carefully choose the set of options if we need additional performance improvement. This research area has three main challenges: (1) Due to the number of optimization options in a compiler, finding the optimal set of options for a target program by brute force or any other exhaustive method is not simple. (2) Although we find the best set for the application, the compiler will apply this set of options to the whole program. Thus it is possible to lose some performance improvements because some options may affect negatively specific parts and decrease the overall performance. (3) The absence of an automatic test platform gives more complexity in evaluation process so it is hard to test various benchmarks under different conditions. To resolve these problems, the methodology shown in [1] proposed how we identify performance sensitive code segments automatically. The key challenge in this methodology is how to automatically identify a special code segments to which customized set of optimization options could be applied [1]. To address this