You copied the Doc URL to your clipboard.

Arm® Compiler Quick Reference

Quick reference for using Arm Compiler.

Common compiler options

For a full list of compiler options, see Arm C/C++ Compiler options Arm Fortran Compiler options.


General common compiler options



-o <file>

Write output to <file>.​


Only run preprocess, compile, and assemble steps.​


Generate source-level debug information.​


Enable all warnings.​


Suppress all warnings.​


Enable OpenMP.​


Level of optimization to use (0, 1, 2, 3).​


Enables aggressive optimization of floating-point operations.​


Allow fused floating-point operations (for example a Fused Multiply-Add (FMA)).​




Optimization Remarks is a feature of LLVM compilers that provides you with information about the choices that are made by the compiler.​


General common compiler options




Preprocess Fortran files. Default for .F, .F90, .F95,...​

-module <path>​

Specifies a directory to place, and search for, module files.


95: Use pre­Fortran 2003 standard semantics for assignments to allocatables

03: Use Fortran 2003 standard semantics for assignments to allocatables​


Set format for unformatted file access to numerical data to big-endian, little-endian, swap or native​


Sets default KIND for real and complex declarations, constants, functions, and intrinsics to 64-bit (that is, real (KIND=8)). Unspecified real kinds are evaluated as KIND=8.​


Set the default kind for INTEGER and LOGICAL to 64-bit (that is, KIND=8).​


Arm C/C++ Compiler supports pragmas to both encourage and suppress auto-vectorization. These pragmas use, and extend, the pragma clang loop directives.

#pragma clang loop vectorize(assume_safety)​

Allows the compiler to assume that there are no aliasing issues in a loop​.

#pragma clang loop unroll_count(_value_)​

Forces a scalar loop to unroll by a given factor​.

#pragma clang loop interleave_count(_value_)​

Forces a vectorized loop to interleave by a given factor​.

For more information about the pragma clang loop directives, see Auto-Vectorization in LLVM on the LLVM website, and Using pragmas to control auto-vectorization on the Arm Developer website.

Was this page helpful? Yes No