A.1 機能別に見たオプションの要約
この節には、参照しやすいように、コンパイラオプションが機能別に分類されています。各オプションの詳細は、表 A-15 および付録 B C コンパイラオプションリファレンス を参照してください。フラグによっては、複数の使用目的があるため、複数の個所に記載されているものがあります。
これらのオプションは、特に記載がないかぎりすべてのプラットフォームに適用されます。Solaris SPARC システム版のオペレーティングシステムに特有の機能は (SPARC) として表記され、x64 システム版のオペレーティングシステムに特有の機能は (x86) として表記されます。Solaris プラットフォームのみに適用されるオプションには、(Solaris) というマークが付きます。Linux プラットフォームのみを対象とするオプションには、(Linux) というマークが付きます。
A.1.1 最適化とパフォーマンスのオプション
表 A-1 最適化とパフォーマンスのオプション表
|
|
-fast |
実行可能コードの速度を向上させるコンパイルオプションの組み合わせを選択します。 |
-fma |
(SPARC) 浮動小数点の積和演算 (FMA) 命令の自動生成を有 効にします。 |
-p |
プロファイルデータ収集用のオブジェクトコードを用意します。 |
-xalias_level |
コンパイラが型ベースの別名の分析と最適化を実行します。 |
-xannotate |
(Solaris) binopt(1) のようなバイナリ変更ツールを使用してあとで変換できるバイナリを作成するようコンパイラに指示します。 |
-xbinopt |
あとで最適化、変換、分析を行うために、バイナリを準備します。 |
-xbuiltin |
標準ライブラリ関数を呼び出すコードの最適化率を上げます。 |
-xdepend |
ループの繰り返し内部でのデータ依存性の解析およびループ再構成を実行します。 |
-xF |
リンカーによるデータと関数の順序の並べ替えを有効にします。 |
-xhwcprof |
(SPARC) コンパイラのハードウェアカウンタによるプロファイリングのサポートを有効にします。 |
-xinline |
|
-xinstrument |
スレッドアナライザで分析するために、プログラムをコンパイルして計測します。 |
-xipo |
内部手続き解析パスを呼び出すことにより、プログラム全体の最適化を実行します。 |
-xipo_archive |
ファイル間の最適化にアーカイブ (.a) ライブラリを含める |
-xjobs |
|
-xlibmil |
実行速度を上げるため、一部のライブラリルーチンをインライン化します。 |
-xlic_lib=sunperf |
Sun のパフォーマンスライブラリにリンクします。 |
-xlinkopt |
再配置可能なオブジェクトファイルのリンク時の最適化を実行します。 |
-xlibmopt |
最適化された数学ルーチンのライブラリを使用します。 |
-xmaxopt |
このコマンドは、 pragma opt
のレベルを指定されたレベルに限定します。 |
-xnolibmil |
|
-xnolibmopt |
最適化された数学ルーチンのライブラリを使用しません。 |
-x0 |
|
-xnorunpath |
実行可能ファイル内の共有ライブラリの実行時検索パスのインクルードを抑止します。 |
-xpagesize |
スタックとヒープ用の優先ページサイズを設定します。 |
-xpagesize_stack |
|
-xpagesize_heap |
|
-xpch |
ソースファイルが共通インクルードファイルセットを共有しているようなアプリケーションのコンパイル時間を短縮します。 |
-xpec |
自動チューニングシステム (Automatic Tuning System、ATS) と組み合わせて使用できる、移植可能な実行可能コード (Portable Executable Code、PEC) バイナリを生成します。詳細は、http://cooltools.sunsource.net を参照してください。 |
-xpchstop |
-xpch とともに使用して、活性文字列の最後のインクルードファイルを指定します。 |
-xpentium |
(x86)
Pentium プロセッサ用に最適化を行います。 |
-xprefetch |
|
-xprefetch_level |
-xprefetch=auto で設定される先読み命令の自動挿入の優先度を制御します。 |
-xprefetch_auto_type |
|
-xprofile |
プロファイルのデータを収集、または最適化のためにプロファイルを使用します。 |
-xprofile_ircache |
-xprofile=collect 段階で保存されたコンパイルデータを再利用して、 -xprofile=use 段階のコンパイル時間を向上します。 |
-xprofile_pathmap |
単一のプロファイルディレクトリで複数のプログラムまたは共有ライブラリをサポートします。 |
-xrestrict |
ポインタ値の関数引数を制限付きポインタとして扱います。 |
-xsafe |
(SPARC) メモリーに関するトラップが発生しないことを前提にします。 |
-xspace |
コードサイズを増やすループの最適化や並列化を行いません。 |
-xunroll |
ループを n 回展開するようオプティマイザに指示します。 |
|
A.1.2 コンパイル時とリンク時のオプション
次の表は、リンク時とコンパイル時の両方に指定する必要があるオプションをまとめています。
表 A-2 コンパイル時とリンク時のオプション表
|
|
-fast |
実行可能コードの速度を向上させるコンパイルオプションの組み合わせを選択します。 |
-m32|-m64 |
コンパイルされたバイナリオブジェクトのメモリーモデルを指定します。 |
-mt |
-D_REENTRANT -lthread に展開されるマクロオプションです。 |
-p |
prof(1) がプロファイルデータを収集するためのオブジェクトコードを作成します。 |
-xarch |
|
-xautopar |
|
-xhwcprof |
(SPARC) コンパイラのハードウェアカウンタによるプロファイリングのサポートを有効にします。 |
-xipo |
内部手続き解析パスを呼び出すことにより、プログラム全体の最適化を実行します。 |
-xlinkopt |
再配置可能なオブジェクトファイルのリンク時の最適化を実行します。 |
-xmemalign |
(SPARC) 想定するメモリー境界整列の最大値と、境界整列に失敗したデータがアクセスされた際の動作を指定します。 |
-xopenmp |
明示的な並列化のための OpenMP インタフェースをサポートします。このインタフェースには、ソースコード指令セット、実行時ライブラリルーチン、環境変数などが含まれます。 |
-xpagesize |
スタックとヒープ用の優先ページサイズを設定します。 |
-xpagesize_stack |
|
-xpagesize_heap |
|
-xpg |
gprof(1) によるプロファイルの準備として、データを収集するためのオブジェクトコードを生成します。 |
-xprofile |
プロファイルのデータを収集、または最適化のためにプロファイルを使用します。 |
-xvector=lib |
ベクトルライブラリ関数を自動的に呼び出すようにします。 |
|
A.1.3 データ境界整列のオプション
表 A-3 データ境界整列のオプション表
|
|
-xchar_byte_order |
複数文字からなる定数である文字を指定されたバイト順序で配置することにより、整定数を生成します。 |
-xdepend |
ループの繰り返し内部でのデータ依存性の解析およびループ再構成を実行します。 |
-xmemalign |
(SPARC) 想定するメモリー境界整列の最大値と、境界整列に失敗したデータがアクセスされた際の動作を指定します。 |
-xopenmp |
明示的な並列化のための OpenMP インタフェースをサポートします。このインタフェースには、ソースコード指令セット、実行時ライブラリルーチン、環境変数などが含まれます。 |
|
A.1.4 数値と浮動小数点のオプション
表 A-4 数値と浮動小数点のオプション表
|
|
-flteval |
|
-fma |
(SPARC) 浮動小数点の積和演算 (FMA) 命令の自動生成を有 効にします。 |
-fnonstd |
浮動小数点演算ハードウェアの非標準の初期化を行います。 |
-fns |
|
-fprecision |
(x86) 浮動小数点制御ワードの丸め精度モードのビットを初期化します。 |
-fround |
プログラム初期化中に、実行時に確立される
IEEE 754 丸めモードを設定します。 |
-fsimple |
オプティマイザが浮動小数点演算に関する前提事項を単純化できるようにします。 |
-fsingle |
float 式を倍精度ではなく単精度で評価します。 |
-fstore |
(x86) 浮動小数点式または関数の値を、代入式の左辺値の型に変換します。 |
-ftrap |
起動時に有効になる IEEE 754 トラップモードを設定します。 |
-nofstore |
(x86) 浮動小数点式または関数の値を、代入式の左辺値の型に変換しません。 |
-xdepend |
ループの繰り返し内部でのデータ依存性の解析およびループ再構成を実行します。 |
-xlibmieee |
例外が起きた場合の数学ルーチンの戻り値を強制的に IEEE 754 形式にします。 |
-xsfpconst |
|
-xvector |
ベクトルライブラリ関数を自動的に呼び出すようにします。 |
|
A.1.5 並列化のオプション
表 A-5 並列化のオプション表
|
|
-mt |
-D_REENTRANT -lthread に展開されるマクロオプションです。 |
-xautopar |
|
-xcheck |
スタックオーバーフローに関する実行時検査を追加し、ローカル変数を初期化します。 |
-xdepend |
ループの繰り返し内部でのデータ依存性の解析およびループ再構成を実行します。 |
-xloopinfo |
並列化されているループとされていないループを示します。 |
-xopenmp |
明示的な並列化のための OpenMP インタフェースをサポートします。このインタフェースには、ソースコード指令セット、実行時ライブラリルーチン、環境変数などが含まれます。 |
-xreduction |
|
-xrestrict |
ポインタ値の関数パラメータを制限付きのポインタとして扱います。 |
-xvpara |
#pragma MP 指令が指定されているが、正しく並列化指定されていないループについて警告を出します。 |
-xthreadvar |
スレッドローカルな変数の実装を制御します。 |
-Zll |
lock_lint 用にプログラムデータベースだけ作成して、実行可能なコードの生成は行いません。 |
|
A.1.6 ソースコードのオプション
表 A-6 ソースコードのオプション表
|
|
-A |
#assert 前処理指令に似せて、指定の tokens を使用し name を述語として関連付けます。 |
-C |
C プリプロセッサがコメントを削除しないようにします。ただし前処理指令の行にあるコメントは削除されます。 |
-D |
#define 前処理指令に似せて、指定の tokens を使用し name を関連付けます。 |
-E |
プリプロセッサのみでソースファイルを処理し、出力を
stdout に送ります。 |
-fd |
|
-H |
現在のコンパイルでインクルードされたファイルのパス名を 1 行に 1 つずつ標準エラーに表示します。 |
-I |
ディレクトリをリストに追加します。このリストは相対ファイル名で指定される #include ファイルを検索するときのリストです。 |
-include |
コンパイラは引数 filename
を、主要なソースファイルの 1 行目に記述されているかのように #include プリプロセッサ指令として処理します。 |
-P |
ソースファイルのプリプロセッサ処理のみを行います。 |
-U |
初期定義されているプリプロセッサシンボル name; をすべて削除します。 |
-X |
ANSI/ISO C に準拠する度合いを指定します。 |
-xCC |
|
-xc99 |
サポートされる C99 機能をコンパイラで認識させるかどうかを制御します。 |
-xchar |
文字が符号なしと定義されるシステムからの移行を支援します。 |
-xcsi |
C
コンパイラが、ISO C ソース文字コードの要件に準拠していないロケールで記述されたソースコードを受け付けることを可能にします。 |
-xM |
指定した C プログラムに対してプリプロセッサだけを実行します。その際、メイクファイルの依存関係を生成してその結果を標準出力に出力します。 |
-xM1 |
-xM と同様に依存関係を収集しますが、 /usr/include ファイルは除きます。 |
-xMD |
-xM と同様にメイクファイルの依存関係を生成しますが、コンパイルを含みます。 |
-xMF |
メイクファイルの依存関係情報を保存するファイル名を指定します。 |
-xMMD |
メイクファイルの依存関係を生成しますが、システムヘッダーを除外します。 |
-xP |
このモジュールで定義されたすべての K&R C 関数に対するプロトタイプを出力します。 |
-xpg |
gprof(1)
によるプロファイルの準備として、データを収集するためのオブジェクトコードを生成します。 |
-xtrigraphs |
|
-xustr |
16 ビット文字から成る文字列リテラルの認識を有効にします。 |
|
A.1.7 コンパイル済みコードのオプション
表 A-7 コンパイル済みコードのオプション表
|
|
-c |
ld(1) によるリンクを行わず、現在の作業用ディレクトリ内にソースファイルごとに .o ファイルを作成します。 |
-o |
|
-S |
アセンブリソースファイルを作成しますが、アセンブルは行いません。 |
|
A.1.8 コンパイルモードのオプション
表 A-8 コンパイルモードのオプション表
|
|
-# |
冗長モードを有効にします。コマンドオプションの展開内容と呼び出されたすべての構成要素が表示されます。 |
-### |
呼び出された各構成要素が表示されますが、実行はされません。また、コマンドオプションの展開内容も表示されます。 |
-features |
|
-keeptmp |
コンパイル中に作成される一時ファイルを自動的に削除しないで保持します。 |
-V |
cc コンパイラの実行時に各構成要素の名前とバージョン番号を表示します。 |
-W |
引数を
C コンパイルシステムの構成要素に渡します。 |
-X |
ANSI/ISO C に準拠する度合いを指定します。 |
-xc99 |
サポートされる C99 機能をコンパイラで認識させるかどうかを制御します。 |
-xchar |
|
-xhelp |
|
-xjobs |
|
-xpch |
ソースファイルが共通インクルードファイルセットを共有しているようなアプリケーションのコンパイル時間を短縮します。 |
-xpchstop |
-xpch とともに使用して、活性文字列の最後のインクルードファイルを指定します。 |
-xtemp |
cc が使用する一時ファイルの dir を設定します。 |
-xtime |
コンパイルの各構成要素が占有した実行時間と資源を報告します。 |
-Y |
コンパイルシステムの構成要素を配置する新しいディレクトリを指定します。 |
-YA |
コンパイラの構成要素を検索するデフォルトのディレクトリを変更します。 |
-YI |
インクルードファイル検索時のデフォルトディレクトリを変更します。 |
-YP |
ライブラリファイルを検索するデフォルトのディレクトリを変更します。 |
-YS |
起動用のオブジェクトファイルを検索するデフォルトのディレクトリを変更します。 |
|
A.1.9 診断のオプション
表 A-9 診断のオプション表
|
|
-errfmt |
警告メッセージからの型用に「error:」という接頭辞をメッセージに付けます。 |
-errhdr |
ヘッダーファイルから指定したグループへの警告を制限します。 |
-erroff |
|
-errshort |
コンパイラが型の不一致を検出をする際に出力されるエラーメッセージの詳細度を制御します。 |
-errtags |
|
-errwarn |
指定された警告メッセージが表示される場合、cc はエラーステータスを返して終了します。 |
-v |
より厳しい意味検査およびほかの lint に似た検査を行います。 |
-w |
|
-xe |
ソースファイル上で構文および意味検査のみを行います。オブジェクトコードや実行可能コードは生成しません。 |
-xtransition |
K&R C と Solaris Studio ISO C との間の相違に対して警告を出します。 |
-xvpara |
#pragma
MP 指令が指定されているが、正しく並列化指定されていないループについて警告を出します。 |
|
A.1.10 デバッグオプション
表 A-10 デバッグのオプション表
|
|
-xcheck |
スタックオーバーフローに関する実行時検査を追加し、ローカル変数を初期化します。 |
-g |
デバッガ用に追加のシンボルテーブル情報を作成します。 |
-s |
出力されるオブジェクトファイルからシンボリックデバッグのための情報をすべて削除します。 |
-xdebugformat |
stab 形式ではなく dwarf 形式でデバッグ情報を生成します。 |
-xpagesize |
スタックとヒープ用の優先ページサイズを設定します。 |
-xpagesize_stack |
|
-xpagesize_heap |
|
-xs |
dbx のためのオブジェクトファイルの自動読み取りを無効にします。 |
-xvis |
(SPARC) コンパイラによる VIS 命令セットに定義されているアセンブリ言語のテンプレートの認識を有効にします。 |
|
A.1.11 リンクとライブラリのオプション
表 A-11 リンクとライブラリのオプション表
|
|
-B |
ライブラリのリンクを 静的と dynamic のどちらにするかを指定します。 |
-d |
リンクエディタに動的なリンクまたは静的なリンクを指定します。 |
-G |
動的にリンクされる実行可能プログラムではなく、共有オブジェクトを作成することをリンクエディタに指示します。 |
-h |
共有動的ライブラリに name; を付けます。これによってバージョンの異なるライブラリを作成できます。 |
-i |
LD_LIBRARY_PATH の設定を無視するオプションをリンカーへ渡します。 |
-L |
リンカーがライブラリを検索するリストに dir を付け加えます。 |
-l |
オブジェクトライブラリ libname.so、または libname.a をリンクの対象とします。 |
-mc |
オブジェクトファイルの
.comment セクションから重複している文字列を削除します。 |
-mr |
.comment セクションからすべての文字列を削除し、オブジェクトファイルの string を挿入します。 |
-Q |
出力ファイルに識別情報を入れるかどうかを設定します。 |
-R |
コロンで区切られたディレクトリのリストを、ライブラリ検索ディレクトリとして、実行時リンカーに渡します。 |
-xMerge |
データセグメントをテキストセグメントにマージします。 |
-xcode |
|
-xldscope |
変数定義と関数定義のデフォルトのスコープを制御して、より高速で安全な共有ライブラリを作成します。 |
-xnolib |
|
-xnolibmil |
|
-xstrconst |
このオプションは、将来のリリースでは推奨されません。代わりに、 -features=[no%]conststrings を使用します。 デフォルトのデータセグメントではなくテキストセグメントの読み出し専用データセクションに、文字列リテラルを挿入します。 |
|
A.1.12 対象プラットフォームのオプション
表 A-12 対象プラットフォームのオプション表
|
|
-m32|-m64 |
コンパイルされたバイナリオブジェクトのメモリーモデルを指定します。 |
-xarch |
|
-xcache |
|
-xchip |
|
-xregs |
|
-xtarget |
最適化と命令セットの対象となるシステムを指定します。 |
|
A.1.13 x86 固有のオプション
表 A-13 x86 固有のオプション表
|
|
-flteval |
|
-fprecision |
浮動小数点制御ワードの丸め精度モードのビットを初期化します。 |
-fstore |
浮動小数点式または関数の値を、代入式の左辺値の型に変換します。 |
-nofstore |
浮動小数点式または関数の値を、代入式の左辺値の型に変換しません。 |
-xmodel |
64 ビットオブジェクトの形式を
Solaris x86 プラットフォーム用に変更します。 |
-xpentium |
|
|
A.1.14 ライセンスオプション
表 A-14 ライセンスのオプション表
A.1.15 廃止オプション
次の表に、非推奨になったオプションを示します。引き続きコンパイラはこれらのオプションを受け付けますが、将来は使用できなくなる可能性があります。できるだけ速やかに推奨代替オプションを使うようにしてください。
表 A-15 廃止のオプション表
|
|
-dalign |
代わりに -xmemalign=8s を使用してください。 |
-KPIC (SPARC) |
代わりに -xcode=pic32 を使用してください。 |
-Kpic (SPARC) |
代わりに -xcode=pic13 を使用してください。 |
-misalign |
代わりに -xmemalign=1i
を使用してください。 |
-misalign2 |
代わりに -xmemalign=2i を使用してください。 |
-x386 |
代わりに、-xchip=generic を使用してください。 |
-x486 |
代わりに、-xchip=generic を使用してください。 |
-xa |
代わりに、-xprofile=tcov を使用してください。 |
-xarch=v7,v8,v8a |
廃止。 |
-xcg |
-xarch、-xchip、-xcache のデフォルト値を活かすために、代わりに -O を使用してください。 |
-xcrossfile |
代わりに -xipo を使用します。 |
-xnativeconnect |
廃止。これに代わるオプションはありません。 |
-xprefetch=yes |
代わりに - xprefetch=auto,explicit
を使用します。 |
-xprefetch=no |
代わりに -xprefetch=no%auto,no%explicit を使用します。 |
-xsb |
廃止。これに代わるオプションはありません。 |
-xsbfast |
廃止。これに代わるオプションはありません。 |
-xtarget=386 |
代わりに -xtarget=generic を使用してください。 |
-xtarget=486 |
代わりに -xtarget=generic を使用してください。 |
-xvector=yes |
代わりに、--xvector=lib を使用します。 |
-xvector=no |
代わりに、-xvector=none を使用します。 |
|