blob: 6a4d7aa25ba7865acedee6b815604a6e4ad80de3 [file] [log] [blame]
Programming Documentation
=========================
For developers of applications which use LLVM as a library.
.. toctree::
:hidden:
Atomics
CommandLine
CommandGuide/index
ExtendingLLVM
HowToSetUpLLVMStyleRTTI
ProgrammersManual
Extensions
LibFuzzer
FuzzingLLVM
ScudoHardenedAllocator
OptBisect
GwpAsan
:doc:`Atomics`
Information about LLVM's concurrency model.
:doc:`ProgrammersManual`
Introduction to the general layout of the LLVM sourcebase, important classes
and APIs, and some tips & tricks.
:doc:`Extensions`
LLVM-specific extensions to tools and formats LLVM seeks compatibility with.
:doc:`HowToSetUpLLVMStyleRTTI`
How to make ``isa<>``, ``dyn_cast<>``, etc. available for clients of your
class hierarchy.
:doc:`ExtendingLLVM`
Look here to see how to add instructions and intrinsics to LLVM.
:doc:`ScudoHardenedAllocator`
A library that implements a security-hardened `malloc()`.
:doc:`GwpAsan`
A sampled heap memory error detection toolkit designed for production use.
============
Command Line
============
:doc:`CommandLine`
Provides information on using the command line parsing library.
:doc:`OptBisect`
A command line option for debugging optimization-induced failures.
:doc:`LLVM Command Guide <CommandGuide/index>`
A reference manual for the LLVM command line utilities ("man" pages for LLVM
tools).
=========
LibFuzzer
=========
:doc:`LibFuzzer`
A library for writing in-process guided fuzzers.
:doc:`FuzzingLLVM`
Information on writing and using Fuzzers to find bugs in LLVM.