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