3 Subsystem Documentation
4 =======================
17 * `Writing an LLVM Pass <WritingAnLLVMPass.html>`_
19 Information on how to write LLVM transformations and analyses.
21 * `Writing an LLVM Backend <WritingAnLLVMBackend.html>`_
23 Information on how to write LLVM backends for machine targets.
25 * `The LLVM Target-Independent Code Generator <CodeGenerator.html>`_
27 The design and implementation of the LLVM code generator. Useful if you are
28 working on retargetting LLVM to a new architecture, designing a new codegen
29 pass, or enhancing existing components.
33 Describes the TableGen tool, which is used heavily by the LLVM code
36 * :ref:`alias_analysis`
38 Information on how to write a new alias analysis implementation or how to
39 use existing analyses.
41 * `Accurate Garbage Collection with LLVM <GarbageCollection.html>`_
43 The interfaces source-language compilers should use for compiling GC'd
46 * `Source Level Debugging with LLVM <SourceLevelDebugging.html>`_
48 This document describes the design and philosophy behind the LLVM
49 source-level debugger.
51 * :ref:`exception_handling`
53 This document describes the design and implementation of exception handling
58 Automatic bug finder and test-case reducer description and usage
61 * `LLVM Bitcode File Format <BitCodeFormat.html>`_
63 This describes the file format and encoding used for LLVM "bc" files.
65 * `System Library <SystemLibrary.html>`_
67 This document describes the LLVM System Library (<tt>lib/System</tt>) and
68 how to keep LLVM source code portable
72 This document describes the interface between LLVM intermodular optimizer
73 and the linker and its design
75 * `The LLVM gold plugin <GoldPlugin.html>`_
77 How to build your programs with link-time optimization on Linux.
79 * `The GDB JIT interface <DebuggingJITedCode.html>`_
81 How to debug JITed code with GDB.
83 * :ref:`branch_weight`
85 Provides information about Branch Prediction Information.
87 * :ref:`segmented_stacks`
89 This document describes segmented stacks and how they are used in LLVM.