You are viewing nickclifton

Previous Entry | Next Entry

February 2013 GNU Toolchain Update

Deep Thought
Hi Guys,

It has been a quiet month. The FSF GCC sources are closed to new features at the moment, so there are only a few new things to report:

* Support for the Altera NioS II architecture has been contributed to the Binutils.


* A new feature has been added to G++: "Function Multiversioning".

This allows the programmer to specify multiple versions of the same function, each of which is specialized for a particular variant of a given target. (At the moment only variants for the x86 target are supported). At runtime the appropriate version is automatically executed, depending upon the target where the execution takes place.

For example:

__attribute__ ((target ("default"))) int foo () { return 0; }
__attribute__ ((target ("sse4.2"))) int foo () { return 1; }
__attribute__ ((target ("arch=atom"))) int foo () { return 2; }

When foo() is executed the result returned will depend upon the architecture where the program runs, not the architecture where the program was compiled.

See http://gcc.gnu.org/wiki/FunctionMultiVersioning for more details.


* GCC's loop optimizer has been improved. It will now use language constraints to help it derive bounds for the number of iterations of a loop. The bounds are then used as a guide to loop unrolling, peeling and loop exit test optimizations.

This does assume that the loop code does not invoke undefined behaviour by, for example, causing signed integer overflows or making
out-of-bound array accesses. If necessary this optimization can be turned off via the new command line option:

-fno-aggressive-loop-optimizations

Cheers
Nick

Profile

Deep Thought
nickclifton
nickclifton

Latest Month

October 2014
S M T W T F S
   1234
567891011
12131415161718
19202122232425
262728293031 
Powered by LiveJournal.com
Designed by chasethestars