blob: ddb3acf6fbd781f5063981beee727fce047b82ad [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 Richardsde0e3aa2019-10-06 16:10:11 +000040 ExtendingLLVM
41 CommandLine
DeForest Richardse3e66242019-09-05 17:30:52 +000042
DeForest Richards2605f8c2019-09-27 19:12:00 +000043Clang
DeForest Richards6d196512019-10-06 15:36:37 +000044-----
DeForest Richards2605f8c2019-09-27 19:12:00 +000045
DeForest Richardse3e66242019-09-05 17:30:52 +000046:doc:`HowToBuildOnARM`
47 Notes on building and testing LLVM/Clang on ARM.
48
49:doc:`HowToBuildWithPGO`
50 Notes on building LLVM/Clang with PGO.
51
DeForest Richardse3e66242019-09-05 17:30:52 +000052:doc:`HowToCrossCompileLLVM`
53 Notes on cross-building and testing LLVM/Clang.
54
DeForest Richards2605f8c2019-09-27 19:12:00 +000055`How to build the C, C++, ObjC, and ObjC++ front end`__
56 Instructions for building the clang front-end from source.
57
58 .. __: http://clang.llvm.org/get_started.html
59
DeForest Richards6d196512019-10-06 15:36:37 +000060LLVM Builds and Distributions
61-----------------------------
62
63:doc:`BuildingADistribution`
64 A best-practices guide for using LLVM's CMake build system to package and
65 distribute LLVM-based tools.
66
67:doc:`CMake`
68 An addendum to the main Getting Started guide for those using the `CMake
69 build system <http://www.cmake.org>`_.
DeForest Richards2605f8c2019-09-27 19:12:00 +000070
71:doc:`Docker`
72 A reference for using Dockerfiles provided with LLVM.
73
DeForest Richards6d196512019-10-06 15:36:37 +000074Optimizations
75-------------
DeForest Richards2605f8c2019-09-27 19:12:00 +000076
DeForest Richards6d196512019-10-06 15:36:37 +000077:doc:`WritingAnLLVMPass`
78 Information on how to write LLVM transformations and analyses.
DeForest Richards2605f8c2019-09-27 19:12:00 +000079
DeForest Richardse3e66242019-09-05 17:30:52 +000080:doc:`Passes`
81 A list of optimizations and analyses implemented in LLVM.
82
DeForest Richards6d196512019-10-06 15:36:37 +000083:doc:`LoopTerminology`
84 A document describing Loops and associated terms as used in LLVM.
DeForest Richardse3e66242019-09-05 17:30:52 +000085
DeForest Richardse3e66242019-09-05 17:30:52 +000086:doc:`Remarks`
DeForest Richards6d196512019-10-06 15:36:37 +000087 A reference on the implementation of remarks in LLVM.
88
89Code Generation
90---------------
91
92:doc:`WritingAnLLVMBackend`
93 Information on how to write LLVM backends for machine targets.
94
95:doc:`CodeGenerator`
96 The design and implementation of the LLVM code generator. Useful if you are
97 working on retargetting LLVM to a new architecture, designing a new codegen
98 pass, or enhancing existing components.
99
100:doc:`TableGen <TableGen/index>`
101 Describes the TableGen tool, which is used heavily by the LLVM code
102 generator.
103
104Additional Topics
105-----------------
106
DeForest Richardsde0e3aa2019-10-06 16:10:11 +0000107:doc:`CommandLine`
108 Provides information on using the command line parsing library.
109
110:doc:`ExtendingLLVM`
111 Look here to see how to add instructions and intrinsics to LLVM.
112
DeForest Richards6d196512019-10-06 15:36:37 +0000113:doc:`HowToCrossCompileBuiltinsOnArm`
114 Notes on cross-building and testing the compiler-rt builtins for Arm.
115
116:doc:`NVPTXUsage`
117 This document describes using the NVPTX backend to compile GPU kernels.
118
119:doc:`AMDGPUUsage`
120 This document describes using the AMDGPU backend to compile GPU kernels.