<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="../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>

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

