Add a new attribute, 'noduplicate'. If a function contains a noduplicate call, the...
[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    MarkedUpDisassembly
21    HowToUseInstrMappings
22    SystemLibrary
23    SourceLevelDebugging
24    Vectorizers 
25    WritingAnLLVMBackend
26    GarbageCollection
27    WritingAnLLVMPass
28
29 .. FIXME: once LangRef is Sphinxified, HowToUseInstrMappings should be put
30    under LangRef's toctree instead of this page's toctree.
31
32 * :doc:`WritingAnLLVMPass`
33
34    Information on how to write LLVM transformations and analyses.
35
36 * :doc:`WritingAnLLVMBackend`
37
38    Information on how to write LLVM backends for machine targets.
39
40 * :ref:`code_generator`
41
42    The design and implementation of the LLVM code generator.  Useful if you are
43    working on retargetting LLVM to a new architecture, designing a new codegen
44    pass, or enhancing existing components.
45     
46 * :ref:`tablegen`
47
48    Describes the TableGen tool, which is used heavily by the LLVM code
49    generator.
50     
51 * :ref:`alias_analysis`
52     
53    Information on how to write a new alias analysis implementation or how to
54    use existing analyses.
55
56 * :doc:`GarbageCollection`
57
58    The interfaces source-language compilers should use for compiling GC'd
59    programs.
60
61 * :doc:`Source Level Debugging with LLVM <SourceLevelDebugging>`
62     
63    This document describes the design and philosophy behind the LLVM
64    source-level debugger.
65
66 * :doc:`Vectorization in LLVM <Vectorizers>`
67     
68    This document describes the current status of vectorization in LLVM.
69     
70 * :ref:`exception_handling`
71     
72    This document describes the design and implementation of exception handling
73    in LLVM.
74     
75 * :ref:`bugpoint`
76     
77    Automatic bug finder and test-case reducer description and usage
78    information.
79     
80 * :ref:`bitcode_format`
81     
82    This describes the file format and encoding used for LLVM "bc" files.
83     
84 * :doc:`System Library <SystemLibrary>`
85     
86    This document describes the LLVM System Library (``lib/System``) and
87    how to keep LLVM source code portable
88     
89 * :ref:`lto`
90     
91    This document describes the interface between LLVM intermodular optimizer
92    and the linker and its design
93     
94 * :ref:`gold-plugin`
95     
96    How to build your programs with link-time optimization on Linux.
97     
98 * :ref:`debugging-jited-code`
99     
100    How to debug JITed code with GDB.
101     
102 * :ref:`branch_weight`
103     
104    Provides information about Branch Prediction Information.
105
106 * :ref:`segmented_stacks`
107
108    This document describes segmented stacks and how they are used in LLVM.
109
110 * `Howto: Implementing LLVM Integrated Assembler`_
111
112    A simple guide for how to implement an LLVM integrated assembler for an
113    architecture.
114
115 .. _`Howto: Implementing LLVM Integrated Assembler`: http://www.embecosm.com/download/ean10.html
116
117 * :ref:`marked_up_disassembly`
118
119    This document describes the optional rich disassembly output syntax.
120