mirror of
https://github.com/RPCSX/llvm.git
synced 2024-11-29 22:50:47 +00:00
Add a skeleton for future contents
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37028 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
d82dc66944
commit
f3e5bc695e
@ -89,12 +89,40 @@ release series, like we did within the 1.x series.</li>
|
||||
<a name="newfeatures">New Features in LLVM 2.0</a>
|
||||
</div>
|
||||
|
||||
<!--_________________________________________________________________________-->
|
||||
<div class="doc_subsubsection"><a name="majorchanges">Major Changes</a></div>
|
||||
<div class="doc_text">
|
||||
<p>blah
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
<li>ding dong llvm-gcc3 is dead</li>
|
||||
<li>bytecode -> bitcode</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<!--_________________________________________________________________________-->
|
||||
<div class="doc_subsubsection"><a name="llvmgccfeatures">llvm-gcc
|
||||
Improvements</a></div>
|
||||
<div class="doc_text">
|
||||
<p>New features include:
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
<li>many new supported things</li>
|
||||
<li>easier to configure on linux</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
<!--_________________________________________________________________________-->
|
||||
<div class="doc_subsubsection"><a name="optimizer">Optimizer
|
||||
Improvements</a></div>
|
||||
<div class="doc_text">
|
||||
<p>The mid-level optimizer is now faster and produces better code in many cases.
|
||||
Significant changes include:</p>
|
||||
<p>New features include:
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
<li></li>
|
||||
@ -108,8 +136,7 @@ Generator Enhancements</a></div>
|
||||
|
||||
<div class="doc_text">
|
||||
<p>
|
||||
The LLVM Target-Independent code generator now supports more target features and
|
||||
optimizes many cases more aggressively. New features include:
|
||||
New features include:
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
@ -132,6 +159,22 @@ LLVM 2.0:</p>
|
||||
|
||||
</div>
|
||||
|
||||
<!--_________________________________________________________________________-->
|
||||
<div class="doc_subsubsection"><a name="specifictargets">Target-Specific
|
||||
Improvements</a></div>
|
||||
|
||||
<div class="doc_text">
|
||||
|
||||
<p>New features include:
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
<li></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<!--_________________________________________________________________________-->
|
||||
<div class="doc_subsubsection"><a name="other">Other Improvements</a></div>
|
||||
<div class="doc_text">
|
||||
@ -246,6 +289,26 @@ implement ordered FP comparisons</a>.</li>
|
||||
|
||||
</div>
|
||||
|
||||
<!-- ======================================================================= -->
|
||||
<div class="doc_subsection">
|
||||
<a name="arm-be">Known problems with the ARM back-end</a>
|
||||
</div>
|
||||
|
||||
<div class="doc_text">
|
||||
|
||||
<ul>
|
||||
<li>The Thumb mode works only on ARMv6 or higher processors. On sub-ARMv6
|
||||
processors, any thumb program compiled with LLVM crashes or produces wrong
|
||||
results. (<a href="http://llvm.org/PR1388">PR1388</a>)</li>
|
||||
<li>Compilation for ARM Linux OABI (old ABI) is supported, but not fully tested.
|
||||
</li>
|
||||
<li>QEMU-ARM (<= 0.9.0) wrongly executes programs compiled with LLVM. A non-affected QEMU version must be used or this
|
||||
<a href="http://cvs.savannah.nongnu.org/viewcvs/qemu/target-arm/translate.c?root=qemu&r1=1.46&r2=1.47&makepatch=1&diff_format=h">
|
||||
patch</a> must be applied on QEMU.</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
<!-- ======================================================================= -->
|
||||
<div class="doc_subsection">
|
||||
<a name="sparc-be">Known problems with the SPARC back-end</a>
|
||||
@ -260,36 +323,6 @@ implement ordered FP comparisons</a>.</li>
|
||||
|
||||
</div>
|
||||
|
||||
<!-- ======================================================================= -->
|
||||
<div class="doc_subsection">
|
||||
<a name="c-be">Known problems with the C back-end</a>
|
||||
</div>
|
||||
|
||||
<div class="doc_text">
|
||||
|
||||
<ul>
|
||||
|
||||
<li>The C back-end produces code that violates the ANSI C Type-Based Alias
|
||||
Analysis rules. As such, special options may be necessary to compile the code
|
||||
(for example, GCC requires the <tt>-fno-strict-aliasing</tt> option). This
|
||||
problem probably cannot be fixed.</li>
|
||||
|
||||
<li><a href="http://llvm.org/PR56">Zero arg vararg functions are not
|
||||
supported</a>. This should not affect LLVM produced by the C or C++
|
||||
frontends.</li>
|
||||
|
||||
<li>The C backend does not correctly implement the <a
|
||||
href="LangRef.html#int_stacksave"><tt>llvm.stacksave</tt></a> or
|
||||
<a href="LangRef.html#int_stackrestore"><tt>llvm.stackrestore</tt></a>
|
||||
intrinsics. This means that some code compiled by it can run out of stack
|
||||
space if they depend on these (e.g. C99 varargs).</li>
|
||||
|
||||
<li><a href="http://llvm.org/PR802">The C backend does not support inline
|
||||
assembly code</a>.</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
<!-- ======================================================================= -->
|
||||
<div class="doc_subsection">
|
||||
<a name="alpha-be">Known problems with the Alpha back-end</a>
|
||||
@ -338,36 +371,18 @@ programs.</li>
|
||||
|
||||
<!-- ======================================================================= -->
|
||||
<div class="doc_subsection">
|
||||
<a name="arm-be">Known problems with the ARM back-end</a>
|
||||
<a name="c-be">Known problems with the C back-end</a>
|
||||
</div>
|
||||
|
||||
<div class="doc_text">
|
||||
|
||||
<ul>
|
||||
<li>The Thumb mode works only on ARMv6 or higher processors. On sub-ARMv6
|
||||
processors, any thumb program compiled with LLVM crashes or produces wrong
|
||||
results. (<a href="http://llvm.org/PR1388">PR1388</a>)</li>
|
||||
<li>Compilation for ARM Linux OABI (old ABI) is supported, but not fully tested.
|
||||
</li>
|
||||
<li>QEMU-ARM (<= 0.9.0) wrongly executes programs compiled with LLVM. A non-affected QEMU version must be used or this
|
||||
<a href="http://cvs.savannah.nongnu.org/viewcvs/qemu/target-arm/translate.c?root=qemu&r1=1.46&r2=1.47&makepatch=1&diff_format=h">
|
||||
patch</a> must be applied on QEMU.</li>
|
||||
<li><a href="http://llvm.org/PR802">The C backend does not support inline
|
||||
assembly code</a>.</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
<!-- ======================================================================= -->
|
||||
<div class="doc_subsection">
|
||||
<a name="core">Known problems with the LLVM Core</a>
|
||||
</div>
|
||||
|
||||
<div class="doc_text">
|
||||
|
||||
<ul>
|
||||
<li>In the JIT, <tt>dlsym()</tt> on a symbol compiled by the JIT will not
|
||||
work.</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<!-- ======================================================================= -->
|
||||
<div class="doc_subsection">
|
||||
@ -379,16 +394,12 @@ patch</a> must be applied on QEMU.</li>
|
||||
|
||||
<div class="doc_text">
|
||||
|
||||
<p>
|
||||
|
||||
<p>llvm-gcc4 is far more stable and produces better code than llvm-gcc3, but
|
||||
does not currently support <a href="http://llvm.org/PR869">Link-Time
|
||||
Optimization</a> or <a href="http://llvm.org/PR870">C++ Exception Handling</a>,
|
||||
which llvm-gcc3 does.</p>
|
||||
|
||||
<p>llvm-gcc4 does not support the <a href="http://llvm.org/PR947">GCC indirect
|
||||
goto extension</a>, but llvm-gcc3 does.</p>
|
||||
<p>llvm-gcc4 does not currently support <a href="http://llvm.org/PR869">Link-Time
|
||||
Optimization</a> on most platforms "out-of-the-box". Please inquire on the
|
||||
llvmdev mailing list if you are interested.</p>
|
||||
|
||||
<p>FIXME: the list of supported stuff below needs to be updated. We do support
|
||||
tls now, what else??</p>
|
||||
</div>
|
||||
|
||||
<!-- _______________________________________________________________________ -->
|
||||
@ -531,20 +542,15 @@ lists, please let us know (also including whether or not they work).</p>
|
||||
|
||||
<div class="doc_text">
|
||||
|
||||
<p>For this release, the C++ front-end is considered to be fully
|
||||
<p>The C++ front-end is considered to be fully
|
||||
tested and works for a number of non-trivial programs, including LLVM
|
||||
itself.</p>
|
||||
itself, Qt, Mozilla, etc.</p>
|
||||
|
||||
</div>
|
||||
|
||||
<!-- _______________________________________________________________________ -->
|
||||
<div class="doc_subsubsection">
|
||||
Notes
|
||||
</div>
|
||||
|
||||
<div class="doc_text">
|
||||
<ul>
|
||||
<li>llvm-gcc4 does not support C++ exception handling at all yet.</li>
|
||||
<li>llvm-gcc4 only has partial support for <a href="http://llvm.org/PR870">C++
|
||||
Exception Handling</a>, and it is not enabled by default.</li>
|
||||
|
||||
<!-- NO EH Support!
|
||||
|
||||
<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
|
||||
@ -562,7 +568,7 @@ itself.</p>
|
||||
<i>However</i>, the exception handling mechanism used by llvm-gcc3 is very
|
||||
different from the model used in the Itanium ABI, so <b>exceptions will not
|
||||
interact correctly</b>. </li>
|
||||
|
||||
-->
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
Loading…
Reference in New Issue
Block a user