blob: ee0c2bedd05cc4d13b34db473c42ec38f012dafd [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
Bill Wendlinga3a2eb02012-06-20 10:08:02 +000010 LinkTimeOptimization
Bill Wendling430c3bb2012-06-20 09:49:57 +000011
Bill Wendlingdf870f52012-06-20 09:50:45 +000012* `Writing an LLVM Pass <WritingAnLLVMPass.html>`_
Daniel Dunbar21e993c2012-04-19 16:31:37 +000013
Bill Wendlingdf870f52012-06-20 09:50:45 +000014 Information on how to write LLVM transformations and analyses.
Daniel Dunbar21e993c2012-04-19 16:31:37 +000015
Bill Wendlingdf870f52012-06-20 09:50:45 +000016* `Writing an LLVM Backend <WritingAnLLVMBackend.html>`_
Daniel Dunbar21e993c2012-04-19 16:31:37 +000017
Bill Wendlingdf870f52012-06-20 09:50:45 +000018 Information on how to write LLVM backends for machine targets.
Daniel Dunbar21e993c2012-04-19 16:31:37 +000019
Bill Wendlingdf870f52012-06-20 09:50:45 +000020* `The LLVM Target-Independent Code Generator <CodeGenerator.html>`_
Daniel Dunbar21e993c2012-04-19 16:31:37 +000021
Bill Wendlingdf870f52012-06-20 09:50:45 +000022 The design and implementation of the LLVM code generator. Useful if you are
23 working on retargetting LLVM to a new architecture, designing a new codegen
24 pass, or enhancing existing components.
Daniel Dunbar21e993c2012-04-19 16:31:37 +000025
Bill Wendlingdf870f52012-06-20 09:50:45 +000026* `TableGen Fundamentals <TableGenFundamentals.html>`_
Daniel Dunbar21e993c2012-04-19 16:31:37 +000027
Bill Wendlingdf870f52012-06-20 09:50:45 +000028 Describes the TableGen tool, which is used heavily by the LLVM code
29 generator.
Daniel Dunbar21e993c2012-04-19 16:31:37 +000030
Bill Wendlingdf870f52012-06-20 09:50:45 +000031* :ref:`alias_analysis`
Daniel Dunbar21e993c2012-04-19 16:31:37 +000032
Bill Wendlingdf870f52012-06-20 09:50:45 +000033 Information on how to write a new alias analysis implementation or how to
34 use existing analyses.
Daniel Dunbar21e993c2012-04-19 16:31:37 +000035
Bill Wendlingdf870f52012-06-20 09:50:45 +000036* `Accurate Garbage Collection with LLVM <GarbageCollection.html>`_
Daniel Dunbar21e993c2012-04-19 16:31:37 +000037
Bill Wendlingdf870f52012-06-20 09:50:45 +000038 The interfaces source-language compilers should use for compiling GC'd
39 programs.
Daniel Dunbar21e993c2012-04-19 16:31:37 +000040
Bill Wendlingdf870f52012-06-20 09:50:45 +000041* `Source Level Debugging with LLVM <SourceLevelDebugging.html>`_
Daniel Dunbar21e993c2012-04-19 16:31:37 +000042
Bill Wendlingdf870f52012-06-20 09:50:45 +000043 This document describes the design and philosophy behind the LLVM
44 source-level debugger.
Daniel Dunbar21e993c2012-04-19 16:31:37 +000045
Bill Wendlingdf870f52012-06-20 09:50:45 +000046* `Zero Cost Exception handling in LLVM <ExceptionHandling.html>`_
Daniel Dunbar21e993c2012-04-19 16:31:37 +000047
Bill Wendlingdf870f52012-06-20 09:50:45 +000048 This document describes the design and implementation of exception handling
49 in LLVM.
Daniel Dunbar21e993c2012-04-19 16:31:37 +000050
Bill Wendlingdf870f52012-06-20 09:50:45 +000051* `Bugpoint <Bugpoint.html>`_
Daniel Dunbar21e993c2012-04-19 16:31:37 +000052
Bill Wendlingdf870f52012-06-20 09:50:45 +000053 Automatic bug finder and test-case reducer description and usage
54 information.
Daniel Dunbar21e993c2012-04-19 16:31:37 +000055
Bill Wendlingdf870f52012-06-20 09:50:45 +000056* `LLVM Bitcode File Format <BitCodeFormat.html>`_
Daniel Dunbar21e993c2012-04-19 16:31:37 +000057
Bill Wendlingdf870f52012-06-20 09:50:45 +000058 This describes the file format and encoding used for LLVM "bc" files.
Daniel Dunbar21e993c2012-04-19 16:31:37 +000059
Bill Wendlingdf870f52012-06-20 09:50:45 +000060* `System Library <SystemLibrary.html>`_
Daniel Dunbar21e993c2012-04-19 16:31:37 +000061
Bill Wendlingdf870f52012-06-20 09:50:45 +000062 This document describes the LLVM System Library (<tt>lib/System</tt>) and
63 how to keep LLVM source code portable
Daniel Dunbar21e993c2012-04-19 16:31:37 +000064
Bill Wendlinga3a2eb02012-06-20 10:08:02 +000065* :ref:`lto`
Daniel Dunbar21e993c2012-04-19 16:31:37 +000066
Bill Wendlingdf870f52012-06-20 09:50:45 +000067 This document describes the interface between LLVM intermodular optimizer
68 and the linker and its design
Daniel Dunbar21e993c2012-04-19 16:31:37 +000069
Bill Wendlingdf870f52012-06-20 09:50:45 +000070* `The LLVM gold plugin <GoldPlugin.html>`_
Daniel Dunbar21e993c2012-04-19 16:31:37 +000071
Bill Wendlingdf870f52012-06-20 09:50:45 +000072 How to build your programs with link-time optimization on Linux.
Daniel Dunbar21e993c2012-04-19 16:31:37 +000073
Bill Wendlingdf870f52012-06-20 09:50:45 +000074* `The GDB JIT interface <DebuggingJITedCode.html>`_
Daniel Dunbar21e993c2012-04-19 16:31:37 +000075
Bill Wendlingdf870f52012-06-20 09:50:45 +000076 How to debug JITed code with GDB.
Daniel Dunbar21e993c2012-04-19 16:31:37 +000077
Bill Wendlingdf870f52012-06-20 09:50:45 +000078* `Branch Weight Metadata <BranchWeightMetadata.html>`_
Daniel Dunbar21e993c2012-04-19 16:31:37 +000079
Bill Wendlingdf870f52012-06-20 09:50:45 +000080 Provides information about Branch Prediction Information.