257 lines · plain
1Reference2=========3 4LLVM and API reference documentation.5 6.. contents::7 :local:8 9.. toctree::10 :hidden:11 12 Atomics13 BitCodeFormat14 BlockFrequencyTerminology15 BranchWeightMetadata16 Bugpoint17 CalleeTypeMetadata18 CallGraphSection19 CIBestPractices20 CommandGuide/index21 ContentAddressableStorage22 ConvergenceAndUniformity23 ConvergentOperations24 Coroutines25 DependenceGraphs/index26 ExceptionHandling27 Extensions28 FaultMaps29 FuzzingLLVM30 GarbageCollection31 GetElementPtr32 GlobalISel/index33 GwpAsan34 HowToSetUpLLVMStyleRTTI35 HowToUseAttributes36 InAlloca37 InterfaceExportAnnotations38 LangRef39 LibFuzzer40 MarkedUpDisassembly41 MIRLangRef42 OptBisect43 PCSectionsMetadata44 PDB/index45 PointerAuth46 MLGO47 ScudoHardenedAllocator48 MemoryModelRelaxationAnnotations49 MemTagSanitizer50 QualGroup51 Security52 SecurityTransparencyReports53 SegmentedStacks54 StackMaps55 SpeculativeLoadHardening56 Statepoints57 SymbolizerMarkupFormat58 SystemLibrary59 TestingGuide60 TransformMetadata61 TypeMetadata62 UndefinedBehavior63 XRay64 XRayExample65 XRayFDRFormat66 YamlIO67 68API Reference69-------------70 71`Doxygen generated documentation <https://llvm.org/doxygen/>`_72 (`classes <https://llvm.org/doxygen/inherits.html>`_)73 74:doc:`HowToUseAttributes`75 Answers some questions about the new Attributes infrastructure.76 77LLVM Reference78--------------79 80======================81Command Line Utilities82======================83 84:doc:`LLVM Command Guide <CommandGuide/index>`85 A reference manual for the LLVM command line utilities ("man" pages for LLVM86 tools).87 88:doc:`Bugpoint`89 Automatic bug finder and test-case reducer description and usage90 information.91 92:doc:`OptBisect`93 A command line option for debugging optimization-induced failures.94 95:doc:`SymbolizerMarkupFormat`96 A reference for the log symbolizer markup accepted by ``llvm-symbolizer``.97 98:doc:`The Microsoft PDB File Format <PDB/index>`99 A detailed description of the Microsoft PDB (Program Database) file format.100 101==================102Garbage Collection103==================104 105:doc:`GarbageCollection`106 The interfaces source-language compilers should use for compiling GC'd107 programs.108 109:doc:`Statepoints`110 This describes a set of experimental extensions for garbage111 collection support.112 113=========114LibFuzzer115=========116 117:doc:`LibFuzzer`118 A library for writing in-process guided fuzzers.119 120:doc:`FuzzingLLVM`121 Information on writing and using Fuzzers to find bugs in LLVM.122 123========124LLVM IR125========126 127:doc:`LLVM Language Reference Manual <LangRef>`128 Defines the LLVM intermediate representation and the assembly form of the129 different nodes.130 131:doc:`Undefined Behavior (UB) <UndefinedBehavior>`132 A guide on what UB/undef/poison are and when to use each one.133 134:doc:`InAlloca`135 Description of the ``inalloca`` argument attribute.136 137:doc:`BitCodeFormat`138 This describes the file format and encoding used for LLVM "bc" files.139 140:doc:`Machine IR (MIR) Format Reference Manual <MIRLangRef>`141 A reference manual for the MIR serialization format, which is used to test142 LLVM's code generation passes.143 144:doc:`GlobalISel/index`145 This describes the prototype instruction selection replacement, GlobalISel.146 147:doc:`ConvergentOperations`148 Description of ``convergent`` operation semantics and related intrinsics.149 150=====================151Testing and Debugging152=====================153 154:doc:`LLVM Testing Infrastructure Guide <TestingGuide>`155 A reference manual for using the LLVM testing infrastructure.156 157:doc:`TestSuiteGuide`158 Describes how to compile and run the test-suite benchmarks.159 160 161:doc:`GwpAsan`162 A sampled heap memory error detection toolkit designed for production use.163 164====165XRay166====167 168:doc:`XRay`169 High-level documentation of how to use XRay in LLVM.170 171:doc:`XRayExample`172 An example of how to debug an application with XRay.173 174=================175Additional Topics176=================177 178:doc:`FaultMaps`179 LLVM support for folding control flow into faulting machine instructions.180 181:doc:`Atomics`182 Information about LLVM's concurrency model.183 184:doc:`ExceptionHandling`185 This document describes the design and implementation of exception handling186 in LLVM.187 188:doc:`Extensions`189 LLVM-specific extensions to tools and formats LLVM seeks compatibility with.190 191:doc:`HowToSetUpLLVMStyleRTTI`192 How to make ``isa<>``, ``dyn_cast<>``, etc. available for clients of your193 class hierarchy.194 195:doc:`BlockFrequencyTerminology`196 Provides information about terminology used in the ``BlockFrequencyInfo``197 analysis pass.198 199:doc:`BranchWeightMetadata`200 Provides information about Branch Prediction Information.201 202:doc:`GetElementPtr`203 Answers to some very frequent questions about LLVM's most frequently204 misunderstood instruction.205 206:doc:`ScudoHardenedAllocator`207 A library that implements a security-hardened `malloc()`.208 209:doc:`MemoryModelRelaxationAnnotations`210 Target-defined relaxation to LLVM's concurrency model.211 212:doc:`MemTagSanitizer`213 Security hardening for production code aiming to mitigate memory214 related vulnerabilities. Based on the Armv8.5-A Memory Tagging Extension.215 216:doc:`Dependence Graphs <DependenceGraphs/index>`217 A description of the design of the various dependence graphs such as218 the DDG (Data Dependence Graph).219 220:doc:`SpeculativeLoadHardening`221 A description of the Speculative Load Hardening mitigation for Spectre v1.222 223:doc:`SegmentedStacks`224 This document describes segmented stacks and how they are used in LLVM.225 226:doc:`MarkedUpDisassembly`227 This document describes the optional rich disassembly output syntax.228 229:doc:`StackMaps`230 LLVM support for mapping instruction addresses to the location of231 values and allowing code to be patched.232 233:doc:`Coroutines`234 LLVM support for coroutines.235 236:doc:`PointerAuth`237 A description of pointer authentication, its LLVM IR representation, and its238 support in the backend.239 240:doc:`YamlIO`241 A reference guide for using LLVM's YAML I/O library.242 243:doc:`ConvergenceAndUniformity`244 A description of uniformity analysis in the presence of irreducible245 control flow, and its implementation.246 247:doc:`MLGO`248 Facilities for ML-Guided Optimization, such as collecting IR corpora from a249 build, interfacing with ML models, an exposing features for training.250 251:doc:`ContentAddressableStorage`252 A reference guide for using LLVM's CAS library.253 254:doc:`CIBestPractices`255 A list of guidelines and best practices to use when working on LLVM's256 CI systems.257