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