This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[wwwdocs] My GCC 4.2 changes
- From: Paolo Bonzini <paolo dot bonzini at lu dot unisi dot ch>
- To: GCC Patches <gcc-patches at gcc dot gnu dot org>, Gerald Pfeifer <gerald at pfeifer dot com>
- Date: Tue, 04 Jul 2006 10:14:20 +0200
- Subject: [wwwdocs] My GCC 4.2 changes
This patch documents the visible changes that I'm more or less
responsible for. These include the reload changes to support SSE math
(PR/19653), the bashjar script, toplevel bootstrap and --with-target-tools.
I don't remember exactly the speed-up for the x86 change, but I'm doing
a reportable run of SPECfp2000 (-O2 vs. -mfpmath=sse -msse2 -O2). When
committing the patch I will adjust it from 5% to whatever I find.
Tested with the W3C validator, which only complains about a missing
DOCTYPE (without and with the patch). Ok to commit?
Paolo
Index: changes.html
===================================================================
RCS file: /cvs/gcc/wwwdocs/htdocs/gcc-4.2/changes.html,v
retrieving revision 1.10
diff -p -u -r1.10 changes.html
--- changes.html 5 Jun 2006 18:37:15 -0000 1.10
+++ changes.html 4 Jul 2006 08:04:47 -0000
@@ -86,10 +86,28 @@
http://gcc.gnu.org/wiki/Statically%20linking%20libgcj
</a>
</li>
+
+ <li>
+ <tt>fastjar</tt> is not bundled anymore with GCC. To build libgcj,
+ you will need either InfoZIP (both <tt>zip</tt> and <tt>unzip</tt>)
+ or an external <tt>jar</tt> program. In the former case, the GCC
+ build will install a <tt>jar</tt> shell script that uses InfoZIP
+ to provide the functionality of <tt>jar</tt>.
</ul>
<h2>New Targets and Target Specific Improvements</h2>
+<h3>x86/x86-64</h3>
+ <ul>
+ <li>The generated code for scalar SSE floating-point instructions
+ has been improved. Using SSE for math on 32-bit CPUs can
+ provide speed improvements around 5\% over the x87 instruction
+ set, though the resulting binary will only run on processors
+ that implement the instructions. To do so, use the
+ options <tt>-mfpmath=sse -msse</tt> or <tt>-mfpmath=sse
+ -msse2</tt>.</li>
+ </ul>
+
<h3>SPARC</h3>
<ul>
<li>The default CPU setting has been changed from V7 to V9 in 32-bit
@@ -113,5 +131,48 @@
<h2>Other significant improvements</h2>
+<h3>Build system improvements</h3>
+ <ul>
+ <li><p>All the components of the compiler are now bootstrapped by
+ default. This improves the resilience to bugs in the system
+ compiler or binary compatibility problems, as well as providing
+ better testing of GCC 4.2 itself. In addition, if you build
+ the compiler from a combined tree, the assembler, linker, etc.
+ will also be bootstrapped (i.e. built with themselves).</p>
+
+ <p>You can disable this behavior, and go back to
+ the pre-GCC 4.2 set up, by configuring GCC with
+ <tt>--disable-bootstrap</tt>.</p></li>
+
+ <li><p>The rules that <tt>configure</tt> follows to find target tools
+ resemble more closely the locations that the built compiler
+ will search. In addition, you can use the new configure option
+ <tt>--with-target-tools</tt> to specify where to find the
+ target tools used during the build, without affecting what the
+ built compiler will use.</p>
+
+ <p>This can be especially useful when building packages of
+ GCC. For example, you may want to build GCC with
+ GNU <tt>as</tt> or <tt>ld</tt>, even if the resulting compiler
+ to work with the native assembler and linker. To do so, you
+ can use <tt>--with-target-tools</tt> to point to the native
+ tools.</p></li>
+ </ul>
+
+<h3>Incompatible changes to the build system</h3>
+ <ul>
+ <li>Front-ends external to GCC should modify their
+ <tt>Make-lang.in</tt> file to replace double-colon rules
+ (e.g. <tt>dvi::</tt>) with normal rules (like <tt>lang.dvi:</tt>).
+ Front-end makefile hooks do not use double-colon rules anymore.</li>
+
+ <li>Up to GCC 4.1, a popular way to specify the target tools used
during
+ the build was to create directories named <tt>gas</tt>,
<tt>binutils</tt>,
+ etc. in the build tree, and create links to the tools from there.
+ This does not work anymore when the compiler is bootstrapped. The
+ new configure option <tt>--with-target-tools</tt> provides a better
+ way to achieve the same effect, and works for all native and cross
+ settings.</li>
+ </ul>
</body>
</html>