blob: 3fea6ed4277beca2d09d2c3647339e158a583a0d [file] [log] [blame]
Daniel Dunbar21e993c2012-04-19 16:31:37 +00001.. _programming:
2
3Programming Documentation
4=========================
5
Bill Wendlingeef31a52012-06-20 11:56:24 +00006.. toctree::
7 :hidden:
8
Bill Wendlingbef3ef92012-10-07 04:56:08 +00009 Atomics
Bill Wendlingeef31a52012-06-20 11:56:24 +000010 CodingStandards
Bill Wendling0bd3dee2012-08-08 08:21:24 +000011 CommandLine
Bill Wendling53960a62012-10-07 04:34:10 +000012 CompilerWriterInfo
Bill Wendlingbef3ef92012-10-07 04:56:08 +000013 ExtendingLLVM
Sean Silva36be1ae2012-10-05 03:32:01 +000014 HowToSetUpLLVMStyleRTTI
Sean Silvab715b202012-12-04 03:20:08 +000015 ProgrammersManual
Bill Wendlingeef31a52012-06-20 11:56:24 +000016
Bill Wendlingaf5e2e72012-06-20 11:55:22 +000017* `LLVM Language Reference Manual <LangRef.html>`_
Daniel Dunbar21e993c2012-04-19 16:31:37 +000018
Bill Wendlingaf5e2e72012-06-20 11:55:22 +000019 Defines the LLVM intermediate representation and the assembly form of the
20 different nodes.
Daniel Dunbar21e993c2012-04-19 16:31:37 +000021
Sean Silva258aeb52012-09-21 02:46:32 +000022* :ref:`atomics`
23
24 Information about LLVM's concurrency model.
25
Sean Silvab715b202012-12-04 03:20:08 +000026* :doc:`ProgrammersManual`
Daniel Dunbar21e993c2012-04-19 16:31:37 +000027
Bill Wendlingaf5e2e72012-06-20 11:55:22 +000028 Introduction to the general layout of the LLVM sourcebase, important classes
29 and APIs, and some tips & tricks.
Daniel Dunbar21e993c2012-04-19 16:31:37 +000030
Bill Wendling0bd3dee2012-08-08 08:21:24 +000031* :ref:`commandline`
Daniel Dunbar21e993c2012-04-19 16:31:37 +000032
Bill Wendlingaf5e2e72012-06-20 11:55:22 +000033 Provides information on using the command line parsing library.
Daniel Dunbar21e993c2012-04-19 16:31:37 +000034
Bill Wendlingeef31a52012-06-20 11:56:24 +000035* :ref:`coding_standards`
Daniel Dunbar21e993c2012-04-19 16:31:37 +000036
Bill Wendlingaf5e2e72012-06-20 11:55:22 +000037 Details the LLVM coding standards and provides useful information on writing
38 efficient C++ code.
Daniel Dunbar21e993c2012-04-19 16:31:37 +000039
Sean Silva36be1ae2012-10-05 03:32:01 +000040* :doc:`HowToSetUpLLVMStyleRTTI`
41
42 How to make ``isa<>``, ``dyn_cast<>``, etc. available for clients of your
43 class hierarchy.
44
Bill Wendlingbef3ef92012-10-07 04:56:08 +000045* :ref:`extending_llvm`
Daniel Dunbar21e993c2012-04-19 16:31:37 +000046
Bill Wendlingaf5e2e72012-06-20 11:55:22 +000047 Look here to see how to add instructions and intrinsics to LLVM.
Daniel Dunbar21e993c2012-04-19 16:31:37 +000048
Bill Wendlingaf5e2e72012-06-20 11:55:22 +000049* `Doxygen generated documentation <http://llvm.org/doxygen/>`_
Daniel Dunbar21e993c2012-04-19 16:31:37 +000050
Bill Wendlingaf5e2e72012-06-20 11:55:22 +000051 (`classes <http://llvm.org/doxygen/inherits.html>`_)
52 (`tarball <http://llvm.org/doxygen/doxygen.tar.gz>`_)
Daniel Dunbar21e993c2012-04-19 16:31:37 +000053
Bill Wendlingaf5e2e72012-06-20 11:55:22 +000054* `ViewVC Repository Browser <http://llvm.org/viewvc/>`_
Bill Wendling53960a62012-10-07 04:34:10 +000055
56* :ref:`compiler_writer_info`
57
58 A list of helpful links for compiler writers.