Compare commits

...

20 Commits

Author SHA1 Message Date
John Criswell
52a52a9911 Added an answer about running the tests.
llvm-svn: 9498
2003-10-24 20:17:46 +00:00
John Criswell
2eed6e9122 Added note about multilib options.
llvm-svn: 9476
2003-10-24 18:06:42 +00:00
John Criswell
44008a16b7 Fixed the name of the Command Guide index.
llvm-svn: 9471
2003-10-24 16:49:42 +00:00
John Criswell
6e518e6326 Fixed the name of the Command Guide index.
Made everything into hyperlinks.

llvm-svn: 9470
2003-10-24 16:49:29 +00:00
John Criswell
f924987081 HTML version of README.txt
llvm-svn: 9468
2003-10-24 16:19:11 +00:00
John Criswell
4452c27c9a Removed the reference to llvm-request since the source code will be
available for downloading.

llvm-svn: 9466
2003-10-24 15:36:38 +00:00
John Criswell
02e054d107 Added brief information on how to query filed bugs via BugZilla.
Changed all tabs to spaces to ensure that nice LLVM look and feel.

llvm-svn: 9465
2003-10-24 14:37:26 +00:00
John Criswell
9096e27509 Made QMTest run first to ensure that it runs.
llvm-svn: 9464
2003-10-24 14:25:06 +00:00
John Criswell
42260d7716 Merged revision 1.19.
llvm-svn: 9463
2003-10-24 13:42:44 +00:00
John Criswell
faa1d1f04d Merged revision 1.21.
llvm-svn: 9462
2003-10-24 13:28:12 +00:00
John Criswell
0d6d28b38f Merged in revision 1.12.
llvm-svn: 9461
2003-10-24 13:24:02 +00:00
John Criswell
4a0f8ad6f1 Merged in revision 1.4, adjusting tabs to spaces to keep indentation
correct.

llvm-svn: 9458
2003-10-24 03:02:32 +00:00
John Criswell
ccb2261ec3 Updated the design guide to be a newer paper on LLVM.
llvm-svn: 9456
2003-10-24 00:54:03 +00:00
John Criswell
b93e94b748 Fixed the syntax for Solaris /bin/sh.
In pre-historic times, you couldn't assign and export a variable at the
same time in /bin/sh.  Solaris still can't.

llvm-svn: 9455
2003-10-24 00:49:47 +00:00
John Criswell
8b83d1b419 Added information on why someone would want to build the GCC front end.
Added a link to this information from the Getting Started Guide.
Changed the word "wicked" to "elite."  The original sounds much cooler, but
I fear the PR police when I take off my tinfoil hat.

llvm-svn: 9454
2003-10-23 22:15:14 +00:00
John Criswell
188c951004 Added information about fixing the headers on Solaris.
llvm-svn: 9453
2003-10-23 21:22:19 +00:00
John Criswell
cf7c329798 Removing Release Tasks. This belongs in the web site repository.
Added a link to the LLVM home page at the end of each page.

llvm-svn: 9448
2003-10-23 20:23:01 +00:00
John Criswell
3d2a2eb218 Added LLVM copyright header per Vikram's request.
llvm-svn: 9447
2003-10-23 20:03:38 +00:00
John Criswell
6935fa4016 Removed pre-release license.
llvm-svn: 9446
2003-10-23 20:01:36 +00:00
CVS to SVN Conversion
f37a450b62 This commit was manufactured by cvs2svn to create branch 'release_1'.
llvm-svn: 9439
2003-10-23 19:16:12 +00:00
26 changed files with 522 additions and 539 deletions

View File

@@ -1,37 +1,3 @@
NOTICE:
=======
All distributions of LLVM prior to the 1.0 Release will be licensed to you
under the LLVM pre-release license. The 1.0 Release will be announced on the
LLVM Announcements Mailing List.
After the 1.0 Release of LLVM, the LLVM code will be licensed to you under the
LLVM Release License (aka the Illinois Open Source License).
The main point is that you cannot re-distribute LLVM until the 1.0 Release.
==============================================================================
LLVM pre-release license
==============================================================================
This is a pre-release distribution of the LLVM software and is provided for
evaluation only. This version of the LLVM software or modifications thereof
should not be distributed to third parties for any purpose. Any third parties
interested in it can request a copy directly by sending e-mail to
llvmdev@cs.uiuc.edu. As this is an evaluation release, we would appreciate any
and all feedback, ideas, and reports of bugs that you encounter. You may
discuss development of LLVM on llvmdev@cs.uiuc.edu, and bugs can be submitted
through the LLVM Bug Tracker at http://llvm.cs.uiuc.edu/bugzilla/ . We thank
you for your interest in LLVM and look forward to any comments or feedback you
may have.
THE SOFTWARE IS PROVIDED AS IS, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS WITH THE
SOFTWARE.
==============================================================================
LLVM Release License
==============================================================================

