1Reference 2========= 3 4LLVM and API reference documentation. 5 6.. contents:: 7 :local: 8 9.. toctree:: 10 :hidden: 11 12 Atomics 13 BitCodeFormat 14 BlockFrequencyTerminology 15 BranchWeightMetadata 16 Bugpoint 17 CommandGuide/index 18 Coroutines 19 DependenceGraphs/index 20 ExceptionHandling 21 Extensions 22 FaultMaps 23 FuzzingLLVM 24 GarbageCollection 25 GetElementPtr 26 GlobalISel/index 27 GwpAsan 28 HowToSetUpLLVMStyleRTTI 29 HowToUseAttributes 30 InAlloca 31 LangRef 32 LibFuzzer 33 MarkedUpDisassembly 34 MIRLangRef 35 OptBisect 36 PDB/index 37 PointerAuth 38 ScudoHardenedAllocator 39 MemTagSanitizer 40 Security 41 SecurityTransparencyReports 42 SegmentedStacks 43 StackMaps 44 SpeculativeLoadHardening 45 Statepoints 46 SymbolizerMarkupFormat 47 SystemLibrary 48 TestingGuide 49 TransformMetadata 50 TypeMetadata 51 XRay 52 XRayExample 53 XRayFDRFormat 54 YamlIO 55 56API Reference 57------------- 58 59`Doxygen generated documentation <https://llvm.org/doxygen/>`_ 60 (`classes <https://llvm.org/doxygen/inherits.html>`_) 61 62:doc:`HowToUseAttributes` 63 Answers some questions about the new Attributes infrastructure. 64 65LLVM Reference 66-------------- 67 68====================== 69Command Line Utilities 70====================== 71 72:doc:`LLVM Command Guide <CommandGuide/index>` 73 A reference manual for the LLVM command line utilities ("man" pages for LLVM 74 tools). 75 76:doc:`Bugpoint` 77 Automatic bug finder and test-case reducer description and usage 78 information. 79 80:doc:`OptBisect` 81 A command line option for debugging optimization-induced failures. 82 83:doc:`SymbolizerMarkupFormat` 84 A reference for the log symbolizer markup accepted by ``llvm-symbolizer``. 85 86:doc:`The Microsoft PDB File Format <PDB/index>` 87 A detailed description of the Microsoft PDB (Program Database) file format. 88 89================== 90Garbage Collection 91================== 92 93:doc:`GarbageCollection` 94 The interfaces source-language compilers should use for compiling GC'd 95 programs. 96 97:doc:`Statepoints` 98 This describes a set of experimental extensions for garbage 99 collection support. 100 101========= 102LibFuzzer 103========= 104 105:doc:`LibFuzzer` 106 A library for writing in-process guided fuzzers. 107 108:doc:`FuzzingLLVM` 109 Information on writing and using Fuzzers to find bugs in LLVM. 110 111======== 112LLVM IR 113======== 114 115:doc:`LLVM Language Reference Manual <LangRef>` 116 Defines the LLVM intermediate representation and the assembly form of the 117 different nodes. 118 119:doc:`InAlloca` 120 Description of the ``inalloca`` argument attribute. 121 122:doc:`BitCodeFormat` 123 This describes the file format and encoding used for LLVM "bc" files. 124 125:doc:`Machine IR (MIR) Format Reference Manual <MIRLangRef>` 126 A reference manual for the MIR serialization format, which is used to test 127 LLVM's code generation passes. 128 129:doc:`GlobalISel/index` 130 This describes the prototype instruction selection replacement, GlobalISel. 131 132===================== 133Testing and Debugging 134===================== 135 136:doc:`LLVM Testing Infrastructure Guide <TestingGuide>` 137 A reference manual for using the LLVM testing infrastructure. 138 139:doc:`TestSuiteGuide` 140 Describes how to compile and run the test-suite benchmarks. 141 142 143:doc:`GwpAsan` 144 A sampled heap memory error detection toolkit designed for production use. 145 146==== 147XRay 148==== 149 150:doc:`XRay` 151 High-level documentation of how to use XRay in LLVM. 152 153:doc:`XRayExample` 154 An example of how to debug an application with XRay. 155 156================= 157Additional Topics 158================= 159 160:doc:`FaultMaps` 161 LLVM support for folding control flow into faulting machine instructions. 162 163:doc:`Atomics` 164 Information about LLVM's concurrency model. 165 166:doc:`ExceptionHandling` 167 This document describes the design and implementation of exception handling 168 in LLVM. 169 170:doc:`Extensions` 171 LLVM-specific extensions to tools and formats LLVM seeks compatibility with. 172 173:doc:`HowToSetUpLLVMStyleRTTI` 174 How to make ``isa<>``, ``dyn_cast<>``, etc. available for clients of your 175 class hierarchy. 176 177:doc:`BlockFrequencyTerminology` 178 Provides information about terminology used in the ``BlockFrequencyInfo`` 179 analysis pass. 180 181:doc:`BranchWeightMetadata` 182 Provides information about Branch Prediction Information. 183 184:doc:`GetElementPtr` 185 Answers to some very frequent questions about LLVM's most frequently 186 misunderstood instruction. 187 188:doc:`ScudoHardenedAllocator` 189 A library that implements a security-hardened `malloc()`. 190 191:doc:`MemTagSanitizer` 192 Security hardening for production code aiming to mitigate memory 193 related vulnerabilities. Based on the Armv8.5-A Memory Tagging Extension. 194 195:doc:`Dependence Graphs <DependenceGraphs/index>` 196 A description of the design of the various dependence graphs such as 197 the DDG (Data Dependence Graph). 198 199:doc:`SpeculativeLoadHardening` 200 A description of the Speculative Load Hardening mitigation for Spectre v1. 201 202:doc:`SegmentedStacks` 203 This document describes segmented stacks and how they are used in LLVM. 204 205:doc:`MarkedUpDisassembly` 206 This document describes the optional rich disassembly output syntax. 207 208:doc:`StackMaps` 209 LLVM support for mapping instruction addresses to the location of 210 values and allowing code to be patched. 211 212:doc:`Coroutines` 213 LLVM support for coroutines. 214 215:doc:`PointerAuth` 216 A description of pointer authentication, its LLVM IR representation, and its 217 support in the backend. 218 219:doc:`YamlIO` 220 A reference guide for using LLVM's YAML I/O library. 221