Changes To Find With The Upcoming Release Of GCC 7

Written by Michael Larabel in GNU on 9 April 2017 at 08:28 AM EDT. Add A Comment
GNU
GCC 7 is expected to see its first stable release this month, GCC 7.1, so here's a look at some of the features to find with this annual feature update to the GNU Compiler Collection.

Among the features over GCC 6 with GCC 7.1 will include:

- Various new optimizations including a new store merging pass, a new code hoisting optimization, a new loop-splitting optimization pass, and others.

- AddressSanitizer and UndefinedBehaviorSanitizer picked up some new sanitizer options.

- Initial support for the AMD HSA IL / BRIG 1.0 front-end.

- GCC 7 adds more fix-it hints around misspelled field names and other suggestions when hitting warnings or errors -- including misspelled function names and macro names. Similarly, the preprocessor can now offer suggestions for misspelled directives.

- Better detection of buffer overflows and other possible invalid memory accesses.

- GCC 7 has experimental support for all current C++17 draft specifications. Libstdc++ also has experimental support for C++17.

- Partial support for OpenMP 4.5 with the Fortran front-end.

- GCC 7's Go language front-end has GO 1.8 support.

- Java (GCJ) was dropped.

- ARMv8.2-A and ARMv8.3-A architecture support in the AArch64 target. There is also now formal support for the Cortex A73, Broadcom Vulcan, ThunderX CN81xx/CN83xx/CN88xx/CN99xx, and Qualcomm Falkor.

- Support for ARMv5/ARMv5E has been deprecated.

- More AVX-512 support in the x86_64 code.

- NVIDIA's NVPTX back-end now supports OpenMP target region offloading.

- The RISC-V port was merged.

- The PowerPC and SPARC ports now use the LRA local register allocator by default. All new GCC targets will also use LRA.

- Support was added for Google's Fuchsia OS.

- More helpful dumping of Assembly via -fverbose-asm now including comments showing the source lines corresponding to the given Assembly, etc.

- GCC and G++ programs can now give suggestions for misspelled arguments and misspelled parameters.

Those are the changes of GCC 7 that were of most interest to me. If you want to see the extensive list of all the GCC changes and have plenty of time on your hands for reading the lengthy change list, see the GCC documentation. GCC 7.1 will likely be officially released within the next week or two.
Related News
About The Author
Michael Larabel

Michael Larabel is the principal author of Phoronix.com and founded the site in 2004 with a focus on enriching the Linux hardware experience. Michael has written more than 20,000 articles covering the state of Linux hardware support, Linux performance, graphics drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and OpenBenchmarking.org automated benchmarking software. He can be followed via Twitter, LinkedIn, or contacted via MichaelLarabel.com.

Popular News This Week