Reference ========= LLVM and API reference documentation. .. contents:: :local: .. toctree:: :hidden: Atomics BitCodeFormat BlockFrequencyTerminology BranchWeightMetadata Bugpoint CommandGuide/index Coroutines DependenceGraphs/index ExceptionHandling Extensions FaultMaps FuzzingLLVM GarbageCollection GetElementPtr GlobalISel/index GwpAsan HowToSetUpLLVMStyleRTTI HowToUseAttributes InAlloca LangRef LibFuzzer MarkedUpDisassembly MIRLangRef OptBisect PDB/index PointerAuth ScudoHardenedAllocator MemTagSanitizer Security SecurityTransparencyReports SegmentedStacks StackMaps SpeculativeLoadHardening Statepoints SystemLibrary TestingGuide TransformMetadata TypeMetadata XRay XRayExample XRayFDRFormat YamlIO API Reference ------------- `Doxygen generated documentation `_ (`classes `_) :doc:`HowToUseAttributes` Answers some questions about the new Attributes infrastructure. `Documentation for Go bindings `_ LLVM Reference -------------- ====================== Command Line Utilities ====================== :doc:`LLVM Command Guide ` A reference manual for the LLVM command line utilities ("man" pages for LLVM tools). :doc:`Bugpoint` Automatic bug finder and test-case reducer description and usage information. :doc:`OptBisect` A command line option for debugging optimization-induced failures. :doc:`The Microsoft PDB File Format ` A detailed description of the Microsoft PDB (Program Database) file format. ================== Garbage Collection ================== :doc:`GarbageCollection` The interfaces source-language compilers should use for compiling GC'd programs. :doc:`Statepoints` This describes a set of experimental extensions for garbage collection support. ========= LibFuzzer ========= :doc:`LibFuzzer` A library for writing in-process guided fuzzers. :doc:`FuzzingLLVM` Information on writing and using Fuzzers to find bugs in LLVM. ======== LLVM IR ======== :doc:`LLVM Language Reference Manual ` Defines the LLVM intermediate representation and the assembly form of the different nodes. :doc:`InAlloca` Description of the ``inalloca`` argument attribute. :doc:`BitCodeFormat` This describes the file format and encoding used for LLVM "bc" files. :doc:`Machine IR (MIR) Format Reference Manual ` A reference manual for the MIR serialization format, which is used to test LLVM's code generation passes. :doc:`GlobalISel/index` This describes the prototype instruction selection replacement, GlobalISel. ===================== Testing and Debugging ===================== :doc:`LLVM Testing Infrastructure Guide ` A reference manual for using the LLVM testing infrastructure. :doc:`TestSuiteGuide` Describes how to compile and run the test-suite benchmarks. :doc:`GwpAsan` A sampled heap memory error detection toolkit designed for production use. ==== XRay ==== :doc:`XRay` High-level documentation of how to use XRay in LLVM. :doc:`XRayExample` An example of how to debug an application with XRay. ================= Additional Topics ================= :doc:`FaultMaps` LLVM support for folding control flow into faulting machine instructions. :doc:`Atomics` Information about LLVM's concurrency model. :doc:`ExceptionHandling` This document describes the design and implementation of exception handling in LLVM. :doc:`Extensions` LLVM-specific extensions to tools and formats LLVM seeks compatibility with. :doc:`HowToSetUpLLVMStyleRTTI` How to make ``isa<>``, ``dyn_cast<>``, etc. available for clients of your class hierarchy. :doc:`BlockFrequencyTerminology` Provides information about terminology used in the ``BlockFrequencyInfo`` analysis pass. :doc:`BranchWeightMetadata` Provides information about Branch Prediction Information. :doc:`GetElementPtr` Answers to some very frequent questions about LLVM's most frequently misunderstood instruction. :doc:`ScudoHardenedAllocator` A library that implements a security-hardened `malloc()`. :doc:`MemTagSanitizer` Security hardening for production code aiming to mitigate memory related vulnerabilities. Based on the Armv8.5-A Memory Tagging Extension. :doc:`Dependence Graphs ` A description of the design of the various dependence graphs such as the DDG (Data Dependence Graph). :doc:`SpeculativeLoadHardening` A description of the Speculative Load Hardening mitigation for Spectre v1. :doc:`SegmentedStacks` This document describes segmented stacks and how they are used in LLVM. :doc:`MarkedUpDisassembly` This document describes the optional rich disassembly output syntax. :doc:`StackMaps` LLVM support for mapping instruction addresses to the location of values and allowing code to be patched. :doc:`Coroutines` LLVM support for coroutines. :doc:`PointerAuth` A description of pointer authentication, its LLVM IR representation, and its support in the backend. :doc:`YamlIO` A reference guide for using LLVM's YAML I/O library.