Try to clarify which compilers can be used for the
[oota-llvm.git] / docs / index.html
index 114dd3ae2650c0a387f60e2f33e97890c976980a..0d289478b9c347368b0831aa26e5d7a02fc715b5 100644 (file)
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+                      "http://www.w3.org/TR/html4/strict.dtd">
 <html>
-<title>
-The LLVM Compiler Infrastructure
-</title>
-
+<head>
+  <title>Documentation for the LLVM System</title>
+  <link rel="stylesheet" href="llvm.css" type="text/css">
+</head>
 <body>
 
-<center>
-<h1>
-                       The LLVM Compiler Infrastructure
-                                 <br>
-        <a href="http://llvm.cs.uiuc.edu">http://llvm.cs.uiuc.edu</a>
-</h1>
-</center>
+<div class="doc_title">Documentation for the LLVM System</div>
+
+<div class="doc_text">
+<table class="layout" width="95%"><tr class="layout"><td class="left">
+<ul>
+  <li><a href="#llvmdesign">LLVM Design</a></li>
+  <li><a href="/pubs/">LLVM Publications</a></li>
+  <li><a href="#userguide">LLVM User Guides</a></li>
+  <li><a href="#llvmprog">General LLVM Programming Documentation</a></li>
+  <li><a href="#subsystems">LLVM Subsystem Documentation</a></li>
+  <li><a href="#maillist">LLVM Mailing Lists</a></li>
+</ul>
+</td><td class="right">
+  <form action="http://www.google.com/search" method=get>
+      <input type="hidden" name="sitesearch" value="llvm.org/docs">
+      <input type=text name=q size=25><br>
+      <input type=submit value="Search the LLVM Docs" name="submit">
+  </form>
+</td></tr></table>
+</div>
+
+<div class="doc_author">    
+  <p>Written by <a href="http://llvm.org">The LLVM Team</a></p>
+</div>
+
+<!--=======================================================================-->
+<div class="doc_section"><a name="llvmdesign">LLVM Design &amp; Overview</a></div>
+<!--=======================================================================-->
+
+<ul>
+<li><a href="LangRef.html">LLVM Language Reference Manual</a> - Defines the LLVM
+intermediate representation.</li>
+<li><a href="http://llvm.org/pubs/2006-04-25-GelatoLLVMIntro.html">Introduction to the LLVM Compiler Infrastructure</a> - Presentation describing LLVM.</li>
+<li><a href="http://llvm.org/pubs/2004-09-22-LCPCLLVMTutorial.html">The LLVM Compiler Framework and
+Infrastructure Tutorial</a> - Tutorial for writing passes, exploring the system.</li>
+<li><a href="http://llvm.org/pubs/2004-01-30-CGO-LLVM.html">LLVM: A Compilation Framework for
+Lifelong Program Analysis &amp; Transformation</a> - Design overview.</li>
+<li><a href="http://llvm.org/pubs/2002-12-LattnerMSThesis.html">LLVM: An Infrastructure for
+Multi-Stage Optimization</a> - More details (somewhat old now).</li>
+<li><a href="GetElementPtr.html">GetElementPtr FAQ</a> - Answers to some very
+frequent questions about LLVM's most frequently misunderstood instruction.</li>
+</ul>
+
+<!--=======================================================================-->
+<div class="doc_section"><a name="userguide">LLVM User Guides</a></div>
+<!--=======================================================================-->
+
+<ul>
+<li><a href="GettingStarted.html">The LLVM Getting Started Guide</a> -
+Discusses how to get up and running quickly with the LLVM infrastructure.
+Everything from unpacking and compilation of the distribution to execution of
+some tools.</li>
+
+<li><a href="GettingStartedVS.html">Getting Started with the LLVM System using
+Microsoft Visual Studio</a> - An addendum to the main Getting Started guide for
+those using Visual Studio on Windows.</li>
+
+<li><a href="tutorial/">LLVM Tutorial</a> - A walk through the process of using
+LLVM for a custom language, and the facilities LLVM offers in tutorial form.</li>
+<li><a href="DeveloperPolicy.html">Developer Policy</a> - The LLVM project's
+policy towards developers and their contributions.</li>
+
+<li><a href="/docs/CommandGuide/index.html">LLVM Command Guide</a> - A reference
+manual for the LLVM command line utilities ("man" pages for LLVM tools).<br/>
+Current tools:
+ <a href="/cmds/llvm-ar.html">llvm-ar</a>,
+ <a href="/cmds/llvm-as.html">llvm-as</a>,
+ <a href="/cmds/llvm-dis.html">llvm-dis</a>,
+ <a href="/cmds/llvm-extract.html">llvm-extract</a>,
+ <a href="/cmds/llvm-ld.html">llvm-ld</a>,
+ <a href="/cmds/llvm-link.html">llvm-link</a>,
+ <a href="/cmds/llvm-nm.html">llvm-nm</a>,
+ <a href="/cmds/llvm-prof.html">llvm-prof</a>,
+ <a href="/cmds/llvm-ranlib.html">llvm-ranlib</a>,
+ <a href="/cmds/opt.html">opt</a>,
+ <a href="/cmds/llc.html">llc</a>,
+ <a href="/cmds/lli.html">lli</a>,
+ <a href="/cmds/llvmc.html">llvmc</a>
+ <a href="/cmds/llvmgcc.html">llvm-gcc</a>,
+ <a href="/cmds/llvmgxx.html">llvm-g++</a>,
+ <a href="/cmds/stkrc.html">stkrc</a>,
+ <a href="/cmds/bugpoint.html">bugpoint</a>,
+ <a href="/cmds/llvm-bcanalyzer.html">llvm-bcanalyzer</a>,
+</li>
+
+<li><a href="FAQ.html">Frequently Asked Questions</a> - A list of common
+questions and problems and their solutions.</li>
+
+<li><a href="ReleaseNotes.html">Release notes for the current release</a> 
+- This describes new features, known bugs, and other limitations.</li>
+
+<li><a href="HowToSubmitABug.html">How to Submit A Bug Report</a> -
+Instructions for properly submitting information about any bugs you run into in
+the LLVM system.</li>
+
+<li><a href="TestingGuide.html">LLVM Test Suite Guide</a> - A reference
+manual for using the LLVM test suite.</li>
+
+<li><a href="GCCFEBuildInstrs.html">How to build the C/C++ front-end</a> -
+Instructions for building the front-end from source.</li>
+
+<li><a href="Lexicon.html">The LLVM Lexicon</a> - Definition of acronyms, terms
+and concepts used in LLVM.</li>
+
+<li><a name="irc">You can probably find help on the unofficial LLVM IRC 
+channel</a>.  We often are on irc.oftc.net in the #llvm channel.  If you are 
+using the mozilla browser, and have chatzilla installed, you can <a 
+href="irc://irc.oftc.net/llvm">join #llvm on irc.oftc.net</a> directly.</li>
+
+</ul>
+
+
+<!--=======================================================================-->
+<div class="doc_section"><a name="llvmprog">General LLVM Programming Documentation</a></div>
+<!--=======================================================================-->
+
+<ul>
+<li><a href="LangRef.html">LLVM Language Reference Manual</a> - Defines the LLVM
+intermediate representation and the assembly form of the different nodes.</li>
+
+<li><a href="ProgrammersManual.html">The LLVM Programmers Manual</a> -
+Introduction to the general layout of the LLVM sourcebase, important classes
+and APIs, and some tips &amp; tricks.</li>
+
+<li><a href="Projects.html">LLVM Project Guide</a> - How-to guide and
+templates for new projects that <em>use</em> the LLVM infrastructure.  The
+templates (directory organization, Makefiles, and test tree) allow the project
+code to be located outside (or inside) the <tt>llvm/</tt> tree, while using LLVM
+header files and libraries.</li>
+
+<li><a href="MakefileGuide.html">LLVM Makefile Guide</a> - Describes how the
+LLVM makefiles work and how to use them.</li>
+
+<li><a href="CommandLine.html">CommandLine library Reference Manual</a> -
+Provides information on using the command line parsing library.</li>
 
