# LLVM C/C++ Compiler User Guide Contents - [Introduction](https://docs.qualcomm.com/doc/80-N3040-23/topic/llvm-ccpp-compiler-introduction.html) - [Conventions](https://docs.qualcomm.com/doc/80-N3040-23/topic/llvm-ccpp-compiler-introduction.html#conventions) - [Technical assistance](https://docs.qualcomm.com/doc/80-N3040-23/topic/llvm-ccpp-compiler-introduction.html#technical-assistance) - [Functional overview](https://docs.qualcomm.com/doc/80-N3040-23/topic/functional-overview.html) - [Languages](https://docs.qualcomm.com/doc/80-N3040-23/topic/functional-overview.html#languages) - [GCC compatibility](https://docs.qualcomm.com/doc/80-N3040-23/topic/functional-overview.html#gcc-compatibility) - [Runtime systems](https://docs.qualcomm.com/doc/80-N3040-23/topic/functional-overview.html#runtime-systems) - [Processor versions](https://docs.qualcomm.com/doc/80-N3040-23/topic/functional-overview.html#processor-versions) - [Processor-specific features](https://docs.qualcomm.com/doc/80-N3040-23/topic/functional-overview.html#processor-specific-features) - [C language and compiler references](https://docs.qualcomm.com/doc/80-N3040-23/topic/functional-overview.html#c-language-and-compiler-references) - [Get started](https://docs.qualcomm.com/doc/80-N3040-23/topic/get-started.html) - [Create source file](https://docs.qualcomm.com/doc/80-N3040-23/topic/get-started.html#create-source-file) - [Compile program](https://docs.qualcomm.com/doc/80-N3040-23/topic/get-started.html#compile-program) - [Execute program](https://docs.qualcomm.com/doc/80-N3040-23/topic/get-started.html#execute-program) - [Use the compilers](https://docs.qualcomm.com/doc/80-N3040-23/topic/use-the-compilers.html) - [Start the compilers](https://docs.qualcomm.com/doc/80-N3040-23/topic/use-the-compilers.html#start-the-compilers) - [Input and output files](https://docs.qualcomm.com/doc/80-N3040-23/topic/use-the-compilers.html#input-and-output-files) - [Compiler options](https://docs.qualcomm.com/doc/80-N3040-23/topic/use-the-compilers.html#compiler-options) - [Control diagnostic messages](https://docs.qualcomm.com/doc/80-N3040-23/topic/use-the-compilers.html#control-diagnostic-messages) - [HVX vector operand widths](https://docs.qualcomm.com/doc/80-N3040-23/topic/use-the-compilers.html#hvx-vector-operand-widths) - [HVX and floating-point code generation](https://docs.qualcomm.com/doc/80-N3040-23/topic/use-the-compilers.html#hvx-and-floating-point-code-generation) - [Code optimization](https://docs.qualcomm.com/doc/80-N3040-23/topic/code-optimization.html) - [Software pipelining](https://docs.qualcomm.com/doc/80-N3040-23/topic/code-optimization.html#software-pipelining) - [Merge functions](https://docs.qualcomm.com/doc/80-N3040-23/topic/code-optimization.html#merge-functions) - [Automatic vectorization](https://docs.qualcomm.com/doc/80-N3040-23/topic/code-optimization.html#automatic-vectorization) - [Link-time optimization](https://docs.qualcomm.com/doc/80-N3040-23/topic/code-optimization.html#link-time-optimization) - [Profile-driven section assignment](https://docs.qualcomm.com/doc/80-N3040-23/topic/code-optimization.html#profile-driven-section-assignment) - [Compiler security tools](https://docs.qualcomm.com/doc/80-N3040-23/topic/compiler-security-tools.html) - [Static analyzer](https://docs.qualcomm.com/doc/80-N3040-23/topic/compiler-security-tools.html#static-analyzer) - [Postprocessor](https://docs.qualcomm.com/doc/80-N3040-23/topic/compiler-security-tools.html#postprocessor) - [Port code from GCC](https://docs.qualcomm.com/doc/80-N3040-23/topic/port-code-from-gcc.html) - [Command options](https://docs.qualcomm.com/doc/80-N3040-23/topic/port-code-from-gcc.html#command-options) - [Errors and warnings](https://docs.qualcomm.com/doc/80-N3040-23/topic/port-code-from-gcc.html#errors-and-warnings) - [Function declarations](https://docs.qualcomm.com/doc/80-N3040-23/topic/port-code-from-gcc.html#function-declarations) - [Casting to incompatible types](https://docs.qualcomm.com/doc/80-N3040-23/topic/port-code-from-gcc.html#casting-to-incompatible-types) - [aligned attribute](https://docs.qualcomm.com/doc/80-N3040-23/topic/port-code-from-gcc.html#aligned-attribute) - [Reserved registers](https://docs.qualcomm.com/doc/80-N3040-23/topic/port-code-from-gcc.html#reserved-registers) - [Inline versus extern inline](https://docs.qualcomm.com/doc/80-N3040-23/topic/port-code-from-gcc.html#inline-versus-extern-inline) - [Lightweight instrumentation](https://docs.qualcomm.com/doc/80-N3040-23/topic/port-code-from-gcc.html#lightweight-instrumentation) - [Coding practices](https://docs.qualcomm.com/doc/80-N3040-23/topic/coding-practices.html) - [Use int types for loop counters](https://docs.qualcomm.com/doc/80-N3040-23/topic/coding-practices.html#use-int-types-for-loop-counters) - [Mark function arguments as restrict (if possible)](https://docs.qualcomm.com/doc/80-N3040-23/topic/coding-practices.html#mark-function-arguments-as-restrict-if-possible) - [Do not pass or return structures by value](https://docs.qualcomm.com/doc/80-N3040-23/topic/coding-practices.html#do-not-pass-or-return-structures-by-value) - [Avoid control flow in inner-most loops](https://docs.qualcomm.com/doc/80-N3040-23/topic/coding-practices.html#avoid-control-flow-in-inner-most-loops) - [Avoid manual loop unrolling](https://docs.qualcomm.com/doc/80-N3040-23/topic/coding-practices.html#avoid-manual-loop-unrolling) - [Avoid using inline assembly](https://docs.qualcomm.com/doc/80-N3040-23/topic/coding-practices.html#avoid-using-inline-assembly) - [Language compatibility](https://docs.qualcomm.com/doc/80-N3040-23/topic/language-compatibility.html) - [C compatibility](https://docs.qualcomm.com/doc/80-N3040-23/topic/language-compatibility.html#c-compatibility) - [C++ compatibility](https://docs.qualcomm.com/doc/80-N3040-23/topic/language-compatibility.html#hccpp-lang-comp-cpp-comp) - [Language extensions](https://docs.qualcomm.com/doc/80-N3040-23/topic/language-extensions.html) - [Predefined symbols for processor versions](https://docs.qualcomm.com/doc/80-N3040-23/topic/language-extensions.html#predefined-symbols-for-processor-versions) - [Predefined symbols for HVX coprocessor versions](https://docs.qualcomm.com/doc/80-N3040-23/topic/language-extensions.html#predefined-symbols-for-hvx-coprocessor-versions) - [Inline assembly language](https://docs.qualcomm.com/doc/80-N3040-23/topic/inline-assembly-language.html) - [ASM statement](https://docs.qualcomm.com/doc/80-N3040-23/topic/inline-assembly-language.html#asm-statement) - [Operand constraints](https://docs.qualcomm.com/doc/80-N3040-23/topic/inline-assembly-language.html#operand-constraints) - [Attributes](https://docs.qualcomm.com/doc/80-N3040-23/topic/attributes.html) - [Libraries](https://docs.qualcomm.com/doc/80-N3040-23/topic/libraries.html) - [C standard library and C++ libraries](https://docs.qualcomm.com/doc/80-N3040-23/topic/libraries.html#c-standard-library-and-c-libraries) - [Hexagon-specific libraries](https://docs.qualcomm.com/doc/80-N3040-23/topic/libraries.html#hexagon-specific-libraries) - [HVX-specific library](https://docs.qualcomm.com/doc/80-N3040-23/topic/libraries.html#hvx-specific-library) - [Hexagon intrinsics emulation library](https://docs.qualcomm.com/doc/80-N3040-23/topic/libraries.html#hexagon-intrinsics-emulation-library) - [Acknowledgments](https://docs.qualcomm.com/doc/80-N3040-23/topic/llvm-ccpp-acknowledgments.html) - [References](https://docs.qualcomm.com/doc/80-N3040-23/topic/references.html) Last Published: Oct 06, 2026 [Previous Topic C/C++ programming](https://docs.qualcomm.com/bundle/publicresource/80-N3040-23/topics/additional-resources.md) [Next Topic Introduction](https://docs.qualcomm.com/bundle/publicresource/80-N3040-23/topics/llvm-ccpp-compiler-introduction.md)