...

HP C

by user

on
Category: Documents
15

views

Report

Comments

Description

Transcript

HP C
GNU CC と HP C の比較
PA-RISC 版 HP-UX 上での C コンパイラの選択に関する開発者ガイド(第 1 版)
white paper
目次
1.0 要約 ........................................................................................................................................................... 2
2.0 はじめに ..................................................................................................................................................... 2
3.0 機能 ........................................................................................................................................................... 3
3.1 共通の機能 ............................................................................................................................................. 3
3.1.1 ANSI 標準のサポート ........................................................................................................................ 3
3.1.2 複数レベルの最適化の実行(O1、O2、O3) ..................................................................................... 3
3.1.3 32 ビット・アプリケーションと 64 ビット・アプリケーションのコンパイル.................................................... 3
3.1.4 一般的に使用される C コンパイラ・オプションのサポート...................................................................... 3
3.1.5 WDB デバッガの使用 ........................................................................................................................ 3
3.1.6 最適化コードのデバッグ..................................................................................................................... 4
3.1.7 インクリメンタル・リンク....................................................................................................................... 4
3.1.8 活発な開発とサポート........................................................................................................................ 4
3.1.9 両コンパイラの組み合わせ ................................................................................................................ 4
3.2 HP C のみが提供する機能 ....................................................................................................................... 5
3.2.1 プロファイルベースの最適化 .............................................................................................................. 5
3.2.2 ヒュージ・データ................................................................................................................................. 5
3.2.3 修正と継続(Fix and Continue)........................................................................................................... 5
3.2.4 オブジェクト・モジュールのみでデバッグ .............................................................................................. 5
3.2.5 並列処理オプションとプラグマ ............................................................................................................ 5
3.2.6 スレッド・ローカル記憶領域 ................................................................................................................ 5
3.2.7 Softbench .......................................................................................................................................... 5
3.2.8 プラグマ ........................................................................................................................................... 6
3.3 GNU CC のみが提供する機能 ................................................................................................................. 6
3.3.1 無料のコンパイラ .............................................................................................................................. 6
3.3.2 さまざまなオペレーティング・システムにわたる高い移植性 ................................................................... 6
4.0 パフォーマンス ............................................................................................................................................ 7
4.1 最適化.................................................................................................................................................... 7
4.2 ベンチマーク・パフォーマンス .................................................................................................................... 7
4.2.1 SPEC INT 2000.................................................................................................................................. 8
4.2.2 SPEC FP 2000 ................................................................................................................................... 8
4.2.3 SPEC の結果..................................................................................................................................... 9
5.0 結論........................................................................................................................................................... 9
6.0 付録 I コンパイラ・オプション ...................................................................................................................... 10
6.1 共通のオプション ................................................................................................................................... 10
6.2 HP C 固有のオプション........................................................................................................................... 11
6.3 GNU CC オプション ............................................................................................................................... 11
7.0 付録 II 最適化 .......................................................................................................................................... 12
7.1 HP C による最適化 ................................................................................................................................ 12
7.2 GNU CC による最適化 .......................................................................................................................... 13
8.0 付録 III SPEC の結果................................................................................................................................. 15
8.1 HP C の結果 ......................................................................................................................................... 15
8.2 GNU CC の結果 ................................................................................................................................... 16
1.0 要約
HP-UX 上では、HP C と GNU CC という 2 つの C1コンパイラを使用できます。どちらのコンパイラを開発に使用すべき
かを判断するために、両者の機能、最適化、およびパフォーマンスについて比較調査を行いました。しかし残念ながら、
すべてのケースにあてはまる答えを得ることはできませんでした。例えばパフォーマンスが重視されるアプリケーション
については HP C の方が適していますが、これは一般に HP-UX 上では HP C の方がより高性能なコードを生成できる
ためです。一方、複数のプラットフォーム上で実行する必要があり、パフォーマンスがそれほど重視されないアプリケー
ションについては、移植性に非常に優れた GNU CC の方が適しています。また、HP C のみがサポートする特殊な機能
を使用するアプリケーションの場合は、当然ながら HP C が唯一の選択肢になります。パフォーマンスがそれほど重要
でなく、主として HP-UX 上で開発するアプリケーションの場合は、どちらのコンパイラを使用しても構いません。
2.0 はじめに
現在 HP-UX 上では、HP C と GNU CC という 2 つの C コンパイラを使用できます。HP C は Hewlett-Packard が開発
したコンパイラで、PA-RISC アーキテクチャを最大限活用できるように調整されています。一方 GNU CC は GNU プロ
ジェクトの一環として開発されたもので、無料で使用できるオープン・ソース・ツールです。この 2 つのコンパイラには多
くの共通点があります。つまり、両者とも C プログラムのコンパイラであり、ANSI 標準をサポートし、最適化を実行でき、
32 ビット版 HP-UX 上では SOM オブジェクトを、64 ビット版 HP-UX 上では ELF オブジェクトを生成し、デバッグ時に
は HP の WDB デバッガと組み合わせて使用できます。この 2 つのコンパイラのいずれか一方を選択するのは、必ずし
も容易ではありません。HP C という高速かつ高品質なコンパイラがあるのに、なぜ GNU CC についても検討が必要な
のでしょうか。逆に無料で問題なく動作する GNU CC というコンパイラがあるのに、なぜ有料のソフトを購入する必要が
あるのでしょうか。以下では 2 つのコンパイラを比較し、異なる機能の一覧、および 2 つのツール・セットのパフォーマ
ンス値を掲載しています。これらの値は、HP-UX 上での開発に使用するコンパイラを選択する際の参考資料としてお役
立てください。
HP C と GNU CC の機能比較
1
2
特徴
HP C
GNU CC
64 ビット・サポート
◎
○
ANSI 準拠
◎
◎
ビルド時のパフォーマンス
◎
○
ソフトウェアのコスト
○
◎(無料)
ほかの開発ツールとの相互運用性
◎
◎
パフォーマンス
◎
○
移植性
○
◎
信頼性
◎
◎
使いやすさ
◎
◎
サポート
HP
オープン・ソース・コミュニティ
本ドキュメントはC言語のみを対象としており、C++機能は調査の対象外です。
3.0 機能
3.1 共通の機能
HP C と GNU CC はコンパイラとして類似した機能を提供しています。例えば、C プログラムのコンパイル、最適化の
実行、ANSI 標準のサポート、デバッガ用のデバッグ情報の生成など、多数の機能が共通しています。以下では、両コ
ンパイラに共通する主な機能について説明します。
3.1.1 ANSI 標準のサポート
米国標準規格 9899:1990 (ANSI C) は、C プログラミング言語の形式および解釈を規定したドキュメントです。C プ
ログラムは標準に従うことにより、異なるプラットフォームへの移植性を獲得できます。HP C と GNU CC は、いずれも
ANSI モードで起動できます。C99 は改良された新しい ANSI 標準であり、どちらのコンパイラでも C99 への対応が現
在進行中です。
3.1.2 複数レベルの最適化の実行(O1、O2、O3)
HP C と GNU CC は、いずれも主要な最適化レベルを最大 O3 までサポートしています。両者を比較すると、GNU CC
では-O1 と-O は同じ意味になり、HP C が+O1 レベルで行う大部分の最適化が実行されます。O2 レベルでは、
GNU CC でも HP C とほぼ同等の最適化が実行されますが、関数のインライン展開とループのアンロールは行われま
せん。O3 レベルでは、どちらのコンパイラでも同等の最適化が実行されます。HP C ではさらに+O4 レベルを使用で
きますが、これは GNU CC にはない機能です。最適化はコンパイラにおける非常に重要な評価基準であるため、後ほ
どさらに詳しく説明します。
3.1.3 32 ビット・アプリケーションと 64 ビット・アプリケーションのコンパイル
PA-RISC 2.0 は 64 ビット・アーキテクチャを持っており、64 ビット・モードで呼び出された HP-UX カーネルは、32 ビッ
ト・アプリケーションと 64 ビット・アプリケーションの両方をサポートできます。デフォルトのモードは、32 ビットです。HP
C と GNU CC は、いずれも 32 ビット・モードのコードと 64 ビット・モードのコードを生成できます。HP C で 64 ビット・
アプリケーションを生成するには、+DD64 オプションを使用します。また GNU CC の場合は、32 ビット用と 64 ビット
用の 2 つの実行可能ファイルが用意されています。
3.1.4 一般的に使用される C コンパイラ・オプションのサポート
コンパイラ・オプションの中には、オブジェクト・ファイルのみを生成するための-c オプション、プリプロセッサ変数名を定
義するための-D オプション、デバッグ情報を生成するための-g オプションなど、多数の標準的な C オプションがありま
す。これらのオプションは HP C と GNU CC で共通していますが、形式は多少異なっている場合があります。共通オプ
ションの完全な対応表は、付録 I を参照してください。
3.1.5 WDB デバッガの使用
HP WDB デバッガは、HP が実装、サポートする GDB デバッガです。HP C および GNU CC はいずれも-g オプション
を使用することにより、WDB 用のデバッグ情報を生成できます。一部のデバッグ機能ではコンパイラのサポートは必要
なく、両コンパイラともこれらの機能を自動的に使用できます。例えば、ユーザー・スペース・アプリケーションにおけるメ
モリ・チェック機能がこれに該当します。WDB デバッガは、メモリ・リークを追跡したり、配列の上下限の超過などを
チェックしたりすることができます。一方、デバッグ機能の中にはコンパイラのサポートを必要とするものもありますが、
GNU CC ではこのサポートを提供できない可能性があります。HP C のみが提供する機能は、セクション 3.2 で説明し
ます。
3
3.1.6 最適化コードのデバッグ
DOC (Debugging of Optimized Code: 最適化コードのデバッグ) は、長い時間をかけて WDB に結実した重要な機能
です。両コンパイラとも-g と-O を同時に指定することにより、この機能を使用できます。
3.1.7 インクリメンタル・リンク
インクリメンタル・リンクと呼ばれるリンカ機能は、ビルド時間の短縮に役立ちます。インクリメンタル・リンク機能を使用
すると、アプリケーションの作成時以降に再コンパイルされたファイルのみをリンクすることが可能になります。つまり、
あるアプリケーションが数千のファイルから構成されており、このうち 1 つのファイルのみを更新したような場合に、アプ
リケーションを完全に再リンクする必要がありません。この機能に対応して、リンカには 2 つの新しいオプション+ild お
よび+ildrelink が追加されています。コンパイラ側には、これらの新しいオプションをリンカに渡す機能のみが求められ
ます。HP C および GNU CC は、いずれもコマンド行で-Wl オプションと共に指定することにより、この機能に対応でき
ます。
3.1.8 活発な開発とサポート
HP では HP C を活発に開発およびサポートしており、新しいリリースやパッチを定期的に発表しています。また HP で
はさまざまな経路でサポートを提供しており、HP のサポート契約をご購入いただくと、問題発生時にレスポンス・セン
ターへのお問い合わせが可能になるほか、Software Development Discussion Forum にご登録いただくと、最新の
ニュースをご覧いただけます。またレスポンス・センター経由で障害レポートをご提出いただくと、パッチまたは将来のリ
リースで対応させていただきます。
一方 GNU CC は無料のソフトウェアで、GNU CC のソース・コードは誰もが自由に入手できます。GNU CC の改良に
興味があればソースに手を加えることもでき、また結果をソース・ツリーに戻して公開することも可能です。そのため
GNU プロジェクトに魅力を感じた多くの人々が、世界各地でコンパイラの改良、バグの修正、新しい最適化機能の追
加、実行時ライブラリの改良などに取り組んでいます。GNU CC の新しいリリースは、GCC 運営委員会により定期的
に発表されます。この無料のソフトウェアに関するヘルプは、メーリングリスト、GNUCC のサポートを提供している企業
または個人など、さまざまな方面から得られます。なお、HP 社は GNU CC のサポートを提供していません。
3.1.9 両コンパイラの組み合わせ
HP C および GNU CC は、いずれも 32 ビット版の HP-UX 上では SOM オブジェクトを、64 ビット版の HP-UX 上では
ELF オブジェクトを生成します。一方のコンパイラでコンパイルしたオブジェクトまたはライブラリは、もう一方のコンパイ
ラでコンパイルしたオブジェクトまたはライブラリと問題なくリンクできます。
4
3.2 HP C のみが提供する機能
以下の機能は、HP C でのみ使用可能です。
3.2.1 プロファイルベースの最適化
ピーク・パフォーマンスを必要とするアプリケーションのために、HP では HP C コンパイラにプロファイルベースの最適
化機能を追加しています。これはプログラムのコンパイル時に、プロファイル用のコードを組み込むというものです。サ
ンプル・データを使用して、このプロファイル機能が組み込まれたアプリケーションを実行すると、アプリケーション内で
どのコードが実行されたかを示すデータ・ファイルが生成されます。その後、このデータ・ファイルと共にリンカを再度使
用し、どのコードが実行されたかの情報に基づいて最適化を行います。
3.2.2 ヒュージ・データ
ヒュージ・データ・サポートは、HP-UX 11.0 の初期リリース後に追加された機能です。この機能は 64 ビット・モードの場
合にのみ必要です。32 ビット・モードでは、ヒュージ・データに対する特別なサポートは必要ありません。ヒュージ・デー
タがサポートされている場合は、2GB を超える初期化されていないデータの作成およびアクセスが可能になります。こ
のような GNU CC と HP C の比較 2001 年 4 月 20 日 5 データとしては、初期化されていないスタック、動的な割り
当てデータ、または静的なデータなどが考えられます。このサポートは、PA-RISC アーキテクチャ対応のすべての HP コ
ンパイラと HP-UX カーネルに追加されています。
3.2.3 修正と継続(Fix and Continue)
WDB 2.0 には、修正と継続と呼ばれる新しい機能が追加されています。この機能を使用するとデバッガをいったん終
了したり、デバッグ・セッションから抜けたりすることなく、ソース・ファイルを開いて問題を修正し、再コンパイルし、アプリ
ケーションを再リンクし、さらにプログラムを再実行することができます。
3.2.4 オブジェクト・モジュールのみでデバッグ
+objdebug 機能を使用すると、デバッグ情報が、最終的な実行可能ファイルにはコピーされずに、オブジェクト・モ
ジュール内に残されます。これは、コード・サイズの縮小とアプリケーションのビルド時間短縮に役立ちます。
3.2.5 並列処理オプションとプラグマ
HP C では、並列実行可能なコードを生成できます。このためには最適化オプションおよびプラグマのいずれか、または
両方を使用します。
3.2.6 スレッド・ローカル記憶領域
HP C では__thread キーワードを使用して、スレッド・ローカル記憶領域を指定します。つまり各スレッド別に静的データ
項目または外部データ項目のコピーを作成するために使用します。
3.2.7 Softbench
HP C は、アプリケーション開発のための IDE (Integrated Development Environment: 統合開発環境) を提供する HP
Softbench に含まれています。
5
3.2.8 プラグマ
HP C にはさまざまなプラグマが用意されており、それぞれが最適化、共有ライブラリのパフォーマンスの向上、ソース・
コードのリスティング、整列などの様々な目的に使用されます。ANSI 標準では、プラグマの使用は処理系依存に分類
されています。そのため GNU CC のマニュアルでは、プラグマも使用可能ですが、__attribute__機能を使用する方が
望ましいと書かれています。大部分の HP C プラグマは、GNU CC ではサポートされていません。
3.3 GNU CC のみが提供する機能
3.3.1 無料のコンパイラ
GNU CC はオープン・ソース・コミュニティにより開発される無料のソフトウェアです。ユーザーはこのソフトウェアを実行、
コピー、配布、研究、変更、および改良する権利を有します。
このソフトウェアには、次の 4 つの自由があります。
• 目的を問わず、GNU CC をインストールして実行する自由。
• GNU CC が機能する仕組みを研究し、個々の目的に合わせて改良する自由。ソース・コードが公開されているた
め、このようなことが可能になります。
• ほかの開発者にも役立つように、コピーを再配布する自由。
• GNU CC を改良し、コミュニティ全体が恩恵を得られるように、その改良版を公開する自由。
3.3.2 さまざまなオペレーティング・システムにわたる高い移植性
GNU CC はプラットフォームから独立しており、さまざまな UNIX プラットフォーム、NT、および Linux 上で使用可能で
す。このために、各プラットフォーム間で共通のインタフェースが提供されており、それぞれのプラットフォーム上で類似
のコンパイラ・オプションを使用できます。あるプラットフォーム上で GNU CC を使用してコンパイルしたアプリケーション
は、大きな変更をすることなく別のプラットフォーム上で GNU CC を使用して簡単に再コンパイルできます。その他の
GNU 開発ツール(gdb、gas、gmake など) も同様に、これらのプラットフォーム上で使用できます。さらに、あるプラッ
トフォーム上の開発環境全体を、別のプラットフォーム上に移すことも可能です。このように、HP-UX 上の開発環境とし
て GNU ツールを選択した場合は、HP-UX アプリケーションを NT や Linux などに簡単に移植でき、その逆も同様です。
プラットフォーム独立型のアプリケーションは、再コンパイルする手間だけで移植が完了します。このことは、オープン・
ソース・アプリケーションを HP-UX に移植する場合に特に便利です。複数のプラットフォームに対応する必要がある場
合は、多くのソフトウェア開発者が、開発ツールとして GNU CC を選択しています。
6
4.0 パフォーマンス
4.1 最適化
HP C および GNU コンパイラ・ツール・チェーンは、いずれも最大でレベル O3 までの最適化機能を提供できます。HP
C とは異なり、GNU CC の場合はその性質上、HP-UX 向けのマシン依存型の最適化機能はそれほど多くありません。
HP C コンパイラは、HP-UX 上で実行されるアプリケーションに最適なパフォーマンスを提供するよう調整されています。
パフォーマンスの実現には、さまざまなオプションやプラグマ、および高度な最適化技法が使用されます。
付録 II の最初のセクション(7.1) では HP C のみが提供する最適化機能について、付録 II の 2 番目のセクション
(7.2) では GNU CC のみが提供する最適化機能について説明しています。
4.2 ベンチマーク・パフォーマンス
HP C は PA-RISC アーキテクチャを最大限活用するよう調整されているため、一般にパフォーマンスは GNU CC よりも
優れています。以下では、HP C および GNU CC について収集したパフォーマンス・データを示します。ここではベンチ
マークとして、SPEC CPU2000 を使用しています。SPEC (Standards Performance Evaluation Corporation) ベンチ
マークは、コンピュータ・パフォーマンスの測定に広く使用されています。SPEC ベンチマークは 2 つのセクションに分か
れており、SPEC INT は整数のパフォーマンス測定に、SPEC FP は浮動小数点のパフォーマンス測定に使用されます。
測定に使用したマシンは HP 9000/785/C3000 (400 MHZ、メモリ 1024MB、CPU 1 基) で、オペレーティング・システ
ムは HPUX-B.11.0 64 ビット版です。またコンパイラは、HP C B.11.01.20 および GNU Pro CC 2.9 を使用しています。
以下に示す数値は実行時間比率であり、GCC でコンパイルしたコードの実行時間/ HP C でコンパイルしたコードの実
行時間、を示しています。
N/A は、GCC ではコードを正しくコンパイルできなかったことを意味します(aCC が失敗した場合を除く)。
幾何平均比率は、GNU CC の幾何平均/ HP C の幾何平均、を示しています。幾何平均比率が 1 より小さい場合は、
GNU CC の方が HP C よりもパフォーマンスに優れており、値が小さいほど GNU CC の方が優れていることを意味し
ます。逆に幾何平均比率が 1 を超える場合は、HP C の方が GNU CC よりもパフォーマンスに優れており、値が大き
いほど HP C の方が優れていることを意味します。
ここでは、次の 7 つの異なるオプション設定で SPEC を測定しています。
1.
32 ビット GCC -O、HP C -O
2.
32 ビット GCC -O2、HP C -O
3.
32 ビット GCC -O3、HP C +O3
4.
32 ビット GCC -O -mpa-risc-2-0 -mschedule=8000、HP C -O
5.
32 ビット GCC -O3 -mpa-risc-2-0 -mschedule=8000、HP C +O3
6.
64 ビット GCC -O -mpa-risc-2-0 -mschedule=8000、HP C -O
7.
64 ビット GCC -O3 -mpa-risc-2-0 -mschedule=8000、HP C +O3
7
4.2.1 SPEC INT 2000
SPEC INT 2000 には、次の 12 個のベンチマーク・アプリケーションが含まれています。
• gzip
圧縮
• vpr
FPGA 回路の配置と経路指定
• gcc
C プログラミング言語コンパイラ
• mcf
組合せ最適化
• crafty
ゲーム(チェス)
• parser
文書処理
• eon
計算機による可視化2
• perlbmk
Perl プログラミング言語
• gap
群理論、インタプリタ
• vortex
オブジェクト指向データベース
• bzip2
圧縮
• twolf
配置および経路指定のシミュレータ
SPEC FP 2000 の結果
オプション
1
2
3
4
5
6
7
幾何平均比率
1.14
1.15
1.10
1.11
1.09
1.18
1.14
gzip
1.07
1.09
1.09
1.05
1.06
1.48
1.33
vpr
1.07
1.04
1.08
1.06
1.06
N/A
N/A
gcc
1.09
1.11
1.10
0.98
1.00
N/A
N/A
mcf
0.99
1.05
1.05
0.99
1.05
N/A
N/A
crafty
1.02
N/A
N/A
1.02
N/A
0.97
0.94
parser
1.20
1.18
1.23
1.18
1.22
1.07
1.03
eon
1.74
1.72
N/A
1.53
N/A
N/A
N/A
perlbmk
1.03
1.04
1.00
N/A
N/A
N/A
N/A
gap
1.22
1.22
1.16
1.16
1.11
1.12
1.15
vortex
1.07
1.07
1.12
1.08
1.11
1.20
1.15
bzip2
0.98
0.95
1.01
0.98
1.00
1.31
1.32
twolf
1.36
1.35
1.24
1.34
1.23
1.19
1.14
4.2.2 SPEC FP 2000
SPEC FP 2000 には、次の 4 つの C アプリケーションが含まれています。
• mesa
3-D グラフィックス・ライブラリ
• art
画像認識/ニューラル・ネットワーク
• equake
地震波伝搬シミュレーション
• ammp
計算化学
SPEC FP 2000 の結果
オプション
1
2
3
4
5
6
7
幾何平均比率
1.03
1.02
1.03
0.96
0.94
1.29
1.29
mesa
1.20
1.16
1.18
1.14
1.11
1.41
1.26
art
1.00
0.99
0.96
0.89
0.90
1.48
1.48
equake
1.10
1.06
1.13
1.04
1.01
1.19
1.15
ammp
0.86
0.89
0.89
0.80
0.76
1.13
N/A
a
2
eon は C++アプリケーションで、aCC および g++を使用してコンパイルされており、結果リストは参照用です。このアプリケーションを aCC の最新リリースの+O3 レベ
ルでコンパイルすると、32 ビットおよび 64 ビットのいずれの場合もコンパイルに失敗します。この問題は将来のリリースでは修正される予定です。
a
研究によれば、HP C ではその処理時間の多くがライブラリ呼び出し sqrt() に費やされているのに対し、GNU CC ではライブラリ呼び出しではなく組み込みの sqrt()
呼び出しが使用されています。HP C の場合は+Olibcalls オプションを使用するとパフォーマンスが大幅に向上しますが(GNU CC の 1.05 倍高速)、これは GNU CC
の組み込み関数に似た働きをします。
8
4.2.3 SPEC の結果
上の結果からわかるとおり、GNU CC では一部の最適化レベルおよびアプリケーションでコンパイルに失敗しています。
まず-O2 レベルから問題が生じ始め、64 ビット・アプリケーションではさらに問題が発生するケースが増えています。
一般に HP C は、特に整数アプリケーションの場合に、GNU CC よりも高速で、その差は最大で 35%にも上っています。
一方 GNU CC の方が多少高速な場合もありますが、その差は最大でも 5%程度です。
HP C を使用して SPEC の 32 ビット・アプリケーションをコンパイルする場合は、個々のベンチマーク・アプリケーション
について、最も高速な実行可能ファイルを生成するためのオプションのセット(「ピーク・オプション」と呼ばれる) が用意
されています。これらのオプションを使用するとパフォーマンスは大幅に向上します。行った実験では、ピーク・オプショ
ンを使用してコンパイルした実行可能ファイルは、-O オプションを使用した場合よりも 40%高速で、+O3 を使用した場
合よりも 35%高速でした。各アプリケーションのピーク・オプションは、SPEC の Web サイト(http://www.spec.org/) で
確認してください。HP-UX 上の GNU CC 向けのピーク・オプションはまだ特定されていません。
HP C は、GNU CC と比較してビルド時のパフォーマンスにも優れており、コンパイルおよびリンクのいずれも高速です。
-g のみを指定した場合、HP C のコンパイル時間は SPEC FP 2000 では GNU CC の 2.42 倍、SPEC INT 2000 では
GNU CC の 1.80 倍高速になります。また-O2 のみを指定した場合の HP C のコンパイル時間は、SPEC FP 2000 で
は GNU CC の 1.49 倍、SPEC INT 2000 では GNU CC の 1.66 倍高速になります。HP C のリンク時間は、GNU CC
に比べて多少高速な程度です。
5.0 結論
GNU CC が HP-UX に移植されるまでは、長い間、HP C が HP-UX における唯一の C コンパイラでした。多くの場合、
この 2 つのコンパイラは相互に置き換え可能です(ただし、オプション名は多少異なっています)。HP C を使用すると
HP-UX に最適なコードが生成され、PA-RISC アーキテクチャを最大限活用できます。一方 GNU CC には、複数のプ
ラットフォームにわたる移植性に優れているという利点があります。ユーザーはそれぞれの目的に合ったコンパイラを自
由に選択できます。例えばパフォーマンスが重視されるアプリケーションについては、HP C の方が適しています。一方
複数のプラットフォーム上で実行する必要があり、パフォーマンスがそれほど重視されないアプリケーションについては、
GNU CC の方が適しています。また、HP C のみがサポートする特殊な機能を使用するアプリケーションの場合は、当
然ながら HP C が唯一の選択肢になります。パフォーマンスがそれほど重要でなく、主として HP-UX 上で開発するアプリ
ケーションの場合は、どちらのコンパイラを使用してもよく、また両方のコンパイラを同時に使用することも可能です。
GNU CC の詳細は、http://www.gnu.org/software/gcc/gcc.html をご覧ください。
9
6.0 付録 I コンパイラ・オプション
6.1 共通のオプション
10
HP C オプション
GNU CC オプション
説明
-Aa
-Ac
-c
ansi –pedantic
-traditional
-c
-C
-D name
-D name=def
-dynamic
-E
-g
-G
-C
-D name
-D name=def
-fpic または-Wl,-dynamic
-E
-g
-pg
-I dir
-I dir
-l x
-l x
-L dir
-L dir
-n
-Wl,-n または-shared -fpic
-N
-noshared
-o filename
-Wl,-N
-Wl,-noshared または-static
-o filename
-O、+O2
-p
-O2
-p
-q
-Wl,-q
-Q
-Wl,-Q
-s
-S
-U name
-v
-w
-Wx, arg1
[,arg2,...]
-z
-Z
+DA model
-s
-S
-U name
-v
-w
-Wx, arg1 [,arg2,...]
ANSI への厳密な準拠を有効化します。
ANSI への準拠を無効化します。
ソースをコンパイルしてオブジェクト・ファイルを生成します
が、実行可能ファイルにはリンクしません。
プリプロセッサによるコメントの削除を防止します。
プリプロセッサ変数 name を定義します。
プリプロセッサ変数 name を def の値で定義します。
PIC オプションを有効化します。
前処理のみを実行し、出力を標準出力に送ります。
デバッグ情報をオブジェクト・ファイル内に挿入します。
gprof プロファイラに必要な情報をオブジェクト・ファイル内に
挿入します。
dir に指定されたディレクトリをインクルード・ファイルの検索
パスに挿入します。
/lib/libx.a ライブラリおよび/usr/lib/libx.a ライブラリをリンク
します。
デフォルト検索パス内のライブラリより前に、dir 内のライブラ
リをリンクします。
リンカからの出力に、共有可能マークが付加されるようにしま
す。
共有不能なコードを生成します。
静的にリンクされる実行可能ファイルを作成します。
実 行 可 能 フ ァ イ ル ま た は オ ブ ジ ェ ク ト ・ フ ァ イ ル の 名 前を
filename に変更します。
レベル 2 で最適化します。
prof プロファイラに必要な情報をオブジェクト・ファイル内に挿
入します。
実行可能ファイルにデマンド・ロード可能マークを付加しま
す。
実行可能ファイルにデマンド・ロード不能マークを付加しま
す。
実行可能ファイルからシンボル・テーブルを削除します。
アセンブリ言語ソース・ファイルを生成します。
プリプロセッサ内で name の定義を削除します。
詳細モードを有効化します。
警告メッセージが出力されないようにします。
argN に指定した引き数を、サブプロセス x に渡します。
+DS model
-Wl,-z
-Wl,-Z
-march=1.0
-march=2.0
-march=1.1
-mschedule=cpu_type
+e
-ansi -D_HPUX_SOURCE
+f
-fallow-single-precision
+M
-Wtraditional
+r
+sb
-fallow-single-precision
-fsigned-bitfield
+uc
-funsigned-char
ヌル・ポインタの実行時参照を無効化します。
ヌル・ポインタの実行時参照を許可します。
特定バージョンの PA-RISC アーキテクチャ向けのオブジェク
ト・コードを生成します。
特定の PA-RISC モデル向けの命令スケジューリングを実行し
ます。
ANSI C モードでのコンパイル時に、HP の付加価値機能であ
る、サイズ指定された enum 型、long long 型、long 型ポイン
タ、組み込み呼び出しの引き数が不足している場合のコンパ
イラによるデフォルト値の補充、$付き識別子の HP C 拡張な
どを有効化します。
関数呼び出しと復帰を除き、式の評価時に浮動小数点演算
を倍精度に自動的に昇格させません。
-Ac でコンパイルした場合と-Aa でコンパイルした場合で動作
の異なるコードに関して、ANSI 移行警告を出力します。
浮動小数点演算を倍精度に自動的に昇格させません。
32 ビット・モードと 64 ビット・モードの両方で、ビット・フィール
ドをデフォルトで符号付きにします。
無修飾の char データ型を符号なしにします。
HP C オプション
GNU CC オプション
説明
+w n
-Wa
+W n1
+We n1
+Ww
-Wno-name
-Werror -Wname
-W name
+z,+Z
-fpic
警告メッセージのレベルを指定します。n には 1~3 の値が入
ります。
特定の警告が出力されないようにします。
特定の警告をエラーにします。
-w または+w3 を使用してすべての警告が出力されないよう
にしている場合に、特定の警告のみが出力されるようにしま
す。
共有ライブラリ・オブジェクト・コードを生成します。
6.2 HP C 固有のオプション
オプション
-Ae
-V
-Wd,-a または+a
-y
-Y
+DCapptype
+dfname
+DOosname
+FPflags
+help
+hugesize
+k
+L
+m
+M1
+M2
+o
+ubytes
説明
ANSI C への準拠、HP の付加価値機能(+e オプションの説明を参照)、および名前空間マクロ
_HPUX_SOURCE を有効化します。
サブプロセスが標準エラー出力にバージョン情報を書き込むようにします。
リンカが要求する HP 提供のプレフィックス・ファイルを省略します。
HP SoftBench の静的解析ツールが使用する情報を生成します。
NLS (Native Language Support: 母国語サポート) を有効化します。
移植可能または埋め込みアプリケーション用のコードを生成します。
プロファイルベースの最適化で使用するプロファイル・データベースを指定します。
コンパイラのターゲットとなるオペレーティング・システムを設定します。
浮動小数点トラップを制御します。
Web ブラウザを起動し、HTML 版の HP C/HP-UX オンライン・ヘルプを表示します。
ヒュージ・データに対するしきい値を下げます。
プログラムが、共有ライブラリ内に物理的に配置されている大量のグローバル・データを参照
できるように、長いディスプレースメントのコード・シーケンスを生成します。
任意のプラグマ・リスティング指令およびリスティング機能を有効化します。
ソース・コード・リスティング内の識別子マップを表示します。
将来のリリースでサポートされない可能性がある機能について、プラットフォーム移行警告を
出力します。
コードをデータモデル ILP32 から LP64 へ移行することに伴う警告を出力します。
ソース・コード・リスティング内の 16 進コード・オフセットを表示します。
ポインタ境界を、1、2、4 バイトの位置になるよう制御します。
6.3 GNU CC オプション
オプション
-fall-virtual
-fcheck-new
-fcond-mismatch
-fno-builtin
-glevel
-H
-nodefaultlibs
-nostartfiles
-nostdlib
-print-file-name=
library
-print-libgcc-file-name
-print-prog-name=
program
-print-search-dirs
-Q
-specs=file
-V version
-Wname
説明
可能な限りのメンバ関数を、暗黙のうちに仮想関数として取り扱います。
割り当てられた記憶域の変更を試みる前に、演算子 new から返されたポインタがヌル値で
ないことを確認します。
条件式の第 2 引き数と第 3 引き数に、異なる型を使用できるようにします。
前の先頭が 2 つのアンダースコアで始まっていない組み込み関数は認識しません。
デバッグ情報を要求し、どの程度の情報が必要かを level に指定します。
通常の処理に加えて、使用した個々のヘッダ・ファイルの名前を表示します。
リンク時に標準システム・ライブラリを使用しません。
リンク時に標準システム・スタートアップ・ファイルを使用しません。
リンク時に標準のシステム・スタートアップ・ファイルやシステム・ライブラリを使用しません。
リンク時に使用されるライブラリ・ファイル library の完全な絶対パス名を表示します(これ以
外の処理は一切行いません)。
‘-print-file-name=libgcc.a’ と同じです。
‘-print-file-name’ と似ていますが、この場合は‘cpp’ などのプログラムが検索されます。
構成されたインストール・ディレクトリの名前と、gcc が検索するプログラム・ディレクトリやラ
イブラリ・ディレクトリの一覧を表示します(これ以外の処理は一切行いません)。
コンパイラに、コンパイル中の個々の関数の名前を出力させると共に、終了時には個々の
パスについての統計情報を出力させます。
コンパイラが標準の‘specs’ ファイルを読み込んだ後で、file の処理を行います。
実行する GNU CC のバージョンを、version 引き数に指定します。
name に指定した警告メッセージを有効にします。
a
GNU CC には、HP C のような警告レベルがありません。特定の警告名を付加して-W オプションを指定すると、その警告の出力を有効化できます。すべての警告を有
効化するには-Wall と指定します。
11
7.0 付録 II 最適化
7.1 HP C による最適化
オプション
+O4
-fast
+ESconstlit
+I
+P
+pa
+pal
+pgmname
+O[no]data_prefetch
+O[no]entry-sched
+O[no]extern[= name1,
name2,..., nameN] +Bextern
+O[no]fail_safe
+O[no]fastaccess
+O[no]moveflops
+O[no]multiprocessor
+O[no]pipeline
+O[no]procelim
+O[no]promote_indirect_calls
+O[no]ptrs_to_globals
[=name1,name2,...,nameN]
+Oreusedir=directory
12
説明
レベル 3 のすべての最適化に加えて、アプリケーション・プログラム全体にわたる完
全な最適化を実行します。
このオプションは、コンパイラ・オプションのセットとして展開され、ビルド時間を増大
させることなく、アプリケーションの実行時性能を向上します。展開されるセットに含
ま れ る オ プ シ ョ ン は 、 +O3 、 +Onolooptransform 、 +Olibcalls 、 +FPD 、
+Oentryschedule、および+Ofastaccess です。これらのオプションは、コマンド行で
-fast の後に指定したオプションにより上書きできます。
const 修飾されたオブジェクトとリテラルを読み取り専用メモリに保存します。
プロファイルベースの最適化データを収集するためのオブジェクト・コードを準備し
ます。
プロファイルベースの最適化を実行します。
CXperf を使用したルーチンレベルのプロファイリングを要求します。
CXperf を使用したルーチンレベルおよびループレベルのプロファイリングを要求し
ます。
オプティマイザーが使用する実行プロファイル・データ・セットを指定します。
メモリからデータ・キャッシュにデータを明示的にプリフェッチするために、HP C が最
内部のループに命令を挿入することを許可します。このオプションは、データ・
キャッシュ・ミス・オーバーヘッドの大きいアプリケーションで使用してください。デ
フォルト値は+Onodata_prefetch です。
プロシージャの開始および終了シーケンスに対する命令スケジューリングを最適化
します。このオプションは最適化レベル 1~4 で使用可能です。デフォルト値は
+Onoentrysched です。
このオプションを使用すると、実行可能ファイルまたは共有ライブラリ内のどのシン
ボルへのアクセスを最適化可能にするかを指定できます。ただし、コンパイルされ
るモジュール外にあるシンボルは最適化できません。デフォルト値の+Oextern は、
すべてのシンボルがコンパイルされるモジュール外にあり、最適化できないことを
意味します。
内部的な最適化エラーが発生した場合も警告メッセージを発行し、+O0 レベルでコ
ンパイルを再開することにより、コンパイルを継続します。デフォルト値は
+Ofail_safe です。
グローバル・データ項目へ高速にアクセスするための最適化を行います。最適化レ
ベル 0~3 の場合のデフォルト値は+Onofastaccess、最適化レベル 4 の場合のデ
フォルト値は+Ofastacess です。
条件付き浮動小数点命令のループ外への移動を可能/不可能にします。このオプ
ションは最適化レベル 2~4 で使用でき、デフォルト値は+Omoveflops です。
マルチプロセッサ・マシン上の複数の異なるプロセス内で実行するのに適した形
に、実行可能ファイルまたは共有ライブラリを最適化するようコンパイラに指示しま
す。このオプションは最適化レベル 2~4 で使用でき、デフォルト値は
+Onomultiprocessor です。
ソフトウェア・パイプライン化を有効/無効にします。デフォルトでは、ソフトウェア・パ
イプライン化が実行されます。このオプションは最適化レベル 2~4 で使用可能で
す。
+Oprocelim を指定した場合は、アプリケーションで参照されていない関数は実行
可能ファイルから削除されます。+Onoprocelim オプションを指定した場合は、参照
されていない関数も実行可能ファイル内に保持されます。最適化レベルが 0~2 の
場合のデフォルト値は+Onoprocelim、最適化レベルが 4 の場合のデフォルト値は
+Oprocelim です。
このオプションは、プロファイル・ベースの最適化により入手したプロファイル・デー
タを使用して、可能な範囲で間接呼び出しを直接呼び出しに変更します。最適化さ
れたコードは、直接呼出しができたかどうかをテストし、できていなければ間接呼び
出しを実行します。デフォルト値は+Onopromote_indirect_calls です。
ポインタを介して変更されることのないグローバル変数を指定することにより、オプ
ティマイザーがコピーの伝搬および共通の部分式の削除を取り入れて、プログラム
をより効率よく実行できるようにします。デフォルト値は+Optrs_to_globals で、この
場合は、グローバル変数がプログラム内の任意の箇所で変更される可能性がある
と想定されます。このオプションは、最適化レベル 2~4 で使用可能です。
+O4 またはプロファイルベースの最適化を使用する場合に、中間オブジェクト・ファ
イルから生成されたオブジェクト・ファイルをリンカが保存するディレクトリを指示しま
す。デフォルトではオブジェクト・ファイルは再使用されません。
オプション
説明
+O[no]regreas-soc
レジスタの再関連付けを可能/不能にします。レジスタを使用してアドレス表現の値
を追跡すると、配列参照のためのアドレス計算にかかるコストを減少できます。デ
フォルト値は+Oregreassoc です。このオプションは、最適化レベル 2~4 で使用可能
です。
この+Onosideeffects オプションでは、グローバル変数を変更しない関数を指定しま
す。デフォルトでは、オプティマイザーにより副次作用がないと判断できた場合を除
き、すべての関数に副次作用があると想定されます。関数に副次作用があると、オ
プティマイザーによるグローバル変数の最適化に制約が生じます。このオプション
は、最適化レベル 2~4 で使用可能です。
ポインタを符号付きの値として処理することによる最適化を実行するかどうかを指定
します。デフォルトでは最適化されません。このオプションは、最適化レベル 0~4 で
使用可能です。
PA-RISC 2.0 ターゲットの静的分岐予測を使用可能にします。この場合は動的予測
が無効化されますが、これはハードウェアの履歴機構を使用して、過去 3 回の実行
から将来的な分岐を予測するものです。静的分岐予測を有効にすると、分岐命令自
体の中にコード化された暗黙的なヒントに基づいて、各分岐が予測されます。デフォ
ルトでは、動的予測が実行されます。このオプションは、最適化レベル 0~4 で使用
可能です。
このオプションを指定すると、特定のループがベクトル・ルーチン呼び出しに置き換
えられます。デフォルトではループのベクトル化は行われません。このオプションは、
最適化レベル 0~4 で使用可能です。
このオプションは最適化レベル 4 で使用でき、このオプション付きでコンパイルされ
たファイルが、それらのファイルで定義されたグローバルな変数および手続きを直
接参照することを指定します。これは、グローバルな変数や手続きに対する未知の
アクセスが存在しないことを意味します。デフォルト値は+Onowhole_program_mode
です。
+O[no]sideeffects [= name1,
name2,..., nameN]
+O[no]signed-pointers
+O[no]static_prediction
+O[no]vectorize
+O[no]whole_program_mode
7.2 GNU CC による最適化
オプション
説明
-Os
通常ではコード・サイズを大きくすることのないすべての“-O2” レベルの最適化が有
効化されます。また、コード・サイズを小さくする目的で設計されたその他の最適化も
実行されます。
関数からの復帰直後に、その関数呼び出しに対する引き数を常にポップします。
メモリ・オペランドに対する算術演算が実行される前に、オペランドをレジスタに強制
的にコピーします。
メモリ・アドレス定数に対する算術演算が実行される前に、定数をレジスタに強制的
にコピーします。
フレーム・ポインタを必要としない関数については、フレーム・ポインタをレジスタ内に
保持しません。
sibling および tail の再帰呼び出しを最適化します。
加算、減算、乗算に対する符号付きのオーバーフローに対するトラップを生成しま
す。
inline キーワードを無視します。
ある関数に対する呼び出しがすべて統合され、かつ static 宣言されている場合でも、
実行時に呼び出し可能な個別の関数を出力します。このスイッチは、externinline 関
数には影響を与えません。
最適化が有効になっていない場合は、static const 宣言された変数を、たとえその変
数が参照されていなくても出力します。このオプションはデフォルトで有効化されま
す。
レジスタに関数アドレスを入れず、ある決まった関数を呼び出す命令の1つ1つに、
その関数のアドレスを明示的に持たせます。
ループ強度の減少と反復変数の削除による最適化を実行します。
ジャンプの分岐先において、最初の比較に包含される別の比較があるかどうかを
チェックすることによる最適化を実行します。
共通の部分式を削除するときに、ジャンプ命令のジャンプ先がほかの経路から到達
されないものを、ジャンプ命令を使って走査します。
このオプションは‘-fcse-follow-jumps’ と似ていますが、条件に応じてブロックをス
キップするジャンプを CSE に追跡させます。
ループ最適化の実行後に、共通の部分式の削除を再度実行します。
ループ・オプティマイザーを 2 度実行します。
グローバルな共通の部分式削除のパスを実行します。このパスではグローバルな定
数およびコピーの伝播も行われます。
-fno-defer-pop
-fforce-mem
-fforce-addr
-fomit-frame-pointer
-foptimize-sibling-calls
-ftrapv
-fno-inline
-fkeep-inline-functions
-fkeep-static-consts
-fno-function-cse
-fstrength-reduce
-fthread-jumps
-fcse-follow-jumps
-fcse-skip-blocks
-frerun-cse-after-loop
-frerun-loop-opt
-fgcse
13
オプション
-fdelete-null-pointer-checks
-fexpensive-optimizations
-foptimize-register-move
-fregmove
-ffunction-sections
-fdata-sections
-fcaller-saves
-fmove-all-movables
-freduce-all-givs
-fno-peephole
-fssa
-fdce
-fsingle-precision-constant
14
説明
グローバル・データフロー分析を使用して、不要なヌル・ポインタ・チェックを特定し、
これを削除します。
比較的コストのかかる、比較的重要ではない各種の最適化を実行します。
move 命令内で、およびその他の単純な命令におけるオペランドとして、レジスタとの
結合量を最大化するためのレジスタ番号の再割り当てを試みます。
ターゲット・マシンで任意のセクションがサポートされていれば、個々の関数または
データ項目を、出力ファイル内の個別のセクション内にそれぞれ配置します。
関数呼び出しによって内容が破壊されるレジスタに値を割り当てられるようにしま
す。これは、このような関数呼び出しの前後に、レジスタの待避命令と復元命令を追
加することにより実現します。
ループ内のすべての不変計算を、ループ外へ強制移動します。
ループ内のすべての一般誘導変数の強度を減少します。
マシン固有ののぞき穴の最適化をすべて無効にします。
SSA (Static Single Assignment) 形式で最適化を実行します。
SSA 形式でデッドコードの削除を行います。‘-fssa’ が指定されていることが必要で
す。
浮動小数点定数を、倍精度定数に暗黙的に変換するのではなく、単精度定数として
取り扱います。
8.0 付録 III SPEC の結果
8.1 HP C の結果
幾何平均値:
対象となる数値と比較して、値が大きいほど HP C の方が優れていることを意味します。
コンピュータ:
9000/785/C3000、400 MHz、メモリ 1024MB、CPU 1 基
OS:
HPUX-B.11.0 64 ビット
コンパイラ:
HP C B.11.01.20
オプション:
1. 32 ビット-O
2. 32 ビット+O3
3. 32 ビットピーク・オプション
4. 64 ビット-O
5. 64 ビット+O3
オプション
幾何平均
gzip
vpr
gcc
mcf
crafty
parser
eon
perlbmk
gap
vortex
bzip2
秒
比
秒
比
秒
比
秒
比
秒
比
秒
比
秒
比
秒
比
秒
比
秒
比
秒
比
オプション
twolf
幾何平均
mesa
art
equake
ammp
秒
比
秒
比
秒
比
秒
比
秒
比
1
230
614
228
523
268
351
314
632
285
484
207
954
189
593
219
949
190
821
134
719
264
699
215
1
910
330
228
1083
129
626
416
554
234
1024
215
2
236
618
226
502
279
351
313
608
296
468
213
829
217
N/A
N/A
986
182
855
129
681
279
662
227
2
977
307
230
1070
131
648
401
530
245
1019
216
3
325
504
278
407
344
261
422
607
297
291
344
649
277
399
326
532
338
629
175
344
552
490
306
3
819
366
375
569
246
427
608
333
391
650
338
4
189
602
232
633
221
423
260
823
219
476
210
1807
99.6
754
172
1092
165
912
121
787
241
779
193
4
1384
217
257
789
177
663
392
631
206
722
305
5
192
617
227
592
236
409
269
784
230
486
206
1700
106
N/A
N/A
1289
140
891
123
799
238
723
207
5
1441
208
262
758
185
674
386
596
218
726
303
15
8.2 GNU CC の結果
幾何平均値:
対象となる数値と比較して、値が大きいほど GNU CC の方が優れていることを意味します。
コンピュータ:
9000/785/C3000、400 MHz、メモリ 1024MB、CPU 1 基
OS:
HPUX-B.11.0 64 ビット
コンパイラ:
GNU Pro CC 2.9
オプション:
1. 32 ビット-O1
2. 32 ビット-O1 -mpa-risc-2-0 -mschedule=8000
3. 32 ビット-O2
4. 32 ビット-O2 -mpa-risc-2-0 -mschedule=8000
5. 32 ビット-O3
6. 43 ビット-O3 -mpa-risc-2-0 -mschedule=8000
7. 64 ビット-O -mpa-risc-2-0 -mschedule=8000
8. 64 ビット-O3 -mpa-risc-2-0 -mschedule=8000
オプション
幾何平均
gzip
vpr
gcc
mcf
crafty
parser
eon
perlbmk
gap
vortex
bzip2
twolf
幾何平均
mesa
art
equake
ammp
16
秒
比
秒
比
秒
比
秒
比
秒
比
秒
比
秒
比
秒
比
秒
比
秒
比
秒
比
秒
比
秒
比
秒
比
秒
比
秒
比
1
202
660
212
557
251
381
289
628
287
495
202
1142
158
1032
126
981
183
1000
110
768
247
683
220
1234
243
221
1297
108
629
413
608
214
884
249
2
210
644
217
553
253
345
319
626
288
494
202
1128
160
907
143
N/A
N/A
949
116
778
244
683
219
1223
245
238
1236
113
555
469
575
226
822
268
3
202
670
209
545
257
388
284
661
272
N/A
N/A
1130
159
1019
128
990
182
1004
110
770
247
663
226
1232
244
223
1255
112
622
418
590
220
912
241
4
212
654
214
536
261
351
313
669
269
N/A
N/A
1110
162
879
148
N/A
N/A
947
116
745
255
678
221
1206
249
241
1184
118
613
424
538
242
788
279
5
205
671
209
543
258
385
286
641
281
N/A
N/A
1019
177
1027
127
985
183
996
110
760
250
666
225
1208
248
222
1258
111
624
417
597
218
912
241
6
216
654
214
530
264
352
312
636
283
N/A
N/A
1015
177
865
150
N/A
N/A
944
117
756
251
665
225
1203
249
245
1185
118
583
446
538
242
777
283
7
152
893
157
N/A
N/A
N/A
N/A
N/A
N/A
463
216
1927
93.4
N/A
N/A
N/A
N/A
1022
108
942
202
1023
147
1642
183
199
1115
126
978
266
750
173
817
269
8
158
818
171
N/A
N/A
N/A
N/A
N/A
N/A
457
219
1749
103
N/A
N/A
N/A
N/A
1022
108
918
207
955
157
1640
183
194
955
147
996
261
685
190
N/A
N/A
お問い合わせはカスタマー・インフォメーションセンターへ
03-5304-6660
月~金 9:00~19:00
土 10:00~18:00(日、祝祭日、年末年始および 5/1 を除く)
HP-UX 製品に関する情報はhttp://www.hp.com/jp/hpux
記載されている会社名および商品名は、各社の商標または登録商標です。
記載事項は 2003 年 9 月現在のものです。
本書に記載された内容は、予告なく変更されることがあります。
本書中の技術的あるいは校正上の誤り、省略に対して、いかなる責任も
負いかねますのでご了承ください。
© Copyright2003 Hewlett-Packard Development Company,L.P.
日本ヒューレット・パッカード株式会社
〒140-8641 東京都品川区東品川 2-2-24 天王洲セントラルタワー
PDFHS03-028-01
Fly UP