Make the indirect branch optimization deterministic. No functionality change.
[oota-llvm.git] / docs / subsystems.rst
1 .. _subsystems:
2
3 Subsystem 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    GoldPlugin
20
21 * `Writing an LLVM Pass <WritingAnLLVMPass.html>`_
22     
23    Information on how to write LLVM transformations and analyses.
24     
25 * `Writing an LLVM Backend <WritingAnLLVMBackend.html>`_
26     
27    Information on how to write LLVM backends for machine targets.
28
29 * :ref:`code_generator`
30
31    The design and implementation of the LLVM code generator.  Useful if you are
32    working on retargetting LLVM to a new architecture, designing a new codegen
33    pass, or enhancing existing components.
34     
35 * :ref:`tablegen`
36
37    Describes the TableGen tool, which is used heavily by the LLVM code
38    generator.
39     
40 * :ref:`alias_analysis`
41     
42    Information on how to write a new alias analysis implementation or how to
43    use existing analyses.
44     
45 * `Accurate Garbage Collection with LLVM <GarbageCollection.html>`_
46     
47    The interfaces source-language compilers should use for compiling GC'd
48    programs.
49
50 * `Source Level Debugging with LLVM <SourceLevelDebugging.html>`_
51     
52    This document describes the design and philosophy behind the LLVM
53    source-level debugger.
54     
55 * :ref:`exception_handling`
56     
57    This document describes the design and implementation of exception handling
58    in LLVM.
59     
60 * :ref:`bugpoint`
61     
62    Automatic bug finder and test-case reducer description and usage
63    information.
64     
65 * :ref:`bitcode_format`
66     
67    This describes the file format and encoding used for LLVM "bc" files.
68     
69 * `System Library <SystemLibrary.html>`_
70     
71    This document describes the LLVM System Library (<tt>lib/System</tt>) and
72    how to keep LLVM source code portable
73     
74 * :ref:`lto`
75     
76    This document describes the interface between LLVM intermodular optimizer
77    and the linker and its design
78     
79 * :ref:`gold-plugin`
80     
81    How to build your programs with link-time optimization on Linux.
82     
83 * :ref:`debugging-jited-code`
84     
85    How to debug JITed code with GDB.
86     
87 * :ref:`branch_weight`
88     
89    Provides information about Branch Prediction Information.
90
91 * :ref:`segmented_stacks`
92
93    This document describes segmented stacks and how they are used in LLVM.
94
95 * `Howto: Implementing LLVM Integrated Assembler`_
96
97    A simple guide for how to implement an LLVM integrated assembler for an
98    architecture.
99
100 .. _`Howto: Implementing LLVM Integrated Assembler`: http://www.embecosm.com/download/ean10.html