llvm.org GIT mirror llvm / 31da439
docs: Inline documentation structure into homepage. This brings back {Ctrl,Cmd}-f'ability, and makes some really bad organizational choices easier to see (and therefore fix). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172949 91177308-0d34-0410-b5e6-96231b3b80d8 Sean Silva 6 years ago
7 changed file(s) with 404 addition(s) and 418 deletion(s). Raw diff Collapse all Expand all
+0
-35
docs/design_and_overview.rst less more
None LLVM Design & Overview
1 ======================
2
3 .. toctree::
4 :hidden:
5
6 LangRef
7 GetElementPtr
8
9 * :doc:`LangRef`
10
11 Defines the LLVM intermediate representation.
12
13 * `Introduction to the LLVM Compiler `_
14
15 Presentation providing a users introduction to LLVM.
16
17 * `Intro to LLVM `_
18
19 Book chapter providing a compiler hacker's introduction to LLVM.
20
21 * `LLVM: A Compilation Framework for Lifelong Program Analysis & Transformation
22 `_
23
24 Design overview.
25
26 * `LLVM: An Infrastructure for Multi-Stage Optimization
27 `_
28
29 More details (quite old now).
30
31 * :doc:`GetElementPtr`
32
33 Answers to some very frequent questions about LLVM's most frequently
34 misunderstood instruction.
+0
-30
docs/development_process.rst less more
None Development Process Documentation
1 =================================
2
3 .. toctree::
4 :hidden:
5
6 MakefileGuide
7 Projects
8 LLVMBuild
9 HowToReleaseLLVM
10
11 * :doc:`Projects`
12
13 How-to guide and templates for new projects that *use* the LLVM
14 infrastructure. The templates (directory organization, Makefiles, and test
15 tree) allow the project code to be located outside (or inside) the ``llvm/``
16 tree, while using LLVM header files and libraries.
17
18 * :doc:`LLVMBuild`
19
20 Describes the LLVMBuild organization and files used by LLVM to specify
21 component descriptions.
22
23 * :doc:`MakefileGuide`
24
25 Describes how the LLVM makefiles work and how to use them.
26
27 * :doc:`HowToReleaseLLVM`
28
29 This is a guide to preparing LLVM releases. Most developers can ignore it.
1212 Similarly, documentation is broken down into several high-level groupings
1313 targeted at different audiences:
1414
15 * **Design & Overview**
16
17 Several introductory papers and presentations are available at
18 :doc:`design_and_overview`.
19
20 * **Publications**
21
22 The list of `publications `_ based on LLVM.
23
24 * **User Guides**
25
26 Those new to the LLVM system should first visit the :doc:`userguides`.
27
28 NOTE: If you are a user who is only interested in using LLVM-based
29 compilers, you should look into `Clang `_ or
30 `DragonEgg `_ instead. The documentation here is
31 intended for users who have a need to work with the intermediate LLVM
32 representation.
33
34 * **API Clients**
35
36 Developers of applications which use LLVM as a library should visit the
37 :doc:`programming`.
38
39 * **Subsystems**
40
41 API clients and LLVM developers may be interested in the
42 :doc:`subsystems` documentation.
43
44 * **Development Process**
45
46 Additional documentation on the LLVM project can be found at
47 :doc:`development_process`.
48
49 * **Mailing Lists**
50
51 For more information, consider consulting the LLVM :doc:`mailing_lists`.
15 LLVM Design & Overview
16 ======================
17
18 Several introductory papers and presentations.
5219
5320 .. toctree::
54 :maxdepth: 2
55
56 design_and_overview
57 userguides
58 programming
59 subsystems
60 development_process
61 mailing_lists
62
21 :hidden:
22
23 LangRef
24 GetElementPtr
25
26 * :doc:`LangRef`
27
28 Defines the LLVM intermediate representation.
29
30 * `Introduction to the LLVM Compiler `_
31
32 Presentation providing a users introduction to LLVM.
33
34 * `Intro to LLVM `_
35
36 Book chapter providing a compiler hacker's introduction to LLVM.
37
38 * `LLVM: A Compilation Framework for Lifelong Program Analysis & Transformation
39 `_
40
41 Design overview.
42
43 * `LLVM: An Infrastructure for Multi-Stage Optimization
44 `_
45
46 More details (quite old now).
47
48 * :doc:`GetElementPtr`
49
50 Answers to some very frequent questions about LLVM's most frequently
51 misunderstood instruction.
52
53 Publications
54 ============
55
56 The list of `publications `_ based on LLVM.
57
58 User Guides
59 ===========
60
61 For those new to the LLVM system.
62
63 NOTE: If you are a user who is only interested in using LLVM-based
64 compilers, you should look into `Clang `_ or
65 `DragonEgg `_ instead. The documentation here is
66 intended for users who have a need to work with the intermediate LLVM
67 representation.
68
69 .. toctree::
70 :hidden:
71
72 CMake
73 HowToBuildOnARM
74 CommandGuide/index
75 DeveloperPolicy
76 GettingStarted
77 GettingStartedVS
78 FAQ
79 Lexicon
80 Packaging
81 HowToAddABuilder
82 yaml2obj
83 HowToSubmitABug
84 SphinxQuickstartTemplate
85 Phabricator
86 TestingGuide
87 tutorial/index
88 ReleaseNotes
89 Passes
90 YamlIO
91
92 * :doc:`GettingStarted`
93
94 Discusses how to get up and running quickly with the LLVM infrastructure.
95 Everything from unpacking and compilation of the distribution to execution
96 of some tools.
97
98 * :doc:`CMake`
99
100 An addendum to the main Getting Started guide for those using the `CMake
101 build system `_.
102
103 * :doc:`HowToBuildOnARM`
104
105 Notes on building and testing LLVM/Clang on ARM.
106
107 * :doc:`GettingStartedVS`
108
109 An addendum to the main Getting Started guide for those using Visual Studio
110 on Windows.
111
112 * :doc:`tutorial/index`
113
114 Tutorials about using LLVM. Includes a tutorial about making a custom
115 language with LLVM.
116
117 * :doc:`DeveloperPolicy`
118
119 The LLVM project's policy towards developers and their contributions.
120
121 * :doc:`LLVM Command Guide `
122
123 A reference manual for the LLVM command line utilities ("man" pages for LLVM
124 tools).
125
126 * :doc:`Passes`
127
128 A list of optimizations and analyses implemented in LLVM.
129
130 * :doc:`FAQ`
131
132 A list of common questions and problems and their solutions.
133
134 * :doc:`Release notes for the current release `
135
136 This describes new features, known bugs, and other limitations.
137
138 * :doc:`HowToSubmitABug`
139
140 Instructions for properly submitting information about any bugs you run into
141 in the LLVM system.
142 * :doc:`SphinxQuickstartTemplate`
143
144 A template + tutorial for writing new Sphinx documentation. It is meant
145 to be read in source form.
146
147 * :doc:`LLVM Testing Infrastructure Guide `
148
149 A reference manual for using the LLVM testing infrastructure.
150
151 * `How to build the C, C++, ObjC, and ObjC++ front end `_
152
153 Instructions for building the clang front-end from source.
154
155 * :doc:`Packaging`
156
157 Advice on packaging LLVM into a distribution.
158
159 * :doc:`Lexicon`
160
161 Definition of acronyms, terms and concepts used in LLVM.
162
163 * :doc:`HowToAddABuilder`
164
165 Instructions for adding new builder to LLVM buildbot master.
166
167 * :doc:`YamlIO`
168
169 A reference guide for using LLVM's YAML I/O library.
170
171 IRC
172 ===
173
174 You can probably find help on the unofficial LLVM IRC.
175
176 We often are on irc.oftc.net in the #llvm channel. If you are using the
177 mozilla browser, and have chatzilla installed, you can `join #llvm on
178 irc.oftc.net `_.
179
180 Programming Documentation
181 =========================
182
183 For developers of applications which use LLVM as a library.
184
185 .. toctree::
186 :hidden:
187
188 Atomics
189 CodingStandards
190 CommandLine
191 CompilerWriterInfo
192 ExtendingLLVM
193 HowToSetUpLLVMStyleRTTI
194 ProgrammersManual
195
196 * :doc:`LLVM Language Reference Manual `
197
198 Defines the LLVM intermediate representation and the assembly form of the
199 different nodes.
200
201 * :doc:`Atomics`
202
203 Information about LLVM's concurrency model.
204
205 * :doc:`ProgrammersManual`
206
207 Introduction to the general layout of the LLVM sourcebase, important classes
208 and APIs, and some tips & tricks.
209
210 * :doc:`CommandLine`
211
212 Provides information on using the command line parsing library.
213
214 * :doc:`CodingStandards`
215
216 Details the LLVM coding standards and provides useful information on writing
217 efficient C++ code.
218
219 * :doc:`HowToSetUpLLVMStyleRTTI`
220
221 How to make ``isa<>``, ``dyn_cast<>``, etc. available for clients of your
222 class hierarchy.
223
224 * :doc:`ExtendingLLVM`
225
226 Look here to see how to add instructions and intrinsics to LLVM.
227
228 * `Doxygen generated documentation `_
229
230 (`classes `_)
231 (`tarball `_)
232
233 * `ViewVC Repository Browser `_
234
235 * :doc:`CompilerWriterInfo`
236
237 A list of helpful links for compiler writers.
238
239 Subsystem Documentation
240 =======================
241
242 For API clients and LLVM developers.
243
244 .. toctree::
245 :hidden:
246
247 AliasAnalysis
248 BitCodeFormat
249 BranchWeightMetadata
250 Bugpoint
251 CodeGenerator
252 ExceptionHandling
253 LinkTimeOptimization
254 SegmentedStacks
255 TableGenFundamentals
256 DebuggingJITedCode
257 GoldPlugin
258 MarkedUpDisassembly
259 SystemLibrary
260 SourceLevelDebugging
261 Vectorizers
262 WritingAnLLVMBackend
263 GarbageCollection
264 WritingAnLLVMPass
265 TableGen/LangRef
266
267 * :doc:`WritingAnLLVMPass`
268
269 Information on how to write LLVM transformations and analyses.
270
271 * :doc:`WritingAnLLVMBackend`
272
273 Information on how to write LLVM backends for machine targets.
274
275 * :doc:`CodeGenerator`
276
277 The design and implementation of the LLVM code generator. Useful if you are
278 working on retargetting LLVM to a new architecture, designing a new codegen
279 pass, or enhancing existing components.
280
281 * :doc:`TableGenFundamentals`
282
283 Describes the TableGen tool, which is used heavily by the LLVM code
284 generator.
285
286 * :doc:`AliasAnalysis`
287
288 Information on how to write a new alias analysis implementation or how to
289 use existing analyses.
290
291 * :doc:`GarbageCollection`
292
293 The interfaces source-language compilers should use for compiling GC'd
294 programs.
295
296 * :doc:`Source Level Debugging with LLVM `
297
298 This document describes the design and philosophy behind the LLVM
299 source-level debugger.
300
301 * :doc:`Vectorizers`
302
303 This document describes the current status of vectorization in LLVM.
304
305 * :doc:`ExceptionHandling`
306
307 This document describes the design and implementation of exception handling
308 in LLVM.
309
310 * :doc:`Bugpoint`
311
312 Automatic bug finder and test-case reducer description and usage
313 information.
314
315 * :doc:`BitCodeFormat`
316
317 This describes the file format and encoding used for LLVM "bc" files.
318
319 * :doc:`System Library `
320
321 This document describes the LLVM System Library (``lib/System``) and
322 how to keep LLVM source code portable
323
324 * :doc:`LinkTimeOptimization`
325
326 This document describes the interface between LLVM intermodular optimizer
327 and the linker and its design
328
329 * :doc:`GoldPlugin`
330
331 How to build your programs with link-time optimization on Linux.
332
333 * :doc:`DebuggingJITedCode`
334
335 How to debug JITed code with GDB.
336
337 * :doc:`BranchWeightMetadata`
338
339 Provides information about Branch Prediction Information.
340
341 * :doc:`SegmentedStacks`
342
343 This document describes segmented stacks and how they are used in LLVM.
344
345 * :doc:`MarkedUpDisassembly`
346
347 This document describes the optional rich disassembly output syntax.
348
349
350 Development Process Documentation
351 =================================
352
353
354 Information about LLVM's development process.
355
356 .. toctree::
357 :hidden:
358
359 MakefileGuide
360 Projects
361 LLVMBuild
362 HowToReleaseLLVM
363
364 * :doc:`Projects`
365
366 How-to guide and templates for new projects that *use* the LLVM
367 infrastructure. The templates (directory organization, Makefiles, and test
368 tree) allow the project code to be located outside (or inside) the ``llvm/``
369 tree, while using LLVM header files and libraries.
370
371 * :doc:`LLVMBuild`
372
373 Describes the LLVMBuild organization and files used by LLVM to specify
374 component descriptions.
375
376 * :doc:`MakefileGuide`
377
378 Describes how the LLVM makefiles work and how to use them.
379
380 * :doc:`HowToReleaseLLVM`
381
382 This is a guide to preparing LLVM releases. Most developers can ignore it.
383
384 Mailing Lists
385 =============
386
387 If you can't find what you need in these docs, try consulting the mailing
388 lists.
389
390 * `LLVM Announcements List
391 `_
392
393 This is a low volume list that provides important announcements regarding
394 LLVM. It gets email about once a month.
395
396 * `Developer's List `_
397
398 This list is for people who want to be included in technical discussions of
399 LLVM. People post to this list when they have questions about writing code
400 for or using the LLVM tools. It is relatively low volume.
401
402 * `Bugs & Patches Archive `_
403
404 This list gets emailed every time a bug is opened and closed, and when people
405 submit patches to be included in LLVM. It is higher volume than the LLVMdev
406 list.
407
408 * `Commits Archive `_
409
410 This list contains all commit messages that are made when LLVM developers
411 commit code changes to the repository. It is useful for those who want to
412 stay on the bleeding edge of LLVM development. This list is very high volume.
413
414 * `Test Results Archive
415 `_
416
417 A message is automatically sent to this list by every active nightly tester
418 when it completes. As such, this list gets email several times each day,
419 making it a high volume list.
420
63421 Indices and tables
64422 ==================
65423
+0
-33
docs/mailing_lists.rst less more
None Mailing Lists
1 =============
2
3 * `LLVM Announcements List
4 `_
5
6 This is a low volume list that provides important announcements regarding
7 LLVM. It gets email about once a month.
8
9 * `Developer's List `_
10
11 This list is for people who want to be included in technical discussions of
12 LLVM. People post to this list when they have questions about writing code
13 for or using the LLVM tools. It is relatively low volume.
14
15 * `Bugs & Patches Archive `_
16
17 This list gets emailed every time a bug is opened and closed, and when people
18 submit patches to be included in LLVM. It is higher volume than the LLVMdev
19 list.
20
21 * `Commits Archive `_
22
23 This list contains all commit messages that are made when LLVM developers
24 commit code changes to the repository. It is useful for those who want to
25 stay on the bleeding edge of LLVM development. This list is very high volume.
26
27 * `Test Results Archive
28 `_
29
30 A message is automatically sent to this list by every active nightly tester
31 when it completes. As such, this list gets email several times each day,
32 making it a high volume list.
+0
-56
docs/programming.rst less more
None Programming Documentation
1 =========================
2
3 .. toctree::
4 :hidden:
5
6 Atomics
7 CodingStandards
8 CommandLine
9 CompilerWriterInfo
10 ExtendingLLVM
11 HowToSetUpLLVMStyleRTTI
12 ProgrammersManual
13
14 * :doc:`LLVM Language Reference Manual `
15
16 Defines the LLVM intermediate representation and the assembly form of the
17 different nodes.
18
19 * :doc:`Atomics`
20
21 Information about LLVM's concurrency model.
22
23 * :doc:`ProgrammersManual`
24
25 Introduction to the general layout of the LLVM sourcebase, important classes
26 and APIs, and some tips & tricks.
27
28 * :doc:`CommandLine`
29
30 Provides information on using the command line parsing library.
31
32 * :doc:`CodingStandards`
33
34 Details the LLVM coding standards and provides useful information on writing
35 efficient C++ code.
36
37 * :doc:`HowToSetUpLLVMStyleRTTI`
38
39 How to make ``isa<>``, ``dyn_cast<>``, etc. available for clients of your
40 class hierarchy.
41
42 * :doc:`ExtendingLLVM`
43
44 Look here to see how to add instructions and intrinsics to LLVM.
45
46 * `Doxygen generated documentation `_
47
48 (`classes `_)
49 (`tarball `_)
50
51 * `ViewVC Repository Browser `_
52
53 * :doc:`CompilerWriterInfo`
54
55 A list of helpful links for compiler writers.
+0
-108
docs/subsystems.rst less more
None Subsystem Documentation
1 =======================
2
3 .. toctree::
4 :hidden:
5
6 AliasAnalysis
7 BitCodeFormat
8 BranchWeightMetadata
9 Bugpoint
10 CodeGenerator
11 ExceptionHandling
12 LinkTimeOptimization
13 SegmentedStacks
14 TableGenFundamentals
15 DebuggingJITedCode
16 GoldPlugin
17 MarkedUpDisassembly
18 SystemLibrary
19 SourceLevelDebugging
20 Vectorizers
21 WritingAnLLVMBackend
22 GarbageCollection
23 WritingAnLLVMPass
24 TableGen/LangRef
25
26 * :doc:`WritingAnLLVMPass`
27
28 Information on how to write LLVM transformations and analyses.
29
30 * :doc:`WritingAnLLVMBackend`
31
32 Information on how to write LLVM backends for machine targets.
33
34 * :doc:`CodeGenerator`
35
36 The design and implementation of the LLVM code generator. Useful if you are
37 working on retargetting LLVM to a new architecture, designing a new codegen
38 pass, or enhancing existing components.
39
40 * :doc:`TableGenFundamentals`
41
42 Describes the TableGen tool, which is used heavily by the LLVM code
43 generator.
44
45 * :doc:`AliasAnalysis`
46
47 Information on how to write a new alias analysis implementation or how to
48 use existing analyses.
49
50 * :doc:`GarbageCollection`
51
52 The interfaces source-language compilers should use for compiling GC'd
53 programs.
54
55 * :doc:`Source Level Debugging with LLVM `
56
57 This document describes the design and philosophy behind the LLVM
58 source-level debugger.
59
60 * :doc:`Vectorizers`
61
62 This document describes the current status of vectorization in LLVM.
63
64 * :doc:`ExceptionHandling`
65
66 This document describes the design and implementation of exception handling
67 in LLVM.
68
69 * :doc:`Bugpoint`
70
71 Automatic bug finder and test-case reducer description and usage
72 information.
73
74 * :doc:`BitCodeFormat`
75
76 This describes the file format and encoding used for LLVM "bc" files.
77
78 * :doc:`System Library `
79
80 This document describes the LLVM System Library (``lib/System``) and
81 how to keep LLVM source code portable
82
83 * :doc:`LinkTimeOptimization`
84
85 This document describes the interface between LLVM intermodular optimizer
86 and the linker and its design
87
88 * :doc:`GoldPlugin`
89
90 How to build your programs with link-time optimization on Linux.
91
92 * :doc:`DebuggingJITedCode`
93
94 How to debug JITed code with GDB.
95
96 * :doc:`BranchWeightMetadata`
97
98 Provides information about Branch Prediction Information.
99
100 * :doc:`SegmentedStacks`
101
102 This document describes segmented stacks and how they are used in LLVM.
103
104 * :doc:`MarkedUpDisassembly`
105
106 This document describes the optional rich disassembly output syntax.
107
+0
-110
docs/userguides.rst less more
None User Guides
1 ===========
2
3 .. toctree::
4 :hidden:
5
6 CMake
7 HowToBuildOnARM
8 CommandGuide/index
9 DeveloperPolicy
10 GettingStarted
11 GettingStartedVS
12 FAQ
13 Lexicon
14 Packaging
15 HowToAddABuilder
16 yaml2obj
17 HowToSubmitABug
18 SphinxQuickstartTemplate
19 Phabricator
20 TestingGuide
21 tutorial/index
22 ReleaseNotes
23 Passes
24 YamlIO
25
26 * :doc:`GettingStarted`
27
28 Discusses how to get up and running quickly with the LLVM infrastructure.
29 Everything from unpacking and compilation of the distribution to execution
30 of some tools.
31
32 * :doc:`CMake`
33
34 An addendum to the main Getting Started guide for those using the `CMake
35 build system `_.
36
37 * :doc:`HowToBuildOnARM`
38
39 Notes on building and testing LLVM/Clang on ARM.
40
41 * :doc:`GettingStartedVS`
42
43 An addendum to the main Getting Started guide for those using Visual Studio
44 on Windows.
45
46 * :doc:`tutorial/index`
47
48 Tutorials about using LLVM. Includes a tutorial about making a custom
49 language with LLVM.
50
51 * :doc:`DeveloperPolicy`
52
53 The LLVM project's policy towards developers and their contributions.
54
55 * :doc:`LLVM Command Guide `
56
57 A reference manual for the LLVM command line utilities ("man" pages for LLVM
58 tools).
59
60 * :doc:`Passes`
61
62 A list of optimizations and analyses implemented in LLVM.
63
64 * :doc:`FAQ`
65
66 A list of common questions and problems and their solutions.
67
68 * :doc:`Release notes for the current release `
69
70 This describes new features, known bugs, and other limitations.
71
72 * :doc:`HowToSubmitABug`
73
74 Instructions for properly submitting information about any bugs you run into
75 in the LLVM system.
76 * :doc:`SphinxQuickstartTemplate`
77
78 A template + tutorial for writing new Sphinx documentation. It is meant
79 to be read in source form.
80
81 * :doc:`LLVM Testing Infrastructure Guide `
82
83 A reference manual for using the LLVM testing infrastructure.
84
85 * `How to build the C, C++, ObjC, and ObjC++ front end `_
86
87 Instructions for building the clang front-end from source.
88
89 * :doc:`Packaging`
90
91 Advice on packaging LLVM into a distribution.
92
93 * :doc:`Lexicon`
94
95 Definition of acronyms, terms and concepts used in LLVM.
96
97 * :doc:`HowToAddABuilder`
98
99 Instructions for adding new builder to LLVM buildbot master.
100
101 * :doc:`YamlIO`
102
103 A reference guide for using LLVM's YAML I/O library.
104
105 * **IRC** -- You can probably find help on the unofficial LLVM IRC.
106
107 We often are on irc.oftc.net in the #llvm channel. If you are using the
108 mozilla browser, and have chatzilla installed, you can `join #llvm on
109 irc.oftc.net `_.