リチャード・ストールマンは、パスカルの耐え難い方言で1985年にGCCの最初のバージョンを書きました。 1987年、コンパイラはCで書き直され、この形式では2013年まで存在していました。
GCC 4.8の新しいバージョンでは、パフォーマンスが向上し、最適化のほとんどない最適化
–Og
が実装され、超高速コンパイルが可能になりました。 Google SanitizerのAddress SanitizerエラーディテクタとThread Sanitizerデータレースディテクタが追加されました。これらは、マルチスレッドアプリケーションの異なるスレッドからの同じデータの共有を検出します。 イノベーションの詳細については、 リリースノートを参照してください。
Address SanitizerディテクターはLinux(IA-32、x86-64、x32、PowerPC、PowerPC64)およびDarwin(x86-64)プラットフォームで使用でき、プログラムの速度は約半分に低下します。
スレッドサニタイザーは約10倍遅くなります。
さらに、C ++ 11のサポートはGCC 4.8で改善され、ARMv8命令セットを備えたプロセッサにはAArch64(ARM64)アーキテクチャのサポートがありますが、この命令セットを備えたデバイスはまだ市場にありません。
GCCはGNUシステムの公式コンパイラーであり、LinuxおよびBSDのさまざまなバージョン、Mac OS X、ReactOS、BeOSなど、他の多くのオペレーティングシステムのメインコンパイラーでもあります。
C ++に移行する理由と、特に加えられた変更の詳細については、 GCC Wiki:C ++ Conversionを参照してください。 一言で言えば、C ++言語の人気の理由と「プラス」のよりクリーンなコード。
ソースコードGCC 4.8.0
公式SVNサーバー
GCCマニュアル
幸いなことに、C ++への切り替えは、GCCコンパイラのパフォーマンスにほとんど影響を与えませんでした。
ランステイラーの2008年のプレゼンテーションからのいくつかの例