1.. _subsystems:
2
3Subsystem Documentation
4=======================
5
6.. toctree::
7   :hidden:
8
9   AliasAnalysis
10   BitCodeFormat
11   BranchWeightMetadata
12   Bugpoint
13   CodeGenerator
14   ExceptionHandling
15   LinkTimeOptimization
16   SegmentedStacks
17   TableGenFundamentals
18   DebuggingJITedCode
19
20* `Writing an LLVM Pass <WritingAnLLVMPass.html>`_
21    
22   Information on how to write LLVM transformations and analyses.
23    
24* `Writing an LLVM Backend <WritingAnLLVMBackend.html>`_
25    
26   Information on how to write LLVM backends for machine targets.
27
28* :ref:`code_generator`
29
30   The design and implementation of the LLVM code generator.  Useful if you are
31   working on retargetting LLVM to a new architecture, designing a new codegen
32   pass, or enhancing existing components.
33    
34* :ref:`tablegen`
35
36   Describes the TableGen tool, which is used heavily by the LLVM code
37   generator.
38    
39* :ref:`alias_analysis`
40    
41   Information on how to write a new alias analysis implementation or how to
42   use existing analyses.
43    
44* `Accurate Garbage Collection with LLVM <GarbageCollection.html>`_
45    
46   The interfaces source-language compilers should use for compiling GC'd
47   programs.
48
49* `Source Level Debugging with LLVM <SourceLevelDebugging.html>`_
50    
51   This document describes the design and philosophy behind the LLVM
52   source-level debugger.
53    
54* :ref:`exception_handling`
55    
56   This document describes the design and implementation of exception handling
57   in LLVM.
58    
59* :ref:`bugpoint`
60    
61   Automatic bug finder and test-case reducer description and usage
62   information.
63    
64* :ref:`bitcode_format`
65    
66   This describes the file format and encoding used for LLVM "bc" files.
67    
68* `System Library <SystemLibrary.html>`_
69    
70   This document describes the LLVM System Library (<tt>lib/System</tt>) and
71   how to keep LLVM source code portable
72    
73* :ref:`lto`
74    
75   This document describes the interface between LLVM intermodular optimizer
76   and the linker and its design
77    
78* `The LLVM gold plugin <GoldPlugin.html>`_
79    
80   How to build your programs with link-time optimization on Linux.
81    
82* :ref:`debugging-jited-code`
83    
84   How to debug JITed code with GDB.
85    
86* :ref:`branch_weight`
87    
88   Provides information about Branch Prediction Information.
89
90* :ref:`segmented_stacks`
91
92   This document describes segmented stacks and how they are used in LLVM.
93