Modern compilers implement a number of optimization switches and they must be configured carefully in order to obtain the best performance. However, there exist few strategies to configure these... Show moreModern compilers implement a number of optimization switches and they must be configured carefully in order to obtain the best performance. However, there exist few strategies to configure these compiler switches or flags. This is caused by the fact that the performance of a code is both dependent on the target architecture and the application. Additionally, the effect of the compiler optimizations is highly dependent on other compiler optimizations which are employed, causing the actual effect to be masked and not predictable. In this thesis, we propose to use statistical analysis to determine the effectiveness of the compiler optimizations. This enables us to construct systematic methodologies for determining settings of compiler optimizations automatically. The proposed methodologies are all independent from the implementation of compilers and implementation of applications, therefore, it is easy to apply our methodologies to any combination of compilers and applications. This versatility makes our results unique compared to other approaches. Additionally, with our methodologies, users can choose their optimization objective, for example, execution time or code size, etc. From the results shown in this thesis, we can concluded that the statistical tuning of compiler optimization is both possible and useful. Show less