Optimizing Performance in Newer Toolchains with C and C++ Compilers for Arm


Kevin Smith, Senior Software Engineering Director of Compilers

I recently spoke at the Arm Dev Summit with James Greenhalgh of Arm on the importance of compliers for maximizing performance.  This blog summarizes our talk and you can watch the replay here.

With the rapid pace of change in the Arm64 environment, Ampere brings a strong focus on performance and compiler optimizations.

Up-to-date and easy-to-manage compilers such as GCC (GNU Compiler Collection) and Clang are powerful tools that require minimal configuration and can dramatically enhance open-source community build and package capabilities.

Upgrading your compiler brings advantages in four key areas:

1. Access to new cores and other architecture feature upgrades

2. Access to enhancements across the open-source ecosystem

3. Optimizations for size and performance

4. Novel defenses against security threats

Over time, Ampere and Arm have both partnered and contributed substantive improvements, resulting in more than 10% performance improvement in the GCC 10 release. These optimizations include better vectorization, removing invariants from loops, better use of select instructions, and constant propagation.  Think about this.  It’s all in open source and narrows the gap you might see with closed source proprietary compilers.

As developers keep pace with fast-changing architecture enhancements, compilers are an important part of the performance story. Interested in getting the best experience with servers and in the cloud?  Use up-to-date GCC 10 compilers to prepare your code for Ampere(R) Altra(TM) 80-core processors.



Related Post