-<hr>
+<li><a href="CodingStandards.html">LLVM Coding standards</a> -
+Details the LLVM coding standards and provides useful information on writing
+efficient C++ code.</li>
 
-<h2>
-Welcome to LLVM!
-</h2>
-This file is intended to do four things:
-<ol>
-       <li>
-       help you get started using LLVM;
-       </li>
+<li><a href="ExtendingLLVM.html">Extending LLVM</a> - Look here to see how 
+to add instructions and intrinsics to LLVM.</li>
 
-       <li>
-       tell you how to get questions about LLVM answered;
-       </li>
+<li><a href="UsingLibraries.html">Using LLVM Libraries</a> - Look here to
+understand how to use the libraries produced when LLVM is compiled.</li>
 
-       <li>
-       tell you where to find documentation for different kinds of questions; and
-       </li>
+<li><a href="HowToReleaseLLVM.html">How To Release LLVM To The Public</a> - This
+is a guide to preparing LLVM releases. Most developers can ignore it.</li>
 
-       <li>
-       tell you about three LLVM-related mailing lists.
-       </li>
-</ol>
+<li><a href="http://llvm.org/doxygen/">Doxygen generated 
+documentation</a> (<a
+href="http://llvm.org/doxygen/inherits.html">classes</a>)
 
