Preview

Proceedings of the Institute for System Programming of the RAS (Proceedings of ISP RAS)

Advanced search

Automatic tuning of GCC optimization passes for ARM platform

Abstract

Modern compilers can work on many platforms and implement a lot of optimizations, which are not always tuned well for every target platform. In the paper we present a tool for automatic tuning of compilation parameters that was developed in ISP RAS. The tool uses genetic algorithm to evolve the best compiler optimization parameters. It supports cross-compilation, parallel build and execution on remote targets, and support for two-tier compilation mode for profile-guided optimizations. Also it provides the tools for automated analysis of the tuning results to help identify the most important compilation parameters.

We used our tool to tune GCC parameters for ARM platform, and demonstrated how it can be used to improve performance of several popular applications. Using the tool’s automated analysis of the tuning results, we found several deficiencies in GCC compiler optimizations. The affected optimizations include if-conversion (conversion of conditional branches into predicated form), prefetching (adding of data prefetching instructions in loops), and autovectorization. We identified the reasons for suboptimal code generation, and improved affected optimizations accordingly. Also, we describe a few other improvements that we made to GCC based on the results of manual assembly code analysis. Described  improvements to GCC yield significant speedup for chosen test applications on ARM platform.

About the Authors

Roman Zhuykov
ISP RAS
Russian Federation


Dmitry Plotnikov
ISP RAS
Russian Federation


Mamikon Vardanyan
ISP RAS
Russian Federation


References

1. Gnu Compiler Collection website. http://gcc.gnu.org/

2. A. Belevantsev, D. Zhurikhin, D. Melnik. Kompilyatsiya programm dlya sovremennykh arkhitektur [Program compilation for modern architectures], Trudy ISP RAN [The Proceedings of ISP RAS], 2009, vol. 16, pp. 31-50 (in Russian).

3. ACOVEA website. http://www.coyotegulch.com/products/acovea/

4. Enlightenment Foundation Libraries website. http://www.enlightenment .org/p.php?p=about/efl

5. SQLite website. http://www.sqlite.org/about.html

6. WebKit website. http://www.webkit.org

7. S. Pop, R. Yazdani, Q. Neill “Improving GCC’s auto-vectorization with if-conversion and loop flattening”, Proceedings of the GCC Developers Summit 2010, pp. 89-96.

8. C. Yang, C. Li, F. Wang “Performance Improvements for GCC Using Architecture Features on IA-64”, Proceedings of the GCC Developers Summit 2005, pp. 199-208.

9. Standard Performance Evaluation Corporation website. http://www.spec.org/cpu2000

10. D. Nuzman, A. Zaks. "Autovectorization in GCC – two years later", Proceedings of the GCC Developers Summit 2006, pp. 145-158.

11. ARM website. NEON technology. http://www.arm.com/products/processors/technologies/neon.php


Review

For citations:


Zhuykov R., Plotnikov D., Vardanyan M. Automatic tuning of GCC optimization passes for ARM platform. Proceedings of the Institute for System Programming of the RAS (Proceedings of ISP RAS). 2012;22. (In Russ.)



Creative Commons License
This work is licensed under a Creative Commons Attribution 4.0 License.


ISSN 2079-8156 (Print)
ISSN 2220-6426 (Online)