Are you starting a new project that requires safety certification?

Arm is releasing a new safety toolchain this Autumn 2021.

Learn more

Overview

Arm Compiler provides the earliest, most complete, and most accurate support for the latest architectural features and extensions of the Arm architecture. Arm Compiler supports all the latest Arm Cortex, Neoverse, and SecurCore processors, including cores that are in development.

Arm Compiler is a mature toolchain that is tailored to the development of bare-metal software, firmware, and Real-Time Operating System (RTOS) applications. Arm Compiler is used by leading companies in a wide variety of industries, including automotive (ISO 26262), consumer electronics, industrial (IEC 61508), medical (IEC 62304), networking, railway (EN 50128), storage, and telecommunications. For HPC and scientific applications, see the Linux user-space C/C++ Compiler and Linux user-space Fortran compiler.

The Arm Compiler includes many powerful space-saving and performance-enhancing optimization techniques, including low-level microarchitecture-specific instruction scheduling, unused section elimination, and aggressive Link-Time Optimization (LTO).

Components

  • armclang:
    • Is built on modern LLVM and Clang technology
    • Supports GNU syntax assembly
    • Is highly compatible with source code originally written for GCC
    • Implements specifications including ANSI/ISO C and C++, ABI for the Arm architecture, ABI for the 64-bit Arm architecture, and Arm C Language Extensions (ACLE)

  • armlink: Feature-rich dedicated embedded linker that combines objects and libraries to produce an executable

  • Arm C libraries: Optimized by Arm for performance and code density, and include the tiny MicroLib for deeply embedded applications.

  • Arm C++ libraries: Libraries based on the LLVM libc++ project

  • fromelf: Image conversion utility and disassembler

  • armar: Archiver that enables sets of object files to be collected together

Workflow

Arm Compiler workflow diagram

Use cases

Optimize resources icon black

Develop efficient software

From low-cost, memory-constrained embedded systems to high-end complex heterogeneous systems, Arm Compiler is optimized for a range of embedded workloads, with performance and code density that can be tuned for your specific target application.

Validated foundation icon black

Verify system design

Developed in collaboration with Arm processor and architecture projects, Arm Compiler is the ideal toolchain for verifying your design. Arm Compiler provides the earliest, most complete, and most accurate support for the latest Arm cores and architectural extensions.

Hardware icon black

Explore Arm architecture features

Selecting the right Arm IP is one of the most important decisions for your SoC design. Combined with Arm Flexible Access, Arm Compiler lets you evaluate which Arm solution best suits your application and market requirements.

Secuirty shield icon black

Build safety-critical code

Developing complex safety-related applications can be challenging and time-consuming. Specific releases of Arm Compiler and the C Libraries have been certified by TÜV SÜD for development to the most demanding Safety Integrity Levels (SIL), accelerating your certification process.

Security lock icon black

Develop for secure systems

Some critical systems, like Secure firmware, have specific security requirements. Arm Compiler lets you generate execute-only code, and securely interface between Secure and Non-secure software in systems that implement TrustZone for  Armv8-M.

Get Arm Compiler

Black coloured download icon

Try Arm Compiler

Get a free 30-day license for Arm Compiler in Development Studio, or through a seven-day evaluation of Keil MDK Professional.

Evaluate

Support

Community Forums

Answered Forum FAQs
  • ARM Community
0 votes 665 views 0 replies Started 6 months ago by Annie Answer this
Suggested answer Runtime check option in GNU ARM 7.3.1
  • GNU Arm
  • Runtime
  • GNU Toolchain
0 votes 393 views 5 replies Latest 3 days ago by Tamar Christina Answer this
Suggested answer What optimization options (flags) are enabled for predefined optimization levels -O<n> in armclang? Where can I find a list of all available optimization options?
  • Arm Compiler 6
  • optimization
0 votes 223 views 2 replies Latest 6 days ago by bewi Answer this
Suggested answer Error: A9555E - License checkout for feature Compiler5 with version 5.02 denied by Flex-back end 0 votes 297 views 4 replies Latest 11 days ago by Ronan Synnott Answer this
Suggested answer armcc or armclang versus gcc
  • Arm Compiler for Linux
  • Arm Compiler
0 votes 174 views 1 replies Latest 12 days ago by Ronan Synnott Answer this
Not answered using -ffile-prefix-map 0 votes 203 views 0 replies Started 27 days ago by dgreen Answer this
Suggested answer Why Neon LD4 insturction is resolved to 2 ldp instructions?
  • AArch64
  • NEON
0 votes 255 views 1 replies Latest 1 months ago by Ronan Synnott Answer this
Not answered Why gcc-arm-9.2-2019.12-x86_64-aarch64-none-linux-gnu compiler does not support glibcxx_3.4.x and cxxabi_1.3.x version?How to fix this problem, thank you! 0 votes 107 views 0 replies Started 1 months ago by emily.qi Answer this
Suggested answer ArmIE emulator 21.0 Segfault enabling SVE
  • AArch64
  • Arm Compiler
  • Arm Instruction Emulator
0 votes 401 views 4 replies Latest 1 months ago by borrow Answer this
Not answered 条件编译出现两个都执行情况? 0 votes 160 views 0 replies Started 1 months ago by Conan Answer this
Not answered copy function from flash to ram for flash execution 0 votes 125 views 0 replies Started 1 months ago by messi Answer this
Suggested answer Placing data in debug sections with armlink
  • Arm Compiler 6
0 votes 320 views 1 replies Latest 1 months ago by Ronan Synnott Answer this
Answered Forum FAQs Started 6 months ago by Annie 0 replies 665 views
Suggested answer Runtime check option in GNU ARM 7.3.1 Latest 3 days ago by Tamar Christina 5 replies 393 views
Suggested answer What optimization options (flags) are enabled for predefined optimization levels -O<n> in armclang? Where can I find a list of all available optimization options? Latest 6 days ago by bewi 2 replies 223 views
Suggested answer Error: A9555E - License checkout for feature Compiler5 with version 5.02 denied by Flex-back end Latest 11 days ago by Ronan Synnott 4 replies 297 views
Suggested answer armcc or armclang versus gcc Latest 12 days ago by Ronan Synnott 1 replies 174 views
Not answered using -ffile-prefix-map Started 27 days ago by dgreen 0 replies 203 views
Suggested answer Why Neon LD4 insturction is resolved to 2 ldp instructions? Latest 1 months ago by Ronan Synnott 1 replies 255 views
Not answered Why gcc-arm-9.2-2019.12-x86_64-aarch64-none-linux-gnu compiler does not support glibcxx_3.4.x and cxxabi_1.3.x version?How to fix this problem, thank you! Started 1 months ago by emily.qi 0 replies 107 views
Suggested answer ArmIE emulator 21.0 Segfault enabling SVE Latest 1 months ago by borrow 4 replies 401 views
Not answered 条件编译出现两个都执行情况? Started 1 months ago by Conan 0 replies 160 views
Not answered copy function from flash to ram for flash execution Started 1 months ago by messi 0 replies 125 views
Suggested answer Placing data in debug sections with armlink Latest 1 months ago by Ronan Synnott 1 replies 320 views