+(<a href="http://llvm.org/doxygen/doxygen.tar.gz">tarball</a>)
+</li>
 
-<hr>
+<li><a href="http://llvm.org/viewvc/">ViewVC Repository Browser</a></li>
 
-<h2>
-Getting Started with LLVM
-</h2>
-
-<dl compact>
-    <dt>
-    For license information:
-    <dd>
-        <a href="../LICENSE.TXT">llvm/LICENSE.TXT</a>
-        <p>
-
-    <dt>
-    Installing and compiling LLVM:
-    <dd>
-        <a href="GettingStarted.html">llvm/docs/GettingStarted.html</a>
-        <p>
-
-    <dt>
-    Learn about features and limitations of this release:
-    <dd>
-        <a href="ReleaseNotes.html">llvm/docs/ReleaseNotes.html</a>
-        <p>
-
-    <dt>
-    Learn how to write a pass within the LLVM system:
-    <dd>
-        <a href="WritingAnLLVMPass.html">llvm/docs/WritingAnLLVMPass.html </a>
-        <p>
-
-    <dt>
-    Learn how to start a new development project using LLVM, where your
-    new source code can live anywhere (outside or inside the LLVM tree),
-    while using LLVM header files and libraries:
-    <dd>
-        <a href="Projects.html">llvm/docs/Projects.html</a>
-</dl>
+</ul>
 
-<hr>
+<!--=======================================================================-->
+<div class="doc_section"><a name="subsystems">LLVM Subsystem Documentation</a></div>
+<!--=======================================================================-->
 
-<h2>
-Getting Help with LLVM
-</h2>
-
-<ol>
-        <li>
-        If you have questions or development problems not answered in the
-        documentation, send e-mail to llvmdev@cs.uiuc.edu.  This mailing list is
-        monitored by all the people in the LLVM group at Illinois, and you
-        should expect prompt first responses.
-        </li>
-
-        <li>
-        To report a bug, submit a bug report as described in the document:
-        <a href="http://llvm.cs.uiuc.edu/docs/HowToSubmitABug.html">
-        http://llvm.cs.uiuc.edu/docs/HowToSubmitABug.html</a>
-        </li>
-
-        <li>
-        We now use Bugzilla to track bugs, so you can check the status of
-        previous bugs at:
-        <a href="http://llvm.cs.uiuc.edu/bugs/query.cgi">
-        http://llvm.cs.uiuc.edu/bugs/query.cgi </a>
-        </li>
-</ol>
+<ul>
 
-<hr>
+<li><a href="WritingAnLLVMPass.html">Writing an LLVM Pass</a> - Information
+on how to write LLVM transformations and analyses.</li>
 
