ARM Logo

ARM Compiler 6

Next-Generation Compiler Based on LLVM

ARM® Compiler 6 is the compilation toolchain for the ARM architecture, available in ARM Development Studio 5. ARM Compiler 6 brings together the modern LLVM compiler infrastructure and the highly optimized ARM C libraries to produce performance and power optimized embedded software for the ARM architecture.

Efficient code generation, better diagnostics, and faster feature development, coupled with ARM’s compiler backend expertise, make LLVM the natural choice for the next generation of ARM Compiler. Try a 30-day evaluation of DS-5 today and see what we mean.

See supported platforms »

The Best of Both Worlds

A complete toolchain that works out-of-the-box, ARM Compiler 6 is developed alongside the ARM architecture and is supported with DS-5 Professional Edition and Ultimate Edition.

Developed and maintained by ARM experts, ARM Compiler 6 has undergone exhaustive testing by ARM, our lead partners, and the community to ensure that it is stable, mature and efficient. ARM Compiler 6 makes use of Clang for the compiler front-end, whilst also retaining familiar sub-tools such as armasm, armlink, armar and fromelf.

Beyond the Future

ARM Compiler 6 is the reference compiler for the ARMv8 architecture and it is the choice of many ARM engineers working on the next generation products. With ARM Compiler 6, you get the earliest access to support for new ARM IP, giving you a head-start in code generation.

Collaborating to Bring the Code-Base Forwards

It’s easier than ever to collaborate with ARM on compiler customizations, making use of the open source framework and the associated LLVM community. ARM is committed to supporting the LLVM community and leveraging the open source for collaboration with our partnership and academia.

End customers benefit from LLVM’s modular framework and well defined interfaces making the code base easier to work with, helping to expedite new feature development. Tuning, testing and implementation are all much faster with LLVM.

Faster, Better, Stronger

Faster: ARM Compiler 6 gives up to 42% reduction of build time comparing to ARM Compiler 5 and makes better use of your hardware resource: a faster compiler means the same tasks can be completed in shorter time or, alternatively, more jobs can be run at the same time without upgrading your hardware.

Better: With C++11 and C++14, ARM Compiler 6 brings the support for the very latest C++ standards. Improve the readability of your code with the new keyword auto or improve performance of your classes by using Rvalue references and move constructors. ARM Compiler 6 improves the productivity during your software development activities by giving detailed and exhaustive error and warning messages.

Stronger: under the scrutiny of ARM engineers and hundreds of developers around the world, ARM Compiler 6 is a stable and robust toolchain. The testing framework used to validate ARM Compiler 5 has been enhanced and adapted to ARM Compiler 6 as a guarantee of the quality of tools, perfect for your new generation of products.

Migrating to ARM Compiler 6

Migration to ARM Compiler 6 from previous versions of ARM Compiler is simplified by our comprehensive migration guide: providing useful information regarding the differences between ARM Compiler 6 and earlier versions, the ARM Compiler migration guide explains variations in source code compatibility and command line options.

ARM Compiler 6 improves the compatibility with GNU GCC, making the task of porting code easier and with the support of the community and ARM engineers.

Supported platforms

Platform ARM Compiler 5 ARM Compiler 6
ARM Compiler 6
ARMv8-A (e.g. Cortex-A72)
ARMv7-A (e.g. Cortex-A7)
ARMv7-M (e.g. Cortex-M3)
ARMv7E-M (e.g. Cortex-M7)
ARMv7-R (e.g. Cortex-R7) (*) (*)
ARMv6-M (e.g. Cortex-M0+)
ARMv6 and previous (e.g. ARM11)

(*) Alpha support

Further Reading

ARM Compiler 6 technical blog on ARM Connected Community »

What’s new in ARM Compiler 6.01 »

ARM Compiler 6.02: yet another milestone!»

Comparison of errors, warnings and diagnostics in ARM Compiler 6 »

Creating Bare-Metal Position Independent Executables with ARM Compiler 6 »

Important Information for

This site uses cookies to store information on your computer. By continuing to use our site, you consent to our cookies. uses three types of cookies: (1) those that enable the site to function and perform as required; (2) analytical cookies which anonymously track visitors while using this site; and (3) cookies which track visitors while using this site and then link to that visitor’s account once they log in or register.

If you are not happy with this use of these cookies please review our Cookie Policy to learn how they can be disabled. By disabling cookies some features of the site will not work.