ProgrammingDocumentation.rst 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. Programming Documentation
  2. =========================
  3. For developers of applications which use LLVM as a library.
  4. .. toctree::
  5. :hidden:
  6. Atomics
  7. CodingStandards
  8. CommandLine
  9. CompilerWriterInfo
  10. ExtendingLLVM
  11. HowToSetUpLLVMStyleRTTI
  12. ProgrammersManual
  13. Extensions
  14. LibFuzzer
  15. FuzzingLLVM
  16. ScudoHardenedAllocator
  17. OptBisect
  18. GwpAsan
  19. :doc:`LLVM Language Reference Manual <LangRef>`
  20. Defines the LLVM intermediate representation and the assembly form of the
  21. different nodes.
  22. :doc:`Atomics`
  23. Information about LLVM's concurrency model.
  24. :doc:`ProgrammersManual`
  25. Introduction to the general layout of the LLVM sourcebase, important classes
  26. and APIs, and some tips & tricks.
  27. :doc:`Extensions`
  28. LLVM-specific extensions to tools and formats LLVM seeks compatibility with.
  29. :doc:`CommandLine`
  30. Provides information on using the command line parsing library.
  31. :doc:`CodingStandards`
  32. Details the LLVM coding standards and provides useful information on writing
  33. efficient C++ code.
  34. :doc:`HowToSetUpLLVMStyleRTTI`
  35. How to make ``isa<>``, ``dyn_cast<>``, etc. available for clients of your
  36. class hierarchy.
  37. :doc:`ExtendingLLVM`
  38. Look here to see how to add instructions and intrinsics to LLVM.
  39. `Doxygen generated documentation <http://llvm.org/doxygen/>`_
  40. (`classes <http://llvm.org/doxygen/inherits.html>`_)
  41. `Documentation for Go bindings <http://godoc.org/llvm.org/llvm/bindings/go/llvm>`_
  42. `Github Source Repository Browser <http://github.com/llvm/llvm-project//>`_
  43. ..
  44. :doc:`CompilerWriterInfo`
  45. A list of helpful links for compiler writers.
  46. :doc:`LibFuzzer`
  47. A library for writing in-process guided fuzzers.
  48. :doc:`FuzzingLLVM`
  49. Information on writing and using Fuzzers to find bugs in LLVM.
  50. :doc:`ScudoHardenedAllocator`
  51. A library that implements a security-hardened `malloc()`.
  52. :doc:`OptBisect`
  53. A command line option for debugging optimization-induced failures.
  54. :doc:`GwpAsan`
  55. A sampled heap memory error detection toolkit designed for production use.