Documentation Development GCC Tools Beat

From FedoraProject

(Difference between revisions)
Jump to: navigation, search
m (Optimizer improvements)
Line 19: Line 19:
 
=== Optimizer improvements ===
 
=== Optimizer improvements ===
  
* The -save-temps now takes an optional argument. The <code>-save-temps</code> and <code>-save-temps=cwd</code> switches write the temporary files in the current working directory based on the original source file. The <code>-save-temps=obj</code> switch will write files into the directory specified with the <code>-o</code> option, and the intermediate filenames are based on the output file.
+
* The <code>-save-temps</code> now takes an optional argument. The <code>-save-temps</code> and <code>-save-temps=cwd</code> switches write the temporary files in the current working directory based on the original source file. The <code>-save-temps=obj</code> switch will write files into the directory specified with the <code>-o</code> option, and the intermediate filenames are based on the output file.
 
* Debugging dumps are now created in the same directory as the object file rather than in the current working directory.
 
* Debugging dumps are now created in the same directory as the object file rather than in the current working directory.
 
* A new link-time optimizer has been added (<code>-flto</code>). When this option is used, GCC generates a bytecode representation of each input file and writes it to special ELF sections in each object file.
 
* A new link-time optimizer has been added (<code>-flto</code>). When this option is used, GCC generates a bytecode representation of each input file and writes it to special ELF sections in each object file.

Revision as of 00:57, 6 September 2010

Contents

gcc

Fedora 14 includes version 4.5 of gcc and the various compilers which depend on gcc. The full details of the changes my be found at http://gcc.gnu.org/gcc-4.5/changes.html, but some main points follow.

Obsoleted support and features

The following ports for individual systems on particular architectures have been obsoleted:

  • IRIX releases before 6.5 (mips-sgi-irix5*, mips-sgi-irix6.[0-4])
  • Solaris 7 (*-*-solaris2.7)
  • Tru64 UNIX releases before V5.1 (alpha*-dec-osf4*, alpha-dec-osf5.0*)
  • Details for the IRIX, Solaris 7, and Tru64 UNIX obsoletions can be found in the announcement.
  • Support for the classic POWER architecture implemented in the original RIOS and RIOS2 processors of the old IBM RS/6000 product line has been obsoleted in the rs6000 port. This does not affect the new generation Power and PowerPC architectures.

Support has also been removed for a number of features obsoleted in 4.4.

Warning (medium size).png
On x86 targets, code containing floating-point calculations may run significantly slower when compiled with GCC 4.5 in strict C99 conformance mode than they did with earlier GCC versions.

Optimizer improvements

  • The -save-temps now takes an optional argument. The -save-temps and -save-temps=cwd switches write the temporary files in the current working directory based on the original source file. The -save-temps=obj switch will write files into the directory specified with the -o option, and the intermediate filenames are based on the output file.
  • Debugging dumps are now created in the same directory as the object file rather than in the current working directory.
  • A new link-time optimizer has been added (-flto). When this option is used, GCC generates a bytecode representation of each input file and writes it to special ELF sections in each object file.
  • The automatic parallelization pass was enhanced to support parallelization of outer loops.
  • GCC now optimize exception handling code.

Reference the changes page above for more details on these and other optimizations.

Language-specific improvements

There are new language-specific features for Ada, C, C++, Fortran and Java.

New targets

There are new target processors within the AIX, ARM, AVR, IA32, M68K, MeP, MIPS, RS/6000 and RX processor families.

Installation Changes

The move to autotools has resulted in some artifacts changing the directories where they are found. For details, as in all of the above details, refer to the changes page.