<html>
<title>
The LLVM Compiler Infrastructure
</title>

<body>

<center>
<h1>
                       The LLVM Compiler Infrastructure
                                 <br>
        <a href="http://llvm.cs.uiuc.edu">http://llvm.cs.uiuc.edu</a>
</h1>
</center>

<hr>

<h2>
Welcome to LLVM!
</h2>
This file is intended to do four things:
<ol>
	<li>
	help you get started using LLVM;
	</li>

	<li>
	tell you how to get questions about LLVM answered;
	</li>

	<li>
	tell you where to find documentation for different kinds of questions; and
	</li>

	<li>
	tell you about three LLVM-related mailing lists.
	</li>
</ol>


<hr>

<h2>
Getting Started with LLVM
</h2>

<dl compact>
    <dt>
    For license information:
    <dd>
        <a href="http://llvm.cs.uiuc.edu/cvsweb/cvsweb.cgi/llvm/LICENSE.TXT?rev=HEAD&content-type=text/x-cvsweb-markup">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>

<hr>

<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>

<hr>

<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 
     &amp; Transformation
    <dd>
        <a href="http://llvm.cs.uiuc.edu/pubs/2004-01-30-CGO-LLVM.html">
        http://llvm.cs.uiuc.edu/pubs/2004-01-30-CGO-LLVM.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>
    Source Level Debugging with LLVM:
    <dd>
        <a href="SourceLevelDebugging.html"> llvm/docs/SourceLevelDebugging.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>

<hr>

<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>

