Misha Brukman | b69715e | 2004-05-12 18:00:48 +0000 | [diff] [blame] | 1 | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" |
| 2 | "http://www.w3.org/TR/html4/strict.dtd"> |
John Criswell | 0f6d7c0 | 2003-10-27 18:18:16 +0000 | [diff] [blame] | 3 | <html> |
Misha Brukman | 1e07e0c | 2004-04-06 04:22:43 +0000 | [diff] [blame] | 4 | <head> |
Chris Lattner | 52fa42d | 2004-07-09 05:05:39 +0000 | [diff] [blame] | 5 | <title>Documentation for the LLVM System</title> |
Misha Brukman | b69715e | 2004-05-12 18:00:48 +0000 | [diff] [blame] | 6 | <link rel="stylesheet" href="llvm.css" type="text/css"> |
Misha Brukman | 1e07e0c | 2004-04-06 04:22:43 +0000 | [diff] [blame] | 7 | </head> |
John Criswell | 0f6d7c0 | 2003-10-27 18:18:16 +0000 | [diff] [blame] | 8 | <body> |
| 9 | |
Chris Lattner | 52fa42d | 2004-07-09 05:05:39 +0000 | [diff] [blame] | 10 | <div class="doc_title">Documentation for the LLVM System</div> |
John Criswell | 0f6d7c0 | 2003-10-27 18:18:16 +0000 | [diff] [blame] | 11 | |
Misha Brukman | b69715e | 2004-05-12 18:00:48 +0000 | [diff] [blame] | 12 | <div class="doc_text"> |
| 13 | <ul> |
Chris Lattner | 2042302 | 2004-08-02 21:29:20 +0000 | [diff] [blame] | 14 | <li><a href="#llvmdesign">LLVM Design</a></li> |
| 15 | <li><a href="#userguide">LLVM User Guides</a></li> |
| 16 | <li><a href="#llvmprog">General LLVM Programming Documentation</a></li> |
| 17 | <li><a href="#subsystems">LLVM Subsystem Documentation</a></li> |
Chris Lattner | 354a442 | 2004-08-02 21:32:08 +0000 | [diff] [blame] | 18 | <li><a href="#maillist">LLVM Mailing Lists</a></li> |
Misha Brukman | b69715e | 2004-05-12 18:00:48 +0000 | [diff] [blame] | 19 | </ul> |
| 20 | </div> |
John Criswell | 0f6d7c0 | 2003-10-27 18:18:16 +0000 | [diff] [blame] | 21 | |
Chris Lattner | ddd2184 | 2004-08-02 21:33:45 +0000 | [diff] [blame] | 22 | <div class="doc_author"> |
| 23 | <p>Written by <a href="http://llvm.cs.uiuc.edu">The LLVM Team</a></p> |
| 24 | </div> |
| 25 | |
Chris Lattner | 2042302 | 2004-08-02 21:29:20 +0000 | [diff] [blame] | 26 | <!--=======================================================================--> |
| 27 | <div class="doc_section"><a name="llvmdesign">LLVM Design</a></div> |
| 28 | <!--=======================================================================--> |
Misha Brukman | 1e07e0c | 2004-04-06 04:22:43 +0000 | [diff] [blame] | 29 | |
Misha Brukman | b69715e | 2004-05-12 18:00:48 +0000 | [diff] [blame] | 30 | <ul> |
Misha Brukman | d54fe67 | 2004-09-09 16:18:40 +0000 | [diff] [blame] | 31 | <li><a href="http://llvm.cs.uiuc.edu/pubs/2004-01-30-CGO-LLVM.html">LLVM: A |
| 32 | Compilation Framework for Lifelong Program Analysis & Transformation</a>: - |
| 33 | Describes the LLVM instruction set and compilation strategy. This should be the |
| 34 | first document you read to get an overview of LLVM.</li> |
John Criswell | 0f6d7c0 | 2003-10-27 18:18:16 +0000 | [diff] [blame] | 35 | |
Chris Lattner | 2042302 | 2004-08-02 21:29:20 +0000 | [diff] [blame] | 36 | <li><a href="LangRef.html">LLVM Reference Manual</a> - Defines the LLVM |
| 37 | intermediate representation, the assembly form of the different nodes, and |
| 38 | provides reference information about the different tools in LLVM.</li> |
John Criswell | 0f6d7c0 | 2003-10-27 18:18:16 +0000 | [diff] [blame] | 39 | |
Reid Spencer | 5002661 | 2004-05-22 02:28:36 +0000 | [diff] [blame] | 40 | <li><a href="BytecodeFormat.html">LLVM Bytecode File Format</a></li> |
Chris Lattner | 2042302 | 2004-08-02 21:29:20 +0000 | [diff] [blame] | 41 | |
Misha Brukman | b69715e | 2004-05-12 18:00:48 +0000 | [diff] [blame] | 42 | </ul> |
Misha Brukman | b69715e | 2004-05-12 18:00:48 +0000 | [diff] [blame] | 43 | |
Chris Lattner | 2042302 | 2004-08-02 21:29:20 +0000 | [diff] [blame] | 44 | <!--=======================================================================--> |
| 45 | <div class="doc_section"><a name="userguide">LLVM User Guides</a></div> |
| 46 | <!--=======================================================================--> |
Misha Brukman | b69715e | 2004-05-12 18:00:48 +0000 | [diff] [blame] | 47 | |
Misha Brukman | b69715e | 2004-05-12 18:00:48 +0000 | [diff] [blame] | 48 | <ul> |
Chris Lattner | 2042302 | 2004-08-02 21:29:20 +0000 | [diff] [blame] | 49 | <li><a href="GettingStarted.html">The LLVM Getting Started Guide</a> - |
| 50 | Discusses how to get up and running quickly with the LLVM infrastructure. |
| 51 | Everything from unpacking and compilation of the distribution to execution of |
| 52 | some tools.</li> |
| 53 | |
John Criswell | a653656 | 2004-08-16 15:19:02 +0000 | [diff] [blame] | 54 | <li><a href="CommandGuide/index.html">LLVM Command Guide</a> - A reference |
Reid Spencer | 31f841b | 2004-11-01 21:57:35 +0000 | [diff] [blame^] | 55 | manual for the LLVM command line utilities ("man" pages for LLVM tools).<br/> |
| 56 | Current tools: |
| 57 | <a href="CommandGuide/html/llvm-as.html">llvm-as</a>, |
| 58 | <a href="CommandGuide/html/llvm-dis.html">llvm-dis</a>, |
| 59 | <a href="CommandGuide/html/opt.html">opt</a>, |
| 60 | <a href="CommandGuide/html/llc.html">llc</a>, |
| 61 | <a href="CommandGuide/html/lli.html">lli</a>, |
| 62 | <a href="CommandGuide/html/llvm-link.html">llvm-link</a>, |
| 63 | <a href="CommandGuide/html/analyze.html">analyze</a>, |
| 64 | <a href="CommandGuide/html/llvm-nm.html">llvm-nm</a>, |
| 65 | <a href="CommandGuide/html/llvm-prof.html">llvm-prof</a>, |
| 66 | <a href="CommandGuide/html/llvmgcc.html">llvmgcc</a>, |
| 67 | <a href="CommandGuide/html/llvmgxx.html">llvmgxx</a>, |
| 68 | <a href="CommandGuide/html/gccas.html">gccas</a>, |
| 69 | <a href="CommandGuide/html/gccld.html">gccld</a>, |
| 70 | <a href="CommandGuide/html/stkrc.html">stkrc</a>, |
| 71 | <a href="CommandGuide/html/bugpoint.html">bugpoint</a>, |
| 72 | <a href="CommandGuide/html/extract.html">extract</a>, |
| 73 | <a href="CommandGuide/html/llvm-bcanalyzer.html">llvm-bcanalyzer</a>, |
| 74 | <a href="CommandGuide/html/llvmc.html">llvmc</a> |
| 75 | </li> |
Chris Lattner | 2042302 | 2004-08-02 21:29:20 +0000 | [diff] [blame] | 76 | |
Chris Lattner | 354a442 | 2004-08-02 21:32:08 +0000 | [diff] [blame] | 77 | <li><a href="FAQ.html">Frequently Asked Questions</a> - A list of common |
| 78 | questions and problems and their solutions.</li> |
| 79 | |
Chris Lattner | 2042302 | 2004-08-02 21:29:20 +0000 | [diff] [blame] | 80 | <li><a href="ReleaseNotes.html">Release notes for the current release</a> |
| 81 | - This describes new features, known bugs, and other limitations.</li> |
| 82 | |
| 83 | <li><a href="HowToSubmitABug.html">How to Submit A Bug Report</a> - |
| 84 | Instructions for properly submitting information about any bugs you run into in |
| 85 | the LLVM system.</li> |
| 86 | |
| 87 | <li><a href="TestingGuide.html">LLVM Test Suite Guide</a> - A reference |
| 88 | manual for using the LLVM test suite.</li> |
| 89 | |
| 90 | <li><a href="CFEBuildInstrs.html">How to build the C/C++ front-end</a> - |
| 91 | Instructions for building the front-end from source.</li> |
Chris Lattner | 354a442 | 2004-08-02 21:32:08 +0000 | [diff] [blame] | 92 | |
Chris Lattner | d404d7f | 2004-09-19 23:15:47 +0000 | [diff] [blame] | 93 | <li><a href="Lexicon.html">The LLVM Lexicon</a> - Definition of acronyms, terms |
| 94 | and concepts used in LLVM.</li> |
| 95 | |
Chris Lattner | 17d3efc | 2004-08-02 21:37:11 +0000 | [diff] [blame] | 96 | <li><a name="irc">You can probably find help on the unofficial LLVM IRC |
| 97 | channel</a>. We often are on irc.oftc.net in the #llvm channel. If you are |
Misha Brukman | 0b9370f | 2004-09-06 20:58:44 +0000 | [diff] [blame] | 98 | using the mozilla browser, and have chatzilla installed, you can <a |
| 99 | href="irc://irc.oftc.net/llvm">join #llvm on irc.oftc.net</a> directly.</li> |
Chris Lattner | 354a442 | 2004-08-02 21:32:08 +0000 | [diff] [blame] | 100 | |
Misha Brukman | b69715e | 2004-05-12 18:00:48 +0000 | [diff] [blame] | 101 | </ul> |
Misha Brukman | b69715e | 2004-05-12 18:00:48 +0000 | [diff] [blame] | 102 | |
Misha Brukman | b69715e | 2004-05-12 18:00:48 +0000 | [diff] [blame] | 103 | |
Chris Lattner | 2042302 | 2004-08-02 21:29:20 +0000 | [diff] [blame] | 104 | <!--=======================================================================--> |
| 105 | <div class="doc_section"><a name="llvmprog">General LLVM Programming Documentation</a></div> |
| 106 | <!--=======================================================================--> |
Misha Brukman | b69715e | 2004-05-12 18:00:48 +0000 | [diff] [blame] | 107 | |
Chris Lattner | 2042302 | 2004-08-02 21:29:20 +0000 | [diff] [blame] | 108 | <ul> |
| 109 | <li><a href="ProgrammersManual.html">The LLVM Programmers Manual</a> - |
| 110 | Introduction to the general layout of the LLVM sourcebase, important classes |
| 111 | and APIs, and some tips & tricks.</li> |
John Criswell | 0f6d7c0 | 2003-10-27 18:18:16 +0000 | [diff] [blame] | 112 | |
Chris Lattner | 2042302 | 2004-08-02 21:29:20 +0000 | [diff] [blame] | 113 | <li><a href="Projects.html">LLVM Project Guide</a> - How-to guide and |
| 114 | templates for new projects that <em>use</em> the LLVM infrastructure. The |
| 115 | templates (directory organization, Makefiles, and test tree) allow the project |
| 116 | code to be located outside (or inside) the <tt>llvm/</tt> tree, while using LLVM |
| 117 | header files and libraries.</li> |
John Criswell | 0f6d7c0 | 2003-10-27 18:18:16 +0000 | [diff] [blame] | 118 | |
Chris Lattner | 4c871b5 | 2004-10-25 19:39:46 +0000 | [diff] [blame] | 119 | <li><a href="MakefileGuide.html">LLVM Makefile Guide</a> - Describes how the |
| 120 | LLVM makefiles work and how to use them.</li> |
| 121 | |
Chris Lattner | 2042302 | 2004-08-02 21:29:20 +0000 | [diff] [blame] | 122 | <li><a href="CommandLine.html">CommandLine library Reference Manual</a> - |
| 123 | Provides information on using the command line parsing library.</li> |
John Criswell | 0f6d7c0 | 2003-10-27 18:18:16 +0000 | [diff] [blame] | 124 | |
Chris Lattner | 4c871b5 | 2004-10-25 19:39:46 +0000 | [diff] [blame] | 125 | <li><a href="CodingStandards.html">LLVM Coding standards</a> - |
Chris Lattner | 2042302 | 2004-08-02 21:29:20 +0000 | [diff] [blame] | 126 | Details the LLVM coding standards and provides useful information on writing |
| 127 | efficient C++ code.</li> |
Misha Brukman | b69715e | 2004-05-12 18:00:48 +0000 | [diff] [blame] | 128 | |
Chris Lattner | 2042302 | 2004-08-02 21:29:20 +0000 | [diff] [blame] | 129 | <li><a href="OpenProjects.html">Open Projects</a> - Look here if you are |
| 130 | interested in doing something with LLVM but aren't sure what needs to be |
| 131 | done.</li> |
Misha Brukman | b69715e | 2004-05-12 18:00:48 +0000 | [diff] [blame] | 132 | |
Chris Lattner | 2042302 | 2004-08-02 21:29:20 +0000 | [diff] [blame] | 133 | <li><a href="ExtendingLLVM.html">Extending LLVM</a> - Look here to see how |
| 134 | to add instructions and intrinsics to LLVM.</li> |
Misha Brukman | b69715e | 2004-05-12 18:00:48 +0000 | [diff] [blame] | 135 | |
Reid Spencer | 0a727fc | 2004-10-31 23:02:38 +0000 | [diff] [blame] | 136 | <li><a href="UsingLibraries.html">Using LLVM Libraries</a> - Look here to |
| 137 | understand how to use the libraries produced when LLVM is compiled.</li> |
| 138 | |
Chris Lattner | 2042302 | 2004-08-02 21:29:20 +0000 | [diff] [blame] | 139 | <li><a href="http://llvm.cs.uiuc.edu/doxygen/">Doxygen generated |
| 140 | documentation</a> (<a href="http://llvm.cs.uiuc.edu/doxygen/inherits.html"> |
| 141 | classes</a>)</li> |
Misha Brukman | b69715e | 2004-05-12 18:00:48 +0000 | [diff] [blame] | 142 | |
Chris Lattner | 2042302 | 2004-08-02 21:29:20 +0000 | [diff] [blame] | 143 | <li><a href="http://llvm.cs.uiuc.edu/cvsweb/cvsweb.cgi/llvm">CVSWeb CVS Tree |
| 144 | Browser</a></li> |
John Criswell | 0f6d7c0 | 2003-10-27 18:18:16 +0000 | [diff] [blame] | 145 | |
Chris Lattner | 2042302 | 2004-08-02 21:29:20 +0000 | [diff] [blame] | 146 | </ul> |
| 147 | |
| 148 | <!--=======================================================================--> |
| 149 | <div class="doc_section"><a name="subsystems">LLVM Subsystem Documentation</a></div> |
| 150 | <!--=======================================================================--> |
| 151 | |
| 152 | <ul> |
| 153 | |
| 154 | <li><a href="WritingAnLLVMPass.html">Writing an LLVM Pass</a> - Information |
| 155 | on how to write LLVM transformations and analyses.</li> |
| 156 | |
Misha Brukman | 96bba38 | 2004-09-06 23:00:01 +0000 | [diff] [blame] | 157 | <li><a href="WritingAnLLVMBackend.html">Writing an LLVM Backend</a> - Information |
| 158 | on how to write LLVM backends for machine targets.</li> |
| 159 | |
Chris Lattner | 2042302 | 2004-08-02 21:29:20 +0000 | [diff] [blame] | 160 | <li><a href="CodeGenerator.html">The LLVM Target-Independent Code |
| 161 | Generator</a> - The design and implementation of the LLVM code generator. |
| 162 | Useful if you are working on retargetting LLVM to a new architecture, designing |
| 163 | a new codegen pass, or enhancing existing components.</li> |
| 164 | |
| 165 | <li><a href="TableGenFundamentals.html">TableGen Fundamentals</a> - |
| 166 | Describes the TableGen tool, which is used heavily by the LLVM code |
| 167 | generator.</li> |
| 168 | |
| 169 | <li><a href="AliasAnalysis.html">Alias Analysis in LLVM</a> - Information |
| 170 | on how to write a new alias analysis implementation or how to use existing |
| 171 | analyses.</li> |
| 172 | |
| 173 | <li><a href="Stacker.html">The Stacker Cronicles</a> - This document |
| 174 | describes both the Stacker language and LLVM frontend, but also some details |
| 175 | about LLVM useful for those writing front-ends.</li> |
| 176 | |
| 177 | <li><a href="GarbageCollection.html">Accurate Garbage Collection with |
| 178 | LLVM</a> - The interfaces source-language compilers should use for compiling |
| 179 | GC'd programs.</li> |
| 180 | |
| 181 | <li><a href="SourceLevelDebugging.html">Source Level Debugging with |
| 182 | LLVM</a> - This document describes the design and philosophy behind the LLVM |
| 183 | source-level debugger.</li> |
| 184 | |
Reid Spencer | 31f841b | 2004-11-01 21:57:35 +0000 | [diff] [blame^] | 185 | <li><a href="CommandGuide/html/bugpoint.html">bugpoint</a> - automatic bug |
| 186 | finder and test-case reducer description and usage information.</li> |
Chris Lattner | 2042302 | 2004-08-02 21:29:20 +0000 | [diff] [blame] | 187 | |
Reid Spencer | 2d1e01c | 2004-08-17 08:01:57 +0000 | [diff] [blame] | 188 | <li><a href="CompilerDriver.html">Compiler Driver (llvmc)</a> - This document |
| 189 | describes the design and configuration of the LLVM compiler driver tool, |
| 190 | <tt>llvmc</tt>.</li> |
| 191 | |
Chris Lattner | 2042302 | 2004-08-02 21:29:20 +0000 | [diff] [blame] | 192 | </ul> |
| 193 | |
| 194 | <!--=======================================================================--> |
Chris Lattner | 354a442 | 2004-08-02 21:32:08 +0000 | [diff] [blame] | 195 | <div class="doc_section"><a name="maillist">LLVM Mailing Lists</a></div> |
Chris Lattner | 2042302 | 2004-08-02 21:29:20 +0000 | [diff] [blame] | 196 | <!--=======================================================================--> |
| 197 | |
| 198 | <ul> |
| 199 | <li>The <a href="http://mail.cs.uiuc.edu/mailman/listinfo/llvm-announce"> |
| 200 | LLVM Announcements List</a>: This is a low volume list that provides important |
| 201 | announcements regarding LLVM. It gets email about once a month.</li> |
| 202 | |
| 203 | <li>The <a href="http://mail.cs.uiuc.edu/mailman/listinfo/llvmdev">Developer's |
| 204 | List</a>: This list is for people who want to be included in technical |
| 205 | discussions of LLVM. People post to this list when they have questions about |
| 206 | writing code for or using the LLVM tools. It is relatively low volume.</li> |
| 207 | |
| 208 | <li>The <a href="http://mail.cs.uiuc.edu/pipermail/llvmbugs/">Bugs & |
| 209 | Patches Archive</a>: This list gets emailed every time a bug is opened and |
| 210 | closed, and when people submit patches to be included in LLVM. It is higher |
| 211 | volume than the LLVMdev list.</li> |
| 212 | |
| 213 | <li>The <a href="http://mail.cs.uiuc.edu/pipermail/llvm-commits/">CVS Commits |
| 214 | Archive</a>: This list contains all commit messages that are made when LLVM |
| 215 | developers commit code changes to the CVS archive. It is useful for those who |
| 216 | want to stay on the bleeding edge of LLVM development. This list is very high |
| 217 | volume.</li> |
| 218 | |
| 219 | </ul> |
John Criswell | 0f6d7c0 | 2003-10-27 18:18:16 +0000 | [diff] [blame] | 220 | |
Misha Brukman | b69715e | 2004-05-12 18:00:48 +0000 | [diff] [blame] | 221 | <!-- *********************************************************************** --> |
John Criswell | 0f6d7c0 | 2003-10-27 18:18:16 +0000 | [diff] [blame] | 222 | |
| 223 | <hr> |
Misha Brukman | b69715e | 2004-05-12 18:00:48 +0000 | [diff] [blame] | 224 | <address> |
| 225 | <a href="http://jigsaw.w3.org/css-validator/check/referer"><img |
| 226 | src="http://jigsaw.w3.org/css-validator/images/vcss" alt="Valid CSS!"></a> |
| 227 | <a href="http://validator.w3.org/check/referer"><img |
| 228 | src="http://www.w3.org/Icons/valid-html401" alt="Valid HTML 4.01!"></a> |
John Criswell | 0f6d7c0 | 2003-10-27 18:18:16 +0000 | [diff] [blame] | 229 | |
Misha Brukman | b69715e | 2004-05-12 18:00:48 +0000 | [diff] [blame] | 230 | <a href="http://llvm.cs.uiuc.edu">LLVM Compiler Infrastructure</a><br> |
| 231 | Last modified: $Date$ |
| 232 | </address> |
Misha Brukman | 1e07e0c | 2004-04-06 04:22:43 +0000 | [diff] [blame] | 233 | |