View File

@@ -1,106 +1,129 @@
The LLVM Compiler Infrastructure
http://llvm.cs.uiuc.edu
Welcome to LLVM!
-----------------
This file is intended to do four things:
(1) help you get started using LLVM;
(2) tell you how to get questions about LLVM answered;
(3) tell you where to find documentation for different kinds of questions; and
(4) tell you about three LLVM-related mailing lists.
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.
Getting Started with LLVM
-------------------------
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.
(1) For license information:
llvm/LICENSE.txt
Introductory Literature:
(2) Installing and compiling LLVM:
llvm/docs/GettingStarted.html
LLVM Home Page:
http://llvm.cs.uiuc.edu
(3) Learn about features and limitations of this release:
llvm/docs/ReleaseNotes.html
License Information:
llvm/LICENSE.txt
(4) Learn how to write a pass within the LLVM system:
llvm/docs/WritingAnLLVMPass.html
Release Notes:
llvm/docs/ReleaseNotes.html
(5) 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:
llvm/docs/Projects.html
LLVM Design:
The LLVM Instruction Set and Compilation Strategy:
http://llvm.cs.uiuc.edu/pubs/2002-08-09-LLVMCompilationStrategy.html
Getting Help with LLVM
----------------------
(1) 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.
(2) To report a bug, submit a bug report as described in the document:
http://llvm.cs.uiuc.edu/docs/HowToSubmitABug.html
(3) We now use Bugzilla to track bugs, so you can check the status of
previous bugs at:
http://llvm.cs.uiuc.edu/bugs/query.cgi
LLVM Documentation
------------------
All the documents mentioned below except the design overview tech report
are included as part of the LLVM release (in llvm/docs/*):
LLVM Design Overview:
LLVM : A Compilation Framework for Lifelong Program Analysis
and Transformation:
http://llvm.cs.uiuc.edu/pubs/2003-09-30-LifelongOptimizationTR.html
LLVM User Guides:
Download and Installation Instructions:
llvm/docs/GettingStarted.html
Download and Installation Instructions:
llvm/docs/GettingStarted.html
LLVM Command Guide:
llvm/docs/CommandGuide/CommandGuide.html
LLVM Command Guide:
llvm/docs/CommandGuide/index.html
LLVM Assembly Language:
llvm/docs/LangRef.html
LLVM Assembly Language:
llvm/docs/LangRef.html
LLVM Test Suite Guide:
llvm/docs/TestingGuide.html
LLVM Test Suite Guide:
llvm/docs/TestingGuide.html
LLVM Programming Documentation:
LLVM Programmers Manual:
llvm/docs/ProgrammersManual.html
LLVM Programmers Manual:
llvm/docs/ProgrammersManual.html
Writing an LLVM Pass:
llvm/docs/WritingAnLLVMPass.html
Writing an LLVM Pass:
llvm/docs/WritingAnLLVMPass.html
Alias Analysis in LLVM:
llvm/docs/AliasAnalysis.html
Alias Analysis in LLVM:
llvm/docs/AliasAnalysis.html
Command Line Library:
llvm/docs/CommandLine.html
Command Line Library:
llvm/docs/CommandLine.html
Coding Standards:
llvm/docs/CodingStandards.html
Coding Standards:
llvm/docs/CodingStandards.html
LLVM Community:
Other LLVM Resources:
Submitting a Bug:
http://llvm.cs.uiuc.edu/docs/HowToSubmitABug.html
Submitting a Bug:
http://llvm.cs.uiuc.edu/docs/HowToSubmitABug.html
Open Projects:
llvm/docs/OpenProjects.html
Open Projects:
llvm/docs/OpenProjects.html
Creating a new LLVM Project:
llvm/docs/Projects.html
Creating a new LLVM Project:
llvm/docs/Projects.html
Mailing Lists:
There are several mailing lists providing LLVM users with
information:
Mailing Lists
--------------
There are three mailing lists for providing LLVM users with information:
o LLVM Announcements List:
http://mail.cs.uiuc.edu/mailman/listinfo/llvm-announce
(1) 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.
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.
(2) LLVM Developers List:
http://mail.cs.uiuc.edu/mailman/listinfo/llvmdev
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 relatively low volume.
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.
(3) LLVM Commits List
http://mail.cs.uiuc.edu/mailman/listinfo/llvm-commits
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.
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.

View File

@@ -494,10 +494,12 @@ printed.
<!-- *********************************************************************** -->
<hr><font size="-1">
<hr>
<font size="-1">
<address><a href="mailto:sabre@nondot.org">Chris Lattner</a></address>
<a href="http://llvm.cs.uiuc.edu">The LLVM Compiler Infrastructure</a>
<br>
Last modified: $Date$
</font>
</body>
</html>

View File

@@ -15,9 +15,12 @@
C/C++ front-end, based on GCC 3.4, from source.</p>
<p><b>NOTE:</b> This is currently a somewhat fragile, error-prone
process, and you should only try to do it if (A) you really, really,
really can't use the binaries we distribute, and (B) you are a wicked
good GCC hacker.</p>
process, and you should only try to do it if
<ul>
<li>(A) you really, really, really can't use the binaries we distribute
<li>(B) you need GCC to fix some of the header files on your system
<li>(C) you are an elite GCC hacker.</p>
</ul>
<p>We welcome patches to help make this process simpler.</p>
@@ -105,6 +108,11 @@ good GCC hacker.</p>
<li>No inline assembly for position independent code. At the LLVM level,
everything is position independent.</li>
<li>We handle <tt>.init</tt> and <tt>.fini</tt> differently.</li>
<li>You may have to disable multilib support in your target. Using multilib
support causes the GCC compiler driver to add a lot of "<tt>-L</tt>"
options to the link line, which do not relate to LLVM and confuse
<tt>gccld</tt>. To disable multilibs, delete any
<tt>MULTILIB_OPTIONS</tt> lines from your target files.</li>
<li>Did we mention that we don't support inline assembly? You'll probably
have to add some fixinclude hacks to disable it in the system
headers.</li>
@@ -149,6 +157,8 @@ following means:</p>
<hr><font size="-1">
<address><a href="mailto:gaeke -at- uiuc.edu">Brian Gaeke</a></address>
<a href="http://llvm.cs.uiuc.edu">The LLVM Compiler Infrastructure</a>
<br>
Last modified: $Date$
</font>

15
llvm/docs/ChrisNotes.txt Normal file
View File

@@ -0,0 +1,15 @@
* Rewrite the llvm parser/lexer in http://www.antlr.org when time permits.
They actually do C++. Imagine that.
* Need a way to attach bytecode block info at various levels of asm code.
* Recognize and save comments in assembly and bytecode format
* Encode line number table in bytecode (like #line), optional table
* Encode negative relative offsets in the bytecode file
* Apparently bison has a %pure_parser option. Maybe useful for AsmParser
* Implement the following derived types:
* "packed format", like this: [4 x sbyte]: Packed SIMD datatype
* Bytecode reader should use extensions that may or may not be linked into the
application to read blocks. Thus an easy way to ignore symbol table info
would be to not link in that reader into the app.

View File

@@ -831,6 +831,8 @@ something. :)
<hr>
<font size=-1>
<address><a href="mailto:sabre@nondot.org">Chris Lattner</a></address>
<a href="http://llvm.cs.uiuc.edu">The LLVM Compiler Infrastructure</a>
<br>
<!-- Created: Tue Jan 23 15:19:28 CST 2001 -->
<!-- hhmts start -->
Last modified: Sun Oct 12 22:12:43 CDT 2003

View File

@@ -1530,6 +1530,8 @@ line options </b></font></td></tr></table><ul>
<hr>
<font size=-1>
<address><a href="mailto:sabre@nondot.org">Chris Lattner</a></address>
<a href="http://llvm.cs.uiuc.edu">The LLVM Compiler Infrastructure</a>
<br>
<!-- Created: Tue Jan 23 15:19:28 CST 2001 -->
<!-- hhmts start -->
Last modified: Fri Aug 1 16:30:11 CDT 2003

View File

@@ -875,6 +875,8 @@ burg.llvm.lib analyze: ../../../include/llvm/Analysis/DSNode.h:7
<hr>
<address><a href="mailto:sabre@nondot.org">Chris Lattner</a></address>
<a href="http://llvm.cs.uiuc.edu">The LLVM Compiler Infrastructure</a>
<br>
<!-- Created: Wed Nov 6 19:57:57 CST 2002 -->
<!-- hhmts start -->
Last modified: Thu Nov 14 20:00:50 CST 2002

View File

@@ -138,8 +138,25 @@ LLVM: Frequently Asked Questions
cases, this takes care of the problem. To do this, just type <tt>make
clean</tt> and then <tt>make</tt> in the directory that fails to build.
<p>
<dt><b>I've built LLVM and am testing it, but the tests freeze.</b>
<dd>
This is most likely occurring because you built a profile or release
(optimized) build of LLVM and have not specified the same information on
the <tt>gmake</tt> command line.
<p>
For example, if you built LLVM with the command:
<p>
<tt>gmake ENABLE_PROFILING=1</tt>
<p>
...then you must run the tests with the following commands:
<p>
<tt>cd llvm/test<br>gmake ENABLE_PROFILING=1</tt>
</dl>
<hr>
<a href="http://llvm.cs.uiuc.edu">The LLVM Compiler Infrastructure</a>
<br>
</body>
</html>

View File

@@ -90,6 +90,11 @@
<li><tt>cd <i>where-you-want-the-C-front-end-to-live</i></tt>
<li><tt>gunzip --stdout cfrontend.<i>platform</i>.tar.gz | tar -xvf
-</tt>
<li><b>Sparc Only:</b><br>
<tt>
cd cfrontend/sparc<br>
./fixheaders
</tt>
</ol>
<p>
@@ -204,8 +209,7 @@
native code may not work on your platform.
<p>
The GCC front end is not very portable at the moment. If you want to get
it to work on another platform, you can always request
<a href="mailto:llvm-request@zion.cs.uiuc.edu">a copy of the source</a>
it to work on another platform, you can download a copy of the source
and try to compile it on your platform.
</p>
@@ -377,7 +381,8 @@
<p>
Before configuring and compiling the LLVM suite, you need to extract the
LLVM GCC front end from the binary distribution. It is used for building the
LLVM GCC front end from the binary distribution. It is used for building
the
bytecode libraries later used by the GCC front end for linking programs, and
its location must be specified when the LLVM suite is configured.
</p>
@@ -390,6 +395,29 @@
-</tt>
</ol>
If you are on a Sparc/Solaris machine, you will need to fix the header
files:
<p>
<tt>
cd cfrontend/sparc
<br>
./fixheaders
</tt>
<p>
The binary versions of the GCC front end may not suit all of your needs.
For example, the binary distribution may include an old version of a system
header file, not "fix" a header file that needs to be fixed for GCC, or it
may be linked with libraries not available on your system.
</p>
<p>
In cases like these, you may want to try
<a href="CFEBuildInstrs.html">building the GCC front end from source.</a>
This is not for the faint of heart, so be forewarned.
</p>
<!------------------------------------------------------------------------->
<h3><a name="config">Local LLVM Configuration</a></h3>
<!------------------------------------------------------------------------->
@@ -1010,10 +1038,12 @@
If you have any questions or run into any snags (or you have any
additions...), please send an email to
<a href="mailto:sabre@nondot.org">Chris Lattner</a>.</p>
<a href="http://llvm.cs.uiuc.edu">The LLVM Compiler Infrastructure</a>
<br>
<!-- Created: Mon Jul 1 02:29:02 CDT 2002 -->
<!-- hhmts start -->
Last modified: Mon Aug 11 13:52:22 CDT 2003
<!-- hhmts end -->
<!-- Created: Mon Jul 1 02:29:02 CDT 2002 -->
<!-- hhmts start -->
Last modified: Mon Aug 11 13:52:22 CDT 2003
<!-- hhmts end -->
</body>
</html>

View File

@@ -273,6 +273,8 @@ following:
<hr><font size-1>
<address><a href="mailto:sabre@nondot.org">Chris Lattner</a></address>
<a href="http://llvm.cs.uiuc.edu">The LLVM Compiler Infrastructure</a>
<br>
<!-- Created: Tue Aug 6 15:00:33 CDT 2002 -->
<!-- hhmts start -->
Last modified: Tue Oct 14 15:57:47 CDT 2003

View File

@@ -1947,6 +1947,8 @@ arbitrarily complex and require memory allocation, for example.<p>
<hr>
<font size=-1>
<address><a href="mailto:sabre@nondot.org">Chris Lattner</a></address>
<a href="http://llvm.cs.uiuc.edu">The LLVM Compiler Infrastructure</a>
<br>
<!-- Created: Tue Jan 23 15:19:28 CST 2001 -->
<!-- hhmts start -->
Last modified: Tue Oct 21 10:43:36 CDT 2003

View File

@@ -275,6 +275,8 @@ Ideas for profile guided transformations:<p>
<hr><font size-1>
<address><a href="mailto:sabre@nondot.org">Chris Lattner</a></address>
<a href="http://llvm.cs.uiuc.edu">The LLVM Compiler Infrastructure</a>
<br>
<!-- Created: Tue Aug 6 15:00:33 CDT 2002 -->
<!-- hhmts start -->
Last modified: Wed Oct 1 16:48:54 CDT 2003

View File

@@ -1787,6 +1787,8 @@ pointer to the parent Function.
<hr><font size-1>
<address>By: <a href="mailto:dhurjati@cs.uiuc.edu">Dinakar Dhurjati</a> and
<a href="mailto:sabre@nondot.org">Chris Lattner</a></address>
<a href="http://llvm.cs.uiuc.edu">The LLVM Compiler Infrastructure</a>
<br>
<!-- Created: Tue Aug 6 15:00:33 CDT 2002 -->
<!-- hhmts start -->
Last modified: Sat Sep 20 09:25:11 CDT 2003

View File

@@ -383,5 +383,8 @@
<hr>
Written by <a href="mailto:criswell@uiuc.edu">John Criswell</a>.
<br>
<a href="http://llvm.cs.uiuc.edu">The LLVM Compiler Infrastructure</a>
<br>
</body>
</html>

View File

@@ -64,7 +64,10 @@ as well as a large suite of scalar and interprocedural optimizations.<p>
The default optimizer sequence used by the C/C++ front-ends is:<p>
<ol>
<li>CFG simplification (-simplifycfg)
<li>Interprocedural dead code elimination (-globaldce)
<li>Interprocedural constant propagation (-ipconstprop)
<li>Dead argument elimination (-deadargelim)
<li>Exception handling pruning (-prune-eh)
<li>Function inlining (-inline)
<li>Instruction combining (-instcombine)
@@ -94,6 +97,7 @@ At link-time, the following optimizations are run:<p>
<ol>
<li>Global constant merging (-constmerge)
<li>[optional] Internalization [which marks most functions and global variables static] (-internalize)
<li>Interprocedural constant propagation (-ipconstprop)
<li>Interprocedural dead argument elimination (-deadargelim)
<li>Instruction combining (-instcombine)
<li>CFG simplification (-simplifycfg)
@@ -103,7 +107,8 @@ At link-time, the following optimizations are run:<p>
At this time, LLVM is known to work properly with SPEC CPU 2000, the Olden
benchmarks, and the Ptrdist benchmarks among many other programs. Note however
that the Sparc and X86 backends do not currently support exception throwing or
long jumping. For these programs you must use the C backend.<p>
long jumping (including 253.perlbmk in SPEC). For these programs you must use
the C backend.<p>
<!-- *********************************************************************** -->
@@ -358,6 +363,10 @@ problem probably cannot be fixed.<p>
<li><a href="http://llvm.cs.uiuc.edu/PR33">Initializers for global variables</a>
cannot include special floating point numbers like Not-A-Number or Infinity.<p>
<li><a href="http://zion.cs.uiuc.edu/PR56">Zero arg vararg functions are not
supported</a>. This should not affect LLVM produced by the C or C++
frontends.<p>
<li>The code produces by the C back-end has only been tested with the Sun CC and
GCC compilers. It is possible that it will have to be adjusted to support other
C compilers.<p>

View File

@@ -1,179 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>LLVM Public Release Project</title>
</head>
<body bgcolor="white">
<center>
<h1><font size="7">LLVM Public Release Project</font></h1>
</center>
<ul>
<li><a href="#what">What is this?</a> </li>
<li><a href="#priorities">Priorities</a>
<ol>
<li><a href="#high">High Priority</a> </li>
<li><a href="#medium">Medimum Priority</a> </li>
<li><a href="#low">Low Priority</a> </li>
</ol>
</li>
</ul>
<br>
<!-- *********************************************************************** -->
<table width="100%" bgcolor="#330077" border="0" cellpadding="4"
cellspacing="0">
<tbody>
<tr>
<td align="center"><font color="#eeeeff" size="+2"
face="Georgia,Palatino"><b> <a name="what">What is this? </a></b><a
name="what"></a></font></td>
</tr>
</tbody>
</table>
<ul>
<!-- *********************************************************************** -->
This document is a list of things to do before the LLVM project is
publicly released. &nbsp;It will provide a checklist so that we know
what has been done and what is left to be done. &nbsp;It will also keep
a "wishlist" of desirable features.
<p><!-- *********************************************************************** -->
</p>
</ul>
<table width="100%" bgcolor="#330077" border="0" cellpadding="4"
cellspacing="0">
<tbody>
<tr>
<td align="center"><font color="#eeeeff" size="+2"
face="Georgia,Palatino"><b> <a name="priorities">Priorities</a></b><a
name="improving"></a></font></td>
</tr>
</tbody>
</table>
<ul>
<!-- *********************************************************************** -->The
list of things to do...
<p><!-- ======================================================================= -->
</p>
</ul>
<table width="50%" bgcolor="#441188" border="0" cellpadding="4"
cellspacing="0">
<tbody>
<tr>
<td>&nbsp;</td>
<td width="100%">&nbsp;&nbsp;<font color="#eeeeff" size="+1"
face="Georgia,Palatino"><b><a name="high">High Priority</a></b><a
name="glibc"></a></font></td>
</tr>
</tbody>
</table>
<ul>
<ul>
<ul>
</ul>
<li>Documentation</li>
<ul>
<li>Expand documentation on creating an LLVM project.</li>
</ul>
<li>Licenses</li>
<ul>
<li>Create license files for anything in the distribution that is
not under our license.<br>
</li>
</ul>
<li>Ensure SafeCode builds.</li>
<li>Create a system for managing development and releases (i.e. CVS
branching, labeling revisions, etc).</li>
<li>Create a web page for downloading LLVM.
<li>Create a method for requesting the GCC front end source code.
</ul>
<p><!-- ======================================================================= -->
</p>
</ul>
<table width="50%" bgcolor="#441188" border="0" cellpadding="4"
cellspacing="0">
<tbody>
<tr>
<td>&nbsp;</td>
<td width="100%">&nbsp;&nbsp;<font color="#eeeeff" size="+1"
face="Georgia,Palatino"><b><a name="medium">Medium Priority</a></b><a
name="NightlyTest"></a></font></td>
</tr>
</tbody>
</table>
<ul>
<ul>
<li>Improve documentation on how to create an LLVM project.<br>
</li>
<li>Test Suite</li>
<ul>
<li>Add Feature and Regression tests to nightly tester.</li>
<li>Develop better QMTest database method.<br>
</li>
</ul>
<li>Write regression tests.</li>
<ul>
<li>The C++ constructor on dlopen() bug on Solaris.</li>
</ul>
</ul>
<ul>
<li>Release Management</li>
</ul>
<ul>
<ul>
<li>Find and implement a bug reporting system (i.e. Bugzilla).</li>
</ul>
</ul>
<p><!-- ======================================================================= -->
</p>
</ul>
<table width="50%" bgcolor="#441188" border="0" cellpadding="4"
cellspacing="0">
<tbody>
<tr>
<td>&nbsp;</td>
<td width="100%">&nbsp;&nbsp;<font color="#eeeeff" size="+1"
face="Georgia,Palatino"><b><a name="low">Low Priority</a></b><a
name="programs"></a></font></td>
</tr>
</tbody>
</table>
<ul>
<ul>
<li>GCC C Front End</li>
<ul>
<li>Place the C front end into the CVS repository.</li>
<li>Ensure that the C front end compiles and installs nicely.</li>
</ul>
<li>Create an installer for the software.</li>
<li>Testing</li>
<ul>
<li>Create descriptions of what each test is doing (test
specifications).<br>
</li>
<li>Test LLVM on various Linux distributions.</li>
<li>Test LLVM on various Solaris versions.</li>
<li>Test LLVM on Solaris/x86.</li>
</ul>
<ul>
</ul>
<li>Documentation</li>
<ul>
<li>Create man pages for the LLVM utilities.</li>
<li>Create man pages for the LLVM libraries.</li>
</ul>
<li>Rewrite this page without Netscape Composer :)<br>
</li>
</ul>
</ul>
<font size-1="">
<address><a href="mailto:criswell@cs.uiuc.edu">John Criswell</a></address>
<!-- Created: Tue Aug 6 15:00:33 CDT 2002 --><!-- hhmts start --> Last
modified: Sat May 31 14:54:03 CDT 2003<!-- hhmts end --> </font> <br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
</body>
</html>

View File

@@ -420,6 +420,8 @@
<hr><font size="-1">
<address>John T. Criswell</address>
<a href="http://llvm.cs.uiuc.edu">The LLVM Compiler Infrastructure</a>
<br>
Last modified: $Date$
</font>

View File

@@ -1274,6 +1274,8 @@ href="#Pass"><tt>Pass</tt></a>, only the other way around.<p>
<hr><font size-1>
<address><a href="mailto:sabre@nondot.org">Chris Lattner</a></address>
<a href="http://llvm.cs.uiuc.edu">The LLVM Compiler Infrastructure</a>
<br>
<!-- Created: Tue Aug 6 15:00:33 CDT 2002 -->
<!-- hhmts start -->
Last modified: Tue Jul 22 15:52:30 CDT 2003

265
llvm/docs/index.html Normal file
View File

@@ -0,0 +1,265 @@
<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>

View File

@@ -0,0 +1,23 @@
/*
* The LLVM Compiler Infrastructure
*
* This file was developed by the LLVM research group and is distributed under
* the University of Illinois Open Source License. See LICENSE.TXT for details.
*
*===----------------------------------------------------------------------===//
*
* Description:
* This header file is the autoconf replacement for strings.h (if it lives
* on the system).
*/
#ifndef _CONFIG_STRINGS_H
#define _CONFIG_STRINGS_H
#include "Config/config.h"
#ifdef HAVE_STRINGS_H
#include <strings.h>
#endif
#endif

View File

@@ -39,6 +39,10 @@ private:
///
void IncorporateType(const Type *Ty);
/// IncorporateSymbolTable - Include any named types.
///
void IncorporateSymbolTable(const SymbolTable &ST);
public:
/// run - This incorporates all types used by the specified module
bool run(Module &M);

View File

@@ -1,240 +0,0 @@
/* Title: SparcRegClassInfo.h -*- C++ -*-
Author: Ruchira Sasanka
Date: Aug 20, 01
Purpose: Contains the description of integer register class of Sparc
*/
#ifndef SPARC_INT_REG_CLASS_H
#define SPARC_INT_REG_CLASS_H
#include "llvm/Target/RegInfo.h"
#include "llvm/CodeGen/IGNode.h"
//-----------------------------------------------------------------------------
// Integer Register Class
//-----------------------------------------------------------------------------
// Int register names in same order as enum in class SparcIntRegOrder
static string const IntRegNames[] =
{ "g1", "g2", "g3", "g4", "g5", "g6", "g7",
"o0", "o1", "o2", "o3", "o4", "o5", "o7",
"l0", "l1", "l2", "l3", "l4", "l5", "l6", "l7",
"i0", "i1", "i2", "i3", "i4", "i5",
"g0", "i6", "i7", "o6" };
class SparcIntRegOrder{
public:
enum RegsInPrefOrder // colors possible for a LR (in preferred order)
{
// --- following colors are volatile across function calls
// %g0 can't be used for coloring - always 0
g1, g2, g3, g4, g5, g6, g7, //%g1-%g7
o0, o1, o2, o3, o4, o5, o7, // %o0-%o5,
// %o6 is sp,
// all %0's can get modified by a call
// --- following colors are NON-volatile across function calls
l0, l1, l2, l3, l4, l5, l6, l7, // %l0-%l7
i0, i1, i2, i3, i4, i5, // %i0-%i5: i's need not be preserved
// %i6 is the fp - so not allocated
// %i7 is the ret address - can be used if saved
// max # of colors reg coloring can allocate (NumOfAvailRegs)
// --- following colors are not available for allocation within this phase
// --- but can appear for pre-colored ranges
g0, i6, i7, o6
};
// max # of colors reg coloring can allocate
static unsigned int const NumOfAvailRegs = g0;
static unsigned int const StartOfNonVolatileRegs = l0;
static unsigned int const StartOfAllRegs = g1;
static unsigned int const NumOfAllRegs = o6 + 1;
static const string getRegName(const unsigned reg) {
assert( reg < NumOfAllRegs );
return IntRegNames[reg];
}
};
class SparcIntRegClass : public MachineRegClassInfo
{
public:
SparcIntRegClass(unsigned ID)
: MachineRegClassInfo(ID,
SparcIntRegOrder::NumOfAvailRegs,
SparcIntRegOrder::NumOfAllRegs)
{ }
void colorIGNode(IGNode * Node, bool IsColorUsedArr[] ) const;
};
//-----------------------------------------------------------------------------
// Float Register Class
//-----------------------------------------------------------------------------
static string const FloatRegNames[] =
{
"f0", "f1", "f2", "f3", "f4", "f5", "f6", "f7", "f8", "f9",
"f10", "f11", "f12", "f13", "f14", "f15", "f16", "f17", "f18", "f19",
"f20", "f21", "f22", "f23", "f24", "f25", "f26", "f27", "f28", "f29",
"f30", "f31", "f32", "f33", "f34", "f35", "f36", "f37", "f38", "f39",
"f40", "f41", "f42", "f43", "f44", "f45", "f46", "f47", "f48", "f49",
"f50", "f51", "f52", "f53", "f54", "f55", "f56", "f57", "f58", "f59",
"f60", "f61", "f62", "f63"
};
class SparcFloatRegOrder{
public:
enum RegsInPrefOrder {
f0, f1, f2, f3, f4, f5, f6, f7, f8, f9,
f10, f11, f12, f13, f14, f15, f16, f17, f18, f19,
f20, f21, f22, f23, f24, f25, f26, f27, f28, f29,
f30, f31, f32, f33, f34, f35, f36, f37, f38, f39,
f40, f41, f42, f43, f44, f45, f46, f47, f48, f49,
f50, f51, f52, f53, f54, f55, f56, f57, f58, f59,
f60, f61, f62, f63
};
// there are 64 regs alltogether but only 32 regs can be allocated at
// a time.
static unsigned int const NumOfAvailRegs = 32;
static unsigned int const NumOfAllRegs = 64;
static unsigned int const StartOfNonVolatileRegs = f6;
static unsigned int const StartOfAllRegs = f0;
static const string getRegName(const unsigned reg) {
assert( reg < NumOfAllRegs );
return FloatRegNames[reg];
}
};
class SparcFloatRegClass : public MachineRegClassInfo
{
private:
int findFloatColor(const IGNode *const Node, unsigned Start,
unsigned End, bool IsColorUsedArr[] ) const;
public:
SparcFloatRegClass(unsigned ID)
: MachineRegClassInfo(ID,
SparcFloatRegOrder::NumOfAvailRegs,
SparcFloatRegOrder::NumOfAllRegs)
{ }
void colorIGNode(IGNode * Node, bool IsColorUsedArr[] ) const;
};
//-----------------------------------------------------------------------------
// Int CC Register Class
// Only one integer cc register is available
//-----------------------------------------------------------------------------
class SparcIntCCRegClass : public MachineRegClassInfo
{
public:
SparcIntCCRegClass(unsigned ID)
: MachineRegClassInfo(ID,1, 1) { }
inline void colorIGNode(IGNode * Node, bool IsColorUsedArr[] ) const {
Node->setColor(0); // only one int cc reg is available
}
};
//-----------------------------------------------------------------------------
// Float CC Register Class
// Only 4 Float CC registers are available
//-----------------------------------------------------------------------------
static string const FloatCCRegNames[] =
{
"fcc0", "fcc1", "fcc2", "fcc3"
};
class SparcFloatCCRegOrder{
public:
enum RegsInPrefOrder {
fcc0, fcc1, fcc2, fcc3
};
static const string getRegName(const unsigned reg) {
assert( reg < 4 );
return FloatCCRegNames[reg];
}
};
class SparcFloatCCRegClass : public MachineRegClassInfo
{
public:
SparcFloatCCRegClass(unsigned ID)
: MachineRegClassInfo(ID, 4, 4) { }
void colorIGNode(IGNode * Node, bool IsColorUsedArr[] ) const {
int c;
for(c=0; c < 4 && IsColorUsedArr[c] ; ++c) ; // find color
assert( (c < 4) && "Can allocate only 4 float cc registers");
Node->setColor(c);
}
};
#endif

View File

@@ -41,12 +41,22 @@ void FindUsedTypes::IncorporateType(const Type *Ty) {
IncorporateType(*I);
}
void FindUsedTypes::IncorporateSymbolTable(const SymbolTable &ST) {
SymbolTable::const_iterator TI = ST.find(Type::TypeTy);
if (TI == ST.end()) return; // No named types
for (SymbolTable::type_const_iterator I = TI->second.begin(),
E = TI->second.end(); I != E; ++I)
IncorporateType(cast<Type>(I->second));
}
// run - This incorporates all types used by the specified module
//
bool FindUsedTypes::run(Module &m) {
UsedTypes.clear(); // reset if run multiple times...
IncorporateSymbolTable(m.getSymbolTable());
// Loop over global variables, incorporating their types
for (Module::const_giterator I = m.gbegin(), E = m.gend(); I != E; ++I)
IncorporateType(I->getType());
@@ -54,6 +64,7 @@ bool FindUsedTypes::run(Module &m) {
for (Module::iterator MI = m.begin(), ME = m.end(); MI != ME; ++MI) {
IncorporateType(MI->getType());
const Function &F = *MI;
IncorporateSymbolTable(F.getSymbolTable());
// Loop over all of the instructions in the function, adding their return
// type as well as the types of their operands.

View File

@@ -1,12 +1,17 @@
LEVEL = ..
DIRS = Programs
include Makefile.tests
#
# Make QMTest the default for testing features and regressions
# Do this first to force QMTest to run first
#
all:: qmtest
#
# Include other test rules
#
include Makefile.tests
#
# New QMTest functionality:
# The test suite is being transitioned over to QMTest. Eventually, it

View File

@@ -1,4 +1,5 @@
; RUN: export PATH=/usr/bin:/bin/:${PATH}
; RUN: PATH=/usr/bin:/bin/:${PATH}
; RUN: export PATH
; RUN: bugpoint %s -dce -bugpoint-deletecalls -simplifycfg
%.LC0 = internal global [13 x sbyte] c"Hello World\0A\00"