blob: 7016a52380ee3ffd4fa45016762b0dbc3f3a85fb [file] [log] [blame]
DeForest Richardse3e66242019-09-05 17:30:52 +00001User Guides
2===========
3
DeForest Richardse3e66242019-09-05 17:30:52 +00004NOTE: If you are a user who is only interested in using an LLVM-based compiler,
5you should look into `Clang <http://clang.llvm.org>`_ instead. The
6documentation here is intended for users who have a need to work with the
7intermediate LLVM representation.
8
DeForest Richards6d196512019-10-06 15:36:37 +00009.. contents::
10 :local:
11
DeForest Richardse3e66242019-09-05 17:30:52 +000012.. toctree::
13 :hidden:
14
15 CMake
16 CMakePrimer
17 AdvancedBuilds
18 HowToBuildOnARM
19 HowToBuildWithPGO
20 HowToCrossCompileBuiltinsOnArm
21 HowToCrossCompileLLVM
DeForest Richardse3e66242019-09-05 17:30:52 +000022 yaml2obj
DeForest Richardse3e66242019-09-05 17:30:52 +000023 MarkdownQuickstartTemplate
24 Phabricator
DeForest Richardse3e66242019-09-05 17:30:52 +000025 Passes
DeForest Richardse3e66242019-09-05 17:30:52 +000026 MCJITDesignAndImplementation
27 ORCv2
28 CodeOfConduct
29 CompileCudaWithLLVM
30 ReportingGuide
31 Benchmarking
32 Docker
33 BuildingADistribution
34 Remarks
DeForest Richards6d196512019-10-06 15:36:37 +000035 WritingAnLLVMPass
36 WritingAnLLVMBackend
37 TableGen/index
38 NVPTXUsage
39 AMDGPUUsage
DeForest Richardse3e66242019-09-05 17:30:52 +000040
DeForest Richards2605f8c2019-09-27 19:12:00 +000041Clang
DeForest Richards6d196512019-10-06 15:36:37 +000042-----
DeForest Richards2605f8c2019-09-27 19:12:00 +000043
DeForest Richardse3e66242019-09-05 17:30:52 +000044:doc:`HowToBuildOnARM`
45 Notes on building and testing LLVM/Clang on ARM.
46
47:doc:`HowToBuildWithPGO`
48 Notes on building LLVM/Clang with PGO.
49
DeForest Richardse3e66242019-09-05 17:30:52 +000050:doc:`HowToCrossCompileLLVM`
51 Notes on cross-building and testing LLVM/Clang.
52
DeForest Richards2605f8c2019-09-27 19:12:00 +000053`How to build the C, C++, ObjC, and ObjC++ front end`__
54 Instructions for building the clang front-end from source.
55
56 .. __: http://clang.llvm.org/get_started.html
57
DeForest Richards6d196512019-10-06 15:36:37 +000058LLVM Builds and Distributions
59-----------------------------
60
61:doc:`BuildingADistribution`
62 A best-practices guide for using LLVM's CMake build system to package and
63 distribute LLVM-based tools.
64
65:doc:`CMake`
66 An addendum to the main Getting Started guide for those using the `CMake
67 build system <http://www.cmake.org>`_.
DeForest Richards2605f8c2019-09-27 19:12:00 +000068
69:doc:`Docker`
70 A reference for using Dockerfiles provided with LLVM.
71
DeForest Richards6d196512019-10-06 15:36:37 +000072Optimizations
73-------------
DeForest Richards2605f8c2019-09-27 19:12:00 +000074
DeForest Richards6d196512019-10-06 15:36:37 +000075:doc:`WritingAnLLVMPass`
76 Information on how to write LLVM transformations and analyses.
DeForest Richards2605f8c2019-09-27 19:12:00 +000077
DeForest Richardse3e66242019-09-05 17:30:52 +000078:doc:`Passes`
79 A list of optimizations and analyses implemented in LLVM.
80
DeForest Richards6d196512019-10-06 15:36:37 +000081:doc:`LoopTerminology`
82 A document describing Loops and associated terms as used in LLVM.
DeForest Richardse3e66242019-09-05 17:30:52 +000083
DeForest Richardse3e66242019-09-05 17:30:52 +000084:doc:`Remarks`
DeForest Richards6d196512019-10-06 15:36:37 +000085 A reference on the implementation of remarks in LLVM.
86
87Code Generation
88---------------
89
90:doc:`WritingAnLLVMBackend`
91 Information on how to write LLVM backends for machine targets.
92
93:doc:`CodeGenerator`
94 The design and implementation of the LLVM code generator. Useful if you are
95 working on retargetting LLVM to a new architecture, designing a new codegen
96 pass, or enhancing existing components.
97
98:doc:`TableGen <TableGen/index>`
99 Describes the TableGen tool, which is used heavily by the LLVM code
100 generator.
101
102Additional Topics
103-----------------
104
105:doc:`HowToCrossCompileBuiltinsOnArm`
106 Notes on cross-building and testing the compiler-rt builtins for Arm.
107
108:doc:`NVPTXUsage`
109 This document describes using the NVPTX backend to compile GPU kernels.
110
111:doc:`AMDGPUUsage`
112 This document describes using the AMDGPU backend to compile GPU kernels.