# Functional overview The LLVM compilers offer the following features: - ISO C conformance - Supports the International Standards Organization (ISO) C language standard - Compatibility - Supports Hexagon extensions and most GCC extensions to simplify porting - System library - Supports standard libraries for C and C++ - Processor-specific libraries - Provides library routines that are optimized for the Hexagon architecture - Intrinsics - Provides a mechanism for emitting Hexagon assembly instructions in C source code ## Languages The LLVM compilers support C, C++, and many dialects of those languages: - C language dialects - K&R C, ANSI C89, ISO C90, ISO C94 (C89+AMD1), ISO C99 (+TC1, TC2, TC3), ISO C11 - C++ language dialects - C++98, C++11, C++14, C++17 The LLVM compilers also support a broad variety of language extensions. These extensions are provided for compatibility with the GCC, Microsoft, and other popular compilers, as well as to improve functionality through the addition of extensions unique to the LLVM compilers. All language extensions are explicitly recognized as such by the LLVM compilers. They are marked with extension diagnostics that can be mapped to warnings, errors, or simply ignored. For compiling C sources, C11 is the default mode used by the LLVM compiler. The compiler does not support the C11 optional features of bounds checking interfaces and C11 threads. Consequently, as prescribed by the standard, the compiler does not define the `__STDC_LIB_EXT1__` macro, and it defines the `__STDC_NO_THREADS__` macro. The following C++17 features are not supported by the LLVM compilers: - *ISO/IEC TS 19570:2015 C++ Extensions for Parallelism* technical specification - `constexpr std::hardware_constructive` - `constexpr std::hardware_destructive` ## GCC compatibility The LLVM compiler driver and language features are intentionally designed to be as compatible with the GNU GCC compiler as reasonably possible, easing migration from GCC to the LLVM compiler. In most cases, code *just works*. Note The Hexagon LLVM compilers are fully compatible with the GNU toolchain. ## Runtime systems The Hexagon LLVM compilers support the development of both standalone programs and RTOS applications. The build procedure for an RTOS application is a superset of the standard procedure for building a C/C++ application. Note For details, see the *Hexagon QuRT RTOS System Build Guide* (80-VB419-79). ## Processor versions The Hexagon LLVM compilers support all of the Hexagon processor versions listed in the table below. However, not all processor versions are supported in all Hexagon tools releases. The table lists the versions supported in each release, and it provides the default version when a processor-version command option is not specified in the compiler. For more information on the Hexagon processor versions, see the *Qualcomm Hexagon Programmer’s Reference Manual* (see [References](https://docs.qualcomm.com/doc/80-N3040-23/topic/references.html)). The compilers define command options (`-mv68`, `-mv69`, and so on) that specify the processor version for which they will generate output files. For more information on these and related command options, see Section 4.3. | Tools release | Processor versions | Default version | | --- | --- | --- | | 8.0.x | V5, V55, V56, V60, V60 HVX, V61, V62, V62 HVX | V60 | | 8.1.x | V5, V55, V56, V60, V60 HVX, V61, V62, V62 HVX, V65, V65 HVX | V60 | | 8.2.x | V5, V55, V56, V60, V60 HVX, V61, V62, V62 HVX, V65, V65 HVX, V66, V66 HVX | V60 | | 8.3.x | V55, V56, V60, V60 HVX, V61, V62, V62 HVX, V65, V65 HVX, V66, V66 HVX, V67, V67 Small Core (V67t) | V60 | | 8.4.x | V62, V62 HVX, V65, V65 HVX, V66, V66 HVX, V67, V67 Small Core (V67t), V68, V68 HVX | V68 | | 8.5.x | V65, V65 HVX, V66, V66 HVX, V67, V67 Small Core (V67t), V68, V68 HVX, V69, V69 HVX, V71, V71 Small Core (V71t) | V68 | | 8.6.x | V65, V65 HVX, V66, V66 HVX, V67, V67 Small Core (V67t), V68, V68 HVX, V69, V69 HVX, V71, V71 Small Core (V71t), V73 | V68 | | 8.7.x | V65, V65 HVX, V66, V66 HVX, V67, V67 Small Core (V67t), V68, V68 HVX, V69, V69 HVX, V71, V71 Small Core (V71t), V73, V75, V77 | V68 | | 8.8.x | V68, V68 HVX, V69, V69 HVX, V71, V71 Small Core (V71t), V73, V75, V77, V79 | V68 | Note The LLVM compilers do not define command options specifically for V56, but they do support V56 if you use the V55 command options. ## Processor-specific features The Hexagon LLVM compilers include compiler options, language extensions, and libraries that are specific to the Hexagon processor. ## C language and compiler references This document does not describe the following: - C or C++ languages - Detailed descriptions of the code optimizations performed by the LLVM compiler For suggested references, see [References](https://docs.qualcomm.com/doc/80-N3040-23/topic/references.html). Last Published: Oct 06, 2026 [Previous Topic Technical assistance](https://docs.qualcomm.com/bundle/publicresource/80-N3040-23/topics/llvm-ccpp-compiler-introduction.md) [Next Topic Get started](https://docs.qualcomm.com/bundle/publicresource/80-N3040-23/topics/get-started.md)