mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-13 04:30:23 +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>
|
<a name="newfeatures">New Features in LLVM 2.0</a>
|
||||||
</div>
|
</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
|
<div class="doc_subsubsection"><a name="optimizer">Optimizer
|
||||||
Improvements</a></div>
|
Improvements</a></div>
|
||||||
<div class="doc_text">
|
<div class="doc_text">
|
||||||
<p>The mid-level optimizer is now faster and produces better code in many cases.
|
<p>New features include:
|
||||||
Significant changes include:</p>
|
</p>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li></li>
|
<li></li>
|
||||||
@ -108,8 +136,7 @@ Generator Enhancements</a></div>
|
|||||||
|
|
||||||
<div class="doc_text">
|
<div class="doc_text">
|
||||||
<p>
|
<p>
|
||||||
The LLVM Target-Independent code generator now supports more target features and
|
New features include:
|
||||||
optimizes many cases more aggressively. New features include:
|
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
@ -132,6 +159,22 @@ LLVM 2.0:</p>
|
|||||||
|
|
||||||
</div>
|
</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_subsubsection"><a name="other">Other Improvements</a></div>
|
||||||
<div class="doc_text">
|
<div class="doc_text">
|
||||||
@ -246,6 +289,26 @@ implement ordered FP comparisons</a>.</li>
|
|||||||
|
|
||||||
</div>
|
</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">
|
<div class="doc_subsection">
|
||||||
<a name="sparc-be">Known problems with the SPARC back-end</a>
|
<a name="sparc-be">Known problems with the SPARC back-end</a>
|
||||||
@ -260,36 +323,6 @@ implement ordered FP comparisons</a>.</li>
|
|||||||
|
|
||||||
</div>
|
</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">
|
<div class="doc_subsection">
|
||||||
<a name="alpha-be">Known problems with the Alpha back-end</a>
|
<a name="alpha-be">Known problems with the Alpha back-end</a>
|
||||||
@ -338,36 +371,18 @@ programs.</li>
|
|||||||
|
|
||||||
<!-- ======================================================================= -->
|
<!-- ======================================================================= -->
|
||||||
<div class="doc_subsection">
|
<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>
|
||||||
|
|
||||||
<div class="doc_text">
|
<div class="doc_text">
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li>The Thumb mode works only on ARMv6 or higher processors. On sub-ARMv6
|
<li><a href="http://llvm.org/PR802">The C backend does not support inline
|
||||||
processors, any thumb program compiled with LLVM crashes or produces wrong
|
assembly code</a>.</li>
|
||||||
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>
|
</ul>
|
||||||
|
|
||||||
</div>
|
</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">
|
<div class="doc_subsection">
|
||||||
@ -379,16 +394,12 @@ patch</a> must be applied on QEMU.</li>
|
|||||||
|
|
||||||
<div class="doc_text">
|
<div class="doc_text">
|
||||||
|
|
||||||
<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
|
||||||
<p>llvm-gcc4 is far more stable and produces better code than llvm-gcc3, but
|
llvmdev mailing list if you are interested.</p>
|
||||||
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>FIXME: the list of supported stuff below needs to be updated. We do support
|
||||||
|
tls now, what else??</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- _______________________________________________________________________ -->
|
<!-- _______________________________________________________________________ -->
|
||||||
@ -531,20 +542,15 @@ lists, please let us know (also including whether or not they work).</p>
|
|||||||
|
|
||||||
<div class="doc_text">
|
<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
|
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>
|
<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
|
<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
|
||||||
@ -562,7 +568,7 @@ itself.</p>
|
|||||||
<i>However</i>, the exception handling mechanism used by llvm-gcc3 is very
|
<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
|
different from the model used in the Itanium ABI, so <b>exceptions will not
|
||||||
interact correctly</b>. </li>
|
interact correctly</b>. </li>
|
||||||
|
-->
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
Loading…
Reference in New Issue
Block a user