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