Mercurial > hg > CbC > CbC_llvm
comparison docs/index.rst @ 0:95c75e76d11b LLVM3.4
LLVM 3.4
author | Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp> |
---|---|
date | Thu, 12 Dec 2013 13:56:28 +0900 |
parents | |
children | 54457678186b |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:95c75e76d11b |
---|---|
1 Overview | |
2 ======== | |
3 | |
4 .. warning:: | |
5 | |
6 If you are using a released version of LLVM, see `the download page | |
7 <http://llvm.org/releases/>`_ to find your documentation. | |
8 | |
9 The LLVM compiler infrastructure supports a wide range of projects, from | |
10 industrial strength compilers to specialized JIT applications to small | |
11 research projects. | |
12 | |
13 Similarly, documentation is broken down into several high-level groupings | |
14 targeted at different audiences: | |
15 | |
16 LLVM Design & Overview | |
17 ====================== | |
18 | |
19 Several introductory papers and presentations. | |
20 | |
21 .. toctree:: | |
22 :hidden: | |
23 | |
24 LangRef | |
25 | |
26 :doc:`LangRef` | |
27 Defines the LLVM intermediate representation. | |
28 | |
29 `Introduction to the LLVM Compiler`__ | |
30 Presentation providing a users introduction to LLVM. | |
31 | |
32 .. __: http://llvm.org/pubs/2008-10-04-ACAT-LLVM-Intro.html | |
33 | |
34 `Intro to LLVM`__ | |
35 Book chapter providing a compiler hacker's introduction to LLVM. | |
36 | |
37 .. __: http://www.aosabook.org/en/llvm.html | |
38 | |
39 | |
40 `LLVM: A Compilation Framework for Lifelong Program Analysis & Transformation`__ | |
41 Design overview. | |
42 | |
43 .. __: http://llvm.org/pubs/2004-01-30-CGO-LLVM.html | |
44 | |
45 `LLVM: An Infrastructure for Multi-Stage Optimization`__ | |
46 More details (quite old now). | |
47 | |
48 .. __: http://llvm.org/pubs/2002-12-LattnerMSThesis.html | |
49 | |
50 `Publications mentioning LLVM <http://llvm.org/pubs>`_ | |
51 .. | |
52 | |
53 User Guides | |
54 =========== | |
55 | |
56 For those new to the LLVM system. | |
57 | |
58 NOTE: If you are a user who is only interested in using LLVM-based | |
59 compilers, you should look into `Clang <http://clang.llvm.org>`_ or | |
60 `DragonEgg <http://dragonegg.llvm.org>`_ instead. The documentation here is | |
61 intended for users who have a need to work with the intermediate LLVM | |
62 representation. | |
63 | |
64 .. toctree:: | |
65 :hidden: | |
66 | |
67 CMake | |
68 HowToBuildOnARM | |
69 HowToCrossCompileLLVM | |
70 CommandGuide/index | |
71 GettingStarted | |
72 GettingStartedVS | |
73 FAQ | |
74 Lexicon | |
75 HowToAddABuilder | |
76 yaml2obj | |
77 HowToSubmitABug | |
78 SphinxQuickstartTemplate | |
79 Phabricator | |
80 TestingGuide | |
81 tutorial/index | |
82 ReleaseNotes | |
83 Passes | |
84 YamlIO | |
85 GetElementPtr | |
86 MCJITDesignAndImplementation | |
87 | |
88 :doc:`GettingStarted` | |
89 Discusses how to get up and running quickly with the LLVM infrastructure. | |
90 Everything from unpacking and compilation of the distribution to execution | |
91 of some tools. | |
92 | |
93 :doc:`CMake` | |
94 An addendum to the main Getting Started guide for those using the `CMake | |
95 build system <http://www.cmake.org>`_. | |
96 | |
97 :doc:`HowToBuildOnARM` | |
98 Notes on building and testing LLVM/Clang on ARM. | |
99 | |
100 :doc:`HowToCrossCompileLLVM` | |
101 Notes on cross-building and testing LLVM/Clang. | |
102 | |
103 :doc:`GettingStartedVS` | |
104 An addendum to the main Getting Started guide for those using Visual Studio | |
105 on Windows. | |
106 | |
107 :doc:`tutorial/index` | |
108 Tutorials about using LLVM. Includes a tutorial about making a custom | |
109 language with LLVM. | |
110 | |
111 :doc:`LLVM Command Guide <CommandGuide/index>` | |
112 A reference manual for the LLVM command line utilities ("man" pages for LLVM | |
113 tools). | |
114 | |
115 :doc:`Passes` | |
116 A list of optimizations and analyses implemented in LLVM. | |
117 | |
118 :doc:`FAQ` | |
119 A list of common questions and problems and their solutions. | |
120 | |
121 :doc:`Release notes for the current release <ReleaseNotes>` | |
122 This describes new features, known bugs, and other limitations. | |
123 | |
124 :doc:`HowToSubmitABug` | |
125 Instructions for properly submitting information about any bugs you run into | |
126 in the LLVM system. | |
127 | |
128 :doc:`SphinxQuickstartTemplate` | |
129 A template + tutorial for writing new Sphinx documentation. It is meant | |
130 to be read in source form. | |
131 | |
132 :doc:`LLVM Testing Infrastructure Guide <TestingGuide>` | |
133 A reference manual for using the LLVM testing infrastructure. | |
134 | |
135 `How to build the C, C++, ObjC, and ObjC++ front end`__ | |
136 Instructions for building the clang front-end from source. | |
137 | |
138 .. __: http://clang.llvm.org/get_started.html | |
139 | |
140 :doc:`Lexicon` | |
141 Definition of acronyms, terms and concepts used in LLVM. | |
142 | |
143 :doc:`HowToAddABuilder` | |
144 Instructions for adding new builder to LLVM buildbot master. | |
145 | |
146 :doc:`YamlIO` | |
147 A reference guide for using LLVM's YAML I/O library. | |
148 | |
149 :doc:`GetElementPtr` | |
150 Answers to some very frequent questions about LLVM's most frequently | |
151 misunderstood instruction. | |
152 | |
153 Programming Documentation | |
154 ========================= | |
155 | |
156 For developers of applications which use LLVM as a library. | |
157 | |
158 .. toctree:: | |
159 :hidden: | |
160 | |
161 Atomics | |
162 CodingStandards | |
163 CommandLine | |
164 CompilerWriterInfo | |
165 ExtendingLLVM | |
166 HowToSetUpLLVMStyleRTTI | |
167 ProgrammersManual | |
168 Extensions | |
169 | |
170 :doc:`LLVM Language Reference Manual <LangRef>` | |
171 Defines the LLVM intermediate representation and the assembly form of the | |
172 different nodes. | |
173 | |
174 :doc:`Atomics` | |
175 Information about LLVM's concurrency model. | |
176 | |
177 :doc:`ProgrammersManual` | |
178 Introduction to the general layout of the LLVM sourcebase, important classes | |
179 and APIs, and some tips & tricks. | |
180 | |
181 :doc:`Extensions` | |
182 LLVM-specific extensions to tools and formats LLVM seeks compatibility with. | |
183 | |
184 :doc:`CommandLine` | |
185 Provides information on using the command line parsing library. | |
186 | |
187 :doc:`CodingStandards` | |
188 Details the LLVM coding standards and provides useful information on writing | |
189 efficient C++ code. | |
190 | |
191 :doc:`HowToSetUpLLVMStyleRTTI` | |
192 How to make ``isa<>``, ``dyn_cast<>``, etc. available for clients of your | |
193 class hierarchy. | |
194 | |
195 :doc:`ExtendingLLVM` | |
196 Look here to see how to add instructions and intrinsics to LLVM. | |
197 | |
198 `Doxygen generated documentation <http://llvm.org/doxygen/>`_ | |
199 (`classes <http://llvm.org/doxygen/inherits.html>`_) | |
200 (`tarball <http://llvm.org/doxygen/doxygen.tar.gz>`_) | |
201 | |
202 `ViewVC Repository Browser <http://llvm.org/viewvc/>`_ | |
203 .. | |
204 | |
205 :doc:`CompilerWriterInfo` | |
206 A list of helpful links for compiler writers. | |
207 | |
208 Subsystem Documentation | |
209 ======================= | |
210 | |
211 For API clients and LLVM developers. | |
212 | |
213 .. toctree:: | |
214 :hidden: | |
215 | |
216 AliasAnalysis | |
217 BitCodeFormat | |
218 BranchWeightMetadata | |
219 Bugpoint | |
220 CodeGenerator | |
221 ExceptionHandling | |
222 LinkTimeOptimization | |
223 SegmentedStacks | |
224 TableGenFundamentals | |
225 DebuggingJITedCode | |
226 GoldPlugin | |
227 MarkedUpDisassembly | |
228 SystemLibrary | |
229 SourceLevelDebugging | |
230 Vectorizers | |
231 WritingAnLLVMBackend | |
232 GarbageCollection | |
233 WritingAnLLVMPass | |
234 TableGen/LangRef | |
235 HowToUseAttributes | |
236 NVPTXUsage | |
237 | |
238 :doc:`WritingAnLLVMPass` | |
239 Information on how to write LLVM transformations and analyses. | |
240 | |
241 :doc:`WritingAnLLVMBackend` | |
242 Information on how to write LLVM backends for machine targets. | |
243 | |
244 :doc:`CodeGenerator` | |
245 The design and implementation of the LLVM code generator. Useful if you are | |
246 working on retargetting LLVM to a new architecture, designing a new codegen | |
247 pass, or enhancing existing components. | |
248 | |
249 :doc:`TableGenFundamentals` | |
250 Describes the TableGen tool, which is used heavily by the LLVM code | |
251 generator. | |
252 | |
253 :doc:`AliasAnalysis` | |
254 Information on how to write a new alias analysis implementation or how to | |
255 use existing analyses. | |
256 | |
257 :doc:`GarbageCollection` | |
258 The interfaces source-language compilers should use for compiling GC'd | |
259 programs. | |
260 | |
261 :doc:`Source Level Debugging with LLVM <SourceLevelDebugging>` | |
262 This document describes the design and philosophy behind the LLVM | |
263 source-level debugger. | |
264 | |
265 :doc:`Vectorizers` | |
266 This document describes the current status of vectorization in LLVM. | |
267 | |
268 :doc:`ExceptionHandling` | |
269 This document describes the design and implementation of exception handling | |
270 in LLVM. | |
271 | |
272 :doc:`Bugpoint` | |
273 Automatic bug finder and test-case reducer description and usage | |
274 information. | |
275 | |
276 :doc:`BitCodeFormat` | |
277 This describes the file format and encoding used for LLVM "bc" files. | |
278 | |
279 :doc:`System Library <SystemLibrary>` | |
280 This document describes the LLVM System Library (``lib/System``) and | |
281 how to keep LLVM source code portable | |
282 | |
283 :doc:`LinkTimeOptimization` | |
284 This document describes the interface between LLVM intermodular optimizer | |
285 and the linker and its design | |
286 | |
287 :doc:`GoldPlugin` | |
288 How to build your programs with link-time optimization on Linux. | |
289 | |
290 :doc:`DebuggingJITedCode` | |
291 How to debug JITed code with GDB. | |
292 | |
293 :doc:`MCJITDesignAndImplementation` | |
294 Describes the inner workings of MCJIT execution engine. | |
295 | |
296 :doc:`BranchWeightMetadata` | |
297 Provides information about Branch Prediction Information. | |
298 | |
299 :doc:`SegmentedStacks` | |
300 This document describes segmented stacks and how they are used in LLVM. | |
301 | |
302 :doc:`MarkedUpDisassembly` | |
303 This document describes the optional rich disassembly output syntax. | |
304 | |
305 :doc:`HowToUseAttributes` | |
306 Answers some questions about the new Attributes infrastructure. | |
307 | |
308 :doc:`NVPTXUsage` | |
309 This document describes using the NVPTX back-end to compile GPU kernels. | |
310 | |
311 | |
312 Development Process Documentation | |
313 ================================= | |
314 | |
315 Information about LLVM's development process. | |
316 | |
317 .. toctree:: | |
318 :hidden: | |
319 | |
320 DeveloperPolicy | |
321 MakefileGuide | |
322 Projects | |
323 LLVMBuild | |
324 HowToReleaseLLVM | |
325 Packaging | |
326 ReleaseProcess | |
327 | |
328 :doc:`DeveloperPolicy` | |
329 The LLVM project's policy towards developers and their contributions. | |
330 | |
331 :doc:`Projects` | |
332 How-to guide and templates for new projects that *use* the LLVM | |
333 infrastructure. The templates (directory organization, Makefiles, and test | |
334 tree) allow the project code to be located outside (or inside) the ``llvm/`` | |
335 tree, while using LLVM header files and libraries. | |
336 | |
337 :doc:`LLVMBuild` | |
338 Describes the LLVMBuild organization and files used by LLVM to specify | |
339 component descriptions. | |
340 | |
341 :doc:`MakefileGuide` | |
342 Describes how the LLVM makefiles work and how to use them. | |
343 | |
344 :doc:`HowToReleaseLLVM` | |
345 This is a guide to preparing LLVM releases. Most developers can ignore it. | |
346 | |
347 :doc:`ReleaseProcess` | |
348 This is a validate a new release, during the release process. Most developers can ignore it. | |
349 | |
350 :doc:`Packaging` | |
351 Advice on packaging LLVM into a distribution. | |
352 | |
353 Community | |
354 ========= | |
355 | |
356 LLVM has a thriving community of friendly and helpful developers. | |
357 The two primary communication mechanisms in the LLVM community are mailing | |
358 lists and IRC. | |
359 | |
360 Mailing Lists | |
361 ------------- | |
362 | |
363 If you can't find what you need in these docs, try consulting the mailing | |
364 lists. | |
365 | |
366 `Developer's List (llvmdev)`__ | |
367 This list is for people who want to be included in technical discussions of | |
368 LLVM. People post to this list when they have questions about writing code | |
369 for or using the LLVM tools. It is relatively low volume. | |
370 | |
371 .. __: http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev | |
372 | |
373 `Commits Archive (llvm-commits)`__ | |
374 This list contains all commit messages that are made when LLVM developers | |
375 commit code changes to the repository. It also serves as a forum for | |
376 patch review (i.e. send patches here). It is useful for those who want to | |
377 stay on the bleeding edge of LLVM development. This list is very high | |
378 volume. | |
379 | |
380 .. __: http://lists.cs.uiuc.edu/pipermail/llvm-commits/ | |
381 | |
382 `Bugs & Patches Archive (llvmbugs)`__ | |
383 This list gets emailed every time a bug is opened and closed. It is | |
384 higher volume than the LLVMdev list. | |
385 | |
386 .. __: http://lists.cs.uiuc.edu/pipermail/llvmbugs/ | |
387 | |
388 `Test Results Archive (llvm-testresults)`__ | |
389 A message is automatically sent to this list by every active nightly tester | |
390 when it completes. As such, this list gets email several times each day, | |
391 making it a high volume list. | |
392 | |
393 .. __: http://lists.cs.uiuc.edu/pipermail/llvm-testresults/ | |
394 | |
395 `LLVM Announcements List (llvm-announce)`__ | |
396 This is a low volume list that provides important announcements regarding | |
397 LLVM. It gets email about once a month. | |
398 | |
399 .. __: http://lists.cs.uiuc.edu/mailman/listinfo/llvm-announce | |
400 | |
401 IRC | |
402 --- | |
403 | |
404 Users and developers of the LLVM project (including subprojects such as Clang) | |
405 can be found in #llvm on `irc.oftc.net <irc://irc.oftc.net/llvm>`_. | |
406 | |
407 This channel has several bots. | |
408 | |
409 * Buildbot reporters | |
410 | |
411 * llvmbb - Bot for the main LLVM buildbot master. | |
412 http://lab.llvm.org:8011/console | |
413 * bb-chapuni - An individually run buildbot master. http://bb.pgr.jp/console | |
414 * smooshlab - Apple's internal buildbot master. | |
415 | |
416 * robot - Bugzilla linker. %bug <number> | |
417 | |
418 * clang-bot - A `geordi <http://www.eelis.net/geordi/>`_ instance running | |
419 near-trunk clang instead of gcc. | |
420 | |
421 | |
422 Indices and tables | |
423 ================== | |
424 | |
425 * :ref:`genindex` | |
426 * :ref:`search` |