XL C/C++ Advanced Edition は、 PowerPC アーキテクチャーを持つ PowerPC ハードウェアで実行される Linux オペレーティング・システム用の、最適化を行う、標準ベースのコマンド行コンパイラーです。アプリケーション開発者は、 このコンパイラーを使用することにより、最適化された 32 ビット・アプリケーションおよび 64 ビット・アプリケーションを作成および保守することができます。 これらのアプリケーションでは、自動または明示の共用メモリー・プログラム並列化を使用して、パフォーマンスを 改善することができます。 PowerPC アーキテクチャーによって可能になる最適化およびパフォーマンスの改善の多くは、コンパイラー・オプション、 プラグマ、およびコンパイラー起動モードによって制御されます。 そのため、特殊な手作業によるコーディングの量を最小限にして、 このハードウェア・アーキテクチャーの利点を実現することができます。
この製品は、IBM VisualAge C++ for Linux バージョン 6.0 の後継リリースです。IBM は VisualAge C++ を XL C/C++ に商標変更しました。
プログラム・パフォーマンスは、PowerPC アーキテクチャーで可能な共用メモリー・プログラム並列化 (SMP) を活用することにより、かなり改善されます。 コンパイラーでは、SMP のインプリメントのために以下の方式が用意されています。
OpenMP ディレクティブは、反復的および非反復的コードの平行領域の定義に関係します。
このコンパイラーは、C のために次の 2 つの ISO プログラム言語仕様をサポートしています: ISO/IEC 9899:1990 (C89 として参照) および ISO/IEC 9899:1999 (C99)。 またこのコンパイラーは次の両方の C++ 標準もサポートしています: ISO/IEC 14882:2003 (Standard C++ として参照)、およびこの言語の最初の公式仕様である、ISO/IEC 14882:1998 (C++98 として参照)。標準化された言語レベルのほかに、このコンパイラーは、GNU C および C++ 言語拡張機能のサブセットを含む、数多くの言語拡張機能もサポートしています。
XL C/C++ は、C++ Abstract Binary Interface (ABI) をサポートします。 コンパイラーは、GNU C/C++ バージョン 3.2 または 3.3 コンパイラーで作成されたものと互換性のある、 バイナリー・ファイルまたはオブジェクト・ファイルを作成します。 また、このコンパイラーは OpenMP バージョン 2.0 標準もサポートしています。OpenMP 準拠の C および C++ オブジェクト・ファイルは、IBM XL Fortran for Linux で作成されたものとバイナリー互換であるため、C または C++ と Fortran の間での言語間呼び出しが可能です。
GNU C または C++ コンパイラーでコンパイルされたコードとのバイナリー互換性を獲得するため、 XL C/C++ でコンパイルされたプログラムには、同じシステムに常駐する GNU コンパイラーで使用されるものと同じヘッダーが組み込まれます。 コンパイラーは、GNU C で作成されたオブジェクトとのバイナリー互換性を維持しながら、プログラムを最適化します。 この関係について、注意すべき点は以下のとおりです。
XL C/C++ では基本コンパイラー呼び出しコマンドを選択でき、 さまざまなバージョン・レベルの C および C++ 言語をサポートしています。 各呼び出しコマンドは、言語レベルのコンパイラー・サブオプション、その他の関連言語フィーチャーのオプション、 および関連する定義済みマクロを自動的に設定します。 多くの場合、C ソース・ファイルをコンパイルするときは xlc コマンドを 使用し、C++ ソース・ファイルをコンパイルするとき、または C と C++ の両方のソース・ファイルが 存在するときは xlC コマンドを使用します。 xlc++ 呼び出しは xlC 呼び出しと同等です。
さまざまな基本コマンドがあり、特殊環境およびファイル・システムの要件をサポートしています。 コマンドの各バリエーションは、基本コマンドにサフィックスを付け足すことで形成されます。 Linux プラットフォームでは、スレッド・セーフ・アプリケーションを コンパイルするために、_r サフィックスが提供されています。これらのバリエーションは「再入可能コンパイラー呼び出し」とも呼ばれます。
また、gxlc および gxlc++ ユーティリティーは特殊なコンパイラー呼び出しです。
関連参照
XL C/C++ は GNU C および C++ ヘッダーを使用し、その結果得られるアプリケーションは、オペレーティング・システム とともにロードされた gcc レベルで提供される C および C++ ランタイム・ライブラリーとリンクされます。 XL C/C++ には、XL C/C++ コンパイラーの自動並列化および OpenMP フィーチャーをサポートするため、SMP ランタイム・ライブラリーが同梱されています。
高性能の数学ライブラリー
XL C/C++ では、バージョン 7 以降、調整された数学組み込み関数から 成る、IBM Mathematics Acceleration Subsystem (MASS) ライブラリーを出荷しています。 MASS ライブラリーはスレッド・セーフで、対応する libm ルーチンに対して改良されたパフォーマンスを提供します。 さらに、MASS ライブラリーは、コード変更を必要とすることなく、使用できます。コンパイラーは 32 ビットと 64 ビットをサポートします。 MASS ベクトル・ライブラリーのバージョン、それぞれ libmassvp4.a および libmassvp4_64.a。 これらのライブラリーには、単精度および倍精度の逆関数および平方根関数用のベクトル・ルーチンが含まれます。
XL C/C++ Advanced Edition には、プログラム開発を支援するため、以下の特殊なコマンドが用意されています。 詳しくは、XL C/C++ コンパイラー・リファレンス を参照してください。
XL C/C++ は、Unicode 規格、マルチバイト文字、UTF-16 および UTF-32 ストリング・リテラル、 複数のロードされたロケール、および双方向性をサポートします。 これらのフィーチャーにより、国際化対応アプリケーションを容易に作成できるようになります。
関連参照
XL C/C++ Advanced Edition では、以下の形式で製品資料を提供しています。
これらの項目は以下の場所にあるか、以下の場所でアクセスできます。
README ファイル | README ファイルは、/opt/ibmcmp/vacpp/7.0 およびインストール CD のルート・ディレクトリーにあります。 |
マニュアル・ページ | マニュアル・ページは、コンパイラー呼び出しおよび製品に提供されているすべてのコマンド行ユーティリティーのために提供されています。 |
HTML ベースのヘルプ・システム | HTML ファイルで構成されるヘルプ・システムが提供されています。ヘルプ・システムは、製品の インフォメーション・センターの一部として、オンラインでも使用可能です。 |
PDF 文書 | PDF ファイルは、/opt/ibmcmp/pdf ディレクトリーにあります。Adobe Acrobat Reader で表示および印刷ができます。 Adobe Acrobat Reader をインストールしていない場合には、http://www.adobe.com からダウンロードすることができます。 |
XL C/C++ PDF 文書の全ライブラリーは、以下のファイルで構成されています。
XL C/C++ の最新情報については、製品資料および以下の URL のサポート・ページをご覧ください。 さらに、IBM Technical Support Organization が作成した IBM Redbooks には、実際の経験からの現実的なシナリオに基づいた技術情報が含まれています。
XL C/C++ でのアプリケーション開発に役立つと思われる Redbooks として は、以下が挙げられます。
_ POWER4 Processor Introduction and Tuning Guide、 SG24-7041-00。
_ Understanding IBM eServer pSeries Performance and Sizing、SG24-4810-01。