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