blob: b28993edbe0faf54f0057b1a988f9da64ebe8700 [file] [log] [blame]
Misha Brukman8e33fed2004-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 Criswellf531f312003-10-27 18:18:16 +00003<html>
Misha Brukmanad3e28c2004-04-06 04:22:43 +00004<head>
Chris Lattner0fc190f2004-07-09 05:05:39 +00005 <title>Documentation for the LLVM System</title>
Misha Brukman8e33fed2004-05-12 18:00:48 +00006 <link rel="stylesheet" href="llvm.css" type="text/css">
Misha Brukmanad3e28c2004-04-06 04:22:43 +00007</head>
John Criswellf531f312003-10-27 18:18:16 +00008<body>
9
Chris Lattner0fc190f2004-07-09 05:05:39 +000010<div class="doc_title">Documentation for the LLVM System</div>
John Criswellf531f312003-10-27 18:18:16 +000011
Misha Brukman8e33fed2004-05-12 18:00:48 +000012<div class="doc_text">
Chris Lattnerc5ad1ca2005-04-23 15:55:18 +000013<table class="layout" width="95%"><tr class="layout"><td class="left">
Misha Brukman8e33fed2004-05-12 18:00:48 +000014<ul>
Chris Lattnerfcc76882004-08-02 21:29:20 +000015 <li><a href="#llvmdesign">LLVM Design</a></li>
John Criswellac8b8c52006-06-20 18:21:31 +000016 <li><a href="#llvmpubs">LLVM Publications</a></li>
Chris Lattnerfcc76882004-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 Lattner07414cb2004-08-02 21:32:08 +000020 <li><a href="#maillist">LLVM Mailing Lists</a></li>
Misha Brukman8e33fed2004-05-12 18:00:48 +000021</ul>
Chris Lattnerc5ad1ca2005-04-23 15:55:18 +000022</td><td class="right">
23 <form action="http://www.google.com/search" method=get>
Reid Spencerca058542006-03-14 05:39:39 +000024 <input type="hidden" name="sitesearch" value="llvm.org/docs">
Chris Lattnerc5ad1ca2005-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 Lattnerfdfb25a2005-04-23 17:27:36 +000027 </form>
Chris Lattnerc5ad1ca2005-04-23 15:55:18 +000028</td></tr></table>
Misha Brukman8e33fed2004-05-12 18:00:48 +000029</div>
John Criswellf531f312003-10-27 18:18:16 +000030
Chris Lattnere1972b12004-08-02 21:33:45 +000031<div class="doc_author">
Reid Spencerca058542006-03-14 05:39:39 +000032 <p>Written by <a href="http://llvm.org">The LLVM Team</a></p>
Chris Lattnere1972b12004-08-02 21:33:45 +000033</div>
34
Chris Lattnerfcc76882004-08-02 21:29:20 +000035<!--=======================================================================-->
36<div class="doc_section"><a name="llvmdesign">LLVM Design</a></div>
37<!--=======================================================================-->
Misha Brukmanad3e28c2004-04-06 04:22:43 +000038
Misha Brukman8e33fed2004-05-12 18:00:48 +000039<ul>
Reid Spencerca058542006-03-14 05:39:39 +000040<li><a href="http://llvm.org/pubs/2004-01-30-CGO-LLVM.html">LLVM: A
Misha Brukman6e8f8602004-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 Criswellf531f312003-10-27 18:18:16 +000044
Chris Lattnerfcc76882004-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 Criswellf531f312003-10-27 18:18:16 +000048
Reid Spencer9acd4122004-05-22 02:28:36 +000049<li><a href="BytecodeFormat.html">LLVM Bytecode File Format</a></li>
Chris Lattnerfcc76882004-08-02 21:29:20 +000050
Misha Brukman8e33fed2004-05-12 18:00:48 +000051</ul>
Misha Brukman8e33fed2004-05-12 18:00:48 +000052
Chris Lattnerfcc76882004-08-02 21:29:20 +000053<!--=======================================================================-->
John Criswellac8b8c52006-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 Lattnerfcc76882004-08-02 21:29:20 +000089<div class="doc_section"><a name="userguide">LLVM User Guides</a></div>
90<!--=======================================================================-->
Misha Brukman8e33fed2004-05-12 18:00:48 +000091
Misha Brukman8e33fed2004-05-12 18:00:48 +000092<ul>
Chris Lattnerfcc76882004-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 Cohenc04c0db2005-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 Criswell23c656d2004-08-16 15:19:02 +0000102<li><a href="CommandGuide/index.html">LLVM Command Guide</a> - A reference
Reid Spencer9df63b42004-11-01 21:57:35 +0000103manual for the LLVM command line utilities ("man" pages for LLVM tools).<br/>
104Current tools:
Reid Spencere4485002004-11-11 09:30:00 +0000105 <a href="CommandGuide/html/llvm-ar.html">llvm-ar</a>,
John Criswelldfe6a862004-12-10 15:51:16 +0000106 <a href="CommandGuide/html/llvm-ranlib.html">llvm-ranlib</a>,
Reid Spencer9df63b42004-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 Brukman6818b332005-04-24 17:46:58 +0000122 <a href="CommandGuide/html/llvm-extract.html">llvm-extract</a>,
Reid Spencer9df63b42004-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 Lattnerfcc76882004-08-02 21:29:20 +0000126
Chris Lattner07414cb2004-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 Lattnerfcc76882004-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 Lattner07414cb2004-08-02 21:32:08 +0000142
Chris Lattner85927a62004-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 Lattnerbaf2b6e2004-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 Brukmana196c682004-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 Lattner07414cb2004-08-02 21:32:08 +0000150
Misha Brukman8e33fed2004-05-12 18:00:48 +0000151</ul>
Misha Brukman8e33fed2004-05-12 18:00:48 +0000152
Misha Brukman8e33fed2004-05-12 18:00:48 +0000153
Chris Lattnerfcc76882004-08-02 21:29:20 +0000154<!--=======================================================================-->
155<div class="doc_section"><a name="llvmprog">General LLVM Programming Documentation</a></div>
156<!--=======================================================================-->
Misha Brukman8e33fed2004-05-12 18:00:48 +0000157
Chris Lattnerfcc76882004-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 Criswellf531f312003-10-27 18:18:16 +0000162
Chris Lattnerfcc76882004-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 Criswellf531f312003-10-27 18:18:16 +0000168
Chris Lattner024627b2004-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 Lattnerfcc76882004-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 Criswellf531f312003-10-27 18:18:16 +0000174
Chris Lattner024627b2004-10-25 19:39:46 +0000175<li><a href="CodingStandards.html">LLVM Coding standards</a> -
Chris Lattnerfcc76882004-08-02 21:29:20 +0000176Details the LLVM coding standards and provides useful information on writing
177efficient C++ code.</li>
Misha Brukman8e33fed2004-05-12 18:00:48 +0000178
Chris Lattnerfcc76882004-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 Brukman8e33fed2004-05-12 18:00:48 +0000181
Reid Spencer0b40fdb2004-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 Spencer7c5df342006-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 Spencerca058542006-03-14 05:39:39 +0000188<li><a href="http://llvm.org/doxygen/">Doxygen generated
Misha Brukman9976d342004-12-03 23:26:23 +0000189documentation</a> (<a
Reid Spencerca058542006-03-14 05:39:39 +0000190href="http://llvm.org/doxygen/inherits.html">classes</a>)
Chris Lattnerb2d8f042005-11-30 06:35:34 +0000191
Reid Spencerca058542006-03-14 05:39:39 +0000192(<a href="http://llvm.org/doxygen/doxygen.tar.gz">tarball</a>)
Chris Lattnerb2d8f042005-11-30 06:35:34 +0000193</li>
Misha Brukman8e33fed2004-05-12 18:00:48 +0000194
Reid Spencerca058542006-03-14 05:39:39 +0000195<li><a href="http://llvm.org/cvsweb/cvsweb.cgi/llvm">CVSWeb CVS Tree
Chris Lattnerfcc76882004-08-02 21:29:20 +0000196Browser</a></li>
John Criswellf531f312003-10-27 18:18:16 +0000197
Chris Lattnerfcc76882004-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 Brukmana0194212004-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 Lattnerfcc76882004-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 Criswell8f002b62004-11-21 14:58:12 +0000225<li><a href="Stacker.html">The Stacker Chronicles</a> - This document
Chris Lattnerfcc76882004-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 Brukmana9ade832005-01-07 17:00:44 +0000237<li><a href="Bugpoint.html">Bugpoint</a> - automatic bug finder and test-case
Misha Brukmanf4315372004-12-09 20:26:53 +0000238reducer description and usage information.</li>
Chris Lattnerfcc76882004-08-02 21:29:20 +0000239
Reid Spencercde8a13a2004-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 Spencer1d183c42005-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 Lattnerfcc76882004-08-02 21:29:20 +0000248</ul>
249
Reid Spencer7c5df342006-03-23 06:53:38 +0000250
Chris Lattnerfcc76882004-08-02 21:29:20 +0000251<!--=======================================================================-->
Chris Lattner07414cb2004-08-02 21:32:08 +0000252<div class="doc_section"><a name="maillist">LLVM Mailing Lists</a></div>
Chris Lattnerfcc76882004-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 Lattner411f0df2006-02-23 16:14:22 +0000276<li>The <a href="http://mail.cs.uiuc.edu/pipermail/llvm-testresults/">
Chris Lattner47b8bb02006-02-23 16:18:29 +0000277Test Results Archive</a>: A message is automatically sent to this list by every
Chris Lattner411f0df2006-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 Lattnerfcc76882004-08-02 21:29:20 +0000281</ul>
John Criswellf531f312003-10-27 18:18:16 +0000282
Misha Brukman8e33fed2004-05-12 18:00:48 +0000283<!-- *********************************************************************** -->
John Criswellf531f312003-10-27 18:18:16 +0000284
285<hr>
Misha Brukman8e33fed2004-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 Criswellf531f312003-10-27 18:18:16 +0000291
Reid Spencerca058542006-03-14 05:39:39 +0000292 <a href="http://llvm.org">LLVM Compiler Infrastructure</a><br>
Misha Brukman8e33fed2004-05-12 18:00:48 +0000293 Last modified: $Date$
294</address>
Misha Brukmanad3e28c2004-04-06 04:22:43 +0000295