blob: 4cb27106711cffd419bda1dbbc1188bfd814678d [file] [log] [blame]
Misha Brukmanb69715e2004-05-12 18:00:48 +00001<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
2 "http://www.w3.org/TR/html4/strict.dtd">
John Criswell0f6d7c02003-10-27 18:18:16 +00003<html>
Misha Brukman1e07e0c2004-04-06 04:22:43 +00004<head>
NAKAMURA Takumi5c6e4df2011-10-31 11:21:59 +00005 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
Jeffrey Yasskin6351d6b2010-02-03 18:49:55 +00006 <title>Documentation for the LLVM System at SVN head</title>
Misha Brukmanb69715e2004-05-12 18:00:48 +00007 <link rel="stylesheet" href="llvm.css" type="text/css">
Misha Brukman1e07e0c2004-04-06 04:22:43 +00008</head>
John Criswell0f6d7c02003-10-27 18:18:16 +00009<body>
10
NAKAMURA Takumi05d02652011-04-18 23:59:50 +000011<h1>Documentation for the LLVM System at SVN head</h1>
Jeffrey Yasskin6cfb8a12010-02-03 18:23:23 +000012
Jeffrey Yasskin6351d6b2010-02-03 18:49:55 +000013<p class="doc_warning">If you are using a released version of LLVM,
14see <a href="http://llvm.org/releases/">the download page</a> to find
15your documentation.</p>
John Criswell0f6d7c02003-10-27 18:18:16 +000016
Chris Lattner86d9b4c2005-04-23 15:55:18 +000017<table class="layout" width="95%"><tr class="layout"><td class="left">
Misha Brukmanb69715e2004-05-12 18:00:48 +000018<ul>
Chris Lattner20423022004-08-02 21:29:20 +000019 <li><a href="#llvmdesign">LLVM Design</a></li>
Reid Spencer20fdab62006-09-17 23:05:15 +000020 <li><a href="/pubs/">LLVM Publications</a></li>
Chris Lattner20423022004-08-02 21:29:20 +000021 <li><a href="#userguide">LLVM User Guides</a></li>
Daniel Dunbar30288272011-11-02 15:56:58 +000022 <li><a href="#llvmprog">LLVM Programming Documentation</a></li>
Chris Lattner20423022004-08-02 21:29:20 +000023 <li><a href="#subsystems">LLVM Subsystem Documentation</a></li>
Daniel Dunbar30288272011-11-02 15:56:58 +000024 <li><a href="#develprocess">LLVM Programming Documentation</a></li>
Chris Lattner354a4422004-08-02 21:32:08 +000025 <li><a href="#maillist">LLVM Mailing Lists</a></li>
Misha Brukmanb69715e2004-05-12 18:00:48 +000026</ul>
Chris Lattner86d9b4c2005-04-23 15:55:18 +000027</td><td class="right">
28 <form action="http://www.google.com/search" method=get>
Misha Brukman430245f2008-12-11 18:14:06 +000029 <p>
Reid Spencer05fe4b02006-03-14 05:39:39 +000030 <input type="hidden" name="sitesearch" value="llvm.org/docs">
Chris Lattner86d9b4c2005-04-23 15:55:18 +000031 <input type=text name=q size=25><br>
32 <input type=submit value="Search the LLVM Docs" name="submit">
Misha Brukman430245f2008-12-11 18:14:06 +000033 </p>
Chris Lattnerf1b200b2005-04-23 17:27:36 +000034 </form>
Chris Lattner86d9b4c2005-04-23 15:55:18 +000035</td></tr></table>
John Criswell0f6d7c02003-10-27 18:18:16 +000036
Mikhail Glushenkov68319f82008-12-11 23:24:40 +000037<div class="doc_author">
NAKAMURA Takumib9a33632011-04-09 02:13:37 +000038 <p>Written by <a href="http://llvm.org/">The LLVM Team</a></p>
Chris Lattnerddd21842004-08-02 21:33:45 +000039</div>
40
Chris Lattner20423022004-08-02 21:29:20 +000041<!--=======================================================================-->
NAKAMURA Takumi05d02652011-04-18 23:59:50 +000042<h2><a name="llvmdesign">LLVM Design &amp; Overview</a></h2>
Chris Lattner20423022004-08-02 21:29:20 +000043<!--=======================================================================-->
Misha Brukman1e07e0c2004-04-06 04:22:43 +000044
Misha Brukmanb69715e2004-05-12 18:00:48 +000045<ul>
Chris Lattner4a463a32006-06-20 20:54:47 +000046<li><a href="LangRef.html">LLVM Language Reference Manual</a> - Defines the LLVM
47intermediate representation.</li>
Chris Lattner78e78b52011-05-30 03:36:58 +000048<li><a href="http://llvm.org/pubs/2008-10-04-ACAT-LLVM-Intro.html">Introduction to the LLVM Compiler </a> - Presentation providing a users introduction to LLVM.</li>
49<li><a href="http://www.aosabook.org/en/llvm.html">Intro to LLVM</a> - book chapter providing a compiler hacker's introduction to LLVM.</li>
Chris Lattnerfded8a22006-06-20 20:56:03 +000050<li><a href="http://llvm.org/pubs/2004-01-30-CGO-LLVM.html">LLVM: A Compilation Framework for
51Lifelong Program Analysis &amp; Transformation</a> - Design overview.</li>
52<li><a href="http://llvm.org/pubs/2002-12-LattnerMSThesis.html">LLVM: An Infrastructure for
Chris Lattnerf21f85a2009-07-29 06:19:14 +000053Multi-Stage Optimization</a> - More details (quite old now).</li>
Reid Spencer7cbe67d2006-11-13 08:03:59 +000054<li><a href="GetElementPtr.html">GetElementPtr FAQ</a> - Answers to some very
55frequent questions about LLVM's most frequently misunderstood instruction.</li>
John Criswella877f142006-06-20 18:21:31 +000056</ul>
57
58<!--=======================================================================-->
NAKAMURA Takumi05d02652011-04-18 23:59:50 +000059<h2><a name="userguide">LLVM User Guides</a></h2>
Chris Lattner20423022004-08-02 21:29:20 +000060<!--=======================================================================-->
Misha Brukmanb69715e2004-05-12 18:00:48 +000061
Misha Brukmanb69715e2004-05-12 18:00:48 +000062<ul>
Chris Lattner20423022004-08-02 21:29:20 +000063<li><a href="GettingStarted.html">The LLVM Getting Started Guide</a> -
64Discusses how to get up and running quickly with the LLVM infrastructure.
65Everything from unpacking and compilation of the distribution to execution of
66some tools.</li>
67
Duncan Sands32ee5c22011-10-11 16:35:07 +000068<li><a href="CMake.html">LLVM CMake guide</a> - An addendum to the main Getting
69Started guide for those using the <a href="http://www.cmake.org/">CMake build
70system</a>.
71</li>
72
Jeff Cohenb9a47d12005-02-01 15:59:28 +000073<li><a href="GettingStartedVS.html">Getting Started with the LLVM System using
74Microsoft Visual Studio</a> - An addendum to the main Getting Started guide for
75those using Visual Studio on Windows.</li>
76
mike-me2c3a492010-05-07 00:28:04 +000077<li><a href="tutorial/">LLVM Tutorial</a> - A walk through the process of using
Nick Lewyckycf326da2007-11-09 05:45:51 +000078LLVM for a custom language, and the facilities LLVM offers in tutorial form.</li>
Reid Spencer26cf0662007-02-13 09:08:27 +000079<li><a href="DeveloperPolicy.html">Developer Policy</a> - The LLVM project's
80policy towards developers and their contributions.</li>
81
NAKAMURA Takumi31c18062011-04-09 02:13:48 +000082<li><a href="CommandGuide/index.html">LLVM Command Guide</a> - A reference
Misha Brukman430245f2008-12-11 18:14:06 +000083manual for the LLVM command line utilities ("man" pages for LLVM tools).<br>
Reid Spencer31f841b2004-11-01 21:57:35 +000084Current tools:
mike-me2c3a492010-05-07 00:28:04 +000085 <a href="/cmds/llvm-ar.html">llvm-ar</a>,
86 <a href="/cmds/llvm-as.html">llvm-as</a>,
87 <a href="/cmds/llvm-dis.html">llvm-dis</a>,
88 <a href="/cmds/llvm-extract.html">llvm-extract</a>,
89 <a href="/cmds/llvm-ld.html">llvm-ld</a>,
90 <a href="/cmds/llvm-link.html">llvm-link</a>,
91 <a href="/cmds/llvm-nm.html">llvm-nm</a>,
92 <a href="/cmds/llvm-prof.html">llvm-prof</a>,
93 <a href="/cmds/llvm-ranlib.html">llvm-ranlib</a>,
94 <a href="/cmds/opt.html">opt</a>,
95 <a href="/cmds/llc.html">llc</a>,
96 <a href="/cmds/lli.html">lli</a>,
mike-me2c3a492010-05-07 00:28:04 +000097 <a href="/cmds/llvmgcc.html">llvm-gcc</a>,
98 <a href="/cmds/llvmgxx.html">llvm-g++</a>,
99 <a href="/cmds/bugpoint.html">bugpoint</a>,
100 <a href="/cmds/llvm-bcanalyzer.html">llvm-bcanalyzer</a>,
Reid Spencer31f841b2004-11-01 21:57:35 +0000101</li>
Chris Lattner20423022004-08-02 21:29:20 +0000102
Tanya Lattner20b7bda2008-03-24 18:29:32 +0000103<li><a href="Passes.html">LLVM's Analysis and Transform Passes</a> - A list of
104optimizations and analyses implemented in LLVM.</li>
105
Chris Lattner354a4422004-08-02 21:32:08 +0000106<li><a href="FAQ.html">Frequently Asked Questions</a> - A list of common
107questions and problems and their solutions.</li>
108
Mikhail Glushenkov68319f82008-12-11 23:24:40 +0000109<li><a href="ReleaseNotes.html">Release notes for the current release</a>
Chris Lattner20423022004-08-02 21:29:20 +0000110- This describes new features, known bugs, and other limitations.</li>
111
112<li><a href="HowToSubmitABug.html">How to Submit A Bug Report</a> -
113Instructions for properly submitting information about any bugs you run into in
114the LLVM system.</li>
115
Matthijs Kooijman9d3edca2008-07-02 13:54:58 +0000116<li><a href="TestingGuide.html">LLVM Testing Infrastructure Guide</a> - A reference
117manual for using the LLVM testing infrastructure.</li>
Chris Lattner20423022004-08-02 21:29:20 +0000118
Duncan Sands0cfe0522008-12-10 10:50:58 +0000119<li><a href="GCCFEBuildInstrs.html">How to build the Ada/C/C++/Fortran front-ends</a> -
120Instructions for building gcc front-ends from source.</li>
Chris Lattner354a4422004-08-02 21:32:08 +0000121
Jeffrey Yasskin0c0f4b62010-02-26 00:54:42 +0000122<li><a href="Packaging.html">Packaging guide</a> - Advice on packaging
123LLVM into a distribution.</li>
124
Chris Lattnerd404d7f2004-09-19 23:15:47 +0000125<li><a href="Lexicon.html">The LLVM Lexicon</a> - Definition of acronyms, terms
126and concepts used in LLVM.</li>
127
Mikhail Glushenkov68319f82008-12-11 23:24:40 +0000128<li><a name="irc">You can probably find help on the unofficial LLVM IRC
129channel</a>. We often are on irc.oftc.net in the #llvm channel. If you are
130using the mozilla browser, and have chatzilla installed, you can <a
Misha Brukman0b9370f2004-09-06 20:58:44 +0000131href="irc://irc.oftc.net/llvm">join #llvm on irc.oftc.net</a> directly.</li>
Chris Lattner354a4422004-08-02 21:32:08 +0000132
Galina Kistanovaea0a8c92011-10-31 21:13:06 +0000133<li><a href="HowToAddABuilder.html">How To Add Your Build Configuration
134To LLVM Buildbot Infrastructure</a> - Instructions for adding new builder to
135LLVM buildbot master.</li>
136
Misha Brukmanb69715e2004-05-12 18:00:48 +0000137</ul>
Misha Brukmanb69715e2004-05-12 18:00:48 +0000138
Misha Brukmanb69715e2004-05-12 18:00:48 +0000139
Chris Lattner20423022004-08-02 21:29:20 +0000140<!--=======================================================================-->
Daniel Dunbar30288272011-11-02 15:56:58 +0000141<h2><a name="llvmprog">LLVM Programming Documentation</a></h2>
Chris Lattner20423022004-08-02 21:29:20 +0000142<!--=======================================================================-->
Misha Brukmanb69715e2004-05-12 18:00:48 +0000143
Chris Lattner20423022004-08-02 21:29:20 +0000144<ul>
Chris Lattner4a463a32006-06-20 20:54:47 +0000145<li><a href="LangRef.html">LLVM Language Reference Manual</a> - Defines the LLVM
146intermediate representation and the assembly form of the different nodes.</li>
147
Chris Lattner20423022004-08-02 21:29:20 +0000148<li><a href="ProgrammersManual.html">The LLVM Programmers Manual</a> -
149Introduction to the general layout of the LLVM sourcebase, important classes
150and APIs, and some tips &amp; tricks.</li>
John Criswell0f6d7c02003-10-27 18:18:16 +0000151
Chris Lattner20423022004-08-02 21:29:20 +0000152<li><a href="CommandLine.html">CommandLine library Reference Manual</a> -
153Provides information on using the command line parsing library.</li>
John Criswell0f6d7c02003-10-27 18:18:16 +0000154
Chris Lattner4c871b52004-10-25 19:39:46 +0000155<li><a href="CodingStandards.html">LLVM Coding standards</a> -
Chris Lattner20423022004-08-02 21:29:20 +0000156Details the LLVM coding standards and provides useful information on writing
157efficient C++ code.</li>
Misha Brukmanb69715e2004-05-12 18:00:48 +0000158
Mikhail Glushenkov68319f82008-12-11 23:24:40 +0000159<li><a href="ExtendingLLVM.html">Extending LLVM</a> - Look here to see how
Chris Lattner20423022004-08-02 21:29:20 +0000160to add instructions and intrinsics to LLVM.</li>
Misha Brukmanb69715e2004-05-12 18:00:48 +0000161
Mikhail Glushenkov68319f82008-12-11 23:24:40 +0000162<li><a href="http://llvm.org/doxygen/">Doxygen generated
Misha Brukmane539a2b2004-12-03 23:26:23 +0000163documentation</a> (<a
Reid Spencer05fe4b02006-03-14 05:39:39 +0000164href="http://llvm.org/doxygen/inherits.html">classes</a>)
Chris Lattnere2667312005-11-30 06:35:34 +0000165
Reid Spencer05fe4b02006-03-14 05:39:39 +0000166(<a href="http://llvm.org/doxygen/doxygen.tar.gz">tarball</a>)
Chris Lattnere2667312005-11-30 06:35:34 +0000167</li>
Misha Brukmanb69715e2004-05-12 18:00:48 +0000168
Reid Spencer669ed452007-07-09 08:04:31 +0000169<li><a href="http://llvm.org/viewvc/">ViewVC Repository Browser</a></li>
John Criswell0f6d7c02003-10-27 18:18:16 +0000170
Chris Lattner20423022004-08-02 21:29:20 +0000171</ul>
172
173<!--=======================================================================-->
NAKAMURA Takumi05d02652011-04-18 23:59:50 +0000174<h2><a name="subsystems">LLVM Subsystem Documentation</a></h2>
Chris Lattner20423022004-08-02 21:29:20 +0000175<!--=======================================================================-->
176
177<ul>
178
179<li><a href="WritingAnLLVMPass.html">Writing an LLVM Pass</a> - Information
180on how to write LLVM transformations and analyses.</li>
181
Misha Brukman96bba382004-09-06 23:00:01 +0000182<li><a href="WritingAnLLVMBackend.html">Writing an LLVM Backend</a> - Information
183on how to write LLVM backends for machine targets.</li>
184
Chris Lattner20423022004-08-02 21:29:20 +0000185<li><a href="CodeGenerator.html">The LLVM Target-Independent Code
186Generator</a> - The design and implementation of the LLVM code generator.
187Useful if you are working on retargetting LLVM to a new architecture, designing
188a new codegen pass, or enhancing existing components.</li>
189
190<li><a href="TableGenFundamentals.html">TableGen Fundamentals</a> -
191Describes the TableGen tool, which is used heavily by the LLVM code
192generator.</li>
193
194<li><a href="AliasAnalysis.html">Alias Analysis in LLVM</a> - Information
195on how to write a new alias analysis implementation or how to use existing
196analyses.</li>
197
Chris Lattner20423022004-08-02 21:29:20 +0000198<li><a href="GarbageCollection.html">Accurate Garbage Collection with
199LLVM</a> - The interfaces source-language compilers should use for compiling
200GC'd programs.</li>
201
202<li><a href="SourceLevelDebugging.html">Source Level Debugging with
203LLVM</a> - This document describes the design and philosophy behind the LLVM
204source-level debugger.</li>
205
Mikhail Glushenkov68319f82008-12-11 23:24:40 +0000206<li><a href="ExceptionHandling.html">Zero Cost Exception handling in LLVM</a>
Chris Lattner92734182007-05-13 23:38:44 +0000207- This document describes the design and implementation of exception handling
208in LLVM.</li>
209
Misha Brukman9e3bdf12005-01-07 17:00:44 +0000210<li><a href="Bugpoint.html">Bugpoint</a> - automatic bug finder and test-case
Misha Brukman3df00a02004-12-09 20:26:53 +0000211reducer description and usage information.</li>
Chris Lattner20423022004-08-02 21:29:20 +0000212
Mikhail Glushenkov68319f82008-12-11 23:24:40 +0000213<li><a href="BitCodeFormat.html">LLVM Bitcode File Format</a> - This describes
Chris Lattner4f60e4d2008-07-13 21:27:36 +0000214the file format and encoding used for LLVM "bc" files.</li>
Chris Lattner4a463a32006-06-20 20:54:47 +0000215
Reid Spencer8853b132005-01-05 19:01:20 +0000216<li><a href="SystemLibrary.html">System Library</a> - This document describes
217the LLVM System Library (<tt>lib/System</tt>) and how to keep LLVM source code
218portable</li>
219
Devang Patelde4bbd92006-08-14 18:21:53 +0000220<li><a href="LinkTimeOptimization.html">Link Time Optimization</a> - This
221document describes the interface between LLVM intermodular optimizer and
222the linker and its design</li>
223
Chris Lattner932af8f2009-03-01 23:42:51 +0000224<li><a href="GoldPlugin.html">The LLVM gold plugin</a> - How to build your
225programs with link-time optimization on Linux.</li>
Reid Kleckner22884dd2009-09-21 02:34:59 +0000226
227<li><a href="DebuggingJITedCode.html">The GDB JIT interface</a> - How to debug
228JITed code with GDB.</li>
Jakub Staszak29057762011-07-06 18:31:02 +0000229
230<li><a href="BranchWeightMetadata.html">Branch Weight Metadata</a> - Provides
231information about Branch Prediction Information.</li>
232
Chris Lattner20423022004-08-02 21:29:20 +0000233</ul>
234
Daniel Dunbar30288272011-11-02 15:56:58 +0000235<!--=======================================================================-->
236<h2><a name="develprocess">LLVM Development Process Documentation</a></h2>
237<!--=======================================================================-->
238
239<ul>
240
241<li><a href="Projects.html">LLVM Project Guide</a> - How-to guide and
242templates for new projects that <em>use</em> the LLVM infrastructure. The
243templates (directory organization, Makefiles, and test tree) allow the project
244code to be located outside (or inside) the <tt>llvm/</tt> tree, while using LLVM
245header files and libraries.</li>
246
247<li><a href="MakefileGuide.html">LLVM Makefile Guide</a> - Describes how the
248LLVM makefiles work and how to use them.</li>
249
250<li><a href="HowToReleaseLLVM.html">How To Release LLVM To The Public</a> - This
251is a guide to preparing LLVM releases. Most developers can ignore it.</li>
252
253</ul>
Reid Spencer7df8e262006-03-23 06:53:38 +0000254
Chris Lattner20423022004-08-02 21:29:20 +0000255<!--=======================================================================-->
NAKAMURA Takumi05d02652011-04-18 23:59:50 +0000256<h2><a name="maillist">LLVM Mailing Lists</a></h2>
Chris Lattner20423022004-08-02 21:29:20 +0000257<!--=======================================================================-->
258
259<ul>
Duncan Sands9a365b62008-11-12 10:10:25 +0000260<li>The <a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-announce">
Mikhail Glushenkov68319f82008-12-11 23:24:40 +0000261LLVM Announcements List</a>: This is a low volume list that provides important
Chris Lattner20423022004-08-02 21:29:20 +0000262announcements regarding LLVM. It gets email about once a month.</li>
263
Duncan Sands9a365b62008-11-12 10:10:25 +0000264<li>The <a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev">Developer's
Mikhail Glushenkov68319f82008-12-11 23:24:40 +0000265List</a>: This list is for people who want to be included in technical
266discussions of LLVM. People post to this list when they have questions about
Chris Lattner20423022004-08-02 21:29:20 +0000267writing code for or using the LLVM tools. It is relatively low volume.</li>
268
Duncan Sands9a365b62008-11-12 10:10:25 +0000269<li>The <a href="http://lists.cs.uiuc.edu/pipermail/llvmbugs/">Bugs &amp;
Chris Lattner20423022004-08-02 21:29:20 +0000270Patches Archive</a>: This list gets emailed every time a bug is opened and
Mikhail Glushenkov68319f82008-12-11 23:24:40 +0000271closed, and when people submit patches to be included in LLVM. It is higher
Chris Lattner20423022004-08-02 21:29:20 +0000272volume than the LLVMdev list.</li>
273
Duncan Sands9a365b62008-11-12 10:10:25 +0000274<li>The <a href="http://lists.cs.uiuc.edu/pipermail/llvm-commits/">Commits
Mikhail Glushenkov68319f82008-12-11 23:24:40 +0000275Archive</a>: This list contains all commit messages that are made when LLVM
276developers commit code changes to the repository. It is useful for those who
Chris Lattner20423022004-08-02 21:29:20 +0000277want to stay on the bleeding edge of LLVM development. This list is very high
278volume.</li>
279
Duncan Sands9a365b62008-11-12 10:10:25 +0000280<li>The <a href="http://lists.cs.uiuc.edu/pipermail/llvm-testresults/">
Chris Lattner77186582006-02-23 16:18:29 +0000281Test Results Archive</a>: A message is automatically sent to this list by every
Chris Lattner1914bf12006-02-23 16:14:22 +0000282active nightly tester when it completes. As such, this list gets email several
283times each day, making it a high volume list.</li>
284
Chris Lattner20423022004-08-02 21:29:20 +0000285</ul>
John Criswell0f6d7c02003-10-27 18:18:16 +0000286
Misha Brukmanb69715e2004-05-12 18:00:48 +0000287<!-- *********************************************************************** -->
John Criswell0f6d7c02003-10-27 18:18:16 +0000288
289<hr>
Misha Brukmanb69715e2004-05-12 18:00:48 +0000290<address>
291 <a href="http://jigsaw.w3.org/css-validator/check/referer"><img
Misha Brukman44408702008-12-11 17:34:48 +0000292 src="http://jigsaw.w3.org/css-validator/images/vcss-blue" alt="Valid CSS"></a>
Misha Brukmanb69715e2004-05-12 18:00:48 +0000293 <a href="http://validator.w3.org/check/referer"><img
Misha Brukman44408702008-12-11 17:34:48 +0000294 src="http://www.w3.org/Icons/valid-html401-blue" alt="Valid HTML 4.01"></a>
John Criswell0f6d7c02003-10-27 18:18:16 +0000295
NAKAMURA Takumib9a33632011-04-09 02:13:37 +0000296 <a href="http://llvm.org/">LLVM Compiler Infrastructure</a><br>
Misha Brukmanb69715e2004-05-12 18:00:48 +0000297 Last modified: $Date$
298</address>
Reid Spencer6fdb2362007-07-01 17:02:22 +0000299</body></html>