The Reference Compiler for ARM

The ARM Compiler is specifically designed to optimize software running on ARM processors. It is the result of 20 years of development alongside the ARM Architecture, enabling you to profit from the extended ARM instruction set, including VFP and NEON™. The ARM Compiler toolchain incorporates a highly optimizing C/C++ compiler, assembler, linker and libraries for embedded software development.

Billions of devices containing software built with ARM tools have shipped to date, covering all embedded markets. Whether your industry is avionics, consumer electronics, mobile, industrial automation, automotive or medical, the ARM compiler can play a key role in optimizing your code.

Code Size



Extended Maintenance


Code Size Reduction


The ARM Compiler has a long embedded heritage, where memory space is a prized commodity. It incorporates techniques that can reduce your application footprint by up to 30% compared to other compilers.

In addition, the ARM Compiler includes an optional MicroLib C library for Cortex-M series microcontrollers, which provides up to a 50% reduction in code size compared to the full standard C library.

The MicroLib C library provides a completely C-based development environment without the need to revert to assembly language - even for interrupt service routines. This removes the need for specific knowledge of the ARM architecture.


You can use the ARM Compiler against malicious attacks. Its Stack Protection feature protects against modifications to the data in the call stack that could lead to unwanted software probing sensitive data on your device or taking control of it altogether by redirecting the program's control flow. Find out more about Stack Protection in the ARM Compiler.

In addition, this feature can be used to detect unintentional stack buffer overwrites, adding a level of fault detection to your system.


The ARM Compiler features full support for C90, C99 and C++2003 with optimized routines for VFP, NEON, ARM and Thumb-2 which can greatly improve the performance of your code.

In addition, the ARM Compiler supports semihosting, a great feature for early stages in a new project. When using the ARM Compiler with DS-5 Debugger and enabling semihosting, you can easily transfer data between the target and host computer by using the standard C library interface. For example, you can use printf() to send a string to the debugger's console window, or fread() to read data from a file on the host.

Many algorithms are now automatically generated from mathematical modeling software using floating point representations for data. Therefore, the accuracy of floating point representations is essential for correct operation of the generated code.

The default library selected by the ARM Compiler provides IEEE 754 floating point support. The compiler can optionally generate code to use either software floating point or any of the ARM hardware floating point units. Independent of the method used, the compiler generates full IEEE 754-compliant code. This means that your application will generate exactly the same result regardless of the target processor, simplifying software porting between devices.

Find out how you can utilize ARM Compiler 5 in your projects by contacting our sales team.

Extended Maintenance

Extended Maintenance and Support are fundamental aspects to protect your safety-critical projects against toolchain obsolescence. Initially supported in ARM Compiler 5.04 and now qualified also on ARM Compiler 5.06, Extended Maintenance is intended to maximize the stability of a fixed branch of the compiler toolchain by providing bug fixes and patches for a minimum of 5 years.

Learn more about the ARM Compiler Extended Maintenance & Support »

TÜV Certification and Compiler Qualification Kit

The ARM Compiler toolchain is certified by TÜV SÜD, a recognized safety industry expert. The TÜV Certificate and the accompanying report confirm that the ARM Compiler 5.04 fulfils the requirements for development tools classified T3 according to IEC 61508-3. This enables customers to apply the ARM Compiler 5.04 for safety- related development up to SIL3 (IEC 61508) or ASILD (ISO 26262) without further qualification activities when following the recommendations and conditions documented in the Qualification Kit.

The ARM Compiler Qualification Kit consists of a significant body of supporting evidence derived from our development process including defect reports, C90/C99 test reports and a compiler safety manual, so that you can increase your confidence in providing a justification argument for compliance. 

Learn more about the ARM Compiler Qualification Kit »

Compiler updates and patches

Provided you are on a valid Support and Maintenance contract, you are entitled to download the latest updates for the ARM Compiler.

Read Next

CoreMark and Compiler Performance

Dan Owens explains how compiler performance can be enhanced through CoreMark analysis.

In Depth: Stack Protection

Find out more about how stack protection in the ARM Compiler can prevent malicious or accidental stack overflows.

Semihosting: A Life Saver During SoC and Board Bring-up

When you are writing bare-metal software and wanting to do SoC or board bring-up, semihosting is a great way of establishing and verifying a connection to your target without relying on peripheral hardware or other function SoC blocks.

Evaluate DS-5 Buy DS-5