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

General common compiler options

Option

Description

-o <file>

Write output to <file>.​

-c​

Only run preprocess, compile, and assemble steps.​

-g

Generate source-level debug information.​

-Wall

Enable all warnings.​

-w

Suppress all warnings.​

-fopenmp

Enable OpenMP.​

-On

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

-Ofast

Enables aggressive optimization of floating-point operations.​

-ffp-contract=(fast|on|off)​

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

-Rpass=\(loop-vectorize\|inline\)​

-Rpass-missed=\(loop-vectorize\|inline\)​

-Rpass-analysis=\(loop-vectorize\|inline\)​

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

Fortran

General common compiler options

Option

Description

-cpp

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

-module <path>​

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

-Mallocatable=(95|03)​

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

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

-fconvert=<setting>

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

-r8

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.​

-i8

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

Pragmas

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