-<h2>
-LLVM Documentation
-</h2>
-
-All the documents mentioned below except the design overview tech report
-are included as part of the LLVM release (in llvm/docs/*):
-
-<h3>
-LLVM Design Overview:
-</h3>
-
-<dl compact>
-    <dt>
-    LLVM : A Compilation Framework for Lifelong Program Analysis
-    and Transformation:
-    <dd>
-        <a href="http://llvm.cs.uiuc.edu/pubs/2003-09-30-LifelongOptimizationTR.html">
-        http://llvm.cs.uiuc.edu/pubs/2003-09-30-LifelongOptimizationTR.html </a>
-
-</dl>
-
-<h3>
-LLVM User Guides:
-</h3>
-
-<dl compact>
-    <dt>
-    Download and Installation Instructions:
-    <dd>
-        <a href="GettingStarted.html"> llvm/docs/GettingStarted.html</a>
-        <p>
-
-    <dt>
-    LLVM Command Guide:
-    <dd>
-        <a href="CommandGuide/index.html">
-        llvm/docs/CommandGuide/index.html</a>
-        <p>
-
-    <dt>
-    LLVM Assembly Language:
-    <dd>
-        <a href="LangRef.html"> llvm/docs/LangRef.html</a>
-        <p>
-
-    <dt>
-    LLVM Test Suite Guide:
-    <dd>
-        <a href="TestingGuide.html"> llvm/docs/TestingGuide.html</a>
-        <p>
-</dl>
-
-<h3>
-LLVM Programming Documentation:
-</h3>
-
-<dl compact>
-    <dt>
-    LLVM Programmers Manual:
-    <dd>
-        <a href="ProgrammersManual.html"> llvm/docs/ProgrammersManual.html</a>
-        <p>
-
-    <dt>
-    Writing an LLVM Pass:
-    <dd>
-        <a href="WritingAnLLVMPass.html"> llvm/docs/WritingAnLLVMPass.html</a>
-        <p>
-
-    <dt>
-    Alias Analysis in LLVM:
-    <dd>
-        <a href="AliasAnalysis.html"> llvm/docs/AliasAnalysis.html</a>
-        <p>
-
-    <dt>
-    TableGen Fundamentals:
-    <dd>
-        <a href="TableGenFundamentals.html"> llvm/docs/TableGenFundamentals.html</a>
-        <p>
-
-
-    <dt>
-    The Stacker Cronicles
-    <dd>
-        <a href="Stacker.html">The Stacker Cronicles</a>
-   - This document describes both the Stacker language and
-                    LLVM frontend, but also some details about LLVM useful for
-                    those writing front-ends.<p>
-
-
-    <dt>
-    Command Line Library:
-    <dd>
-        <a href="CommandLine.html"> llvm/docs/CommandLine.html</a>
-        <p>
-
-    <dt>
-    Coding Standards:
-    <dd>
-        <a href="CodingStandards.html"> llvm/docs/CodingStandards.html</a>
-        <p>
-</dl>
-
-<h3>
-Other LLVM Resources:
-</h3>
-
-<dl compact>
-    <dt>
-    Building the LLVM C/C++ front-end:
-    <dd>
-      <a href="CFEBuildInstrs.html">llvm/docs/CFEBuildInstrs.html</a>
-      <p>
-    <dt>
-    Submitting a Bug:
-    <dd>
-        <a href="http://llvm.cs.uiuc.edu/docs/HowToSubmitABug.html">
-        http://llvm.cs.uiuc.edu/docs/HowToSubmitABug.html</a>
-        <p>
-
-    <dt>
-    Open Projects:
-    <dd>
-        <a href="OpenProjects.html"> llvm/docs/OpenProjects.html</a>
-        <p>
-
-    <dt>
-    Creating a new LLVM Project:
-    <dd>
-        <a href="Projects.html"> llvm/docs/Projects.html</a>
-        <p>
-</dl>
+<li><a href="WritingAnLLVMBackend.html">Writing an LLVM Backend</a> - Information
+on how to write LLVM backends for machine targets.</li>
 
-<hr>
+<li><a href="CodeGenerator.html">The LLVM Target-Independent Code
+Generator</a> - The design and implementation of the LLVM code generator.
+Useful if you are working on retargetting LLVM to a new architecture, designing
+a new codegen pass, or enhancing existing components.</li>
+
+<li><a href="TableGenFundamentals.html">TableGen Fundamentals</a> -
+Describes the TableGen tool, which is used heavily by the LLVM code
+generator.</li>
+
+<li><a href="AliasAnalysis.html">Alias Analysis in LLVM</a> - Information
+on how to write a new alias analysis implementation or how to use existing
+analyses.</li>
+
+<li><a href="Stacker.html">The Stacker Chronicles</a> - This document
+describes both the Stacker language and LLVM frontend, but also some details
+about LLVM useful for those writing front-ends.</li>
+
+<li><a href="GarbageCollection.html">Accurate Garbage Collection with
+LLVM</a> - The interfaces source-language compilers should use for compiling
+GC'd programs.</li>
+
+<li><a href="SourceLevelDebugging.html">Source Level Debugging with
+LLVM</a> - This document describes the design and philosophy behind the LLVM
+source-level debugger.</li>
+
+<li><a href="ExceptionHandling.html">Zero Cost Exception handling in LLVM</a> 
+- This document describes the design and implementation of exception handling
+in LLVM.</li>
+
+<li><a href="Bugpoint.html">Bugpoint</a> - automatic bug finder and test-case
+reducer description and usage information.</li>
+
+<li><a href="CompilerDriver.html">Compiler Driver (llvmc)</a> - This document
+describes the design and configuration of the LLVM compiler driver tool,
+<tt>llvmc</tt>.</li>
 
-<h2>
-Mailing Lists
-</h2>
-There are three mailing lists for providing LLVM users with information:
-
-<ol>
-    <li> LLVM Announcements List:<br>
-    <a href="http://mail.cs.uiuc.edu/mailman/listinfo/llvm-announce">
-    http://mail.cs.uiuc.edu/mailman/listinfo/llvm-announce</a>
-
-    <p>
-    This is a low volume list that provides important announcements regarding
-    LLVM.  It is primarily intended to announce new releases, major updates to
-    the software, etc.  This list is highly recommended for anyone that uses
-    LLVM.
-    </p>
-
-    <li> LLVM Developers List:<br>
-    <a href="http://mail.cs.uiuc.edu/mailman/listinfo/llvmdev">
-    http://mail.cs.uiuc.edu/mailman/listinfo/llvmdev</a>
-
-    <p>
-    This list is for people who want to be included in technical discussions
-    of LLVM.  People post to this list when they have questions about writing
-    code for or using the LLVM tools.  It is relatively low volume.
-    </p>
-
-    <li> LLVM Commits List<br>
-    <a href="http://mail.cs.uiuc.edu/mailman/listinfo/llvm-commits">
-    http://mail.cs.uiuc.edu/mailman/listinfo/llvm-commits</a>
-
-    <p>
-    This list contains all commit messages that are made when LLVM developers
-    commit code changes to the CVS archive.  It is useful for those who want to
-    stay on the bleeding edge of LLVM development. This list is very high
-    volume.
-    </p>
-</ol>
-</body>
-</html>
+<li><a href="BitCodeFormat.html">LLVM Bitcode File Format</a></li>
+
+<li><a href="SystemLibrary.html">System Library</a> - This document describes
+the LLVM System Library (<tt>lib/System</tt>) and how to keep LLVM source code
+portable</li>
+
+<li><a href="LinkTimeOptimization.html">Link Time Optimization</a> - This
+document describes the interface between LLVM intermodular optimizer and
+the linker and its design</li>
+
+</ul>
+
+
+<!--=======================================================================-->
+<div class="doc_section"><a name="maillist">LLVM Mailing Lists</a></div>
+<!--=======================================================================-->
+
+<ul>
+<li>The <a href="http://mail.cs.uiuc.edu/mailman/listinfo/llvm-announce">
+LLVM Announcements List</a>: This is a low volume list that provides important 
+announcements regarding LLVM.  It gets email about once a month.</li>
+
+<li>The <a href="http://mail.cs.uiuc.edu/mailman/listinfo/llvmdev">Developer's
+List</a>: This list is for people who want to be included in technical 
+discussions of LLVM. People post to this list when they have questions about 
+writing code for or using the LLVM tools. It is relatively low volume.</li>
+
+<li>The <a href="http://mail.cs.uiuc.edu/pipermail/llvmbugs/">Bugs &amp;
+Patches Archive</a>: This list gets emailed every time a bug is opened and
+closed, and when people submit patches to be included in LLVM.  It is higher 
+volume than the LLVMdev list.</li>
+
+<li>The <a href="http://mail.cs.uiuc.edu/pipermail/llvm-commits/">Commits
+Archive</a>: This list contains all commit messages that are made when LLVM 
+developers commit code changes to the repository. It is useful for those who 
+want to stay on the bleeding edge of LLVM development. This list is very high
+volume.</li>
+
+<li>The <a href="http://mail.cs.uiuc.edu/pipermail/llvm-testresults/">
+Test Results Archive</a>: A message is automatically sent to this list by every
+active nightly tester when it completes.  As such, this list gets email several
+times each day, making it a high volume list.</li>
+
+</ul>
+
+<!-- *********************************************************************** -->
+
+<hr>
+<address>
+  <a href="http://jigsaw.w3.org/css-validator/check/referer"><img
+  src="http://jigsaw.w3.org/css-validator/images/vcss" alt="Valid CSS!"></a>
+  <a href="http://validator.w3.org/check/referer"><img
+  src="http://www.w3.org/Icons/valid-html401" alt="Valid HTML 4.01!"></a>
+
+  <a href="http://llvm.org">LLVM Compiler Infrastructure</a><br>
+  Last modified: $Date$
+</address>
+</body></html>