Welcome to LLVM!

This file provides the location of all important LLVM documentation.  In
particular, you should read the license information and the installation
directions before you begin using LLVM.

After that, there are several technical references that will help you use LLVM.
Consult them as necessary.

Finally, you can find information on how to communicate with the LLVM
developers and LLVM community.  This is of primary interest if you wish to
submit a bug, supply a patch, or just keep current with what's going on with
LLVM.

Introductory Literature:
	LLVM Home Page:
		http://llvm.cs.uiuc.edu

	License Information:
		llvm/LICENSE.txt

	Downloading and Installation Instructions:
		llvm/docs/GettingStarted.html

	Release Notes:
		llvm/docs/ReleaseNotes.html

Technical Reference:
	Command Documentation:
		llvm/docs/CommandGuide/CommandGuide.html

	Using the LLVM Test Suite:
		llvm/docs/TestingGuide.html

	LLVM Assembly Language:
		llvm/docs/LangRef.html

	LLVM Source Code Tree:
		llvm/docs/ProgrammersManual.html

	Coding Standards:
		llvm/docs/CodingStandards.html

LLVM Community:
	Submitting a Bug:
	http://llvm.cs.uiuc.edu/docs/HowToSubmitABug.html

	Mailing Lists:
		There are several mailing lists providing LLVM users with
		information:

			o LLVM Announcements List:
			http://mail.cs.uiuc.edu/mailman/listinfo/llvm-announce

				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.


			o LLVM Developers List:
			http://mail.cs.uiuc.edu/mailman/listinfo/llvmdev

				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 low volume.

			o LLVM Commits List
			http://mail.cs.uiuc.edu/mailman/listinfo/llvm-commits

				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.

