<li><a href="#codeemission">Machine Code Emission</a></li>
</ol>
-<div class="doc_text">
- <p><b>Written by Brian R. Gaeke</b></p>
+<div class="doc_author">
+ <p>Written by Brian R. Gaeke</p>
</div>
<!-- *********************************************************************** -->
<p>Whether you are a stranger to LLVM or not, and whether you are considering
using it for your projects or not, you may find it useful to understand how we
compare ourselves to other well-known compilers. The following list of points
-should help you understand -- from our point of view -- the way we see LLVM as
-being better than and/or different from a few other selected compilers and code
-generation systems.</p>
+should help you understand -- from our point of view -- some of the important
+ways in which we see LLVM as different from other selected compilers and
+code generation systems.</p>
<p>At the moment, we only compare ourselves below to <a
href="http://gcc.gnu.org/">GCC</a> and <a
<p>LLVM: Supports compilation of C and C++ (with more languages coming soon),
strong SSA-based optimization at compile-time, link-time, run-time, and
off-line, and multiple platform backends with Just-in-Time and ahead-of-time
-compilation frameworks. (See our tech report on <a
-href="http://llvm.cs.uiuc.edu/pubs/2003-09-30-LifelongOptimizationTR.html">Lifelong
+compilation frameworks. (See our document on <a
+href="http://llvm.cs.uiuc.edu/pubs/2004-01-30-CGO-LLVM.html">Lifelong
Code Optimization</a> for more.)</p>
<p>GCC: Many relatively mature platform backends support assembly-language code
generation from many source languages. No run-time compilation
-support. Relatively weak optimization support.</p>
+support.</p>
</div>
<!-- *********************************************************************** -->
<p>GNU lightning: C integer types and "void *" are supported. No type checking
is performed. Explicit type casts are not typically necessary unless the
underlying machine-specific types are distinct (e.g., sign- or zero-extension is
-apparently necessary, but casting "int" to "void *" would not be.) No floating
-point (?!)</p>
+apparently necessary, but casting "int" to "void *" would not be.)
+Floating-point support may not work on all platforms (it does not appear to be
+documented in the latest release).</p>
<p>LLVM: Compositional type system based on C types, supporting structures,
-opaque types, and C integer and floating point types.</p>
+opaque types, and C integer and floating point types. Explicit cast instructions
+are required to transform a value from one type to another.</p>
<p>GCC: Union of high-level types including those used in Pascal, C, C++, Ada,
Java, and FORTRAN.</p>