[llvm-commits] [dragonegg] r145936 - /dragonegg/trunk/www/index.html
Duncan Sands
baldrick at free.fr
Tue Dec 6 08:05:12 PST 2011
Author: baldrick
Date: Tue Dec 6 10:05:11 2011
New Revision: 145936
URL: http://llvm.org/viewvc/llvm-project?rev=145936&view=rev
Log:
Update for the new release (3.0).
Modified:
dragonegg/trunk/www/index.html
Modified: dragonegg/trunk/www/index.html
URL: http://llvm.org/viewvc/llvm-project/dragonegg/trunk/www/index.html?rev=145936&r1=145935&r2=145936&view=diff
==============================================================================
--- dragonegg/trunk/www/index.html (original)
+++ dragonegg/trunk/www/index.html Tue Dec 6 10:05:11 2011
@@ -14,12 +14,15 @@
<!--*********************************************************************-->
<p><a href="#gettingrelease">DragonEgg</a> is a
- <a href="http://gcc.gnu.org/wiki/plugins">gcc plugin</a> <tt>dragonegg.so</tt>
- that replaces gcc's optimizers and code generators with those from the
- <a href="http://llvm.org">LLVM project</a>.</p>
- <p>It is a reimplementation of
- <a href="http://llvm.org/docs/CommandGuide/">llvm-gcc</a>
- that works with <a href="http://gcc.gnu.org/gcc-4.5/">gcc-4.5</a> or later.</p>
+ <a href="http://gcc.gnu.org/wiki/plugins">gcc plugin</a> that replaces GCC's
+ optimizers and code generators with those from the
+ <a href="http://llvm.org">LLVM project</a>. It works with
+ <a href="http://gcc.gnu.org/gcc-4.5/">gcc-4.5</a> or
+ <a href="http://gcc.gnu.org/gcc-4.6/">gcc-4.6</a>,
+ targets the x86-32 and x86-64 processor families, and has been successfully
+ used on the Darwin, FreeBSD, KFreeBSD, Linux and OpenBSD platforms. It fully
+ supports Ada, C, C++ and Fortran. It has partial support for Go, Java, Obj-C
+ and Obj-C++.</p>
<br clear="all">
@@ -28,8 +31,7 @@
<!--=====================================================================-->
<ul>
- <li>Work with unmodified gcc</li>
- <li>Support all gcc languages</li>
+ <li>Fully support all GCC languages</li>
</ul>
<!--=====================================================================-->
@@ -37,35 +39,42 @@
<!--=====================================================================-->
<ul>
- <li>C works well, for example you can build a working gcc using it.</li>
- <li>C++ works fairly well, for example you can build LLVM, clang and boost
- with it (the resulting LLVM and clang work correctly; boost mostly works but
- there are some mysterious failures).</li>
- <li>Fortran works fairly well, for example SPEC CPU mostly compiles and works,
- but there are some failures. These have all been fixed in the development
- version.</li>
- <li>It can compile quite a lot of Ada, and the compiled code mostly seems to
- work.</li>
- <li>It can compile a small amount of Obj-C and Obj-C++.</li>
+ <li>Fortran works very well. Ada, C and C++ also work well.</li>
+ <li>It can compile a reasonable amount of Obj-C, Obj-C++ and Go.</li>
<li>It can compile simple Java programs, but they don't execute properly
(this is a consequence of the java front-end not supporting GCC's LTO).</li>
- <li>Limited debug info.</li>
- <li>Versions 2.9 and earlier require patching gcc (the development version
- does not).</li>
- <li>Only supports x86-32 and x86-64.</li>
- <li>Only supports linux, darwin and freebsd (additional gcc patches may be
- needed on darwin, see the <tt>README</tt> file).
+ <li>Debug info is poor.</li>
</ul>
- <p>DragonEgg is not mature - while it works quite well, it should not be
- considered production quality.</p>
-
<!--=====================================================================-->
<h2>Releases</h2>
<!--=====================================================================-->
<ul>
- <li><p><a href="#gettingrelease">DragonEgg-2.9</a> is the most recent
+ <li><p><a href="#gettingrelease">DragonEgg-3.0</a> is the most recent
+ DragonEgg release. It requires
+ <a href="http://llvm.org/releases/download.html#3.0">LLVM-3.0</a> and
+ <a href="http://gcc.gnu.org/gcc-4.5/">gcc-4.5</a> or
+ <a href="http://gcc.gnu.org/gcc-4.6/">gcc-4.6</a>.
+ <p>The 3.0 release has the following notable changes:</p>
+ <ul>
+ <li>GCC version 4.6 is now fully supported.</li>
+
+ <li>Patching and building GCC is no longer required: the plugin should work
+ with your system GCC (version 4.5 or 4.6; on Debian/Ubuntu systems the
+ gcc-4.5-plugin-dev or gcc-4.6-plugin-dev package is also needed).</li>
+
+ <li>The <tt>-fplugin-arg-dragonegg-enable-gcc-optzns</tt> option, which runs
+ GCC's optimizers as well as LLVM's, now works much better. This is the
+ option to use if you want ultimate performance! It is still experimental
+ though: it may cause the plugin to crash. Setting the optimization level
+ to <tt>-O4</tt> when using this option will optimize even harder, though
+ this usually doesn't result in any improvement over <tt>-O3</tt>.</li>
+
+ <li>The type and constant conversion logic has been almost entirely rewritten,
+ fixing a multitude of obscure bugs.</li>
+ </ul>
+ <li><p><a href="#gettingrelease">DragonEgg-2.9</a> was the third
DragonEgg release. It requires
<a href="http://llvm.org/releases/download.html#2.9">LLVM-2.9</a> and
<a href="http://gcc.gnu.org/gcc-4.5/">gcc-4.5</a>.</p>
@@ -237,39 +246,33 @@
<!--=====================================================================-->
<p>Get the
- <a href="http://llvm.org/releases/download.html#2.9">DragonEgg-2.9 source code</a>:
- <pre> wget http://llvm.org/releases/2.9/dragonegg-2.9.tgz</pre>
+ <a href="http://llvm.org/releases/download.html#3.0">DragonEgg-3.0 source code</a>:
+ <pre> wget http://llvm.org/releases/3.0/dragonegg-3.0.tgz</pre>
<p>Unpack it:</p>
- <pre> tar xzf dragonegg-2.9.tgz</pre>
- <p>Download the
- <a href="http://llvm.org/releases/download.html#2.9">LLVM-2.9 binaries</a>
- (mysteriously referred to as clang binaries) for your platform and install
- them.</p>
- <p>Get the <a href="http://gcc.gnu.org/gcc-4.5/">gcc-4.5 source code</a>:</p>
- <pre> wget http://mirrors.kernel.org/gnu/gcc/gcc-4.5.2/gcc-4.5.2.tar.gz</pre>
- <p>Unpack it:</p>
- <pre> tar xzf gcc-4.5.2.tar.gz</pre>
- <p>Apply the patch in <tt>dragonegg-2.9/gcc-patches/</tt> to the gcc-4.5
- source:</p>
- <pre> patch -d gcc-4.5.2 -p1 < dragonegg-2.9/gcc-patches/i386_static.diff</pre>
- <p><a href="http://gcc.gnu.org/install/">Build and install gcc-4.5</a> in the
- usual way, except that you should add the configure options <tt>--enable-plugin</tt>
- and <tt>--enable-lto</tt>.</p>
+ <pre> tar xzf dragonegg-3.0.tgz</pre>
+ <p>Install version 3.0 of LLVM, for example by downloading and installing the
+ <a href="http://llvm.org/releases/download.html#3.0">LLVM-3.0 binaries</a>
+ (mysteriously referred to as clang binaries) for your platform.</p>
+ <p>Make sure you have <a href="http://gcc.gnu.org/gcc-4.5/">gcc-4.5</a> or
+ <a href="http://gcc.gnu.org/gcc-4.6/">gcc-4.6</a> installed (you do not need
+ to build your own copy). On Debian and Ubuntu linux systems you also need to
+ install the <tt>gcc-4.5-plugin-dev</tt> or <tt>gcc-4.6-plugin-dev</tt>
+ package, as appropriate.</p>
<p>Doing</p>
- <pre> GCC=directory_where_gcc_installed/bin/gcc make</pre>
- <p>in the <tt>dragonegg-2.9</tt> directory should then build <tt>dragonegg.so</tt>.
- If you have arranged for the gcc executable to occur in your path with the
- name <tt>gcc-4.5</tt> (using a symbolic link for example) then there is no
- need to set the GCC variable: you can just do "<tt>make</tt>".
- If the LLVM binaries are not in your path then you can use</p>
- <pre> GCC=directory_where_gcc_installed/bin/gcc LLVM_CONFIG=directory_where_llvm_installed/bin/llvm-config make</pre>
+ <pre> GCC=gcc-4.6 make</pre>
+ <p>(if using gcc-4.6), or</p>
+ <pre> GCC=gcc-4.5 make</pre>
+ <p>(if using gcc-4.5) in the <tt>dragonegg-3.0</tt> directory should then
+ build <tt>dragonegg.so</tt>. If the LLVM binaries are not in your path then
+ you can use</p>
+ <pre> GCC=gcc-4.6 LLVM_CONFIG=directory_where_llvm_installed/bin/llvm-config make</pre>
<p>If you only built LLVM and did not install it then you can still build
dragonegg by setting LLVM_CONFIG to point to the copy of llvm-config in the
build tree.</p>
- <p>To use <tt>dragonegg.so</tt>, compile something with your just-installed
- version of <tt>gcc</tt>, adding <tt>-fplugin=path_to_dragonegg/dragonegg.so</tt>
- to the command line. See the <tt>README</tt> file for more details and useful
- command line options.</p>
+ <p>To use <tt>dragonegg.so</tt>, compile something with gcc-4.5/gcc-4.6,
+ adding <tt>-fplugin=path_to_dragonegg/dragonegg.so</tt> to the command line.
+ See the <tt>README</tt> file for more details and useful command line
+ options.</p>
<!--=====================================================================-->
<h2><a name="gettingdevel">Getting the development version</a></h2>
More information about the llvm-commits
mailing list