.. _subsystems: Subsystem Documentation ======================= * `Writing an LLVM Pass `_ Information on how to write LLVM transformations and analyses. * `Writing an LLVM Backend `_ Information on how to write LLVM backends for machine targets. * `The LLVM Target-Independent Code Generator `_ The design and implementation of the LLVM code generator. Useful if you are working on retargetting LLVM to a new architecture, designing a new codegen pass, or enhancing existing components. * `TableGen Fundamentals `_ Describes the TableGen tool, which is used heavily by the LLVM code generator. * `Alias Analysis in LLVM `_ Information on how to write a new alias analysis implementation or how to use existing analyses. * `Accurate Garbage Collection with LLVM `_ The interfaces source-language compilers should use for compiling GC'd programs. * `Source Level Debugging with LLVM `_ This document describes the design and philosophy behind the LLVM source-level debugger. * `Zero Cost Exception handling in LLVM `_ This document describes the design and implementation of exception handling in LLVM. * `Bugpoint `_ Automatic bug finder and test-case reducer description and usage information. * `LLVM Bitcode File Format `_ This describes the file format and encoding used for LLVM "bc" files. * `System Library `_ This document describes the LLVM System Library (lib/System) and how to keep LLVM source code portable * `Link Time Optimization `_ This document describes the interface between LLVM intermodular optimizer and the linker and its design * `The LLVM gold plugin `_ How to build your programs with link-time optimization on Linux. * `The GDB JIT interface `_ How to debug JITed code with GDB. * `Branch Weight Metadata `_ Provides information about Branch Prediction Information.