blob: d7db6fcfcef847dbad26065f8fac6b677ca58cb8 [file] [log] [blame]
Daniel Dunbar21e993c2012-04-19 16:31:37 +00001.. _subsystems:
2
3Subsystem Documentation
4=======================
5
Bill Wendling430c3bb2012-06-20 09:49:57 +00006.. toctree::
7 :hidden:
8
9 AliasAnalysis
10
Bill Wendlingdf870f52012-06-20 09:50:45 +000011* `Writing an LLVM Pass <WritingAnLLVMPass.html>`_
Daniel Dunbar21e993c2012-04-19 16:31:37 +000012
Bill Wendlingdf870f52012-06-20 09:50:45 +000013 Information on how to write LLVM transformations and analyses.
Daniel Dunbar21e993c2012-04-19 16:31:37 +000014
Bill Wendlingdf870f52012-06-20 09:50:45 +000015* `Writing an LLVM Backend <WritingAnLLVMBackend.html>`_
Daniel Dunbar21e993c2012-04-19 16:31:37 +000016
Bill Wendlingdf870f52012-06-20 09:50:45 +000017 Information on how to write LLVM backends for machine targets.
Daniel Dunbar21e993c2012-04-19 16:31:37 +000018
Bill Wendlingdf870f52012-06-20 09:50:45 +000019* `The LLVM Target-Independent Code Generator <CodeGenerator.html>`_
Daniel Dunbar21e993c2012-04-19 16:31:37 +000020
Bill Wendlingdf870f52012-06-20 09:50:45 +000021 The design and implementation of the LLVM code generator. Useful if you are
22 working on retargetting LLVM to a new architecture, designing a new codegen
23 pass, or enhancing existing components.
Daniel Dunbar21e993c2012-04-19 16:31:37 +000024
Bill Wendlingdf870f52012-06-20 09:50:45 +000025* `TableGen Fundamentals <TableGenFundamentals.html>`_
Daniel Dunbar21e993c2012-04-19 16:31:37 +000026
Bill Wendlingdf870f52012-06-20 09:50:45 +000027 Describes the TableGen tool, which is used heavily by the LLVM code
28 generator.
Daniel Dunbar21e993c2012-04-19 16:31:37 +000029
Bill Wendlingdf870f52012-06-20 09:50:45 +000030* :ref:`alias_analysis`
Daniel Dunbar21e993c2012-04-19 16:31:37 +000031
Bill Wendlingdf870f52012-06-20 09:50:45 +000032 Information on how to write a new alias analysis implementation or how to
33 use existing analyses.
Daniel Dunbar21e993c2012-04-19 16:31:37 +000034
Bill Wendlingdf870f52012-06-20 09:50:45 +000035* `Accurate Garbage Collection with LLVM <GarbageCollection.html>`_
Daniel Dunbar21e993c2012-04-19 16:31:37 +000036
Bill Wendlingdf870f52012-06-20 09:50:45 +000037 The interfaces source-language compilers should use for compiling GC'd
38 programs.
Daniel Dunbar21e993c2012-04-19 16:31:37 +000039
Bill Wendlingdf870f52012-06-20 09:50:45 +000040* `Source Level Debugging with LLVM <SourceLevelDebugging.html>`_
Daniel Dunbar21e993c2012-04-19 16:31:37 +000041
Bill Wendlingdf870f52012-06-20 09:50:45 +000042 This document describes the design and philosophy behind the LLVM
43 source-level debugger.
Daniel Dunbar21e993c2012-04-19 16:31:37 +000044
Bill Wendlingdf870f52012-06-20 09:50:45 +000045* `Zero Cost Exception handling in LLVM <ExceptionHandling.html>`_
Daniel Dunbar21e993c2012-04-19 16:31:37 +000046
Bill Wendlingdf870f52012-06-20 09:50:45 +000047 This document describes the design and implementation of exception handling
48 in LLVM.
Daniel Dunbar21e993c2012-04-19 16:31:37 +000049
Bill Wendlingdf870f52012-06-20 09:50:45 +000050* `Bugpoint <Bugpoint.html>`_
Daniel Dunbar21e993c2012-04-19 16:31:37 +000051
Bill Wendlingdf870f52012-06-20 09:50:45 +000052 Automatic bug finder and test-case reducer description and usage
53 information.
Daniel Dunbar21e993c2012-04-19 16:31:37 +000054
Bill Wendlingdf870f52012-06-20 09:50:45 +000055* `LLVM Bitcode File Format <BitCodeFormat.html>`_
Daniel Dunbar21e993c2012-04-19 16:31:37 +000056
Bill Wendlingdf870f52012-06-20 09:50:45 +000057 This describes the file format and encoding used for LLVM "bc" files.
Daniel Dunbar21e993c2012-04-19 16:31:37 +000058
Bill Wendlingdf870f52012-06-20 09:50:45 +000059* `System Library <SystemLibrary.html>`_
Daniel Dunbar21e993c2012-04-19 16:31:37 +000060
Bill Wendlingdf870f52012-06-20 09:50:45 +000061 This document describes the LLVM System Library (<tt>lib/System</tt>) and
62 how to keep LLVM source code portable
Daniel Dunbar21e993c2012-04-19 16:31:37 +000063
Bill Wendlingdf870f52012-06-20 09:50:45 +000064* `Link Time Optimization <LinkTimeOptimization.html>`_
Daniel Dunbar21e993c2012-04-19 16:31:37 +000065
Bill Wendlingdf870f52012-06-20 09:50:45 +000066 This document describes the interface between LLVM intermodular optimizer
67 and the linker and its design
Daniel Dunbar21e993c2012-04-19 16:31:37 +000068
Bill Wendlingdf870f52012-06-20 09:50:45 +000069* `The LLVM gold plugin <GoldPlugin.html>`_
Daniel Dunbar21e993c2012-04-19 16:31:37 +000070
Bill Wendlingdf870f52012-06-20 09:50:45 +000071 How to build your programs with link-time optimization on Linux.
Daniel Dunbar21e993c2012-04-19 16:31:37 +000072
Bill Wendlingdf870f52012-06-20 09:50:45 +000073* `The GDB JIT interface <DebuggingJITedCode.html>`_
Daniel Dunbar21e993c2012-04-19 16:31:37 +000074
Bill Wendlingdf870f52012-06-20 09:50:45 +000075 How to debug JITed code with GDB.
Daniel Dunbar21e993c2012-04-19 16:31:37 +000076
Bill Wendlingdf870f52012-06-20 09:50:45 +000077* `Branch Weight Metadata <BranchWeightMetadata.html>`_
Daniel Dunbar21e993c2012-04-19 16:31:37 +000078
Bill Wendlingdf870f52012-06-20 09:50:45 +000079 Provides information about Branch Prediction Information.