I doubt that the Gnu Compiler Collection (GCC) will go away any time soon. But it is notable that the 25-year old open-source initiative is facing some competition and rivalry – most notably from LLVM. LLVM is an open-source initiative similar to GCC but one that is favored and pushed by the significant force that is Apple.
The Free Software Foundation distributes GCC under the GNU General Public License. This is a license for royalty-free general use but requires that derived works can only be distributed under the same license terms.
GCC, which originally stood for Gnu C Compiler – because only the C software programming language was supported – has played an important role in the growth of free software and as a first port of call for those wishing to add compiler support to hardware. It therefore plays a significant role in embedded development and the world of microcontrollers.
But all things have their season and it may be that GCC's significance will now begin to reduce over time. Or it may respond to competitive pressure being brought to bear by LLVM.
One reference point I can give you is XMOS Ltd. (Bristol, England), a developer of event-driven, low latency multicore processors. XMOS has recently started to reposition the company as high-end microcontroller company. There's been no significant change in the hardware it sells as yet but the company recently reworked its entire line of development tools and moved them from GCC to LLVM.
The XMOS move reportedly produced improvements in compile time of about 40 percent, in run-time performance of about 60 percent, and reduced code size by 17 percent, over the previous GCC-based compiler.
LLVM used to stand for low-level virtual machine but now has little to do with traditional virtual machines, although it does support runtime as well as static compilation. LLVM began as a research project at the University of Illinois Urbana–Champaign, under the direction of Vikram Adve and Chris Lattner with the goal of providing a three-phase compiler strategy capable of supporting both static and dynamic compilation of arbitrary programming languages.
As a side note, yes, LLVM is not as mature as gcc yet - it only recently supported all of C++. But it was clear that something had to be done - if not a replacement for gcc, then a complete rewrite of gcc to make it light weight again.
Join our online Radio Show on Friday 11th July starting at 2:00pm Eastern, when EETimes editor of all things fun and interesting, Max Maxfield, and embedded systems expert, Jack Ganssle, will debate as to just what is, and is not, and embedded system.