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