blob: 936eae16e3a2a61c4e0fdbc97a09d276becf650b [file] [log] [blame]
Dan Gohmanf17a25c2007-07-18 16:29:46 +00001<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
2 "http://www.w3.org/TR/html4/strict.dtd">
3<html>
4<head>
Jeffrey Yasskin434e6ef2010-02-03 18:49:55 +00005 <title>Documentation for the LLVM System at SVN head</title>
Dan Gohmanf17a25c2007-07-18 16:29:46 +00006 <link rel="stylesheet" href="llvm.css" type="text/css">
7</head>
8<body>
9
Jeffrey Yasskin434e6ef2010-02-03 18:49:55 +000010<div class="doc_title">Documentation for the LLVM System at SVN head</div>
Jeffrey Yasskin2b724ae2010-02-03 18:23:23 +000011
Jeffrey Yasskin434e6ef2010-02-03 18:49:55 +000012<p class="doc_warning">If you are using a released version of LLVM,
13see <a href="http://llvm.org/releases/">the download page</a> to find
14your documentation.</p>
Dan Gohmanf17a25c2007-07-18 16:29:46 +000015
16<div class="doc_text">
17<table class="layout" width="95%"><tr class="layout"><td class="left">
18<ul>
19 <li><a href="#llvmdesign">LLVM Design</a></li>
20 <li><a href="/pubs/">LLVM Publications</a></li>
21 <li><a href="#userguide">LLVM User Guides</a></li>
22 <li><a href="#llvmprog">General LLVM Programming Documentation</a></li>
23 <li><a href="#subsystems">LLVM Subsystem Documentation</a></li>
24 <li><a href="#maillist">LLVM Mailing Lists</a></li>
25</ul>
26</td><td class="right">
27 <form action="http://www.google.com/search" method=get>
Misha Brukman4fbc44d2008-12-11 18:14:06 +000028 <p>
Dan Gohmanf17a25c2007-07-18 16:29:46 +000029 <input type="hidden" name="sitesearch" value="llvm.org/docs">
30 <input type=text name=q size=25><br>
31 <input type=submit value="Search the LLVM Docs" name="submit">
Misha Brukman4fbc44d2008-12-11 18:14:06 +000032 </p>
Dan Gohmanf17a25c2007-07-18 16:29:46 +000033 </form>
34</td></tr></table>
35</div>
36
Mikhail Glushenkovac251f22008-12-11 23:24:40 +000037<div class="doc_author">
Dan Gohmanf17a25c2007-07-18 16:29:46 +000038 <p>Written by <a href="http://llvm.org">The LLVM Team</a></p>
39</div>
40
41<!--=======================================================================-->
42<div class="doc_section"><a name="llvmdesign">LLVM Design &amp; Overview</a></div>
43<!--=======================================================================-->
44
45<ul>
46<li><a href="LangRef.html">LLVM Language Reference Manual</a> - Defines the LLVM
47intermediate representation.</li>
Chris Lattner4e4730b2009-07-29 06:19:14 +000048<li><a href="http://llvm.org/pubs/2008-10-04-ACAT-LLVM-Intro.html">Introduction to the LLVM Compiler </a> - Presentation describing LLVM.</li>
Dan Gohmanf17a25c2007-07-18 16:29:46 +000049<li><a href="http://llvm.org/pubs/2004-09-22-LCPCLLVMTutorial.html">The LLVM Compiler Framework and
50Infrastructure Tutorial</a> - Tutorial for writing passes, exploring the system.</li>
51<li><a href="http://llvm.org/pubs/2004-01-30-CGO-LLVM.html">LLVM: A Compilation Framework for
52Lifelong Program Analysis &amp; Transformation</a> - Design overview.</li>
53<li><a href="http://llvm.org/pubs/2002-12-LattnerMSThesis.html">LLVM: An Infrastructure for
Chris Lattner4e4730b2009-07-29 06:19:14 +000054Multi-Stage Optimization</a> - More details (quite old now).</li>
Dan Gohmanf17a25c2007-07-18 16:29:46 +000055<li><a href="GetElementPtr.html">GetElementPtr FAQ</a> - Answers to some very
56frequent questions about LLVM's most frequently misunderstood instruction.</li>
Dan Gohman273eebe2010-02-17 22:47:06 +000057<li><a href="AdvancedGetElementPtr.html">Advanced GetElementPtr FAQ</a> - Answers
58to questions about the GetElementPtr operator for those who have made it through
59the first FAQ.</li>
Dan Gohmanf17a25c2007-07-18 16:29:46 +000060</ul>
61
62<!--=======================================================================-->
63<div class="doc_section"><a name="userguide">LLVM User Guides</a></div>
64<!--=======================================================================-->
65
66<ul>
67<li><a href="GettingStarted.html">The LLVM Getting Started Guide</a> -
68Discusses how to get up and running quickly with the LLVM infrastructure.
69Everything from unpacking and compilation of the distribution to execution of
70some tools.</li>
71
72<li><a href="GettingStartedVS.html">Getting Started with the LLVM System using
73Microsoft Visual Studio</a> - An addendum to the main Getting Started guide for
74those using Visual Studio on Windows.</li>
75
Chris Lattnerb7da3a12007-11-09 19:24:54 +000076<li><a href="tutorial/">LLVM Tutorial</a> - A walk through the process of using
Nick Lewycky345de762007-11-09 05:45:51 +000077LLVM for a custom language, and the facilities LLVM offers in tutorial form.</li>
Dan Gohmanf17a25c2007-07-18 16:29:46 +000078<li><a href="DeveloperPolicy.html">Developer Policy</a> - The LLVM project's
79policy towards developers and their contributions.</li>
80
Reid Spencer76f73d12007-08-05 23:43:44 +000081<li><a href="/docs/CommandGuide/index.html">LLVM Command Guide</a> - A reference
Misha Brukman4fbc44d2008-12-11 18:14:06 +000082manual for the LLVM command line utilities ("man" pages for LLVM tools).<br>
Dan Gohmanf17a25c2007-07-18 16:29:46 +000083Current tools:
Reid Spencer76f73d12007-08-05 23:43:44 +000084 <a href="/cmds/llvm-ar.html">llvm-ar</a>,
85 <a href="/cmds/llvm-as.html">llvm-as</a>,
86 <a href="/cmds/llvm-dis.html">llvm-dis</a>,
87 <a href="/cmds/llvm-extract.html">llvm-extract</a>,
88 <a href="/cmds/llvm-ld.html">llvm-ld</a>,
89 <a href="/cmds/llvm-link.html">llvm-link</a>,
90 <a href="/cmds/llvm-nm.html">llvm-nm</a>,
91 <a href="/cmds/llvm-prof.html">llvm-prof</a>,
92 <a href="/cmds/llvm-ranlib.html">llvm-ranlib</a>,
93 <a href="/cmds/opt.html">opt</a>,
94 <a href="/cmds/llc.html">llc</a>,
95 <a href="/cmds/lli.html">lli</a>,
96 <a href="/cmds/llvmc.html">llvmc</a>
97 <a href="/cmds/llvmgcc.html">llvm-gcc</a>,
98 <a href="/cmds/llvmgxx.html">llvm-g++</a>,
99 <a href="/cmds/stkrc.html">stkrc</a>,
100 <a href="/cmds/bugpoint.html">bugpoint</a>,
101 <a href="/cmds/llvm-bcanalyzer.html">llvm-bcanalyzer</a>,
Dan Gohmanf17a25c2007-07-18 16:29:46 +0000102</li>
103
Tanya Lattner79e6c772008-03-24 18:29:32 +0000104<li><a href="Passes.html">LLVM's Analysis and Transform Passes</a> - A list of
105optimizations and analyses implemented in LLVM.</li>
106
Dan Gohmanf17a25c2007-07-18 16:29:46 +0000107<li><a href="FAQ.html">Frequently Asked Questions</a> - A list of common
108questions and problems and their solutions.</li>
109
Mikhail Glushenkovac251f22008-12-11 23:24:40 +0000110<li><a href="ReleaseNotes.html">Release notes for the current release</a>
Dan Gohmanf17a25c2007-07-18 16:29:46 +0000111- This describes new features, known bugs, and other limitations.</li>
112
113<li><a href="HowToSubmitABug.html">How to Submit A Bug Report</a> -
114Instructions for properly submitting information about any bugs you run into in
115the LLVM system.</li>
116
Matthijs Kooijmaneb69e792008-07-02 13:54:58 +0000117<li><a href="TestingGuide.html">LLVM Testing Infrastructure Guide</a> - A reference
118manual for using the LLVM testing infrastructure.</li>
Dan Gohmanf17a25c2007-07-18 16:29:46 +0000119
Duncan Sands7dbf8132008-12-10 10:50:58 +0000120<li><a href="GCCFEBuildInstrs.html">How to build the Ada/C/C++/Fortran front-ends</a> -
121Instructions for building gcc front-ends from source.</li>
Dan Gohmanf17a25c2007-07-18 16:29:46 +0000122
123<li><a href="Lexicon.html">The LLVM Lexicon</a> - Definition of acronyms, terms
124and concepts used in LLVM.</li>
125
Mikhail Glushenkovac251f22008-12-11 23:24:40 +0000126<li><a name="irc">You can probably find help on the unofficial LLVM IRC
127channel</a>. We often are on irc.oftc.net in the #llvm channel. If you are
128using the mozilla browser, and have chatzilla installed, you can <a
Dan Gohmanf17a25c2007-07-18 16:29:46 +0000129href="irc://irc.oftc.net/llvm">join #llvm on irc.oftc.net</a> directly.</li>
130
131</ul>
132
133
134<!--=======================================================================-->
135<div class="doc_section"><a name="llvmprog">General LLVM Programming Documentation</a></div>
136<!--=======================================================================-->
137
138<ul>
139<li><a href="LangRef.html">LLVM Language Reference Manual</a> - Defines the LLVM
140intermediate representation and the assembly form of the different nodes.</li>
141
142<li><a href="ProgrammersManual.html">The LLVM Programmers Manual</a> -
143Introduction to the general layout of the LLVM sourcebase, important classes
144and APIs, and some tips &amp; tricks.</li>
145
146<li><a href="Projects.html">LLVM Project Guide</a> - How-to guide and
147templates for new projects that <em>use</em> the LLVM infrastructure. The
148templates (directory organization, Makefiles, and test tree) allow the project
149code to be located outside (or inside) the <tt>llvm/</tt> tree, while using LLVM
150header files and libraries.</li>
151
152<li><a href="MakefileGuide.html">LLVM Makefile Guide</a> - Describes how the
153LLVM makefiles work and how to use them.</li>
154
155<li><a href="CommandLine.html">CommandLine library Reference Manual</a> -
156Provides information on using the command line parsing library.</li>
157
158<li><a href="CodingStandards.html">LLVM Coding standards</a> -
159Details the LLVM coding standards and provides useful information on writing
160efficient C++ code.</li>
161
Mikhail Glushenkovac251f22008-12-11 23:24:40 +0000162<li><a href="ExtendingLLVM.html">Extending LLVM</a> - Look here to see how
Dan Gohmanf17a25c2007-07-18 16:29:46 +0000163to add instructions and intrinsics to LLVM.</li>
164
165<li><a href="UsingLibraries.html">Using LLVM Libraries</a> - Look here to
166understand how to use the libraries produced when LLVM is compiled.</li>
167
168<li><a href="HowToReleaseLLVM.html">How To Release LLVM To The Public</a> - This
169is a guide to preparing LLVM releases. Most developers can ignore it.</li>
170
Mikhail Glushenkovac251f22008-12-11 23:24:40 +0000171<li><a href="http://llvm.org/doxygen/">Doxygen generated
Dan Gohmanf17a25c2007-07-18 16:29:46 +0000172documentation</a> (<a
173href="http://llvm.org/doxygen/inherits.html">classes</a>)
174
175(<a href="http://llvm.org/doxygen/doxygen.tar.gz">tarball</a>)
176</li>
177
178<li><a href="http://llvm.org/viewvc/">ViewVC Repository Browser</a></li>
179
180</ul>
181
182<!--=======================================================================-->
183<div class="doc_section"><a name="subsystems">LLVM Subsystem Documentation</a></div>
184<!--=======================================================================-->
185
186<ul>
187
188<li><a href="WritingAnLLVMPass.html">Writing an LLVM Pass</a> - Information
189on how to write LLVM transformations and analyses.</li>
190
191<li><a href="WritingAnLLVMBackend.html">Writing an LLVM Backend</a> - Information
192on how to write LLVM backends for machine targets.</li>
193
194<li><a href="CodeGenerator.html">The LLVM Target-Independent Code
195Generator</a> - The design and implementation of the LLVM code generator.
196Useful if you are working on retargetting LLVM to a new architecture, designing
197a new codegen pass, or enhancing existing components.</li>
198
199<li><a href="TableGenFundamentals.html">TableGen Fundamentals</a> -
200Describes the TableGen tool, which is used heavily by the LLVM code
201generator.</li>
202
203<li><a href="AliasAnalysis.html">Alias Analysis in LLVM</a> - Information
204on how to write a new alias analysis implementation or how to use existing
205analyses.</li>
206
Dan Gohmanf17a25c2007-07-18 16:29:46 +0000207<li><a href="GarbageCollection.html">Accurate Garbage Collection with
208LLVM</a> - The interfaces source-language compilers should use for compiling
209GC'd programs.</li>
210
211<li><a href="SourceLevelDebugging.html">Source Level Debugging with
212LLVM</a> - This document describes the design and philosophy behind the LLVM
213source-level debugger.</li>
214
Mikhail Glushenkovac251f22008-12-11 23:24:40 +0000215<li><a href="ExceptionHandling.html">Zero Cost Exception handling in LLVM</a>
Dan Gohmanf17a25c2007-07-18 16:29:46 +0000216- This document describes the design and implementation of exception handling
217in LLVM.</li>
218
219<li><a href="Bugpoint.html">Bugpoint</a> - automatic bug finder and test-case
220reducer description and usage information.</li>
221
Mikhail Glushenkovac251f22008-12-11 23:24:40 +0000222<li><a href="CompilerDriverTutorial.html">Compiler Driver (llvmc) Tutorial</a>
223- This document is a tutorial introduction to the usage and
224configuration of the LLVM compiler driver tool, <tt>llvmc</tt>.</li>
Dan Gohmanf17a25c2007-07-18 16:29:46 +0000225
Mikhail Glushenkovac251f22008-12-11 23:24:40 +0000226<li><a href="CompilerDriver.html">Compiler Driver (llvmc)
227Reference</a> - This document describes the design and configuration
228of <tt>llvmc</tt> in more detail.</li>
229
230<li><a href="BitCodeFormat.html">LLVM Bitcode File Format</a> - This describes
Chris Lattner6b118e12008-07-13 21:27:36 +0000231the file format and encoding used for LLVM "bc" files.</li>
Dan Gohmanf17a25c2007-07-18 16:29:46 +0000232
233<li><a href="SystemLibrary.html">System Library</a> - This document describes
234the LLVM System Library (<tt>lib/System</tt>) and how to keep LLVM source code
235portable</li>
236
237<li><a href="LinkTimeOptimization.html">Link Time Optimization</a> - This
238document describes the interface between LLVM intermodular optimizer and
239the linker and its design</li>
240
Chris Lattnerd7b7d7a2009-03-01 23:42:51 +0000241<li><a href="GoldPlugin.html">The LLVM gold plugin</a> - How to build your
242programs with link-time optimization on Linux.</li>
Reid Kleckner34531852009-09-21 02:34:59 +0000243
244<li><a href="DebuggingJITedCode.html">The GDB JIT interface</a> - How to debug
245JITed code with GDB.</li>
Dan Gohmanf17a25c2007-07-18 16:29:46 +0000246</ul>
247
248
249<!--=======================================================================-->
250<div class="doc_section"><a name="maillist">LLVM Mailing Lists</a></div>
251<!--=======================================================================-->
252
253<ul>
Duncan Sands2656aa32008-11-12 10:10:25 +0000254<li>The <a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-announce">
Mikhail Glushenkovac251f22008-12-11 23:24:40 +0000255LLVM Announcements List</a>: This is a low volume list that provides important
Dan Gohmanf17a25c2007-07-18 16:29:46 +0000256announcements regarding LLVM. It gets email about once a month.</li>
257
Duncan Sands2656aa32008-11-12 10:10:25 +0000258<li>The <a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev">Developer's
Mikhail Glushenkovac251f22008-12-11 23:24:40 +0000259List</a>: This list is for people who want to be included in technical
260discussions of LLVM. People post to this list when they have questions about
Dan Gohmanf17a25c2007-07-18 16:29:46 +0000261writing code for or using the LLVM tools. It is relatively low volume.</li>
262
Duncan Sands2656aa32008-11-12 10:10:25 +0000263<li>The <a href="http://lists.cs.uiuc.edu/pipermail/llvmbugs/">Bugs &amp;
Dan Gohmanf17a25c2007-07-18 16:29:46 +0000264Patches Archive</a>: This list gets emailed every time a bug is opened and
Mikhail Glushenkovac251f22008-12-11 23:24:40 +0000265closed, and when people submit patches to be included in LLVM. It is higher
Dan Gohmanf17a25c2007-07-18 16:29:46 +0000266volume than the LLVMdev list.</li>
267
Duncan Sands2656aa32008-11-12 10:10:25 +0000268<li>The <a href="http://lists.cs.uiuc.edu/pipermail/llvm-commits/">Commits
Mikhail Glushenkovac251f22008-12-11 23:24:40 +0000269Archive</a>: This list contains all commit messages that are made when LLVM
270developers commit code changes to the repository. It is useful for those who
Dan Gohmanf17a25c2007-07-18 16:29:46 +0000271want to stay on the bleeding edge of LLVM development. This list is very high
272volume.</li>
273
Duncan Sands2656aa32008-11-12 10:10:25 +0000274<li>The <a href="http://lists.cs.uiuc.edu/pipermail/llvm-testresults/">
Dan Gohmanf17a25c2007-07-18 16:29:46 +0000275Test Results Archive</a>: A message is automatically sent to this list by every
276active nightly tester when it completes. As such, this list gets email several
277times each day, making it a high volume list.</li>
278
279</ul>
280
281<!-- *********************************************************************** -->
282
283<hr>
284<address>
285 <a href="http://jigsaw.w3.org/css-validator/check/referer"><img
Misha Brukman947321d2008-12-11 17:34:48 +0000286 src="http://jigsaw.w3.org/css-validator/images/vcss-blue" alt="Valid CSS"></a>
Dan Gohmanf17a25c2007-07-18 16:29:46 +0000287 <a href="http://validator.w3.org/check/referer"><img
Misha Brukman947321d2008-12-11 17:34:48 +0000288 src="http://www.w3.org/Icons/valid-html401-blue" alt="Valid HTML 4.01"></a>
Dan Gohmanf17a25c2007-07-18 16:29:46 +0000289
290 <a href="http://llvm.org">LLVM Compiler Infrastructure</a><br>
291 Last modified: $Date$
292</address>
293</body></html>
Chris Lattner38bd5dd2007-09-21 17:30:40 +0000294