Add ideas and small revisions from Vikram

llvm-svn: 8818
This commit is contained in:
Chris Lattner 2003-10-02 16:38:05 +00:00
parent b9cde76e60
commit 6249576300
1 changed files with 44 additions and 22 deletions

View File

@ -9,10 +9,11 @@
<ol>
<li><a href="#intro">Introduction</a>
<li><a href="#whatsnew">What's New?</a>
<li><a href="#portability">Portability and Supported Platforms</a>
<li><a href="#install-instructions">Installation Instructions</a>
<li><a href="#knownproblems">Known Problems</a>
<ul>
<li><a href="#portability">Portability Problems</a>
<!-- <li><a href="#portabilityprobs">Portability Problems</a> -->
<li><a href="#core">Known problems with the LLVM Core</a>
<li><a href="#c-fe">Known problems with the C Front-end</a>
<li><a href="#c++-fe">Known problems with the C++ Front-end</a>
@ -37,8 +38,10 @@
This document contains the release notes for the LLVM compiler infrastructure,
release 1.0. The most up-to-date version of this document can be found on the
<a href="http://llvm.cs.uiuc.edu/releases/1.0/ReleaseNotes.html">LLVM web
site</a>. Since this document may be updated after the release, it is best to
read the copy hosted there.
site</a>. If you are not reading this on the LLVM web pages, you should
probably go there, because this document may be updated after the release.<p>
FIXME: What is this document? Where do I find other documents?<p>
<!-- *********************************************************************** -->
@ -54,7 +57,26 @@ compiler, a C back-end, stable X86 and Sparc V9 static and JIT code generators,
as well as a large suite of scalar and interprocedural optimizations.<p>
TODO: Works on: SPEC CPU 2000<p>
TODO: Works on: Olden/Ptrdist benchmarks
TODO: Works on: Olden/Ptrdist benchmarks<p>
The What's New section should give a bulletted list of what is
included, perhaps a couple of lists (Stable, Beta).<p>
It would be useful to give a pointer to a list of the available passes (at least
for the standard compiler techniques).<p>
<!-- *********************************************************************** -->
</ul><table width="100%" bgcolor="#330077" border=0 cellpadding=4 cellspacing=0>
<tr><td align=center><font color="#EEEEFF" size=+2 face="Georgia,Palatino"><b>
<a name="portability">Portability and Supported Platforms
</b></font></td></tr></table><ul>
<!-- *********************************************************************** -->
LLVM has only been extensively tested on ia32-linux and sparc-solaris machines.
The core LLVM infrastructure uses "autoconf" for portability, so hopefully we
work on more platforms than that. However, it is extremely likely that we
missed something. We welcome portability patches and error messages.<p>
<!-- *********************************************************************** -->
@ -76,18 +98,13 @@ FIXME
This section contains all known problems with the LLVM system, listed by
component. As new problems are discovered, they will be added to these
sections, so it is important to check the <a
href="http://llvm.cs.uiuc.edu/releases/1.0/ReleaseNotes.html">web version</a> of
this document for up-to-date information.
sections.
<!-- _______________________________________________________________________ -->
<!--
</ul><h4><a name="portability"><hr size=0>Portability Problems</h4><ul>
LLVM has only been extensively tested on ia32-linux and sparc-solaris machines.
The core LLVM infrastructure uses "autoconf" for portability, so hopefully we
work on more platforms than that. However, it is extremely likely that we
missed something. We welcome portability patches and error messages.<p>
-->
<!-- _______________________________________________________________________ -->
@ -109,8 +126,8 @@ missed something. We welcome portability patches and error messages.<p>
<li>Inline assembly is not yet supported.<p>
<li>"long double" is transformed by the front-end into "double". There is no
support for floating point data types of any size other than 32 and 64 bits.
<p>
support for floating point data types of any size other than 32 and 64 bits.
<p>
<li>C99 Variable sized arrays do not release stack memory when they go out of
scope. Thus, the following program may run out of stack space:
<pre>
@ -194,7 +211,7 @@ missed something. We welcome portability patches and error messages.<p>
<ol>
<li><a href="http://gcc.gnu.org/onlinedocs/gcc/Statement-Exprs.html#Statement%20Exprs">Statement Exprs</a>: Putting statements and declarations inside expressions.
<li><a href="http://gcc.gnu.org/onlinedocs/gcc/Typeof.html#Typeof">Typeof</a>: <code>typeof</code>: referring to the type of an expression.
<li><a href="http://gcc.gnu.org/onlinedocs/gcc/Lvalues.html#Lvalues">Lvalues</a>: Using <code>?:</code>, <code>,</code> and casts in lvalues.
<li><a href="http://gcc.gnu.org/onlinedocs/gcc/Lvalues.html#Lvalues">Lvalues</a>: Using <code>?:</code>, "<code>,</code>" and casts in lvalues.
<li><a href="http://gcc.gnu.org/onlinedocs/gcc/Conditionals.html#Conditionals">Conditionals</a>: Omitting the middle operand of a <code>?:</code> expression.
<li><a href="http://gcc.gnu.org/onlinedocs/gcc/Long-Long.html#Long%20Long">Long Long</a>: Double-word integers.
<li><a href="http://gcc.gnu.org/onlinedocs/gcc/Complex.html#Complex">Complex</a>: Data types for complex numbers.
@ -246,16 +263,21 @@ versions. For more information, see the C++ section of the <a
href="http://gcc.gnu.org/gcc-3.4/changes.html">GCC 3.4 release notes</a>.<p>
<li>Destructors for local objects are not always run when a <tt>longjmp</tt> is
performed. In particular, destructors for objects in the <tt>longjmp</tt>ing
performed. In particular, destructors for objects in the <tt>longjmp</tt>ing
function and in the <tt>setjmp</tt> receiver function may not be run.
Objects in intervening stack frames will be destroyed however (which is
better than most compilers).<p>
<li>The calling conventions and name mangling used by the LLVM C++ front-end do
follow the <a href="http://www.codesourcery.com/cxx-abi">Itanium C++
ABI</a>, and thus we should be binary compatible with native C++ code
compiled with a recent GCC compiler. However, the exception handling
mechanisms are very different, so they will not interact correctly.
<li>The LLVM C++ front-end follows the <a
href="http://www.codesourcery.com/cxx-abi">Itanium C++ ABI</a>.
This document, which is not Itanium specific, specifies a standard for name
mangling, class layout, v-table layout, RTTI formats, and other C++
representation issues. Because we use this API, code generated by the LLVM
compilers should be binary compatible with machine code generated by other
Itanium ABI C++ compilers (such as G++, the Intel and HP compilers, etc).
<i>However</i>, the exception handling mechanism used by LLVM is very
different from the model used in the Itanium ABI, so <b>exceptions will not
interact correctly</b> .
<!-- _______________________________________________________________________ -->
</ul><h4><a name="x86-be"><hr size=0>Known problems with the X86 back-end</h4><ul>
@ -323,6 +345,6 @@ via the mailing lists.<p>
<address>By: <a href="mailto:sabre@nondot.org">Chris Lattner</a></address>
<!-- Created: Wed Oct 1 17:38:54 CDT 2003 -->
<!-- hhmts start -->
Last modified: Thu Oct 2 00:06:58 CDT 2003
Last modified: Thu Oct 2 11:37:25 CDT 2003
<!-- hhmts end -->
</body></html>