[wwwdocs patch] Document s390 back-end changes for 4.1
Ulrich Weigand
uweigand@de.ibm.com
Sat Feb 18 15:40:00 GMT 2006
Gerald Pfeifer wrote:
> Perhaps you'd like to add a bit more on the first and third items above?
> (What does the optimization do? Where is the set of builtin operations
> defined? Is it documented in our docs, so that we could refer to that?)
Here's what I have committed now; I've expanded on the descriptions a
bit and used the same wordings as used elsewhere in the manual. If you
have further suggestions on how to improve on this, I'd be happy to
implement them as a follow-up ...
Thanks,
Ulrich
Index: htdocs/gcc-4.1/changes.html
===================================================================
RCS file: /cvs/gcc/wwwdocs/htdocs/gcc-4.1/changes.html,v
retrieving revision 1.16
diff -c -p -r1.16 changes.html
*** htdocs/gcc-4.1/changes.html 7 Feb 2006 19:09:12 -0000 1.16
--- htdocs/gcc-4.1/changes.html 18 Feb 2006 15:35:59 -0000
***************
*** 546,551 ****
--- 546,601 ----
precision values if they can be represented exactly.</li>
</ul>
+ <h3>S/390, zSeries and System z9</h3>
+ <ul>
+ <li>Support for the IBM System z9 109 processor has been added. When
+ using the <code>-march=z9-109</code> option, the compiler will
+ generate code making use of instructions provided by the extended
+ immediate facility.</li>
+ <li>Support for 128-bit IEEE floating point has been added. When using
+ the <code>-mlong-double-128</code> option, the compiler will map the
+ <code>long double</code> data type to 128-bit IEEE floating point.
+ Using this option constitutes an ABI change, and requires glibc
+ support.</li>
+ <li>Various changes to improve performance of generated code have been
+ implemented, including:
+ <ul>
+ <li>In functions that do not require a literal pool, register
+ <code>%r13</code> (which is traditionally reserved as literal pool
+ pointer), can now be freely used for other purposes by the
+ compiler.</li>
+ <li>More precise tracking of register use allows the compiler to
+ generate more efficient function prolog and epilog code in certain
+ cases.</li>
+ <li>The <code>SEARCH STRING</code>, <code>COMPARE LOGICAL
+ STRING</code>, and <code>MOVE STRING</code> instructions are now
+ used to implement C string functions.</li>
+ <li>The <code>MOVE CHARACTER</code> instruction with single byte
+ overlap is now used to implement the <code>memset</code> function
+ with non-zero fill byte.</li>
+ <li>The <code>LOAD ZERO</code> instructions are now used where
+ appropriate.</li>
+ <li>The <code>INSERT CHARACTERS UNDER MASK</code>, <code>STORE
+ CHARACTERS UNDER MASK</code>, and <code>INSERT IMMEDIATE</code>
+ instructions are now used more frequently to optimize bitfield
+ operations.</li>
+ <li>The <code>BRANCH ON COUNT</code> instruction is now used more
+ frequently. In particular, the fact that a loop contains a
+ subroutine call no longer prevents the compiler from using this
+ instruction.</li>
+ <li>The compiler is now aware that all shift and rotate instructions
+ implicitly truncate the shift count to six bits.</li>
+ </ul></li>
+ <li>Back-end support for the following generic features has been
+ implemented:
+ <ul>
+ <li>The full set of built-in functions for atomic memory access.</li>
+ <li>The <code>-fstack-protector</code> feature.</li>
+ <li>The optimization pass avoiding unnecessary stores of incoming
+ argument registers in functions with variable argument list.</li>
+ </ul></li>
+ </ul>
+
<h3>SPARC</h3>
<ul>
<li>The default code model in 64-bit mode has been changed from
--
Dr. Ulrich Weigand
Linux on zSeries Development
Ulrich.Weigand@de.ibm.com
More information about the Gcc-patches
mailing list