Open SourceAfter years of development saw the release of a free set of compilers, GCC 4.8.

The new release is notable for the transition of the project to use the language C + +, improved standards support C + +11 and C11, the integration of components and Address Sanitizer Thread Sanitizer, architecture support AArch64 (ARM64).

Major changes:

– Convert the code base to use the language C + +. The main code still remains in the C language, but absolutely necessary to build C + + compiler, as some parts have been rewritten in C + + and is now allowed to include new features in GCC in the language C + +;

– Support for 64-bit architecture AArch64 (ARM64), present in the processor instruction set ARMv8. AArch64 architecture includes a new set of commands A64, a remarkable expansion of the number of registers, new teams for the floating-point (FP) and the new vector SIMD-instructions NEON, such as instructions to accelerate AES encryption algorithms and SHA-1/SHA-256 . Currently based device ARMv8 still in the prototype testing phase and has not yet gone on sale;

– Support for the family of Intel Haswell, AMD Jaguar and AMD Steamroller;
Integrating Address Sanitizer, created by Google and has worked very well in identifying vulnerabilities in the browser Chrome. Address Sanitizer allows you to identify errors in memory management and facts incorrect memory access, such as accessing memory regions after their release (“use-after-free”), the destruction of the heap, stack corruption, buffer overflows. Address Sanitizer test included with option “-fsanitize = address” and can slow down the program about two times by adding additional checks. Address Sanitizer can be used on platforms, GNU / Linux (IA-32, x86-64, x32, PowerPC, PowerPC64) and Darwin (x86-64);

– The mode Thread Sanitizer (-fsanitize = thread), designed to detect the effect of “race” when sharing the same data from multiple threads multithreaded application. Thread Sanitizer is based on code from the program Valgrind. Thread Sanitizer can use up to 10 times slow down the program. Mode is only available for x86-64 platform GNU / Linux;

– A new level of optimization “-Og”, which increases the ease of debugging by significantly reducing the time of compilation. In the “-Og” compiler produces only minimal optimization, do not affect the results when debugging;

– Enhancements to support standard C + +11 and C11, as well as the implementation of a number of possibilities of the future standard C + +1 y.

Additionally, you can highlight and study the performance of the code, assembled C compiler and C + + from the GCC 4.7.2. As a result, overturned the view that the C code compiled by the compiler cc slower than if the code will be compiled by the compiler + +. A subset of the C language compiler available when building C + +, is as effective as a pure C compiler, the difference is only 0.1%. Thus the transition to assembly GCC C + + compiler does not affect performance.

Advertisements