blob: b28993edbe0faf54f0057b1a988f9da64ebe8700 [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>
Chris Lattner52fa42d2004-07-09 05:05:39 +00005 <title>Documentation for the LLVM System</title>
Misha Brukmanb69715e2004-05-12 18:00:48 +00006 <link rel="stylesheet" href="llvm.css" type="text/css">
Misha Brukman1e07e0c2004-04-06 04:22:43 +00007</head>
John Criswell0f6d7c02003-10-27 18:18:16 +00008<body>
9
Chris Lattner52fa42d2004-07-09 05:05:39 +000010<div class="doc_title">Documentation for the LLVM System</div>
John Criswell0f6d7c02003-10-27 18:18:16 +000011
Misha Brukmanb69715e2004-05-12 18:00:48 +000012<div class="doc_text">
Chris Lattner86d9b4c2005-04-23 15:55:18 +000013<table class="layout" width="95%"><tr class="layout"><td class="left">
Misha Brukmanb69715e2004-05-12 18:00:48 +000014<ul>
Chris Lattner20423022004-08-02 21:29:20 +000015 <li><a href="#llvmdesign">LLVM Design</a></li>
John Criswella877f142006-06-20 18:21:31 +000016 <li><a href="#llvmpubs">LLVM Publications</a></li>
Chris Lattner20423022004-08-02 21:29:20 +000017 <li><a href="#userguide">LLVM User Guides</a></li>
18 <li><a href="#llvmprog">General LLVM Programming Documentation</a></li>
19 <li><a href="#subsystems">LLVM Subsystem Documentation</a></li>
Chris Lattner354a4422004-08-02 21:32:08 +000020 <li><a href="#maillist">LLVM Mailing Lists</a></li>
Misha Brukmanb69715e2004-05-12 18:00:48 +000021</ul>
Chris Lattner86d9b4c2005-04-23 15:55:18 +000022</td><td class="right">
23 <form action="http://www.google.com/search" method=get>
Reid Spencer05fe4b02006-03-14 05:39:39 +000024 <input type="hidden" name="sitesearch" value="llvm.org/docs">
Chris Lattner86d9b4c2005-04-23 15:55:18 +000025 <input type=text name=q size=25><br>
26 <input type=submit value="Search the LLVM Docs" name="submit">
Chris Lattnerf1b200b2005-04-23 17:27:36 +000027 </form>
Chris Lattner86d9b4c2005-04-23 15:55:18 +000028</td></tr></table>
Misha Brukmanb69715e2004-05-12 18:00:48 +000029</div>
John Criswell0f6d7c02003-10-27 18:18:16 +000030
Chris Lattnerddd21842004-08-02 21:33:45 +000031<div class="doc_author">
Reid Spencer05fe4b02006-03-14 05:39:39 +000032 <p>Written by <a href="http://llvm.org">The LLVM Team</a></p>
Chris Lattnerddd21842004-08-02 21:33:45 +000033</div>
34
Chris Lattner20423022004-08-02 21:29:20 +000035<!--=======================================================================-->
36<div class="doc_section"><a name="llvmdesign">LLVM Design</a></div>
37<!--=======================================================================-->
Misha Brukman1e07e0c2004-04-06 04:22:43 +000038
Misha Brukmanb69715e2004-05-12 18:00:48 +000039<ul>
Reid Spencer05fe4b02006-03-14 05:39:39 +000040<li><a href="http://llvm.org/pubs/2004-01-30-CGO-LLVM.html">LLVM: A
Misha Brukmand54fe672004-09-09 16:18:40 +000041Compilation Framework for Lifelong Program Analysis &amp; Transformation</a>: -
42Describes the LLVM instruction set and compilation strategy. This should be the
43first document you read to get an overview of LLVM.</li>
John Criswell0f6d7c02003-10-27 18:18:16 +000044
Chris Lattner20423022004-08-02 21:29:20 +000045<li><a href="LangRef.html">LLVM Reference Manual</a> - Defines the LLVM
46intermediate representation, the assembly form of the different nodes, and
47provides reference information about the different tools in LLVM.</li>
John Criswell0f6d7c02003-10-27 18:18:16 +000048
Reid Spencer50026612004-05-22 02:28:36 +000049<li><a href="BytecodeFormat.html">LLVM Bytecode File Format</a></li>
Chris Lattner20423022004-08-02 21:29:20 +000050
Misha Brukmanb69715e2004-05-12 18:00:48 +000051</ul>
Misha Brukmanb69715e2004-05-12 18:00:48 +000052
Chris Lattner20423022004-08-02 21:29:20 +000053<!--=======================================================================-->
John Criswella877f142006-06-20 18:21:31 +000054<div class="doc_section"><a name="llvmpubs">LLVM Publications</a></div>
55<!--=======================================================================-->
56
57<ul>
58<li>"<a href="2006-04-25-GelatoLLVMIntro.html">Introduction to the LLVM Compiler Infrastructure</a>"<br>Chris Lattner<br>
59 <i>2006 Itanium Conference and Expo</i>, San Jose, California, April 2006.</li>
60
61
62<li>"<a href="2004-09-22-LCPCLLVMTutorial.html">The LLVM Compiler Framework and
63Infrastructure Tutorial</a>"<br> Chris Lattner and Vikram Adve<br>
64<i>LCPC'04 Mini Workshop on Compiler Research Infrastructures</i>, West Lafayette, Indiana, Sep. 2004.</li>
65
66<li>"<a href="2004-01-30-CGO-LLVM.html">LLVM: A Compilation Framework for
67Lifelong Program Analysis &amp; Transformation</a>"<br> Chris Lattner and Vikram
68Adve<br> <i>Proc. of the 2004 International Symposium
69on Code Generation and Optimization (CGO'04)</i>, Palo Alto, California, Mar.
702004.</li>
71
72<li>"<a href="2003-10-01-LLVA.html">LLVA: A Low-level Virtual Instruction Set
73Architecture</a>"<br> Vikram Adve, Chris Lattner, Michael Brukman, Anand Shukla,
74and Brian Gaeke<br> <i>Proc. of the
7536th annual ACM/IEEE international symposium on Microarchitecture
76(MICRO-36)</i>, San Diego, CA, December 2003.</li>
77
78<li>"<a href="2003-05-01-GCCSummit2003.html">Architecture For a Next-Generation
79GCC</a>"<br> Chris Lattner &amp; Vikram Adve<br> <i>First Annual GCC Developers'
80Summit</i>, Ottawa, Canada, May 2003.<br> </li>
81
82<li>"<a href="2002-12-LattnerMSThesis.html">LLVM: An Infrastructure for
83Multi-Stage Optimization</a>"<br> Chris Lattner<br> <i>Masters Thesis</i>,
84Computer Science Dept., University of Illinois at Urbana-Champaign,
85Dec. 2002</li>
86</ul>
87
88<!--=======================================================================-->
Chris Lattner20423022004-08-02 21:29:20 +000089<div class="doc_section"><a name="userguide">LLVM User Guides</a></div>
90<!--=======================================================================-->
Misha Brukmanb69715e2004-05-12 18:00:48 +000091
Misha Brukmanb69715e2004-05-12 18:00:48 +000092<ul>
Chris Lattner20423022004-08-02 21:29:20 +000093<li><a href="GettingStarted.html">The LLVM Getting Started Guide</a> -
94Discusses how to get up and running quickly with the LLVM infrastructure.
95Everything from unpacking and compilation of the distribution to execution of
96some tools.</li>
97
Jeff Cohenb9a47d12005-02-01 15:59:28 +000098<li><a href="GettingStartedVS.html">Getting Started with the LLVM System using
99Microsoft Visual Studio</a> - An addendum to the main Getting Started guide for
100those using Visual Studio on Windows.</li>
101
John Criswella6536562004-08-16 15:19:02 +0000102<li><a href="CommandGuide/index.html">LLVM Command Guide</a> - A reference
Reid Spencer31f841b2004-11-01 21:57:35 +0000103manual for the LLVM command line utilities ("man" pages for LLVM tools).<br/>
104Current tools:
Reid Spencer0aa18992004-11-11 09:30:00 +0000105 <a href="CommandGuide/html/llvm-ar.html">llvm-ar</a>,
John Criswell9e2485c2004-12-10 15:51:16 +0000106 <a href="CommandGuide/html/llvm-ranlib.html">llvm-ranlib</a>,
Reid Spencer31f841b2004-11-01 21:57:35 +0000107 <a href="CommandGuide/html/llvm-as.html">llvm-as</a>,
108 <a href="CommandGuide/html/llvm-dis.html">llvm-dis</a>,
109 <a href="CommandGuide/html/opt.html">opt</a>,
110 <a href="CommandGuide/html/llc.html">llc</a>,
111 <a href="CommandGuide/html/lli.html">lli</a>,
112 <a href="CommandGuide/html/llvm-link.html">llvm-link</a>,
113 <a href="CommandGuide/html/analyze.html">analyze</a>,
114 <a href="CommandGuide/html/llvm-nm.html">llvm-nm</a>,
115 <a href="CommandGuide/html/llvm-prof.html">llvm-prof</a>,
116 <a href="CommandGuide/html/llvmgcc.html">llvmgcc</a>,
117 <a href="CommandGuide/html/llvmgxx.html">llvmgxx</a>,
118 <a href="CommandGuide/html/gccas.html">gccas</a>,
119 <a href="CommandGuide/html/gccld.html">gccld</a>,
120 <a href="CommandGuide/html/stkrc.html">stkrc</a>,
121 <a href="CommandGuide/html/bugpoint.html">bugpoint</a>,
Misha Brukman4e8458d2005-04-24 17:46:58 +0000122 <a href="CommandGuide/html/llvm-extract.html">llvm-extract</a>,
Reid Spencer31f841b2004-11-01 21:57:35 +0000123 <a href="CommandGuide/html/llvm-bcanalyzer.html">llvm-bcanalyzer</a>,
124 <a href="CommandGuide/html/llvmc.html">llvmc</a>
125</li>
Chris Lattner20423022004-08-02 21:29:20 +0000126
Chris Lattner354a4422004-08-02 21:32:08 +0000127<li><a href="FAQ.html">Frequently Asked Questions</a> - A list of common
128questions and problems and their solutions.</li>
129
Chris Lattner20423022004-08-02 21:29:20 +0000130<li><a href="ReleaseNotes.html">Release notes for the current release</a>
131- This describes new features, known bugs, and other limitations.</li>
132
133<li><a href="HowToSubmitABug.html">How to Submit A Bug Report</a> -
134Instructions for properly submitting information about any bugs you run into in
135the LLVM system.</li>
136
137<li><a href="TestingGuide.html">LLVM Test Suite Guide</a> - A reference
138manual for using the LLVM test suite.</li>
139
140<li><a href="CFEBuildInstrs.html">How to build the C/C++ front-end</a> -
141Instructions for building the front-end from source.</li>
Chris Lattner354a4422004-08-02 21:32:08 +0000142
Chris Lattnerd404d7f2004-09-19 23:15:47 +0000143<li><a href="Lexicon.html">The LLVM Lexicon</a> - Definition of acronyms, terms
144and concepts used in LLVM.</li>
145
Chris Lattner17d3efc2004-08-02 21:37:11 +0000146<li><a name="irc">You can probably find help on the unofficial LLVM IRC
147channel</a>. We often are on irc.oftc.net in the #llvm channel. If you are
Misha Brukman0b9370f2004-09-06 20:58:44 +0000148using the mozilla browser, and have chatzilla installed, you can <a
149href="irc://irc.oftc.net/llvm">join #llvm on irc.oftc.net</a> directly.</li>
Chris Lattner354a4422004-08-02 21:32:08 +0000150
Misha Brukmanb69715e2004-05-12 18:00:48 +0000151</ul>
Misha Brukmanb69715e2004-05-12 18:00:48 +0000152
Misha Brukmanb69715e2004-05-12 18:00:48 +0000153
Chris Lattner20423022004-08-02 21:29:20 +0000154<!--=======================================================================-->
155<div class="doc_section"><a name="llvmprog">General LLVM Programming Documentation</a></div>
156<!--=======================================================================-->
Misha Brukmanb69715e2004-05-12 18:00:48 +0000157
Chris Lattner20423022004-08-02 21:29:20 +0000158<ul>
159<li><a href="ProgrammersManual.html">The LLVM Programmers Manual</a> -
160Introduction to the general layout of the LLVM sourcebase, important classes
161and APIs, and some tips &amp; tricks.</li>
John Criswell0f6d7c02003-10-27 18:18:16 +0000162
Chris Lattner20423022004-08-02 21:29:20 +0000163<li><a href="Projects.html">LLVM Project Guide</a> - How-to guide and
164templates for new projects that <em>use</em> the LLVM infrastructure. The
165templates (directory organization, Makefiles, and test tree) allow the project
166code to be located outside (or inside) the <tt>llvm/</tt> tree, while using LLVM
167header files and libraries.</li>
John Criswell0f6d7c02003-10-27 18:18:16 +0000168
Chris Lattner4c871b52004-10-25 19:39:46 +0000169<li><a href="MakefileGuide.html">LLVM Makefile Guide</a> - Describes how the
170LLVM makefiles work and how to use them.</li>
171
Chris Lattner20423022004-08-02 21:29:20 +0000172<li><a href="CommandLine.html">CommandLine library Reference Manual</a> -
173Provides information on using the command line parsing library.</li>
John Criswell0f6d7c02003-10-27 18:18:16 +0000174
Chris Lattner4c871b52004-10-25 19:39:46 +0000175<li><a href="CodingStandards.html">LLVM Coding standards</a> -
Chris Lattner20423022004-08-02 21:29:20 +0000176Details the LLVM coding standards and provides useful information on writing
177efficient C++ code.</li>
Misha Brukmanb69715e2004-05-12 18:00:48 +0000178
Chris Lattner20423022004-08-02 21:29:20 +0000179<li><a href="ExtendingLLVM.html">Extending LLVM</a> - Look here to see how
180to add instructions and intrinsics to LLVM.</li>
Misha Brukmanb69715e2004-05-12 18:00:48 +0000181
Reid Spencer0a727fc2004-10-31 23:02:38 +0000182<li><a href="UsingLibraries.html">Using LLVM Libraries</a> - Look here to
183understand how to use the libraries produced when LLVM is compiled.</li>
184
Reid Spencer7df8e262006-03-23 06:53:38 +0000185<li><a href="HowToReleaseLLVM.html">How To Release LLVM To The Public</a> - This
186is a guide to preparing LLVM releases. Most developers can ignore it.</li>
187
Reid Spencer05fe4b02006-03-14 05:39:39 +0000188<li><a href="http://llvm.org/doxygen/">Doxygen generated
Misha Brukmane539a2b2004-12-03 23:26:23 +0000189documentation</a> (<a
Reid Spencer05fe4b02006-03-14 05:39:39 +0000190href="http://llvm.org/doxygen/inherits.html">classes</a>)
Chris Lattnere2667312005-11-30 06:35:34 +0000191
Reid Spencer05fe4b02006-03-14 05:39:39 +0000192(<a href="http://llvm.org/doxygen/doxygen.tar.gz">tarball</a>)
Chris Lattnere2667312005-11-30 06:35:34 +0000193</li>
Misha Brukmanb69715e2004-05-12 18:00:48 +0000194
Reid Spencer05fe4b02006-03-14 05:39:39 +0000195<li><a href="http://llvm.org/cvsweb/cvsweb.cgi/llvm">CVSWeb CVS Tree
Chris Lattner20423022004-08-02 21:29:20 +0000196Browser</a></li>
John Criswell0f6d7c02003-10-27 18:18:16 +0000197
Chris Lattner20423022004-08-02 21:29:20 +0000198</ul>
199
200<!--=======================================================================-->
201<div class="doc_section"><a name="subsystems">LLVM Subsystem Documentation</a></div>
202<!--=======================================================================-->
203
204<ul>
205
206<li><a href="WritingAnLLVMPass.html">Writing an LLVM Pass</a> - Information
207on how to write LLVM transformations and analyses.</li>
208
Misha Brukman96bba382004-09-06 23:00:01 +0000209<li><a href="WritingAnLLVMBackend.html">Writing an LLVM Backend</a> - Information
210on how to write LLVM backends for machine targets.</li>
211
Chris Lattner20423022004-08-02 21:29:20 +0000212<li><a href="CodeGenerator.html">The LLVM Target-Independent Code
213Generator</a> - The design and implementation of the LLVM code generator.
214Useful if you are working on retargetting LLVM to a new architecture, designing
215a new codegen pass, or enhancing existing components.</li>
216
217<li><a href="TableGenFundamentals.html">TableGen Fundamentals</a> -
218Describes the TableGen tool, which is used heavily by the LLVM code
219generator.</li>
220
221<li><a href="AliasAnalysis.html">Alias Analysis in LLVM</a> - Information
222on how to write a new alias analysis implementation or how to use existing
223analyses.</li>
224
John Criswell98d06362004-11-21 14:58:12 +0000225<li><a href="Stacker.html">The Stacker Chronicles</a> - This document
Chris Lattner20423022004-08-02 21:29:20 +0000226describes both the Stacker language and LLVM frontend, but also some details
227about LLVM useful for those writing front-ends.</li>
228
229<li><a href="GarbageCollection.html">Accurate Garbage Collection with
230LLVM</a> - The interfaces source-language compilers should use for compiling
231GC'd programs.</li>
232
233<li><a href="SourceLevelDebugging.html">Source Level Debugging with
234LLVM</a> - This document describes the design and philosophy behind the LLVM
235source-level debugger.</li>
236
Misha Brukman9e3bdf12005-01-07 17:00:44 +0000237<li><a href="Bugpoint.html">Bugpoint</a> - automatic bug finder and test-case
Misha Brukman3df00a02004-12-09 20:26:53 +0000238reducer description and usage information.</li>
Chris Lattner20423022004-08-02 21:29:20 +0000239
Reid Spencer2d1e01c2004-08-17 08:01:57 +0000240<li><a href="CompilerDriver.html">Compiler Driver (llvmc)</a> - This document
241describes the design and configuration of the LLVM compiler driver tool,
242<tt>llvmc</tt>.</li>
243
Reid Spencer8853b132005-01-05 19:01:20 +0000244<li><a href="SystemLibrary.html">System Library</a> - This document describes
245the LLVM System Library (<tt>lib/System</tt>) and how to keep LLVM source code
246portable</li>
247
Chris Lattner20423022004-08-02 21:29:20 +0000248</ul>
249
Reid Spencer7df8e262006-03-23 06:53:38 +0000250
Chris Lattner20423022004-08-02 21:29:20 +0000251<!--=======================================================================-->
Chris Lattner354a4422004-08-02 21:32:08 +0000252<div class="doc_section"><a name="maillist">LLVM Mailing Lists</a></div>
Chris Lattner20423022004-08-02 21:29:20 +0000253<!--=======================================================================-->
254
255<ul>
256<li>The <a href="http://mail.cs.uiuc.edu/mailman/listinfo/llvm-announce">
257LLVM Announcements List</a>: This is a low volume list that provides important
258announcements regarding LLVM. It gets email about once a month.</li>
259
260<li>The <a href="http://mail.cs.uiuc.edu/mailman/listinfo/llvmdev">Developer's
261List</a>: This list is for people who want to be included in technical
262discussions of LLVM. People post to this list when they have questions about
263writing code for or using the LLVM tools. It is relatively low volume.</li>
264
265<li>The <a href="http://mail.cs.uiuc.edu/pipermail/llvmbugs/">Bugs &amp;
266Patches Archive</a>: This list gets emailed every time a bug is opened and
267closed, and when people submit patches to be included in LLVM. It is higher
268volume than the LLVMdev list.</li>
269
270<li>The <a href="http://mail.cs.uiuc.edu/pipermail/llvm-commits/">CVS Commits
271Archive</a>: This list contains all commit messages that are made when LLVM
272developers commit code changes to the CVS archive. It is useful for those who
273want to stay on the bleeding edge of LLVM development. This list is very high
274volume.</li>
275
Chris Lattner1914bf12006-02-23 16:14:22 +0000276<li>The <a href="http://mail.cs.uiuc.edu/pipermail/llvm-testresults/">
Chris Lattner77186582006-02-23 16:18:29 +0000277Test Results Archive</a>: A message is automatically sent to this list by every
Chris Lattner1914bf12006-02-23 16:14:22 +0000278active nightly tester when it completes. As such, this list gets email several
279times each day, making it a high volume list.</li>
280
Chris Lattner20423022004-08-02 21:29:20 +0000281</ul>
John Criswell0f6d7c02003-10-27 18:18:16 +0000282
Misha Brukmanb69715e2004-05-12 18:00:48 +0000283<!-- *********************************************************************** -->
John Criswell0f6d7c02003-10-27 18:18:16 +0000284
285<hr>
Misha Brukmanb69715e2004-05-12 18:00:48 +0000286<address>
287 <a href="http://jigsaw.w3.org/css-validator/check/referer"><img
288 src="http://jigsaw.w3.org/css-validator/images/vcss" alt="Valid CSS!"></a>
289 <a href="http://validator.w3.org/check/referer"><img
290 src="http://www.w3.org/Icons/valid-html401" alt="Valid HTML 4.01!"></a>
John Criswell0f6d7c02003-10-27 18:18:16 +0000291
Reid Spencer05fe4b02006-03-14 05:39:39 +0000292 <a href="http://llvm.org">LLVM Compiler Infrastructure</a><br>
Misha Brukmanb69715e2004-05-12 18:00:48 +0000293 Last modified: $Date$
294</address>
Misha Brukman1e07e0c2004-04-06 04:22:43 +0000295