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