1.1 The compiler

The compiler, armcc, is an optimizing C and C++ compiler that compiles Standard C and Standard C++ source code into machine code for ARM architecture-based processors.

Command-line options enable you to control the level of optimization.
The compiler compiles the following different varieties of C and C++ source code into ARM and Thumb® code:
  • ISO Standard C:1990 source.
  • ISO Standard C:1999 source.
  • ISO Standard C++:2003 source.
Publications on the C and C++ standards are available from national standards bodies. For example, AFNOR in France and ANSI in the USA.
The compiler also provides a vectorization mode for ARM processors that have NEON™ technology, enabling use of the ARM Advanced Single Instruction Multiple Data (SIMD) extension. Vectorization involves the compiler generating NEON vector instructions directly from C or C++ code.
armcc complies with the Base Standard Application Binary Interface for the ARM Architecture (BSABI). In particular, the compiler:
  • Generates output objects in ELF format.


    The Evaluation, LabVIEW Evaluation, 64K and Basic variants produce objects in the ORC_Keil_OBJECT format only. All other variants produce ELF objects.
  • Generates Debug With Arbitrary Record Format Debugging Standard Version 3 (DWARF 3) debug information and contains support for DWARF 2 debug tables.
  • Uses the Edison Design Group (EDG) front end.
Many features of the compiler are designed to take advantage of the target processor or architecture that your code is designed to run on, so knowledge of your target processor or architecture is useful, and in some cases, essential, when working with the compiler.
Related information
The DWARF Debugging Standard, http://dwarfstd.org/
Application Binary Interface (ABI) for the ARM Architecture
Non-ConfidentialPDF file icon PDF versionARM DUI0375E
Copyright © 2007, 2008, 2011, 2012, 2014 ARM. All rights reserved.