This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[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>



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]