GCC開発者が提供するものを簡単に見てみましょう。
- リンク時間の最適化。 デフォルトでは、最適化はコンパイル単位(ファイル)のレベルでのみ行われますが、GCCの新しいバージョンでは、アプリケーションレベルでバイナリコードを最適化できます。 LTOのコードは4.5に戻りましたが、開発者は実装が粗雑であると考え、以前のリリースには含まれていませんでした。 LTOは大規模なオープンソースプロジェクト(GCC、Mozilla)で正常に動作するようになりました。プロジェクトでも試してみてください。 LTOにより、最終ファイルが大幅に削減され、アプリケーションの速度も向上します。 しかし、無料で提供されるものはありません-中間(* .o)ファイルのサイズが増加し、コンパイラのメモリ要件が増大しています。
- コンパイラ自体の速度特性を改善します。 どうやらこれはClang / LLVMからの批判への対応です。 GCCのコンパイルが10%速くなり、必要なメモリが少なくなりました。
- 将来のC ++ 0xおよびC1X標準の一部の機能の実験的サポートを追加しました。
- Go言語のフロントエンドがあります。 Inu Taylorに感謝します。
- Cortex-M4プロセッサのサポートが追加されました。
- GCCは、MacOSXのCore Foundationで正しく動作するようになりました。 これにより、Xcodeの廃止(4.2)の代わりにバージョン4.6を使用できます。
- x86 / 64プラットフォームにSplitStackを実装しました。 これで、プロセススタックに巨大な分割不可能なメモリを割り当てる必要がなくなりました。 SplitStackを使用すると、ヒープ上のスタックにメモリを動的に割り当てることができます。 これにより、32ビットアドレス空間内のプロセス/コルーチンの数を数百万に拡大することができます。